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
    S

    semicomplete.com

    semicomplete.com · Personal blog · on HN since 2008

    Jordan Sissel, creator of Logstash, writes about sysadmin tools, networking, and small utilities like keynav, xdotool, and fex.

    Visit blogRSSHN submissions
    Open Source & LinuxSystems & PerformanceNetworking
    What HN says

    Commenters link it mainly for keynav, which one calls pretty great, and for fex, which another calls a new best friend for field extraction.

    Stats for nerds
    37HN people shared it
    18linked in comments
    424story points
    Apr 2022last shared
    2009people per year2022

    Top posts on HN

    1. 1
      /bin/false is not security
      5 people · 262 points · first shared 2011 · 64 comments on HN
    2. 2
      Exploring the Fragmentation of Wayland, an xdotool adventure
      1 person · 100 points · first shared 2025 · 93 comments on HN
    3. 3
      Thoughts and a crazy prediction on ipv6
      1 person · 35 points · first shared 2010 · 21 comments on HN
    4. 4
      SSL handshake latency and HTTPS optimizations (2010)
      6 people · 10 points · first shared 2011 · 1 comments on HN
    5. 5
      KeyNav – Rapid pointer movement with keyboard
      10 people · 6 points · first shared 2008 · Discussion on HN
    6. 6
      Xdotool - fake keyboard/mouse input, window management, etc
      5 people · 3 points · first shared 2010 · Discussion on HN
    7. 7
      fex – flexible token-field extraction
      2 people · 3 points · first shared 2015 · Discussion on HN
    8. 8
      Grok and automatic log pattern discovery
      1 person · 2 points · first shared 2012 · Discussion on HN
    9. 9
      DNS Redirection and how it will break things
      3 people · 1 points · first shared 2009 · Discussion on HN
    10. 10
      Easy slideshows with XML
      1 person · 1 points · first shared 2012 · Discussion on HN

    What HN people wrote when they linked it

    • rosenbergdmMay 2010

      After casually trying AwesomeWM on my mac for a short while, I decided to try to make XMonad as usable as possible under OSX without writing any HOC code. It's been an incremental process, but at point I'd call my setup _more_ than adequate. One of these day's I'm either going to update the OSX/Xmonad wiki page with my method with all of the scripts and configurations I am using under the hood... In my opinion, much of the magic of integrating X11/Xmonad with aqua involves 'capturing' key combinations (on the Xmonad side), determining how to respond, then either responding directly or emitting the correct keystrokes using xdotool (http://www.semicomplete.com/projects/xdotool/).

      For example, I let xmonad capture the keysequence <Command-Tab>. Xmonad keeps track of the MRU-like window list and switches to it. If it is another window in the current workspace, xmonad can switch to it unassisted. If a 'switch' would involve switching to an aqua application, xmonad then uses xdotool to emit the <Command-Option-A> + <Command-Tab> key sequence (popping out of X11).

    • brown9-2May 2011

      Take a look at this article which measures handshake latency versus encryption latency, it's very well-written: http://www.semicomplete.com/blog/geekery/ssl-latency.html :

      Anyway. The point is, no matter how fast your SSL accelerators (hardware loadbalancer, etc), if your SSL end points aren't near the user, then your first connect will be slow. As shown above, 22ms for the crypto piece of SSL handshake, which means 300ms of the SSL portion above was likely network latency and some other overhead.

      Once SSL is established, though, it switches to a block cipher (3DES, etc) which is much faster and the resource (network, cpu) overhead is pretty tiny by comparison.

      Summarizing from above: Using SSL incurs a 3.5x latency overhead for each handshake, but afterwards it's generally fast like plain TCP. If you accept this conclusion, let's examine how this can affect website performance.

    • sehropeJul 2013

      This is even more so if your site is served over HTTPS given the latency for the initial SSL handshake[1]. Even better not to load anything and have it properly cached on the client side.

      If you do it right you don't even have the client send/receive an HTTP 304. For our app we have a lot of modular dependencies but we serve all of them from a unique prefix per build (eg. 'assets-SHA(build)/js/foo.js'). The second page load and beyond has zero requests for the same static asset. Whenever we have a new build of the app the unique prefix gets auto updated to force clients to use the latest versions.

      For HTTPS make sure to mark your assets as public or they won't be cached:

      Cache-Control:max-age=31557600, public

      [1]: http://www.semicomplete.com/blog/geekery/ssl-latency.html

    • tomkinstinchJan 2016

      I've gone so far as to create a separate autossh user with separate key, with no shell access (by setting the user's shell to /bin/false). It still permits tunneling (call ssh with -N), but does not allow shell sessions. Perfect for when you want to access remote systems via a remote tunnel but do not want to give shell access on the relaying machine to the tunnel origin. It trusts that the machine originating the tunnel will not initiate a reflection attack (by making a local forward to the remote port itself on the originating machine and causing some log messages to appear until all file descriptors are in use)[1], but that's not so unreasonable.

      1. http://www.semicomplete.com/articles/ssh-security/

    • hiqFeb 2021

      Nobody has mentioned keynav[0] yet. "It lets you move the pointer quickly to most points on the screen with only a few key strokes."

      With some software or web pages you're better off with this kind of workaround than installing browser plugins or configuring the software, especially if you use them infrequently.

      Another tip: use ' in firefox to search for links when the focus is not in a text area. For instance, typing |'comment| (without the pipes) here selects a link containing "comment", and you can circle through other matches with F3 / Shift-F3 just like regular searches.

      [0]: https://www.semicomplete.com/projects/keynav/

    • ckchengJan 2022

      You can move the region and thus move the mouse actually:

      From: https://www.semicomplete.com/projects/keynav/

      > The following is the default configuration:

      h : select the left half of the region
      j : select the bottom half of the region
      k : select the top half of the region
      l : select the right half of the region
      shift+h : move the region left
      shift+j : move the region down
      shift+k : move the region top
      shift+l : move the region right
      semicolon : Move the mouse to the center of the selected region
      spacebar : Move the mouse and left-click

    Related

    Thomas Habetsblog.habets.se31 people

    Go is still not good

    Thomas Habets
    Personal · last shared 2026
    Graham Jenkinsdarkcoding.net44 people

    Facebook’s code quality problem (2015)

    Graham Jenkins
    Personal · last shared 2025
    Chris Siebenmannutcc.utoronto.ca/~cks388 people

    Go is Google's language, not ours

    Chris Siebenmann
    Personal · last shared 2026
    fasterthanli.mefasterthanli.me236 people

    A half-hour to learn Rust

    fasterthanli.me
    Personal · last shared 2026
    Scattered Thoughtsscattered-thoughts.net186 people

    Against SQL

    Scattered Thoughts
    Personal · last shared 2026
    NetBSD Blogblog.netbsd.org66 people

    NetBSD fully reproducible builds

    NetBSD Blog
    Company · last shared 2026
    Breadboxmuppetlabs.com/~breadbox127 people

    A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux (1999)

    Breadbox
    Personal · last shared 2026
    Probably Danceprobablydance.com74 people

    Fibonacci Hashing: The Optimization That the World Forgot

    Probably Dance
    Personal · last shared 2026