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
    E

    Enfranchised Mind

    enfranchisedmind.com · Publication · on HN since 2007

    Programming blog on functional languages, static typing, concurrency and open source, with opinionated takes on Scala, Clojure and STM.

    Visit blogHN submissions
    Languages & CompilersProgramming
    What HN says

    Commenters debate its posts on STM versus message passing and on open source responsibility, and cite its writing on programmers and history.

    Stats for nerds
    36HN people shared it
    44linked in comments
    810story points
    Mar 2012last shared
    2007people per year2012

    Top posts on HN

    1. 1
      Apple is just Microsoft with better marketing
      1 person · 147 points · first shared 2010 · 132 comments on HN
    2. 2
      What is a functional programming language?
      4 people · 120 points · first shared 2009 · 33 comments on HN
    3. 3
      Apollo 11 Dismembered
      1 person · 73 points · first shared 2009 · 49 comments on HN
    4. 4
      Dear User of My Open Source Project
      2 people · 70 points · first shared 2009 · 45 comments on HN
    5. 5
      Clojure won't win the battle but may win the war
      2 people · 65 points · first shared 2010 · 46 comments on HN
    6. 6
      Scala is Not a Functional Programming Language
      3 people · 40 points · first shared 2009 · 8 comments on HN
    7. 7
      1024 by 2012
      1 person · 34 points · first shared 2009 · 4 comments on HN
    8. 8
      Problems with Hash Tables
      2 people · 32 points · first shared 2010 · 30 comments on HN
    9. 9
      Ruby Is The Future
      1 person · 31 points · first shared 2009 · 53 comments on HN
    10. 10
      7 Actually Useful Things You Didn’t Know Static Typing Could Do
      2 people · 23 points · first shared 2008 · 3 comments on HN

    What HN people wrote when they linked it

    • earlJun 2010

      I read the article differently than most of you. I think Zed is still grumpy that contributing a big piece (if not irreplaceable, but unarguably useful) of the rails stack didn't lead to more recognition and, more importantly, the type of recognition that's useful when it's time to pay the rent. Hence his rails is a ghetto post -- I read it as something like, "This rails shit has worked out well for DHH but a bunch of other people have contributed and we haven't gotten shit. This sucks."

      This post is an elaboration -- having written a bunch of big projects that are freely available for anyone who wants to to review the code, Zed still has to answer the usual weeder questions. It's kind of insulting, frankly. And from his perspective, his contributions to open source and the community at large haven't done that much for him.

      I think this is part of a general problem in programming that a blog author I follow pointed out and another poster in this thread mentioned: open source has worked out well for eg Larry Wall or Linus or DHH, etc. But there are a lot of people that contribute -- maybe not as main authors, but who eg make sure all your rails db gems work with new revs of the databases and contribute lots of little pieces -- but who don't get enough out of it to financially justify the contribution. See the creator of Clojure essentially begging for donations on his website in order to continue development. Sometimes, it comes down to the simple fact that open…

    • nickbMar 2007

      Our Ruby on Rails app uses PostgreSQL (for now but that will change). We started off with MySQL but after growing quickly, we were forced to look into partitioning of the data. PostgreSQL was made to be easy for advanced stuff like that. We tried to do it with MySQL and failed because we're not MySQL experts and we managed to get it working with Postgres. Postgres has better documentation than MySQL so that might be the factor if you don't have a DBA you can readily ask for help. Here's a write-up by someone who went through similar process:

      http://enfranchisedmind.com/blog/archive/2006/11/04/166

      Also, if you use Postgres on multi-CPU machines, it's faster than MySQL. But, make sure you read this:

      http://www.suite101.com/article.cfm/oracle/115560
      (comparison of Oracle/MySQL/PostgreSQL)

      One last word of advice if you end up using PostgreSQL, learn and use this:

      http://pgreplicator.sourceforge.net/

      Finally, we are moving back to MySQL because we found a really fast replacement for the MyISAM storage engine (a lot faster than Postgres) and our part-time DBA knows MySQL and this new storage engine a lot better than Postgres. We are also moving to VPS architecture and Postgres' performance advantage over MySQL on a VPS doesn't really exist.

      In the end, go with what your staff/friends know and what your hosting place recommends. If they have an optimized DB stack and provide some kind of a support for it, stick with that DB because you can always go to them for help!

    • gtaniJan 2011

      http://enfranchisedmind.com/blog/posts/what-is-a-functional-programming-language/

      Note: NOT written by same guy who did "Scala not Functional".

      Everybody has a different definition of FP in mind with these, uh, parameters:

      - "no hidden side effects"; clearly demarcated IO functions, database calls.

      - curry, partial function application; lexical closures

      - TCO

      - 1st class, higher-order functions

      - Immutable / persistent collections / data structures

      Altho most people agree that these are orthogonal to the definition of FP, (but nice to have:

      - type inference (ML's is variously referred to as Damas-Milner or Hindley-Milner) or static typing

      - lazy eval

      - pattern matching

      - green/lightweight threads with message passing OR STM/MVCC

      - monads,arrows, functors, CPS

      http://stackoverflow.com/questions/485418/distinctive-traits-of-the-functional-languages

      http://stackoverflow.com/questions/1112773/what-are-the-core-concepts-in-functional-programming

    • arebopFeb 2009

      Maybe I was unusually naive, and probably everyone's more informed these days, but the thing I'd add is that tech companies are very different from other companies for CS majors.

      I supposed in my innocence that there were the overtly-sexy apps and the unsexy but still challenging apps* . I haven't had the opportunity to work for a real tech company yet, but my impression is that programming in IT is essentially a different career compared to programming in a software company.

      *It's not just a matter of nasty-little-problems. It's also a question of cultural values. More on this at http://enfranchisedmind.com/blog/2009/02/22/programming-doesnt-suck-or-at-least-it-shouldnt/.

    • HoffAug 2011

      STM and locks have some interesting clean-up and (as is cited in the article) you really need for it not to crash and not to deadlock or go all priority-inverted on you.

      Message-passing, on the other hand, doesn't need particular locking and crashes are (somewhat) simpler to deal with.

      (And most any scheme I've encountered can deadlock, and will usually choose the most inopportune moment to demonstrate this capability.)

      There's an older blog post here http://enfranchisedmind.com/blog/posts/thoughts-on-parallelism/ that's worth a read.

    • arohnerApr 2009

      if anything saves imperative programming it will be transactional memory, which is exremely hard. hardware TM and code written for TM are in a chicken-and-egg situation. the answer is hybrid hardware/software TM and the sun guys are way ahead on this too.

      What's interesting is STM is only hard in imperative languages. It's relatively straightforward in Clojure and Haskell. See http://enfranchisedmind.com/blog/posts/the-problem-with-stm-your-languages-still-suck/

    Related

    Debasish Ghoshdebasishg.blogspot.com42 people

    Does category theory make you a better programmer?

    Debasish Ghosh
    Personal · last shared 2022
    Storytotellstorytotell.org18 people

    Free your technical aesthetic from the 2010s

    Storytotell
    Personal · last shared 2026
    Chouser's Blogblog.n01se.net18 people

    Rewriting Clojure in Clojure

    Chouser's Blog
    Personal · last shared 2012
    Best In Classbestinclass.dk46 people

    Reddit/HN clone in Clojure

    Best In Class
    Personal · last shared 2020
    FP Complete Blogfpcomplete.com201 people

    Monads and GATs in Nightly Rust

    FP Complete Blog
    Company · last shared 2025
    Code Monkeyismcodemonkeyism.com34 people

    Next-gen Java Programming Style

    Code Monkeyism
    Personal · last shared 2019
    Flying Frog Blogflyingfrogblog.blogspot.com30 people

    Disadvantages of purely functional programming

    Flying Frog Blog
    Personal · last shared 2019
    LessWronglesswrong.com2.4k people

    The Best Textbooks on Every Subject

    LessWrong
    Publication · last shared 2026