Friday, July 01, 2011

Why HP needs to focus more on software

Why HP needs to focus more on ES and HPSW?

Issac Newton introduced the most fundamental law of universe, law of motion. And Charles Darwin introduced the most fundamental law of Earth, survival of fittest (or natural selection). It is not surprising then that Herbert Spencer found parallels of this in Economics. The matter of truth is - in this competitive world, only the fittest survive. And this holds true for business as much as it does to principles of biology.

The context is Oracle’s decision to withdraw support for Itanium based products from their future software and HP’s consequent decision to move to court against it. The problem in this case is that HP has 140,000 customers that is shares with Oracle to lose, whereas Oracle has very little to lose if anything at all. It may just offer an alternate to customers and customers would not see a reason why they should stick to HP and jeopardize their investment remaining in a state of constant confusion. On the other hand, HP is not in a position to offer an alternate to these customers and hence stand to lose billions of dollars in revenue over years.

Why is HP in a situation like this?

The reason comes from the fact that within HP Enterprise Services is a comparatively new focus area. There is still a lot to be done. HP traditionally was a hardware vendor and moved into software services after acquisitions consolidating its position and readying itself for the top spot. Oracle on the other hand was a software company which moved into hardware with acquisitions. It should not have been too hard to predict what would be Oracle’s intention (or long-term business strategy) to acquire Sun.

Anyway, it is still not too late for HP. HP may learn from this episode for the partnership strategies for future. The matter of fact is no organization forms a partnership with another organization for the benefit of the other. Partnerships are always based on self-interests. Specifically an organization needs to be careful if it wants to have partnership with organizations such as Microsoft, which are known to have only have partnerships which benefited them single-sidedly.

A good lesson learned, and there cannot be a better motivation for HP to evolve it’s own Software Solutions and Enterprise Services to support it’s hardware business. Reliance on other vendors is futile, at least not fool-proof and future-proof.

Back into action

I stayed away from writing for quite some time. Now is the time to get back into action. Hope to come here often and post.

Thursday, August 31, 2006

Send mail from PL/SQL code

Have you ever needed to send mail from within an Oracle PL/SQL procedure or funtion? Some colleagues of mine happened to be in the need of performing this task. With some googling I was able to find some bare bones code that allowed me send plain vanilla mails. But there were many limitations to what could be achieved with them. Having some working code was great, but what lacked there was sophistication. I wanted to have some features that would allow sending a well-formatted professional looking mail. Here is what I came up with. I have two implementations of the code; in form of a procedure and a function. Both implementations can send plain vanilla mail with a minimum number of arguments, but can perform advanced functions when passed more arguments. Here is the code for the procedure.

Create or Replace Procedure RR_SendMail
-- Written by Ranjeet Rain (ranjeet.rain@gmail.com)
-- You found this code at http://expertnotes.blogspot.com/

  (Sender IN VARCHAR2, 
  SendTo IN VARCHAR2, 
  Subject IN VARCHAR2, 
  BodyText IN VARCHAR2, 
  MailHost IN VARCHAR2, 
  SmtpPort IN NUMBER := 25, 
  CCTo IN VARCHAR2 := NULL, 
  MailFormat IN VARCHAR2 := 'text', -- text or text/html
  Priority IN NUMBER := 3 -- 3 = Medium, 5 = Low, 1 = High
  ) 

IS

  v_mail_conn UTL_SMTP.connection;
  v_mailhost VARCHAR2(64) := MailHost;
  n_smtpport VARCHAR2(4) := SmtpPort;
  v_subject VARCHAR2(64) := Subject;
  v_from VARCHAR2(64) := Sender;
  v_to VARCHAR2(64) := SendTo;
  v_CC VARCHAR2(64) := CCTo;
  v_bodytext VARCHAR2(1240) := BodyText;
BEGIN
  v_mail_conn := UTL_SMTP.open_connection(v_mailhost, n_smtpport);
  UTL_SMTP.helo(v_mail_conn, v_mailhost);
  UTL_SMTP.mail(v_mail_conn, v_from);
  UTL_SMTP.rcpt(v_mail_conn, v_to);
  UTL_SMTP.open_data(v_mail_conn);
  utl_smtp.write_data(v_mail_conn,
    'Date: ' || TO_CHAR(SYSDATE, 'DD-MON-YYYY HH24:MI:SS') || utl_tcp.crlf ||
    'From: ' || v_from || utl_tcp.crlf ||
    'To: ' || v_to || utl_tcp.crlf ||
    'CC: ' || v_CC || utl_tcp.crlf ||
    'Subject: ' || v_subject || utl_tcp.crlf ||
    'X-Priority: ' || Priority || utl_tcp.crlf ||
    'Content-Type: ' || MailFormat || utl_tcp.crlf
  );
  utl_smtp.write_data (v_mail_conn, v_bodytext);
  UTL_SMTP.close_data(v_mail_conn);
  UTL_SMTP.quit(v_mail_conn);

EXCEPTION
  WHEN UTL_SMTP.INVALID_OPERATION THEN
    dbms_output.put_line(' Invalid Operation in Mail attempt using UTL_SMTP.');
  WHEN UTL_SMTP.TRANSIENT_ERROR THEN
    dbms_output.put_line(' Temporary e-mail issue - try again'); 
  WHEN UTL_SMTP.PERMANENT_ERROR THEN
    dbms_output.put_line(' Permanent Error Encountered.'); 
  WHEN OTHERS THEN
    dbms_output.put_line(' Unknown Error Occured.'); 
END;

How do you use this code? See some sample usage.
-- Send a plain vanilla mail with just 5 parameters
EXEC RR_sendmail ('ranjeet.rain@gmail.com', 'ranjeet.rain@gmail.com', 'Subject', 
'Body text',  'Mail_host_name') 


-- Send a plain vanilla mail using a host running on Secure SMTP
EXEC RR_sendmail ('ranjeet.rain@gmail.com', 'ranjeet.rain@gmail.com', 'Subject', 
'Body text',  'smtp.gmail.com', 465) 


-- Send a text mail with a CC
EXEC RR_sendmail ('ranjeet.rain@gmail.com', 'ranjeet.rain@gmail.com', 'Subject', 
'Body text',  '130.1.3.1', 25, 'ranjeet.rain@gmail.com') 


-- Send a HTML mail with a CC
EXEC RR_sendmail ('ranjeet.rain@gmail.com', 'ranjeet.rain@gmail.com', 'Subject', 

'Hello World! from <a href="mailto:ranjeet.rain@gmail.com">Ranjeet</a>', 'Mail_host_name', 25, 'ranjeet.rain@gmail.com', 'text/html') -- Send a high priority HTML mail with a CC EXEC RR_sendmail ('ranjeet.rain@gmail.com', 'ranjeet.rain@gmail.com', 'Subject',
'Hello World! from <a href="mailto:ranjeet.rain@gmail.com">Ranjeet</a>', 'Mail_host_name', 25, 'ranjeet.rain@gmail.com', 'text/html', 1)
So, as can be seen, the procedure is rather versatile and capable of sending all kind of text-based mails, very useful for sending small notificationmails. Only thing this procdure does not handle is multimedia mails (mail with MIME content). May be in future, if I write anything like that I'll update the page. Till then, happy mailing!!!


Tuesday, August 01, 2006

Dedicated IT Governance blog

Some time ago I embarked upon my little stint with IT Governance Tool from Mercury Interactive. I'd like to tell you that this is an interesting tool and I am working with it full-time now. I add a thought or two dedicated to the tool here -> http://itgplus.blogspot.com/ Get onto the next channel if you are interested!

Friday, July 29, 2005

Learning to use RCS on Windows

Keywords: UNIX, RCS on Windows, Revision Control System, Tutorial

Yesterday, I was faced with the challenge of integrating RCS with Mercury Change Management. RCS is one of many available version control software on UNIX. As such Mercury ITG has out-of-the-box support for RCS. However, it is critical to understand the functioning of the actual software in order to integrate it with ITG. In order to understand the functioning of RCS, I searched the Net looking for tutorials. I found many, but none of them was specifically written keeping in mind Windows users. So, I decided to post what I did.

I had to post the article on my other site, as I originally created the document in MS Word and you know how difficult it is to get MS Word generated HTML to get accepted anywhere. Following the exact steps as given in the article, you can develop a good understanding of the product. The target of this article is to make you learn the basics of RCS on your own.

The article is available at: http://www13.brinkster.com/ranjeetrain/tutorials/

Mercury ITG architecture

Keywords: Mercury IT Governance Architecture, ITG, Kintana

Lately I have been working with Mercury IT Governance Center (formerly Kintana). This is not the kind of tools I have been working in past. Its a new experience. And I wanted to share with you tidbits about it. Mercury IT Governance Center, ITG Center hereafter, is an integrated suite of software tools for managing IT demands, prioritizing them and control project deliveries transparently. This is one of the unusual type of tools I have worked with so far, and has a bit of ERP feel. ITG Center comes preloaded with templates based on best practices, which can either be used as-it-is or can be customized to suit the need of a specific organization. Interesting thing about ITG center is that, many of its templates can be used with minimal customization.

Linked below is the top-level design of the tool, as published on the Mercury site.

Click to enlarge

ITG center is based on a modular design. Modules have been desgined to serve different purposes. Some of the ITG center modules are: IT Governance Dashboard, Demand Management, Project Management, Financial Management, Change Management etc. Licences can be purchased for individual modules depending on the requirement. A graphics containng the technical design of ITG Center is available at mercury site.

Click to enlarge

ITG center is based on a 3-tier architecture. The client/presentation tier has two kind of front-ends. One is a standard thin-client (a webbrowser) interface meant for end-users and the other is a Java applet called Workbench meant for developers (called configurators). Middle tier is an Application Server that combines a web server and the core ITG Center engine. Data storage is handled with an Oracle database server. This 3-tier architecture provides for unlimited flexibility in installation and configuration for scalability. ITG center has no internal databases and depends entirely on a Oracle database server. That means increased licensing cost but at the same time that also means increased dependability and availability. It can work with an external web server allowing for increased dependability and availability while at the same time opening possibilities of integration with other existing applications.

It is an interesting tool. I am likely to work with it for some time. You may expect to hear more on this from me. So, stay tuned folks!

Friday, May 27, 2005

BIOS password in Servers

Keywords: Administration tip These days I am involved into one of the most challenging projects of my career. It has been a tremendous learning experience. One very small but significant thing that I learnt today is - Don't attempt protecting the servers with a BIOS password. Well, this may sound strange as we always think adding a password to the BIOS adds one more level of security. Well not really. Any person who can gain physical access to the server can get rid of that password. Besides, adding the password to the BIOS means, you cannot boot the system remotely. Now this is a big setback. Rather you would like everyone to work on the server remotely and no one to have physical access to it. There would be a lot of people who will think otherwise. Logic would be - No physical access, no software access. Well, that can work in smaller organizations with a few servers and one or two administrators. But in case of large organizations and dozens of admins, that approach is not practical. The bottomline is: If you want your servers to be accessed remotely, don't add a password to the BIOS.

Wednesday, May 25, 2005

Fighting SPAM: Bayesian Filtering

SPAM has been the biggest nuisance for the Internet community off late. An estimated 74 percent of email being trasfrred over Internet in the year 2004 was identified as junk. Governments and organizations around the globe have been busy estimating the losses incurred due to SPAM and figuring ways to counter it. On the technology front, researchers and software companies have been finding ways to identify and isolate/eliminate SPAM. Over a period of time this has been a never ending tussle between the SPAMmers and the antispam software developers. Firstly it were simple software that filtered out mails based on a word-list. The administrator would prepare a list of words that will cause an email to be considered SPAM. This worked for sometime, but not long. Spammers soon found ways to dodge these filters. They would write v1agra instead of viagra and p3n1s instead of penis to get past the filter. Clearly, the techniqe couldn't be very successful due to the reason that word-list filters are easy to dodge and a too restrictive word-filter causes false positives, resulting in a loss of legitimate mails. Another techology that has been vastly in use is based on authentication method. Such a software works on a simple challenge-response method. The sender is responded back with a message asking him/her to reply back to a mail. Whereas this method literally gurantees to protect from SPAM, it is not feasible to use it beyond a limit, practically eliminating this as an infeasible solution. There have been other methods to identify SPAM and most of them work on some kind of "Whitelist" or "Blacklist". All such methods require continuous refinement in the list and are not very accurate. Recently, more and more email products are adopting a technology called Bayesian Filtering to fight SPAM. This technolgy is based on the works by Paul Graham [http://www.paulgraham.com/]. During the summer of 2002, he stumbled upon the idea of using Bayes Theorm (the work of 18th century English mathemetician Thomas Bayes www.fsu.edu/~geog/elsner/bayesian/post/Bellhouse2003.pdf) to eliminate SPAM. Rest, as they say, is history. Bayesian filters as being incorporated in more and more email products because of its accuracy. The thing that sets Bayesian filters apart from the rest is, its ability to learn by itself. According to Paul Graham, a "well taught" Bayesian filter can be as accurate as 99.5 percent, without any false positives. Some of the email products that are using Bayesian Filtering todate:
  • Thunderbird
  • Mozzila
  • GFI MailEssentials
  • TrustedMail
  • SpamBully
  • SpamAssassin
  • SPAM Shredder
  • PlexMailer
  • Safe Express
Some intereting links:

Tuesday, May 24, 2005

Shape of things to come

Keywords: Technology, Techonology for fun Wonder how powerful computers (software in particular) are becoming? How long before they will start ruling us literally? See this: http://s94009834.onlinehome.us/xyz/move.html Its just the beginning friends. May be sometime soon they will begin to move our monitor physically with JavaScript code activated from within a Flash movie. Be ready for to find your monitor next to you when you wake up in the morning despite you remember correctly you left it at the dressing table last night. Is it too crazy to be true?

Wednesday, April 06, 2005

Web color palette

Keywords: Internet standards, Web development, Quick reference, Web reference, Web color palette, Color code
 
Web development has been evolving on a daily basis. One of the primary requirements of a web developer is to use colors that render uniformly across browsers and operating platforms. Netscape designed its web safe color palette of 216 colors very wisely. They set to display each color in six possible intensities of the three primary colors, 0%, 20%, 40%, 60%, 80% and 100%. It may be hard to understand this way but its a really clever way of understanding the selection of colors. For your ease of use, today I bring the links of color palette resources for Netscape browser.

Netscape Color map    http://help.netscape.com/kb/consumer/19960513-14.html
Netscape Color Palette Map    http://the-light.com/colclick.html
Victor Engel's No Dither Netscape Color Palette Image Explanation    http://the-light.com/netexp.html
RGB color values (with color names)    http://www.htmlhelp.com/cgi-bin/color.cgi

Hope you enjoy the tools!


Announcement

Today I was going through what I had posted earlier, and at places it felt like, I started blogging without providing a background. More so because this blog is on general software development issues. To make the content more context-friendly and to help search engines index these pages wisely, now onwards I will be adding categories to my posts. Hopefully, that will add some more value to the content for future visitors.

Monday, April 04, 2005

Teamstudio Script Browser

Its a Monday morning and I have just received a good news. There couldn't have been a better thing to do than share it with you.

Last week I received an email from a colleague of mine who wanted help with a script that will give him a dump of all the fields in a form and related information such as its data type, default value and associated code etc. Last couple of days I had been busy trying to achieve the same. This morning has brought a relief when my boss forwarded me an email that he received from Stephanie Heit, Sales Manager, Teamstudio Europe.

The email was about a product they call Teamstudio Script Browser that TeamStudio calls a LotusScript Code Navigator. From the product page at teamstudio.com - "Teamstudio Script Browser is a tool to help you use and navigate the LotusScript code stored within an IBM Lotus Notes database in a way that has never before been possible."

Its a promising product. I still have to review it. I will give the report of the product later. For the time being check it out for yourself from this page.

Wednesday, March 30, 2005

Google, Blogging and future of Open Source

On March 17th Google launched Google Blog, the future of open source. The open source team at Google intends to publish links to all current Google APIs. Looks like Google is all set to topple the way software developers worldwide look for that code of snippet they are in the need of so badly. Welcome to the future of Open Source. Google's R&D center at Bangalore is fresh with new energy. On March 27, Google hired 50 highly competetive engineers who were tried for "creatively, design expertly, and code correctly and efficiently". This is a major shift in the way Google has so far been forming its core developement team. From the sound of it, India has started to get a larger share of the hottest selling cake in the world. Cheers for the young talent that is making the way.

Will code for Rupee

Thursday, March 24, 2005

3 Dimensional Display Devices

One night while I was unable to sleep, possibly after having watched a movie, this idea came to my mind.
 
How real is the concept of a 3-D display device? We have seen it in comic strips and in movies in some form or the other. I was just wondering as to was it possible at all? And how, if so?
 
Today I decided to search on the Net to catch up with the developments on this front, if any. One of the pages that came very close was this. It is not quite like what I'd like to see, but the page title touched the subject. Frankly, I didn't dare to read all of it, but after having gone thru it a few sentences, I realized what I was missing.
 
The concept of 3-D display devices is not much useful without the concept of 3-D input devices. We must be able to tell what we wanna see or what we wanna do. Even if just want to see, we should be able to create the contents. Hmmm... that's my limit. I am no phycist. With my limited knowledge of matters from what I learnt in school days, I thought It was possible to create a cylindrical display device, which if you sit inside it and turn around sitting on a revolving chair, you should be able to see different parts of an object as it would look if you really turned around.
 
Then came into my mind, the idea of plotting pixels on this device (learnt how they draw on a two dimensional display device in my Computer Graphics classes). Should that be really that difficult? Don't think so. Just that they have to develop a new kind of cartesian system for this. The current cartesian system isn't meant for 3-D devices. Or could be, there something already is there in 3-D geometry I don't know of?
 
But it is still not that simple. How do you know upto what part of this cylindrical screen at a time a human eye would be able to see. And what happens when the person turns around? For a simple position change, of say .1 radian, in the viewer's position, the co-ordinates of the same physical pixel would have been changed. Now the viewer would expect to see something else on the same pixel where he could see something else a while ago.
 
Again with my limited knowledge of matters found on earth, I thought it was possible. Afterall, havent we ever seen a Hologram? A hologram does nearly the same, if not exactly. It display different images depending on the angle from which you look at it. Wow! That's the problem solved? Do I have my 3-D display device ready for production? Not really! A hologram typically displays not more than a few images. But, there is the potential. Isn't is all about the evolution? Can't we develop a better matter that can work like a much improved hologram, or a reflector, in this context? And the answer is - It should be possible.
 
So, the idea of a 3-D display device really seems possible. Of course, initially when these matters are not very fine and can display only upto 10 images from different angles, we can call them low-resolution 3-D display reflector. Say such a reflector can display upto 10 diffrent images and has a display angle of 150 degrees. So that be the factor that will decide the resolution of my dream 3-D display device.
 
Ah, wish I studied more of Physics, Mathmetics and Chemistry!
 
 

Of NN, FF and IE

Ever since Tim Berners Lee invented World Wide Web, the lucrative market of web browsers has been a top priority task for software giants. Surprisingly, one of the most frequently used software for an average computer user, a web browser has always been available for free. Regardless of whies of that, it is clear that capturing the web browser market has been a matter of big efforts. In the early days of net surfing, Mozilla was the name. Then came Netscape technologies with Navigator. Netscape had much success with Netscape Navigator Gold. Many people would swear the cool golden anchor was a hot piece of software then. Netscape ruled. IE started taking over when fifth generation browsers came and by the time IE 6 was out, it had already overtaken NN 6. The scene is changing again. Mozilla FireFox is the latest craze (Current version 1.0.2 is available for download from here). A tiny sleek browser, which doesn't look a single bit less on feature or performance. Microsoft is gearing for a summer 2005 release of IE 7 Beta whereas Netscape has already taken the lead with Netscape 7.2 (download it from here). Which way the browser war will lead to will be known only when IE 7 is out. Till then... Happy FireFoxing....

Googling

Google has changed the way we work. Probably, it has been the largest influence on the Internet since Hotmail and Amazon. Personally, I find it easier to look for information I need from google than the local copy stored on my PC, and most often this is the faster approach. But finding information fast on the Internet than on local PC is possible probably because I feel searching rather easy. And I have made my job easier by adding a search form on my home page, which is a local page. Here I would like to share a few basic things about searching with Google.
  • When you are in real hurry, you can save a few seconds by typing your query directly in the address bar. Prepend "www.google.com/search?q=" to your query text. It will fetch the results directly. This, of course, uses all the defaults. If you want language selection and content filtering etc, better use the full syntax generated by the site.
  • Use keywords rather than complete phrases. e.g. Festivals India is likely to fetch more precise results than "Indian festivals"
  • Use exact error message if you are looking for its description and put it under double quote. e.g. "Router:Failed to connect to SMTP host". This is more likely to bring up relevent pages than queries based on keywords such as Router Error SMTP failure
  • Google by default does an AND on the tokens in the query text, i.e. it will try to find pages with all the tokens in the query text. If you want to change that, use specific boolean operators.
  • While submitting a complete phrase or sentence for search, google omits commonly used words. Use a plus symbol (+) to include them in the search.
  • Sometimes you remember having seen a page on a particular site with specific information that you need now. Instead of visiting the site and going thru all the pages one by one, use google to do the job. Prepend your query text with "site:www.siteaddress.com". That syntax causes google to search for the query text only in the pages cached from that site. If Google has cached pages from that site, it will be hundreds times faster and precise than finding the information by manually searching that site yourself.
  • You may use Google as a thesaurus. When uncertain about what a word might mean, you may ask Google to define terms/phrases for you. Use this URL: www.google.com/search?q=define:Your_Search_Term
Google is much more than just a search engine. Watch out this space. I will be bringing more of Google to you.

Wednesday, March 23, 2005

Hello World!

Hello World! That's how Dennis Ritchie greeted the entire world way back in 1970. Entire software developer fraternity has used this to greet and start anything and everything they do. I am starting this blog keeping in mind a variety of subjects. I would love to focus on techincal topics, subjects related to IT, but may just wander around once in a while. Of course your comments would help me shape it better, in the times to come. Nice friends are nice to have. The idea of this blog came from a friend. I must thank him. Here is my gratitutory thank you, a link to his blog: http://dominocorner.blogspot.com I also owe a lot to my fellow experts and friends at Experts Exchange (http://www.experts-exchange.com/), who have been my source of inspiration for some time now. I have learnt a lot from them, apart from having a good time with them. So here we start the journey. May the forces be with us. Amen!