Codes that changed the world

April 20th, 2015 10:40 AM
Filed under History;
no comments yet.

Growing up with the Apple II, I learned to program in BASIC. Its line numbers, GOTOs and GOSUBs, and spaghetti code were unlike anything I would encounter later in my education. Perhaps for that reason, I never mastered a language like I did BASIC. While I was able to grasp Prolog and FORTRAN, the "pointers" of C++ were so incomprehensible to me that I eventually had to change majors to get away from it.

Had I continued down that programming path, I doubtless would've faced many other challenging concepts as I attempted to master yet more languages, like C Sharp, Perl, PHP, Ruby, and more. By some estimates, there are over 20,000 languages in existence, only a fraction of which I ever could've learned on the Apple II. Some are more practical than others, while others are of more historical significance.

The BBC attempts to scratch the surface of those historical languages in a recent limited-run podcast series, Codes that Changed the World, hosted by Aleks Krotoski.

Codes that Changed the World

The podcast, which debuted this month and ran for all of five episodes, covers four languages: FORTRAN, COBOL, BASIC, and Java, with a fifth episode discussing how so many different languages are able to coexist.

Of course, you can't discuss the rise of BASIC without the role the Apple II played, and vice versa:

BASIC enabled computing as we understand it today. When Apple was a two-man band building this thing called the Apple II, there were no other computers out there like it. So they had to put something on it that would allow individuals to program it themselves. Apple just wouldn't exist without BASIC. And Microsoft! The first thing that Microsoft did as a company was selling BASIC to run on other people's computers. The two biggest names in modern computing, Apple and Microsoft, both wouldn't've happened if it wasn't for BASIC.

BASIC celebrated its 50th birthday last year, earning it a cover story in Juiced.GS:
Juiced.GS Volume 19 Issue 2

While researching that story, author Steve Weyhrich (who also pointed me to this podcast) delved into the resources available at Dartmouth College, where BASIC was invented. As part of its "BASIC at 50" commemoration, Dartmouth produced a free 38-minute documentary, Birth of BASIC:

If you want to learn more about other programming languages, Codes that Changed the World is available in iTunes. While it's unreasonable to expect all 20,000 languages to be covered, I do lament that the podcast's scope was limited to only five episodes, as I rather enjoyed these 15-minute encapsulations of technical topics for a lay audience. If the BBC or Krotoski ever produce more, I'll be first in line to listen!

Richard Garriott's teletype D&D ported

June 30th, 2014 11:17 AM
Filed under Game trail;

In March 2013, Richard Garriott, aka Lord British, aka the Tony Stark of gaming, announced his return to Ultima with a spiritual successor called Shroud of the Avatar: Forsaken Virtues. This computer role-playing game, which will be playable both online and off, is scheduled for release in 2015. But we don't need to wait until then to see Lord British return to his roots.

This April, Garriott released the source code for his 1977 game called D&D #1, a precursor to Akalabeth, which itself was a precursor to Ultima. The code is BASIC and was written for a teletype machine. But it wasn't solely the code's historical significance that motivated its release. As a promotion for Shroud of the Avatar, Garriott announced a contest to port this ancient game to either Unity or a Web browser interface. Winners would receive the equivalent of the $500 backer tier from Shroud's Kickstarter. As always, the snarky team at LoadingReadyRun has the details:

I marvel that this programming contest could be seen as a challenge. Admittedly, the original game, roughly 1,112 lines of code, dwarfs a similar game I wrote in in 1996, a mere 624 lines of Applesoft. But a game for a teletype machine has to be even more basic than one for the Apple II, and development tools such as Unity make far more complex games even easier to develop than a BASIC game was 35 years ago. How hard could it be to port, or even develop from scratch, a new D&D #1?

Turns out a straight port might not be enough to win; it's the flair each developer implemented that earned them recognition. Sean Fahey recently alerted me that the contest winners had been announced, and that across the two categories were 24 entrants and six winners. Mundi King produced the winning Web port, though I've not been able to get past the initial prompts, being stymied by passive-aggressive "WHO SAID YOU COULD PLAY" responses. I prefer Santiago Zapata's runner-up entry, which sports an authentic interface:

Richard Flemming won the Unity version, which can also be run in your browser but requires a plugin. Flemming called the original "1,500 lines of single-letter variable names, magic numbers, and spaghetti logic."

These ports are neat bridges between Ultima's origin and future—and a timely one, given Juiced.GS's recent cover story on the fiftieth anniversary of BASIC. Though I'm not likely to spend much time playing these ports, I'm heartened to know that a new generation has the freedom to enjoy Garriott's legacy across the ages.

If you want to hear Garriott speak further about Ultima, he was interviewed by Greg Kasavin and Felicia Day at this month's Electronic Entertainment Expo (E3).

Computer literacy begins at home

August 5th, 2013 4:59 PM
Filed under Happenings, Musings;

KansasFest 2013 is now a week behind us, and I'm still absorbing everything I saw, learned, and experienced. Moments such as interviewing Steve Wozniak and other unscripted events are memories that will last a lifetime. But of those events that stuck to the schedule — that is, the daytime presentations and official sessions — but one that really caught my attention was "Teach U.S. Kids to Program" by attendee Matt Hellinger.

Hellinger's talk was prompted by "Teach U.S. kids to write computer code", a December 2012 article by Douglas Rushkoff, digital literacy advocate for, a tool I use in my own classroom. Rushkoff outlined ten reasons why programming must be an essential part of any student's curriculum, given how pervasive computers have become in modern culture and industry. The article focused on how we passively use computers, allowing ourselves to be the passenger to tools that drive our lives. Hellinger in turn reflected on the golden age of the Apple II, when users and programmers were one in the same, putting us in the driver's seat. Can that experience be replicated for today's youth?

His proposal stems from more than some nostalgic desire for his kids to grow up the same way he did. Hellinger made a compelling argument that computers have become so powerful and complex as to be impenetrable, transforming them from tool to crutch. He suggested bringing them down a notch to again make them accessible to students, providing them with an environment where they can write original programs in fifty lines of code instead of a thousand. The Apple II is just such a machine.

But there's more to that equation than the classroom. Hellinger and I approach the topic from very different perspectives: he as an IT professional and parent; I as childfree educator. Although I'll happily expose other people's children to retroprogramming, as is already happening in Milton Keynes, those lessons have to be reinforced in the home. To that end, Hellinger proposed taking away the tablet, replacing or completing the desktop with a Raspberry Pi, and limiting Internet access.

I challenged Hellinger on these potentially draconian measures — not out of opposition but curiosity, to better assess the rigor of the stance. I asked what Johnny should do when he comes home from playing Xbox 360 and surfing Facebook at his classmates' homes. Hellinger said those exceptions are no different from expecting a child to obey other house rules: different parents make different allowances for their kids. Later I followed up via email: what about when the disagreement isn't between homes, but between home and classroom? What if the student is using an iPad at school and needs one to complete his homework? Again, Hellinger made it a simpler matter than I imagined, pointing back to his basic tenets. "I would definitely recommend restricting usage (as if the kid had brought home a video game to research)," he wrote. "Disabling Wi-Fi in the house would go a long way toward resolving unfettered use."

Overall, I was pleased and intrigued by Hellinger's proposal. I hope for opportunities to test and practice his ideas in the classroom, just as he is doing so in his own household. If you want to see his theories for yourself, he has generously allowed me to embed his original slides in this blog. Watch for them to eventually be added to the KansasFest file archive.

My elementary education with the Apple II

June 3rd, 2013 12:36 PM
Filed under History;

My household was an early adopter of personal computers, at least compared to the rest of my grade school. Whereas I had access to the family Apple IIe whenever I wanted, for most of my classmates, their only exposure to that computer came from our weekly computer lab, which was not what I would call rigorous. The instructor was Sister Theresa, and she didn't know the first thing about programming or educational software. Too many classes would start this way: "Turn on the computer. Type NEW, return, RUN, return, HOME return, GR, return. Now draw the Nativity." And that was it: we'd be left to our own devices for the rest of class. Since our work was never checked, no one attempted the project she'd assigned us. On rare occasions, we'd be given textbooks of BASIC program listings and could type one in, but neither instruction nor comprehension occurred regarding what these commands did or how they resulted in the program we'd run.

Instead, my mastery of the Apple II occurred at home. I would pull apart Applesoft programs to see how they worked, then I'd modify them or write my own, sometimes recreating the work during class to show off to my classmates. (The result could be seen less in their admiration and more in their bullying.) I later wondered why the class couldn't be more productive. Did the administration think Sr. Theresa was the best person for this job? Or was the convent looking for a position for this old nun, and this was all that was available? Was it worth it to make her feel useful at the expense of all those computers being wasted? Having now been an educator myself, I'd be keen to see what the mission statement, classroom goals, or rubric were for that class. I suspect the syllabus was blank.

Regardless, I did enjoy these classes and the special permission Sr. Theresa gave me to borrow from her archive of Scholastic Microzine on Friday afternoons to bring home for the weekend. I would wake up early every Saturday to play this trove of new games I'd been bequeathed, both before my three older brothers would wake up and before the Microzine would have to go back to school on Monday morning. I was likely the only student who ever went to see Sr. Theresa outside our designated lab time, and we grew friendly. But my education had taught me to never question authority, so despite our relationship, it never occurred to me to suggest that her class could be run in any other way.

St. Leo's SchoolI don't know how much that aspect of the school has changed since then. I remember hearing in the early- to mid-nineties that they were "upgrading" all their IIe computers to IIc's. Whatever expert they hired for that advice steered them wrong, as the Apple II line was nearing the end of its official support by then, and switching to Macs or PCs would've been a more long-term investment. I wonder what came of their Apple IIe or IIc labs — no one called me when they disposed of either. Maybe they're still there, teaching modern students the fine art of retrocomputing.

Can a quick Google search tell us for sure? Visiting the St. Leo's School Web site — which is running on a five-year-old version of Joomla — I see that "computer" is one of the required classes, and that "Computers are incorporated into daily classes, starting in Pre-Kindergarten." Not the most detailed curriculum outline.

Granted, this is a grade school in suburban Leominster, Massachusetts. At that age and with the resources available, it may be more reasonable to expect the students to focus on the basics: "Religion, Mathematics, Reading — Literature, Language Arts". But computers can be tools by which to inspire creativity in all those areas and more. Think of all the lessons, exercises, and tools that computers could be bringing to the classroom: Programming! Applesoft BASIC! iBooks! Game-playing! Game design! And more!

The issue, in many ways, is academic, as it will be a long time before a grade school's curriculum again has direct influence on my family. But whenever I do evaluate a school's academic rigor for its ability to inspire a generation of creative and competitive professionals, I'll be sure of three things: that computer literacy is as much a priority as other "core" areas; that there is a passionate, knowledgeable teacher in charge of executing that mission; and that she be willing to share her library of Microzines.

What schools don't teach

March 18th, 2013 11:18 AM
Filed under Musings;

Computers play an important role in education, be it in programming or game design. Retrocomputers like the Apple II can be especially valuable in any of these disciplines, especially programming. The finite, knowable universe of an 8-bit machine provides the perfect canvas on which budding programmers can craft their first algorithms.

But in many schools, the question isn't with what computers should programming be taught, but whether programming should be taught at all. Demand for programmers has never been higher, with the number of positions growing at twice the national rate. Yet ninety percent of schools offer no programming courses at all, leading to colleges graduating fewer computer science majors than they were a decade ago.

The non-profit is bringing attention to the need for more programming education in this country with a public service announcement (PSA). For this five-minute video, they have recruited the likes of Bill Gates, Mark Zuckerberg, and, as well as some less likely suspects.

(There are also one-minute and nine-minute versions of this PSA.)

When I was in high school, a required course was geometry. I found it a challenging course, but reasonably so. The theorems and corollaries about alternate interior angles and their kin weren't intended to train me to be an architect; rather, they were lessons in logic, teaching me how to think and solve.

Programming is the modern geometry, offering similar value to students, whether or not they seek careers in computer programming. I do not consider myself a programmer, yet I have benefitted immensely from the languages I taught myself outside of school. I have occasionally tried to pass on these lessons to friends, showing them some (literally) BASIC concepts on the Apple II, such as variables and FOR loops. They remain completely mystified, with one going so far as to marvel at my own capacity to grasp programming: "You're a creative person, Ken, yet you can program. I've never met anyone whose mind can switch between those two modes so effortlessly."

But programming is creative. A relative who doesn't realize that basic tenet recently characterized programming to me as "Doing the same thing, over and over". How he confused programming with data entry is beyond me. But the fusion of creativity and logic is perhaps best found on this digital landscape, and students would benefit from being introduced to that sandbox — whether or not it's on an Apple II.

Recovering the code of Prince of Persia

March 29th, 2012 10:18 PM
Filed under Game trail, History, Mainstream coverage, People;

Jordan Mechner, rockstar programmer responsible for Prince of Persia and Karateka and keynote speaker of next week's PAX East convention, published a comprehensive journal of the making of Prince of Persia. In the book and on Mechner's Web site are notes, sketches, concept art, demo videos, and more — a wealth of information he preserved from decades ago.

Yet for all that time, there was one vital piece of data he was missing: the original source code. Whether it had been overwritten, lent or donated, mistakenly or purposely trashed, or simply lost remained unknown to Mechner, despite his best efforts.

This week, that long-lost treasure fell in his lap when his father mailed him a box of assorted unidentified floppies. Contained therein was Prince of Persia in its rawest form.

It never occurred to me that Mechner didn't already have PoP's source code. Given that PoP has appeared on platforms as recent as the Xbox 360, I wonder what version or fork they were basing that port on. It makes even more recent independent ports all the more impressive.

Source Code

Jake Gyllenhaal followed his role as Mechner's Prince of Persia
with the lead in
Source Code... coincidence?!

Mechner's next task is to verify the integrity of the floppies and migrate the data off them. New hardware like the FC5025 and Kyroflux are miracle workers in our ability to access vintage media via a modern operating system, but the fact remains that the floppy disk is a magnetic medium whose charge is dying. I started (but did not finish) my own floppy migration two years ago. It's easy to dismiss it as a low-priority project compared to ongoing and more demanding tasks, but it will be all too soon that I'll have put it off too long.

Once the code is recovered, I wonder what Mechner will do with it? It's still copyrighted material, so will he continue to keep it a secret — or will he publish it under Creative Commons, allowing a variety of variations and ports?

All this reminds me: David X. Cohen, co-creator of the television show Futurama, reported almost five years ago that he too had programmed an Apple II game that needed rescuing from floppies. I wonder what ever came of that?

UPDATE (Mar 30): Jason Scott tells me, "You'll be delighted to know I am leading this expedition."

(Hat tip to Sean Fahey)