Showing posts with label technology. Show all posts
Showing posts with label technology. Show all posts

Monday, August 06, 2007

Website Tools

A few days ago, Yahoo! released YSlow, a tool for analyzing the performance of web sites and informing you why they are slow, if they are performing badly. It is a free tool that runs in Firefox as part of the Firebug web development tool. The tool basically examines the currently loaded website using a few performance-related suggestions by Yahoo!

I had a little fun when I ran the tool against the download page for YSlow! The performance grade (see below) is D (67) with a couple of F's against two checkpoints. I did a little better with a "B" for my website though I also got 2 F's which I need to work on.



Here are a couple of other website administrative tools that may help you:

  1. The validators at W3C.org: There is an HTML markup validator, Link Checker and CSS Validator. Since HTML and CSS mistakes are easier to spot when you are browsing your website, those validators are probably less important than the link checker. Broken links can be hard to find and also sometimes external links get broken after you upload your site. So running the link checker periodically is helpful. If you have an RSS feed, you can use the Feed Validation Service, though that is less useful if you are using a blogging platform.

  2. Google Webmaster Central and Yahoo! Site Explorer: Both these tools allow you to see incoming links to your website. The Google Webmaster tool also provides you information about website errors, statistics about what searches are resulting in visitors (like Google Analytics, but also providing a search ranking) and internal/external links. The SEOmoz Page Strength Tool provides you a snapshot of incoming links and what search engines and indexes think of your website.


Wednesday, July 18, 2007

Integration between Google applications

The recent acquisition of FeedBurner and the subsequent quick integration with Blogger was a superb move by Google. Recently, Google has made many integration efforts between various applications and many of them have been really beneficial to both web authors and end users.

A few examples from Blogger itself:

  1. Integration with Google Custom Search: With no coding, you can now add a custom search widget for your blog. You can see an example to the right of this post. This is much easier to do than trying to set up a Google Custom Search separately and then include it in the Blogger template.

  2. Search Engine Optimization: Google has included a robots.txt file that now excludes the pages of the various blog categories. This avoids the need for bloggers to do more house-keeping by using sitemaps in tools like Google Webmaster Central. I expect that Google will now start to exclude archive pages and thus avoid duplicate content search result issues. Strictly speaking, this integrates with all search engines supporting robots.txt, not just Google.

  3. Integration with Picasa Web Albums: The images in Blogger posts are now stored in Picasa Web Albums. This has the potential of allowing tools like Windows Live Writer to post images to Blogger, and also allow blog authors to understand how much space they have left to upload images.

Other integrations I liked were the email capability in Google Reader, saving of Google Talk chats in Gmail, Orkut message alerts in Google Talk, Google Maps in Google Search results, etc.

Here are some other possible Google product integrations that would add value and reduce duplication:

  1. FeedBurner statistics and Google Analytics: While FeedBurner does have the functionality of serving feeds, its statistical component could be integrated into Google Analytics so that webmasters could see the information in one place.

  2. Blogger and Google Page Creator: Although blogs can exist as web sites in their own right, sometimes there is the need for creating additional content that exist as static or dynamic web pages. WordPress already allows one to create separate web pages.

  3. Gmail and Google Reader: Many email clients (including Outlook and Thunderbird) already allow one to read blogs. Why not Gmail? Combining it with Reader will make it easier for users and result in a killer application. Gmail has a very rudimentary blog reader - it should be replaced by Google Reader.

An aspect of integration that is not quite getting the press that it deserves is the fact that Google is able to make its flagship Search product much better. The concept of PageRank basically boils down to what content is rated high by persons of authority (primarily web authors) on the web. But web authors are only a very small minority and not even representative of Internet users who are consumers of web search. Content should be really be rated by how users behave when they see search results and choose what they believe is relevant.

The data from Google Reader, Google Analytics and FeedBurner provide valuable information in this regard that keeps Google quite ahead of competitors. These products allow Google to understand what content users find valuable. Spammers may try to game the system, but this does not distract from the fundamental benefits obtained through this integration.

A couple of times, I have stated on this blog that Google is way ahead of competitors on search. I didn't provide any references, but that is what the data shows. My Analytics statistics show that Google currently brings 75% of the traffic to this site - a share that has been growing. Yahoo! is at 1% and Live and Ask are not even in the picture.

Internet users are continuing in increasing numbers to express their confidence in Google results. And all signs indicate that Google Search will be much more relevant than ever before, consolidating Google's hold on the market. Google is doing this not just through algorithmic competence or infrastructure capability, but also through increasing understanding of real end user behavior. And that is a great winning combination.


Friday, July 06, 2007

Making Money from a Hobby

Sometime back, I discussed how doing a hobby project can help one learn many new things regarding a particular subject. When a hobby becomes a passion, you quickly become an expert at it and it is possible to turn the hobby into something that can help you earn money on the side. For example, if you are interested in photography, you could actually try to sell some of your photographs to somebody who is interested.

Doing your hobby as a day job may not be possible, as the amount of money you can make may not replace your regular salary. Although some people are able to make a hobby their full-time occupation, realistically, most people can mostly hope only to augment their income. Doing this is a good thing. Additional income will help you justify the time you spend on the hobby as well as buy or do useful or entertaining things.

There are many hobbies that you can make money off, especially if you are in the technology field. Creating programs or content on the web and using advertisements to gain revenue. Teaching people about computers or programming languages. Giving speeches and taking seminars. Trouble-shooting problems for people. I used to do some of these activities in the past.

Doing a hobby for money does bring a few challenges:

  1. There is a direct relationship between how hard you work and how much money you earn. Well almost - the more you work, the greater the possibility of earning more money (not necessarily actually earning). So it is difficult to avoid spending a lot of time on the particular activity and becoming a workaholic. Soon, a hobby can become pretty consuming. Even holidays and weekends can get filled with activities.

  2. The focus changes from you to your customers or consumers. A non-commercialized hobby can be pursued without consideration for what other people think. When you are trying to earn money, your preferences may not match the people who are contributing to your income. So you will have to adapt or perish. The hobby becomes more work than a relaxing pastime.

  3. At some point, you will hit a plateau where more work doesn't result in more revenue. You may need to start looking at advertising or marketing or even change various attributes of your products. Thus the actual creativity work becomes less, and more time is spent on selling. In fact, the more successful you are, the less you would actually spend on the core of your hobby and more on publicizing and monetizing it.

  4. The ups and downs of income can create additional pressure and stress. When you have a bad day or week where you have less income, you can feel dejected and frustrated, even though the factors that contributed to this may be totally outside your control. It may take time to understand and realize that this is all part of a typical business.

I don't mean to mention these challenges as a way of discouraging someone from commercializing their hobby. In fact, realizing that you could have earned (and didn't try to earn) a significant amount of money from something you were just doing for fun can make you feel stupid and foolish. By all means, use your full potential to earn as much money as you can.

But do understand that the process of making money can change the dynamics, make it less fun and create more work and tension. Once you learn to accept this, then it becomes much smoother as you can be better prepared.

Wednesday, July 04, 2007

Cell Phones - The Future of Computing

It looks like the iPhone has made a great start with an estimated 700,000 iPhones sold. I suppose the world is now divided into the following camps:

  1. People who have an iPhone.
  2. People who don't have one, but wish they had.
  3. People who will keep complaining about the iPhone hype, until they finally give in.
  4. People who don't know about the iPhone yet.

Regardless of the iPhone's merits or demerits, it is part of a trend towards making the cell phone increasingly powerful. Six months ago, I wrote a post on the "cell phone computer" where I discussed how the cell phone is increasingly taking over many functions that were done by other devices or equipment. Today, that is even more so. Although the primary selling point of the iPhone is its design, it also has significant new features.

Why should the cell phone be the core component around which other technologies are assimilated? Why not the computer or the TV? Here are a few reasons:

  1. Cell phones are mass-market consumer products. Even people who are not tech-savvy can use them.
  2. Being electronic gadgets, they are very reliable, unlike computers.
  3. They are rugged and portable. Since they run on batteries, you don't need to worry about power sources most of the time.
  4. Business models of cell phone companies are built around charging for the phone service. So, you can get very inexpensive, but capable phones.

As technology advances, cell phone service costs will continue to decrease and coverage areas will increase. This not only means a large consumer base, but also greater usage. In simple terms, everyone will have a cell phone with them and be connected all the time.

With increasing and better Internet availability, cell phones will replace desktop and laptop computers as the primary device for accessing the Internet. Why do most people use the Internet? Read email, play games, check the weather, browse the news - you can do that and more on cell phones now. The only obstacle is consistent good Internet access and that will only improve as time goes.

The main problem with cell phones, as I mentioned in my previous point, is the fact that they are small. Although people like smaller cell phones because of the convenience, they like seeing things on larger screens. The two are not mutually exclusive. A small piece of equipment can produce a large image by using projection on a wall. Or it could be docked to a large screen display, thus reducing battery power needs.

My feeling is that the latter is most likely to happen. You would have stand-alone screens that could easily connect to different cell phone models through a common interface. You would get your movies from the cell phones. In the future, you probably will never buy any movies in a physical medium like DVDs. You would stream movies from a central library using your cell phone as a conduit to the Internet.

Although people are getting better at entering data into a cell phone, the keyboard and mouse will not go away soon because they are perhaps the most efficient input devices available. Multiple touch screens are great, but people will continue to have a need to enter text. This is true even after high-precision voice technology is commonly available.

One reason why many programmers don't see this trend is the fact that our whole careers have been in front of a desktop or a laptop. We have been creating applications that run on a personal computer or on a server. Server computing and development will continue as applications and data become centralized. But the clients will shift from a PC or Mac to a cell phone.

The one major difference between developing for a desktop system and developing for a cell phone is the fact that cell phones must continue to be reliable. You probably cannot have Norton Anti-Virus or other protection programs running on your cell phone. Users won't stand for that sort of stuff on an electronic gadget. What this means is a fundamental change in how you create programs.

Other differences are disappearing.

With the iPhone, we just saw the integration of the iPod with the cell phone. What is next? I think the next stop is integration of Web 2.0 sites with cell phones. We will increasingly start seeing user-generated content coming from cell phones. For example, you go to a restaurant, it sucks and you post the review right then and there as you wait for your check. The first web sites that enable this capability will win, and they will win big.

Watch this space in another six months.

Technorati tags: , ,

Tuesday, June 19, 2007

Mashup Tools

I recently applied for and received (separate) invitations from Microsoft and Google to try out Microsoft Popfly and Google Mashup Editor. Both of these products are intended for developers who want to create feed-based mashups. And both are competing products to Yahoo! Pipes - note my original and follow-up reviews. As I mentioned in my reviews, I use two Yahoo! pipes - one containing the feeds of all my friends and the other containing all relevant Google blogs (See snapshot below) - this helps me streamline the subscriptions list in Google Reader.



Microsoft Popfly was serious under-whelming. The graphics were supposed to be cool, but I could hardly get anything working. In fact, the dark and red combination of the graphics made it difficult to navigate the interface. It was also slow. And it didn't work the way I expected it to with some feeds I tried out. In fact, some feeds were just not processed. There was a Code View, but that also was very confusing.


Google Mashup Editor was much better. There is an initial learning curve as the interface is not graphical at all, but once you get over that, it becomes really easy. You have 3 tabs, the first being a code editor where you have to use an XML language to work with your feeds. There is a "Feed Browser" tab that shows you the raw feeds. Finally you have a Sandbox where you can see the final formatted results.



On the right side, there is a well-organized tab that contains your projects and sample projects. You can load a sample project and save it as your own. There is a Help link that leads to some very good and simple documentation. Google has done a really good job here, unlike Yahoo! which made a terrible mess of documentation when it launched.

So how would I compare Yahoo! Pipes with these new products?

  • Yahoo! Pipes has an excellent user interface. It is very intuitive and easy to get up and running. It works excellently. In the last 4 months, I don't recall even a single problem. The place where they may get hurt in the future is a lack of good scripting capability that can extend the functionality. But so far, so good.


  • Google Mashup Editor seems to have the greatest potential. It is excellent for a first release. It has all the basic elements in place - a simple syntax, an easy way to test and reasonably fast. I am not even going to complain much about the lack of a graphical user interface, because a developer can be easily productive even without it.


  • Microsoft Popfly can be completely eliminated. They don't have the user interface correct. They don't have a good template language. And finally, it doesn't work, at least in my experience. In fact, it can be buggy and hang at times.

Sunday, June 17, 2007

Inviting Competition

There was an interesting article in the news recently about Google taking legal action against Vista search. A few months ago, I predicted that Vista search may pose some problems for desktop search products, but I didn't think it would come to this. There is more to the matter than just the search feature, because Google alleges that Google Desktop Search seems to slowdown on Vista.

That may very well be true. I have faced several problems with Google products on Windows Vista. Google Toolbar caused Internet Explorer to crash unexpectedly. Google Desktop was preventing Microsoft Outlook from opening and I had to uninstall it (thus preventing me from validating the slowdown problem). Google Gears was also creating issues - it caused the useful Google Reader shortcuts in IE to stop working.

All this is less likely to be a Microsoft conspiracy than inadequate experience or knowledge of getting applications working on Windows Vista. If you are working on applications that run fine on Windows XP, it will really serve you well to test them on Windows Vista - both 32-bit and 64-bit. I expect most software vendors to resolve Vista problems by the end of the year, but until then, there will be problems.

But back to Google's suit. I am reminded about a well-known boxing joke. A boxer is bragging about what he is going to do to the reigning champion at their upcoming title fight, "I will land a straight right followed by a left hook." And his friend asks him, "What do you think he is going to do all that time? Stand there silently?

Anytime you make an attack on the home territory of a competitor, you invite significant retaliation without being able to fight back on equal terms. Windows and Office are Microsoft's crown jewels. To think that Microsoft would let their main revenue sources disappear without a major fight is nothing more than a pipe dream. It is more likely that they would use every weapon in their arsenal and maybe some more.

This is the same kind of mistake that Netscape made long ago. Netscape was really nothing more than an Internet utility suite - a browser, an email client and so on. At that point, even hardware and networks were not capable enough to support the kind of rash statements about the destruction of Microsoft. The only thing it did was provoke and scare Microsoft enough so that Microsoft could target its entire resources at "fixing" the problem.

Google is doing something similar. It could easily co-exist with Microsoft, because each has different strengths. Unfortunately, too many technology experts are so anti-Microsoft that they can only see Microsoft competitors everywhere they look. Google seems to believe the rhetoric which keeps getting wilder with products like Google Docs & Spreadsheets. Microsoft seems to be doing the same through the Live initiative - the only product that I found even remotely useful was the desktop product, Windows Live Writer.

If you look at this closely, you will understand why I say that Microsoft and Google can easily co-exist. Google focusing only on search does not affect any purchases of Windows, Office or Visual Studio products. People using Windows or Office do not stop using Google services. Google is a greater threat to other online companies because it can leverage its valuable brand name to gain a large number of users for every web service it launches. Take a look at this page (http://www.google.com/options/index.html) and you can probably name dozens of companies affected by each product. 

The problems when you go into direct competition with an existing market leader are

  • They can re-align themselves to match you for every move you make. Any new feature you release becomes another on their list.
  • They have a greater market share and revenue and can easily outspend you.
  • They have years of experience in the domain and technology and can easily release new features.

Now, you may think that there are many instances of market leaders being overthrown by smaller foes. For example, Yahoo! was overthrown by Google in the search space. Google Reader overthrew Bloglines. So, if it is possible, why not? Well, it depends on a few factors:

  1. What is the switching cost? If I want to use Google instead of Yahoo!, I just have to type a different URL. Easy! If I want to cancel my Yahoo! Mail account, I have to transfer all my emails over several years and that is a difficult thing to do. There is also a mental switching cost. Many people are so used to Windows applications that they find it difficult to switch over to Macs.
  2. What features are important to me? While Google Docs is reasonably competent (and Zoho Writer, even more so), they just don't match the power of Microsoft Office. Frankly, I just cannot imagine any web product within the next few years matching the complex editing capabilities of Word or Excel. In the case of Google Search, the only feature important to me is how relevant the search is. All other concerns are secondary.
  3. How revolutionary is the product? Google Maps and Google Reader (2nd release) were fundamentally different, resulting in several magnitudes of improvement in productivity. Innovations in technology or user interfaces can drive this. The timing of such innovations can be tricky - sometimes other technologies (like hardware capability) must fall into place before the product appeals to a wide audience.

If you can beat a market leader in these areas, then you have a good shot at dislodging them from their current position. Otherwise, it may be tough. But there is also a related question: Should someone just stop trying to compete with market leaders? It depends.

If the new product has something unique (not necessarily revolutionary, but different), it can bring innovation to the market. For example, both Firefox and Opera have brought many new ideas to the browser, some of which have been co-opted by Internet Explorer. Some of the innovations may also be difficult for the market leader to copy, and in time, may turn out to be very important to users. For example, since Google Docs is very lightweight, it allows for easy web collaboration.

The new product can increase the capability of the company in the domain for future strategies and products that have a higher chance of succeeding. If the company has sufficient capital, there is no harm in burning some in a tough fight against a market leader in the effort to gain valuable technical capabilities. There is also the prospect of becoming No. 2 in the market which has the potential of yielding valuable revenues.

In summation, direct competition is a very expensive prospect for any company. It is much easier to carve out a niche and corner a piece of the market. However, if your product is sufficiently capable, revolutionary and has low switching costs, it can give the market leader a run for their money. Whatever the end result, the market will have seen greater innovation and you would have gained new technical capabilities and possibly greater market share.

Technorati tags: ,

Wednesday, June 06, 2007

Yahoo! Mail Problem

The reason for posting this blog is that there was nothing on Google Search or Blogsearch for a particular painful and frustrating problem. So if someone is facing this same issue, I hope this can help them.

The last couple of days, I have been having problems accessing my Yahoo! email. The symptoms were as follows:

  1. When I type http://mail.yahoo.com/, I get the login page as usual.

  2. I type in my user name and password, but the browser stays without showing a page for a long time, probably like 5-10 minutes.

  3. Finally, it comes back with an "internal error server connection terminated" error. There is nothing else on the page.

  4. This happened in Internet Explorer. So I tried clearing out the browsing data using "Delete all" option within Internet Explorer 7.0. Same result.

  5. I tried using Mozilla Firefox and Opera browsers. Same problem.

  6. I tried on another computer (Windows XP, IE & Firefox). No success.

  7. Then I asked my wife to login on the same computers and she was able to do so. I realized this was a problem with my login.

I tried unsuccessfully for a solution on various sites. There were very few results with this error. And in those pages, the persons expressed their frustration and intention to move to Gmail. I gave up and went back to some other work.

A few hours later, I tried again and was surprised to find that I was able to login again. I thought of it as an aberration. A few hours later, the problem came back. I had to check if any emails came. So I went to the My Yahoo! Beta page, but the web part for Mail did not show any information and showed an icon indicating it was trying to retrieving information. I switched to the old My Yahoo! view and I could now see the list of emails. Clicking them yielded the same problem as before.

I tried again after sometime and finally got the following screen with the text "contact Customer Care about Error Code 1" hyperlinked to a form that allowed me to submit my username and secondary email address. I tried searching for "Error Code 1" on Google, but didn't find anything useful.


An hour or so later, I tried again and this time I was able to login. There was an automated email from Yahoo! that read, "Thank you for contacting Yahoo! Customer Care. We received your question and the wheels of progress are in motion. A support rep will get back to you as soon as possible. In the meantime, please visit our online help center (http://help.yahoo.com/), if you have not already done so. You'll find a lot of good information there."

Two and a half hours after that, I received another message (which seems to be written instead of automated) that read,

Hello,

Thank you for contacting Yahoo! Customer Care. Sorry to hear you had problems accessing Yahoo! Mail. We jumped on it, and hopefully the temporary problem is now taken care of. If you're still having issues, please reply to this email to let us know. You can also try returning to Yahoo! Mail and pressing the Reload or Refresh button on your browser, then logging back in.

Much Appreciated,
The Yahoo! Mail Team
Thank you again for contacting Yahoo! Mail.
Regards,
Yahoo! Customer Care

I am very puzzled at the whole chain of events. Although I have a lot of emails, I don't use that much space as I get rid of the funny forwarded attachments and miscellaneous junk items I get. I don't have the latest Messenger-integrated Yahoo Mail, although I am using the new beta version. I suppose a possibility would be a scheduled maintenance that may have got disrupted when I logged in at unholy hours.

Although the timing of the support email (received sometime after the problem went away) did not add up, if what the Yahoo! Mail team said was true, it looks like they know what the problem is and how to fix it. That is a good sign and probably it may not happen again.

Monday, June 04, 2007

Microsoft Office 2007

I have been using Microsoft Office 2007 for a few weeks now, having shifted to it at the same time as Windows Vista. Although I had read the upbeat Office 2007 review by Paul Thurrott of SuperSite for Windows, I was very skeptical about the Ribbon interface and felt that there was no way it could replace the toolbar mechanism in the previous Office versions. How wrong I was!

The Ribbon-based UI is astounding from a usability standpoint. I was amazed at the ease and speed at which I was able to format and edit documents, spreadsheets and email. There is hardly any learning curve. The commonly used commands are provided in the main ribbon. Once or twice, I thought that the product had missed out a useful command (like "Change Case"), but on looking closely, it was right there in front of me.



I also like the new Calibri font that is now the default in Microsoft Word. It is more readable and looks great. Word also shows a real-time preview of what the text would look like when you hover over various styles, fonts or sizes. The whole interface looks much less cluttered and very visually appealing. You don't feel like using keyboard shortcuts anymore because you like interacting with the various controls on the screen.

Some of the other features I liked are Direct PDF export and smaller file sizes. The PDF Export doesn't come out of the box directly because of some licensing disagreement between Microsoft and Adobe. But you can easily download the add-in from the Office website. Previously, this point was one of OpenOffice's talking points against Microsoft Office. And as for the smaller file sizes, each MS Office file is actually a ZIP file containing multiple files. You can try opening a DOCX or XSLX file using WinZip to view the files inside the file.

So far, so good. Now for the bad stuff:

  1. There are some weird issues with large Word 2003 documents. The smaller documents work reasonably fine, but some larger documents do not finish loading and the formats of tables and diagrams look out of whack. At other times, they load just fine. I am confused about what to do. I don't think it is possible to have two versions of Office on the same system and I don't think I want to.


  2. Many of my customers and contacts do not have Office 2007. So I still have to save documents in the previous Office formats or send them a PDF. It will definitely be sometime before I can assume that the recipient will have Office 2007 and send them a file in the new format.


  3. Although there is less need for customization, you may still want to create useful macros to speed up certain tasks. But unfortunately, as far as I know, there is no way to add macro commands to the Ribbon. You can only add them to Quick Access Toolbar on the title bar, where they appear as a very small icon. Not good.

Generally speaking, increased usability is the key selling point for Office 2007. However, any compatibility issues could be a major concern for enterprises who have several thousands of technical documents and cannot afford the time or money to clean them up. It is actually a pretty grim scenario if you cannot see the contents in the older, critical files properly.

How does Office 2007 compare with online office applications? In terms of features, there is really no comparison - Office is miles ahead. However, it is pricey and products like Google Docs & Spreadsheets, Zoho Writer and Zoho Sheet do provide functionality that is useful for people who don't want a full-blown office application. In fact, if the online applications had "Format Painter", good table editing and paging, they could attract a lot of new customers away from Microsoft Office.

Right now, Microsoft has created a considerable gap between it and other desktop Office applications like OpenOffice. In fact, OpenOffice could face pressure from two sides - on the desktop side from Microsoft Office and from the online Office applications. StarOffice is in a worse situation since it is a commercial product.

Should you upgrade if cost is not a factor? Yes, but definitely load important documents that you need and see if they work fine in Office 2007. If you are only planning to create and use new documents, you don't have to worry much.

Saturday, June 02, 2007

Windows Vista - The Good and Bad Parts

My Google Analytics data shows that my article on "Windows Vista Problems" was, by far, the most visited page on this blog, ever. I was looking at the keywords that people used to reach the page and it is a list of Vista horrors. Here are some search keywords: "unexpected shutdown", "vista problems", "multiple reboot", "not working", etc. By this, we can assume that a lot of people are trying out Vista and many of them are finding issues with the operating system.

If you are planning to move to Windows Vista, don't lose hope. It has been 3 weeks now since I faced those issues and I am happy to report that I am having a much better time with Vista. There are some really good features in the product and the frustrating times have been much reduced. Here are a couple of the coolest features:

  1. Start Button Search: This is perhaps the most useful feature in Windows Vista. You start typing and instant results from programs, email, web history and file folders appear. You can launch the one you want easily using the keyboard itself. I seldom use the Program Menu nowadays. I don't have to even use the folder search often now. This one feature effectively removes any need for a desktop search tool (from Yahoo! or Google).


  2. Snipping Tool: Gone are the days when you need to hit PrintScreen or Alt-PrintScreen, paste the clipboard into Microsoft Paint and save it. Yes, there are other clipping tools, but they are not available on every system. With the new Snipping Tool, taking screen captures is a breeze. Only problem, ironic as it seems, is that I was not able to take a screen shot of the Snipping Tool using itself. :-) Nor can you take one of the Start menu because of the way the keyboard shortcuts work. The picture below was taken using the ever-trustworthy Paint.





The Windows Sidebar is useful if you have a wide-screen monitor. However, there are not that many gadgets that are really useful. I tried to add a Calendar gadget, but it bombed giving an error "A Runtime error has occurred. Do you wish to debug? Error: Object expected". After that, it appeared in the Sidebar, but without any proper display. So I had to remove it. The same thing happened with the Stocks gadget. However, some of the other gadgets (Weather, Clock, Images, Notes) work well and I suppose Microsoft would be resolving some of these issues. There is a solution at http://support.microsoft.com/kb/KB927825 but frankly, reading it, I don't know understand an end user is supposed to fix this error.




Windows Explorer is taking some time to get used to as the user interface is different with different types of icons. The drag-and-drop is slightly confusing as a thumbnail of the file appears and you are not really sure where the file is being copied to. But the biggest frustration is when you access a folder on another system. When you right-click on a folder, it takes a long time for the context menu to appear. I guess it is doing something in the background, but it is still irritating.



Copying large amounts of data can be aggravating. The dialog box has a message, "Calculating time remaining". It provides this message before the copying actually starts and then does it during the copy, which makes it really confusing about what the progress bar is all about. Sometimes you even wonder if Vista has paused copying so that it can perform the calculation for the time remaining. I made the mistake of having Vista copy some large music files to a DVD and it went on for several hours. I don't even know how long it took as I went to sleep before the copying was done. I should have used some other DVD burner program.

There have been no more crashes or Blue Screen of Death. Windows Explorer stopped working once and had to be killed. Internet Explorer has been relatively stable - I am operating without any toolbars now. Microsoft Office has been working without any problems. I really love the new Ribbon interface. Hopefully, I will post on that as I put together the information.

Friday, June 01, 2007

Happenings on the Technology Front

I am typing this on the new version of Windows Live Writer, which comes with long-due features. It is a significant upgrade from the previous version with useful improvements as follows:

  1. Inline spell-check: Previously, there was no indication of spelling errors as you typed. There was a separate option to spell-check the entire post. Now it happens as you type, like any other word processing application. However, there is no grammar check yet (inline or otherwise).
  2. Blogger categories: If you are using Blogger to host your blog, you can now set the categories for your post within Live Writer itself. Before this release, I would publish a post, login to Blogger and then assign categories to the post. No more of that now.
  3. Other nice features like table editing, posting drafts and a Vista-like interface.

Although there are other offline blog editors like BlogJet, Windows Live Writer is free and does a reasonably effective job. An offline blog editor has the benefit of having a richer user interface than one residing inside a browser. And of course, you have access to all posts even though you are not connected.

Talking of connectivity, Google has released Google Gears, a new product that brings offline functionality to web applications. The first product to use it in action is Google Reader. It works seamlessly when you take it in offline mode. However there are some drawbacks as you won't be able to see images or streaming video in blog posts. It is a good start, nevertheless.

This got me thinking about how computing on micro-computers has evolved:

  1. First, you had a monolithic application with both the data and the program on the user's computer.
  2. Then came client-server applications with the program running on the user's computer, but data residing on the server.
  3. With web-based systems, the program and the data both reside on the server. Although the user uses a browser application, the browser program has nothing to do with the business rules of the program. You could run different web applications with the same program.

There are many benefits of the third model such as faster modification and deployment of the program to meet changing business needs. But there are other concerns such as availability of Internet connectivity, data privacy, etc. that are not effectively addressed in this model.

The fundamental issue, as I see it, is that, programmers being programmers, there was too much emphasis on the program side of the equation and less on the data side. For the end user, the data is the most important aspect. The program helps users manipulate the data, but their concern is always with the data - how to maintain its integrity, how to easily use and manipulate it, how to keep it safe, how to share it, etc.

To that extent, it becomes logical that the data should be as close to the customer as possible while also providing an option to make it easy to share it with collaborators and back it up easily. Hence data resides locally for fast, simple access while also residing on a server for sharing and backups. The program remains on the server. The data in both sides is synched as required - this last need can become quite complicated easily when sharing is involved.

A tool like Google Reader doesn't benefit as much from offline functionality as would another application like Google Docs & Spreadsheets. You could keep all your private documents on your hard disk and just launch the web application to edit the content. I am sure that will be in the works as I am writing this.

While Google Gears does bring another victory to web applications, other challenges remain for web applications to completely replace desktop applications:

  • Performance: Desktop applications can tap fully into the hardware and operating system while web applications continue to run inside the browser, have security permissions and use slower-performing languages.
  • User interface: Even though Ajax and CSS allow web applications to be well designed with rich functionality, they still compare poorly with desktop applications. This should be painfully obvious to someone who has used even basic functionality in Microsoft Word and then used Google Docs.

The differences will become less as time goes on. Desktop applications are being replaced and the rate of replacement is guaranteed to go up as each year goes by.

Saturday, May 26, 2007

The Dangers of a Hobby Project

Yesterday, I posted about doing a hobby project so that you can learn more about various technologies. While I strongly advocate hobby projects, they have some problems too. Let us explore some of the dangers or pitfalls you may encounter. Much of this is based on my personal experience.

The foremost problem is a tendency to use the hobby project as a model to build a real-life application and try to manipulate the latter project's requirements to fit your project architecture. For example, let us say that you have designed a new workflow framework. When you start a new project, you are deeply tempted to re-use your framework and therefore all the project requirements get filtered through this mentality - you want to see what all can fit into your framework and where you will need to make changes.

This is in opposition to what you should actually do in a project. Understand the requirements and choose the right framework and technology based on the needs. You can build things from scratch, buy third party solutions or re-use existing code, but whatever you do should not be pre-determined. Whenever you do a hobby project, you are always seduced by the future possibilities of the outcome of your experiments.

The second problem is seriously under-estimating the work necessary in real-life applications. In a hobby project, you can literally get away with murder. You can ignore all coding standards. You don't have to put any error checking. Security, performance, robustness, usability, etc. which are essential concerns in a real application are rarely needed in a hobby project. So estimates based on hobby project models rarely contain the effort and time required for implementing these elementary needs.

Even worse, most people have a tough time understanding how much time they actually spent on a hobby project. It is very unlikely that anyone would actually record the times they spent and since the task is enjoyable, it seems to go by very fast. Also, when the hobby project uses a new language, design or framework (that has recently displaced an older one), the developers tend to exaggerate the ease of use of the new tool and downplay the drawbacks, because they want to continue using the new technology.

Hobby projects should be treated as no more than "code snippets". They can be considered as sources of islands of re-usable code, ideas and logic. They are outcomes of your internal research and development. Artifacts of your hobby project are just tools in your larger toolbox of techniques and solutions.

When you start a new project, you should totally forget about the hobby projects you did. For that matter, you should stop thinking about the previous projects that you did. Just stop and listen to the customer. Take down his/her requirements and make sure that you understand exactly what he or she wants. Then you decide whether it is feasible to implement those requirements and if so, how.

During the "how", resist the impulse to automatically reuse or discard something you did before. Find the technical solution that will most closely meet the requirements spelled out by the customer. Sometimes, you get to use your hobby project ideas. Sometimes, you don't. But since your goal is to serve the customer, that doesn't really matter.

Ultimately, that is the difference between the hobby project and a real project. The former is for you. The other is for someone else. Understanding the difference will allow you to avoid unnecessary problems when you move from one to the other.

[A legal note: There are many corporate and intellectual property issues surrounding the reuse of ideas and code from one project in another. To keep the discussion simple, I have ignored those issues, but please research them and talk to your manager about the legal compliance needs in your country and at your workplace.]

Friday, May 25, 2007

Learning Using a Hobby Project

One of the most enjoyable ways to learn technology is by doing a hobby project. It is really fun because there is no pressure of deadlines and there are no people dictating to you what and how to do the work. In a commercial project, many constraints (time, money, team size, etc.) exist that prevent you from doing the project you may want to, like selecting a language, framework or technology you like. That is fine because your ultimate goal is to serve the business needs of your customer, but it still leaves a hollow feeling.

Welcome to the hobby project where you decide what "itch" you want to scratch and how you want to do it. You can select the technical environment and tools that you like. You can decide when you want to work. You choose the standards. You set your own schedule and break them anytime you want. You can tailor your involvement in the project according to your lifestyle and personal needs.

Paradoxically, the freedom to break free of deadlines is never used. Even though you can call it quits anytime, you tend to get more and more involved in the hobby and continue learning different aspects of how to do it better. You start as an amateur, but soon become more than competent. More interestingly, you are actually willing to spend valuable money and time to improve your skill and knowledge in the hobby.

For example, let us say that you start photography as a new interest. Maybe you get started with a point-and-shoot camera. You quickly realize that the photos are okay, but not great. Then you get an SLR (Single Lens Reflex) camera. You start playing with the settings - amount of lighting, shutter speed, focus. You start buying more accessories - tripod, UV lens, color lens, bigger zoom, fisheye lens, etc. You throw away the new camera too, buy a better camera with more features, buy an iMac to edit your photos, buy digital photography software, books, etc.

Soon, you have acquired knowledge in many aspects of photography and it would not be wrong to call you a photography expert. You would also have become capable of teaching others how to become photographers themselves. But most important of all, you have achieved this by indulging a new passion in your life. It felt happy doing it and learning all that. It never seemed like hard work.

So if you are reading this, look at what you want to learn and start doing it as a hobby. For example, if you want to learn programming in a language, start a project for a personal need. For example, let's say that you are interested in music. You could write a program to manage the list of music tracks you own, link to its lyrics, link to details of the singers and their biographies, your personal ratings of each song and your wishlist for future purchases. Although your hobby is really tied to music, you will learn a lot of technology stuff on the way.

I will end this with a few technologies, tools, frameworks, terms, web services, websites, etc. (in no particular order) that I have experienced while building my website (8 years in the making) and blog (a year now):  HTML, CSS, JavaScript, DOM, GDI, Java, C++, C#, .NET, XML, XSLT, SMTP, IE, Firefox, Opera, AWStats, Astra Site Manager, Google Analytics, GIMP, Eclipse, Bloodshed Dev-C++, Filezilla, WS-FTP, Notetab Pro, Blogger, Google Reader, Feeds, RSS, Atom, FeedBurner, Technorati, Digg, BlogCatalog, Windows Live Writer, W3C Validators, Google Webmaster Central, Yahoo! Site Explorer, PageRank, SEOMoz Page Strength Tool, blogroll, tags, pings, trackbacks, comments, anti-spam, moderation, etc.

The point I want to make is that if someone had asked me to learn all of those things listed above, I would have found it an impossible request. But within the context of my hobby, learning all of those things made sense and I spent the necessary time to understand the various tools and technologies. This way, I could achieve what I needed to do for building and displaying content for my online sites.

So try it out, you will be surprised where you will go in a few months.

Saturday, May 19, 2007

Quick Linking

  1. How do you sincerely apologize to someone and really accept the blame? Curt Schilling sets a great standard by his "Public Apology" post on his blog 38 Pitches. This is really a wonderful example of taking responsibility for one's mistakes.

  2. SSW, Superior Software for Windows, an Australian software company, has a collection of great articles at SSW Rules related to project management, software products and coding standards. Some of the popular articles there are great resources.

  3. I have been reading a lot of Paul Graham's old articles recently. He does not have a feed, but one is available at http://www.aaronsw.com/2002/feeds/pgessays.rss. I subscribed to that, starred all the articles in Google Reader and have been reading them when I get a chance. His post on the unpopularity of nerds is a must-read. If you have teenage children, tell them to read it.

    {Aside: Google Blogoscoped has an interview with Aaron Swartz who created the feed.}

  4. If I was only allowed to read one website to learn about blogging, the site I would go to would be ProBlogger. Although written primarily for bloggers who wish to monetize their blogs, it contains a lot of useful advice on how to make the content friendly to readers and search engines alike. But above all, the author, Darren Rowse, conducts a really friendly dialog with his audience, instead of talking down to them. Really first-class.

  5. I am increasingly disappointed at the home page of Rediff, which used to be my primary source of India news. But now, it is incredibly cluttered with advertisements all over the page. Nowadays, I just use Google News and Cricinfo. Anybody has any suggestions for a good looking India portal site, please add to the comments section.

Friday, May 18, 2007

The Future of Windows Vista

This article by Paul Thurrott (from Supersite for Windows) takes a look at the adoption of Windows Vista since it was launched. It seems that Vista will be on 5% of all business computers by the end of the year. That doesn't look like a lot, but it is better than the adoption of Windows 2000. Also Vista compatibility seems to be increasing.

From what I have seen, most Windows users will take their time to move to Vista. Some of the problems I encountered with various important products like IE and Outlook can be really frustrating, especially if it is affecting business work. Until systems administrators gain greater confidence about Vista, the movement towards Vista will be considerably affected.

Having said that, I think this is similar to the initial release of .NET. When .NET was released, it got a very lukewarm response. Java developers were shocked at what C# copied. Visual Basic were unhappy about the lack of compatibility. Yet within a couple of years, .NET had established its hold over the Windows developer community. Vista will need time to pick up the momentum.

These are the screenshots of the problems I faced in Vista (note previous posts here and here). I was not able to post this previously because Windows Live Writer is unable to post images directly to Blogger. Don't ask me why - another of those Microsoft-Google product "interoperability" problems, I guess. I am using the online editor in Blogger for this post.

internet explorer has stopped working. windows will close the program and notify you if a solution is available.

error message when put a Windows Vista-based system to sleep with a modem connection

Windows has recovered from an unexpected shutdown.








Wednesday, May 16, 2007

IE7 Problem on Vista

A few days back, I posted about an Internet Explorer problem in Window Vista. The issue was that whenever I close IE manually, Vista would complain about an unexpected problem and go crazy. I thought I had got rid of the problem by turning off UAC and uninstalling the Google and Yahoo! toolbars.

Well, apparently it didn't quite go away. Yesterday, I was trying to install Sourcegear Vault and during the installation, the setup program said that the Google toolbar un-installation was not complete and if I wanted to complete the setup, I must revert back.

I have no idea why the Vault installation depended on Google toolbar or maybe it was an IE dependency. Anyway, I said Yes. The setup program undid the Google toolbar un-installation and completed its work.

Next time I closed IE, I faced the same problem of Vista complaining about a crash. Again, I went and uninstalled the Google toolbar. The problem went away.

I just cannot figure out why Windows Vista and Google products (Google Desktop, Google Toolbar) are not getting along. For all I know, there is a possibility that this may actually be a Dell problem since the laptop came pre-loaded with the Google software. Hopefully, this will all get resolved soon.

This incident is not a reflection on Sourcegear Vault, which is a very fine source control product and continues to get better and faster with each release.

Sunday, May 13, 2007

Lazy Thinking

I know I have been linking to Coding Horror a lot lately, but I cannot miss this one from Jeff Atwood where he wonders why the Microsoft and open-source communities are so much against each other. Whenever I talk to someone who is passionately for or against one technology without any exceptions, I want to ask them, "Are you in the business of serving your customers or are you just a slave to the propaganda of your side?"

Of course, there are deeper underlying issues behind such passion/hatred. One thing is that the critics don't really know what they are talking about. For example, very few Mac or Windows users have used the other operating system for any length of time, but cannot stay away from criticizing each other. Someone hates C++ for being too complex, but hasn't really used it in a real environment to know what it actually does. When you think about people burning books and banning videos without ever reading it, this shouldn't be too surprising.

Here is an example of such lazy thinking: http://www.trendsspotting.com/blog/?p=89. The author has analyzed blogs and found out that the ratio between "I" and "we" is much greater than in the English language. Hence, bloggers are more egocentric. If the author had bothered to stop and think for 10 seconds, she would have remembered that a blog is a diary and is written by a single person. But then she had her preconceived conclusion and the data's purpose was only to reinforce that. Worse, the post was echoed by people like Kawasaki and Scoble.

Now, read this blog entry on Zune. What do you understand? Zune sucks, right? Now read this previous entry by the same author (Dave Winer). Oh, he was using the Parallels virtual machine on a Mac. If I was a Microsoft-hater, I could use the first entry totally out of context and blame Microsoft for bringing out a worthless product. And probably I would linked to by similar thinkers out there.

Take the time out to do more research instead of using emotions to filter out what you read and hear about. If you find yourself passionately for or against something, look carefully at your beliefs - can they face the light of facts? If you face an either-or situation like Microsoft and open-source, find out if they really are mutually exclusive or is that another unsupported notion?

Windows Vista Problems

The reason for writing this entry is solely to explain some problems I have faced in the last few days trying to get my new Vista laptop set up properly. To put things into proper context, this is a Windows Vista Business edition running on a Dell laptop with some pre-installed Google software and internal hardware for network access. For the definitive review of Windows Vista, go to Paul Thurrott's Supersite review.

Problem 1: The system was not connecting to my protected wireless network. It complained about incorrect credentials which I assumed to be the incorrect password. I panicked since my current laptop has that password saved and I hadn't used it for a long time. So I try digging out the router manual, which of course, could not be found anywhere. After searching on Google, I find the instructions to mess around with the router settings which allows me to reset the password.

The issue is: It was not the password. Vista didn't understand the other settings of the router like Data Encryption and you need to configure the connection manually. If my memory serves me right, Windows XP did not ask me for this. Now, I am not sure if this problem is by design. Maybe Vista wants you to know the router details so that it prevents hacking. :-) I don't know.

Problem 2: When I pressed the "Power Down" icon on the Start Menu for the first couple of times, it put Windows Vista into "Sleep Mode". When I discovered this, I clicked the expand icon to see the "Shut Down" option, but even after 10 minutes, it stayed on the same screen. Since I had to go, I closed the lid of the laptop. When I re-opened the laptop at home a couple of hours later, the battery had almost run down - meaning that it had been consuming power. Anyway, after restarting the system, it booted fine and I was able to use the system.

Then, I tried shutting it down again. This time, I waited to see what happens. After a long wait, I got the Blue Screen of Death. Stunned, I watched Windows ask me if I want to start in Safe Mode - I haven't seen that for a long time which goes to show how stable Windows XP was. No, I selected Restart Windows as usual. Now, after logging in again, I got the following message, "Windows has recovered from an unexpected shutdown. Windows can check online for a solution to the problem."

When I clicked "Check for Solution", I got a dialog with a title "Call Microsoft Corporation for a solution." The message says, "An update is available from Microsoft Support Services that fixes the problem you reported. Microsoft recommends that you only request the update if you consider the problem to be critical. To get the update, call Microsoft Product Support Services." Note the words "if ... critical" and "call".

Luckily, I didn't have to talk to a person. There was also a section on the dialog called "Technical Information" which has the text "Error message when you put a Windows Vista-based computer to sleep while a modem connection is active: STOP 0x0000009F". That was hyperlinked to a Knowledge Base article.

By clicking the Knowledge Base article, I finally arrive at a Hot Fix that allows me to download the fix at http://www.microsoft.com/downloads/details.aspx?familyid=5754c17d-91a0-4dca-ab86-16e09a5c717b&displaylang=en. The fix worked. I am now able to shut down and restart the system without any problem.

Problem 3: If somebody had told me about this problem, I would have thought he was joking. Suddenly, for some reason, when I closed Internet Explorer, Vista would come up with a dialog saying "Internet Explorer has stopped working. Windows is searching for a solution." After a few seconds, it restarts IE without apparently having found a solution. When I close it again, it says something to the effect that an unexpected problem is causing Internet Explorer to not respond properly and asks me if I want to debug using Visual Studio.

I found a temporary solution by disabling the Vista UAC (User Access Control). I am not sure if it is the right one, but UAC was driving me crazy anyway. More about the multiple warning messages here. In the meantime, I also uninstalled the Google and Yahoo toolbars. A dying man clutches at straws, but there is more to it - read below.

Problem 4: When I launched Microsoft Outlook for the first time, an error message came up, saying "Failed to register a VB Script DLL. Reinstall or run Regsvr32.exe Vbscript.dll to self register. An error occurred while creating a form." On pressing OK, Outlook crashed.

I tried running regsvr32.exe and it said that the operation was successful. I restarted Outlook. It crashed again. I found that there were multiple copies of vbscript.dll. Tried registering each of them. It didn't work. I ran Microsoft Office Diagnostics and it seemed to fix the problem.

I had to do a restart for something else. Suddenly Outlook started showing the same message. My friend said he would give it a try. He reinstalled Outlook and still faced the same problem. Then he discovered that Google Desktop was using vbscript.dll and he turned it off. Suddenly Outlook started working again. I have since uninstalled Google Desktop. Now, I am not 100% sure that Google Desktop is the cause since we did try a lot of things (tweaking settings, etc.) during the period and perhaps one of them took more time to take effect.

Final Thoughts: This is not a reflection on the capabilities of Vista, which overall seems to be a competent operating system. I put this out there just in case someone is facing similar problems. It takes time to trouble-shoot a problem and if someone lands on this page, hopefully they find it helps them solve the issue faster.

Wednesday, May 09, 2007

Google Analytics Rebooted

There is a great new release of Google Analytics out there. Website visitor statistics are displayed in an array of beautiful, interactive graphs. Apparently, this was the result of Google's acquisition of MeasureMap. It is really wonderful.

This reminds me of the second major release of Google Reader. The first release, like the old Google Analytics, was competent, but there was nothing really special about it. The competition had some talking points. But then they came up with the next release and wiped out everybody else. I see this in my FeedBurner statistics - 2/3rds of the subscribers of this blog use Google Reader.

Back in January, I had done a quick review of Google product offerings. Here is what has happened since:

  • Google Search remains No. 1 and, in my experience, they actually seem to be breaking away significantly from the other search engines. For now, except for research on search engines, I would not waste a single search on any other search engine.
  • Huge fan of Google Reader. I like the latest feature which allows you to email the blog post to someone, graphics, formatting and all.
  • Since this week, huge fan of Google Analytics.
  • Uninstalled Google Desktop because of various instability issues. I still think it is a good product, but I am not sure I need the functionality in Windows Vista. Time will tell.
  • I quit Google Docs & Spreadsheets and moved to Zoho Writer. For now, Zoho seems to have a better interface both with regard to functionality and looks. Good for Zoho. Until Google does a reboot of Docs, that is.
  • The new iGoogle (previously Google Personalized Home) is pretty cool. The most useful gadgets for me are Weather and Google Bookmarks. I use the latter to quickly launch commonly visited websites.
  • I have been using the Search History, but I don't find it very useful yet. Once in a while, I go back and find some search result I used, but it is more of a convenience than anything critical. The "Interesting Items" section is not that interesting at all. I am sure Google has something revolutionary up its sleeve - we will just have to wait some more time.

Most of the new things coming out of Google have been reasonably good, but nothing dramatic. The exciting things have been relatively fewer, but when they come, they come with a bang, as happened with Analytics.

Saturday, May 05, 2007

A Few Irritants

Here are a few things that have been bugging me recently - some solved, others not.

  1. That irritating clicking sound in Internet Explorer 7.0. Particularly frustrating when you use sites like Google Analytics. Anyway, there seems to be a very simple solution to the problem: http://www.joedolson.com/articles/2006/09/internet-explorer-7-irritation-of-the-day/. And it does work!

  2. Here is an usability problem with Internet Explorer-related web pages that only occurs in their own browser. Any website that has a title starting with "Internet Explorer" has it appearing in the IE title bar, tab header and on the task bar. The same behavior is exhibited when you visit a page that doesn't exist, because IE shows the "Internet Explorer cannot display the webpage" page. For a cas