Wednesday, February 27, 2008

Hardwood Solitaire III - A Revolutionary Card Game

"A revolutionary collection of solitaire card games with engaging full-color graphics, original music, intriguing sound effects, and captivating 3D game play." Download here.

i really liked this game, i'm not that interested about card games but what got me hooked was the fascinating MIDI music in the background, like a medieval epic or a fairy tale, that always reminds me of the sweet vague thoughts of the past, i had that game when i was a kid and i got it again last year, i open it from time to time to listen to the music and remember my childhood :)

Enjoy the game.

Monday, February 25, 2008

Write Parallel Code

i was reading through the Computer Architecture textbook - Computer Architecture A Quantitative Approach, 4th Edition, when this caught my attention just on the 4th page "Whereas the compiler and hardware conspire to exploit ILP implicitly without the programmer’s attention, TLP and DLP are explicitly parallel, requiring the programmer to write parallel code to gain performance."

well, i've been hearing a lot of talk about parallelism and multi-cores during the last month, like when we had a session about Parallel Lock-Free Programming to talk about the advanced synchronization techniques the Microsoft PFX team is working on, also the Computer Architecture course this semester is specially interested in this stuff - as it was upgraded to the advanced level.

all that kept me thinking for some days what can we do to really exploit the power behind multi-core computers? this is a big question that i'm sure some of the smartest minds are working on and i find myself interested in the subject.

the sentence i quoted up there inspired me about a tool that will help programmers harness the power of multi-cores in the same way they do their normal work, the tool should help the programmer to write parallel code by viewing multiple code areas like in the compare editor and adding compiler directives, also it should support debugging support and auto-tests/suggests concurrency control. This should handle a variable number of cores for the target machine and maybe a variable platform too, regardless of the developer machine. The plug-in can be published as an open source project so everyone can benefit and contribute.

i didn't forget to check what have been done so far and i was not amazed to find that there is some work in this field but the Google search didn't return that many matches, that's a very new and open approach and we expect to witness a lot of achievements in the next years. I'd like to mention Model-Driven Development Tool for Parallel Applications and The Grid Compute Server Plug-in for NetBeans IDE besides the Microsoft PFX. You can also check this paper, it was published in 1989 and provides a theoretical treatment of the subject.

Wednesday, February 13, 2008

Prallel Multi-Threaded Lock-Free Programming

today we had a session by eng.Emad Ali - Software Design Engineer(SDE) at Microsoft Corp. PFX Team, where he first reviewed the multi-threading synchronization objects in C++ and C# and the thread execution model on single-core and multi-core systems,

he then introduced the new synchronization techniques intended to be added to the .Net libraries like SemaphoreLight, Event, Monitor and Parallel.for - which executes independent loop iterations in parallel instead of waiting for each iteration to complete first with support to load balancing between cores too - and showed the advantages of Lock-Free programming in implementing more efficient synchronized data structured like stacks and queue that operate far much better with multiple threads.

he also mentioned the introduction of parallel techniques to LINQ - the Language Integrated Query added to the .Net framework by the end of 2007 that enables you to query any IEnumerable-based information source (arrays, sets...) - which produced PLINQ, in addition to the TPL - Task Parallel Library - which makes it much easier to write managed code that can automatically use multiple processors like Parallel.for, as part of the PFX (Parallel Framework Extensions) development taking place right now.

if you found yourself interested in the subject you can continue with the following links:
Parallel Extensions to the .NET Framework
LINQ: .NET Language-Integrated Query
101 LINQ Samples
Task Parallel Library
Lock-Free Programming (Great)
PFX Team Blog

Computers and Artificial Intelligence at the Bibliotheca Alexandrina with Dr. Ismail Serageldin

yesterday a bunch of engineering students specially from our departement, attended the Computers and Artificial Intelligence three part series at the Bibliotheca Alexandrina. The department was kind enough to give the day off so all the students are able to attend this big event. It was long and rich with information, a lot of history too but i can say this helped to set the base for the thorough discussion introduced by Dr.Ismail.

The sessions outlined the development of computer systems along side the advancements in communications to the age of the internet and the ICT Revolution. A variety of visions were introduced from purely philosophical to purely technical to show the controversy about the definition of intelligence and the idea of creating intelligent machines and whether it's possible or not.

maybe it's suitable to mention the strongest of both sides of this controversy: the Chinese Room Argument that confines any machine intelligence to a set of predefined rules that can only be enlarged which is not real intelligence, opposed by Raymond Kurzweil who says that computers were able to break any borders that have been set before and predicted that computers will be able to defeat the world champion in chess by 1998 and it happened in 1997, 1 year earlier than predicted. there's more on that in the slides, but without the great presentation given by Dr.Ismail.

I added the links for you here, you can get that and more from Dr. Ismail's website.

Computers and Artificial Intelligence, A three part series - Part 1: Where did our computers come from?
Download Presentation
View Presentation
Computers and Artificial Intelligence, A three part series - Part 2: The Search for Artificial Intelligence
Download Presentation
View Presentation
Computers and Artificial Intelligence, A three part series - Part 3: Humans, Robots And The Future
Download Presentation
View Presentation

Sunday, February 3, 2008

Learn about RSS from Common Craft

i've been very amused about these kind of videos, they call it "XYZ in Plain English", which corresponds to our Arabic expression "بالعربى الفصيح", they aim to introduce complex ideas in a very intuitive and story like way guided with pointing fingers and simple sketches, that makes it easy for you to follow up and get the idea, without having to bear with much jargon.

These videos are created by Common Craft and uploaded to YouTube by leelefever, they made many wonderful videos and have some kind of a show too, very creative and inspiring...

one good example that's suitable for our new blog is RSS in Plain English, RSS makes it easy for you to keep track of your favorite blogs and news updates, the video introduces the idea non-technically which isn't enough for you, since it only introduced the illusion of the service,

i prefer you read a little bit more about it on Wikipedia, you can start from here, and to make this discussion more thorough, i have to mention pinging and its implications.

do want to know what an rss feed looks like? click this link to view my blog feed, maybe your browser will suggest registering the feed too, it's a kind of xml that contains some or all the data you need to get, you can view the page source to have a closer look.

Friday, February 1, 2008

Introducing CSED Alex Bloggers

i'm happy to announce the opening of a new group blog for our department students where they can share the latest topics that interest them and engage in fruitful discussions. the idea was brought by three senior students, and i can find myself very interested about it, i intend to contribute the posts i find useful there, u can track these posts by following the label. don't miss out on the interesting posts to come.