|
|
|
PJUG Meeting Information
|
|
Downtown Campus (MAP) 8th Floor - Room 8005 Pacwest Center 1211 SW 5th Avenue Portland, Oregon |
Google Web Toolkit (GWT) is a development toolkit for building and optimizing complex browser-based applications. This talk will highlight new features in GWT 2.0. We'll discuss GWT 2.0 development mode, declarative UI, layout panels, and the new Google Plugin for Eclipse. Here's a link to the "podcast by phone" application. The app's GWT code is viewable here.
Josh will catch us up on the latest JavaFX release, 1.2, which includes lots of improvements to make JavaFX better for real world apps (speed, more controls, charts and graphs). Josh will also give us a sneak preview of features coming in future versions of JavaFX, along with some great demo apps.
Java Enterprise Performance Tuning typically is viewed as someone else's job.
QA will do it.
Operations will figure it out.
Isn't the Dev guys supposed to find these things?
But in fact it can and should be done across the lifecycle.
We will explore this new concept and other topics such as:
GPC4J is a computing paradigm that breaks a partitionable problem into GridPackets, which are routed, processed and re-assembled into the solution to the original problem. This presentation will cover the use of the system and design of the project's web application. The application is built using REST (Jersey), Maven, Hibernate, JPA, MySQL and GlassFish. Project website is http://71.193.199.218
Google App Engine lets you run your web applications in Google's datacenters. This presentation will focus on App Engine's Java runtime. We'll cover developer tools, the datastore, and core platform services. In addition, we'll discuss how to call third party web services from within the App Engine environment.
We will discuss building a Java Swing application (installed or web start)
that saves it's data POJO's (Plain Old Java Objects) into SQL databases
across the net (mySQL) or to a local embedded database (Derby) by using
the JPA (Java Persistance API) and ORM (Object Relational Mapping)
via Toplink or Eclipselink. You will see that REAL applications get to benefit from
technology that typically lives in the world of Hibernate and Web Apps.
You gotta love portable SQL database data persistance without building
any tables or writing any SQL!
Project Bonneville is Chris Cowell-Shah's evenings-and-weekends open source project for measuring the performance of certain core Java SE features. Chris will review the results of these benchmarks with an eye to addressing the following questions:
Scala is a new language for the Java Platform that blends object-oriented and functional programming concepts. This talk will focus on the design choices of Scala, and what they mean for developer productivity. The talk will highlight what it means to program in a functional style, and show you how Scala facilitates a hybrid of functional and imperative programming styles. The talk will also explore how Scala compares to dynamic languages such as Ruby and Python. And you'll see examples of real, production Scala code that will illustrate what it feels like to program in Scala.
Outline:
Intro to Rich Internet Applications
Join us for a conversation about web service programming. We'll discuss OAuth, an open protocol for secure API authorization, and Restlet, a REST web service framework. Additionally, we'll look at the OAuth Java API and demonstrate how to use OAuth in an Android application.
Functional programming is (again) a hot topic among developers. Languages such as Scala and Clojure have functional concepts at the core of the langauge, and even more solidly object-oriented languages such as Groovy and C# 3.0 include functional concepts. This talk will cover whether langauge really matters, some functional techiques that enhance the power of a languge, how to implement some of these using existing Java syntax and semantics, and the future of functional additions to the Java langauge.
Talk about strange bedfellows: what happens when you mix one part Lisp (one of the oldest computer languages), one part Java (so young, yet so well adopted), a healthy serving of functional programming, and a state-of-the-art concurrency layer on top? That's Clojure, which "feels like a general-purpose language beamed back from the near future." Clojure embraces functional programming with immutable data types and first class functions. It is fully interoperable with Java. Clojure's approach to concurrency includes asynchonous Agents, and Software Transactional Memory. Clojure is fast, elegant, dynamic, and scalable: a language for the future, today.
As you know, Groovy is a slick scripting... er, dynamic language that integrates very well with the Java platform and Java technologies. This presentation will go over a way to introduce Groovy into your organization and programming environment via unit testing. After a brief introduction to the language, we'll go over why Groovy can make unit testing easier.
GWT is Google's Web Toolkit, a framework for building rich web applications entirely in Java. While a lot of people have heard of GWT, most haven't had a look to see just how easy it really is.
GWT allows you to collapse your technology stack. Without GWT, getting a web application to look and behave just right requires knowledge of HTML, JSP, JavaScript, CSS, JSTL, Java, the web framework of your choice, etc. Wouldn't it be nice if you could do everything you needed in Java and just used CSS for display formatting? GWT lets you do that. GWT lets you impress your friends with your JavaScript wizardry without having to be a JavaScript wizard.
This talk will be an introduction to GWT, showing how to write a whole app in it, or else augment your existing web apps with GWT widgets. Advanced topics, such as integration with Seam, interoperability with legacy JavaScript and third-party JavaScript libraries, and code reusability will also be covered.
Finally, a live demonstration of coding in GWT will be shown, demonstrating how fast it is to develop web apps using this framework.
Poker bots! The term conjures images of programmers hacking away late at night, trying to make a fast buck. But how interesting is the subject really? Well, as it turns out, very interesting. The game of poker poses the dual problems of nondeterminism and limited information, making computer poker implementations a deeper conceptual challenge than deterministic open-information games like chess. Better, there now exists a body of academic literature dedicated to analyzing the subtleties of the problem. But best of all, the de facto standard environment for development of poker AI software is 100% pure Java.
This talk will begin with a bit of historical context, delve into the problem space, and then offer a demonstration and source-level view of working "bots". The bots run in an offline, not-for-money, but highly competitive game environment.
Basic knowledge of the rules to Hold'em Poker (both limit and no-limit tournament varieties) is helpful to understand the presentation. This is a legitimate AI presentation aimed at professional software developers and students. No license agreements or U.S. laws were violated during its creation - and if your goal is to "cheat" at online poker, this presentation won't help you very much.
Part 1 Hibernate the Traditional Way
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. In this talk, we will discuss Android's platform API's and developer tools. We'll look at code for GPS location services and learn how to call Trimet's XML web service from an Android application.
The Gang of Four book should have been entitled "Palliatives for Statically Typed Languages", because the recipes it provides are cumbersome solutions to the problems it poses. Using powerful languages makes the solutions in the GoF book look hopelessly complicated. This session shows how to solve the same problems concisely, elegantly, and with far fewer lines of code using the facilities of dynamic languages.
WebDAV is a set of extensions to HTTP that enable clients to manage files on a remote server. In this talk, we will examine the WebDAV specification and learn how a WebDAV client communicates with a WebDAV server. Also, we will discuss how to use the Apache Jackrabbit WebDAV API to program a WebDAV client and a WebDAV server.
Dynamic languages on the JVM, an overview of up and coming new languages for the JVM and what advantages they have over pure Java; including Groovy, JRuby, JavaFX, and Scala. Also covers what improvements will be coming in the JVM to better support dynamic languages
Do you use Ant for your project builds? This talk will show you ways to improve your build scripts, expose common pitfalls, and should change the way you think about your build scripts. Included is a discussion on what Nike is doing to unify its build process. Our goal - a build script in 10 lines or less.
FitNesse is a wiki based collaborative testing and documentation tool that provides a very simple way for teams to collaboratively create documents, specify tests and run those tests. It is a simple, elegant tool for automating acceptance tests. WATIJ is a pure Java API created to allow for the automation of web applications. Based on the simplicity of WATIR and enhanced by the power of Java, WATIJ automates functional testing of web applications through a real browser. Both FitNesse and WATIJ are open-source projects. Putting these two powerful tools has created a very powerful environment for automating testing of web applications. Test suites can be authored and maintained by people with minimal programming background with the wiki based testing advocated by FitNesse.
The Eclipse Rich Ajax Platform (RAP) project enables Java developers to
build browser-based AJAX applications more easily than other frameworks using the full java libraries, Eclipse
APIs and a plug-in architecture. RAP applications are programmed in Java - abstracting the JavaScript and AJAX
technologies which are necessary for a rich user experience in the browser. RAP is based on the Eclipse plug-in
model and is deployable to standard J2EE application servers.
The talk introduces RAP to an audience of Java Developers by explaining key concepts, pointing-out noteworthy
features and demonstrating the complete cycle of creating a small RAP application.
Links:
RAP Homepage - http://www.eclipse.org/rap/
RAP Mail Demo - http://rap.eclipse.org/maildemo/rap?startup=maildemo
RAP Controls Demo - http://rap.eclipse.org/controlsdemo/controls
Client side Java has come a long way in the last decade, but Java FX is going to be the biggest change since switching from AWT to Swing (maybe even bigger!). This is an overview of where client Java stands today, the new technologies coming soon, and the new tools that will let developers create incredible new client applications both on the desktop and off. After the overview we will deep dive into Java FX Script, a new programming language specifically designed for creating user interfaces.
Six months ago Jive Software launched a major new Web 2.0
product,
Clearspace. We'll give you a behind the scenes look at what went into
the design, implementation and launch of the application. How does a
small engineering team create a Sharepoint killer? We'll the reveal the
secret sauce that made it possible.Some major areas we'll cover:
Design
* How we figure out what to put into the product without formal MRD,
PRD, TPS reports, etc.
* Creating a kick-ass UI.
* User acceptance testing: it doesn't have to suck.
Implementation
* Architecture overview
* Key technical challenges
Launch
* Our release train process -- go fast with high quality.
* Making it a platform and engaging the community via plugins and
themes.
The Java API for XML Web Services (JAX-WS) is the next generation of Java APIs for web services, replacing The Java API for XML Based RPC. JAX-WS focuses on ease of development along with aligning with the industries for web services. The JAX-WS reference implementation (RI) is a production quality, highly performant implementation of the JAX-WS 2.1 specification. This talk will present an overview of the JAX-WS APIs and then will spend the majority of the time presenting how web services can be developed with the JAX-WS RI as well as the architecture of the RI. As JAX-WS is part of the GlassFish project an overview of Glassfish will also be presented.
The 12th annual JavaOne is over - and there was alot of new and very cool that was presented in 5 days of sessions! Come have some pizza and get a superview of this years sessions. From the just announced JavaFX to a Java programmable RoboSapien.
Our presentation covers building sexy web and desktop applications using Java, Mozilla's new ECMAScript VM (Tamarin), the free Flex SDK, the Flex Builder Eclipse plugin, and Flex Data Services. The presentation is mostly demos and writing code, with only a couple slides to help describe architecture. The session is very interactive with lots of audience questions and participation.
Scott Davis is the Editor in Chief of aboutGroovy.com. The
website, in
addition to being, umm, about Groovy, is implemented in Grails. This
talk shows you how to get started with Grails, but also talks about the
experience of using it in a live, production web site.
Grails is a web framework that maximizes the strengths of familiar Java
libraries Spring, Hibernate, and Sitemesh, to name a few while
minimizing the XML jockeying it usually takes to get them all to play
nicely with one another. It brings "Convention over Configuration" to
Java. It uses Groovy as the language to glue the pieces together, which
means that experienced JEE developers can learn Groovy in the context
of
libraries that they are already familiar with.
Grails includes a web server, a database, and all of the libraries
necessary for a full-fledged web application. It will even generate a
directory structure and scaffold common classes (Controllers, Views,
etc.). It is no exaggeration to say that you will have your first
application up and running in minutes. But Grails is more than about a
quick start. In this talk, we'll look at ways to move beyond the
default
configurations. We'll deploy a Grails app to an external Tomcat
instance
instead of the included Jetty server. We'll move from the default
HSQLDB
database to MySQL. We'll include external JARs to bring new
functionality to the mix.
Slides (ODP)
(Open Office)
The JavaServer Faces framework is a rapidly growing Java web framework
that was created through the Java Community Process (JCP). Many vendors
have adopted this technology and have developed rich component
libraries
and tool support. While JavaServer Faces provides a standard foundation
on which to build web applications, it is only the beginning. Come get
your questions answered such as:
In this presentation, we will examine Java-based portal servers and the Java Portlet API. We will discuss portlet programming, portlet deployment, portal security and portal administration.
An introduction to the Jakarta Tapestry web application
framework, which will explain the concepts and features of the
framework while live coding simple applications. Tapestry forms,
request cycle, component object mode. The use of several important
components (including the
powerful Table data grid) will be featured.
Tapestry is a powerful open-source Java web application framework that
stands apart from most other technologies used for creating web
applications.
Spring is a framework for building J2EE applications. Spring provides an extensive set of APIs covering database access, object-relational mapping, declarative transactions, aspect-oriented programming, and messaging. However, at its core Spring is an Inversion of Control (IoC) container that can wire your application layers together in a way that keeps them loosely coupled and improves testability. This talk will be a brief introduction to the Spring IoC container, and will feature a simple demo app that shows how few lines of code it takes to wire an application together with Spring. (PPT Slides)
Amazon spent ten years developing the world-class technology and content platform that powers the Amazon web site for millions of customers every day. Using Amazon Web Services (AWS), you can build software applications leveraging the same robust, scalable, and reliable technology. AWS now offers eight services with open APIs for developers to build applications. Learn how you can create innovative applications and then launch on-line businesses that make money. (LINK)
We'll distill a full week of announcements, tutorials and in-depth presentations into less than an hour. Want to know what's coming in Java 6 and 7? How to finally solve the double-checked locking idiom? The latest tools for managing JVM's in a production environment? Attend the talk for answers to these questions and more. Of course, we'll also show you which slides and audio casts that you'll want to download for yourself from the JavaOne 2006 website.
Come join us next at the next JUG and we'll talk in-depth
about Maven 2. There are currrently no books available for Maven2 and
it is considerably different than Maven1. So come join in the
discussion and learn something new and useful.
Maven is a comprehensive project management, build and reporting tool.
We'll create our own projects from using the default Maven archetypes
and our own custom archetype. We'll discuss single and multi-project
setups and project object model (POM) inheritance. We'll adapt an
existing project that uses Ant. We'll create our own private
company-wide Maven repository and Maven mirror. We'll cascade-build all
of our projects with one command. We'll manage our transitive
dependencies (including conflicts). We'll show how to write our own
custom Maven plugin. And finally we'll use Maven to build our project
website with all of the pointy-hair-pleasing reports.
With the Struts and WebWork merger announcement and the fact
that Struts Action Framework 2.0 would be based on WebWork, the Java
web application landscape is finally maturing and consolidating. As the
leader of the action-style Java web frameworks, WebWork is relatively
unknown but is about to be introduced to a very large community. Come
learn about what makes WebWork so special to work with. This session
will be extremely hands on and code intensive, so come prepared to ask
questions and get involved! Topics covered include:
Join us in January as we discuss component based development
(CBD). We will discuss the motivation behind CBD and the agility it
gives your development team.
CBD can turbo-charge your team's efforts by encouraging good OO basics
(Abstraction, Encapsulation, Polymorphism, Inheritance) and OO
Principles (Encapsulate what varies, Favor composition over
inheritance, Program to interfaces not impls).
CBD helps mitigate risks in your application by allowing easy
replacement of components with an alternate implementation. CBD also
encourages the easy use of mock objects and test-first development too.
We will discuss terms like "Inversion of Control" (IoC) and the
"Hollywood Principle". We will talk about the importance of managing
dependencies and ways to automatically wire dependent components.
Although we will focus on the most popular IoC container (Spring), we
will also demonstrate different strategies of IoC such as the good ol'
AbstractFactory and PicoContainer that existed before Spring. We will
also see how it's possible, with proper design, to replace your IoC
container with little impact to the project.
In this presentation, we will look at the Yahoo Maps web service API's. There will be a live demonstration of geocoding and map image generation. In addition, we will discuss how to implement a Yahoo Maps client using the Jakarta HttpClient library and an XML data binding library.
Compiere is a J2EE based ERP & CRM environment. The session concentrates on the technical architecture and design choices as well as the experiences starting with Java 1.3 to now 1.5.
Jorg Janke is the founder and principal of the Compiere ERP & CRM open source project. As the driving force behind Compiere's success, Jorg has more than 20 years of combined business and technical experience, holding all Sun Java and Oracle DBA certifications. Under Jorg's leadership, ComPiere, Inc. provides stewardship, development, support and training for the company's products as a key part of the overall support provided by Compiere's 50 + partners throughout the world. Before founding Compiere, Jorg was Director Enterprise Systems in Oracle's Application Development Division (Redwood Shores, CA) and Manager Business Applications at the EMEA HQ of Unisys (London). Previously, Jorg created an application for the retail and distribution markets and later joined ADV/Orga, the company from which SAP licensed its first version. Jorg holds a BA in Accounting and an MBA from the University of Sussex, United Kingdom.
Sitemesh (www.opensymphony.com/sitemesh) is a server-side Java web-page layout and decoration framework. Developers can use it to quickly and easily create consistent looking UIs and even use it for "panels" in server-side applications. This presentation will go in to detail about the problems Sitemesh solves, how it solves them and some advanced uses.
Bill Lynch is the VP of Engineering and a co-founder of Jive Software, a downtown Portland based software company. Bill has been using Sitemesh for a number of years and Jive Software uses it heavily in their products.
We will discuss how to combine HTML DOM, JavaScript and server-side Java to provide a better user experience in browser-based web applications. We'll look at Sun's Ajax blueprints and the JSON-RPC open source project.
At the end of the session, attendees will have a firm introduction to JDO and object-relational mapping.
Hibernate is a "powerful, ultra-high performance object/relational persistence and query service for Java". Basically, Hibernate allows you to easily bridge the world of objects to the world of databases. It has the distinction of being the most popular Java mapping solution.
I have developed or seen a half-dozen home-grown mapping solutions. When I discovered Hibernate, I quickly realized its value. When developing Viztas's website I quickly decided to use this simple but powerful tool to map my database to POJOs (plain old Java objects).
The talk will include: