Top all-time · #12315
Jon Nordby
Personal blog · jonnor.com · on HN as jononorhardwareprogramming
Jon Nordby's personal blog at jonnor.com covers hardware and programming. Since 2013, 6 different Hacker News readers have linked it 16 times, most often “Host-based simulation for embedded systems”. The last post was in 2023, but the archive is still widely read.
Too few sampled comments (3) to say how often HN recommends it.?
Why HN links it
The comments link Jon Nordby's posts on GEGL-based image processing, including imgflo and a tag feed on GEGL work, and on msgflo for distributed work queues in Node.js.
Summarised by Claude from a sample of 3 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Host-based simulation for embedded systems2 people · 3 mentions · first linked 2017-03-02
- Imgflo: on-demand image processing used on the Grid2 people · 2 mentions · first linked 2014-11-03
What Hacker News says?
A recent, similar, node-based image editor based off of GEGL is http://www.jonnor.com/2015/01/imgflo-0-3/
Comment linking /2015/01/imgflo-0-3/
on “Show HN: Image Processing for Everybody”Submitted Optimizing latency of an Arduino MIDI controller as a story · 93 points
HN discussionNot the parent, but I wrote a little bit about this here: https://www.jonnor.com/2017/03/host-based-simulation-for-emb... The key thing is to make the majority of the code portable enough to run on a PC. I find the best way to do that is to keep things data-oriented, using Plain Old Data type data structures and pure functions as much as possible. Alternative view: isolate out any device-specific pieces, like I/O in…
Comment linking /2017/03/host-based-simulation-for-embedded-systems/
on “There's an ARM Cortex-M4 with Bluetooth inside a Covid test kit”Submitted Imgflo: on-demand image processing used on the Grid as a story · 5 points
HN discussionYes, you are very right. The function of most microcontroller/embedded systems are almost all input/output (sensing/actuating). The challenge is that combined software+hardware systems can be hard to test, especially together. The traditional way to simplify QA is to use a Hardware Abstraction Layer in the code, which hardware side-effects happen through. So you have a classic layer cake like: | App Logic (imperativ…
Comment linking /2017/03/host-based-simulation-for-embedded-systems/
on “WebAssembly Micro Runtime”Submitted Host-based simulation for embedded systems as a story · 2 points
HN discussionThis is not a scam, it is making use of a lot of the work done porting gimp filters to gegl/opencl. http://www.jonnor.com/tag/gegl/feed/
Comment linking /tag/gegl/feed/
on “The Grid: Certainly Misguided, Probably a Scam”Submitted Live programming IoT systems with MsgFlo+Flowhub as a story · 2 points
HN discussionBecause it sets what is stored in `state` it does not have to be. It could be inside the if, but there two major reasons why it should not: 1) Testability. With it separated, we can write automated tests for our state calculation logic that are hardware independent, like 'normal' code. We just need to create `currentState` data, pass it into our `calculate()` function, and verify the new `state` returned. This can r…
Comment linking /2017/03/host-based-simulation-for-embedded-systems/
on “Ownership is Theft: Experiences Building an Embedded OS in Rust (2015) [pdf]”Submitted Visual Arduino programming as a story · 1 points
HN discussionI do agree that it is too costly though, and I think this is partly a tooling issue. Hoping that open source software and hardware can help here. For instance, on-device testing is a first-class citizen in the microcontroller programming framework I've developed. Shameless plug: http://www.jonnor.com/2017/02/data-driven-testing-with-fbp-s...
Comment linking /2017/02/data-driven-testing-with-fbp-spec
on “What Are the Tricky Parts of Embedded Development?”GEGL is developed for GIMP, and other projects. http://www.jonnor.com/2014/04/imgflo-0-1-an-image-processing... http://www.jonnor.com/2014/11/imgflo-0-2-the-grid-launched/ Disclosure: I'm a GEGL dev and the imgflo maintainer. The 'other projects' part is one of the reasons why the proposed solution 'just strip all colorspace info, assume it is the same throughout entire processing pipeline' is not acceptable for GEG…
Comment linking /2014/11/imgflo-0-2-the-grid-launched/
on “The Sad State of High Bit Depth GIMP Color Management”Here is our approach: http://www.jonnor.com/2015/06/announcing-msgflo-a-distribute...
Comment linking /2015/06/announcing-msgflo-a-distributed-fbp-runtime/
on “Using RabbitMQ and AMQP for Distributed Work Queues in Node.js”There is topological naming available about USB ports from the Linux kernel. So one can find what device was connected to which hubs, and which root hub that hub was on, etc. See lsusb -t, and the device paths exposed in udev. Old blogpost of mine about it: https://www.jonnor.com/tag/usb/
Comment linking /tag/usb/
on “Stress-Testing 100 Bluetooth Beacons (So the Team Can Sleep Well at Night)”Before you start, determine what you are attempting to optimize. Throughput or latency? Improving averages, or reducing how often below-acceptable performance occurs? Write end2end tests that execises the application as close to what user would. Then, use a profiler with an API so you can start dump when test/app setup is completed (to avoid extranous noise/misleading data). I like gperftools combined with KCachegri…
Comment linking /2012/11/improved-drawing-performance-in-mypaint-brush-engine
on “Ask HN: What's your best C/C++ profiling tool, hints and best practice?”