Back when I was in school there was this class we had to take called "society, environment and corporation" or something along those lines.  Quite obviously this class was a clever prank played on the rest of the departments by the industrial economics department in which they made a good effort to round up all of their most un-gifted morons, cobble together a pathetic syllabus and then proceed to waste everyone's time for an entire semester actually teaching it.

Initially my group did take it seriously.  We labored long hours and handed in our paper on time and on spec.  The week after we were called into the TA's office where we were told that our paper barely achieved a passing grade.  I can't remember precisely what made me suspect that the teaching assistant wasn't the sharpest tool in the shed, but I remember that from that point on, nobody in my group took him, or the class, very seriously.

I distinctly remember my friend Finn Arne having that vague smile and tone of voice that in later years was mostly reserved for dealing with telemarketers.

The subsequent works that were handed in were all produced in the most slipshod manner imaginable: we'd skim the problem text, pick out terms with elevated TF-IDF, find the paragraphs in the textbook where these terms had similarly high TF-IDF and simply rewrite these paragraphs.  Without regard for what the problem really was.

The product was then "bullshit-expanded".

Bullshit expansion is the subtle art of expressing something with more words, yet without adding more information to it.  This is not as easy as it sounds.  At the peak of my ability I could turn a single sentence into two solid paragraphs of text.  And before you poo-poo this, people like John LeCarré have built entire careers on their ability to pump out pages of featureless fluff.

This was necessary because the halfwits who taught the class thought that a given problem solution required a certain number of words.

I'm not sure if we were called into the TA's office after handing in the second paper, but not only did we pass, the TA was impressed with us taking his class so seriously, or something to that effect.

In fact, the only negative remark we got the rest of the semester was when we noted that we had made use of IRC to communicate while solving one of the problem sets.  According to the TA "no serious business would ever use such an unprofessional mode of communication in the future".  They were truly educating the visionaries of the future here.

But I digress.

The reason I mention this is because I think Rachel Maddow has now innovated in this field.  The field of bullshit expansion.  Although her method does differ a bit.  Her technique is to take the entire body of what is known in the Chris Christie bridge scandal, add a near homeopathic amount of new information to this body of knowledge and then excrete another permutation of the discovered facts with shrill enthusiasm.

Yes, this news story is vitally important.  Which is why it would be nice if it took more than the merest speck of a comma to reiterate the entire bloody scandal with a high-pitched, shouty torrent of words. It is killing the story.


Do you even lift?

If you want to do important things, you should find something that is either on, or beyond, our current capabilities and do what was borderline impossible up until that point.  If you are more concerned with making money, you should lower your ambitions and shamelessly pump out highly derivative work in the hope that something is going to stick.

I have been in the software industry for a few decades now and it appears to be a constant that at any given time the vast majority of the industry is stuck in a group-think.  Everyone agrees on what is important.  In the 80s it was 4-gen systems.  In the 90s it was OO-everything.  In the 00s it was pragmatism (as a backlash to the insanely tedious process oriented nonsense of the mid to late 90s).

The current craze appears to be a mish-mash of business development ideas applied to software engineering in order to squeeze tons of cash out of shallow ideas that have a limited life-span.

Sure, it is exciting when people spend 3-6 months building something they can sell for a cubic meter of Benjamins.  I'd love to do that.  Mostly because it would mean I could pay people to do things I find important without having to convince anyone -- which is a tedious, undignified affair.  But I think it is fundamentally unhealthy when this is what we aspire to. Because it has more in common with winning the lottery than accomplishing anything really important. The ugly truth is that most startups do not get acquired for a billion dollars, most shallow products are just worthless nonsense and most of the people who build them aren't really that brilliant.  They are just lucky.

Beware of having lucky people trying to rationalize their luck into repeatable process postfact.

One of the greatest, truly worthless ideas of its time was Pointcast.  In essence a service that pushed advertising to screen-savers.  For a while in 1996, this was the biggest idea around and everyone was terribly excited.  At some point it was even one of the biggest traffic generators on the Internet -- pushing terabytes of advertising to screens that nobody was looking at.  I remember lots of people building copycat products and a guy I was working with felt we should drop everything we were working on and bet the farm on this.

Pointcast was, at one point, valued at a quarter of a billion dollars.  Then 100 million.  Then 10 million. And then nothing.

Pointcast wasn't important.  Anyone with half a brain back then should have been able to see that the product was bullshit and that it brought us absolutely no breakthroughs of any kind and it was trivial to rip off.  But most people didn't.  Most people were unable to tell a win in the lottery of Internet fads from creation of lasting value.

During the same years, Page & Brin wrote bunch of papers(1) on data-mining and IR and eventually built a search engine.

And before people who know sod-all about what Page & Brin did:  there was nothing easy about what they did.  They didn't start off with a minimum viable product and then iterate it into something that was successful.  They started by solving a handful of hard problems.  And then they solved a bunch more.  Including problems that every single one of their competitors found to be outside the scope of what they were doing.

(One example is their internal infrastructure from the early 00s which allowed them to speed up innovation.  Much of which was very un-traditional and required engineers and leaders with a flexible mind to do.  But also in terms of things like AdWords and AdSense -- which was invented independently multiple places at roughly the same time, but which was in some cases shouted down as "irrelevant distractions" by leaders without vision).

At the time there was no shortage of people who were ready to piss on what they were doing.  I can remember much of what was said about Google in the early years by people in the industry.  How pompous executives made fun of them because they didn't conform to the orthodoxy of the time -- which was portals.  One stop shops to capture and hold audiences.   Horribly ugly things filled with desperate salesmanship and terribly packaged content.

Everyone knew this was the way to do Internet services.

You can, as I mentioned earlier, make a lot of Benjamins by winning the Internet lottery and become an overnight hit.  With audiences numbering in the hundreds of millions, and sometimes billions, things that become popular can become very valuable.  But it is a lottery.  And we tend to focus only on the winners -- not the thousands upon thousands of losers.

And we do not focus at all on the substance these "winners" leave behind.

If you are a young developer I would advise you to seek out deep challenges.  Solve hard problems. Use hard science, or at least apply your education to practical problems where you might have an edge.  Sure, you should buy the occasional lottery ticket, and sure you can have some commercial success by timing Internet fads, but if you can, you should try to do some heavy lifting every now and then.

(1) The first time I heard about Sergey Brin was in 1997 when I read his paper on "Dynamic Itemset Counting": http://www2.cs.uregina.ca/~dbd/cs831/notes/itemsets/DIC.html . At the time a friend of mine was building an online book-store and I spent a weekend figuring out how he might implement efficient recommendations for he bookstore.  Of course, he never did, but at least I learned something by writing a people-who-bought-this-book-also-bought-these-books recommender based on what I learned from reading those papers.


Iterative development and physical objects.

Decades ago, programming a computer consisted of punching small holes in paper cards and feeding them into a reader.  Admittedly I am old, but I am not old enough to have experienced what must have been a frustratingly tedious process.  I'm not sure I would have become a programmer if I had been confronted with the tedious business of writing my programs out on paper and then punch out cards. Writing programs back then required a lot of up front planning -- and since computers were expensive and rare, everyone I have spoken to who programmed computers in this manner emphasise that computer time was a limited resource.

It wasn't exactly a process that invited iteration.  You actually needed a fairly good grasp of what you were going to do long before you got around to any of the doing.

Fast forward a few decades and complete religions are erected around the idea of not having the faintest grasp of what you are doing -- but doing it anyway.   You just start writing code, take stock of where you are and then you massage the code some more, iteratively, until it does what you want it to -- or perhaps even something useful you didn't originally think of, but which you ended up doing because the road just took you there.

It really took off a little over a decade ago when all the frightfully boring process oriented people were overrun by the unwashed pragmatists.  People came up with macho names for this recklessness, such as "extreme programming", or worse.  (This is what happens when pale geeks with no upper-body strength read too many fantasy novels).

The 2000s software engineering methodologies can be summarized about "how about we stop talking and just do stuff until it works".  It was a glorious time.

Eventually we arrived at ways of working that departed completely from the realm of computer engineering and landed squarely in business development.  The hip people don't prototype.  They make "minimum viable products".  Which is great if you have absolutely no idea what you are doing business-wise, but appears to lead to questionable software.  Mainly because the focus is on "minimum" and "product" and not so much "viable".  The "viable" is more of a business development aspect.

And that is okay when you are prepared to throw away all your software and start over once your product achieves traction, but sadly, management cultures are striving to catch up.  Managers love the speed with which the illusion of a product arrives -- but few are prepared to face the harsh reality that sets in once you try to "iterate" over a wobbly, chaotic, slapped together foundation.  Management culture is always last to catch up I guess.

But I digress.  I was going to talk about physical objects.

Up until this point, designing physical objects was a bit like dealing with those tedious punch-cards. You needed a plan.  You needed to know what you were doing.  You needed to commit to something and then work long and hard and spend lots of cash to get from idea to mass production.  Because you had to make lots of widgets to eat up the tooling cost -- nobody makes a toilet roll holder with an FM radio and a telephone just to manufacture five of them.

Up to this point, physical objects made from plastics or metal were largely made by people who knew how to design things and who had access to lots of special and very costly toys.  Expensive CAD systems, horribly expensive CAM systems to compute optimum toolpaths, obscenely expensive 5 axis CNC machines to create the molds, materials experts that can pick the right material, plants to do injection molding etc etc.

Process heavy.  Not exactly processes conducive to rapid iteration.

Until affordable 3D printers and 3D design software started popping up.

Sure, 3D printers have existed for a couple of decades now, but their migration into the hands of the unwashed pragmatists has taken a while -- for a number of reasons that are material for several good, long rants.   And while monied engineering firms have used them to do rapid protyping and iteration, these people were largely ... well, engineers.  People who knew what they were doing in the first place.  (Well, that's the general idea anyway).

What we are seeing now is people who have no idea what they are doing rapidly iterating physical designs.  You no longer need to plan when you are going to make something. You no longer need a fully formed idea before starting to build something.  You just do it.  You just start with a flimsy idea and you go from there.  If it doesn't work, you do it again.  You do and you learn.

Iteration is powerful.  If you can iterate fast, it doesn't matter if you start out without a clue and doing all the wrong things.  Because you can try out a bunch of ideas at very little cost and within a very short time-span.

What has happened to software is happening to physical objects.  The universe of people who will be able to design physical dodads is exploding.

(This blog posting was inspired by a recent blog posting by Hans Jørgen Grimstad.  He is building his own 3D printer and he is doing it by iterating.  The XY-axis of his printer is now at revision 87)


Electric cars, change and premature demands.

When the first electric cars started to see somewhat widespread adoption, I have to admit that I was a skeptic.  All of the cars on the market, without exception, were fairly rubbish vehicles.  Terrible range, ugly design, bad performance and a technical step back compared to even mediocre regular cars.  

Burning hydrocarbons provides a very compact and versatile source of energy.   With just 30-40kg of fuel and a light right foot you can easily travel 500km.  That is pretty hard to beat.  And in just the last decade, the petrol engine became almost twice as efficient as it used to be.

Hybrid cars provided a somewhat more attractive alternative for most consumers, but they represent a fairly pointless distraction.  They are still fueled primarily by hydrocarbons, they are more complex than either electric or hydrocarbon-fueled cars and they are more expensive to manufacture.   You also do not need an engineering degree to realize that whenever you have a system that transforms energy from one form to another, there will be losses.

At this stage it is important to realize that the job of electric cars on the market isn't to save the environment -- it is to make us take the first steps on a long programme to develop sustainable personal transport.  Focusing solely on the environmental impact of the car is wildly premature;  electric cars are going to have large carbon (and energy) footprints both in production and in use for years to come -- and we just have to accept that.

The first goal we have to accomplish is to make electric cars that are fit to be the primary vehicle of consumers.  So far, electric cars have only been a viable option as a second car for people who can afford to have more than one vehicle.  This implies that electric cars have to be more attractive for consumers than their hydrocarbon-powered alternatives.  People have to want electric cars and to accomplish that they have to be better cars than most hydrocarbon-fueled cars.

From an energy-point of view the important aspect of electric cars is to de-couple the use of energy from energy production.  A petrol car will only ever run on hydrocarbons that need to be pumped out of the ground or bio-fuels that tax the environment.  An electric car can be powered by any source of electricity.

We will get better systems for storage and transfer of electrical energy, but it will take time and investment.  It took the petrol engine a century to become somewhat efficient.  It won't take that long to build better batteries, but it won't happen overnight.  And it won't happen unless consumers buy electric cars.



Upon re-reading Walter Isaacsons book about Steve Jobs I went back and looked at some of the public appearances that were mentioned in the book.  The book offers descriptions of several appearances, and even makes value judgements -- so rather than taking Isaacson's word for it I decided to judge for myself.

When Steve Jobs came back to Apple, he described lots of people as bozos.  Now, Mr Jobs had a tendency to be very binary in his relationship with other people -- they were either bozons or they were geniuses.  (And the same person could fall in either category depending on what day it was).

When you see it on the page this appears to be a (perhaps unnecessarily) harsh characterisation.  Was it?  Judge for yourself.

The first is a clip showing Gil Amelio and then Steve Jobs at MacWorld Expo 1997.  Gil Amelio held the keynote speech at MacWorld.  Before the event Mr Amelio had some kind of dispute with his speech-writers and he turned up unprepared -- thinking he could improvise his speech.  The book described his performance as "bumbling", painful to watch, and that he frequently lost his train of thought.

In retrospect it is easy to forgive Jobs for thinking that Gil Amelio was unfit to run the company.  He was.  Not just because he incredibly inarticulate (which is almost offensive if you give speeches that are several hours long) but because if the CEO lacks enthusiasm for the products:  why would you expect the customers to feel any enthusiasm.

The second clip you should watch is of Gil Amelio shortly after becoming the CEO for Apple in 1996. This address was supposed to inspire confidence in both customers and shareholders:

The third clip you might want to look at is a product presentation from 1996 -- before Steve Jobs came back and took over.  There are several things to notice in this video.  For one I think most people have forgotten just how bad Apple products were in the 90s.  Remember, the OS running on those machines was far less advanced and far less responsive than Windows was at the same time.   Visually more polished, but built on stone age technology.

This was also before Jobs unchained Jonathan Ive from whatever dungeon he had been trapped in within the bowels of Apple.  It is almost hard to imagine that Apple spent an entire decade making a rather confusing array of low quality, beige boxes.

It is hard to even fathom that we are talking about the same company.

It is striking what a huge difference passion makes.  People tend to focus on Jobs' abrasive personality, and some people might even feel that his behaviour legitimises being unpleasant to people you disagree with.  But I think they key thing to learn from these videos is what a difference passion makes.

If you do not have passion people will notice.  And if you do not have passion for what you do:  why turn up for work at all?