foo.c

Bill Wear

on 13 November 2019

I remember my first foo. It was September, 1974, on a PDP-11/40, in the second-floor lab at the local community college. It was an amazing experience for a fourteen-year-old, admitted at 12 to audit night classes because his dad was a part-time instructor and full-time polymath.

I should warn you, I’m not the genius in the room. I maintained a B average in math and electrical engineering, but A+ averages in English, languages, programming, and organic chemistry (yeah, about that….). The genius was my Dad, the math wizard, the US Navy CIC Officer. More on him in a later blog — he’s relevant to what MAAS does in a big way.

Okay, so I’m more of a language (and logic) guy. But isn’t code where math meets language and logic?

Research Unix

Fifth edition UNIX had just been licensed to educational institutions at no cost, and since this college was situated squarely in the middle of the military-industrial complex, scoring a Hulking Giant was easy. Finding good code to run it? That was another issue, until Bell Labs offered up a freebie.

It was amazing! Getting the computer to do things on its own — via ASM and FORTRAN — was not new to me. What was new was the simplicity of the whole thing. Mathematically, UNIX and C were incredibly complex, incorporating all kinds of network theory and topology and numerical methods that (frankly) haven’t always been my favorite cup of tea. I’m not even sure if Computer Science was a thing yet.

But the amazing part? Here was an OS which took all that complexity and translated it to simple logic: everything is a file; small is beautiful; do one thing well. Didn’t matter that it was cranky and buggy and sometimes dumped your perfectly-okay program in the bit bucket. It was a thrill to be able to do something without having to obsess over the math underneath.

Abstraction

In short, what made UNIX and C usable and beautiful to mid-brainers like me was abstraction. You didn’t have to worry (much) about the low-level details if you didn’t feel like it. You could focus on pure logic and abstract entities without having to “break the fourth wall,” as actors say. You could take little pieces — like “ls” and “cat” and “awk” and “sed” — and you could assemble a script or a C program that would grant your wish. And that was exhilarating and exciting and fabulous for me.

Never had that kind of experience again. Well, at least, until I bumped into MAAS. Same thrill, except the pieces aren’t shell built-ins, they’re little bits of bare metal around your data center. Composable hardware. Remote control data center, where you can move machines around from a console, instead of sending your IT guy to Atlanta, to that infamous server farm next to the prison over there. Which is off 285, which is kinda like a prison in itself, but that’s another story.

The point? It’s the same exhilaration, the same excitement, the same fabulous-ness. (Poetic license #3774786, btw). MAAS is like the Tech Model Railroad Club and the MIT SAIL and Crossbar 5 and Mac and VIC-20 and Java and Mozilla, and so many of the wonderful gumdrops along my road to today, all rolled up into one product. Except that it’s cutting edge, Web-based, and highly network-savvy, just like the team behind it.

Resume.org

When I saw the job posting for a MAAS Developer Advocate on greenhouse, and I read through maas.io/docs, and read the position description…well, I didn’t even bother with a resume. Just wrote my snippets of experience under each of the requirements in the job description and mailed it in. As an Emacs org file. Long story short, I got the job, and I’m willing to do it for just as long as they’ll have me.

BTW, I’m Bill Wear, the Developer Advocate for MAAS.

Hello, World.

Talk to us today

Interested in running Ubuntu Desktop in your organisation?

Newsletter signup

Select topics you’re
interested in

In submitting this form, I confirm that I have read and agree to Canonical’s Privacy Notice and Privacy Policy.

Related posts

How to build ROS 2 Eloquent Snaps

The end of 2019 brings about the latest ROS 2 release – Eloquent Elusor. Despite an ever growing set of features and some changes throughout the ecosystem,...

Building a Rust snap by Example

There’s plenty of official documentation which details how to create snaps. We live in the copy/paste generation though. So lets walk through a real-world...

Juju 2.7: Enhanced k8s experience, improved networking and more

Canonical is proud to announce the availability of Juju 2.7. This new release introduces a range of exciting features and several improvements which enhance...