Coldcut v1.1


Coldcut: the easiest way to install AIDungeon


How to run AI Dungeon 2 on your Windows box


TailwindCSS is rejuvenating


Seattle Coffee Radar


Conquering Bézier curves for CS193P



This was the moment I fell in love with Young Thug. Scoured the internet for everything I could find that he ever did and listened to nothing but Thug for about a year. What a great time that was. This might legit be one of my most played songs of all time.

lol i did the same shit when i heard slime season. i pretty much only listened to young thug for the next year and a half.

From a random Reddit thread about Young Thug and T.I.'s song About the Money. The same thing happened to me in the summer of 2015. It might have even started with About the Money, I can't really remember. I caught the wave with the first Slime Season and rode it all the way into 2016. I was completely obsessed.


At this point you can't deny Young Thug's influence on hip hop's sound. Sure, Gunna, but even artists like J Cole. Cole seems to have sensed a market opportunity in Thug's 2015-ish style and moved his label's sound in that direction. I'm not hating it. Listening to the multiplying fractals of hip hop artists on streaming platforms these days, it's fairly often that I think that I'm listening to Young Thug and, well, I'm not.

Thug himself has yet to break into the mainstream. Maybe one day? YouTube is diamond-dusted with his leaks, but he squanders big opportunities like his feature on an Old Town Road remix with a flaccid, inscrutable (in a bad way) verse that gets outshadowed by Mason Ramsey of all people.

In the balance, I can't really complain. Thug still bottles lightning on occasion (examples: MLK, his verse on EARTHGANG's Proud of U), younger artists are carrying his torch (see the first verse of Proud of U), and there's always that massive back-catalog.

RIP Gene Wolfe


Gene Wolfe died yesterday, the news overshadowed by the fire at the Notre Dame. Probably my favorite author, certainly in the sci-fi and fantasy genres he straddled. Book of the New Sun and The Fifth Head of Cerberus sit in my mind like Faulkner's The Sound and the Fury and Absalom, Absalom!. Complex, torturous, the earth and everything atop it laced with a sort of underlying malice. It is a mood found in Jack Vance's dying earth stories, as well as the video game series Dark Souls.

I've only started to delve deeper into Wolfe's catalog, starting his The Island of Doctor Death and Other Stories and Other Stories last night. I have the whole Solar Cycle under my belt, as well as Latro in the Mist. Did Wolfe always dance atop the pinnacle as he did with the first two works I mentioned? No. But the machinery is there, ready to send you through its paces, for better or worse. Worth the journey I'd say.

(Did I really just write a shorter in memoriam for Gene Wolfe than I did XXXtentacion? Yeah, I guess I did. But I really have so much more so say about Wolfe's works. Have had lots to say for a long time now. Even my few attempts at fiction were directly inspired by him. Someday I'll do him better justice on this blog.)


But I still hear them walking in the trees; not speaking.
Waiting here, away from the terrifying weaponry, out of
the halls of vapor and light, beyond holland and into the
hills, I have come to

Dhalgren, last page

Stats on /r/roguelikedev's Sharing Saturday


I browse Reddit's /r/roguelikedev often and plan to share Weedlike updates on its Sharing Saturday thread at some point in the future. I was curious how busy the weekly thread can get, as it's a good place to market your game and garner feedback from other roguelike developers (besides being a good place to see cool games in progress!). Using Reddit's API I was able to collect some statistics.

What I wanted to know:

Why? If you want to use the thread as a marketing tool or means of getting feedback, you want to maximize eyeballs on your top-level comment (by top-level I mean a comment that's not nested beneath another). People only have so much attention to give, so the closer to the top of the thread, the better. At some point they'll stop scrolling, and you want to sit somewhere before that point. Assuming your comment is upvote-worthy (maybe a strong assumption?), posting early in the thread means there's less competition to earn the upvotes of the first viewers. You want to earn enough to "stick" near the top of the thread. It's surely harder to post later and have to climb the ranks.

Here's data based on analysis of the past 25 Sharing Saturdays.

Post creation times (Pacific Standard Time)
Earliest 03:58:40 PM Friday
Average 04:46:18 PM Friday
Latest 05:20:11 PM Friday

Time to first 7 comments (hours:minutes:seconds)
Earliest 00:25:16
Average 01:50:48
Latest 07:32:15

Finally, here is a graph of all top-level comments bucketed into hours since post creation. Most activity occurs in the first 24 hours, with the first hour being far and away the most busy. Amazingly, at least one comment was posted 162 hours later, almost in time for the next week's post!

I used PRAW (Python Reddit API Wrapper) to access the Sharing Saturday posts programmatically. It's quite nice! Interacting with posts and comments is pretty simple. Below I've posted the code I wrote for generating the statistics for this post.

Accidental horrorlike



Brogue and Pixel Dungeon


I've been playing more roguelikes recently to get a better survey on the genre. My main roguelike experience has been in roguelite territory, although I spent a decent number of hours in Angband a few years back.

I just started Brogue after watching a Roguelike Celebration talk by the creator and being dazzled by the colorful, rich level designs. During the first run through, I kept thinking to myself how similar the mechanics were to another roguelike, Pixel Dungeon!

I'm sure there are other similarities I haven't encountered yet.

On the Pixel Dungeon wiki for the Amulet of Yendor it mentions that Brogue was the main source of inspiration for the game, although I wasn't able to find a direct quote from the creator saying so (I also didn't look very hard). Anyways, I burned a few hours playing Pixel Dungeon on a flight recently, so that should make diving into Brogue and learning the systems a bit easier.

Want to watch a great game? Check the spreads.


Suppose you are whisked back in time to ancient Mesoamerica and manage to become an honored guest of Olmec royalty. They want to show you the best of their culture, and it just so happens that on that day the crown city is filled with games of their favorite sport.

Between feasts and tours of the city, you only have time to catch one game. Which do you choose? Naturally, you have no emotional ties to any team. Your command of the Olmec language is lacking, so you can't ask about interesting rivalries either.

Luckily, the Olmecs, being an analytically-inclined people, just so happen to place bets on the games, and their bookies use a spread system to maximize the number of bets on both sides.

You know nothing about today's games except for the spreads. Can you make a reasoned choice based on spreads alone?

Yes. If you are looking to maximize enjoyment while watching a game, it makes sense to pick the game with the lowest spread, with a pick'em (where the spread is zero) being an ideal match-up. Sports betting is a prediction market that encodes all information prior to a game into its most likely outcome. If you assume that the spread is the most accurate prediction available prior to a game, you can compare the spreads of various games to find the one closest to zero.

The closer to zero the spread is, the more uncertainty of who will win the game. The further away, the more certainty that one team will win over the other. The most engaging game is one where the outcome is held in suspense the longest. In this scenario, picking the game with the most uncertain outcome is the best you can do, since it implies that the teams are the most evenly matched.

Of course, game outcomes often diverge significantly from the spread, and even if you choose a pick'em, it could end up as a blowout. Further, the spread tells you nothing about the quality of the teams, only their quality in relation to each other. If you want to maximize likelihood of virtuoso skill, you will need to find a different signal.

Weedlike: level prototyping


Weedlike takes place in a tower, er, office building...somewhere in between? For the level design to match the setting, I'm exploring alternatives to the usual room-and-tunnel roguelike style. Below is a level I'm prototyping, based on an office floorplan (made with the nifty REXPaint tool).

I want the player to feel like they're toptoeing through a dense maze of rooms, lively populated with enemies, bystanders, allies, and anything in between.

However, in playtesting the level I realized its fatal flaw: you're just popping in and out of rooms over and over! It feels like you're manually stepping through a search algorithm. Which is pretty much the point of roguelikes I guess, but it feels really tedious when the rooms are so shallow.

My next idea is to try creating alternative paths through the rooms so that the player actually moves through them instead of constantly backtracking. (You know, I'd like to see a real-world office try this approach too. Guess what, your office is now a hallway!)



I've been knawing on a game idea for a while now, and recently I've started working in that direction. Tentative title: Weedlike. It's a roguelike... but with weed.

Actually, it's more of a rogue"lite", as they say, like Binding of Isaac or Enter the Gungeon, two games I've sunk a hell of a lot of time into. Consider it a dumbed-down roguelike: all of the ASCII art, none of the strategic depth!

Hopefully I'm selling the game short. My main focus is building out a setting that lets the player steep themselves in the niche but occasionally hilarious world of weed humor.

We'll see how it goes! I've never made a "full" game before so consider this my first dip in the waters.

RIP XXXtentacion


XXXtentacion was killed today. It's a shame, and I'm sad that his evolution as an artist will not continue.

His star was rising, although the ghosts of his past kept pace and gained attention in equal proportion. I really think he had the potential to reach the same heights as Drake. His late work does a confident crossover into the realm of mainstream pop, and he had an undeniable intuition for songcraft. Despite his legal troubles, he managed to execute his rise to stardom with the same business cunning exhibited by, well, Drake. The way he teased "Sad!" (which I assume to be his most popular song) felt truly new, splicing the first twenty or so seconds into YouTube videos of PUBG sessions. It was an obvious ripoff when Drake later took to Twitch to play Fortnite for the platform's largest audience.

His sound sprouted from the familiar South Florida/SpaceGhostPurrp ecosystem. But his sample space was round, and he explored more territory than most artists. One of the best things about being a fan was discovering deep, deep cuts (often in the form of sketchy YouTube bootlegs) that sounded completely different than anything he'd done before or after. One example of this is Inuyasha.

A few more songs I like and want to call out.

I LUv My CLiQuE LiKe KaNyE WeSt - this song reminds me of the Flood from Halo one: the muffled screams of the damned with X howling like a sorceror in a blood frenzy. It rides the line of listenability, but I love it and it sounds like nothing else in his catalog.

looking for a star (CANT GET YOU OUT MY HEAD) - a SoundCloud loosie that may or may not have been later successful on his Revenge project. It's a great pop song and I couldn't believe it was X the first time I heard it. To me the song is such a strong flex on Drake and Future and other pop crossovers in hiphop. It feels effortless and seems obvious now in a world where "17" and "?" exist.

vice city - I guess this song can stand in as representation of X's more conscious side, which he teased occasionally as if to sow seeds of doubt in the minds of dismissive old-heads. It might be my favorite of his songs, maybe because it sounds so unconventionally conventional, and because it just sounds good.

His catalog is an adventure worth taking, even if it's scattered across a thousand SoundCloud, YouTube, and Mega.nz uploads. It's inconsistent in several dimensions, but his drunk-stumble through the subgenres of hiphop round out the character and the artist in a way that's worthy of remembrance.