Sunday, December 31, 2006

Microsoft War

Check out the strategy of Microsoft in building its industry Empire! The image illustrate cleary the way Microsoft challenges with its market competitors. This is a fact we can't ignore and is clearly obvious. Microsoft wants to challenge in every sector in the industry which is not reasonable.

Click on the image for a large view.

Saturday, December 30, 2006

PHP Popularity .. Why?

No one can deny that PHP is one of the most popular and spreading web language nowadays. What I want to discuss here is why PHP is a strong competitor in the web world?

Simply, open any freelance website and you will get this fact: PHP fans are usually small business owners who needs to complete their project quickly with minimum cost. So, they need the easy way. They need ready made components. They need to find cost-effective programmers easily when a bug or error raised. This is what PHP giving them.

You can find many open source PHP projects available on the net such as vBulletin, oscommerce, x-cart, pMachine, ez-Publish, gallery, phpBB and php-nuke, plus other hosting control panel favorites. Open source solutions for forums, images-organizer, CMS (Content Management Systems) and even e-commerce. Just some configurations and you have a ready working project in just a moment. This aspect can't be seen widely in .NET or J2EE for example.

Another point here is the hosting. If we compare between the number of PHP hosting servers and Java for example. PHP is the winner in this comparison.

Although the simplicity of the PHP, it's still has a drawback in the style of the code. Actually, PHP is going in the way of creating its rich libraries and assemblies. However, You still develop a PHP application in a missy old fashion way - a combination of HTML and the PHP script. Still no separation between the code and the design which considered unprofessional way in development. You still have problems here related to scalability and updatability.

In my point of view, choosing PHP for projects is still related to the economical aspects not technical ones. Small customers still needs minimum development cost, and PHP is the ultimate choice if this is the only considered side here.

Sunday, December 17, 2006

My Freelancing Experience in RentACoder

RentACoder is one of the most popular sites on the net for freelancing seekers. Actually, I started working in RAC - AKA: RentACoder - since May, 2006. Till now, I completed nearly 12 projects with different scales. However, I see many Egyptian coders are facing problem specially in the starting phase. Some related to strategy in getting a new bid and some is not related to the Coders skills itself, it's related to their way in getting a deal.

In your starting phase, always remember that you haven't anything to encourage buyers to choose you for their projects. You haven't created any projects neither been rated yet. So, my advise is to apply in many projects with a relative low cost. Don't think when you apply to a project that you will get it. It's not always guaranteed. In my starting phase in RAC, I applied for nearly 24 projects and finally get only one! The buyer needs a coder who can trust to complete the work. His trust comes - in most of the cases - from the coders rate and previous projects. But actually you haven't got that yet.

In choosing your project, try to read carefully the requirements and any attached documents with the bid request. This will help you to identify if you can do the job or not. Don't bid for thing you can't do. Bid only for projects you think you can do or even you will be able to do.

Another point here, make your bids reasonable. Fixing bugs, for example, is not like building enterprise project. Consider your bids well and put in your mind that many buyers considers many other things other than the financial cost. Buyers not always choose the lower bid!

After you finished your first project, put in your consideration the next cost of your project. For example, if your first project was $100 cost, your next one shouldn't be less than that. Try to invest your experience.

During the development, try always to know your buyer characteristics. Some buyers need daily reports about your work, other not. Formulate your behavior depending on the buyers characteristics. This sure will affect your rating and your client satisfaction.

Try to gain the buyer loyalty. Buyers tends to use coders who gives them the best service. Try to build a good relationships with your buyers. This sometimes needs you to be more flexible in your dealing.

Now you have collected a reasonable amount of money, and you need to get the cash. RentACoder gives you 3 choices for the payment. Two of them are suitable for Egyptian coders. The first one (the cheapest) is receiving a check by mail with the specified money. The problem here is that the check is issued from "Bank of America", which has no branches here in Egypt. You will have to go to your international bank to transfer the fund to your bank account. This will take nearly 30 days.

The other choice (the expensive one) is to get the money through Western Union. This is a money transfer company which have many branches in the world and in Egypt as well. RentACoder will send you the money to Western Union, and you get paid from any Western Union branch here in Egypt. Western Union takes a percentage from the money transferred. But the good news here is that you got the money (in dollars) within the same day (or next day maximum) of sending.

I like this Article! - Digg it

Friday, December 15, 2006

CMMI Certified Software Companies in Egypt

IMPORTANT NOTE: These statistics is based on the Software Engineering Institute (SEI) results. These results were published on this blog in December 2006.

15 Egyptian software companies have already achieved SW-CMM/CMMI ( Software - Capability Maturity Model / Capability Maturity Model Integrated ).

No.CompanyCMM/CMMIDate AchievedCompany website
1EDS-EgyptCMMI-Level 326 August, 2004
CMM-Level 2February, 2003
2ITSoftCMMI-Level 521 September, 2006
CMMI-Level 425 August, 2005
CMM-Level 324 June, 2004
CMM-Level 26 May, 2004
3IBM-EgyptCMMI-Level 55 October, 2005
CMM-Level 316 August, 2004
4Raya SoftwareCMMI-Level 33 September, 2004
5ITWorxCMMI-Level 39 December, 2005
CMMI-Level 223 December, 2004
6DMSCMMI-Level 418 August,2005
CMM-Level 311 August, 2004
7Digital VisionCMMI-Level 222 June, 2006
8LINKdotNETCMMI-Level 329 June, 2006
9Egypt NetworkCMMI-Level 229 June, 2006
10Delta SoftwareCMMI-Level 210 July, 2006
11Harf Information TechnologyCMMI-Level 316 July, 2006
12MicrotechCMMI-Level 321 July, 2006
13Horizons SoftwareCMMI-Level 326 July, 2006
14Fujitsu EgyptCMMI-Level 226 July, 2006
15VIAS EGYPTCMMI-Level 321 September, 2006

Friday, December 08, 2006

Can You Hear Me Now?

Cell phone users, beware. The FBI can listen to everything you say, even when the cell phone is turned off.

A recent court ruling in a case against the Genovese crime family revealed that the FBI has the ability from a remote location to activate a cell phone and turn its microphone into a listening device that transmits to an FBI listening post, a method known as a "roving bug." Experts say the only way to defeat it is to remove the cell phone battery.

"The FBI can access cell phones and modify them remotely without ever having to physically handle them," James Atkinson, a counterintelligence security consultant, told ABC News. "Any recently manufactured cell phone has a built-in tracking device, which can allow eavesdroppers to pinpoint someone's location to within just a few feet," he added.

References: ABC News

Sunday, December 03, 2006

Declared Accessibility Keywords .NET

Declared accessibility keywords definition are mostly the same for all the programming lanugage. In the next lines, I will state the basic definition of each acessibility keyword for .NET languages

Class Accessibility:

A class or struct can be declared as internal or public

access limited to the current assembly only.

class marked as public can be accessed from outside the assembly.

By default, classes are declared as internal, unless you didn't add the public kewyrod in the class declaration.

Class Members Accessibility

Access limited to the types derived from the containing class.

only class contains this member can access this member.

internal protected:
access limited to the current assembly OR access limited to the types derived from the containing class.

kick it on