M
Madhadron
madhadron.com · Personal blog · on HN since 2011
Madhadron is a programmer and former bioinformatician who writes on programming languages, bioinformatics, statistics, and working habits.
What HN saysHN commenters cite his bioinformatics farewell post, his seven ur-languages essay, and his energy-tracking experiment, often when discussing the state of bioinformatics tools.
29HN people shared it
8linked it in comments
32stories submitted
750story points
7 months agolast shared
2011people per year2026
Most-shared posts
- 1The seven programming ur-languages5 people · 4 points · first shared 2023 · 1 comments on HN
- 2A farewell to bioinformatics (2012)4 people · 8 points · first shared 2015 · discussion on HN
- 3A perspective on four languages (C, Common Lisp, Forth, and Haskell)2 people · 82 points · first shared 2011 · 24 comments on HN
- 4A criticism of Ruby (2013)2 people · 69 points · first shared 2017 · 38 comments on HN
- 5The seven programming ur-languages2 people · 54 points · first shared 2021 · 27 comments on HN
- 6A criticism of Ruby2 people · 10 points · first shared 2013 · 1 comments on HN
- 7Protecting your hands as a programmer2 people · 3 points · first shared 2015 · 1 comments on HN
- 8A farewell to bioinformatics (2012)1 people · 337 points · first shared 2013 · 170 comments on HN
- 9Bayesian vs. frequentist: squabbling among the ignorant1 people · 110 points · first shared 2014 · 38 comments on HN
- 10Public comments considered harmful1 people · 45 points · first shared 2013 · 18 comments on HN
- 11Getting Better at Software Engineering1 people · 3 points · first shared 2025 · discussion on HN
- 12The problem with Silicon Valley’s libertarians1 people · 3 points · first shared 2013 · 5 comments on HN
- 13Show HN: Into the Sciences1 people · 3 points · first shared 2015 · discussion on HN
- 14How to store images in your database1 people · 2 points · first shared 2023 · discussion on HN
- 15Creating Effective Pull Requests1 people · 2 points · first shared 2021 · discussion on HN
What HN people wrote when they linked it
madhadron · 2012-05-24
Try monitoring your energy level. I ran this experiment on myself (http://madhadron.com/?p=254) with very useful results. I know that my energy level drops like a rock at 16h and doesn't really come back until about 20h. So I take care of stuff that doesn't require massive energy in that gap and try to protect my second energy burst of the day for getting other stuff done.
As for the articles you've emailed yourself, I find it quite often the case that I no longer have enthusiasm a few hours later to read something that seemed interesting at first glance. The best solution there is not to read it and find something better.
I also find that it helps to schedule a block of time for a particular project. For example, I'm typesetting a book for some friends of mine. On my calendar for yesterday evening was to put the chicken on to roast and then typeset while it roasted until other friends came over for dinner at 7. The broccoli and sweet potatos required some time, but not much focused attention, so I could keep the state of the typesetting in my head while I did prep work and then go back to it when things were cooking.
You also may be using up your capacity for certain kinds of thought (e.g., programming and mathematics) at work. Try a project that uses a different part of your brain, such as drawing or writing fiction.
wickedchicken · 2011-06-16
These are still hotly debated and one paradigm is hardly 'waning' compared to the other. I think when you say "non-compiled, non-statically-typed" you actually mean "dynamically-dispatched." This page: http://madhadron.com/?p=191 popped up on HN a while ago and talks about this, the author talks about how dynamic dispatch lets you create and mold the language as you see fit -- "language as medium."
It's not a better/worse comparison as much as it is a design decision: non dynamically-dispatched languages (C, Go) don't have their semantics modified at runtime and behave in a more "predictable" manner (and are easier to analyze and prove, which compilers take advantage of for speed). On the other hand, dynamically-dispatched languages (Smalltalk, Ruby and Lisp) let you modify the semantics of the program as it's running (see Ruby's method_missing and define_method for an example). This gives you tremendous power to craft really amazing things (Rails magic), but it also creates tremendous complexity and makes things less predictable. A side-effect of this is that a JIT is needed for programmatic analysis/optimization.
I tend to consider dynamic dispatch the transfinite numbers of computing -- staying within the realm of regular integers "frees your mind" from mind-blowing concepts; you're limited in what you can make but you have more brainpower focused on making that "perfect." On the other hand, full dynamic dispatch opens up so many possibilities that sometimes you worry…
haihaibye · 2019-10-30
With age and humility has your view of the field tempered with time from "Fuck you, bioinformatics. Eat shit and die."[1]?
I totally get your point, and it maddens me daily but I take the interesting + meaningful work/money tradeoff and enjoy being one of the best coders in a building (much harder in pure tech)
[1] http://madhadron.com/posts/2012-03-26-a-farewell-to-bioinformatics.htm…
semiinfinitely · 2025-09-15
other file formats that rival fasta in stupidity include fastq pdb bed sam cram vcf. further reading [1]
> "intentionally or not, bioinformatics found a way to survive: obfuscation. By making the tools unusable, by inventing file format after file format, by seeking out the most brittle techniques"
1. https://madhadron.com/science/farewell_to_bioinformatics.html
RetroTechie · 2023-08-20
Shouldn't hurt most programmers to look at problems from a different angle. Or at least allow their brains to re-wire into considering other programming styles.
But that holds for other paradigms too:
https://madhadron.com/programming/seven_ur_languages.html
jpfr · 2023-05-09
k and q are array languages in the APL tradition.
APL is one the "ur programming languges".
https://madhadron.com/programming/seven_ur_languages.html
Here's an open source implementation of k: https://codeberg.org/ngn/k/
kdb is a time-series database with deep integration to k.
It is famously used in the financial industry.
rak1507 · 2021-11-15
I'd learn at least 1 from every major paradigm (see https://madhadron.com/posts/seven_languages.html), but in particular I'd say Haskell and APL can be pretty mind bending.
lazyjones · 2013-03-02
I don't know, I still remember this from HN: http://madhadron.com/a-farewell-to-bioinformatics