Abdul Habra's Blog
Arabic Text Editor

I just moved “Arabic Text Editor” to


Spam Revenge
Tek271 Servlet Utilities

I just moved Tek271 Servlet Utilities to


Tek271 Template
Tek271 GzipServletFilter

I just moved Tek271 GzipServletFilter to


Tek271 Memoizer
Neural Networks - An Introduction

Moved this paper to the new Google Apps site on 2011.03.29


Reverse Proxy Server
Guava At Cinjug

I presented Google Guava at Cincinnati Java User Group (CinJug) on 2011.01.27.

Here are links to the material presented:

  1. Presentation as PDF
  2. Sample Java code as an Eclipse project (zipped)
    Build CRUD Apps With Play Framework


    Play (playframework.org) is a Java framework that makes it very easy to build web applications. Here I show how to build a CRUD web app in a way that reminds me of RoR or Grails. You only need to know Java to follow this example. Play’s website contains excellent documentation and I will not repeat them here.

    Some of the material here was presented at CoJug on 2010.06.08. The CoJug presentation contained more than what is provided here, and was presented by Nilanjan Raychaudhuri and myself.


    1. Java 1.5 or higher installed.
    2. Play installed, remember to add Play’s location to the path.
    3. Eclipse 3.5 installed. (This is a personal choice, you may use any IDE or text editor).

    This will be a simple CRUD application which manages the following entities:

    1. A group of companies.
    2. Each Company can have 0 or more Department.
    3. Each Department can have 0 or more Employee.

    Create App’s Skeleton

    1. From the command line, navigate to the directory which will contain the new application.
    2. Run this command: play new corporations
    3. You will be prompted to enter the application’s name, enter Corporations
    4. The above will create an empty Play application in the corporations directory.
    5. To try what you created, run this command:

        cd corporations
      play run
    6. In your web browser, go to http://localhost:9000/
    7. You should get a page titled “Your application is ready !”
    8. This proves that Play is running and that you application has started.

    Read More


    My notes about COUNTER and SUSHI

    COUNTER: Counting Online Usage of Networked Electronic Resources. projectcounter.org

    SUSHI: Standardized Usage Statistics Harvesting Initiative. www.niso.org/workrooms/sushi/

    COUNTER is a standard used by libraries and publishers to report online usage statistics. The reports can be in CSV, spreadsheets, or XML. There are several types of reports; Journal, Database, and Consortium Reports. All reports are monthly.

    SUSHI is a Web Service (SOAP) standard which allows requesting a COUNTER report in XML format. The web service request specifies what COUNTER report is needed, while the response will contain (embedded) the report. See SUSHI Tutorial.

    The SUSHI web service should validate the request before responding. Validations could include:

    1. Client IP address. As a security measure.
    2. Customer ID.
    3. Report type.
    4. Date range.

    Read More