RSSAmplifier

Blog

Mort's Ramblings

mort.coffeeRSS feed ↗18 posts

Latest posts

SQLite should have (Rust-style) editions

Date: 2026-07-15 Git: https://gitlab.com/mort96/blog/blob/published/content/00000-home/00017-sqlite-editions.md SQLite is an amazing database engine. I use it as a database for plenty of embedded projects, and I don't think it's an exaggeration to call it the industry standard for local data storage. Some server software even uses it; for example, lobste.rs is now running on SQLite . Unlike…

Hard numbers in the Wayland vs X11 input latency discussion

Date: 2025-01-26 Git: https://gitlab.com/mort96/blog/blob/published/content/00000-home/00016-wayland-input-latency.md Yesterday, I read this blog post: Wayland Cursor Lag: Just give me a break already... , where a Linux user discusses their frustration with input latency under Wayland. They detailed their own subjective experience of the problem, but failed to produce hard evidence. Even though…

Faster virtual machines: Speeding up programming language execution

Date: 2023-01-15 Git: https://gitlab.com/mort96/blog/blob/published/content/00000-home/00015-fast-interpreters.md In this post, I hope to explore how interpreters are often implemented, what a "virtual machine" means in this context, and how to make them faster. Note: This post will contain a lot of C source code. Most of it is fairly simple C which should be easy to follow, but some familiarity…

The tar archive format, its extensions, and why GNU tar extracts in quadratic time

Date: 2022-07-23 Git: https://gitlab.com/mort96/blog/blob/published/content/00000-home/00014-tar.md (If you're here from Google and just need help with tar being slow: If you trust the tar archive, extract with -P to make tar fast.) A couple of days ago, I had a 518GiB tar.gz file (1.1 TiB uncompressed) that I had to extract. At first, GNU tar was doing a great job, chewing through the tar.gz at…

C/C++: 70x faster file embeds using string literals

Date: 2020-08-03 Git: https://gitlab.com/mort96/blog/blob/published/content/00000-home/00013-fast-cpp-embeds.md Tool: https://github.com/mortie/strliteral It's really common to want to embed some static data into a binary. Game developers want to embed their shaders. Developers of graphical apps may want to embed sounds or icons. Developers of programming language interpreters may want to embed…

Hacking on Clang is surprisingly easy

Date: 2020-01-27 Git: https://gitlab.com/mort96/blog/blob/published/content/00000-home/00012-clang-compiler-hacking.md I happen to think that the current lambda syntax for C++ is kind of verbose. I'm not the only one to have thought that, and there has already been a paper discussing a possible abbreviated lambda syntax (though it was rejected ). In this blog post, I will detail my attempt to…

C compiler quirks I have encountered

Date: 2018-07-26 Git: https://gitlab.com/mort96/blog/blob/published/content/00000-home/00011-c-compiler-quirks.md In a previous blog post , I wrote about some weird features of C, the C preprocessor, and GNU extensions to C that I used in my testing library, Snow . This post will be about some of the weird compiler and language quirks, limitations, and annoyances I've come across. I don't mean to…

Some obscure C features you might not know about

Date: 2018-01-25 Git: https://gitlab.com/mort96/blog/blob/published/content/00000-home/00010-obscure-c-features.md I have been working on Snow , a unit testing library for C. I wanted to see how close I could come to making a DSL (domain specific language) with its own syntax and features, using only the C preprocessor and more obscure C features and GNU extensions. I will not go into detail about…

Replacing Apple TV

Date: 2015-12-18 Git: https://gitlab.com/mort96/blog/blob/published/content/00000-home/00009-replacing-apple-tv.md For a long time now, I and my family have used an Apple TV as our media PC. Not those newfangled ones with third-party games and apps , but the older generation, those with a set of pre-installed "apps" which let you access certain quarantines of content, such as Netflix, YouTube,…

Housecat, my new static site generator

Date: 2015-10-08 Git: https://gitlab.com/mort96/blog/blob/published/content/00000-home/00008-housecat.md This website has gone through several content management systems throughout the times. Years ago, it was WordPress, before I switched to a basic homegrown one written in PHP. A while after that, I switched to a static site generator written in JavaScript, which I called Nouwell.. Now, the time…

Apple and security: Are we back to using our favorite band as our passwords?

I have relatively recently started switching all my online account over to using a password system where all my passwords are over 20 characters, and the password is different for each and every account. It also contains both numbers, lowercase characters, and uppercase characters. I should be safe, right? Well, not quite. A while ago, I just randomly decided to try out Apple’s “forgot password”…

Yet Another "Types of Programmers"-post

I and some friends were hanging out in a Google Docs-document earlier, and made our own "types of programmers"-list. The result: The kinda-master: This kind of programmer always assumes they know best, and commits without any testing, often breaking sections of the code. They invent unusual methods of doing things, and insist they are the best, especially when they are not. They are very skilled…

Experimenting with static site generation

Hi! If you visit this blog on a regular basis, which you probably don't, you may have noticed that it looks a bit different from how it used to look. The overall theme is the same, but the URLs look way different, and there is no comment section. So what happened? A while ago, I wrote my own content management system in PHP, replacing WordPress. That was your standard CMS, for every request, you…

A small WTF regarding CSS units

CSS. A tool loved by web developers all over the world. It lets us style our HTML easily, and creates somewhat loose coupling between content and layout. CSS. A tool hated by web developers all over the world. It makes us spend countless hours trying to accomplish what seemed to be the most mundane task. Today, CSS got a little bit weirder. It all started with me and a discussion between me and a…

Rant about YouTube

Since its inception in 2005, YouTube has grown out of proportions. It is to videos what Google is to search. With a user base of billions of people and thousands of hours of footage uploaded daily, you'd almost think they knew what they were doing. And they do, from an infrastructure standpoint. That amount of traffic requires vast server farms all around the world, all working together. Where…

JavaScript's Rough Childhood

As some of you may know, I'm a fan of JavaScript. Pretty much all of my projects are web apps, and as such, JavaScript is an important part of them. JavaScript does have its good parts . Parts which at the very least are en par with other languages. It does, however, also have quite a bit of bad parts. In the beginning, there was Brendan Eich. Eich got hired by Netscape to design a programming…

"'Considered Harmful' essays considered harmful" essays considered harmful

Okay, that title is a bit of a brain twister. Hear me out though, I promise I'll eventually make some kind of sense. Since the late 60′s, a type of computer-related essays, namely so-called "considered harmful" essays, became popular. Considered harmful essays are all about writing page up and page down about why something programming related is bad and should be avoided. The first considered…

My Worst Code

Someone called Xeomorpher made a thread on the Open Redstone Engineers forum (more about ORE some here ), asking what people's worst pieces of code were. I wrote a response, which I might as well post here too: TequilaJumper! Made for Ludum Dare with minimal amounts of experience, it's not of my prettiest of works. It did however spawn some offspring in the form of xeo's TofuJumper. Because of…