fuzzy notepad

Atom feed everything

[dev] Weekly roundup: Inktober

October is… well, so far it’s mostly about inktober.

  • art: I did a lot of art. I did so much art. Fourteen ink drawings of Pokémon. I also got my hands on two grey copics and have been trying those out as well. I’ve also been doodling nonstop.

    The drawback to all these inks is that they take a nontrivial amount of time, so virtually all I’ve done all week is draw them. Whoops! I’ve gotten a bit faster (I think), so I’m not spending half of every day on them, but they’re still a huge timesink. I think they’re worth it, though — ink is fun, the practice is excellent, and I spent a good month and a half barely drawing anything while I was fussing with game development.

  • blog: I published a thing about MegaZeux and wrote half of another post. One week into the month and I’m still behind by half a post. Whoops! Progress should resume now that the inks are going faster, as mentioned.

Aaaaaaand that’s all! I really did just draw for most of the week.

I don’t know what my plans are from here. I still need to get further on the same things, but ink and writing take priority. We’ll see what happens.

[blog] Succeeding MegaZeux

In the beginning, there was ZZT. ZZT was a set of little shareware games for DOS that used VGA text mode for all the graphics, leading to such whimsical Rogue-like choices as ä for ammo pickups, Ω for lions, and for keys. It also came with an editor, including a small programming language for creating totally custom objects, which gave it the status of “game creation system” and a legacy that survives even today.

A little later on, there was MegaZeux. MegaZeux was something of a spiritual successor to ZZT, created by (as I understand it) someone well-known for her creative abuse of ZZT’s limitations. It added quite a few bells and whistles, most significantly a built-in font editor, which let aspiring developers draw simple sprites rather than rely on whatever they could scrounge from the DOS font.

And then…

And then, nothing. MegaZeux was updated for quite a while, and (unlike ZZT) has even been ported to SDL so it can actually run on modern operating systems. But there was never a third entry in this series, another engine worthy of calling these its predecessors.

I think that’s a shame.

[dev] Weekly roundup: Addled

September was continuing the three big things in particular, but, ah.

  • art: I finished a secret loophole commission that I can’t show yet; drew a birthday thing for someone; edited my avatar to be more seasonal; resolved to cross Inktober with daily Pokémon; and then was convinced to maybe try real ink instead. That’s a lot! Making up for not drawing anything for a couple weeks while I was obsessed with Isaac’s Descent, I guess.

  • doom: I spent a little more time fiddling with Sandy-styled maps while watching Liz Ryerson stream Doom stuff, but I still have my classic frustrating problems of drawing everything too small and not having a good idea for the overall shape/flow of the world. I also streamed a couple hours of exploring the new Oblige, which was interesting, at least to me.

  • blog: Some more progress towards upstreaming my fix for <summary> in Pelican Atom feeds. Started taking notes for a paid post. Worked on a MegaZeux post and wrote most of a Doom metrics one, but couldn’t finish either.

  • twitter: I wrote @calloutbot, which will either make perfect sense to you, or not.

I think I may have the flu, but without any respiratory symptoms. Just enough that I’m vaguely tired and sore and not quite able to plan larger stuff like, say, blog posts. Or Doom maps, perhaps. I spent several frustrating days wrangling with two different posts and not getting anywhere with either of them before I remembered a roommate had had the flu about one incubation period ago.

I am thus slightly behind on writing, and haven’t done much else mentally-intense either. It sucks and I’m annoyed, but I’m taking a few days off to draw and do other low-intensity stuff before I make a mad scramble to catch up.


Meanwhile, about those, um, three things. I slipped a bit. A lot.

  • Draft three chapters of this book, September: a second chapter

    No, that didn’t happen.

    But! I decided that Isaac’s Descent HD would make a really good final chapter, since it’s an entire real game written completely from scratch. That means it’s also going to be a whopper. I spent like a third of the month distracted by building Isaac’s Descent HD, which is a prerequisite for writing about how I built it, so that’s some really good progress nonetheless.

    The game isn’t too far along from a player perspective, but I did a lot of engine work and took a lot of notes about it. And of course I took all those notes during Ludum Dare, which I can reverse-engineer into a PICO-8 chapter. So while there’s less visible progress than I wanted, I have a ton more stuff to work with now.

  • Get veekun beta-worthy, September: most games dumped; lookup; core pages working; new site in publicly-available beta

    Ha ha none of this happened. I totally dropped the ball.

    I did work on veekun, but I got caught up in dealing with encounters, and then my brain stopped working so good, so overall it didn’t make a whole lot of progress.

  • Runed Awakening, September: blah blah it doesn’t even matter

    I didn’t touch Runed Awakening all month. Sob.

I should probably be learning a lesson here about biting off more than I can chew, but I adamantly refuse to learn anything.

It’s okay if new veekun isn’t done in time for Sun/Moon, which is looking like it’ll be the case — the old site layout and schema should still hobble along just fine as they are. It would’ve been a great time to breathe some life back into the site, is all. I’ll still try to get as much done as I can, so maybe there can still be a usable beta, but I don’t know what I can magic up in six weeks when I’m also doing several other things.

I don’t know what I’m going to do for October. I’ve got a lot of blogging to do now, I still want to find time to experiment with music, and I also want to do two ink drawings a day for Inktober.

Other than all that, I suppose I’ll still “focus” on these three big things and just see what happens.

[dev] Weekly roundup: Back into art

September is continuing the three big things in particular…?

  • music: I tried to reconstitute some of the song I lost last week. It wasn’t as good.

  • isaac’s descent hd: I implemented death, an inventory, and the staff, cleaning up some stuff as I went. The first room is now playable!

  • blog: I wrote and published a post about the switch statement, made some fixes to a few recent posts, and worked on something about MegaZeux that I hope to finish today.

  • art: I doodled for the first time in kind of a while, including some semi-private streaming, which was nice. I did two daily Pokémon for the first time in a month, and they came out a little better than the previous ones. I drew an Eevee walk cycle as practice for doing the same thing as pixel art for Isaac’s Descent, and it turned out surprisingly well! Also worked a bit on a secret thing for someone.

  • veekun: I got 90% of the way to getting ORAS encounters, after hitting quite a few bumps in the road along the way. It’s a shame this has taken so long… and still isn’t quite done.

  • doom: I started on a vanilla Sandy tribute map on a whim.

Last week of the month and I feel preposterously behind on everything, even though my working-to-goofing-off ratio has remained consistently higher than it’s been in years. Argh. So it goes, I guess.

[dev] Weekly roundup: Quietly advancing

September is continuing the three big things in particular.

I had a drowsy day, but otherwise it was still an alright week.

  • blog: I published a post about music theory, which I oughta update to factor in all the stuff people have told me in the aftermath. I also wrote half of another post and stubbed out one or two more; just gotta finish some of them.

  • runed awakening: I did, er, the tiniest bit of planning, and then got distracted by music and game things for the rest of the week.

  • isaac’s descent hd: Physics is done. For real. I mean it. It works, and it works so good. It also has some tiny hints of gameplay now! I’m close to having the first puzzle room be playable: the switch works, the bridge appears and becomes blocking, and the spikes kill you. Just need to make the staff work and finish up the death handling.

  • music: I toyed with Renoise and LMMS, ultimately deciding I like LMMS more. I managed to make a decent chunk of a song that I actually like and that would work remarkably well as background music for Isaac’s Descent.

    And then LMMS crashed.

    I also dug out and cleaned off our keyboard, which had been buried in a closet somewhere for years. I taught myself to play the Pokémon Center theme!

  • veekun: I cleaned up some of the multi-version handling for this harebrained YAML concept. Also dug into ORAS encounters and got 90% of the way to actually extracting them.

I said last week that I’d dedicate a few days to writing, and I would still like to do that! Now is probably a good time to start. I’m behind on blog posts for the month, and I desperately want to get some momentum going with Runed Awakening again.

veekun is definitely not on schedule, but I’m getting excited and ambitious about working on it again, which is a really good sign. I don’t know how far along it’ll be when Sun and Moon come out, but that’s probably okay; veekun has always been a quiet technical resource, not a walkthrough. I think I’m going to try focusing on that idea in the future — for example, I’m probably at the point that I could create orthographic projections of all the maps.

I haven’t written anything for the book in a little while now, but it’s looking like Isaac’s Descent HD will be the final chapter, so working on it still counts as working on the book. Right?

[blog] Music theory for nerds

Not music nerds, obviously.

I don’t know anything about music. I know there are letters but sometimes the letters have squiggles; I know an octave doubles in pitch; I know you can write a pop song with only four chords. That’s about it.

The rest has always seemed completely, utterly arbitrary. Why do we have twelve notes, but represent them with only seven letters? Where did the key signatures come from? Why is every Wikipedia article on this impossible to read without first having read all the others?

A few days ago, some of it finally clicked. I feel like an idiot for not getting it earlier, but I suppose it doesn’t help that everyone explains music using, well, musical notation, which doesn’t make any sense if you don’t know why it’s like that in the first place.

Here is what I gathered, from the perspective of someone whose only music class was learning to play four notes on a recorder in second grade. I stress that I don’t know anything about music and this post is terrible. If you you so much as know how to whistle, please don’t read this you will laugh at me.

[dev] Weekly roundup: Bashing my head against a wall

September is continuing the three big things in particular.

  • gamedev: I spent far too much time just trying to get collision detection working how I want in LÖVE. Seriously, four or five solid days. I guess I learned some things, which I will probably write about soon, but I also can’t help but feel like I wasted a good chunk of time. At least I’ll never have to do this again, right? Ha, ha.

  • music: I found a tracker I kinda like and tinkered with it and LMMS a bit. I’m terribly unconfident about this and don’t even know where to start, so it’s kinda slow going. On the other hand, I finally grasped the basics of Western music theory, so that’s nice.

  • blog: I started on, uh, four different posts. I’m good for the month on topics, at least.

  • art: I doodled a bunch while catching up on podcasts. Also I drew a new avatar, which I hadn’t done since… June? Yikes. This one was painted, too; all the previous ones had separate lineart.

  • veekun: I taught my code to dump all of Gen I at once, cleaned up a bunch of text handling, and successfully extracted flavor text.

I’m not thrilled about the time lost to platformer physics, but oh well. I’m a tad burned out on gamedev after that, so I think I’ll dedicate the next couple days to writing and maybe catching up on veekun.

[dev] Weekly roundup: HD Remix

September is continuing the three big things in particular.

I spoiled most of this last week.

  • gamedev: I did Ludum Dare 36! I made a little PICO-8 game called Isaac’s Descent in 48 hours.

    Also, I started working on Isaac’s Descent HD Remix, a fancier port in LÖVE. In fact that’s pretty much all I did all week, including pixeling a new walk sequence for Isaac and porting all the maps to Tiled and some other stuff. The last couple days in particular went down the collision drain, ugh. Good book fodder, though.

  • blog: I published a timeline of my progress on my Ludum Dare game.

  • book: Oh, yeah, I’m writing a book. I wrote a ton of notes for a LÖVE chapter, based on what I did so far for Isaac HD.

  • music: Fought with a few trackers, with limited success, in an effort to find a grown-up equivalent to the PICO-8’s music tools. Renoise looks interesting and I’ll play with it more, but I don’t know if I want to plop down any real cash for something I’m only just starting to do. I might end up just using LMMS.

No big surprises. I still need to get back to work on veekun, but I’m a bit distracted with LÖVE at the moment, oops. And of course I have another four posts to write this month, somehow…

[release] I entered Ludum Dare 36

Short story: I made a video game again! This time it was for Ludum Dare, a game jam with some tight rules: solo only, 48 hours to make the game and all its (non-code) assets.

(This is called the “Compo”; there’s also a 72-hour “Jam” which is much more chill, but I did hard mode. Usually there’s a ratings round, but not this time, for reasons.)

I used the PICO-8 again, so you can play it on the web as long as you have a keyboard. It’s also on Ludum Dare, and in splore, and here’s the cartridge too.

Isaac's Descent

But wait! Read on a bit first.

[dev] Weekly roundup: Ludum Dare

August is loosely about video games, but really it’s about three big things in particular.

  • book: Wrangled LaTeX some more. Came up with a new style for admonitions (little set-out boxes) that I really like. Drew some icons for a few of them. Started on another chapter, for reasons; see below.

  • veekun: Regexing machine code for addresses was getting really clumsy, so I went one step further and wrote a disassembling pattern matcher thing. You write some assembly with some variables in it, and it finds occurrences of that code and tells you what the variables are. I can pretty much paste in entire functions, massage them slightly, and find matches. It’s pretty slick.

    The upshot of this is that loading original Japanese Red and Green now works! But Yellow doesn’t. So I fixed that, and now Japanese Blue is broken. Or maybe I fixed it and that broke Yellow again? I’m not sure. There were some tiny changes to core code between some of these games, and the pattern-matcher has no way to express alternatives. I don’t know if I’m better off inventing one or just fudging it.

    Anyway, pretty close to having all of gen 1 dumping Pokémon reliably. Still need to actually dump other stuff — moves, items, encounters, and the like — but that’s much more straightforward.

  • hax: I was still in a mood to dink around with Game Boy stuff, so I added Python 3 support to some relevant tooling and wrote a proof of concept for storing Pokémon maps in Tiled format.

  • blog: I wrote a thing about writing tests.

  • twitter: I taught @perlin_noise a few new tricks.

  • art: I drew a friend’s lizard pal based on a reference photo, which isn’t something I’d seriously tried before. Value-only, only one layer, only one brush. It came out surprisingly well.

  • gamedev: I participated in Ludum Dare 36, a 48-hour game jam. I’d never done LD before, and naturally I picked the only one that has no ratings round (for administrative shuffling reasons). Oh, well.

    The result was Isaac’s Descent, a short puzzle-platformer for the PICO-8. You can play it via the web (source code included), and I also wrote a post about it.


So! There are a few days left, but it’s pretty much the end of August. Let’s see how I did.

  • Draft three chapters of this book, August: one chapter

    Well, I didn’t get a chapter done. I did make huge progress on the chapter I started, though — plus I began a second chapter, and generated enough notes for the entirety of a third. I spent a decent amount of time wrangling Sphinx and LaTeX, too, which I would’ve had to do sooner or later regardless.

    So I didn’t do quite what I wanted, but I did do far more than I’ve put into any previous harebrained book idea, and it was a pretty decent chunk of work. I’m okay with that.

    Just what is this damn book, you ask? Ah, perhaps you should read that Ludum Dare post.

  • Get veekun beta-worthy, August: basics of the new schema committed; basics of gen 1 and gen 6 games dumped; skeleton cli and site

    Haha, no. I got gen 1 almost working for Pokémon only. It turns out that while gen 1 has the simplest data, it probably has the most convoluted storage.

    On the other hand, the detours taught me a lot about Game Boy architecture, which was interesting and helpful for making the dumper fairly robust thusfar. I also made some breakthroughs on architecture that had been haunting me for a while. I’ll have to move my ass in the next week or two to catch up — hopefully finish gen 1 and get a few other generations dumped real soon — but I think this is still doable.

  • Finish Runed Awakening, August: working ending; at least one solution to each puzzle; private beta

    Whoops! I did basically squat on Runed Awakening. I figured out most of the ending, which had been my major roadblock, but I didn’t touch the code or run the game a single time. Dang. It’s not like I was goofing off all month, either; I just didn’t have a big block of time to devote to the weird mishmash of writing and planning and programming that IF requires.

    I really want to finish this game, but end of October is not looking too great. I don’t know why it’s proving so difficult; it’s not that complicated, and I started on it almost two years ago now. I’ve made multiple other games just so far this year! Argh.

    If it’s any consolation (to me): I picked November as a target because Mel wanted to embed Runed Awakening on Floraverse as an update around that time. But Isaac’s Descent takes place in the same universe, so it works just as well. Goal accomplished!

Onwards to September. The only thing on the list with a real solid deadline is veekun, since the new games will be coming out. It’s a bit behind, but I’m pretty sure I can catch up. Gen 2 shouldn’t be too different from gen 1, and I’ve done gen 4 and onwards before.

[blog] Testing, for people who hate testing

I love having tests.

I hate writing them.

It’s tedious. It’s boring. It’s hard, sometimes harder than writing the code. Worst of all, it doesn’t feel like it accomplishes anything.

So I usually don’t do it. I know, I know. I should do it. I should also get more exercise and eat more vegetables.

The funny thing is, the only time I see anyone really praise the benefits of testing is when someone who’s really into testing extols the virtues of test-driven development. To me, that’s like trying to get me to eat my veggies by telling me how great veganism is. If I don’t want to do it at all, trying to sell me on an entire lifestyle is not going to work. I need something a little more practical, like “make smoothies” or “technically, chips are a vegetable”.

Here’s the best way I’ve found to make test smoothies. I’ll even deliberately avoid any testing jargon, since no one can agree on what any of it means anyway.

[dev] Weekly roundup: what even is sleep

August is loosely about video games, but really it’s about three big things in particular.

I accidentally went nocturnal again, which always leaves me exhausted for a couple days as atonement for skipping an entire day, so this week was a little less productive than the last two.

  • art: Drew, just, a ridiculous amount of stuff. Pages of sketches. Several birthday gifts. Even some serious attempts to learn from other artists’ work. Somehow I did zero “daily” Pokémon, though.

  • blog: Wrote and published a quick lament about attribution on the web. Also finally put the article “summary” (the bit before the read-more link) in Twitter cards, so, that’s nice.

  • book: Decent progress? Took a bunch more notes; converted a good chunk of my existing notes into real prose; rewrote the preface; cleaned up some aesthetic issues that had been bugging me.

  • hax: I took a day to make a ridiculous ROM hack for a friend’s birthday. Learned some neat things about the Game Boy along the way, though.

I count drawing as genuine useful work, since it’s practicing a thing I’m trying to learn, so I still did a decent amount of stuff this week. Just, ah, not too much of it was the Three Things. My sleep seems to be mostly un-fucked now, so this next week should go a little better. I think I can still have decent progress to show on the three things, though maybe not quite everything I wanted.

[blog] Attribution on the web

The web is a great thing that’s come a long way, yadda yadda. It used to be an obscure nerd thing where you could read black Times New Roman text on a gray background. Now, it’s a hyper popular nerd thing where you can read black Helvetica Neue text on a white background. I hear it can do other stuff, too.

That said, I occasionally see little nagging reminders that the web is still quite primitive in some ways. One such nag: it has almost no way to preserve attribution, and sometimes actively strips it.

As a programmer, I’m here to propose some technical solutions to this social problem. It’s so easy! Why hasn’t anyone thought of this before?

[dev] Weekly roundup: slow but steady

August is loosely about video games, but really it’s about three big things in particular.

  • book: Lots of progress! I’m definitely getting a feel for the writing style I want to use, I’ve wrangled Sphinx into a basically usable state, I’ve written a lot of tentative preface stuff and much of the intro part of the chapter, and I’ve written a ton of scratchy prose (like notes, but full sentences that just need some editing and cleanup later). Also worked around some frequent crashes with, ah, a thing I’m writing about.

  • veekun: I did a serious cleanup of the gen 1 extraction code; added some zany heuristics for detecting data that should work even in fan hacks (if there even are any for gen 1); and hacked multi-language extraction into working well enough for starters.

    Finally, and I do mean finally, I built some groundwork for versioning support in the Python API. This has been hanging over my head for probably a year and was one of the biggest reasons I kept putting off working on this whole concept. I just didn’t quite know how I wanted to do it, and I was terrified of doing it “wrong”. At long last, yesterday I pushed through, and now I can see the light at the end of the tunnel.

    I also committed what I had so far, which is a complete mess but also a working mess, and that makes me feel better about the state of things. You can have a look if you want.

  • runed awakening: I didn’t get any tangible work done, but after some months of agonizing, I finally figured out how to make the ending sensible. Mostly. Like 80%. I’m much closer than I used to be. Once I nail down a couple minor details, I should be able to go actually build it.


  • blog: I finally fixed veekun’s front page — the entire contents of blog posts will no longer appear there. (The actual problem was that Pelican, the blog generator I use, puts the entirety of blog posts in Atom’s <summary> field and wow is that wrong. I’ve submitted a PR and patched my local install.)

    I wrote about half a post on testing, which I’d really like to finish today.

  • zdoom: My Lua branch can now list out an actor’s entire inventory — the first capability that’s actually impossible using the existing modding tools. (You can check how many of a particular item an actor is carrying, but there’s no way to iterate over a list of strings from a mod.)

  • doom: Almost finished my anachrony demo map, but stopped because I wasn’t sure how to show off the last couple things. Fixed a couple items that had apparently been broken the entire time, whoops.

  • slade: I added the most half-assed stub of a list of all the things in the current map and how many there are on each difficulty. I vaguely intend to make a whole map info panel, and I still need to finish 3D floors; I just haven’t felt too inclined to pour much time into SLADE lately. Both C++ and GUI apps are a bit of a slog to work with.

  • art: I scribbled Latias with a backpack and some other things.

    I did two daily Pokémon, which is, at least, better than one. I think they’re getting better, but I also think I’m just trying to draw more than I know how to do in an hour.

    I hit a skill wall this week, where my own expectations greatly outpaced my ability. It happens every so often and it’s always maddening. I spent a lot of time sketching and looking up refs (for once) and eventually managed to pierce through it — somehow I came out with a markedly improved understanding of general anatomy, hands, color, perspective, and lighting? I don’t know how this works. The best thing I drew is not something I’ll link here, but you can enjoy this which is pretty good too. Oh, I guess I did a semi-public art stream for the first time this week, too.

    Now my arm is tired and the callus where I grip the pen too hard is a bit sore.

  • irl: Oh boy I got my oil changed? Also I closed a whole bunch of tabs and went through some old email again, in a vain attempt to make my thinkin’ space a bit less chaotic.

Wow! A lot of things again. That’s awesome. I really don’t know where I even found the time to do quite so much drawing, but I’m not complaining.

I’m a little panicked, since we’re halfway through the month and I don’t think any of the things I’m working on are half done yet. I did try to give myself a lot of wiggle room in the October scheduling, and it’s still early, so we’ll see how it goes. I can’t remember the last time I was quite this productive for this long continuously, so I’m happy to call this a success so far either way.

[dev] Weekly roundup: three big things

August is about video games. Actually, the next three months are about video games. Primary goals and their rough stages:

  1. Draft three chapters of this book
    • August: one chapter (at which point I might start talking about what the book is)
    • September: another chapter
    • October: yet another chapter
  2. Get veekun beta-worthy
    • August: basics of the new schema committed; basics of gen 1 and gen 6 games dumped; skeleton cli and site
    • September: most games dumped; lookup; core pages working; new site in publicly-available beta
    • October: all games dumped; new site design work; extras like search and calculators
  3. Finish Runed Awakening
    • August: working ending; at least one solution to each puzzle; private beta
    • September: alternate solutions; huge wave of prose editing; patreon beta
    • October: fix the mountains of issues people find; finish any remaining illustrations

Yeah, we’ll see how all that goes. I also have some vague secondary goals like “do art” and “release tiny games” and “do Doom stuff” but those are extremely subject to change. Hopefully I can stick to the above three big things for three months.

Anyway, this week:

  • blog: Finished and published posts on why to use Python 3 and how to port to it, plus made numerous suggested edits. Wrote a brief thing about my frustrations with Pokémon Go. And wrote about veekun’s schema woes, which helped me reason through a few lingering thorny problems.

    That might be a record for most things I’ve published within a calendar week.

  • art: I tried an hour of timed (real-life) figure drawings, which was kinda weird. I’ve really lapsed on the daily Pokémon, possibly because I changed up the rules to be an hour for a single painting, and that feels like a huge amount of time (…for something I don’t think will come out very well). I’ll either make a better effort to do them every day, or change the rules again so I stop putting them off.

    I drew Griffin’s Nuzlocke team kind of on a whim? A day-long whim?

  • book: I wrote some preface, which you’re probably supposed to do last, but it helped me figure out the tone of the writing. I’ve mentioned this before regarding previous failed attempts, but writing a book is surprisingly harder than writing a blog post — I can’t quite put my finger on why, but the medium feels completely different and alien, and I’m much more self-conscious about how I write.

    I did get a bit of a chapter written, though. I probably spent much more time wrangling authoring tools into producing something acceptable.

  • doom: I somehow drifted into doing stuff to anachrony again. Apparently I left it in near-shambles, with at least a dozen half-finished things all over the place and few comments about what on Earth I was thinking. I’ve cleaned a lot of them up, figured out how to fix some long-standing irritations, and excised some bad ideas. It’s almost presentable now, and I started building a little contrived demo map that tries to show how some of the things work. Someday I might even use all this for a real map, wow.

  • zdoom: Oops, I also picked up my Lua-in-ZDoom experiment again. After doing some things to C++ that made me feel like a witch, someone recommended Sol, a single-file (10k line…) C++ library for interacting with Lua. It is fucking incredible and makes everything so much easier and the author is on Twitter and fixes things faster than I can bring them up.

    I don’t know how much time I want to devote to this — it is just an experiment — but Sol will make it go preposterously faster. It’s single-handedly made a proof of concept look feasible.

  • ops: I spent half a day fixing microscopic IPv6 problems that have been getting on my nerves for ages.

  • veekun: After publishing the schema post, I went to have a look at where I’d left the new dumper code. I spent a few hours writing rock-solid(-ish) version and language detection, which doesn’t have much to do with the schema but is really important to have.

I just about filled a page in my notebook with all this, which I haven’t done in a while. Feels pretty good! I’m also a quarter through the month already, so I’d better get moving on those three big things.

[blog] Storing Pokémon without SQL

I run veekun, a little niche Pokédex website that mostly focuses on (a) very accurate data for every version, derived directly from the games and (b) a bunch of nerdy nerd tools.

It’s been languishing for a few years. (Sorry.) Part of it is that the team has never been very big, and all of us have either drifted away or gotten tied up in other things.

And part of it is that the schema absolutely sucks to work with. I’ve been planning to fix it for a year or two now, and with Sun/Moon on the horizon, it’s time I actually got around to doing that.

Alas! I’m still unsure on some of the details. I’m hoping if I talk them out, a clear best answer will present itself. It’s like advanced rubber duck debugging, with the added bonus that maybe a bunch of strangers will validate my thinking.

(Spoilers: I think I figured some stuff out by the end, so you don’t actually need to read any of this.)