Software Development

Wednesday, April 16, 2008

Setting up a new WinXP machine

Periodically, when the moon and stars are in the auspicious position, I will perform a OS reinstallation of my laptop.



Inevitably, I need to make sure it works like its previous incarnation
that I have come to love, with all the necessary software and utilities.



So this is a guide (to myself) when I need to perform this ritual again, some time in the near future.



  1. Perform all necessary backups:
    1. Backup my Docs and Settings into external harddisk
    2. Backup my development environment
      1. Virtual machines
    3. Backup Firefox extensions using FEBE
    4. Perform a last sync to Google Browser Sync (so that my passwords will be saved)
    5. Prepare the installation files for the following software:
      1. Firefox
      2. ZoneAlarm
      3. AVG Anti-virus
      4. Free Download Manager
      5. Sensiva + registration key
      6. OpenOffice
      7. Virtual Server 2005 R2

  2. OS:

    1. Use the recovery disk to reinstate the OS
    2. Setup the language input for Chinese

  3. Install:
    1. ZoneAlarm
    2. Firefox
      1. Reinstate the extensions from FEBE
    3. AVG
    4. FDM
    5. Sensiva


Sunday, April 13, 2008

Setting up a dev environment for Sharepoint WSS 3.0

This is my proposed but wrong setup:
  1. Windows 2003 Enterprise SP1
    1. ISS 6.0
    2. .NET 3.5 (installed with VS2008)
  2. WSS 3.0 SP1
  3. SPS 2007
  4. VS2008
    1. VseWSS 1.1 (wrong!)
Turns out VseWSS 1.1 is not compatible with VS2008 (have to wait for 1.2):
  1. http://www.vikramlakhotia.com/SharePoint_extension_for_Visual_Studio_2008_to_be_launched_in_June_2008.aspx
  2. http://www.vikramlakhotia.com/SharePoint_extension_for_Visual_Studio_2008_to_be_launched_in_June_2008.aspx

So for now,
This is the setup:
  1. VS2005 + SP1
    1. VseWSS 1.1
Or
  1. VS2008
    1. SmartTemplates for VS 2008 v0.1: http://www.codeplex.com/smarttemplates/Release/ProjectReleases.aspx?ReleaseId=8852
The other thing to try is to use remote VS2005 machine, i.e. no WSS on the VS2005 dev machine:
  1. http://blogs.msdn.com/martinv/archive/2008/01/21/developing-custom-moss-2007-sharepoint-workflows-on-a-remote-workstation.aspx
  2. For VseWSS 1.1: http://blogs.msdn.com/martinv/archive/2008/03/19/new-registry-file-for-developing-moss2007-projects-in-a-workstation-xp-or-vista.aspx


Reference:
  1. http://www.microsoft.com/downloads/details.aspx?FamilyId=A8A4E775-074D-4451-BE39-459921F79787&displaylang=en

All or nothing approach to functionality

Recently, I added a function in my company's leave application to allow an applied leave to be added to Outlook Calendar. It looks like an integration until you realize all I did was to package the leave information into a .ICS file that can be downloaded and opened inside Outlook.

Outlook intepretes the file and creates an event based on the information contained therein.

Nothing big deal. It was done up pretty quickly and since this is an intranet, everyone has Outlook installed anyway.

Now, so far I can only add the event by asking Outlook to open up the .ICS file. But there is no way to remove an event using .ICS file (not that i know of, anyway). So management launched into a discussion on whether we should implement the "Remove from Outlook" function when staff cancels their leaves.

They are worried, and anticipated (rightly) that staff would ask for "remove" function when they see the "add" function.

But I am wondering. To be able to do removal would require integration of some sort and perhaps 10 times more effort in research and development. The add function in comparision is up and running in matters of man-day effort.

So why is the management worried about having to answer to staff's request about removal function? Can't they just say no to it?
Would we want to keep a useful function out of the hands of our users just because it cannot cover 100% of their requirement? To me having a add function satisfies 90% of my Outlook Calendar needs. I just want to add an event to Outlook when I apply for a leave, without having to type in those date and time details manually! My add function does that pretty well, and I would rather have it implemented for me than not.

So what if i cant remove from Outlook when I cancel leave? Let's look at some numbers:
I have about 20 days leaves each year. So I would on average apply for about 10 leave requests in one year.
By having an Add to Outlook function, I save manual adding of Outlook event 10 times per year.
Assume I take about 2 minutes to manually adding Outlook event.

Amount of time I saved: 2 mins * 10 leaves = 20 minutes/year
Effort to develop a Add to Outlook function: 5 man-days.
So, in a population of say 1000 staff, for the company i would save:

20 minutes x 1000 = 20,000 minutes/year = 14 man-days.



The ROI would be:

14 man-days / 5 man-days (development effort) = 2.8 times



How many times do I cancel my leaves? 3 times per year I guess.
Effort to develop a Remove from Outlook function: 30 man-days.
Time needed to delete an Outlook event? 2 minutes.
So to delete 3 events, I would take 6 minutes/year

So, in a population of say 1000 staff, for the company i would save:

6 minutes x 1000 = 6000 minutes/year = 4 man-days.



The ROI would be:

4 man-days / 30 man-days (development effort) = 0.133 times



The ROI for implementing a Add function is 2.8.
While ROI for implementing a Remove function is 0.133 .

By adding the functionality of Remove to the Add function, I would reduce my ROI from 2.8 to just (2.8+0.133 )/2 = 1.4665

Is it really worth doing it?




Sunday, April 06, 2008

Note to self when buying new Laptop

  1. Check the harddisk's speed. I got a laptop with nice specs but forgot to check the harddisk speed which was only 4200rpm
  2. Tablet! I want to read e-books and i dun mind using the stylus once in a while.
  3. Battery life: Should last at least 4 hours, else i have to lug along the power cable when i am out.
  4. Weight: I thought this wouldnt matter for a guy but at almost 3 kg with cables and battery (i have to carry cable because of point 3) included, I regret not getting a lighter laptop. I am in a dilemma.
  5. Screen size: Current laptop has a 1280x800 and i loved it. But big screen==heavy, so this goes against point 4.
  6. Screen texture: matt or glossy? My current laptop has a glossy screen and i am always amazed by how nice the images looked. But once outside, I cant read the text properly. I am in a dilemma for this too.
  7. Consider the brand and warranty. My 2.5 year Acer is showing its age and parts are breaking down. Good thing i got a 3 years warranty that I plan to make full use of to recoup the extra SGD300 I shelled out.
  8. Handedness of the laptop. I have the strongest suscipion my Acer 5504 is made for lefties: first, all the USB ports are on the left side, so my external mouse cable runs a long way to reach the port. Second, the fan exhaust locates at the right side, right where my hand is when using the mouse. Perfect for keeping your hand warm in winter. I would appreciate such 'thoughtful' design if only Singapore is not such a hot country.
  9. Keyboard: I hate the keyboard config on my Acer, it rearranges my Ins-Del-Home-End-PgUp-PdDn keys! I hate it.
  10. Audio: Make sure I remember to test the sound. Current Acer is too soft!
  11. What I like about my current laptop: Hardware wireless switch.
  12. Extras: I do not need the following: bulit-in Optical drive, CF card reader, trackpoint.
  13. What else?