Saturday, 24 February 2007

No More Tables: CSS Layout Techniques

Creating complex multi-column layouts used to mean having to nest multiple HTML tables—a technique that's cumbersome and introduces ... all » accessibility and compatibility problems. You've heard it's possible to eliminate those layout tables by using Cascading Style Sheets, but you haven't made the jump yet. In this session, CSS guru Doug Bowman will walk you through the steps of a real-world conversion. Learn the advantages of doing away with tables, and see how to avoid common pitfalls.

Advanced Topics In Programming Languages: Closures For Java

We propose to add Closures to the Java Programming Language. Closures simplify the use of APIs that rely on anonymous class instances, such as the concurrency APIs and callbacks. More importantly, closures support control abstractions, which are APIs that act as programmer-defined control constructs. This talk describes the proposed language extension and its design rationale, and shows how it will affect existing and future APIs.

How Open Source Projects Survive Poisonous People

Every open source project runs into people who are selfish, uncooperative, and disrespectful. These people can silently poison the atmosphere of a happy developer community. Come learn how to identify these people and peacefully de-fuse them before they derail your project. Told through a series of (often amusing) real-life anecdotes and experiences

django: Web Development for Perfectionists with Deadlines

Django is one of the premier web frameworks for Python, and is often compared to Ruby-on-Rails. Jacob is one of the lead developers on Django.

Compiling Dynamic Languages

Dynamic languages like Python have gained significant popularity in mainstream programming. To support their dynamic features, they are often interpreted. In scientific computing applications, this works well for prototyping, but often means that significant efforts must later be invested in building the "real" application. Our thesis is that dynamic languages like Python can be effectively compiled by translation to statically typed functional languages like OCaml. Not only that, but this approach is highly amenable to formal verification. This, in fact, entails developing a formal semantics for the dynamic language. The talk described ongoing efforts to demonstrate this strategy in the concrete case of compiling Python using OCaml. After explaining why statically typed functional languages like OCaml may play an important role in compiling dynamic languages, we describe our progress to date in understanding the semantics of Python and in devising a correct translation into OCaml. At the time of writing this abstract, preliminary performance measurement were quite encouraging.

Raj Bandyopadhyay is Walid Taha's student. Walid Taha is an assistant professor at Rice University, Houston, TX. He is the principal investigator on a number of NSF, Texas ATP, and SRC research grants and contracts on various aspects of resource aware proWalid Taha gramming. Taha is actively involved in development of both the embedded software and generative programming research communities.

Sunday, 18 February 2007

JAOO 2006 Conference

JAOO Conference is a 1000+ attendee software developer/architect event, this year featuring speakers such as Guy Steele, Werner Voegels, Alistair Cockburn, Steve Vinoski, Frank Buschmann, and Charles Simoniy, ... just to name a few.

Saturday, 17 February 2007

Web Services Middleware: All Grown Up!

The term Web services carries the connotation of (slowly) doing RPC over SOAP. While many original SOAP toolkits supported and promoted that model (including Apache SOAP which I created), that is not at all what Web services are about. Apache's history with Web services has seen three generations of efforts: Apache SOAP, Apache Axis and now Apache Axis2.

Axis2 is fundamentally different: instead of treating XML as a hot potato that must be replaced with a language structure immediately, it treats XML lovingly and offers a very clean processing model for XML. Of course it does support data binding for those that want to look a the XML as objects but the core of Axis2 is a pure XML processing architecture.

Axis2 is the basis of a new kind of enterprise middleware. Building on that core stack we have built support for the entire security protocol (Apache Rampart and Rahas) set as well as for reliability (Apache Sandesha) and transactions (Apache Kandula). Apache Synapse is providing ESB like message and service mediation capabilities on top of Axis2.

Axis2 supports both WS-* style services as well as XML-over-HTTP (POX) style services. We're also working on JSON support and a host of other cool stuff. We support HTTP, SMTP and JMS with other transports on the way (including XMPP).

The Axis2 architecture is being implemented in both Java and C, with the C version bound to PHP and other scripting languages as well as Firefox, IE and other hosts.

In this talk we will introduce the new generation of Apache Web services middleware.

Thursday, 15 February 2007

Terracotta Tech - Cluster Your JVM To Simplify Application Architecture

Terracotta DSO acts like network attached memory, sharing critical parts of the JVM heap across servers. This allows multiple servers to act together in a cluster.

The presenter, Ari Zilka, is the founder of Terracotta Technologies, . He has also served as Entrepreneur-in-Residence at Accel Partners and as Chief Architect for, focusing on performance management and operations cost-saving measures, with earlier engagements as a consultant at Sapient and PriceWaterhouseCoopers

ReUsable Web Components with Python and Future Python Web Development

Python's Web Server Gateway Interface (WSGI) not only enables a multitude of Python web frameworks to share code when it comes to deployment, but also enables entirely new levels of re-use for Python web development. This talk is focused on explaining WSGI, new types of re-use with WSGI middleware, and explore new frameworks that heavily utilize WSGI; in this case, Pylons. Moving beyond monolithic frameworks that try to do everything themselves, to new modes of development where you can use just the parts you want and still have active development communities to interact with.