Purple Technology  
Agile, Open-Source Java and XML.

Search WWW Search www.purpletech.com


Alex has been speaking on Java and Internet technologies for many years. In the spirit of open source, you can download and view full versions of his slides and source code. Permission is granted to view for personal use only; if you want to display these materials for any business-related purpose (like using them to teach a Java class), please contact Purple Technology for licensing information. Most talks have only PowerPoint versions. HTML versions may be forthcoming.


Agile Methodologies

The Bootstrap Project: Open-Source, Non-Profit, After-Hours XP
How do you run a project where the team membership varies from day to day, where the customer isn't paying the bills, where the Open Workspace is your living room, and where "sustainable pace" means 6 hours a week? Extremely, that's how!

Development Tools

Web Testing with XPath
Unit Testing and Acceptance Testing are becoming widely recognized as cruicial components to developing and maintaining a software product. Unfortunately, due to the verbose nature of HTML, it is difficult to write meaningful tests for a Web application. In this article we discuss using XPath (a standard XML technology) to encode tests that not only extract meaningful information from an HTML stream, but also ignore minor elements, allowing for relatively smooth forward migration to UI tweaks and redesigns. We also touch on the open source tool XPath Explorer which can help visualize and debug these tests.

Building Web Applications with Ant

Developing Web Applications using Java Servlets, JavaServer Pages, and Jakarta Tomcat is fun! However, the more interesting your application becomes, the more complicated your build process becomes. In this talk, I will sketch out a framework for how to use simple tools (like Ant and JUnit) and a simple directory structure to avoid many of the common growing pains of application development.

Using Ant on Mac OS X

With the glitz of a polished UI, and the power of a Mach kernel, Macintosh OS X is gaining popularity among developers. In this session we discuss how to integrate Ant and other open-source tools into your OS X development environment, including Project Builder and XEmacs integration. We also discuss OSXize, our open-source Ant target that allows you to build full-fledged OS X applications from your Java project (whether you're building on OS X or on a different platform).

Agile Development

Introduction to Extreme Programming and Agile Development
Duration: 2 hours
Software development projects often get bogged down, leading to schedule slippage, feature creep, burnout, low morale, and customer dissatisfaction. Fighting these foes, the "Agile" methodologies emphasize communication, feedback, rapid releases, rigorous unit testing, and quality code. This talk discusses what it means to be agile, why it's popular, and how you can incorporate some or all of the Agile practices into your existing project. We focus on Extreme Programming, as the most popular and well-specified of the Agile techniques, but we also briefly touch on Scrum, Crystal, and others.

Web Testing with XPath

See description under Development Tools

Web Services

A Practical Introduction to Web Services
Duration: 2 hours
The term "Web Services" encompasses many concepts (RPC, components) and technologies (SOAP, UDDI, XML-RPC, etc.). Here Java Guru Alex Chaffee provides a quick historical and conceptual overview, then jumps into functioning code examples for the main protocols and technologies, using Java APIs. We also discuss which of the many hyped standards -- if any -- are necessary, and how much advantage they give over no-frills XML via HTTP CGI.

No-Frills Web Services
Duration: 1 hour
Prereq: Some Web or Java programming experience

SOAP, UDDI, WSDML, and related protocols have been touted as enabling Web Services. Yet the protocol is not the hard part. Far more important is knowing how to decide which of your private interfaces to open up to the public. Once an interface is published as a Web Service, you must make sure it is robust and bug-free under a range of possible inputs and use cases. You must also continue to support it, and/or to officially announce when you cease to support it. In this talk, Java Guru Alex Chaffee will discuss the principles involved in opening up an application to become a Web Service, and just to prove that SOAP is unnecessary, will walk through a demonstration Web Service using simple HTTP/CGI as the transport protocol.


XMLC: A Clean Alternative to Page Templates
Duration: 2 hours
Prereq: Some Web or Java programming experience
JSP, Tag Libraries, WebMacro, ASP, Tea, and other page template languages all share a fundamental flaw: the source code mixes display markup and presentation code. As much as their advocates like to say that they separate view from code, the fact remains that the source code is not actually HTML. This disparity results in a bottlenecked production process, where changes in front-end design are dependent on changes in back-end processing logic. If a launched site needs a new look, then template programmers must be recalled into duty for a tedious, bug-prone revamping before the new site can go live. XMLC changes this. In the XMLC model, the view source code is a 100% legal HTML page. The XMLC processor compiles this source page into a Java object with built-in hooks for changing the content of the page, like data fields or table rows. The display source and the application code can thus evolve independently. In this talk, we provide an overview of XMLC, and walk through a functional web site implemented using these tools.

Using JSP and XML together
Duration: 2 hours
Prereq: Some Web or Java programming experience

Most Java programmers know what JSP and XML are, but are a little unclear on how to use them effectively. This seminar provides an in-depth look at the architectural and functional considerations of designing a dynamic web site using JSP, XML and Servlet technologies. We also cover a sample application (an online photo album) with full, functional source code. Based on the author's JavaWorld article (March 2000) of the same name.

Web Testing with XPath

See description under Development Tools

XML and XSL by Xample
Slides: xml-xsl.ppt
Duration: 2 hours

I'm not an XML expert, but I play one in this talk. Here, after a brief discussion of the purpose, development, and specification of XML, we delve into my adventures converting my Servlet FAQ into XML and XSL. We walk through the steps necessary to make your XML data file valid and well-formed, develop a DTD for our document, digress into DOM and Java parsing, then dive right in to XSL. All with functional source code.

XML and Java
Slides: xml-java.ppt
Duration: 2 hours

XML, invented to be a replacement for HTML, has evolved into a general-purpose data exchange format with a wide variety of applications. Java provides a number of options for processing and creating XML documents and protocols. This talk covers the many ways Java and XML play together.

Wireless Application Development

Building Wireless Applications Using Java and XML
Duration: 90 minutes
Server-side Java is an excellent way to build dynamic Web and WAP applications. In this talk we discuss the architectural considerations of using JavaServer Pages (JSP) and Servlet technology, and demonstrate (with working source code!) a sample JSP-WAP-XML application. We focus on the problems -- multiple client browsers, multiple versions, standards creep, caching, image support, multiple user profiles and preferences -- and the solutions: Java, XML, XSL (maybe), and JSPs.

Java Introduction / Overview

Java from A to Z (a/k/a Java for Managers)
java-a-to-z.ppt, java-new-media.ppt
This talk covers Java from one end to the other, assuming a smart, somewhat technical audience, but covering all the bases.

Java Seminar
Slides: Java Overview/Java Overview 2.ppt, Java Overview/Real-World Java.ppt, Java Overview/Server-Side Java.ppt, Java Overview/Java Language Seminar.ppt
Duration: Full Day

Java rocks. This seminar will cover the history of the development of the Java language, then cover the high points of Java technology. We start with the specific technical advantages of the Java language and Java virtual machine over similar programming languages (specifically C++ and Visual Basic), including its platform independence and its built-in security and safety features. We cover specific technology areas of concern to development managers, including Swing, JavaBeans, EJB and Enterprise Java. Finally, several real-world case studies are discussed.

Localization Tutorial

Part 1: Encodings and charsets: putting non-English characters on your Web pages. Part 2: Locales and Readers: how to correctly read and write non-English text from a Java application or servlet.

What's New in Java 2
Slides: java2.ppt

Highlights of Java 2: JFC and Swing - a framework for building serious GUI applications. Collections Framework - a clean, interface-based set of standard data structures and algorithms (including sorting). Security - a new, fine-grained, cryptographic, ACL-based security model.

Enterprise Java Frameworks
Duration: 4 hours

Java has transformed from a flashy way of adding animation to web pages, into a robust platform for developing enterprise applications. This session covers the three main technologies for Server-side Java programming, RMI, CORBA and EJB. Coming out of this session you will have a firm grasp of the architecture, advantages, and disadvantages of these technologies, and be ready to either learn the programming APIs on your own, or make strategic decisions on which of these standards is best for your project. We will also briefly discuss Servlets.

Java Components: Beans, EJB, CORBA

Bean Soup: Using Components With Java
bean-soup.ppt, bean-soup.ppt
Duration: 90 min
"Component-based software design" is the hottest buzzword since "object-oriented programming." But what does it mean? What's a component? What's a JavaBean? An Enterprise Java Bean? What is COM and ActiveX? Can I use COM objects from Java? Can I use Java in an ASP? What about CORBA? Do components really help you reuse code and increase your team's productivity, or is it just another meaningless technology? In this section we pose these questions and more, and actually answer some of them.

Using and Creating Java Beans
Slides: beans-usage.ppt
Duration: 2 to 4 hours

This tutorial will provide a basic introduction to Java Beans -- what, why, and how. We will present examples of how to use Java Beans in applications like IBM's VisualAge for Java to create your own component-based applications. We will also discuss how to use the BDK and Beans API to write your own components, and how to integrate Java Beans and ActiveX.

JavaBeans Development
Slides: beans-development.ppt
Duration: 2-3 hours

Pssst, hey buddy... wanna write a bean? This section introduces you to the technology of JavaBeans, and walks you through the steps of designing and coding a real live Bean. We also discuss the issues involved in making sure your bean plays nice and gets along with other beans. Required: some Java programming knowledge.

EJB Technical Overview
Slides: EJB/ejb-overview.ppt, EJB/ejb-architecture.ppt, EJB/ejb-states.ppt
Duration: 2 hours

Enterprise JavaBeans is the hot new enterprise server-side component architecture for Java, ideal for developing persistent, transactional, portable, secure business objects. To find out what all those buzzwords mean, and to get an overview of the motivation, architecture, and APIs of EJBs, come to this talk. We will demonstrate source code and examples showing how to design, program, and deploy an EJB application.

CORBA and Java
Slides: CORBA/corba-and-java.ppt
Duration: 2-3 hours

CORBA loves Java! CORBA provides a platform-independent, language-independent way to write applications that can invoke objects that live across the room or across the planet. Java is an object-oriented language that's ideal for writing the clients and servers living on the Object Bus. In this session, we examine the ways they interoperate programmatically, as we walk you step-by-step from a simple CORBA IDL to a server and client both written in Java, running on top of a 100%-Java ORB. We also discuss the relationship between CORBA and RMI, and discuss some of the real-world issues involved in deploying a CORBA-based application. Recommended: some knowledge of CORBA, ability to read Java source code.

Java Technologies and APIs

Duration: 2-4 hours
The creator of the Servlet FAQ teaches the art of architecting and writing servlet-based dynamic web sites.

Building a Multithreaded Server in Java
Slides: multithreaded-server.ppt
Duration: 2 hours
Prereq: Java programming, some threads
Level: Intermediate

Based upon his experience as Engineering Director at EarthWeb, Alex developed an open-source chat server in the Java programming language using an advanced multithreading architecture. This session will quickly introduce you to the concepts of threading and networking in Java. We then walk through the design and architecture of a robust, multithreaded Chat server. We examine several different threading models, specifically comparing the one-thread-per-connection model with the queueing model.

Java Threads
Slides: Threads.ppt

Object Serialization
Slides: RMI.ppt

A dozen slides explaining Java object serialization, including the peculiar serialVersionID field. (Embedded inside the RMI talk.)

Java 1.1 Event Model
Slides: event-diagrams.ppt

The Java 1.1 producer-consumer event model can be a bit confusing to learn. These diagrams may help you understand the pattern.

Interfaces and Polymorphism
Slides: interfaces-and-polymorphism.ppt

Broccoli is a plant, chicken is an animal, but they are both edible. And tasty!

Server-side Architectures
Slides: server-side-architectures.ppt

A simple diagram of server-side Java application architectures.

Java Database Programming (JDBC)
Slides: JDBC.ppt

Slides: Swing.ppt

Programmer's overview of Swing graphics libraries

Remote Method Invocation (RMI)
Slides: RMI.ppt

Overview of the Java RMI libraries

Networking in Java
Slides: Networking.ppt
Duration: 3 hours

Full coverage of networking concepts and APIs in Java.

Java Collections Classes
Slides: Collections.ppt

The java.util Collections classes provide a clean design for the most commonly-used data structures and algorithms. Using interface-based design, their goal is to give Java developers a set of clean, standard, efficient, and interoperable APIs that are a pleasure to use.

Castanet Overview
Slides: Castanet.ppt

Castanet Technology from Marimba is powerful but confusing. This talk clarifies the architecture with some diagrams and gotchas.

This web site and all materials within are Copyright © 1998-2002 Purple Technology, Inc. Permission granted to browse this web site on-line for personal use. If you want to display these materials for any business-related purpose (like using them to teach a Java class), please contact Purple Technology for licensing information. Source code and related assets are covered under the Purple Technology Open License Agreement.

Page generated Sat Apr 30 12:55:52 EDT 2016