Bill Mill

billmill.org · Personal blog · on HN since 2007

Bill Mill, a programmer, writes tutorials and experiments on Python, HTML canvas games, D3, and data structures like Bloom filters.

What HN saysHN commenters link his canvas tutorial as a way to learn JavaScript through graphics and games.
31HN people shared it
5linked it in comments
36stories submitted
646story points
1 year agolast shared
2007people per year2026

Most-shared posts

  1. 1
    How I use Git worktrees (2024)
    5 people · 40 points · first shared 2024 · 2 comments on HN
  2. 2
    Bloom Filters by example
    4 people · 170 points · first shared 2012 · 61 comments on HN
  3. 3
    Html canvas playground
    4 people · 7 points · first shared 2008 · discussion on HN
  4. 4
    Multi-Line Lambdas in Python Using the With Statement
    3 people · 44 points · first shared 2009 · 11 comments on HN
  5. 5
    Serving a billion web requests with boring code
    2 people · 56 points · first shared 2024 · 13 comments on HN
  6. 6
    Pong in 30 Lines
    2 people · 19 points · first shared 2008 · 7 comments on HN
  7. 7
    Complex for Whom?
    2 people · 5 points · first shared 2024 · 1 comments on HN
  8. 8
    An AI tool I find useful
    2 people · 4 points · first shared 2025 · discussion on HN
  9. 9
    Tutorial: Breakout in HTML5's canvas
    2 people · 2 points · first shared 2009 · discussion on HN
  10. 10
    What are the "worst" spelling bee pangrams?
    1 people · 104 points · first shared 2024 · 85 comments on HN
  11. 11
    Radial NCAA Bracket in D3.js
    1 people · 70 points · first shared 2014 · 18 comments on HN
  12. 12
    Modern Unix Tool List
    1 people · 61 points · first shared 2024 · 11 comments on HN
  13. 13
    What Gladwell is Missing: Institutional Memory
    1 people · 31 points · first shared 2009 · 15 comments on HN
  14. 14
  15. 15
    Image Programming in JavaScript: The Histogram
    1 people · 4 points · first shared 2009 · discussion on HN

What HN people wrote when they linked it

bad_user · 2010-03-06
Actually you could say that functions in C# have been first-class since version 2.0. We of course need to define what first-class is ... if it's the ability to have higher-order functions, than 2.0 fits. C# 3.0 only adds a light-weight syntax for anonymous delegates plus the really kick-ass ability to get a syntax tree of that method instead of the method's reference (on which Linq is based) ... and I really wish other languages add this capability (it was possible in Ruby 1.8.x, but it's not anymore in Ruby 2.0). Python kicks ass in regard to first-class functions ... and it leverages that ability with decorators. People using other languages go through great pain to have AOP capabilities (for example), but in Python it only takes like 10 minutes to add a couple of utilities to do whatever you want. The only frustration I have with it is the lack of multi-line anonymous blocks, but Python is so flexible you can add that using "with" block hacks, like described here ... http://billmill.org/multi_line_lambdas.html Also, once you understand dynamic-scoping ... it's really not that big of a deal to deal with the situation described above. It's just different. I like the lexical-scoping in Perl as it prevents all kinds of errors ... but in Python I have real exception-handling, and a kick-ass debugger console just by adding "import ipdb; ipdb.set_trace()" anywhere I want.
j1elo · 2023-11-28
Only tangential. I usually enjoy reading public notes of other people, so that's what I did here too. On https://notes.billmill.org/programming/json/jq.html the author says that > jq appears to be largely unmaintained at this point, which is sad They might be happy to learn that after several years of halted development and unreleased improvements & bugfixes, jq ownership got transferred from the original author to a new organization, which allowed to resume operations: https://github.com/jqlang/jq/releases/tag/jq-1.7
Twisol · 2010-07-25
I don't know of any good Javascript learning platforms off the top of my head, but I think you'll want to aim for some form of immediate gratification. One thing you could do is whip up a sandbox page, like what w3schools does with its examples. Basically, create a page with three primary elements: a text box containing the Javascript, an Update button, and a section containing the actual content being messed with. You could come up with multiple "tutorials" or "activities" using this concept, and the Canvas tutorial below [1] is a neat example. [1] http://billmill.org/static/canvastutorial/
nimrody · 2009-12-23
Might be easier to use Javascript for this purpose since it is available practically everywhere. And HTML Canvas support makes writing graphics/games very easy. See http://billmill.org/static/canvastutorial/index.html for example.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close