stevengharms.com

Sententiae viri ex temporibus duobus

Study Latin to Become a Better Programmer

This is a post I had sitting in my drafts folder, uhm, for about 2 years. I’m fishing it out now because I’m a completionist masochist.

A friend forwarded on to me this post entitled: “Don’t study latin if you want to become a better programmer” by Daniel Lemire, professor of Computer Science at the University of Quebec. His piece questions the wisdom of teaching Latin as a means of creating a better programmer. As a lover of the Classical world, Latin student, programmer, and teacher of programming, I found myself disagreeing with his conclusion: in my programming practice I definitely recognized competencies learned while studying Latin resurfacing again and again. I believe Lemire is missing some nuance to his description of learning and I think that they might explain how we come to different conclusions. Let me start with a usage where I agree with Lemire.

I Program, Should I Learn Latin to Get Better?

Let’s start with the obvious case. If you are, say, learning Python and then one fine day you think: “My goodness, I’d like to be better at this” and your solution is “I’m going to go buy a copy of Wheelock’s Latin and get to it,” you’re probably choosing a sub-optimal strategy. Your time would be better spent at one of the following

  1. Writing Python
  2. Reading Python
  3. Finding a Python mentor / meet-up, etc.

While I agree that there are individuals who, upon learning Latin with some background in programming probably found some way to have it drive their programming acumen forward — say, by writing a RubyGem ;) — this is probably a vanishingly small amount and not something I’d recommend as a general rule.

So let me concede the obvious use of this utterance and agree that you should not do task Y to become better at task X. However, I don’t think this is what the author’s post was intending to analyze. My interpretation of his post is that since he “believe[s] that knowledge is only weakly transferable, …[he favours] practical skills that are immediately useful.” And here’s where I think his model loses some of its nuanced understanding of learning and thus becomes less compelling.

Does Latin Study Contribute to Learning Programming More Easily?

I believe that there are transferable skills that come from broad-based learning and that they are worth the time and the effort of acquiring.

Specifically broad-based topics that train, enhance or instill facility with metacognitive competencies do transfer well to other studies. I would contend that learning Latin tends to force its students to acquire a series of metacognitive competencies that would prove highly useful in learning to program (a raw skill) and learning to be a programmer (a set of behaviors).

Is it guaranteed that other “practical, immediately useful” skills such as Karate or swimming would fail to offer these learnings — certainly not! And I should hope that learners of all ages and all disciplines experience the joy of finding these metacognitive competencies in new nooks and crannies as they learn more about their world. For me, that’s quite possibly the best part of learning and, as I approach mid-age, one of the great advantages I have in learning material over a 16 year old: I know that I have a battle-tested series of competencies that allow me to ascertain, interpret, and integrate learning in a way such that new facts feel natural versus foreign objects that must be toted about.

Nevertheless, I believe that the pedagogy of Latin has something special to it: something instructs both moral character (the noble sentiments of the ancients) as well as intellectual character, its metacognitive competencies. There’s a reason, after all, that the archetypal “teacher molds the mind of a future generation and is never forgotten” movie is Mr. Chips and Latin, long before Keating taught poetry in “Dead Poets Society” or Escalante taught calculus in Los Angeles in “Stand and Deliver.”

Let me try to list a few of these competencies.

JavaScript and Christology

From my time teaching at Devbootcamp one of my “famous” lectures was the “JavaScript is like Jesus” lecture. This is a simplification, and I would have called the lecture “What Aristotle and the Arian Heresy teach us about thinking about JavaScript,” but terseness was never my strong suit (you are reading my blog after all).

Nevertheless, if one of these simplifications managed to help my flock remember and appreciate some of the subtleties of JavaScript, then all the better. I’ll now share the “JavaScript is like Jesus” content.

Content Warning: this post is written without a religious point of view. It considers Christianity as a historical phenomenon (what happened historically) and Christian dogma as philosophy. If your beliefs forbid consideration of this faith from such a perspective, you might want to skip this post.

Let’s start with a simple demonstration:

> f = function() {}
< () {}
> o = {}
< Object {}
> Object.getPrototypeOf(x)
< () {}
> Object.getPrototypeOf(o)
< Object {}

Here we define f and o and then ask the Chrome V8 JavaScript engine to tell us what it considers f and o to be. Helpfully enough, Chrome tells us that f is a Function and o is an Object.

From a certain perspective, and certainly in common programing pedagogy, we learn that Functions are things-that-do-work and Objects are things that hold data like 1 or 3.14 or "Manhattan". Functions change data, but data is not runnable.

Consider this JavaScript expression: x.color = "Red";

“Is x an Object or a Function? What is the essential nature of x?”

The battle of wits has begun! More after the jump.

Khanna's Connectography, Bootcamps, and Mobility

One of the points Parag Khanna brought up in “Connectography” is that mobility is a key to keeping influential cities thriving. The pointed example he pitches (around page 122) is that of the city of Detroit (a city I love) which, at one time, was the wealthiest city in America. As the automobile industry slackened, the talent largely stayed put hoping that patriotic sentiment (“BUY AMERICAN”) or trade protectionism would restore their coffers and their civic trajectory. That, of course, did not happen. Hondas and Toyotas were bought by the boatful and the future for Detroit diminished with each bill of lading.

But is there a lesson for us that we can take from this error? Let’s take a look at the systems they had built in the early 80’s in Detroit:

  • early robotics-based industrial work
  • industrial development practices expertise
  • labor facilitation expertise

In 2016 all of those skills are valuable expertise that are, in essence, locked in an old industry and which will share the fate of it (lest they find a way to unbundle themselves).

But what might have history looked like if the experts had realized that their host incubator was not necessary to their success earlier?

  • …WHAT IF those engineers who built the assembly lines had encoded better logistics systems in software (to rival Germany’s SAP)
  • …WHAT IF those engineers who built auto-assembly robotics had roboticized the port of SF, the port of Oakland (there might be dock work in SF), been influential in the upgrades to the Panama Canal, Corpus Christ’s port, the Nicaragua canal?
  • …WHAT IF….that expertise had allowed the first generation of port (re-)builders to win contracts in central America in the late 90’s instead of Chinese competitors in the 2010’s?

If that were the case I could imagine many snowy Monday mornings in Detroit leading to direct flights to Managua, Corpus, or linking to a hop to Shanghai. And the reverse could be true as well: Detroit could have become the home of process optimization, industrial flow analysis and the flights (and capital, and residents) would be flowing in to offset the decline in automotive manufacturing dominance.

Based on my reading of Khanna there are two principal institutional changes that could have helped and one cultural change. Ease of mobility, ease of spot education, and the unwinding of American exceptionalism. I’ll start with the last first, after the jump.

Parag Khanna's Connectography and Refactoring by Martin Fowler

Khanna suggests that the over-large nation-states of the 19th and 20th centuries - many of which were created by the fiat and bureaucracy of the British Empire or other colonialist machinations - be “refactored” in line with the “SOLID” software design principles. In this post I take the SOLID principles and try to transform them into the language of national identity establishment.

SOLID and Refactoring

In my previous post about “Connectography” I noted that one of Khanna’s Big Ideas is that:

Many nation-states are held together by fiat or tradition but have no real internal attraction to one another: we should let these break apart or break them apart e.g. Iraq, Yugoslavia.

As a programmer I knew exactly what Khanna was saying. How many times did I, as a beginner in object-oriented programming, allow a class to stand unchanged because its functions had “always gone together?”

I began steering away from those negligent practices when I learned the SOLID principles listed by “Uncle” Bob Martin. These five simple dicta set a new bar for how (new) code ought look. But how to go about fixing the historical messes? For that, I read Martin Fowler’s book Refactoring where “refactoring” is described as:

…a controlled technique for improving the design of an existing code base. Its essence is applying a series of small behavior-preserving transformations, each of which “too small to be worth doing”. However the cumulative effect of each of these transformations is quite significant.

Source

Having learned from both of these inspirations I was able to methodically pull apart complexity and limit its creeping in. So in software, so, too, in nations.

Read: Parag Khanna's Connectography

I recently heard Parag Khanna on the A16Z Podcast and I was sufficiently interested that I bought and read “Connectography.” In this post I’ll give an review of the book qua book and also cover an outline of its big ideas.

Note:

In subsequent posts I explore some of those ideas further:

Connectography

It’s the Hegelian in me: I love a Europe-coming-to-know-itself through history (and economics) master narrative book. I’ve found the most predictive book for the last 15 years of economic and global theory has been (Marxist) Hardt & Negri’s Empire. Empire predicts a move to a global communist panacea only after global capitalism (i.e. multinationals) guts and obviates the nation-state. Accordingly to understand capital’s progression to this end, we should listen to the most passionate global capitalists.

In the early part of the aughts I found the leading writer on the topic to be (capitalist) Tom Friedman, NYT Op-Ed columnist and author of The World is Flat. While Friedman always had big ideas, I found his over-emphasis on who he knows and anecdotes a bit sloppy and frankly, taxing. Like Hegel, Friedman’s work benefits from being read at a swift clip: he’s meant to be enjoyed like the Romantics: with loud thundering emotions and sweeping torrents of vision.

Khanna offers an update on Friedman’s work but with considerably more economic data. While Friedman was occasionally insufferable in mentioning where he had lunch and with whom, Khanna’s core critical ideas occasionally get lost in maps or exhaustive detailing. Given a choice, I’ll take Khanna’s approach and take the data versus the Friedman’s social itinerary, but we lose sight of many of his core pillars in the sea of details about Malaysian trade agreements.

The big ideas I extracted from 390 pages follow:

Read: Super Sad True Love Story

"Super Sad True Love Story Cover"

To grow old is a strange thing: you watch agog as all you loved turns cheap and tawdry: gold to tin, elegance to chintz. The titillating becomes the pornographic, the folly becomes incalculable error, the youth become parasitic, and the open-armed city becomes a clutch of exploitative vipers.

The student of history knows that it has been ever thus. They can only smile, sadly, faithfully reporting the reality of their times and accepting it as a backdrop for the master narrative of their own life: whom they loved, the career that seemed so important, the rituals and places whose importance seemed natural and unfeigned.

In unremarkable times, death comes to the lucky and they never have to question these narratives and backdrops. But for those caught at the locus of the rupture, they feel their world change and wonder whether the most important tatters of the old life and its beauty will make it across the gap with them.

Super Sad True Love Story by Gary Shteyngart is a story of a man in such a time. A man in a future not so terribly far off from our own whose encounter of utter, wrenching true love has the challenge of happening in interesting times. Leonard Abramov: middle-aged, over-fond of rich food, moldering collections of words on pages called books finds himself trying to court, win, seduce, and become desirable to Eunice Park, a girl born part-and-parcel to the zeitgeist.

Spoiler Warning: I recommend the book highly. If you want it in all its unspoiled glory come back later.

Setting plays an incredibly important role in this book, so I’d like to note some of the more interesting aspects of the dystopia where our rupture happens.

Nootropics and the post-Human Future

Life in NYC and SF are remarkably similar in the amount of walking that happens day to day. Unlike San Francisco, however, much of transit time is spent underground where there is no network connection and, as a result, the podcast is a standard accompaniament for Gotham walkers / subway riders. One that I’ve really come to enjoy is the podcast of the Andreesen-Horowitz (or, A16Z) venture capital business.

A16Z has recently started investing in nootropics: materials that help keep you at top cognitive function and on their nootropics podcast they had a really keen observation: as of this moment the human body is at a point such that it can be considered as a component, not unlike the Homebrew computer movement, (e.g. the Homebrew Computer Club of Santa Clara, CA circa 1981) whence came Apple among others.

We now have OEM diagnostic tools which grant us output and diagnostics about our own bodies. In just the way that the Homebrew computer club could mail-order a microcontroller, wire it up to a testing board, and then use an oscilloscope to get performance data about it (“this one sucks”, “this one can do more than it says if we remove this regulating transistor!”) we are now reaching that phase with our meat-casings.

Let’s set a visual: guys with beards, pocket-protectors, slide rules and oscilloscopes meet up at the Homebrew computer club with their latest gizmo. Journey’s latest hit is clicked off as the key is pulled from the ignition of a Corolla. The attendees do a short talk about how many K of memory it has and then someone solders the piece to a board. Or someone comes in with a new copy of “Byte” magazine or a mail-order computer kit. The best components are evaluated, someone runs to Fry’s or Pizza and Pipes and the night runs long, a beer may have been cracked.

Now let’s change the metaphor: men and women with Fitbits, iPhones, and flexible AWS computing power show up. They roll up in Ubers or self-driven cars. They have a PDF of their genomic data and least-squares curve fit data on their triglycerides, running speed, and food intake for the day on their iPhones. They have means for reading the output of the machine (Fitbit), they know its factory-shipped components (genome), and now they’re wondering how can they affect the processing of the hardware: what software changes can they make in a scientific approach that their output devices can capture. They then evaluate their specific responses to nootropic chemical additives and have reliable graphs hours alter showing response, uptake, and fall-off.

It’s splendidly Robert Louis Stevenson.

But it’s not stopping there. I recently heard about how some are even taking to upgrade the hardware of the body — an increase in commitment and risk from the mere chemistry-augmenting offered by nootropics.

Squeamish warning

Seeing these individuals takes the discussion from the (now) permissible altering biochemistry to a slightly more taboo body modification level [1]. Looking at the footage it’s not hard to imagine how this all is coming together: basement labs, sterilization procedure books scanned on the internet, medical supply overnight dot-coms, FedExed IV’s, crowdsourced local anasthetic chemistry, etc.

I think most people would respond to this footage with disgust at “bio-hackery” being tantamount to “body-butchery.” But I suggest that the sophistication of these black-market labs will move quickly from the horror scenes of “Minority Report” and quickly move to being like the plastic surgery spas of Southeast Asia.

What about that UPenn medical rock star? Having never worked a day to her 32nd birthday she leaves crippled by debt (thanks Higher Ed bubble!). Her prospects are to face the litigation-friendly California market, work for an HMO and chip away at that debt mountain, or set up shop for 3 years in a ambiguous-color-market surgery. Maybe some compliant island government “disrupts” malpractice and she set up shop for 3 years (not unlike Neal Stephenson’s Cryptonomicon government resetting cryptography law). In less time than a residency she’s debt-free and has enough money to set up a private practice in the U.S. Sure her “experience” isn’t exactly legitimate, but there are enough discreet clients who will look the other way realizing her to be on the cutting edge of bodily performace.

I think Virtual reality will also have an effect upon the uptake of “meat vehicle” optimization. With the Occulus Rift VR rig shipping and society moving to a state of identity malleability (see: Caitlin Jenner media blitz, Jayden Smith modeling skirts, etc.), I think society will start to think of bodies as designer clothing: means of self expression that can be decorated with tattoos or mirrored glass eye-socket covers. The latter example being a famous visual from William Gibson’s Sprawl trilogy.

From Neuromancer:

  "Should I?"  Case blew noisily on his coffee.
  "You needed a new pancreas.  The one we bought for you
frees you from a dangerous dependency."
  "Thanks, but I was enjoying that dependency."
  "Good, because you have a new one."
  "How's that?"  Case looked up from his coffee.  Armitage
was smiling.
  "You have fifteen toxin sacs bonded to the lining of various
main arteries, Case.  They're dissolving.  Very slowly, but they
definitely are dissolving.  Each one contains a mycotoxin.  You're
already familiar with the effect of that mycotoxin.  It was the
one your former employers gave you in Memphis."
  Case blinked up at the smiling mask.
  "You have time to do what I'm hiring you for, Case, but
that's all.  Do the job and I can inject you with an enzyme that
will dissolve the bond without opening the sacs.  Then you'll
need a blood change.  Otherwise, the sacs melt and you're back
where I found you.  So you see, Case, you need us.  You need
us as badly as you did when we scraped you up from the gutter."

But that’s science fiction or it was in 1984.

Another reference close to my heart, the RPG game “Rifts.”

A juicer is a form of any sentient being enhanced by chemicals, providing the being with an augmented strength and endurance.

http://rifts.wikia.com/wiki/Juicer

As Gibson himself wrote, the future is already here, it’s just not evenly distributed

…yet.

  1. I find our history on this to be interesting. Since the advent of stimulants and depressives we’ve had a social debate about whether or not it was (literally) kosher to do so. Mormons and Muslims agree alcohol isn’t a legitmate additive. Acetaminophen is a legitimate additive for some, but not for others. This reached its most vivid extremity with the temperance movement and still has echoes with regard to sports “doping.” As we transcend chemistry, as this post sugggests, will we see “natural human” versus “modified human” culture wars / jihads? Almost certainly. See also: “Dune,” “Gattaca.”

Read Zackas Object Oriented Programming in JavaScript

I recently read Nicholas Zackas' The Principles of Object Oriented Javascript and I really recommend it. Many people I know (and students I teach) struggle with mapping the concept of object orientation onto a language that does not follow classical inheritance and lacks many of the visible signals that developers recognize as OO-ish.

The books makes forays into hidden attributes of the language but remains friendly throughout. It offers practical tools and exploratory exercises that will help JavaScript programmers learn more about this interesting and protean language.

I wrote the following precis of my take-aways:

Immersive Birthday Dinner: Zigfields Midnight Frolic

As part of my birthday, Lauren bought us tickets to Zigfeld’s Midnight Frolic.

"Zigfeld's Midnight Frolic"

The show is a immersive theatre experience. You go and meet costumed period-era staff and are seated and are provided dinner. Then the floor show starts, but observing the show are actors in on the theatre production; that is, you watch the performance while another drama plays out around you.

The theater’s lecherous owner, Zigfeld, appears to have an attraction that’s a little too close to the star “Olive Thomas.” Miss Olive also has caught the eye of another performer, “Jack Pickford” who marries her and takes her off to Paris. Needless to say, the associates of these actors: Mrs. Zigfeld, a breathy, volatile, and alcohol-fueled chanteuse named Marilyn Miller are not going to keep their emotions in check as they move about the floor complaining to guests about the nefarious backstage goings-on.

Immersive theater is a new experience and it’s a bit confusing: you watch something, move somewhere else, talk to someone, etc. but eventually the thread emerges about the nature of the back story. Interspersed between the dramatic pieces, you can watch the floorshow which features stunning acts of acrobatics, ribald acts that recall the racy dances of the 1920’s, and clever dance numbers.

"My Passport"

It was a great time and I had a “mission” to make sure that I talked to our spurned and cross chanteuse, Marilyn Miller.

"My Mission"

It was a really fun experience and at the end the author invited all of us to join the cast for an after-party in the bar. Lauren and I declined and headed out into the glaring midnight sunlight of Times Square. It’s nice to visit the 20’s, but it’s great to hop home in the 21st century.

Book: Cataloging the World

In 2008 at SXSW I saw Alex Wright deliver a presentation entitled “The Web That Wasn’t.” Wright enumerated a series of historical approaches to a global distributed system for sharing knowledge that weren’t the World Wide Web. His list included “low tech” visions such Vannevar Bush’s Memex and Paul Otlet’s “Mundaneum” as well as higher-tech counterparts such as Douglas Englebart’s NLS, and Ted Nelson’s Xanadu.

Having read Neal Stephenson’s Baroque Cycle not long before, I was interested in what techniques fact-gatherers of yore had used to organize their data in the era before the relational database or self-updating indices. In The Baroque Cycle by Neal Stephenson clever gearworks, labels, and cabinetry make it possible to “reassemble the library” literally to find the right fact. Wright’s few remarks on Otlet’s “Mundaneum” piqued my curiosity: it seemed to be the synthesis of the Dewey Decimal system, the URL, and microfiche. It seemed to be a legacy information storage and retrieval medium that, like the card catalog, I was on the tipping point generation of; I had used the predecessor technologies and had learned, integrated, and come to prefer the successor technologies. Being a geek, of course, I harbor a nostalgia for those old displaced technologies and am awed by how they accomplished so much with such rudimentary tools.

When I came across Cataloging the World it seemed to be a welcome deepening into the world of Otlet’s technology, but also provided color on the man and his times. Particularly of note was that Otlet was a creature of that odd time before the Great War: The Belle Epoque, which marked a new spirit of Internationalism (see: the IWW, et al).

"Cataloging the World"

Otlet’s Technology

Otlet leaned on the work of Conrad Gessner who advocated collecting books' contents onto slips of paper (literally cut out, but in a more book-reverent age, copying would be preferable) that would be fit onto a standardize playing-card size. These cards would each bear a fact and each fact would be noted in a fashion consistent with the Universal Decimal Classification. Physical drawers would help identify and organize facts neatly. While card catalogs may seem anqiuated they provided a scalable, organized means until their successor, the relational database, came along. Notably Otlet advocated the extraction of the content of books into cards, thus winnowing away the author’s “voice” as but so much fluff (prefiguring the search engine). These cards became atomic entities which Otlet called “biblions.” Ultimately Otlet foresaw the birth of a new profession, the “documentalist” who would analyze and synthesize biblions for new querents. Otlet also supposed “client” systems that would integrate with the “home catalog” by which users could query, peruse and synthesize links across archived information.

"Card Catalog"

Otlet’s Institution

Nevertheless, this technological scheme supposes a small army dedicated to order and control and a central organization for housing this body and their efforts. Here we see most clearly the Internationalist sentiment that Otlet held as a personal and spiritual requirement for his work’s success. Otlet spent much of his life seeking patrons and real estate that would house this collective: an institution he called the “Mundaneum.”

Otlet’s Weaknesses

For any information worker today it is clear as his dream’s most colossal and glaring error: control systems simply do not scale. Considering the failure of Internet directories (Yahoo!’s original charter) or the maddening task that awaits anyone who seeks to groom a Wiki, a system of order and heirarchy like Otlet’s seems woefully out of touch – or perhaps merely a relic of a time when information was merely exploding versus exponentially exploding as it seems to be doing in our era.

Conclusion

I rather enjoyed the book and am fascinated by the solution that Otlet imagined in a world that predated the relational database. I feel Otlet’s story was greatly assisted by Wright’s historical placement of him and his solution. The last few chapters covered Otlet versus other information archive designers' solutions. In many ways I feel like Wright was repurposing much of his research from his work Glut. I didnt feel like these comparisons really served Otlet’s story well and these chapters felt bolted-on. Nevertheless, for anyone who would appreciate our information architectures of today, this slim summary of Otlet’s context and dreams was a welcome introduction.

I’ve also included my notes after the break.