For some time now I have been working on my first CPU design as a hobby project. It started with a desire to learn more about CPU architecture design, and in particular instruction set architecture (ISA) design. To be clear, I’m not a hardware or CPU designer by trade, but I have worked with performance …
Author: Marcus Geelnard
Installing Intel/Altera Quartus Prime in Ubuntu 17.10
UPDATE: The new Intel® Quartus® Prime Lite 18.1 installs without any problems under Ubuntu 18.04 (LTS). Hopefully this article is now superfluous (unless you need to install older version of Quartus onto older versions of Ubuntu). Installing the Intel® Quartus® Prime Lite edition software (the free Intel/Altera FPGA design software suite) for Ubuntu 17.10 is …
Benchmarking OS primitives
Lately I have taken some interest in the hardware and software of C++ build servers. One of the things that I have noticed is that there is a significant performance difference between Windows and Linux machines for common build tasks, such as cloning a git repository, running CMake and caching build results. Some of these differences …
Faster C++ builds
The C++ language is known for its long compilation times. While that is largely true (compared to many other languages), C++ is also one of the most mature languages out there, with rich tool support. There are now a lot of tools and good practices that can be applied to most C++ projects to help …
A stable mainline branching model for Git
In this article I will describe a Git workflow and branching model that I have used successfully in several projects and companies for many years now. It scales from small to large teams, and it fixes some common problems with Continuous Integration and GitFlow, for instance. Moreover, it is very simple and results in a nice Git …
GitHub pull request != code review
This article tries to summarize some of the problems that I have come across when trying to use GitHub pull requests for doing code reviews. In summary: It was not all pleasant, and by the way I apologize for this rather harsh rant. The (single) good thing first The one thing that GitHub gets right …
Git history: work log vs recipe
This is a follow-up article to A tidy, linear Git history, going into more details of why I think that rewriting your Git commit history (i.e. rebasing) is usually the right thing to do. Two different history models When it comes to Git history (or any other version control system history, for that matter), there …
A tidy, linear Git history
One of the things that is overlooked in many Git based projects is the value of a linear commit history. In fact, many tools and guidelines discourage Git workflows that aim for a linear history. I find this sad, since a tidy history is very valuable, and there is a straight forward workflow that ensures …
Hiqh quality DPCM
Hi all, it’s been some time since I last wrote anything on this blog. This time around I’d like to share some experience that I’ve had with my recent hobby project: high quality time domain audio compression using DPCM (Differential Pulse-Code Modulation). Be warned: this is quite a lengthy post. tl;dr version: A Dynamic Differential …
Working on SoundBox
I’ve done some more work on the SoundBox tool, and as some of you may have noticed that it’s now live on the dedicated site: sb.bitsnbites.eu. Compared to the Lite version (posted to the Mozilla Dev Derby), a few new additions have been made: You can now import/export binary song files from/to your local computer. …