moreBefore dawn, jeeps line up on the rim of the Tengger caldera in East Java to wait for the light. The first sun hits Batok, the extinct cone in the foreground, and picks out every ridge on its slopes. Behind it, Semeru, Java's highest volcano, rises above a layer of cloud that fills the valleys. Bromo itself smokes quietly beside them in a sea of volcanic sand. This post covers getting there from Surabaya or Malang, where to stand at Penanjakan for the view, the walk across the sand sea to Bromo's crater, and what to pack for a morning that starts near freezing and ends in tropical heat.
moreANSI artists in the mid-90s worked with a tiny toolkit: a handful of block characters from the IBM PC's extended character set and a 16-color palette. That was enough for most BBS login screens. Setting a dark foreground over a lighter background with the right shade block gives you in-between tones the palette doesn't have. That's how groups like ACiD and iCE got smooth gradients out of hardware that could only show sixteen colors. In this post I take apart a few screens from the HackerZ Hideout archive, block by block, to show how the shading was built.
moreThis site is a handful of HTML files, one stylesheet, and a pixel font. No framework, no bundler, no node_modules folder. Not long ago, starting a small site from scratch meant reaching for a big library out of habit, because hand-writing layout and interaction code took too long. With a good coding agent, that trade-off has flipped. Plain HTML, CSS, and a few lines of JavaScript are now the fastest way to build something small, and the result loads instantly and will still work in ten years. Here's how the site is put together: CSS grid and subgrid for the layout, native <details> for the menu, and line-clamp for the post previews you're reading right now.
moreAll that's left of hackersclub.com is seven GIFs. They're screens from the HackerZ Hideout, a mid-90s site run by a webmaster called kM that promised "exploration of all computer systems." The menus alone tell you a lot about the scene back then. There are file areas for phreaking, Novell, and wordlists, an e-zine rack with Phrack and b4b0, and a Free Mp3s section backed by a track from mR.dISCO. Using those menus as a map, I've been piecing together what the site offered, who drew the art (credits include Cool T, dal, and XanaX), and why a site built to look like a BBS felt like home to a kid on a dial-up connection.
moreEvery walking character in a 16-bit JRPG is a flipbook. A sprite sheet holds each frame of the walk cycle in a grid, one row per direction, and the game shows one frame at a time, fast enough that the character appears to move. This guide builds that system in Python with Pygame: slicing a sprite sheet into frames, timing the animation independently of the frame rate, switching rows when the player changes direction, and keeping the character's position and animation in sync so the feet don't slide. The example uses Serge's walk cycle from Chrono Cross, 15 frames in each of four directions.