Automatically upgrading Ubuntu on WSL to the latest release

As I use multiple Windows machines, all running the identical setup of WSL (Ubunto) I wanted to keep all these instances automatically updated.

I am using Ansible scripts to set up the WSL. While all the files are hosted on the file system (\mtn\c\…) I can throw away a WSL instance and create a new one within minutes.

While many packages are not available on Ubunto 18.04 LTS, I created a small Ansible task upgrading my WSL to the latest Ubuntu version available.

  1. Start your WSL instance the very first time and run sudo apt-get update
  2. Install ansible by running sudo apt-get install ansible
  3. Make sure the Ansible scripts are located on the host system (e.g. c:\dev\…)
  4. Start your WSL instance and change e.g. to /mnt/c/dev
  5. Run your Ansible playbook as sudo

You can check your dist version with lsb_release -a:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 19.04
Release:        19.04
Codename:       disco

The Ansible tasks can be found here.

GitHub Gist: https://gist.github.com/aheil/6d48a77ac44c83e00666d3c49ffd7890

Waterfall Model in Agile Sizes

I am a big fan of agile methodologies at all – if done right. Therefore, in my lectures, I teach about the big misunderstandings of the waterfall model, which never was told as such by Winston W. Royce in his paper “Managing the Development of Large Software Systems”. Actually, in his original paper, he described the error-prone approach he observed at this time.

“I believe in this concept, but the implementation described above is risky and invites failure”

Eventually, Bell & Thayer called this process Waterfall the first time in their paper ”Software requirements: Are they really a problem?”. 10 years later it became a standard in the Department of Defense Standard 2167A (DOD-STD-2167A).

When reading Royce’s paper carefully you will find a lot of recommendations pointing to nowadays agile practices such as iterative development, talking to the customer, performing reviews and even DevOps approaches as the fact software should be run by those who write it. All these things mentioned by Royce are never mentioned when talking about the waterfall.

But then again, when talking about agile you probably will realize, that it is nothing else than “Waterfall” just in small sizes as illustrated by @JishuaKerievsky:

Royce’s original paper: http://www-scf.usc.edu/~csci201/lectures/Lecture11/royce1970.pdf
Paper by Bell and Thayer: https://pdfs.semanticscholar.org/a50d/8f564d063e526e94114875220440f64d8666.pdf

Real-Time Fire Map for California

There are only a few maps I really find useful. However, the real-time fire map for California is really a thing:

Fires are a natural part of California ecosystems. Historic fires occur at frequent intervals, but with lower intensity. The high severity and acreage fires commonly seen today are driven by more extreme weather and build-up of fuel from our ongoing fire suppression activities.

There is a lot of useful information about the current fire situation on this map, such as fire perimeter and hot spots. In addition other useful information such as wind patterns and air quality are considered.

The data used is also available via GeoMAC Wildland Fire Support.

Real-time fire map: https://ucanr.edu/sites/fire/Wildfire_Health_-_Safety/Current/
GeoMac: https://www.geomac.gov/viewer/viewer.shtml

Hack-The-Planet Podcast Episode 10

Episode 10 of our (German) podcast is online:

SwiftUI lernen: https://developer.apple.com/tutorials/swiftui/resources ・ Android Studio: https://developer.android.com/studio ・ PushOver DDoS: https://blog.pushover.net/posts/2019/10/october-24-25-ddos-attack ・ DDoS: https://en.wikipedia.org/wiki/Denial-of-service_attack ・ Android API Level: https://source.android.com/setup/start/build-numbers ・ Streamsheets: https://cedalo.com/produkt/ ・ Streamsheets Docker: https://hub.docker.com/r/cedalo/streamsheets-installer ・ Hörer Fabian startet mit Node-Red: https://www.youtube.com/watch?v=KMgIa0l_ukQ ・ Xerox scanners/photocopiers randomly alter numbers in scanned documents: http://www.dkriesel.com/en/blog/2013/0802_xerox-workcentres_are_switching_written_numbers_when_scanning ・ EzControl XS1: http://www.ezcontrol.de/content/view/36/28/ ・ FS20: https://de.wikipedia.org/wiki/Funksysteme_zur_Geb%C3%A4udeautomatisierung ・ ELV MAX: https://de.elv.com/technik-fuer-ihr-zuhause/heizungssteuerung/systemuebersicht-heizkoerperthermostate/max-funk-heizungsregler-system/ ・ ELV MAX Library: https://github.com/bietiekay/MAXSharp ・ SDR Wettersensor: https://www.kompf.de/weather/rtlsdrsensor.html ・ NodeRed: https://nodered.org/ ・ Höhere Gehälter für IT Experten https://www.heise.de/newsticker/meldung/Oeffentlicher-Dienst-Bundestag-beschliesst-Zulagen-und-Praemien-fuer-IT-Experten-4569784.html ・ Ice Lake CPU: https://en.wikipedia.org/wiki/Ice_Lake_(microprocessor) ・ USB-C: https://en.wikipedia.org/wiki/USB-C ・ Quickcharge 3 für Arduino: https://www.schrankmonster.de/2019/09/18/quickcharge-3-qc3-enable-your-arduino-project/ ・ Android Espresso: https://developer.android.com/training/testing/espresso ・ JUnit: https://junit.org/junit5/ ・ WebBrowser UI Testing: https://www.seleniumhq.org/ ・ Appium: http://appium.io/ ・ Visual Studio 2019: https://devblogs.microsoft.com/devops/changes-to-coded-ui-test-in-visual-studio-2019/ ・ Elite: https://en.wikipedia.org/wiki/Elite_(video_game) ・ Elite Dangerous: https://www.elitedangerous.com/ ・ Andreas bei Distant Worlds 2: https://www.hack-the-planet.net/2019/06/02/distant-worlds-2-been-there-seen-it/ ・ Galaxie: Milchstraße: https://de.wikipedia.org/wiki/Milchstra%C3%9Fe ・ Trappist-1 System: https://de.wikipedia.org/wiki/Trappist-1 ・ Elite Dangerous VR: https://www.youtube.com/watch?v=Fa0b2Kd2xhU ・ IPv6 https://de.wikipedia.org/wiki/IPv6 ・ IPv4 https://de.wikipedia.org/wiki/IPv4 ・ Carrier grade NAT https://de.wikipedia.org/wiki/Carrier-grade_NAT ・ NAT64 https://de.wikipedia.org/wiki/NAT64 ・ aText Mac: https://www.trankynam.com/atext/ ・ Autohotkey Windows: https://www.autohotkey.com/

Oh Shit, Git!?!

Another gem in terms of Git. This is the source you might look at, once you have completely messed wit your Git repository. It solves the chicken and egg problem all of us know about Git:

Git is hard: screwing up is easy, and figuring out how to fix your mistakes is fucking impossible. Git documentation has this chicken and egg problem where you can’t search for how to get yourself out of a mess, unless you already know the name of the thing you need to know about in order to fix your problem.

Link: https://ohshitgit.com/

What could possibly go wrong… Updating the Domain again…

After we started our Hack-the-Planet podcast and the www.hack-the-planet.tv project, Daniel, co-host of the Hack-the-Planet podcast always introduced me with “Andreas from the Hack-the-Planet podcast”.

What should I do? The only way out of this misery is to update my blog’s domain once more. The second time this year. The last time I hope. This will be probably much easier than changing the introduction of our podcast. That’s already a running gag, I am afraid.

So I move from try-catch-finally.net (which was based on my strong .NET history) to www.hack-the-planet.net.

Sourcen when loading a webppage of this blog by now…

While moving the domain, I also do have a completely different goal. I will turn around each and every bit so this blog, hosted on a WordPress installation, will finally load only bits and bytes from my server.

Currently, it is an utter nightmare where this blog is loading files from. I will probably break one or another source while doing this, however, I have achieved this goal already for a few websites hosted by me.

Debugging Rules

When In doubt how to proceed when debugging starts to become an epic battle, I always follow the 9 debugging rules of David Agans.

I always tell my students I carry a cheat sheet of these rules with me. It is now about 9 years old I think. It survived 5 companies and countless projects.

Over thermometer I always realized: you might want to apply these rule to real life problems as well. It does work surprisingly well.

David Agan‘s Debugging Rules

Cascadia Font for macOS Terminal

While I have written about my thoughts about montype fonts some time ago, I was still looking for some nice font to be used within Visual Studio Code as well as Terminal (macOS as well as Windows Terminal). Said that, Microsoft just released a new font (actually they open-sourced it). called Cascadia Font at GitHub.

Once installed you still have to enable it in Visual Studio Code as written by Kayla Cinnamon.

And yes, it works like a charm once enabled.

Besides this, I am using iTerm2 on macOS, and it is also possible to enable this font including font ligatures for your Terminal sessions.

Thanks to Daniel pointing me to this gem, I would have missed it otherwise!