I share tips from front-end work to hardcore server-side challenges, I've co-authored two acclaimed books: Accelerated DOM Scripting with Ajax, APIs, and Libraries, and The Art and Science of CSS.
The RSS's url is : https://snook.ca/jonathan/index.rdf
2024-11-13 02:53:20
When I first decided to get an espresso machine, I went for a top of the line machine. I wanted something that would last a lifetime. The same applied to the grinder. I bought an ECM V-Titan 64, with titanium-coated flat burrs that are quoted to last at least 50 years before needing to be replaced.
Here I am, 8 years later, and finding myself somewhat frustrated with my grinder.
I make one or two espresso-based drinks a day. As such, it’ll take me a couple weeks, at least, to get through a small bag of beans. If I’m travelling, it could be upwards of a month. If I’m not in the mood for coffee, even longer. Over that time, the beans continue to degass, requiring small adjustments to the grinder each day. That, in itself, isn’t a problem and the grinder does a fantastic job of enabling these minor adjustments. The problem is in the chute design. There is 3 to 4 grams of grind retained in the chute. Not a big deal if I’m doing a number of espressos in a day but trying to dial in necessary adjustments means grinding out a bunch to clear the old stuff before proceeding to grind out what I need. If a bean gets stuck in the grinder (which happens more frequently than I’d like) then I go through an awkward process of cleaning out the grinder, creating more waste.
The workflow was becoming frustrating enough that I decided I needed to switch to a grinder that was optimized for a single dose workflow.
I had been eyeing the Weber EG-1 but, as you can imagine, that price tag is eye watering. Which, looking at the price of the V-Titan these days, is also getting quite pricey. I’m pretty sure I only spent around a thousand dollars on mine.
The espresso subreddit has highly recommended the DF64, which is more reasonable, price-wise, and has plenty of favourable reviews. The DF64 is what I ultimately settled on.
I’ve only had the DF64 for a day, so I’m not at a point where I can enthusiastically endorse it but I am already enjoying it. It takes maybe a couple extra seconds to grind but it isn’t any noisier than the old grinder and I’m getting much less retention—less than half a gram—which is a big part of what I wanted.
Considering the espresso scene these days, it’s easy to fall into an involved process with paper filters and metal screens and OCD tools and WDT tools. While I’ve tried pretty much all of these, I’m finding myself sliding back into a more simplified workflow and the grinder is part of this. My goal is to have a high quality espresso drink within 60 seconds and a reliable workflow makes a huge difference in achieving that.
Tangentially, I’ve been considering getting into pourovers and it’ll be interesting to see how reliably I can change grinder settings and still get consistent results. The Weber definitely sells itself on the flexibility of being able to handle this scenario so if the DF64 doesn’t live up to expectations, the EG-1 might very well be considered.
Anyway, time to get back to the grind…
2024-10-18 22:16:41
After a couple years of not putting any revenue into the business, I realized that it was time to say goodbye. I have officially dissolved my corporation, Snook.ca Web Development, Inc.
My personal blog, Snook.ca, marches on.
2024-09-05 04:31:01
Back in the late 80s, my mom bought me a 386sx 16MHz computer equipped with a 2400 baud modem. It was my first computer that enabled me to connect to an online world. Back then, there was large behemoths like AOL and CompuServe but there were also independent services called bulletin board systems, aka BBSs.
A BBS was somewhat of a one-to-one connection. Most independent BBSs had only one or two phone lines with which someone could dial into. They were little islands of community that one could play simple turn-based games or leave messages on, like a physical bulletin board. Once I logged off, somebody else could dial in and leave their messages or take their turn in a game or two.
Given the limited speed of modems of that era, these services were entirely ASCII text-based. ANSI was a superset that included character codes beyond plain text that could change the colour. As a result, rudimentary and blocky graphics (and even animation) were possible. I remember playing a Risk-style game that was ANSI-based called Global War. (Check out those stunning graphics!)
In order to create a distributed system of messages, allowing for communication across a multitude of BBSs, a BBS would have to connect to another BBS and synchronize messages between the two. FidoNet was probably the most popular of these systems.
I even ran my own board running on Telegard called The Jester’s Palace, where I went by the handle The Jester.
The Jester turned out to be a surprisingly popular name and thus, I decided to change my name (and give myself a promotion to boot): I became The Kind King. Looking back, it’s uncreative and embarrassing but I chalk it up to being a dumb teenager.
In my late teens, I discovered a world of pirated software being distributed via BBSs. Which, when you consider the logistics, is somewhat impressive. In order for software to go from one city to another, a long distance phone call would be made which would cost a lot of money back in those days. (I also used to wear an onion on my belt, which was the style at the time.) To avoid paying such costs, people would use a PBX to (illegally) pass those charges onto large corporations and hope nobody would notice. It is within this world that I also learned about Phreaking and Wardialing.
There was a subculture of people involved in distributing pirated software (uh, warez) that coalesced into groups like Razor 1911, The Humble Guys, and FAiRLiGHT.
Within the software that were being distributed, files were included to let you know who was responsible for releasing the pirated software (and cracking the software, removing any copy protections that might’ve existed).
As a result, an entire art scene formed around these groups as artists worked to outdo each other and promote the hacking groups and the BBSs that distributed the software. Being a creative teenager in high school with too much time on my hands, I began creating ANSi art (the warez scene had a thing for lowercase i’s) and even found myself part of an art group called AiR: ARTiSTS iN REVOLT.
Alas, I lost all of my work from those days. Some googling has uncovered one piece from 1992:
I remember my best work as a recreation of the poster from the movie Universal Soldier. I wish I could find that piece again.
It’s interesting to me to see the connection that came from that creativity and curiosity and how it led me to my career doing design and development.
BBSs were where I met my first roommate, Brent, and with whom we’d end up with a bit of a revolving door of roommates, some of who were also from the warez scene. At one point, our house had probably close to a dozen phone lines running into it with each of us running our own board, and I wonder if the phone company technician wasn’t at least a bit curious why we needed so many lines running into a residential townhouse.
I still have that old 2400 baud modem, tucked away in a box, as a reminder of where it all started.
This trip down memory lane brought on by a post from GReG SToREY. Check out The Art of Warez.
2024-06-22 00:12:58
There’s a certain simplicity to the life of the harried and married with children: the nuclear family with two and a half kids. The day to day is predictably unpredictable with its routines: breakfast, lunch, dinner, work, meetings, daycare, changings, sports, mid-night feedings, music lessons, and so on and so on, day in and day out.
And then we split.
Divorce established two worlds. In one world, I was a parent, taking care of two kids and all the aforementioned duties and then some. The other world, I was single and child-less, relatively free from parenting responsibilities.
That other life was like another dimension: a life spent in the future but only for a few days at a time—days that were often spent in another city, another country, another continent. “Once the kids are on their own, I can travel farther, for longer. Maybe I’ll move somewhere.”
Pre-pandemic, deep within a relationship with a woman from one of those other cities in one of those other countries, I was at the peak of being split in two—being asked to rearrange schedules—defragging the calendar, as it were—to maximize the segments of time in this alternate dimension.
Fifteen years post-separation, I find myself on the cusp of the past meeting the future and returning to a one-dimensional world. My eldest is planning to move out soon. My youngest has one more year of high school left. My ex has relinquished control of the rigid schedules we clung to for a decade and a half.
I still have commitments and obligations. There’s still school and work drop-offs and pick-ups. The schedule has become like a Rorschach test, unclear from week to week or day to day.
Eventually, shortly, the two lives will converge back into one. The nest will be empty and I’ll no longer be split.
2024-06-19 23:10:54
Today’s coffee is tasty—different tasty. It feels thick on the tongue, like a high percentage chocolate, with a bitterness bordering on sweetness. Subtle notes are difficult to find, hidden amongst the clouds of creamy, frothy whole milk that blankets—nay, marries—the espresso. Today is not a day for subtlety. It is a day to be consumed.
And this pain au chocolat ain’t bad, either.
2024-06-01 23:43:34
I’ve never been big about celebrating my birthday. I’m not sure why. I don’t recall any childhood trauma around birthday parties. Whatever the reason, my birthdays have come and gone without much fanfare. Perhaps a quick visit to my mom’s where I would be treated to my favourite dessert: Betty Crocker Cherry Chip Cake with French Vanilla icing. Pure nostalgia from when she’d make it when I was a child. If she didn’t make it, I’d make it for myself.
Big milestone birthdays like turning 20, 30, or 40 didn’t really feel important or necessary to especially celebrate, nor did I feel any particular existential dread.
This year is different.
I am turning 50. Thankfully, existential dread has been kept to a minimum. I’ve never really had an issue with aging—although society does tend to look more kindly on older men, beauty-wise. I don’t feel that pressure to stay (or look) young. Good thing, too, because that gray hair is pervasive, if you know what I mean.
I did see this milestone coming, though, and with the 50 Before 50 challenge, I had thought to culminate that adventure with a final dinner on or around my birthday. But I finished that a year ago. Whatever shall I do?
Multiple celebrations.
I’ve got three separate parties planned: One in Ottawa with friends, one at my uncle’s farm with family, and another in NYC with another group of friends. I’m very grateful for the friends and family I have in my life and what better way to celebrate fifty revolutions around the sun on this planet than to hang out with them while enjoying some great food.
Here in Ottawa, I booked Perch, which is one of my favourite restaurants in the city. I’ve been a few times and have always enjoyed their understated yet elevated food experience. And in NYC, I booked Atomix, which is one of my favourite restaurants in the world.
After this, I can go back to small cherry chip celebrations. For isn’t it great to be able to enjoy and celebrate each day we’re on this planet? No need to save it up for one big day of the year. (or, er, half century.)
2024-05-06 08:34:43
Thirty years ago, I used to work at Toys’R’Us. I really enjoyed that job and sometimes consider returning to a life of stocking shelves. It’s become a bit cliché at this point to hear another tech bro wax on about how they’re going to quit and open a coffee shop, start woodworking, or become a janitor somewhere. This post isn’t that post.
About once a week, an 18-wheeler would back itself up to the truck bay, and then two or three of us would unload every box on that truck as quickly as we could onto a bunch of skids—usually in about 3 hours or so. The store was divided into three sections: the very memorable A, B, and C sections. Everything coming off the truck would be quickly sorted into piles for each section. Work there for a little while and the size and shape of boxes become easily identifiable without even needing to look at labels.
From there, all of that inventory needed to be moved either to the floor (ie: onto store shelves), overstock (the piles of inventory packed 4–6ft high on the very top shelf), or thrown into the back, aka the 500s (the ancient term used to refer to the storage hidden from customers).
I used a specific approach of grabbing the largest boxes from the bay and putting those away first. This created the illusion of faster progress—I could visually see the piles shrink rapidly until all that was left was a small pile of tiny boxes. Selfishly, this created the illusion to management, too, that I was working faster.
To this day, I still do the tasks that look like they have the biggest impact.
When I do the dishes, I do the plates and bowls first, then the glasses, and then the utensils. Doing the big stuff clears off the counter and makes it look like I’m getting the dishes done more quickly. (It’s not an unheard of thing for me to “let the utensils soak”, to be dealt with later.)
When working on an app, I’ll build out the bulk of the front-end before I jump on the backend. I’ll get the easier data types editing and saving before I work on the more complicated form interactions.
They say the last 20% takes 80% of the time and I chalk it up to the big boxes and small boxes. Putting away all the big boxes might look like I did 80% of the work but it’s a visual trick. In reality, there are a lot of small boxes that still need to be put away.
Sure, I might be able to get something that a client can see and interact with within a day or two but the reality is that a quality product means putting away all of the small boxes. That takes time, time that might visually look less impactful but in the end is just as important as everything else.
2024-03-31 22:40:14
I had been considering whether to start up a personal newsletter. I subscribe to friends’ letters, in which they describe the various goings on in their life—family, house projects, travel, etc. As an email, it feels more intimate.
Couldn’t what I say in an email also be said on the blog? Which led me to consider a number of things…
With social media, we can see who follows us. Sure, there’s no guarantee our posts will make their way into their algorithm. Maybe they’re not online this week. Yet, we can see their names and know that they have a likelihood of seeing them.
A newsletter is quite similar. There’s a subscriber list and we can see every name that’s on it. Sure, they can be busy and archive it without reading it. The email can get caught in a spam filter. Yet, people want to fill their already busy inboxes with what you have to say and are likely to read it.
For anything impersonal, like brand marketing, promotions, or sales, it makes sense and is highly advantageous to know who your audience is. When I sold a book, it was useful to be able to market to those who bought the book to buy the workshop. It was useful to market to those to come to a conference.
Blogging feels detached from the audience. I can write knowing that nobody or anybody might be reading it. I can write for me and hope the words resonate. And having taken analytics off, I have absolutely no idea if anything resonates. It’s like putting artwork up in a museum. Each person gets to enjoy it in their own time and in their own way and the artist is likely never to know. Unless you say something to me, I have no idea if you’ve read these very words. [People would approach me at conferences and mention something going on in my life and I would briefly think, “How do you know about that?!” Only to remember that I had written about it publicly.]
What’s likely evident based on the mere title of this post is the conclusion that blogging is to an anonymous audience. I can guess who my audience is but I will never truly know. Not only will I not know who my audience is when I initially post, I won’t know who my audience might be at some point down the road.
I might still start up a newsletter but in the meantime and until then, I’m enjoying the process of writing to an unknown audience.