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
    V

    Vidar Holen

    vidarholen.net · Personal blog · on HN since 2009

    Vidar Holen, the developer of ShellCheck, writes about Linux, shell scripting, and small programming experiments.

    Visit blogRSSHN submissions
    Open Source & LinuxProgramming
    What HN says

    HN links it for his analysis of swearing in the Linux kernel source, which commenters enjoy, and for his write-ups of shell tricks.

    Stats for nerds
    68HN people shared it
    59linked in comments
    3.9Kstory points
    Nov 2025last shared
    2009people per year2025

    Top posts on HN

    1. 1
      Useless Use of "dd" (2015)
      6 people · 756 points · first shared 2017 · 252 comments on HN
    2. 2
      What was the point of [ “x$var” = “xval” ]?
      3 people · 497 points · first shared 2021 · 226 comments on HN
    3. 3
      Zsh and Fish’s simple but clever trick for highlighting missing linefeeds
      1 person · 474 points · first shared 2020 · 129 comments on HN
    4. 4
      “Dynamic programming” is not referring to “computer programming”
      2 people · 425 points · first shared 2025 · 211 comments on HN
    5. 5
      I wasted weeks hand optimizing assembly because I benchmarked on random data
      2 people · 395 points · first shared 2025 · 187 comments on HN
    6. 6
      Occurences of swearing in the Linux kernel source code over time
      29 people · 323 points · first shared 2009 · 264 comments on HN
    7. 7
      Lessons learned from writing ShellCheck
      2 people · 307 points · first shared 2020 · 46 comments on HN
    8. 8
      An ode to pack: gzip’s forgotten decompressor
      1 person · 200 points · first shared 2017 · 52 comments on HN
    9. 9
      [ -z $var ] works unreasonably well
      1 person · 169 points · first shared 2017 · 95 comments on HN
    10. 10
      Echo/printf to write images in 5 LoC with zero libraries or headersnetpbm
      1 person · 129 points · first shared 2020 · 23 comments on HN

    What HN people wrote when they linked it

    • ATBJan 2009

      Antonio,

      on HN, you wrote --

      "I hate how being harsh has become fashionable. Whatever happened to manners?"

      on your blog, you follow up by saying --

      "I stand behind those words. Acting bitter on the Internet seems to be increasingly gathering the popularity amongst an audience that’s used to being amused and entertained by cheap attacks."

      Two points: the first is that you use the word "bitter" to back up an anecdote of someone using "fucking" as an adjective to describe a poor User Interface experience. I disagree with that assessment, as there's nothing that suggests bitterness by using "fucking." It's merely a more extreme descriptor of the user's anger or exasperation, but it doesn't suggest bitterness, which has a distinctly different flavour (if you will excuse the pun).

      Secondly, I don't believe anything "happened" to manners. There have always been people, often a vast majority of a given population, who used much coarser language to describe their everyday life and experience. Often this was a class distinction, thus the reference to "swearing like a sailor" etc. I expect that many people posting here were exposed -- in the context of software engineering or computer science -- to colleagues who were either used to communicating in an academic or professional context. Although coarse language is to be expected to some extent, written communication about features, bugs, etc. in a corporate US context tends to avoid direct expletives for various reasons ("lack of…

    • AkujinJul 2015

      I don't like framing this debate in the prism of government versus private company policing. Freedom of speech is not mutually exclusive to the government.

      Consider a programming club meeting once a week that is open to the public. You get there and it's 6 dudes and they are accepting of you as a coder but completely at odds with you on the social justice spectrum (using words like "gay" and "retard" as examples). You have two choices at this point. Either accept the group for who they are or leave.

      This is the context in which I see Github. There's a reason why Linus can run his mouth. It's because to the old "boys" club of programmers only results matter and not the social context of the group.

      They have no problem with Linus using their service while running his mouth. Why are they picking on this group in particular? It's quite simple. They are small and not important.

      Let me be clear. This is very very bad for open source. Github was once considered the automatic public place to share your code. For the most part most projects live in the world of a few singular coders who put their code out to the world for sharing sake and maybe to possibly intrigue others to join their project. Many of these guys are sitting in their bedrooms or garages hacking away and not looking to open themselves up to the SJW crowd when publishing their code. Regardless of what you think of the people doing the coding (which is reflected in the comments) the point of Github was to improve…

    • peetersMay 2018

      Edit: I stand corrected, the summary in the link below didn't agree with the more detailed steps it went into below. While the hash is used as the input to the next round, it is (for reasons beyond my understanding) repeated if necessary to match the length of the original password. But it still seems like if you're prehashing in both cases the performance issue goes away.

      Is that true? I thought shacrypt stretching worked by passing the output of a round of hashing as the input to the next round of hashing, so it would go from 4096 bytes to 64 bytes (e.g.) after the first round.

      That's how it's explained here: https://www.vidarholen.net/contents/blog/?p=33. I'd love to be proven wrong.

      So it seems shacrypt and bcrypt would be equivalent. Do the expensive work from 4096 to <72 once, then subsequent rounds are all on the same size of input.

      I think my point stands, this is comparing apples and oranges unless you pre-hash the input to bcrypt and include that in the benchmark.

    • d3m0t3pJun 2025

      You can check company names too ! It's interesting to see that by default, the graph shows google,apple. But adding meta, and IBM really changes the plot.

      Meta went from 2K to 10K+ from 2018 to 2025. While IBM seems to have stopped contributing in 2008. Since they the merging with RedHat, I would have expected to see them increase again but none of RedHat / IBM seems to have increase. https://www.vidarholen.net/contents/wordcount/#redhat,oracle,google,apple,microsoft,IBM,facebook,meta Not sure if their name appearing means that they are contributing tho.

      Really cool project,

    • icebrainingJun 2012

      I never understood what's so bad about swearing in code comments. It's not something I would do, but different people speak in different ways, so what? This commit seems like a big waste of time to me (except when it replaces variables names with something more descriptive).

      Personally, I like William Morgan's IMAP rant[1], from the source of his excellent mail client Sup[2].

      And then there's the kernel: http://www.vidarholen.net/contents/wordcount/

      [1]: http://sup.rubyforge.org/svn/trunk/lib/sup/imap.rb

      [2]: http://sup.rubyforge.org/

    • IntermernetApr 2013

      Yeah, but then again I love occasionally coming across the rant of some angry dev in source comments (see http://www.vidarholen.net/contents/wordcount/ for an analysis of profanity in the linux kernel source).

      Compare that with the source of Win2k (http://www.kuro5hin.org/story/2004/2/15/71552/7795) where there were apparently "a dozen or so "fucks" and "shits", and hundreds of "craps"."

      It seems greater stability is achieved when devs are allowed to express themselves in comments.

    Related

    splitbrain.orgsplitbrain.org19 people

    Cheap Router Table and Lift

    splitbrain.org
    Personal · last shared 2026
    Project Tofinomedium.com/project-tofino22 people

    Browsers, Innovators Dilemma, and Project Tofino

    Project Tofino
    Company · last shared 2018
    Lars Ingebrigtsenlars.ingebrigtsen.no56 people

    The End of Gmane?

    Lars Ingebrigtsen
    Personal · last shared 2026
    Aphyraphyr.com551 people

    Hexing the technical interview (2017)

    Aphyr
    Personal · last shared 2026
    Not a Monad Tutorialnotamonadtutorial.com40 people

    Weld: Accelerating numpy, scikit and pandas as much as 100x with Rust and LLVM

    Not a Monad Tutorial
    Publication · last shared 2023
    Bluish Coderbluishcoder.co.nz77 people

    Using Freenet

    Bluish Coder
    Personal · last shared 2025
    Chris Wellonsnullprogram.com295 people

    Why Aren't There C Conferences?

    Chris Wellons
    Personal · last shared 2026
    Oils Blogoilshell.org156 people

    Kubernetes is our generation's Multics

    Oils Blog
    Company · last shared 2026