Skip to content

“Scavenagers Reign” is an animated dose of awesome for connoisseurs of sci-fi and anime.

A few months ago I stumbled across “Scavengers Reign”, and I wolfed down all the episodes I could find in one sitting. This is one of the rare ones, kids; if you have a wide foundation in sci-fi, you really can’t miss out on this: hauntingly beautiful, expert narrative and character building, incredible world construction, and just full of references that make you feel like a smarty-pants.

This show is just so damn beautiful. It reminds me of “Valley of the Wind” and you can totally see the anime inspiration here; but, then again, how can you do any animation today without being inspired by things like Studio Ghibli. Even the haunting piano music which serves as the main theme tugs at the ol’ heart muscle. The environments are so rich, and the creature designs are so well thought out, that I found myself just staring at the screen, speechless.

It starts with a ship wreck. The crew are forced to abandon ship and do what they can to survive on a plant teeming with alien life. And they do a really good job of making it alien. Some of the critters are intelligent, a lot of them are not. And the characters are forced to use the environment they’ve landed in. A lot of they things they run into serve a distinct function; as if they were genetically engineered for a purpose.

We are very much in retro science-fiction here. The look of the ship could have come out of the “Alien” franchise. The show is one long ode to the sci-fi of yesteryear. It’s a love letter, really, to sci-fi from the late seventies through the nineties. It’s definitely not for everyone, but, if you liked films like “Moon”, or just enjoy futures of the past, you’re going to like this. It’s streaming on HBO, if you want to track it down.

“Three Hearts & Three Lions” and the antecedents of D&D

Poul Anderson’s 1961 high fantasy novel

Diverging from tech subjects, I can’t really remember where I heard about Poul Anderson’s book “Three Hearts and Three Lions”. Somewhere it was recommended to me through some some hypertext rabbit hole that I ended up falling down. I managed to find a digital copy through my various means, and than it sat on my digital book shelf, collected virtual dust. Time passed, and, occasionally, as I scrolled through my backlog of reading material, I would see the title and think, “hmmm, yes. I should really get to that one.” But then something else would catch my eye, and I would forget about it again. Anderson is one of those authors that you find on the shelves of used book stores — remember those? — who had a writing career that spanned through the 20th century and into the 21st. But he’s not a guy that I grew up with like Jack Vance, J.P. Blaylock, Tolkien or Lovecraft, nor was he ever recommended to me when I was kid.

About a month ago I started watching a bunch of videos, detailing the history of D&D. I’ve been fascinated by role playing games since I was kid; over time my interest has pivoted away from focus on the fantasy or sci-fi elements to general narrative construction and story telling. I’m not sure why my mind works like this, but I get really into the development of anything that catches my attention; I want to see how it started and how it changed over time. I want to understand it within its context and go deep. I do this with tech and math too.

So, there I was, watching video essay after video essay about Gary Gygax and the rise of his table top fantasy war game that turned into D&D as we know it; until I came across a video about the D&D version of the troll.

Trolls from D&D
A troll from Will Huygen’s 1976 book, “Gnomes”

When you see the troll in the original monster manual and you know anything about trolls in Scandinavian myths, you’ll notice that they look very different. Typical trolls from myth, are shaggy, brutish humanoids — kind of half-beast and half-man and more than a bit ape-like — as in the troll from “Three Billy Goats Gruff”. They’re capable of speech and tool use. They’re not very intelligent, but they’re also not animals. D&D trolls, on the other hand, are truly monstrous and alien; they also have the weird ability to regenerate, and their severed limbs can go on fighting, even rejoin the body; they are some kind of protean monster with hollow eyes. Where did Gygax get this version of the troll? “Three Hearts and Three Lions”.

I knew about Jack Vance’s influence on Gygax and his magic system — often referred to as Vancian — and I have read all the Dying Earth books — some of them multiple times — while growing up: “The Dying Earth”, “Eyes of the Overworld”, “Cudgel’s Saga”, and “Rhialto the Marvelous”. Once I was through with this essay about trolls — wherein the presenter read a passage from Anderson’s book — I decided to descend into my digital study and pull out the volume.

Bacon and Necktie Alignment is not included here….

“Three Hearts and Three Lions” tells the story of Holger Carlsen: a Dane who decides to join the underground resistance in WWII and finds himself teleported to a medieval world where the Carolingian legends, monsters and magic are real. Not only did I immediately see where Gygax was pulling from, but also a lot of other fantasy authors. Anderson sets up a great conflict between the forces of Law and Chaos; I know that before the current alignment system in D&D, split into the 9 different categories, there were originally just two: Law and Chaos. This idea comes up again and again, most notably in Moorcock’s “Eternal Champion” books.

The story even plays out like a D&D campaign. Our hero appears in a wood where he finds a war horse and full set of gear waiting for him. As the story continues, he collects allies, has various encounters, finds his way through kingdoms, forests and hamlets and eventually receives a quest to seek a magic sword in a defiled church (St. Grimmins on the Wold totally reminds me of “Diablo” and I was a bit disappointed that the story wrapped up so quickly at this location). Anderson never takes Holger into the dark night of the soul, though; the Dane faces plenty of opposition, but he handily gets himself out of each sticky wicket. A lot of the creatures that would later appear in the first Monster Manual show up here, as well as a lot of tropes like having an underwater adventure where the characters can breath with magic, or going into a magic shop where we get the next plot token from some old geezer who could be wise, or a total quack. It’s all there.

A quick word on the language in this book. If I had tried to read this as a teenager, I don’t think I would have gotten very far. There’s a lot of French, German and Latin that appears in this book; two of the characters speak in a weird brogue that is phonetically Scottish, but ropes in some German and old English. Reading a lot of this book is a bit like reading “The Wake” by Paul Kingsnorth (2014): sometimes you have to read it out loud to get at the meaning. Since I was angry youth, I’ve lived 2 years in France and almost a decade in Germany; I’ve taught myself some Latin and Classical Greek; I’ve been around. So, what would have been a very challenging text back then is now just a delight.

All and all, the folks that are going to get into this book are a very small niche. But, if you’re in the crazy Venn diagram of language enthusiast, fantasy fan, and classic D&D nerd, then you will get a lot out of this book and I recommend it. Admittedly, there are not a lot of people that fit into that intersection.

Carahue waved a negligent hand. “Your sword is straight and mine is curved.” He smiled. “so between them they should fit any shape of foe.”

What is this DevOps thing, anyway?

In 2018 I was hired as a DevOps Engineer; it seemed like the perfect direction for my career. I’ve worked most of my professional life as support, sys admin, or network engineering; I’ve really wanted to go in the direction of development, but never had the chance up till now. DevOps, as I understood the term then, seemed like the perfect way to leverage skills I had and start getting the skills I wanted. So I eagerly accepted the position.

My first step as DevOps was to start reading DevOps books, like “The DevOps Handbook”; and what I started learning, was that everyone was using this term differently and most incorrectly. DevOps is neither a title or a solution; it’s supposed to be a philosophy, a way of running your projects.

One of the advantages of the company I’m currently at: we don’t really have a 24/7 production environment that we need to worry about. Our CI/CD Jenkins Cluster is doing the CI part, but not really the CD part. So, there are no calls at 3AM to report that the service is down. And I don’t miss that at all. I did a year at an MMO game publisher, and that was not great.

So, I’ve been getting slowly better at doing Jenkins stuff; and this company is my first exposure with JBoss and Wildfly, as well as build tools like Maven. I still need, however, to start working on those development skills that I want. I’ve also learned that what we are doing is kind of out-dated; AWS and Terraform seems to be where everyone is now: Infra as Code. Having mucked about with metal servers and seeing the transition to virtual and now the promise of things like Terraform, well, it’s pretty exciting. I love the idea of doing deployments that would have taken weeks of planning with the stroke of a key. Less futzzing with org silos and bureaucracy and more coding for the win.

So, I’ve learned that I’m not a DevOps Engineer; right now, I’m more of a Site Reliability Engineer, or SRE. Maybe one day I’ll reach something like Full Stack DevOps Mage; that would be pretty cool.

Back to basics — the Imposters Handbook

So, I ran across Rob Conery a while ago; I watched a few presentations of his on youtube, and thought his book would be worth checking out. Yeah, sure, I had a C64 in 1988 and I played around with BBS in the early 90s; but that didn’t really set me up with the basics of complexity theory or big O notation. I knew that I liked playing with computers, but still didn’t understand what computing meant, or the science part behind it.

Conery gives you a quick paced tour through all of the foundational ideas in Computer Science. He doesn’t go too far into any given topic, but he does give a nice survey course, stopping at all the big points that make up the field and giving a quick run down in approachable, humor filled language. If you have come to tech in a round about way, give this book a read.

It’s been a long time since I rock ‘n rolled

Quotes From The Blues Brothers. QuotesGram

Hey there, Internet! It’s been a while since I wrote anything here. Quite a while, actually. 2020 was full of some crazy times for everyone, what with the global pandemic, murder hornets, Australia burning to the ground, the election, etc. Since finishing my Software Developer accreditation here in Berlin, and getting a new job as a DevOps Engineer for a small consulting firm, I’ve let this blog lay fallow for too long. It’s time to change that.

In the next couple of weeks, I’m going to start putting down some regular articles, going into detail about what I’ve been up to. Hopefully, we’ll have a nice mix of subjects and topics. So, don’t be a stranger. And if you have comments, questions, or just want to lay down some wisdom, feel free to hit me up. Email address is in the bio section.

IHK Berufsabschluss — Final Thoughts and Next Steps

<tl;dr> on the 28th of June, 2018, I passed the last part of my exams for the Berufsabschluss: a two year vocational degree. I talk about this and go over thoughts for the future </tl;dr>

Last month I posted a rather long update about the IHK — Chamber for Industry and Trade — Exams; I went into all the stuff leading up to now. Well, on the 28th of June, I walked into the exam room on a campus south of Berlin and presented my project to the three members of the exam committee assigned to me. Sitting on a wooden bench in the hallway and waiting for the committee members to show up, I was reminded of  waiting in a hallway to deliver the oral part of my undergrad exams in June of 2003; I was so sick with fear then that I thought I might actually throw up. Finally I was called into the room, set up my gear, delivered my speech, answered the questions, and then stepped back into the hall while the committee deliberated the result.

Translation: The exam taker has passed the exam.

After about 10 minutes, I was called back in and presented a piece of paper with the check box “passed” ticked off. There was a solemn moment as I was conferred the title of IT-Fachinformatiker Anwendungsentwicklung, and then the moment passed and I headed back into the hallway. Now that the goal of the last 14 months has been met, it’s time to take a bit of time and reflect on where I am and what’s next.

The degree is done and I have a couple of credentials in software development; I finally feel I can start steering my career in that direction. In the last ten years I have developed some very definite ideas about what makes a good software developer and what writing software is even about. These are just ideas, mind you: theories that have yet to be proven through experience. Taking an interest in the history of the subject, I’m increasingly of the opinion that the core of computing systems, and the software that runs on them, is all math. My next long term goal is to read the pioneers of this field — Turing, Von Neumann, Shannon, et al. — and really understand what they’re talking about, and that means building some serious math skills. I want to go deep and get very close to the machine. What’s happening down there? I’ve read enough articles about people working in the field saying they’ve used Big O notation twice in their career, but I want to learn that stuff. And to get those math skills are a big challenge for me: a challenge in the form of another long term goal that will probably take years. Why? Well, my education has been very unconventional and I never explored math much up through college. It was one of those things that I found interesting, but also really frustrating and painful. I’m sure lots of people out there can sympathize. The more I get into the subject of math, the more I realize that there are a ton of misunderstandings out there about what math is and how it works. So, to build the skills I need, I have to get back to basics. Math can be an unforgiving  subject; you really have to lay strong foundations and build slowly to get the understanding you need to progress to the next level. So, I put together a Trello board and I’m working through all the Khan Academy materials, trying to play catch-up. It’s a little humbling to be going through some of this material at the age of 41, but I hope it IS true that it’s never too late to learn…even though the history books clearly show that math is a young man’s game. At the same time that I’m working on this math angle, I DO want to work on coding projects and getting more familiar with different programming languages and tools. But I’m also keeping my eye on these foundational topics that are running under the technology; it’s my belief that if you want to excel at a subject, you need to build context: understand where it came from, what problems it was trying to solve, what the people who made it thought. Math is at the heart of this because that’s where these systems came from. Von Neumann’s MANIAC — the first stored program computer — was designed to perform artillery trajectory calculations for the navy as well other projects that humans would require several years to do by hand: projects the machine could do in a batch job that would last an evening.

As soon as I can get to a good place with the math, it’s time to tackle the Knuth. I bought the first three volumes of his “Art of Computer Programming” several years ago. Those books are so expensive that it made more sense to have my copies shipped from Tacoma to Berlin then to repurchase them here. That’s a little crazy to think about, but there it is. You don’t have to go deep into math and read all of Knuth to develop software, but, if you DO take that plunge, you might just become a great developer. At least, that’s the theory that I’m currently operating from. I’ll just have to keep experimenting and seeing what works. The future, at any rate, is now. As the IHK degree comes to a close, the next chapter opens. And I’m so ready to see where this road leads next.

 

Digging into heavy earth

tl;dr: I found my dad’s grave online today. I talk about that, tell a bit of story, and then repost the obituary that my mother wrote him in 1995.

So, a funny thing happened to me today. I found my father’s grave online. Yeah, that’s a thing that can happen, I guess.

I was googling my name to check on what pops up these days and then went over to the images search on Google. At first it didn’t even register. My father always went by his middle name, Jeff, and not his first name of Irvin and the caption of a grave stone read “Irvin Jeff Phippeny”. But, it slowly dawned on me exactly what I was looking at, and I went very cold inside.

My father died of cancer when I was 19 years old. It was April of 1995, and his death kicked off a whole adventure to get him back home. It was vitally important to him that he be buried on the reservation and in the family plot. He was pretty much penniless at the end, living on social security disability; and the cancer took its time. He had several months to contemplate the end. He would beg whomever would listen to get his body back to the family plot. I lot of people said yes, but only my mother really stepped up after he passed. She made all the arrangements, and she figured out the plan.

He died in Puyallup at the Good Samaritan Hospital and the graveyard is just outside Pocatello, Idaho. For those of you who don’t know, it’s a good two days drive. We drove the whole way there with a Uhaul trailer in tow — his body inside a glorified cardboard box with mothballs — personally bringing his last remains to their final place of rest. We broke down on the way and my mother fixed a leaking radiator hose with plastic bags and chewing gum on the side of lone highway in the dead of night. There were scraps, drunken encounters with the police, the shooting of guns and drinking of champagne by his grave, and a lot of thinking. All and all, I’m sure the old man wouldn’t have had it any other way.

It been 23 years now since we put him into the ground and said good bye. That family plot is so far out into the country, I didn’t know if I would ever find it again. To see a photo of it and get GPS coordinates today was just surreal.

As all children of departed parents, I often think about my dad, Irvin Jeff Phippeny. I really wish that he had gotten a little more time to see that kind of human being I grew into. When he died, I was a lost punk of 19. I’m sure that he would beam with pride, if he were still with us, and exhaust everyone with boasting stories about his son in Berlin, Germany: linguistic genius and computer wizard. The old man loved to exaggerate. Where ever you are dad, I’ll never stop missing you.

“Memories of you I will always keep,
God saw you were tired and put you to sleep.”

Here’s the obit my mom wrote him. I don’t totally agree with it, but it’s still a powerful piece of writing and it seems fitting to throw it back out into the world:

“Irvin Jeff Phippeny
I AM A BANNOCK INDIAN My forefathers were warriors. Their son is a warrior. I have danced my last warriors’ dance with death. I am a dinosaur in the 20th century. I am a man caught between two worlds. The world of my ancestors and the world of the white man. I have mourned a lifetime for the loss of my people, my culture, my religion and way of life. They have vanished as snow before a summer sun. There are no full bloods left in my tribe. I am a breed and my only son’s blood is even more diluted. I pray to my mother, the earth, that my war with the white man dies with me and my son is spared my pain. In my sorrow, O Great Spirit hear my cry, reunite me with my people and heal my heart, from this pain of separation. Let the memory of my tribe become a myth among the white man. For the white man would rather study the past than be present for the flash of the firefly in the night, the breath of the buffalo in the winter time or the beating of his heart in the silence of the dawn. Graveside services and interment will be at Lincoln Creek, Fort Hall Indian Reservation, Idaho.”

Pub Date: 4/27/1995

The IHK Exams and Big Update Dump

 
 
<tl;dr>: In February of 2017 I started a training program for software development and planning, financed by the German government and administrated through the Chamber of Industry and Commerce (IHK). I turned in my project thesis on April 14th and took four hours of exams on April 25th. Today I received the results from my exams and I have managed a passing grade. I still have my project presentation on the 28th of June. If I pull off good grades on the thesis and presentation, I will be award my career diploma as a software developer. A career diploma is something between an AA degree and a BA in America.</tl;dr>.
 
Don’t you hate it when someone posts their tl;dr at the bottom, making you leaf through the whole thing before you get to it? The point of a tl;dr is to shoot out your summary and save people time: an abstract doesn’t come at the end of white paper…So, if you want the details, keeping reading. It’s story time again from the land of Phipponia. But, I’m just as happy if you wish me well and say something nice, like “way to go, man! We knew you could do it…whatever it is.” That’s cool too. There will not be quiz at the end of this post.
 
Anyway, I’ve been meaning to put up some articles here for a while. I’ve been reading some great books and have plenty to talk about, but I’ve been really busy. Here’s why.  This whole becoming a software developer thing has been a long term plan, hatched way back in 2007. After starting my career in IT in 2004, 3 years later I realized that what I really wanted was to get into software development. And so, I hatched an extended plan. I recognized that a lot of software developer folks are good at coding, but don’t know a whole lot about the machines and systems their code runs on (e.g. TCP/IP networks or Server farms); don’t get me wrong, this isn’t across the board, but it’s a trend. You don’t have to know the finer points of routing tables, TCP ports, or server load balancing, to learn to write effective code in Java, or Javascript, or Python. All that stuff is being taken care of for you by layers and layers of abstraction; so, if you don’t need to know it in detail, why waste your time? But, what if you DID have a really good grounding in these things? That would make you an even better developer, right?
 
So, I decided to start my path toward development by getting a good foundation in network admin, sys admin, and hardware architectures first. And I worked for a long time as a sys admin/network engineer in Seattle. I got my A+, Net+, and Cisco Certified Network Associate certificates and then went on to do a year long training program at the University of Washington in Open-Source OSs. I got to point where I felt I had a good foundation with this stuff. But I had another plan too: one to move back to Europe and specifically to Berlin. I knew that in order to make my resume saleable in a European market, I would need all those certs and more. Europeans — at least the French and the Germans — won’t take you seriously unless you have lots of diplomas and certifications. I wanted to be a Software Developer that could speak multiple languages, not just the programming ones; so I got certs in French and German too, documenting my abilities with these languages.
 
In 2012 I made my decision to move to Berlin and give this plan a try. For the first four years I lived here, I struggled to find work, being forced to fall back on sys admin stuff. After my last company fell apart, I was in the unemployment office and my case worker asked me, “what do you want to do?” To which I immediately replied, “become a software developer.” “Alright then, you’ll need job retraining. Go to this Job Counseling Center and try to find a Training Center you like. We’ll have another appointment in two weeks.”
 
I did what she asked, and figured out some possible options. Due to my resume, the training provider, BBQ, said that I could do their program in 14 months instead of the required 24. I was able to quickly arrange it through the unemployment office and I got a seat at BBQ. The state paid for the whole thing and gave me unemployment benefits too while I went through the program.
 
I started in February of 2017 and my first class was Economics and Social Law. You see, it’s not enough to learn how to code in Germany, you need to learn several planning and project management methodologies as well as the basics of German civil law and economic theory — just the very basics, mind you — but still challenging when German is your third language. I should also mention, by the way, that this whole thing is in German, and German at a professional level. After seven months of classes, I went into an internship at PARIS AG and worked through a project. Finally we come to March of 2018.
 
The internship was done. I had put the project into a thesis document which was due on April 14th. Thanks to a lot of good friends, I was able to take my horrible, dumpster fire of a paper and turn it into proper German. I made the deadline. But then I had the exams…
 
For most of April I cracked the books as hard as I could. When I started taking the first practice tests, I was consistently failing. First, these exams don’t really reflect reality; they’re way more about theory and best practices and don’t have much to do with the way real tech projects are run. This means that not much of my 12 years of work experience in IT was very helpful. Second, the exams were not in my native language (duh!) and there were culture pieces missing too for Civil Law and Economics. I put everything I could into the test prep, and I saw my grades starting to improve from the practice exams. Slowly it seemed that passing was probably a given, but would I pass with a C (in the German system a 3) instead of a D? These grades, after all, would appear on the diploma itself.
 
The day before the exam, I went to the testing location, making sure I had a good idea of how long it would take to get there from my apartment. And then I went home, went for a run, and tried to get some sleep. At 8AM the next day, I was sitting at the desk marked with my name in an auditorium with a couple hundred other test takers. This was it: the moment of truth, or the hour of glory…as my dad used to say.
 
The next day I went back to my internship. All the IHK communication I had received said that I wouldn’t know the results until the day of the presentation. I resigned myself to not knowing. I had a good feeling about it, but I wasn’t sure about the economics test. I spent the ride home tallying the questions in my head, trying to work out how many I was sure were right and if I had enough to make the 50 points necessary. I felt like I had done well, but you can never be sure, especially when things are in another language. I had seen this enough on the practice tests where I had gotten questions completely wrong because I thought I had understood the question when in fact, I had not. Time passed.
 
So, today, I had to go back to BBQ; we are suppose to be preparing our presentations for the entire month of June. Due to a bureaucratic screw up, the training program ends on the 8th of June for me; so, I will have to do a lot of the prep on my own, and, when I say on my own I mean with all the love and support from all the great friends I’ve made in Berlin who can give me a hand with the German and allow me to get some practice giving the presentation. It only needs to be 15 minutes after all with an additional 15 minute oral defense. Man, presenting my undergraduate thesis at Whitman to a room full of people was about 15 minutes. I’ve been making presentations for a lot of my career and I’m not scared of this…at least not too scared. But, when I got to BBQ, they told me that the exam results were available from the IHK’s online portal. I rushed home filled with jitters. What if I didn’t pass? What if I failed the Econ? I wouldn’t be totally hosed, but I WOULD need to retake whatever I failed six months from now, and you only get two tries at this. Fail twice and there won’t be a third time. As the SBahn crept along the track through Jungfernheide, Beussler Strasse, Westhafen, Wedding, Gesundbrunnen, and finally Schoenhauser Alle, I sat there desperately trying to control my breathing, desperately trying to keep my calm, preparing for success or defeat. It is moments like this that you see your measure. It is in moments like this where you meet who you really are.
 
The train finally pulled into my station and I got home and into the apartment, climbing the stairs and knowing that all of this would be imprinted on my memory for years to come. This is the day where I would learn if my effort bore fruit and what kind of fruit it was. I got into my apartment, sat down at my laptop and typed the IHK URL into my browser. After logging into the site, I found my scores:
 

You’ve got to click it to see see the results, but it says GA1 75, GA2 70 and WISO 82 for a total of 75 which comes to a 3.

 
This was the best outcome I could have hoped for; a 1 or 2 wouldn’t be realistic, but a 3 was possible. And I had achieved it. A 3 is nothing to crow about, really — It basically a C — but to go from failing to 4 to 3, and when you know that those grades are going to appear on the diploma itself, well there’s a pretty big dog in that fight to get something decent. And, somehow, I had done just that. I had gotten the grade I needed with the added bonus of a 2 (or a B) in Econ and Civil Law. That’s the thing that really gets me; I was sure that I had barely squeaked by on that one.
 
So, that’s the state of Walterdom and the noble land of Phipponia: I’m weeks away from the last piece in this puzzle and then I will have the degree that should open doors as I continue to become the best software developer I can. I start my new job on Monday the 11th of June with the company that I interned for. As my dad probably would have said to me, were he around to hear this news, “well, son! Sometimes the sun shines, even on a dog’s ass.” Amen to that!
Thanks for reading. Stay tuned for more soon.

George Dyson’s “Turing’s Cathedral”

Douglas Adams once famously observed:

“I’ve come up with a set of rules that describe our reactions to technologies:
1. Anything that is in the world when you’re born is normal and ordinary and is just a natural part of the way the world works.
2. Anything that’s invented between when you’re fifteen and thirty-five is new and exciting and revolutionary and you can probably get a career in it.
3. Anything invented after you’re thirty-five is against the natural order of things.”

When John von Neumann and his team invented the first stored program computer, MANIAC, and successfully ran it in March 1952, my birth was some 24 years and seven months in the future. Stored program computers — like telephones, television, and running water — were just “a natural part of the way the world works.” No biggie. It is very easy to forget that the systems we have today didn’t descend fully made from the heavens, and it’s also easy to take these large evolutionary steps for granted too. I feel that our ability to understand a complex, human made, system — like a computer — is greatly increased when we can develop a context for it: what were the people who made this thing trying to accomplish? How did they choose this particular solution? Were there other ways of doing it, and this one won out? Another word for this “context” is simply History. So, in reading Dyson’s book, I’d hope to increase my contextual knowledge of this massive step in the evolution of the computer and information theory.

What is a stored program computer? A stored program computer is a device for which the data AND the instructions that operate on that data are stored and manipulated in the same medium. Before stored program computers, machines had to be completely reconfigured in hardware to do other tasks: there was no software, just hardware. So, machines like ENIAC needed a great deal of downtime if you wanted to execute some other application. By storing the data AND the instructions in the same place with the same stuff — basically as electric charge in RAM — you suddenly had machines that could write and execute their own new instructions based on a beginning state. You suddenly had software. You suddenly had a general computer that could attack however many tasks your code could dream up. And, as we’ve seen, software is actually what makes computing devices amazing and powerful. The “killer app” is what makes you a ton of money, and not the “killer machine”. There is only a very small pool of people who know what a general purpose, stored program computer is capable of and how to take advantage of it; for the rest of us, such a machine is totally worthless without software to run on it.

Dyson’s book starts with the creation of the Institute for Advance Study (IAS) at Princeton and provides a biopic of all the players, as the team brought MANIAC into being. There a lot about John von Neumann, of course, but also other members of the team who made the thing possible, like Julian Bigelow who actually solved the physical engineering problems on the project. The technical nitty-gritty is absent, but I think that Dyson, like Jason Scott in “BBS: the Documentary”, is trying to give us the faces of this period. Who were these people? What were they like? What were they trying to accomplish? I would have enjoyed more of the tech details, but it was still a good read, and I could recommend it to anyone interested in the subject, even if they don’t have a strong tech background. You don’t have to be an engineer to enjoy this one.

If your interest is piqued, but don’t have the time to read the book, here’s a 17 minute lecture from Dyson that sums up the contents of the book nicely.

 

 

Quick and Dirty PHP Lab:

IBM7094

“Hey Bill, load the PHP 5 tapes on bank 4. Maybe it will be ready by tomorrow morning…”

New Employer: “How much do you know about PHP? We’re going to need you to work with PHP and Symfony.”

Me: “Give me the weekend and I’ll get back to you on Monday.”

Sometimes you need to learn things quickly and that involves setting up a lab to read documentation, execute tutorials, and experiment with ideas. The great thing about open source is that learning materials are readily available. Taking what I had on hand, I cobbled together a PHP lab over the weekend. Now, to be clear, I’m not defining π here; the lab I’m about to describe isn’t complicated for anyone with a basic understanding of networking and system administration. But I was pretty proud of getting it up and running with minimal effort. I have to admit that I felt a wave of satisfaction once I saw it working. It was one of those, “huh! I guess I’m not an idiot after all,” moments. So, let’s take a look at this thing.

Objective: develop skills with PHP

PHP, for those who don’t know, is a general purpose scripting language that can do a lot of things, but is mostly used to execute server-side tasks. So, if we are going to learn anything about it, we need to have a web server first for a web client to query content from. This server and client need to be able to get to each other across a network. With a LAN, server, and client in place, we should have a functioning PHP lab.

Requirements: web server running PHP, web client with a browser, Local Area Network

php-lab

Here are the physical components. Most important is the Vim coffee mug: a gift from a dear friend.

Running Ubuntu 14.04 LTS on my laptop means that getting a web server up and running isn’t difficult. In fact, the web server Apache appears to be running by default and serving content from the directory /var/www/html. Using the package manager Apt-get, I ran through a basic LAMP (Linux Apache MySQL PHP) installation guide which installed PHP 5 and MySQL. Then, I created a phpinfo() file at /var/www/html/phpinfo.php and successfully tested that PHP was working. I also downloaded the PHP manual in the form of an HTML document and placed it at /var/www/html/phpmanual on my web server. The web server is good to go.

Using my tablet as the web client doesn’t require any effort: the browser software is already installed. But, I DO need to have LAN for the client and server to talk to each other over; this is a bit trickier because I don’t have much in the way of traditional networking resources in my apartment. But I do have a cell phone, and that cell phone supports creating a wi-fi hotspot which is basically a wireless LAN. So, I turned off data to my mobile provider because once the laptop, or tablet, saw that it had a gateway to the outside world, they would try to run all kinds of update processes over the Internet—checking for email and such—and this would have clobbered my poor pre-paid data connection.

php-lab-diagram

Here’s a logical diagram of the lab, picture being worth a thousands words and all. Notice that the cell phone is acting as a wireless switch; it’s handling all traffic between web server and client.

Once the hotspot was active, I connected the laptop and tablet to the network. Then, the moment of truth, I fired up the browser and pointed it toward the laptop, using the URL http://192.168.43.203/phpmanual and…it worked! The PHP manual sprang up on my tablet. Some times a hack is satisfying, no matter how small.

The tablet is serving two purposes here: 1) it is acting as a second monitor so that I don’t have to switch between any applications on the laptop, and 2) it allows me to test PHP scripts served from the laptop. On the laptop I have two windows open: 1) a BASH shell running Vim, and 2) Anki for writing up note cards. I’ve blogged about Anki before here, if you’d like to know more.

A brief defense of Vim: Okay, I’m not one of those people that defends my text editor with religious fervor. “Always use the right tool for the right job”, is what I say. If Notepad does what you need, cool. If you really like Emacs, knock yourself out. I like to use Vim for one simple reason: if you want to keep your Sys Admin skills sharp, you should be using Vim. The Vim learning curve is steep…really steep; it goes far beyond user unfriendly. For anyone who doesn’t know that I’m talking about, Vim is a text editor that allows you to create a plain text document. Pretty basic stuff. The thing about Vim, though, is that it was written back in the bad old days before the Graphical User Interface(GUI). Vim doesn’t know what a mouse is, and it doesn’t care. So, this means that in order to use it with any proficiency, you have to master a whole load of cryptic key commands to move the cursor around the screen or execute operations. So, why use it? Well, when you’re a Sys Admin, you’re going to have to log into all kinds of servers, of all ages and OSs, and most of the time you won’t have a GUI available. Because Vim is so old and standard, you can be sure it will be available on any Unix or Linux system you happen upon, no matter how old, big, or small. So, I like to keep my Vim skills sharp and use it whenever I can. Even if it makes life a little harder.

Praxis: The proof is in the puffing, as they say. With the lab in place, I fire up the browser on the tablet and navigate to the PHP manual. While reading through the manual, I can write up note cards in Anki for later review. When I get to the point of actually trying out PHP scripts, I create a directory for the test scripts on the web server at /var/www/html/phptest. Suppose I want to write your typical PHP, “Hello World”, script—not sure why, but every tutorial out there kicks things off with a “Hello World” script; at this point, it’s tradition—first, I fire up my text editor and write the script in the phptest directory; after I’ve saved the script, I open a new tab of Firefox on the tablet, navigate to http://192.168.43.203/phptest/helloworld.php, and see if it worked; I can then continue to modify the script on the laptop, save again, and refresh the page on the tablet to immediately see the results.

Conclusion: In less time than it took me to write this article, I was able to build a great learning resource with freely available software and technology that I already had. This is what I love about tech in general and open source projects in particular: everything you need to learn it and use it is just sitting there, waiting to be uncovered. PHP first came into the world in 1994, at the dawn of the web and browsers; Rasmus Lerdorf, the original author, cobbled together some tools to help him track the statistics of his on-line resume. And, when Mr. Lerdorf decided to publish the code to the world, the world ran with it. 19 years later, a guy like me can access tons of great documentation, painlessly install the software, and start learning the language in a weekend with no outside help, without having to pay a dime. All I need is patience and the motivation to learn.

We usually focus on the negative aspects of the Internet: trolling, cyberbulling, criminals with their scams; we don’t often talk about this amazing global community of people who work hard and then give their work away because they want knowledge to be free. Just think about that for a minute.