Tuesday, December 29, 2009

Things I hate about Mac user interface

Apple MacOSX is known for it's aesthetic interface. During the time that I've used MacOSX I've realized that it is true indeed. Nevertheless Apple's minimalistic approach haven't included some of the most basic UI features into the operating system. I may be missing them probably because I've used them so much in Windows and a long time Mac user may have a different idea. Anyway these facts will be useful for any Windows or Linux user joining the Mac bandwagon.

No "Print Screen" key

In Windows you can press PrintScreen key in the keyboard to capture the whole screen ot Alt+PrintScreen to capture the current window. In Mac keyboard there's not such key and you have to do it using a built-in screenshot utility.

Cut-and-Paste missing in Finder

Windows Explorer equivalent in Mac is Finder. It does not have cut-and-paste functionality for file manipulation. Only thing you can do is copy-and-paste. So Cut is missing from right-click context menu and keyboard shortcuts. (Cut-and-paste IS available for clipboard operations)

"Paste" menu item will appear after you have copied a file.

No separate keys for Delete and Backspace

Mac keyboard has only one key for both delete and backspace functionality. You'll initially be confused by it's behaviour. The key is labeled "delete" and placed where the backspace key is on Windows keyboard. Although the key is labeled "delete", by default it has the backspace functionality. To get the the "Delete" functionality you have to use Fn+Delete.

Finder does not support the delete key for deleting files either. You have to right click and say "Move to Trash" or drag the file into Trash. No Shift+Delete is present either :-(

No option to show Hidden files

Finder doesn't provide any option to show/hide hidden system files. If you want to view hidden files you have to manually edit a configuration file using a command line utility and restart Finder process.

defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder

To stop showing hidden files again, use the same commands with the value FALSE instead of TRUE.

"Maximize" button behaviour

Maximize button in applications have different behaviour depending on the application. This is pretty confusing. The expected behaviour is fill the screen with the current window. But some applications doesn't follow this rule. Most of them just resize the window a little bit more instead of fully resizing. Safari, MS Word and Finder does this.

iTunes will go into the compact mode when you press the Maximize button, contradicting with the '+' sign representing the icon!

Window edges cannot be used to resize windows.

In Windows, you can use any of the four edges of a window to resize it. But in Mac, you always have to use the lower right corner of a window to resize it.

I think that should be enough for now. There maybe some more things to complain about, but I don't remember them now. Regardless of these shortcomings there are so many things to love about MacOSX! and what's my favourite operating system?? Windows 7! without a doubt!

Tuesday, December 15, 2009

Connecting a Mac to an Active Directory domain

These are the steps you should follow in order to connect MacOSX to an existing active directory domain. I tried this using MacOSX Snow Leopard 10.6.2. The domain server is Windows Server 2003.
  1. In the Mac, go to System Preferences -> Accounts
  2. Click the lock icon to unlock it and enter the admin password to gain access to administrative settings.
  3. Click "Login Options"
  4. Under "Network Account Server", click "Join"
  5. In the popup, click "Open Directory Utility" and make sure all the tick marks are checked.
  6. In the "Server" field, enter the server name (without "\\" or anything) which is hosting the active directory service.
  7. If it finds the server, it will ask you for the information shown below:
  8. Make sure to use the client computer ID that your administrator has given.
  9. Enter the correct details for the settings and click OK.

To login as a domain user, enter the user name in the usual domain\username format in the MacOSX login window.

Sunday, November 15, 2009

Diving into the iPhone AppStore - Part 2

This is the continuation from the post Diving into the iPhone AppStore - Part 1.

Application <-> Firmware Compatibility

Apple frequently releases firmware update for the iPhone. These new releases includes bug fixes, new features for users as well as developers. If your application depends on a certain feature that is only available in newer firmware versions, it will not work on devices with older firmware installed. For example, the MapKit library which provides native Google Map controls for third-party developers, was introduced in iPhone OS 3.0. So if your application needs to use native Google Map controls, it can only be run on devices with iPhone OS 3.0 or later. Similarly each new version of firmware (3.1, 3.1.2, …) introduces new features like this.

In XCode, you can set the target firmware version when developing your application. You can go as back to iPhone OS 2.0 as well. The best thing to do is setting the target to the minimum firmware version that your application requires so your application will be available to a larger audience. Although most iPhone users upgrade the iPhone firmware as Apple releases them, some don’t.


AppStore is the first successful and the largest mobile application store on the planet and it has set a huge distance between it and its nearest competitor, Android Market. In a nutshell, it’s the one big store that iPhone users can shop for third party applications, currently featuring over 100,000 applications. If you are not an iPhone user, just install iTunes on your computer and visit the AppStore. You’re in for a treat!

If Apple is good at something, it’s maintaining the highest quality possible in their products. Their main strength is providing a very high amount of customer satisfaction by means of quality user experience. This is true for the AppStore shopping experience too. Users can easily install applications on their iPhones without any of the technical difficulties that were available on past mobile platforms. The end result is very high user recognition and discoverability for applications developed third party developers. When you put your application on the AppStore, it’s instantly available to all the 30 million something iPhone users around the world. And it’s guaranteed, that it’ll work on all the devices of the users who choose to install it. This is the fact that is attracting developers into the iPhone platform.

Application Approval Process

Apple loves maintaining quality and they want the third party developers to do that too. They don’t want third party developers to cripple Apple’s image in quality. When a user installs an Application, and if it gives crippled user experience, it’s the iPhone that get’s the blame from the user. Obviously Apple doesn’t like it and they want the user to have the best experience possible with their device. So they have a set of rules that every third party developer should follow in order to ensure that quality.

Making a release

When you finish building your application, and finish your internal testing and QA, you’d think you could make your application available to users straight away. This is not the case with iPhone. When your application is ready, you have to submit it to the Application Approval Process.

This is where things get interesting. It might take weeks (or months!) to get your app approved (or rejected!). You have no control whatsoever over this process and you have to wait until you get results from Apple. If your app is approved, it’ll appear on the AppStore and you’ll be notified. Since it’s humans that inspects your applications you can expect human errors and inconsistencies in different situations. According to Apple, they have a team of 40 full time employees, who have to review nearly 8500 application submissions per week. And every app is reviewed by 2 employees. Funny ha!

The point is, things can go wrong! and you won’t have any control over it. Suppose you submit your app and after few weeks it gets approved. As the users start using it, you notice a small bug that can be fixed quickly. But still, you have to resubmit the modified version of application and wait…all over again just to ship that small bug fix, while users keep using the buggy version. Because of this, you have to be very very careful in making a release into the AppStore. A small mistake can cost you so much.


Despite all the drawbacks, AppStore has a constant developer attraction. Mainly because of the unification that it provides in terms of distributing their software. After your app appears on the store, users around the world can buy it with a single click, using their computers or iPhones. (and it’s guaranteed to work on their devices) With every sale, the developer gets 70% of the price of the application and 30% goes to Apple. It’s that simple. No more infrastructure maintenance, financial handling and complex charging policies. You’ll get a monthly cheque from Apple. You don’t have to pay anything if your app is free.

As the developer, you get to choose the price of your app. From the start, developers have experimented with various pricing strategies which have yielded very interesting results. The sweet spot is considered $0.99. The net profit you get doesn’t come from the profit margin. It’s the sheer number of sales you could get if you do things right. There are lot of success stories about developers who have made fortunes with their simple, $0.99 apps. In the AppStore, sales figures can come in tens of thousands per day. So even if you make $0.50 profit per sale, it can mean $5000 profit per day! With the sheer number of iPhone users around the world (more than 30million) you have can have a huge target user base who can use your application. It doesn’t magically give successful results. You have to be creative and strategic with you application.


With all that being said, there’s a LOT I haven’t said. The web is pouring with iPhone and AppStore related articles in which many are interesting reads. I’ve been following on all the things related to iPhone even before it’s release. If you follow up on the subject, it may turn out to be fascinating to you too. As with everything in this universe, it has both good and bad things about it. Just know your beast and learn to get the most out of it. If you need to know more info, just search the web or put a comment.

Good Luck!

Interesting reads:


Thursday, October 29, 2009

Diving into the iPhone AppStore - Part 1

The iPhone madness is resonating throughout the world and the shock wave has reached Sri Lanka as well. The madness is two-fold; iPhone User madness and iPhone Developer madness! I've been fortunate enough to be a part of the staggering iPhone user base for one and half years now. Thanks to my new employer I've been able get my hands on "the other side" as well, that is, the iPhone development arena!

I'm writing this since several people have asked me about iPhone development procedures, about the AppStore and such. This should help any would-be-iPhone-developer to know about prerequisites, special considerations and possible frustrations! that he or she is going to face.

Here are the steps that you should follow to get into iPhone development using iPhoneSDK.

1. Get a Mac!

Can't I use Windows (or Linux)? Of course not! All official iPhone development tools are developed by Apple and they are Mac-only!

Well, this is costly! but you have several choices here. If you have the money, you could go for an iMac. That's apple's desktop class computer and it's sooooo pretty! Next choice would be a MacBook Pro or a lower end white MacBook. If you have a spare monitor and keyboard/mouse, you can go for a MacMini (it's kind of cheap) and plug your own monitor and keyboard to it.

If you really need it, for the initial stage of experimenting, you can try out hacked versions of MaxOS X on your PC. But these have lot of glitches in them and it's hard to get them working. More info at http://www.osx86project.org/.

MacOS X version requirement
iPhoneSDK have a minimum requirement of a certain version of MacOS X to be installed. The latest SDK version (3.1.2) requires MacOS X 10.5.8 to work. The requirement tend to elevate with most updates to the iPhoneSDK. So make sure you have necessary software updates installed on the OS.

2. iPhoneSDK

iPhoneSDK has more or less the same development tools, libraries and programming paradigms that MacOS X uses. The reason for this is that, iPhoneOS is just MacOS X with a different UI running on different hardware. In fact, apple has built iPhoneOS with the same source files of MacOS X Leopard kernel and most of the system services and libraries. So it has the same power and the architecture of the desktop class MacOS X. If you are a Mac developer (which I'm not), you'll find iPhoneSDK surprisingly similar to the development tools you've been using up to now. The only major deviation that the iPhoneOS has from MacOS X, is the UI, which is a complete rethought from top to bottom.

XCode is the IDE you'll be using. Although you are not required to use XCode, it has really nice and elegant features making it the standard choice of Mac and iPhone developers (much like Microsoft Visual Studio). XCode and other supporting development tools are freely available on the iPhone developer connection website.

In iPhoneSDK, You'll have to write code primarily in Objective-C. It is essentially a super set of C, meaning you can code in pure C if you want. You can think of Objective-C as an extension library to C. All it does is providing an object-oriented like syntax to access underlying C entities. The syntax may appear weird at first since it's significantly different from the "dot" notation we are used to in C-style languages. But within 10 minutes or so, you can get the hang of it.

Since we are talking about native application development here, there are no fancy runtimes available for you. Actually, Objective-C itself has a runtime to do stuff like wrapping/unwrapping Objective-C classes from and to their equivalent C data structures. But it's not as powerful as .Net CLR or Java virtual machine. In my opinion, iPhoneSDK development stands between Win32 native development and .Net development. You don't have to go into so deep as native Windows programming, but you don't also have a large runtime feature set like .Net. For example, Objective-C runtime, doesn't have a garbage collector so you have to release resources manually when you finish using them. Somewhat similar to free() in C but not exactly the same. You'll understand these fine differenciations when you read the subject matter.

For more info on everything regarding iPhone SDK and AppStore, register on iPhone Developer Connection.

3. Testing the apps

iPhoneSDK comes with a nice iPhone simulator that you can use to test your applications. Obviously this doesn't have all the features of a real iPhone but you can emulate most of the functionality here. One thing to keep in mind is that DO NOT test application performance in the emulator. Since the emulator runs using your desktop CPU and hardware, applications run significantly faster on it. But it should be enough for most day-to-day business class applications.

If you do need to test your application on a real device however, you might want to consider buying an iPhone or an iPodTouch (iPodTouch lacks some hardware features the iPhone has). In addition to that, you need to register on the iPhone Developer Program ($99/year) in order to acquire a developer certificate. You need that certificate to test your applications on a real iPhone.


Tuesday, September 15, 2009

Gaming Industry and "XP Effect"!

Of course this is not about running games on windows XP. :-) I thought of writing this because 1) I haven't written a blog article from some time and 2) I see some dilemma that has been plaguing the technological progression of these two ecosystems. Hence the reason for the title of this article is the similarity that exists in the direction these two are headed.

If you are not a gaming fan you might consider skipping this article. (it's boring anyway!)

First let me extract what is known by many people. Even after two progressive Windows releases, Windows XP still dominates the market as the primary operating system of users arround the world. With advancements of computer hardware and software, you would expect people to move forward. In fact, that's what actually happened in the past. If we consider only the Windows community, users have steadilly migrated onto new operating system versions from Windows 3.0 era to XP era. With hardware advancements over time, the operating system designers were able to deliver new features and concepts and users willingly grasped them.

But since then, the Windows ecosystem seems to be stuck on Windows XP for a long time. (Argubaly, there maybe several reasons for it including Microsoft screwing up over Vista but that's not what this article tries to discuss) The point is, despite rapid growth of hardware and software capabilities, most end-users have decided to stay with what they are already familiar with. It seems that constant "change" that have existed with end-users, is "stabalized" for the past few years.

In my point of view, the gaming industry too have faced this kind of stabalization point in terms of exploiting hardware capabilities. In the case of Windows XP, it was the end-users who seems to have reached a stabalizatin point. But in the gaming industry, it's the game developers that have reached a certain stabalization. In the past, we saw games being released with higher and higher hardware requirements. When you buy a graphics card, it'll be obsolete within a month or two. But now, all the new gaming titles seems to aim a certain level of hardware requirements that would no way require high end graphics cards.

The Reasons

There's a lot. Talking about Windows, users were pretty satisfied with features offered by Windows XP. Most couldn't justify moving onto Vista with the overhead it had on the system and the user himself. The jump caused a considerable change of user interaction. Users simply chose to stick with what they already had, since it was familliar and enough for their requirements.

The same goes for the gaming industry. Only that it maybe little more complex. There is a level of harware specification that can be regarded as familliar and enough for most gamers and that's the level the game developers going to build their games on. This is mostly decided by the current versions of gaming consoles. Unlike PCs, gaming consoles (XBOX, Playstation, etc...) are the major market for games. We can see new PC graphics cards released every month but gaming consoles may take years to re-iterate. So a game which requires the highest hardware capabilities end up being available to a limited set of the consumers. Since developers like to expand their market they compromise on the game graphics to make it available to a larger gaming community.

The Effects

On Windows, what always happens will happen in this case as well. Developers will write software for XP because a large user base is available and users will continue to use XP because there are lot of software available. The downside is the old operating systems and software will not get to use new hardware features supported only by new software.

Talking about games, of course, graphics does not make a game. There's a lot more to it. Developers can make superb gaming titles by inventing controversial story lines, music and gameplay experience. But for "graphics-freaks" like me, gaming graphics will always matter! In fact, I'm using a somewhat old graphics card (see here). But it has more horsepower than all the recent games I've played need (except Crysis). I really wish those games exploited that extra power and improved more on graphics. Although we think the games will be more and more realistic, it will take a longer time to progress as the industry addresses the requirements of the global market.

If you read it this far, I know there are lot of points you may not agree. It's open for discussion...

Friday, July 24, 2009

Windows 7

Though I was lazy to download Win7 RC due to exams and stuff, I got a copy thanks to the Microsoft .Net Forum Sri Lanka. I installed it on a separate partition since I didnt like to replace my 64bit Vista with this 32bit version. Here's a personalized review of Windows 7 mentioning the improvements in my interested areas.

(There are tons of in-depth Win7 reviews out there. This is just a personal preference of feature additions that I stumbled upon in my usage)

Overall, Windows 7 is snappier and cleaner to the highest level. Here are some additional things I noted:

Displays the really usable memory in system properties

See this post. 32bit OSes cannot use 4GB RAM. They are limited to 3.25GB. On my system, XP 32bit showed 3.25GB as full memory available. But in Win7 32bit it shows both the real memory and usable memory in system properties. This would avoid user confusion in situations like I faced as in the aforementioned post.

Performance Index Differences

Performance Index scale has been changed in Windows 7. Compare the rating I have in Vista and the new rating. In Win7, CPU and RAM performance index have been moved higher. I got a lower index for hard dist performance since I installed Win7 on an IDE hard disk. Otherwise my Base score in Win7 would have been 5.7, compared to 5.5 in Vista.

Rating in Vista SP1 (in SATA HDD)

Rating in Windows 7 (in IDE HDD)

Detects iPhone even without iTunes driver

Windows 7 detected my iPhone straight away and allowed me to use it as a camera. In XP and Vista, the iPhone won't even charge from the USB without the driver installed. This would make my life a lot easier if everybody had Windows 7. :-) It's worth to mention that Ubuntu had this driver built-in from some time ago.

Video format support

The video formats we love; xvid, divx, h264 and more, are natively supported in Windows 7. So you can watch your films even without installing a codec pack or another player. But for subtitles, you will need a player like KMPlayer or VLC.

Sinhala Typing isn't fixed yet!

That wiered Sinhala typing problem we had in Vista, still exist in Windows 7 as well. I had to install Vista Sinhala Quick Fix to fix that.

Saturday, July 4, 2009

My 3 Column Blogger Template

I felt 2 columns was not enough for my blog and decided to change it to 3 columns. I found this article showing how to take an existing blogger template and make it 3 column: http://www.bloggerbuster.com/2007/07/create-three-column-blogger-template.html
This article modifies the blogger Minima template, but I did this on blogger's Son of Moto template.
I was previously using Son of Moto template since I liked its fonts, link colors and all but I decided to change it's Greenish color theme to my own one. This was pretty easy, considering I had no experience in editing CSS before!

If somebody liked my template and wanted to modify, you can download it from the link below. Remember, this is just a modified version of Blogger Son of Moto template.

Download Link: http://www.mediafire.com/?ytdywrnq4zn

All images are tiled .gif ones. and they add up to just 1KB. I cannot guarantee the availability of images in its current server. So I suggest you host the images on your own server if you really need to use those.

Sunday, June 21, 2009

How to unlock iPhone with OS 3.0

WARNING: The procedure in this post may not always give the same correct results. So use it at your own risk.

Apple released iPhone OS 3.0. So Dev-Team has released a jailbreak tool for OS 3.0. This lists down the steps for upgrading your iPhone to OS 3.0 and then jailbreaking it. FYI, Jailbreaking and Unlocking are two separate things. You have to Jailbreak before unlocking. Jailbreaking is cracking the OS. Unlocking is making any SIM work with your iPhone.

The procedure is slightly different for iPhone 2G and iPhone3G. So do whatever applies to you. The process is fairly easy and doesn't use any command line tools..

I personally did this procedure only on my iPhone 2G. I have no way of testing this for iPhone 3G.

Upgrading the iPhone
  1. Open iTunes. (version 8.2 or later must be installed. Get it here)
  2. Connect your iPhone to the computer. iTunes will show the iPhone sync screen.
  3. Click the Update button in iTunes.
  4. iTunes will begin downloading the firmware file (about 240MB).
  5. The download progress will appear in the "Downloads" section of iTunes left panel.
  6. You can disconnect your iPhone while the file is being downloaded. Connect it after the download and click Update button again.
  7. iTunes will install the downloaded firmware file to your device. This may take like 20 minutes or so.
Upgrading is finished. If you are using an unofficial SIM the phone will be locked. Now for the jailbreak and unlock.

Preserve the downloaded firmware file
  1. Now you have to locate the firmware file iTunes just downloaded and store it in an easy to access folder.
  2. In My Computer, go to this address: %AppData%\Apple Computer\iTunes\iPhone Software Updates
  3. This folder is where iTunes stores downloaded iPhone firmware files. You have to copy the file corresponding to your iPhone to any folder you like for future use.
Here are the file names:
  • for iPhone3G : iPhone1,2_3.0_7A341_Restore.ipsw
  • for iPhone 2G : iPhone1,1_3.0_7A341_Restore.ipsw
Copy the file to any folder you like.

Jailbreaking Procedure
  1. Download the latest version of redsn0w torrent from here: http://thepiratebay.org/user/iphonedev/
  2. Extract the downloaded archive. There will be a program called redsn0w.exe in it.
  3. Run the redsn0w.exe. This is the jailbreaking tool.
  4. Carefully read instructions on the screen and do what it says.
  5. In the first screen, click browse and give the firmware file you copied before.
  6. In the next screen put a tick for Cydia and click next.
  7. Follow instructions on redsn0w and if u follow it the phone will be jailbroken within like 15 minutes or so.
Unlocking Procedure

If you upgraded an iPhone 2G it should be already unlocked. iPhone 2G does not loose its unlock when upgrading. On the other hand, iPhone 3G looses its unlock when upgraded. So you have to install ultrasn0w to unlock iPhone3G.

This is for iPhone3G only.

Unlocking instructions are also available here.
  1. Connect the iPhone3G to the internet (WiFi Only. Cannot use 3G since SIM is locked).
  2. Open Cydia in iPhone.
  3. In Cydia, go to Manage -> Sources
  4. Tap Edit, then tap Add.
  5. Type this in the text box: repo666.ultrasn0w.com (There's a Zero in the word ultrasn0w)
  6. Tap Add Source. Wait until it refreshes. If you typed it wrong, it will give an error.
  7. Go to Search and search for "ultrasn0w" and install it.
  8. Reboot your iPhone3G.

Incoming phone number detection issue

iPhone does not support Sri Lankan phone number formats (as many other unsupported countries). So if your address book contact has 071123456 and if you receive an SMS from +9471123456 then the SMS will not detect the contact name for that number. You can fix that after jailbreaking by installing a patch from Cydia. You don't have to do this if you don't have the issue.
  1. Connect your iPhone to internet (through WiFi or 3G).
  2. Open Cydia. (Cydia is automatically installed when jailbreaking)
  3. Wait until it refreshes its database.
  4. Go to search tab from the bottom panel.
  5. Search for "Caller ID Fix"
  6. Some results will appear. As at the time of writing the latest version was "Caller ID Fix for 2.2". I installed this on iPhone OS 3.0 and it worked for me.
  7. If it shows a fix for 3.0 then install that version. Otherwise fix for 2.2 will be OK.
  8. Tap on the item and install it. It will do some rebooting stuff after installing and your contacts should be identified correctly now.
Through Cydia you can install lot more interesting stuff.

Cycoder - Video recording application
Winterboard - Apply themes for iPhone
Categories - Group icons into folders
SBSettings - easy access panel to popular settings

Put any questions you may have on comments. Good luck!

redsn0w torrent download link changed to http://thepiratebay.org/user/iphonedev/

Monday, June 8, 2009

NFS Undercover on iPhone

I'm ill. So I found myself some time to install NFS Undercover on iPhone and have been playing it since then. I have played several racing games available on the AppStore. This is by far the most exciting and quality racing game I have played on iPhone. EA really knows how to keep its standards.

The game has nearly all the features as the PC version:
  • Same stupid story
  • Police and traffic
  • Nitros and Speedbreaker
  • Slow-motion and tilting cameras (gives a really thrilling experience)
  • Car customizations (performace and visuals)
  • Quality music tracks (EA always does this right)
Unfortunately free-roaming is not there. Maybe due to memory limitations of the iPhone. But you have all the race types including outruns, hot-car deliveries, cop takeouts, thug takeouts and bounty acquisition. Same cut-scenes from the original game will be there including that sweet girl friend of yours.

Here are some screenshots I took (click on the images for bigger versions).

The map. EA has designed great UI animations for the game menus.

In the garage. You can use typical iPhone finger guesters to zoom and rotate the car. Customizations are available for nearly every feature.

Race tracks are diverse and fairly detailed. You can get a really nice and intuitive driving experience with a fine-tuned accelerometer usage from EA.

Cops are quite good and helps increasing the quality of the game. I still didn't see any heavy SUVs which are my favourites in the PC version!

The game is available on AppStore for $9.99. I also downloaded Assassin's Creed but didn't install it yet. It needs firmware 2.2.1 (I have 2.2) but I'm lazy to upgrade with 3.0 just arround the corner.

Wednesday, June 3, 2009

The Shut Down Comparison!

Studying the ways of shutting down the computer has been kind of a research area among operating system GUI designers. Although we as users do not see it, designing a simple interface like shutting down the computer takes lots of user studies and research. Today with number of operating systems that we use, we can see different approaches they have taken on how to present the user with the least annoying Shut Down interface.

I'll compare the shut down mechanisms of the 3 major operating systems we use; Windows XP, Windows Vista and Ubuntu 9.04. Specifically, I'll consider the number of mouse clicks and mouse movement they require from the user. Although there are shortcut keys associated with them, I won't consider them since ordinary users won't know about them anyway.

Windows XP
In XP, users have to go through 2 dialog boxes to accomplish the task. First, the start menu and the second, the final shut down box.
  1. Click Start button. (click 1)
  2. Click "Turn Off Computer". (click 2)
  3. Move the mouse to the center of the screen.
  4. Click "Turn Off" button. (click 3)
It is clear that this involves 3 mouse clicks and a mouse movement across the screen. Although, as IT people the mouse is in our "genes", this is a fair amount of work load for a typical user. (You should've seen the time it takes for our grandma to do this)

Windows Vista
This is totally confusing for new users. There are number of ways you can shut down. With the default settings, you see a yellow "shut-down-like" button. People mistake this as the shut down button where it actually means "Sleep". To truly shut down the computer, you have to click the small arrow, and choose Shut Down from the not-so-simple menu that appears. This process needs a very high amount of concentration from the user.

This is the way you do it with default settings.
  1. Click Start button. (click 1)
  2. Click the small arrow to the right of Sleep and Lock buttons. (click 2)
  3. Choose "Shut Down" from the the list. (click 3) (This list has 6 items. If you needed to Restart you have to find where restart is in the list. Shut Down is easier since it's the bottom-most item.)
This process requires 3 clicks (same as XP). But it also requires the user to thoroughly concentrate on what he/she is doing, which is too much to ask from an ordinary user.

You can change the behavior of the Sleep button to Shut Down via power settings. Read this for instructions on how to change it. Then the whole process changes.
  1. Click start button. (click 1)
  2. Click "Shut Down" button. (click 2)
Now it's only 2 clicks. So simple. The catch is that the red Shut Down button is very easily reachable. User don't get any confirmation dialog box after clicking this. So when you click it, wooosh! it's bye bye windows. So it's prone to unintended shut downs.

In Vista they have increased the number of ways to shut down and none of them are perfect. XP way is better in my opinion.

Ubuntu 9.04
Ubuntu 9.04 reportedly have a nice and clean interface. This is true for their Shut Down mechanism too. Although they have borrowed the idea from Apple MacOS X, they does a good job integrating it with their user interface.
  1. Click the power button at the upper-right corner. (click 1)
  2. Choose Shut Down from the menu. (click 2) (Menu has 6 items. Shut Down is at the bottom and Restart is the one before that)
That's it. If you are lazy you can leave your computer and it will shut down. But if you made an error in your decision you can always cancel it since it displays this time-out dialog box.

If you choose, you can continue the previous process further.
  1. Move the mouse to the Shut Down dialog box.
  2. Click the shut down button. (click 3)
See how thoughtful they have been. The computer will shut down without any user interaction within 60 seconds. If you are in a hurry, you make an extra mouse click on the Shut Down button on the time-out dialog.

It's "2 clicks" or "3 clicks with a mouse move" depending on the way you choose. But always the result is the same and you have the confirmation dialog so you can undo your decision. This is the nicest shut down process I've seen so far (including MacOS X).

Finally, see how much we can talk about a simple operation like this. (as if we don't have anything else to do!) These subtle changes effect the user's perception of an operating system. And most of the time, these are the "only" things that a user uses to judge an operating system.

Any thoughts?

Wednesday, May 27, 2009

Between 2 worlds! Firefox and Chrome

Why can't people get together and build a product that has only "good" features! But the world is not like that..is it? I switch back and forth between Firefox and Chrome due to this very reason. I like them and hate them at the same time.

Remarkably, my list of likes and dislikes is not so long. There are only one or two things that I dislike about these products but they have a very big impact in my (I think everyone else's too) browsing habits.

These are the specific things that gets on my nerves. While these may not effect other people, they directly collide with my web usage.

1. Firefox being bad!
  • Takes a long time to start.
  • Address bar does not support full google search (specially "define:" keyword)
  • Separate search box.
  • Separate download window. (There are some buggy add-ons to eliminate this)
2. Chrome being bad!
  • "Stop" button is at the right side. It should be moved to the left of the address bar.
  • Sometimes Tabs go "not responding" (more frequently than Firefox).
  • Some web pages are not rendered correctly.
3. Chrome being Good

Then I have the things which makes Chrome better than Firefox.
  • Really intelligent all-in-one address bar.
  • Simple and clean user interface.
  • Efficient use of screen real estate.
  • Download handling.
  • Starts up quickly.
Unfortunately, I don't have anything that makes Firefox stand out on Chrome. So right now there are 2 things that could make this world a better place:
  1. Make a Firefox that doesn't have bad features listed in (1).
  2. Make a Chrome that doesn't have bad features listed in (2).
I believe any of these things will produce a completely good browser. Personally I like the 2nd choice because I prefer Chrome due to its simpleness.

What's your choice? any thoughts?

Tuesday, May 19, 2009

Download the same torrent from Windows and Ubuntu

Thanks Kasun for pointing out this feature to me.

If you are a torrent downloader and a person who needs to switch between Windows and Ubuntu frequently, you need to continuously download your torrents from both operating systems. Most torrent clients facilitates this requirement. I'm going to demonstrate this feature using 2 bittorrent clients named, uTorrent (Windows) and Transmission (Ubuntu). But this can be applied on any modern torrent client.

What actually happens here is each client starts downloading from where the other client left off. Obviously for this, both clients must save the files to the same location on the hard disk.

I'm going to start with Windows assuming you are running uTorrent on it. I assume you don't need much explanation with uTorrent.

Starting the torrent

  1. Download and save the .torrent file you need.
  2. Start the download from uTorrent. But when you give the download location, save it to a path where it is accessible from Ubuntu as well. For this example I'll assume it is D:\Downloads.
  3. Suppose in the middle of the download you decided to go to Ubuntu. Assume you were at 41% of the download.
Continuing the torrent from Ubuntu
  1. If you haven't done so already, install Transmission from the Synaptic Package Manager in Ubuntu. It's pretty easy and straightforward to configure if you are a torrent user.
  2. You can access Transmission from Applications -> Internet menu.
  3. Open the same .torrent file you used before. (or you can download it again) It will be opened from Transmission and You'll get the Torrent Options dialog box. (Note the 0% download progress of files)
  4. For the Destination Folder, give the same location you used before. For example, on Ubuntu it may be something like /media/sda2/Downloads.
  5. If you have done it correctly, download progress of all files should be automatically updated. If not, you can click the "Verify Local Data" button to update the download progress. (This will take some time for large torrents)
  6. Click "Add" to start the download. Transmission will continue downloading from where you left off earlier.
Continuing from Windows
  1. You can also continue the torrent from Windows if you decide to leave Ubuntu and go to Windows.
  2. Open uTorrent. The old torrent entry must still be there. Stop the torrent if it is running.
  3. Right click the torrent and click "Force Re-Check" from the menu. uTorrent will update the download progress of the files. (This will take some time for large torrents)
  4. When it has finished updating you can start the torrent to continue downloading from that point.
  5. This procedure is the same for Transmission. You can right click the torrent and choose "Verify Local Data".
The procedure should not be much different even if you use other torrent clients. There maybe some different terms they may be using but the basics are the same.


Sunday, May 17, 2009

Solve Ubuntu Network Manager problems

If you are a user of Ubuntu 8.10 or 9.04 you know how awful the built-in Network Manager is. It doesn't save your settings, and settings doesn't get applied so it's literary impossible to change your IP address using it.

One solution is to remove the Network Manager and edit the network configuration files manually. But there's an easier approach. You can install Wicd to do the configuration for you. This is an alternative to the default network manager which does it job right. It's really simple and straightforward to use.

Here are the simple steps required.
  1. Install wicd through Synaptic Package Manager.
  2. Network Manager will be removed from the tray panel when you install wicd.
  3. Go to System -> Preferences -> Startup Applications and disable the Network Manager.
  4. If newly installed wicd network icon isn't there in the tray panel, launch it from Applications -> Internet -> Wicd Network Manager. It will start automatically from next startup.
  5. In the Wicd Manager, expand Wired Network section and click Advanced Settings.
  6. Enter your IP address details here. The settings will be applied as soon as you click the OK button.
  7. You can open a terminal and type "ifconfig" to check whether the IP address settings have been correctly applied.

iPhone device timeout error when syncing

A person I know began getting a "Device Timeout Error" when syncing his iPhone with iTunes. All his contacts, photos were being synced but the problem occurred when syncing Music and video. Both iPhone and iTunes were on latest software versions. The problem was fixed after following these simple steps.

Note. For this to work, your iPhone/iPodTouch has to be jailbroken.

I found the original solution from here. The solution is to delete /private/var/mobile/Media/iTunes_Control folder from the iPhone and sync with iTunes. This should work for both iPhone and iPodTouch.

Here are the detailed steps to follow.
  1. Download DiskAid or iPhoneBrowser. On Windows you need .Net Framework 2 for this. (I'm using DiskAid)
  2. Connect the iPhone to the computer. (close iTunes if it is running)
  3. Open DiskAid or iPhoneBrowser. It will show you the folder list of the iPhone.
  4. Navigate to the folder /private/var/mobile/Media and delete the "iTunes_Control" folder in there. (be very careful NOT to delete any other things)
  5. Close the application and Sync with iTunes.

I don't know the exact reason for this problem. But that person told he changed the USB port that he plugs the data cable. It may have something to do with changing USB ports or the machine you use to sync.

NFS Undercover

6.5 GB of Hard disk space required.

This is certainly not the crown jewel of the Need for Speed series. But it sure has some unique features (good and bad). The game features a story just like the last few versions. The game has a big open world, police, lot of cars and few unique event types. Time of day is set to the so called Magic hour where you experience a unique yellowish lighting condition.

Among few others, my favorite event was where thugs are chasing our girlfriend to smash her car. We are chasing those thugs to smash their cars and the city police are chasing all of us to take into custody. Cops seems somewhat easier to beat than in previous versions. Overall the game appears very artificial. Driving is not natural at all. Driving physics of NFS Undercover takes out the fun we had in previous versions.

I played this game with highest graphics detail and highest resolution. Graphics appear bit artificial. Shadows had to be turned off because they totally sucked! My system specs are here.

Here are some screenshots:

The famous Smoke engine from Pro-Street made it to Undercover.

The biggest problem in the game graphics was crappy Shadows. They suck big time so I turned them off as most users have done. Even in highest quality shadow edges are ridiculous and unnatural.

Friday, May 1, 2009

Burnout Paradise The Ultimate Box

3.2 GB of Hard disk space required.

This is one of the best racing games I've ever played. The game has no story though so it gets boring after a few days of playing. The main reason I loved this game was its graphics and gameplay experience. Designers have built realistic collisions, car damage and Matrix style slow-motion camera movement into the game. Its basically like watching a simulation when vehicles collide.
The game takes place in a large city called "Paradise City". There is no police so you are free to roam around and do all the crazy stuff you can do with your car. Performing stunts plays a big role in the game. There are no menus to access races. Every junction in the city is a starting point for a race. One of the hardest parts is finding your way to the finishing line. There's no GPS or any guidance so you have to rely on the map which shows the dense road network of the city.
The cars that exist in the game do not exist in the real world. Game uses an imaginary set of car models with imaginary manufacturers. Nevertheless their car designs are truly superb.

I played this game with highest graphics detail and highest resolution and graphics are very much realistic. My system specs are here.

The game world is heavily detailed and you get to drive through cities, mountains and so many other different terrines. Game features realistic lighting where you can see shadows change when the sun moves throughout the day.

Realistic collisions are shown with dramatic slowmotion camera angles.

Literally every part of the car is breakable. You can actually see tires break and fly away when you hit it hard.

This is what you get if you speed too much!

A moment captured in the middle of a jump.

Variety of vehicles are available. This includes 4x4 trucks, old classics, F1 cars and bikes.

Video uploaded by Thusitha :

The game gets bit repetitive since you get to play the same races again and again (with different cars) to get past levels. But you sure can enjoy freely roaming around the big city and performing stunts to your liking.

Thursday, April 30, 2009


5.6 GB of Hard disk space required.

This has the most advanced graphics and effects among current fleet of gaming titles. World is full of natural beauties and interactivity. Intense combat takes place in tropical forests and various other landscapes. Game music and sound effects gives the true feeling of intense fighting. Crysis:WARHEAD is the sequel to the original game Crysis. The game storyline is pretty cheap though compared to Assasin's Creed. The character wears the Nano Suit which has a significant role in the story.

I was restricted to 1024 X 768 resolution, 2X antialiasing and No Motion Blur with this game. All the other effects could be set to highest detail. Even then the graphics looks astonishing. My system sepcs are here.

Game Music
I loved the in-game music of Crysis:WARHEAD. If you like them, you can find them inside the game installation folder. Go to the "Game" directory inside the installation folder and open the file "Warhead_Music.pak" with WinRAR and extract it. All the audio files of the game are in the archive in ogg format. You can find the long music files by looking at the file size.

It's facinating to see volumetric light effects within the game.

World is full of beautiful sceneries like this.

Sea water is just like the real thing.

Lot of objects in the world are interactive. Trees literally break apart where you shoot them.

You also get to drive military vehicles.

Make your way through dense tropical forests.

Your enemies are these aliens and the Korean military.

Here's a video of the game by Thusitha:

The game may be little bit short compared to other games. But it keeps you going right until the end with the music and heavy fighting.