Latest
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
Nested Variadic Functions in C
You may be familiar with variadic functions in C, these are basically functions that allow a variable number of parameters, they are normally written like this: Obviously you can do more with them and they are very useful, but if you want to have one function calling another things can get complicated. This post explores… Read more
Rendering Emoji in Linux Terminals
Following on from my post about getting TUIs in CentOS 7 to use Unicode I thought I should write a short piece on how to actually get those characters to render in Linux terminals. Read more
Unicode 7 in CentOS 7 TUI Code
I’m in the middle of developing a project in C which uses NCurses and Unicode 7+ characters. This has been working out great in macOS and Fedora 31 where I have been doing most of my testing. But in CentOS I have been having big problems getting the characters to render. This post goes into… Read more
Fixing an OpenSSL issue with Curl and Autotools
One project I created at MariaDB is libMariaS3 [source, documentation]. It is a lightweight simple LGPL licensed API to access Amazon S3 and compatible object storage implementations. We created it so that GPL v2.0 licensed projects could use S3 without the license incompatibility of Amazon’s Apache 2.0 licensed SDK. MariaDB itself uses this for the… Read more
Episode 2: Introduction to Open Source and Licensing
Open Source Software is key to many of innovations in technology over the last few decades. It is also a fundamental requirement to build communities around software development. In this episode I give a brief introduction and an overview of Open Source and the licenses behind it. Please excuse the hay fever induced muffle of… Read more
Categories & TAGS
- Personal (225)
- Electronics (34)
- Retro Computing (178)
- Acorn (46)
- Amiga (84)
- Commodore 64 (4)
- PiStorm (23)
- Work (44)
Acorn Amiga 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 Drizzle Electronics Embedded Euro PC Floppy Disk Linux OLED Open Source PC PiStorm Programming Raspberry Pi Raspberry Pi Pico Repair Restoration Retro RGBtoHDMI RiscPC Schneider SCSI Soldering SSD1351 STM32 TWiP Valiant Turtle Xilinx