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.

What HN saysCommenters link it mainly for keynav, which one calls pretty great, and for fex, which another calls a new best friend for field extraction.
37HN people shared it
22linked it in comments
18stories submitted
424story points
12 months agolast shared
2008people per year2026

Most-shared posts

  1. 1
    KeyNav – Rapid pointer movement with keyboard
    10 people · 6 points · first shared 2008 · discussion on HN
  2. 2
    SSL handshake latency and HTTPS optimizations (2010)
    6 people · 10 points · first shared 2011 · 1 comments on HN
  3. 3
    /bin/false is not security
    5 people · 262 points · first shared 2011 · 64 comments on HN
  4. 4
  5. 5
    DNS Redirection and how it will break things
    3 people · 1 points · first shared 2009 · discussion on HN
  6. 6
    fex – flexible token-field extraction
    2 people · 3 points · first shared 2015 · discussion on HN
  7. 7
  8. 8
    Thoughts and a crazy prediction on ipv6
    1 people · 35 points · first shared 2010 · 21 comments on HN
  9. 9
    Grok and automatic log pattern discovery
    1 people · 2 points · first shared 2012 · discussion on HN
  10. 10
    Easy slideshows with XML
    1 people · 1 points · first shared 2012 · discussion on HN
  11. 11
    When all you have is a hammer, make your own tools?
    1 people · 1 points · first shared 2012 · discussion on HN
  12. 12
    Aug 11
    1 people · first shared 2013
  13. 13
    Tastydrive
    1 people · first shared 2011
  14. 14
    Distributed xargs
    1 people · first shared 2010
  15. 15
    Homepage
    1 people · first shared 2012

What HN people wrote when they linked it

yjftsjthsd-h · 2022-04-01
I wouldn't game with it, but keynav (https://www.semicomplete.com/projects/keynav/ / https://github.com/jordansissel/keynav) is pretty great.
ckcheng · 2022-01-08
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
samatman · 2020-02-12
Fex is your new best friend! https://www.semicomplete.com/projects/fex/
bobf · 2013-09-18
Lots of people have known this for quite a while - nothing new to see here. Here's a blog post by a friend of mine, from 2007 ("Bypass a wifi captive portal"), which includes an example of a script to handle it all: http://www.semicomplete.com/blog/2007/Aug/11 The basic idea is as follows: 1) ping the broadcast/multicast addresses to quickly fill the arp cache 2) change your mac address to that of the detected nodes 3) see if you can access the internet now [repeat step #2-3 until you can]
kordless · 2012-08-22
A working demo is here: http://urly.stackgeek.com/C2v. Author of Logstash is here: http://semicomplete.com.
hiq · 2021-02-11
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/
pwg · 2019-12-08
> There are so many things that the command line can't do -- GUI commands, window switchers, and so on. Check out "xdotool": https://www.semicomplete.com/projects/xdotool/
pmoriarty · 2018-08-09
I use mididings[1], which is a set of python bindings for receiving, transforming, and sending MIDI. Using it xdotool[2], I've done things like used various MIDI controllers to send keystrokes, mouse movements, and mouse clicks to various applications that I use. You could potentially use this setup to control GIMP, Inscape, Krita, or other drawing applications. [1] - http://das.nasophon.de/mididings/ [2] - http://www.semicomplete.com/projects/xdotool/
TokenDiversity · 2017-07-02
You sound like someone who'd like keynav http://www.semicomplete.com/projects/keynav
tomkinstinch · 2016-01-20
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/
ilanco · 2015-08-16
If someone is interested, the same can be accomplished on X by using xdotool [1]. http://www.semicomplete.com/projects/xdotool/
sehrope · 2013-07-13
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
zokier · 2012-04-18
Well, SSL definitely incurs a performance penalty even these days when actual encrypting is relatively cheap: http://www.semicomplete.com/blog/geekery/ssl-latency.html
nickpresta · 2012-04-18
My two points were unrelated. If it's a simple HTML site - who cares? A simple HTML site with < 100KB of content and < 15 resources to fetch isn't a bit deal anyways. Two or three seconds to a user on a mobile device isn't unreasonable. If the site is more complex, the SSL handshake most likely isn't your bottleneck. I found this[1] to be an interesting read. [1]: http://www.semicomplete.com/blog/geekery/ssl-latency.html
vidoss · 2011-12-30
This is very cool. Not the tasydrive, your "keynav" http://www.semicomplete.com/projects/keynav/
brown9-2 · 2011-05-20
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.
pixelbeat · 2010-10-18
Yep. There also is dxargs which looks very useful http://www.semicomplete.com/blog/geekery/distributed-xargs.html
Freaky · 2009-12-05
NXDOMAIN = non-existent domain. In this case instead of the DNS server telling your resolver a given address doesn't resolve, it's telling it that they all resolve to OpenDNS's search service. There's a summary of some of the issues here: http://www.semicomplete.com/blog/geekery/comcast-dns-hijack-breaks-thi…
pyre · 2009-12-04
IIRC, Comcast was getting into this too. I'm referring to the specific practice of NXDOMAIN redirecting. Not just OpenDNS's practices. http://www.semicomplete.com/blog/geekery/comcast-dns-hijack-breaks-thi…
rosenbergdm · 2010-05-04
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).

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close