It’s really easy to fall into the trap of trying to build something you think is simple that ends up being a complicated mess. Us engineers are amongst the most common offenders in this regard, often taking a simple idea and letting the feature creep run out of hand until the original idea is coated in 10 layers of additional functionality. I’d say that this is partly due to our training as modular design and implementation was one of the core engineering principles that was drill into me from day 1 although to be fair they also taught us how quickly the modular idea fell apart if you took it too far. There’s also the innate desire to cram as much functionality as you can into your product or service as that would make it appear more appealing to the end user, however that’s not always the case.
When Geon was starting out I had a rough idea of what I wanted to do: see what was going on in a certain location. That in itself is a pretty simple idea and the first revisions reflected that, although that was probably due to my lack of coding experience more than anything else. As time went on I got distracted by other things that forced me away from my pet project and upon return I had one of those brainwaves for improving Geon in ways I had not yet considered. This lead to the first version that actually had a login and a whole host of other features, something I was quite proud of. However it lacked focus, was confusing to use and ultimately whilst it satisfied some of the core vision it wasn’t anything more than a few RSS feeds tied together in a silverlight front end with a badly coded login and messaging framework hidden under the deluge of other features.
Something needed to change and thus Lobaco was born.
Increasingly I’m seeing that simplicity is the key to creating an application that users will want to use. On a recent trip to Adelaide my group of friends decided to use Beluga to co-ordinate various aspects of the trip. Beluga really only does one thing, group messaging, but it does it so well and in such a simple way that we constantly found ourselves coming back to it. Sure many of the functions are already covered off by say SMS or an online forum but having a consistent view for all group members that just plain worked made organizing our band of bros that much easier. It’s this kind of simplicity that keeps me coming back to Instagr.am as well, even though there’s similar levels of functionality included in the Twitter client (apart from the filters).
Keeping an idea simple all sounds like it would be easy enough but the fact that so many fail to do so show how hard it is to refine a project down to its fundamental base in order to develop a minimum viable product. Indeed this is why I find time away from developing my projects to be nearly as valuable as the time I spend with them as often it will get me out of the problem space I’ve been operating in and allow me to refine the core idea. I’ve also found myself wanting simple products in lieu of those that do much more just because the simple ones tend to do it better. This has started to lead me down the interesting path of finding things I think I can do better by removing the cruft from a competing product and I have one to test out once I get the first iteration of the Lobaco client out of the way.
I guess that will be the true test to see if simplicity and focus are things customers desire, and not just geeks like me.
I’ve been working on my burgeoning web service idea for just over a year now and I’m finally at the point where I feel like I’m actually making in roads into a fully usable system. It took 3 complete code dump and rewrites to get to this point but I’m finally satisfied with the way it works and how the client has turned out. Each iteration brought with it a rethink of what the application was going to be and a much better focus on what would be important to it. The decision to dump the last code base and start anew was probably the best decision I’ve made in a long time as the resulting product from it is strongly focused on what initially drove me to build this application.
Still after diving head first into the world of handset programming I can’t help but feel that I might have been going about this the wrong way. I initially started coding up the web client first because it would be the easiest of the lot and would ensure that I had the majority of the APIs working properly before I tried my hand at coding for a completely different platform. For the most part that was true as the API I have created facilitates all the functions I require and will work across platforms so long as they’re able to access the Internet. However had I developed a handset application first instead of going for the web client I would have been forced to make some of the hard decisions quite a lot earlier, possibly saving me those 3 code dumps that led to the current incarnation.
You see the first 3 versions I created were heavily focused on the idea of aggregating information around a particular location. I did this mostly because it was a good programming exercise and got me thinking in right direction for coding services destined for the Internet. At the same time however it had me lost in adding in numerous information streams all of which took a significant amount of time to implement. In the end once I got to the core feature that had been rattling around in my head (that whole location based communication thing) it was lost amongst the noise of the other features and the small trials I did with people didn’t even notice it as a feature.
After taking a month long break from coding I had a look at what I was doing and knew that it needed to change. This, I have found, is referred to as a pivot:
That’s the pattern we see in so many successful startups. They did everything they could to take advantage of what they’d built so far. Most engineers naturally think about repurposing the technology platform, and this is a common pattern. But there are a lot of other possibilities. I’d like to call out three in particular: pivot on customer segment, pivot on customer problem, or pivot on a specific feature.
In particular I was pivoting on a particular feature. Up until that point all I had been doing was finding an information feed and adding it in as an option. The core location based messaging feature became an afterthought but that was the hook with which I felt people would find the most use for it. After reading countless articles and looking to those who had come before me for inspiration I knew that if I intended to use such a feature as the main draw it had to actually be the most prominent aspect of the application. Thus Lobaco was born and I feel as if I’m finally taking steps in the right direction, rather than stumbling in the dark.
Working first on the handset would’ve forced my hand with this as you can’t afford to have a scattered focus when you’re working with such a limited environment. Still the lessons learned from those failed attempts have proven to be quite valuable and the coding experience wouldn’t have come any other way. It’s quite possible that I might have been a lot further down the track had I gone for a handset first but that’s not something I’m going to dwell on. Right now I have 3 handsets and a web front page to code up and I’m looking forward to doing each and every one of them.
If I were to rewind back a couple years and ask my past self where I would be at today the answer would probably be something like “living overseas and applying for various MBA programs”. It seemed ever since part way through university I had my eye on being in some form of upper management role in a large company, reveling in the idea of a high rise office building and being able to make a positive impact. It seemed every year I was doomed to delay those plans for another year because of other things that would crop up, with me finally admitting that anyone with a 10 year plan is deluding themselves.
Despite that my aspirations have not changed. I still lust after that high flying lifestyle that I attributed to the ranks of C-level executives and still yern to travel overseas as so many have done before me. However I’ve grown disillusioned with the idea of attaining such goals in the annals of an established company. My illustrious career, spanning a mere 6 years, has shown me that there’s little joy climbing the ranks in such environments with games of politics and tit-for-tat deals the accepted norm. The engineer in me was languishing under the idea of being suppressed for years whilst I played these games on my way to the top where I could finally unleash it with the power to make a difference. At the end of last year it finally broke through and gave me the dreadful clarity I needed to finally change my way of thinking.
I needed to make it on my own.
It was around this time that I’d started to get an interest for the curious world of technology start ups. You see here in Canberra where everyone is employed by the government or doing work for the government there’s no place for technological innovators, the captive market here just isn’t interested. Thus the idea of lashing out on my own in the only field I knew was always put aside as a untenable notion; the environment to support it just isn’t here. Still the idea gnawed away at the edge of my mind for quite a while and my feed reader started gathering information on all aspects of starting out on your own and how others had done it before me.
At the same time I had begun working on Geon, primarily as a eating my own dog food exercise but also as something to give back to my readers who’d been loyal over the fledgling months of this blog. The idea had legs though and I continued to work on it off and on for many months afterwards with many iterations making their way onto this site. After a while the notion of building my own business and my hobby of building something to satisfy a niche that was going unserviced began to merge and the dream I had once become disillusioned came back with a thundering vengeance.
There’s always going to be that part of me that nags at the corner of my mind telling me that any plan I make is doomed to failure, and I’ve learnt to come to terms with that. When I can talk about my idea with someone for hours on end and walk away with countless ideas about where I can take my project in the future I know the work I’m doing is good. That voice at the back of my head keeps me honest with myself, ensuring that I apply critical thinking to all the problems that I encounter. In that respect my fledgling inner skeptic makes sure I don’t bullshit myself into a corner and for that I’m eternally thankful.
I guess it all comes down to not knowing where you’ll end up in life. 6 years ago I had my whole life planned out until I was 30 (and a bet with an old friend of mine I haven’t forgotten) and today I’ll happily tell you that I’ve got no idea where I’ll be at 30. That idea would be frightening for many people but for someone like me who thrives on making the most out of his time it’s extremely liberating. No longer am I locked into any preconcieved notion of what I need to do to get where I want to be. All I need to do is work in the moment to achieve the best I can, and that’s exactly why I believe I’ll succeed.
I don’t think I’ve gone a few weeks without having to catch my heart in my throat when I see a new web service that closely resembles Geon. A year ago I had the confidence that no one was doing anything like what I was thinking of and as such the target audience I was going after was all mine. More recently though there have been a few services that began to encroach on my territory but for the most part they were far enough away that I could write them off as filling a different niche. This morning however saw a product come out that is basically identical to the core concept of Geon’s idea of “What’s going on there?” so you’d think I’d be sitting here wringing my hands with worry.
The thing is though I’m chomping at the bit to beat them at their own game.
This isn’t the first time a location based communication app has managed to cross my path. The first such one was called BlockChalk, an interesting idea about leaving messages around your block for other people to find. They appear to be quite mature as well, their iPhone app is solid and they even have an API that’s pretty open. I initially stumbled across them in my first search for data feeds that had geo meta data in them and almost lost it when I started browsing the service. Still they’ve been around for a while and they didn’t appear to be garnering a lot of trafficor media attention nor did they have some of the capabilities that I was planning to integrate into Geon. They’re on my watch list (especially considering the talent they’ve managed to rake in) but in reality they just proved that there was a market for something like what I was developing, always a good sign.
Qilroy, a Qualcomm Service Labs-incubated project, launches today as a platform that groups tweets and other status updates by location. Like “calling a payphone at the mall,”Qilroy introduces a concept called peer-to-place communication, which enables multi-platform conversations to take place from anywhere in the world.The name is a Qualcomm take-off of “Kilroy Was Hereand the service lets users share their location with others and also see a visual of all the conversations happening around any location. Users can type in any zip code or place like “The Eiffel Tower” or “Athens, Greece” for instance and interact through the Qilroy platform, Facebook or Twitter with anyone in that location who is sending open updates from Twitter, Foursquare or Gowalla.
Aggregating information feeds based on location? Allowing users to post messages to a location? Yep either this is a case of finding independent inspiration or someone has been reading my blog over the past couple years and implemented the idea quicker than I could. I’m tending towards the former though as the service shares many core principles that I’ve discussed on this blog previously but there are several differences that separate us. Most notably they’re looking a lot like Twitter, opting to farm out the additional services (like picture hosting) to others in order to keep their service simple. They’ve also made the smart move of letting you start conversations through other mediums in Qilroy which will break down the initial barrier of getting a user to install yet another application. I’d say it’s a decent attempt at the location based communication idea (despite its launch day woes) and I can see people using it.
But don’t think that means I’m giving up on Geon. In fact this has made me more convinced than ever that I’m onto something, and that it’s the best out of the lot.
I’ve been keeping the latest version of Geon on the down low for a while now, alluding to the fact that I had completely dumped the last design (there’s a picture of it somewhere on this site, see if you can find it!) and codebase in favour of revamping it with a focus on the core idea of finding out what’s going on at a certain location. It’s come along quite well with many features that I’d put off for a long time now in the application and functioning as expected. In fact the web client is almost complete at a core level meaning that I’ll be working on the iPhone application in the next week or so with a private beta to follow shortly after. All I really want to say at this point is that whilst I may have solid competition in the form of BlockChalk and Qilroy I know can beat them at their own game. Their presence confirms that my idea has a tangible market and that only motivates me to do more.
So my competitors, even though I know you probably won’t see this post until long after I’ve launched my application hear this: I’m gunning for you. I might not be the best developer, best business manager or best anything out there but I’m determined to build this product that’s been rattling around in my head for almost two years. Anyone who knows me will tell you that if I’m determined to get something done it will happen, by hook or by crook and I’ll be damned if anyone other than me becomes the king of this location space.
Back in the days when I was still a naive university student dreaming of someday being a project manager I remember being in a particular class discussing the idea of sunk costs in projects. For almost any project there are going to be costs for things that you won’t be able to recover such as time spent in research or marketing. Unfortunately for a lot of projects sunk costs will often lead projects to go long on after they were no longer viable, in a vain hope to recover some of the resources that were already sunk into the project. This is often referred to as the sunk cost fallacy and is aptly demonstrated by the dollar auction thought experiment. It is then a completely logical behaviour to see people act in this fashion, even when it seems to be irrational.
For an engineer like myself it’s usually pretty hard to give up on something once I’ve got it going. I’m a completionist at heart not wanting to leave a project unfinished lest it tug away at the corners of my mind for weeks on end. This kind of mentality has often lead me into sunk cost dilemmas where a project or task will take considerable time to finish but the opportunity cost of doing so far outweighs the benefits. I think that behaviour changed after my recent snap mindset change at the end of last year as after a recent talk with my current boss revealed there are some things I’ve just not followed through on, as I’ve come to realise how little benefit they actually provide.
Looking back over the previous six months I found that many of the times when I would get caught in a sunk cost dilemma would usually be when a core goal, say developing my new products, usually spawned several non-critical tasks that would be in some way beneficial. For the most part these would be quick win scenarios and for the most part they were done and out of the way in no time. Still there were several occasions when a simple problem, say getting movie information from IMDB¹, would consume an enormous amount of time whilst providing a very small amount of benefit. Realistically these kinds of things should have been left by the wayside until I had some spare bandwidth to use on them, but sometimes you don’t know how much time you’ve wasted until you’ve wasted it.
Unfortunately for me I had yet another one of those lightbulb moments when thinking about Geon and the direction its heading in. You see the initial idea I had almost a year ago (“What’s going on there.”) was taken over with the idea of getting as much information about the location as possible all stuffed into the one application. Whilst all this data is easily available and developing the components was a great introduction into the world of web programming at their heart they’re just not what Geon is about and realistically provide little value. After looking over many of the players who are in the location space I realised that most of the features I’ve included would more than likely detract from the actual purpose of my application, rather than help it.
So it’s with a painful glance towards my codebase that I realise I might need to drop a good chunk of my work before I get too caught up in chasing down yet another information feed to aggregate into it. It was a painful decision as the majority of the code is based around these ideas and I’m really quite proud of some of the tricks I implemented to get them to work. On the other hand I’ve started to get so many other ideas to improve the core functionality to make it more functional and most importantly more desirable for end users. It might pain me to take the axe to my last couple months of work but if I don’t do it now I could be chasing sunk costs for many more months to come, and that’s something I can’t really afford to do.
It feels like growing up all over again.
¹ I know right, there’s heaps of applications out there using IMDB data in their applications, so it should be really easy. What suprised me was that, although IMDB provides the vast majority of their data in flat text files, they have no API to speak of. Whilst their terms of service explicitly exclude any service from scraping their pages for information every single library or api out there does exactly that, meaning that they’re all a layout change away from being completely and utterly broken. I went through at least 5 different libraries all with varying results, and the text files seem to be missing a good chunk of information (where are the TV episode listings?).
The Internet is a bit of an oddity when you try to compare its real world counterparts. Take for example this blog, in the real world it would be akin to a column in a newspaper or perhaps a small publication done off my own back. The big difference is the barrier to entry as writing a regular column for a newspaper takes either the right connections or some kind of journalistic training/merit. With the Internet you have what would be the equivalent of a newspaper shop offering to publish your content for free to unlimited numbers of people (blog networks) no matter what you actually end up writing. The extremely low barrier to entry extends to other markets as well with online businesses able to replicate their much larger real world competitors at a fraction of the cost.
I’ve always said that one of the fears that nags away at the back of my head (which also makes it one of my biggest motivators) is that some genius kid will stumble across this blog, see Geon and the value it represents and code the whole thing in a weekend marathon hack session. Then before I have a chance to release it upon the world they’ll release theirs and I’ll be left here holding my proverbial, sobbing quietly in a corner somewhere. This comes back to the low barrier of entry which, when coupled with a successful but not-too-technical service, leads to a flurry of me-too type services all hoping to grab a share of the emerging market.
To give you some examples I can name 2 types of services that up until recently no one would’ve thought there would be a use for yet now there are at least half a dozen examples out in the wild. The first, which I blogged about a week ago, is the new social networking technology of checking in to locations in order to alert your friends you’re there, usually coupled with some kind of gaming aspect to hook you in. The list of services making use of this idea seems to be growing daily with a few examples being: Foursquare, Gowalla, BrightKite, Booyah, Yelp and Scvngr. This is not even mentioning some other services that, whilst not focused on check-ins, include them as part of their overall product.
The second is URL shortening services. Whilst long and cumbersome URLs have plagued the Internet for many years they really haven’t been a problem since if you’re sending a URL to someone else they were usually on either email and IM, which usually didn’t restrict your character limit. With the explosion of micro-blogging services with their artificial limits on post size people sought solutions in order to be able to share content on these networks. I can remember way back when in 2002 when TinyURL debuted their service and whilst it was nice to have some short links (especially considering mod_rewrite still appeared to be black magic to most people) I didn’t need it unless the link was really obscenely long, and was only really needed if it had characters that broke on copy and paste. Still today TinyURL is going strong (rated 711 most visited site on Alexa) and its list of imitators is long including services like: 3.ly, bit.ly, ow.ly, cli.gs, is.gd, yourls.com and many specific URL shortners like youtu.be and tcrn.ch.
At its heart this is the real power of the medium of the Internet. With traditional forms of media and business the barrier to entry is quite high, to the point of being out of the reach for the everyman. On the Internet however, where resources are near limitless and the currency of choice is not the almighty dollar, the only limitation really is how much effort you are willing to put in. That also leads to a rampant world of copy-cats where any service that enjoys even a mild success will be duplicated to no end by many people across the Internet. The key then remains how you differentiate yourself from the competition, as you won’t be unique for very long. It appears that for the majority of services there’s room for one giant and a myriad of others that cater to a specific need or location. There’s nothing wrong with being one of many but if you’re thinking of doing something new online it’s best to think about how to deal with the competition before they arrive, rather than pretending like you’re the only one who can do what you do.
Whilst I’m no stranger to the business world I’m still a new player when it comes to developing usable products for a wide audience. My years of training as an engineer and short stint as a project manager gave me a decent amount of insight into designing products and services for a customer who’s shovelling requirements at you but when it comes to designing something to requirements that are somewhat undefined you can imagine I found myself initially dumbfounded. It’s one thing to have an idea in your head, bringing it kicking and screaming into the real world is another.
For the most part I began with an initial concept and started to flesh it out as best I could. The original idea behind Geon was (in my head) called “What’s Going On?” whereby you could plonk down an area on a map and send a question to everyone running the application in the area. The people in the area then could, if they so wanted, respond back via their phone client with some text, image or video. The main idea was to get people communicating and secondary to that would be supplemental information from other sources. After socializing the idea a bit people seemed to think it would be an interesting service (although most declined to make serious comment until after they saw it in action) and the closest competitors looked to be throw-away applications that probably took the developers a couple weeks to slap together. Things were looking good, so I started hacking away.
Behold the horror that was my first attempt, something that I almost foolishy went ahead to try and promote amongst my favourite tech sites. The first iteration was a horrible compilation of ASP.NET and various client libraries that I managed to scrounge from all over the Internet. For the most part it worked as intended, being able to pick up information from various sources depending on your location. The problem was however it was ugly, unintuitive and relied rather heavily on my poor little web server to do all the heavy lifting. Additionally after walking a blogger friend of mine through using it he immediately suggested a couple features that had just never crossed my mind and upon consideration would be absolutely essential in high information density areas. They were so good that even the latest incarnation of Geon incorporates his suggestions.
Looking back over all my experience in designing solutions I realised that I had always been spoiled by having the problem handed to me on a silver platter. When you’re working for a client it’s pretty easy to figure out what they need when they’re telling you at every turn what they want. Sure it might be a hassle to make sure that they properly define their requirements but at least you have a definitive information source on what will constitute a successful outcome. When you’re working to develop something that you’re not quite sure who your client will be the game changes, and you find yourself looking around for answers to questions that might never have been asked before. Right now I find the majority of my answers through other people’s web services, hoping that emulating some of their characteristics will bring along with it some of their success.
At the core of all this is the software development philosophy of release early, release often. Whilst my product isn’t probably ready for prime time the more I show it to people who will (hopefully) end up as my users the more insight I get into what I should and shouldn’t be doing with it. Even better was discussing it with some of my proper software engineering friends who suggested different ways of doing some things which not only simplified my code (to the order of hundreds of lines, thanks Brett ;)) but also opened up services that up until now seemed baffling in the way they returned their data. I guess the lesson to take away from this is that the more you collaborate with others the better your end product will be which is hard for someone who’s as protective of his creations as I am.
I know I harp on a lot about Geon on this blog (and I’m sure you guys are sick of hearing about it!) but it has been the source of many eye opening moments and its all too easy to get caught up in the excitement of sharing something I created with the world. I was never that creative (I can’t draw, I’m not a very sporty person and my music creation skills have been in hiding since my debut song Chad Rock (that’s an anagram of the real title, FYI) has earned me unwanted infamy in my group of friends) and apart from this blog I’ve never really had any other creative outlets. I guess I just want to let the wider world how exciting it is to create something, even if I sound like a hyperactive 2 year old with a new toy 😉
Plus the more I talk about it the more likely I am to work on it, since I feel guilty for being all talk and no action.
Just wanted to wish you all the best for this festive season. I hope you’re all as full and happy as I am right now 😀
As a little something for you all to fiddle with I’ve uploaded my most recent work on Geon, available here or in the lab. Blogs, News and Flickr all work now and you can apply filters to each feed individually by clicking on them (except for Flickr). I’ve been busy with another project for the past month or so but it should be completed before the new year and then it will be full steam back on Geon.
Be safe, enjoy your holidays and once again MERRY CHRISTMAS! 🙂
Mention the words “Web 2.0” to me and you’ll usually be greeted with a slight snarl and maybe a comment or two about how the web doesn’t really have version numbers. Sure I can appreciate the idea that after the dot com bust companies shifted their focus from just having a web presence to truly leveraging the Internet but it still never sits right in my head. However with my recent foraying into rich web application development I’ve come to realise that if I try to describe what I’m doing using any other term I usually get blank stares from those supposedly “in the know”, so I’ve relegated myself to using the term. At least just in general terms to describe something that’s on the web but feels like a desktop application.
With all this angst that I had built up for Web 2.0 applications it was nice then to see an example of a something I would deem Web 2.0-ish that added value to my browsing experience rather than trying to do nothing but make money off it:
Basically there was a term I didn’t understand (it was Latin after all) in an article so I decided to highlight it and copy it into Google so I could find out what it was. Imagine my surprise when a little question mark popped up and upon clicking it, a definition of the word popped up. For me as a user of this site it’s quite handy, since I can just highlight and click. For the content provider it is doubly advantageous as I don’t leave their web page to go hunting around for a dictionary defintion, and I also give them another page view which helps with their revenue. Overall it’s a win-win situation for everyone and has helped to soften my harsh view on the whole Web 2.0 scene.
The problem I initially had with many Web 2.0 oriented companies was that their only selling point was that the application looked flashy and was driven to generate as much revenue as possible off the user’s experience. For most end users this was all transparent and I can’t deny that the business model has worked for a few of the current web giants. As an IT professional however the lack of value that could be derived from using this applications only served to make me look like an Internet Luddite, wishing for the good old times when pages rendered fast and I didn’t need to download flash to run 90% of sites on the web. With the Web 2.0 crowd now having to mature their business models in order to survive in an increasingly harsh and competitive environment we’re now starting to see some applications with true value enhancing experiences for the end user, something that I felt had been lacking up until now.
This idea is what has been driving force behind me developing Geon and hopefully with the way things are going I won’t be too far off providing some added value to the information its bringing in. Of course since this is a bit of a side project for me the plans to try and monetize it are a bit far off (and indeed, I have little experience in dealing with advertisers) so it’s not a grab for cash yet, so hopefully I won’t be alienating people like myself right off the bat.
As with all new technology there comes a time when the platform matures to the point where the fact that something is built on it or uses it is no longer novel, and that’s the point when the true innovation can begin. The next few years will bring out some truly amazing stuff which I, for one, can’t wait to see.
Tune in five years from now to see me ranting about Web 3.0 😉
Back in the early days of my experience with IT I wasn’t much of a programmer. For the most part my experience was limited to tinkering with various bits of hardware and doing house calls for my local IT group Grade A Students (who unfortunately seem to have removed themselves from Canberra and re-branded). However this all changed when I started my university degree with my first course being an introduction into programming with C in Linux. It was an odd affair for me as I of course knew about programming but hadn’t paid much attention to it. Since then I’ve dabbled in many other languages with varying results, the latest of which is Geon.
Recently though it became clear to me that the end goals I had for Geon and the language I was using (ASP.NET) were probably a bit too ambitious. The work required in order to get that “Web 2.0” look and feel to the application that most users online have come to expect was prohibitive for a single person only working on it on weekends, so I started looking around for something else. I was tempted by the lures of Flash however I haven’t had any experience with the tools or design work of that particular language with most of my skills lying in the Microsoft/C# space. So in essence there was only one choice, Microsoft’s Silverlight.
From a business perspective anything you can do to lower the barrier to entry for consumers is a big thing for business and this was the first mental hurdle I had to overcome when deciding to develop using Silverlight. Flash is fairly ubiquitous amongst Internet users however Silverlight, even though it is at version 3.0 now, is still uncommon. When it first came out I installed it as a mere curiosity to see how Microsoft intended to dethrone Flash as the rich web application provider and there are few big name sites out there that have adopted it as their development framework. However after weighing up the time it would take me to develop in Flash vs my current target audience (which, let’s be honest here, isn’t huge) I conceded that anyone who wanted to see Geon in all its new sparkly wonder would give Silverlight an install. Plus its a small download and from memory doesn’t require admin privileges to install.
I then spent the weekend learning the ins and outs of developing for Silverlight. It’s an interesting blend of desktop application development with UI design that’s heavily based on the flow model. Initially this took a bit of getting used to as making sure the elements were generated properly took a bit of wrangling but the reward was an interface that scales very well with any browser size. This was one of my bugbears with ASP, since they had no easy way to accomplish this. I did run into some roadblocks with Silverlight only being a subset of the .NET and WPF frameworks but there wasn’t anything I couldn’t work around. Although there were a few moments of me yelling incoherently at the monitor when things refused to work the way I wanted them to.
And thus the end result is this, Geon in Silverlight. If you don’t yet have Silverlight I’d urge you to install it and have a look at what it’s capable of. This version is somewhere between 1.0 and 1.1 in terms of functionality (live updating for Twitter, News and Blogs works) however the main stay of Geon, which is Geologically based information, is currently not in. I only just got around to getting the base framework in last night to handle the IP based look-ups before I decided that was it for the weekend so I believe I can have it up to 1.1 level of functionality fairly quickly.
Overall I’m happy with the results and I believe that the future of Geon will lie within Silverlight. It’s a very powerful framework for developing rich web applications and the tools available are growing by the day. Who knows, maybe Geon will one day be that killer app that gets Silverlight everywhere!
A man can dream….. 😀