Shell scripting for personal productivity
In an edX course on Unix tools I am running these weeks, I got asked for ideas on how shell scripts can be useful. This is a very interesting question, because the course focuses mainly on performing one-off tasks in the areas of software development, data engineering, and system administration, rather than automation through shell scripts. Here's how I'm using shell scripting to enhance my personal productivity. I'll post further installments regarding software development and system administration.
Continue reading "Shell scripting for personal productivity"
What explains the counter-intuitive numbering of chip pins?
One of the first things one learns in electronics is how chip pins are numbered. In the common dual in-line package (DIP) pin numbering starts from the left side of a notch appearing on the top of the package and continues counterclockwise until it reaches the other side of the notch. Why are pins counter-intuitively numbered in a rotating fashion rather than by columns as one would expect for a rectangular package? And why is the numbering not following the direction of a clock's numbers? I think that both decisions can be traced back to history.
Continue reading "What explains the counter-intuitive numbering of chip pins?"
Installing PyTorch on a Raspberry Pi-3B+ redux
This is an update to articles for installing the PyTorch machine learning library on a Raspberry Pi that have been published by Amrit Das in 2018 and Saparna Nair in 2019. It builds on them by updating the required settings and introducing a fix and a few tweaks to make the process run considerably faster. Although there are Python wheels floating around that offer PyTorch as a Raspberry Pi Python package, downloading them from unverified sources is a security risk. Here's how to install PyTorch from source.
Continue reading "Installing PyTorch on a Raspberry Pi-3B+ redux"
On Tuesday March 17th 2020 my free online massive open online course (MOOC) on the use of Unix command line tools for data, software, and production engineering goes live on the edX platform. Already more than one thousand participants from around the world have registered for it; you should still be able to enroll through this link. In response to the course's announcement seasoned researchers from around the world have commented that this is an indispensable course and that it is very hard to beat the ROI of acquiring this skillset, both for academia and industry. In an age of shiny IDEs and cool GUI tools, what are the reasons for the enduring utility and popularity of the Unix command line tools? Here's my take.
Continue reading "Seven reasons to add Unix command line expertise to your tool chest"
What can software developers learn from the Soviet Moon Landing Program?
In the twentieth century space race between the Soviet Union and the United States the former started way ahead. In 1957 it launched the first artificial satellite, Sputnik 1, and in 1961 it had Yuri Gagarin orbiting the Earth as the first human to space. Yet, when it came to landing a person on the Moon it flopped spectacularly, abandoning its N1 rocket and Soyuz spacecraft program after a series of fiery failures. It turns out that the problems of Soviet program's N1 rocket — one cased one of the largest artificial non-nuclear explosions in human history — offer some important lessons to software developers.
Continue reading "What can software developers learn from the Soviet Moon Landing Program?"
Was Knuth Really Framed by Jon Bentley?
Recently, the formal methods specialist Hillel Wayne posted an interesting article discussing whether Donald Knuth was actually framed when Jon Bentley asked him to demonstrate literate programming. (Knuth came up with an 8-page long monolithic listing, whereas in a critique Doug McIlroy provided a six line shell script.) The article makes many interesting and valid points. However, among the raised points one is that the specified problem was ideal for solving with Unix tools, and that a different problem, such as “find the top K pairs of words and print the Levenshtein distance between each pair", would be much more difficult to solve with Unix commands. As the developer of an edX massive open open online course (MOOC) on the use of Unix Tools for data, software and production engineering I decided to put this claim to test.
Continue reading "Was Knuth Really Framed by Jon Bentley?"