Many organizations begin their lives with a developer wearing multiple hats including SA and DBA. In those early days there are a few key things that should be considered and decided or implemented and only one of them is a backup/recovery strategy.

So, you've made a Firefox add-on. You've modified web page content, or added a button to the toolbar. But where to go next? What APIs and technologies are available to help your application or add-on surprise and inspire? And once you've got a great idea, how can you make the implementation fast, responsive and respectful of system resource constraints?

I'll talk about tips, tricks and best practices for extending Firefox to the edge:

Create multimedia extravaganzas with the audio, video and canvas tags

Tight and polite integration of internet services into the browsing experience

Idealist.org was started in 1995 by Ami Dar as a simple one-page website that cataloged links to other non-profits. In the last 14 years, the site has gone from that simple list of links to a highly scalable dynamic website with over a million users, providing them and their communities with a forum to connect and communicate. Many thousands of people over the years have gotten their jobs or volunteer opportunities through Idealist, and soon we will be rolling out the third generation of our site to provide even more power to people interested in changing the world into a better place. Our talk will present a short history of the open source technology that drives our site, what our future plans are, and how we are releasing several of our Python web technologies as open source products for other members of our community to use and share.

Parrot hit 1.0 in March of this year. A virtual machine like no other, Parrot targets dynamic languages such as Python, Perl, PHP, and Ruby, it hosts a powerful suite of compiler tools tailored to dynamic languages and a next generation regular expression engine. This talk briefly explains the overall architecture of Parrot and teaches the skills needed to get started hacking in Parrot.

During this session we will develop a simple Scala application from the ground up and examine the differences from Java that enable us to be more productive and expressive while still writing type-safe performant applications.

This session is for anyone interested in learning about the Scala language, especially those who come from a Java background( and perhaps find the Java language a bit stale)

This talk will go into how the Linux kernel development model works, harnessing the energy of thousands of different developers, moving at a faster rate than any other software project ever has, yet at the same time, producing a stable and reliable kernel release every 3 months for many years.

The different kernel trees will be explained, how people get involved and are encouraged by others, and how regressions are handled and tested for.

We're all used to unit testing our applications by now. The Extreme and Agile programming movements have done a great deal to promote unit testing, to the extent that many of us are now dependent on tests to assure that our applications work reliably. But how often do we test the database underlying our applications? Given that the database, as the repository for all of the knowledge and data for an application, just might be the single most important part of that application, the time for standardized database unit testing has come.

This talk promotes the practice of writing and running unit tests that directly test the schema, storage, and functionality of application databases. Following a review of the available PostgreSQL unit testing frameworks, we'll review examples of testing tables, views, columns, constraints, indexes, triggers, and functions. The idea is to promote complete test coverage every aspect of a database, independent of application unit tests, to ensure reliably canonical data integrity.

This talk will give a summary of the unique location characteristics of the Android platform, and how those traits are being used in mobile applications from social networking to games. Some examples are icecondor (social network), skymap (astronomy), and zombie run (location game).

As the economy has gone into freefall, funding for new projects has dried up overnight. Developers need to be creative about sourcing a no or low cost technology stack that they can use as a platform for innovation. The first thing that often goes out the door are the fun side projects that lead to innovation and advancement. Instead, resources are allocated conservatively to the older, more mainstream projects. In this session we will explore many of the ways to innovate without the need for a significant budget by using open source software to try new things under the radar and on a shoestring budget. This session will be packed with success stories of business-critical applications built entirely on open source. Attendees will leave the room armed with what they need to know to calm their CIO’s concerns about business critical open source so no apology will ever be necessary.

Application developers and programmers everywhere need SQL databases, but find their actual database an albatross. Data is duplicated, hard to find, or missing. Performance is terrible. And you find yourself writing too much SQL and not your chosen language. ORMs promised to take this pain away, but, well ... nice try.

As a developer, what you really need are some simple recipes for how to think about designing your SQL databases so that they are simple, maintainable, expandable and easy to troubleshoot. I’ll introduce some easy basic rules hard-learned over 15 years of SQL database design and how to avoid some of the most common simple mistakes which take dozens of hours to fix in production.
Content will include:

What do RubyVM, Rubinius, JRuby, IronRuby, MacRuby, and MagLev all have in common? They all aspire to run your Ruby programs. But how do you know whether your programs will run as expected?

The RubySpec project aims to write a complete executable specification for the entire Ruby programming language and its core and standard libraries.

This talk will discuss the purpose, history, and status of the project. It will also describe the specialized spec runner, MSpec, and look at how its architecture and features assist in using RubySpec both to help drive development of Ruby implementations and to verify that an implementation is correct and compatible.

Since RubySpec looks at every nook and cranny of Ruby, there is plenty of opportunity to have a participatory conversation about Ruby and Ruby programming. Also, since RubySpec is a nexus of effort among many competing and sometimes complementary projects, we can also discuss issues surrounding organizing a project like RubySpec.

The open source ecosystem operates at human scale, and yet the most popular social networks today are mammoths, where an open source citizen has limited agency with little to no ability to change her environment. Furthermore, efforts like OpenSocial serve to further limit what independents can build outside of the major networks, culminating in a threat the very essence of what makes the open/open source community thrive: choice and marketplace competition guaranteed through the ability to fork.

In this talk, I will look at how the DiSo Project is intending to address this situation, and to catalog some of the successes that we've found with OpenID, OAuth, Portable Contacts and Activity Streams, while also identifying some of the lingering challenges and rhetorical issues with efforts such as OpenSocial that beg the question: what really does an *open, social* network look like? And what freedoms should it guarantee?

As a co-founder of BarCamp and coworking, I've strived to create simple, reusable, social technologies that are freely available to be mixed and matched and reinterpreted. With the future of the open web at stake, what can we do to ensure that it does remains free and open?

We live in dense urban landscapes that have crisis at many different scales. A crisis may be a large event such as a tsunami, an earthquake, a terrorist attack or other large scale disaster. A crisis may be something smaller such as a house fire, or a pileup on the freeway, a gas leak or a road out. A crisis may be something relatively minor, a crisis only to one person, such as being locked out of ones car, or trying to find a lost pet, or needing help sharing babysitting duties.

For the purpose of this talk I am interested in the far end of the long tail of crisis response - and what open source technology we can strap together to build tactical systems for helping tackle such crisis. I have been developing an approach using off the shelf tools that can help resolve local crisis - the smaller more personal crisis that interrupts peoples lives.

If we watch messages over a city, and provide analytic views for interested parties, then a role for "angels" to participate emerges. Interested individuals can act in a matchmaking capacity to connect complementary interests together. We can collaboratively up-score or down-score public comments aggregated from a variety of geo local sources. We can filter away noise so that responders can more easily decide what to respond to. In sum we can make it possible for people on the ground, in the area, to volunteer to help out by providing clarity.

I consider these class of services to be a kind of ubiquitous angel. They are not something that you have to even know exist until they help you.

The tools that we can leverage today to build such services are worth knowing - having many applications. In particular solr ( an enterprise search engine ) and carrot2 ( a topic clustering engine ) can play a powerful role in helping filter noise. Other related projects in particular Ushahidi and Swift have a high degree of overlap and those technologies will be discussed as well.

Beyond today there's a role for such technology to help us deal with new kinds of crisis in the future. Over the next decades we may be facing economic and environmental concerns that are granular, evenly distributed and problematic in resolution. These kinds of tools and approaches may be useful there as well.

This talk presents a point-counterpoint argument comparing Virtualization and Containerization technologies. The purpose of this talk is to provide the audience, including decision makers and techies, with the real-life experience of two systems engineers who have extensively compared, evaluated and used these technologies.

I teach Linux/Unix skills to hundreds of students every year. Many of them are relatively inexperienced with the Unix command line and I see them getting frustrated or taking round-about approaches to solving problems, when in reality just knowing a few simple tricks would make them vastly more productive.

Adam Jacob from Opscode for "Chef":http://wiki.opscode.com/display/chef/Home

Narayan Desai of "bcfg2":http://trac.mcs.anl.gov/projects/bcfg2

Igal Koshevoy of "AutomateIt":http://automateit.org/

Engage with the creators and maintainers of these tools. Understand how they've chosen to develop their tools and why. Explore the operational models, methodologies and philosophies behind their approach to managing infrastructure.

Come and learn from the combined expertise of some of the best minds in the system administration and development communities. This promises to a lively and informative discussion about the cutting-edge of systems administration and infrastructure management tools and techniques.

Most users have only a vague idea of how the web works. They click on a link and their precious pictures of baby zoo animals come up... somehow. Something about HTTP or HTML... there's a server somewhere... and some magic rainbow ponies to carry all the data around. Without knowing how it works, you can't solve even the most basic problems. This is why you'll hear other people ask, "is Google down for anyone else?"

We'll explain it all. You'll learn enough to know how it all works and what might have broken. We'll explain how your web browser talks to web servers, how web pages show up on your screen, and what you can do to take control of your browser. How your computer knows what server to talk to and how the Internet gets information from point A to point B without anyone "owning" the Internet. We'll explain lots of acronyms you might have heard before and what they do: HTML, HTTP, DNS, TCP, and UDP all on the PDQ with extra TLC and a touch of LOL to boot.

After this talk you'll have a broad understanding of how the web and its plumbing works.

My yearly talk on architecting, profiling and optimizing web applications. It primarily focuses on applications written in PHP although many of the observations really apply to applications written in any language.

I sometimes tack XSS and security onto the end of this talk. I could also do that as a separate talk if there is interest. My conference party trick of finding XSS holes in the conference site first, then in sites brave audience members offer up, is always a lot of fun.

Portland is at the cutting edge when it comes to pioneering a world class 21st century education for its students. "The Silicon Forest":http://worldgame.blogspot.com/2009/03/pps-has-friends-in-silicon-forest.html is stepping up to the plate. Python plays a role in the action.

Starting with West Precinct, Hillsboro Police Department, "Saturday Academy":http://www.saturda... has been teaching FOSS concepts (free and open source software), later morphing into a more mainstream form of "Pythonic Math". Winterhaven (Portland Public, a "geek hogwarts") has also gotten in on the "pilot studies":http://www.4dsolutions.net/ocn/winterhaven/

Kirby Urner, former math teacher and consultant to McGraw-Hill, veteran of OSCON, EuroPython and Pycon circuits, will give you the inside story on all of the above, having been an active player in helping Portland remain a "FOSS capital" ("Christian Science Monitor, 2005":http://www.csmonitor.com/2005/1128/p03s02-ussc.html). Kirby is a curriculum writer for "4D Solutions":http://www.4dsol..., also CMO for a FOSS project involving "coffee shops":http://coffeeshopsne.... He is also "an IEEE member":http://worldgame.blogspot.com/2008/11/ieee-presentation.html and past web wrangler for the Buckminster Fuller Institute ("BFI.org":http://www.bfi.org).

Bring your laptop with Python installed and follow along as we go through examples from a 21st century high school mathematics curriculum, such as we're currently prototyping and implementing in niche markets.

The cornerstone of our democracy is the vote. In a digital democracy the substance of that cornerstone is technology. The free market enterprise experiment brought about by the Help America Vote Act of 2002 has essentially failed. No longer can the most vital process of our democracy be delivered by proprietary technology. The very thing supposed to deliver us from the hanging chad has all but dissolved trust in how our votes are cast and counted. It's time to shift away from black box voting, and move toward glass box voting.

To restore trust in how America votes, the underlying technology of elections must be put into a public technology trust, because voting technology itself is becoming critical democracy infrastructure. For over two years an under-the-radar Silicon Valley project has been working on precisely that. Starting with a clean slate, the Open Source Digital Voting Foundation has been re-thinking the entire ballot ecosystem. That project, called TrustTheVote, is making steady progress and is now expanding, thanks to substantial financial backing and support from well-known tech sector philanthropists.

This talk will present the TrustTheVote project and the "I count!" movement. It will cover the technology roadmap, progress so far, and next steps, including expansion of development efforts and opportunities for involvement in design and construction of trustworthy voting technology that everyone will be able to see, touch, and try—technology that will be fully federally certified and have the endorsement of the States' elections directors through a unique approach that can ensure widespread adoption.

Through the implementation of an honest-to-goodness Bayesian classifier, we'll tour the major topics of supervised machine learning: tokenization, feature selection and vectorization, model training and tuning, and execution. Time permitting, we'll touch on other techniques and topics.

Bring a laptop and an editor -- at the end of the session, you should have your own classifier, understand how it works, and have some ideas for how to make it better.

In user interface design we want to make lots of mistakes, and we want to make them early where they're cheapest to fix. Just about the cheapest fix you can make is drawing a large X over your sketch, turning over the piece of paper, and starting again on the other side.

A paper prototype can be used for:
* Design discussions: "I think these elements work much better side-by-side.
* Client communication: "Is this what you mean?"
* Developer scoping: "We have five screens with 14 interaction points, only three of which are non-trivial."
* Usability tests: "What do you expect to happen if you click that?"

*Paper prototyping is easy*

Can you draw a box on a piece of paper with a pen? Can you write? The hardest thing about paper prototyping is the problem you're solving; the process itself is rapid, iterative, and transparent. We'll talk about the most important aspects, with efficiency tips born of years of experience. We'll also walk through several rounds of prototyping and testing a small application.

Computer vision has started to achieve some very impressive results over the last 5-10 years. It is now possible to quickly and reliably detect faces, recognize and localize target images, and even classify pictures of objects into generic categories. Unfortunately, knowledge of these techniques remains largely confined to academia. In this session we'll go over some of the tools available, placing an emphasis on exploring the ideas and algorithms behind their design.

To show how these components can be put together, a sample system will be developed over the course of the presentation. Starting with standard image descriptors, we'll first see how to do direct image recognition. We'll then extend that into a simple object classifier, which will be able to distinguish (for example) between images which contain a bicycle and those that don't.

Topics covered will include:

Image descriptors (Scale-Invariant Feature Transform)

Bag-of-words classification

Machine learning (Support Vector Machines, boosting)

Training datasets

Viola-Jones face detection (if time allows)

Python code for the sample SIFT-matching and bag-of-words classifier applications can be found "here":http://www.cs.ubc.ca/~mrd/OSB/OSB.zip .
The slides can be found "here":http://www.cs.ubc.ca/~mrd/OSB/OSB09-slides.odp and in PDF format "here":http://www.cs.ubc.ca/~mrd/OSB/OSB09-slides.pdf .