week 40, 2020

Working with Rust

Working with Rust is a set of examples that cover common programming functions, tasks, and problems. It assumes a base programming knowledge and looking for the proper syntax and solution written in Rust.

I use this resource primarily for myself, collecting up little solutions as I go for reference later. Since I don’t use Rust day-to-day, and new to it overall, a quick reference is quite useful to me.

Source: Working with Rust, an article by Marcus Kazmierczak.

Debugging and Profiling

A golden rule in programming is that code does not do what you expect it to do, but what you tell it to do. Bridging that gap can sometimes be a quite difficult feat. In this lecture we are going to cover useful techniques for dealing with buggy and resource hungry code: debugging and profiling.

Source: Debugging and Profiling.

How to find time complexity of an algorithm?

Finding out the time complexity of your code can help you develop better programs that run faster. Some functions are easy to analyze, but when you have loops, and recursion might get a little trickier when you have recursion. After reading this post, you are able to derive the time complexity of any code.

In general, you can determine the time complexity by analyzing the program’s statements (go line by line). However, you have to be mindful how are the statements arranged. Suppose they are inside a loop or have function calls or even recursion. All these factors affect the runtime of your code. Let’s see how to deal with these cases.

Source: How to find time complexity of an algorithm?, an article by Adrian Mejia.

Introducing Swift Atomics

I’m delighted to announce Swift Atomics, a new open source package that enables direct use of low-level atomic operations in Swift code. The goal of this library is to enable intrepid systems programmers to start building synchronization constructs (such as concurrent data structures) directly in Swift.

Source: Introducing Swift Atomics, an article by Karoy Lorentey.


Alice wanted to donate some of her hair for quite some time and today was the day.

Alice at the hairdresser's before her haircut
Alice at the hairdresser's before her haircut.
Alice's cut off braid
Alice's cut off braid.
Alice at the hairdresser's with her new haircut
Alice at the hairdresser's with her new haircut.

Alice will donate her hair to Haarwensen.

The Perl Ambassador: Damian Conway

This month I interview Damian Conway, one of the Guardians of Perl. Damian is computer scientist and excellent communicator—his presentations and courses are widely popular around the world. He was the Adjunct Associate Professor in the Faculty of Information Technology at Melbourne’s Monash University between 2001 and 2010.

Source: The Perl Ambassador: Damian Conway, an article by Mohammad S Anwar.

Ahrefs Webmaster Tools finds a bug in tumblelog

In the afternoon I signed up for Ahrefs Webmaster Tools (AWT) which is free for website owners. In the past I've used the free Backlink Checker, also by Ahrefs, to find new links to my blog. But because the checker shows only a subset of backlinks it's very limited in use. So I was pleasantly surprised that AWT shows all backlinks to Plurrrr. And more, in a short time I was able to find a link still pointing to the http version of this site (fixed). Moreover, I found a bug in my own static site generator, tumblelog: the first of December 2019 falls in week 1 of 2020, but in the calendar view of 2019 the week number links to 2019, not 2020. This results in a missing page error, 404, which AWT neatly reported. I plan to fix this issue the coming weekend.

Ahrefs Webmaster Tools reports a 404 HTTP status code
Ahrefs Webmaster Tools reports a 404 HTTP status code.

When fonts fall

One of the typographical questions we get often is, “How does font fallback work exactly?” It’s not even that Figma does something unique here (although we have our own specific take), but font fallback is just complex, filled with quirks and unexpected side effects. Our resident font enthusiast Marcin Wichary decided to dig into the issue and prepare an exhaustive guide to font fallback, its beauty, and all the pitfalls.

Source: When fonts fall, an article by Marcin Wichary.

Comprehensive guide on handling long lines in Emacs

Users of Emacs sometimes run into a performance issue which they didn't know about before, but is well known: Working with files which include long lines. If the lines are long enough - which can just be a couple thousand characters - Emacs will crawl to a halt whilst utilising 100% CPU. After reading this guide, you will be well prepared to tackle even these files in Emacs!

Source: Comprehensive guide on handling long lines in Emacs, an article by Alain M. Lafon.

OpenBSD on the Desktop (Part I)

Let's install OpenBSD on a Lenovo Thinkpad X270. I used this computer for my computer science studies. It has both Arch Linux and Windows 10 installed as dual boot. Now that I'm no longer required to run Windows, I can ditch the dual boot and install an operating system of my choice.

Source: OpenBSD on the Desktop (Part I), an article by Patrick Bucher.

Declarative Shadow DOM

Shadow DOM is one of the three Web Components standards, rounded out by HTML templates and Custom Elements. Shadow DOM provides a way to scope CSS styles to a specific DOM subtree and isolate that subtree from the rest of the document. The <slot> element gives us a way to control where the children of a Custom Element should be inserted within its Shadow Tree. These features combined enable a system for building self-contained, reusable components that integrate seamlessly into existing applications just like a built-in HTML element.

Source: Declarative Shadow DOM, an article by Jason Miller and Mason Freed.

Git Good

Git is a free and open source distributed Version Control System (VCS). Git can be hard, especially for people discovering it for the first time, but there are a lot of things that make this an exceptional VCS worth learning. This post is not meant to be a git tutorial, but rather a compilation of things and tips I find interesting. I also wanted to give a perspective of git independent of services like GitHub. Hopefully you can find something useful and “git better at it” 🙃.

If you’re looking to learn how to use git, take a look at the Pro Git book, it’s free and it is a great resource!

Source: Git Good, an article by Davide Nunes.

Red Country: good

In the morning I finally finished Red Country, book 3 in the World of the First Law series by Joe Abercrombie. To me the first third of the book was quite slow. Luckily the pace got better after this and I finally could finish the book. Of the World of the First Law series I consider Best Served Cold the best story; highly recommended. I didn't like The Heroes much. Red Country is somewhat between those two, in my opinion, but still a good read.

Rehousing two tarantulas

In the late afternoon I prepared two terrariums; plastic storage boxes, and rehoused two tarantulas: a juvenile Chromatopelma cyaneopubescens and a juvenile Pterinochilus murinus.

Pterinochilus murinus threat pose

The latter escaped from the catch cup I used but I was well prepared and did the rehousing in the bathroom. All went well, see Rehousing two tarantulas.

Half Moon Bay

Clay Edison has his hands full. He’s got a new baby who won't sleep. He’s working the graveyard shift. And he’s trying, for once, to mind his own business. Then comes the first call. Workers demolishing a local park have made a haunting discovery: the decades-old skeleton of a child. But whose? And how did it get there?

No sooner has Clay begun to investigate than he receives a second call—this one from a local businessman, wondering if the body could belong to his sister. She went missing fifty years ago, the man says. Or at least I think she did. It’s a little complicated.

And things only get stranger from there. Clay’s relentless search for answers will unearth a history of violence and secrets, revolution and betrayal. Because in this town, the past isn’t dead. It’s very much alive. And it can be murderous.

In the evening I started in Half Moon Bay, Clay Edison Book 3 by Jonathan Kellerman and Jesse Kellerman.