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
    S

    Steve Losh

    stevelosh.com · Personal blog · on HN since 2009

    Steve Losh is a programmer who writes about Common Lisp, Clojure, Vim, Mercurial, and Git.

    Visit blogRSSHN submissions
    Languages & CompilersProgramming
    What HN says

    HN repeatedly recommends his "A Road to Common Lisp" as a roadmap for learning the language, and his Clojure roguelike series.

    Stats for nerds
    219HN people shared it
    149linked in comments
    6.6Kstory points
    Jun 2025last shared
    2016people per year2025

    Top posts on HN

    1. 1
      Git koans
      49 people · 826 points · first shared 2013 · 141 comments on HN
    2. 2
      A Road to Common Lisp
      30 people · 811 points · first shared 2018 · 168 comments on HN
    3. 3
      Coming Home to Vim
      15 people · 567 points · first shared 2010 · 121 comments on HN
    4. 4
      Teach, Don't Tell (2013)
      9 people · 558 points · first shared 2013 · 75 comments on HN
    5. 5
      Going Paper-Free for $220
      2 people · 302 points · first shared 2011 · 125 comments on HN
    6. 6
      Writing Vim Plugins
      1 person · 253 points · first shared 2011 · 20 comments on HN
    7. 7
      The Homely Mutt
      15 people · 225 points · first shared 2012 · 110 comments on HN
    8. 8
      Depending in Common Lisp
      2 people · 212 points · first shared 2022 · 32 comments on HN
    9. 9
      CHIP-8 in Common Lisp: The CPU
      2 people · 192 points · first shared 2016 · 70 comments on HN
    10. 10
      List out of Lambda
      10 people · 186 points · first shared 2013 · 47 comments on HN

    What HN people wrote when they linked it

    • hv42Aug 2018

      If you editor has a correct git support, you never need to do git status because it will show you which files had been edited since the last commit.

      Every time I hear people saying how much they prefer the git command line is because they never seriously tried to leverage the git features of their IDE.

      Vs code with git lens or intellij idea have excellent git integration. Everything is one shortcut away.
      The git commands that are used are log into a console if you want to check.

      At the end of the day both methods work, it's just a matter of preference but it is worth trying a good git UI.

      Also if you ever try to teach someone git, it's not as intuitive as you think [1]. Having a consistent UX can help.

      That's why there is definitely a space for this kind of git UI as presented in the article.
      [1]http://stevelosh.com/blog/2013/04/git-koans/

    • jordighDec 2017

      > Also, follow the development of Django and comment on the intentional breaks if you think they’re not worth changing.

      I really don't want to be sucked into Django's drama:

      https://us.pycon.org/2015/schedule/presentation/381/

      I've encountered very little sympathy from Django developers. Everyone seems to have just accepted that it breaks often and it's totally my fault for not keeping up with the breaking changes. Everyone seems to think that Django breaking compatibility all over the place is good, proper, acceptable, and inevitable. Nothing is sacred, anything can break, and make sure you go through that list each release to see what you have to change in your code.

      This makes me sad and frustrated.

      http://stevelosh.com/blog/2012/04/volatile-software/

    • krupanOct 2018

      " It also has the downside of requiring extensive use of more advanced features like interactive rebasing."

      This is true. In the early days of mercurial (back before it was clear that git was winning the popularity contest) there was an extension called Mercurial Queues[1] that made it really easy to work this way. The downsides were: it didn't handle conflicts well, and it could totally destroy your work if you weren't careful. Since then someone has written the Evolve extension which is Mercurial Queues done right. That, sadly, came about after git had "won" the popularity contest.

      1. Best explanation of Mercurial Queues: http://stevelosh.com/blog/2010/08/a-git-users-guide-to-mercurial-queues/

    • alkonautMay 2017

      I think hg is more consistent, more polished, and sometimes involves a bit fewer steps to accomplish the same tasks.

      One of the best (and funniest) criticisms of the git command line is the famous git koans. http://stevelosh.com/blog/2013/04/git-koans/

      git branch -d

      git remote rm

      Is a prime example of how, if you designed it from scratch, you wouldn't leave inconsistent. "List things", "delete things" etc are activities that should work the same for all kinds of objects. the Git cli isn't designed with that thought. It's organically grown and every change is more or less irreversible because the human interface UI is used in programming (What I like to think of as the biggest flaw of Unix)

    • juanreJun 2017

      I switched back to mutt 5 months ago, when my startup started to grow fast and I needed a sensible way to deal with lots of email in multiple accounts. I haven't looked back. I still have gmail as a back-end, but I use mbsync to keep local copies of all my accounts, and msmtp to send mail.

      Some resources I found helpful:

      - http://stevelosh.com/blog/2012/10/the-homely-mutt/ (good, but it recommends offlineimap — I tried it and found it to be slow and buggy. mbsync is much better.)

      - https://github.com/cbracken/mutt

      - https://lukespear.co.uk/mutt-multiple-accounts-mbsync-notmuch-gpg-and-sub-minute-updates

    • jiiamJun 2016

      Nice, but IMO it falls, as the Bullet Journal, into the category of beauty over result. I just think that simpler, less structured systems provide comparable results in terms of getting things done, while wasting less effort on the nonessential aspect of system.

      As for alternatives, my favourite is t (http://stevelosh.com/projects/t/). Truth be told, it may be way too simple. But yet again, complexity needs to be justified.

      As a side note, remember that you can do for organizing tasks an argument similar to xkcd's on automation:

      https://xkcd.com/1205/

      https://xkcd.com/1319/

    Related

    Jezen Thomasjezenthomas.com18 people

    Deploying a Haskell Web Service with Nix

    Jezen Thomas
    Personal · last shared 2026
    Stephen Diehlstephendiehl.com209 people

    What I Wish I Knew When Learning Haskell

    Stephen Diehl
    Personal · last shared 2026
    Chris Allenbitemyapp.com35 people

    Why the poor are poor

    Chris Allen
    Personal · last shared 2025
    Bill Clementsonbc.tech.coop53 people

    Y Combinator in Erlang

    Bill Clementson
    Personal · last shared 2013
    Best In Classbestinclass.dk46 people

    Reddit/HN clone in Clojure

    Best In Class
    Personal · last shared 2020
    Aphyraphyr.com551 people

    Hexing the technical interview (2017)

    Aphyr
    Personal · last shared 2026
    Chris Wellonsnullprogram.com295 people

    Why Aren't There C Conferences?

    Chris Wellons
    Personal · last shared 2026
    Ron Garretflownet.com128 people

    Lisping at JPL (2002)

    Ron Garret
    Personal · last shared 2026