A letter to the past
February 7, 2026, 2:15 pm

10 years ago, I wrote a letter to my past self, because 10 years before that I had done the same thing. This will be my third letter to myself.

The first letter (2006)

The second letter (2016)

Think back 10 years, how old were you?

I was 34 when I wrote the last letter. I randomly remembered it while looking back through my blog. I was working in San Francisco and I made myself a calendar reminder to do it again today. I got a notification yesterday, and then almost forgot again if not for another reminder today.

These days it's hard to remember my life timeline without Linkedin. It catalogues where I was when. At a certain point where I was mattered for my timeline, and for the last decade or so it was where I worked. In 2016 I was working full time at the Academy of Art. I worked there for 9 years and then was unceremoniously dropped at the start of COVID.

If you ran into yourself at that age, what would younger you say?

He would tell me to keep drawing. He would be upset that I got divorced again. He would probably be surprised I got married again. They would be so surprised I was still in San Francisco. He had been telling everyone that I would never live anywhere longer than 7 years.

He would be glad that I had made a whole comic book, but probably pissed I never released it. He'd be pissed that life had caused me to burn through my nest egg, especially in almost the exact same way my dad did.

What would you say back?

Being good to your coworkers is important in life. Having your team's back and trusting that they have yours is everything. No company has your back. Every company will drop you on a dime. Don't stay in a comfortable job forever if you can do better.

Friends are so important. Basically the most important thing. Pick up golf earlier. Don't push away friends for ego, and don't expect that anyone owes you anything. Least of all any of the women in your life. None of them owe you anything. But maybe if you can be humble good things could happen.

Stop talking over other people. Allow others to be generous to you, and be generous to everyone you can. You'll need their generosity when your ability to be generous dries up.


When I look back at this letter, I will be reminded that this was a real low point in my life. In a life of peaks and valleys, the whole world and me included are going through a real rough patch. It's been a real bad second half of the decade. I just hope things can pick up soon.

I've been doing some learning
December 2, 2025, 2:33 pm

I have been unemployed for over a year. It has not been a good time. Being unemployed this long is something that you dream about when you're employed. Except you dream about it as a vacation. You think you'll get all the work done that you never have time for. You think you'll try new things and go places.

And maybe if it had been a planned sabbatical, then you might have. But when you're let go, and you can't find work, it's pretty much a constant stream of depression and stress. You ebb in and out of wanting to try some days, and wanting to play games and eat ice cream and sleep until 2 the rest. It's very difficult to stay motivated when stress keeps adding up over and over without major relief.

Relief comes in small doses. Short days spent with friends without worrying about bigger things. Small victories when you learn something new and manage to apply it effectively.

I've been learning a lot about new and upcoming things in web development. There's a lot. I started learning about color systems and the new css color functions, and then color-scheme. I then started going over old webpages and beginning to design them back up from the ground.

While writing up this new Popover Tutorial on my tutsos site, I ended up starting to completely overhaul its style system. And then I started updating a lot of the php that runs things underneath. Adding in iframes seems like something I wouldn't have ever been able to effectively make happen in years past, but with a little agentic help, I managed to make some tools that are not only intuitive for myself, but make the site more useful than it ever was before.

I have been diligent
December 29, 2024, 3:59 pm

I have kept up a daily routine of practicing Japanese for the last 3 months. I am over a 120 streak on duolingo, and I'm quite proud of that.

I have put in some more work on my kana website. I am still trying to figure out the best layouts and design and tools for it. It has been a lot of back and forth and some of the most dreaded thing a developer can say. ... refactoring. *shudder*

But it is starting to get to a place that feels quite useful, not necessarily as a full on keyboard yet, but definitely as a learning tool. It helps me to visualize the possibilities of だくてん and はんだくてん and the like. I wonder how google will begin to recategorize my site for the mere fact that I these characters now show up in it.

This latest set of changes has caused an enormous refactor. I had been very specific in my classes and names, and I realized that in order for the tool to be better and more future forward, I needed the class names to be much more generic. Instead of saying a position was the hiragana position, it became the primary position. Instead of the cardinal position being called romaji katakana and keyboard, I just switched to calling them their cardinal names of northwest, northeast, southwest, southeast. Then this caused problems, because of course i shortened the classnames to two characters like ne and sw, but you se both ne and se are romaji transliterations of Japanese characters, and I was ALSO using those already in other parts of the code. Oh it was a big mess. But I think I finally have it moving in a much better direction.

While I learn my Kana
November 8, 2024, 11:58 am

For the last few months, I've been practicing my Japanese diligently. I have a goal to be able to travel to Japan and be able to communicate. I've always wanted to. I am now at the place where I can more or less recognize all of the Hiragana. This is a big thing for any learner of a new alphabet. I can read Japanese. I can't understand 90% of it, but I can read it. And that is so cool.

I am now learning the katakana, and God help me, I will soon have to learn the kanji. But that day still seems far off. I've begun trying to read conversationally, and it is... very difficult. Manga is way too far off for me. Don't get me wrong, I'm trying. I bought some of the manga I loved like Naruto, One Piece and Dragonball, but even trying to get three pages into any of these is an absolute struggle. Mainly because as soon as you learn the hiragana you feel incredibly accomplished, but as soon as you get into the real world of Japanese, katakana and kanji are EVERYWHERE. Katakana feels like at least 50% of what you'll read.

And this has been mildly disheartening, but also has bolstered my resolve to learn even harder.

I sat down to make myself a reference sheet for the kana, and I am now sharing it with you, dear reader. https://hdraws.com/kana. This is a work in progress, and currently it's mostly useless on mobile. But it is, at the writing of this blog post, only 2 days of work in javascript, react, and css. I did some big work in css grids. I'm learning a lot about keyboard layouts as well.

Anyways. Thats been the last few days for me.

I improved a thing
October 27, 2024, 5:04 pm

Was having a real interesting css problem today, and had a sitdown with a programming group I'm part of and my buddy Doug ended up putting me on the right road toward a great solution.

I love tarot, for a number of reasons. I like the art, I collect tarot sets. I like the rules and improv. It's the same reason I like DnD. And I like compendiums. Set pieces of knowledge that can be sorted and searched. I don't particularly cotton to the magical aspect of the process, and if I ever give you a reading, expect to be thoroughly pushed toward the fun of it, not the mysticism.

I have put together a site called Pulp Arcana. https://pulparcana.com I'd like to hear some feedback on it. If you're interested in tarot, I'd like to know if you find it useful. If you're not interested in tarot, I'd like to hear your thoughts on the ux of it.

I have some more things to work on obviously, a dev's job is never done. Right now I'm using the Rider Waites deck, since it's public domain, but I'd love to make my own. I'd like to make more table layouts, and i'd like to animate and gamify the actual card dealing. I'd also like to push the dataset and filtering further. Please let me know your opinions on this.

I find myself in a rut
September 22, 2024, 1:10 pm

A couple of months ago, I was let go from my position at Krafton. It has been difficult the last few years to write about anything I was doing, since most of it was merely in the pursuit of my work. That work is often specific, and often for future products which cannot in fact be discussed.

For the past couple weeks I have been working hard on one of my own project, FilmsWith. This project is... perhaps the thing I am most proud of creating so far. It involves a subject I care deeply about; movies, film, and television. It is created using modern technology, mainly React, which means I can point to it in the modern day and not be terrified that it's code will be somehow revealed.

But it was started in a time of early React. Things have changed significantly since then, and I have only barely been able to keep up with things as they changed amidst the immense scope of my growing website. Truly, I cower in fear of the prospect of having to significantly update the code of this, my main website. It is a mammoth of a site cobbled together over 2 decades of personal and web developmental change.

I recently began a rather large code refactor of my filmswith site. I have been, in fact, quite diligent about it. I am now reaching out to others in an effort to improve it's UX. I have never really 'pushed' the website, because it has never really felt done. Many things were only half created, or half thought out out, or outright not present. But now, after my concerted efforts, I am close to something I can feel is ready for consumption by more than just myself.

The FilmsWith website was created for me. Created 'by me' is irrelevant to the more relevant 'for me'. I use it. Constantly. I find in my life that I reference movies and tv shows. And in the day and age of phones in pockets, having a quickly accessible resource for those topics is something I can't believe I was able to create.

The title of this particular post states that I am in a rut. But I am not in a creative rut. I am in a personal one. I find myself with so many avenues available to me, and so many paths to take, and none of them leading anywhere significant. Over the last few years I have worked and slept and ate, and like many before me, I find this to be unsatisfying, and worse, I find myself in a position of loneliness. Many of my friends have moved on and up, and I am meandering forward.

I wonder to what extent FilmsWith could help propel me upward. I wonder to what extent I would need to pull it down from the bottom and cobble it back together to remodernize its modernity. It was made with create-react-app. A tool which, at the time, was the appropriate tool to use. But now, not only has that tool fallen out of favor, it has in all aspects been abandoned. I will need to restart to stay afloat. It is the one aspect of the web which I hate the most. The fact that an old boat cannot simply be put in the water forever. It must periodically be brought ashore to have a significant amount of its parts be Theseus'ed.

I suppose that isn't true if the thing were to be abandoned or never improved. I have never been one to sit around and not improve. But as I get older and more cobbled together, I find it harder and harder to make my own repairs.

It has been over a year since my last post. So much has happened and changed since then. Maybe I'll find more time to write in this blog soon. Probably not... but maybe.

Github Copilot is the Killer Dev Tool
March 18, 2023, 4:20 pm

I decided to take github copilot for a bit of a test run recently. It's been very interesting to test its capabilities, and see how it works around my own coding idiosyncrasies.

We worked together to make this tictactoe game today. And it works pretty ok. When working on a fresh project with copilot, it has no preconceived notions of your coding style, and so it just knows some of the absolute junior basics of coding.

As you start working through a project, it starts to learn what you've done, and it gets better not just about what to suggest to you, but about writing in your style. So if your style is "bad" it will be just as bad as you in style. It's very unopinionated in that way. Use a particular case? It will too. Tend to use arrows over functions, it will too. It's very forgiving in this way.

When you give it enough setup and foundation, it can start guessing a lot of what comes next. But if you start with a nebulously named function, it just sits there blinking at you. Even trying to start with a DOMContentLoaded just causes it to leave you room. But if you start with some html structure. And start with some css classes. And start throwing in some initial variables, by the time you need to do actual things, it starts to pick up real fast.

When you have an array called colors, and a function called rand, and you start to type out `const randColor` it is smart enough to guess what you're doing and predict the next bit.

And I think that's the big point about this. Is that copilot isn't the magic dev killer. But it's the killer dev tool that we've all been wishing snippets and intellisense really were. It's the next big evolution. And there is no reason to be scared of it. Because truthfully it's only ever usually right if it's iterating or duplicating, and it's only ever right when it guesses about 50% of the time.

Often it will spit out five lines of stuff that you only want one line of. It tries its best, but it's best is only really middling. It will make wild guesses, and often be close to but completely wrong for what you intended. In fact, it could be considered a senior engineer in knowledge base with a junior engineer's confidence and inference. It knows LOTS of stuff about all the languages you're using, it will even start throwing in dialogue or fakes string lists. But you have to be really good about your naming schemes and your setups for it to be even close to the mark on any first guess.

All told, I like it. I'm going to be using it forever now. It's truly remarkable when it's right, and it's headscratching sometimes when it's wrong. But it certainly does help on a lot of boilerplate, and can really keep you moving in times when you might otherwise sat down and just forgotten all the things you'd written up to that point.

In case it's not clear, this is an endorsement.

I've been graphing a lot of photo lately
March 9, 2023, 6:15 pm

A few years ago, I bought a camera. I thought I did my research. I wanted a camera I could connect to my computer and use as a webcam. And I found this camera. The camera for bloggers. And I thought, that's a webcam! And I bought the Canon M50.

The camera was almost immediately replaced with a better version that year. I eventually found out this is the camera for OUTDOOR bloggers, and it basically can't connect to a computer for crap. The camera is a crop sensor, so it will never be great, and by the time I got it, basically everyone had already stopped making lenses for it. And so I had some pretty severe buyer's remorse pretty quick.

But.

The camera is actually pretty good, for what it is. It's a crop sensor, but really it's still a good Canon camera, it just will only ever be good, and never be great. But great cameras are expensive, sometimes 6-8 times as expensive as this camera. And the M50 is good.

So anyone that has a good camera, knows that half the battle is getting lenses. Canon only made a few lenses for the EF-M line. And other companies made more, but often with lots of compromises. But once you get an adapter for EF lenses, the camera can actually cover almost all bases. I can get as extreme in telephoto as any lens has gone, and I can get as good at lowlight as any lens is willing to give me.

I am only just now starting to branch out into more interesting lenses. I got my first fisheye lens recently, and I've been pushing my telephotos slowly out past 300mm.

And I like learning the craft of photography. I'm enjoying learning not just the basics of camera equipment, but fumbling my way through issues of subject, framing, and light. It's a slow process. I am concerned not with winning quickly, but enjoying the war of attrition. I will slowly do right, by continuing to try to learn from what I do wrong.

So I've been posting my photos on instagram recently, and a number of people have been asking about my photo gear, and so I put together all the knowledge I have about my own kit into a little webpage. You can check that out here. I will continue to add stuff to it.

I gave myself the Christmas gift of finishing a project.
December 27, 2022, 2:04 am

I have so many projects that will never be finished. So many half started, or incomplete things. FilmsWith will probably never be "done". Hell, I've rewritten that thing in like 4 different languages now. A bunch of projects I will keep unfinished forever as lessons for bad ux or design.

But I've been working on my apptools for EVER. The first commit was in 2018, but that was just when I first moved it into github. Just before my Christmas break, I finally moved two chunks of it in to separate repos. Core CSS and QJS. Over the last two weeks, I have been absolutely thrashing through QJS and the routing system. I think I can make great things with it. But also I started writing documentation for it.

One of the reasons I never felt like I could promote apptools was because it was a hodgepodge mess of stuff I had thrown together. QJS has come a long way recently, mainly because I started writing the documentation. While writing it, I started testing all the old things I had made and forgotten about. Now they're tight. And they work exactly how I want them to... for the most part.

And it's good. I think it's very good. I think it might be one of the best things I ever made. I have probably said it here before, but people used to tell me I was a creative person, and I would always argue with them. I'm not a creative. I'm a puzzle solving programmer. That's what I love and what I'm best at. I'm a way better engineer than an artist. And I'm a pretty good artist.

I'm not actually done with the documentation yet. Now that I've written it all out, and gone through all the testing of the code, I want to see what I can build the way of a documentation website with this tool. Now that I have the code in a working state, I don't think I'll constantly be seeing the limitations of my own tools, and instead just be able to use them to move forward.

If you want to peruse the current state of the docs, they're here. That page is made with both the QJS and Core libraries, and it is very exciting. I can't wait to do more. I am going to go to sleep and sleep forever.

What is this a trend?
December 11, 2022, 8:17 pm

I did a lot of good work today. Some people go on vacation and they treat themselves. They go see things, and they meet people, and they do cool things.

I fucking wrote javascript and released a new better version of my code.

But I also made it easier for me to use my querying library in the future. I was always trying to find like... the last good project that used it, to copy the initialization process, and now I just built it into the library. And I made it work reliably. There were a couple features that I had made into a couple demos that like... didn't actually do any of the things I had planned for.

The new location is qjs. It's focused on just the querying library, instead of having all the other pieces. I think I originally had it separate but then I merged it, and now I'm separating it again. It's better this way. Trust me. In fact, here's my core css library separated as well.