In Science Fiction, there's really only two types of engineers that matter - embodied by Montgomery Scott and Geordie La Forge, respectively. (Sure, there's Kaylee from Firefly, R2D2 is good in a fix ... but you'll see where I'm going in a second).
You either get stuff done, or you don't. Anyone who doesn't get stuff done simply should not be calling themselves an engineer. And of those who do, you have the ones who say "It'll take a week" and then do it in an hour (the Scotty approach) and those who say "It'll take a week" and it takes a week (The La Forges).
While I have great respect for the Scot, that's simply not how I roll - padding my estimates leads to a scenario where all estimates are simply ignored, because everyone knows they are padded.
Which leaves me in the current situation, where nearly every estimate I give appears to be met with incredulity and ridicule - even when they are repeatedly borne out, as any later analysis can demonstrate.
So - how do you, as an engineer, handle your estimates? And when you give an estimate, and someone argues with the numbers - how do you approach that conversation?
Tuesday, February 28, 2012
Friday, February 24, 2012
Those who can, teach
I'm probably coming pretty late to the party, but I've been working through the Udacity online "Introduction to AI and Robotics" course ( http://www.udacity.com/overview/Course/cs373 ) the last few days, and it is, in a word, fantastic. This is truly the best way I've seen or found to learn something technical. The tools and website are absolutely fantastic. The first course unit takes a couple of hours to work through, and it is split up into bitesize (1-2 minute) youtube clips, interspersed with "enter your answer" pages and programming tests, in the browser IDE. Everything is done in the browser window. If you don't understand a section of the presentation - simply rewind or restart that youtube clip! If you need to refer back to a previous section - click on the link! If you don't get what's required for a test - look ahead, see the answer, then go back and re-take the test!
As a platform for education, it's a fundamentally revolutionary step - yes, I know, Khan academy is moving us in this direction, and MIT do online courses, etc - but try it, you'll see what I mean. However, this isn't the most important part of the course - the most important part of the course is the content and the teachers.
These courses are being taught (and introduced) by the people who are at the top of their field - literally the best people in the world right now to teach the material. For example, the CS373 course on artificial intelligence and robotics is being taught by Sebastian Thrun, who has been a driving force behind the Google AI car team and the Darpa challenge winners for automated vehicles. This potentially shifts the adage from "those who can't ..." to "those who can ...". It's a hugely efficient use of their time (given anyone in this situation will certainly be passing on some of their knowledge to their team and upcoming replacements at some point) to be able to, instead, pass it on to anyone in the world who wishes to learn from the masters of the art. This replaces books, written by people at the top of their game, hopefully disseminated to some degree (but invariably at cost in time, space and money) with a "record once, play back infinitely" course for all.
It's bleeding great.
As a platform for education, it's a fundamentally revolutionary step - yes, I know, Khan academy is moving us in this direction, and MIT do online courses, etc - but try it, you'll see what I mean. However, this isn't the most important part of the course - the most important part of the course is the content and the teachers.
These courses are being taught (and introduced) by the people who are at the top of their field - literally the best people in the world right now to teach the material. For example, the CS373 course on artificial intelligence and robotics is being taught by Sebastian Thrun, who has been a driving force behind the Google AI car team and the Darpa challenge winners for automated vehicles. This potentially shifts the adage from "those who can't ..." to "those who can ...". It's a hugely efficient use of their time (given anyone in this situation will certainly be passing on some of their knowledge to their team and upcoming replacements at some point) to be able to, instead, pass it on to anyone in the world who wishes to learn from the masters of the art. This replaces books, written by people at the top of their game, hopefully disseminated to some degree (but invariably at cost in time, space and money) with a "record once, play back infinitely" course for all.
It's bleeding great.
Sunday, January 22, 2012
Weapon of choice
After 7 months of fairly hardcore OSX usage (on a relatively underpowered Mac Mini) I'm finding using Windows both less relevant and, given my latest project focus, harder to use as a default development platform. More and more of the tools and packages I want to use are freeware, and the more I dig into open source hardware, the more I realise that using Windows to develop in is not the best choice. And the correct choice is, obviously - Unix.
Not OSX? I hear you whisper ... Oh yes, you wanted me to say that. Except the really obvious thing I've found over the last 7 months is that I spend a lot of my time in a terminal window, ssh'd into a remote box somewhere doing stuff the old fashioned way. In fact, my machine is becoming increasingly less relevant - the relevant machine is in the cloud, or in that cupboard over there, or under the stairs ... The glitzy GUI is really a thin veneer over a command line which takes me to where I want to actually be. Increasingly, I'm finding my windows-centric CLI skills give more cumbersome results than the equivalent linux results. I've got used to using Bash and Python for the small stuff, I can just about steer Vim between file creation and edits and I'm getting comfortable with greps, finds and some of the other linux CLI utils. OSX makes this effectively seemless, helping me transition between my Mac and a remote Ubuntu/BusyBox/whatever distro. Windows just puts spanners in the way - the file system is different, the tools for security are different, all of the commandline tools I'm getting used to work slightly differently.
So I'm biting the bullet, and from this month, I'll be using raw Ubuntu for my local development. Sure, I could set up a VM or a box in the cloud, but this means I can stop scratching my head and fighting the urge to work inside the prison I've built for myself. No More spending an hour hunting for the Windows install of something before giving up and switching to a different language or my Ubuntu VM.
Once that's set up, I'll be delving into CMUSphinx4, PocketSphinx and Arduino. After that, world domination.
Not OSX? I hear you whisper ... Oh yes, you wanted me to say that. Except the really obvious thing I've found over the last 7 months is that I spend a lot of my time in a terminal window, ssh'd into a remote box somewhere doing stuff the old fashioned way. In fact, my machine is becoming increasingly less relevant - the relevant machine is in the cloud, or in that cupboard over there, or under the stairs ... The glitzy GUI is really a thin veneer over a command line which takes me to where I want to actually be. Increasingly, I'm finding my windows-centric CLI skills give more cumbersome results than the equivalent linux results. I've got used to using Bash and Python for the small stuff, I can just about steer Vim between file creation and edits and I'm getting comfortable with greps, finds and some of the other linux CLI utils. OSX makes this effectively seemless, helping me transition between my Mac and a remote Ubuntu/BusyBox/whatever distro. Windows just puts spanners in the way - the file system is different, the tools for security are different, all of the commandline tools I'm getting used to work slightly differently.
So I'm biting the bullet, and from this month, I'll be using raw Ubuntu for my local development. Sure, I could set up a VM or a box in the cloud, but this means I can stop scratching my head and fighting the urge to work inside the prison I've built for myself. No More spending an hour hunting for the Windows install of something before giving up and switching to a different language or my Ubuntu VM.
Once that's set up, I'll be delving into CMUSphinx4, PocketSphinx and Arduino. After that, world domination.
Saturday, January 21, 2012
Tinkering
I've recently bought an Arduino Uno and a small selection of components. I have high hopes that my dream of a voice-controlled house can take a step closer to reality - the only remaining missing piece of the puzzle is the time and inclination to glue everything together from software stack down to the box the end result goes in for my first prototype. There's something quite primal about making motors and sensors work - tapping in some numbers on a keyboard and watching a servo spin is darned cool.
Thursday, November 3, 2011
Something is rotten in the state of Denmark
This post is in no way endorsed by Boss Alien, and is entirely my own mini rant.
Boss Alien has had the pleasure over the last six (count em!) months to be developing some really splendiferous products for iOS. Mobile hardware (including phones and tablets) is an obvious growth area in the next decade - if you think that smartphone is cool, just wait until they are that good but cost 50 bucks and everyone else on the planet can afford one. THAT is a market to aim for.
I am a lover of technology, have been for pretty much my entire life. I've mostly been a Windows PC user for the last decade, but before then I followed the path most of my geek generation followed - Spectrums, C64s, the Amiga vs ST wars - all fantastic bits of hardware which had flaws but you could forgive them. And the best part was that the fanboi-ism normally had some sort of counterpoint - you point out a flaw in your friends' device, they implicitly acknowledge it by coming-back-atcha with a flaw in your gear.
iOS requires you to use Macs to do development on (sure, I could hackintosh, but there be dragons). So I've had the "pleasure" of using a Mac Mini and a Macbook Pro at work and at home now pretty much exclusively for the last six months, and for the most part I think they are capable machines with many excellent features, but ...
Oh, but. Where to start. I can list off a litany of absolutely shit design flaws in this hardware, but it seems like any mention of Apple design issues is simply met with a criticism-swallowing black hole - no acknowledgement, no rebuttal - the best I can ever hope for is the occasional sideways "Oh, Timothy" look from my beleaguered colleagues when I go off on a rant.
Here's a few for starters, so you can see where the wrath rises from. My macbook pro has a small divot on the front to let me open the machine, which requires TWO HANDS to use. That divot is so sharp, I have actually cut my wrists on the points before while opening the machine. Yes, that's right - opening the laptop lead to blood.
Then there's the keyboard layout, which has cost me days in retraining my muscle memory, and how it's utterly non-trivial to switch keyboard maps, and how the hash key has moved entirely off the primary key set - great for coding Python.
Then there's all the fun and games using Finder, which is such a badly named utility it's untrue.
That's without even stepping close to the cost/performance curves, or the requirement for extra hardware just to plug in a monitor with DVI, or the hideousness that is iOS development profiles, or ...
Now the point of this post is not to rag on the hardware and ecosystem - but rather to highlight that it is valid and just to rag on the hardware and ecosystem. Apple are good at what they do, but by god they are a long way from perfect. If I read one more post this month anywhere on the internet where the reality distortion kicks in on changes like the Mac App Store sandbox proposals, how Kindle "just isn't quite as Apple-y as Apple" or similar, I'm going to melt down. I'm really getting tired of seeing how otherwise rational people get subsumed into love for these products to the point where all else suddenly becomes a non-viable choice.
I guess I'll look back at this post at some point (when we begin Android development, no doubt) and laugh at myself, but it feels great to get this out.
End of rant!
Boss Alien has had the pleasure over the last six (count em!) months to be developing some really splendiferous products for iOS. Mobile hardware (including phones and tablets) is an obvious growth area in the next decade - if you think that smartphone is cool, just wait until they are that good but cost 50 bucks and everyone else on the planet can afford one. THAT is a market to aim for.
I am a lover of technology, have been for pretty much my entire life. I've mostly been a Windows PC user for the last decade, but before then I followed the path most of my geek generation followed - Spectrums, C64s, the Amiga vs ST wars - all fantastic bits of hardware which had flaws but you could forgive them. And the best part was that the fanboi-ism normally had some sort of counterpoint - you point out a flaw in your friends' device, they implicitly acknowledge it by coming-back-atcha with a flaw in your gear.
iOS requires you to use Macs to do development on (sure, I could hackintosh, but there be dragons). So I've had the "pleasure" of using a Mac Mini and a Macbook Pro at work and at home now pretty much exclusively for the last six months, and for the most part I think they are capable machines with many excellent features, but ...
Oh, but. Where to start. I can list off a litany of absolutely shit design flaws in this hardware, but it seems like any mention of Apple design issues is simply met with a criticism-swallowing black hole - no acknowledgement, no rebuttal - the best I can ever hope for is the occasional sideways "Oh, Timothy" look from my beleaguered colleagues when I go off on a rant.
Here's a few for starters, so you can see where the wrath rises from. My macbook pro has a small divot on the front to let me open the machine, which requires TWO HANDS to use. That divot is so sharp, I have actually cut my wrists on the points before while opening the machine. Yes, that's right - opening the laptop lead to blood.
Then there's the keyboard layout, which has cost me days in retraining my muscle memory, and how it's utterly non-trivial to switch keyboard maps, and how the hash key has moved entirely off the primary key set - great for coding Python.
Then there's all the fun and games using Finder, which is such a badly named utility it's untrue.
That's without even stepping close to the cost/performance curves, or the requirement for extra hardware just to plug in a monitor with DVI, or the hideousness that is iOS development profiles, or ...
Now the point of this post is not to rag on the hardware and ecosystem - but rather to highlight that it is valid and just to rag on the hardware and ecosystem. Apple are good at what they do, but by god they are a long way from perfect. If I read one more post this month anywhere on the internet where the reality distortion kicks in on changes like the Mac App Store sandbox proposals, how Kindle "just isn't quite as Apple-y as Apple" or similar, I'm going to melt down. I'm really getting tired of seeing how otherwise rational people get subsumed into love for these products to the point where all else suddenly becomes a non-viable choice.
I guess I'll look back at this post at some point (when we begin Android development, no doubt) and laugh at myself, but it feels great to get this out.
End of rant!
Sunday, October 16, 2011
Tired
I had expected the last couple of months to be pretty hard work, but good lord. Some lessons learned, I think. Good job I still like pizza.
Sunday, August 28, 2011
Eff Eff Ess
To whoever stole the badge off the boot of our car - karma will get you in the end, of that you can be sure.
Subscribe to:
Comments (Atom)