Jason Scheirer

Jason Scheirer

Jason Scheirer

Hi, I’m Jason Scheirer. I’m a professional programmer and in my free time I’m a hobbyist programmer. I write games, I make little web toys, I talk about the passage of time. If you’re quiet on a summer’s day you can hear me whispering about JavaScript on the cool breeze.

Latest Posts

One thing I love about Python’s practical approach to type annotations and enforcement is that it’s gradual: you can rapidly code a large ball of mud and get it working, then refine it to make it safer with typing later on. Chalk this up...
I wrote a blog post that is now on my employer’s engineering blog. I used my normal Markdown/Hugo/Github flow to author and edit it, so if you want to see the revision history it’s right here.
I wrote another game game for a Weekend Game Jam with an Anime theme. A short bit of interactive fiction. It’s Webassembly using ebitengine. <a href="https://jasonbot.itch.io/anime-watcher">Play The Anime Watcher on itch.io</a>
The Python 3.10 release includes the new match statement, which superficially looks like the case/switch statements in other languages but semantically is closer to pattern matching in Haskell or Rust. Like the walrus operator*, I...
I was recently discussing some dumb Python tricks at work with some colleagues and showed them this old Gist I wrote, which in modern times I would rewrite to look like this: import functools import inspect import sys...
I wrote a game inspired by a tweet a coworker shared on a work Slack channel a few weeks back. It’s Webassembly using ebitengine. <a href="https://jasonbot.itch.io/trump-run">Play Trump Run on itch.io</a>
I wrote another small puzzle game for a Weekend Game Jam with the theme Colors. It’s Webassembly using ebitengine. <a href="https://jasonbot.itch.io/little-guys">Play Little Guys (A Puzzle Game) on itch.io</a>
This was inspired by a short chat I had with a coworker, trying to give a simple, 15 minute explanation of something that took me a decade to wrap my head around due to poor teaching resources online. Async programming in modern...
Python has continued to progress and introduce new features and modules. In this post I’ll cover features I haven’t used much (or at all) and how I plan on using or not using them. Walrus Operator I’ve been aware of this for a few years....
I can’t understate the importance of how much the following have changed and improved the way I write Python and have confidence in its correctness: Continuous Integration Black Dataclasses Mypy Type Hints Continuous Integration This...
There is a convenient but untrue fiction about Python that the language specification is somehow cleanroom and CPython is actually “just an implementation.” This has always been false, and harmful at best. Look at __dict__. Near every...
Let me spell something out for you trickster-meanies: # HELLO I AM thingy.py __all__ = [X, Y, Z] X = True Y = True Z = True Reasonable, right? >>> from thingy import * Traceback (most recent call last): File "<stdin>", line 1, in...
End product Please disregard the poor camera placement or the labels, it has since been fixed. Thinking Back, It Was All So Simple Now we have the system up and running, let’s talk random obstacles and next steps. This is something of an...
Hardware The RPi The Raspberry Pi is a (I think) Pi 3 with Wifi I found in the garage with a cheap clear acrylic case. It might have been a RetroPie rig in a prior life? Or one I was “gonna get around to” doing something with and finally...
Running the software Frontend server The frontend has three responsibilities: Display information Perform access control (don’t let strangers on the internet print out jobs) Forward appropriate calls to the backend I’m using Go’s base...
Search Random