Archive for the ‘Software’ Category

Tuesday, December 18th, 2007

SDK now available for download

Before anything else, I just wanted to say thanks to everyone who met up with us at BUG+NY last night! We had a great time, good conversations, and some pix are online now.  Now onto the stuff you really care about.  I will start with a little note from Ken, the head of software for Bug Labs:

Many moons ago Peter and I met in a crowded starbox on a dark and
stormy evening.  He had some wood blocks and visions of a computer
program that made creating user-designed consumer electronics easy.
There were some pictures and various notes.  Well, I’m proud to
announce that the software that resulted from those early conversations
has been publicly released!

Called the Dragonfly SDK, it is an
Eclipse-based software development kit for the BUG.  It’s designed as an
easy-to-use embedded development environment with a built-in web
application sharing website.  While we have not released the BUG hardware yet, a virtual one is included to play
around with.  Install directions are here  or if you’re an Eclipse pro here is the update site URL.  Also, we’ve included a minimal getting started guide here.

(thanks Ken!)

We consider the SDK in an open beta now.  Accompanying it are also discussion forums, a wiki, and BUGnet is now live (click here to register).  If you are wondering what these things have in common, it’s the beginnings of our online community.  We are building out numerous components to really enhance the community experience in the future, including a BUGmodule recommendation/voting system and more.  Most important to us is that every aspect of our communications become two-way.

So, please comment on the blog, post on the forums, contribute to the wiki, and build applications for BUGnet!  We want to hear from you, tell us what you think, what you want, and what else we can do to make the BUG experience as good as possible.

Sunday, March 4th, 2007

Sony Goes Open Source

I bought a Sony Bravia LCD television last week and finally got around to looking at some of the paperwork that came with it.  One document caught my eye because it looked like a lot of fine print.  When I unfolded it and checked out the title I was stunned.  The title read "Required Public Statement for GPL/LGPL Licensed Software Used in This Television".  My curiosity piqued I continued to read.  Turns out Sony uses the following GPL executables in this TV:
- Monta Vista Linux Kernel
- busybox
- insmod

…and these LGPL libraries:
- libuClibc.so
- ld.so
- libc.so
- libm.so
- libpthread.so
- libgcc_s.so
- libstdc++.so

Source code for all the above is available at www.sony.com/linux (a link that right now, is not loading…)

The fact that Sony uses Linux surprised me.  Maybe it shouldn’t, I don’t know.  But it seems strange that the master of closed architectures is dipping into the OSS pool.  Are they giving back?  From the  looks of it they’re not really touting their participation nor do I recall ever seeing their contributions mentioned anywhere.  The document was "required".  There is no indication anywhere in the doc regarding what they’re doing with Linux or how it works.

I can’t put my finger on exactly why this bugs me, but somehow it does.

Thursday, February 22nd, 2007

Where’s the Humanity?

If you are a Windows user then you might not believe me, but I have found the human factor in software.  The first inkling of this discovery was when someone plainly said to me, "well, you work with people, don’t you?"  I had just said that I thought software development wasn’t human enough.  I don’t really even know what I meant by that.  It was a hard-to-describe feeling, but my friend saw right through it.  He reminded me that I do work with people, and it’s one of the best things about my job.

As soon as I saw one byte of humanity, I started seeing more.  It occurred to me that the purpose of most software is to interface humans with very powerful thinking machines.  The best software for humans is the kind where the interface is complimentary and not adversarial.  When it comes down to it, making machines more human is the end-game for software engineers. Then there is the communicative nature of the internet which has fed the social nature of the web.  When it comes to the web, it’s all about connecting humans–to their media, to the things they want to buy, and more and more, to each other.  Human software is social software.  It creates communities.

If we’re bound for the Age of Spiritual Machines, it seems that human software is the road that will get us there.  Recently my friend’s brother bought him a World of Warcraft character for about $100 on eBay.  My friend and his brother wanted to spend time together, and considering they live in different parts of the country, World of Warcraft was a great venue.  It also gave the brothers a chance to relive their childhood relationship as adults.  The big brother was happy for a new chance to show his little brother the ropes of this virtual world. Now, when my friend shares his online experiences with me, he often talks about the things he and his brother can do and not the things their characters do.  It’s almost like a new version of the Turing test: Can the virtual world fool you into thinking your avatar is you?

It’s impossible to talk about this without mentioning the Nintendo Wii.  The more social "party games" that have long been Nintendo’s focus plus the Wii’s brand new way of playing are an auspicious mix.  Accelerometers and motion sensors have been around for a while, but the real magic of the Wii is in the software.  How does some motion of your hand affect what happens in the game and does it make sense?  Thinking about World of Warcraft and the Wii, it is no surprise that games are leading the way in bringing the human factor into software.

Another development that has had a big impact on me as a software engineer is the popularity of Ruby.  Ruby claims to be the programmer’s programming language.  Like the Wii, it is fun and intuitive to use.  Its flexibility and elegant syntax is, well, very human.  If you agree with the viability of a bottom up approach, then you can argue that writing software in a more human language will lead to more human software.  I think, with the many new web applications written in Ruby on Rails sprouting up lately, Ruby has helped make software more human.

I can’t predict what comes after World of Warcraft, Ruby, and the Wii, but it will inevitably be more natural, more inuitive, and more human.

Monday, February 12th, 2007

Become a Software Engineer

Last year, Money Magazine rated software engineer the best job in America.  When I read that, I was incredulous.  I’m a software engineer, I thought, and my job cannot be the best job in America.  My first question was, where do they come up with this crap? Luckily the information architects predicted that it would be my first question and left a link dangling right there in front of me.

It seems one of the most important factors for them is job growth.  This is why chief executive is further down the list than physician assistant.  They also don’t include very rare jobs, regardless of how sweet. Superhero and rock-god are nowhere on the list.  Compensation is important, but the human factor also plays prominently in their analysis.  They judged factors such as "stress levels, flexibility in hours and working environment, creativity, and how easy it is to enter and advance in the field."

When viewing the career of software engineering through this lens, it really does make sense.  I was happy to see that the number of software engineering jobs in America is predicted to increase almost 45% over the next 10 years.  Just 5 years ago, outsourcing was predicted to destroy my career.  I guess that was wrong, but those predictions came during a bit of a dark time.  Software engineers and just about everyone else in the industry were suffering from disillusionment after the dot-com crash.  Luckily, the industry and the career has matured since then.  A real understanding in the value of creativity is coming from engineers and their employers.  That brings us to the human factor.  We’re beyond the days of thinking that it’s all about lines of code.  Because of that, the work has gotten better and so has the job.

At the time I read the Money article, I was working for a company that didn’t understand the human factor.  I started working for them because they did travel and I love travelling (This is another point the Money article brings up, that as software engineers we can conflate other interests with out careers–travel, music, you name it, they need software).  But they viewed programming as lines of code that you could farm off to foreign lands for a fraction of the price.  For much of what they do, they can.  But because they treat all of their engineers as hot-swappable resources, they’re never going to get much more out of what they are, and what they are is dying.

Of course, if you’re in a situation that you think could be better, you should try to find the better, which is what I soon did.  Now I can talk about job growth and compensation in my estimation, but more importantly for me, there’s the human factor.  My job has to be creative and interesting and the environment I am in has to facilitate that.  On a good team working on an exciting project for a company that’s not trying to institutionalize the creative process, I start to think that Money magazine might just be right.