Latest
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
My Journey Learning The Go Programming Language
The key to learning anything new is finding a way to engage with the material. Some people learn by reading and some learn by doing. I typically fall into the latter half and I’ve typically been more successful in mentoring people who learn in a more hands-on way. A recent Tweet I made led to… Read more
POSIX File Handling and Undefined Behaviour
Whilst porting code between Linux and macOS I have come across two issues which make assumptions about how something works but in reality different implementations of libc handle them differently. In this post I’ll talk about recent issues I faced with fopen() and fclose() in codebases. Read more
Categories & TAGS
- Personal (247)
- Electronics (36)
- Retro Computing (199)
- Acorn (46)
- Amiga (97)
- Commodore 64 (4)
- PiStorm (23)
- Work (46)
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 Electronics Embedded Euro PC InfiniDB Linux OLED Open Source PC PiStorm Programming Raspberry Pi Raspberry Pi Pico Repair Restoration Retro RGBtoHDMI RiscPC Schneider SCSI Soldering SSD1351 TWiP VLB Xilinx