The Curious Engineer

All blogs / Linux / Unix

Vidar's Blog

vidarholen.net/contents/blog

GNU, Linux and technology in general

Linux / UnixDev tools / editors / IDEsPerformance / optimizationSecurity

Posts
65 from 8 Nov 2008 to 16 Jul 2025
Posting
now and then
Kind
personal blog
Feed
https://www.vidarholen.net/contents/blog/?feed=rss2

2025 2

  1. The key to understanding “Dynamic Programming” is that it’s not referring to “computer programming”
  2. That time I wasted weeks hand optimizing assembly because I benchmarked on random data

2021 4

  1. FiniteCurve.com: TSP art on a CPU budget
  2. Swap on HDD: Does placement matter? (tl;dr: Yes)
  3. What exactly was the point of [ “x$var” = “xval” ]?
  4. Why is /usr/bin/test 4kiB smaller than /usr/bin/[ ?

2020 5

  1. ${var?} and &&: Two simple tips for shell commands in tech docs
  2. Use echo/printf to write images in 5 LoC with zero libraries or headers
  3. Zsh and Fish’s simple but clever trick for highlighting missing linefeeds
  4. The curious pitfalls in shell redirections to $((i++))
  5. Lessons learned from writing ShellCheck, GitHub’s now most starred Haskell project

2019 3

  1. What’s new in ShellCheck v0.7.0?
  2. Tricking the tricksters with a next level fork bomb
  3. A shell script that deleted a database, and how ShellCheck could have helped

2018 2

  1. So what exactly is -ffunction-sections and how does it reduce binary size?
  2. Bash’s white collar eval: [[ $var -eq 42 ]] runs arbitrary code too

2017 5

  1. An ode to pack: gzip’s forgotten decompressor
  2. ShellCheck and shadowed case branches
  3. Buffers and windows: The mystery of ‘ssh’ and ‘while read’ in excessive detail
  4. Compiling Haskell for Windows on Travis CI
  5. [ -z $var ] works unreasonably well

2016 1

  1. Swearing in the Linux kernel: now interactive

2015 3

  1. Technically correct: floating point calculations in bc
  2. Useless Use Of dd
  3. I’m not paranoid, you’re just foolish

2014 3

  1. Parameterized Color Cell Compression
  2. Why Bash Is Like That: Rewrite hacks
  3. Basics of a Bash action game

2013 3

  1. Adventures in String Reversal
  2. Paste shell script, get feedback: ShellCheck project update
  3. Making bash run DOS/Windows CRLF EOL scripts

2012 5

  1. ShellCheck: shell script analysis
  2. Approaches to data recovery
  3. Why Bash is like that: Subshells
  4. On Windows 8
  5. Technically correct: Inversed regex

2011 11

  1. Implementation of SHA512-crypt vs MD5-crypt
  2. Password hashing with MD5-crypt in relation to MD5
  3. Why Bash is like that: Signal propagation
  4. Why Bash is like that: suid
  5. Why Bash is like that: Builtin or not
  6. Why Bash is like that: Order of expansion
  7. Introducing the RIAA iScream
  8. Why Bash is like that: Command expansion
  9. Why Bash is like that: Pseudo-syntax
  10. What’s in a SSH RSA key pair?
  11. MP3 to Video using GStreamer visualizations

2010 6

  1. Is it terminal?
  2. Why PulseAudio?
  3. RAM-loadable Linux on a stick
  4. Pattern matching with Bash (not grep)
  5. What’s up with directory hard link counts?
  6. Simple ad-hoc file sharing

2009 8

  1. Default package selection
  2. Using SSH keys from untrusted clients
  3. Two classic ways of getting owned
  4. “Linux ate my ram!”
  5. Password generation traps
  6. Project: Screenshot diary
  7. Multithreading for performance in shell scripts
  8. Incremental backups to untrusted hosts

2008 4

  1. dd is not a backup tool!
  2. Visualization fun with GStreamer
  3. Webcam fun with GStreamer
  4. Cutecodes