For the latest info, check out Ruari’s blog and his photo gallery. Sounds like they’re off to a good start!
Category: Development
SA Team for Imagine Cup
I just read an IT Web article on the SA entrants to the Imagine Cup. For those who don’t know, Microsoft South Africa has run Project Firefly for a number of years… Its basically a software development competition amongst SA Academic institutions. The Imagine Cup started after Firefly and is an international “version” of the competition.
I was fortunate to meet the guys from PE who are going to Japan this week for the international competition. Their system looks amazing! I had no idea that people at varsity had the ability to write such cool and useful software in .Net.
Their IDS (Intrusion Detection System) is damn awesome in what it does, and they’ve done some amazing work on it. I know its not from some big name that we can all trust, but after hearing them talk and seeing a demo of some of their project I seriously think they have a winning product. If I was a system admin I’d seriously want some of their features on any IDS I bought for my company.
Imagine sitting at home on a weekend, and getting a message on your iMate phone or other Pocket PC based phone to tell you that a user’s PC is being used to hack your network. For most people that would be good enough, but in this case it goes further. Rather than having to get to a PC or rush into work, you can quickly and easily disable their account, shut down their pc, etc, right from your phone. Just push a few buttons and get back to watching the game/braai/beer/etc. No stress, no hassle, network intrusion averted. This example is just one of the many super cool things that their system does!
Aparently they have only got 15 minutes to present their project in the first round, and 10 minutes in the 2nd round (excluding a 5 minute demo). I have no idea how they’ll get that right because they could spend hours talking about all the features they have. Aparently they built most of their UI controls themselves, so their UI is really cool and was made locally!
Needless to say I’m VERY impressed and I hope they get the top spot in the competition!
I’m torn between two statements “There are two kinds of people on the earth, those who hack a use in Google Earth and those who don’t” and “There are two kinds of people on the earth, those who see the value of Google Earth and those who haven’t yet”.
A short while after the bombs in London someone posted a link to a file that contained the co-ordinates of the various sites where the bombs exploded. It was a .kmz file and when I “double clicked” it, Google Earth opened and scrolled the locations into view. It was pretty cool.
For an *AGE* I’ve wanted to do something with the waypoints of geocaches in South Africa so that I can visually see how far the caches are from my house, and try and plan which caches to get in which order when I go caching.
I knew that GeoCaching.com gave you the ability to download the cache coordinates, so I set about learning their format (based on the file I downloaded), and I did the same for the Google Earth .kmz file. Basically they’re both simple XML files (the .kmz file is just a zipped up .kml file which contains XML). Unfortunately as a non-paying GeoCaching.com member I can only download the cache locations that are displayed in their grid, so I had to manually change to each page of their grid and download the locations on the page.
20 minutes later I had them all downloaded, and merged into one big file, and I started processing them. I’m not the biggest guru when it comes to working with XML so I kinda hacked my way around some XPath queries and XPathNavigators in .Net but I ended up with a pretty easy way to get all the info out of the GeoCaching .loc file, and I then outputted the right format for the Google Earth .kml file.
The outputting of the .kml file is really bad because I got lazy so I’m not using .Net objects to create an XML Document or anything, I just use Console.WriteLine and write out what I want. (I’ll fix that when next I have some time.) But the result is a list of all the caching locations in South Africa. And here is “Paul’s List of Google Earth Coordinates for GeoCaches In South Africa” the list as of yesterday (12/07/2005)
[Update: There was a problem with the link to the file – aparently IIS 6 didn’t like the file type, butafter adding a custom mime header thingy to my IIS config, it was all sorted out.]
Reflection Talk
Here are the notes from the talk I gave last Wednesday night at Torque IT (Thanks for the venue and the cool caffeteria)…
I hope it went pretty well for the guys that were there… I certainly enjoyed giving the talk. π
Here are the promised notes/slides/samples.
The PPT is here and the code samples are here. The PPT’s have word for word what I wanted to say. The samples are all there, I’ve included a file “demos.doc” which are my notes to myself telling me what to show to the guys. I didn’t include instructions to myself to tell me to copy DLL’s from one folder to another (which I needed to do in the Dynamic UI demo).
The whole reason I wrote out word for word what I wanted to say was so that even if you didn’t go to the talk you could get the slides and demos and step yourself through it. (My aim was to put in enough info so that someone from another town could take the slides, notes and code and with a few modifications they could present the material themselves…)
If there are any hassles, let me know. π
Well, the talk to the JHB group of SA Developer.Net was really cool. I’m not sure if I showed them much new stuff at all… I’d have loved to have some eval forms or something to figure out how everyone found the depth. I kept alternating between thinking that I was rushing and thinking that it was all just way too basic for everyone… Regardless of how it was received by people, I had lots of fun. I was nervous as all heck before I started, but I was pretty ok after the first 30 minutes of talking.
I got my new motherboard on Tuesday… (after like 2 months of waiting before I ordered it, and another month after I ordered it) So on Wednesday after the talk I decided to install it. Little did I know what I was in for. Firstly I couldn’t get my PC to “see” both my hard drives… In the end it turned out that I had plugged in the wrong cable… Then XP didn’t like the motherboard so it wouldn’t start up – in fact it would just keep rebooting the PC. I finally found my XP cd and managed to boot from that, and I thought I’d go to the Repair Console… which was really not a whole load of help… Eventually I managed to get the CD to try and repair the installation… but it hung after about 5 minutes of work. It took me a good while to realise this, by which time it was about 2am and I needed to sleep.
Lack of sleep the night before and the late night caused me to oversleep quite badly so Christie and I didn’t go to the Pilanesberg like we’d planned… But we had a pretty cool day anyway. (Found a nice shop in the Broadacres centre that sells cool wooden puzzles) Last night I tried again to fix my XP… only to find that it needed my CD key, and since we’re house sitting at the moment I didn’t have it with me (I only took the CD from home). So I’ll try again this evening.
At about 8pm as we were going to get supper, I got an sms from an old friend of mine (Matthew) who told me that another old friend of mine (Lynn) was on The Apprentice… So I had to stop to watch that… Also the one dude who almost got kicked off (Nthato) was aparently at my old school while I was there. Anyway, the girl’s team won, so Lynn is still in the game for next week.
I also got the memory card for my phone on Wednesday. So being without a pc at home I’ve had to wait till today when I’m back at work to try out putting music, etc on the phone. I thought it was going to be a nightmare because with only WMP9 on the phone, WMP10 on my pc wouldn’t sync nicely with it. But it picks up the device and it will even sync with it. What’s even cooler was that I was under the impression that I’d have to sit and convert all my WMA files to a lower quality so that I could fit them on my phone… but I found out that if you’re tryiing to sync too much WMP will convert the files for you… But I didn’t want to wait till I ran out of space before I started making my files smaller, so I chose the option in WMP 10 where you specify for yourself what is the max quality you’ll allow on your phone. I’ve gone for 64kbps, which is bad for audio fundi’s but considering that I’m just listening to audio talk shows and music while I’m in queue’s and out and about, I’m not complaining. It’s even working with Audible.com‘s player so I can listen to my audio books while I’m out and about… (I just need to figure out how to get more than 2 minutes 39 seconds of audio onto my phone at a time. :()
5 hours and 15 minutes to go…
With 5 hours and 15 minutes to go till my first talk at our local developer user group (SADeveloper.Net) I’m feeling pretty good about it… well, that is if you ignore the nearly crippling nervousness that I’m currently experiencing.
I have 12 slides, about 11 pages of notes (with key points almost finished being higlighted so I can quickly find my place) and 10 demo’s ready to go (about 3 of the pages of notes are just point form reminders of what I’m meant to show in each demo).
Unfortunately I only got my new motherboard for my personal PC yesterday, so there was no way I was going to set it up to my satisfaction and get the talk finished off in time… so I’m still using my friend’s laptop. I’m a bit nervous, so I’m gonna have a backup zip of it all on my website and one on my memory stick. So if all else fails, I’ll at least have my code with me, and I’m pretty sure that one of the other geeks there would have a computer I could use if it fell over on me.
Anwyay, it should all be fine… I’ll have everything highlited and ready to go in the next hour or so and then I can relax.
So this morning Kevin asked for comments, and here are mine.
1) What is right with SaDeveloper.net? & 2) What is wrong with SaDeveloper.net?
1) It exists.
2) It doesn’t meet everyone’s needs so people are complaining. π
But seriously, have you thought about it for a bit? Its a vehicle of the community. If its not “by developers, for developers” then it shouldn’t be there and as developers we should be able to start something ourselves. No – I’m not advocating that we split the community. But developers will find a way if what they’re given doesn’t work for them. (Just check out all the blogs that are around – great technical content, great chatting)
I think we need a core GROUP of developers. As far as I saw, poor Arno had to do all the work previously. The one or two times I suggested a feature I was told to wait for it. The one main feature I wanted took a year to come around. For me that was just too long to wait, so I stopped reading and replying to the forums. With a GROUP of developers who can all make changes this would go much faster. Of course we would end up with absolute chaos if there was nobody overseeing the changes, keeping their quality up to scratch, and keeping them meaningful to the community. But surely that’s part of what the leads could do? They could manage the community development of the site – they’re the people best suited to doing it. Maybe with the help of some of the SA Architects we could setup a nice framework within which the whole development of the SA Developer/Architect portals would work?
3) Are you happy with the way the forums are run?
Yes, and no.
1) My take on the chat forum and post count.
Whether or not the posters to the chat are doing it just to increase their post count or not, the “Top posters” will always be looked at in awe by newbies and even some of the oldies. I think idea is that its some kind of recognition for putting in effort in the community… e.g. Mr X posts a lot so therefore he must be involved. Which leads to “Gee, Mr X is cool because he helps out the community”. For newbies that’s probably going to be their perception, and they’ll listen more to Mr X because he’s posted 10 000 posts (even though he knows nothing about computing), and they’ll ignore Mr Y with 500 posts who is actually the expert in the field.
But having said that, the chat forum is clearly beneficial to some people. I have time to chat, I just don’t like the interface, and I’m not sure what interface would work better for me. I prefer chatting “one on one” in MSN. Until Andre O MSN’ed me a while ago I was pretty un-involved in the SA Dev meetings. I’m the kinda guy who won’t walk up to a stranger and get involved in a conversation. Now I “know” at least one of the people in the meetings so I’m more likely to talk to people when I’m there. I prefer IM’ing – selected content comes to me (and its the whole content, not just the first post, but all the follow ups too, and its quick and easy to interact with)
2) Technical forums.
Technical forums are cool, but I don’t really read them much. I’m not sure why, I guess when I have questions I want to find answers “*NOW*”, I don’t want to post and wait a few days before I get a response. So I go straight to CodeProject, Google and DotNet247.
I have hassles with replying to posts that require me to setup a fairly specific environment before I can reply with a meaningful answer. I personally hate writing replies to posts that say “have you tried X?”. I’m trying to reply a bit more to posts. I’m pretty quick to skip over posts where they’re not in my immediate field of expertise, which generally leaves me with very few posts that I can reply to.
Oh yeah – one of my hassles is that I use an RSS reader to read the forums, and I don’t know when a thread has had comments added to it. (Only new threads are highlighted, and old threads with new comments aren’t marked as “updated”) So I would never have known about this post if Kevin hadn’t blogged about it. (I think someone said I should talk to them about trying to do this, but I forgot who it was or who I was meant to contact… Oops. :-()
4) Are you happy with the choice of leads and do you feel they are doing the right job and their jobs right?
Um… what choice? I didn’t choose anyone. Nobody asked me to choose. To be honest, I don’t know who they are or what they’ve done for the community. I was pretty frustrated by a post I read where the authore was getting upset and scolding the community for not responding to an opportunity when he himself hadn’t responded until the day of his rant. I was just plain pissed off when I found out that it was a Lead who had made the post. To me, that’s the wrong attitude for a lead to have. If I judged all current leads by that example I’d say they all suck. If I’d had a choice in who became lead I’d probably be pissed off at myself for choosing someone who didn’t have a good attitude towards the community. But I didn’t have a choice, so I got pissed off with him and with whichever dictator it was that put him in “office”.
I use the word “dictator” on purpose because without community input in the process of who gets to lead you’re asking for BIG problems. I admit that we (the community) are possibly not the most informed people as to who is making an effort and who would make the biggest difference, so sometimes we will choose badly. But that’s how community works. I know we can’t make this a whole “political” thing, but if the current leads were to profile 5 potential leads, list some of the things they’ve done, etc, get votes from the community and then go away and use those votes to help decide who they’d make a lead, that would be cool. (i.e. They just use the votes as a guide – but they’d have to make it VERY clear that votes are just guidelines and not directly related to who becomes a lead) If the community voted greatly for Mr X, but the leads (with all the extra information they have at their disposal) think that Mr Y would be better suited, then maybe they should put make them both leads and just dish Mr Y more responsibility. That way Mr X has a chance to shine, and a chance to learn the ropes before we end up with a situation where the current leads leave and appoint new leads to replace them who have very little experience in leading the community (things like which contacts have been established with company’s and what resources have been given to them to use.
Having said that, I’m highly impressed with the new leads in Gauteng – we’re actually having meetings again! And not just one meeting, but they’ve been planned for months in advance, which is AWESOME because now I can arrange my schedule to fit in with the meetings. (I actually have something on every Wednesday night, but at least now I can plan ahead enough to get someone to fill in for me if I need them to)
(If you read this Simon, don’t think I’m saying bad things about your organisation of meetings without understanding that without you we wouldn’t be where we are now. When it comes to the people I look up to in the SA Community, Simon was one of the first people who stood out for me. I seriously don’t think we’d be where we are without the people who laid these foundations. So to all the people who have been involved previously – you guys/gals rock! Thank you for what you’ve done! Its probably not been said enough, but you do rock!)
I think lead’s are best “rated” based on what they’re doing in the community. Ruari and co did some awesome things in Cape Town. I can’t help but wonder if its a bit of his influence up here in JHB that’s gotten things moving a bit here too. (Anyone got enough cash so we can pay to get him cloned? :-))
5) Why does toast always fall butter side down?
It does that just to piss you off… You see, I think that butter is actually a highly intelligent life form (well, the milk its made from is the intelligent one). Kinda like the mice in the Hitchhiker’s Guide to the Galaxy. And as such, it had a pretty nice existence inside the cow, so then one day us humans squeeze and pressure it out of its happy home, and then churn it up and whip it and do all sorts of other things to it before we eat it. So falling butter side down is its one last ditch effort at revenge.
6) What changes could be made that would make you feel more positive about SaDeveloper.net and get you to want to be more involved?
I like what’s happening in JHB right now. To me, the meetings are more important than the forums. (Don’t flame me for saying that, its just my stupid opinion – you’re entitled to have your own stupid opinion but just don’t force me to agree with it. :-D)
If we could change one thing on the forums, I’d make it so that when a thread had a new comment added to it, the feed would show it as “updated”. (I’m not sure how RSS does that, or how my RSS reader does it, but it would be cool. And I’d be prepared to help build that if someone would point me in the direction of the code)
My own thoughts
I heard someone say that a fair amount of the discontented people were new members, and Kevin seemed to think that the discontented people were from JHB.
I think we’ve lost a lot of older members in the last year, and I think members who joined in the past few months (from JHB) will have seen a community in transformation and I doubt they’d see the value in it. I think some people have been upset for awhile and haven’t had a space to vent. I think some people have been offended/hurt by the recent changes, and I think some people have been frustrated/ignored in the past and have been offended/hurt because no changes happened.
Unfortunately that’s part of community too. I don’t envy the leads. Its not a matter of finding the “middle path” (the one that offends the least people on either side) but a matter of deciding on the “right” path and going for it regardless of the consequences. Of course because there is no one source of all things right for communities, the leads will have to do their best to find the “right path”. The community will need to support them, and give them feedback. I don’t think a community is built by the leads. I think the community has a responsibility to follow the leads, but also to question them when they think that they’re heading in the wrong direction. If members of the community question more than they follow then they either need to leave the community and find one that works for them or they need to re-evaluate their attitudes towards the leads/community. The leads need to listen to the community because without a community there would be no leads. (without leads the community would still be there, they just wouldn’t be as strong a force as they could be with the right leads)
With all the change happening it will be all to easy to fall into the trap of “death by over analysis”. Good starting points are in place in JHB, Ruari left good things in Cape Town, and Durban seems to be going strong. I know us Jo-burgers like things “NOW!NOW!NOW!”, but it looks like the right things are coming. I certainly hope that the few good suggestions that come out of this exercise are really listened to.
On Saturday I downloaded Embedded Visual C++ 4, Service Pack 4 for eVC++, the Pocket PC 2003 SDK, the SmartPhone 2003 SDK, the Mobile Application Development Toolkit, ActiveSync 3.8, the Smartphone 2003 SDK SPDPS Update for eVC++4.0 SP4, Windows Mobile 2003 Second Edition Developer Resources, and Windows Mobile 2003 Second Edition Emulator Images for Smartphone.
First of all I just tried downloading the Smartphone 2003 SDK, the Mobile Application Development Toolkit, and the Smartphone images. I installed them and wrote my very first application. Unfortunately when I ran it in the emulator, I got a “Not Supported Exception” on the line of code that setup the Menu on the form. So I assumed that I’d somehow gotten an old version of the .Net CF on the emulator image, but since I’d downloaded all the newest images I was confused… So I decided to install the PPC 2003 SDK, and the Windows Mobile 2003 Developer Resources. But that didn’t help. So I downloaded the rest of the tools and thought I’d try again. Unfortunately that meant that I’d have to uninstall all the other tools before I could install eVC++. And that mission was going to have to wait for another day.
Eventually today I got tired of people asking me “So have you written an app for your phone yet?” so I decided I’d do the installs. About 1/2 way through the installs I thought “Heck, why don’t I just google for +’NotSupportedException’ +’Compact Framework’ +’Menu’ – maybe someone else has had the same problem.” So I searched, and I found.
The first result was from a Quick Start on GotDotNet – and it explained everything. I found out that while the designer in VS.Net lets you do anything you like with the menu’s, the framework is not so forgiving. On a SmartPhone, you can only have 2 main menu’s, and the first one is simply not allowed to have any submenu’s. This is the way the UI’s on Smartphones are supposed to be designed so that they remain consistant across applications. So I understand the reasons, but I just wish that Microsoft would have thrown a meaningful error like “This isn’t supported because the first/left menu on a Smartphone cannot have any sub-menus”. That would have told me EXACTLY what I’d done wrong!
Anyway, so I quickly swapped my menu’s around so that they fitted in with the “best (and only way you’d get it to work) UI practices”, and voila! My first mobile application running on my Smartphone actually works. It simply pops up a message box that says “Hello!”, but its a start. π
Go #Develop!
I got an e-mail from #Develop this morning that said the following:
To whet your appetite for the upcoming Beta of #develop 1.1, we have created a Preview Release (not quite unintentionally abbreviated to PR). It is not as stable and feature-complete to label it a Beta, but it comes loaded with a couple of new addins that definitely make it worth a look (or two). In that vein, we have provided screen recordings of how to use those new features, please see the links provided.
Demo: New Help System
Demo: XML Editing Features of #develop 1.1
Demo: NAnt Integration
Demo: PInvoke Addin
Demo: #report
New and noteable: InitializeComponents method readonly
I took a look at the #report demo, and it looks quite cool. They’ve done a lot of work on #develop since the last time I took a good look at it, and its actually quite a cool system.
PS: I’m pretty sure that .Text will mess up the formatting of my blog when I post this because for some reason Blockquote’s always seem to do that, and I always seem to forget how I fixed it the last time I had problems with block quotes…
I just read about the “Beta Experience” for VS 2005 from Fabrice Marguerie’s blog:
What can you expect from the Beta Experience?
- Visual Studio 2005 Team System Beta 2
- Team Foundation Server Beta 2
- WeFly247 training DVD
- SQL Server 2005 Standard Edition Community Technology Preview
- The Beta Experience newsletter (6-weekly, terminated with the launch of the final version of Visual Studio 2005)
Now that looks cool, and you can register to be notified on the day that the beta experience goes live. π