Skip navigation.
Home

Egyptian Blogs

Workshop on Software Engineering Education in Egypt

Ali Abdel Aziz - Tue, 2007-05-29 16:55

Workshop on Software Engineering Education in Egypt
Challenges and Opportunities
June 3, 2007,
Seminar Hall,
Faculty of Computers and Information,
Cairo University

read more

Categories: Egyptian Blogs

Software Development Best Practices

Hazem Blog - Mon, 2007-05-21 21:12

When I was reading a book about the Rational Unified Process, I found a useful nice piece of information that I would like to share with you. This piece of information states some of the software best practices.
1. Develop software iteratively :
Iterative development has many advantages:
- Enabling the user feedback between iterations so as to elicit the system's real requirements.
- Iterative testing produces a better final "Quality Product".
- Inconsistencies between architecture, design and implementation are detected early.
- There are many chances to correct project mistakes through the project iterations.
- Customer Trust (The customer is always seeing a deliverable as a result of each iteration).
2. Use component-based architectures :
Architecture is the light in the way to the final solution. Without it, the low level design and development will be unguided. When the architecture is based on components, this will increase the level of "component re-use" and will shorten the overall development time.
3. Donot work without modeling the software visually.
4. Manage Requirements :
The active management of requirements encompasses three activities: eliciting, organizing, and documenting the system's required functionality and constraints; evaluating changes to these requirements and assessing their impact; and tracking and documenting trade-offs and decisions. If the requirements are managed, the inconsistencies will be detected early.
Categories: Egyptian Blogs

Mind42 (A great place for keeping track of your ideas and sharing them with friends)

Hazem Blog - Mon, 2007-05-21 20:04

Mind42 is a very good website for keeping tracking of ideas and sharing with friends.

Check it out from here
Categories: Egyptian Blogs

JETS Launch and Workshop Day

Ali Abdel Aziz - Sun, 2007-05-13 10:40

JETS Launch and Workshop Day "Open source … the trend for the future"

read more

Categories: Egyptian Blogs

MyFaces 1.2 supports JSF 1.2 !!!

Hazem Blog - Fri, 2007-05-11 18:41

MyFaces Team has announced that the MyFaces 1.2 project fully implements the JSF 1.2 specification after passing the TCK (Technology Compatibility Kit tests).
And now they are waiting for the formal acknowledgment from Sun that the implementation is conformant with the Specification.
This is really a great piece of news.
BTW, Till now there is no release for this version but you can download the source code and build the jars using Maven.
Check the instructions :
MyFaces 1.2 Build Instructions
Categories: Egyptian Blogs

Why Software Projects Fails ?

Hazem Blog - Sat, 2007-05-05 22:13

When I was reading a book about the Rational Unified Process, I found a useful nice piece of information that I would like to share with you. This piece of information states why the software projects fail.

The book says that the main reasons behind most of the software projects failures:

1. Incomplete Requirements:
The design and the implementation may start before even the requirements has been completed or signed by the customer.

2. Ambiguous Communication:
When the communication between the team members is ambiguous. The way the application which will be developed will be also ambiguous.

3. Architecture Problems:
It has 2 sub problems:
3.1. Complex Architecture:
Complex architecture may be hard to understand by the team designers. So wrong low level design and implementation may occur.
3.2. Inflexible Architecture:
When the architecture is not extensible. It will be very hard to accommodate with the new customer requirements.

4. Undetected Inconsistencies with External Systems:
Interfaces with external system should be well-defined before going into implementation to prevent "Developing the wrong system".

5. Waterfall Model:
Waterfall model cannot succeed with customer software services. Customers always want to give their feedback periodically so Software models that are based on iterations and milestones are the most recommended with customer services. The (Rational Unified Process) is one of these software models.

This is all about.

Categories: Egyptian Blogs

TransformMaster.java

Ali Abdel Aziz - Mon, 2007-04-30 14:54

/*
* TransformMaster.java
*
* Created on April 29, 2007, 9:59 AM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

package com.arpu.opencds.datatransformation;

import java.io.*;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.text.MaskFormatter;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.stream.StreamResult;

read more

Categories: Egyptian Blogs

SqlXMLReader.java

Ali Abdel Aziz - Mon, 2007-04-30 14:53

/*
* SqlXMLReader.java
*
* Created on April 29, 2007, 12:07 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

package com.arpu.opencds.datatransformation;

import java.io.*;
import java.net.URL;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import org.xml.sax.*;
import org.xml.sax.helpers.*;

/** A utility class that parses a Result Set Value
* and outputs its contents using SAX2 events.
* For simple values, the SQL Result Set file may look like this:
*

read more

Categories: Egyptian Blogs

SqlInputSource.java

Ali Abdel Aziz - Mon, 2007-04-30 14:50

/*
* SqlInputSource.java
*
* Created on April 29, 2007, 5:24 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

package com.arpu.opencds.datatransformation;

import java.sql.ResultSet;
import org.xml.sax.InputSource;

/**
* a class that extends InputSource.
* The intent of this class is to just holds a copy of the ResultSet object
* for the XML reader to use it.
* @author aabdelaziz
* http://www.aliabdelaziz.com/
*/
public class SqlInputSource extends InputSource {

/**
* Zero-argument default constructor.
*
* @see #setPublicId
* @see #setSystemId
* @see #setByteStream
* @see #setCharacterStream
* @see #setEncoding
* @see #setResultSet
*/
public SqlInputSource() {
super();
}

/**
* Create a new sql input source with a system identifier.
*
*

Applications may use setResultSet to include a
* public identifier as well.

read more

Categories: Egyptian Blogs

AbstractXMLReader.java

Ali Abdel Aziz - Mon, 2007-04-30 14:48

/*
* AbstractXMLReader.java
*
* Created on April 29, 2007, 12:20 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

package com.arpu.opencds.datatransformation;

/**
*
* @author aabdelaziz
* http://www.aliabdelaziz.com/
*/
import java.io.IOException;
import java.util.*;
import org.xml.sax.*;

/**
* An abstract class that implements the SAX2 XMLReader interface. The
* intent of this class is to make it easy for subclasses to act as
* SAX2 XMLReader implementations. This makes it possible, for example, for

read more

Categories: Egyptian Blogs

Converting your old CMS database to XML format that can be imported into OpenCDS.

Ali Abdel Aziz - Mon, 2007-04-30 14:20

As we are currently working on migration from my company old CMS to OpenCDS so I have to migrate the old data from the old CMS database (MSSQL Server) to OpenCDS database (Oracle) and offcourse the two ERDs are completely different.
So the solution that I follow is to export the data from my old CMS to XML files then use XML_Submission to insert this data into OpenCDS and this will guarantee that the relation for each piece of content is created correctly.

I will discuess in this Article how to export the data from your old CMS database to XML files with format that can be imported into OpenCDS.

read more

Categories: Egyptian Blogs

OpenCDS Devices profiles transformation

Ali Abdel Aziz - Sun, 2007-04-22 09:07

I have used XSLT as a transformation engine to transform the Devices profiles from the manufacture form to the OpenCDS form.

Handsets Profiles Links:

A few Notes on the Following XSLT:
some MIME Types are not found in OpenCDS so I maped it to temp directory with .tmp extension, so you should create this Content Tyype (temp) and attach to it all MIME TYPEs that doesn't exit in the system

the following is Nokia XSL that is used to transform from Nokia format to OpenCDS format:

Categories: Egyptian Blogs

Creating your own custom JSF parent component

Hazem Blog - Sat, 2007-04-21 14:55

You may wish to create a JSF component that can contain other child JSF components.
Words are very nice but how to implement this idea ???
Assume we want to create a component that can hide and show the child components based upon a specific attribute. Let call our component (parentTag) and the attribute (visible).
For example)





If #{myBean.visible} is true then the child components will be visible else they won't appear.
The main trick is here at the Renderer class using the
getRendersChildren( ) and encodeChildren( ) methods.
Let's see how to make this ...
//The main trick is here at the Renderer class ...
class ParentTagRenderer extends Renderer {
  //Must override this method to tell that you are a parent component ...
  public boolean getRendersChildren() {
    return true;
  }

  //Here is the method that is responsible for rendering the child components ...
  public void encodeChildren(FacesContext context, UIComponent component)
      throws IOException {
    String visible = (String) component.getAttributes().get("visible");
    //If the value is true then render the childrens ...
    if ("true".equalsIgnoreCase(visible)) {
      super.encodeChildren(context, component);
    }
  }
  /*Other Renderers methods ...*/
}
I hope that this is useful. Thank you all.
Categories: Egyptian Blogs

Java Web Development Introduction Course For Beginners Slides

Hazem Blog - Sun, 2007-04-15 00:09

Recently I had written a set of slides to be an introduction for guys who wish to start writing web applications with Java.
These slides cover the following topics in a simple way:
- The Servlet Model.
- Web Applications Structure.
- The Web container Model.
- JSP.
- JSP Standard Actions, EL.
- JSTL.
- Classic Tag Libraries.
You will find samples for each lesson. There are also PIF files that can be imported inside IBM RSA or IBM RAD.
Download The Slides
Download The Samples
Thanks to all of you.
Categories: Egyptian Blogs

AJAX DWR Singleton Creator

Ahmed Hashim - Fri, 2007-04-13 15:33
In one of my messages in the DWR mailing list, I asked about how to use a singleton class in DWR, they kindly refered to http://getahead.org/dwr/server/dwrxml/creators/scripted the solution is to use BSF (Bean Scripting Framework) to initialize the class in dwr.xml, you should download & use the jar of BSF. I didn’t like both [...]
Categories: Egyptian Blogs

JSR-313: Java Platform, Enterprise Edition 6

Amr Ali Blog - Wed, 2007-04-04 22:34
JSR-313 is now available for review: JSR-000313 Java Platform, Enterprise Edition 6 (Java EE 6) Specification http://jcp.org/en/jsr/detail?id=313 “This JSR is to develop Java EE 6, a release of the Java Platform, Enterprise Edition targeted to ship in 2008.” The review for this JSR closes on 16 April 2007.
Categories: Egyptian Blogs

Free retake exams from SUN

Amr Ali Blog - Wed, 2007-04-04 22:30
Retake on Sun Certification Exams at No-Cost Purchase a voucher for most Java technology or Solaris OS certification exams between March 21 and June 30, 2007, and should you need it, you can retake the exam at no-cost.   follow here: http://www.sun.com/training/savings/retake_SDN.xml
Categories: Egyptian Blogs

April Fools !!!

Hazem Blog - Mon, 2007-04-02 22:04

Reading the Java blogs at the first day of April. Most of their entries are full of lies. Some of the big lies I liked : 1. Eclipse Sold to Microsoft 2. Guice acquires Spring 3. Spring acquired Guice 4. Microsoft becomes a J2ME licence
Categories: Egyptian Blogs

Writing your first GWT application using Googlipse

Hazem Blog - Fri, 2007-03-30 02:11
GWT is amazing java based framework that enables you to write Ajax web applications in a way similar to swings.
You will need not to write HTML or Javascript anymore to create your web applications.
Actually till now Iam not a GWT guru but I decide to dig more at this library as I really liked this new trend of web development.
Anyway let's start writing our first GWT application (Let's make a simple application that adds two numbers using GWT).
OK this is fine but what should we do before starting???
1. Actually we will first have to download the GWT library from:
http://code.google.com/webtoolkit/
2. Download the nice eclipse plugin for GWT (Googlipse) from:
http://www.googlipse.com/
3. Just drop the Googlipse plugin at the plugin folder of EClipse (Make sure that the EClipse version is 3.2 with WTP 1.5).
4. Extract the GWT zip file and place it under a specific location.
5. Open the Eclipse and then select Window->Preferences->Googlipse and set GWT home to the directory where you have extracted the Google Web Toolkit.
That is all about the setup, let's start making our first project...

==> Open the EClipse First.
1. Create a new web project.
1.1. Enter the project name "GWTTest".
1.2. In the configuration section select "Default Googlipse Project".
2. Add a new module by selecting File->New->Other->Googlipse->GWTModule.
2.1. Type the name of the module "Adder" and select (or type) the package where you want to create "com.xyz.test" then click Finish.
3. In the (Adder.java) file, you will find that the Adder class implements the (EntryPoint) interface. At the onModuleLoad( ) method, we will write our basic GWT application UI creation and logic. It will be like this:
package com.xyz.test.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.*;

public class Adder implements EntryPoint  {
  
  public void onModuleLoad()  {
    //Create the UI using Java Cod e ...
    final TextBox txtFirstNumber = new TextBox();
    final TextBox txtSecondNumber =  new TextBox();
    final TextBox txtResult = new TextBox();
    final Button btnCalc = new Button("Add Numbers");
    //Add action listener to the butt on ...
    btnCalc.addClickListener (new ClickListener()  {
      public void onClick(Widget sender)  {
         txtResult
             .setText((Integer.parseInt (txtFirstNumber.getText()) + Integer
                 .parseInt(txtSecondNumber.getText ()))
                 + "");
      }
    });
    //Create our nice panel to grou p the objects ...
    Panel panel = new VerticalPanel(); 
    panel.add(txtFirstNumber) ;
    panel.add(txtSecondNumber) ;
    panel.add(btnCalc);
    panel.add(txtResult);    
    RootPanel.get().add(panel);
  }
}
As you see we didn't write any JS code or even HTML, It is pure JAVA.
4. To run the application, just do the following:
4.1. Open the Run dialog.
4.2. In the Gwt Hosted Mode Application (Right Click and choose New).
4.3. In the Dialog: Enter the Name of the configuration say (MyApp), Project name "GWTTest" and the Module "com.xyz.test.Adder" then click run.
4.4. A browser will be opened for you to test the application in the hosted mode so the final output will be like this:
BTW you can simply run the application at your Firefox browser by just choosing compile/browser button.
That is all about ;).
Sweet Dreams with GWT.
Categories: Egyptian Blogs

Tips to save client’s bandwidth

Ahmed Hashim - Tue, 2007-03-20 21:01
In this post, I will write about the client/server bandwidth saving. In some countries, the cost of the Internet is based on the bandwidth consumption, you pay for the number of MB’s you have used as traffic, so, if there is a website which contains pages with large size, you will consume the client bandwidth! [...]
Categories: Egyptian Blogs
Syndicate content