Josh Holbrook

alaskan software engineer + sometimes hardware tinkerer. he/him.

2025-06-25

@indutny I forgot to mention that - management is definitely embracing AI. We have Glean hooked up to our Google Docs and Notion, and we're in the process of rolling out All Hands for agentic coding. I... I have feelings. But I'm also trying to look at it as an opportunity to learn a new skill šŸ˜…

2025-06-25

(Remember the days when you could find a job on Twitter? Ahh, those WERE the days. I don't know if Mastodon is at all like that, but still... posting here just in case.)

2025-06-25

My company is hiring a couple of full stack staff engineers!

job-boards.greenhouse.io/moder

Our stack is python + graphql on the back, and typescript + react on the front. We're *fully remote*, based on West Coast hours. We're also a pretty relaxed place to work - people are empathetic and kind.

Note that, while this JD asks for a frontend-focused engineer, our second staff head is actually looking for someone more balanced. Also: this is a full time role, available in all US states except Hawaii. We are unfortunately not sponsoring visas at this time.

If you're looking and are interested, reach out, and I should be able to help you get your resume in front of a real person. Let me know!

2025-06-19

There are a few reasons to go custom, rather than trying to get it working with CUPS. First, CUPS really really wants to work with either IPP/airprint (modern) or ghostscript (legacy) and this guy speaks in raw serial and escape codes. Second, ghostscript dropped the driver for it many, many, many years ago.

I do want to try forking ghostscript and porting the original driver to the modern day. That plus a modern CUPS stack might get me IPP with graphics and PDFs. But I also really want access to that native format, so… custom 9100 service, hell yeah.

2025-06-19

I also have an Architecture in mind for writing a 9100 RAW interface for it, but… we’ll see if I actually do that šŸ˜†

2025-06-19

I got my ImageWriter II to go into self-test mode today - here’s the output. Serial is a work in progress. I wasn’t able to figure out the Apple II basic commands, and I think my null modem adapter is busted. But a new cable that’s actually meant for a standard rs232 port is on its way!

The ASCII character set used by the ImageWriter II, repeated over and over, in rainbow colors
2025-05-30

cardassian computers run vax/vms

2025-05-30

why is terraform’s type system so bad? 😩

2025-05-23

somebody should do the aiscream meme with vintage disk drives

Ruby-chan?

*BRRT BRRRT BZZT BRRT*

Nani ga suki??

2025-04-21

I was actually musing the other day about whether or not they'd Incredible Journeyed. šŸ˜†

Were you there when I got shouted down by the CEO for 10 minutes in the first (only?) meeting with the Levines? Incredible stuff.

Josh Holbrook boosted:
C J Silverioceejbot@toot.cat
2025-04-21

"How the Uber of weed went up in smokeā€

sfstandard.com/2025/04/20/eaze

Really doesn't go anywhere *near* into enough detail about how incompetent leadership at that company was, and how blindingly stupid they were about not fixing anything, from broken technology to a broken business model once legalization hit. They had to go vertical to make the costs work, and it took them a while to figure it out. (California really screwed it up, as the article explains.)

Their marketing team was amazing, though.

The CEO story is *itself* amazing in the ā€œwtf" way and involves guilty pleas in the *Wirecard* scandal plus cooperation to get leniency. They played games with credit card companies-- not actually legal ones, it turns out.

The tech story was turned around in 2019 and 2020, cough cough, and that team could execute on things like implementing bank transfers (legal!), but it was far too late. They'd blown far too much money. And then those union-busting Green Dragon people showed up and took over, and oh my god, they were awful. What had been a pro-union company suddenly did a switcheroo.

I listened to the audio of the Green Dragon woman firing somebody for wearing a union pin. I got a chance to ask her to her face in a Zoom meeting why she’d hired a notorious union-busting law firm if she was so pro-union, and got BS in response. So, well, I resigned. I gots my principles somewhere around here even now. IMO they were not innocent victims in any way.

Side lesson: if your distinguishing feature is that you're an "uber of fill-in-the-blankā€, you cannot outsource your technology. The technology is the point. It's your heart. What are you even thinking.

#420

2025-04-19

@sushee I mean a way to install local modules as dependencies - like Stardeck::Window depends on Stardeck::Process, which isn’t on CPAN but is in my monorepo.

I’ll take a look at perlbrew though, maybe it fills a niche I’m missing

2025-04-19

Dist::Zilla is really good. In general the perl dev tooling is solid, once you stumble on the modern stack. The long history can make that hard to find, though.

The only thing I feel like I’m REALLY missing is workspaces - given perl’s tendency to break out nested namespaces into multiple packages, this would be a natural fit. But alas… not a big deal though.

2025-04-17

@sushee yeah, I usually use config classes for structuring a la python dataclasses. I think for this project I’d be OK with a simple hash though.

test::more is definitely on the radar! I haven’t dug into it but it’s an import I’m keeping an eye on for sure

2025-04-17

More perl shenanigans:

module-starter is pretty good, really happy with what it gave me. Some things to figure out, but a good start.

perlcritic has some odd/limited rules at higher levels. In particular, its args unpacking rules are a little limited. It’s a fair critique, and I did pull in Storable dclone. But I did have to ignore it in the end.

The test experience looks smooth. I do wish I had a spec-style reporter though! Doesn’t seem to be anything like that in the perl ecosystem.

Realized that, for my needs, I don’t want classes - just subs. I might make a config class though. We’ll see.

2025-04-16

@corruptian I’m honesty tempted to stick with subs. My motivation for objects mostly comes from a sense of mutable state and habits from Python. But the truth is that I only have a few stateful params (a $running shared scalar and a command queue), and the work is straightforwardly procedural

2025-04-16

Trying to step up my game with perl - trying to introduce threads, classes, modules, tests and perlcritic.

My impression of both classes and modules is that they're relatively fast-changing - the documentation is relatively complete, but a bit scattered as a result. Trying to crib off other peoples' modules, and we'll see what works when I write tests. But I definitely have concerns about finding something that works.

I like that perlcritic has different strictness levels. Prior to refactoring towards classes and modules, I was passing --harsh (minus backticks). My biggest issue is that the output references a book called Perl Best Practices, which I don't own. I'm also not certain that this level of strictness is necessary. But I am letting it guide me towards better habits. Once I internalize them, I can be a little more casual I figure.

I haven't written tests yet, but I do like that perl standardized on tap. I'm curious to see what the reporter output looks like - node.js tap runners tend to have really pretty reporting, but we'll see with perl.

Threads are, so far, working well for me. But I don't really know what to expect when it comes to sharing thread-safe scalars with module classes. I suspect there will be complications.

If you happen to have good resources on these things, I'm definitely interested. Learning Perl doesn't really dive into classes, and Intermediate Perl doesn't quite give me the treatment I need either afaik.

2025-03-17

As I posted previously, I very much prefer pyright to mypy. But most people use mypy, so I'd like to explicitly support it. This release adds mypy to CI, and fixes the 30+ errors it turned out it had šŸ˜† I also fixed an issue with pyright that crept into more recent versions around expecting self parameters to be annotated.

I thought this would be a bigger lift, but it was simple enough that I could swing it on my lunch break. Enjoy!

2025-03-17

I just released pyee v13.0.0! pypi.org/project/pyee/ This improves type annotations, and ensures that both mypy and pyright pass type checking! Thanks to Yuichiro Tachibana for flagging the issue and contributing the overloads on EventEmitter.on!

2025-03-17

fr what the shit is this error?? github.com/jfhbrook/pyee/pull/

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst