Filmmaker, Video Editor, Motion Graphics Designer, and Photographer in Cairo, Egypt.
Keeping notes to remember.. You may consider it some sort of Documentation.

Stay In Touch

Saturday, December 18, 2010

Pets at Work!

Is there any law about having pets at work?!! Have no idea actually!

But I know that there's no such thing at my work. So, It's a good thing to have your lovely pets at work.. The friends from the ocean =))

By applying the theory of evolution, just put more pressure, dozens of emails, dozens hours of meetings, extra working hours at holidays.. and voila.. Virtual pets will become REAL pets!! Awesome!! :D

That's unquestionable prove of my unquestionable super magnificent *developing* powers B-)

Saturday, June 26, 2010

10 Really Dumb Mistakes to Avoid in the Field

By Jack Wallen

We all do it. Make mistakes. Some of them are just little DOH! moments that lead to embarrassment. Others, however, lead to disgruntled or (worse) lost clients. Many of those mistakes can be avoided if you know what to watch out for. I'm going to highlight 10 mistakes you don't want to make when you're on a job. Avoiding these mistakes will help you retain your dignity -- and your clients.

# Don't blindly upgrade:
How many times have you upgraded Windows XP to SP3 (including IE 8) only to find out (postmortem) that something in the upgrade has broken some feature or functionality your clients need to do their job? I have seen this far too often. Internet Explorer 8 is notorious for breaking currently working systems. Make sure you know the critical sites your client needs to use and confirm that they work with IE8 before undertaking any upgrades.

# Don't edit configuration files without backing up first:
This can get really tricky when doing things like migrating Linux servers from one machine to another. Make sure you are clear what's a backup and what's a currently working configuration file. Do not let these files cross paths (nor their filenames). Get into the habit of copying and renaming backup configuration files so you know exactly where that working backup file is.

# Don't forget to turn the firewall back on:
You know you've done it. You can't seem to get a network function or feature to work so you shut off the firewall to remove one possible hurdle. In your excitement (after you've nailed the problem), you leave without turning that firewall back on. Bad move. Before you leave that desk, make sure that the firewall is back up and running so that machine is protected.

# Don't forget to document:
How many clients do you have? If that number is more than 0, you need to be keeping documentation on those clients. Having to navigate around the network to discover the lay of the land wastes time. Keep a good record of passwords (unless you prefer to entrust them with clients to preserve your own liability), network addresses, machine names and functions, etc. The more the better.

# Don't do anything without client permission:
No matter what you're working on, you want to make sure the client has given the okay for the job. Think about it this way: Any work you do without client permission could easily be work you won't be getting paid for. Or worse, you might undertake a task (without permission) that could cause data loss, which could lead to much bigger issues with regard to the bigger picture.

# Don't experiment on a client machine:
You might be tempted to try that new "fix" you heard of that can shave a few minutes (or hours) from your job. Don't. Test those hot new fixes either in the office or offsite. Don't trying something unproven unless you are 110% sure that this fix will work for the situation you are about to use it in. And if you do attempt it, make sure you have a backup of the system before you do.

# Don't learn on the job:
We can't know everything. On a daily basis, we run across something we've never used or seen before. When you come across something you know nothing about, don't try to learn about it on the job. Those clients aren't paying you to learn; they're paying you to fix. If you have to research a piece of software, tell the client you will need to do so and you will return when you're ready to tackle the issue. If the client is okay with your learning on the job, do so. Just make sure they're aware that what they are asking is beyond the scope of your knowledge. It's always better to be honest than to try to BS your way out of a situation.

# Don't use Add/Remove Program to uninstall antivirus:
Recently, we had a machine come into the office with FOUR different antivirus apps installed. Needless to say, the machine was nearly unusable. All four pieces of antivirus software had to be removed and, fortunately, we were smart enough to use the included uninstall for each one. When using the Windows Add/Remove Programs tool, the antivirus will leave behind traces that can cause problems for other antivirus tools. Just be safe and use the included uninstall tool for the software.

# Don't go in without knowing the situation:
Unless you're visiting a new client, one of the most unprofessional things you can do is to go into the situation without knowing what's going on or what the layout is. If a fellow employee is about to hand off a client to you, make sure that employee gives you the lowdown on the layout of the network topology, as well as point of contact information and any special information regarding the installations, users, or system quirks.

# Don't leave the site without making sure everything works:
You might think you've covered everything. And everything may work from your perspective. But that's not enough. Sit users down at their computers and make sure things work from their perspective. They are, after all, the ones who have to use the computer. If the machine doesn't work according to their expectations and needs, your work is not done.


Saturday, June 12, 2010

Find Local Open Ports: NETSTAT

netstat (network statistics) is a command-line tool that displays network connections (both incoming and outgoing), routing tables, and a number of network interface statistics. It is available on Unix, Unix-like, and Windows NT-based operating systems.

netstat [-a] [-e] [-n] [-o] [-p Protocol] [-r] [-s] [Interval]

-a : Displays all active TCP connections and the TCP and UDP ports on which the computer is listening.

-e : Displays Ethernet statistics, such as the number of bytes and packets sent and received. This parameter can be combined with -s.

-n : Displays active TCP connections, however, addresses and port numbers are expressed numerically and no attempt is made to determine names.

-o : Displays active TCP connections and includes the process ID (PID) for each connection. You can find the application based on the PID on the Processes tab in Windows Task Manager. This parameter can be combined with -a, -n, and -p.

-p Protocol : Shows connections for the protocol specified by Protocol. In this case, the Protocol can be tcp, udp, tcpv6, or udpv6. If this parameter is used with -s to display statistics by protocol, Protocol can be tcp, udp, icmp, ip, tcpv6, udpv6, icmpv6, or ipv6.

-s : Displays statistics by protocol. By default, statistics are shown for the TCP, UDP, ICMP, and IP protocols. If the IPv6 protocol for Windows XP is installed, statistics are shown for the TCP over IPv6, UDP over IPv6, ICMPv6, and IPv6 protocols. The -p parameter can be used to specify a set of protocols.

-r : Displays the contents of the IP routing table. This is equivalent to the route print command.

Interval : Redisplays the selected information every Interval seconds. Press CTRL+C to stop the redisplay. If this parameter is omitted, netstat prints the selected information only once.

/? : Displays help at the command prompt.


Saturday, May 22, 2010

How to Stay Motivated After You've Made a Mistake

Have you ever had one of those days where you just want to cry, go home and bury yourself under a blanket, or all of the above? We all have those days. We’ve all committed some blunder that is really and truly only ours to own. The question is, what do you do about it?

How you respond to disappointment could determine your eventual success or failure. Why? A really bad day can, at best, cause you to lose momentum, and at worst, cause you to lose your will to continue.

Here are some tips to survive a bad day:

Don’t add more pressure
Forget about turning lemons into lemonade. The first rule to follow when trying to turn around a bad day is to not try to turn around a bad day. Your goal should be to survive the day and minimize the long-term damage by agreeing not to make any decisions. After a barrage of bad news, your decision making ability will be all messed up. Take a break and, if possible, escape!

Avoid overgeneralization
It’s very common for someone to make a mistake and then have that mistake define their whole being. Forgive yourself and put the thing in perspective. The CEO may still give you holy grief but at least you will be easier on yourself. A mistake does not define you as a human being.

Avoid personalization
Some bad things happen that you have no control over. Pagliarini calls this a “cognitive distortion” — the tendency to blame yourself for negative events that are beyond your control.

Don’t obsess
You can go over and over in your mind and find the exact point at which you made a mistake. Maybe it was a conversation where you said something you shouldn’t have. But guess what? The instant replay never changes. You can’t turn back time and do or say something different. Focus instead on how you can move forward, past the incident.

Use a talisman
Maybe you have your diploma hanging on your office wall. Or maybe you have a picture of your spouse and kids. These things should remind you of what’s really important and be evidence of what you can do, not what you can’t or didn’t do.

Do whatever it takes to put things in perspective, because, who knows what good you might accomplish tomorrow.


Tuesday, May 11, 2010

Wednesday, April 14, 2010

Developing Joomla 1.5 Module:: Hello World!

Never thought of developing your own Joomla module??.. I did :D
Here's a simple steps for developing a simple module that says "Hello World".

# At this stage, being familiar with Joomla, PHP, XML, and HTML is needed.

System Requirements:
# Having a Joomal site installed is needed.

Developing Steps:

Step 1: Module Files Structure
- Create a folder/directory with name "mod_helloworld".
- There are two basic files that are used in the standard pattern of module development:
# mod_helloworld.php: This file is the main entry point for the module.
# mod_helloworld.xml: This file contains information about the module. It defines the files that need to be installed by the Joomla! installer and specifies configuration parameters for the module.
- Create those two files in your module's folder/directory.
Hint: the folder and those two files has to have the same name, and has to start with "mod_".

Step 2: The PHP File
For now, we need only one line on PHP code, and a HTML tag for printing the text. So, our PHP file will be as follows:


defined('_JEXEC') or die('Restricted access');

Here we are!</h1>

<p>It workssssssssss!!!</p>

The PHP line is commonly found at the start of Joomla! PHP files. "_JEXEC" is a constant with a boolean value either being 1 or 0. This constant is used to check if Joomla! is calling the file, or if a person has directly typed the path to the file in the URL. Joomla! sets _JEXEC to 1 (or any positive value really) when it is the one calling the file. _JEXEC is normally used to check to make sure that no direct access to the file is being used.

Step 3: The XML File
Here's how the module XML file has to look like:

# install: This is the parent tag that defines the rest of the installer file for Joomla!. It has an attribute for type which in this case is module. It also takes a value for the version of Joomla! it can run on.
# name: This is the name of your module.
# author: This is the name of the author for the module.
# creationDate: This is the date the module was created.
# copyright: This is the copyright holder of the module's code.
# license: This is the name of, or a reference to, the license under which the module is released.
# version: This is the version of the module.
# description: This is a free text description of the module.
# files: This is a collection of the files included with the module.
# filename: This is a file that is used by the module. Any number of files can be listed, including files in a subdirectory.
# param: This element takes a number of mandatory and optional arguments that depend on the type argument.
# type: This specifies the type of HTML form control used in the Template Parameters screen in the Administrator to allow the user to change the value of the parameter.
# name: This is the unique name of the parameter.
# default: This is the default value of the parameter.
# description: This is text that will be displayed as a tooltip for the field in the Template Parameters screen in the Administrator.
# label: This is the descriptive title of the field which will be shown to the user in the Template Parameters screen in the Administrator.

The Template Parameters screen for this example will look like this:

Step 4: Installation
- Now zip your module's folder.
- Install it as you used to install any Joomal module.
- Make sure that it's enabled.

- Then click Preview to check out what you did

Pretty cool!


Tuesday, February 23, 2010

Using Art To Bring Scientific Concepts To Life

Sometimes the grand ideas behind science's most important and intriguing concepts are so abstract they can be difficult to understand. One of the main goals of the International Science and Engineering Visualization Challenge, sponsored by the journal Science and the National Science Foundation, is to help bring these scientific concepts to life through stunning visualizations.

The photographs, illustrations, video, and interactive graphics submitted by the contest's participants are meant to help us understand both the beauty and the science behind life's many secrets. This gallery shows just a few of the winners, which were announced Friday.

During their experiments at the University of North Carolina at Chapel Hill, Briana Whitaker and Briana Carstens captured this flower-like image of polymers just 10 micrometers tall. While researching the state of cells that bind together skin wounds, the polymers, which are usually stacked in a pillar, fell over, creating this colorful pattern. The resulting image won honorable mention in the photography category.

This image, called "Save our earth. Let's go green," was this year's winning entry, created by Sung Hoon Kang, Joanna Aizenberg, and Boaz Pokroy from Harvard University. The photo was taken through an electron microscope and shows self-assembling polymers designed by the team. They hope to use the hair-like fibers to create more energy-efficient materials.


Friday, February 19, 2010

Growing Great New Managers (2)

Not Too Deep and Not Too Shallow
When a gardener has chosen his or her plants, the next step is to make sure they’re planted well—not too deep and not too shallow. In the same way, it’s important to start new employees off on the right foot by making sure they’re “planted” at the right depth.

An employee who’s not given key information is “planted too shallow,” and will have a hard time getting what he or she needs from the organization in order to grow. An employee who’s overloaded with information and unrealistic expectations is “planted too deep,” and is likely to suffocate—paralyzed by too much, too soon.

One way to help yourself do this well: remember that almost everyone in a new situation wants to know three things: who’s important to their success, what’s expected of them, and how things get done in this particular culture. If you focus on conveying just these things—being careful to stop when the person looks glazed or starts to drift—you (and they) will probably be OK.

The Gardener’s Mind
Successful gardeners have a certain mindset: they trust in their own skills and they trust in the power of nature; they know that rain falls, the sun shines, and seeds grow. They know that nature and their plants will do a lot of the work, and that they’ll need to help nature along and take best advantage of it.

The mindset of a successful manager is very similar: he or she believes in people’s potential and wants to help them succeed. I feel very strongly that if you’re a manager, and you have an employee about whom you cannot say “I believe in your potential and I want to help you succeed,” then that person shouldn’t be working for you.

Staking and Weeding
There are day-to-day tasks a gardener does to keep a garden thriving—staking, weeding, spraying, pruning, etc. They may not be the most fun or creative aspects of gardening but they nip problems in the bud and give plants a chance to bloom. Two managerial equivalents of these not-fun-but necessary maintenance tasks are the skills of making agreements and giving feedback.

Research has shown that one of the things employees most need, in order to feel positive and be productive, is to know what’s expected of them. That’s what making clear agreements is about. Too often, managers give employees only the most general and ill-defined sense of what they’re supposed to be doing, and—more important—of the results they’re being held accountable for achieving. It’s kind of like sending someone in to run a race without telling them where the finish line is, who they’ll be competing against, or what the rules are!

If you want people to feel good about their jobs and get great results, it’s completely worth the investment of time to get clear with them about “what success looks like”—that is, what you expect them to do, why and by when; to give them the chance to weigh in with any questions, concerns or ideas; to make sure you both have the same understanding of the agreement; and, finally, to support a successful outcome by doing whatever you said you’d do —provide resources, give feedback, etc.

Letting It Spread
The most lush and exuberant gardens are those allowed to spread—to indulge in their natural tendency to expand into new seedlings and new shoots. One of the most powerful ways to grow great employees is to delegate authority and responsibility to them—to “let them spread.”

Most managers have had bad experiences with delegation: I can’t tell you how many times I’ve heard managers say same version of, “Well, I try to delegate—but it’s so much easier just to do it myself.” The problem is, it may be easier in the short run, but in the long run it limits your effectiveness (if you’re still doing all the work your employees should be doing, that doesn’t leave you much time to do the bigger stuff) and it limits your employees’ growth and opportunity… and if that happens too much, over a long enough period of time, they’re likely to leave.

One important tip for delegating well is: give autonomy according to experience. Here’s what I mean. Let’s say you want an employee to take over the management of a yearly event. You know that he has a lot of experience in some parts of this kind of project: let’s say, for instance, he’s great at organizing and executing a detailed plan. On the other hand, you know he’s hasn’t had much experience at dealing with clients, and that’s also an important part of this event.

So, when you’re delegating this project to him, you might say something like: “Gary, I know you’re really well organized and excellent at making sure that all the details are in place. So let’s just check in weekly on that, and you can come to me if there are any problems. I also know that the client contact part of this project will be new to you, so I really want to stay closely involved there: let’s do the first couple of client meetings together, and debrief after wards. Then, when you feel ready to try one on your own, we’ll talk through it first to make sure you’ve thought of everything that’s important. “

In other words, you give autonomy according to experience. Delegation done in this way is far more likely to produce the results you’re hoping for: things coming off your plate, yet still done well; employees taking on and succeeding at new challenges.

Plants Into Gardeners
In being a leader, there’s a possibility that doesn’t exist in gardening; some of your plants have
the potential to become gardeners! You have the opportunity to help your employees develop new skills and abilities, including management and leadership. One thing that’s important to remember: most people want to grow and develop, but they need some help to do so. As the manager, you’re in a unique position to offer that help: you probably see their professional strengths and weaknesses more clearly than anyone else in their life—and you can support them to find the resources and knowledge to achieve their potential.

If you wonder whether you have time to be a coach—given your day job—just remind yourself that the investment of time and energy you make in this realm will have a big return: skillful,independent employees who respect, trust and like you, and who most likely want to support your success as you’ve supported theirs!


Growing Great Employees: Turning Ordinary People Into Extraordinary Performers
By: Erika Andersen

Thursday, February 18, 2010

Growing Great New Managers

Imagine, for a moment, that you’ve been put on an island and handed a sack of rice, some vegetable plants, and a chicken. “Good luck,” says the person who brought you there. “You’ll be responsible for growing your own food now; I know you’ve never done that before, but I have every faith in your ability.” Then he gets in the boat and leaves, merrily waving goodbye.

Crazy, right?

Why wouldn’t he at least stay to get you started that first growing season, helping you develop the skills you need to plant and nurture your veggies and rice, and keep your chicken alive and laying.

Thousands of brand new managers are handed a couple of employees and told, in effect, “You’ll be responsible for managing these people now; I know you’ve never done that before, but I have every faith in your ability. Good luck!”

How odd this is. If you’re going to be a lawyer, you go to law school. If you’re going to be a doctor, you go to medical school. If you’re going to be a manager, you get promoted one day, and you’re magically supposed to know how to manage.

Now, I could kind of understand this if it didn’t make any difference: if people didn’t care how they were managed, and if their performance didn’t depend at all on how they were managed. But they do and it does. In fact, I would go so far as to say that, in my experience, it’s really difficult for a business to get consistently good results if its employees are badly managed.

Preparing the Soil
Every gardener knows that preparing the soil is the first and best secret of successful gardening. I believe that listening is the management analog of soil preparation, the foundation for all future success. This flies in the face of common wisdom: most of us assume that once we become managers, we’re supposed to stop listening. I suggest that the single most useful thing you can learn to do as a manager is stop talking and start listening.

Here’s one quick, practical step you can take to get you headed in the right direction: Ask before answering. When an employee comes to you wanting a solution to a problem, pause for a moment before responding, and instead of just leaping into answer-person-problem-solver mode, ask a question. Not a fake I’m-supposedto-ask-a-question-here question, but a real one.

A bunch of great things will happen as a result of your doing this. First, your employees’ own problem-solving abilities will be strengthened. For them, asking you for the solution is the easy way out; having to think through it themselves is harder, but ultimately better for them (they grow professionally); you (they become less dependent on you); and the company (it’s always better for a company to have more people who are capable of solving problems).

Second, it lets your employees know that you think they have good brains; that they’re capable of solving problems; that you expect and require that they will contribute to the success of the department or the business. Doing this communicates trust and respect more powerfully than a hundred wall posters about trust and respect!

Plan Before You Plant
Good gardeners think through the kind of garden they want to create before they start buying plants. And having decided what they’re trying to create, they buy plants that will suit their purpose. In the same way, good managers get clear about the kind of team, department, or business they’re trying to create, and then choose the right employees to help them create it.

Picking Your Plants
So, once a gardener has decided what kinds of plants she needs, there’s an easy next step. She just goes to the nursery or garden center, and reads the tags on the plants. They give her all the information she requires about the conditions that plant needs, so she can fairly quickly tell whether it’s likely to do well in the kind of garden she’s creating.

Unfortunately, job candidates don’t come with plant tags (resumes are kind of like plant tags, but they fairly limited… basically they just say “I performed really well in another garden, which may or may not be anything like your garden, but you have no real way of knowing”). So, what’s a good manager to do? Interviewing is your best way to find out how an employee will do in your “garden.”

Unfortunately, most managers are (self-admitted) poor interviewers. Here are two things you can do to immediately make yourself better at this important skill:
Shut up: Most interviewing managers talk way, way too much (I think it’s part of that answer-person thing I mentioned earlier). They lapse into trying to sell the person on the job and the company, or maybe they’re just uncomfortable with the candidate’s discomfort. Whatever the motivation, just stop it. You’re supposed to be finding out about them.

Don’t ask questions to which there are obvious right answers: Interviewers tend to ask questions like, “We really expect everyone we hire to be pretty self-directed, and not require a lot of hand holding. Would you be OK with that?” Unless you’re brain-dead, or really don’t want the job, the only possible answer is some version of “Yes.” Instead, the interviewer might ask something like, “What style of management works best for you—how do you like to be managed?” There isn’t a right answer here—the person has no choice but to tell you what’s true for them (or what they think you want to hear, if that’s the sort of person they are), but—in any case, you’ll get a lot more data on which to base your hiring decision.
To Be Continued...

Wednesday, January 27, 2010

Thursday, January 21, 2010