Posts

Influential Moments in Computing

During my life, many remarkable things have happened. Numerous software technologies and services that we take for granted today were invented. Some of them are not really that old, given how important they are today, some even became part of our language. The way we live today has changed substantially over the last 40 years due to software and technology. While many influential moments look like incremental steps, there were also absolutely disruptive changes. I assume our generation will never forget how Steve Jobs introduced the iphone and turned the mobile phone market upside down. My first interaction with Alexa was another moment I will always remember, as was not long ago my first interaction with generative AI systems.

YANG Versioning Update

In a previous blog post (which I wrote about three years ago), I wrote about the consequences of adding version numbers to the YANG naming scheme. The take away message was that doing so has major consequences also for the protocols that are used to manipulate YANG defined data. Meanwhile, a concrete proposal has appeared to change the YANG versioning rules and to introduce semantic version numbers. Hence it is a good time to look at this topic again.

Interface and Zone Names

Network interfaces are identified by a numeric interface index or an interface name. The definition of interface indexes and names goes back to the early days of SNMP, see for example RFC 1066 (published in 1988). In the late 1990s, a scoped address architecture was introduced by RFC 2373 (published in 1998), and with it came zone indexes and zone names, both were introduced in RFC 4007 (published in 2005).

Note that Interface indexes and zone indexes as well as interface names and zone names are related concepts but not necessarily the same. However, in today’s deployed Internet technology, interface indexes and interface names are commonly used as zone indexes and zone names since they work well of link-local scopes and other non-global scopes are not widely deployed.

Gift Cards Dialogue with a Scammer

The following email exchange took please end of March 2021 between me and someone who claimed to be be one of my bosses. (The name appearing below is a pseudonym in order to avoid any confusion with real persons.)

Date: Tue, 30 Mar 2021 01:42:01 -0700
From: David Gammas <onikutem.o@gmail.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Subject:

I need a help, email me back asap

Regards,
Prof. Dr. David Gammas
Dean

Sent from Iphone

The email looked a bit odd to me (no subject line, email coming from an unknown @gmail.com address, an unusual timezone for someone working in Germany). But since the email did pretend to come from a Dean, I thought I check things out…

Programming Languages

People often have strong opinions about programming languages and so do I. Well, perhaps a bit less strong than others. Yesterday I took a moment to reflect about the things I liked and disliked through my journey with different languages. I started to write things down, and I decided to share my notes. This likely has little value for anyone, do not expect any deep insights here.

BASIC (late 1970s)

I first touched what we call a “computer” these days in the late 70s. I think it was a Wang 2200, an incredible device with a CPU built out of hundreds of TTL chips. The programming language of the Wang was BASIC. Learning to code simple algorithms in BASIC (i.e., the classic moon lander) was relatively easy. The Wang computer was owned by the school, and I got the permission to stay longer in the afternoon to work with the system. I had two really enthusiastic school teachers. One of them exposed me to an algorithm that was called RSA and brand new and I implemented it for the numbers the box could handle, small numbers, fairly small numbers….

When everything is a table...

It is perhaps a side effect of getting older that I spent more and more time on administrative issues and as a consequence I interact more frequently with people working in administrative offices. The more I get to see how they work, the more I am realizing how strange computer scientists are. One of the first rules they seem to learn in business administration is that everything can be made to fit into a two-dimensional table. And then they seem to drive this to perfection during their career. We computer scientists love to model things using inductively defined structures that can be nested arbitrarily deep or we paint walls with UML diagrams or model data in N dimensional sparse spaces. We teach our students how important it is to find the appropriate data representation for a given problem since often algorithms follow from the way data is represented. But this may all be misguided effort since business administration proves us every day that a two-dimensional table is a universal tool for everything.

YANG Versioning

Introduction

The YANG data modeling language [RFC7950] and the associated protocols NETCONF [RFC6241] and RESTCONF [RFC8040] use a naming scheme that essentially consists of tuples of the form (module, path). The tuple (ietf-system, /system/contact) is an example uniquely identifying the leaf /system/contact in the YANG data tree of the module ietf-system. (The module may be identified by the module name or a module namespace but since there is 1:1 mapping between the two, the difference is not relevant for the discussion here and we simply use the module name.)

Cybersecurity Crisis

The software crisis in the late 1960 and early 1970s was driven by the challenge of creating useful and efficient computer programs in a planned engineering process, that is in a well defined amount of time and with predictable costs. Software engineering has evolved as a discipline since then and we have far better tools and techniques in place today for a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. Nowadays, we face a new crisis, let me call it the cybersecurity crisis, which is triggered by the need to build systems that deliver service that can be justifiably be trusted even in the face of malicious attacks.