So as those who have been following me on Twitter may have known I’ve spent the last 2 weeks schooling myself in the world of Silverlight and Microsoft Rich Internet Application (RIA) services. Now I’m no stranger to the idea of n-tier application development but Microsoft’s implementation appears woefully complicated when you first get into it (thanks to the lack of clear tutorials and documentation on it) but becomes quite simple once you get past that first hurdle. Many things you think you’ll have to code up substantial amounts of logic for, say saving changed objects to the database, are handled for you by some black magic hidden in the background. I’m not complaining though as whilst I believe that an understanding of what is happening behind the scenes is vital for writing good code actually implementing that every time you want to do something could be quite a chore.
It actually reminds me of another project I started a long time ago called Yurai (it’s a desktop application so you probably won’t ever get to see it in The Lab). Back when I was working as a help desk monkey and finishing off my last year of my degree the whole n-tier design pattern was firmly lodged in my head and I got the idea that the software we were using (called Infra, now owned by VMware of all companies) was far too bloated and I could make a substitute myself. Coincidentally a friend of mine had just started his own business in home IT service and was using a paper pad to track their jobs. I took it upon myself to code him up an application and my first foray into the world of being a real developer began.
The application itself never got past the initial design phase. Whilst I did manage to (manually) create all 3 tiers with their associated logic and what not the system itself only allowed a small subsection of the functionality they would require. With my university commitments ramping up I never got time to finish the project and it now sits in a backup folder on one of my many hard drives. Still thinking back to those days I can see how far Microsoft have come in making it so easy for an average-skilled developer like myself to develop these applications in a rather timely fashion. The same amount of time invested back then yielded about 10% of the results meaning less time is spent coding the rudimentary parts of the system and more time focusing on what’s critical to your application.
So the last 2 weeks of work have culminated in this: a working user authentication system for Geon. Not only that if you click the link (might be a bit obscured on monitors less than 1680 pixels wide, I’ll fix that this afternoon) at the top you can sign up for an account to use with Geon. What that account will let you do is save your feeds so that next time you login you don’t have to go clicking around again to set it all up, just make sure to hit the Logout button to do so (need to implement the logout function on window close, haven’t done so yet!). An account is not required to use Geon but in the future I’ll be adding a lot more things to it that will require an user account, and who knows I might give you something special for beta testing my stuff out 😉 Your account will need to be approved by me before you’ll be able to use it however, and that’s just to make sure I don’t get a flood of people signing up before I’m ready to let the user auth system go live.
But don’t let that stop you from signing up. Go on you know you want to.
Hopefully with that part out of the way the core functionality of Geon will come along soon. What I’m referring to is the idea that I originally had was to be able to ask anyone in a certain area a question and have them respond back with text/image/video/whatever. This of course relies on people actually running my application and with it currently restrained to the browser that makes the potential audience somewhat limited but it can still work as a test bed for the handset applications. There’s going to be a lot of messing about to get that all harangued in (I’ll have to undo some of the black magic that Microsoft has done for me thus far to make sure its secure) but that’s all part of the fun, well that’s what I’m telling myself anyway.
Additionally I’ll have a tutorial up somewhere on this blog (I’ll update this post with a link) on how to get started using Geon as I’ve had a few people tell me that it doesn’t work only to find out that they’ve been clicking in ways I didn’t expect. That’s partly my fault for changing the UI on them and not making it clear that it didn’t work the way it used to, but if I take a leaf out of Google’s book that’s what users are for, trying out your beta code so you don’t have to do as much testing yourself 😉
So as always hit up Geon and let me know what you think by posting a comment below, tweeting me or sending me an email at [email protected].
EDIT: As promised I’ve created a new page with a quick rundown (with pictures!) of how to get going with Geon.
It was almost 9 months and 200 posts ago that I thrust my pre-alpha version of Geon into the world for everyone to see. Thanks to my innate shyness I didn’t go the whole hog and release it into the wild for the whole world to see and I’m still glad for that as the first version was, to put it lightly, a smoking pile of crap. Had anymore than about 5 users got on it at once (the record stood at 2) my server would have fallen on its face trying to deliver all the content over my poor little 1Mbps connection. The saving grace of Silverlight taught me that I could use my client side programming skills to do what I wanted on the web without having to completely relearn everything and the next few versions of Geon came along that much faster.
Right now I’m comfortable enough to let every reader of this blog know that there’s a new version of Geon up (those adventurous amongst you would’ve noticed a link to the new version in a previous post) and it comes along with a UI change that I had been alluding to a while back. In essence the change was done in order to increase the readability of the information streams you’ve selected as prior to this you just had the one bar that would scroll along madly if you dared to look at multiple locations at once or just so happened to add Twitter from anywhere that was mildly populated. In addition to the UI changes I have also made the switch to Silverlight 4 which added in things like native scroll wheel support (I can’t tell you how happy that made me) and a slight performance improvement over Silverlight 3. Thankfully none of the breaking changes they made in the transition affected Geon so the upgrade was only a few clicks and a restart of Visual Studio away.
The new UI works similarly to the old one as you select your location first by clicking the location button on the left hand side and then clicking the location on the map you want to see. Then you can add in information feeds from the same bar in a similar way and they’ll automatically add themselves to the closet location circle on the map. As of right now all the feeds available work apart from Facebook (you’ll get a pop up asking it to connect with your Facebook account but no information will appear) because their geolocation is still not fully implemented and I’m not keen to do a whole lot of mangling to get results that are more than likely irrelevant anyway¹. Once you’re done adding the streams hit the button up in the left hand corner to see your streams in all their glory. Rows are locations and the columns are the feeds, all titled properly so you can tell what’s what.
Having all that done means however I’m now out of options for procrastinating. You see whilst this version included some new streams (videos and Wikipedia), a much better UI and a cleaner back end (mmmm JSON) most of the heavy lifting had already been done in previous versions. After getting the initial hard parts out of the way with the UI most of it could have been done inside of a week, although I casually programmed it over the course of a month or so. The next thing on the list is the real meat of Geon: the request system.
That pretty much means I have to start diving into something I’ve never coded before: webservices. Whilst I can’t really say I’ve been avoiding this I haven’t been actively looking to do anything about it either, apart from the casual search for tutorials on how to build user authentication systems. I know I’m just being a big baby about this and I should just suck it up and do it but it’s just been so darn easy up until this point I’ve been wondering why no one has done it before. As it turns out the rudimentary parts that most netziens have come to expect are the most complex and tiresome parts which is why it hasn’t been done (and also explains why some services don’t have logins at all).
I’ve decided to suck it up and just start hammering away at it until I get the thing going. It’s much like when I first started out coding Geon and I was using RSS feeds for everything, it was just the first way I found to do things. After fiddling around for a while and getting some advice from a real developer mate I found that had I just taken the time to research it the whole idea of using other formats was so much easier. I’m sure with an afternoon of searching under my belt I’ll be ready to tackle the big bad demon that is the client/server architecture of Geon.
¹I thought I should elaborate on this a little bit. There’s been rumours of a geo-api from Facebook for a while now but with their developer conference f8 over and done with I haven’t heard anything solid about its actual implementation. They’ve tweaked their privacy policy to allow the storage of geo information in Facebook however the API as of right now remains unchanged. There are a lot of apps out there making use of geo data and Facebook but there’s no way to extract that out of Facebook currently. You can kind of figure stuff out by finding out a user’s hometown location, reverse geo-coding the location, figuring out if that’s within your bounding box and then displaying messages from them if it’s within your area HOWEVER that’s an incredibly messy way of doing it and honestly isn’ the kind of thing I was looking for. I’ll be integrating Facebook information when they finalize their geo-api but until then it won’t work.
Take a good look at any big IT system and you can usually trace its roots to one of two places. The first is the one that all of us like to work with: the Greenfield project. In essence this is brand new work that has been born out of a requirement that didn’t exist before or a complete rethink of a current implementation. Talk to any consultant who’s trying to sell you some new tech and you can be guaranteed that they’ll be looking to sell you a greenfields solution, mostly because it’s cheaper and much easier for them to implement.
Sadly, and especially for those of us employed by the government, the majority of the projects that us IT guys will work on will never be greenfield situations and will usually be encumbered by some form of legacy system. This poses greater risks and constraints on what work can be done and ultimately you’re probably working to fix problems that someone else created. It’s been rare that I’ve been given the privilege of working on a project that was aimed at fixing my own mistakes, but I could put that down to my insatiable appetite for job hopping.
My own projects are a different beast as they are all my own work and thus all my own mistakes. Take for instance my intial foray into the world of web programming, Geon. Initially I decided that I’d code the whole thing in ASP.NET mostly because I could do it in C# (something I’m very familiar with) and there appeared to be a whole lot of resources available for doing the things I needed to do. For the most part that worked quite well and I was able to get the majority of the components up and running within a few weeks. Sure some of the subtleties of the design I had in my head didn’t quite work but for the most part I was able to get what I needed done, and even launch a few improvements along the way.
However after a while the limitations placed upon ASP.NET became painfully apparent. Coming from a background of desktop programming it became obvious that the majority of the functionality I was used to using was either simply not available or hidden behind a wall of mysterious Javascript. Whilst I’ve had some experience with Java in the past I wasn’t too happy about having to relearn another language in order to be able to accomplish what seemed so simple in my head. After blathering around for a while I came across Silverlight and whilst I knew that it was just Microsoft’s answer to Flash the promise of being able to code for the web as if I was coding for the desktop was just too good to pass up and I relegated myself to transitioning to it.
The transition was in fact a greenfields approach to the application. The initial iteration of Geon in Silverlight was, for the most part, a like for like system built upon a completely new code base. Whilst they share a common language the frameworks available and the UI design are wildly different. Still with a little effort I was able to replicate Geon into Silverlight in less than a weekend and everything seemed right with the world.
Then one day I had a fit of inspiration about a new layout for Geon. I quickly fired up Visio and started playing around with visual elements and cobbled together a better design. Everything seemed to be falling into place and I could see how it would be so much easier with this new design. Unfortunately this meant that the current code I had written for Geon in Silverlight was effectively unusable as the visual elements drove the underlying objects and thus couldn’t be used. The internal logic of some parts remained though and the new design took considerably less time to develop.
You might be noticing a couple patterns here. The first is (I’m going to start with the good here) that for the most part a lot of what I’ve created is reusable which is a classic example of modular programming at work. There was a bit of massaging between ASP.NET and Silverlight but thanks to Microsoft’s libraries this was fairly minimal. The second is I’m getting into a bit of a habit with starting a fresh each time I think of a new and better way of doing something, despite the amount of work that that entails.
I put this down to a form of analysis paralysis. In essence every time I’ve taken a long hard look at my code after a break from it the first thing I start to notice is how difficult it will be to get everything working just the way I have it in my head if I want to keep the current code. It stems from the way that I work on problems, by intensely focusing on a single problem until I have the solution. Whilst this usually ends up with an adequate solution to the problem I’ve often found myself spending a good 10 minutes on a function figuring out how exactly it does something. Repeat this for every function and in the end it becomes easier to just start over again instead of trying to rewrite everything so it fits together perfectly.
This all came to head when I started looking at the layout of Geon and realised that it had some inherit problems with viewing large amounts of information. Subsequently I’ve drawn up yet another design that is, you guessed it, almost wholly incompatible with the way I’m doing things now. I’ve since dedicated my weekend to developing the design and seeing how it works out but as you can imagine when I’m looking at dropping the code base for the 3rd time I start to question whether I’m really making any progress. Or maybe I’m just avoiding coding the real meat of Geon because it’s, you know, hard.
The good news is that the project manager in me isn’t going to be happy with feature creep and deadlines falling by the wayside so I firmly believe that this iteration of Geon will be the last major UI redesign before its final release on the world. This time I’ve made sure to include those “little things” like a user control panel which were strangely absent from my last 2 designs and hopefully I’ll achieve my goal of making the information much more visible than it currently is.
It really doesn’t help that my to-play list of games is getting longer every day either 😉
After losing around 6 weeks of my life to a project I’ve only vaguely referred to as “The Plan” I promised myself a month off to catch up on my backlog of games, relax and then hit Geon hard with new features so that I could release it upon the world. That month is now closer to 6 weeks mostly because there were just so many good games out at the moment (I still have 4 to play through, ugh!) and I was thoroughly enjoying slacking off. I’ve justified putting off the development because in all my research around the web I haven’t found anything quite like it. That was until I happened across this:
Facebook is allegedly planning to roll out location sharing capabilities next month, once again playing catch-up to other services that have gained popularity thanks to location data. The rumor comes courtesy of anonymous sources who have been “briefed on the project” speaking to the New York Times, who said that Facebook will announce the feature at Facebook’s annual f8 conference in late April.
The company’s plans for such a feature have not been entirely secret—Facebook hinted at location features when it updated its privacy policy in November. Like other postings made to Facebook, location information will only be made available to the people you decide to broadcast it to.
Great news right? I toyed with Facebook integration a while back but I never got the authentication working right and after a night of tinkering I found that I’d have to do some pretty heavy handed guessing to get the data in the right places. With services like Twitter and Flickr having beautifully easy geo-apis available I wasn’t too keen to muddy the information feeds unless I could guarantee a certain level of actual geo accuracy. So Facebook introducing a true blue geo api means more work for me, but also yet another hook for potential users.
But further down the article there comes a list of four services that have built their success based around user data that has geographic information in them. They are:
The last, and the one that made me almost jump out of my seat, was Brightkite. The front page has a lovely little section down the bottom that said “What’s happening in Canberra” and was happily displaying images that were supposedly from my area. Considering that I’m in the business of information aggregation with a geographical bent (trying saying that 5 times fast :P) my first reaction was that dreaded sinking feeling anyone gets when they think they’ve had the most brilliant idea in the world only to find it’s already been done, packaged and sold to everyone who would want it. However diving deeper into Brightkite’s world I can see that yet again they’re focused on the social networking side of things and much less on aggregating information based on location.
This I believe is the selling point for Geon. Whilst I appreciate that social networking is all the rage these days (as was blogs before them, and badly hacked together personal sites on Geocities before them and so on) it’s not the vision I have for Geon. It will have some kinds of social features in there (like following your friends, although Facebook integration might render that moot) but my main goal is getting information and hopefully establishing 2 way communication between people who want information.
The upside to all these apps coming out (and subsequently kicking my ass into gear) is that there is real demand out there for something like Geon. Talking to people about it only goes so far and it’s always good to have that little bit of hope that your work will someday be appreciated by the wider world.
Maybe I scare too easily 😉
The last release of Geon was a kind of forced release from me. You see up until recently I had been using what Microsoft calls a Community Technology Preview (CTP) version of the map control that dominates the center of Geon. When it was initially released there wasn’t really any timeline around how long it was going to last so I had just assumed that it would work forever (save for the fact that I wouldn’t get any new features). However this turns out not to be the case as Microsoft so politely informed me a while back:
Valued Bing Maps Silverlight CTP Participant,
Thank you for participating in the CTP – we are excited to announce that the latest release of the Bing Maps Platform, including the v1 Silverlight Map Control, is officially here!
Please visit the Bing Maps Blog for a full breakdown of the Silverlight Map Control release details.
Important housekeeping details:
- Please note that the CTP control will cease to function at midnight, December 31, 2009. To ensure continued functionality of your CTP applications, please make plans to upgrade to the version 1 code before that time. For a description of the version 1 changes from the CTP build, please visit the changelist reference in the SDK here.
- The Connect site will remain available until December 15th for reference purposes only. Future technical questions/discussion should be directed to the Bing Map Control Development forum on MSDN (paid, evaluation and free account types) or to the Bing Enterprise Support Team (paid accounts).
Again, thank you for your participation in the CTP. Your feedback was invaluable improving the code and the overall platform. We look forward to working with you again in the future.
Well that meant 2 things: the first being I was completely wrong, although anyone who’s used CTP versions of software before will tell you what I thought was total bollocks. The second was that I had to rewrite some of Geon in order to make sure it was compatible with the new version of the plugin, as well as some dastardly new license requirements. I was none too happy to hear about them discontinuing my version and releasing a new one at the same time, but a couple features caught my eye.
On the surface most of it was just a cleanup of the code underneath. Many of the structs had been replaced with classes and the namespaces had changed to be more inline with Microsoft’s whole Bing strategy. They also introduced a licensing requirement so I had to get an application key in order to use their control. This isn’t all bad news since they’re pretty lax for developers like me who are just starting out, but still pales in comparison to Google’s (it’s free but if you’re making a big app tell us and we’ll put on extra servers for your app key). I’ve had it fail to register the key a couple times on me to so hopefully they work this all out in the coming months.
Microsoft also released the Bing Web Services SDK which has quite a few nice goodies in it. I’ve got my eye on the Geocode service since I currently use a free service that has been blasted in the past by apps like mine and has subsequently disable access to the free service. Whilst I’d like to avoid doing that each use of the Geocode service counts against my license key. Since I’d like to think that one day there will be a fair few people using Geon I’d like for it to stay usable for as long as possible as I work out the various licensing deals with all the services I’m using, and spreading the load across 2 services seems like a good bet at the moment.
So it might not have been the nicest of surprises but it did spurr me on to add in 3 more information feeds into Geon which I wouldn’t of done for a much longer time had I not been forced to work on it. So overall its good that Microsoft gave me the proverbial boot up the bum.
A few lucky people have already seen the progress I’ve made in reworking Geon into Silverlight but as I won’t be making too much progress on it for a while (enjoying the sun and surf on Turtle Island ;)) I thought I would share the progress I’ve made over the past month or so. It’s a completely different idea to the original where you were only able to monitor a single location at a time. The whole thing is more “Web 2.0” with it being a rich web application that is for all intents and purposes running locally on your machine. This not only means that I can do a heck of a lot more it also helps so if Geon gets popular my poor little server under my desk doesn’t die under the strain of more than 10 users trying to use it at once!
You can check it out now here, however you might want to read on for a quick tutorial of how to use it.
The first thing you’ll notice is the giant map in the center of the screen. If you checked out my previous Silverlight work (a basic translation of Geon from ASP.NET into Silverlight) you’ll be familiar with this. It functions just like Google Maps however this is Microsoft’s Virtual Earth control for Silverlight. Mouse wheel zooms you in and left clicking moves the map around. Pretty simple and intuitive.
On the left is a column of buttons with some familiar terms on them. Clicking any one of them will set them off pulsing to show you that you’ve selected them and clicking on the map would drop that control on the map. For now I’d recommend zooming in to about the 50~100km scale and then selecting the Location button, finding somewhere you’d like to see information about and click on it. You’ll get a circle that’s about 50km in diameter centered on where you clicked and this will be the anchor for the other controls.
Now the only other control implemented at the moment is the Twitter one, so click on it and click somewhere close to the location circle you placed earlier. You’ll notice a big sqaure pop up with the Twitter icon at the top. After a couple seconds or so it should start populating itself with all the tweets from that area, and you can click the blue names to jump to the tweet itself.
You can do this multiple times all over the map, and the tweets will continue to update for as long as you have the app open. If you’re feeling adventurous try clicking the Twitter button again and clicking near the location circle. You’ll notice that it automatically places them around the circle for you. It works well up to about 5 and then the placement starts to get a little weird but it’s at least usable.
On the right hand side you’ll notice a list of things appearing. That’s a list of every “Geon” (piece of information tagged with some form of geo information) and will eventually be a little more usable than it is now. It’s supposed to be a list that you can browse if you have say, 20 different locations tracked and can’t look at them all at once. It will also have a bit more to it when the request/respond part of Geon gets developed, but that’s still a little way off.
You don’t have to use the location field to plop down one of the info controls but since they’re, you know, massive, they kind of cover up the entire area you’re looking at. I’ll also have some options in a future release for the location field so you can refine your area down to a smaller area or filter for a specific term.
So there you have it, Geon 2.0 alpha. Have a fiddle, tell me what you’d like to see, what you hate and anything else you’d like to say 🙂
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….. 😀
It’s that time again! I’ve updated my Geon application to version 1.1 and this brings along with it a UI change, a shift in focus for some things and of course new features. This time around though I thought I’d give you a walk through of what Geon can do and how you can go about using it. This will also give me a chance to explain away any problems that you’ll see, since this is still technically what I’d call a beta (because it’s far from feature complete).
Opening up the Geon page will greet you with a slightly more usable interface than the previous version. It’s now a 3 column layout with statically set widths for most of the items. It’s best viewed at 1680 x 1050 but it’s still usable at lower resolutions. The left column has a set of check boxes for choosing what information you want to see and a filter box at the bottom. The center column is a map that when clicked will change your current location to where you clicked, so you can view an information feed from another area. The right column is for part of a future release that will allow you to send requests to other Geon users in that area for pictures/video/text, and also allow you to respond to requests. For now the right column will only notify you when you change your location, but soon it will display all the recent Geon requests and responses for your area.
Ticking any of the boxes will bring up information from that source. For Twitter, News and Blogs this will appear in the left column as text and links. For Flickr Should you wish to apply a filter for it, say for the rally that took place in Sydney on the weekend, you can put your filter terms in the box below. This is handy if you want to see an information stream for an event that might not be hitting the front page news, as most of it gets drowned out by the headlines. Geon will initially retrieve a maximum of 15 results for each of the services regardless of time frame and will attempt live updates after that. One thing I have noticed is that blog posts and news items will usually be at the bottom due to their publishing time. Tweets, as per their nature, will usually be at the top. The pause check box shows whether or not the feed is attempting to live update, and similar to the last Geon release there are a few reasons why you’d want to stop it (want to read your feed without the scroll bar snapping back up to the top is one).
Now for the juicy bit. Scroll to some location on the map that you’d like to see news for and single click. After a short delay you’ll notice in the response box a message telling you that you have moved to a new location. Your information feed will now start to update from this new area. If you had information from another location open previously it will slot the information in chronologically. If you want to clear your information view before switching location just untick all the boxes and it will clear the feed list for you. I’ve noticed that if you’re viewing a busy area then switch to a quieter one (say from Sydney to Canberra) the new information will be buried in the midst of the old, which is probably not entirely useful.
And now for the all important bugs/known issues:
What’s in scope for 1.2? I’m glad you asked (even if you didn’t ;)):
So that’s about it. I’m still taking all feature requests/ideas for Geon so if you think something would be cool or useful just leave a comment or give me an email.
Well it may be late on a Sunday afternoon but here it is, my 100th blog post! It’s been quite a fun exercise for me and I’m hoping to bring you many more posts in the future. Hopefully they will all be interesting, but I can guarantee that ;). The past 7 months have seen many changes in both my personal and professional life and I feel that this blog has reflected that. I’ve been able to craft my thoughts much more succinctly after writing so much, and my spelling has definitely improved. It’s also introduced me to the wonderful world of web applications, something that I’ve kept away from in the past. All of this would be for nothing if it wasn’t for you, my readers. I just want to say thanks for coming back day after day and reading and commenting on my site, it really does mean a lot when people care about what you have to say 🙂
As promised I have been working on something secretly in the background, and today marks it’s 1.0 release to the public. It’s a hacky, cobbled together web application that will form the basis of a future application that I want to develop. For now I’ll be working on it under the code name Geon which stands for Geological Information, although the final product will be a lot more then that.
For a taste hop on over to here. Also available from the Geon link in The Lab. Click around, see what you think it’s supposed to do then come on back here. If you can write down your impressions of it before you read on, I want to see what everyone thinks about it before I mess your perception with my ideas 🙂
In essence the application is part of a framework for real time information feed based upon location. Right now it gets content from Twitter, Flickr and additionally everyone in the same city (roughly) can talk to each other. The Flickr and Twitter buttons will bring up markers at your location, whilst clicking directly on the map will bring up Flickr pictures and Twitter posts that are located within that area. When you begin chatting it will start to do live updates from your area with other people who are chatting, you can disable this by unchecking the box (you’ll see why you might want to do this in a sec). You can change your user name to, the random string of numbers is mostly me being lazy and no implementing a full user database, that’s on the cards for the future.
Currently it will only return the first 10 Twitter posts but it will return all the Flickr pictures in the area. I wanted to get the chats popping up there as well for this release however I haven’t found a way to get the info windows to update dynamically, I believe this is a limitation of the api wrapper I’m using. Also if you’re chatting any information from outside your area will probably be cleared when it next refreshes. This seems to be a fun bit of AJAX that isn’t supposed to happen, but any partial post back triggers the map to update itself.
Here’s what I think is wrong with it so far (in terms of bugs):
So what’s the big idea for all this? Well what I wanted to make was an application where you could zoom in on an area and see what’s going on there. This application does most of that now but what I’m looking to do is to build in a request information section and then anyone who’s on Geon (it will be available on mobiles….one day!) can submit pictures/text/whatever back up. I thought this would be amazing for breaking news events as long as there was enough users of course 🙂
I’d love to hear what everyone thinks about it and what you believe would be great to add in. I’ve already got a Google Wave integration idea in the works which I’m sure everyone will like. Experience has shown me that your users are the ones who matter, so I’m opening up the floodgates for you guys to craft the direction Geon takes over the coming months.