The Curious Engineer

All blogs / AI / ML

Bread & Circuits

blog.humphd.org

The blog of David Humphrey

AI / MLJavaScript / TypeScriptEssays / personal

Posts
609 from 25 Apr 2008 to 26 Jun 2025
Posting
now and then
Kind
personal blog
Feed
https://blog.humphd.org/rss/

2025 1

  1. eget-wasm

2024 1

  1. ChatCraft 2.0 and a Visit from Taras

2023 24

  1. In 2023
  2. Teaching ChatCraft to do Citations
  3. Releasing ACTION
  4. A month with AudioMoth
  5. Teaching ChatCraft to use Tools
  6. Time vs Size
  7. What Edit Unlocks
  8. My Spring with ChatCraft.org
  9. Thinking about Context
  10. ChatCraft.org
  11. Starchart 1.0.0: My.Custom.Domain
  12. Unnecessarily Hard
  13. A Week with ChatGPT
  14. Starchart 0.7
  15. On Tedium
  16. AI Emerging Technologies Committee
  17. CheatGPT
  18. Starchart 0.3
  19. DevelopingSpace
  20. Starchart 0.2
  21. Starchart 0.1!
  22. Multipass VMs on macOS
  23. GPT and Pouring Language Through Shape
  24. Teaching, Winter 2023

2022 11

  1. Planning Starchart
  2. Building an Understanding
  3. On the value of small contributions
  4. Learning to live with failure
  5. HTTP Testing with Hurl in node.js
  6. Teaching AWS and Cloud Computing for Programmers
  7. Shipping Telescope 2.8.x
  8. Shipping Telescope 2.7.0
  9. From Telescope 2.5.0 to 2.6.1
  10. What it is and isn't doing
  11. Toward Telescope 3.0

2021 15

  1. Teaching Open Source, Fall 2021
  2. If you liked it then you shoulda put a link on it
  3. Yours to Discover
  4. Learning to not fear the unknown
  5. Why newer isn't always better
  6. Learning to Review Code
  7. Starting Open Source Fall 2021
  8. There isn't an app for that
  9. Telescope 2.0
  10. Shipping Telescope 1.9.5
  11. Content
  12. Observations on Telescope 1.8
  13. Planning for Telescope 1.7 and beyond
  14. What you see vs. What's there
  15. Toward Telescope 2.0

2020 17

  1. SnowyOwls.ca
  2. Telescope 1.4.0
  3. The Owl Box
  4. On Owls
  5. Teaching and Thinking Globally
  6. On Boring Paths
  7. Experimenting with Twilio
  8. Telescope 1.0, or "Dave is once again asking for a blog"
  9. Online, Week 3
  10. Git and Preparing for a 1.0
  11. On Teaching Online, Week 2
  12. NSSSSSSO: Not So Simple Seneca SAML SSO
  13. Teaching in the time of Corona
  14. Older, but not wiser
  15. Shipping Telescope 0.6, Planning 0.7
  16. How to do design reviews
  17. On Telescope 0.5 and Dogfooding

2019 11

  1. Teaching Open Source, Fall 2019
  2. What is a blog post?
  3. Hacktoberfest 2019
  4. Commuting with Libby
  5. Some Assembly Required
  6. irc.mozilla.org
  7. Teaching Open Source: Sept 2018 - April 2019
  8. The technology of nostalgia
  9. Browsing open source projects
  10. Credit where credit's due
  11. "I want to learn how to maintain software"

2018 9

  1. Processing.js 2008-2018
  2. Observations on Hacktoberfest 2018
  3. Building Large Code on Travis CI
  4. Experiments with "Good First Experience"
  5. On standards work
  6. A Parenting Update
  7. What Happens when you Contribute, revisited
  8. Edge Cases
  9. GitHub Knows

2017 17

  1. Reading Other People's Books
  2. The limits of my language are the limits of my world
  3. "What are you struggling with?"
  4. Service Workers and a Promise to Catch
  5. Space Git
  6. Remembering Jordan
  7. When the music's over, turn out the lights
  8. On URLs
  9. Fixing a bug in TensorBoard
  10. Why Good-First-Bugs often aren't
  11. Service Workers and Cache Storage in Thimble
  12. "When in doubt, WebIDL"
  13. Git does what you tell it
  14. What Happens when you Contribute
  15. git, with abandon
  16. Fixing a Bug in Mozilla Thimble
  17. Your First Github PR - A Guided Tour

2016 3

  1. The limits of Automatic Tag Extraction
  2. On Bird Calls and Pishing
  3. On Sabbatical

2015 9

  1. How to become a Fool Stack Programmer
  2. The kind of open source I admire
  3. Introducing a New Thimble and Bramble
  4. Squashing patellar tendinitis
  5. Messing with MessageChannel
  6. Learning to git bisect
  7. Repeating old mistakes
  8. Embedding license data in images
  9. Avocation

2014 6

  1. Video killed the radio star
  2. Minimum Viable Product
  3. How to encourage contributors
  4. CDOT Planet Blog Feed Cleanup
  5. Introducing MakeDrive
  6. blog.humphd.org

2013 18

  1. An Hour of Code spawns hours of coding
  2. Concept for a Shared Web File System
  3. Experiments with audio, part XI: RIP Audio Data API (2009 to 2013)
  4. The Web is the Platform: File System Edition
  5. Webmaker Localization Beta
  6. "The Internet:" re-reading the Mozilla Manifesto
  7. Reading "Words"
  8. Webmaker.org after 9 weeks, in 9 weeks
  9. Localizing Webmaker
  10. Thought experiment: letting git normalize whitespace
  11. Toward Webmaker Custom Elements, Web Components
  12. Watching people use Media Clips
  13. 'Pattern Recognition' pattern recognition
  14. HTML5 time and data elements in Firefox
  15. Webmaker - Sequencing Web Media
  16. On Code Review
  17. A prayer for Aaron
  18. Visual Studio considered Harmful

2012 37

  1. In 2013: letters, encouragement, edification
  2. The first view into Literature
  3. Code for Christmas
  4. Of dogfood and web making
  5. WEBVTT Update, Google Test, debugging unit tests
  6. TravisCI builds for the webvtt parser
  7. Web App JavaScript Crash Reporting
  8. Popcorn Maker 1.0 Beta - TED Launch
  9. Implementing WebVTT in Firefox at Seneca
  10. On bunkum: a word with Le Carré
  11. Processing.js 1.4.0
  12. Gitter: Toward Twitter on Git(hub)
  13. On Tools and Tools()
  14. HTML5 media and non-HTML5 media
  15. Fixing subpixel rendering on OS X secondary monitors
  16. Focus and Select: a cross-browser bed time story
  17. End of Semester
  18. Sadness for North Korea
  19. On the long game: a 20 year web page
  20. You can
  21. Elsewhere and Otherwise
  22. Two notes on books
  23. Required Reading
  24. Next-Next Generation Web Making
  25. International Women's Day 2012
  26. "Dad, tell them we made a game!"
  27. Compelled
  28. Future in the Past
  29. One needs models: on being dad
  30. How to crash like you mean it
  31. Beyond Reality TV: The New Acting
  32. A Harvest Table
  33. Learning to type
  34. What I'd do: software teams as indie bands
  35. Return early, return often
  36. Occasionals
  37. Holiday Reading

2011 47

  1. The Canadian Apple TV Experience
  2. Using LaTeX to publish a novel on Lulu
  3. Reading Hitchens, Remembering Chesterton
  4. Implementing Mouse Lock, conclusion
  5. Level Up: Mouse Lock + Gamepad builds
  6. Implementing Mouse Lock, part IV
  7. Implementing Mouse Lock, part III
  8. Implementing Mouse Lock, part II
  9. Mixing Processing, Processing.js, JavaScript
  10. Reflections on the Mozilla Media Festival
  11. Git and Github for Educators and Students
  12. Implementing Mouse Lock, part I
  13. A+ for Failure
  14. On the joys of 1.0
  15. The Open Web Index
  16. Elderberry Pie
  17. Why "All Tests Pass" is not "It Works"
  18. On the Ethics of Virtual Endings
  19. An afternoon with pdf.js and CubicVR.js
  20. What is 0.1?
  21. The third way
  22. Command-line SpiderMonkey
  23. Nature vs. Nurture
  24. The Killdeer Nest
  25. Popcorn.js and Khan Academy
  26. Spring means welcoming new CDOT researchers
  27. Dynamic Processing.js Sketches in a Tweet
  28. No Comply Documentary
  29. At the tomb, on Easter
  30. "Do it on the web"
  31. The joys of same origin file access
  32. Painting with Tape
  33. Assessing the familiar by means of the unfamiliar
  34. Election 2011 Issue: Rural Broadband
  35. No Comply
  36. Dear Twitter,
  37. Firefox 4, bring the noise!
  38. Being Online
  39. a still small voice
  40. The question of loss online
  41. #prayforjapan
  42. A moment for Japan
  43. JavaScript Typed Arrays
  44. PBS, Popcorn.js, POTUS
  45. Chinese Cherry Blossoms
  46. On the web as soundscape
  47. Credibility

2010 87

  1. In 2010
  2. Just like that
  3. The humble bee
  4. Of passion and suffering
  5. Flight of the Navigator
  6. The Storyteller
  7. Seneca's Open Source Approach in Globe and Mail
  8. "You can bump into anybody on Twitter."
  9. “As many of you know, one of my hobbies is catching cheaters”
  10. Processing.js 1.0 Released
  11. Beavers in the corn
  12. Iterating over Objects in JavaScript Quickly
  13. Tending the Fire
  14. Filed under "Cuisine : American"
  15. Mozilla Drumbeat Festival: Open Video Lab
  16. 50 visualizations of Life's Things
  17. Visualizing Source Repos with gource
  18. Processing, Mozilla, and Seneca a year later
  19. What real political engagement looks like
  20. "God is love"
  21. Exposing the Professional
  22. The Book of the Web
  23. "First, I'd like to make a forest"
  24. sfxr.js: sound for open web games
  25. Sustenance
  26. Introversion, a definition by negation
  27. Flash vs. HTML5 dance-off
  28. On the letter from a friend
  29. How much does a song cost?
  30. On the small gathering
  31. The paradox of good decision making
  32. Experiments with audio, conclusion
  33. On working with instead of on
  34. Vocamus 1140
  35. Update on DXR work
  36. "What we say no to"
  37. On the possibility of expressing love online
  38. Restarting DXR Development
  39. Two Experiences with the Local
  40. On the Reading of Books
  41. Great Horned Owl
  42. Your homework
  43. Questions about books after dinner
  44. Open Source Research at Seneca
  45. On Distinction
  46. Experiments with audio, part X
  47. 1to100.js -- a first computer program
  48. View Source as Musical Innovation
  49. Experiments with audio, part IX
  50. "Tomorrow will be like today, only more so"
  51. We make stuff
  52. On Lying
  53. One for the road
  54. This page intentionally left blank.
  55. Thoughts on the death notice
  56. Rereading Girard on Good Friday
  57. Rihanna covers René
  58. Watching the open web play with Processing.js
  59. Processing.js 0.7, plus ref tests with canvas
  60. Understanding the cost of arrays with canvas
  61. On the need for an around which
  62. Walking through Arrivals at YYZ
  63. A bird in the hand and two in the field
  64. Processing.js 0.6 Released
  65. Processing.js 0.5 Released
  66. HOWTO: turn a student into a software developer
  67. Family Day
  68. On the need for an ethical online existence
  69. Don't use the R-word unless you mean it
  70. Things then and now, part II
  71. Things then and now
  72. Writing Automated Tests for Processing.js
  73. The case of the open file handle
  74. Another road
  75. Bad Gr@mm3r?
  76. Flatbreads
  77. Giving the parser a B-
  78. On the joys of the test harness
  79. San Francisco goes Open Source
  80. Experiments with audio, part VIII
  81. Committed to memory
  82. Experiments with audio, part VII
  83. Snow Buntings
  84. The Web vs. Canada
  85. Experiments with audio, part VI
  86. Brown Eggs
  87. A room of one's own

2009 195

  1. Winter Music
  2. Getting the tree
  3. Experiments with audio, part V
  4. Why I don't develop in .NET anymore
  5. Experiments with audio, part IV
  6. Experiments with audio, part III
  7. Experiments with audio, part II.I
  8. Experiments with audio, part II
  9. Why I'm not a CEO
  10. Awake to the possibility of sleep
  11. Experiments with audio, part I
  12. Christmas and childhood
  13. My First FUDCon
  14. The other side of search
  15. Dealing with rejection
  16. Update on the Processing for the Web Project
  17. Vocamus 901
  18. Vocamus 898
  19. // comments considered harmful
  20. circa 1994
  21. "I want your love"
  22. Morning Coffee, blogs, and XPCOM
  23. The Essentialism of Materialism and Immaterialism
  24. Gamercamp, Nov 21
  25. Encouragement
  26. Doing without
  27. text-decoration: underline
  28. Rich client
  29. The Sacred
  30. Mozilla Jetpack for Learning Design Challenge
  31. Running Treehydra and Dehydra scripts
  32. Student Contribution Opportunity
  33. Failure as contribution
  34. I'm hopeful, too--PatchCulture.org
  35. "Who are your peers?" A response to Joel Spolsky
  36. How to go to a tech event (as a student)
  37. Disentangling what, when, and how
  38. Catching up on DXR blogging
  39. FSOSS 2009 is next Friday Oct 30
  40. "Could you explain to the students what you are proposing?"
  41. Unboxing the 2410: apples, cables, welding, seed, and books
  42. New Friends
  43. Classified Ad
  44. The hardest edge
  45. If you build it, they will build more
  46. Two thoughts from class
  47. JavaScript regex and exec()
  48. Writing off Technical Debt
  49. Shared Milestones
  50. Letters on the ground
  51. "For all the details, please visit our website"
  52. Thanksgiving weekend, somewhere in Canada
  53. In praise of the library
  54. Prophecy
  55. On being with
  56. A moment of reading
  57. Real World = Real People
  58. On being playful
  59. Taking it to the next dimension
  60. Break it real good
  61. "that's what I'm planning to do"
  62. Reading Against and Reading Up Against
  63. Vocamus 760
  64. Here's a tip
  65. Responding to the web
  66. Defining Open Data
  67. Machinations
  68. Vocamus 724
  69. Learning Thinking
  70. Getting what we paid for as Canadians
  71. Quiet civility
  72. Rereading Chesterton
  73. Inane babble, because the world is inane and insane
  74. On the way to thinking
  75. Graffiti
  76. Extra Curricular
  77. Mozilla and Education, Fall 2009 edition
  78. A bridge
  79. Vignette of Home School
  80. Home Birth
  81. How to grade open source work
  82. Seeing the common uncommon
  83. search?q=book
  84. Good Books Don't Have to Be Hard Work, But Lots Are
  85. Not in the credits, but...
  86. TD Canada Trust and Greentec rock
  87. How to teach children about computers
  88. Of Birds' Nests
  89. Not by sight
  90. "end of story"
  91. Looking for the 'Old' link
  92. Blogging and Friendship
  93. On the call, and the invitation to friendship
  94. The Mimetic Theory: Listening to Madonna with Girard
  95. Peaches two ways
  96. On seeing a Moose
  97. Twitter is broken.
  98. On being watched
  99. Taking other ways
  100. How to love gcc
  101. Encouraging Students to Blog
  102. Patching the web: on the uses of "View Source"
  103. Summer School - POSSE 2009
  104. Walk it off
  105. Laughing at myself
  106. "So when does home school end for the summer?"
  107. Wild Raspberries
  108. Bats, Nagel, and Kafka
  109. "Science does not think."
  110. Open Web Style Lectures: A response to Luis von Ahn
  111. "I am never here only"
  112. Bats, the question, and Heidegger
  113. Proud to be a part of Firefox 3.5
  114. Introducing DXR - Bringing Static Analysis to the Web
  115. @humphd (with a 'd', like "Didn't sign-up soon enough to get humph")
  116. "students want to produce meaningful output"
  117. "You may need to apply force"
  118. FSOSS 2009 accepting Presentation Proposals
  119. Mozilla Education Goal: 100 Student Projects by June 30
  120. George Mason University sued over Zotero
  121. Field Stone: "The threshold is always stony"
  122. Mozilla Education: what getting involved looks like
  123. On seeing the Common Loon
  124. Daytime Nighthawk
  125. Behold, I make all things new
  126. DXR pre-alpha: Source Code Lexicography
  127. "Practical Programming" arrives
  128. Mozilla, Education...Hybrid
  129. Growing the Mozilla Education community
  130. Vocamus 509
  131. "Is spatial ability the 'Geek Gene'?"
  132. Bad timing!
  133. A conversation with old friends
  134. Two lessons before bed
  135. Halting
  136. I wonder who will get tired first...
  137. Another one in the can
  138. Just a note that I'm looking forward to your projects...
  139. Quick glance
  140. Straight to the source
  141. Yo dojo!
  142. What it's like to have daughters
  143. On accepting the role and playing the part
  144. Faster builds, smaller footprint, zero functionality!
  145. Peer Review and absence as presence
  146. Why is programming fun?
  147. Thought on Easter
  148. Is Not
  149. Don't call it the Internet if it's just for the US
  150. Something out of nothing
  151. "Where did you get that output?"
  152. Longing for design
  153. How to avoid April 1 on the web
  154. Fine print
  155. Counting the cost
  156. "HTML is not an output format. HTML is The Format."
  157. Vernacular
  158. Mozilla and Creative Commons teach practical open education skills
  159. Mozilla and Education version 0.4: Projects, Resources, Mailing List
  160. Inevitable, but unforeseen
  161. Field Guides
  162. JS Getter Lazy Init Pattern
  163. Vocamus 430
  164. TeachingOpenSource.org
  165. Keepin' it real
  166. Mozilla and Education version 0.3: [student-project] open for business
  167. You can't go back
  168. "Related Videos"
  169. to wit
  170. Tinkering with DXR
  171. Watching pymake get built
  172. When worlds collide
  173. Mozilla and Education version 0.2: Potential Projects
  174. Vocamus 391
  175. What does open source look like?
  176. Mozilla and Education, version 0.1
  177. Porcupine
  178. Surman in the Globe
  179. Why blother?
  180. "mozconfig" -- a play in two acts
  181. "You have 15 new messages from 000-000-0000"
  182. I've picked my Mac project
  183. Canvas3D and C3DL hit Ars
  184. We could do this
  185. I wondered how long this would take
  186. Seneca partnership with Eclipse WTP project
  187. Happy Mac is Happy
  188. Searching for Q on Wikipedia
  189. C3DL 0.6
  190. Seven Things (accidentally deleted, now restored)
  191. Mobile embedded development conference - Waterloo, Canada
  192. New crew
  193. Milking the sacred cow
  194. nostosalgos
  195. VncSharp 1.0 Released

2008 101

  1. Merry Worlde
  2. You can spot Big Media because it's not spelled with an '<a>'
  3. Stroustrup on the state of CS Education
  4. Taking it over the line
  5. That's what I'm talking about
  6. Gladwell on CBC
  7. Some more emacs love
  8. Mike Rutzen swims with Great White Sharks
  9. Toward an understanding of failure and coping
  10. Free as in 'Hairy'
  11. Big Dog
  12. nsString dave=fail;
  13. Unexpected guests
  14. On teaching students how to blog
  15. Chapter 41, "Moby Dick"
  16. Parkour
  17. "Every stage is better than the one before"
  18. RFC2060
  19. Quality Time with Mercurial
  20. On JavaScript
  21. 10K Hours
  22. Doesn't everyone do it like this?
  23. Fire Tweet
  24. Make it go zOOom
  25. Sayings
  26. I Remember - Dulce Et Decorum Est
  27. Return of the White Whale
  28. Change might need to change
  29. Context and Correction
  30. "Canada's open source school"
  31. It's free
  32. FSOSS 2008 Wrap-up: Toward Open Source Education
  33. The tyranny of presence
  34. FSOSS, teaching open source, and golf
  35. Vocamus 249
  36. Northern Shrike
  37. FSOSS Online Registration Closes TODAY!
  38. Apple recognizes homeschool
  39. There's a simple fix to this
  40. What is a release?
  41. Toward a Philosophy of the Table
  42. Working at scale
  43. Best quote from class today
  44. James Morrison
  45. Big wins come from thinking small
  46. VMWare Fusion 2 not ready
  47. On the problem of software tools
  48. Desiring your tools
  49. For my wife...
  50. Free Software and Open Source Symposium (FSOSS)
  51. Hey, Gmail, what's up with you?
  52. Vocamus 207
  53. I give up
  54. Mozilla DevDays Toronto -- TOMORROW (Sept 15)!
  55. Handling multiple browsers
  56. Reduce, Reuse, Recycle
  57. New troops!
  58. On the wall
  59. Linux Club
  60. TED, meet, TERRY
  61. Vocamus 183
  62. In the style of
  63. Mozilla Toronto DevDays and FSOSS
  64. Mozilla Summit 2008, IMHO
  65. Vocamus 175
  66. Give these guys a hand
  67. On Seeing
  68. Killer Whale vs. Great White Shark
  69. I don't have a camera, but I couldn't capture this anyway
  70. Vocamus 170
  71. Open Source killed the Video Star
  72. The Big Tree
  73. "Please don't leave a message after the tone."
  74. Explaining the web by cooking
  75. Mike Shaver, graduate
  76. Chris Tyler appointed to the Fedora Board
  77. Grrr...you have new mail!
  78. Vocamus 161
  79. Open Source Flash Server?
  80. My favourite new feature in Firefox 3
  81. As Michael Geist says
  82. What's there if you know how to look
  83. Not-so-secret Sauce
  84. Who mourns the mourning dove?
  85. Firefox 3 where it belongs, in the NYT
  86. dehydra-xref 0.1
  87. "Hey, what if it did this..."
  88. An ever expanding family
  89. GeekDad ftw
  90. Toward a Dehydra-MXR love child
  91. C-a'ing emacs and screen
  92. Clear cutting
  93. Building boats
  94. sqlite and dehydra are friends
  95. Dehydration
  96. Army of One
  97. One Big Library Unconference
  98. VNC# in Algeria; VNC# needs a maintainer
  99. Vocamus 139
  100. Same great taste
  101. Hacking Mozilla Flickr Style