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

    Adam Drake

    adamdrake.com · Personal blog · on HN since 2018

    Adam Drake writes about data engineering, software architecture, and engineering management, and is known for his Hadoop versus command-line comparison.

    Visit blogHN submissions
    Systems & PerformanceData & VisualizationBusiness & Strategy
    What HN says

    HN repeatedly links his piece on command-line tools being 235x faster than a Hadoop cluster, whenever big data tooling choices come up.

    Stats for nerds
    71HN people shared it
    24linked in comments
    1.6Kstory points
    Aug 2026last shared
    2018people per year2026

    Top posts on HN

    1. 1
      Command-line tools can be faster than a Hadoop cluster (2014)
      61 people · 1.5K points · first shared 2018 · 253 comments on HN
    2. 2
      Novel Results Considered Harmful
      2 people · 17 points · first shared 2019 · 3 comments on HN
    3. 3
      Big Data, Small Machine
      2 people · 6 points · first shared 2018 · Discussion on HN
    4. 4
      Always Be Shipping – Never Do Feature-Freeze
      2 people · 4 points · first shared 2018 · Discussion on HN
    5. 5
      Command-line Tools can be 235x Faster than your Hadoop Cluster
      1 person · 4 points · first shared 2021 · Discussion on HN
    6. 6
      Enough with the microservices – Adam Drake
      3 people · 3 points · first shared 2018 · Discussion on HN
    7. 7
      MAC Addresses, UDIDs, and Privacy
      1 person · 3 points · first shared 2018 · Discussion on HN
    8. 8
      Don't Categorize, Prioritize
      1 person · 3 points · first shared 2018 · Discussion on HN
    9. 9
      The Biggest Smallest Website
      2 people · 1 points · first shared 2018 · Discussion on HN
    10. 10
      Three Things Your People Need to Know
      2 people · 1 points · first shared 2018 · Discussion on HN

    What HN people wrote when they linked it

    • bayindirhJan 2021

      > syslog-ng supports the systemd journal natively so you'd never see a difference from before if you don't want to.

      We use rsyslog with systemd and it works too, however it's just another level of abstraction so, I'm not fond of piling stuff over and over. Binary logs' and journals' usefulness can be also debated. It of course brings some advantages to the table but, it doesn't enable anything groundbreaking for me.

      > The principle is dogma that has held back Unix imo. It's useful for simple CLIs but that is about it. By your definition the kernel itself goes against the principle.

      Actually I don't consider it dogma, because it has some very important results and corollaries. This principle reduces secondary complexity (glue logic, complexity required to do many things with one code base, etc.) greatly hence the software can be relentlessly optimized. grep, find, sed, awk, cut, head, tail, less all are extremely performant tools. I develop high performance scientific applications and making a tool accomplish more than a couple different functions either reduce performance (generalized algorithms) or increase size a lot (specialized functions for everything). Its refactoring, verification, maintenance gets complicated and expensive fast.

      UNIX pipes and small optimized tools are much more useful beyond simple CLI commands and small scripts. Since the tools are fast, low memory footprint performance behemoths, you can build very fast and reliable machinery with them. You…

    • hansvmAug 2026

      Ha, I was explaining this just yesterday to a few people at $WORK (I'm not at TB, though we do use a bunch of Zig in prod).

      "Multiprocessing" (multiple CPU cores independently executing and only able to coordinate via some message-passing system -- a definition which encompasses both multi-core CPUs and horizontally scaled distributed systems, contrasting slightly with the normal definition) is challenging for a few reasons.

      Firstly, the details are an open math question, but I'll blindly state that some problems aren't amenable to parallelization. I.e., no algorithm can meaningfully improve performance via parallelization no matter the implementation. Think through how you would more quickly compute hash(hash(hash(hash(...)))) for example. The serial dependency makes things challenging. That isn't too dissimilar to the problem TB faces.

      Secondly, message passing is expensive. If the only way two CPU cores can coordinate is through a multi-level cache, at best you're incurring ~tens of nanoseconds of latency per message. Contrast that with a base rate of 512 bytes processed per nanosecond with enough attention to detail on typical modern server hardware (4 pipelined AVX512 instructions at 2GHz). Messages are several orders of magnitude worse than your normal work, so if you need very many of them then you're hosed from a performance perspective (worse with longer delays, like networked computers). Even very parallelizable problems at an abstract level can suffer…

    • kragenOct 2022

      I missed the edit window on this but: I don't think you're going to get computers to not be messy and full of huge time sinks. That's just the nature of humanity being reflected in a silicon mirror.

      I like the idea of focusing first and foremost on debuggability, on manipulating program execution histories as first-class objects. There are a huge number of interesting tradeoffs there with performance.

      What I mean by "power" is that Unix makes it easy enough to do things like "interactive text chat in three lines of code" (untested, and quality at best "usable prototype" rather than "production ready")

      #!/bin/bash
      ch="$
      {2?Usage: $0 /tmp/channelfile}"
      touch "$ch"; chmod 666 "$ch"; tail -f "$ch" & # chat of the beast
      while read -e line; do echo "<$USER> $line"; done >> "$ch"

      or "which other English words might be Greek neuters, plural and all, like automaton/automata"

      grep "on$" /usr/share/dict/words | sed 's/..$/a/' | sort |
      join - <(sort /usr/share/dict/words)

      or "which directory is growing in my home directory and filling up the fucking disk"

      du -k ~ > tmp.du.1
      du -k ~ > tmp.du.2
      diff -u tmp.du.[12]

      or "build the thumbnails for any images I haven't thumbnailed yet", at least as long as none of them have spaces in the names, using GNU make (untested, but adapted from real code):

      thumbnails: $(patsubst %.jpg,thumbs/%.jpg,$(wildcard *.jpg))
      thumbs/%.jpg: %.jpg
      convert -geometry 80x160 $< $@

      or…

    • coldteaMay 2024

      >I mean if you're doing data science the data is not always organized and of course you would want multi-processing

      Not necessarily - I might not want it or need it. It's a few TB, it can be on a fast HD, on an even faster SSD, or even in memory. I can crunch them quite fast even with basic linear scripts/tools.

      And organized could just mean some massaging or just having them in csv format.

      This is already the same rushed notions about "needing this" and "must have that" that the OP describes people jumping to, that leads them to suggest huge setups, distributed processing, multi-machine infrastructure, for use cases and data sizes that could fit on a single server with redundancy and be done it.

      DHH has often written about this for their Basecamp needs (scalling vertically where others scale horizontally having worked for them for most of their operation), there's also this classic post: https://adamdrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html

      >1 TB of memory is like 5 grand from a quick Google search then you probably need specialized motherboards.

      Not that specialized, I've work with server deployments (HP) with 1, 1.5 and 2TB RAM (and > 100 cores), it's trivial to get.

      And 5 or even 30 grand would still be cheaper (and more effective and simpler) than the "big data" setups some of those candidates have in mind.

    • throwaway_pdp09Oct 2020

      All the new shiny. From experience I can tell you

      a) most companies deal with small amounts of data. Small can mean dozens of megabytes to dozens or hundreds of gigabytes. A single well provisioned server will typically be able to handle that very well. Also an SQL database can do a great deal if you know what you're doing.

      b) inappropriately used big data frameworks are expensive performance killers. https://adamdrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html for example.

      c) Good quality programming, as in understanding the machine, memory layout and why it matters, and a good understanding of algorithms (and a hefty dose of common sense), will often yield you more speedup than buying almost any number of new machines.

      c) Hiring is often driven by fads and companies often don't like being told 'you don't need this roomful of servers', they like to waste money, so maybe do learn them (the profligacy with money is likely to be coming to an end with the economic damage of covid).

      Takeaway: brainpower will get you much further than horsepower

    • hectormalotMay 2024

      I wouldn't underestimate how much a modern machine with a bunch of RAM and SSDs can do vs HDFS. This post[1] is now 10 years old and has find + awk running an analysis in 12 seconds (at speed roughly equal to his hard drive) vs Hadoop taking 26 minutes. I've had similar experiences with much bigger datasets at work (think years of per-second manufacturing data across 10ks of sensors).

      I get that that post is only on 3.5GB, but, consumer SSDs are now much faster at 7.5GB/s vs 270MB/s HDD back when the article was written. Even with only mildly optimised solutions, people are churning through the 1 billion rows (±12GB) challenge in seconds as well. And, if you have the data in memory (not impossible) your bottlenecks won't even be reading speed.

      [1]: https://adamdrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html

    Related

    Aaron Drakeaadrake.com34 people

    Command-line tools can be faster than your Hadoop cluster

    Aaron Drake
    Personal · last shared 2022
    Justine Tunneyjustine.lol251 people

    Show HN: Redbean – Single-file distributable web server

    Justine Tunney
    Personal · last shared 2026
    Factual Blogblog.factual.com23 people

    Introducing Drake, a kind of ‘make for data’

    Factual Blog
    Company · last shared 2015
    Aphyraphyr.com551 people

    Hexing the technical interview (2017)

    Aphyr
    Personal · last shared 2026
    The Morning Paperblog.acolyer.org606 people

    Local-first software: you own your data, in spite of the cloud

    The Morning Paper
    Personal · last shared 2026
    Antithesis Blogantithesis.com84 people

    Is something bugging you?

    Antithesis Blog
    Company · last shared 2026
    Piotr Kołaczkowskipkolaczk.github.io17 people

    A single line of code made a 24-core server slower than a laptop

    Piotr Kołaczkowski
    Personal · last shared 2026
    Google Research Blogresearch.google584 people

    Google Titans architecture, helping AI have long-term memory

    Google Research Blog
    Company · last shared 2026