Showing posts with label suresh. Show all posts
Showing posts with label suresh. Show all posts

Friday, March 05, 2010

Best digital Gadgets – Part 1 – Harmony Remote

Best digital Gadgets – Part 1 – Harmony Remote

We live in a generation where anything and everything can be controlled by a remote aka clicker. Let’s face it – life will not be the same without the remote control.

With the growing number of digital gadgets that occupy your living and bed room, it is inevitable that someday you will find yourself sleeping surrounded by all those remotes.

Even a simple task like switching to DVD from satellite TV can require some juggling skills with atleast 2 or 3 remotes.

And then you have an epiphany – life has to be simpler than this. You cannot be sleeping in the company of plastic remotes.

Enter the world of universal remotes – the magic device with a promise to change the way you control your digital devices. Well, not all devices live up to the expectation.

There are a lot of options in the market for these universal devices – but most of them are cumbersome and if anything – make your life much more complex!

Like the silver lining of a cloud, there is an exception – the Logitech Harmony.

The Harmony – like its name, aims to control your devices in perfect harmony. The first device was created by a company called Easy Zapper and now is part of the Logitech group.

What separates Harmony from the rest of the pack – its approach to device control and its usability.

What I mean by the approach to device control is that – Harmony lets you define “Tasks” which require performing multiple actions on various devices. For example – Let us take an example task, “Watch ESPN”. To do this, you need to make sure your TV is on and set to the correct input, your Satellite Box is on and set to the correct channel. When we say a task – it is doing all the above set of actions which will let you attain the goal – in this case, watch sports on ESPN. With some of the other universal remotes, it is common for them to provide functionality to control the various devices, but you still have to perform each action individually to get the desired result.

Usability – Atleast the device I have is probably one of the best – A touch screen based device beats a device with 100 buttons any day! We all love to touch the bright screen :) - more than that, the usability of the harmony is apparent in the way you setup the device. You do not have to go through the cumbersome process of pressing each button on the old remote so that your new remote can learn the codes. Imagine holding the 2 remotes and pressing each button – yikes !

With the Harmony’s bundled software allows you to select the list of devices you have. These devices and their codes are pre configured by Logitech and the information is automatically pulled from Logitech servers via the internet. Once you select the list of devices, some preconfigured tasks are setup. You can choose to create additional tasks as you like – all using the software. Once you are done, you connect the remote to the computer and apply your changes – and viola! all the tasks are setup on your remote – as easy as that.

In my experience, the process was as easy as that. Ofcourse, you may have one of those devices which is not in the online database of remotes. Then you still can go old school and manually learn the device by pressing the buttons. So in all – the harmony is the perfect beast ! Sure, there are some quirks too with specific devices – I have still not been able to switch to the Digital inputs of Sony LCD TV to the correct input consistently. But it is something I can live with considering all I need is one sleek touch screen remote.

There are several versions of the Harmony – but the Harmony One is probably the best version for its price tag. Had a small touch screen, rechargeable battery and comes with a cradle, good form factor to fit perfectly in your palms. All Harmony units are a shade expensive than the ordinary remotes. The price tag is absolutely just for what this unit is capable of. So all in all – one of the best gadgets I have purchased.

Harmony also has the 1000 and the 1100 versions – Cool large touch screen and a bit expensive – but makes you look uber cool :)

Sunday, February 28, 2010

Enemy of my Enemy is... - A tale of few companies

A tale of few companies

Back in the early 1980's Bill Gates struck gold by licensing MS-DOS for IBM-PC. By retaining the rights to the software, Microsoft was able to license the same to the subsequent PC-clones. This would start a chain of events that would propel Microsoft to the pinnacle of Information Technology industry.

As always, there were a few rebels - most notably, the group inspired by the creative and artistic brains of Steve Jobs and his crew.

Remember the 1984 Superbowl Ad. The rivalry between the two companies was even worth making into a movie.

But the uprising of the rebels was rather short lived. They would soon start their downward spiral descent and enter the era of uncertain future. It would seem like they had too much cola in their corporate DNA. This left the stage wide open for Microsoft to establish it's empire. The term PC became synonymous with Computer.

The world was opening its door to Windows. The Internet era had dawned upon us with no real competitor to Microsoft. And Microsoft made it a habit to crash into every one else's party.

Few fought back the mighty Microsoft - Remember Netscape? They cried foul and world entered the first browser wars - now we know who had the last laugh in that battle.

There were others who raised red flags like Sun. For good or bad, Microsoft had become the bad boy of the industry. Many became causality to the rise of Microsoft empire - WordStar, Lotus 1-2-3... to name a few. Yet, most of us were on the evil empire's side. Even a whole continent decided to bring an anti-trust case against Microsoft.

Few rebels decided not be a part of this whole charade and joined the open source and linux revolution. But only a few nerds really cared about this and for a good reason. (Probably) a couple of such nerds were busy at an university thinking of a new idea which has become a verb in today's vocabulary - Google.

The old foe was getting back on his feet again. Surprisingly, this time around - Apple and Microsoft seemed to be getting closer than ever before.

The Internet revolution also sparked the glory days of file sharing networks – especially Napster. Suddenly we had an alternative to music on cassette tapes – Even with a geeky name like MP3, the new format became very popular. It was possible to listen to decades of songs without having changing the record or turn the cassette over.

Times were such that adding a .com to your business meant stellar profits. A lot more was at stake - people worried sick about an Armageddon on the eve of New Year 2000. Luckily, it seems like we will still live till 2012.

Cashing in on the digital music revolution fuelled by the Internet - Apple was designing something which would take the world by storm. They broke into a market in which Sony was the supreme ruler - the personal music player. The iPod was born. And just like that, all those songs on your computer is now on your palms and ready to go. Flight trips would never be the same again !

The .com bubble had also burst by now. Hopefully people had learned that a strong business model is necessary to be sustainable.

But the whole dot-com era has left behind so many websites and online shopping habits which would not have been possible without a quick way to get information from the vast depth of Internet.

The answer was Google - which was taking shape and said we wont be evil. That corporate slogan was good enough for many and the world embraced Google.

Another byproduct of the dot-com bubble were the enterprise applications. Many companies have established strong online presence for their endusers as well as employees. Standardization and security were order of the day. Companies like oracle thrived on this necessity; at times by acquiring other companies. Some of these deals were not very popular. But Oracle built its empire on this strength.

Just like Apple, Netscape made a reapperance from it grave - in a new form and with a new name - Firefox. Can Firefox achieve what Netscape couldn't? The answer - Yes it can. Today Firefox has 25 to 30% of the market share which was once unimaginable when IE had about 90+ %. To complicate matters further, Google decided to bring it's own spin - Chrome. All this has brought the Microsoft browser's market share down to about 60%.

Even Linux had matured a lot for desktop users and started to compete with Windows – but still has a long way to go.

The re-emergence of Apple and the runawy success of it's iPod would manifest in another form of threat to Microsoft. Microsoft had been in the mobile market for some time - albeit with it's flaws. There was a substantial following at one time. Apple came up with this new idea of adding the phone component to it's iPod and called it the iPhone.

iPhone was truly a revolutionary product. Calling it just a phone won't do justice to it's capabilities. iPhone was more of a multi purpose device which can also be a phone. Backed by the most popular App Store, iPhone would shake the foundation of traditioal phone companies like Nokia and Motorola (oh, what happen to siemens which was the first phone I owned). Suddenly all these established players were trying to play catch up with apple who was a relatively new comer to the mobile market. Goes to show that creativity will always the winner.

Today the relations between these major players are as complex as the web itself. They use the services of each other on one arena and end up competing as bitter rivals on others. Till recently, the CEO of Google even served on the board of directors at Apple.

The old saying goes - Enemy of my Enemy is my Friend. But in today's IT industry, every one is every one's enemy and friends.

Sunday, March 23, 2008

Cricket

Born in India, its only natural that I took immense interest in the Game of cricket. Lets face it - Cricket is more than a religion to a lot of people in India.
What strikes me the most is the transformation of the game.

I remember when I was a kid, it used be a "slow game" when we compare it to today's standards. Satellite television was non-existent in India in the late 80's. Back then we were still in the terrestrial era TV with limited TV channels and if you are lucky, you get to see live broad cast of matches played by India. Contrast that with what we have today – hundreds of channels, people got their own satellite dish and there is always some cricket match telecast all day (atleast in India). These days, we get live feeds of every cricket game – including matches that do not involve India - even Non-Indian Domestic games for games for crying out loud. That to me is testimony to the broad casting revolution that has happened in India starting from the mid-90's.

Anyway, now coming back to cricket, When I started following the game, Test match cricket was the deal. One day cricket was there - but the notion then was test cricket is the real deal. I am not going to argue which version is better here... am sure each version has its own merits.
Lets face it – We live in a fast-paced generation – where a lot can happen in a matter of minutes, its a stretch to watch a game that prolongs to 5 days. Agreed - that it takes a lot of skill, determination, courage and tactics which come into play in a test match and for this reason - test match will be played for ever even if we keep inventing new versions of the game. IMHO, test cricket will continue to exist for ever and will be the testing grounds for players. But, these players eventually win the hearts of the people by providing the excitement which is immense in the shorter version of the games.

Ok - now - moving on to the next exciting thing - One day cricket - boy - was this a revolution or what? The other day I was reading archived news material about Kerry Parker/Tony Grieg stages of world series cricket which is the roots of one day cricket as it is today. One day cricket makes things exciting – Given that rules favor the batsmen - but if you are a good bowler, you can still play a significant role in the game - look at Brett Lee - he spells terror for any opponent on all games !

The problem with One day cricket is - its still too long - If I ve to watch a game played on a weekday, I have to take off from work and watch the game - which is not always possible.
So we tend to miss the live telecast / part of the match and watch the highlights. Its not like catching a NBA or NFL game in the evening.

The recent edition of cricket - the 20/20 is a revolution. Its pure excitement from the start to finish of a game. To put it plainly, 20/20 is One day cricket on steroids. The whole game is complete in 3-4 hours - which makes it an ideal sport for the evening after work. The other fantastic aspect is - how things can change - the game can turn over its head in just a matter of few mins. This sway of fortune and equal opportunity to both teams makes the game fantastic. To be honest, One day cricket gets a little predictable based on the proceeding of the first 15/20 overs. But with 20/20, you cannot predict till the last ball is bowled or the last run is scored.

Now, we are entering the phase of League cricket in India - The ICL and IPL. To me this a huge step in the evolution of 20/20 and cricket as a whole. IPL is scheduled to start later this year. But ICL has definitely grown leaps and bounds. The games are more interesting and very exciting to watch – which is the ultimate aim of a sport. The players get a nice monetary reward for their effort which is good to see.

A person from non-cricket playing country like US - watched cricket over the years he would have seen tremendous change. From the white clothes game to the colored clothes, ODI day light matches to today's 20/20 games with Cheer leaders, fantastic technology being used in the coverage like the GPS to monitor the player's effort, fly cams, snico's, hot spots - its a total revolution !

So - with all these exciting changes, lets wish success to the new format of the game and lets hope it will revolutionize cricket in the years to come.

Wednesday, January 25, 2006

Balancing the workload between the websever & database server

How to write content rich - optimized web applications quicky which does not over load the webserver?

Its a common habit of newbies to use SQL queries on the database just to fetch the records. Then use the functions provided by the Server side scripting language like ASP / PHP to process that result set and print the output. The next step would be to filter out records using the WHERE in the SQL.

As you gain experience as a web programmer, you learn to do wonders by writing effective SQLs.

Imagine you have a timestamp field on the DB. Don't you think its a lot of work & over head on the server to fetch the time stamp and process the timestamp using string function in a loop ?

Rather will it not be easy to use the following SQL:

SELECT DATE_FORMAT('format_string', ) FROM tablename

Also, you can optimize the performace of a web application by writing SQL JOINS. Use the DB server do the job and reduce the work over load on the web server & the server side scripting language. Check out the following SQL:


SELECT users.uname AS USERNAME, groups.name AS GROUPNAME, COUNT( * ) AS LOGINS, DATE_FORMAT( userlogintrack.ltime, '%b %D, %Y' ) AS Date
FROM userlogintrack
LEFT JOIN users ON users.uid = userlogintrack.uid
LEFT JOIN group_membership ON group_membership.uid = users.uid
LEFT JOIN groups ON groups.gid = group_membership.gid
GROUP BY userlogintrack.uid, TO_DAYS( userlogintrack.ltime )
ORDER BY Date DESC , users.uname
LIMIT 0 , 1000


The above SQL process 3 different tables and gives the result set to the server side scripting language (PHP) which can just print the results without any additional processing at the web server. If you were to do this with PHP alone, then you have to process 3 different result sets with increased overload on the busy webserver.

That being said, don't start writing complex SQLs and sacrifice the power of a server side scriptiong language. A good, efficient programmer has to strike the correct balance between the SQL & the functions of the server side scripting language to distribute the workload.

RPM Auto Install Dependency (--aid option)

Ever ran into a situation where you did the minimum installation of linux and later you started to install the softwares (RPMs) from the dist CD(s) and ran into lot of dependency failures??

The best way to deal this is using the Auto Install Dependency option (--aid) provided by RPM.

Install the minimal RH linux system. Copy ALL the .rpm files from the RPMS folder (from all the CDs) to some folder on the HDD - say /var/dist/RPMS

Now, this folder contains all the RPMS of the distribution.

Make sure that the rpmdb-redhat package is installed.

Now, you have to edit the RPM configuation to point to the location of RPM repository.

Edit the following file: /etc/rpm/macros.solve and change/add these lines:

%_solve_pkgsdir /var/dist/RPMS
%_solve_name_fmt %{?_solve_pkgsdir}%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm

Now, when ever you try to install a software and encounter a missing dependency, use the --aid switch like illustrated below:

rpm -ivh --aid /path/to/installtree/RedHat/RPMS/somepackage.rpm

This shud automatically resolve all the dependencies and also install them from the RPM tree.

The above solution will be capable of resolving dependecy based on the information available on the distribution's RPM database you installed. It cannot resolve the dependencies from packages which are not a part of the distribution. There are automated tools which can download and install dependencies on demand from the internet. Use tools such as yum, up2date etc.

Source: http://www.redhat.com/advice/tips/rhce/rpm.html

Writing SQL Sub Selects as JOINS...

Did you know that you can re write all sub-selects as SQL Joins? This comes handy when you are using a DB which does not support sub-selects (for eg. MySQL 3.x)

Take the following Sub-Select for instance:

SELECT * FROM table1 WHERE id IN (SELECT id FROM table2);

The above can be re written as:

SELECT table1.* FROM table1,table2 WHERE table1.id=table2.id;


Now, consider this Sub Select:

SELECT * FROM table1 WHERE id NOT IN (SELECT id FROM table2);

this can be rewritten as:

SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id WHERE table2.id IS NULL;

Sub Selects/Joins help to distribute work load to the database server rather than filter data at the front end.