Lessons in software development from a 3 year old
March 12, 2008 at 8:20 pm In Getting Things Done, Rants, Work, 1 CommentI was sitting playing with my two daughters the other day, whilst reflecting on software development (as you do) and I found myself finding valuable lessons. It could have just been my brain looking for substance in-between block building and colouring in.
Lesson # 1, The lines are more of a guide when it comes to colouring in.
My daughter Holly is a firm believer in this principle, as it is clear from our shared attempts to colour in the penguins in her book. When I would pick penguin-like colours and apply them within the penguin-like outlines on the page, Holly would grab purple and apply liberally to it’s face. At first I tried to provide guidance to show her what I thought was a more realistic application of colour, but then as Holly insisted that her way was best I began to wonder if she didn’t have a point.
Sometimes when you are writing software you do think, “wouldn’t it be cool if instead of spitting out just an invoice from this method, it could also optionally spit out a pdf too”, thus giving your penguin an extra purple head. What Holly wanted was her penguin to look different to the spec. It is okay to stray outside the lines now and then as long as you colour in the penguin.
Lesson #2, Building with the blocks too small takes longer and makes weak towers.
Building towers is one of my favorite games, and as the control freak I am I tend to hog all the blocks and make elaborately balanced block multi-plexs with appendages and pointy bits. By carefully selecting all the blocks and arranging them just so, my towers were never very robust. Meanwhile Holly had gotten fed up with me not letting her have all the blocks, and she went about making a new tower out of the coffee table, books and a doll. My tower had a million pieces, hers had six. Mine fell over with a gentle tap. Her’s didn’t.
Sometimes you should pick the bigger blocks to build with. Don’t get too carried away custom building everything or another kid will just build a taller tower in half the time.
Lesson #3, Asking “why” 100 times is annoying but valuable.
While arranging the plastic farm animals about the plastic farm, I was trying to get my daughter to put all the cows in the fenced compounds (that I had just carefully constructed).
“Why Dad?”
“Because thats where cows live”
“But why?”
“Because they do”
“But why?”
“Ahh, because they always have”
“Why?”
“good question”
So we set the cows free, and still had fun. Challenge the status quo and you may find a pleasant surprise. Just because that’s how you have always done it doesn’t make it the best way. Especially when translating business processes into new software, making a screen perform like a paper form may not make the best sense.
Lesson #4, A horse built out of twigs and playdoh, is still a horse.
I was trying to make a realistic horse with realistic muscle texture in the playdoh, a real looking mane with carefully cut wool, small beads for eyes. Holly smashed one together in under a minute, with sticks for legs, a rolled lump of doh as the body, with another making a head. She provided the accompanying neighs and whinnies and was off galloping around the garden while I was still crafting hooves. For the purpose of the exercise she had her horse and it was doing the things horses do.
Understanding when enough detail is enough means you can get your horse out faster.
Lesson #5, Cuddles are cool.
No analogy. I just love cuddles with my girls.
Being a responsible human
January 4, 2008 at 4:06 pm In Life, Rants, No CommentsWhy do we all feel compelled to work work work, then consume consume consume? Work, consume, die. I have decided this year that there is a mean spirited campaign going on involving the worlds marketers, manufacturers, drug companies, real estate agents and banks. They all want us to consume more, spend more, be bigger. Its a great con really, how they all convince us we need the bigger house, the bigger car, the latest thing, and how can we do it, well you can borrow more and work harder and when you get the new house and better car and newer thing, it all changes again and you are convinced again that there is a better suburb, cooler widget, faster ride. Hell look at the Joneses.
So I am starting to look at the decisions I am making now and before doing anything I am asking myself “why am I here making this decision and who wants me to make it?”
I was in the hardware shop the other day and as I entered I was dazzled by the awesome display of outdoor living. Fantastic new garden furniture, chairs, bbqs and outdoor fireplaces. God imagine the life we could have, our furniture is ratty and the canvas on our oudoor chairs is worn, and the pictures in the brochures handed to me by a diligent attendant of opulence and leisure look really good. I could be lying in the sun all day long all year, all it costs me is a few thousand dollars, a small price to pay. I will just have to work hard to pay it off is all.
Hang on a minute, work hard, life of leisure. Thats a bit of a conundrum. How can you work hard and live a life of leisure both at the same time? They almost had me, close but no cigar, so instead I borrowed a friends water blaster, bought some new canvas, went home and water-blasted everything while Mel took apart our old and tired canvas chairs and cut and sewed the new canvas we bought. She revived the chairs and I revived the deck and furniture. Now it looks like a million dollars all for $50, the price of the replacement canvas, and 2 hours of my life. Also we are reducing our carbon footprint, we saved a kwila tree and I dont have to drive the old stuff to the tip.
So this year is the year of being a responsible human. I am starting a campaign to fight the fever of consumerism. It will be small and private but I might write about it from time to time. To start here is a quick list of, so be it, new years resolutions, hell why not. Im only 4 days late:
Read more, think more, be more
Do more to enhance my way of living without relying on buying crap
Grow a really impressive moustache
Buy less crap
Avoid marketing – this is tricky as it seems to be everywhere, YouTube, cereal boxes, in the news media, even your best friend with their new iPhone. They all want you to buy crap.
Be a better person – I have this one every year
Move more
Love more
Eat less
Hate less
Well that is all, start small I say.
Transformed
July 8, 2007 at 7:47 pm In Rants, distractions, stuff I like, No CommentsI saw the Transformers movie last night. I thought I would feel out of place in the theatre and was one of the first to sneak in, but everyone who followed was a late twenty to thirty-something all sneaking in to see if their favourite die cast friends from the 80′s. It was funny, fast, and full of robots beating the crap out of each other. Nice. However they could have spent a bit more time developing the characters and the special bond between Optimus and Megatron. Yes I am kidding. I loved all the subtle jokes of things being more than meets the eye, all the old wrecks throughout the film of the old model transformer cars, and the fact that the only time the Autobots needed to be robots in disguise they were somewhat conspicuous on Sam’s father’s back lawn.
Anyway a good laugh. And here is another
AIR, Flex, Ajax – How to tell what is better
July 5, 2007 at 8:36 am In Rants, Web, stuff I like, No CommentsI was asked the other day to provide my expert opinion (expert = someone who has written at least 2 lines of code before) on Apollo (now released as AIR) from Adobe and how it compares to Ajax , which to be honest I had to admit to at the time I had heard nothing about AIR. But I did some digging…
Quiz. Which is a better web:
a) Adobe AIR (Apollo)
b) Flex
c) Ajax
d) other
I didn’t have to dig long as there was a bit of hype out on the wires already about the developer release of AIR. However my first Google on it provided great insight into air con. After Googling a bit longer I found it at Adobe. Now I have a rule of thumb when it comes to dealing with the hype surrounding new software and frameworks, which is; I tend to back the spin free an non commercially hyped solution when it is there and robust enough to do the job. When I get into these debates I am often painted as the mac loving, open office jiving, eclipse coding open source lover I am. But I will be up front on this one, I would back independent Ajax tools over AIR, and here is why.
It appears there is a groundswell of support for Adobe’s line of web software, Flex and now Apollo. Flex is the gui you wished your web page always had when writing online software. As it blends in the best of flash you can clearly leverage of all of the flashy goodness such as tweening, smooth frame rates, video, audio, and so on. Flex packages up flash with common UI elements and makes the business of server client comms really easy. With all this “right” it does not make the “whats wrong” list is hard to forget. Here is a run down on the the three options, Flex, Apollo (AIR), and Ajax.
Flex
There is lots right with Flex, it is easy to use and develop in once you are up to speed. What’s wrong with Flex. It is a plug in. And that’s really it. It does not rely on the core functionality of your web browser, instead you need to download and install (and update) a client side application which is the Flash player. So considering you are sticking a plugin into a webpage you are not enhancing someone’s web experience, instead you are replacing it with a non-web based experience, where web = html and a web browser. In this new window within the browser page there is no guarantee that the experience will be consistent with how a user sees web pages. For example the back button doesn’t work like it should without breaking down and hacking your flash app to cope. The UI elements are non-os level elements which means they don’t work the same and follow the usual conventions without a lot of work (scrolling with the mouse wheel, cut and paste). There are no hyper links in the traditional sense, and google can’t easily index the pages. Now I have bee developing in Flash for the last 7 years and I agree you can overcome most of the above objections with tricks and knowhow, but it isn’t easy and Flash is supposed to be easy.
Flex has the power to re-invent the web browser, within the web browser which is a problem. Web browsers are written by people who know what they are doing, and you can’t say that about every Flex and Flash developer.
Pros: Cool, an easy framework to use once you are up to speed, supported
Cons: Reinvents perfectly good software, invents new UI conventions, doesn’t work like a web page should
AIR (formally Apollo)
This one does look interesting, I admit. Apollo (dammit AIR) is trying to get around all the issues and conflicts of having an application within another application that putting flex/flash in a browser creates. However they are now trying to slove the problem by taking the web browser out of the loop. To try AIR I had to install the AIR client first, then when I came across an AIR app online, I had to download it, then install it too.
The benefits of AIR are there for sure, off-line saving of content, a more integrated library of OS level tools (file uploads, access to web cams, address books), the layering of rich content over other existing web content. These are all really fantastic and welcome, but here is the rub. They are taking the web browser out of the loop to do it. AIR is really just a cross platform desktop widget maker.
I would say Adobe are making a 10 year investment into AIR in order to take it where they want to take it. As a cross platform widget creator it has a limited life. Agreed that at the time of writing the AIR demos I played with looked like they had been knocked together in 5 minutes so I will keep looking for better things to come.
Pros: Cross platform widget maker, nice OS level integration to other apps
Cons: Yet another install (x2), not a web experience – you run applications, too new
Ajax (with your choice of framework)
Now like all good reviewers, I have saved my preferred option till last. Ajax is a fairly standard concept these days and there are plenty of powerful Ajax libraries around like prototype and an extension of it , script.aculo.us and it is common place in web application frameworks all round. Ajax is a concept, it is not (un)necessarily software and this is where my comparison gets a little askew. However the point I want to make is this. Ajax lets you do the majority of what Flex and AIR (will) let you do and It uses the power of the web browser to do it. You don’t need to install anything, users have all they need in their web browser to use it. Ajax leverage’s off of xhtml and other industry norms (ehem) to provide a unified web experience. Where it falls short is where it needs to perform non-web specific tasks, like animation, video, and audio. A good Ajax app degrades gracefully also, which means in the worst case scenario a visitor can still click and submit forms. And that is all I really need to say about Ajax. It is a simple consistent set of libraries that don’t break the web paradigm (too much). Flex and AIR don’t just break the paradigm, they smash it and jump up and down on the pieces.
Sometimes paradigms need to be broken. But a user browsing a webpage is no looking for a new paradigm. They are looking for a web site that works consistently.
Now that I have that out of the way, there is one important flaw in my comparisons that I must point out. Flex, AIR and Ajax are all different things. They are not all apples. Flex is a Framework that uses HTML, Javascript and Flash. AIR is a desktop application that pretends (almost convincingly) to be a web browser. Ajax is an idea and a simple set of libraries to back it up. And anyone who knows me knows that I like simple.
A better web experience is all about providing a consistent web experience, and “web” to me means web based protocols and languages like HTTP, XHTML, Javascript and URLs. One day Flash will be donated to the community by Adobe and then it may become a standard feature of a web browsers user experience, but while the choice is between using standard browser based features enhanced with Javascript and clever community created libraries and using a commercial software tool that “plugs in” and/or replaces the web browser, well I will have to back the knowledge, and passion of the community over Adobe’s new tools.
MS getting mouse-less
March 30, 2007 at 7:40 am In Rants, No CommentsHere is an interesting vid from the MS research team. I wonder how tired you arms will get working in Photoshop?
Slow down!
March 13, 2007 at 9:19 pm In Rants, No CommentsGood slow is what we all need. Time = quality.
Carl Honore explains
Windows Vista – A Blast into the Future?
January 31, 2007 at 7:59 am In Rants, No CommentsHere is a pic from the Windows Vista launch in Wellington today (courtesy of the Dom Post).
Now it is photos like these that come back to haunt in 30 years time with the caption “remember when…” or “blast from the past” and your grand kids will have no shortage of dumb questions like:
Jimmy – Granny/Granddad,what’s with the funny display? Why is it like an old painting?
You – Well Jimmy, way back then we thought we were clever because we had slimmed down from a huge CRT screen to a slim flat panel LCD screen. At the time we thought it was a big leap for man kind but I guess we had no idea of the possibility of the augmented reality displays you use at school today that makes life your visible canvas. They are more like the e-paper we get advertising the Warehouse and KMart except you cant zoom and pan with your fingers, translate it, fold it, or mark it as spam.
Jimmy – The big box the display is sitting on? Is that to raise the screen higher so you reduce the glare of all the shiny surfaces?
You - Ahhhh, yes, no that is the CPU/Hard drive, ahh its the processor and AI unit, except it doesn’t have AI. It looks hilarious I know but back in my day each computer took up the size of a couple of shoe boxes. All the circuitry and processors had to be hard-wired to the display, the keyboard, the mouse (I will tell you about this some other time) and all sorts of things. All connected up with somethings called “cables”. That box is the same as the wristcomputer/watch you are wearing now. Didn’t you get that from your breakfast cereal box?
Jimmy - What’s that black slab of plastic with all the buttons on it?
You - Ha ha yes that’s a keyboard Jimmy. This is something that evolved from a typewriter which was… ah nevermind… but a keyboard was an ingenious device that was primarily designed to give you arthritis slowly over time, and secondly as a way of “typing” in information. It’s kind of like your tactile gesture reader you have in your pocket there but much bigger and harder to use.
Jimmy - What is the old lady doing on the computer?
You - Playing solitare.
Jimmy - What is on the screen? There are boxes everywhere. What does the software do?
You - Well back then we had just started using personal computers to control our music, tv, home security and fridge.
Jimmy - Fridge? Isn’t that silly?
You - Yes it was. But after 10 years of thinking it made sense to have a similar OS that could control any electronic device with a processor we started to see it happening in 2007.
Jimmy - Ahh so is this the rise of OS X we have learnt about so much in school.
You - Not quite yet. That came in 2008. This was an OS called “Vista” as in “hasta la vista”, you probably wont have been told anything of this. It is referred to as the Bad Years and AppleOvernet doesn’t like anyone talking of these days.
Jimmy – If you couldn’t touch the screen or have AR then how did you interact with the programs, did you have to use the keyboard?
You - No there was another torturous device we all used back then called a mouse. It moved a pointer around on the screen and allowed you to click on one thing at a time. It also caused RSI and meant that my generation couldn’t open a jar of jam unassisted. They were banned in 2010.
Jimmy – Wasn’t it all very heavy to carry around?
You - Ha ha ha no Jimmy. Although they were called personal computers you didn’t take them with you. We had laptops which were similar but much much smaller that fit the size of your lap, except they found that the heat from the laptops was making everyone sterile. Did you know your father was grown in a test tube? I had an accident with a Dell laptop battery exploding in my groin that meant that Granny and I couldn’t make our own GoogleTube porn any more.
The real reason why the Google bosses were in NZ
January 28, 2007 at 10:39 pm In Rants, No CommentsI have figured out the real reason for the Google bosses visiting NZ over xmas, it is all in the “Google Master Plan“. If you study the whiteboard diagram you can see that “buy New Zealand” is a crucial step, before “Robots that build other robots” and “the matrix”. Nice to know we are a piece of the machine.
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.
Valid XHTML and CSS. ^Top^

