T

Tony Finch

fanf.livejournal.com · Personal blog · on HN since 2010

Tony Finch, a systems programmer and DNS engineer, writes about C tricks, data structures like tries, DNS, and Unix tooling.

What HN saysHN links it for technical posts on C coroutines, qp tries, and setjmp/longjmp, with commenters comparing them to other coroutine approaches.
24HN people shared it
11linked it in comments
24stories submitted
184story points
3 years agolast shared
2010people per year2026

Most-shared posts

  1. 1
    Raspberry Pi 2 vs. Sun E450
    4 people · 6 points · first shared 2016 · discussion on HN
  2. 2
    Coroutines in less than 20 lines of standard C
    4 people · 3 points · first shared 2013 · discussion on HN
  3. 3
  4. 4
    A rant about whois
    2 people · 3 points · first shared 2016 · discussion on HN
  5. 5
    Using a different X11 window manager with XQuartz
    2 people · 2 points · first shared 2016 · discussion on HN
  6. 6
    Qp tries: smaller and faster than crit-bit tries
    1 people · 54 points · first shared 2015 · 7 comments on HN
  7. 7
    C preprocessor expressions
    1 people · 32 points · first shared 2015 · 7 comments on HN
  8. 8
    Crit-bit tries without allocation
    1 people · 22 points · first shared 2015 · 1 comments on HN
  9. 9
    The early days of the Internet in Cambridge
    1 people · 21 points · first shared 2014 · discussion on HN
  10. 10
  11. 11
    LIAR: (Conway's) Life in a (SSE) register
    1 people · 4 points · first shared 2010 · discussion on HN
  12. 12
    Confidentiality vs. privacy
    1 people · 3 points · first shared 2016 · discussion on HN
  13. 13
    Compact encoding of the leap seconds list
    1 people · 3 points · first shared 2017 · discussion on HN
  14. 14
    Criticism of Amazon "Route 53" authoritative DNS service
    1 people · 2 points · first shared 2010 · discussion on HN
  15. 15

What HN people wrote when they linked it

fanf2 · 2020-05-24
Note that SGT's coroutines are stackless, whereas this article's coroutines have their own stack. It's also worth noting that you don't need asm to change the stack pointer, if you don't mind being imprecise about its exact value by the size of a function invocation frame or so: you can use alloca() or variable length arrays to do arithmetic on the stack pointer! https://fanf.livejournal.com/105413.html
dmit · 2016-04-25
Here are some software engineering blogs from my RSS reader in addition to the ones listed in TFA. I honestly don't know how over or underrated they are, but I guess that varies depending on which communities you're closer to. Mikola Lysenko https://0fps.net Graphics programming, geometry and algorithms. --- Steven Wittens http://acko.net Not underrated in any sense of the word, but I have to include it in case there are people who haven't seen it yet. It's about math and graphics, but also about art and design. Amazingly educational. http://acko.net/blog/how-to-fold-a-julia-fractal/ is a good starting point for new readers. --- Mark Nottingham https://www.mnot.net/blog/ Networking and HTTP. --- Jeff Preshing http://preshing.com Efficient concurrent data structures. --- Bruce Dawson https://randomascii.wordpress.com Software efficiency, performance optimization, fractals and more. --- Yann Collet http://fastcompression.blogspot.com Modern compression algorithms. --- Gil Tene http://stuff-gil-says.blogspot.com Also definitely not underrated, at least not in the Java world. But any engineer who cares about latency and honest benchmarks will benefit. Low latency techniques, GC performance, lock-free programming. --- Tony Finch http://fanf.livejournal.com C and UNIX programming, and more. --- Andy Wingo https://wingolog.org Scheme, Compilers, JavaScript, and much more. --- Aleksey Shipilёv http://shipilev.net JDK internals, low-level optimization.
CDSlice · 2020-10-20
I'm not so sure this is correct. [0] says that Hashlife has logarithmic complexity on average. In the worst case it is O(n) since it could have to look at every element to see a pattern if one even exists [1]. Therefore the worst case for any algorithm running in a Life turing machine using HashLife is the same as if it was running directly on the machine. [0] https://fanf.livejournal.com/83709.html [1] https://softwareengineering.stackexchange.com/questions/234548/what-ar…
tlb · 2019-08-25
Here is an implementation of coroutines on top of setjmp/longjmp: https://fanf.livejournal.com/105413.html
majke · 2019-03-15
> Limiting ANY queries to just TCP would have been a reasonable middle This was proposed solution, the problem is that in case of attack, against a valid Authoritative service, launched via open resolvers, the open resolvers would just download Gigabits of ANY traffic with TCP. Read about this here: https://fanf.livejournal.com/140566.html
itomato · 2017-07-02
You can run another window manager (i3) under Xquartz. http://fanf.livejournal.com/142372.html
pjc50 · 2016-08-05
How about 20+ years of operational history from SCCS: http://fanf.livejournal.com/132656.html
rumcajz · 2015-04-19
This article is really about the arguments to the coroutine. The original idea for shifting the stack pointer comes from here: http://fanf.livejournal.com/105413.html
FreakLegion · 2013-08-13
Well, PCRE, the most widely used regex lib in my experience, has a "DFA" mode (scare quotes because it's actually an NFA mode. See [1]). So the option is there, even if most people use PCRE in standard recursive kablooey mode. I was working on a drop-in managed wrapper around re2[2] so .NET developers would have access to a good regex library, but damned if starting a company hasn't gotten in the way of finishing it. Still, re2 bindings are available for most other common platforms. (Also I don't believe Java's regex engine is automata-based, which would explain the performance gains.) 1. http://fanf.livejournal.com/37166.html 2. http://code.google.com/p/re2/
gpvos · 2012-05-21
If you're sending or storing local dates and times, it may actually be better to use the local time (as ISO 8601 does) with the (Olson tz) name of the time zone it's in, instead of the time zone offset as in ISO 8601. This is more resilient against future time zone rule changes, at least that's what this article argues: http://fanf.livejournal.com/104586.html .
csdvrx · 2021-11-13
> Your SSH public key is really the least of your identifiable information you’d be worried about I disagree. The article points to simplifications that SSH did compared to GPG, like no web of trust. But there's now something very close to one, a bit hidden though: SSHFP + DNSSEC I think a lot of people here may not be familiar with SSHFP records, so check https://fanf.livejournal.com/130577.html for a more detailed explanation. It's more or less a work around the problem of initially trusting a key, by using SSHFP records to verify that the server keys are validated by the domain, with DNSSEC validating the whole thing. When you can match server keys to domains and user keys to github users, you are just one link away from having a global picture of the web of trust. EDIT: and I wonder how feasible it would be to do just that with a sniff of the initial handshake > because that’s the easiest to create a unique key for GitHub And how many people do you think have done that, instead of uploading the keys of the servers/laptops/etc. they use? I hate to say this, but Bitcoin did it right: by having a discardable private+public pair of keys derived from a seed key, it prevents leaks of information by correlation based on the public key.

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