The Command Line is Mightier than the Rubber Bullet (fear me)

A few months ago, fearing terminal unemployment, I emailed some of my coder friends a query: “So, things were a no-go with writing, law, medicine. Hell I even looked into joining the army. I’m considering computers. Where should I start?”

They sent me links. Free online books, open-source software, configuration tricks. And so with their advice, “Have fun with it. Everyone had to start somewhere, so when you don’t get it initially, go easy on yourself. Just stay at it.”

I dove in. I love it, and will wax poetic about the confounding miracle of coding later.

And as I studied, some strange things happened.

A man burned himself to death in Tunisia. A man with shocking white hair shoved a digital mirror of our government’s activity in our face. He in turn was attacked for doing so by another hacker. Other hackers responded, engaging in denial-of-service attacks. The major media outlets, for the most part glossed over an emerging story of a wave of change. This wasn’t fueled by traditional journalism, nor exclusively by social media; but by a confounding soup of factors.

The trifecta of causalities will be argued for years. Was it the internet? Thirty years of oppression? Civil disobedience?

We blithely toast one factor or the other while in the background, enabling the very discussion, the code hums along.

A mesh of technologies enabled the protesters. Each protester armed with a video-enabled phone acted as a globally-empowered witness, arguably preventing bloodshed on a large scale. Jan Wong, in Red China Blues tells a bone-chilling and horrifying first person account of the massacre at Tienanmen Square. And how once the bright lights of the global news cameras were suppressed, the army made its move.

But the odd thing was that after a little while, like 40 minutes, an hour, people would gather their nerve again and crawl back to the corner and start screaming at the soldiers. … The commander would eventually give another signal, and the soldiers would raise their rifles again, and the people go, “Oh, my God!,” and they would run away, and they’d shoot more in the backs. This went on more than half a dozen times in the day.

In contrast, when Mubarak announced that he would remain defiant, the protesters in Egypt were quickly able to disseminate the meme that he was trying to incite violence to justify a crackdown. The massacre that everyone expected to happen on the following day didn’t happen.

An important point: had there been a violent crackdown, the digitally-assisted ‘smart-crowd’ would likely have been just as vulnerable to the military’s use of organized force as the protesters in China. The Egyptian government had already demonstrated that it could shut down communication networks. And the Egyptian people, like the Chinese have been indoctrinated with an instinctual trust of the military. That this sort of trust can cost lives, has already sadly been demonstrated by the events at Tienanmen:

The people in the square thought that they were using rubber bullets, because they held up their coats or a jacket to block the bullets. And of course they weren’t rubber bullets; they were real.

But now, rubber bullets or real, these technologies played a preventative role. Mubarak faced a simple choice. He could step down peacefully, or become quite possibly the world’s most instantly documented mass murderer in history.

This is arguably the first time that a revolution has been orchestrated via digital means. Anyone who was paying attention knew that on January 25th, protesters would begin taking to the streets in Egypt. Tunis, on the 20th.

If you are like me, there is an element of mystery to all of this. What actually, is happening behind the scenes? I conjure up pictures of what I know of “hackers.” Which, because I am bothered by the word, I will simply refer to as “coders” from now on. The be-speckled, brainy Jeff Goldblum writes a “virus” that helps us destroy an alien invasion. Mathew Broderick, a kid in a room full of technological toys, accidentally threatens the world with global annihilation. Angelina Jolie types on a stickered keyboard wearing a skin-tight something or the other.

It is a brainiac world filled with cocky hipsters. They smirk, cock-eyed at their screens, wearing designer glasses reflecting the light from ridiculously cool looking computer monitors.

Pop culture doesn’t take us very far into introducing us into this world. A pathetic rendering, if anything: one that does not serve us. If anything, it only furthers Neal Stephenson’s prediction of a hidden priesthood elite in his 1992 book, Snow Crash:
(A dark dystopian science fiction novel much loved in the geek world that analyses the rise of the information age.)

Rife’s key realization was that there’s no difference between modem culture and Sumerian. We have a huge workforce that is illiterate or alliterate and relies on TV – which is sort of an oral tradition. And we have a small, extremely literate power elite – the people who go into the Metaverse, basically – who understand that information is power, and who control society because they have this semi-mystical ability to speak magic computer languages.

We all face a choice. Join that priesthood, or be subject to it. That you are reading this, consider yourself lucky even have that choice in front of you.

We could waste our time speculating whether or not English will maintain its hold in the coming century as the lingua franca, or if it will be Mandarin.

There will be two. The one spoken by the masses, the other will be various dialects based off of C, Java, Erlang, Python, and Ruby.

They will be the lingua potere. The lingua energia. The lingua autorità.

One can sit, paralyzed and watch all of this blow past. Even the most advanced Excel user merely skims across the surface of her machine, and is forced to defer her power to the “IT Department.” (There’s an excel trick in that article. Having spent hundreds of hours with Excel, it was amusing to read of journalists being held up by an Excel-imposed limitation. Something so simple.) In the course of a business day, how many problems are encountered and then circumvented simply because one doesn’t have the computer skill to solve them?

Microsoft has infantilized our growth into true computer literacy. I paint things with a broad brush here, but I’m arguing for a deeper look into these machines we rely on. The consumer has demanded easy to learn, easy to use software and the market has replied. Coders too, have followed this trend, and we are in the midst of the rise human-readable code. And with this rise, we are given the opportunity to empower many more people with computer programming.

Put bluntly, having a long list of ‘software known’ on one’s resume is no longer insurance from being outsourced. One can continue acquiring various proprietary software packages, or one can grow up and learn to code.

Let’s take a closer look. I got lucky and found a possible starting point for those of us who don’t have computer engineering degrees. It does not happen overnight. It takes work. But most surprisingly, it is fun. There is a simple, innate human joy in creating things. Coding is the ultimate set of tinker toys to play with.

_why’s Poignant Guide to Ruby. A free online book.

“_why the lucky stiff” was a hacker who came along and wrote quite possibly the most funny and beautiful technical manual ever written in the history of man. It gave slack-jawed people with humanities degrees, like me, the key to understanding computer programming. He was passionate about making the world of computers accessible to people, and wrote from the idea of, “how would I teach this to a twelve year old?”

An excerpt:

There’s very little padding here. He throws you right in. And talking to some coders, the lessons he teaches are extremely valuable. My brother, a full time lawyer who has been treating it “like my evening sudoku” began writing cool programs after just a month.

I’m a few months in and banging my head against “Rails” which allows you to build completely functional Enterprise scale websites in a fraction of the time that it used to take. (Rails engineers and their capabilities are scary.)

I have been undergoing a transformation. Long hours of study. Long hours staring slack-jawed at the screen feeling like someone has planted a spork in my temple. But then comes the times where I experience flow. I go to my command line and execute my program. It runs. It does amazing, beautiful things. I experience a moment, looking at the code, and say to myself, “My God it’s full of stars.”

It is not the cold, dry, boring, incomprehensible world that has been depicted. It is something beautiful. Empowering. I am becoming something of a “ruby-empowered-individual.” Not a computer whiz-bang “hacker,” but no longer a depressed writer waking up to the fact that his writing degree amounts to a hill of beans. I am becoming something in between.

Potentially, like in this example, someone who can build and deploy a website that helps flood victims in hours.

After that, on the Thursday afternoon before the event, Phillip Calçado, Ben Barnard and I set off on a mission against the clock: we had a little over 48 hours to develop, test and deploy an application that was expected to handle thousands of users. Not only that but an application that, should it fail, would prevent millions of dollars from reaching the people in need in Queensland. This was a great responsibility but we knew we could do it.

It is a difficult road. And I swing between elation and doubt more times in a day than I can count. But, it is this potentiality that keeps me going in my studies. That and, my coder friends tell me that it’s maybe the one industry in this country where there is some serious growth. That it is helping enable political revolutions and powering flood-victim telethons, only underscores the point.

(Some of my gossy, newb code. A little multiple-player internet-text game where the players are baby seals having adventures. Can you guess what it does when someone types the command “berserker?”)

I won’t de-jargon this. But a short description of what happens is,

The computer creates some objects with randomly selected adjectives and nouns from arrays(organized lists) I’ve made. Thus, if a player does this once, their baby seal might end up wearing a shag-carpeted football helmet. Another time, they might end up with a cute little plush viking dragonhelm. Yes. It’s a very silly little game. But generally, building little games to make the materials fun is a great strategy for learning. Quoting a coder who enjoys being part of the top 1% of the world’s income disparity, “We worked on that silly game for two and a half years. Nothing ever came of it but we came out of the process as extremely formidable C Coders.”

So yes. I’ve devolved from talking about revolutions to baby seals wearing football helmets. But I feel like I should end on these two points and hopefully tie things together.

1. Sitting down and learning code, I’m not trying to write the next Facebook or Twitter. I’m picking up neat little tools that are extremely effective at getting the job done.

You want to enjoy life, don’t you? If you get your job done quickly and your job is fun, that’s good isn’t it? That’s the purpose of life, partly. Your life is better.
I want to solve problems I meet in the daily life by using computers, so I need to write programs. By using Ruby, I want to concentrate the things I do, not the magical rules of the language, like starting with public void something something something to say, “print hello world.” I just want to say, “print this!” I don’t want all the surrounding magic keywords. I just want to concentrate on the task. That’s the basic idea. So I have tried to make Ruby code concise and succinct.

From “A Conversation with Yukihiro Matsumoto, Part I

2. Recently it came to light that the protests in Egypt were in part coordinated by a Google Executive who used a Facebook Page to help organize the protests. That is an example of ‘democratized-computer-empowerment.’

I wonder at the prospect of 1,000 Facebooks. Of censors in corrupt states playing futile games of wack-a-mole. The more people who know how to implement and deliver information from the command-line level, the better for democracy.

If you’re like me, for years you’ve probably had the nagging feeling that you should maybe “check this stuff out.” It’s opaque. The barriers to entry can seem insurmountable. Hopefully, this encourages you to push the door open.

The more people who know this stuff, the better.

There is no shortage of learning materials out there. For free. And the language itself is a free download if it already isn’t hibernating away in some corner of your computer. You may owe it to yourself to take a look.

http://ruby-doc.org/
The go-to resource.http://mislav.uniqpath.com/poignant-guide/book/
_why’s book. Learning some of the central concepts of computer programming made fun.

http://ruby-doc.org/docs/ProgrammingRuby/
Known lovingly as, “The Pick Axe.” The definitive, professional guide.

http://railsforzombies.org/
Rails is an open source web application framework. Rails for Zombies is a fun set of introductory tutorials where you build a simple Twitter app.

http://ruby.meetup.com/
Maybe the most important thing is finding friendly people to help you along the way. The Ruby community is notoriously friendly and helpful to people getting their start.

http://heroku.com/
Just as Rails was developed to take the headaches out of web architecture, Heroku was developed to take the headaches out of deployment.

http://jquery.com/
Makes those websites pretty.

https://github.com/
Why are those techies so quiet on Facebook? It’s because they’re posting here.

http://news.ycombinator.com/
Hacker news