Wednesday, October 31, 2007

Effective Java Programming

Effective Java Programming, by Addison Wesley, is one of nice books i have read in software development material. and i recommend it to any developer developing in Java, starter or senior.

programming by nature is very flexible. you have many choices. it is like creating a statue using clay. You choose at every point; Class names, methods and variable names. public methods, internal implementation algorithms, structure of the package classes,.. all of those and others are left for the programmer to choose.

Effective Java programming comes to introduce a lot of the best practices for Java programmers; to enhance the stability, readability, clarity, reusability and maintainability of their code. it also has guides to the proper use of a lot of the java standard classes.

A note inside the book really draw my attention; in item 8, chapter 3, Wesley was talking about overriding the hashCode method, he stated an example of a phone number class and an implementation of a suggested hashCode, then he said "Writing such hash functions is a topic of active research and an activity best left to mathematicians and theoretical computer scientists.". Wesley encourages his readers to use the state-of-art code. that's the goal of the book.

Actually i was thinking about the classes of the open source libraries we use as i proceeded reading the book. the kind of code that shall be used by thousands of programmers all around the world.

Sunday, October 14, 2007

Why Software Developers Leave...

i read a nice article with the title "Software Team Turnover: Why Developers Leave (And What You Can Do About It)".

In this article, the writer, Aaron Reed, discussed the negative impact of the fact that some software developers leave their teams and what makes them do that. it is worth to read.
Aaron specified three main reasons that causes developers to leave:

Like any person in any field, Software Developers too are in need for Money to fulfil their human needs. a developer being paid below the market average might be an unhappy unsatisfied developer. and in general, a Developer can increase his income by jumping to a new place more that he can by getting a raise in the same place.

being happy with what they do
Developer can work in some place or on some project even under paid, if they love what they are working on. in other words.. they also can leave for somewhere else (even paying less) if they were unhappy about they current projects/place/team, if they were bored, or if they were not learning more and not getting experience. actually this is a key reason for developers to move to a new place. the need for getting new experiences and new challenges.

Software development is not an easy job. It is like having a hard exam for at least 8 hours per day/ 5 days per week. sometimes the developer gets overloaded by working in some project, and due to his experience in that project or field, and due to the fact that resources are need for that project. management do not move the developers to another project. which makes leaving the whole place is the only get away for the developer. i have seen this more than once before.

i totally Agree with Aaron Analysis of the issue. but i also need to add "Politics" as a candidate cause itself. a broken promise from the management side is fatal from the developer's prospective. disharmony among team members or people in the same work place may cause some of them to be unhappy to the extent that they may not want to stay in that place any more.

Saturday, September 22, 2007

new blog template

enough of the sad desperate attitude...
somehow i feel my selection to the previous blog template was little dark. let's move to something more optimistic. :)

Tuesday, September 18, 2007

a new start on ubuntu

recently i decided to explore the world on through Linux.. i had tried in the past to install Ubuntu 6.1 on my desktop at home. but it ended in an MBR issue that i couldn't fix then, and i didn't have the time to track it down.
a couple of weeks ago.. i decided to do it again.. encouraged by my Linuxawy fellow. who offered his help, so.. i freed up some space and decided to go through it.

we had in installed and i started playing around with it. it is great. so far i'm running smoothly. i feel like my laptop is less loaded. but i encounter eclipse and firefox sudden termination from time to time.

the initial programs that we install on windows after a new windows install wasn't an issue. no office, no winamp, no ... etc. no need to keep "sources" directory.

Ubuntu uses repository for his packages. it is the same concept of maven handling java library projects. u define the repositories, and get packages through the "Synaptic Package Manager" or directly through the shell via "apt-get install packageName". u have the chance to discuss ubuntu packages, and any concerns through ubuntu forms.. so u'll find help, don't worry about it.

i already needed some help starting up my development environment. but let's talk about it in details later.

Wednesday, August 08, 2007


today i was checking the blog of one of my coworkers "Mahmoud Algammal", when i went to a post talking about Binky's power supply...
what's the hell is binky?? it seems more like a pet or the PC at home... so i checked Gammal's Binky
it totally impressed me that Binky is a server made using old spare parts of PCs. we all upgrade and have useless spare part all over our houses... i always thought using them would be a great idea... but never did.

Gammal used them create a machine.. a DHCP, DNS, SVN, Web server.. in a mother board box (instead of the case).. with no VGA card.. with no power switch... it is working fine and even hosting his blog..

way to go man... now i know why u r special.

Sunday, July 15, 2007

A Way Out Of Timeshare Traps.....

"In a timeshare deal you can cancel the deal within 10 days and take your money back excluding only 300 EGP as an overhead fees". said the law of Egypt.

Sunday, June 17, 2007

الجيل الصاعد

حرمونا سنين وسنين
وافتكروا الناس نايميين
وطلعنا عليهم يوم
خلصنا حقوق ملايين
غنوا معايا.. قولوا معايا
عاش فلاح الثورة عاش

when i heard those words By Nagat, my heart was trembling.. i realized the power of songs like this in encouraging people's and warriors hearts. in the old wars where the swords were used, the leader had to encourage the solders with powerful sentences or acts.. these songs had similar effect.

i realized that this song is not played anymore in our Media for more reasons beside that Gamal Abd Elnasser is not here anymore..

Friday, June 01, 2007


Nearly every running business around the world is based on reputation. That's why business owners treat customers with extreme carefulness..

In Egypt though, a lot of people just can't realize that. They think that it is ok to treat some customers in an improper way, because there are a lot of other target customers. They think that what actions that they do pass unseen for the public.

What those people don't realize is that we're in a very small world. Nothing is secret anymore. If you want to maintain a good reputation, do not act improperly, do not provide poor quality service, and definitely do not try to hide parts of the law that are not on your side hoping the other party will not notice it.

I've seen some people ruining the reputation of their organization by some irresponsible acts. After all, for the customer, the whole organization is represented in that employee they are dealing with.

What surprised me is that i saw people who low in the organization hierarchy and showing extreme carefulness about the reputation of their place. And at the same time, higher managers behaving in a very irresponsible manner.. not acting in a professional manner.. and totally blowing their companies reputation.

Guys... i'm not a kid in school like some people out there.. I do not take things personally... I'm professional enough to know where to put my time. and definitely.. You are not worth it.

Sunday, May 27, 2007

impetuous child

it is strange how adult one can think he is... i was thinking i'm a well thinking person... older than my age maybe...

it turned out i'm just hasting foolish child like worst ones i can see around me...
like the people i feel pity for... or laugh about their acts.. laugh how they cannot see the so clear reality..

thought i'm a high level analyzer..

it turned out to be that i missed one major analytical fact... when u step outside of the circle.. and look... things look so differently...
i thought i'm able to see reality if actions around me.... it turned out that i'm just staying outside the cirlcle... maybe too chicken to get in...

when i finally got inside the circle... i messed things up... violating one of my basic rules so simply.. leading myself into critical situation...

Saturday, May 19, 2007


learning is actually amazing..

when we were small kids.. we try to walk... move ur leg there.. move your leg highr... don't lean forward or you'll fall....

we actually think of what we are doing.. we think of the details... i doubt if any of us remember his trial.. we were less than 2 years probably...

but u can see it in other new kids... u can see it even more while learning to drive a car... the same story... u can't even focus on other cars in the street because u r busy thinking when to put ur leg.. and how much u push.. when u should move the gear to the next level...

but for some reason... we tend to forget the magic feeling of learning... of gaining a new ability...

two days ago... i was chatting... with my head down on my desk and i was looking to the floor...
i actually had my hands on the keyboard and that's it... i didn't think of where that letter is located... text was just being inserted into the screen... it felt amazing...

i started to get thirsty for that feeling....

Wednesday, March 14, 2007

Improvement Decision

since i have no time to write something unrelated to my work.. i decided to write my first book...

"Guide to OA Support"

ya mosahhel..

Tuesday, March 13, 2007

a glimpse from the past

at last... after more than 3 months of searching.. i found my lovely song..
check the great koko-wawa

Thursday, March 01, 2007


I had an experience recently that I like to share..

It started a week ago, the last days of my honeymoon vacation, when i decided to check my email.. i found an email from my mother saying that she has a problem in her college..

my mother - motivated by me - has joined a PhD program.. she's a doctor.. currently making her PhD at the Institute of Public Health. She and my father are staying in KSA currently where she teaches in a girls college.

Her problem was that the PhD exam will take place on 24th of June 2007 in Alexandria. Her vacation at her workplace in KSA starts 27th of June 2007. she needed a paper that states the exam date to pass it to the people there so she can take her vacation earlier.. so we needed someone to go get that paper and send it.. i used to handle this kind of tasks.

it was supposed to be a 30-60 minutes thing, two hours max including the journey. so i thought of checking it right away, i have the car it would be easier for me to do. my brother would have done it. but he was at his work that day.. it was thursday.

i went, didn't find a lot of people due to the funeral of a professor there. the employee at Student Affairs told me there is no one to sign or seal it.. i can pass by on sunday, write a request, and get my paper directly.. i said OK and delegated it to my brother.

Sunday, my brother called, said he made the request and we can take the paper the next day morning. so i told it is ok, i can pass by early before work and take it.

Monday, it rained heavily.. all streets was jammed... the journey overhead would have been a disaster so i decided to postpone it..

Tuesday, i went there to find the paper ready. except that it did not specify the date of the exam explicitly.. i adjusted it in the request.. and it passed the person responsible on typing it on the computer again.. as an early person can expect, the person was there, the PC was off, and "el Dada betnaddaf"... i like that clean place!!!
i knew it had to be signed from the dean after that, sealed and so... so i told the employee that i'll go to my work.. and pass by later in the day to take it.. i was smart enough to take his mobile number so i can check that it was done before i make the journey again. time is valuable as u know!!

Tuesday Afternoon, i called the guy around 1pm. His phone what out of service. i decided to take my chances and go since i know they finish at 2 pm. His mobile was off till i reached there. the request was still in the computer personnel queue.. she was overwhelmed to add a "Date" to the paper..!!! i asked the guy there to push her.. and get done with all the singing and so.. and decided to take first thing next day..

Wednesday, i called the guy early morning before i go... it was typed but not signed yet.. the dean doesn't come at 9 am of course so i went directly to work.... in the middle of the day i tried calling but his mobile was off again... i miss the old land line!!!
he answered at 1:40 pm saying that it was done.. he took off... he won't be there tomorrow.. and that he left it with a colleague there.. and saying that i can go take it now... I have learned the lesson, i knew that i won't find the colleague by the time i reach there... interrupting work is a high overhead..

Thursday, i went before work... Luckily the colleague had arrived.. but she was not on her desk.. she appeared after 10 minutes... she gave my the paper, and asked me to have it sealed from the office next floor, then copied, the to bring her a copy... sealing went fine.. at the copying stage, as usual, the copying machine was not working, the guy there was trying with it.. adjusting the paper carrier, restarting it... another 10-15 minutes... then it was done..

the task consumed the time of about one and half working day.. was done after a week...
it is really amazing how a 2 hours estimated task can actually consume.

i had a lot of free time to think while I'm working on this... Analogies... i tried putting my self in their lazy shoes..
what if Larry was in my place and got affected and delayed because i chosed to work first on a bug that is less critical than a bug he really needs..
why do tasks tend to take so longer than they deserve?!!!
in my case... people involved didn't take it seriously enough.. they lack management.. they lack communication....

applying the same analogies... outch!!!

The morale of this story:
-Do not apply for PhD
-Do not motivate people to apply for PhD


Wednesday, January 10, 2007


i made the wrong decision again...

how many times should one makes it wrong before he learns...

a quote once said... "if u made something wrong.. u'll learn and won't do it again...
and if u made it wrong a second time... u'll do it a third time and a fourth time and so.."

what a terrifying idea...
one can see his defects... can realize them... but can't get over them... what a helpless poor pathetic person...