Tag Archive

Tag Archives for " Software "

Documentation can make or break a product!

Dilbert.com

Never ever I have realized the importance of proper documentation until I decided to try out Shibboleth, an open source web single sin-on solution.

Shibboleth is supposedly the best open source alternative to achieve web single sign-on across applications, against more established enterprise offerings such as IBM’s Tivoli (TIM and TAM). While I do not intend to talk about the purpose of such solutions, I want to emphasize the importance of documentation for any product like this. It has been over a week that I have been trying to set-up a simple end-to-end SSO in my local environment using Shibboleth. But in the absence of proper documentation, it has turned out to be a nightmare!

Before I decided to adopt Shibboleth, I had very scary reviews about its complications. Almost everyone who had tried it mentioned that it is quite a complicated nut to crack.  Also, in spite of being the best offering, the adoption rate of Shibboleth does not sound great (at least in my knowledge).

Now, when I have gone through the entire process and close to get it running (well almost done!), I realize the root cause of the perception. The product seems good, but the documentation is horrible! It can confuse the hell out of you. In the absence of proper documentation, you are left upon your own to research through and get it up.

I am thoroughly convinced that a product/solution’s documentation is as critical as its architecture or features, UI or whatever. An OK product with a good documentation is better than a good product with bad documentation. Documentation can make or break your product!

Although I am myself not too good at it (more so out of less interest), hats off to all those people who are involved in great documentation and enabling people realize the product’s true potential.

The BIG demo!

I usually do not post my work related stuff. However, this one deserves a post!

Over the last couple of weeks, I got an opportunity to be a part of a demo, whose scale dwarfs all the projects I’ve been so far associated with (barring one during the early stage of my career). And the client was none other than the Indian Air Force!

My role in the entire solution was quite limited, so I got an opportunity to observe and understand what goes behind the scenes in such high net worth, high risk bids. The proposed solution spanned across various aspects of operations where a software solution could fit in. It involved security, document management, learning and knowledge management, ERP, content management and what not. Of course it involved more than one vendor coming together and propose the solution. While it was a very tensed and hectic two weeks, it was a great learning experience for me. Before I share those, I’ve come up with an analogy to explain the sitution.

What I observed was the fact that people had built great rooms with all amenities one could think of, but the rooms were never put together to build the house.

What I mean is that all modules were impressive and functional standalone, but when integrated, resulted in an enterprise disaster. At times, no one had a clue what was going along.

Moving ahead, I noticed that the most impressive demonstrations were not where we were trying to showcase the product, but those where we demonstrated how would the software solve the problem. The reviewers were not interested in what the software could do, they were more interested in how it would reduce their burden and improve efficiency. Even a very basic product with minimal features could win over a complicated one if it addresses the problem effectively.

I’ve realized this earlier as well. Some big products in the market have become so established that they *drive* the clients adopt to their implementation. While most organizations wouldn’t mind doing so, there are some who would not spare!

Lastly, I would like to mention that after this demo, I’ve developed a great respect for the Indian Air Force. These guys know *exactly* what they require. You just couldn’t convince them to succumb to the product’s hi-fi features which was worthless to them. They had a very clear picture of the final outcome.

I met some very talented people during the course of presentations and learnt a lot of things in the power packed two weeks.

Looking forward for more such opportunities!

90

Hibernate & Suspend Resolved | Ubuntu Gutsy-nVidia-Dell Vostro

“Caution! This is a lengthy post and not intended for casual reading. You can only appreciate this if you’ve faced the issue.”

At last, I am able to hibernate and resume my system successfully, which has been bothering for quite some time now. Just before writing this post, I hibernated and resumed my system for a whopping 15 times in a row!

Before I explain what worked for me here’s what I have:

  • Nvidia GeForce 8400M GS (Note this)
  • Dell Vostro 1500
  • Ubuntu(7.1) Gutsy Gibbon

The Problem:

For me, suspend always worked but on hibernating the system the screen goes black, with a blinking text cursor in the upper left corner and then the screen turns off but the power LED is still lit and the fan remains active till I press the power button to forcibly shut the system.

The Cause:

While there could be numerous reasons for hibernate/suspend not working, mine was attributed to the graphics card driver settings and the way the power management software dealt with the state while hibernating/resuming. After going through numerous forums, wikis and blogs hunting for the solution, I can safely say that 90% of the hibernate/suspend issues are attributed to the same.

The Solution:

Since I didn’t find the solution to the hibernate problem at a single place, it came out of a lot of trial and error. According to me, it makes sense to understand a couple of things before trying out the solution.

  • Suspend Vs. Hibernate:
      • Suspend: The computer goes into the lowest possible power saving mode stopping any calculations or actions being performed. However it does maintain the data on the RAM and therefore resumes quickly from where it left at the press of a button.
      • Hibernate: Hibernate is also called ‘Suspend to Disk’. On hibernating, the state of the computer is first persisted on the hard disk and then the devices are turned off. On restarting, once the devices are switched on, the state is restored into the RAM from the disk.

      This suspend is a power saving mode while hibernate is a power sleep mode.

  • Power Management
      • Advanced Power Management (APM) : APM is the raw power management and works directly with the BIOS of the computer. While it sounds good but the disadvantage is that BIOS manages and functions without any understanding of the operating system. This is definitely not what we want.
      • Advanced Configuration and Power Interface (ACPI): Now this is what makes life easy and gives us a lot of flexibility to play around with the settings. ACPI is an open industry specification and provides an abstraction layer between the OS and the platform hardware and firmware. Thus it works collaboratively with the OS and the BIOS and provides better control over power management.

Now enough of theory, let’s get onto some practicals:

If you haven’t changed the default settings, Ubuntu Gutsy would most likely be using ACPI. Here’s how I proceeded:

  1. Browse Ubuntu and other forums which you would have already done by now.
  2. Try to hibernate(I know it doesn’t work.) But when you resume look into System>Administration>System Log. It may give an indication of the issue.
  3. Configure AGP
      • On a terminal type: sudo gedit /etc/X11/xorg.conf and add the following under the “Device” section:

Option “NvAGP” “1”

4. Prevent the OS from loading the default agpgart and the AGP driver for the chipset by adding the following in the blacklisted modules(type sudo gedit /etc/modprobe.d/blacklist on a terminal)

blacklist intel_agp
blacklist agpgart

5. Modify ACPI settings

On a terminal type: sudo gedit /etc/default/acpi-support and ensure the following:

ACPI_SLEEP=true

ACPI_HIBERNATE=true

SAVE_VBE_STATE=false

POST_VIDEO=false

SAVE_VIDEO_PCI_STATE=true

6. Finally if you’re using compiz (desktop-effects) in conjunction with NVIDIA binary drivers, make sure your “Sync to VBLANK” option in “Advanced Desktop Effects Settings > General > Display settings” is *disabled*. You can set this option to false by running:

gconftool --set /apps/compiz/general/screen0/options/sync_to_vblank 0 --type bool

This is just a compilation of information gathered through various forums/websites. Hopefully hibernate should work well by playing around with the settings as explained above. If it doesn’t, I can just say Good Luck! Keep trying! And please post anything which helped to get your Vostro hibernate 🙂