A resource for IT professionals. Technical articles, source code, tips & tricks, demo applications, useful links and similar tidbits.
Friday, July 01, 2011
Why HP needs to focus more on software
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
Thursday, August 31, 2006
Send mail from PL/SQL code
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
Friday, July 29, 2005
Learning to use RCS on Windows
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
Linked below is the top-level design of the tool, as published on the Mercury site.
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.
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
- Thunderbird
- Mozzila
- GFI MailEssentials
- TrustedMail
- SpamBully
- SpamAssassin
- SPAM Shredder
- PlexMailer
- Safe Express
- www.paulgraham.com/spam.html
- www.prismemail.com/bayesianfilter.php
- www.process.com/precisemail/bayesian_filtering.htm
- e-com.ic.gc.ca/epic/internet/inecic-ceac.nsf/en/h_gv00170e.html
- http://e-com.ic.gc.ca/epic/internet/inecic-ceac.nsf/en/h_gv00317e.html
- www.sims.berkeley.edu/research/projects/how-much-info-2003/internet.htm
- e-com.ic.gc.ca/epic/internet/inecic-ceac.nsf/vwapj/stopping_spam_May2005.pdf
- www.fsu.edu/~geog/elsner/bayesian/post/Bellhouse2003.pdf
- www.york.ac.uk/depts/maths/histstat/bayesbiog.pdf
Tuesday, May 24, 2005
Shape of things to come
Wednesday, April 06, 2005
Web color palette
Netscape Color map http://help.netscape.com/kb/consumer/19960513-14.html
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
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
Thursday, March 24, 2005
3 Dimensional Display Devices
Of NN, FF and IE
Googling
- 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