Tuesday, December 29, 2009

My top 5 Tech Moments of 2009

As year 2010 is approaching, I am taking a look at all things significant (to me) from year 2009 in retrospection, and here’s the rundown in reverse order: 

5. Windows 2008 R2

The Windows 7 for geek/developers. Installed it, loved it, and still having random blue screen on my Vostro 1400… anyway, its one of the best Windows i had used so far (the last time I said this was on Windows 2008). The new taskbar reminded me of Mac’s Dock, and works just well. Also am impress with how the new Network settings are presented, everything common can be done through the notification area, neat!

 

4. Owning my first Mac

Unlike a lot of tech guys in the field, I don’t remember owning a Mac before. I vaguely remembered an IBM AT during some point of my early computing days but that is as far as it goes :D

Being a windows guy for my entire life, on 2009, I finally got myself my first Mac - the most entry level Mac Book (white), and, the reason? to try out Xcode… hey… You can’t blame a tech guy for being techie! Anyway, the Mac fluent user experience and iLife, swipe me away straight away!! Wow, not to mentioned the amount of cool effects I can do in iMovie, and the amount of time I spent jamming weird notes in GrageBand, the photo of my trips popping up in different part of the globes in iPhoto, all in all, one word, “Fascinating!”.

Now that I had seen elegance I always force myself to rethink a few times when I am architecting my solutions - Is my solution already Mac’s elegance or only Windows usable

3. New Media – Twitter, and Podcasts

Now, talk about late adopter, how about start twittering on 2009? I started to look at twittering after reading Time Magazine’s article on twitter, and wonders, “how the h*** the entire world had passed me unnoticed!”. Anyway, after twittering for a while, my take? “Nah, its overrated”. Maybe it matters more to people working on media. The nice things I get so far from twitter is maybe nice tips about AppStore sales from AppSlappy, some great tech news on SharePoint, some great tips and new plugin of jQuery… Maybe, I’ll be more into twitter when more of my friends circle starts to twitter regularly.

Now, podcast is one of my life changing events in 2009. Since moving to Hong Kong at 2008, I had to endure daily, twice, 1/2 hour commute in MTR. Not too bad, but still a time waster, furthermore, the train is so crowded that one hardly have any places to stand, not to mention read or surf net. That’s when I ‘discovered’ podcasts. From the cool gadgets (Engadget Podcast), to daily doses of tech news (Buzz Out Loud), to the entertaining Twitt with Leo and gangs, to the far-fetched (for me) but real This American Life, commuting is never the same again. Imagined I had transformed from never-listen-to-walkman guy to never-leave-house-without-earphone guy overnight, this sure is one of the ‘moment’ in my life.

2. SharePoint Once Again

My bread and butter. This year, I ‘discovered’ web 2.0 in SharePoint (2007) using a combination of jQuery, .NET 3.5, AJAX (JSON) and imagination. Had the chance to perfect this trade on a few interesting projects, and my client just loves the end results. Talk about ‘elegence’…

Another milestone this year was the time I finally touched SharePoint 2010 for the first time, in a lab, in SPC2009 at Las Vegas. SharePoint had came a long way since 2001! More opportunity for customization consultants like us in the future? Not really! As SharePoint 2010 had fixed a lot of kinks of 2007, I foresee much DIY in-house development scenario for SharePoint 2010 to come in year 2010. Anyway, this is the reality of tech life. Everyday is a new day, and we just got to work on perfecting our skills and prepare a strategy to handle the unknown. And I still have high hope in my company in able to pull this out, as how we had did it switching form 2001 to 2003, and 2003 to 2007!

 

1. Owning my first & second iPhone

Again, talk about late adopter… Anyway, finally got myself an iPhone 3G early 2009, after it had been buzzing for a few years (replacing my Samsung Omnia WM6.1). Bought a 2nd one (iPhone 3GS) this Oct (argh the Apple tax!)… and, I had never been as happy about a phone before!!!!

Still remember vividly the first few moments when I started using iPhone, the way it automatically connects to Wifi when awoke, the full html in email, the beautifully rendered and fully functional webpages in Safari, the instant locating in Google Map. The swiping motion and fluent animations. and don’t get me started with all the fantastic apps that I had bought. These all, adds up to an unparallel mobile computing experience! I cant imaging how i live with the awkward lag and weird navigate and limiting functions of my Omnia phone before this!

My phone is literary my couch computer nowadays. On a Sunday morning, I’ll relax on the couch and use the phone to surf for web comics, news, and even do some internet banking. Finally on 2009, one of my dream came true. As I had always fantasized of being able to do the exact same things with a ‘PDA’ since I first own a HP Jornada at 2000. Kudos technology! Kudos Apple! and Kudos for a great year, 2009!

Wednesday, December 2, 2009

Changing the Forms of your SPList in WSS/MOSS 2007

Had been browsing the web and found no good solution to this, I think I’ll write about this instead.

Basically the whole idea is to change the Display/Edit/New form of a specific list to point to another page, rather then the default NewForm.aspx or EditForm.aspx or DispForm.aspx (for custom lists for example). And would like to do so without going through all the pain of creating a new list definition.

Now, a quick solution would be to use SharePoint designer, where you can change those form’s URL directly through the List Property. However, a caveat, you are only allowed to point the form URL to a page that exists in the current web. In other words, you cannot point them to custom pages you deployed _layouts folder. A possible solution here might be writing ‘stub’ pages, that will further redirect users using javascript to the correct _layouts pages.

Another more elegant solution would be to change the forms’ URL programmatically through SharePoint DOM. However, take note that SPForm object cannot be modified. For example, the following will give you error:

SPForm newForm = list.Forms[PAGETYPE.PAGE_NEWFORM];
newForm.Url = "xxxxx";

Now, the fun part is, although SPList’s forms do not change,  SPContentType allows you do to so! The solutions I have is:

  1. Configure the list so that it supports ContentType (in advance list settings). For Custom List, this will create a content type named “Item” and content type named “Folder” for this particular list
  2. Using powershell/other coding means, do the following:

SPContentType ct = list.ContentTypes[0]; //assume it is the first
ct.NewFormUrl = "_layouts/MyNewForm.aspx";
ct.EditFormUrl = "_layouts/MyEditForm.aspx";
ct.DisplayFormUrl = "_layouts/MyDisplayForm.aspx";
ct.Update();

Now, this particular list will use the correct pages you deployed in the layouts folder!