Thursday, August 13, 2009

Do you want to keep your scores saved intelligently?

Did you ever play games such as dice, cards etc. at home during leisure, vacations, travel or when on picnic? and have used paper/pen to keep scores to find out winner/loser? That was a nice time, hmm?

Anyway I'm here to update you if you have iPhone or iPod touch, you have a great utility now for you to keep scoring and scores kept electronically at your hand. The name is 'hiScore', a very nicely programmed application owned by a USA based firm called "Touch In Go". You can set targets, winner/loser policy, manage player names to store in local db until you delete them, nice sounds upon different interesting events etc.

Touch In Go is promoting the app and distributing for FREE to early users. I just got a promo code to buy this app from store for no price, and you can also do the same until their quote finishes. You may reach them at touchingo@me.com, showing intent to review their work.

After started using this app on my iPhone now, I can save my scores at single place and always in my pocket so chances for more games too ;-)

Saturday, July 4, 2009

Unlock iPhone 3G with latest OS 3.0

Last week I upgraded my iPhone 3G from OS 2.2.1(5H11) to OS 3.0(7A341) after visiting and reading 10s of guides available over the net. Some were found extra long to analyze and others are not even completed in themselves. But somehow I managed to do it with some guesses and tricks based upon my past unlocking experience.

I'll keep it short and straight forward here, so it wouldn't take that long for you also to make your phone running on latest 3.0 OS. Let's begin the rock...

Note: You must have iTunes 8.2 running on your computer (Mac or PC)
Declaration: You are advised to take expert's advice before continue with unlocking procedure described below, or do it on your own risk.

1. Connect your iPhone to computer, and it'll launch iTunes. It'll prompt to upgrade your iPhone with latest version available. Here you need to select 'Download only' option. It'll save firmware on your computer hard disk.
2. It is always better to 'Restore' firmware to iPhone if you want to completely format your iPhone. I tried with restore only so will suggest you also to follow that. Restore, and browse to fw file you just downloaded. It will take a few minutes and your phone is virgin again.
3. Time to jailbreak your phone now so it's usable at least (without phone feature working), and for that you would need redsn0w 0.7.2. Download the tool and rebuild your phone with it. Just follow simple navigation wizard in the tool (you can even follow default options) and your iPhone will be opened thereafter. Make sure you opt for 'Cydia' app installation when ever it's prompted in the wizard, ok?
4. Now you have a jailbroken iPhone 3G installed with 3.0, but still you have one step remaining to finish unlocking and without that you won't be able to make/receive calls on your device. That is software unlock using ultrasn0w utility.
5. Connect to internet thru WiFi, and launch Cydia in your iPhone.
6. In Cydia, go to 'Manage/Sources', then 'Edit', then 'Add'. Enter URL: http://repo666.ultrasn0w.com/, and now reboot your iPhone 3G. It'll a little longer than usual to complete reboot process.
Once done, you have completely unlocked iPhone 3G with OS 3.0 in your hand. Enjoy!

OK, the tutorial is fairly simple. If not, please contact me by submitting comments below, and I'll be happy addressing your issues. Good Luck.

Thursday, April 23, 2009

Reset root password in Mac OS X

Today I wanted to perform some urgent task with DNS redirection using 'hosts' file in my Mac OS X (10.5.6). Being an administrator I tried doing it, but I found the file is opened in read-only mode. Unfortunately I didn't know root password, which was very embarrassing to myself. I have been playing with root level accounts for many years on different Linux flavors, but here I am stuck coz I am feeling like school kid in front of computer.

I had no other option than resetting root password, which I realized a very useful recovery system keeping computers up again within maximum of 4-5 minutes. Below is a small exercise I tried with me today, and found working:

Steps:

1. Start/Restart your computer.
2. Immediately press and hold the Command (Apple) key and one of the following:
  • the "s" key for single-user mode. (Command-S)
  • the "v" key for verbose mode. (Command-V)
Soon you will start seeing a globe image rotating in the middle of screen, and after some time some movement in command line console. You will be taken to root prompt finally, which is definitely a second most relieving moment of entire exercise, first definitely when you successfully reset the password. OK here we continue...

3. Run below commands one after other in root prompt:

# sbin/fsck -y
# /sbin/mount -wu /
# /sbin/SystemStarter

4. Here to begin the rock. Run below command:

# passwd
(This will prompt for new password twice. It's done now!)

5. Get the hell out of this black screen now:

# exit
(This will reboot our computer. Leave it alone to take you to the original beautiful desktop.)

Note: I do a lot of experiments on my items. Please do it on your own risk. Any query, please contact thru "Ping Me" from right sidebar.

Friday, April 10, 2009

77 Project Management Proverbs

Seventy seven pearls of humor and wisdom. I really like first three in the list and ranked as Top3 proverbs in my blog! Just read and enjoy!

1. The good project manager looks after his team; the perfect project manager takes care of his customer.
2. Clever project managers pass problems to others; smart project managers build a reputation as problem solvers.
3. Nothing is impossible for the person who doesn't have to do it.
4. Activity is not achievement.
5. The project manager is the lightning rod for all problems.
6. The person who says it will take the longest and cost the most is the only one with a clue how to do the job.
7. Quantitative project management is for predicting cost and schedule overruns well in advance.
8. It's not the hours that count; it's what you do in those hours.
9. If there were no problem people there'd be no need for people who solve problems.
10. Any project can be estimated accurately (once it's complete).
11. Managers apply pressure when they are at their wits’ end.
12. To estimate a project, work out how long it would take one person to do it then multiply that by the number of people on the project.
13. Managing IT people is like herding cats.
14. A badly planned project will take three times longer than expected - a well planned project only twice as long as expected.
15. If you don't stand for something, you'll fall for anything.
16. A problem shared is a buck passed.
17. A good project manager adheres to schedule. A project champion meets the targets.
18. You should cut down the tree that you are able to.
19. The optimist says: We do our very best for the project. The pessimist is afraid this might be true.
20. People under pressure do not think faster.
21. If you don’t know where you’re going, any road will take you there.
22. If you don't attack the risks, the risks will attack you.
23. Planning without action is futile, action without planning is fatal.
24. The project would not have been started if the truth had been told about the cost and timescale.
25. If it wasn't for the 'last minute', nothing would get done.
26. If you don't know how to do a task, start it, then ten people who know less than you will tell you how to do it.
27. If everything is going exactly to plan, something somewhere is going massively wrong.
28. Too few people on a project and they can't solve the problems - too many, and they create more problems than they solve.
29. For a project manager overruns are as certain as death and taxes.
30. When the weight of the project paperwork equals the weight of the project itself, the project can be considered complete.
31. A project manager should not look where he fell, but where he slipped.
32. You can build a reputation on what you're going to do.
33. The sooner you get behind schedule, the more time you have to make it up.
34. Everyone asks for a strong project manager - when they get him they don't want him.
35. Good estimators aren't modest: if it's huge, they say so.
36. Metrics are learned men's excuses.
37. If you can interpret project status data in several different ways, only the most painful interpretation will be correct.
38. Fast - cheap - good: you can have any two.
39. Never underestimate the ability of senior management to buy a bad idea and fail to buy a good idea.
40. The nice thing about not planning is that failure comes as a complete surprise rather than being preceded by a period of worry and depression.
41. The more ridiculous the deadline the more money will be wasted trying to meet it.
42. Good control reveals a problem early - which only means you'll have longer to worry about it.
43. No project has ever finished on time, within budget, to requirement - yours won't be the first to.
44. Warning: Dates in the calendar are closer than you think.
45. There is no such thing as scope creep, only scope gallop.
46. Anything that can be changed will be changed until there is no time left to change anything.
47. If project content is allowed to change freely the rate of change will exceed the rate of progress.
48. The same work under the same conditions will be estimated differently by ten different estimators or by one estimator at ten different times.
49. If there are no more problems in your project, your boss will reduce your time and budget.
50. If you're 6 months late on a milestone due next week but really believe you can make it, you're a project manager.
51. A project gets a year late one day at a time.
52. It is human to make a mistake; it is stupid to persist in it.
53. You can con a sucker into committing to an impossible deadline, but you cannot con him into meeting it.
54. Nothing gets done till nothing gets done.
55. The project manager’s most important organ is the nose. He must smell a stink bomb before it goes off.
56. It takes one woman nine months to have a baby. It cannot be done in one month by impregnating nine women (although it may be more fun trying).
57. A minute saved at the start is just as effective as one saved at the end.
58. There's never enough time to do it right first time, but there's always enough time to go back and do it again.
59. If you have time to do it over again, you'll never get away with doing it right the first time.
60. Good project managers know when not to manage a project.
61. Good project management is not so much knowing what to do and when, as knowing what excuses people give and when.
62. Projects happen in two ways: a) Planned and then executed or b) Executed, stopped, planned and then executed.
63. The faintest ink is more powerful than the strongest memory.
64. A lump sum contract puts the buyer in the strong position - until the first change request is made.
65. If at first you don't succeed, remove all evidence you ever tried.
66. The first 90% of a project takes 90% of the time. The last 10% takes the other 90%.
67. All project managers face problems on Monday mornings - good project managers are working on next Monday's.
68. If an IT project works the first time, it is wrong.
69. Quality is free.
70. The conditions attached to a promise are forgotten - only the promise is remembered.
71. Of several possible interpretations of a communication, the least convenient is always the correct one.
72. If you are not fired with enthusiasm, you will be fired with enthusiasm.
73. A project manager should not be praised for starting a project but for finishing it.
74. The most valuable and least created document in project management is “Plan B”.
75. The most valuable and least used phrase in a project manager's vocabulary is "I don't know".
76. The most valuable and least said word in a project manager's vocabulary is "NO".
77. When all's said and done a lot more is said than done.

These proverbs are taken from the PDF by www.oliverlehmann-training.de to publish here.

Monday, April 6, 2009

Pigs/Chickens/Scrum: The terms of good practice

Daily Scrum

Each day during the sprint, a project status meeting occurs. This is called a "scrum", or "the daily standup". The scrum has specific guidelines:

The meeting starts precisely on time. Often there are team-decided punishments for tardiness (e.g. money, push-ups, hanging a rubber chicken around your neck)
  • All are welcome, but only "pigs" may speak
  • The meeting is timeboxed at 15-20 minutes depending on the team's size
  • All attendees should stand (it helps to keep meeting short)
  • The meeting should happen at the same location and same time every day
During the meeting, each team member answers three questions:
  • What have you done since yesterday?
  • What are you planning to do by today?
  • Do you have any problems preventing you from accomplishing your goal? (It is the role of the ScrumMaster to remember these impediments.)
Sprint Planning Meeting

At the beginning of the sprint cycle (every 15–30 days), a "Sprint Planning Meeting" is held.
  • Select what work is to be done
  • Prepare the Sprint Backlog that details the time it will take to do that work, with the entire team
  • Identify and communicate how much of the work is likely to be done during the current sprint
  • 8 hour limit
Sprint Review Meeting
At the end of a sprint cycle, two meetings are held: the "Sprint Review Meeting" and the "Sprint Retrospective"
  • Review the work that was completed and not completed
  • Present the completed work to the stakeholders (a.k.a. "the demo")
  • Incomplete work cannot be demonstrated
  • 4 hour time limit
Sprint Retrospective
  • All team members reflect on the past sprint.
  • Make continuous process improvement.
  • Two main questions are asked in the sprint retrospective: What went well during the sprint? What could be improved in the next sprint?
  • 3 hour time limit

Saturday, April 4, 2009

Launching 3rd party apps within iPhone from your apps

It is possible to launch other applications on the iPhone that are very useful to perform features beyond your application. E.g. you don't need to embed browser object within your app to show your web page to users... just invoke in-built browser using http: for the needful. Similarly mailto: for the mail, and tel: for calling etc.

Here is some sample code/info on how to launch other apps within an iPhone through your own customized app:
  • Launch the Browser
  • Google Maps
  • Launch Apple Mail
  • Dial a Phone Number
  • Launch the SMS Application
  • Launch the Browser
  • Launch the AppStore

Launch the Browser
NSURL *url = [NSURL URLWithString:@"http://www.inavdeep.com"];
[[UIApplication sharedApplication] openURL:url];

Launch Google Maps
// Create your query ...
NSString* searchQuery = @"1 Infinite Loop, Cupertino, CA 95014";

// Be careful to always URL encode things like spaces and other symbols that aren't URL friendly
searchQuery = [addressText stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];

// Now create the URL string ...
NSString* urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", searchQuery];

// An the final magic ... openURL!
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlText]];

Launch Apple Mail
mailto://${EMAIL_ADDRESS}

For example, here we are opening the email application and filling the “to:” address with contact@me.com :

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://contact@me.com"]];

Dial a Phone Number
tel://${PHONE_NUMBER}

Here is an example of how we would dial the number (800) 867-5309:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8001231234"]];

Launch the SMS Application
sms:${PHONENUMBER_OR_SHORTCODE}

NOTE: Unlike other URLs, an SMS url doesn’t use the “//” syntax. If you add these it will assume it is part of the phone number which is not.

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:55555"]];

Launch the AppStore
http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291586600&mt=8

Launching the AppStore URL is exactly the same as you would launch the browser. Using the link above, here is an example of how we would launch the AppStore:

NSURL *appStoreUrl = [NSURL URLWithString:@"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291586600&mt=8"];
[[UIApplication sharedApplication] openURL:appStoreUrl];
Finally, it is worth noting that you can launch another app from your customized app within same iPhone!

Tuesday, March 31, 2009

Skype for the iPhone is out now!

Just installed an official Skype app on my iPhone 3G through AppStore. The app looks awesome with excellent user experience. It was intelligently designed by keeping usual iPhone habits into consideration, very easy to use, full featured VoIP application.

I liked it a lot even when I am getting crash of app every 2 minutes. I know it will be stable very soon now. Definitely this is one of the most waited app for iPhone platform.

Few good factors:
1. Maintains calls & chats history within iPhone for faster look back
2. You don't need to login everytime you launch it
3. Automatically logs out upon quitting app. Good for battery backup.
4. Can make calls to mobile/landlines using SkypeOut.
5. Best - Make free calls over VoIP using expensive handset :)
6. Yet to test, but it supports conference calls

Skype have finally done it! And it was worth to wait.

Monday, March 30, 2009

Mac OS X keyboard shortcuts

Start up hot-keys (press key while booting)

X = Force Mac OS X startup
C = Start up from a bootable CD
N = Attempt to start up from a compatible network server (NetBoot)
T = Start up in FireWire Target Disk mode
Opt-Cmd-Shift-Delete = Seeks a different startup volume
Shift = Start up in Safe Boot mode
Cmd-V = Start up in Verbose mode
Cmd-S = Start up in Single-User mode

Cmd-Opt-Esc = Force Quit menu
Cmd-Opt-D = Show/hide the dock
Ctrl-Eject = Bring up Shutdown/Sleep/Logout Dialog
Ctrl-Cmd-Eject = Restart immediately

Clipboard

Cmd-C = Copy
Cmd-V = Paste
Cmd-X = Cut
Cmd-A = Select All

Finder Navigation

Cmd-N = New Finder window
Cmd-W = Close Window
Opt-Cmd-W = Close all Windows
Cmd-Down = Open File/Folder
Cmd-Up = Navigate to parent
Cmd-Right = Expand folder (in list view)
Cmd-Left = Collapse Folder (in list view)
Opt-Cmd-Right = Expand folder and its subfolders (in list view)
Opt-Cmd-Up = Open parent folder and close current window
Cmd-Shift-H = Jump to your Home folder
Cmd-Shift-A = Jump to your Applications folder
Cmd-Shift U = Jump to your Utilities folder
Cmd-Shift K = Jump to the Network browser
Cmd-Shift G = Goto Folder…
Cmd-1 = View as Icons
Cmd-2 = View as List
Cmd-3 = View as Columns
Cmd-Space = Open Spotlight (OS X 10.4)
Cmd-Delete = Move file/folder to trash
Cmd-Click window title = Display the file path

Menu Commands

Shift-Cmd-Q = Log out
Shift-Opt-Cmd-Q = Log out immediately
Shift-Cmd-Delete = Empty Trash
Opt-Shift-Cmd-Delete = Empty Trash without dialog
Cmd-H = Hide window
Opt-Cmd-H = Hide Others
Cmd-N = File New window
Shift-Cmd-N = New Folder
Cmd-O = Open
Cmd-S = Save
Shift-Cmd-S = Save as
Cmd-P = Print
Cmd-W = Close Window
Opt-Cmd-W = Close all Windows
Cmd-I = Get Info
Opt-Cmd-I = Show Attributes Inspector
Cmd-D = Duplicate
Cmd-L = Make Alias
Cmd-R = Show original
Cmd-T = Add to Favorites
Cmd-Delete = Move to Trash
Cmd-E = Eject
Cmd-F = Find
Cmd-Z = Undo
Cmd-B = Hide Toolbar
Cmd-J = Show View Opts
Cmd = [ = Go Back
Cmd = ] = Go Forward
Shift-Cmd-C = Go to Computer
Shift-Cmd-H = Go to your Home folder
Shift-Cmd-I = Go to iDisk
Shift-Cmd-A = Go to Applications folder
Shift-Cmd-G = Go to Go-To Folder
Cmd-K = Connect to Server
Cmd-M = Minimize Window
Cmd-? = Open Mac Help
Cmd-Space = Open Spotlight (OS X 10.4)

Screen capture

Cmd-Shift 3 = Capture the screen to a file
Cmd Ctrl Shift 3 = Capture the screen to the clipboard
Cmd-Shift 4 = Select an area to be captured to a file
Cmd Ctrl Shift 4 = Select an area to be captured to the clipboard
Cmd-Shift 4, then press Space = Capture entire window

Universal Access

Opt-Cmd-* (asterisk) = Turn on Zoom
Opt-Cmd-+ (plus) = Zoom in
Opt-Cmd– (minus) = Zoom out
Cmd-Opt-Ctrl-8 = Invert Screen colours

Window Management

Cmd-W = Close window
Cmd-Opt-W = Close all windows
Cmd-M = Minimise window
Cmd-Opt-M = Minimise all windows
Cmd-H = Hide Application
Cmd-~ = Cycle through windows for current application
Ctrl-F4 = Cycle through every open window
Cmd-Tab = Bring up the Application Switcher.
Cmd-Tab = Cycle Forwards
Cmd-~ = Cycle Backwards
Cmd-Shift-Tab = Cycle Backwards
Cmd-Q = Quit application

Expose

F9 = Show all open windows on the screen at once
F10 = Show all windows for the current application.
F11 = Shows Desktop
F12 = Activates Dashboard
F12 (hold) = ejects disk

Miscellaneous

Opt-Cmd-D = Show/Hide Dock
Ctrl-Up = Move up one page
Ctrl-Down = Move down one page
Opt-Drag = Copy to new location
Opt-Cmd-Drag = Make alias in new location
Cmd-Drag = Move to new location without copying
Opt-Cmd-Eject = Sleep
Cmd-click window toolbar button (upper right corner) = Cycle through toolbar views
Ctrl-Cmd-D and mouse over word in Cocoa applications = shows Dictionary description for that word

iPhone dev: ibtool failed with exit code 5

A dirty error was occuring while I was compiling an iPhone app to deploy in my iPhone v2.2.1. I thought I need to go back to developer mode to fix this, but luckily I found a quick solution to this which was fairly simple than anything else in Cocoa coding. I would definitely want to share this with you coz it looks quite common error to me. Likely to be an Xcode bug too:

Error description, "Command /Developer/usr/bin/ibtool failed with exit code 5"

Clue: UITextFields can’t be set to Hidden !!!

The solution is: You probably have a UITextField set to hidden in one of your Nib files… Unhiding the UITextField will solve the problem.

Enjoy!

Wednesday, March 11, 2009

Slum Economy Millionaire!

Politics is dirty everywhere; from corporate office to national presidential elections.

In India, its a season of Lok Sabha (also titled, the House of the People, by the Constitution) elections in 5 phases on April 16, April 22, April 23, April 30, May 7 and May 13, 2009. The results of the election will be announced in single phase on May 16, 2009.

The election is conducted by the Election Commission of India, which estimates an electorate of 714 million voters, an increase of 43 million over the 2004 election. During the budget presented in February 2009, Rupees 1,120 Crores (Approx. EUR 180 M) was budgeted for election expenses.

Voting Infrastructure
The election will be conducted using the Electronic voting machine (EVM), as was done with the 2004 election. There are 1,368,430 voting machines available across the country.

There are 828,804 polling stations in the country, a 20% increase over the 2004 election. This has been done mainly to avoid vulnerability to threat and intimidation, geographical barriers and to reduce the distance travelled by voters.

Lets see, who is going to be the next millionaire?