This blog is subject the DISCLAIMER below.

Thursday, February 14, 2008

Stamping text file in PDF pages

I wrote C# function that Stamping the content of text file (text and hyper links) at the front of the select pages (selected by the user) from the PDF .

NOTE :
This C# function stamp the text with aligning the text at the center of the selected pages ,the function based on the latest library called ItextCharp ( iTextSharp 4.0.8 (2008-01-25) .
Download the library from here

iText

# (iTextSharp) is a port of the iText open source java library written entirely in C# for the .NET platform.
iText is a library that allows you to generate PDF files on the fly. It is implemented as an assembly.

Parameter Example :

string sourcefile --> "input.pdf"
string SaveFileName--> "output.pdf"
float Y_space --> 405
float lead--> 25
float FontSize --> 12
string TxtFileName--> "textostamp.txt"
string _Font --> "HELVETICA"
string pagesRange --> "3,6,8" or "3-6,9-15"


you must to import this namespaces :)
using System.IO;
using iTextSharp.text.pdf;
using iTextSharp.text;
==

/* StamperTxt is a class which stamps the content of text file (text and hyper links)

* at the front of the select pages (selected by the user)from the PDF .

* */

public StamperTxt(string sourcefile, string SaveFileName, float Y_space, float lead, float FontSize, string TxtFileName, string _Font , string pagesRange)

{

PdfReader pdfreader = new PdfReader(sourcefile);

float pagewidth = pdfreader.GetPageSize(1).Width;

int j = pdfreader.NumberOfPages;

bool[] flag ;

flag = new bool[j];

for (int i = 0; i <>

flag[i] = false;

if ((pagesRange.Trim() == "all" )&&(pagesRange.IndexOf("-") == -1 )&&(pagesRange.IndexOf(",") == -1 ) )

{

for (int ii = 0; ii <>

flag[ii] = true;

}

else if ((pagesRange.IndexOf("-") != -1))

{

string[] tempArr = pagesRange.Trim().Split(',');

foreach (string str in tempArr)

{

string[] tempArrhyphen = str.Trim().Split('-');

int startIndex = 0, endIndex = 0;

startIndex =int.Parse(tempArrhyphen[0].Trim());

endIndex = int.Parse(tempArrhyphen[1].Trim());

for (int s = startIndex; s <= endIndex; s++)

{

flag[s-1] = true;

}

}

}

else if ((pagesRange.IndexOf(',') > -1))

{

string[] tempArr = pagesRange.Trim().Split(',');

foreach (string str in tempArr)

{

int index = int.Parse(str);

flag[index-1] = true;

}

}

PdfGState pdfgstate = new PdfGState();

pdfgstate.FillOpacity = 1.0f;

Stream output_stream = new FileStream(SaveFileName, FileMode.OpenOrCreate);

PdfStamper pdfstamper = new PdfStamper(pdfreader, output_stream);

for (int k = 0; k <>

{

if (flag[k] != true)

continue;

PdfContentByte pdfcontentbyte = pdfstamper.GetOverContent(k+1);

float v_space = Y_space;

pdfcontentbyte.SaveState();

pdfcontentbyte.SetGState(pdfgstate);

BaseFont PF = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, false) ;

pdfcontentbyte. SetFontAndSize(PF , FontSize);

StreamReader SR;

string S;

SR = File.OpenText(TxtFileName);

ArrayList chunklist = new ArrayList();

S = SR.ReadLine();

while (S != null)

{

Chunk chk = new Chunk(S + "\r\n", FontFactory.GetFont(_Font, FontSize, Font.NORMAL));

if (S.IndexOf("http:/") > -1)

{

chk = new Chunk(S + "\r\n", FontFactory.GetFont(_Font, FontSize, Font.UNDERLINE));

chk.SetAnchor(S);

}

chunklist.Add(chk);

S = SR.ReadLine();

}

//Console.WriteLine(S);

SR.Close();

Phrase PH = new Phrase();

PH.Font = FontFactory.GetFont(_Font, FontSize, Font.NORMAL);

PH.AddRange(chunklist);

PH.Leading = lead;

PdfPTable table = new PdfPTable(1);

table.DefaultCell.Border = Rectangle.NO_BORDER;

table.DefaultCell.SetLeading(lead, 0);

table.TotalWidth = pagewidth;

table.HorizontalAlignment = Rectangle.ALIGN_MIDDLE;

table.DefaultCell.HorizontalAlignment = Rectangle.ALIGN_MIDDLE;

table.HorizontalAlignment = Rectangle.ALIGN_CENTER;

table.DefaultCell.HorizontalAlignment = Rectangle.ALIGN_CENTER;

table.AddCell(PH);

table.WriteSelectedRows(0, -1,0, v_space, pdfcontentbyte);

}

byte[] arr = pdfstamper.Writer.XmpMetadata;

pdfstamper.Close();

pdfreader.Close();

Console.WriteLine(SaveFileName + "Was Created in Success...");

}////end Function

.. more.

Tuesday, February 12, 2008

The release of large chain in Microsoft

As mentioned in MSDN magazine ,27 of February will be worldwide launch of Windows Server 2008, Visual Studio 2008, and SQL Server 2008 .

Microsoft Windows server 2008 : the most advanced Windows Server operating system yet, designed to power the next-generation of networks, applications, and Web services. With Windows Server 2008 you can develop, deliver, and manage rich user experiences and applications, provide a secure network infrastructure, and increase technological efficiency and value within your organization.

Microsoft Visual Studio 2008 : delivers on Microsoft's vision of enabling developers and development teams to rapidly create connected applications with compelling user experiences for Windows Vista, the 2007 Microsoft Office system, mobile devices and the Web. With the release of Visual Studio 2008 Beta 2, Microsoft is taking a leap forward on its promise to enable developers to harness this next wave of innovation.

Microsoft SQL Server 2008 :provides a trusted, productive, and intelligent data platform that enables you to run your most demanding mission critical applications, reduce time and cost of development and management of applications, and deliver actionable insight to your entire organization.

Downloads :
http://www.microsoft.com/heroeshappenhere/learn-more/downloads/default.mspx

more information : http://www.microsoft.com/heroeshappenhere/default.mspx

.. more.

Sunday, February 10, 2008

How to create a multi-lingual web site Step By Step

As usual there are two ways to make a multi-lingual web site:

· The easy , beautiful and half functional way.

· The hard , ugly but full functional way.

We will go first through the common steps for the both ways

First create your ordinary web site with your VS

In the design view add one label and one button and leave them with their default values

From your solution explorer right click on your web site and click add new item and choose Resource File and rename it with you page name and extension (Default.aspx)

A Massage will pop for you asking for creating a Global Resources folder click no

Add a new folder with the name APP_LocalResources and put your Resource file on it

In the Label and the Button add new attribute meta:resourcekey="ResourceName"

Add a new string value in the resource file with the same resource key name and add .Text like ResourceName.Text and give it the Default language value like English

Copy the resource file and rename the new one to the secondary language name like Default.aspx.as-EG.resx

Give the ResourceName for the button another values in the Arabic resource file like عربي

Here come the easy way

Set the Culture and UICulture to Auto from designer or from aspx file like Culture="Auto" UICulture="Auto"

And now just run you application , The Button and the label now should have the default language values from the resource file

Change the default language for you explorer (most explorers will be from Tools->Internet Options->Language(Button)

If the Arabic language is not already there add it and move it up

Now refresh you page and the label and button should change their text to عربي

That’s easy as you can see :d but what is the user don’t know about how to change the browsers language, then we should use the bit harder way and use a button to change the Culture and the UICulture values from the code.


*You need now to change the Culture information on the button Click event, But the problem here is that the culture information will be reset on the postback, so you can use whatever way to keep its value but here I will use cookies .

Now make a new class with name common and put it in the App_Code folder

Make a bool attribute with the name ISArabic like

public static bool IsArabic

{
get

{
if (Thread.CurrentThread.CurrentUICulture.Name == "ar-EG")

return true;
else
return false;
}
}

Now on the button Click we will create a new cookie(if it doesn’t already exist) and give it the culture value just as fallows

HttpCookie myCookie = (HttpCookie)Request.Cookies["Localization"];

if (myCookie == null)

myCookie = new HttpCookie("Localization");

Then we will set the cookie value acording to the current choosen culture

if (Common.IsArabic)

myCookie.Values["Language"] = "en-US";

else

myCookie.Values["Language"] = "ar-EG";

then we set the cookie and add it and Then we redirect to the same page

myCookie.Expires = DateTime.Now.AddYears(1);

Response.Cookies.Add(myCookie);

Response.Redirect(Request.Url.AbsoluteUri);

Now add a new Item and choose Global Application Class

Add a new event called Application_BeginRequest and put the code which checks for the current culture on it just like that


void Application_BeginRequest(Object sender, EventArgs e)

{

HttpCookie myCookie = (HttpCookie)Request.Cookies["Localization"];

if (myCookie != null)

{

//Read culture from cookie
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(myCookie.Values["Language"]); System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(myCookie.Values["Language"]);

}

else

{

//Create new default cookie

myCookie = new HttpCookie("Localization");

myCookie.Values.Add("Language", "en-US");

myCookie.Expires = DateTime.Now.AddYears(1);

Response.Cookies.Add(myCookie);

//Set the thread default culture

System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");

System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");

}
}

Don't forget to remove the Auto values for the Culture And UICulture

Now everything should work just fine

You can now use the resource file and change strings, pictures and icons just according to the chosen language

source files could be found here

.. more.

Fedora 9 alpha release

Fedora 9 Alpha have been released a minutes ago here is the link of the page and for downloads

http://fedoraproject.org/get-prerelease

.. more.

Thursday, February 07, 2008

.network.org 2nd gathering

Get ready for the second .network group gathering..

Date: Saturday, February 9, 2008
12:00pm - 4:00pm

Location: CIC (the Canadian International College) campus.

Busses (to the gathering) will be available in front of "Nady EL-Sekka" from 11:00-11:30

Event Agenda:
12:00 - 01:30 Khaled Hnidk, Link Development - WCF – Messaging & Channel Model
01:30 - 02:00 Coffee Break
02:00 - 03:30 Mohammed Meshrif, Microsoft - SQL Server Maintainability
03:30 - 04:00 Lunch


Check the facebook group: http://www.facebook.com/group.php?gid=2409268236
& the Event page: http://www.facebook.com/event.php?eid=7974276601

& join the Yahoo!Group: http://groups.yahoo.com/group/dotnetworkorg/

.. more.

Friday, January 18, 2008

Tuesday, January 15, 2008

Although I'm a java fan c++ is of course faster

Whatever that there is an opinions that Java or any JITs languages gonna be faster than c++
that is totally wrong and i'd like to write on this but Dejan Jelovic have written a great article on this so here what I want to say :D

http://www.jelovic.com/articles/why_java_is_slow.htm

.. more.

Tuesday, January 01, 2008

This year's Microsoft Recruiting Trip In Egypt

For those of you interested to work @ MS, the recruiting trips are back, it will be in Egypt/Turkey during January, so if your interested send your CV to egyptres@microsoft.com (if you in live Egypt).

For those living elsewhere, for more info about the issue, & to get to know the new recruiter for the region, check:

http://blogs.msdn.com/jobsblog/archive/2007/12/27/upcoming-international-recruiting-trips.aspx
http://geeklectures.info/2007/12/27/upcoming-international-recruiting-trips/

.. more.

Monday, December 24, 2007

WaZkker Al-mo'mnen (source code)

WaZkker Al-mo'mnen Program is an application changes the Personal Message of the current user only during praying times as a way to inform him and friends in the MSN list about praying times ,the application also supported (as an extra option ) with number of categories each of them have number of Azkar or Ahadeth to be displayed randomly ( 10 sec ) in non praying times (option) . This program support a huge number of cities and countries time zones all around the world .
Any questions or suggestions are welcome in the application's official blog http://w-zakker.blogspot.com/ . The application in Beta version ,
To
download it , please click to any of this two links .

http://files-upload.com/files/647990...-mo%27mnen.rar
OR
http://www.4shared.com/file/30407135/83b63242/Wa_Zakker_Al-momnen.html?dirPwdVerified=3e1f7af5


To download the source code (C# 2.0) :
http://www.4shared.com/file/32927910/9e38a460/TheSourceCodeCSharp2-WaZakkerAlmomnen-.html?dirPwdVerified=3e1f7af5

.. more.

Friday, December 21, 2007

Java Byte Code Instrumentation

Welcome people :)

If you have used reflection before, you probably have tasted the power and flexibility it can give you. Especially the setAccessible function that lets you access private methods and fields, and the newInstance function that lets you load classes at run-time.

Anyway, sometimes you need to change something in the code. Or at least want to get notified on some function call (related: Aspect Oriented Programming, terms: aspectj, aspectwerkz).

If you have the source, then it is not a problem to go and modify, and recompile. Some cases it will take a lot of modifications for example if you want to log all function calls (aspectj can help in that regard). But in other cases where you don't have the code or where you can't redeploy the modified package in other machines, for license restrictions or for deployment overhead you can't do that(aspectwerkz will help in this time).

Both aspectj and aspectwerkz provides facilities to modify the classes based on aspect oriented programming rules, which may may not be enough for your desired task. However, have you ever considered how these are implemented ?

They are implemented using byte code engineering techniques. aspectj uses BCEL, and aspectwerkz uses ASM. Those libraries are simple, they just provide abstraction above the byte level to the java methods and fields level.

The main problem is in the JVM. The JVM provides strong checks on the byte code, so for example, a constructor must call the direct super class constructor (I tried to bypass that myself and I got a Wrong Constructor Called exception !). The JVM's ugliest part, is that it doesn't support class reloading. (to be fair it is supported in the debug mode given that the class have the same schema; methods and fields). JDK 1.5 provides a way to reload classes dynamically (as often as you want) using JVMTI (JVM Tool Interface) java.lang.instrument (it can be used natively too) . However it doesn't support schema changes. So statically, or at load time (JVMTI supports that too, you don't have to write your own class loader for that), add, remove, and modify all the methods or fields you anticipate that you would need, even if you just add an empty method. Then at anytime later, you can define the exact body of the method. In case you only want to change the implementation, then no need for load time modifications. You can do it anytime. JVMTI is the successor for JVMPI and JVMDI (JVM profiling and debugging interface). Maybe I will write about JVMTI and native Java programming sometime later.

aspectj modifies the class file itself (build-time offline weaving), while aspectwerkz can do that, beside deployment-time online weaving (it also support run-time online weaving using JVMTI).

Example of using BCEL:
http://mohammad.nabil.h.googlepages.com/DefaultCtorNeutralizer.java
That example replaces the default constructor with a stub constructor that check on a boolean variable, if equal true, it won't call the default constructor, otherwise it will.

.. more.

Friday, December 14, 2007

Adobe Scripting

This ability supported by Adobe to it's products or applications to automate and facilitate your work throw it's application .Assume the routine used to convert 100 pictures from *.jpg to *.bmp extension !!!! Why you should done it manually by hands which may take about 3 hours while you can do it automaticly by writing a simple script that do it in less than minute !!

As Marco in Microsoft Office Similar to Scripting in Adobe ( for automation purpose ) .

Scripting is a series of statements or codes that tells an application (of Adobe ) to execute task depends on it.
Adobe supports scripting or coding throw one of three languages that it supports .

In Mac system there are two scripts :
# JavaScript
# MacScript

In Windows system there are also two scripts :
# JavaScript
# MacScript

The "Adobe ExtendScript toolkit 2" is like IDE for scripting which offers all standard JavaScript features, plus a development and debugging environment, the ExtendScript Toolkit (ESTK) is installed with all scriptable Adobe applications like (Adobe illustrator and photoshop).

For more information and documentations visit this officially link :
http://www.adobe.com/devnet/bridge/

.. more.

Wednesday, December 12, 2007

Microsoft Parallel Extensions to .NET Framework 3.5

Overview

Parallel Extensions to the .NET Framework is a managed programming model for data parallelism, task parallelism, and coordination on parallel hardware unified by a common work scheduler. Parallel Extensions makes it easier for developers to write programs that scale to take advantage of parallel hardware by providing improved performance as the numbers of cores and processors increase without having to deal with many of the complexities of today’s concurrent programming models.

Parallel Extensions provides library based support for introducing concurrency into applications written with any .NET language, including but not limited to C# and Visual Basic.
Note: This CTP is for testing purposes only. Features and functionality may change before final release, and Microsoft may choose not to provide a final release.

Press Here to Download

.. more.

Saturday, December 08, 2007

Dotnetwork user group Launch @ Microsoft


Get Ready for the BIG event!


We are Launching the DotNetwork User Group at Microsoft Smart Village.
Enjoy the nice sessions & the great company!

Please visit http://www.dotnetwork.org/ or our facebook group http://www.facebook.com/group.php?gid=2409268236 for more info.

Also please check the Event Link http://www.facebook.com/event.php?eid=20991166880 and the attachments.

DON'T MISS OUT!!!!

There will be buses available to take you to and from the smart village. They will be available from 5:00 PM to 5:30 PM at :
1- Abdel Mone'm Ryad sq. (Super Jet Parking)
2- Naddy El sekka (in front of the club's main gate)

Check the places of the buses:

http://photos-d.ak.facebook.com/photos-ak-sctm/v155/239/111/728750462/n728750462_1878747_5418.jpg
http://photos-a.ak.facebook.com/photos-ak-sctm/v155/239/111/728750462/n728750462_1878748_5887.jpg

.. more.

Thursday, November 29, 2007

Microsoft Models 'Oslo' in (.NET 4.0)

Microsoft wants to stand development for service-oriented architecture on its head.

According to Steven Martin, director of product management, connected systems division, Oslo also aims to change modeling from a paradigm wherein models describe the application to a paradigm where models are the application.

Read more on: http://www.eweek.com/article2/0,1895,2209589,00.asp

.. more.

Monday, November 26, 2007

Microsoft Technology Day @ FCI-H

Microsoft Technology Day

Prepare yourself…

Microsoft Silverlight™ : is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. Silverlight offers a flexible programming model and integrates with existing Web applications. Silverlight supports fast, cost-effective delivery of high-quality video to all major browsers running on the Mac OS or Windows. Learn more about Microsoft Silverlight and other Technologies @ Microsoft Technology Day, Helwan University on Nov 29 th, 2007.
Microsoft … Discover Your Future.


You MUST Come and join us in this awesome event @ FCI-H, & let's SHINE.

Agenda:
StartEndSessionSpeaker
10:0010:45Interoperability in a connected worldNohal Rady
10:4511:00Break
11:0012:15What's New in Vs2008 & VSTS2008Dr.Ahmed Bahaa
12:151:15Lunch Break
1:151:30Lap around the Windows Live PlatformMohamed Wahby
2:302:45Break
2:453:45Game Development using XNAMohamed Wahby

DON'T MISS OUT

10:00 am – 3:45 pm

Thursday, November 29, 2007

FCIH main campus, Hall 1

Faculty of Computers & Information – Helwan University

Hope to see you there!

MSPs – Helwan

Contact us: msp-helwan@student-partners.com

Join our group: http://groups.msn.com/Microsoft-HelwanCamp

P. S. If you know anyone else who'd enjoy this event, send that to him/her.

.. more.

Friday, November 23, 2007

The solution of the fedora 8 shock (swing doesn't work)

In this post we gonna show why does swing components? most of us tried netbeans ,but it awfully doesn't work with it. The reason is that , netbeans and swings are using the libx11 and there some thread safety operation the new version of this lib is doing that's why if you downgraded to the last version of libx11 you will find swings works will but of course it's not the ideal solution but of course there is another solution. The solution is to change the path of the libx11 in the libmawt.so which have shared native functions that calls libx11. we change the place of the used lib from the XINERAMA to the FAKEEXTN
using the sed command like this :

sed -i 's/XINERAMA/FAKEEXTN/g' libmawt.so

but where is libmawt.so this is different from jvm to jvm especially after the icedtea(icedtea is an implementation of the jvm by redhat ) so if you are using the jdk's jvm you will find the file in

/usr/jdk1.6.0_03/jre/lib/i386/xawt/libmawt.so
and after that you can run your net beans setup of any program that runs with java

.. more.

Tuesday, November 20, 2007

Visual Studio 2008 & .net 3.5 have been released !!


The title says it all !!

According to this blog post , Visual Studio 2008 and .net 3.5 have been released yesterday.

Here are the links to help you get started:

Visual Studio 2008 Web site

Visual Studio 2008 Express Edition Web Site

Microsoft .net 3.5 framework Download

Visual Studio 2008 Express Edition All in One DVD image Download

Enjoy them !

.. more.

Object Relational Mapping (ORM)

Object relational mapping or ORM, is the concept of reflecting the state of business objects to be stored in a database, the concept itself is already known, the difference is in how we can do it?.
In normal cases; a developer will connect to a database then write SQL queries to be executed against it, so , it is not a problem, isn't it??.

The main problem in the previous scenario is that a business logic developer must know SQL, and must embed SQL code in the database layer in the application. Another thing is if the schema changes, it would be a tedious task to rewrite SQL queries to fit with the new schema. Last but not least; sometimes DBMS systems have slight difference in their SQL syntax and data types, So, if for any reason an application migrates from using a certain DBMS to another, some problems might show up. Well, what is the solution then??
The solution is simply founding an intermediate layer between an application and a database, this layer encapsulates any thing relating to storing, deleting, updating and retrieving objects, a layer responsible for defining associations between business objects like; composition and inheritance to be expressed in the relational model in the form of database tables.

There are many ORM tools like; Toplink and Hibernate, however, hibernate is the most famous these days. When working with an ORM framework; the developer is responsible for defining the how a certain object will be mapped to the database; in other words; telling the framework how a certain business object will be saved in the database. The next code fragment shows a simple java code for defining an object named category.

public class Category {
private int id;
private String name;
private String description;
}


The previous object can be defined for mapping like this in a XML file as follows using Hibernate




That's it, when you are accessing the database in your application, you just make calls to save, delete,update and load methods , so if the schema needs altering, all what is needed is to modify the XML file and telling the framework to regenerate the schema without any modifications the actual business logic and without writing a single SQL query. The category object is simple,however, any kind of complex associations can be mapped using the same way.

The best thing in ORM is that it frees a designer's mind from going beyond business relations, as there is no need to think of how to express them in the relational model any more. When you start using ORM frameworks, things will be upside down for a while, then, it will really make sense.

.. more.

Beginning Reversing

Reversing is a good word which have a great meaning especially in computer science so
what is the meaning of Reversing or ( Reversed engineering )?
the Reversed engineering means Retrieving the blueprints from the output of the product whatever the product is as an example :suppose that we have a great building from 1977 and we want to repair it (for tourism issues) but actually we don't have the blueprints that building was built with so repairing it will be unmanaged work as we don't know exactly what each part of the building means and the answer of that problem is the magic word (REVERSE IT ) and we mean by reversing it try to retrieve the blueprints from it by this example I suppose that most of us know what is Reversing now let's talk about Reversing in computer science as you may thought Reversing is Retrieving the source code from the executables.

BUT why would we do that ? ???

there is lots of reasons to do so . Note that Reversing is not the science of stealing other people work as someone may expect . Reversing is used in such cases when some one was working with us and then he left the company and some of his work has some bugs in running and we had a problem communicating with him and we don't have the source code here the magic of reversing appears if we just reversed his work we will have the blueprint and we can fix the bug . some other reason as we all make we all work with third party product which may be dlls com components and some of them have a missing documentation and we need to know some of it's detail again here is Reversing solves the problem . and lots of application of reversing we could write lots of articles on Reversing application but one of the great application is viruses antis when the virus is spread most of the anti virus companies reverse it to know some information on how to beat it .
but how could we Reverse ?
that is last question and maybe the hardest one of course Reversing is not that trivial task you need to know exactly how your program run and know about your target operating system and of course you must know about the law level language you are reversing to it . after you know the appropriate information you actually need to watch your target application through debuggers and some other tools (actually reversing is all about using tools) you must watch the whole program running and then indicate the places of interest in your needs and then watch those places closely to know where is your bug exactly and then defeat it .

Reference : Secrets of Reversed engineering by Eldad Eilam

.. more.

Microsoft-Helwan Boot Camp & PilotView Session

Microsoft-Helwan Boot Camp

PilotView session

JOIN US FOR THIS EXCITING EVENT

To know more about “Microsoft-Helwan Camp”, our mission & activities.

Let’s start, to share our knowledge and find ways to make a difference.

In PilotView session, imagine yourself as a pilot on your plane, flying over computer science land, what will you see? Let’s find out together the different areas, also discover advanced technologies like .Net & Java, know what is Database? What is C++? What is OOD? Did you hear about Silverlight? Dose the word AJAX sounds familiar to you! Have you ever thought about having Certificates? Those and more.

Come and join us in this event @ FCI-H. J

Agenda:

3:00 pm – 3:15 pm Launch Microsoft-Helwan

3:15 pm – 4:30 pm PilotView session - by Ahmed Osama

DON’T MISS OUT
3:00 pm – 4:30 pm Thursday, November 22, 2007

FCIH main campus, Hall 1
Faculty of Computers & Information – Helwan University

Hope to see you there!

MSPs – Helwan

Contact us: msp-helwan@student-partners.com

Join our group: http://groups.msn.com/Microsoft-HelwanCamp

Open

P. S. PilotView session mainly for 2nd year students then 1st year ones, but sure everyone else is most welcome.

P. S. If you know anyone else who’d enjoy this event, please forward this email to them now.


.. more.

Sunday, November 18, 2007

Microsoft Task Parallel Library

Multi-processor machines are now becoming standard while the speed increases of single processors have slowed down. The key to performance improvements is therefore to run a program on multiple processors in parallel. Unfortunately, it is still very hard to write algorithms that actually take advantage of those multiple processors. In fact, most applications use just a single core and see no speed improvements when run on a multi-core machine. We need to write our programs in a new way.
Introducing TPL

The Task Parallel Library (TPL) is designed to make it much easier to write managed code that can automatically use multiple processors. Using the library, you can conveniently express potential parallelism in existing sequential code, where the exposed parallel tasks will be run concurrently on all available processors. Usually this results in significant speedups.

TPL is being created as a collaborative effort by Microsoft® Research, the Microsoft Common Language Runtime (CLR) team, and the Parallel Computing Platform team. TPL is a major component of the Parallel FX library, the next generation of concurrency support for the Microsoft .NET Framework. Though it has not yet reached version 1.0, the first Parallel FX Community Tech Preview (CTP) will be available from MSDN® in Fall '07. Watch http://blogs.msdn.com/somasegar for details. TPL does not require any language extensions and works with the .NET Framework 3.5 and higher.

The Full article in the MSDN.. Press Here

.. more.

Saturday, November 17, 2007

Android - An Open Handset Alliance Project

The Open Handset Alliance (http://www.openhandsetalliance.com/), a group of more than 30 technology and mobile companies, is developing Android: the first complete, open, and free mobile platform.

So there's no G-phone :(..So what's new about that..Let me tell you..Cool apps that surprise and delight mobile users, built by developers like you & me, will be a huge part of the Android vision. To support us in our efforts, Google has launched the Android Developer Challenge, which will provide $10 million in awards for great mobile apps built on the Android platform.

For more about Android & to download The SDK check
http://code.google.com/android/

Android Developers blog,
http://android-developers.blogspot.com/

YouTube channel/User, where u can find many useful videos about Androids & the services already available by the OS & the SDK,
http://www.youtube.com/AndroidDevelopers

& finally Android community,
http://code.google.com/android/groups.html

.. more.

Wednesday, November 14, 2007

Sun Microsystems Developer Day

Finally, Sun Microsystems will make one of the developers days in Egypt-Cairo. Sun Microsystems is supporting the community world wide and support EGJUG in Egypt.
Register NOW!

Agenda:

1. Sun and Open Source
Discover how is Sun contributing to open source and find out about Sun's key open source initiatives such as NetBeans, OpenSolaris, Glassfish and OpenOffice.

2. NetBeans 6 - New & Cool
This session provides an overview of new tools available in the upcoming release of NetBeans 6.0. You will see demos of new Java editor in NetBeans 6, we will demonstrate various new features of NetBeans GUI builder in action and NetBeans Profiler which helps analyze performance of Java applications.

3. Technologies for Creating Rich Internet Applications *Creating highly interactive web applications is a must today. During this session you can find out how to use different technologies to create Ajax-enabled applications to provide better user experience for end users.

4. Introduction to Swing Application Framework and Beans Binding *Swing application framework and Beans binding are new frameworks which greatly simplify desktop application development. Together with NetBeans' Matisse GUI builder you can develop desktop applications much easier than before. All features will be again demonstrated in action inside of the IDE.
5. NetBeans Mobility Pack

Java is very popular by mobile applications developers. Discover what's new in NetBeans Mobility Pack, the ultimate tool for creating mobile applications. It's visual designer is not only easy to use but also very flexible and supports latest standards such as CDC and SVG.

Venue: Dar Al Defa' Al Gawy, Nozha St. Nasr City
Date: November 21st, 2007
Time: 10 am.

This event is open to developers free of charge. Places are limited, so please register early. All attendees are invited to stay for lunch. All pre registered attendees will receive a free NetBeans developer pack and T-shirts.

.. more.

Saturday, November 10, 2007

DotNetwork.org Preparation Meeting

DotNetWork user group is a group of people who are willing to participate and aid the developers community building & enhancing their technical skills. We want to help both undergraduates & postgraduates knowing the latest technologies, new concepts, have an eye out for the world & communicating with the rest of it.

We are willing to achieve that by planning multiple events for the community & help to spread the word about .Net.

The user group is preparing for its first official meeting. We're meeting to start founding the user group. Anyone who wants to join or start participating, please attend the meeting.

We will get together at the preparation meeting to discuss how we can achieve the user group goals & see who's willing to participate as a member of the administrating team (which will cost them little bit of their time & will require their commitment), we need to plan this thing to be very independent, self-sustainable & self-grown, so we need to plan it right. That's where we can help each other with :)

Also bring your ideas and what do you think we can do to grow big (not fast)...

Let's invite as many people as we can, we need tons of ideas, thoughts & spirits to get this thing running!
Spread the word

Meeting whereabouts:
Date: Saturday, November 17, 2007
Time: 12:00pm - 3:00pm
Location: DashSoft
Street: 243 Ramses St. 3rd Floor, Apt.6 (After Bank of Alex)
City/Town: Cairo, Egypt

You may join the Event page on facebook @ http://www.facebook.com/event.php?eid=5532844966

Group page on facebook is http://www.facebook.com/group.php?gid=2409268236

& on Yahoo!Groups is http://tech.groups.yahoo.com/group/dotnetworkorg/

.. more.

Saturday, October 27, 2007

Dependency Injection

What is Dependency injection?
A software concept at which when an object relies on another one in its functionality the using object is not responsible for knowing how the needed object will be available . In other words; when an object have a reference to another object as a member variable, it is not responsible for determining how that reference will be available.

Example:
Suppose the next fragment of code:

public class car
{
public Engine engine;

Public void GO(int Acceleration_Factor)
{
this.Engine.Start();
this.Engine.Accelerate(Acceleration_Factor);
}
}

public class Engine
{
public SparkPlug sparkplug;

public void Start()
{
sparkplug.getElectricCharge();
sparkplug.startspark();
-----;
------;
-------;
}
}


It is clear that we are demonstrating a simple car operation which consists of an engine with a simple spark plug. ok, lets review this case in terms of code. When you instantiate an object of type car, you have to supply it with an object of type engine which in turn needs an object of type spark plug which might need another object of another type and so on.

Imagine a way to let you just specify the characteristics of your objects and the creation is some one else's concern, imagine that when you create the car object, the engine object is created and ready for use which in turn have a spark plug object created and ready for use.
doesn't make sense yet?? Ok, lets see this scenario.

Suppose you need to unit test the previously mentioned example, a test case will be written, so all what you need is to test the functionality of the car object assuming it has more references to objects rather than an engine. When you write this kind of test, you have to successfully create an engine object, which requires the creation of a spark plug object, those last creations are totally out of scope for testing the car object. In this case, all what you need is some one who creates these objects for you in the right way to make sure that you are only testing the car object, That "some one" is the Dependency injection frame work.

Frameworks like spring offer this feature, all what you do is specifying what your business objects look like in an XML file, and the framework is responsible for supplying any other objects using your objects. It might not be clear that this is an amazing feature, but in enterprise applications, relations between objects get very complicated and dependencies might be cyclic at some points, where an object depend on another which in turn depend on another which depends on the first one. In real cases; dependency injection become very useful, you just declare your variables and generate their accessors and the frame work does the rest.

The importance of dependency injection might not be clear by now, but when you start writing code with this trend you will notice the difference.

.. more.

Gmail supports IMAP

Gmail is starting to roll this protocol IMAP (Internet Message Access Protocol) out on every device and every platform, for free.
This protocol
have a advantage than the previous old supported protocol POP ( supported until now ) , in fact it seem like POP(Post Office Protocol) access, but lacks one critical feature: your changes made on other devices aren't seen in Gmail when you log back in (you must log in again to get changes ).

Official Google Blog :
http://googleblog.blogspot.com/2007/10/free-imap-for-gmail.html

.. more.

Saturday, October 20, 2007

F# is an official .NET language now

I got that from Channel 8 recent news, F# is an official .NET language now
Soma had the news today. F# is an official .NET language now! Functional programming becomes a first citizen in .NET :-) read more...

.. more.

Friday, October 19, 2007

Tuesday, October 16, 2007

Ubuntu 7.10 after two days

The official site of Ubuntu promise all Linux lover to a new version of Ubuntu, Kubuntu, Edubuntu, Gobuntu, and Xubuntu codenamed "Gutsy Gibbon" throw version 7.10 .

They consider this new release candidate to be complete, stable, and suitable for testing by any user.

The new version 7.10 is scheduled for 18 October 2007 (after two days ) and will have supporting for 18 month only so from users want support for longer time using Ubuntu 6.06 LTS, with security support until 2011 .

.. more.

Sunday, October 07, 2007

Releasing the Source Code for the .NET Framework Libraries

in the name of ALLAH

actually um like Most of you, when i read this title in ScottGu's Blog,
Microsoft gonna make FW 3.5's Libraries be open source .. WOW.. So excited

Read this Part from his Post

One of the things my team has been working to enable has been the ability for .NET developers to download and browse the source code of the .NET Framework libraries, and to easily enable debugging support in them.

Today I'm excited to announce that we'll be providing this with the .NET 3.5 and VS 2008 release later this year.

We'll begin by offering the source code (with source file comments included) for the .NET Base Class Libraries (System, System.IO, System.Collections, System.Configuration, System.Threading, System.Net, System.Security, System.Runtime, System.Text, etc), ASP.NET (System.Web), Windows Forms (System.Windows.Forms), ADO.NET (System.Data), XML (System.Xml), and WPF (System.Windows). We'll then be adding more libraries in the months ahead (including WCF, Workflow, and LINQ). The source code will be released under the Microsoft Reference License (MS-RL).

You'll be able to download the .NET Framework source libraries via a standalone install (allowing you to use any text editor to browse it locally). We will also provide integrated debugging support of it within VS 2008.

to read the Full Post from here

.. more.