Jeroen Janssens
jeroenjanssens.com · Personal blog · on HN since 2013
Jeroen Janssens is a data scientist who writes about command-line tools for data work and wrote 'Data Science at the Command Line'.
What HN saysHN commenters recommend his book on using shell tools like sort, awk, and sed for data science, and he mentions his upcoming Polars book.
24HN people shared it
15linked it in comments
15stories submitted
1.2Kstory points
10 months agolast shared
2013people per year2026
Most-shared posts
- 1Quickly navigate your filesystem from the command line8 people · 457 points · first shared 2013 · 144 comments on HN
- 2Data Science at the Command Line, 2nd Edition (2021)6 people · 176 points · first shared 2023 · 30 comments on HN
- 3Command-line tools for data science5 people · 348 points · first shared 2013 · 78 comments on HN
- 4IBash Notebook4 people · 122 points · first shared 2015 · 8 comments on HN
- 5Detecting anomalous senators2 people · 47 points · first shared 2013 · 10 comments on HN
- 6Lean, mean data science machine2 people · 16 points · first shared 2013 · 2 comments on HN
- 7Predicting at the command line [video]1 people · 2 points · first shared 2015 · discussion on HN
- 8Command-Line Tools for Data Science (2013)1 people · 2 points · first shared 2025 · discussion on HN
- 9Extracting news articles from HTML with Reporter1 people · 2 points · first shared 2013 · discussion on HN
- 10Scripting iTerm Key Mappings1 people · 1 points · first shared 2023 · discussion on HN
- 11Phd1 people · first shared 2024
- 12Homepage1 people · first shared 2016
- 13Pp1 people · first shared 2023
What HN people wrote when they linked it
jeroenjanssens · 2024-01-09
Ritchie Vink (the creator of Polars) deliberately decided not to write a book so that he (and his team) can focus full time on Polars itself.
Thijs Nieuwdorp and I are currently working on the O'Reilly book "Python Polars: The Definitive Guide" [1]. It'll be a while before it gets released, but the Early Release version on the O'Reilly platform gets updated regularly. We also post draft chapters on the Polars Discord server [2].
The Discord server is also a great place to ask questions and interact with the Polars team.
[1] More information about the book: https://jeroenjanssens.com/pp/
[2] Polars Discord server: https://discord.gg/fngBqDry
a_bonobo · 2023-11-08
I usually recommend Data Science At The Command Line https://jeroenjanssens.com/dsatcl/
Not because it explains bash well, but because it fits with my data science/bioinformatics niche. It's all about these funky sort/uniq/rev/cut/uniq/awk/wc/sed patterns I use everyday fiddling with csv files.
weaksauce · 2014-04-16
it tab completes more than bash does. switches, parameters, servers defined in your .ssh/config file etc. it's really impressive. coupled with the jump/mark script[1] it's amazing.
mark . marks the current directory in a folder full of symlinks.
jump <tab> expands to a list of your favorite folders.
super simple and extremely low overhead.
[1] http://jeroenjanssens.com/2013/08/16/quickly-navigate-your-filesystem-…
ImPostingOnHN · 2024-05-27
> But with time I am wondering if such a thing even exists
Check out "data science at the command line":
https://jeroenjanssens.com/dsatcl/
asicsp · 2023-06-28
For field extraction (like the first example: `awk -F, '
{print $1}'`), you can also use `cut -d, -f1`
GNU datamash (https://www.gnu.org/software/datamash/) provides features like groupby, statistical operations, etc.
See also this free ebook: Data Science at the Command Line (https://jeroenjanssens.com/dsatcl/)
pen2l · 2015-12-30
So actually the main reason I'm interested in ipython-style notebooks for my terminal shell needs is the benefit of having... graphs! and pictures! and other graphical things in a terminal shell setting. I'm willing to put up with inconveniences you speak of if I can get the graphical things working well. People have experimented with it, it seems: http://jeroenjanssens.com/2015/02/19/ibash-notebook.html I'll look more into it now.
eeZi · 2015-09-06
iPython Notebook makes for a nice terminal emulator: http://jeroenjanssens.com/2015/02/19/ibash-notebook.html (inline images!).
It lacks readline support, though, and does not implement all VT100 control characters.
zerop · 2014-08-27
7 command-line tools for data science
http://jeroenjanssens.com/2013/09/19/seven-command-line-tools-for-data…
Useful Unix commands for data science
http://www.gregreda.com/2013/07/15/unix-commands-for-data-science/
xemoka · 2014-05-15
More information on jump and mark available at: http://jeroenjanssens.com/2013/08/16/quickly-navigate-your-filesystem-…
Basically there is a jump oh-my-zsh plugin, but be sure to add the auto-completion mentioned in this article too...
theophrastus · 2014-02-17
i also tried to use pop/pushd ...tried hard. and never got it integrated into the work flow. however this guy's method has saved me a lot of keystrokes (very handy if one has a few, frequently visited, yet deeply nested, directories): http://jeroenjanssens.com/2013/08/16/quickly-navigate-your-filesystem-…
chubot · 2013-11-04
There have been some posts on Hacker News describing this philosophy (see below, can't find the HN comment links unfortunately).
Another advantage is that it encourages separating your policy from mechanism. For example, you can make your sampling rate or number of buckets a command line flag, and have all your parameters in the shell scripts, rather than having various constants strewn about the code.
And obviously you can use each language where it's stronger. Python is better (and much faster) for the data cleaning part, whereas you might want to use ggplot in R.
http://jeroenjanssens.com/2013/09/19/seven-command-line-tools-for-data…
http://www.drbunsen.org/explorations-in-unix/
http://strata.oreilly.com/2011/04/data-hand-tools.html
mafro · 2013-09-11
jump just made it into oh-my-zsh:
http://jeroenjanssens.com/2013/08/16/quickly-navigate-your-filesystem-…
typicalbender · 2013-09-01
I've also found this extremely useful. It lets you mark directories with a keyword and jump directly to them regardless of where you are.
http://jeroenjanssens.com/2013/08/16/quickly-navigate-your-filesystem-…
0x23 · 2021-04-22
I use jump commands:
export MARKPATH=$HOME/.marks
function jump {
cd -P $MARKPATH/$1 2>/dev/null || echo "No such mark: $1"
}
function ju {
cd -P $MARKPATH/$1 2>/dev/null || echo "No such mark: $1"
}
function mark {
mkdir -p $MARKPATH; ln -s $(pwd) $MARKPATH/$1
}
function unmark {
rm -i $MARKPATH/$1
}
function marks {
ls -l $MARKPATH | sed 's/ / /g' | cut -d' ' -f9- | sed 's/ -/\t-/g' && echo
}
I think the original source is #http://jeroenjanssens.com/2013/08/16/quickly-navigate-your-filesystem-…
Another neat trick is to set you .inputrc to vi mode with
set editing-mode vi
set keymap vi
and then put this in your .bashrc
bind -m vi-insert -x '"\C-h"':'"pushd . 1>/dev/null 2>/dev/null && cd ../ && echo -e ${LILA} $PWD && ls"'
bind -m vi-insert -x '"\C-n"':'"popd 1>/dev/null 2>/dev/null && echo -e ${LILA} $PWD && ls"'
bind -m vi-insert -x '"\C-b":"cd $HOME && echo -e ${LILA} $PWD && ls"'
This enables you to go a directory up using ctrl-h and go back using ctrl-n.
btown · 2018-03-28
I use code based on http://jeroenjanssens.com/2013/08/16/quickly-navigate-your-filesystem-… and the discussion thread https://news.ycombinator.com/item?id=6229001 - no need for Python or something extra to install, similar semantics, just put this in .bash_profile:
export MARKPATH=$HOME/.marks
function j {
cd -P "$MARKPATH/$1" 2>/dev/null || echo "No such mark: $1"
}
function mark {
mkdir -p "$MARKPATH"; ln -s "$(pwd)" "$MARKPATH/$1"
}
function unmark {
rm -i "$MARKPATH/$1"
}
function marks {
\ls -l "$MARKPATH" | tail -n +2 | sed 's/ / /g' | cut -d' ' -f9- | awk -F ' -> ' '{printf "%-10s -> %s\n", $1, $2}'
}
function _jump {
local cur=${COMP_WORDS[COMP_CWORD]}
local marks=$(find $MARKPATH -type l | awk -F '/' '{print $NF}')
COMPREPLY=($(compgen -W '${marks[@]}' -- "$cur"))
return 0
}
complete -o default -o nospace -F _jump j
With multiple projects and codebases going on at once, it's an invaluable tool.