HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
kragen
dumpulse
Python2017–2021
kragen / dumpulse

dumpulse

an embeddable dumb heartbeat daemon in 260 bytes of RAM and ≈350 bytes of code

2Distinct people
7Mentions
0Explicit recommenders
273GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

an embeddable dumb heartbeat daemon in 260 bytes of RAM and ≈350 bytes of code

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year7 dated mentions

Observed mentions: 2017-10-19 21:46:02 UTC to 2021-05-16 15:56:19 UTC.

0122017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 2 submissions, 0 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC220
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC202
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101

What Hacker News says

7 sources
Read the rest
84231, https://news.ycombinator.com/item?id=26674832, https://news.ycombinator.com/item?id=26672806, https://news.ycombinator.com/item?id=26671656, https://news.ycombinator.com/item?id=26654767, https://news.ycombinator.com/item?id=26596892, https://news.ycombinator.com/item?id=26587768, https://news.ycombinator.com/item?id=26581742, https://news.ycombinator.com/item?id=26561319, https://news.ycombinator.com/item?id=26547871, https://news.ycombinator.com/item?id=26543937, https://news.ycombinator.com/item?id=26580684, https://news.ycombinator.com/item?id=26528534, https://news.ycombinator.com/item?id=26525837, https://news.ycombinator.com/item?id=26525109, http://canonical.org/~kragen/sw/dev3/qvaders, https://news.ycombinator.com/item?id=26452393, http://canonical.org/~kragen/sw/dev3/skitch, https://news.ycombinator.com/item?id=26449902, http://canonical.org/~kragen/sw/dev3/meta5ixrun.py, https://news.ycombinator.com/item?id=26438596, http://canonical.org/~kragen/sw/dev3/mukanren.ml, https://news.ycombinator.com/item?id=26418271, http://canonical.org/~kragen/sw/dev3/kmregion.h, https://news.ycombinator.com/item?id=26299172, http://canonical.org/~kragen/sw/dev3/readprint.fs, https://news.ycombinator.com/item?id=26289195, https://news.ycombinator.com/item?id=26219950, https://news.ycombinator.com/item?id=26219000, https://news.ycombinator.com/item?id=26198567, https://news.ycombinator.com/item?id=26231940, https://news.ycombinator.com/item?id=26189525, https://news.ycombinator.com/item?id=26195060. I'm not going to link to particular comments in https://news.ycombinator.com/threads?id=giardini (it would be too easy to think I was cherry-picking the worst ones) but you can read through it yourself and see that the guy has a long history of almost nothing but incessant worthless trolling. If you can't tell the difference...
In TSMC looks to double down on U.S. chip factories as talks in Europe falter
You can put the group of nodes in a subgraph and apply the uniform style to the subgraph. In https://gitlab.com/kragen/bubbleos/-/tree/master/yeso#callin... I did that for example as follows in https://gitlab.com/kragen/bubbleos/-/blob/master/yeso/api-ty...: subgraph types { node [shape=square]; subgraph ints { node [label=int]; int bool fd u32in die stride; } long int s32 u8 u32 -> ypix ywin; ... Its expressivity is limited, since it depends on a hierarchical classification of your nodes and arcs that doesn't always eliminate all duplication, but it's usually enough to manually style the nodes the way I want without too much hassle. Because "types" and "ints" aren't "clusters", they don't affect the l
Read the rest
ayout. (If you do want to use clusters, that can make this approach more difficult.)dnl I haven't ever been quite desperate enough to use m4 to generate Graphviz files, although clearly it is a good fit. My experiences with m4 are more in the nature of getting way too much rope to hang myself with and then having a terrible time debugging. I wrote an HTML-generating macro language in m4 in 1994 and have never stopped regretting it.dnl I do agree about the Makefile. In Dumpulse I used the following Makefile rule: %.png: %.dot dot -Tpng < $< > $@ That way I can rebuild the README diagrams (if outdated) just by listing "diagram.png heartbeat.png health-report.png" as dependencies of the "all" target. https://github.com/kragen/dumpulse/blob/master/Makefile
In Create diagrams with code using Graphviz
A couple of important tips that the article omits: 1. For manual editing, dot -Tx11 foo.dot displays the graph in a window and updates it automatically whenever you save. So you can have an editor window open and the dot window and see the results of every tweak. For automatically generated graphs, this provides you with a window that you can update by overwriting a file with a new graph description. 2. Although HTML nodes are more versatile, shape=record is much easier, and sufficient for a pretty wide range of diagrams. For doing quick stuff by hand if you don't have Graphviz installed, or if you're stuck on a Mac without X-Windows, there's https://graphviz.christine.website/. I like Graphviz a lot; as other people point out, TikZ is capable of a wider range of graphics, and also you can write programs to generate graphs in TikZ. Bu
Read the rest
t Graphviz is often enough. A really simple graph like https://graphviz.christine.website/#digraph%20G%20%7Ba-%3E%7... is sometimes good enough without further tweaking, but for, e.g., the top diagram in https://github.com/kragen/dumpulse#dumpulse-an-embeddable-du..., you usually have to tweak stuff a bit.
In Create diagrams with code using Graphviz
I haven't tried afl-fuzz myself, although it sounds like world-class awesome software, but I'm a real believer in testing things with David MacIver's Hypothesis, which invokes your functions with random inputs, and then does similar canonicalization and minimization kinds of things. I like Hypothesis so much that when I wrote Dumpulse http://github.com/kragen/dumpulse I added a Python interface to it purely so I could test it with Hypothesis. Which found bugs, of course, even though Dumpulse is around 100 instructions when compiled.
In The Day I Fell in Love with Fuzzing
My only real effort in this direction was a 64-byte MS-DOS .COM file that draws colored circles on the screen: http://canonical.org/~kragen/sw/dev3/morecircles.s 00000000: b013 cd10 c42f 89e8 f72e 0000 89c5 31c6 ...../........1. 00000010: 31d2 89c1 31db 88f7 89df c1fb 0201 df89 1...1........... 00000020: c3c1 fb08 01df 01f7 5b26 883d 4353 89c3 ........[&.=CS.. 00000030: c1fb 0401 da89 d3c1 fb04 29d8 e2d6 ebc6 ..........)..... There's a lot to learn from tiny demos like the ones (I didn't write) dissected in http://canonical.org/~kragen/demo. Oh, I also wrote a Linux HTTP server in assembly with an executable under 2000 bytes: http://canonical.org/~kragen/sw/dev3/server.s with some explanation in http://canonical.org/~kragen/sw/dev3/httpdito-readme. I use it occasionally for testing stuff, since it's slightly less has
Read the rest
sle than using python -m SimpleHTTPServer. Previous HN discussion at https://news.ycombinator.com/item?id=6908064 The demoscene diskmag "hugi" did a series of sizecoding competitions in 1998–2009, with truly astounding results. http://www.hugi.scene.org/compo/hcompo.htm Highlights include a working textmode Pong game in 142 bytes, a Brainfuck interpreter in 98 bytes, a Snake game in 48 bytes, and a perfect Tic-Tac-Toe player in 213 bytes. The 8086 is a reasonable design for this kind of nonsense, since it's full of shortcuts and special cases that you can take advantage of. IBNIZ is an architecture really optimized for it, though: http://pelulamu.net/ibniz/ and in practice I often find that I can get things smaller with ARM Thumb-2 code than with the 8086. For example, https://github.com/kragen/dumpulse is about 350 bytes of code on most architectures, but just over 200 bytes on a big-endian ARM.
In The art of creating very tiny programs for the 80x86 family of CPUs

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.