Pinned ping

I'm looking for employment again.

I'm good at Python, Git, Linux, and Django.

I have experience with CI/CD and AWS.

I'd be very excited to work for a nonprofit or to grow skills in Rust, Haskell, or embedded development.

I'm looking for part-time work but I'd consider a full time position that's flexible enough. I'm good at remote work; I cannot relocate.

To obtain a position that meets my needs I can in turn be flexible about compensation.

Available: October 1.

‘HTML, CSS and our vanishing industry entry points’

this says so many things i agree with, i hardly know where to begin pulling quotes. web design and dev used to be something you could organically transition toward from a variety of other roles or hobbies. there was a broad, porous space between laypeople and ultra nerds. this zone created a culture i was able to grow and succeed within. it is now nearly gone.

🛎️ Website update:

- Still a bunch of CSS cleanup to do, but I've got marginalia working! 😍 Soon I want to get a "light theme" toggle going.

- Lots of revision to my article re: "purist free software systems shouldn't shun non-free programs"

- Some revision to my "exec the arguments" draft, including implementation in bash, c, python, rust, and scheme

@datagrok warning: afaik bitstream vera also has worse coverage of international scripts.

Do you find that on some sites, emojis show up as outlines instead of color images? If so, try uninstalling DejaVu fonts and installing Bitstream Vera fonts instead.

… So I am excited to say that as soon as I get all the detritus swept up from having ham-handedly smashed their CSS together with mine, I'll have nice mobile-friendly marginalia and sidenotes on my Markdown-source-format webpages! It's already mostly-working! I've wanted this for so long! 😁

Cascading style sheets -/+ Show more

Cascading style sheets -/+ Show more

a do-while loop in shell script Show more

TIL Two popular textbooks on mathematics for data science (one for math experts and one for everybody else) both offer complete downloadable PDFs at no cost!

An Introduction to Statistical Learning

The Elements of Statistical Learning

(Grumble grumble I wish they were epub though)

👀 Updated draft: "The 'run the arguments trick,'" up to 3k words now on this ode to these four little characters: "$@"

Added new Rust and Guile Scheme examples, plus lots of revision.

Just a few more improvements then I can rip the "draft" warning label off.

Attempting to implement this bit of shell script in .

exec "$@"

My first working attempt used eval with quasiquoting and it looked very messy. Second attempt:

(let ((args (cdr (program-arguments))))
(apply execlp (car args) args))

It works, but is it idiomatic? Is this how you'd write that? Can it be shorter or clearer?

👀 Unfinished draft article about one of my favorite pieces of shell script:


"The 'run the arguments' trick":

So you're saying I could achieve my life goal of becoming a scruffy mountain hermit while still enjoying screaming fast internet, sending kids to high quality public schools, and able to get to a busy international airport in 2 hours all without owning a car? How do I apply

Making plans to visit and explore around one of the least-used train stations on the entire Nankai line the next time I visit Japan, and I am vibrating with excitement!

There's something about reliable public transit being available in the beautiful middle of nowhere that just thrills me.

(Get this: despite having fewer than 20 passengers per day, trains depart from this station at least hourly from 5am to 9pm 😍)

🛎️ Website update: finally revised a short article that critiques Richard Stallman and the Free Software Foundation (that I am a member of) for their strategy of shunning proprietary software:

🛎️ Updated my website to automatically show a "this page hasn't been updated in a year" and "this is just a draft don't read it" warning on stale and/or unpublished articles. 👍

So I wrote this little unknown Python utility in 2016 to make it easier to use custom exceptions to abort a script instead of littering sys.exit() around.

One little feature I just added: if I don't specify an exit status with the message, pick one I haven't used, automatically.

What a rabbit-hole! Since exceptions are classes and I didn't want to use a class decorator, I needed a metaclass to make this happen!

Longer-form blog post coming eventually.

Eighteen years(!) of Python and only today have I finally taken on a problem that required the implementation of a custom metaclass to solve.

I don't know if that says more about the niche usefulness of Python's metaclass feature or the lack of heady challenges in my career so far.

I even had to learn the difference between __new__() and __init__().

And it works great!

Feels pretty good to learn new stuff.

Details, maybe a blog post forthcoming after some finishing touches on the code.

@cwebber this might be a data point at least tangentially related to your upcoming copyleft conference talk:

Show more

cybrespace: the social hub of the information superhighway

jack in to the mastodon fediverse today and surf the dataflow through our cybrepunk, slightly glitchy web portal