Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Eevee

    eev.ee · Personal blog · on HN since 2014

    Eevee is a programmer who writes long posts on programming languages, Unicode, CSS, music theory and game development.

    Visit blogRSSHN submissions
    ProgrammingLanguages & CompilersWeb Development
    What HN says

    Commenters repeatedly call "PHP: a fractal of bad design" one of the best blog articles ever written, and recommend the rest of the blog.

    Stats for nerds
    310HN people shared it
    156linked in comments
    7.9Kstory points
    Oct 2025last shared
    2015people per year2025

    Top posts on HN

    1. 1
      Old CSS, New CSS
      10 people · 1.5K points · first shared 2020 · 244 comments on HN
    2. 2
      I quit the tech industry
      6 people · 1.2K points · first shared 2015 · 548 comments on HN
    3. 3
      Music theory for nerds
      13 people · 1.1K points · first shared 2016 · 378 comments on HN
    4. 4
      The Rise of Whatever
      5 people · 644 points · first shared 2025 · 508 comments on HN
    5. 5
      Maybe we could tone down the JavaScript (2016)
      10 people · 406 points · first shared 2016 · 219 comments on HN
    6. 6
      Dark corners of Unicode
      12 people · 333 points · first shared 2015 · 52 comments on HN
    7. 7
      One year later
      5 people · 300 points · first shared 2016 · 61 comments on HN
    8. 8
      The sad state of web app deployment
      1 person · 267 points · first shared 2015 · 160 comments on HN
    9. 9
      Twitter's missing manual
      4 people · 260 points · first shared 2016 · 70 comments on HN
    10. 10
      Let’s stop copying C (2016)
      7 people · 195 points · first shared 2016 · 100 comments on HN

    What HN people wrote when they linked it

    • AvshalomJun 2017

      As eevee put it https://eev.ee/blog/2016/02/15/everyones-offended-these-days/ :

      >I love Stephen Fry, really I do, but this oft-repeated quote is bullshit and he is perfectly demonstrating why that is. What he’s really saying is this: everyone else’s feelings don’t matter, but his do, because he frames them as universal rules of discourse rather than feelings.

      >Look at his post again — that’s exactly how he words his point of view. “Too many people have peed in the pool.” “Now the pool is stagnant, …frothy with scum.” Fry’s feelings aren’t feelings — they are a universal and objective standard of behavior, which everyone else is violating. All those angry people, yelling that Fry has violated a universal and objective standard of behavior? Ah, they’re just perpetually offended, you see. Totally different.

    • x0x0Jan 2018

      You may be interested in eevee's story:
      https://eev.ee/blog/2015/06/09/i-quit-the-tech-industry/

      My partner left finance to work in medicine. She makes a lot less money and likes it a lot better. I dunno where you live, but becoming a physician assistant can be a pretty good gig: much less school, pretty good salaries, pretty defined hours, very little debt.

      Personally, I worked at a series of toxic startups and needed two years away to not loath programming. I regret nothing about leaving tech the first time, and after returning, my biggest regret is waiting so long to start my own company. Closely followed by tolerating so many shitty bosses. It helped me to have friends that did things besides work; workaholics are very common in sfbay. Dunno if that helps, but good luck.

    • defanorApr 2022

      As a programmer studying music, I found the "music theory for nerds" article [1] very helpful to get started, and then kept noticing how many general music learning materials for beginners skip the fundamentals/justification, suggesting to just remember many non-arbitrary things that can be deduced, without explaining why they are that way. As the article itself mentions, the hard part is to figure which parts are arbitrary and which ones are not quite so arbitrary, but pretty sure an engineer can get an easy start by studying those bits first.

      Playing an instrument is nice and fun too, of course, but I think it's more helpful for intuition rather than actual understanding -- and those are usually best to combine.

      [1] https://eev.ee/blog/2016/09/15/music-theory-for-nerds/

    • dschiptsovSep 2016

      "Reusable integers" is a real fail - it violates the principle of least surprise and introduces a nasty inconsistency - all integers should logically be (refer to) the same integer object, not just the first 100.

      Assert is a statement, not an expression, so do not use it as an expression.

      One should never compare floats. This is taught in any freshman CS course. The limitation is due to the standard encoding of floats - IEEE 754 - not Python's fault.

      Everything else are features of a truly dynamic language, designed for a really quick prototyping. Python3.x got rid of many inconsistencies and caveats of 2.x

      Shall we re-read the classic now?

      https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

    • wlllApr 2018

      Because MySQL is the PHP of databases. Much like PHP is designed to just carry on truckin' whatever problem it encounters (https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/), MySQL was too. It's easy to slam some data into it and get it back without having to think too hard about what you're actually storing (https://grimoire.ca/mysql/choose-something-else). It's ease of use made it pervasive, much like PHP.

      Following on from that, I suspect a lot of large companies use MySQL because they always have, not because it's actually any good. For example, Basecamp used MySQL while I was there, but I never met a single Sysadmin there who would use it over Postgres if they were to start a new project.

    • djsumdogJun 2018

      It's type system and automatic casting/comparing is a nightmare.

      Although there are namespaces now, the idea of everything being in the global scope was insane (and still even with namespaces, much is still in the global scope).

      mysql_real_escape_string

      There are no type-safe comparisons for greater or less then (You have ===, but no <== or >==).

      This article: https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

      This subreddit: https://reddit.com/r/lolphp

      The number of bugs that are closed as not-a-bug/wontfix.

      I'm not sure how much of this has been fixed, but I've moved on to different languages and career choices and don't really want to look back that way.

    Related

    Veekunme.veekun.com76 people

    PHP: A fractal of bad design

    Veekun
    Personal · last shared 2014
    Bram.usbram.us47 people

    YAML: The Norway Problem (2022)

    Bram.us
    Personal · last shared 2026
    Bertrand Meyerbertrandmeyer.com47 people

    Introduction to the Theory of Programming Languages (1991)

    Bertrand Meyer
    Personal · last shared 2026
    Elm Blogelm-lang.org283 people

    A Farewell to FRP

    Elm Blog
    Company · last shared 2026
    Dan Luudanluu.com1.2k people

    We only hire the trendiest

    Dan Luu
    Personal · last shared 2026
    Joel on Softwarejoelonsoftware.com2.8k people

    Victory Lap for Ask Patents

    Joel on Software
    Personal · last shared 2026
    Roblox Blogblog.roblox.com43 people

    Roblox October Outage Postmortem

    Roblox Blog
    Company · last shared 2024
    Lambda the Ultimatelambda-the-ultimate.org615 people

    Simon Peyton Jones Elected into the Royal Society Fellowship

    Lambda the Ultimate
    Publication · last shared 2026