Sunday, November 7, 2010

Deleting Windows system folders on an old hard drive

I had to install Windows 7 on a new hard drive after my computer died. The installation went well and I wanted to reclaim some hard disk space from the hard disk where I had installed Vista. However, I couldn't delete some of the system folders. If you're having the same problem, you can try what I did.

  • Right-click the folder.

  • From the context menu, click on "Properties".

  • Click on the "Security" tab.

  • Click on the "Advanced" button.

  • Click on the "Owner" tab.

  • Click on the "Edit" button.

  • Change the owner to the current logged in user. If user is not found, try to find it by clicking on the "Other users or groups" button.

  • Check the box for "Replace owner on subcontainers and objects".

  • Click on the "Apply" button.

  • An alert box will appear with the message "If you have just taken ownership of this object, you will need to close and reopen this object's properties before you can view or change permissions.". Click on the "OK" button.

  • Click on the "OK" button.

  • Click on the "OK" button.

  • When you are back in the "Security" tab, select the "CREATOR OWNER" option from the "Group or user names" combo box.

  • Click on the "Edit" button.

  • If the box for "Full control", "Allow" is not checked, check it. Click on the "Apply" button.

  • Click on the "OK" button.

  • Click on the "Ok" button.


Now you should be able to delete the folder.

Sunday, October 31, 2010

Replica Island project setup

I was trying to run the Replica Island in the Android emulator, but I needed to setup the project correctly before I could proceed. Well, here's what I did.

Before everything else, make sure you've installed the Android SDK, Eclipse ADT, installed the relevant Android packages (install all if you're unsure), created the AVD and installed a subversion client (I'm using Subclipse).

Check out code
From trunk from http://replicaisland.googlecode.com/svn
Minimally, you will need to check out the "res" and "src" folders seperately.

Fix the xml in the "res" project.
Turns out there's some problem with apostrophes here.
This may be fixed in the future versions of the code, if so, just skip this step.
First, find "mustn't" in strings.xml in the values folder. Replace with "mustn\'t".
Second, find "I'll" in wanda.xml. Replace with "I\'ll".

Create a new Android project.
For project name, you can put anything. (I used "ReplicaIsland")
Check the "Create new project in workspace" radio button.
Check the "Use default location" checkbox. Else, specify your project location.
Select the Build Target. I checked Android 1.6.
Specify the application name as "Replica Island".
Specify the package name as "com.replica.replicaisland".
Click the "Finish" button.

Move the files to correct folders
Delete folders in the "res" in the "ReplicaIsland" project.
Copy all the folders inthe "res" folder checked out from SVN into the "res" folder in the "ReplicaIsland" project.
Copy all the Java files in the "src" folder checked out from SVN into the "com.replica.replicaisland" package in the "ReplicaIsland" project.

Replace the contents of AndroidManifest.xml
From http://replicaisland.googlecode.com/svn/trunk/AndroidManifest.xml

Finally run the project as an Android application.

And there you have it! The emulator should start up and Replica Island will start to run.

Sunday, October 17, 2010

Links dump 11-Oct-2010 to 17-Oct-2010

The Seven Wastes of Software Development

This talks about reducing the costs of developing software from a process-driven perspective. The seven wastes highlighted are:

  1. Partially Done Work

  2. Extra Features

  3. Relearning

  4. Handoffs

  5. Delays

  6. Task Switching

  7. Defects


As a programming grunt, I can readily identify with the problems highlighted. Basically the series talks about delivering value to customers and eliminating overheads while delivering software to the customer. These overheads are what constantly pisses off programmers. Unchecked-in, untested codes. Lost of domain knowledge. Unexplainable design decisions. Customer requests not correctly captured. Multi-tasking. Long-standing bugs that are just uncovered. The list goes on.

This is a must read for all involved in the business of building software.

Replica Island

Replica Island is a free, open-source game for Android.  I'm interested in designing some simple games but I've no experience doing such things. This website is great as source codes are provided for people to use some reference. The developer notes are also enlightening, tracing the design decisions and problems faced by Google developer, Chris Pruett. One of the most important sources of knowledge on Android game development.

chmod -x chmod

A puzzler for system administrators, what can you do if you remove the execute permission for the program that changes file permissions, aka chmod? Assume a data center environment and no Internet connection. Very interesting solutions provided.
Partially Done Work

Extra Features

Relearning

Handoffs

Delays

Task Switching

DefectsPartially Done Work

Extra Features

Relearning

Handoffs

Delays

Task Switching

Defec

Saturday, August 28, 2010

Important task completed – lessons learnt II

Recently I've been involved in a change request that modified some data that is returned to a web service client.

There was a bug that occurred whenever the stub made a remote service call, there was a conflict in the security algorithms being used. Even after googling, I still couldn't figure out what the problem was.

After some futile investigation, my colleague advised me to print out the security providers as additional providers may have been loaded during the remote service call.

So I did something like

Provider[] providers = Security.getProviders();
for (Provider p: providers)
{
System.out.println(p);
}


before and after the call, and true enough, there are security providers being dynamically added! So I called Security.remove(providerName) for those additional ones and lo and behold, it works! This is something totally new to me as I've not done much work on this aspect of Java programming before.

While debugging the problem, I realized it's sometimes more convenient to check the existence of environment variables rather than playing around with the program arguments.


#To get the environment variable in Unix
echo $PATH

#To get the environment variable in DOS/Windows
echo $PATH

#To set the environment variable in Unix
export VARIABLE=value # for Bourne, bash, and related shells
setenv VARIABLE value # for csh and related shells

#To set the environment variable in DOS/Windows
set VARIABLE=value

More info can be found at this Wiki.

Sunday, August 1, 2010

Missed 4 trains last Friday during morning rush hour

SMRT CEO Saw Phai Hwa says that even though trains are crowded during peak hours, people can still board the trains if they choose to. Well, there was certainly not much choice last Friday. I had to stand by the side and watch 4 trains whizz past me. All of them pulled into Bedok MRT station nearly filled to the brim. And the platform was nearly half-full with passengers going toward the city. Only some of them manged to squeeze in. Considering that there only a handful of stations east of Bedok, you can guess how bad it is for the rest of the passengers further down the eastern part of the East-West line.

Random checks with my friends seems to suggest that the congestion already started before 8.30am.

Friday, July 16, 2010

Challenger setting up shop at Bedok Point

Taken from their company announcement on SGX. A piece of good news to me, I'm usually too lazy to go down to Sim Lim

So around my area, there's quite a few branches. Excluding the upcoming one, there's one in Tampines 1, one in Eastpoint Mall, one in Parkway Parade
http://info.sgx.com/webcorannc.nsf/AnnouncementLast3Months/92D6AC4B193A94274825774400246E2A?opendocument#

Friday, June 11, 2010

World Cup 2010 on free-to-air channels

With the World Cup around the corner, I dug out my trusty A-B converter again to tune in to the Indonesian channels. The reception is a bit grainy but still acceptable. And it's way cheaper than the $94.16 you have to shell out for Starhub and Singtel's World Cup package.

A-B Converter

The good news is that I'm getting pretty good quality on Malaysia's TV1  and TV2, so I can watch that as well.  As I said before, if our neighbours can provide us with free World Cup coverage, why can’t the local channels do the same?