Wednesday, January 24, 2007

AutoCompleteExtender Problem

IMPORTANT NOTE: This problem was found when I was working with AJAX RC1.

Recently, I tried to add an AutoCompleteExtender for each item in a repeater (which itself is inside an UpdatePanel). In each item, I added also Edit/Update links, textbox and AutoCompleteExtender. Here is the HTML view








However, it seems that TargetControlID property is not affected when the autocomplete set inside the repeater/updatepanel (Actually, don't know which one is the reason). But what I did is to set the TaregtControlID property of the extender in runtime, when the user trying to edit a certain item.


Click To Enlarge

That is all!

kick it on DotNetKicks.com


AJAX Version 1.0 Available Now!


AJAX Version 1.0 is now released for market and available to download.

To download the full version, visit: ASP.NET Offical Site

ASP.NET AJAX is a free framework for quickly creating a new generation of more efficient, more interactive and highly-personalized Web experiences that work across all the most popular browsers.

With ASP.NET AJAX, you can:

Create next-generation interfaces with reusable AJAX components.
Enhance existing Web pages using powerful AJAX controls with support for all modern browsers.

Continue using Visual Studio 2005 to take your ASP.NET 2.0 sites to the next level.
Access remote services and data directly from the browser without writing a ton of complicated script.

Enjoy the benefits of a free framework with 24x7 technical support provided by Microsoft.


Paging Implementation With SQL

When you see how the paging is a piece-of-cake now in .NET server controls (like GridView), you should imagine how much amount of work is needed to do paging in early days. On of the suggestions was to fetch all the data block and store them on a session variable or any such temporary allocation and just do your paging in you business layer! Ok..I hear someone say what a silly solution! That is true. This is really a mess when you working on huge data blocks. So, the best way is to do you paging in your data layer.





You may ask? why I should consider paging while I have ready-to-use paging server controls? .. Well, Although, .NET provide ready-to-use controls with paging feature (like GridView), you still need to implement paging inline for other controls such as Repeaters and Datalists.

Recently, I was searching for doing paging using a single SQL statement. Unfortunatily, solutions differ from DBMS to another. For example, in MySQL, you can make the paging using a SQL statement like that:

SELECT fields FROM table LIMIT $offset,$pgsize


In the other side, SQL Server doesn't have such keywords for paging. But still there is a solution. You can go around and use "TOP" keyword to do the paging using SQL. For example, if your page size is PAGESIZE, you can divide you data to several pages as following:

SELECT TOP PAGESIZE * FROM EMP WHERE ID NOT IN (SELECT TOP OFFSET ID FROM EMP)


PAGSIZE is constant,and you just change the OFFSET. For example, if your PAGESIZE is 20, then your offset should be: 0, 20, 40 and so on. I think this SQL statement is a piece of art! I really like it!

kick it on DotNetKicks.com


Saturday, January 13, 2007

MDC2007 Registeration Starting Up


MDC2007 started up its registeration process for attending the event. MDC 2007 is the biggest Developers' Conference of the year in the Middle East, and is a critical event for any developer who wants to see the newest as well as the next-generation technology. MDC07 is full of sessions and activities that help you learn the current and future of the Microsoft platform and get to know people who are as passionate about software as you are.

MDC2007 will be held in Cairo International Conference Center, between February 4-7. The registeration fees is 100 Egyptian Bound, which you will have to pay in the first of February, 2007 in Cairo International Center.

For Registeration, Visit MDC2007 Official Site


iPhone - New Apple Device

iPhone combines three products — a revolutionary mobile phone, a widescreen iPod with touch controls, and a breakthrough Internet communications device with desktop-class email, web browsing, maps, and searching — into one small and lightweight handheld device. iPhone also introduces an entirely new user interface based on a large multi-touch display and pioneering new software, letting you control everything with just your fingers. So it ushers in an era of software power and sophistication never before seen in a mobile device, completely redefining what you can do on a mobile phone.

The phone will be available in two models, 4GB and 8GB priced at $499 and $599 respectively, and will ship to the US in June of this year. Europe will get the phone in the fourth quarter, while Asia will wait till 2008.

It's nice to mention that Microsoft has recently released Zune. In my opinion, iPhone has crashed any expectations and provide ultimate features which can't be compared with Zune such as internet access and mobile phone cababilities.

On the other hand, Cisco sues Apple over use of iPhone trademark. Cisco said in the complaint that Apple had attempted to get rights to the iPhone name several times, but after Cisco refused, the company created a front company to try to acquire the rights another way, according to the lawsuit. For more about this issue, click here.

Finally, it's the industry challenge and days will be tell us who wins.


Monday, January 01, 2007

Zune: The Microsoft iPod

It seems that Microsoft want to straggle in all the fields even in the Media and Music World. Now, we have a new competitor for iPod - The Apple Product - which is introduced as Zune. Zune is a new handled device for music and media gives you almost the same features of iPod and maybe better. Explore more about it here: Zune - Official Site

Depending on this post, Zune has some key features which may lead to a great success over iPod. For example, Zune gives you the WiFi conectivity feature which is an attractive way in sharing songs and videos. However, you can't connect to the internet through it (see this). Also, the wide screen is something attractive for Zune fans.

The challenge which Zune may face is in the Zune battery life which may not be able to last for a long time with the Wi-Fi connectivity and the device large screen. It's nice to mention here that, iPod battery can currently last for approximatly 12-hours.


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, 2004http://www.eds.com/
CMM-Level 2February, 2003
2ITSoftCMMI-Level 521 September, 2006http://www.itsoft.com.eg/
CMMI-Level 425 August, 2005
CMM-Level 324 June, 2004
CMM-Level 26 May, 2004
3IBM-EgyptCMMI-Level 55 October, 2005http://www.ibm.com/
CMM-Level 316 August, 2004
4Raya SoftwareCMMI-Level 33 September, 2004http://www.rayasoftware.com/
5ITWorxCMMI-Level 39 December, 2005http://www.itworx.com/
CMMI-Level 223 December, 2004
6DMSCMMI-Level 418 August,2005http://www.dmsegypt.com/
CMM-Level 311 August, 2004
7Digital VisionCMMI-Level 222 June, 2006http://www.digitalvisionco.com/
8LINKdotNETCMMI-Level 329 June, 2006http://www.link.net/english/default
9Egypt NetworkCMMI-Level 229 June, 2006http://www.egyptnetwork.com/
10Delta SoftwareCMMI-Level 210 July, 2006http://www.delta-sw.com/
11Harf Information TechnologyCMMI-Level 316 July, 2006http://www.harf.com/
12MicrotechCMMI-Level 321 July, 2006http://www.microtech-eg.com/
13Horizons SoftwareCMMI-Level 326 July, 2006http://www.horizonssoftware.com/
14Fujitsu EgyptCMMI-Level 226 July, 2006http://www.fujitsu.com.eg/
15VIAS EGYPTCMMI-Level 321 September, 2006http://www.valeo.com/