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

A Case for Match

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...

Python as a Language is Inescabably Coupled with its Implementation Part 2: The Tracer

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:...

Trump Run: A Game

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...

Little Guys! A Puzzle Game Without Enough Levels

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...

Async programming: understanding it from fundamentals

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...

Modern Python: Features I Haven't Used But Plan To

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...

Modern Python has Changed How I Code

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...

Python as a Language is Inescabably Coupled with its Implementation Part 1: LET'S DO DUMB SHIT WITH THE GC

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...

__all__ is a Sacred Space and you Murderous Goblins are all Profaning it

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...

ZPL-O-Rama Part 5: Postscript

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...

ZPL-O-Rama Part 4: The Hardware

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...

ZPL-O-Rama Part 3: Software

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)...

ZPL-O-Rama Part 2: Concepts and Architecture

Problem Space To automate the process of printing and reporting back a ZPL payload, we need: A way to get the ZPL from the user A way to send the ZPL to a printer A way to take...

ZPL-O-Rama Part 1: A personal/work project (Introduction)

Introduction In my spare time on weekends in between errands and mornings before everyone wakes up, I’ve been working on a little project I’ve been having a lot of fun with:...

The Shanling Q1 Music Player

Introduction A while ago I was bored with the Mechanical Keyboard rabbit hole and started looking into other, equally strange rabbit holes to dive into. At around the same time...
Shuffle Search Random