Friday, June 02, 2006
.NET Developers
My Office wanted to find some good .NET resources since two of our best guys are leaving. So we found some CVs through the staff itself and we interviewed some of them. After spending time for all the interviews, we could select only one person, but unfortunately he had commitment to his current work place as he was leading the team there. So he was not in a passion to join
The GM proposed that we should go for a big paper advertisement and we should conduct an examination to recruit some people. But when I looked around, I found lot of paper advertisement similar to our requirement in the Sunday paper. It that case, it’s a game of convincing developers, why they should select our company.
I think you can find Three types of resources in the industry.
1) People who have a degree as a qualification and know some development language semantics form some course or certification.
2) People who are creative, who reads books, who experiments and challenge software development concepts.
3) People who have no idea what programming is
1st type of people is usually recruited by large outsourcing companies. Because they have a well setup internal process and its matter of training new people to follow the process and making them knowledgeable only in the area that the company wants them to be fit in.
2nd types are the people who works is small or medium scale development companies. Companies which develop products or custom creative projects based on customer requirements. The customers of these companies are not ready to pay for various additional resources such as business process consultants, dedicated project managers etc. They expect a team of 5-10 people will do the job for a flat rate and they don’t wont jazz like dedicated project manager and domain consultant etc..
These requirements result the need of multi talented, very creative people to support these software projects. The developers should have little marking ability and personality, planning ability, R&D skills and self discipline to very closely communicate with team members and management. The reason is that, there are no closely monitored process and supervisor level people to monitor whether everybody is following the process. Basically no one will consider the management time as a need and no one is there to pay for this time.
When you compare software developers, you can find hundreds or thousands of people of category 1, but very limited people like 500 for category 2. Because category 2 is value addition to category 1 and the companies looking for category 1 prefers category 2 people.
Therefore finding a category 2 person is very hard. Even if you find one, he is currently working in someplace and they won’t allow him to leave. They will offer what ever he wants because it’s a very valuable asset to them and they know how hard it is to find same caliber of a person.
I think usually at a given time, there are 20-30 developers in category 2 changing their companies due to some reasons. But since there are new companies joining the industry every day, grabbing one is been a major challenge.
In a way the outsourcing model has created some of the problems.
Consider the garment industry in Sri Lanka. Sri Lanka is one of the best countries who produce garments to the world. But see how it works. International company seeks a local partner to outsource its production. They will setup the factory, train people, and create processors and they will create a best business venture.
But what happened when the US stop the quota system.?. Most of the Sri Lankan garments factories had to close. My point is that, knowledge won’t come to 3rd world countries as to independently operate. Some consultant creates a process and makes our people to follow that. Locals don’t know the whole operation. That’s why they couldn’t create own brands and designs and market it to the world. Locals are best at following someone else’s process productively but not at creating complete processors own there own.
This is happening to the local Software industry as well. A company which does well in outsourcing in SL has only their production arm locally. Either there process is setup by some international consultants or they are getting the whole spec from another country to produce the code.
Some time back I interviewed a Software Engineer, who worked in some major outsourcing company in Sri Lanka. When I asked him some simple questions like , “how to make a connection to the DB” for my surprise, he told me that he doesn’t know to do it as they are using ready made components.
This is the bad side of outsourcing. It will make our workforce dumb; destroy their creativity and destroy the eager to learn new things. Most of the developers don’t like to put extra effort to lean something and improve themselves from developers to architects or some senior level. They want a higher salary with less effort but doing same set of job functionalities. This has not become a problem now because there are lots of outsourcing jobs in the country. But we have no idea when this model is going to fail. In that day we are going to face a hell of a problem….
Thursday, June 01, 2006
Sunday, May 28, 2006
Information
Wednesday, May 24, 2006
Intellisense for SQL Server
BusyBoxDotNet
BusyBoxDotNet is free ASP.NET Control which can be used to a show a Message when performing long process.
Seems to be a very useful control, Check it out @ http://busyboxdotnet.qsh.eu/
Sunday, April 23, 2006
Introduction to Windows Workstation Foundation (WF)
Consider a process like “Complain Management System”, where you need to get the customer complains through a Web site or a published for Phone no. Internal employer should be appointed to act upon complains and take the necessary actions. A Manager should review the employer actions and then get back to the customer.
Typical organization wants to implement many processors like this and monitor the progress of them.Some elements are human processes and some are System process if you take a look at the above ( e.g Customer needs to enter the complain through a website is Human responsibility and authenticate customer in to the system is System responsibility.)
You can find hundreds of processes like this in your day to day work environment. Do you have a facility to setup something like this using MS Office or other available software?This is where the up coming Windows Work Flow (WF) comes in to place. WF will be an Application development framework to design applications to setup work flow in your organization and a user friendly integrated set of tools with nextOffice Suite (V12).
More @ http://www.codeproject.com/dotnet/UnderstandWWF.asp
Mapping Data Provider Data Types
[.NET 2.0 Data Access]
“We recommend that you use the typed accessor methods of the DataReader when you know the specific type of the value being returned. Typed accessor methods result in better performance by returning a value as a specific .NET Framework type, eliminating the need for additional type conversion. The SqlDataReader exposes SQL Server–specific typed accessor methods if a .NET Framework type does not meet the needs of the application. SQL Server–specific typed accessor methods return objects of System.Data.SqlTypes.” -- local MSDN
Above lines are extracted from MSDN which confirms that you should use accessors to read the data out of data readers and it will result better performance since it eliminates type casting. Further MSDN describes the getter names which you should use in SQL and Oracle provides for specific data type. So better to read section “Mapping Data Provider Data Types to .NET Framework Data Types” before reading values from datareaders.
Saturday, December 31, 2005
.NET 2 Links
They are as follows
Visual Studio 2005 and .NET Framework 2.0 Setup Troubleshooting Guide
ASP.NET jumpstarted: Establishing the Application and Page Framework
Visual Studio 2005 Class DesignerNew dataset Features in Visual Studio 2005
http://www.c-sharpcorner.com/vs2005.asp
Brian Goldberg Blog
Now there is a page for ASP.NET UI Designers as well. You can find info on how to design your page according to web standards, Themes master pager etc. So Asela (Who is our UI designer at office) be ready, I'm going to bug you to implement them.
ASP.NET for Designers
Thursday, December 29, 2005
UK government gateway runs totally on Microsoft software
More @ http://www.ciber-uk.com/casestudies/search_results_single.cfm?id=ukonline
Tuesday, December 13, 2005
.NET Localization
[ C#, .NET 1.1, 2.0 ]
We can do this by using resource files. A default resource file is generated for every form and text, images etc will be stored in this file and they are complied in to a satellite assembly. Custom text which you need to display as messages etc can be embedded in to custom resource file. You have to create this file manually.To create multi language form first you have to set the Localize property to true;
Then you can add controls to the form. These controls will be added in the default language. Then you can change the language property to the language that you want and enter text in the form. This will result creating two resource file for the Form by the designer with there culture-name. At the compile time multiple assemblies are created for each culture. When you change the current culture form the Regional Settings the form will load with the specific language text that you added to the form.Custom resource files will act as the same way, but you have to manually name them accordingly. Ex. Messages.resx , Meesages.fr-FR.resx
You have to load them in the following wayprivate void button1_Click(object sender, EventArgs e)
{
ResourceManager localResMgr = new ResourceManager("GraphicsTest.messages", typeof(TestWinControls).Assembly);
string welcomeMsg = localResMgr.GetString("strWelcomeMessage");
MessageBox.Show(welcomeMsg);
}
To check this you have to manually change the UI Culture of the form. You have to change the current threads’ UI culture in the Constructor of the Form before the Initializecomponent method is called.
public TestWinControls()
{
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr-FR");InitializeComponent();
}
Note: When you deploy the application the OS should be Win2k , Win3K or WinXP Multi-Language version and you should be able to change the UI Culture from the control panel.
Friday, December 09, 2005
.NET Graphics
I saw some enhanced controls created using the “Owner Drawn” feature of Winforms.NET 2.0. So I open the MSDN and start studying System.Drawing form the scratch. I found out that you have to get the Graphics object from the current control to draw graphics in the form and there are 3 methods to do that.
1. Graphic property of the PaintEventArgs, of the Paint event of the control2. Calling CreateGraphics() method of the control
3. Getting the Graphic object a image using Graphics.FromImage(<class derived from image class>)To check this I used the onPaint event of the PictureBox control as follows
I saw some enhanced controls created using the “Owner Drawn” feature of Winforms.NET 2.0. So I open the MSDN and start studying System.Drawing form the scratch. I found out that you have to get the Graphics object from the current control to draw graphics in the form and there are 3 methods to do that.
1. Graphic property of the PaintEventArgs, of the Paint event of the control
2. Calling CreateGraphics() method of the control
3. Getting the Graphic object a image using Graphics.FromImage(
To check this I used the onPaint event of the PictureBox control as follows
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
//Get a graphic object of the picturebox
Graphics graphicsRef = e.Graphics;
//Create a brush
System.Drawing.Brush brush = System.Drawing.Brushes.DarkOrange;
//Draw some text
graphicsRef.DrawString("This is a Sample Text", new Font("Forte", 14), brush, new Point(30, 30));
//Draw a line
graphicsRef.DrawLine(System.Drawing.Pens.BurlyWood, new Point(30, 60), new Point(100, 60));
}
Which generate a output like…

Furhter to add a Liner gradient to the text drawn in the screen I replaced the follwing line
//Create a brush
System.Drawing.Brush brush = System.Drawing.Brushes.DarkOrange;
With the
//Create a linear for the string
System.Drawing.Brush brush = new System.Drawing.Drawing2D.LinearGradientBrush(
new Point(30, 30),
new Point(200, 30),
Color.FromArgb(255, 0, 255, 0), // Opaque Green
Color.FromArgb(255, 0, 0, 255)); // Opaque blue
To generate an output like…

Monday, August 08, 2005
I have came across following when I was looking for .NET Persistance object
pattens
- href="http://www.awprofessional.com/articles/article.asp?p=30298&seqNum=8"
- Implimentation of Facade Pattern
- id=_ctl0__ctl0__ctl0_Title1>href="http://developerland.com/CSharpGeneral/Database/372.aspx"
target=_blank>Domain
Objects Persistence Pattern for .NET by
href="http://developerland.com/CSharpGeneral/Database/Users_ShowProfile.aspx?user=sarah">Iqbal
Khan
target=_blank>
Friday, May 20, 2005
Laptop for $230 ( LKR 23,000)?

more images >>
Monday, May 16, 2005
Sunday, May 15, 2005
"Double meaning"

If you look at things with a dirty mind you will see things differently. Advertising companies has used this to send their messages as "double meaning images". You can some of those image in this web site.
Wednesday, May 11, 2005
Wednesday, May 04, 2005
Saturday, April 23, 2005
Roots of Computing
I found this page when I was searching for "why 64-bit computing".
Just read and see the accomplishments of the DEC. Seems they are the people who
started all the things related computing.
Wednesday, April 20, 2005
iPod Killers
Great new phones has been introduced to the market with features of a phone, a camera, and now with the features of a iPod