Ahoy there! This is my personal blog which I use as my memory extension and a medium to share stuff that could be useful to others.

Archive for June, 2009

Problem:

The WebLogic Server does not start. Following errors seen in stdout/stderr/server logs:

***************************************************************************
The WebLogic Server did not start up properly.
Exception raised: ‘weblogic.server.ServerLifecycleException: Server failed to bind to the requested port. See preceeding log message for details.’
Reason: Server failed to bind to the requested port. See preceeding log message for details.
***************************************************************************

Background & Analysis:

In order for a software process to listen at a port on a specific IP address, there should not be any other process already listening to that same port and IP address.

 

Solution:

 (1) Obtain details of the IP address (ListenAddress) and port(ListenPort) at which your WebLogic Server is supposed to listen.

(2) If the host bearing the IP address is unreachable, then contact your Network/System Administrators to ensure that the IP address is associated with a network interface card on the appropriate host.

(3) If the IP address is reachable, use the following commands on the host bearing the IP address (obtained in above step) to determine whether a process is already bound (listening) at the same port and IP address:

On Windows Systems (DOS prompt):

netstat –an | findstr “<IP address>:<port>.*LISTEN”

 

On UNIX Systems:

netstat –an | grep “<IP address>[\.:]<port>.*LISTEN”

       

If no software process is listening at the specified IP address and port, then the above commands should not display any output.

Examples:

(a) IP:Port not bound: For a Windows host on which no process listens at port 777 on 110.120.130.140,

C:\netstat -an | findstr "110.120.130.140:777.*LISTEN"

C:\

(b) IP:Port already bound: For a Solaris host on which a WebLogic Server is listening at port 777 on 110.120.130.140,

$ netstat -an | grep "110.120.130.140[\.:]777.*LISTEN"
110.120.130.140.777        *.*               0      0 131072      0 LISTEN

(4) If step (3) indicates that a process is already listening at the port and IP address at which you want your WebLogic Server to listen, then that process needs to be killed (if it’s not meant to be listening there).

(5) After ensuring that no other process is listening at the WebLogic Server ListenAddress and ListenPort, start the WebLogic Server.

 

NOTE:

  • To obtain the IP address for a domain name, use nslookup (other utilities also available).
  • If your WebLogic Servers are running within a Veritas Cluster Server (VCS) High Availability framework, then the IP address for your servers will be floating and you must execute the above commands on all hosts within the Veritas cluster.
  • This problem and suggested commands are not specific to WebLogic Server processes, but are applicable to all software processes.

Root Cause:

For the problem I experienced, the IP address of the host on which a WebLogic Server was supposed to listen, went missing (error in VCS config caused the IP address to drop off the network interfaces on all the hosts within the VCS cluster) and consequently, was not reachable.

 

NOTE:
(1) The solution above describes a successful problem-solving experience and may not be applicable to other problems with similar symptoms.
(2) Your rating of this post will be much appreciated. Also, feel free to leave comments.

 

VN:F [1.6.5_908]
Rating: +3 (from 3 votes)

WebLogic: SerializedSystemIniException

Problem:

The WebLogic Server does not start. Following errors seen in stdout/stderr/server logs:

 <21-Jun-2009 08:18:13 o’clock BST> <Warning> <Security> <BEA-090066> <Problem handling boot identity. The following exception was generated: weblogic.security.internal.SerializedSystemIniException: [Security:090207]Version mismatch. have 117, expected 1>

            .

            .

Background & Analysis:

Read this tutorial to understand how a WebLogic server uses SerializedSystemIni.dat and how this file may become corrupted.

 

Solution:

Restore a backup of SerializedSystemIni.dat and start the WebLogic servers.

If you do not have a backup, then you will need to reconfigure the domain.

 

Root Cause:

The WebLogic domain’s SerializedSystemIni.dat file is corrupted.

 

NOTE:
(1) The solution above describes a successful problem-solving experience and may not be applicable to other problems with similar symptoms.
(2) Your rating of this post will be much appreciated. Also, feel free to leave comments.

 

VN:F [1.6.5_908]
Rating: +3 (from 3 votes)

WebLogic: JSAFE_PaddingException

Problem:

WebLogic Server 8.1 does not start. Following errors seen in stdout/stderr/server logs:

 ####<Jun 18, 2009 11:44:13 AM BST> <Error> <Management> <> <admin_mkdom> <main> <<WLS Kernel>> <> <BEA-140001> <An error occurred while getting attribute Credential on MBean mkdom:Location=admin_mkdom,Name=mkdom,Type=EmbeddedLDAPConfig. Method: null. Exception: com.rsa.jsafe.JSAFE_PaddingException: Could not perform unpadding: invalid pad byte..

com.rsa.jsafe.JSAFE_PaddingException: Could not perform unpadding: invalid pad byte.

            at com.rsa.jsafe.JA_PKCS5Padding.a(Unknown Source)

            at com.rsa.jsafe.JG_BlockCipher.decryptFinal(Unknown Source)

            .

            .

Background & Analysis:

JSAFE is an encryption/decryption engine for Java, developed by RSA. So, you can be sure that you have a problem with encryption/decryption whenever you encounter exceptions related to JSAFE.

All passwords in a WebLogic domain are encrypted by hashes in a file called SerializedSystemIni.dat. Read this tutorial to understand how WebLogic uses SerializedSystemIni.dat. If passwords that have been encrypted in one WebLogic domain are used in another WebLogic domain, then all the encrypted passwords will not be decrypted and the WebLogic servers will not start.

 

Solution:

As the passwords need to be encrypted using the current domain’s SerializedSystemIni.dat file, do the following to configure valid encrypted passwords and start the WebLogic servers:

(1) In all WebLogic configuration files contain encrypted passwords, find and replace as follows:

ALL occurrences of  PasswordEncrypted=”{3DES}…….” 

                                              with

                                Password=”plain-text password”

 

where, plain-text password  =  corresponding plain-text password for encrypted password

Example: If the password for a user used by a connection pool is “olympics” and its encrypted value is “{3DES}hKjgbvd==”, then replace PasswordEncrypted=“{3DES}hKjgbvd==” with Password=”olympics”

(2) Start the WebLogic servers.

 

Root Cause:

The encrypted passwords used in configuration files within a WebLogic domain were encrypted using SerializedSystemIni.dat in another WebLogic domain.

UPDATE (24th January 2010): For WebLogic Server 9.x+, the solution above will not work. Refer this article for tips.

NOTE:
(1) The solution above describes a successful problem-solving experience and may not be applicable to other problems with similar symptoms.
(2) Your rating of this post will be much appreciated. Also, feel free to leave comments.

 

VN:F [1.6.5_908]
Rating: +8 (from 8 votes)

The SerializedSystemIni.dat file is a critical part of every WebLogic domain and if not administered properly, could result in your servers not starting and you having to recreate the entire domain. So, a good understanding of this file is important.

 

What is it?

SerializedSystemIni.dat is a WebLogic domain file which contains hashes.  Currently, these hashes use Triple-DES block ciphers (that’s why the encrypted passwords begin with “{3DES}”). SerializedSystemIni.dat is located in the domain directory (WebLogic Server 8.1 and earlier) or in domain/security directory (WebLogic Server 9.x and later).

 

When and how is it created?

The SerializedSystemIni.dat is created during the creation of a WebLogic domain. The hashes in the file are created using an algorithm that binds the file to the domain in which it has been created. So, a SerializedSystemIni.dat file can be used only within the domain in which it has been created (cannot be used in other WebLogic domains). Also, in WebLogic Server versions 8.1 SP6 and earlier, the SerializedSystemIni.dat file (along with msi-config.xml and fileRealm.properties files)  is replicated into a managed server’s root directory every 5 minutes for managed servers which have MSI File Replication enabled. These files are replicated even if the admin and managed servers share the same server root directory (doesn’t make sense to me).

 

What is it used for?

SerializedSystemIni.dat is used for encryption/decryption of plain-text/ciphertext within a WebLogic domain.

Gotchas!

  • If SerializedSystemIni.dat is corrupted (modified) or missing, then the WebLogic Servers in your domain will not start and you will have to reconfigure the domain.
  • If MSI File Replication is enabled for your managed servers in domains running on WebLogic server versions 8.1 SP6 or earlier, then a bug in the 5-minute replication could cause corruption of SerializedSystemIni.dat occasionally during server restart and will make it a zero-byte file if the disk drive or mountpoint in which the WebLogic domain is located is 100% full.
  • If SerializedSystemIni.dat is transferred to its domain in ascii mode (for example, from a configuration management system) , the file could become corrupted.

 

Best Practices

  • Ensure that you have a working backup of SerializedSystemIni.dat. i.e. test the recovery of SerializedSystemIni.dat and server start-up using the backup copy.
  • If you’re using WebLogic Server versions 8.1 SP6 or earlier and have MSI File Replication enabled, then ensure you contact Oracle, obtain and deploy patch CR260218 (Guardian Signature Patterns Release 1.1.34 and Signature ID 000168) to fix the bug in replication that corrupts SerializedSystemIni.dat or makes it a zero-byte file.
  • If you require to transfer SerializedSystemIni.dat to its domain via FTP, always use binary mode for the file transfer.
VN:F [1.6.5_908]
Rating: +23 (from 23 votes)

Design for Supportability

By Design for Supportability (DFS), I mean designing a product with adequate features  to facilitate administration, support, maintenance  and problem diagnosis. DFS is not just a methodology, it’s a way of thinking for design and development.  This post will pertain to Application Software Design. The basic principle of DFS should be applicable to all product designs.

Benefits of DFS:

  • Increases probability of error detection in the testing phase, thereby leading to a better quality product.
  • Quicker resolution times for incidents and root cause analysis, thereby leading to an increase in customer satisfaction.
  • Smaller support teams, thereby leading to a reduction in the total cost of ownership (TCO).

    Given below are some typical problems experienced by Application Support teams and how they may be addressed/avoided by DFS:

SL# Problem experienced by Support Team How it may be addressed by DFS
1. Inadequate logging. No errors in logs.
  • Use a good logging framework and a well-structured log syntax (eg. log4j) for application logs.
  • Segregate application and server logs.
  • Handle all application exceptions and log descriptive errors, rather than allow errors to be directed to standard error/output.
  • Add debug to critical paths/exit statuses within the application to facilitate troubleshooting problems when debug is enabled.
2.

Logging severity levels cannot be changed at runtime. e.g. to enable debug for the application, the application needs to be redeployed or the underlying server restarted.

  • Use a good logging framework which permits runtime changes (eg. log4j)
3.

Redundant Logging. Rapid utilization of free space on disk.

  • Log adequate details, as required by the severity level. Nothing more, nothing less.
  • Data logged must be in accordance width data privacy/confidentiality laws.
4. Configuration changes are not dynamic.
  • If the application is customizable and driven by configuration files, then as far as possible, dynamic changes to configuration at runtime must be allowed. The more changes to an application that can be made without redeployment/server restart, the better.
5.

Lack of Administration tools. Support teams either perform application administration manually or spend time and money on developing tools.

  • Some applications require ad hoc administrative actions to be performed (eg. process a backlog of messages, resubmit messages, track messages, restart data feeds, etc.) or regular maintenance (eg. housekeeping).
  • Application administration tools must be part of the application deliverable. Spending time and effort on these tools during the design and development stages will pay rich dividends for the in-life support of the application. Also, the designers and developers will be best placed to build such tools.
  • As far as possible, application administration tools must be built to be customizable and automated (eg. as scheduled jobs). The lesser manual intervention by Support teams, the better.

 

How to implement DFS?: If you understand the concept of DFS, you’ll know what’s required to implement it in your project. Here are some guidelines to assist with implementation of DFS.

  • Design for Supportability requires dedicated resources across all teams (design, development, build, testing and support) to work together with utmost cooperation, bearing in mind the ultimate objective – a superb application.
  • Design and Development teams must involve Application Support teams in the early stages of application design (a key requirement for DFS). This will enable the Support team to get an early and good insight into the application and provide feedback with respect to Support requirements. Typically, design and development teams feel it unnecessary to involve Support/Testing teams during the design phase and Support/Testing teams feel it unnecessary to spare resources for the design phase. For DFS to work, this mindset must change.
  • Application Support teams must be involved in the testing phase wherein apart from normal use cases, as many abnormal use case scenarios as possible must be tested. This testing must also cover application administration tools. The Support team must follow a systematic approach to simulate real-world scenarios and test various aspects of the application from a Support perspective and provide feedback to the Development team.

    To all you Application Support folks out there: Spread the word on DFS among your design and development communities. It will make your job easier. DFS should help achieve economies of scale in your Support projects and open the door to new opportunities. Well, there will always be some human presence required (customers won’t want to interact with machines).

VN:F [1.6.5_908]
Rating: +2 (from 2 votes)

I have been converted!!! When Twenty20 (T20) arrived on the cricketing scene, I was very quick to dismiss it as wham-bam cricket, a doom for bowlers, etc. I enjoyed watching the formats of the game already existing before T20 arrived – One-Day Cricket and Test Cricket. However, after a couple of IPL tournaments and T20 World Cups, I now know that I was wrong to judge T20 hastily and harshly and I now wholeheartedly embrace this format of the game. Here are the reasons why I think T20 is a wonderful format and is here to stay:

  • High-Octane Cricket: Lots of Boundaries and Sixes, stumps being uprooted more often, acrobatic fielding, rocking music during breaks, close finishes/edge-of-the-seat thrillers.
  • Time Saver: An entire T20 match lasts around 3 hours. The shorter the match, the more involved the audience will be. Also, you’ll still have a huge chunk of the day remaining to do whatever you want after being entertained by a T20 match.
  • Innovation: Would you have heard of deliveries like the “slow bouncer” and shots like the “Dilscoop” had it not been for T20 Cricket? Certainly No! T20 has made cricketers think on their feet out there in the middle –  the Dilscoop introduced by Dilshan (scooping the ball backward over the heads of the batsman and wicketkeeper) is an example of such innovation. The slow bouncer and slow full toss used by Lasith Malinga (one of the best proponents of these deliveries), Jerome Taylor and a few others is an example of excellent innovation with the ball. Well, T20 is set to get all cricket coaching manuals updated.
  • Challenge: In the T20 format, every ball matters. For every ball bowled, the bowler must try something clever to get the batsman’s wicket (no more bowling without the pressure of being hit for a boundary), the batsman must make contact with the ball to ensure maximum runs are scored (no more shouldering arms or being defensive with deliberate padding), the fielders must be always switched-on and do everything possible save every run (most matches are too close to afford even an extra run). T20 offers both a mental and physical challenge to cricketers.
  • Packed Stadiums: Any sport’s survival depends on its popularity among the masses. T20 has packed stadiums like never before. T20 is attracting people who once upon a time found cricket boring. T20 is also proving to be a good family entertainer (you can get the family out for just 3 hours of entertainment, can’t you?). Packed Stadiums lead to increased revenue (ticket sales and advertising) and this makes T20 a very attractive business model for the Cricket Boards (just hope the Boards use the money wisely to develop the game around the world).

Coming back to my initial concern I had regarding T20, the ICC T20 World Cup 2009 was dominated by great bowling and proved that bowlers also have a major role and can significantly impact the result of a T20 match (not just batsman-dominated as I expected). However, perhaps, the only cricketing domain which could be adversely impacted by T20 is “batting” for the very reasons cricket purists describe T20 as a lottery or vulgar. I believe that the concern here is regarding technical batting. Will the coming generations of batsmen focus on learning the big slog and heave shots rather than straight drives, square cuts, leg glances and other technical shots? Only time will tell. That’s why I believe Test Cricket should stay on forever as it’s the purist’s game and a joy to watch in its own right. But, Test Cricket’s survival depends on the number of fans who are cricket purists and enjoy this traditional contest between bat and ball. If this number dwindles with the advent of T20, then Test Cricket could be in danger. Personally, I wish Test Cricket stays on forever as I enjoy the gruelling battles in Test cricket. However, I see absolutely no place whatsoever for the One-Day format. I believe that Test Cricket and T20 should henceforth be made the standard formats of Cricket.

Congratulations to Pakistan for becoming the unlikely, but thoroughly deserving T20 World Champions at Lords yesterday!

VN:F [1.6.5_908]
Rating: 0 (from 0 votes)

When I started this blog in March 2009, I used the editor on the WordPress Admin console to create and publish posts. Soon, I heard about Windows Live Writer, tried it out and never looked at another blogging tool since then. Windows Live Writer (WLW) is an offline desktop application with rich editing features, which you can use to create posts and publish them to your blog (all popular blogs are supported). A screenshot of WLW taken while creating this post is shown below:

 

WindowsLiveWriter

 

WLW provides the standard features available with good text editors along with blog-specific features like managing different blog accounts, opening and retrieving recently published posts, scheduling publishing of posts and extension via plug-ins. For example, I’ve used a text template plug-in to create a template for certain types of posts, so that whenever I wish to create such a post, I simply use the template and fill in the blanks.

So, WLW makes blogging easy, but I still had the problem of blogging being tied to the laptop on which I had WLW installed. I use 2 laptops, one at office and one at home. Sometimes, I get some ideas for a post at office and wish to just make some quick notes for continuation later. How nice it would be if I can carry the same WLW installation with me wherever I go. i.e. use a portable WLW. Searched online and found a Portable launcher for WLW here. Thanks to Scott Kingery, blogging has been made even easier by becoming portable. I use portable WLW on my USB drive so that all my blog work is saved to the USB drive. Instructions for installing WLW and making it portable are given below:

Installation Of Windows Live Writer:

(1) If you do not already have Windows Live Writer on your computer, download Windows Live Writer from here and install it.

     NOTE: Windows Live is a software suite provided by Microsoft. So, when you launch the installer downloaded in step (1), you will be provide with options to install one or more Windows Live applications. If you’re only interested in WLW, then select only WLW and proceed with the installation.

 

Making Windows Live Writer Portable:

(2) downloadWLWPortablev3.png  or visit TechLifeWeb for the latest update on this software.

 

(3) Extract the downloaded ZIP file for WLW Portable into your USB drive. For example, my USB drive is assigned drive letter P: and I extracted WLWPortablev3.0 into P:, thereby creating a directory P:\WLWPortable3 with sub-directories and files within.

 

(4) Assuming you installed WLW in step (1) into the default location, copy all the files from C:\Program Files\Windows Live\Writer to the following location within the extracted WLWPortable3 on your USB drive:  WLWPortable3\WindowsLiveWriterPortable\App\WindowsLiveWriter

(5) You can now launch WLW Portable v3.0, by clicking on WLWPortable3\WindowsLiveWriterPortable\WindowsLiveWriterPortable.exe. I dragged this WLWPortable executable file onto my RocketDock so that I can easily launch WLWPortable as soon as my USB drive is inserted into my laptop. A screenshot of my set up (WLWPortable Launcher in RocketDock) is shown below:

 

WLWPortable_RocketDock

 

As the above steps make WLW portable, you may even uninstall WLW from your computer and you will still be able to use WLW from your USB drive (remember you copied a bunch of installation files to your USB drive in step(4)).

VN:F [1.6.5_908]
Rating: 0 (from 0 votes)

I required to create some “download buttons” for this blog. I didn’t have any appropriate Image creation/editing tool to create buttons and when searching the www, came across a good website called Da Button Factory which allows you to create buttons online. Salient features of Da Button Factory are:

  • The website is very clean, intuitive and simple to use.
  • Allows creation of 3 types of button : Rectangular, Rounded, Round
  • Allows creation of single colour and dual colour buttons.
  • Allows button to be integrated into your website as CSS code or an image (gif/png/jpg).
  • Allows customization of text, font, shadow, size, border, text padding and colour.

Using two colour gradient, you could create a button that is quite close to, if not like, the Web 2.0 buttons out there (colourful, glossy, shaded buttons).

A screenshot of Da Button Factory, taken while creating my download button is given below. It shows you the various options mentioned above. I opted for a PNG image, as it’s the optimal choice for small images with text (like buttons).

 

dabuttonfactory

VN:F [1.6.5_908]
Rating: +2 (from 2 votes)

WLtd – WebLogic Thread Dumper

WLtd is a simple korn shell script that will enable you manage thread dump operations on WebLogic Servers efficiently and effectively. The salient features of WLtd are given below:

  • Can be run in interactive and non-interactive modes (so can be run as a cron job)
  • Configuration-driven
  • For more than one specified WebLogic Server, thread dumps are taken parallelly (as coprocesses – beneficial on multi-cpu hosts).
  • Thread dumps are extracted from the WebLogic Server stderr logfiles and stored in text files.
  • Option to email thread dumps, as an attachment (text files will be archived and compressed).
  • Housekeeping of thread dump text files

 

System Requirements:  Solaris/Linux, Korn Shell (/bin/ksh)

 

Download WLtd v1.0                 Download WLtd v1.0 ReadMe

 

VN:F [1.6.5_908]
Rating: +1 (from 1 vote)

The Proteas have successfully defended the title of “chokers” in their semi-final match against Pakistan in the ICC World T20 2009 tournament today.

At the post-match presentation, Graeme Smith dismissed a question alluding to his team being chokers by saying that he didn’t believe that’s the case and it was just that Pakistan was better on the day. Well, yes, T20 is a format in which the stronger team or even the in-form team is not guaranteed a victory because anybody could suddenly play as if he’s in the form of his life over a short span of 3 hours and grab victory. And that’s exactly what Shahid Afridi did today to take Pakistan into the finals.

However, given the way the Proteas have played all their matches leading up to the semi-finals, you would have been deemed perfectly sensible for having purchased a ticket to watch South Africa in the finals. The Proteas themselves believed that based on the strengths of the current team, they had nothing to worry about that nagging “chokers” tag.

But cometh the moment, cometh a crunch match, cometh the pressure and it’s déjà vu – the Proteas are on the losing side yet again. I’m very disappointed to see the Proteas lose today’s semi-final. I sincerely wanted them to win the T20 World Cup 2009, because I believe they’re a world-class team who deserve a World title, having given cricket fans terrific performances over the years. Unfortunately, they choked yet again and irrespective of how Graeme Smith and his boys react to today’s loss, they’ve lost too many crucial matches and consequently World titles to shed the title of “chokers”. Perhaps, other tags like “jinxed” and “cursed” will creep in to join “chokers” and haunt the Proteas.

Pakistan was the better side today and earned their victory. Shahid Afridi finally came to the party and I’ve never seen anybody bowl so many yorkers in a match as Umer Gul bowled today. Looking forward to see who meets Pakistan in the semi-finals – another Asian country (Sri Lanka) or the unpredictable Calypso boys (West Indies).

VN:F [1.6.5_908]
Rating: 0 (from 0 votes)

On an earlier post, I mentioned the convenience of using portable applications on a USB drive. Typically, if you require to use a portable application on your USB drive, you will require to navigate to that application’s installation directory on your USB drive and then launch the application. Creating shortcuts to the applications on your desktop is pointless and will defeat the purpose of portability (tying you to the desktop). Fortunately, some software vendors have developed application launchers or docking software (similar to Windows QuickLaunch bar) that can be completely installed on a USB drive. By using one such dock called RocketDock (similar to the early Mac dock), I have quick access to my portable applications.

 

Download RocketDock v1.3.5

In order to launch RocketDock automatically on a Windows computer as soon as a USB drive containing it is inserted, I did the following:

(1) Downloaded the RocketDock executable. You may use the download button above or click here for the latest version.

NOTE: RocketDock is licensed under a Creative Commons Public License and by downloading RocketDock using the download button above, you are agreeing to use it as per the terms of the Creative Commons Public License. Although the RocketDock website says that RocketDock isn’t supported on 64-bit versions of Windows Operating Systems, I have been using RocketDock with 64-bit Windows Vista Ultimate with no issues experienced so far.

(2) Installed the RocketDock software in a directory RocketDock in the  root of my USB Drive. For example, if my USB drive letter is P:, then the location of the RocketDock directory will be P:\RocketDock.

(3) Added a file called Autorun.inf to the root of my USB drive (P:\Autorun.inf) with the following contents:

[autorun]

open = RocketDock\RocketDock.exe

icon = RocketDock\RocketDock.exe

action = Gimme RocketDock mate!

label = Mr.KIPS

 

The above steps will display a pop-up window similar to the following when the USB drive is inserted:

 

rocketdock_autoplay

 

(4) When RocketDock launched, I then dragged the executables of my most frequently accessed portable applications onto the RocketDock, resulting in a dock similar to the screenshot below:

 

rocketdock

 

So, RocketDock has enabled me access my portable applications quickly.

I have not had a perfect user experience with RocketDock. Sometimes, RocketDock just does not launch when my USB drive is inserted and rarely, it just disappears off the screen. However, both these glitches can be addressed by simply launching the RocketDock manually (RocketDock.exe).

VN:F [1.6.5_908]
Rating: 0 (from 0 votes)

When I started working as an independent contractor, I looked for ways to carry my work with me with minimum fuss and break free from the office PC/laptop. I was looking to install my favourite software completely on a USB drive without being tied to a PC/laptop (eg. by using Windows registry). I had been using a SanDisk Titanium U3 USB drive for a while, but was frustrated with the slow U3 Launchpad and unavailability of U3 versions of popular software. A little research led me to PortableApps.com which provides both individual portable applications and a portable suite of applications that can be run on a variety of hardware (USB drives, iPods, portable hard drives, etc.). I opted to use individual portable applications so that I could install only what I required. So, I formatted my SanDisk U3 USB Drive and installed portable versions of some of the software I use frequently (PuTTY, Mozilla Firefox, Notepad++, etc.) from PortableApps.com. The launch screen of Portable PuTTY is shown below.

 

putty_portable_launch

Although using some portable applications on my USB drive is a bit slower than their non-portable counterparts installed on my laptop, I don’t mind trading this minor performance impact (noticeable only for certain applications like Portable Firefox) for the significant convenience that portable applications bring me. With portable applications on my USB drive, I carry all my work in my pocket and easily switch working between my office and home laptops. For example, I can use all my bookmarks and plugins in Firefox or all my saved sessions in PuTTY (Portable PuTTY can save sessions to a file, thereby removing dependency on the windows registry) on both my office and home laptops (and any other computer) by simply switching the USB drive from one to the other.

Portable Applications give you the advantages of carrying your applications (and obviously data) with you, accessing them from any computer with a USB port and leaving no data behind on the host computer.

VN:F [1.6.5_908]
Rating: 0 (from 0 votes)

In the recent crucial ICC World T20 match between India and England which finally saw the defending champions India being knocked out of the T20 World Cup, Harbhajan Singh pulled out of his delivery stride a couple of times. In the final over, when bowling to Foster, Harbhajan pulled out of his delivery stride just before delivering the third ball of the over. At the moment he pulled out, it was obvious that the non-striking batsman (Mascarenhas) was a few feet outside the popping crease to backup the striking batsman for running between the wickets. Witnessing this moment made me wonder about the laws of cricket pertaining to running out a non-striking batsman while bowling. So, here goes:

Backing up a batsman: The non-striking batsman usually backs up the striking batsman by taking a few steps towards the striking batsman during the delivery to facilitate running between the wickets by having to cover less distance. This “backing up” could have a profound impact on games, given the several close run-out decisions made using TV replays.

What does the Law say?: Law 42.15 of Cricket states that “The bowler is permitted, before entering his delivery stride, to attempt to run out the non-striker. The ball shall not count in the over.”  Appendix D of the Laws of Cricket defines a delivery stride as “the stride during which the delivery swing is made, whether the ball is released or not. It starts when the bowler’s back foot lands for that stride and ends when the front foot lands in the same stride

So, as per the Laws of Cricket, Harbhajan Singh could not have run out Mascarenhas even though Mascarenhas had left the popping crease as Harbhajan Singh had stopped bowling only after commencing his delivery stride.

And now for a little bit of history. Running out a “backing up” batsman has been around for a while. Though within the Laws of Cricket, it is considered unsportsmanlike. This action became famous when Vinoo Mankad ran out Bill Brown during India’s tour of Australia in 1947 and in fact a new term “Mankad” was coined for running out a non-striking batsman who was backing up. So, Bill Brown was mankaded by Vinoo Mankad :) . Another famous incident which has been recorded in the annals of Mankading occurred when Courtney Walsh refused to mankad Salim Jaffer in the 1987 World Cup (this probably cost West Indies the World Cup).

The unwritten code of cricket suggests that a bowler ought to warn the batsman at least once before mankading him.

Why have a Law in a Sport, which when followed to the letter, alludes to unsportsmanlike behaviour ? Why put the onus of watching the non-striking batsman on the bowler?

Yes, there are laws and there’s the “spirit of the game”, but then where do you draw the line? If non-striking batsmen are over-enthusiastic in backing up and cover a few yards before the ball is delivered, it could make a huge difference and possibly facilitate scoring the winning run! The onus of identifying whether a non-striking batsman is backing up early or not should be put on the umpires (after all they have fewer decisions to make with the advent of the 3rd umpire). Nowadays, especially in formats like T20, most games are very close and it’s simply wrong to blur the thin line between victory and defeat in the name of the spirit of the game, when there’s a clear law in place. Perhaps, Law 42.15 should be modified to indicate that the umpires will watch out for early backing up by non-strikers and give them two warnings before declaring them out (for stealing some distance on a run) so that the bowlers may concentrate on their main job – bowling. Visit this Cricinfo article for some more information on Mankading.

VN:F [1.6.5_908]
Rating: 0 (from 0 votes)

Recently, when I searched for the various options for milk deliveries to my home, I became aware of the different types of milk and more research gave me a whole new perspective of milk, the dairy industry and the marketing gimmicks that get the better of consumers.

Basically, raw milk is milk which we get directly from the cow (or goat, etc. – I will stick with cow in this post). i.e. the milk that leaves the cow’s udders is raw milk. Given below are some details on the typical processes that raw milk undergoes.

 

SL# PROCESS WHAT IS IT? WHY IT EXITS?
1. Pasteurization Heating Milk to ~72C for a very brief period (~15 seconds). To kill all harmful bacteria, but not all bacteria.
2. Homogenization Passing milk through tiny holes/tubes at a very high pressure. To break up fat molecules and separate the fat/cream from water in the milk. Provides more aesthetic value.
3. Ultra High Temperature (UHT) Heat milk to very high temperatures (~ 135C) and pack into sterile containers. To kill all bacteria. Long shelf life and no refrigeration required, until opened.

 

The most common milk available in supermarkets in the UK is standardized, pasteurized, homogenized milk. When I pick up a bottle of milk in the supermarket, I see “Standardized, Pasteurized and Homogenized” milk – like it’s all good for you. Let me explain this little ad on the milk bottles.

According to an article on the Journal of Dairy Science website, Van Slyke defines standardized (or adjusted) milk as “milk in which the original fat content has been changed, and also the ratio of fat to the other milk solids, by the removal of milk-fat, or by the addition of skim-milk, or by the addition of cream.” This explains the skimmed and semi-skimmed milk. So, standardized milk means tampered milk. i.e. milk whose constituents are modified.

Pasteurization of raw milk is required as a bacteria-free dairy farm and milk handling/transportation cannot be guaranteed (that’s why the sale of raw milk is illegal in many countries – all sold milk must be at least pasteurized). Pasteurized milk is also referred to as Fresh Milk. UHT is just taking pasteurization a step further for the convenience of storage.

Homogenization is done for aesthetic purposes (and perhaps for smoother taste). There have been concerns about homogenization in medical circles. In his book “The XO factor”, Kurt Oster suggests that homogenization of milk causes an enzyme in milk called Xanthine Oxidase, to break up and pass undigested through the human intestine and into the blood stream where it can eventually destroy arteries and lead to heart disease. Oster’s theory has not been proved till date, but homogenization is not required for safety and is a redundant process that simply takes us away further from natural, raw milk.

So, in that little ad on milk bottles, the only required process is Pasteurization, which does not alter the composition of milk (apart from killing harmful bacteria). However, Standardization and Homogenization alter the fundamental composition of milk and are redundant. Arla Dairies runs a TV ad for its Cravendale milk brand, with a catchy slogan like “Cravendale tastes so good cows want it back”. Cravendale milk actually goes through another “filtration” process which Arla Dairies claims removes even more bacteria (middle ground between pasteurization and UHT). If cows actually taste Cravendale milk, they may not even recognize it, given the amount of processing it’s undergone.

Finally, I decided to consume milk in a form which is as close to raw milk in composition, but safe for consumption. So, I started consuming Pasteurized, Unhomogenized milk (Gold Top) and it takes me back to my younger days – when my Mum would boil the milk we get and we’d see a lot of cream form at the top during cooling. And my coffees and teas taste better!

VN:F [1.6.5_908]
Rating: +2 (from 2 votes)

Tangible User Interfaces

How about manipulating digital information with your hands in a more natural, instinctive way like we do with other tangible things? Devices called Siftables make this possible. As per the creators David Merrill (MIT Media Lab) and Jeevan Kalanithi (Taco Lab), “Siftables are compact electronic devices with motion sensing, graphical display, and wireless communication. One or more Siftables may be physically manipulated to interact with digital information and media.” So, while gestural user interfaces allow you to manipulate digital information on surfaces by using gestures (like SixthSense and g-speak), tangible user interfaces (like Siftables) allow you to manipulate information in your hands with gestures. Watch a demo video of Siftables below:

 

 

Visit siftables.com for more details.

VN:F [1.6.5_908]
Rating: 0 (from 0 votes)

Spatial manipulation of digital information

Most jobs involving digital information are computer-centric. My job (IT) and that of millions out there predominantly involve exchange and manipulation of digital information and this ties us to our laptops/PCs/Macs, etc. and I/O interfaces like keyboards, mice, touch screens, etc.  How about doing the same stuff by working with digital information spatially? To do this, we would require a new type of I/O interface and what could be simpler and more intuitive to use than hand gestures! – so, we have it – gestural i/o. The SixthSense uses gestural I/O. A lot of research in the field of gestural I/O and Human-Computer Interaction has been performed by Oblong Industries together with MIT’s Tangible Media Lab. Oblong Industries is the developer of the g-speak spatial operating environment. View the video below for an overview of g-speak:

 

 

By the way, gestural I/O was not inspired by Minority Report, but rather the work done by Oblong industries/MIT inspired Minority Report. The movie’s Production Designer visited MIT Labs to determine how to depict a plausible future in the movie as required by Steven Spielberg. So, Spielberg wanted to depict 2054 AD as something which could be made real one day and I guess he was rather pessimistic when choosing the year 2054 as it seems we’re only a few years or a decade away from doing that stuff depicted in Minority Report.

Read this interesting account on the development of gestural I/O and spatial operating environments at Oblong and MIT.

VN:F [1.6.5_908]
Rating: 0 (from 0 votes)

At times during my ritual household grocery shopping, I stand in front of a supermarket shelf containing several brands of a specific product (probably a new addition to the shelf), trying to digest all the information on the product labels and decide which brand to pick up. This task has been made somewhat easier after getting my BlackBerry Bold with unlimited internet usage, as I can now at least check product reviews on the www, thereby facilitating my decision-making process. But how nice it would be for me to have very quick access to the information I want with minimum fuss! – the SixthSense  may be just the perfect device to make this possible. Pranav Mistry, a Ph.D student in the Fluid Interfaces Group at the MIT Media Lab is the genius behind the SixthSense. Watch the demo of SixthSense below:

 

 

Visit SixthSense for more details. When this device becomes generally available, it will revolutionize the way we humans interact with the world around us and will bridge the gap between science fiction and reality.

VN:F [1.6.5_908]
Rating: 0 (from 0 votes)