My name is Haim Michael and I am the General Manager for Zindell Technologies. I chose to develop this web site for the benefit of all people world wide. I have started to develop it in November 2007 and I continuously update its courses and add new ones. All courses on this web site are available for free personal usage. I will be more than happy to get your feedback via my blog at www.lifemichael.com.

Skip Online Support
Show or hide block

Online Support

My status

Carried out via skype. The fee is USD 2.0 per minute. Till December 31th 2008 we have a special promotion of USD 0.5 per minute only!

Skip Java Technology Headlines
Show or hide block

Java Technology Headlines

Skip Apache Jakarta Project
Show or hide block

Apache Jakarta Project


  • Version 2.3.2 of Apache JMeter has been released.

    For details of new features and fixes,
    please see the JMeter web site.


    Download JMeter


  • Version 1.8.0 of Apache Cactus has been released.

    For details of new features and fixes,
    please see the cactus web site.


    Download Cactus


  • Version 2.3.1 final of Apache JMeter has been released.

    For details of new features and fixes,
    please see the changes file.


    Download JMeter

  • One of the things I started to do a little while ago was to start writing a column in German for the Java Magazin. After I did my JAX keynote on OpenJDK back in April as one of the first things I did at Sun, I was approached by Sebastian Mayen about writing on OpenJDK for the magazine. I spent the following weeks at ...
  • The election results for the 2008 JCP elections are in. Congratulations to Intel and Werner Keil for winning seats on the SE/EE EC, and special congratulations to Mobile&Embedded community member Sean Shady getting elected onto the ME EC. Congratulations are also due to Sony Ericsson Mobile Communications ABfor winning the election to the ME EC as well.It's great to see both individuals ...
  • I've now enabled "multi target" support. This means that you can compile multiple
    assemblies at once. One of the advantages this has is that it makes dealing with circular
    dependencies much easier, but even if there aren't any circular dependencies, it can
    make building much easier because you don't have to do any dependency analysis.

  • The recently announced SpringSource Enterprise Maintenance Policy came as a surprise to many Java developers, in some circles sparking anger and calls for a Spring fork. One factor in the controversy may be the relationship between the lesser known commercial vendor, SpringSource, and its widely popular open source product, the Spring framework. In this discussion with Andrew Glover, SpringSource CEO Rod Johnson talks about how his company walks the line between commercial success and its driving role in open source projects such as the Spring framework and Tomcat. Similarly, he explains what factors might cause developers to migrate from Spring's strictly free and open source products to the commercial, and costly, SpringSource Enterprise package. Johnson also discusses the new, OSGi-based SpringSource Application Platform, which he says is designed not for where the Java enterprise market has been, but for where it is going.
  • Groovy Project Manager Guillaume Laforge  talks with Andrew Glover about what's new in the Groovy 1.6 beta release. Learn about the complexity that has slowed Groovy down in the past and find out what's been done to greatly improve benchmark results in Groovy 1.6. Guillaume also shares tips for optimizing Groovy-based applications and talks about the recent burst of tools support for Groovy; current challenges for the Groovy development team, and what we can expect from upcoming releases such as Groovy 1.7 and 2.0.
  • Max Ross is the Google engineer who spends his days working on the Google App Engine data store. On the side he works on Hibernate Shards, another scalability-obsessed project that is open source. In this talk with Andrew Glover, Max explains sharding, which is the strategy of storing application data on multiple databases. As Max explains, sharding may not be popular but it is a necessary for some applications dealing with a high volume of data. In those cases, Hibernate Shards provides a unified view into any number of databases, making huge amounts of data manageable even as the system evolves.
http://java.sun.com/javaone
  • The 2008 JavaOne Rockstars have been finalized and we are pleased to induct the following presenters into the Rock Star program.
  • Couldn't attend the Conference in person this year? See all the General Sessions in chapter segments.
  • See the Conference wrap-up article along with all other articles written throughout the week.
Skip IBM Open Source Projects
Show or hide block

IBM Open Source Projects

  • Adobe has released the free, open source Flex SDK framework to enable developers
    to create Rich Internet Applications (RIAs). The Flex framework provides you with
    a method of creating cross-browser, cross-platform Web applications that is quick and
    simple. Flex applications run in the Flash player, which is installed on the majority of
    Internet-connected computers, but Flex provides you with an object-oriented
    user interface framework similar to Java's Swing. In this tutorial, develop a
    Facebook application in Adobe Flex that displays a slideshow of a user's Facebook
    photo albums. The Facebook application will contain a Profile box listing all of the
    user's photo albums, each a link to a Flex slideshow of that album. The Flex application
    will use the Facebook REST API to fetch the photos of the selected Facebook album and
    dynamically generate the slideshow.


  • Security is an important issue when installing a bundle of new features to software. This article explores the signature technologies used by the Eclipse platform to determine the trustworthiness of plug-ins. Eclipse places each plug-in in one of five categories: unsigned or signed, trusted or untrusted, or expired. Learn how to create signed plug-ins in Eclipse and IBM Lotus Expeditor, an Eclipse-based product.
  • PHP is an easy-to-use, easy-to-learn, widely accessible programming language. It's well suited for developing simple scripts you can use to help you in all kinds of games. Whether you play simple pen-and-paper games by yourself, complex tabletop role-playing games with a group of people, or online games of any kind, this series will have something for you. Each article in this series will cover 10 scripts in 300 words or fewer (3d10 stands for "roll three 10-sided dice") that are simple enough for even a beginning developer, but useful enough for a seasoned game player. The goal is to give you something you can modify to suit your needs, so you can impress your friends and players by busting out your laptop at your next gaming session.
  • The Linux kernel uses several special capabilities of the GNU Compiler
    Collection (GCC) suite. These capabilities range from giving you shortcuts and
    simplifications to providing the compiler with hints for optimization.
    Discover some of these special GCC features and learn how to use them in the
    Linux kernel.
  • Most system administrators planning to install Linux on IBM System p
    eventually run into an important question: Which Linux distribution should I
    install? This article compares two distributions from Red Hat and Novell, and
    weighs the pros and cons of each. We'll discuss Linux on POWER (LoP), the history of
    both distributions, the relationship IBM has with them, and the factors that should
    go into your decision-making process. We're also going to compare and contrast what
    it takes to create logical volumes on SuSE Linux Enterprise Server (SLES) and Red
    Hat Enterprise Linux (RHEL).
  • A simplified process for installing operating systems can reduce the
    amount of time you spend on administration of your cloud computing
    environment. This article describes how you can automate the installation of
    SUSE Linux on a new IBM Power System or System p LPAR. You can also use the
    same techniques to install Red Hat Linux or AIX.
Skip java.net Articles
Show or hide block

java.net Articles


  • Animation is increasingly being used by desktop and mobile applications to provide a better user experience, bringing the user's attention to changes in content or context. In this article, Biswajit Sarkar introduces the animation and transition features provided by LWUIT for mobile Java applications.

  • Funambol provides mobile sync and push email solutions powered by open source. Stefano Muffuli from Funambol talkes with Terrence Barr about the technology and license.

  • Java Business Integration (JBI) offers a programming model build on assembling a group of components that can be plugged in to a collaborative system. In this article, Francesco Azzola demonstrates basic JBI development and deployment by creating an app that receives requests and sends SMS messages.
Skip Janice J. Heiss's Blog
Show or hide block

Janice J. Heiss's Blog

  • Joshua Bloch, "Effective Java" author and Google's chief Java architect, gives readers a peek into the revised edition of his popular book and more.
  • Java technology evangelist Chuk-Munn Lee suggests the best troubleshooting practices when dealing with Java SE 6 issues during deployment.
  • Sun GlassFish engineer Sanjeeb Kumar Sahoo provides an update on GlassFish, discusses the Java EE portability checking tool he's writing, and offers insight into the benefits of working in an open-source community.
Skip Chet Haase's Blog
Show or hide block

Chet Haase's Blog

  • Join Romain and I for another Filthy Rich Clients session at JavaOne this year.
  • Process, process, process. Process.
  • The Scene Graph team has been writing demo applications for some time - now we've finally published them.
Skip Sun Student Connection
Show or hide block

Sun Student Connection

Skip Java Technology Videos
Show or hide block

Java Technology Videos


  • This is the second part of the PHP distribution of NetBeans IDE 6.5. This part is about basic editor features.

  • The JavaScript debugger provides you with a set of tools that aid in the process of inspecting and editing JavaScript code. You can use the debugger to identify errors, or step through execution and explore the state of your application at any given moment.  This demo explores some of the debugger features by examining a project that uses a fisheye widget.

  • Nodes API and Explorer & Property Sheet API, the next part of this series.
  • Rico Mariani, Chief Architect of Visual Studio, talks about the long term plans for Visual Studio 2010. His emphasis is on two key areas, extensibility and performance. By Jonathan Allen
  • Referenced CVEs: 
    CVE-2008-2940, CVE-2008-2941
    Description: 
    ============================== =============================
    Ubuntu Security Notice USN-674-1 November 19, 2008
    hplip vulnerabilities
    CVE-2008-2940, CVE-2008-2941
    ============================== =============================

    A security issue affects the following Ubuntu releases:

    Ubuntu 6.06 LTS
    Ubuntu 7.10
    Ubuntu 8.04 LTS

    This advisory also applies to the corresponding versions of
    Kubuntu, Edubuntu, and Xubuntu.

    The problem can be corrected by upgrading your system to the
    following package versions:

    Ubuntu 6.06 LTS:
    hplip 0.9.7-4ubuntu1.1

    Ubuntu 7.10:
    hplip 2.7.7.dfsg.1-0ubuntu5.1

    Ubuntu 8.04 LTS:
    hplip 2.8.2-0ubuntu8.1

    In general, a standard system upgrade is sufficient to effect the
    necessary changes.

    Details follow:

    It was discovered that the hpssd tool of hplip did not validate
    privileges in the alert-mailing function. A local attacker could
    exploit this to gain privileges and send e-mail messages from the
    account of the hplip user. This update alters hplip behaviour by
    preventing users from setting alerts and by moving alert configuration
    to a root-controlled /etc/hp/alerts.conf file. (CVE-2008-2940)

    It was discovered that the hpssd tool of hplip did not correctly
    handle certain commands. A local attacker could use a specially
    crafted packet to crash hpssd, leading to a denial of service.
    (CVE-2008-2941)
  • Referenced CVEs: 
    CVE-2008-4225, CVE-2008-4226
    Description: 
    ============================== =============================
    Ubuntu Security Notice USN-673-1 November 19, 2008
    libxml2 vulnerabilities
    CVE-2008-4225, CVE-2008-4226
    ============================== =============================

    A security issue affects the following Ubuntu releases:

    Ubuntu 6.06 LTS
    Ubuntu 7.10
    Ubuntu 8.04 LTS
    Ubuntu 8.10

    This advisory also applies to the corresponding versions of
    Kubuntu, Edubuntu, and Xubuntu.

    The problem can be corrected by upgrading your system to the
    following package versions:

    Ubuntu 6.06 LTS:
    libxml2 2.6.24.dfsg-1ubuntu1.4

    Ubuntu 7.10:
    libxml2 2.6.30.dfsg-2ubuntu1.4

    Ubuntu 8.04 LTS:
    libxml2 2.6.31.dfsg-2ubuntu1.3

    Ubuntu 8.10:
    libxml2 2.6.32.dfsg-4ubuntu1.1

    After a standard system upgrade you need to restart your sessions to effect
    the necessary changes.

    Details follow:

    Drew Yao discovered that libxml2 did not correctly handle certain corrupt
    XML documents. If a user or automated system were tricked into processing
    a malicious XML document, a remote attacker could cause applications
    linked against libxml2 to enter an infinite loop, leading to a denial
    of service. (CVE-2008-4225)

    Drew Yao discovered that libxml2 did not correctly handle large memory
    allocations. If a user or automated system were tricked into processing a
    very large XML document, a remote attacker could cause applications linked
    against libxml2 to crash, leading to a denial of service. (CVE-2008-4226)
  • Referenced CVEs: 
    CVE-2008-5050
    Description: 
    ============================== =============================
    Ubuntu Security Notice USN-672-1 November 17, 2008
    clamav vulnerability
    CVE-2008-5050
    ============================== =============================

    A security issue affects the following Ubuntu releases:

    Ubuntu 8.10

    This advisory also applies to the corresponding versions of
    Kubuntu, Edubuntu, and Xubuntu.

    The problem can be corrected by upgrading your system to the
    following package versions:

    Ubuntu 8.10:
    libclamav5 0.94.dfsg.1-1ubuntu0.1

    In general, a standard system upgrade is sufficient to effect the
    necessary changes.

    Details follow:

    Moritz Jodeit discovered that ClamAV did not correctly handle certain
    strings when examining a VBA project. If a remote attacker tricked ClamAV
    into processing a malicious VBA file, ClamAV would crash, leading to a
    denial of service.
  • Referenced CVEs: 
    CVE-2008-0017 CVE-2008-4582 CVE-2008-5012 CVE-2008-5013 CVE-2008-5014 CVE-2008-5015 CVE-2008-5016 CVE-2008-5017 CVE-2008-5018 CVE-2008-5019 CVE-2008-5021 CVE-2008-5022 CVE-2008-5023 CVE-2008-5024
    Description: 
    ============================== =============================
    Ubuntu Security Notice USN-667-1 November 17, 2008
    firefox, firefox-3.0, xulrunner-1.9 vulnerabilities
    CVE-2008-0017, CVE-2008-4582, CVE-2008-5012, CVE-2008-5013,
    CVE-2008-5014, CVE-2008-5015, CVE-2008-5016, CVE-2008-5017,
    CVE-2008-5018, CVE-2008-5019, CVE-2008-5021, CVE-2008-5022,
    CVE-2008-5023, CVE-2008-5024
    ============================== =============================

    A security issue affects the following Ubuntu releases:

    Ubuntu 6.06 LTS
    Ubuntu 7.10
    Ubuntu 8.04 LTS
    Ubuntu 8.10

    This advisory also applies to the corresponding versions of
    Kubuntu, Edubuntu, and Xubuntu.

    The problem can be corrected by upgrading your system to the
    following package versions:

    Ubuntu 6.06 LTS:
    firefox 1.5.dfsg+1.5.0.15~prepatch0806 14h-0ubuntu1

    Ubuntu 7.10:
    firefox 2.0.0.18+nobinonly-0ubuntu0.7. 10

    Ubuntu 8.04 LTS:
    firefox-3.0 3.0.4+nobinonly-0ubuntu0.8.04. 1
    xulrunner-1.9 1.9.0.4+nobinonly-0ubuntu0.8.0 4.1

    Ubuntu 8.10:
    abrowser 3.0.4+nobinonly-0ubuntu0.8.10. 1
    firefox-3.0 3.0.4+nobinonly-0ubuntu0.8.10. 1
    xulrunner-1.9 1.9.0.4+nobinonly-0ubuntu0.8.1 0.1

    After a standard system upgrade you need to restart Firefox and any
    application that use xulrunner, such as Epiphany, to effect the
    necessary changes.

    Details follow:

    Liu Die Yu discovered an information disclosure vulnerability in Firefox
    when using saved .url shortcut files. If a user were tricked into
    downloading a crafted .url file and a crafted HTML file, an attacker
    could steal information from the user's cache. (CVE-2008-4582)

    Georgi Guninski, Michal Zalewsk and Chris Evans discovered that the
    same-origin check in Firefox could be bypassed. If a user were tricked
    into opening a malicious website, an attacker could obtain private
    information from data stored in the images, or discover information
    about software on the user's computer. This issue only affects Firefox 2.
    (CVE-2008-5012)

    It was discovered that Firefox did not properly check if the Flash
    module was properly unloaded. By tricking a user into opening a crafted
    SWF file, an attacker could cause Firefox to crash and possibly execute
    arbitrary code with user privileges. This issue only affects Firefox 2.
    (CVE-2008-5013)

    Jesse Ruderman discovered that Firefox did not properly guard locks on
    non-native objects. If a user were tricked into opening a malicious
    website, an attacker could cause a browser crash and possibly execute
    arbitrary code with user privileges. This issue only affects Firefox 2.
    (CVE-2008-5014)

    Luke Bryan discovered that Firefox sometimes opened file URIs with
    chrome privileges. If a user saved malicious code locally, then opened
    the file in the same tab as a privileged document, an attacker could
    run arbitrary JavaScript code with chrome privileges. This issue only
    affects Firefox 3.0. (CVE-2008-5015)

    Several problems were discovered in the browser, layout and JavaScript
    engines. These problems could allow an attacker to crash the browser
    and possibly execute arbitrary code with user privileges.
    (CVE-2008-5016, CVE-2008-5017, CVE-2008-5018)

    David Bloom discovered that the same-origin check in Firefox could be
    bypassed by utilizing the session restore feature. An attacker could
    exploit this to run JavaScript in the context of another site or
    execute arbitrary JavaScript code with chrome privileges.
    (CVE-2008-5019)

    Justin Schuh discovered a flaw in Firefox's mime-type parsing. If a
    user were tricked into opening a malicious website, an attacker could
    send a crafted header in the HTTP index response, causing a browser
    crash and execute arbitrary code with user privileges. (CVE-2008-0017)

    A flaw was discovered in Firefox's DOM constructing code. If a user
    were tricked into opening a malicious website, an attacker could
    cause the browser to crash and potentially execute arbitrary code with
    user privileges. (CVE-2008-5021)

    It was discovered that the same-origin check in Firefox could be
    bypassed. If a user were tricked into opening a malicious website, an
    attacker could execute JavaScript in the context of a different website.
    (CVE-2008-5022)

    Collin Jackson discovered various flaws in Firefox when processing
    stylesheets which allowed JavaScript to be injected into signed JAR
    files. If a user were tricked into opening malicious web content, an
    attacker could execute arbitrary code with the privileges of the
    signed JAR or of a different website. (CVE-2008-5023)

    Chris Evans discovered that Firefox did not properly parse E4X
    documents, leading to quote characters in the namespace not being
    properly escaped. (CVE-2008-5024)
  • Referenced CVEs: 
    CVE-2008-2079, CVE-2008-3963, CVE-2008-4097, CVE-2008-4098
    Description: 
    ============================== =============================
    Ubuntu Security Notice USN-671-1 November 17, 2008
    mysql-dfsg-5.0 vulnerabilities
    CVE-2008-2079, CVE-2008-3963, CVE-2008-4097, CVE-2008-4098
    ============================== =============================

    A security issue affects the following Ubuntu releases:

    Ubuntu 6.06 LTS
    Ubuntu 7.10
    Ubuntu 8.04 LTS

    This advisory also applies to the corresponding versions of
    Kubuntu, Edubuntu, and Xubuntu.

    The problem can be corrected by upgrading your system to the
    following package versions:

    Ubuntu 6.06 LTS:
    mysql-server-5.0 5.0.22-0ubuntu6.06.11

    Ubuntu 7.10:
    mysql-server-5.0 5.0.45-1ubuntu3.4

    Ubuntu 8.04 LTS:
    mysql-server-5.0 5.0.51a-3ubuntu5.4

    In general, a standard system upgrade is sufficient to effect the
    necessary changes.

    Details follow:

    It was discovered that MySQL could be made to overwrite existing table
    files in the data directory. An authenticated user could use the
    DATA DIRECTORY and INDEX DIRECTORY options to possibly bypass privilege
    checks. This update alters table creation behaviour by disallowing the
    use of the MySQL data directory in DATA DIRECTORY and INDEX DIRECTORY
    options. (CVE-2008-2079, CVE-2008-4097 and CVE-2008-4098)

    It was discovered that MySQL did not handle empty bit-string literals
    properly. An attacker could exploit this problem and cause the MySQL
    server to crash, leading to a denial of service. (CVE-2008-3963)

Abelski News

Picture of Admin User
Online Support via Skype
by Admin User - Monday, 27 October 2008, 01:35 PM
  You can now start enjoying online support via Skype. The fee is USD 2 per minute. During 2008 a special promotion takes place. The fee till December 31st 2008 is USD 0.5 per minute only. When using this service, make sure to mention the "abelski2008" coupon code when the call starts. more
Picture of Admin User
Java SE Swing Introduction - New Course!
by Admin User - Saturday, 20 September 2008, 10:28 AM
  Doing your first steps developing Swing based applications, this course can be your jump start into Swing! A practical code sample is being used throughout the seventeen topics of this course and detailed explanations overview every aspect. more.
Picture of Admin User
Java SE RMI Fundamentals - New Course!
by Admin User - Wednesday, 3 September 2008, 06:05 AM
  Doing your first steps implementing RMI (Remote Method Invocation) in your code, this course can be an excellent jump start! A practical code sample is being used throughout the four topics of this course and detailed explanation overview every aspect. more
 

Course categories


Course categories

Adobe Technologies 
 Flash Fundamentals (work in progress!)Summary
Ajax Frameworks 
 The jMaki Framework (work in progress!)Summary
 The Dojo Toolkit (work in progress!)Summary
Databases Systems 
 Introduction to Apache DerbySummary
 Introduction to MySQLSummary
Java EE Application Servers 
 Introduction to Apache Tomcat Summary
 Introduction to GlassFish (work in progress!)Summary
Java EE Frameworks 
 JavaServer Facelets (work in progress!)Summary
 Jakarta Struts Fundamentals (work in progress!)Summary
 The Spring Framework (work in progress!)Summary
 Introduction to Apache Wicket (work in progress!)Summary
 JavaServer Faces Fundamentals (work in progress!)Summary
 GWT Fundamentals (work in progress!)Summary
Java EE Platform 
 Developing JSP Custom Tags (work in progress!)Summary
 EJB 3.0 Fundamentals (work in progress!)Summary
 Hibernate Fundamentals (work in progress!)Summary
 Introduction to Portlets (work in progress!)Summary
 Java EE Developer's Guide to EclipseSummary
 Java EE Efficient Programming (work in progress!)Summary
 Java EE WorkshopsSummary
 Java Servlets & JSP ProgrammingSummary
 Java EE Web Services Fundamentals (work in progress!)Summary
 The JSP Standard Tags Library (work in progress!)Summary
Java ME Platform 
 Developing Java ME ApplicationsSummary
 Java ME Developer's Guide to Eclipse (work in progress!)Summary
 Java ME WorkshopsSummary
Java SE Platform 
 Developing Java SE ApplicationsSummary
 Introduction to JAAS (work in progress!)Summary
 Java SE Core Web Services (work in progress!)Summary
 Java SE 5.0 (Tiger) New FeaturesSummary
 Java SE 6.0 (Mustang) New FeaturesSummary
 Java SE 7.0 (Dolphin) New Features (work in progress!)Summary
 Java SE Collections FrameworkSummary
 Java SE Developer's Guide to EclipseSummary
 Java SE Developer's Guide to IntelliJSummary
 Java SE Efficient Programming (work in progress!)Summary
 Java SE Generics IntroductionSummary
 Java SE Images ProcessingSummary
 Java SE JDBC IntroductionSummary
 Java SE JNDI IntroductionSummary
 Java SE Refactoring TechniquesSummary
 Java SE Reflection IntroductionSummary
 Java SE Regular ExpressionSummary
 Java SE RMI FundamentalsSummary
 Java SE Swing IntroductionSummary
 Java SE WorkshopsSummary
 Java Security Fundamentals (work in progress!)Summary
 The SCJP Exam Preparation (work in progress!)Summary
Java FX Technology 
 JavaFX Script Fundamentals (work in progress!)Summary
Microsoft Technologies 
 C# Fundamentals (work in progress!)Summary
Projects Management 
 Agile Software DevelopmentSummary
 Introduction to AntSummary
 Introduction to Maven (work in progress!)Summary
 The Cactus Framework (work in progress!)Summary
 The CVS Version Control System (work in progress!)Summary
Ruby on Rails Framework 
 Introduction to Ruby on Rails (work in progress!)Summary
Social Networks 
 Facebook PHP Applications (work in progress!)Summary
Software Architecture 
 Java EE Design Patterns (work in progress!)Summary
 Java SE Design PatternsSummary
 SysML 1.0 Fundamentals (work in progress!)Summary
 The OCUP Fundamental Exam (work in progress!)Summary
 UML 2.1 FundamentalsSummary
The PHP Platform 
 PHP Fundamentals (work in progress!)Summary
 The ZCE Exam Preparation (work in progress!)Summary
Web 2.0 Technologies 
 Ajax Fundamentals (work in progress!)Summary
 ECMA Script (work in progress!)Summary
 XML FundamentalsSummary

Available Courses

Adobe Flash is today "standard de facto" technology for creating rich media interactive content. The Flash plugin is installed nearly on every web browser. Flash's current main usage includes developing rich media interactive web sites and video interactive solutions on the web. Taking this course you will gain the fundamental knowledge required to jump start into the market and start developing Flash based web sites and solutions.

The jMaki is an Ajax Framework that provides an easy to use model for creating Ajax enabled web 2.0 applications using Java and PHP. The jMaki framework assists by enabling us to create CSS layouts, widgets, client service handling envets code and a generic proxy for interaction with external web services. The jMaki framework focuses on delivering the JavaScript experience to the client while allowing the JavaScript to communicate to various server side technologies.

The Dojo Toolkit is an open source modular JavaScript toolkit that was designed to enable a rapid development of web 2.0 Ajax based applications. The Dojo toolkit development was started by Alex Russell in 2004 and is available for usage via the academic free license initiative.

The Apache Derby is an open source relational database written (100%) in Java. Some of its key features include a tiny footprint of nearly 2MB for its base engine and the possibility to embed it within any Java solution. This course introduces the Apache Derby database and provides the basic knowledge required to use it.

This course introduces MySQL, the world's most popular open source database. This course includes a step by step detailed installation guidelines for MySQL community server and for the required GUI tools. This course includes a step by step detailed guidelines for writing a small Java application that communicates with MySQL DB community server.

Tomcat, the official reference implementation of Sun's servlet and JSP specifications, is one of the most popular web applications servers. This course overviews Tomcat's architecture, guide through its installation process and provides basic information about its configuration possibilities.

GlassFish is an application server project for the Java 2 EE platform. The name of the commercial version is "Sun Java System Applicaiton Server". This course overviews GlassFish's architecture, guides through its installation process and provides basic information about its configuration possibilities.

JSP and JSF don’t naturally complement each other. JSP is good for creating static or dynamic web content but not for creating component trees. Facelets fills the gap between JSP and JSF. Facelets is a view technology focused on building component trees with the complex JSF life cycle. JavaServer Facelets is a templating language that was developed with JavaServer Faces (JSF) in mind in order to provides JSF-centric view technology. In this course you will learn how to maximize your JSF applications by using Facelets.

Jakarta Struts 2 is a free open source framework for creating web applications. Using Struts it is possible to develop Java Servlets & JSP web applications faster than ever. This course introduces Jakarta Struts fundamentals and guides through the steps you need to take in order to develop a web application using this framework.

The Spring framework is one of the leading frameworks for developing J2EE server side applications. It delivers significant benefits together with significant productivity growth and a significant runtime performance while improving the application quality. The Spring framework is maintained by SpringSource.