Discover more from hrbrmstr's Daily Drop
Squeak 6.0; Actually Portable Executables; Historical Meteorological Sneakernets
Today's IT industry is developing and selling lots of new hardware and software technologies. People are now able to buy and use small personal devices with a modern and rich user interface experience. We use operating systems like Windows, macOS or Linux and graphical computer interaction in our daily work. Did you know that the roots of these technologies are directly related to a single programming language called Smalltalk?
Smalltalk was developed in the Learning Research Group (LRG) at Xerox's Palo Alto Research Center back in the early 70s. The group was led by Alan Kay who worked on a vision he called "Dynabook" - the computer could be used creatively like a dynamic book. even by children. Their explorations led them to develop not only the prescient vision of notebook computing (the Dynabook), but also to the Smalltalk object-oriented programming language. The first Smalltalk programming system (called Smalltalk-72) run on a ""and was designed to support Alan Kay's new programming paradigm called object-oriented programming.
One persistent myth about the work of Xerox in this era is that PARC invented the mouse and graphical user interface (GUI). The mouse was invented by Doug Engelbart and others at the Augmentation Research Center (ARC); the GUI has its roots in systems such as Sketchpad, Grail, and ARC's NLS. What Kay and others accomplished involved striking improvements on these elements. They invented elements of the interface now so natural that we take them for granted — for instance, overlapping windows.
In December 1979, the Xerox Palo Alto Research Center developed the first prototype for a GUI. A young man named Steve Jobs, looking for new ideas to work into future iterations of the Apple computer, traded US $1 million in stock options to Xerox for a detailed tour of their facilities and current projects. One of the things Xerox showed Jobs and other members of the Apple Lisa team was the Alto machine, which sported a GUI and a three-button mouse. When Jobs saw this prototype, he had an epiphany and set out to bring the GUI to the public.Apple Computer then commercialized and refined the GUI into a system very much like that we use today — a system which became nearly ubiquitous after its adoption in Microsoft Windows. The first popular personal computer, the Apple 2, was a hit - and made Steve Jobs one of the biggest names of a brand-new industry.
See? You owe quite a bit to a programming language/environment that you likely never heard of before (unless you've been following me on Twitter for a while).
Full disclosure: Smalltalk is my hands-down favorite programming language. My final project as an undergrad was building a Smalltalk code parser and control flow analyzer, and my amazing (and way smarter than me) spouse got a better grad school deal at Lehigh than I did from UIUC, so I never got to work/study under Dr. Kay. So, now you can blame UIUC every time I annoy you in either the cybersecurity or R communities!
Now, on to Squeak!
Squeak is "a modern, open-source Smalltalk programming system with fast execution environments for all major platforms. It features the Morphic framework [PDF], which promotes low effort graphical, interactive application development and maintenance."
Version 6.0 of Squeak is a YUGE visual uplift for this 25 year old project. It's the first release that supports high-resolution displays on all major platforms and offers a flexible UI scale factor through improved support for TrueType fonts. It also improved a bunch of under-the-hood things that won't make much sense to non-Squeak users, and has seen tons of improvements to the environment's programming tools, which now provide a better experience for code writing, object inspection, and process debugging.
The lack of support for high DPI displays is one of the few warts preventing me from doing more (myslef) with Squeak and bothering everyone on Twitter about Squeak on-the-regular.
This section is already pretty long. So, for now, I'll close it with three things.
An example of Smalltalk code in the Squeak environment:
A challenge to take a lazy Sunday afternoon (or replace a few intraweek passive, inane entertainment streaming sessions) and play a bit with Squeak (this may help get you oriented in the environment).
A promise to talk more about Smalltalk/Squeak in future newsletters.
Actually Portable Executables
If you browse Justine Tunney's (@justinetunney) GitHub repos, you'll likely come away with the same conclusion I did: they're a completely brilliant individual. Older readers may also remember Justine from the circa 2011 "Occupuy Wall Street" movement.
Her cosmopolitan project is an incarnation of libc — the C standard library — that "makes C a build-once run-anywhere language, like Java, except it doesn't need an interpreter or virtual machine. Instead, it reconfigures stock GCC and Clang to output a POSIX-approved polyglot format that runs natively on Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS with the best possible performance and the tiniest footprint imaginable."
cosmopolitan, cross-platform native builds are both easy and "cheap". "Even with all the magic numbers, win32 utf-8 polyfills, and bios bootloader code, exes still end up being roughly 100x smaller than a Golang "Hello World"."
She describes actually portable executables super well in her own words, which I hope you'll take some time to dig into a bit.
I was re-reminded of
cosmopolitan due to Justine's recent release of memzoom, which I'll re-introduce in Monday's edition.
Historical Meteorological Sneakernets
Since the sneaker marketing name did not come into use until 1917, perhaps I should have coined a term "bootnet" for the section title.
Back in 1825, the Regents of New York State oversaw a network of secondary schools throughout the State focused on meteorology and other seasonal/celestial events. One of the overseers, Simeon De Witt, had long believed on the need for said meteorological network, stating (decades earlier), "a single reflection will convince one of its utility; for, as the state of vegetation is very different in different climates at the same time, without knowing what allowances are to be made on this account, the farmer, in one climate, will not be able to apply in his practice the experiments on husbandry made in another".
Data-driven farming back in the mid-1800's! Who. Knew!
Thanks to a recent paper — "Citizen science across two centuries reveals phenological change among plant species and functional groups in the Northeastern US" — by Kerissa Fuccillo Battle, Anna Duhon, Conrad R. Vispo, Theresa M. Crimmins, Todd N. Rosenstiel, Lilas L. Armstrong-Davies, and Catherine E. de Rivera, we have a glimpse into the workings of old-school citizen science (no globally instantaneously accessible REST data APIs back then), invaluable data to help understand both how collecting/sharing information can improve how we work and, scarily, the effects of climate change.
You can read more about "The Progress of the Seasons" over at the Hawthore Valley Farmscape Ecology Program, where you can also access some data now, and request the complete set for research purposes.
Reading about what it took to measure, collect, and preserve data back in the day makes me feel super privileged to be living in working in our modern times, except for the fact that the old-school paper spreadsheets never turned something into a date that shouldn't have been.
After the “Progress” article/paper, I’m also amazed at how much I’ve taken for granted the ability to collect data from ~80% of the Maine farms I source sustenance from. While our modern times are seriously challenging, they are still amazing. ☮