Feeds:
Posts
Comments

Archive for March, 2010


[tweetmeme source=”aabdulmoniem” only_single=false]

I am gonna start a new series for a very interesting topic which is object oriented design patterns. Yeah, I hear some of you are saying now: “Hey, did you ever hear about something called gang of four?!!”. Really, I do. But I am not coming here to reinvent the wheel. I am trying here to add some value on this interesting topic by diving deeply into it.

Really, there are enormous topics we can discuss about every design pattern but the most important one that I think we should discuss deeply and we should add to the design pattern empire is how to use it in real applications?! Yeah, we will discuss all the basics of each design pattern but for the practical part I didn’t find a real complete one example you can rely one or I think that all what I have seen in books, articles and forums not a real complete example.

As you may know, design patterns are divided into three categories with 23 design patterns as defined in the famous book Gang of four, and here are the categories:

  1. Structural Patterns
  2. Creational Patterns
  3. Behavioral Patterns

I have chosen to start with structural patterns. I will just give you an overview of this category here and we will continue to discuss each design pattern in this category in upcoming posts.

What are Structural Patterns?

Simply, Structural patterns are concerned with how classes and objects are composed to form larger structures.

Purposes

  • Add new functionality dynamically to existing objects, or remove it.
  • Control access to an object.
  • Create expensive objects on demand.
  • Enable development of the interface and implementation of a component to proceed independently.
  • Match otherwise incompatible interfaces.
  • Reduce the cost of working with large numbers of very small objects.
  • Reorganize a system with many subsystems into identifiable layers with single entry points.
  • Select or switch implementations at runtime.
  • Simplify the interface to a complex subsystem.
  • Treat single objects and composite objects in the same way.

Design Patterns Included

  1. Decorator (Part 1, Part 2)
  2. Proxy (In Press …)
  3. Bridge
  4. Composite
  5. Flyweight
  6. Adapter
  7. Façade

When to use it?

Structural patterns can be employed while a system is being designed, or later on during maintenance and extension. In fact, some of them are specifically useful in the post-production stages of the lifecycle of a software system, when changes are introduced that were not foreseen and when even the interfaces between components need updating. Thus, sometimes when you want to add functionality, you will be working with existing classes that cannot be changed. The Decorator pattern is useful here. Alternatively, you might be able to design a whole system from scratch so that it works in a particularly usable way, with the Composite pattern.

Next Step

We will start by discussing Decorator pattern. Stay with us.


References:
  • Addison Wesley – Gang of Four – Design Patterns, Elements of Reusable Object Oriented Software
  • O’Reilly – C# 3.0 Design Patterns

Read Full Post »


[tweetmeme source=”aabdulmoniem” only_single=false]

Again with a great video series made by Drew Noah, how to use Google Documents?!

Enjoy watching!

  1. Understanding finance formulas in Google documents is easy with these tips, get expert advice on business software and the internet in this free video.

    Views: 2,255
  2. Doing spreadsheet revisions in Google documents is easy with these tips, get expert advice on business software and the internet in this free video.

    Views: 1,226
  3. Sharing spreadsheets in Google documents is easy with these tips, get expert advice on business software and the internet in this free video.

    Views: 1,438
  4. Understanding spreadsheets in Google documents is easy with these tips, get expert advice on business software and the internet in this free video.

    Views: 1,435
  5. Publishing spreadsheets in Google documents is easy with these tips, get expert advice on business software and the internet in this free video.

    Views: 1,390
  6. Changing spreadsheet colors in Google documents is easy with these tips, get expert advice on business software and the internet in this free video.

    Views: 2,104
  7. Making a chart in Google documents is easy with these tips, get expert advice on business software and the internet in this free video.

    Views: 3,329
  8. Google documents has many spreadsheet options for formulas, macros, and editing data, get expert tips and advice on business software and the internet in this free video.

    Views: 1,384
  9. Using the presentation toolbar in Google documents is easy with these tips, get expert advice on business software and the internet in this free video.

    Views: 1,328
  10. Uploading in Google documents is easy with these tips, get expert advice on business software and the internet in this free video.

    Views: 1,167
  11. Formatting presentations in Google documents is easy with these tips, get expert advice on business software and the internet in this free video.

    Views: 1,234
  12. Sharing presentations in Google documents is easy with these tips, get expert advice on business software and the internet in this free video.

    Views: 1,157
  13. Using presentations in Google documents is easy with these tips, get expert advice on business software and the internet in this free video.

    Views: 1,811
  14. Google documents has many file options for presentations, learn all about them and get expert tips and advice on business software and the internet in this free video.

    Views: 1,100
  15. Using Google documents is easy with these tips, get expert advice on business software and the internet in this free video.

    Views: 1,311

Read Full Post »


[tweetmeme source=”aabdulmoniem” only_single=false]

I have recently came into this super series which gives you a deep understanding of how to use google calendar. Really, too useful. Enjoy it.

  1. How to set up a Google account; get started using Google Calendar in this free instructional video.

  2. Learn about all the features of Google Calendar in this free instructional video.

  3. How to import calendars from other programs into Google Calendar; learn more about Google features and interfaces in this free instructional video.

  4. How to use the My Calendar and Other Calendar features of Google Calendar; learn more about Google features and interfaces in this free instructional video.

  5. How to create an event on Google Calendar; learn more about Google features and interfaces in this free instructional video.

  6. How to invite guests to an event on Google Calendar; learn more about Google features and interfaces in this free instructional video.

  7. How to set up different views for Google Calendar; learn more about Google features and interfaces in this free instructional video.

  8. How to search within Google Calendar; learn more about Google features and interfaces in this free instructional video.

  9. How to change general settings for Google Calendar; learn more about Google features and interfaces in this free instructional video.

  10. How to manage calendars in Google Calendar; learn more about Google features and interfaces in this free instructional video.

  11. How to share calendars in Google Calendar; learn more about Google features and interfaces in this free instructional video.

  12. How to change notification options in Google Calendar; learn more about Google features and interfaces in this free instructional video.

  13. How to put Google Calendar on a cell phone; learn more about Google features and interfaces in this free instructional video.

  14. How to embed Google Calendar on a website; learn more about Google features and interfaces in this free instructional video.

  15. Get help with Gmail integration and keyboard shortcuts for Google Calendar; learn more about Google features and interfaces in this free instructional video.

Read Full Post »


[tweetmeme source=”aabdulmoniem” only_single=false]

Here are the most amazing posters I have ever seen.

  1. .NET Framework 2.0 Poster.
  2. .NET Framework 3.5 Poster.
  3. .NET Framework 3.5 SP1 and .NET Framework 4.0 Poster.

Enjoy the posters!

.NET 2.0 Poster

.NET 2.0 Poster

.NET 3.5 Poster

.NET 3.5 SP1 + .NET 4.0 Poster

Read Full Post »


[tweetmeme source=”aabdulmoniem” only_single=false]

I ran into a problem today when I tried to convert a png image file to an ico file. Really, I was trying to make a simple icon to my new packaged setup for one of my applications.

Usually, I am using a software to convert images to icons, but usually also, I uninstall these kinds of software from my machine as soon as I finished my conversion task. Then when I need them again I will search for them from the web and then reinstall it and so on.

Besides, many of these kinds of software are trials and seems to me like a trojans or some kind of crap!

Today, I am coming to you with a free simple web tool to convert your png files to ico files only with one click from here.

All you need is to upload your png file or refer to it from the web and click, and viola, your ico file is ready to be downloaded.

Read Full Post »


[tweetmeme source=”aabdulmoniem” only_single=false]

Yesterday, I have published this quiz which measures your estimation skills. I am now publishing the quiz answer here in order to measure how good an estimator are you? If you didn’t solve the quiz yet, please try to solve it before knowing the answers.

Remember, The purpose of this quiz is not to determine whether you know when Alexander the Great was born or the latitude of Shanghai. Its purpose is to determine how well you understand your own estimation capabilities.

Item Answer
Surface temperature of the Sun 10,000°F/ 6,000°C
Latitude of Shanghai 31 degrees North
Area of the Asian continent 17,139,000 square miles

44,390,000 square kilometers

The year of Alexander the Great’s birth 356 BC
Total value of U.S. currency in circulation in 2004 $719.9 billion [*]
Total volume of the Great Lakes 5,500 cubic miles

23,000 cubic kilometers

2.4 x 10^22 cubic feet

6.8 x 10^20 cubic meters

1.8 x 10^23 U.S. gallons

6.8 x 10^23 liters

Worldwide box office receipts for the movie Titanic $1.835 billion[*]
Total length of the coastline of the Pacific Ocean 84,300 miles

135,663 kilometers

Number of book titles published in the U.S. since 1776 22 million
Heaviest blue whale ever recorded 380,000 pounds

190 English tons

170,000 kilograms

170 metric tons

[*]Billions are U.S. billions (that is, 10^9) rather than British billions (10^12)‥

Read Full Post »


[tweetmeme source=”aabdulmoniem” only_single=false]

Another big WOW. What a chapter! too short, and too useful. I was shocked for the first time when I saw this chapter is almost only 2 pages! And I was totally shocked again when I figure out that the first page on the chapter in fact just a quiz!

Quiz for what?! It is the title of this chapter, it is about how good an estimator are you?! It is a short quiz to test your estimation capabilities but it is really interesting.

Here it is:

[This] quiz [is] designed to test your estimation skills. Please read and observe the following directions carefully:

  • For each question, fill in the upper and lower bounds that, in your opinion, give you a 90% chance of including the correct value. Be careful not to make your ranges either too wide or too narrow. Make them wide enough so that, in your best judgment, the ranges give you a 90% chance of including the correct answer. Please do not research any of the answers—this quiz is intended to assess your estimation skills, not your research skills. You must fill in an answer for each item; an omitted item will be scored as an incorrect item. Please limit your time on this exercise to 10 minutes.
  • The correct answers to this exercise (the latitude of Shanghai, for example) [will be published soon.] Give yourself one point for each of your ranges that includes the related correct answer.

How Good an Estimator Are You?
[Low Estimate – High Estimate] Description
[ _______________ – _______________ ] Surface temperature of the Sun
[ _______________ – _______________ ] Latitude of Shanghai
[ _______________ – _______________ ] Area of the Asian continent
[ _______________ – _______________ ] The year of Alexander the Great’s birth
[ _______________ – _______________ ] Total value of U.S. currency in circulation in 2004
[ _______________ – _______________ ] Total volume of the Great Lakes
[ _______________ – _______________ ] Worldwide box office receipts for the movie Titanic
[ _______________ – _______________ ] Total length of the coastline of the Pacific Ocean
[ _______________ – _______________ ] Number of book titles published in the U.S. since 1776
[ _______________ – _______________ ] Heaviest blue whale ever recorded
Source: Inspired by a similar quiz in Programming Pearls, Second Edition (Bentley 2000).
This quiz is from Software Estimation by Steve McConnell (Microsoft Press, 2006) and is © 2006 Steve McConnell. All Rights Reserved. Permission to copy this quiz is granted provided that this copyright notice is included.

How did you do? (Don’t feel bad. Most people do poorly on this quiz!) Please write your score here: _____________

Really, Interesting quiz and I have tried to answer it and I have a bad score indeed.

What I have learned?

  • Most people’s intuitive sense of “90% confident” is really comparable to something closer to “30% confident.”
  • Don’t provide “percentage confident” estimates (especially “90% confident”) unless you have a quantitatively derived basis for doing so.
  • Avoid using artificially narrow ranges. Be sure the ranges you use in your estimates don’t misrepresent your confidence in your estimates.
  • Much of the pressure to provide narrow ranges is self-induced. Some of the pressure comes from people’s sense of professional pride. They believe that narrow ranges are a sign of a better estimate, even though that isn’t the case. And some of the pressure comes from experiences with bosses or customers who insisted on the use of overly narrow ranges.
  • If you are feeling pressure to make your ranges narrower, verify that the pressure actually is coming from an external source and not from yourself.
Another big WOW. What a chapter! too short, and too useful. I was shocked for the first time when I saw this chapter is almost only 2 pages! And I was totally shocked again when I figure out that the first page on the chapter in fact just a quiz!

Read Full Post »

Older Posts »

%d bloggers like this: