Saturday, April 29, 2006

Team Leader

Recently, I received an e-Mail from Ahmed Magdy asking; what the properties should be in team leader…

So, in my opinion I'll tell you…
Team leading as I say not honor much more than responsibility, here I'll talk about team leader in under graduate projects.

1- Team leader totally should be aware of the project s/he leads at least knows the idea, how to design or implement it, and so on.
Reason: to efficiently assign tasks with right deadlines.

2- Team leader should have the art of understanding who is in front of him/her, how to utilize all resources of who is in front of him/her. (ust3'laa sa7)
Reason: to efficiently assign tasks to right people.

3- Team leader should have the ability to fix any problem occur among team members
Reason: sure, you know wars happen in meetings

4- Team leader should have the ability to overstep any of project problems.
Reason: usually, while developing any application you face problems day to day and team leader according to his/her knowledge about that application or project should has the ability to overcome them.

5- Team leader should not be nervous, nerd and should be polite, kind, nice, friendly and COLD
Reason: No, I won't take this task it's not easy :~ , No, no, no, I have no time for holding meeting I have a lot to study :~ :~ you feel that team leader is unsuccessful person, you should has these properties while working with almost girls believe me at the end of the project you would have pressure, diabetes (el-sokr) and finally you have hemiplegia (شلل نصفي ) (dah lo rbna krmk wy mglkshy complete paralysis).

Thank you for reading,
Ramy Mahrous

Sunday, April 23, 2006

My blog lighted

My blog lighted........... :D :D
I would like to thank Miss. Hanna Tag el-Din and Mr. Mohamed Nabil for joining me :)
They became BLOG Contributors

Tuesday, April 18, 2006

Developers' tools

Again, again and again; developing proficient programs does not depend on your only technical skills but you should have some tools that help you in that
1- You should work on reputable OS like my beloved OS Microsoft Windows XP.
2- You should work on reputable IDE like Visual Studio 2005/.NET 2003
3- First and Second points in brief you should work on Microsoft products to make useful from the INTEGRATION they support to developers, only developers who work on multi-OSs or multi-IDEs know the difference between Microsoft and other technologies(SUN, IBM, so on)
4- Mirror, yes while developing new application you should look to yourself to discuss something with yourself like mmmmm, should I make this class abstract or base class what a datatype should I use in that column believe me you will find someone shares ideas with you and you won’t feel lonely :D
5- Sure, your girl should have a role in your work you should put her picture in front of you, that if you became so angry from something like your program hiiss (has fatal and logic error) or you fed up your boss you take a look on her beautiful eyes, you would feel something and you would have ability to debug and tolerate your silly boss
6- Telephone, only if you work in team, to call member from your team and curse him/her if they did something wrong (team leaders, software designers and software architects) included, you can curse them do not scare :)
7- Mobile, do not call your team from your mobile, you will be mulcted, but you should have a one to call your girl that misses you and you miss her, sure 24 hours/day and 30 days/month you coding, what a pity!, you have no time for her!!!
8- Paper and Pencil, never ever begin any developing for a program (small or big) on computer directly, you should decide on paper how will life move.
9- Working in clean and comfortable place.
10- I don’t know what else???! So I'll let you tell me your opinion

Thank you for reading
Ramy Mahrous

Friday, April 14, 2006

Monday, April 10, 2006

Data Normalization

In the name of ALLAH

Data Normalization

Abstract:

After gathering required information from end-users who are going to use your
application, you move to design database and you should spend sometime to design
it well because any mistake in your design would cost you a lot of effort, money
and time if your application built on it…

Introduction:

Data Normalization is the process of organizing information in your database
to should be able to develop professional code to update and retrieve data efficiently
and your code comes from a series of rules of standards called NORMAL FORMS

FIRST NORMAL FORM:

Let's execute that code [SELECT * FROM student] so the output is



It's definitely wrong as what about if I want to sort by Student's Last Name
I have no way except writing functions to do this job and that's wrong

After modification solution is:

Let's execute that code [SELECT * FROM student] so the output is


So now it's very easy to make all operations I need to sort by any attribute
and update and retrieve needed data

Let's execute that code [SELECT * FROM student] so the output is


Unquestionably very wrong to do that for many reasons first of them I can not
count all students who take Microsoft SQL Server 2005 course second what about
if a student intend to take another course you need to modify the schema or
the design of the relation and never ever put yourself in a case according to
it you may change your database schema, believe me if you did, you would be
fired, assume well to design well…

After modification solution is:



Now I can count all students who take any specific course and also update data
smoothly without any modification in database schema

So we can summarize FIRST NORMAL FORM as:

1- Each attribute in a relation should contain only one piece of information
that you can care about.

2- And also each piece of in formation that you can care about should be contained
in just ONE attribute.

SECOND NORMAL FORM:

It focuses on relation itself and its concepts are:

1- Database must be in FIRST NORMAL FORM.

2- Every attribute should be functionally dependant on the entire primary key.

3- Every relation should model just one entity, object or event.

Let's execute that code [SELECT * FROM student] so the output is



According to SECOND NORMAL FORM concept we see that relation violate SECOND
NORMAL FORM as CourseName dependant on to primary keys they are StudentID and
CourseID

After modification solution is to have two tables one for
StudentCourse and one for Course respectively as shown





Here, we divided first table to two tables to avoid violation
of SECOND NORMAL FORM as in last table CourseName became just dependant on CourseID.

THIRD NORMAL FORM:

Let us show what the concepts of the THIRD NORMAL FORM

1- Database must be in SECOND NORMAL FORM.

2- The attributes in addition to be dependant on entire primary key it should
not be dependant on another attributes.

3- Don't store any calculated or derived values, only store the raw data and
use queries to perform calculations and looks up as needed.

Let's execute that code [SELECT * FROM Item] so the output is


Here, all attributes dependant on ItemID as it's the primary key of this table
however the problem is in TotalCost as you see TotalCost is a calculated value
result FROM multiplication of ItemCost by ItemQuantity and that's a violation
of THIRD NORMAL FORM.

Conclusion:

As we saw applying normalization to our design is very easy and logical but
also not applying it will cost us a lot and a lot, and while designing large
database you will find some difficulty to achieve the equation that you must
attain performance, normalization, efficiency, all end-users requirements and
so forth so they are cases you should DENORMALIZE your design i.e. what about
if end-user asked you to store calculated or derived values in this case if
you didn't find solution you would be forced to say "Ok".

In the article I just mentioned 3 forms of NORMALIZATION and there are other
forms like Boyce-Codd normal form – BCNF, Forth normal form - 4NF and
fifth normal form - 5NF, may next article will mention them in details.

I appreciate your reading.

Thank you,
Ramy Mahrous

Thursday, April 06, 2006

I am the winner :D:D

Hhahahahahah, I won yesterday in 2D Designs Competition, first of all I want to thank STUDENTS UNION for their great effort, and really they are very good and much cooperated they made a culture week I never seen, yeaaaa we should stand up and greet them (Y)
Yesterday, as I told you was very beautiful day for me really I felt how much my friends love me :$ when HOSSAM SADIK presented me as 2D Designs Competition winner, I …… I don't know what I should write, but you can replace my dots with all happiness I felt really you can not imagine else if you were attendee, it was cute day, and from nice situations in that day someone came to me after prizes presentation, saying, really I knew who is ramy mahrous… really you are very lovable :) then I said: may ALLAH bless you (rbna ukrmk), you can say what the meaning to win in such a competition not from local or international competitions, the meaning is to fell your mates and friends love when you please them and say please select my designs and when do a lap around all your mates and tell them 5,8,11 and 12 (they are my designs IDs) write them and I'll bring you chocolate but after winning I did not know them (wala a3rfhom :D) after that I went to DATABASE section session I got 5/5 in the quiz it was very easy that's way I got this mark :D

Do not worry if I forgot something I'd post new post
Salam, it's now 6:33 am I going to study DISCRETE MATH :~

Catch you later, ;)