Live data from Hacker News

Viewing profile — ekipan

ekipan

HN member
Joined
Tue, Dec 09, 2025, 7:55 PM UTC
HN karma
30
Public activity
29 items

About ekipan

Tinkerer. Forthwright. Nonpracticing Haskell weenie. Author of a dozen very specific unpublished userscripts. Battle-scarred 4channer learning to be constructive.

User of LLMs to improve my writing. The copy and code they give me are shit, but I value the perspective and holes to fill in my copy. The advice to replace prose with examples is always golden.

Lately, though, I've grown a revulsion to LLM sycophancy. It feels bad to use them. Addictive. I might try to detox soon, idk.

I do what I find fun.

Recent public activity

  1. comment
    Comment #47877134

    Doc excerpts, as a teaser: - SDF JKL layout keeps me on home row, ready to type Forth. - 39 columns source text to fit the C64 screen. - `0 prof` patches the first instruction to a…

  2. story
    Show HN: Code garden deep-dive: my Forth C64 tetromino game

    (The article is permalinked to a tag, for latest:) Deep-dive: https://github.com/ekipan/sss/blob/main/Design.md Repo front page: https://github.com/ekipan/sss The Silent Soviet Sta…

  3. comment
    Comment #47493806

    > - Function composition was being used as a binary operator between two functions. You just replaced the infix notation with prefix notation. That's incorrect. Here's the definiti…

  4. comment
    Comment #47485619

    From the article: length = foldr (+) 0 . map (const 1) length2d = foldr (+) 0 . map length -- and the proposed syntax the author calls more readable: length = foldr((+), 0, $) . ma…

  5. comment
  6. comment
    Comment #47096756

    Yeah, this. Plus a mistake from the article: $ echo '*\n!.gitignore' > build/.gitignore The \n won't be interpreted specially by echo unless it gets the -e option. Personally if I …

  7. comment
    Comment #47066990

    "Agreement" of time is probably nonsense, yeah. I realized after posting so I edited in the parenthetical, but as [3] notes, locality probably makes this less of a real issue. Appa…

  8. comment
    Comment #47065778

    I forget the context but the other day I also learned about Snowflake IDs [1] that are apparently used by Twitter, Discord, Instagram, and Mastodon. Timestamp + random seems like i…

  9. comment
    Comment #47029596

    I think everyone agrees with the sentiment but practically speaking that ship sailed decades ago. Browsing the web without uBlock or similar is ill-advised. Morbidly curious, I tur…

  10. comment
    Comment #47020140

    > And they keep forgetting the purpose of software is to serve users, not developers. I don't have any horse in the game, but I do think Zig is interesting. This remark is funny to…

  11. comment
    Comment #47019830

    Oh, it's a list you can add to your uBO. I thought it was a descriptive headline: "(The) uBlock filter list (is going) to hide ..." I only watch Youtube via browser now for both ad…

  12. comment
    Comment #46939465

    It seems to me that AI is mostly optimized for tricking suits into thinking they don't need people to do actual work. If I hear "you're absolutely right!" one more time my eyes mig…

  13. comment
    Comment #46931724

    I actually have the below clashes function in my bashrc to detect overloaded names, and a few compgen aliases for sorted formatted command lists. Clashes takes a few seconds to che…

  14. comment
    Comment #46760254

    (Edit: in the old post title:) "everything is a value" is not very informative. That's true of most languages nowadays. Maybe "exclusively call-by-value" or "without reference type…

  15. comment
    Comment #46758702

    Strange. Middle-clicking the link opens a HackerNews frontpage, but copypasting into a new tab shows the article. Presumably the server shoos away referer links? To reduce load may…

  16. comment
    Comment #46612238

    Haskell, then. f x = let y = x + 1 in y + 1 Same deal. In (f 3), y = 4, in (f 7), y = 8. y varies but cannot mutate. Should be a true enough Scottsman.

  17. comment
    Comment #46596447

    Mutability is distinct from variability. In Javascript only because it's a pretty widely known syntax: const f = (x) => { const y = x + 1; return y + 1; } y is an immutable variabl…

  18. comment
    Comment #46503180

    That makes me sad. I also love Posy's content, I'm using his cursors right now, and this new knowledge that there is some of it I cannot see gives me real consumerist FOMO anxiety.…

  19. comment
    Comment #46459504

    Shoutouts to SimpleFlips: https://www.wario.style/s/BRwFnLDe TTYD File Select: https://www.wario.style/s/paznaBKf Chemical Plant Zone: https://www.wario.style/s/L7kD5jJP Robo's The…

  20. comment
    Comment #46459067

    Wanted features: (1) a way to preview the original MIDI again from a share link like this so I could still compare. Searching "ABBA Gimme Gimme Gimme" found one with the title "ABB…

  21. comment
    Comment #46457773

    Cool enough I suppose, but the framing had me expecting the more farty twisted squarenoise instruments like in Wario Lands 1-3, and less smooth sines and squares. I tried out Kimi …

  22. comment
    Comment #46437434

    A fine sentiment, and would probably even be somewhat enforceable, as most AI slop is pretty obvious, but I suspect a lot isn't. You'd have to decide where to draw the line. How mu…

  23. comment
    Comment #46427156

    I'm sad that Platine Dispositif pulled their games. Chelsea Has to Beat the Seven Devils to Death (known more widely in English as Bunny Must Die) was a lot of fun and one day I'd …

  24. comment
    Comment #46267710

    This is a tangent on language semantics (of the English kind) instead of engaging with the (interesting!) narrative on miscompiles. Feel free to skip. > A compiler is a translator …

  25. comment
    Comment #46266456

    I confess I'm still pretty new to git. I haven't had a very long time to wed myself to git's index and its presence makes me do extra ceremony that I resent whenever I want to poli…