tag:blogger.com,1999:blog-47230205837338162082024-03-13T03:13:31.176-07:00Ahmed OrabiI'm writing here to share some thoughts on my projects, during my computer engineering study.Ahmed Orabihttp://www.blogger.com/profile/06702288258413210720noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-4723020583733816208.post-32097966614965059752012-05-20T16:26:00.004-07:002013-07-29T13:42:41.184-07:00QandA: An open-domain question answering system<div class="separator" style="clear: both; text-align: left;">
<br /></div>
QandA is my graduation project. It is a web-based natural language open-domain question answering system. Its goal is to retrieve best relevant short answers to users' English questions that are written in natural language, rather than retrieving complete documents or best matching passages like what most of the information retrieval systems do. It extracts answers from any collection of texts, by combining syntactic and semantic analysis, and using different knowledge sources.<br />
<br />
Here is a demo that shows the QandA system operating on a supplied passage, and it answers the proposed questions in real time.<br />
<br />
<br />
<div style="text-align: left;">
<div>
<br /></div>
</div>
<div style="text-align: left;">
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/a_y5tFR7-gM/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/a_y5tFR7-gM?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="320" height="266" src="http://www.youtube.com/v/a_y5tFR7-gM?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
</div>
Ahmed Orabihttp://www.blogger.com/profile/06702288258413210720noreply@blogger.com0tag:blogger.com,1999:blog-4723020583733816208.post-62119706000705515052011-05-16T18:37:00.000-07:002011-05-19T16:35:49.842-07:00Real time hand detection and gesture recognition<span class="Apple-style-span" style="font-size: 13px;">This was a computer vision research project. Hand detection and gesture recognition can be used in many helpful applications, and I've implemented some efficient techniques and algorithms to detect hand gestures, and to be able to control the PC and play games using the detected gestures.</span><br />
<div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
One of the techniques I've used depends on the skin color features in the YCrCb color space. This color space is much preferable than RGB and HSV, as the skin color can be much efficiently differentiated in the YCrCb.</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">For a more efficient detection, I implemented a background subtraction algorithm to differentiate between skin like objects and real skin colors. Initially, a frame is captured with only the background in the scene, after that, for every captured frame, each pixel in the new frame is compared to its corresponding one in the initial frame, if they pass a certain threshold according to specific algorithm computations, then this pixel is considered from the human body and it will be drawn in a new frame with its original color. If this pixel is below the threshold, then those two pixels are considered the same and they are considered as background so the corresponding pixel will take a zero color in the third frame. After repeating this for all frames' pixels, now we will have a new frame with only a human appearing in it, and all the background took a color of zero.</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">After that, I apply the skin color detection algorithm on the resultant frame as I'm having now a clear human body, this algorithm will result in two objects only (assuming the user will use one hand) that are the user's hand and his face. Here the face will have two clear holes in the eyes' places, so it will be easily detected as a face and it will be discarded from the scene as shown in the next figure.</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-NdjinOOdNM0/TdHDHBg-5rI/AAAAAAAAAFM/6tYMSFCHoO0/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://3.bp.blogspot.com/-NdjinOOdNM0/TdHDHBg-5rI/AAAAAAAAAFM/6tYMSFCHoO0/s400/3.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-gOd3V4CkoUY/TdHE5gnDf7I/AAAAAAAAAFY/pK3pU3kZQ0g/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://3.bp.blogspot.com/-gOd3V4CkoUY/TdHE5gnDf7I/AAAAAAAAAFY/pK3pU3kZQ0g/s400/6.png" width="400" /></a></div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">Now we are having the detected hand, I applied on this hand object an efficient gesture recognition algorithm, that draws a convex hull over the hand object, and counts the number of defects in this hull, if no defects found, then it is a closed hand, if five defects found, then there are five fingers waving, and so on.</div><div class="separator" style="clear: both; text-align: center;"></div><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-mf8bokXbElQ/TdHEs95MC3I/AAAAAAAAAFU/199VAMXrvGI/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://4.bp.blogspot.com/-mf8bokXbElQ/TdHEs95MC3I/AAAAAAAAAFU/199VAMXrvGI/s400/5.png" width="400" /></a></div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
Here is a video showing how it works<br />
<br />
</div><div class="separator" style="clear: both; text-align: center;"></div><div style="text-align: -webkit-auto;"><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div><div style="text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/ex-1SFjRoyY?feature=player_embedded' frameborder='0'></iframe></div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">This technique proved that it is better than a lot of others I also implemented, that depend on HSV color space and chamfer matching.</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div>Ahmed Orabihttp://www.blogger.com/profile/06702288258413210720noreply@blogger.com9tag:blogger.com,1999:blog-4723020583733816208.post-45280636590848246212011-05-16T14:12:00.000-07:002011-05-16T19:00:12.454-07:00I-Deliver<div dir="ltr" style="text-align: left;" trbidi="on"><span class="Apple-style-span" style="color: #333333; font-family: Arial, sans-serif; font-size: 13px; line-height: 22px;">I would like to talk about my first robot :)</span><br />
<div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">Actually it is not a real robot :) it can be considered a delivery car controlled from the PC. This car can deliver papers or any lightweight materials from one place to another automatically without human help or interference. </div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">First you give it a map for the building or the flat you live in, this map has checkpoints for the rooms, kitchens and any other stop point you would like to have. The map can be generated using a simple interface to tell the car about places it can move through, and places it cannot.</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">After installing your map, you can order the car to deliver anything from its current place to a destination point, you make your orders using a keyboard matrix installed on the car where you can select the room number and simply press GO, after that, the car will move according to your map, going left and right, bypassing walls, making sound alerts if someone stopped in front of it, until it reaches its destination point at the requested room.</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">We have built this car from A to Z in about 10 days of hard work, Its cost is not huge, It is simple, but actually it costed us much money :) as we burned and destroyed hundreds of ICs :). Note that this was our first time to deal with a complex hardware and to implement electronic circuits by hand in a real project.</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">We used:<br />
<br />
<ul><li>Two stepper motors (5V 1A each) to control the two front wheels, and two interfacing drivers one for each motor (M106)</li>
<li>A keyboard matrix, to input the commands and room numbers from the user</li>
<li>An infrared sensor</li>
<li>A parallel cable, to interface the devices with the PC (for sure it is not a good option but remember it is not an embedded project)</li>
<li>And of course there were some transistors, resistors, voltage regulators, capacitors and different sorts of ICs.</li>
</ul></div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">Don't laugh at its shape, I know it is like a duck :).</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;">This is before the surgery finishes:<br />
<br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-EwooL27arS0/TdGSxrvj0lI/AAAAAAAAAFA/Hk_Z00f9gu4/s1600/20100518058.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://4.bp.blogspot.com/-EwooL27arS0/TdGSxrvj0lI/AAAAAAAAAFA/Hk_Z00f9gu4/s400/20100518058.jpg" width="400" /></a></div><br />
Its final shape:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-Tq2tqU7uIHo/TdGS8ojqt2I/AAAAAAAAAFE/aqUyDC4WJzk/s1600/20100518063.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://3.bp.blogspot.com/-Tq2tqU7uIHo/TdGS8ojqt2I/AAAAAAAAAFE/aqUyDC4WJzk/s400/20100518063.jpg" width="400" /></a></div><div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><br />
</div></div>Ahmed Orabihttp://www.blogger.com/profile/06702288258413210720noreply@blogger.com0tag:blogger.com,1999:blog-4723020583733816208.post-19194872421543124002011-05-16T13:50:00.000-07:002011-05-16T14:38:00.668-07:00Namaa Management System<div dir="ltr" style="text-align: left;" trbidi="on">Back again, to write about my voluntary application I've successfully delivered.<br />
<br />
This is a desktop based application, to manage an Egyptian charity organization called Namaa. It is to manage the data of orphans, poor, volunteers, offers, donations, loans and projects. It was implemented using C#.net and MS SQL Server. It contains very simple UI, has a lot of functionalities and very easy to use.<br />
<br />
Here are some screen shots of it<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-SqMPa6WsZTs/TdGKt65BZQI/AAAAAAAAAEs/qUwosb4dExg/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://1.bp.blogspot.com/-SqMPa6WsZTs/TdGKt65BZQI/AAAAAAAAAEs/qUwosb4dExg/s400/1.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-0xAlDCBXERQ/TdGKzNq9ZgI/AAAAAAAAAEw/GvjV2uyVuJw/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://1.bp.blogspot.com/-0xAlDCBXERQ/TdGKzNq9ZgI/AAAAAAAAAEw/GvjV2uyVuJw/s400/2.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-MZL_SxSNF7A/TdGK3kLd5cI/AAAAAAAAAE0/64wnxN4JLlM/s1600/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://1.bp.blogspot.com/-MZL_SxSNF7A/TdGK3kLd5cI/AAAAAAAAAE0/64wnxN4JLlM/s400/3.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-NadoyfIcxmw/TdGK83chsTI/AAAAAAAAAE4/de1agSvg5Ys/s1600/4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://4.bp.blogspot.com/-NadoyfIcxmw/TdGK83chsTI/AAAAAAAAAE4/de1agSvg5Ys/s400/4.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-cf9QJHuCGxQ/TdGLA5Jhh0I/AAAAAAAAAE8/C65pZvXDQiE/s1600/5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="http://1.bp.blogspot.com/-cf9QJHuCGxQ/TdGLA5Jhh0I/AAAAAAAAAE8/C65pZvXDQiE/s400/5.jpg" width="400" /></a></div><br />
</div>Ahmed Orabihttp://www.blogger.com/profile/06702288258413210720noreply@blogger.com0tag:blogger.com,1999:blog-4723020583733816208.post-24989307177852376292010-02-07T04:57:00.000-08:002011-05-16T19:08:03.383-07:00Database sharing using AssemblyThis is also my first project using Assembly.<br />
<br />
It is just a simple application on Serial Communication using Assembly in the Microprocessors course.<br />
<br />
Assuming that there is a client PC and another PC that acts as a server. The server has the DBMS installed on it and has all the database needed. In order for the client to get some facts or make some queries on the database, he doesn't need to install the DBMS and take a backup from the database from the server and so.<br />
<br />
So the client will make the queries that he want using this application which connects the client and server serially, the server executes the received query through the SQLCMD in a similar way to what is shown in the image:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_Yy4SmzrYqFg/S264O7n4-HI/AAAAAAAAACg/vuUsIcREulc/s1600-h/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="198" src="http://4.bp.blogspot.com/_Yy4SmzrYqFg/S264O7n4-HI/AAAAAAAAACg/vuUsIcREulc/s400/Untitled.png" width="400" /></a></div><br />
and the client will get the query result as in the image below or he can receive it in any other way.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_Yy4SmzrYqFg/S264c-vfP7I/AAAAAAAAACo/XXrKF54xYFU/s1600-h/QueryText.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/_Yy4SmzrYqFg/S264c-vfP7I/AAAAAAAAACo/XXrKF54xYFU/s320/QueryText.png" /></a></div><br />
The server application is implemented as a TSR (Terminate and Stay Resident) program.Ahmed Orabihttp://www.blogger.com/profile/06702288258413210720noreply@blogger.com0tag:blogger.com,1999:blog-4723020583733816208.post-31736499862295322882010-02-05T19:23:00.000-08:002012-06-30T09:25:22.993-07:00My First Game<div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-size: small;">This is my first C++ 3D game ( Using DirectX 9 )</span></div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-size: small;"><br />
</span></div>
</div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-size: small;">This game was my graphics course's project, i was in a team of 4 and we made this game in about 10 days as it was our first practice in using directX9 and game programming.</span></div>
</div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-size: small;"><br />
</span></div>
</div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-size: small;">It's story is about a soldier that faces the attack from a lot of tanks and planes that fights that soldier.</span></div>
</div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-size: small;"><br />
</span></div>
</div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-size: small;">Here are some screen shots of the game ....</span></div>
</div>
<div>
<div style="margin: 0px;">
<br /></div>
</div>
<div>
<div style="margin: 0px;">
<br /></div>
</div>
</div>
<div>
<div style="margin: 0px;">
<img alt="" border="0" id="BLOGGER_PHOTO_ID_5434954647522311874" src="http://3.bp.blogspot.com/_Yy4SmzrYqFg/S2zWdM_s_sI/AAAAAAAAAAs/FYETMJIsoug/s320/Loading.jpg" style="cursor: pointer; display: block; height: 184px; margin: 0px auto 10px; text-align: center; width: 320px;" /></div>
</div>
<div>
<div style="text-align: center;">
<div style="margin: 0px;">
<br /></div>
</div>
<div style="margin: 0px;">
<img alt="" border="0" id="BLOGGER_PHOTO_ID_5434958340000797986" src="http://2.bp.blogspot.com/_Yy4SmzrYqFg/S2zZ0IjLVSI/AAAAAAAAAA0/LLiK5EAs_7Y/s320/Menu.jpg" style="cursor: pointer; display: block; height: 182px; margin: 0px auto 10px; text-align: center; width: 320px;" /></div>
</div>
<div style="text-align: center;">
<div style="margin: 0px;">
<br /></div>
</div>
<div style="text-align: center;">
<div style="margin: 0px;">
<span style="font-size: small;">Level 1</span></div>
</div>
<div style="margin: 0px;">
<img alt="" border="0" id="BLOGGER_PHOTO_ID_5434954621697319554" src="http://3.bp.blogspot.com/_Yy4SmzrYqFg/S2zWbsyi4oI/AAAAAAAAAAM/--HkoLr7sOg/s320/Level1.jpg" style="cursor: pointer; display: block; height: 186px; margin: 0px auto 10px; text-align: center; width: 320px;" /></div>
<div>
<div style="text-align: center;">
<div style="margin: 0px;">
<br /></div>
</div>
<div style="text-align: center;">
<div style="margin: 0px;">
Level 2</div>
</div>
<div style="margin: 0px;">
<img alt="" border="0" id="BLOGGER_PHOTO_ID_5434954631066094210" src="http://2.bp.blogspot.com/_Yy4SmzrYqFg/S2zWcPsPCoI/AAAAAAAAAAU/uX2H0bus1us/s320/Level2-2.jpg" style="cursor: pointer; display: block; height: 186px; margin: 0px auto 10px; text-align: center; width: 320px;" /></div>
</div>
<div>
<div style="text-align: center;">
<div style="margin: 0px;">
Level 3</div>
</div>
<div style="margin: 0px;">
<img alt="" border="0" id="BLOGGER_PHOTO_ID_5434954638064999682" src="http://2.bp.blogspot.com/_Yy4SmzrYqFg/S2zWcpw53QI/AAAAAAAAAAc/TfXOyqd7p6Y/s320/Level3-1.jpg" style="cursor: pointer; display: block; height: 186px; margin: 0px auto 10px; text-align: center; width: 320px;" /></div>
<div style="text-align: center;">
<div style="margin: 0px;">
<br /></div>
</div>
<div style="text-align: center;">
<div style="margin: 0px;">
Level 4 (Night Vision Mode)</div>
</div>
<div style="margin: 0px;">
<img alt="" border="0" id="BLOGGER_PHOTO_ID_5434954640142307298" src="http://1.bp.blogspot.com/_Yy4SmzrYqFg/S2zWcxgLD-I/AAAAAAAAAAk/nAqSW4FY0sY/s320/Level4.jpg" style="cursor: pointer; display: block; height: 185px; margin: 0px auto 10px; text-align: center; width: 320px;" /></div>
<div style="text-align: center;">
<div style="margin: 0px;">
<br /></div>
</div>
<div style="text-align: center;">
<div style="margin: 0px;">
<br /></div>
</div>
<div style="text-align: center;">
<div style="margin: 0px;">
<br /></div>
</div>
<div style="text-align: center;">
<div style="margin: 0px;">
<a href="http://www.youtube.com/watch?v=Vw6d8jBLY6Q"><span class="Apple-style-span" style="color: #990000;"><span class="Apple-style-span" style="font-size: medium;">Watch the Game on Youtube HERE</span></span></a></div>
</div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span"><br />
</span></div>
</div>
</div>
</div>Ahmed Orabihttp://www.blogger.com/profile/06702288258413210720noreply@blogger.com1tag:blogger.com,1999:blog-4723020583733816208.post-51403694627563048892010-02-05T18:27:00.000-08:002012-06-30T09:24:52.025-07:00Schools Management System<div>
<div>
<div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-size: small;">This is the project of the database course in my college.</span></div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-size: small;"><br />
</span></div>
</div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-size: small;">It was implemented using C#.NET and Microsoft SQL Server.</span></div>
</div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-size: small;"><br />
</span></div>
</div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-size: small;">It is a full and smart application for managing schools that saves the students, teachers and workers' personal info., attendance and some more details and relations; Also it keeps track of Student's grades, stages, years, classes, homework and manages these information and others in a smart way, and a lot of other features.</span></div>
</div>
</div>
</div>
<div>
<div style="margin: 0px;">
<br /></div>
</div>
<div>
<div style="margin: 0px;">
Here are some screen shots ....</div>
</div>
<div>
<div style="margin: 0px;">
<br /></div>
</div>
<div style="margin: 0px;">
<img alt="" border="0" id="BLOGGER_PHOTO_ID_5434971109713868082" src="http://1.bp.blogspot.com/_Yy4SmzrYqFg/S2zlbbcBdTI/AAAAAAAAABk/Qtaee2zwfVg/s320/Main+Menu.png" style="cursor: pointer; display: block; height: 209px; margin: 0px auto 10px; text-align: center; width: 234px;" /><a href="http://3.bp.blogspot.com/_Yy4SmzrYqFg/S2zjYOMc5KI/AAAAAAAAABc/sfUO9x_cMfk/s1600-h/UnsolvedAssignments.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><br />
<img alt="" border="0" id="BLOGGER_PHOTO_ID_5434968855596033186" src="http://3.bp.blogspot.com/_Yy4SmzrYqFg/S2zjYOMc5KI/AAAAAAAAABc/sfUO9x_cMfk/s320/UnsolvedAssignments.png" style="cursor: pointer; display: block; height: 320px; margin: 0px auto 10px; text-align: center; width: 292px;" /></a></div>
<div style="margin: 0px;">
<a href="http://4.bp.blogspot.com/_Yy4SmzrYqFg/S2zjXzNmYxI/AAAAAAAAABU/3o1bKoRGae0/s1600-h/StudentForm.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5434968848353092370" src="http://4.bp.blogspot.com/_Yy4SmzrYqFg/S2zjXzNmYxI/AAAAAAAAABU/3o1bKoRGae0/s320/StudentForm.png" style="cursor: pointer; display: block; height: 190px; margin: 0px auto 10px; text-align: center; width: 320px;" /></a></div>
<div style="margin: 0px;">
<a href="http://2.bp.blogspot.com/_Yy4SmzrYqFg/S2zjXgyZKSI/AAAAAAAAABM/p8q2dDQVCDE/s1600-h/Gradebook.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5434968843407141154" src="http://2.bp.blogspot.com/_Yy4SmzrYqFg/S2zjXgyZKSI/AAAAAAAAABM/p8q2dDQVCDE/s320/Gradebook.jpg" style="cursor: pointer; display: block; height: 249px; margin: 0px auto 10px; text-align: center; width: 320px;" /></a></div>
<div style="margin: 0px;">
<a href="http://3.bp.blogspot.com/_Yy4SmzrYqFg/S2zjXA7YZxI/AAAAAAAAABE/Eo7ZN2gyFaY/s1600-h/AttendanceForm.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5434968834854905618" src="http://3.bp.blogspot.com/_Yy4SmzrYqFg/S2zjXA7YZxI/AAAAAAAAABE/Eo7ZN2gyFaY/s320/AttendanceForm.png" style="cursor: pointer; display: block; height: 206px; margin: 0px auto 10px; text-align: center; width: 320px;" /></a></div>
<div style="margin: 0px;">
<a href="http://4.bp.blogspot.com/_Yy4SmzrYqFg/S2zjW4gSI1I/AAAAAAAAAA8/vCFiYcvpxyo/s1600-h/Assignment.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5434968832593765202" src="http://4.bp.blogspot.com/_Yy4SmzrYqFg/S2zjW4gSI1I/AAAAAAAAAA8/vCFiYcvpxyo/s320/Assignment.jpg" style="cursor: pointer; display: block; height: 207px; margin: 0px auto 10px; text-align: center; width: 320px;" /></a></div>
<div style="margin: 0px;">
<br /></div>
<div>
<div style="margin: 0px;">
<span class="Apple-style-span" style="font-size: large;"><br />
</span></div>
</div>
<div>
</div>
</div>
<div>
<div>
<br /></div>
</div>
</div>Ahmed Orabihttp://www.blogger.com/profile/06702288258413210720noreply@blogger.com0tag:blogger.com,1999:blog-4723020583733816208.post-7183755952214193682010-02-04T17:55:00.000-08:002012-06-30T09:24:06.439-07:00Drawing Window<div class="watch-video-desc description">
<div style="text-align: center;">
<div style="font-family: verdana; font-weight: bold; text-align: left;">
<span class="Apple-style-span" style="font-size: small; font-weight: normal;"><span class="Apple-style-span">This is my first C++ Application as a student.</span></span><br />
<span class="Apple-style-span" style="font-size: small; font-weight: normal;"><span class="Apple-style-span"> </span></span></div>
<div style="text-align: left;">
<span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span"><span style="font-family: verdana;">It is for drawing geometrical shapes with full control on the drawn shapes like moving, re-sizing, coloring, saving the image to a file and some other features .</span></span></span><br />
<span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span"><span style="font-family: verdana;"><br /></span></span></span><br />
<span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span"><span style="font-family: verdana;"><br /></span></span></span></div>
</div>
</div>
<div style="text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dx58Mff01cwj0-6clcNatPi9yBwMIVuJ3seoeXhqqAeKCcYeBk62o_fiy0wePpFv9VK_zDq6UCPN513iX_OHg' class='b-hbp-video b-uploaded' frameborder='0'></iframe><br />
<br /></div>
<div style="text-align: center;">
<br />
<a href="http://www.youtube.com/watch?v=HSGi3i3NzHQ">Watch the video on my Youtube Channel HERE </a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>Ahmed Orabihttp://www.blogger.com/profile/06702288258413210720noreply@blogger.com0tag:blogger.com,1999:blog-4723020583733816208.post-12337479458035027462010-01-25T16:10:00.000-08:002012-06-30T09:23:17.342-07:00<span class="Apple-style-span" style="font-size: small;">Hi All,<br />
<br />
Welcome here in my blog.<br />
<br />
I'm Ahmed Orabi, Computer Engineering student.<br />
<br />
I made this blog to publish some of my works and projects that I've made and those that I'm working on.<br />
<br />
Thanks for reading.</span>Ahmed Orabihttp://www.blogger.com/profile/06702288258413210720noreply@blogger.com0