Monday, February 26, 2007

5 Reasons to Use Two Browsers

I have both Microsoft Internet Explorer 7.0 and Mozilla Firefox on the computers I use. There are many reasons why you may want to have and use both browsers. Here are five reasons:

  1. Different Sites Don't Render Properly: Some websites work only in IE, while others are built only for Firefox. This happens when the development team prefers a particular platform and didn't have or didn't want to spend resources on getting it working on the other platform. Most of the issues I encounter have to do with JavaScript errors and CSS layouts, rendering the site useless in one browser. However the other browser works just fine. In some cases, the website's functionality is fine in both browsers, but it is faster in another. For example, Google Reader works much faster in Firefox.

  2. Security: Regardless of anti-virus and anti-spy software, it is useful to keep one browser for visiting untrusted sites and the other for critical things like bank transactions. Since IE is known for ActiveX exploits, it makes sense to use Firefox for browsing search results, especially if you are searching for results on "ActiveX exploits". :-) This is not as critical as it used to be. IE 7.0 does a much better job on security. Also if you have protection software like Norton Internet Security, it has an add-on in your browser for displaying whether a website can be trusted. Still, you never know...

  3. Forgetting Saved Passwords: When you have the browser remember your password for certain sites, those sites appear differently than if you were logged in. For example, when I am editing our product blog on WordPress, it shows a toolbar at the top for "My Account" and "My Dashboard". This prevents me from seeing what it would look like if someone else is viewing that page. So I use the other browser to view the website. This is the same for Blogger too. They have the Edit icons all over the place when I am logged in.

  4. Google Search History: I like it when my Google Personalized Home "Interesting Items for You" gadget offers me suggestions on Searches, Pages, Gadgets and Videos based on my past queries. For example, they had this video of Matt Cutts and an ASP.NET video. The problem is that I don't always search on technology. Like for instance, I did a search for Vietnamese food in Nashua, NH. That confuses the engine and I have to go and delete those searches, which can be a pain. Yes, I can log out, but then I have to login back for other Google services. Much easier to load the other browser and do searches.

  5. Minor Conveniences: Firefox offers an easy Google-Suggest-like search box. The search for text capability is dynamic. You can easily close tab windows without clicking them first. The add-ons are better. Internet Explorer 7.0 offers some more screen real estate. The website source opens up in Notepad. The RSS feed reader has certain interesting capabilities. Stuff like that.

There were very good reasons why you should have used only Firefox when IE 6.0 was around. But now, the two browsers are almost comparable. Since there is hardly any cost in downloading, installing and keeping both of them on your computer, it is probably helpful to figure out what you can do with the situation, instead of spending time researching which browser is better.

Let us look at this way: Say you have a sports car and a family sedan in your garage. You may prefer one over the other. But isn't it worthwhile that you use each of them in some capacity or the other, considering that you own them and they are lying on your property? Yes, use one more, but maybe there is something you can do with the other.

Same here.

Sunday, February 25, 2007

Featuritis

"Featuritis" is a term used to describe the condition when the software product undergoes multiple rapid changes in functionality that were not anticipated during the initial stages of the project. This happens very frequently for in-house projects, but by means restricted to them only - any software product development may exhibit signs of featuritis. The typical scenario goes like this:

  1. The software project starts with the intention of solving a few simple problems.
  2. The development team gathers and analyzes the requirements. They come up with a development and rollout plan.
  3. As the product shapes up, end users are requested to look at the product and provide feedback.
  4. If there are many suggestions and complaints, the team is now forced to include some of the high-priority ones in the rollout.
  5. This affects the original plan and also sometimes plays havoc with the design and logic assumptions in the product.

It goes with saying that most development teams usually get really upset and frustrated with changing requirements. Just when they thought that they had a good handle on what and when they were going to deliver, the rug is pulled under them.

Even worse is the fact that some suggestions may actually conflict with the original assumptions or requirements on the project. For example, the original requirement was "We just need one address for a contact - just the permanent address." Now that changes to "We should have multiple addresses per contact." Such changes can require extensive rework on the application.

Here are some common suggestions regarding how to avoid featuritis and what I think are their limitations.

  1. Say "no" to changes until the current plan is fully executed: This may work out well for the development team, but it can be very detrimental to the company's marketing efforts. Some new features are driven by competitors. Even when the product is only used in-house, the value of a certain unavailable feature may make a lot of difference to the company's bottom line.
  2. Design for changes in the system: For instance, in the earlier example, what is stopping the team from creating a DB design that allows 1-to-many relationships between contacts and addresses. The problem is that anticipating and designing for all such changes can expand the development effort considerably - this translates into greater expense.
  3. Design a flexible system: The plethora of application frameworks is a testament to the failures of developers to build code foundations that can support any change. It is very difficult to build a system that is completely flexible - simply because of the fact that humans build them and they cannot anticipate what the future holds.
  4. Do a better job of collecting requirements: This is a good way of ensuring that some basic wrong assumptions don't get written into the system. However, sometimes, even with good prototyping, end users don't really know what they need until they actually use the system. The reason is that when people actually have to use the system to solve their problems, there is a fundamental change in their attitude towards the software. They are much more demanding and passionate about missing features.

I think that one way to this problem is to expect change and embrace it when it happens. As a development team, do not get emotionally attached to a particular design or project schedule. Make the development process dynamic by constantly revisiting the planned tasks and their priorities.

This requires a fundamental shift in the outlook of the development team. Instead of working towards a complete system on a certain date, there is an indefinite development cycle where each feature is prioritized and done. By doing this, the project plan becomes subservient to the interests of the end users, which can contribute significantly to the success of the product.

People familiar with Agile methodology will definitely see the similarity here. I am not advocating a wholesale migration to Agile or rejecting the other suggestions (1 to 4 above) outright. They have their place. It is sometimes necessary to reject some features as not meeting the project goals. It is important to do a good job of requirements and design for change. But all this should be done without rejecting the reality that change will occur, no matter what.

A Collection of Bad Blog Behavior

Having subscribed and unsubscribed to several different blogs over the last few months and using different feed readers (Google Reader, Internet Explorer 7 RSS Reader, Thunderbird, intraVnews, etc.) and tools like Yahoo Pipes, I thought I would take a stab at the kind of blogs that I don't really like. Here is some bad behavior - though not in any particular order of dislike.

  1. Lack of Conversations and Community: A good blog encourages conversations between the author and the readers. A blog that doesn't allow comments makes it a monologue. A blog with moderated comments or one that only accepts comments from logged-in users is a little better, but it still makes it difficult to establish a community. Because I only have 24 hours a day, I can only participate in a limited number of sites. The more logins and passwords I have to create and remember, the greater the burden - it is not really worth my while to do that.

    Another situation is where the author gets into arguments with the commenters on the site and even writes blog posts on the commenters. This has been happening a few times recently on Robert Scoble's blog. My feeling is that an author should be grateful for all the readers he or she has and improve using their comments. Getting into fights with abusive commenters only brings one down to their level.

  2. Lack of Full RSS feeds: I really don't understand why people would put up blogs with poor syndication capabilities. A blog without a feed is nothing more than a static website. In terms of search engine optimization, it plays poorly with regard to blog search engines like Google Blogsearch or Technorati. A partial RSS feed may seem like a cunning way to get the subscribers to visit the website often (thus boosting the page views), but it can backfire very quickly.

    Sometimes the partial feed has little content to help me understand what the author was trying to say and doesn't excite me enough to make me visit the site. Also, I just tune out the person after sometime and cancel my subscription. The truth is - there are other ways to get people visit your blog site like providing links to other interesting content on the blog. As an author, I must do something that appeals to you enough to make you visit my site.

  3. Inaccuracy: A good blog must always strive, within reason, to research an issue and explore all aspects of it. Sometimes time constraints may not make this feasible. But if the author decides to use generalizations without backing them up with facts, it lowers the value of the blog. Furthermore, if the author hasn't been forthcoming about the limited research done, he or she can be easily exposed.

    A form of this problem happens when the author has a conflict of interest, such as being employed at or affiliated with a company or product that is being reviewed. Wrong facts can also occur if the blogger has a beef with or personal agenda against the company or product. And I don't even want to get started on blogs that support hate and prejudice based on race, language, geographic region, color, gender, caste, etc.

  4. Lack of Originality: Sometimes I like it when a blogger points me to a useful website or interesting YouTube video. But when the blog is just about links and contains nothing from the author's brain, I wonder why I bother to read that person. I read blogs to learn something from that author - something entertaining, refreshing, surprising - whatever, but it should be something new and original at least most of the time.

    I sometimes run across blogs that display content from other sites without any attribution to the original author or website. It is actually pretty easy to figure out if the content has been stolen. The writing will be quite different from the author's regular style and a quick search on Google is enough to confirm the suspicion. I am not really sure why people do this - is it ignorance of copyright rules or do they think they can get away with it?

  5. Poor Content: Frequently, a blog author really tries hard. They have frequent posts. They have a good web design. But the content and writing just doesn't cut it. Perhaps it is because I am not the target audience, but sometimes I see sites on technology and management where the content doesn't appeal to me.

    There is no one particular cause. Sometimes it is the frequent use of clichés and catch-phrases. At other times, it is lack of language appropriate for the blog content - like using out-of-place slang and colloquialisms. That is the low end of the spectrum. On the other side, we have very erudite academic posts that need to be labored through to understand the point they are trying to make.

So what constitutes good blogging behavior? I would say it is about writing content that has meaning. Write with good flow and language. Write from your heart and what you believe in. Be humble. Be honest. Converse with your audience. Open up. People like me will rush in to hang onto every word you say.

Technorati tags: ,

Friday, February 23, 2007

Effective Documentation

When it comes to documentation, software development teams follow two different schools of thought. I am oversimplifying below, but bear with me:

  1. Documentation is good: For every process, there is a document to plan it, define it, record it and audit it. Every line of code generated will have several lines of corresponding documentation. Likewise, there are more managers, analysts, designers and technical writers than programmers.
  2. Documentation is bad: Why waste time writing documents when the coding is so easy? Besides, good programs should be self-documenting. The market doesn't reward technical documents - it only pays to deliver faster.

Like every black-and-white scenario, each side has good arguments. Before we start on that, let us establish some premises:

  1. Every software application exists to provide a solution to a problem. It will have one or more end users who need it.
  2. The sooner the application development is complete, the more likely the product will be used. Otherwise, there will be substitutes in the form of competing software products, manual processes to resolve the problem, etc. Hence, a necessary aim of the product development should be to deliver it as quickly as possible with the necessary functionality.
  3. Unless the software application is reasonably stable and consistent, it cannot be termed as providing a solution. Hence, the other necessary goal of product development should be good quality.
  4. It is possible to achieve a high score in one goal (delivery speed, software quality) at the expense of the other, but that only defeats the primary purpose of end users using the application.
  5. Hence software development of any application should strive to find a medium - necessary quality delivered within a reasonable timeframe.

Software documentation should be subject to meet that fine balance. Hence the two questions are

  • How little documentation do you need to maintain without sacrificing the necessary quality?
  • How much documentation can you do without exceeding a reasonable timeframe?

Asking the opposite question in each case will lead to what we discussed at the beginning of this article. For example, you can maintain high levels of quality by having all sorts of documents. And you can also shorten delivery timelines by deciding to do very little documentation. To achieve both, you need to strike a balance and find how to do effective documentation.

A simple set of rules I recommend to people is:

  • Easy to write, easy to understand and easy to maintain: Reduce redundancy - this will reduce the need to update multiple places in the document. Follow common documentation conventions (industry, company or project-level documentation standards). Write in simple English. Find out from your team if they understand what you are writing.
  • High level of accuracy and completeness: Make sure what you write is correct and comprehensive as far as you know. Verify the documentation with end users, if possible. Get frequent feedback from your team. A common issue I find in requirements documentation is "logic fatigue" - sometimes the person just writes a heavily-loaded sentence with no explanation because they are too tired to explore all ramifications of a particular functionality.
  • Fewer documents with greater depth: Maintain a small set of documents with more detail instead of producing more shallow documents. This makes it more efficient and easier to manage when change requests come in.
  • Control change management: Although it is hard to prepare good documentation in the first place, it is even harder to maintain them when the inevitable changes come. Use tracking features in your task management and bug tracking tool to ensure that all changes are reflected in the documentation.

Many aspects of documentation, especially audit-related documents, can be reduced, at least in frequency, by proper resource allocation and training. Development staff members, who are very knowledgeable in standards and best practices, need less process and, by extension, less documentation.

Now an observation to round off this article: Although more documentation is directly related to good quality and inversely related to delivery times, nearing the boundary conditions of 100% or 0% documentation may sometimes result in both poor quality and poor delivery schedules.

When the team tries to have 100% documentation (without any streamlining of the process), change management can be overwhelming. Minor changes in the application can result in disproportionately large changes in the documentation. At this point, the team is under greater pressure from the end user to close bugs and release the software.

Without high discipline, there may be inconsistencies in making changes in all parts of the documentation, which again results in wrong specifications or design - further leading to confusion. A cumbersome process easily lends itself to being violated easily. And suddenly the whole pack of cards comes falling down, because no one knows which document is the right one.

The 0% documentation is also severely affected by change management. Although the software development team initially had a quick grasp on the project details, once changes start coming in bits and pieces, miscommunication becomes the norm. Some developers know more than the others and they start stepping on each other's toes in the code. Functionality starts degrading. The problem is that no documents exists that can serve as the central guide for the team.

So the extremes don't really work. The best way to run a project is somewhere in between. What that is depends a lot on the capability, maturity and experience of your team. For example, when I use a term "easy to understand", that can translate into entirely different things for different people. It is up to you to figure out what that means in your context and put the right effective process in place.

Wednesday, February 21, 2007

Five Questions and Answers On Delegation

To be really effective in your work, one must learn to do the following:

  1. Cancel tasks that do not have any value.
  2. If any remaining tasks can be delegated, move them to someone else.
  3. Then, prioritize the remaining ones in order of importance and urgency.
  4. Start working on the tasks in order of priority.

The more one can delegate, the more one can focus on important items, increasing the value created. So, let us talk about delegation. Here are some common questions and misconceptions I hear about delegation:

Question: I can do the work better than "X". Why should I delegate to him/her?

This is usually true about any work that you plan to delegate. You got the task in the first place because you could do it. If you have someone to delegate to, it is very likely that the other person is less experienced than you and probably reporting to you. The question is not whether "X" can do the work better. The right question is: Whether X can do it well enough? Don't get hung up on perfection.

What you should do though is make the "acceptance criteria" clear. This means what measures would you apply to the person's work to qualify whether the task is complete. For example, you may assert that a report must be at least 10 pages, must have an Executive Summary, Table of Contents, etc. When you spell this out, it makes it simpler for both the person and you to wrap up the task correctly and with the necessary quality.

Question: I can do the work in less time than X. Why should I delegate?

True, but the right question to ask is: But do I personally have that time? The reason why you are thinking of delegating in the first place is because you are swamped for time. And X has been chosen because he has more time. X can work on that task while you are doing something else. Yes, he may take longer, but how critical is that additional delay?

Also realistically, how much longer is the other person going to take? If it is going to be several times what you would take, then you are probably looking at the wrong person. Find the appropriate person. Provide them tips and suggestions to help them do it faster.

Question: I will make less mistakes than X.

Again, true - because you are more experienced than X. But if you never give another person an opportunity, she will never learn to improve. Let the person make mistakes and learn from them. That way, they will continue to improve and then you can give them increasingly challenging tasks.

Now, you may be faced with a situation where you have a critical task and there is no one with the right experience to delegate that task to. How did you land in that situation? Maybe because you didn't spend enough time helping your subordinates grow by providing them simple opportunities where they could afford to make mistakes and learn. Nurture your team today.

Question: I don't have anyone to delegate to.

Sometimes, even if you helped your team members learn and become more capable, they may still be not ready for a task. The reality is that there are some tasks that only you can do. That is why you are the boss. :-)

So maybe the problem is: Should I be looking at some other task to delegate? It is very unlikely that everything you do is something that only you can do. The main reason why you are probably looking at this task is that it is the most distasteful one at the moment. However, the right criterion for delegating a task is not whether you like it or not, but whether somebody else can do it sufficiently well.

Also, ask around. Maybe there is someone you have overlooked who may be both interested in and capable of doing the work. You never know.

Question: My past experience with delegation has been bad. It doesn't work.

Unless you are born with amazing judgment, you will make mistakes when delegating. You will delegate critical things to people who let you down. You will land in hot water because of their mistakes. You will miss deadlines. But if you quit now, you would have wasted all that learning experience.

Instead, by maintaining a bias towards delegation, you will have an incentive to learn more about how you can effectively delegate. You will learn who you can delegate to, when you can delegate to them and what you can delegate. You will also learn when NOT to delegate - which is arguably the most important thing you need to know.

Final Word: The biggest block that managers have when delegating is related to the concept of "responsibility". People think that when they delegate a task, they delegate responsibility. So when the person fails them, the manager feels that life is unjust because they have to take the responsibility for someone else's shortcomings or mistakes. That is so self-defeating. 

When you delegate, you remain responsible for the task, its delivery and its quality. You must provide as much information and support to the person as necessary for the success of the task, while striking a balance with the need to avoid eating away your time. There are risks involved in delegating. When you delegate, you must consider yourself personally accountable at all times. Such an outlook will avoid frustration and empower you.

Technorati tags: ,

Sunday, February 18, 2007

Health Suggestions for Software Developers

People working in a software development environment find it really hard to lead a healthy lifestyle. As developers, we are so enamored with the technology that we sacrifice sleep and exercise. We binge on fast and fatty foods. So we are out of shape and suffering for it.

When I used to work in Bangalore and Chennai (Madras) as a developer, I didn't have a vehicle and had to walk a long distance to the bus stand. In Chennai, the buses were so crowded that sometimes I used to walk a couple of kilometers with my friend Vijil (also colleague and roommate) to the office and back. It was good exercise and the conversations with Vijil (who now works at IBM Software Labs) were very interesting.

However, in the US, since we travel all the time by car and there are no ready opportunities for exercising, I started putting on the pounds. It is not easy to get rid of them unless I take time out to visit the gym. That can be difficult sometimes. So I thought: what are the easy ways to remain healthy without too much effort?

Here are some tips based on those experiences:

  1. Don't remain hungry: Always keep something on hand to eat. When you eat small snacks or fruits, your hunger remains in check and you will eat smaller meals.
  2. Don't shop for groceries while you are hungry or tired: Otherwise, you will end up buying junk or fattening food that you will start devouring when you reach home.
  3. Sleep well: Being tired or having body pains makes you eat or drink more.
  4. Reduce eating out: It is difficult to control food intake when eating in a restaurant. However, cooking at home doesn't necessarily mean eating less. It is better to have some snacks before cooking so that you don't cook a lot. If you have to eat out, have a good snack before going out. One way to eat less in a restaurant is to decide (before eating) to take home the rest - you will leave more on the plate that way.
  5. Buy healthy foods: Buy diet soda. Get fat-free milk and yogurt. Buy fresh fruit and fresh juice (NOT from concentrate). Buy whole wheat bread. Spend a few seconds to read the labels about calories and ingredients before putting it in your cart. Spend more money on your health.
  6. Eat more veggies: Add more vegetables and fruits to your non-vegetarian diet.
  7. Exercise when watching TV: Instead of eating while watching TV, do some simple exercises like stretching or lifting weights. This makes the TV time more productive. Don't start exercising with any goals - they will only de-motivate you if you don't make enough progress quickly. Just focus on doing the exercise - results will follow eventually.
  8. Drink enough water: This helps your body functions.
     
  9. Reduce unhealthy habits: If you are addicted to any unhealthy habit like smoking, try reducing it. Get the help of family and friends to help you quit.
  10. Think about your health: The best way to become healthier to make that a focus in life. If you start thinking of everything in terms of good health, you will slowly form good habits and live better.

I am not a physician or dietician - so this is not comprehensive. Do explore other resources on the Internet regarding diet, exercise, illness, etc. It is worth the time.

Technorati tags: ,

Potpourri of Thoughts

Ever since I started blogging in earnest since December, part of my brain is always looking for blog post ideas. The problem is not that there is nothing to blog about - rather there is an abundance of topics to blog about. Some of them require more time for analysis - so I just add them to Windows Live Writer as a new draft and then follow up later.

Other ideas are too short for a full-fledged post and, since I am interested in writing longer posts, I tend to ignore or reject them. But I feel that some of these observations may be useful to someone out there. So here we go with some "thought clusters":

  1. I found a link to a useful shortcut in Google Reader. If you press "u", it hides and shows the left frame. This is very convenient if you are using the Expanded View or a smaller monitor. It is not so helpful if the authors of the blogs you read use short sentences and small paragraphs.

  2. Using the Google Webmaster tool, I found that one of the search queries for this blog was "snow googles". That is obviously a misspelling of "snow goggles". Which lead to me to thinking about other commonly misspelled words like "accommodate" (mistake is "accomodate"), "occurrence" (not "occurence" or "ocurrence"), "privilege" (not "privelege") or "pronunciation" (not "pronounciation"), and how much traffic they contribute to a website.

  3. On the same topic, Google Search now provides search results on the right word even when misspelled. It continues to offer suggestions. Since I get some traffic from vanity searches on "krishna kumar", it will be nice to know whether part of it is because of when people type "krshna" or "kirhsna" or something like that.

  4. A belated thanks to "New Hampshire Blogging" for a review of my blog and "Cow Hampshire" for adding me to their favorites. For those interested in knowing more about New Hampshire and the people here, please do visit those sites.

  5. Yahoo! Mail has a new update integrating Messenger and Mail. It is not available to everyone yet, but from the video I saw, it has many interesting features. You can open a new chat in a tab. There are buttons for "Convert to Email" and "Convert to Chat" depending on what you are doing. You can set the status of Messenger within Yahoo! Mail itself. The poor (IMO) feature release progress on Google Talk and the lack of tabs in Gmail is providing an easy opening for Yahoo! to corner this segment of the Internet audience.

  6. In Yuvi's post on Raymond Chen's blog stats, he shows that 77% of Chen's posts are at 7 am. This is remarkable. One explanation is that Chen does his blogging in the morning and then moves on to other tasks. The other possibility is that he writes his blogs at different times and then posts them at 7 am. Which made me think - why not write more posts when I am free and then post one each day? Also, the 7 am intrigues me. Is that the best time for making a blog post visible? I do my posting during the weekends and nights - which is not exactly a good time for US-based audience.

More in future posts. The spell checker was tough on this post. :-)

RSS Feed Reader in Internet Explorer 7.0

I have been increasingly using the RSS Feed Reader in Internet Explorer 7.0. While IE7 came out, I was very dismissive of its feed capability because Google Reader was miles ahead of it.

But because it is less powerful, I find it becoming more useful for certain types of feeds. Confused? Well, here are my reasons:

I keep a browser window open on the "All Items" screen of Google Reader. The window title (and the taskbar) reads "Google Reader (count)" where count is the number of unread items. When I subscribe to news sites which have a large number of daily posts, this becomes very distracting. Many of the news articles are of little interest to me, which adds to the pain.

With IE 7, I have to manually open the "Feeds" tab to see if a new post has come in. I could have the feed tab open by default, but since it takes away the real estate for viewing other websites, I don't do that. So, I can now view those feeds at own leisure. Also, as far as I know, IE doesn't show all the posts from different blogs in the same page.

Google Reader allows one to mark feeds as unread. IE doesn't allow that. So I only look at the feeds when I am sure that I will either read or discard them. I don't have the ability to archive or star them either. So IE prevents me from hanging onto posts long after I really need them.

IE has a feature of creating a custom schedule for the retrieval of posts. So if you are only interested in reading feeds in the early morning, you can set IE to just fetch the posts then instead of every few minutes,

This does not mean that I am abandoning Google Reader. I am only moving some feeds, mostly the ones with higher frequency of postings like news feeds, into Internet Explorer. Previously, I had consolidated my infrequently updated feeds using Yahoo! Pipes. Being able to assimilate the content I read within Google Reader has become much easier now.

Now, I could easily close the Google Reader window and achieve a similar effect. But some blogs are different than others and hence it makes sense to keep the window open for them. For example, it makes sense to always read one technology blog in Google Reader - most of the others will be repetitions and they should be kept away. Certain blogs have a smaller ratio of interesting content and they should be kept hidden until you want to see a longer list of unread items and read the ones you want.

I guess this is an example of where a feature-poor product takes share away from a powerful one because its limitations match up with the needs of its users.

Friday, February 16, 2007

How I Learned to Stop Worrying and Start Loving the Delete Key

Several years ago, in college, I stayed back during a spring break to develop a cricket score management program in C using the Unix Curses library for the user interface. At that time, I was a huge cricket addict and spent ("wasted") amazing amounts of time collecting cricket trivia. This application was an effort to record the scores during a cricket series and report all sorts of statistics like batting averages, top scores, etc. [Doing such fun projects is IMO a more enjoyable and better way to learn coding than official assignments.]

If you are familiar with the Unix environment, you will recall that compiling a C program results in an "a.out" executable and that the extension of a file really does not matter. I was in the habit of deleting the executable whenever my OCD kicked in. As I got lazy, I started using the "rm" command with wildcards and then one fine day, I missed a letter before hitting the ENTER key. I wasn't using a source control system at that time. It felt pretty brutal losing that much work.

An incident like that can make one very scared of deleting anything and become obsessed with backups. For a while, that is exactly what I did. I grew into a master of storing copies of work in multiple places - local system, source control, email, backup tapes, etc. The pendulum had swung to the other extreme. But as time passed, I learned to stop worrying so much and start adopting different tactics. Here are some things I do now:

  1. All work-related documents and code is in a version control system. We use Sourcegear Vault which, like most version control systems, offers different repositories and levels of access permissions. The version control system is itself backed up by the system administration team using enterprise backup software.

  2. We have developed an internal project management tool that helps keep track of tasks and bugs and allows us to customize their workflow. If I want to give a task to someone, I or that person records it in this tool. We can add notes and attachments and also collaborate on content using wiki pages. This system acts like a separate hard disk for my brain. I also don't have to keep MS Project files around and I just need a browser to access this application.

  3. A lot of my personal stuff like email, contacts and calendar is online with various vendors like Yahoo! and Google. I keep a local copy - it is rather unlikely that the two sides will lose data at the same time. I use Intellisync to sync contact information between the online store and my desktop.

  4. Once a month, I write everything onto a DVD and keep that in a safe place. That is a worst-case scenario backup.

  5. Thanks to web search and easy Internet access, I no longer collect trivia and useless facts. Usually anything I want to know about is available online. Why waste time and money copying that knowledge again? The only stuff that I note down nowadays are important points from books that I read and saved in a private blog/website.

  6. For the same reason, once I process information available on the Web, I delete the document or hyperlink. If the information is interesting, I add the link to my bookmark collection or del.icio.us. If it is really interesting, I blog about it.

  7. I have been throwing out information I captured before. This is not an easy thing to do since I remember the effort I took to record it in the first place. So the information has to be available elsewhere or outdated for me to do this.

 
The balance feels good. I know that my data is secure. At the same time, I don't have to worry about multiple copies lying all over the place and worrying which is the most recent one.

Wednesday, February 14, 2007

Life After the Change

Change management is difficult. But it doesn't end after you make the change. After that, comes the often-overlooked and complicated challenge of communicating to stakeholders about the change and what it means for them. Convincing them is yet another uphill battle.

Usually, an organization initiates a change process with the purpose of bringing benefits to various people affected by its activities. For example, a quality process is launched so that the company can deliver products that perform better with lower rate of defects. Let us say that that quality process was successful and the company achieved its goals.

The problem is that most of the customers who buy the products generally have no idea about the new initiative or the fact that the quality of the product has improved. Matters are worse when there is already another company that leads the market with respect to the product attribute that has been improved. Take the case of the automobile industry or online search engines, where Japanese cars and Google respectively dominate the discussion on quality while others fail to impress despite their constant efforts to improve.

But even in the absence of a competitor, once a company or organization has acquired a negative reputation, it takes a lot of effort to dispel those impressions. A scandal, a product-related injury or even a prominent news review can set a company back years in the eyes of customers.

This is also true for individuals in a society. When an individual has committed errors in the past from simple bad behavior to serious crimes, society tends to view that individual through the same lens even as the person is trying to change their character. The lack of support makes the transition even more difficult. People are quick to condemn - it is easy and takes less effort than trying to know a person and help them change.

A particular case in business is the problem of a manager or employee who has not performed well in the past. The manager may have mismanaged projects and alienated his subordinates through indecision, anger or incompetence. The employee may not have delivered what she promised which may have caused heartburn for other employees.

Now the person realizes this and decides to improve themselves through self-learning or by attending a study program. Through various means, the individual becomes better at managing his or her work. But the deep-rooted mistrust of fellow workers is tough to overcome. There is an initial disbelief that the person has indeed changed, followed by questions about his or her motivations.

When co-workers think that the changed behavior is due to some mercenary intention on the part of the reformed employee, any support that they may offer that person is grudgingly given. This makes co-operation and team work very difficult.

If you were in the place of the newly changed manager or employee, what would you do? One step is to swallow one's pride and acknowledge the truth, which is that mistakes (gross and egregious) were made in the past. Also instead of providing excuses for such errors, point to the root cause inside you: character flaws, lack of empathy, etc. Also explain to people about how you are trying to change yourself and what steps you are taking. The more humility and sincerity you can display, the better support you can get.

This is sometimes easier said than done. If you have hurt or treated a person very badly in the past, sometimes no amount of apologies may change that person's feelings toward you. Life is like that: Even when you repent, you will continue to be haunted by the ghosts of your past. The best thing one can do for people in that case is to remove oneself from that environment so that one will no longer be an irritant. Make a fresh start and try to make good use of a second chance.

To summarize: Bad impressions formed over a long period of a person, department or company can be very difficult to change. When the cause is bad behavior itself, changing actions or becoming better is not enough to dispel such feelings. The person has to do a lot of convincing and demonstrate good behavior consistently for a long time before people start forgetting and forgiving the past.

Sunday, February 11, 2007

More Yahoo! Pipes Thoughts

I really don't want this blog to turn into a Yahoo! Pipes site, but I have been blogging so much about Google's products - why not give Yahoo! some buzz while I am at it. Probably, this will be my last post on them until I get time to explore the product another weekend (provided something else more interesting doesn't hit the market in between).

I still think the documentation could have been better, but there is a much easier way to learn about the product. Go to "Browse Pipes" and take a look at the pipes that others have created. There are a lot of interesting ones out there. It seems like thousands of people have been visiting and running them.

That being said, I didn't see any pipe that was really, really outstanding. This may have to do with the fact that the product has been made to be very simple. However, I feel that scripting or programming capability should have been added. In fact, there are many things I would have liked to do by parsing the content of a feed. I didn't figure out how and the documentation (here I go again!) didn't explain much.

Anyway, Yahoo! provides you the ability to view the internals of an existing pipe and then "clone" it which means saving it as your feed and then making the necessary changes. I created two useful feeds this way:

  1. One feed contains only the feeds from Google blogs that I want to read. When I started reading blogs, I started subscribing to each one of them. Later, I found a link "All Google Blogs" that allows you to subscribe to all of the Google blogs. This was more convenient, but it also had more posts that had little meaning to me. Now, I can pick and choose only what I want.
  2. The other feed contains all the feeds from my friends, colleagues and acquaintances. Many of these blogs are not maintained or updated very frequently. Keeping them in one pipe is much more convenient when subscribing to them using Google Reader.

I used the "Fetch" module which allows one to add many feeds in the same module. This is connected to a "Sort" module that sorts the posts by the updated date. Maybe this is just me, but I couldn't find a way to resize the modules which made it difficult to read the URLs within the Fetch module.

As a less-than-power user with limited time, I was able to create pipes which provided some useful benefit to me personally. It is a good beginning. I hope the Yahoo! Pipes team can now cater to advanced and power audiences by providing the capability to develop more sophisticated and useful pipes. I think the concept of "without ever having to write a line of code" is commendable, but it will quickly drive away many interested programmers. I am also very interested in knowing what use cases the development team were thinking of when they started developing the tool.

Related:

Corporate Blogging Research

Recently, I came across CorpBlawg, a blog maintained by Cornelius Puschmann, which seeks to explore the linguistic aspects of corporate blogging. On reading his blog, I realized that this is the first time I thought about blogging "genres" - a word which is typically associated with movies. So far, I have thought more in terms of "blog types", "blog audience", etc. Of course, there have always been blogs handling different issues like politics, culture, technology, etc. But I think the "genre" concept is more interesting as it talks about a style of writing blogs.

In his recent post "Visualizing blog language data", Cornelius used the concept of an "f-score" that parses the content of a blog and derives a value based on the count of which part of speech (noun, adjective, verb, etc.) a word belongs to. Among other things, the f-score attempts to understanding the quality of formality, information, involvement and content-dependency of the content matter. He has analyzed a huge collection of public blogs, including several newspapers, popular bloggers and corporate executives so that he can do better comparison. On request, he was very kind to analyze my blog and post the contents at Many Eyes.

I am very fascinated by the analysis done. As I mentioned to Cornelius, a trivial analysis of the visualization would be that the more frequently a person posts, the lower the f-score. Since time is fixed, one has to sacrifice content for frequency. However, as Cornelius points out, this is not necessarily true. A person may have a more conversational style that results in less nouns and adjectives been thrown out.

For example, I could say one of the following things:

    • "I think this is easy."
    • "The complexity of the task is relatively minor."

Both say the same thing, but the latter has more adjectives and nouns. Corporate blogging may tend towards the latter because executives are often involved in legal matters, marketing and public relations, which is often very rehearsed and involves use of sophisticated and grandiloquent language. The more one is exposed (in the best possible sense of the word) to such environments, the more one's own conversational style changes.

Another aspect of language is that sometimes to express the exact meaning, you have to use obscure nouns and to express a nuance, you have to use adjectives that people don't use in day-to-day language. For example, "laugh" could mean so many things, but "laughing smile", "giggling laugh", "smirking laugh", etc. all express different emotions.

The complexity of language exists not because some people are pretentious and want to sound different (maybe they do), but because life and people's behavior is essentially complicated and has different levels of subtle variations.

I am looking forward to more of Cornelius's research. Good luck to him.

Saturday, February 10, 2007

Leadership Qualities

The name says it all: A leader’s role is to “lead”, that is, point the followers to clear goals and show them the direction to get to those goals. The “hygiene factor” in any leadership is to avoid any qualities that would confuse followers, make them misunderstand the goals and work towards something different.

First and foremost among the basic qualities is character and integrity. If a leader does not mean what he or she says and changes his or her mind arbitrarily, that person immediately loses the trust of the followers. When that happens, it is an uphill climb to get back the support of the followers for any new initiative. Integrity and trust take a long time to build through real-life actions (not just talk) and can be easily destroyed in one moment of stupidity, carelessness or thoughtlessness.

This also implies personal responsibility. A good leader must “own” the decisions that he or she makes and take the responsibility for any negative outcome of those decisions instead of finding scapegoats and blaming people for it. Again, this is “leading”. The leader is out in the front ranks and, if he or she fails, gets hit first like the captain going down with the ship or the coach getting fired for the team’s poor performance. Unfortunately in business, sometimes, poor leaders get huge compensation packages even after running the company into the ground.

Integrity is very necessary in ensuring that the success of the organization is paramount for the leadership. There is always a conflict between the personal and professional lives of the executive. There are key decisions that affect the lives of perhaps hundreds or thousands of employees. When a leader makes a decision, the decision has to be made with the best interests of the organization and its stakeholders - and the character of the person making the decision is the one which prevents bad influences from creeping in.

Many supposed basic qualities tread a fine line. For example, a leader can be fearless, but could also be foolhardy. A leader may be honest, but also very insensitive. A leader may be friendly, but procrastinates in firing bad performers. Hence the real fundamental quality is to identify where the line crosses over – How to make an amalgam of qualities that will work towards the success of the organization and its stakeholders. There is no single recipe for this – a leader must spend the time to dig deep into his or her character and organizational needs and come up with right set of guidelines, principles and ethical standards.

“Leading” is not a task in isolation. It is not just enough to pick any goals and start running towards it. The goals must make sense for the success of the organization. The goals may also evolve based on the changing needs of the stakeholders within the organization. For example, a petrochemical company in mid 20th century may just have had profit as its sole objective. Today, its stated goals may include a social responsibility towards the environment while maintaining profitability.

This means that leaders should be listening while leading. In the above example, it was listening to the people residing in the locality affected by the company. But leaders need to listen to all kinds of sources – customers, competitors, employees, directors, shareholders, and media. This will help leadership continuously re-align and clarify goals.

Re-aligning goals is a fine balance. If done too often, it confuses and enervates people. When done infrequently, it makes the organization dogmatic. The real leader has to be clear-headed about why and when re-alignment should be done. Decisions have to be communicated to all the stakeholders. The fundamental qualities here is “due process” meaning that the executive has the answers to “Did you think this through and consider all causes and eventualities?” and “Is the final decision the best possible solution in light of all available information?

What about the direction or road to the goals? In business, the straight or narrow path is not so easy to find in the first place. The leader’s role is to “discover and simplify”. Identify simple solutions that employees can easily understand and practice, instead of having them jump through hoops.

Once the direction is set, the next step for the leader is to remove the obstacles from the way of the employees. Providing employees the best support possible in terms of training, systems and simple processes that make work easy and enhance the quality for the customer is direction-setting.

The tough part is to keep clarifying the direction under changing circumstances. While the goals of the organization may see relatively less change, the tasks done by the organization will have to continuously improve.

Related: Read my article on Rapid Change.

Friday, February 09, 2007

First Impression of Yahoo! Pipes

Yahoo! Pipes is up again after its downtime and I just created my first Yahoo! pipe. Here is what I did:

  1. Created a Fetch module that connected to the feed for this blog: http://krishami.blogspot.com/atom.xml.
  2. Connected that to a Filter module which removes any item that contains the word "Blog" in the title.
  3. I created a User Text input that asks for the number of posts that the user wishes to see.
  4. The Filter module is connected to a Truncate module that truncates the feed after the number of posts as specified by the user.
  5. This is finally sent to a Sort module that arranges the post by the Updated Date in descending order. (This is not the same as first posted date as some posts could be updated several days after they are posted.)

Nothing particularly unique or special - I just wanted to try the product out.

You can run the pipe at http://pipes.yahoo.com/pipes/jId3urW42xGXnNT8JhOy0Q/.

My first impressions and experiences:

  1. The documentation is really poor. They should have more details about how to use the various modules. On the plus side, the modules are fairly easy to understand.
  2. To repeat that, yes, the application is really intuitive. Of course, you need to know something about RSS feeds and some elementary computing concepts. But even allowing for that, it is really easy to create a pipe, and publish and run it.
  3. The documentation only displays properly in Firefox 2.0, but I can only edit the Pipes properly in Internet Explorer 7.0. Was the documentation team different from the development team?
  4. The description of the modules when you click them is not properly visible.
  5. The current list of Pipe modules looks like it can handle most of the aggregation, filtering and sorting capabilities. I want to explore more of the text processing and statistical capability, but at a first glance, that aspect does not seem to be very advanced.
  6. I wonder if there is a way to combine the actual content of different feeds and can introduce a delay in publishing the results. Sort of like the Search Engine Land daily feed I am subscribing too.
  7. Little slow at times, but on average, responsive. The user interface behaved very well without crashing a single time.
  8. Some of the functionality could also be done through Google Custom Search, but Yahoo! Pipes makes it much more glamorous.

I would give it a rating of 7/10. The learning curve is reasonably short. It is easy to create a pipe that does something useful within a matter of time. Documentation is the worst part of the product so far. Made me more interested in exploring the tool further. Hope that Yahoo! can maintain the momentum.

Thursday, February 08, 2007

Search Engine Land Feeds

The biggest problem with reading news using a blog reader is that you see the same news over and over again from different sources. One can skip over them, but it gets tiring after a while. A site like Techmeme serves dozens of news articles a day. And if you subscribe to many news feeds, a kind thing would be saying "deja vu". I don't want to say the unkind word.

That is why I love the fact that Search Engine Land offers daily feeds. The idea is similar to the email newsletters I used to get and browse through before I started reading blogs. The important thing is that I can look at the links of the articles and if I find interesting, I can click it and go to their website.

Of course, I wouldn't do this if the articles were not good. But Search Engine Land offers good commentary and perspective on the technology news. They usually have around 10 daily articles that explore current issues

Other sections within their daily feed include news headlines from other sources which include

  • Business Issues
  • Local Search
  • Podcasts
  • SEO
  • Social Media

I wish all the other news engines offered this service. One of my To-Do items for the weekend is to explore Yahoo! Pipes to see if it can help aggregate the feeds from the various sources I subscribe to and just send one post at the end of the day. Thinking about it, once they start thinking of monetization, will Yahoo! finally pipe your output through their ad engine so that the head or tail is now an ad? Anyway, right now, the site seems to be down because of "overwhelming demand".

Your Biggest Critic

Read the following sentence and note the first person you think about:

Whenever this person reads some useful advice, he or she always thinks it applies to someone else.

OK, so who was it?

Actually this is a trick question. Many people reading this question don't think of themselves. Most of us are quite comfortable with ourselves and never put our behavior or attitude to the fire. But because of that, we miss the opportunity to change ourselves for the better. We think if others would only behave differently, things would be so much great. But the problem is that we have no control over the behavior of others. We can only change ourselves.

Often, when I carry out interviews, I ask the interviewee, "Tell me what your weaknesses are." Many candidates, even experienced ones, are stunned by the question as though they have never thought about this issue. Many others tell me about deficiencies in their technical knowledge or domain expertise. A few are very honest and talk about issues that they have faced with their personality.

The last set of people are the ones who are self-aware and who have the greatest potential to improve because they know what they need to correct or work around. It is true that there are some weaknesses that people may never be able to fix. For example, if a person is very shy in public, she may be able to improve her confidence, but she may never reach the level of another person who is more extrovert. However, knowing the problem allows the person to tackle the issue head-on or avoid a situation where they may not be able to perform to the full potential.

You should be your own biggest critic because

  • No one else knows more about you.
  • It is much less embarrassing to find your own faults than someone else pointing them out.
  • Many faults of yours are very visible to others, but people may not tell you because you may feel bad.

Examples of the last include hygiene and dress sense. Say you have bad breath or you come in with a stubble, people may talk about you behind your back, but you will never get to know. In a formal environment, if you wear clothes or accessories that are more suited to junior staff, then don't be surprised if you get passed over for interesting assignments. Nobody is going to tell you this. You just have to learn and figure this out yourself.

Your Public Blog is really Public

I came across the blog of an acquaintance today. My emotions when I read it went like this, "You have got to be kidding me. Are you really putting this on public view?" I don't want to link to the blog, but here is some information. The guy has put his real name on the blog. He has talked about his termination from a company, how he was NOT hired in a bigger technology MNC (including his stupid answers), his work "ethic" and his personal life - all sprinkled with expletives throughout the blog.

If you are maintaining a dairy on the web, understand this:

  • A blog is NOT a private email account or document storage. It is publicly available to anyone who can search for your name on Google.

  • Once you are indexed, your page will remain in Internet history for everyone to look at. This is not "Mission Impossible", you are not Tom Cruise and it is not just one server.

  • Anyone can archive your blog, web page or RSS feed through any of the various tools out there.

  • If you are working in Information Technology, it is very likely that a prospective employer will search for you and find your blog.

  • Yes, bloggers are supposed to be sincere and show their true feelings. But using swear words shows that you have no control over yourself.

  • Using slang and colloquial language is not so bad, but who are you trying to position yourself as? If you want to be treated seriously, then try to write with maturity. A little fun and joking is good, but if it becomes your standard, then you will only lower your image and branding in front of an employer.

  • How difficult is to spell-check? How difficult is to read the post for grammar and meaning before you post it?

  • Most people don't want to know about your personal anguish or concerns unless your story has some meaning to it. Unless you can offer something to the reader, don't post your personal stuff online.

 

If you really, really want to write your private thoughts online, for your own sake, put it in a private blog that can only be accessed by logging in.

A public blog means it is "public". If you don't want someone to see it, make it private.

Worry about Free Web Applications

This blog is hosted on Blogger. It is a great platform and I love many of its features. It is also free, as in "totally free". No monthly fees. No advertisements. Nothing.

That scares me.

Sooner or later, someone at Google is going to point out the tremendous expense that Blogger is incurring with its infrastructure without producing any tangible revenue. Maybe it is a loss leader for Google's other features like AdSense, but how many bloggers are using AdSense? Many people I know blog because of interest or for fun, not for money. What happens if a blogger gains a large audience in the thousands, but does not want to monetize it?

What happens then? Will Blogger automatically start showing AdWords in the screen? Will they start charging for the account based on data transfer?

I don't want to single out Blogger or Google. As I said, I use Blogger because I love it. But I don't know what will happen when they finally decide to cash in on the community of people who are using Blogger. The uncertainty is very worrying. I can imagine many reasons why they would not want to say when it will stop being free, but that does not lessen the confusion.

Every free application on the Internet will face this problem. An application may be offered for free to attract a lot of new users. It could also be used to attract an audience to another application sold by the company. Regardless of the reason, the application is losing money. All the time, the company incurs costs of development and infrastructure.

As the application becomes more popular, these costs go up tremendously. For example, scaling the application may need a lot of time from specialized development and administration teams, not to mention expensive hardware and networking equipment. Once the application crosses a certain threshold of popularity, the floodgates can potentially open to thousands or tens of thousands of users. Since the application is free, there is hardly any barrier for a new person to start using the application.

Somebody has to pay these costs. When the application is free, that "somebody" can be the VC or other private and public investors. They may keep eating the cost until they can sell the company to somebody bigger like Yahoo! or Microsoft. But this is just shifting the burden: Now the bigger company starts emptying its pockets. Eventually, the pyramid scheme has to break - somebody has to stay "stop" because the application is just hemorrhaging bucketloads of money without bringing in anything.

There are many ways of bringing revenue such as paid user accounts or serving up ads. For blog hosting software, I am in favor of paying money, because I think having paid advertisements on the site can sometimes conflict with the content on some blogs. Also with advertising systems like AdWords and Panama, the blog author has no control over what advertisements are displayed. Sometimes, there may appear advertisements of companies that the blogger disapproves of or disagrees with.

In an application like Yahoo! Mail where the content is private, advertisements are not a huge problem as I can easily ignore them. But on a blog, the site author doesn't even get to know the ads that site visitors see. However, many bloggers may have the opposite opinion - they may very well prefer AdWords or even join AdSense instead of having to pay money for an account. 

In a capitalistic society, one should do exactly that. If you have an audience benefiting from your blog's content, it makes sense to use an ad (pun intended) system to gain some reward for the efforts you are putting in. After all, that is what this whole post is about, isn't it? I would suggest that someone should do a study about people's preferences if they haven't already. I remember Yahoo! asking me long time back about how much I would pay to use one of their applications.

With a cash-rich company like Google, it will be some time before they wake up to all the money-losing applications they have. On the other hand, Yahoo! is always all about getting hold of your wallet or advertiser's dollars from Day One of the application. Beware of the other free applications out there who have no clear strategy on how they are going to pay their expenses. And if you are developing a web-based application and plan to give free access, start thinking today of how you will be making money to pay for the product.

A final link on the topic: Google to charge businesses for Google Apps: Seems that they are slowly embracing reality.

Wednesday, February 07, 2007

Half-Baked Software Features

Here are a couple of examples of features which seem to have started as good ideas, but were never thought out through or probably tested in real user scenarios:

  1. In Yahoo! Mail, when you hit the Send button after composing an email, you will be shown a form to add the email address into your address book. This screen has the email address along with two textboxes to enter the first and last name of the person.

    The problem is this: In many cases, the person would already be in my address book, but he has just used a different email address. I want to add the new address to his existing entry in my Yahoo! address book, but there is no option to do that except manually copying the email address.

  2. Google Talk informs me whenever a new mail arrives in my Gmail Inbox. When I click the small notifier icon, it shows me the message. The problem is that there is no Delete button on this screen. Also, the Inbox link always opens a new window. The lack of Delete button is rather frustrating because I typically get a lot of emails that I just want to read and purge. I am not talking about spam - there are Google Alerts that send me emails on new search results for keywords I watch.

In both cases, I can understand the intention of the user interface designer. They may have thought that the particular feature would be useful to all customers, but they only thought of one particular scenario. For example, it is very likely that the Yahoo Mail team decided that if the email address is not in the Address book, you always want to add a new entry. They didn't think about the possibility that people could change email addresses, because very likely, nobody on their team has ever changed their email address for the past several years.

Also the Gmail team probably thinks that since Gmail offers gigabytes of data and easy search, people never need to delete stuff. They can just archive emails. But a person like me hates keeping unwanted stuff around, even in the basement. I prefer throwing it out as soon as possible. Other people may save every last bit of paper for eternity, but that is not me.

The moral of the story is "don't force your paradigm on your users". While what you are doing makes complete sense to you, it may seem very foolish to me. Whenever you make assumptions about the habits of users, you may be unconsciously projecting your habits or way of thinking onto others.

This doesn't mean that your vision is wrong. It could be right and it may very well be what the majority of users like. But there may be a significant number of users who may deviate from your way. Instead of writing off such possibilities outright, do some research to actually find out what people really do.

Many projects land into trouble because of project stakeholders who think that end users work in a certain manner and sometimes don't even provide architects and designers the opportunity to talk with them because the stakeholders consider themselves as the "right" persons to provide the requirements. When the software is released, they are genuinely surprised to see a lot of pushback from end users who find it bearing little resemblance to reality. Sometimes, it is too late by then.

Exciting Technology Video

This is perhaps one of the best videos on technology I have ever watched.

See Web 2.0 ... The Machine is Us/ing Us for yourself and tell me if you are not excited about the way Web 2.0 technology is changing the world.

Some of the ideas, sites and technologies I saw in this video:

This is a great example of how video should be used on the Internet.

Under 5 minutes.

Superb editing.

Fantastic background music.

Imagination.

And makes you think and wonder!

 

Tuesday, February 06, 2007

HP Inkjet Printing Limitation

I am not sure if this limitation is for all HP inkjets. Recently, I was having a discussion with a customer of mine when one of their IT staff mentioned a problem they were having with printing onto some government tax forms. It seems that one of their printers were printing correctly, but the other printer was not printing the last half-inch or so on the form. The person mentioned that he had tried various techniques and settings, but it was not working.

The obvious solution was to Google it. After trying the printer model, we got this link:

http://lists.freestandards.org/pipermail/printing-user-hp/2002/002054.html

As you will note from the posting in the discussion group, Epson inkjets can print on the entire paper, because they have an additional roll in front of the print head holding onto the paper. Since Hewlett-Packard inkjets only have one roll behind the print head, the paper gets loose around the last half inch and so nothing can be printed there.

This is an obscure problem, really. But if you are in the habit of using footers in smaller margins, there may be a possibility that it may get cut off when printing on some HP inkjets.

[Read no further if you are done with obscure problems.]

And while on the topic of obscure problems, here is one with older Toyota Camrys. If you have ever encountered a situation when you try turning your key in the car and it doesn't turn on, the problem could be that the steering wheel has been locked. Apparently, if you shut down the car when it has not fully stopped during parking, the steering wheel and ignition locks up. To start the car, turn the steering wheel as you turn the key in the ignition. This should get you going.