This blog is subject the DISCLAIMER below.

Saturday, March 31, 2007

MDC 07 's Videos

MDC 07 's Videos are available right now on Barmagy

.. more.

Wednesday, March 21, 2007

Microsoft Robotics Studio Learning Materials

Microsoft Robotics Studio Learning Materials

On-Demand Video Tutorials

Architecture Overview
This session will go into depth on the underlying Microsoft Robotics Studio services-oriented runtime. Learn how the concurrency library makes asynchronous application development simple, and how the services and message-based architecture make it easy to access the state of a robot’s sensors and actuators with a Web browser.
Presenters: George Chrysanthakopoulos, Henrik Frystyk Nielsen

Launch Video

Visual Programming Language (VPL) 1
Learn about the Microsoft Visual Programming Language, an application development environment designed on a graphical dataflow-based programming model rather than control flow typically found in conventional programming. Using specific examples, you will learn how VPL can be useful for novices with no programming experience, as well as for professional-level robotics application prototyping.
Presenter: Andreas Ulbrich

Launch Video

Visual Programming Language (VPL) 2
This session builds on VPL1 and features a more advanced example. It demonstrates how to write a simple autonomous behavior for a robot, illustrates how to factor the behavior into multiple VPL activities, and shows how to work with data collection from robots. This session also outlines how to run the same VPL program in simulation and on a real robot.
Presenter: Andreas Ulbrich

Launch Video

Microsoft Robotics Studio- Simulation
Learn about the Microsoft Robotics Studio Simulation environment, a 3-D tool that simulates robotics applications in physics-based virtual environments, using the licensed PhysX™ engine from AGEIA™ Technologies Inc. This session will provide an introduction to the simulation runtime, show how to compose entities with simulation services and create a simulation environment. It will also show how to simulate joints and articulated arms.
Presenter: Kyle Johns

Launch Video

Microsoft Robotics Studio- Robotics Tutorials
This session, based on the robotics tutorials included with Microsoft Robotics Studio, will show how to create a service and coordinate between services. It will also provide an overview of manifests, contracts used to specify robotics hardware.
Presenter: David Lee

Launch Video

Microsoft Robotics Studio- Services Tutorials
This session, based on the services tutorials included with Microsoft Robotic Studio, will provide an overview of how to create a service, update the state of a service and persist the state of a service.
Presenter: Paul Roberts

Launch Video

Microsoft Robotics Studio- Controlling Simulated Robots Using VB.NET
This session will provide an overview on working with Microsoft Robotics Studio using Visual Basic .NET. Learn how to create a windows forms project and a user interface to drive a robot. It will also show how to start the simulation environment and connect the UI to perform the correct actions.
Presenter: Pavel Khijniak

Launch Video

Microsoft Robotics Studio- Controlling Simulated Robots Using Iron Python
This session will provide an overview on working with Microsoft Robotics Studio using Iron Python. Learn how to create a windows forms project and a user interface to drive a robot. It will also show how to start the simulation environment and connect the UI to perform the correct actions.
Presenter: Pavel Khijniak

Launch Video

(Hint: This articles copied from Microsoft Student-Partners website.)

.. more.

Saturday, March 17, 2007

Solaris OS, Solaris Express and OpenSolaris

In this post, I want to discuss the main differences between Solaris OS, Solaris Express and OpenSolaris... coz I guess many of you are confusing and thinking that they are the same, and this is wrong.

(Solaris is a computer operating system developed by Sun Microsystems.)

Solaris OS: is Sun's operating system product, and future versions of Solaris will be based on technology from the OpenSolaris project. Solaris is available as a free binary download.

OpenSolaris: is an open source project created by Sun Microsystems to build a developer community around the Solaris Operating System technology. The project's goals are innovation, collaboration and the extension of OpenSolaris technology. It aimed at developers, system administrators, and users who want to develop and improve operating systems. OpenSolaris is available for download.

Solaris Express: is Sun's official release of the OpenSolaris bits as well as additional technology that has not been released into the OpenSolaris source base. It consists of Solaris combined with a range of software (both current and future) to help you evaluate and Sun software as quickly as possible. It is primarily intended for Solaris customers to try out the very latest technology that will eventually be productized by Sun. Solaris Express is updated monthly and is available as a free binary download.

Therefore, Solaris is a product supported by a company; OpenSolaris is a development project run by a community of developers.

Check this site.

.. more.

Wednesday, March 14, 2007

Using Google Spreadsheets APIs in C#

in the name of ALLAH

Good news for C# developers using Google gData API platform
C# library download have been updated to include C# client libraries
for using the new Google Spreadsheets API .

Good Luck.

.. more.

Saturday, March 10, 2007

Linux Tip #4 : Virtual CD

Indeed sometime you have faced the situation that you have an ISO image and you want to use it as an actual CD but without burning it to a real CD. In windows you need to get some software to do that for you that usually create a virtual device etc.

In Linux you can do with a single line, mounting it to a folder.

Here's the command:
sudo mount -o loop -t iso9660 CD_IMAGE.ISO /path/to/folder

You give it the ISO file name and the path to the folder where you want to access it and it's all done for you! No device naming (A: G: I:...) required, no max number of virtual CD-ROM devices, none. Just that simple.


.. more.

Sunday, March 04, 2007

Linux Demo Week @ FCIH by SU

Students United is proud to announce the launch of Linux Demo Week. Hope that you all come and see Linux live in action


.. more.

JavaSpaces-The Big Picture

The big picture

JavaSpaces is a technology that is mainly directed for parallel processing environments, although it is not a heavy used technology, it is very effective in terms of usage and performance.
you can think of JavaSpaces as a client/server map that contains data waiting for processing; these data have a set of defined rules that controls how these data can be accessed.

JavaSpaces has many usage scenarios, for example; a job producer program, that simply produce task list that needs to be handled by different processors in a parallel enviroment, JavaSpaces allows a high-powered CPU to grab a complex task and another Low-powered CPU to execute less complex tasks.

Getting into action
JavaSpaces is built on JINI, so the first approach to try JavaSpaces is to download JINI starter kit which contains sun's implementation of JavaSpaces called OuTrigger. Another better implementation of JavaSpaces is Blitz, which is much more effective and easy to use than Outrigger, however, blitz is an addition to JINI, that means it is downloaded separately.

Query by example (QBE)
JavaSpaces uses a simple but a smart way for data retrieval called Query By Example ( QBE ). QBE is another language for querying to create and modify relational data, it is different from other query languages in having a GUI that enables users to create example tables on screen.
we will not go much deeper in explaining QBE, but lets say it is a simple way of data access that adds a lot to JavaSpaces. for more information about QBE click here.

Using JavaSpaces
To use JavaSpaces you need first to have an instance of a JavaSpaces implementation to be running to provide a working JavaSpaces workspace to deal with.Once the JavaSpaces implementation is running it is very easy to add entries to it.

Entries in a JavaSpace are basically simple Java Objects that follow a few simple rules:
  • All data persisted in the space must be exposed in public fields.
  • The Entry interface must be implemented. This is a marker interface, requiring no methods to conform to the interface contract.
  • Objects must be used for the properties (i.e., no primitive fields.).
An entry can contain data and/or functionality, and can implement any interface or class that conforms to the requirements for JavaSpaces. Thus, a fairly common pattern is:
  • Implement a Command interface in an Entry, along with any data required to perform the command
  • Store the Command into the JavaSpace
  • Have a computing resource retrieve the Command and execute it, storing any results back into the JavaSpace for consumption if necessary
Connecting to a JavaSpace is very simple, either by using the simple Lookup class to search for JavaSpace05.class which will return a reference to the first JavaSpace it finds or by using methods provided by the JavaSpaces implementation it self (if it is available).

There are five basic operations associated with JavaSpaces. They are:
  1. Read an entry matching a template, leaving it in the JavaSpace
  2. Take an entry matching a template from the space, removing it from the JavaSpace
  3. Write an entry into the JavaSpace
  4. Register a callback for events in the JavaSpace
  5. Issue an event in the JavaSpace
Templates in JavaSpaces are instances of classes implementing the Entry interface (i.e., they're entries) that use “null” as a wildcard. Thus, if an Entry implementation has string properties A, B, and C, a template might populate A with “data” while leaving B and C null; a take operation would retrieve the first entry of that class that had “data” in the “A” property. (The list form of take() would return all entries that had “data” in the “A” property.)

WikiPedia - the free encyclopedia

You can Download Blitz here.

.. more.

Saturday, March 03, 2007

Turn off your monitor via code (C#)

In the name off Allah ,

How to turn off your monitor via code?
This is an important question at least to me , because I use my computer for long time daily and frequently turn on and off the screen as a way to save energy and power .
I hate to make that by using the monitor button(off/on) , because I hear sound from the monitor feel me that the screen may damage .
So I will inform you here , How to turn off your monitor via code ( C# ) ?

I will code that depending in API called SendMessage function it’s useful to handle monitor states - the display is going to low power, the display is being shut off and the display is turned on .

Syntax :
LRESULT SendMessage( HWND hWnd, UINT Msg,WPARAM wParam, LPARAM lParam );


  • # HWnd (first paramter)
    Handle to the window whose window procedure will receive the message. If you don't want to bother creating a window to send the message to, you can send the message to all top level windows (HWND_BROADCAST) or you can use GetDesktopWindow function sending the message to the desktop window.
  • # Msg (second paramter)
    Specifies the message to be sent (WM_SYSCOMMAND).
  • # wParam(Third paramter)
    Specifies additional message-specific information (SC_MONITORPOWER).
  • # LParam (last paramter)
    * 1 - the display is going to low power.
    * 2 - the display is being shut off.
    * –1 - the display is being turned on (undocumented value).

Start the coding now :

First of all you should use
using System.Runtime.InteropServices; //to DllImport

public int WM_SYSCOMMAND = 0x0112;
public int SC_MONITORPOWER = 0xF170; //Using the system pre-defined MSDN constants that can be used by the SendMessage() function .

private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);
//To call a DLL function from C#, you must provide this declaration .

private void button1_Click(object sender, System.EventArgs e)

SendMessage( this.Handle.ToInt32() , WM_SYSCOMMAND , SC_MONITORPOWER ,2 );//DLL function
attached at this link the source code .

.. more.

Friday, March 02, 2007

Windows Presentation Foundation Part 3

In this post, I will speak about a new technology that is subset of WPF. It is called WPF/E that stands for Windows Presentation Foundation Everywhere. In the last post , I spoke about the WPF features. One of the most important WPF features is the deployment feature that helps WPF to offer XAML Browser Applications (XBAPs) besides standalone applications.

XBAPs are programs hosted inside a web browser such as Internet Explorer and help web applications to provide large WPF features to the users. So we have to install WPF on the client machines at first to use XBAPs.

But, the problem was: how building and developing web applications that must be accessible from other systems that don't support WPF and at the same time with great and modern interfaces like ones developed using WPF?!!!

WPF/E solved this problem as it provides subset of WPF features such as video, text, images, vector graphics and animations to different client platforms including the Macintosh, smaller devices and others and to multiple operating systems including Windows Vista, Windows XP, and Mac OS X and also to different Web browsers including Internet Explorer as IE6, IE7, Firefox , Netscape and Apple Safari.
WPF/E is based on XAML and JavaScript. WPF/E and WPF only share XAML presentation layer.

WPF/E provides video and audio as WMV, WMA and MP3.So, now using WPF/E enables you easily to stream interactive video to any browser without requiring any additional install or runtime as example: Windows Media Player is not required.

WPF/E also enables developers to easily integrate it within existing HTML pages and sites.
To enjoy with WPF/E, Download WPF/E" (codename) Feb 2007 CTP:

To know more about WPF/E and watch more demos and samples, follow this link:

.. more.

Try Visual Studio 2005 for free

By the way ,I found Visual Studio 2005 offers many ways to discover the new features included in this release as time-limited trials to online hosted experiences,. From a comprehensive tools platform to reduced development complexity and improved team communication, Visual Studio 2005 continues to lead innovation in developer productivity. Many trials are fully functional, giving you the opportunity to evaluate the product to see how it can work for you and your organization.

Download Visual Studio 2005 Express Editions
Visual Studio 2005 Professional Edition 90-Day Trial
Visual Studio 2005 Team Suite 180-Day Trial
Visual Studio 2005 Team Foundation Server 180-Day Trial
Visual Studio 2005 Team Edition for Database Professionals Trial
Visual Studio 2005 Team Test Load Agent
Visual Studio 2005 Online Hosted Experience
Visual Studio 2005 Virtual Images

.. more.