Thursday, December 4, 2008

The People of the Elephant....

Asslamu Alaikum,

This is for people who are interested in exploring the verses of the Holy Quraan. I recently was doing a study on ancient histories, particularly related to Islam. And for the story of Abraha mentioned in the Quran who invaded Makkah to destroy the holy Kaaba, i was particularly interested in knowing the background of who Abraha was. I came across this interesting research done by this brother on his blog. It's just an opening to free thinking not a conclusion as he says, so please feel free to read it at the following link. And the reference links which the brother has provided at the end of the article don't work by a click, but have to copy paste in a browser:
http://pressthat.wordpress.com/2007/06/17/people-of-the-elephant-but-who/#comment-2792

Saturday, November 29, 2008

Article sent by Mafaz

The following article from the eWeek.com website has been referred to you by Mafaz ( sm2mafaz@gmail.com ).

You can access it at the following url: http://www.eweek.com/c/a/Application-Development/Microsoft-Ships-Robotics-Developer-Studio-2008/

ஓர் ஓசையற்ற பயணம்!

ஓர் ஓசையற்ற பயணம்!

எழுதியவர்/உரை:மௌலவி லாஃபிர் மதனி (அபூ அரீஜ்)

 

பிஸ்மில்லாஹிர் ரஹ்மானிர் ரஹீம்

ஓர் ஓசையற்ற பயணம்!

காலம்: அனைத்து கிழமை நாட்களிலும்

பயணி பற்றிய விபரம்: -

தகுதியானோர் : ஆதமின் மகன்!

மூல உற்பத்தி : களிமண்!

விலாசம் : பூமியின் மேற்பகுதி!

பயணச் சீட்டு பற்றிய விபரம்: -

பயண வழி : ஒன்வே ஒன்லி (ஒற்றைப் பயணம் மட்டும், திரும்பும் சீட்டு கிடையாது)!

விலை : முற்றாக இலவசம்!

முற்பதிவு : ஏற்கனவே செய்யப்பட்டு விட்டது!

பொதி(சுமை) பற்றிய விபரம்: -

ஒவ்வொரு விமானத்திலும் ஒரு பயணி மட்டுமே அனுமதி!

கூடுதலாக 5 மீட்டர் வெள்ளைத் துணியும் சிறிய அளவு காட்டனும் எடுத்துக் கொள்ளலாம்!

பெறுமதி வாய்ந்த பொதி பற்றிய விபரம்: -

மனத்தூய்மையுடன் நிறைவேற்றப்பட்ட தொழுகை, நோன்பு, ஸகாத், ஹஜ், தர்மங்கள்,

சத்தியத்திற்காக செய்த தியாகங்கள்,

குழந்தைகளை நல்லவர்களாக ஆக்க எடுத்துக் கொண்ட உண்மையான கரிசணைகள் மற்றும்

இது போன்ற நற்காரியங்கள் மட்டும்.

பயணம் பற்றிய விபரம்: -

பயணத்தளம் : பூமியின் எந்தப் பகுதியுமாக இருக்கலாம்.

பயணிக்கும் நேரம் : மரணத்தைத் தொடர்ந்து!

இறங்கும் இடம் : மறு உலகம்.

குறிப்பு: பயணச் சீட்டு, கடவுச் சீட்டு, பிரயாண ஆவணங்கள் போன்ற எதுவும் தேவையில்லை. தயாராக மட்டும் இருந்து கொண்டால் போதுமானது!

தங்குமிட வசதி: -

தற்காலிகமாக மட்டும் ஏற்பாடு செய்யப்படும்!!

அறையின் அளவு : கிட்டத்தட்ட 2 அடி அகளமும் 6 அடி நீளமுமாகும்!

அறையின் சிறப்பம்சம் : வெரும் புழுதி மணலினாலும் சிறிய கற்களினாலும் அமைக்கப்பட்டிருக்கும் என்பது குறிப்பிடத்தக்கது!

தங்குமிட வசதி பற்றிய விபரம் : பணக்காரனாக இருந்தாலும் ஏழையாக இருந்தாலும் ஒரே வகையான வசதி மட்டும்தான் ஏற்பாடு செய்யப்படும் என்பதை தயவு செய்து கவணத்திற் கொள்க!

கீழ்காணும் செளகரியங்கள் காணப்படும் :
 

குளிரூட்டி (ஏ.சி) : 0 டொன் !!!

நீர் விநியோகம் : கிடையாது !!!

மின் விநியோகம் : கிடையாது !!!

தொலை பேசி : கிடையாது !!!

டீ.வி மற்றும் சேனல்கள் : சுவனம் அல்லது நரகம் !!!

பத்திரிக்கைகள் அல்லது புத்தகஙகள் : கிடையாது !!!

ரூம் சர்விஸ் : அல்லாஹ்வுக்கு எந்தளவு கட்டுப்பட்டு நடந்தோம் என்பதைப் பொருத்து அமையும்!

முக்கிய கவணத்திற்கு : -

அனைத்து பயணிகளும் மேற் கூறப்பட்ட விடயங்கள் அனைத்தையும் தயவு செய்து கவணத்திற் கொள்ளுமாறு கேட்டுக் கொள்ளப்படுகின்றனர்!

பயணச் சீட்டு ரத்துச் செய்யப்படுவதோ அல்லது பிறருக்கு மாற்றுவதோ முற்று முழுதாக தடை செய்யப்பட்டுள்ளது!

எனவே, தயவு செய்து அனைவரும் (விதிவிலக்கு கிடையவே கிடையாது) பயணத்திற்கு தயாராக இருந்து கொள்ளும் படி கேட்டுக் கொள்கின்றோம்.

மலக்குல் மெளத் எனப்படும் உயிரைக் கைப்பற்றும் வானவர் வந்தவுடன் பயணம் ஆரம்பமாகும் என்பதையும் அறியத்தருகின்றோம்!

மேலதிக தகவல்களுக்கு: -

உங்களுக்கு வழங்கப்பட்டிருக்கும் அல்-குர்ஆன் மற்றும் ஸுன்னாவை படிக்கவும்.

திருமணம்


இஸ்லாமிய மார்க்கத்தில் திருமணம் என்பது ஒரு ஆணுக்கும், பெண்ணுக்கும் ஏற்படும் வாழ்க்கை ஒப்பந்தமாகும். மாற்று மதத்தில் கல்யாணம் சொர்க்கத்தில் நிச்சயிக்கப்படுகிறது என்று கூறுவது இஸ்லாத்தில் இல்லை. திருமணம் புரியவுள்ள ஆணும் பெண்ணும் ஒரு ஒப்பந்தத்தின் அடிப்படையில் இருவரும் தங்களது பரிபூரண சம்மதத்தை தெரிவிக்க வேண்டியது மிக அவசியமாக வலியுறுத்தப்பட்ட விஷயமாகும்.

     முன்பே மணமுடிக்கப்பட்டு கணவனை இழந்துவிட்ட விதவையும், அல்லது முந்திய கணவனால் விவாக முறிவு (தலாக்) கொடுக்கப்பட்ட பெண்ணும் தனக்காக இத்தா காலம் முடிந்ததும் மறுமணம் முடிக்க விரும்பினால் அப்பெண்ணின் முழு சம்மதத்தையும் பெற்றே மண முடித்து வைக்கவேண்டும். இப்பெண்களை அயிம்மா என்றோ தய்யிபா என்றோ அழைப்பர்.

    கண்ணிப்பெண்ணாக இருப்பாளேயானால் அவள் தனது சம்மதத்தை மெளனம் மூலம் தெரிவிக்கலாம். அவளுக்கு விருப்பமில்லையெனில் கட்டாயம் சொல் மூலம் தெரிவிக்க வேண்டும். அவள் எந்த பதிலும் தராமல் மெளனம் சாதித்தால் அது சம்மதம் என்ற பொருளைத் தரும். இப்பெண்களை 'பாகிரா' என்று அழைப்பர்.

    'அயிம்மா' பெண்களுக்கு அவர்களது சம்தமின்றி திருமணம் செய்து வைக்காதீர்கள். கன்னிப் பெண்களிடம் திருமணம் விஷயமாக அனுமதி பெற வேண்டும் என்று நபி(ஸல்) கூறினார்கள். அல்லாஹ்வின் தூதரே! ஒரு கன்னிப்பெண் (நாணாத்தால்) தெளிவாகச் சொல்ல வெட்கப்படுவாளே! என்று சிலர் கேட்டனர். அதற்கு நபி(ஸல்) அவளது மெளனம் சம்மதமாகும் என்றார்கள். அறிவிப்பாளர்: ஆயிஷா, அப்பாஸ், அபூஹுரைரா(ரழி- அன்கும்) நூல்:புகாரி முஸ்லிம் அபூதாவூத், நஸயீ,திர்மிதி, இப்னுமாஜ்ஜா

    இந்த நபிமொழி மூலம் ஏற்கனவே திருமணம் செய்த பெண்கள் தங்களது அடுத்த திருமணத்துக்கு தெளிவான சம்மதம் தெரிவிக்க வேண்டுமென்பதை அறியலாம். கன்னிப்பெண்கள் தங்களது சம்மதத்தை மெளனம் மூலம் தெரிவிக்கலாம். சம்மதம் இல்லையெனில் நிச்சயமாக வாய்விட்டு சொல்லியே ஆக வேண்டுமென்பதை உணரலாம். இவ்விதமாக மணப்பெண்ணின் சம்மதம் பெறாமல் நடத்தி வைக்கப்படும் திருமணம் இஸ்லாத்தில் செல்லத்தக்கதல்ல. அது முறிக்கப்படும்.

    கன்சா(ரழி) என்ற அம்மையார் அறிவிக்கிறார்கள்; எனது தந்தை கிதாம்(ரழி) அவர்கள் எனக்கு பிடிக்காத இடத்தில் மணமுடித்துக் கொடுத்தார். நான் நபி(ஸல்) அவர்களிடம் வந்து இதனைக் கூறியபோது அந்த திருமணத்தை நபி(ஸல்) அவர்கள் ரத்து செய்தார்கள். இதே நிகழ்ச்சியை இப்னு அப்பாஸ்(ரழி) அவர்களும் அறிவிக்கிறார்கள். (முஅத்தாமாலிகி, புகாரி, அபூதாவூத், நஸயீ, இப்னுமாஜ்ஜா, பைஹகீ)

    இவ்விதம் தனது தந்தையின் வற்புறுத்தலில் நடத்தப்பட்ட திருமணத்தை நபி(ஸல்) அவர்கள் மூலமாக ரத்து செய்யப்படவே கன்சா(ரழி) அவர்கள் அபூலுபாபா(ரழி) அவர்களை மணமுடித்துக் கொண்டார்கள் என்ற விபரம் அப்துர்ரஹ்மான் பின் யஜீத்(ரழி) அறிவிக்க இப்னுமாஜ்ஜா என்ற நூலில் பதிவு செய்யப்பட்டுள்ளது.

    இதே போல் ஒரு கன்னிப்பெண் சம்மதமின்றி அவளது தந்தையால் நடத்தி வைக்கப்பட்ட திருமணத்தை நபி(ஸல்) அவர்கள் ரத்து செய்ததாக அபூதாவூதில் இப்னு அப்பாஸ்(ரழி) கூற பதிவு செய்யப்பட்டுள்ளது.

    எனவே எந்த முஸ்லிம் பெண்ணையும் அவளது முழு சம்மதமின்றி திருமணம் செய்து வைக்க இஸ்லாத்தில் இடமில்லை. அப்பெண்ணைப் பெற்றெடுத்த தந்தைக்கும் அனுமதியில்லை என்பதை தெளிவாக உணர்ந்து பெற்றோர்கள் நடந்து கொள்வது அவசியமாகும்.

    மணமகளுக்குரிய தகுதிகள்

    நீ நல்லொழுக்கமுள்ளவளை மணம் புரிவதன் மூலம் வெற்றியடைந்துகொள்! என நபி(ஸல்) அவர்கள் அறிவுரை பகன்றார்கள். (அறிவிப்பவர்: அபூஹுரைரா(ரழி) நூல்: புகாரி, முஸ்லிம், அபூதாவூத்)

    பெண்களை அவர்களின் அழகுக்காக மணமுடிக்காதீர்கள்; அவர்களின் அழகு அவர்களை அழித்துவிடலாம்; அவர்களின் செல்வத்திற்காக மணமுடிக்காதீர்கள்; அவர்களின் செல்வம் அவர்களை தவறச் செய்திடலாம்; நல்லொழுக்கத்திற்காக அவர்களை மணமுடியுங்கள்; நல்லொழுக்கமுள்ள அழகற்ற கருநிறத்து அடிமைப்பெண் (தீய ஒழுக்கமுள்ள பெண்ணைவிட) மேலானவள் என நபி(ஸல்) அவர்கள் விளக்கினார்கள். (அறிவிப்பு: இப்னு அம்ர்(ரழி) நூல்: இப்னு ஹிப்பான், அஹ்மத்)

    மணமகனுக்குரிய தகுதிகள்

    எவருக்கு திருமண வயது வந்து விட்டதோ அவர் திருமணம் செய்து கொள்ளட்டும். அது அவரது கண்களையும், வெட்கஸ்தலங்களையும் பாதுகாக்கும் அரணாக அமைகிறது. எவருக்கு திருமணம் செய்ய வசதிபடவில்லையோ அவர் நோன்பு வைத்துக்கொள்ளட்டும். (அறிவிப்பு: இப்னு மஸ்வூத்(ரழி) நூல்: புகாரி, முஸ்லிம், நஸயீ, தாரமி, பைஹகீ, அஹ்மத்)

    இந்நபிமொழி ஆண்களுக்கு கூறப்பட்டதாகும். மணமகன் பெண்ணுக்காக மஹர், திருமண செலவு, வலீமா விருந்து என பல செலவு செய்யவேண்டியவனாகிறான். அது மட்டுமின்றி திருமணம் முடிந்த நேரம் முதல் தனது மனைவிக்காக உணவு, உடை, இருப்பிடத்திற்கான செலவுகள் செய்ய வேண்டிய கட்டாயத்தில் இருக்கிறான். எனவேதான் மணமுடிக்கும் மணப்பெண்ணுக்கு தனது உடல் ரீதியான சுகத்தையும், பொருளாதார ரீதியான சுமையையும் சுமக்க தகுதியுடையவன் தனது திருமண வயது வந்ததும் திருமணம் செய்து கொள்ளலாம்; அதற்கான வசதியில்லாதபோது நோன்பு வைத்து தனது இச்சையை அடக்கவும் நபி(ஸல்) அவர்கள் அறிவுரை பகர்ந்தார்கள்.

    எங்கள் மனைவிக்கு நாங்கள் ஆற்றவேண்டிய கடமைகள் யாவை? என நபி(ஸல்) அவர்களிடம் கேட்டபோது 'நீ உன்ணும்போது அவளுக்கும் உணவளிக்க வேண்டும்; நீ ஆடை அணியும்போது அவளுக்கு ஆடை அணிவித்தல் வேண்டும்; அவளது முகத்தில் அடித்தலாது' என நபி(ஸல்) அறிவுறுத்தினார்கள். (அறிவிப்பவர்: முஆவியா பின் ஹைதா(ரழி) நூல்: அபூதாவூத்)

    எனவேதான் ஒருவேளை செல்வ செழிப்புள்ள மனமகள் ஒருவருக்கு மனைவியாக அமைந்தாலும் அவளது சொத்து பங்கில் அவளது உரிமையின்றி கணவன் கைவைக்க அனுமதியில்லை என இஸ்லாம் கூறுகிறது. மண முடிக்க நாடும் மணமகன் தான் மணக்கும் பெண்ணை உடல் ரீதியாகவும், பொருளாதார ரீதியாகவும் பாதுகாக்கும் தகுதியை பெற்றிருப்பது அடிப்படை தகுதியாகும்.

 




Thursday, November 27, 2008

How to create an array of functions in C#?

This was a question tapping my head recently. Also I was wondering how could we achieve creating pointer of functions in C#. Well that lead me to a small experiment on it and figured out some interesting results as expected.  The answer was possible through C# delegates.
First of all we need to understand what C# delegates are. Well to put it simple as I searched the net for a simple explanation, and found a quite simple explanation on CodeProject: "Delegates are simply function pointers". Well to make it more clear, with delegates you can create links to various functions. Ofcourse the description given in the above CodeProject link is fairly enough to understand the use of it. 
To put it simple, you can define a common method definition for various functions that have a similar pattern of method definition. Ex: If you have functions to add, subtract, multiply and divide two numbers, the most popular way is to have a method definition with the unique name and two parameters. The pattern would be:
 
[public|private] int <methodname> (int x, int y)

During system design if you know this pattern in advance then you could define this pattern withe use of a delegate like this:

delegate int delWithTwoParameters(int x,int y);

Here the delWithTwoParameters is the delegate identifier. During run time we can dynamically bind the methods to this delegate and call the appropriate function. Basically all methods will be called from a single (delegate)source. But there are many more like type safety, secure bla bla...But that is not my consideration here... :) Sorry.
Here is a piece of code I did today, which explains the use of delegates and how to create an array of functions based on a single delegate which is the problem of this discussion...Here I have explained the usage of how to use a normal function and a static function with the same delegate:

using System;
using System.Text;
using System.Reflection;

namespace TestConsole
{
    //Everything is under this class
    class Program
    {
        //A normal Method
        public void callHelp(string name)
        {
            Console.WriteLine("{0}...! Please help me\n", name);
        }
        
        //A Static void method
        public static void DisplayGreeting(string name)
        {
            Console.WriteLine("Hey {0}, please come here...!",name);
        }

   //Declaration of the pointer to a function with string as it's parameter
        delegate void delWithStringPar(string var);
        
        static void Main(string[] args)
        {   //Creating an Object instance of Program class to be able to call the normal "callHelp" method
            Program prog = new Program();
            
            //The list of names
            string [] Names = {"Mafaz","Lahiru","Chatura"};
            //Creating the Delegate (function) array from the System 
   //namespace and setting the value to the maximum number of Instances
            
            //Array for the static DisplayGreeting function
            Delegate[] delGreet = new Delegate[Names.Length];
            
            //Array for the normal callHelp function
            Delegate[] delHelp = new Delegate[Names.Length];
            
            //A counter to iterate through elements
            int i = 0;
                foreach (string name in Names)
        
    delGreet[i]= new delWithStringPar(Program.DisplayGreeting);
              delHelp[i]= new delWithStringPar(prog.callHelp);

          //cast the delegate arrays to the preferred Delegate
                    ((delWithStringPar)delGreet[i])(name);
                    ((delWithStringPar)delHelp[i++])(name);

              //Note: The "i" is incremented by one to advance
     //to the next index.Even if you don't increment the
     //consecutive delegate instance replaces the previous.
                }          

            //Waiting for user input to exit screen
            Console.ReadLine();
        }
    }
}

Wednesday, November 26, 2008

Five Strategies Microsoft Got Right


Original Post can be found here.

Written by DOM Staff
Friday, 21 November 2008

What Microsoft Got Right: The First 30 Years

Microsoft is one of the most successful companies in modern history. It revolutionized the way companies use IT to do business and helped elevate the importance of IT in terms of corporate strategy.

Since its inception 33 years ago, Microsoft has made many mistakes both large and small. But it also got a few big things very, very right. As the post-Gates era takes shape, we look back on five things Microsoft got right and what they teach us.

Software Is King

Microsoft was among the first companies to see software as the business, not just an add-on sale to hardware. It acted on that insight in a big way.

Before the PC, all software tended to be custom, written for and tied to a specific hardware platform. For example, IBM software ran only on IBM machines and Hewlett-Packard (HP) software on HP machines. Bill Gates and Microsoft untethered software from hardware, instead creating software that could run on almost any brand of PC. This simple idea dramatically expanded the market for Microsoft software, enabling it to drive prices down by spreading development cost across millions of potential customers (compared to only thousands for traditional hardware-specific programs). It was a risky idea because it put Microsoft at odds with hardware giants like IBM. But Microsoft bet big and won, helping spark a Big Bang of inexpensive, prepackaged, off-the-shelf software and the modern software industry.

Lesson: Question the rules. Change the game.

Outsource Your Sales Force

How did Microsoft grow so big so fast? In large part it was the company’s partner strategy. Today, more than 90% of Microsoft products are sold by somebody else. OEM partners such as HP sell most copies of Windows and large reseller partners such as CompuCom sell most copies of Microsoft’s enterprise software, including Exchange, SQL Server, and SharePoint. In fact, you’d have a difficult time trying to call Microsoft to order a product directly.

Bill Gates knew that a direct sales force could never scale quickly enough to match his ambitions. Instead, he built an army of partner companies and gave them the right to sell Microsoft software. Because Microsoft didn’t field its own direct sales force, these partners came to trust that Microsoft wouldn’t encroach upon their businesses and steal away their best customers. This partner community, from small mom-and-pop computer shops to the world’s largest systems integrators, enabled the company to achieve unprecedented sales volumes with astounding speed without having to spend huge sums to build a direct sales force and consulting practice.

Lesson: Create win-win partner situations to grow fast.

Technology for the Masses

Microsoft has consistently figured out how to make powerful technologies once exclusive to big business—business intelligence, intranets, systems management—accessible to smaller IT shops at a fraction of the cost. In the process, Microsoft has created and captured new customers en masse.

Microsoft’s formula? Build support for its server technologies into the Windows operating system and market low-cost server applications that leverage that support. In many ways, Microsoft is the Home Depot of IT software: it offers sophisticated server technologies IT departments can customize and deploy themselves at a price point that’s hard to resist.

Lesson: Don’t neglect your customers’ most important need: a better price.

Developers, Developers, Developers!

More than any other software company, Microsoft courts developers, lavishing them with powerful tools, free training, and low-cost support. Visual Basic enabled a whole generation of developers to create custom line-of-business applications on top of Office. Now Visual Studio is the tool of choice for serious corporate developers. Microsoft has been rewarded for this generosity by a torrent of third-party applications and custom solutions that have made Windows indispensable on the corporate desktop. Robust developer support for products such as the Office suite and SQL Server has also helped Microsoft products to flourish where competitors once had the field to themselves.

Lesson: Make it easy for partners to customize your product.

The Long View

Microsoft has always taken the long view. It routinely invests billions of dollars in expansive ventures such as Xbox, MSN, and Dynamics with an eye to far-off opportunities and threats. Once engaged, it very rarely retreats. The company will sustain breathtaking losses to gain a foothold in a market (think of Xbox) and endure hits to its image to change a business model that isn’t working (think of MSN). Microsoft continually looks inward and studies how it can improve itself. But despite some long false starts and outright failures (LAN Manager, Windows Mobile, and WebTV), Microsoft has assembled the industry’s largest portfolio of enterprise and consumer software—the least of which generates revenue in the hundreds of millions of dollars.

Lesson: Business isn’t a sprint; it’s a marathon. Be persistent.

Wednesday, November 19, 2008

Accessing a PDF Printer Driver from a Bluetooth enabled device.

I have mounts of messages that i can't forget saved in my mobile phone. Luckily it has a software where I can print it to printer which has bluetooth facility. But the problem in my case is, I don't have such a printer and also I'm quite sure even if I access such a printer, it would consume a lot of pages (i have 700+ messages :P) for each message.
So i began to search if there are tools to be able to print it directly toa PDF printer driver. Unfortunately the Bluetooth software I have doesn't support it. I even tried to map the PDF Printer driver interface to the Port of the Bluetooh device through that tool, it didn't work. So this lead me to the idea of creating a custom bluetooth interface to access the PDF driver from my phone.
I'm currently working on it, and doing it on C#. Hope I succeed..

Thursday, October 16, 2008

Handling of Hijri Calendar in Microsoft Products

It was interesting to me to see how Microsoft was handling Hijri dates, as we know that Muslims follow the lunar calendar. They are using an algorithm called "Kuwaiti Algorithm", which they haven't exposed it to the public. But this alogorithm has been developed after extensive analysis.

It is also interesting to see that they have a special flag to convert gregorian dates to Hijri, and vice versa in SQL Server 2000, SQL Server 2005 and SQL Server 2008 as well.

There are two CONVERT styles that are available in SQL Server 2000 to support Hijri dates:

130 - Returns the date via the Hijri calendar, in dd mon yyyy hh:mi:ss:mmmAM format.

131 - Returns the date via the Hijri calendar, in dd/mm/yy hh:mi:ss:mmmAM format.

For example, to convert a date to Hijri format in Transact-SQL, you would use syntax such as the following:

SELECT CONVERT(nchar, GETDATE(), 131) 

This query will return a string such as the following in its result set:

7/05/1421 12:14:35:727PM 

The reverse operation is also possible. The following syntax would be used to go in the opposite direction:

SELECT CONVERT(datetime, ' 7/05/1421 12:14:35:727PM', 131) 

This query would convert the date to SQL Server datetime type, which in Query Analyzer would look like:

2000-08-07 12:14:35.727
You find more details about the above discussion, follow this link:

Monday, August 4, 2008

Creating a StringCollection Array in C#.

This explanation was tried in C# 2.0. Basically we all know that StringCollection class allows you to store multiple strings. But unfortunately it doesn't have the possibility of using it as an Array type. But interestingly it allows you to define something like:
StringCollection[] coll = new StringCollection[2];
You get no compile errors,but you cannot access it.It will give a Runtime error, which still I don't know why. I was in need of having a set of related StringCollections stored in an array. So after some discussion and analysis with a friend, we both came up with a solution to achieve what I wanted. I was able to create, and access my StringCollection Array like this:

Initially import the the following mnaespaces:
using System.Collections.Generic;
using System.Collections.Specialized;

Then some where in a button click event (or just anywhere you prefer):

//Create two string arrays

String[] nameArr = new String[] {"Mafaz","David" };
String[] countryArr = new String[] {"Srilanka","India" };

//The primary StringCollections i'm storing
//the array values to

StringCollection nameColl = new StringCollection();
StringCollection countryColl = new StringCollection();

//Adding the arrays to the relevant StringCollections

nameColl.AddRange(nameArr);
countryColl.AddRange(countryArr);

//declare an ArrayList with the number of StringCollections
//which we want to atore as Arrays
//Basically this will serve as a StringCollection Array.
//In this case we have two string collections

ArrayList al = new ArrayList(2);

//Add the StringCollections as Elements

al.Add(nameColl);
al.Add(countryColl);

//Two view the elements again

StringCollection coll2 = new StringCollection();

//You have to cast it to StringCollection type from the
//arraylist

coll2 =(StringCollection) al[0];
Console.WriteLine("Names :"+ coll2[0] + coll2[1]);

coll2 =(StringCollection) al[1];
Console.WriteLine("Countries :"+ coll2[0] + coll2[1]);

You can use a loop also to iterate through many StringCollection array elements. So that's it, That's how you create a StringCollection Array... :-)

Thursday, June 12, 2008

Sanity check: Will IT 2.0 eliminate the geeks or spawn a new breed?

This is an interesting article I read recently from www.techrepublic.com, which clearly gives an overview of what the next generation professionals should look into. There seems to be a widespread need of business skills fro most of the experts to be competitive in future...

  • Date: June 9th, 2008
  • Author: Jason Hiner
The IT profession will change significantly over the next decade in order to keep up with the swift advance of the technology industry. There are four factors driving these changes. IT will split into two separate career tracks.

———————————————————————————————————————–

The world of technology is racing at a pace so fast that it’s in a continual state of transformation. So how could the professionals who manage that technology not expect to be caught in the vortex of this rapid and perpetual change?

As bandwidth dramatically increases and mobilizes, computing power becomes more efficient and less expensive, and applications move to an always-on and always-available model, the IT profession itself will be dramatically altered to meet the changing requirements of businesses.

Here come the changes

In its recent article IT 2.0: How Changing Technology is Having Big Impacts on Business, the ReadWriteWeb stated:

“Today, there still may be plenty of businesses employing ‘classic geeks’ in their I.T. Department, but that’s about to change. Don’t misunderstand - the world will always need a good engineer, but the I.T. leaders of tomorrow - the ones guiding the business in the use of their computer resources, the ones working with the CEOs to execute the vision and direction via information technology - they will no longer be what we think of as the classic ‘computer geek.’ You know the type - the stereotypical introvert, who’s more comfortable behind the glow of computer screen than interacting with the rest of the human race. The one who likes to speak in acronyms that only he or she understands. The ones who know how to do everything from a command prompt. These folks will be a dying breed…at least around the office.

Instead, tomorrow’s computer ‘geek’ will be a true member of the business team as opposed to the mysterious man behind the curtain who you only notice when something goes wrong. So what does the ‘new geek’ need to know to run tomorrow’s I.T. Department? An entirely new skill set, as it turns out.”

In terms of the factors involved in these changes, ReadWriteWeb cited these four:

  • Enteprise 2.0 - Collaboration among employees and teams using tools such as SharePoint, Wikis, blogs, and RSS
  • Cloud services - A lot of servers will move from the corporate data center to the cloud, hosted by Microsoft, Google, and Amazon
  • The mobile workforce - Mobile office work will spread across the organization, and will no longer be confined just to business travelers
  • Self-provisioning user base - The next generation of users will be digital savvy and will often select their own hardware and software

Two kinds of IT professionals

While the ReadWriteWeb has accurately described the environment that is revolutionizing the traditional IT department, I have a different conclusion about what it will mean for IT professionals. I think the ultimate factor driving change in the profession will be the long-developing trend toward companies hiring only the professionals who serve the core competencies of their business, and outsourcing everything else to contractors.

This is already be seen in the move toward utility computing and managed services, where a company will contract out parts of its IT department to a provider such as IBM, Hewlett-Packard, or Verizon Business. These providers can offer 24/7 service, better specialization and problem solving, and cost containment.

The move to cloud computing will further accelerate the trend. For example, instead of hiring Exchange administrators to manage internal Microsoft Exchange servers, many companies will outsource the Exchange infrastructure to Microsoft in a hosted environment. This type of move also migrates the jobs from the individual company to the provider of the hosted data center.

As such, I believe that over the next decade the IT field will develop into two distinct tracks:

  1. Business analysts - IT professionals who work directly for individual companies — rather than part of a provider or consultancy — will have to become much more business savvy. These will essentially be business professionals who understand technology and how to strategically apply it to business processes. They will need to be well-rounded technologically and have excellent communications skills.
  2. Technology experts - This is where many of the traditional geeks will end up, although many of them will need more business skills than they currently have today, especially if they have to interface with clients. They will rarely work directly for one company, but will rather work with various companies to help solve their IT problems, implement new technologies, and manage their IT infrastructures. For example, this will take the form of well-rounded teams of project-for-hire developers and big data centers managed by large teams of network and server specialists.

Tuesday, June 10, 2008

My First MCP certification

During my fresher course at SLIIT, i was wondering when do I get the opportunity to sit for a MCP exam. Well my expectations came true when after 3 years at my Job place. The director at my office gave me the opportunity to sit for the MB7-14 C/SIDE Introduction to Microsoft Dynamics NAV 5.0, which falls under the Microsoft Business Solutions Category of certification. Although I preferred the MCTS (.NET certification track) to start my career, after some internal exams I took before sitting for the exam, I luckily manged to pass and obtain my First ever MCP certification.
The certification I earned on May 12th 2008 after passing with 93/100 is Microsoft Certified Business Solutions Specialist for Microsoft Dynamics NAV 5.0.

Thursday, April 3, 2008

OOXML becomes a standard

Microsoft Office 2007's default format Office Open XML becomes a ISO standard amidst a hard struggle from critics and tecnical experts all around the world.
Check for more information from the following links:
http://arstechnica.com/news.ars/post/20080401-microsofts-office-open-xml-now-an-official-iso-standard.html
http://blogs.zdnet.com/open-source/?p=2220&tag=nl.e019
http://blogs.zdnet.com/open-source/?p=2222&tag=nl.e019

Anyway Microsoft is Microsoft, seems to be they remain the same always ;-)

Tuesday, February 12, 2008

Removing Multiple Instances of MS SQL Server 2005

I have been into this issue for a long time after installing Microsoft SQL Server 2005 in my PC. I had to create multiple server instances in my PC for different projects. But after using them I felt it was just a waste lying there and couldn't find a way to remove them. Interestingly the SQL Server Management Studio or the Enterprise Manager itself didn't have any option to do so.
A friend of mine recently showed this article of how to do it....
http://www.mydigitallife.info/2007/10/14/uninstall-and-remove-multiple-database-instances-of-microsoft-sql-server-2005/

Wednesday, January 30, 2008

Programmatically compiling another .Net file in C#

This feature would be cool if we think of a world where we do not need to worry about regular updates etc. I had a need of having this for my 4th year project, luckily I found this (but if the underlying Framework changes this approach will not be appealing :-( )

http://support.microsoft.com/kb/304655