Latest
Fun With Apple Multi-Arch Binaries
Apple macOS has for many years supported the ability to have binaries for multiple platforms in one executable. Upon execution the correct binary data is loaded into RAM. This has multiple names such as “Universal”, “fat binary” or “Multi-Architecture Binaries”. These were really useful when Apple was transition from PowerPC to Intel CPUs, a single… Read more
How I Interview Remote Engineering Candidates
Several of my friends in tech are having a hard time in their career due to everything going on in the world right now. They are being interviewed for new roles and I still see reports of bad tech interviews happening. I thought I would write up how I do interviews for the remote teams… Read more
Event Loops and NCurses
Yesterday I wrote a blog post talking about Event Loops, this was a pre-cursor to discussing where I am using them in an application I’m currently developing which uses NCurses at its core. Unfortunately the application is an R&D project and is not public yet (still very early in development), but it is written in… Read more
Event Loop Programming: A Different Way of Thinking
The concept of event loops is not new in programming, but I think it is still a really important technique to learn. They allow a program to send a request for something and carry on doing things rather than waiting on things to happen. It is a great way of multi-tasking in a single thread… Read more
Socket SO_REUSEPORT and Kernel Implementations
Way back when I was at NGINX I worked with several people on integrating a kernel patch for SO_REUSEPORT in Linux to work with NGINX for something I termed “socket sharding“. In hindsight I should have maybe called it “socket load balancing” but the term “sharding” has stuck with that option across the industry now.… Read more
Sanitizers, The Alternative To Valgrind
Valgrind is an incredibly powerful tool which helps find leaks, buffer overflows and many other things. Whilst being extremely powerful it can also be very slow. As an alternative there are little known tools that are available for Clang and GCC which can fulfil similar functions for your C / C++ applications but with much… Read more
Categories & TAGS
- Personal (244)
- Electronics (35)
- Retro Computing (196)
- Acorn (46)
- Amiga (97)
- Commodore 64 (4)
- PiStorm (23)
- Work (45)
486 Acorn Amiga Amiga 500 Amiga 500 #1 Amiga 500 Plus #1 Amiga 600 Amiga 1000 Amiga 1200 Amiga 3000 Amiga 4000 Archimedes Atom BBC Master BBC Micro C C64 Coding ColumnStore Commodore 64 Databases DOS Electronics Embedded Euro PC Linux OLED Open Source PC PiStorm Programming Raspberry Pi Raspberry Pi Pico Repair Restoration Retro RGBtoHDMI RiscPC Schneider SCSI Soldering SSD1351 TWiP VLB Xilinx