General purpose computing is under attack. Watch this presentation from Cory Doctorow and read this post from Read Write Web for the backdrop.
From the Read Write Web article:
Doctorow says that we haven't lost the war on general purpose computing, "but we have to win the copyright war first if we want to keep the Internet and the PC free and open." I don't disagree that winning the copyright war is important, but the first priority needs to be convincing the public at large that general purpose computing is important in the first place. Failing that, we are always going to be fighting a losing battle.
When I look at the perception of general purpose computing in the eyes of the public at large, what I see is a population who sort of knows it exists, but is unable to grasp the fundamentals or the importance. The good news in my observation is that they sort of know it exists, as opposed to being completely ignorant. Of course my evidence is my purely anecdotal experience based on interactions with luddite friends, family members, and coworkers - but that experience seems to be broad enough to be valid for anyone in the Western world.
If this "war" on general purpose computing is to be won by our side, the number one thing that has to happen is a ground up push for education in what computing really means and the level of enablement it provides everyone who has access to it; that number of people happens to be very large now compared to when I first got ahold of a computer in 1997.
The analog to the state of understanding computing is science before it became a mainstay in elementary education. Science is presently introduced to our children as a basic primitive building block of their education at a very early age. Of course, it has not always been this way. When the education system was all about "readin', writin', and 'rithmetic" there was at least a loose knowledge that scientific practices existed even though it may not have been thoroughly accepted or thought of as a tool to better understand the world and enabled the create marvelous things that have advanced human society.
We are at that stage with computing. The population, by in large, knows it exists but does not know what it entails. If that is to change, our young people must learn how to use computers at a young age. By "learn how to use computers" I mean not learning how to simply type and use Microsoft Excel and Word in elementary school for their homework or learn what appropriate email etiquette is, but be enabled to learn how to do things like write a program or understanding how operating systems and hardware works - even if both of those collections of knowledge are only understood at their rudimentary levels. Of course, the skill learned in this aspect of a young person's education isn't going to be a mainstay in everyone's day to day work, just like science isn't (especially in mine). But it is important that the foundation for what computing is, what it means, and what it allows be fully understood. We understand that for science... now it is time to do the same for computing in our education system.
But how? I don't have the answers, but things like NYC's new high school for Software Engineering or a program like Byte Works in St. Louis seem to be absolutely wonderful foundations to start and learn from.
We don't need no stinkin' resolutions!
It is the first day of 2012 and for about five seconds this morning I thought about "resolutions" for myself. For two of those seconds I considered what resolutions I would have if I believed in resolutions. For the remaining three seconds I uttered the phrase "we don't need no stinking resolutions!".
If a service doesn’t have a way for me to support it directly, and isn’t depending on my support, I’m going to be very wary of depending on it. -- From "2011 The Year the Free Ride Died" on ReadWriteCloud
I'm watching Cesar Millan on National Geographic TV right now. This is a great example of a man who followed his passions. What an example to go by.
He loves dogs.
He loves helping dogs.
He makes helping dogs his life.
He makes helping other people with their dogs his life.
… and he seems to always have a smile on when he does it. Even if it isn't an external smile, watching him work with dogs reveals an intense focus that is only possible when a smile exists on the inside.
The average dog is a nicer person than the average person.
-- Andy Rooney
Andy Rooney died yesterday. He represented one of the few things I enjoy about modern television - a dry, sarcastic (but straightforward), humorous approach to the current state of our world. He was essentially the only thing worth viewing on major media news television as well.
May he Rest In Peace.
Recently I've been reading some of Tim Ferriss' work. I started with the Four Hour Workweek. It was not as nearly as cathartic as I expected, since I kind of do some of the things he discusses there anyway and many of the other things he suggests i wouldn't touch due to personal aversions (excessive travel, trusting a virtual assistant with lots of minutiae that requires access to my sensitive information). However, it was a damn good read nonetheless and encouraged me to try out his writing in Four Hour Body.
A quote from Nolan Bushnell; you know, the guy who gave us Atari:
The critical ingredient is getting off your butt and doing something. It’s as simple as that. A lot of people have ideas, but there are few who decide to do something about them now. Not tomorrow. Not next week. But today.
This made me think back to previous post regarding the Social Network and Mark Zuckerberg. It's all about getting off your arse and executing. Thinking and talking about ideas is necessary to a degree, but unless you are in your editor writing code or in your terminal working on a system, you are not progressing your skills or your projects whatsoever. Talk is cheap. Action is priceless.
I read a column on jaguars.com by their media guy, Vic Ketchman, who does a rather entertaining and witty Q&A with the fans. One of the more frequently occuring topics is that of what makes a team more successful - having better players or better strategies. Vic's canned answer for this always includes "it is players, not plays" that win the game.
I agree with Vic. For example, the West Coast offense is fine and dandy, but you need a QB intelligent enough to orchestrate it and receivers who are tough enough to run routes over the middle yet still athletic enough to get yards after the catch. If Pittsburgh's defenses from the last 15 years were so successful, why didn't everyone who copied the blitzing and zone-blitzing scheme out of a 3-4 have as good of a defense? Because the Steelers always had great personnel to run that defense.
So what in the hell does this have to do with software development? Just substitute some words around.
for fap in ["Languages","Platforms","IDEs or Editors","Methodology"]: print "It is engineers, not " + fap + "."
The constant jabbering and grandstanding I see loudmouthed developers, evangelists, and vendors make is that adopting $x is the key to being successful. I have heard that claim made regarding ESBs, software methodologies, unit testing that demanded 100% coverage, IDEs and so on. Unfortunately, no one has yet to invent a tool or process whereby you can stick a group of mediocre typists who can write hello world in a room, have them click a few buttons, and out comes a working software system. If that were true, then being a software engineering truly would become the equivalent of being a McDonalds floor employee of our age.
It is all about talent. Markus Karg said it best in this near diatribe he posted to java.net:
Go back to the roots! First, you have to reduce product development to a few core people, located in a first world country. That [sic] people have to be experts. They have to be well paid (the major reason why lots of Sun people quit with Oracle was about reduced income, BTW). Those people have to have enough time and equipment and silence. Don't bother them with revenue, release dates, and so on. Just wait until the software is done. No need for thousands of engineers in India. No need for "taming the masses" things like XP, Scrum and Kanban. Just let them sit in a quiet chamber and wait and do not disturb.
Smart, talented, and motivated engineers, sitting in a room with a singular focus is what any software project needs. The tools become irrelevant, though they'll be best chosen to meet the personalities and preferences of the engineers The point is that the tools are chosen to match the talent - much like football plays and strategies are chosen to match the personnel. In both football and software engineering, if you have to adopt tools or techniques to make up for your lack of talent, then you've lost before you started the game.
I'm a huge David Fincher fan, and after yesterday my infatuation with his movies still continues. Let's just say The Social Network profoundly reinforced some of my core beliefs while at the same time being my type of movie - dark and complex.