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
    J

    Joey Hess

    kitenet.net/~joey · Personal blog · on HN since 2009

    Joey Hess, a Debian developer and Haskell programmer, writes about his tools such as etckeeper, git-annex, and moreutils.

    Visit blogHN submissions
    Open Source & LinuxProgramming
    What HN says

    HN commenters hold his software in high regard, listing etckeeper, git-annex, moreutils and pristine-tar as great tools, and link his olduse.net announcement.

    Stats for nerds
    24HN people shared it
    13linked in comments
    277story points
    Nov 2020last shared
    2009people per year2020

    Top posts on HN

    1. 1
      Adieu google
      1 person · 107 points · first shared 2009 · 71 comments on HN
    2. 2
      Palm Pre Privacy Invasion
      1 person · 62 points · first shared 2009 · 25 comments on HN
    3. 3
      Databranches: using git as a database
      2 people · 49 points · first shared 2011 · 10 comments on HN
    4. 4
      Why is ssh insecure by default? [AllowTcpForwarding]
      1 person · 27 points · first shared 2009 · 31 comments on HN
    5. 5
      How Git could be attacked if SHA-1 gets broken
      1 person · 19 points · first shared 2009 · 6 comments on HN
    6. 6
      moreutils: tools that nobody thought to write long ago when unix was young
      2 people · 4 points · first shared 2012 · Discussion on HN
    7. 7
      Happy Haskell hacker
      2 people · 2 points · first shared 2011 · Discussion on HN
    8. 8
      On not coding late
      1 person · 2 points · first shared 2010 · Discussion on HN
    9. 9
      Etckeeper - automatic version control for /etc
      2 people · 1 points · first shared 2010 · Discussion on HN
    10. 10
      Watch Joey Hess code for half an hour
      1 person · 1 points · first shared 2011 · Discussion on HN

    What HN people wrote when they linked it

    • shabbleJul 2011

      if you want a dir-specific one, you could specify

      export ACKRC=./.ackrc.local

      as an env variable, and then create that file where-ever you
      need to override default behaviour, otherwise it'll use

      ~/.ackrc

      The downside to doing it this way is that you only get one or the other, you can't (afaik) load ~/.ackrc, and then only override certain aspects of it locally. Also, you're constrained to running it from the basedir of your project.
      (You might be able to overcome this with a hack based on PROMPT_COMMAND (for bash), or a precmd/preexec function for zsh), which redefines ACKRC appropriately.

      Regarding the 'gitability' of it, there's no reason why you can't have a ~/.dotfiles/ackrc, with a symlink to ~
      That's how I manage my dotfiles anyway, along with a makefile to create any missing symlinks.

      Something like http://kitenet.net/~joey/code/etckeeper/ might work out even better, although I've never really found time to play with it.

    • sciurusFeb 2012

      The rsync algorithm and program are both great, and I use the program a lot to update directory trees across the network. It's also my default tool for synchronizing two directories on the same system. The rsync program correctly optimizes for this case by skipping the rsync algorithm and completely copying changed files. However, it still uses multiple processes and seemingly still calculates some hashes, making it slower than it needs to be.

      Joey found [0] that running rsync once in dry-run mode to find what files have been changed, copying them each with cp, then running rsync a second time to handle things like deletions and file permissions resulted in a major speedup.

      [0] http://kitenet.net/~joey/blog/entry/local_rsync_accelerator/

    • frosephApr 2012

      You should take a look at http://vcs-home.branchable.com/ They have a mailing list and a bunch of resources to do similar things.

      Right now I use movein[1] to maintain my dot files. Each dotfile is held in it's own repo which is checked out to $HOME via GIT_DIR and GIT_WORK_TREE environment variables. The mr[2] command ties the git repos together as it if was one repo. I use additional repos or branches to handle variations within dotfiles. For work, I try to keep things confined to the relevent directory eg. using local.vimrc[3]

      [1] http://stew.vireo.org/movein
      [2] http://kitenet.net/~joey/code/mr/
      [3] https://github.com/embear/vim-localvimrc

    • telemachosJan 2011

      The script itself is transparent. In fact, rvm's site suggests[1] reading it before using it by running the internal curl command in a terminal.

      Beyond that, if joeyh is Joey Hess[2], I would be curious to hear how you think Ruby devs and Debian might work better together to fix the current situation (assuming you don't think everything is fine from Debian's point of view and screw the Ruby devs). I'm not trolling or baiting. I am a Debian user myself (since Etch was testing), and as someone who uses Ruby regularly, this whole thing drives me nuts.

      [1] http://rvm.beginrescueend.com/rvm/install/

      [2] http://kitenet.net/~joey/

    • dfcJul 2011

      NB:
      When I said it was written by joey I did not mean to imply anything negative about you or your code.

      All I meant was that it was yet another great piece of software written by joey:

      * etckeeper (/etc under git)

      * git-annex (dark git magic that i am only starting to fully appreciate)

      * moreutils (growing collection of the Unix tools that nobody thought to write long ago, when Unix was young)

      * tons of trivial debian infrastructure like debian-installer, tasksel, debhelper:)

      http://kitenet.net/~joey/code/

    • jamesdutcJun 2014

      I think this behaviour is supposed to be a feature of shell. Pipelines are executed in parallel.

      Also, see `sponge` from `moreutils` (http://kitenet.net/~joey/code/moreutils/):

      $ man sponge
      ...
      sponge reads standard input and writes it out to the specified file.
      Un‐like a shell redirect, sponge soaks up all its input before opening the output file.
      This allows constructing pipelines that read from and write to the same file.

    Related

    Matt Palmerhezmatt.org/~mpalmer21 people

    How I tripped over the Debian weak keys vulnerability

    Matt Palmer
    Personal · last shared 2025
    anarcatanarc.at41 people

    GnuTLS audit: passive cleartext recovery attack

    anarcat
    Personal · last shared 2026
    Andrew Ayeragwa.name60 people

    Sign arbitrary data with your SSH keys

    Andrew Ayer
    Personal · last shared 2026
    Aldo Cortesicorte.si88 people

    Visualizing binaries with space-filling curves

    Aldo Cortesi
    Personal · last shared 2026
    Drew DeVaultdrewdevault.com633 people

    Firefox is on a slippery slope

    Drew DeVault
    Personal · last shared 2026
    Daniel Miesslerdanielmiessler.com241 people

    It’s Time to Get Back to RSS

    Daniel Miessler
    Personal · last shared 2026
    Felipe Contrerasfelipec.wordpress.com51 people

    Another user/developer banned from GNOME's bugzilla without any warning

    Felipe Contreras
    Personal · last shared 2025
    Qualys Blogblog.qualys.com65 people

    SSL Labs in 2016 and Beyond

    Qualys Blog
    Company · last shared 2026