The Dropbox journey to static type checking with Python

Type Annotation is a feature that allows Python to maintain it’s dynamic typing and enable option static typing in the same code base. With the arrival of Python 3.5, the language implemented PEP 484, that describes a syntax to annotate code with type hints. Dropbox took a journey to leverage this option on 4 million lines of code for better quality. Here are their experiences.

Combined count of type annotated lines of code.
Type annotation

Dropbox is a big user of Python. It’s our most widely used language both for backend services and the desktop client app (we are also heavy users of Go, TypeScript, and Rust).

Source: Our journey to type checking 4 million lines of Python | Dropbox Tech Blog

Demo-Scene proposed as part of UNESCO Intangible Cultural Heritage

The Demoscene, which is born at the heart of the home computer revolution, has been showing how skills and creativity can be stimulated and implemented in a dynamic cultural practice adopted to digital contexts. Many of its techniques and mindsets became core techniques and influences of the digital change, and are still vibrant today.

Having been part of the demo-scene for many years myself, this is – at least to me – big news. Starting with the arrival of computers and first commercial software, crackers started copying others intellectual property and made an effort overcoming copy protection. Groups formed to not only solve the technical difficulty to ‘crack’ these systems, but also distribute the results. Soon, pretty presentations were included with these files, to advertise the group that managed to overcome copy protection. Shortly after, these presentations turned into their own discipline, giving programmers, music- and graphic artists an opportunity to compete in artistic demos.

The first demos I remember include 42 by halcyon, 4 kings by orange or daze by urinate. Given the first exposure to the hardwares limits, these were fascinating productions that never failed to amaze me. A close friend from the mailbox scene pointed me to the immortal ‘Second Reality‘ by Future Crew, that finally blew my mind.

Second Reality by Future Crew
Second Reality by Future Crew

Among my peers, this demo was the starting point for many people that I spent a lot of time with and some of whom I am still proud to call my friends. The years following I had the opportunity to not only attend many demo parties but actively contribute my own work to competitions and learn fundamental technology from idols I was lucky to meet at these events.

Now recently, Andreas Lange & Tobias Kopka have started an initiative to bring the demoscene onto the list of the UNESCO intangible world cultural heritage. The initiative advocates the mindset and innovation this scene has developed, contributing technology to culture and leveraging technology to create art. It will likely take a long time to proof this influence and all that I have seen in the past twenty years is well worth bringing this scenes achievements to a broader audience.

Demoszene

Source: Demoscene – The Art of Coding – Digital culture as part of the Intangible Cultural Heritage of Humanity

Infocom text adventure classics

Not actually brand new, but given all of these are 30+ years old, it’s still worth mentioning that all Infocom Text Adventures are on Github now!

Yes, The Hitchhiker’s Guide to the Galaxy and Zork are both included.

Source: You can now download the source code for all Infocom text adventure classics | Ars Technica

The Ancient Code

It’s true. Never touch the ancient code. The elder know.

Visit the post for more.

Source: The Ancient Code – Light Roast Comics

Digitalisierung – Die den Code der Welt von morgen schreiben

Welche Verantwortung tragen Softwareentwickler für die gesellschaftlichen Veränderungen, die sie vorantreiben? Die Antwort ist komplexer, als es der Mythos vom Programmierer als Rockstar erscheinen lässt.

Auch die Süddeutsche greift das Thema der moralischen Verantwortung von Programmierern auf. Teil des Problems ist, dass die Profession – der Wahrnehmung des Authors nach jedenfalls – als rein technische Tätigkeit wahrgenommen wird. Vergleichbar des Berufs eines Maurers und weniger der eines Architekten oder Bauingenieurs.

Tatsächlich versetzt die Digitalisierung aber jeden in die Position, mit äusserst abstrahierten Programmiersprachen, die teilweise mehr schon menschlicher Sprache ähneln, einen Beitrag zur weiteren Digitalisierung zu leisten. Webservices oder Chatbots zu programmieren ist mit detaillierten Anleitungen einfach zu erlernen und Schritt für Schritt auch dem Laien nachvollziehbar. Viele der zu Betrieb notwendigen Services sind kostenfrei erhältlich.

Es gibt gewissermaßen keine Einstiegs-Hürde. Weder in der Ausbildung noch finanziell. Diese technische Ermächtigung der Gesellschaft und die Lücke in der Wahrnehmung ist zu einem erheblichen Teil auch der Demographie geschuldet, so finden sich unter Digital Natives kaum über 40-Jährige.  Genauso wie sich unter Konzernlenkern kaum unter 40-Jährige finden.

Und so ist die Tätigkeit des Programmierens nicht länger dem Programmierer – mit einem Diplom von 1995 – vorbehalten, sondern in der Breite der Gesellschaft angekommen. Phänomene wie 4Chan oder Anonymous entstehen aus dieser technischen Möglichkeit, entkoppelt von moralischen Richtlinien. Dort werden Beiträge erzeugt, die tatsächlich ethische und moralische Fragestellungen aufwerfen.

Es werden nicht Regeln von heute sein, die das Zusammenspiel der Gesellschaft in Zukunft regelt, die kommende Generation wird im Internet neue Regeln für den Umgang miteinander finden.

Source: Digitalisierung – Die den Code der Welt von morgen schreiben

Everybody should code.

Just read a blog that made quite an argument against the education of coding. The core argument cited Henry Ford with hist famous saying, if he had listened to his customers, he should have built a faster horse. The derivation in this argument is, that with everybody able to code we, as an economy, are continuing what we are doing, only faster, but in reality need a car.

However, the derivation is based on the assumption code was for apps alone. Using Henry Fords citation as an argument against learning to code, is like saying “Education in engineering is wrong because it will just produce more engineers doing their engineering thing”.

While it is true, not everybody needs to be an software engineer, not everybody needs to be a mechanical engineer, either. Still everybody today taking a drivers test (in Germany, [1]) will have to be prepared to answer fundamential technical questions. These include questions for tires, lighting, breaks, steering, liquids and liquid levels, as well as the meaning of indicator lights. It makes using a car more convenient for the consumer, just as it makes driving a lot safer for the rest of all road users.

Today, all work disciplines are confronted with computers in one or another way. Code is the integral ingrediant that makes them work. In computer engineering, there are different levels of code, that are more or less abstract to the bare machines. Just above machine language, patterns emerge that repeat all across all applications one can think of. May it be loops, conditions, basic algorithms to bother the comparison once again, are the equivalent basics of steering, liquids and breaks.

A basic understanding of how these machines work should be as fundamential as the ability to read, write and math, without which the car wouldn’t exist. It will allow us as an economy to built the next “car”.

 

Continue reading “Everybody should code.”