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

    Bluish Coder

    bluishcoder.co.nz · Personal blog · on HN since 2007

    Chris Double (doublec) writes about programming languages and systems, including ATS, Factor, Pony, Rust, Self, and Inferno OS.

    Visit blogHN submissions
    Languages & CompilersProgrammingOpen Source & Linux
    What HN says

    Commenters recommend his ATS articles as the most accessible introduction to the language and cite his Factor posts and screencasts.

    Stats for nerds
    77HN people shared it
    74linked in comments
    1.2Kstory points
    Jul 2025last shared
    2010people per year2025

    Top posts on HN

    1. 1
      Using Freenet
      1 person · 128 points · first shared 2014 · 22 comments on HN
    2. 2
      Preventing heartbleed bugs with safe programming languages
      3 people · 118 points · first shared 2014 · 112 comments on HN
    3. 3
      A Quick Look at the Rust Programming Language
      1 person · 98 points · first shared 2011 · 31 comments on HN
    4. 4
      Contributing to Servo
      2 people · 79 points · first shared 2015 · 7 comments on HN
    5. 5
      ZeroMe – Decentralized Microblogging on ZeroNet
      1 person · 79 points · first shared 2017 · 37 comments on HN
    6. 6
      Phantom Types in Rust
      2 people · 75 points · first shared 2013 · 18 comments on HN
    7. 7
      Exploring 3-Move – A LambdaMOO inspired environment
      1 person · 74 points · first shared 2017 · 15 comments on HN
    8. 8
      Casting in ATS
      1 person · 48 points · first shared 2018 · 12 comments on HN
    9. 9
      Revisiting Alice ML
      2 people · 47 points · first shared 2014 · 1 comments on HN
    10. 10
      Prototype Based Programming Languages
      1 person · 46 points · first shared 2009 · 10 comments on HN

    What HN people wrote when they linked it

    • panicJul 2017

      Here are a bunch of blogs from my RSS reader that I think are worth reading. Some of them haven't updated in a while, but the archives may be worth a look anyway.

      * Blogs with a math focus:

      http://blog.sigfpe.com

      http://bit-player.org

      http://mathr.co.uk/blog/

      https://www.johndcook.com/blog/

      * Blogs with a programming languages focus:

      https://existentialtype.wordpress.com

      https://bluishcoder.co.nz

      http://blog.ezyang.com

      http://akkartik.name

      http://lambda-the-ultimate.org

      http://mrale.ph

      * Blogs with a UI design focus:

      http://www.brandonwalkin.com/blog/

      http://ignorethecode.net/blog/

      http://interuserface.net

      * Blogs with a graphics / 3D rendering focus:

      http://c0de517e.blogspot.com

      http://diaryofagraphicsprogrammer.blogspot.com

      https://directtovideo.wordpress.com

      http://graphicrants.blogspot.com

      http://www.reedbeta.com

      http://www.realtimerendering.com/blog/

      https://blog.demofox.org

      http://eelpi.gotdns.org/blog.wiki.html

      * Other interesting / more general programming blogs (many of these have a "systems" focus):

      http://danluu.com

      http://ewontfix.com

      http://chneukirchen.org/blog/

      http://neverworkintheory.org

      http://apenwarr.ca/log/

      https://www.snellman.net/blog/

      https://www.pvk.ca

      http://psy-lob-saw.blogspot.com

      https://randomascii.wordpress.com

      http://fastcompression.blogspot.com

      https://fgiesen.wordpress.com

      http://blog.plover.com

      http://chneukirchen.org/trivium/

      http://rachelbythebay.com/w/

    • vtailJan 2012

      You are doing yourself a great service by learning Scheme - that can fundamentally change how you think about programming. Reading the first chapter of SICP[0] will change you forever. Yet right now you're using Scheme as a Python/C/Ruby with a strange syntax, while it's a totally different language with its own idioms. You should learn them to master Scheme.

      As for your particular questions:

      1. map yields an error under mzscheme

      I'm at work, and didn't have access to a proper scheme, so I used an online REPL[1], which apparently is more forgiving. Regardless, you can write your own map (a good exercise!) that stops as soon as one of the arguments is exhausted. Make it tail-recursive[2] as well!

      2. list-ref is bad

      Lists are beautiful data structures designed for recursive algorithms. If you are using lists and not using recursion (or a hidden recursion in the form of map), you're doing something wrong. list-ref uses list as a vector, which has a performance implications - your algorithm is O(n^3) while mine is O(n^2).

      3. set! is bad

      Margins are too small for a proper explanation :), but basically set! has side-effects[3], and functional programming should avoid having them.

      Have fun learning Scheme!

      [0] http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-9.html#%_chap_1
      [1] http://www.bluishcoder.co.nz/jsscheme/
      [2] http://en.wikipedia.org/wiki/Tail_call
      [3] http://en.wikipedia.org/wiki/Side_effect_(computer_science)

    • akkartikJan 2013

      I see. Yeah, I stand corrected.

      I was conflating continuation-based and closure-based webservers because both allow straight-line code instead of explicitly managing url handlers.

      And the traditional rhetoric in favor of this technique has come from Seaside, which popularized the name 'continuation-based' (http://www.linux-mag.com/id/7424; http://www.bluishcoder.co.nz/2006/05/server-side-javascript.html)

      I'd never seen anybody say this is just an early-prototyping technique. But searching found Patrick Collison concur: http://www.quora.com/Whats-the-best-continuation-based-web-framework

      It was too harsh to say it paints us into a corner; it is possible to replace fnid links with new defops. I went back and looked at the frontpage when not logged-in, and saw that there are 0 fnid links in that common case. (One possible way to gradually use a second server would be to just serve the frontpage off it. You'd need to move to a centralized store for user/profile/story objects, but the fnids table could continue to live on one server.)

      It also turns out that there's at least one company trying to scale continuation-based servers (http://bc.tech.coop/blog/040404.html). So it was overly harsh to call it a dead end.

    • tasty_freezeAug 2019

      I have written a single javascript program in my life, and it was an emulator for an 8080-based machine. I used https://bluishcoder.co.nz/js8080/ for that part of the emulator, though I had to make some changes to it.

      I found the emulator ran 4x faster on firefox than on chrome. The culprit was the main dispatch loop, a 256-entry switch statement. Chrome used a slow fall-back path because there were too many cases. The fix was to have "if (opcode < 128) { switch for first 128 cases} else { switch for other 128 cases }". It made FF a little bit slower, but greatly sped up on Chrome.

      I also tried generating 256 functions and then dispatch to the right sub based on an array of function pointers, but it wasn't any faster than the switch statement.

      But that was five year ago, and I'm sure the landscape is different now.

    • trealiraDec 2023

      I think you can do this with proof assistants, and with the SPARK version of Ada.

      You can also do it with a dependent type system. I haven't used it, but from what I've read, in the ATS programming language, which is dependently typed, you can guarantee that array index accesses and pointer arithmetic never goes out of bounds, at the cost of having to pass proof variables explicitly to various functions.

      This poster goes over how to ensure you don't cause buffer overflows in it:

      https://bluishcoder.co.nz/2014/04/11/preventing-heartbleed-bugs-with-safe-languages.html

      https://bluishcoder.co.nz/2018/01/10/capturing-program-invariants-in-ats.html

      It's a bit obscure; this is the only person who's ever blogged about ATS, as far as I can tell.

    • onethumbSep 2013

      So awesome.

      Presumably this doesn't yet allow streaming, including scrubbing / resolution & bitrate switching / etc, since Media Source Extensions / MPEG-DASH aren't supported in anything but Chrome?

      MSE: https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html

      MPEG-DASH: http://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP

      Apparently Firefox is getting close, which is heartening: http://bluishcoder.co.nz/2013/08/20/progress-towards-media-source-extensions-in-firefox.html

      If anyone from Kickstarter is here, love to hear if you're starting to play with MSE support for supported browsers, or if you're just doing download-and-play. Congrats either way - so glad to see more of this.

    Related

    AdaCore Blogblog.adacore.com106 people

    Nvidia Security Team: “What if we just stopped using C?” (2022)

    AdaCore Blog
    Company · last shared 2025
    call-with-current-continuation.orgcall-with-current-continuation.org42 people

    Fleng 22 (concurrent logic programming)

    call-with-current-continuation.org
    Personal · last shared 2026
    John Regehrblog.regehr.org401 people

    Teaching C

    John Regehr
    Personal · last shared 2026
    Rust Blogblog.rust-lang.org533 people

    Announcing Rust 1.0

    Rust Blog
    Company · last shared 2026
    Nick Cameronncameron.org65 people

    Rust in 2022

    Nick Cameron
    Personal · last shared 2026
    Chris Wellonsnullprogram.com295 people

    Why Aren't There C Conferences?

    Chris Wellons
    Personal · last shared 2026
    Brian Andersonbrson.github.io32 people

    Dave Herman’s contributions to Rust

    Brian Anderson
    Personal · last shared 2025
    Bryan Cantrilldtrace.org240 people

    Rust After the Honeymoon

    Bryan Cantrill
    Personal · last shared 2026