Gemini Articles of Interest
A Gemini client* is needed for the following links.
-
Real life examples of bad upstream packaging
The debate between upstream and downstream packaging rages on, especially as of late. I thought I'd express some frustration at some third party repositories I've tried to install lately and what went wrong.
[...]
Fedora has strict packaging guidelines on what's allowed in the base repositories. Usually this may be due to patenting issues, but security and quality is another issue. Fedora makes no guarantees about the security or quality of third party repositories. Examples are COPR and RPMFusion. COPR is a build service similar to openSUSE's Open Build System while RPMFusion works closely with Fedora to provide packages that cannot land in Fedora itself.
However, increasingly as of late, developers have opted to take over packaging of their own software themselves. Many people argue that this is a good thing as it cuts out the middleman. After all, developers would know their own software best, updates can be delivered faster and it's better for security right? However, there are some downsides to this approach that I will detail below.
-
Assembly Calling
I've been itching to code in assembly for a few weeks now. It's just a part of my cycle - getting tired of the complexity and bulk of high-level languages and wanting to do something direct and simple - and what is more direct than coding assembly-language instructions on a CPU?
-
Daily-Driving the PinePhone
Yesterday was the first day I went outside my house with the intent to daily-drive the PinePhone. This included swapping the SIM-card from my old Android into the PinePhone. I still had my old Android with me though, if anything went wrong. So how did it go? I would neither call it a success nor a complete failure. Maybe a success with a bit of unluck would be the most fitting description.
-
Zig programming language
I heard about Zig programming language before, and was quite dismissive about it as "yet another C replacement". Short-sighted of me.
Couple days ago I stumbled upon it again, and decided to at least glance at documentation. Folks, it is really awesome. I am excited. Go read documentation yourself.
The most awesome feature is ability to execute code at compile time, and have this compile-time code access to all functions that will also be used at runtime. Power of Lisp macros or Template Haskell in C. In particular, this power allows implementing "printf" better than in C.
In C, format string argument to "printf", while 99% of time is literal, is treated no different than any other "const char *" argument to any other function, so format string is parsed at runtime and code that handles something obscure, like %A, is compiled in no matter whether you use it or not. Also, vardaic functions in C are very easy to misuse and pass argument type mismatching format string.
* Gemini links can be opened using Gemini software. It’s like the World Wide Web but a lot lighter.