a tumblelog
week 36, 2019

Building interactive SSH applications

Writing interactive SSH applications is actually pretty easy, but it does require some knowledge of the pieces involved and a little bit of general Unix literacy.

Source: Building interactive SSH applications, a post on Drew Devault's blog.

Why Haskell is important

People keep asking me, “What's the point of Haskell, why do you folks even use it?”. How can you answer this? Most of us Haskell practitioners would start talking about strong static types, the elegance of abstractions, and ease of refactoring—but we would be missing the bigger picture. That's because we are programmers, and programmers typically think about the technical details.

Let's take a step back.

writes Mark Karpov in Why Haskell is important.

Our journey to type checking 4 million lines of Python

At our scale—millions of lines of Python—the dynamic typing in Python made code needlessly hard to understand and started to seriously impact productivity. To mitigate this, we have been gradually migrating our code to static type checking using mypy, likely the most popular standalone type checker for Python.

Source Our journey to type checking 4 million lines of Python, an article by Jukka Lehtosalo of Dropbox.

Version 1.0.8 of tumblelog released

In the evening I pushed a new version of tumblelog to GitHub. I made a minor change to both the Perl and Python version. Now, any link to a day page has its title attribute set to the title of the page. If there is no such title the date is used. This title shows up as a tooltip when one hovers over the link.

You can obtain version 1.0.8 via GitHub.

New version of tumblelog

In the afternoon I pushed to GitHub a new version of tumblelog: 1.0.7. This fixes the ISO week year bug I found yesterday in the Perl version and is just a version bump for the Python version.

You can obtain the latest version via GitHub.

Restoring an iTunes backup from an external disk

In the evening I restored a backup of my iPhone and iPad (the latter got stolen in a break in into our house over a year ago) to my Mac Mini 2014 running macOS Mojave. I had made this backup on an external disk prior to doing a clean install of macOS Mojave.

I assumed that restoring would be a simple rsync -avh but it turns out that in Mojave and above one has to grant full disk access to the terminal in order to be able to write to the correct location.

Granting full disk access to the Terminal application
Granting full disk access to the Terminal application.

After I had granted access to the terminal application via the Security & Privacy section in System Settings I could use rsync and several minutes later the backup was restored.

Note that I recommend to revoke the full disk access rights from the terminal application when done.

She Has Her Mother's Laugh

In the early afternoon the book I ordered last week, She Has Her Mother's Laugh by Carl Zimmer, arrived. I had ordered the book together with two other books, both a present for a friend which I could give to him last week. But the book I had ordered for myself arrived today.

Cover of "She Has Her Mother's Laugh"
Cover of "She Has Her Mother's Laugh", a book by Carl Zimmer.

I plan to read one non-fiction each month, and I want to start with Zimmer's book this month.

A few years back I read A Planet of Viruses, also by Carl Zimmer, and I liked it a lot.

A Subtle Bug in tumblelog

Today I discovered a subtle bug in how I calculate the archives in the Perl version of tumblelog: instead of using the ISO year I use the actual year. Which causes off by one errors in some cases for the year. For a complete write up read ISO week and year in Perl.

An updated version, 1.0.7, of tumblelog will be pushed to GitHub tomorrow.

Unix / CLI / shell-like tools for iOS

So you have an iPad, but you are also used to command-line tools from the Unix world, or you have colleagues who use these tools, and you need to interact with them, or... In short, you'd like to access command-line tools from iOS.

Well, I've got good news and I've got bad news.

In the evening I read Unix / CLI / shell-like tools for iOS, an article by Nicolas Holzschuch.

Merging Two Terminal Windows on macOS

You can merge two terminal windows into one as follows:

  • Use ⇧⌘T to make the tab bar visible in both terminal windows.
  • Drag the tab of one window onto the tab bar of the other window.

That's it.

You can also make the tab bar visible using View → Show Tab Bar.