October 2008 - Posts

MSDN Day Presentation: Scrum Agile Project Management with Visual Studio Team System

Delivered a talk at MSDN Day today (October 28th, 2008) regarding Scrum and Visual Studio Team System.  The crowd was pretty good and the talk went quite well.  You can see some pictures from the event at Wely's blog.

In the following weeks, I will try posting more information in Bahasa Indonesia regarding Scrum since we don't see much information regarding this topic locally.

I was a bit surprised to see that not a lot of people know or heard about Scrum when I asked about it in the event.  Either they were shy or really never heard about it. Hmm...

You can download the presentation in Powerpoint 2007 format here (2.19MB zipped). 

If you are still using Office 2003 and can't open the presentation above, you can download a plugin for Office 2003 to open 2007 documents here or you can download the presentation in Powerpoint 2003 format in the SkyDrive link below (for some reason I couldn't upload this one to my blog).

If anyone is interested in finding out more about Scrum / agile practices in general, let me know.

All in all, it was a fun thing to do.

 

Presentation in PowerPoint 2003 format:

 

Link for video in the presentation:

Agile vs Waterfall: A Tale of Two Teams 
Agile vs Waterfall: A Tale of Two Teams

 

Share this post: | | | |

One Reason Why I Don't Like Access Very Much...

Arrgghh... KB194374

 

emoticon
emoticon
emoticon

I've been battling this in Access 97 legacy application, which I mentioned in my other post, without knowing that I was running into this silly issue since the query expression is embedded in a listbox control and for whatever reason didn't trigger an error and so, my listbox kept showing up empty on new boxes (machines) but appeared just fine on old ones.

Finally figured out that this was the problem and it fixes itself after following the KB.  I found it a bit silly of a solution, but ...

 

emoticon

And the offending query is something like:

   1:  SELECT 
   2:      aNumber, 
   3:      Format$([aDateTime], "dd/mm/yy hh:nn") as [Time] 
   4:  FROM 
   5:      SomeTable

the Format$ function is the culprit.

Share this post: | | | |
Posted by Jimmy Chandra | 1 comment(s)
Filed under: ,

Unexpected Method Group Placement

This thing has been around since C# 2.0, but recently, I saw it in unexpected places as a replacement for a Predicate<T> in a parameter.

Usually you found it as the right side of an assignment / removal of an event handler such as:

//using Method Group as a shorthand
OKButton.Click += OKButton_Click;

//instead of the long declaration
OKButton.Click += new EventHandler(OKButton_Click);

While playing around with LINQ and trying to compare two sets of items and find out what value in set B that is not in set A, Resharper suggested that I replace my lambda expression to a Method Group.

The original code is like so:

   1:  List<int> A = new List<int>() { 1, 2, 5 };
   2:  List<int> B = new List<int>() {1, 4, 5};
   3:  var intersection = A.Intersect(B).ToList();
   4:  B.RemoveAll(x => { return intersection.Contains(x); });

After refactoring with Resharper, line 4 above is changed to:

B.RemoveAll(intersection.Contains);

I find this quite puzzling at the first glance, but it's cool since it just know what to infer between the two methods (RemoveAll and Contains).  I don't have to explicitly tell it that I want to use the intermediate lambda variable x in both methods. Kewl!!

emoticon

As a side note, that listing above can be shorten further to:

   1:  var A = new List<int>() { 1, 2, 5 };
   2:  var B = new List<int>() {1, 4, 5};
   3:  var query = B.Except(A);
Share this post: | | | |
Posted by Jimmy Chandra | 2 comment(s)
Filed under: ,

The Lighter Side of Kid and Vista

I was spending my time playing around with my boy on last weekend.  As I mentioned in previous post, he is still quite young (2.5 years old), but he is showing a lot of interest in computing.

During the session, I got an idea about introducing him to one of Windows Vista's feature which is speech recognition.  So I started by telling him that I could actually talk to the computer and have it do things for me.  I started giving some voice commands to open some applications, navigating through them and doing some dictation.  Being at the age that he is, he started parroting me.  I said, "Open calculator".  He also did.  I said, "Stop Listening".  He followed in the same suit.   But, of course, Vista was only trained to recognize my voice (since I previously trained and tuned it to me).  But that was fun.

Then I got an idea about trying speech recognition with one of his favorite game on Vista, which was Purble Place and to my surprise, I can play the game through speech recognition, which I think is pretty cool :).   For example, in the cake factory part of the game, I can utter commands like, "Vanilla", or "Chocolate", etc. and the game actually responded to my voice.  There is of course the uber "Show Number" or "Show Mousegrid" commands when everything else failed, but still, the Vista team actually put some voice command capability into the kiddy game.  I am impressed. 

emoticon

We tried to do the same with the new Microsoft Tinker as well, but I couldn't get it to work properly in that game.

While we are on the subject of Tinker.  This is one cool game :)  My kid is really into this game at the moment or more like the Tinker Level Editor part instead of the actual game.  For those who doesn't know it, Tinker is a Sokoban puzzle like game where your objective is to get Tinker the Robot to a swirling floor tile.  But you have to navigate the maze / puzzle by pushing objects, throwing switches, collecting batteries, parts, bouncing laser beam on mirror / switches, melting ice blocks, using magnet and switch to move metal block, teleporter tiles, bombs, etc.

While the game itself is cool, the editor allows you to create your own puzzle level.  I've been showing my kid some weird level design that is actually quite fun. We created an elevator and escalator simulation level.  You go down one end, and then go up by the teleporter tile again.  A level where you bounce laser beam all over the place and fried Tinker in the end, hehehe.

emoticon

If you own Vista Ultimate, do Windows Update and download it.  It's worth it.

Share this post: | | | |
Posted by Jimmy Chandra | with no comments
Filed under: , ,

Onionhead strikes again...

emoticon
emoticon
emoticon

emoticon
emoticon
emoticon

Just testing my custom emoticon Windows Live Writer plugin.

Please ignore...

 

emoticon
emoticon
Share this post: | | | |
Posted by Jimmy Chandra | with no comments

Storage in the Cloud

Not sure when it happened or I was just unaware of it until today, but today when I was actually paying attention to the advertisement part of my Windows Live Messenger,  I saw the ads for Windows Live SkyDrive.  Curious, I decided to give it a try.  Apparently SkyDrive is available now for Indonesian Windows Live user :)

5 free GB of storage in the cloud.  Not a bad deal indeed.

Check'em out.

Share this post: | | | |
Posted by Jimmy Chandra | 3 comment(s)
Filed under: ,

When I was Young ...

When I was young, there was no such thing as the Internet,

There was only BBSes

When I was young, there was no such thing as flash disk,

There was only floppy disks (5.25" at that, real floppy).

When I was young, Borland didn't suck so much,

and Turbo Pascal rocked!

When I was young, there is no 2.4million color graphical mode,

You can only have either a crappy 4 colors or a "higher resolution" black and white graphical mode.

When I was young, 10 MB harddisk cost even more than 1TB current harddisk.

When I was even younger, there was no such thing as IBM PC Compatible,

There was only ZX Spectrum, Amiga, Apple II, and Commodore 64

When I was even younger, we don't even use floppy disks,

We used casette tape to save and load programs and it tooks forever to load 12kb of data!

But it was fun :)

Share this post: | | | |
Posted by Jimmy Chandra | 5 comment(s)
Filed under: ,

Something Completely Different Or Not?

A friend of mine pinged me on the email yesterday and asked me to check out something that he thought was cool.

It was the Google App Engine.

So I decided to take a look at what this thing is all about.  Downloaded the SDK, Documentation (for offline viewing), Python 2.6 and started going through the tutorial and some of the webcasts.

After playing around a bit with it, I really find it quite interesting.  Well, I'm pretty sure you've seen this sort of stuff before.  It's really nothing new.  You know, web MVC style application framework, but this time it is in Python and Django template, instead of ASP.NET, C# or VB.NET or Java, etc.

It came with some essential components like caching (Google implementation of memcache), email, queryable data store, & authentication (so you can login using your gmail account).  You could also create your application and mash it up with some other online Google App like Spreadsheets, Picasa Web Album, etc. by using another downloable component.

One interesting note on the subject is that once your application has been developed and tested locally, you can (or rather, should?) upload them to Google and they'll host it for you online which is very nice.  They provide the scalable infrastructure, with ample bandwidth and lots of other nice things like applications control panel, etc.  Each Google account can have up to 10 separate applications hosted on Google AppEngine hosting space.

Speaking of Python, I've never really taken the time to actually seriously play with Python.  Played around a little with IronPython, but that's about it.  After playing around with the App Engine, I found the language to be quite enjoyable.  The indentation rule sort of throw me off a bit (sort of brought me back to school when I had to do some COBOL and RPG programming, where indentation really matter, eeek), but you get used to it after a while.

Do we have something like this on Windows Live?  Or will we have one soon?

Check it out, expand your horizon.  It's fun :)

Share this post: | | | |