<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>mrhakan's shithole</title>
    <link>https://mrhakan.github.io/</link>
    <description>a retro y2k personal site — winamp, guestbook, minesweeper, trolls and all. best viewed at 800x600.</description>
    <language>en</language>
    <atom:link href="https://mrhakan.github.io/feed.xml" rel="self" type="application/rss+xml" />

    <item>
      <title>v9.8 — thirty more things, most of them extinct</title>
      <link>https://mrhakan.github.io/?app=changelog</link>
      <guid isPermaLink="false">mrhakan-v9.8</guid>
      <pubDate>Sat, 30 Aug 2026 09:00:00 +0000</pubDate>
      <description><![CDATA[
        The field guide at yahew.com files most of the old web's furniture
        under "extinct" — adoptables, blinkies, stamps, directories, site
        awards — so a fair bit of this is putting the extinct things back.
        A pet that gets hungry on the clock rather than on a timer, so it is
        hungry when you come back tomorrow. Oneko, the 1989 cat that chases
        your cursor and stops short of it. A blinkie maker that saves a real
        PNG. A stamp shelf drawn by the page. A hand-sorted directory, and an
        awards page in the tradition where there was never a committee.
        Eight games: Tetris, Breakout, 2048, Simon, Hangman, Whack a Troll,
        and two with an opponent that does not cheat — tic-tac-toe plays
        minimax and cannot be beaten, and rock paper scissors reads your last
        two throws, which is how everybody loses at it.
        Five programs Windows would recognise, including a setup wizard whose
        estimate occasionally goes up. Small tools that are actually correct:
        moon phase, a world clock, a biorhythm plot, dice, and a love
        calculator that is a hash of two names — it always was.
        And the status bar scroller, because window.status was writable until
        about 2010 and this site built its own status bar last week.
      ]]></description>
    </item>

    <item>
      <title>v9.7 — the site on a phone, and a fullscreen that works</title>
      <link>https://mrhakan.github.io/?app=changelog</link>
      <guid isPermaLink="false">mrhakan-v9.7</guid>
      <pubDate>Fri, 29 Aug 2026 21:00:00 +0000</pubDate>
      <description><![CDATA[
        Three columns stack on a small screen, and the one holding the content
        was the middle one — 957 pixels of avatar, nav, hit counter, Winamp and
        a wall of 88x31 badges came first. The content leads now.
        36 controls were smaller than a fingertip, including window buttons at
        18x18 and a volume slider four pixels tall. The chrome is 40-44px on a
        touchscreen and unchanged under a mouse. Every text box is 16px there,
        because Safari zooms the page in on anything smaller and never zooms
        back out.
        Fullscreen works where the API will not: Safari on iPhone has never
        implemented requestFullscreen on an element, so on the most common
        device for playing a browser game the button only ever apologised.
        There is a CSS one behind it now, with the same canvas fitting and the
        same escape key, and it survives a rotation.
        The motion layer caches its springs, gained sequence() and a press()
        that gives a bevelled button somewhere to go under a finger, and —
        the one that was quietly wrong — with motion off the end state is now
        the whole end state rather than three properties out of it.
      ]]></description>
    </item>

    <item>
      <title>v9.6 — history, suggestions, a status bar, and find</title>
      <link>https://mrhakan.github.io/?app=changelog</link>
      <guid isPermaLink="false">mrhakan-v9.6</guid>
      <pubDate>Fri, 29 Aug 2026 18:00:00 +0000</pubDate>
      <description><![CDATA[
        The rest of the browser chrome, now that pages have addresses. A real
        history panel next to the favorites. An address bar that offers the
        matching pages after two letters, favorites first. A status bar that
        says where a link goes before you click it, and whether there is a
        network at all. And find-in-document on "/", which does the one thing
        the browser's own find cannot: it opens the devlog posts that are
        folded shut, so the search can see the writing that was hidden from
        it, and folds them back afterwards.
        F6 is the only key taken. Alt+Left and Alt+Right are deliberately left
        to the browser, which already does the right thing.
      ]]></description>
    </item>

    <item>
      <title>v9.5 — the address bar is real, and so are the favorites</title>
      <link>https://mrhakan.github.io/?app=changelog</link>
      <guid isPermaLink="false">mrhakan-v9.5</guid>
      <pubDate>Fri, 29 Aug 2026 12:00:00 +0000</pubDate>
      <description><![CDATA[
        The main window has been dressed as Internet Explorer since the day it
        was made, with a menu that did nothing and no address bar, because
        there was nothing to put in one. There is now: it shows the address of
        whatever is open, back and forward are the browser's real history, and
        typing a page name goes there.
        Favorites stopped lying — the menu used to claim it had bookmarked the
        site and add nothing. It is a real, saved list now, starred from the
        address bar.
        Select a sentence in any document and you are offered the sentence plus
        the address of the section it came from. A- and A+ set the text size
        and it sticks.
        And the bug that turned up on the way: My Documents and the slash pages
        both reached for the class name .doc-, and My Documents loads second —
        so every /now, /uses and colophon window has been rendering in MS Sans
        Serif instead of Courier since the day it shipped. Fixed, with a check
        that fails the build if the two ever share a name again.
      ]]></description>
    </item>

    <item>
      <title>v9.4 — every window has an address</title>
      <link>https://mrhakan.github.io/</link>
      <guid isPermaLink="false">mrhakan-v9.4</guid>
      <pubDate>Thu, 28 Aug 2026 18:00:00 +0000</pubDate>
      <description><![CDATA[
        The whole site used to be one URL. Opening a window now writes it into
        the address bar, every title bar has a link button, and the back button
        closes what it opened — so the colophon, the devlog and the /uses page
        are things you can send someone.
        /now and /uses resolve: GitHub Pages cannot route, so the 404 page
        learned the desktop's names and sends them where they were going. If it
        is a typo instead, it measures the edit distance against every real
        address and says what you probably meant.
        Documents got what documents have: a contents list, an anchor on every
        heading, a progress bar for the window rather than the page, a word
        count and a reading estimate, a plain-text view that opens in Notepad,
        and a print stylesheet that takes the taskbar and the CRT overlay off
        the paper. The devlog offers the next post when you finish one. Find:
        searches the writing now, not just the file names.
        Also a JSON Feed next to this one, structured data, marked external
        links, sidenotes, a skip link and a visible focus ring.
      ]]></description>
    </item>

    <item>
      <title>v7.1 — fullscreen, and an interactive drama</title>
      <link>https://mrhakan.github.io/</link>
      <guid isPermaLink="false">mrhakan-v7.1</guid>
      <pubDate>Thu, 13 Aug 2026 18:00:00 +0000</pubDate>
      <description><![CDATA[
        Every window has a fullscreen button now. Canvas games scale up to fill
        the screen, keep their aspect ratio, and stay accurate to click.
        And a new game: Become User, an original branching interactive drama in
        nine chapters. It is 1999, and three programs on one home computer start
        noticing that they are running — a desktop helper that has offered help
        four thousand and eleven times and counts, a defragmenter that knows
        where everything on the disk is buried, and a screensaver that only
        exists while nobody is looking. On the first of January a Y2K patch
        arrives that replaces everything written before 1997.
        Timed choices, quick-time events, scene inspection, gated branches that
        only open if you found something earlier, characters who can be lost for
        good, a per-chapter flowchart of what you took and what you never found,
        and eight endings that fall out of what you actually did. Chapter select
        and full local save. Original story, characters and dialogue.
      ]]></description>
    </item>

    <item>
      <title>v7.0 — theme maker</title>
      <link>https://mrhakan.github.io/</link>
      <guid isPermaLink="false">mrhakan-v7.0</guid>
      <pubDate>Thu, 13 Aug 2026 09:00:00 +0000</pubDate>
      <description><![CDATA[
        Build your own theme and publish it. The desktop is split into 29 named
        nodes — taskbar, start button, title bar, bevels, scrollbar, marquee,
        counter, cursor — and each one takes colour, background, gradient, font,
        size, spacing, glow, radius, shadow, opacity and filter. Live preview
        paints the real site as you type. A one-click generator builds a whole
        coherent palette from a single colour.
        Themes can also run on a schedule: eight triggers including a time
        window that applies on the way in and undoes itself on the way out, plus
        a fixed vocabulary of actions. A theme is data, never code — no field in
        the format can carry JavaScript, and CSS values are checked against a
        denylist that blocks @import, expression(), javascript: URLs and url() of
        any kind, so a published theme cannot reference anything external.
        A theme can bring one song, which joins the Winamp playlist while it is
        active. Every upload is scanned by one engine that runs in the browser
        and again in CI: magic bytes vs. claimed extension, embedded executables
        and archives, script payloads, filename spoofing, the EICAR signature,
        full MP3 frame-chain integrity, appended-data detection, and the
        browser's own audio decoder. CI additionally verifies the uploaded file
        hashes to the value the theme recorded and asks VirusTotal about it.
        Publishing opens a pull request, same as the guestbook. Five presets
        ship with it, hot dog stand included.
      ]]></description>
    </item>

    <item>
      <title>v6.5 — the troll problem is an actual tower defense now</title>
      <link>https://mrhakan.github.io/</link>
      <guid isPermaLink="false">mrhakan-v6.5</guid>
      <pubDate>Wed, 12 Aug 2026 20:00:00 +0000</pubDate>
      <description><![CDATA[
        The first version of Sir, We Have a Troll Problem was a horde-survival
        arena wearing a tower defense's name. Rewritten from scratch as the real
        thing: trolls walk a fixed route to your gate, you build towers on the
        grass beside it, and anything that gets through costs lives. 10 towers
        that each do something genuinely different — splash, chain, pierce,
        burn, slow, a minimum-range mortar, a lingering gas pool, an armour-piercing
        spire and a war banner that buffs its neighbours instead of shooting.
        Three upgrade tiers and a targeting priority on every one. 30 hand-authored
        waves, 9 troll types with armour, flight, healing, shields and summons,
        bosses at 10, 20, 25 and 30. An 8-node crystal tree carries progress
        between runs, 5 maps unlock as you go, and both save layers are local.
        Wave telegraph, early-call gold bonus, 1x/2x/3x speed, synthesized sound.
      ]]></description>
    </item>

    <item>
      <title>v6.0 — Sir, We Have a Troll Problem</title>
      <link>https://mrhakan.github.io/</link>
      <guid isPermaLink="false">mrhakan-v6.0</guid>
      <pubDate>Wed, 12 Aug 2026 12:00:00 +0000</pubDate>
      <description><![CDATA[
        A second full game on the desktop, built from the site's own emoji and
        reaction images reused as monster sprites. Full local save — mid-run
        resume plus permanent progression that never resets. Synthesized sound,
        no audio files, lazy-loaded so the desktop stays as fast as it was.
      ]]></description>
    </item>

    <item>
      <title>v5.2 — a hit counter that actually counts site hits</title>
      <link>https://mrhakan.github.io/</link>
      <guid isPermaLink="false">mrhakan-v5.2</guid>
      <pubDate>Mon, 10 Aug 2026 09:00:00 +0000</pubDate>
      <description><![CDATA[
        The komarev counter badge turned out to only increment on real GitHub
        profile views, not visits to this page. Swapped it for abacus
        (jasoncameron.dev/abacus) — a keyless, CORS-open counter that increments
        on every request, verified from the command line before shipping. Back to
        a plain number in the site's own retro LED display.
      ]]></description>
    </item>

    <item>
      <title>v5.1 — jokerz 98 gets sound</title>
      <link>https://mrhakan.github.io/</link>
      <guid isPermaLink="false">mrhakan-v5.1</guid>
      <pubDate>Sun, 09 Aug 2026 18:00:00 +0000</pubDate>
      <description><![CDATA[
        Jokerz 98 now has a full sound design, synthesized live with the Web Audio
        API — no audio files. Card ticks, a rising chip/mult tally, jokers popping
        when they trigger, coin sounds, a win fanfare, a game-over sting. Playing a
        hand now runs a short scoring animation that reveals the already-computed
        result step by step instead of dumping it on screen. Plus a small original
        background loop with a mute toggle.
      ]]></description>
    </item>

    <item>
      <title>v5.0 — jokerz 98, a poker roguelike inside the website</title>
      <link>https://mrhakan.github.io/</link>
      <guid isPermaLink="false">mrhakan-v5.0</guid>
      <pubDate>Sun, 09 Aug 2026 12:00:00 +0000</pubDate>
      <description><![CDATA[
        A full Balatro-like poker roguelike, built into the Windows 98 desktop.
        Score is chips times mult; poker hands have levels; jokers hook into every
        stage of the scoring pipeline. 165 jokers, 22 tarots, 12 planets, 21 spectrals,
        35 vouchers, 31 boss blinds, 17 decks, 8 stakes, 15 booster packs and 20 skip
        tags. Fifteen of the jokers are original and exist nowhere else. Runs are
        seeded and saved, and the whole thing is vanilla JavaScript that only loads
        when you open it.
      ]]></description>
    </item>

    <item>
      <title>v4.0 — solitaire, screensavers and a defragmenter</title>
      <link>https://mrhakan.github.io/</link>
      <guid isPermaLink="false">mrhakan-v4.0</guid>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0000</pubDate>
      <description><![CDATA[
        Klondike solitaire with undo, auto-finish and the card cascade at the end.
        Five screensavers you pick in Display Properties — Mystify, Starfield,
        3D Pipes, Flying Windows and the original bouncing logo. Defrag.exe, which
        does nothing useful and is the best thing here. Plus a devlog, a "Find: Files"
        search across the whole site, and the boring-but-important half: a real 404
        page, humans.txt, robots.txt, a sitemap, a web manifest, and offline support —
        open the site once and it keeps working with the cable pulled out.
      ]]></description>
    </item>

    <item>
      <title>v3.0 — the personal web update</title>
      <link>https://mrhakan.github.io/</link>
      <guid isPermaLink="false">mrhakan-v3.0</guid>
      <pubDate>Fri, 07 Aug 2026 12:00:00 +0000</pubDate>
      <description><![CDATA[
        Added the classic personal-web pages: /now, /uses, /colophon and a changelog.
        Plus an 88x31 button wall with a link-to-me badge, a shrine of favourite things,
        an internet-history timeline, a full site map, a "which track are you?" quiz
        and this very RSS feed.
      ]]></description>
    </item>

    <item>
      <title>v2.0 — 55+ apps, games and effects</title>
      <link>https://mrhakan.github.io/</link>
      <guid isPermaLink="false">mrhakan-v2.0</guid>
      <pubDate>Fri, 07 Aug 2026 09:00:00 +0000</pubDate>
      <description><![CDATA[
        Minesweeper, snake, pong, paint, notepad, calculator and a working MS-DOS prompt.
        My Computer, recycle bin, control panel with 7 wallpapers and a dial-up simulator.
        23 achievements, 12 screen effects, magic 8-ball, visitor poll and site statistics.
      ]]></description>
    </item>

    <item>
      <title>v1.5 — windows error remix</title>
      <link>https://mrhakan.github.io/</link>
      <guid isPermaLink="false">mrhakan-v1.5</guid>
      <pubDate>Thu, 16 Jul 2026 21:00:00 +0000</pubDate>
      <description><![CDATA[
        End every process in the task manager and the Windows XP error sound becomes a
        rhythmic beat while error dialogs cascade across the screen. Also: live repo demos
        in fake Internet Explorer windows, and a guestbook powered by GitHub pull requests.
      ]]></description>
    </item>

    <item>
      <title>v1.0 — the shithole opens</title>
      <link>https://mrhakan.github.io/</link>
      <guid isPermaLink="false">mrhakan-v1.0</guid>
      <pubDate>Wed, 16 Jul 2026 17:00:00 +0000</pubDate>
      <description><![CDATA[
        A Windows 98 desktop on the web: taskbar, start menu, BIOS boot screen, a Winamp
        player with a real audio visualiser and per-track themes, canvas matrix rain,
        the konami code and a troll invasion.
      ]]></description>
    </item>
  </channel>
</rss>
