Sunday, December 28, 2008

Nokia E71




Whoever said iPhone will dominate was partially correct. With Nokia's years of experience, they sure wont give up that easy!
(Although a $99 iPhone will sure make a huge difference )

One example of a really good deal from Nokia is the Nokia E71. Which is essentially a good price/features deal.

Key Features include:
- Full Qwerty Keyboard
- 369 MHz processor/128 MB SDRAM Memory
- Wifi/Bluetooth/Infrared/v2.0 microUSB
- GPS
- 3.15 MP camera
- MP3/AAC/MPEG player
- Email/IM
- Slim!
- 10 hours talk time battery

Google releases Browser Security Handbook

They are taking this whole web browser thing seriously !
To the extent that they did release a security handbook.

Google Chrome is no beta any more, IE8(which is still Beta) will contain similar features to google chrome.

One of the key features in IE8 is that it supports Tab Groups. And most notably Advanced Printing (finally?). It took them 8 versions to figure out that something is wrong with printing!!

It is not clear yet which browser will score more in terms of JAVA SCRIPT SPEED(which is what matters anyway)!

Saturday, December 27, 2008

World of Goo !




This game is just amazing. One of the best games in 2008 actually.
With a more than an excellent physics engine and low hardware requirements it sure ROCKS !

You can't resist finishing the demo !

It is really fun to play it after all those crazy evil FPS games I have been playing the past weeks.

It is all about the business value!

If I learned anything from the last year at work. It is all about the Business Value !

Whatever time or effort I spend on any task, if that doesn't directly translate to a business requirement then I am simply wasting my time.

It could be surprising how much good feedback we get from our clients on projects that we are "not proud of", just because it does a really important task (high business value?) !

I call it the development ROI (Return On Investment). If my development work doesn't directly translate to business values (something that I can explain to a non tech-savvy user) I simply stop.

So basically I stopped the awful habit of "optimizing my code" ! Why 'd I spend hours optimizing code that will run less than 10 times in an hour ! And it didn't fail me so far ! So I only optimize code that would result in bottle necks or really really poor performance!

Wednesday, July 30, 2008

Turn on Windows XP Clear Type !

Do you have a LCD Monitor ?

It is time! Enable Clear Type support in Windows. And you will be thanking me already. Here is what you will get:


Even if you have a CRT monitor you will still get some improved readability.

Monday, June 30, 2008

Reset Database Table Identity Value

One of things that always motivate me to blog is future reference. Anything I place here makes a good reference later. And of course I can always tell people "Hey you can find it here"

So here is today's SQL tip:

you can use the DDBC command to reseed the identity column value. This is usually helpful after a series of DELETE operations. By default MS SQL Server doesn't reseed (give the default seed value + 1) the identity column, so say you had a Users table with 1000 records with an identity column UserID. Then you decided to kick all the users off ( DELETE FROM Users). Then you decided to add them back INSERT INTO Users(.. ) VALUES ( ... ), the first inserted row will have a UserID value of 1001 ( not 1).

DDBC command sytnax:

DBCC CHECKIDENT ( table_name, [reseed / noreseed], [new_seed_value])

So to use it on our Users table, we can do the following:


DBCC CHECKIDENT ( Users, reseed, 0)

I will be soon blogging on the use of FOR XML EXPLICIT. This is not a SQL blog, It is just SQL that I keep forgetting.

Sunday, June 1, 2008

Method Overloading by Return Type

Days ago, I had that interesting conversation with some of my geek friends of overloading methods by return type. I said that is not possible in Java or C# to overload a method by its return type. In other words I said you can not have:

class Demo
{
public static int f()
{
return 1;
}

public static float f()
{
return 1.0F;
}
}

I have backed up my statement with the fact that compiler would have a lot of problems executing the right method, since the methods will have identical signatures but different return types so there is virtually no way of picking up the right method. So one of my friends suggested the following case:

class Demo
{
public static int f(int a)
{
return a;
}

public static float f()
{
return 1.0F;
}
}


With my previous assumption I said that the code won't compile too, which was proven wrong. Actually the compiler will allow that because it can simply differentiate between the two methods, since each of them has a different signature (different parameter list).

So we all learned a valuable lesson in method overloading

Update

The .NET Framework CIL (Common Intermediate Language) actually supports method overloading by return type. Of course the current languages (C#, VB.NET, J# ... etc) running on top of the .NET Framework don't support that feature except when overloading class conversion operators.