My adventures with Manjaro Linux continue and I've even moved my "craptop" - a somewhat ancient Lenovo X240 that I use as a semi-disposable travel laptop - from XUbuntu to Manjaro Linux. But that's a subject for another blog post. Today, I wanted to write about package download performance issues I started encountering on my desktop recently and how I managed to fix them.
Uncle Bob Martin discovered Clojure fairly recently and really, really likes it. Having had the privilege to see him speak at various SD West conferences back when they still were a thing, I wasn't surprised by this. Anyway, do yourself a favour and spend a few minutes reading the article. It's worth your time.
Turns out it's not only Windows 8 that has its telnet client disabled, Windows 10 is in the same boat. I've been using Windows 10 for quite a while now and just discovered this issue. Anyway, the way to enable is as follows:
Lisp dialects like Clojure have a very rich set of algorithms that can present altered views on containers without modifying data in the underlying container. This is very important in functional languages as data is immutable and returning copies of containers is costly despite the containers being optimised for copy-on-write. Having these algorithms available prevents unnecessary data copies. While I am not going into mutating algorithms in this post, the tradition of non-modifying alghorithms that work on containers leads to an expressiveness that I often miss in multi-paradigm languages like C++. As an example I will show you how to use a filtered container view in C++ like you would in Clojure.
I've mentioned before that I prefer Mercurial to Git, at least for my own work. That said, git has a nice feature that allows you to cherry pick revisions to merge between branches. That's extremely useful if you want to move a single change between branches and not do a full branch merge. Turns out mercurial has that ability, too, but it goes by a slightly different name.