<?xml version="1.0" encoding="UTF-8"?>
<records type="array">
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/18/2009</updated-at>
    <biography nil="true"></biography>
    <title>Building a SQL Database That Works</title>
    <submitted-at>02/12/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">9</id>
    <description>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&#8217;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:

    * Data modeling for normal humans
    * The Atomic Age
    * Where are my keys?
    * The embarrassment of premature optimization
    * Data extensibility and EAVil

Slides are available at http://www.pgexperts.com/presentations.html
</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>02/12/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/16/2009</updated-at>
    <biography nil="true"></biography>
    <title>Practical Paper Prototyping</title>
    <submitted-at>03/31/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">123</id>
    <description>*Paper prototyping is important*

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: &quot;I think these elements work much better side-by-side.
* Client communication: &quot;Is this what you mean?&quot;
* Developer scoping: &quot;We have five screens with 14 interaction points, only three of which are non-trivial.&quot;
* Usability tests: &quot;What do you expect to happen if you click that?&quot;

*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.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/31/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/16/2009</updated-at>
    <biography nil="true"></biography>
    <title>Drizzle, Rethinking MySQL for the Web</title>
    <submitted-at>02/26/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">19</id>
    <description>Ever wondered what would happen if we could rethink a decade worth of design changes? Drizzle is a fork of the MySQL server targeted at web development and cloud computing. We are looking at how to create database for modern multi-core, large memory databases that fit inside of an overall application framework.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>02/26/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Open Source Library Software: Empowering Libraries - Creating Opportunities</title>
    <submitted-at>03/13/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">38</id>
    <description>The closed, proprietary, integrated library systems (ILS) of the last decade have left libraries with no control over features, enhancements, hardware platforms, or support options resulting in an attitude of &#8220;learned helplessness&#8221; when it comes to their ILS.  Open Source Library Systems (OSLS) offer opportunities to empower libraries and library staff to create new kinds of collaborative support and development environments.

This session will include lecture, group discussion and group activities.  The goal is to make participants aware of the unique opportunity that comes with using Open Source software to change the library&#8217;s culture from one of learned helplessness to one of continuous improvement where ideas about enhancing service to customers and improving work flow can be rapidly brought to fruition.  With a new relationship to their ILS, employees throughout the library can participate in making the library experience better for all.

The seminar will include the following components:
* overview of Open Source software including an explanation of the underlying business model and principles
* group activity designed to draw the sharp distinction between an OSLS and an ILS (closed, proprietary, vendor-controlled) in terms of the library's ability to affect every aspect of their own working environment as well as the services they can make available to customers
* discussion of Open Source Library Software (OSLS) currently available and who&#8217;s using them
* discussion of support options and collaboration possibilities
* discussion of the ways your library can get involved with an OSLS project 
</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/13/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Information Security for the Open Source Business</title>
    <submitted-at>03/27/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">76</id>
    <description>Information security is a concern for all businesses, but most small businesses don't have the resources for dedicated information security staff. Coupled with the security concerns that customers often have around open source software, the small to mid-sized open source business faces real difficulty in providing security assurance. 

This talk will look at ways that open source businesses can build an information security program that doesn't break the bank or disrupt the core business, yet still delivers the assurance that more and more customers want with open source software.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/27/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Re-factor Your Brain: Meditation for Geeks</title>
    <submitted-at>03/30/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">114</id>
    <description>Meditation is the ultimate open source tool. You can do it anywhere and it&#8217;s free. It requires only your brain and your body. It&#8217;s positive effects are numerous, including: increased productivity, better problem-solving and a reduction in overall stress.

This talk will include:

* Presentation of current scientific research regarding the long-term effects of meditation on the brain.
* An explanation about how these effects specifically apply to OS Bridge participants. E.g., with a meditation practice they will: write better code, solve problems quicker and with greater clarity, communicate more effectively with colleagues, and reduce overall stress.
* Explanation of different meditation techniques, including a guided practice of select techniques.
* Suggestions for starting a meditation practice at home/work.

This talk is faith/tradition-agnostic and open to all experience levels. Especially encouraged to attend are those who have never meditated.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/30/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Introduction to Lift</title>
    <submitted-at>04/02/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">152</id>
    <description>The Lift Web Framework provides an advanced set of tools for quickly and easily building real-time, multi-users, interactive web applications.

Scala is a hybrid Object Oriented and Functional language that runs at native speeds on the JVM and fully interoperates with Java code. Lift is a hybrid web framework built on Scala.

Lift derives its features and idioms from the best of existing web frameworks as well as the functional and OO features in Scala.

Please join David as he builds a couple of applications in Lift right in front of you.  These applications include a multi-user chat app and an HTML based Pong game</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/02/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Effective code sprinting</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">266</id>
    <description>* How to get the most out of code sprints as a participant and organizer?
* How do you organize a sprint?
* How do you run a sprint?
* How do you maintain momentum after a sprint?
* Challenges to effective code sprints
* Questions and answers</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>How Idealist.org uses technology to change the world</title>
    <submitted-at>03/30/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">95</id>
    <description>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.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/30/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Layers of Caching: Key to scaling your website</title>
    <submitted-at>03/31/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">133</id>
    <description>Caching is essentially a way of keeping the most used parts of a website in memory so that it gets served quickly. This will reduce CPU and I/O overhead and thus make the site very fast. Unfortunately this doesn't happen magically without some extra work.

This talk will cover the several layers that you should know about how they improve the sites speed. Some of these will include:

* &quot;Squid&quot;:http://www.squid-cache.org/ / &quot;mod_cache&quot;:http://httpd.apache.org/docs/2.2/caching.html (disk backed caching)
* &quot;memcached&quot;:http://www.danga.com/memcached/
* &quot;APC&quot;:http://us.php.net/apc &amp; other opcode caching
* Application level caching
* Configuring Apache properly
* Solutions for python &amp; ruby

I will also go over how we utilize caching on the Drupal infrastructure which is hosted at the OSL along with other real world examples.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/31/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Scala for recovering Java developers</title>
    <submitted-at>04/06/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">171</id>
    <description>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)</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/06/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/14/2009</updated-at>
    <biography nil="true"></biography>
    <title>Domo Arigato Mr. Roboto</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">257</id>
    <description>This session is for developers who want to learn about the Android platform. Android is a software stack for mobile devices that includes an operating system, middleware and key applications. We&#8217;ll discuss the Android toolset and platform API&#8217;s.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Write your own Bayesian Classifier: An Introduction to Machine Learning</title>
    <submitted-at>02/26/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">20</id>
    <description>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.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>02/26/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>PHP - Architecting and Profiling for performance</title>
    <submitted-at>04/09/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">191</id>
    <description>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.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/09/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Project Management Should be Boring!</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">229</id>
    <description>Many software projects suffer from long release schedules, feature freezes, painful QA processes, awkward merges, version number debates, backwards compatibility paralysis -- oh, and customers who aren't completely delighted.

Project management doesn't have to be this way.

Several real-world projects have solved these problems with a combination of iteration, refactoring, continual improvement, reflection, and low-ceremony processes.  The solutions aren't all simple or easy, but they're easy to understand, and they're within your grasp.  This talk will tell you what's possible and recommend concrete steps to improve your project management.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/16/2009</updated-at>
    <biography nil="true"></biography>
    <title>Virtualize vs Containerize: Fight!</title>
    <submitted-at>03/31/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">134</id>
    <description>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.
</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/31/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Get Off Your Asana and Move!</title>
    <submitted-at>03/27/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">77</id>
    <description>In technology the body is often thought of as merely a vehicle for the brain. We tend to be so intensely focused upon the tasks of the brain that the body is often ignored until problems such as carpal tunnel, neck, shoulder and back pain arise. When the thinking and physical &quot;bodies&quot; are integrated we find that the system as a whole is more efficient. Hatha Yoga provides a path to help not only the mind and body function fluidly together, but it is also a means to care for the whole body before problems arise.

Yoga does not require complicated props or a special place to practice it. Breathing and physical postures can be done anytime, anywhere. Postures and breath practice do not require that anyone be able to bend into complicated positions or hold their breath for a long time. Practice can be simple, easy and restorative and a short practice, even at a desk between phone calls, may bring lasting benefits.

This is a yoga workshop for anyone who sits and works on computers a lot. You will learn breathing exercises and physical postures that can be done at anytime to help maintain a healthy body and clear mind. Suggestions will be included for how to modify stretches to protect injuries and provide gentle opening.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/27/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>My Grand Experiment:  A Portland Women-focused Tech Group.</title>
    <submitted-at>03/30/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">115</id>
    <description>The idea for Code-n-Splode grew out of the Women in Open Source BOF at OSCON 2007.  Leading a women-friendly tech group continues to be an exciting ride, and I'm going to share it with you!  The talk will be a &quot;case study&quot;-type format, featuring the following:
- why I felt a woman-focused group was necessary
- how the name came about, if it's not completely obvious
- what belonging to the group has done (or in some cases, not done) for its members
- touchy subjects, such as issues we encountered with having men in the group
- how my reasons for continuing the group have changed over time

There will be a BOF-type get-together to go with this talk for an even less-formal discussion period/recruiting session.  (Free toaster!*)

*joke</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/30/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/17/2009</updated-at>
    <biography nil="true"></biography>
    <title>Drupal, What is it Good For?</title>
    <submitted-at>03/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">30</id>
    <description>Drupal is growing leaps and bounds these days, powering everything from ma and pa brochure sites to Obama's recovery.gov. Does this mean it's a great fit for any website? Not exactly.

Drupal has been defined as many things, including a content management system, a web application framework, and community plumbing. In some ways, this is both a blessing and a curse; there's so much you can do, in so many different ways, that new users are crushed under the weight of the options and lack of clarity. In addition, all of that flexibility does come with a cost, in terms of performance and conciseness.

This presentation will cover some Drupal basics including history, core concepts, and system structure. From there, we will dig into Drupal's strengths and weaknesses, finishing off by discussing the types of projects Drupal is best suited for, including specific examples for each case. 

My hope is that developers new to the platform will gain a better understanding of when to approach a new project with Drupal, more experienced developers will gain a bit of insight on when not to use it, and non-techies will have some help in choosing a platform for their projects along with an understanding why developers they work with select a given platform. Please note that this talk will not delve deeply into the technical details of Drupal.

Presentation slides: http://www.slideshare.net/loubabe/drupal-what-is-it-good-for</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Configuration Management Panel</title>
    <submitted-at>03/19/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">49</id>
    <description>A panel discussing the landscape and evolution of open source configuration management tools like cfengine, Puppet, AutomateIT, Chef and bcfg2.

Tentative panel members are:

- Luke Kanies from Reductive Labs for &quot;Puppet&quot;:http://reductivelabs.com/products/puppet/
- Brendan Strejcek of &quot;Cfengine&quot;:http://www.cfengine.org/
- Adam Jacob from Opscode for &quot;Chef&quot;:http://wiki.opscode.com/display/chef/Home
- Narayan Desai of &quot;bcfg2&quot;:http://trac.mcs.anl.gov/projects/bcfg2
- Igal Koshevoy of &quot;AutomateIt&quot;: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.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/19/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Your Shell History In The Cloud</title>
    <submitted-at>03/28/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">87</id>
    <description>A presentation about Shellsink: a simple, open source hack that stores your shell history in Google's big table.  The presentation will cover Shellsink usage, the App Engine implementation, as well as using Launchpad's personal package archives for distribution via apt-get.

Shellsink Feature Set:
    * Permanent and unlimited storage of shell history
    * Pull commands back out of the sink and into your shell based on a tag or keyword
    * Searchable shell history
    * Tagable shell history
    * Annotateable shell history
    * Aggregate shell history from multiple computers into one grand unified history
    * RSS feed of your shell history that you can filter</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/28/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>05/15/2009</updated-at>
    <biography nil="true"></biography>
    <title>Speed up that library when you can't C a thing</title>
    <submitted-at>02/26/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">21</id>
    <description>We'll step through a simple library case, wrapping an Ocaml library and calling it from Ruby. Then we'll discuss ways to approach this problem for other target slow and fast languages.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>02/26/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/16/2009</updated-at>
    <biography nil="true"></biography>
    <title>Social network supermarkets and how to defeat them</title>
    <submitted-at>03/27/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">78</id>
    <description>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? </description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/27/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Open Source Tools for Freelancers</title>
    <submitted-at>03/30/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">116</id>
    <description>After nearly two years of full-time freelancing, I have learned a lot about maintaining my own website, making backups, managing version control, keeping track of time spent on projects, and invoicing tools. Come to this session where I will share much of what I've learned and present open source tools I have found essential for successful freelancing.

Topics covered:

* How to choose among shared/virtual/dedicated/cloud hosting options.
* Simple, effective options for making regular, local and off-site backups.
* Painless ways to utilize version control.
* Simple time-tracking and invoicing tools.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/30/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/16/2009</updated-at>
    <biography nil="true"></biography>
    <title>Open Source Microblogging with Laconica</title>
    <submitted-at>03/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">31</id>
    <description>Microblogging lets people share short status messages with their social network. Public Web sites like Twitter, Jaiku and Plurk are wildly popular with consumers, but Open Source programs allow a distributed social graph and implementation inside the enterprise firewall. Evan Prodromou, founder of Identi.ca, will describe the Open Source microblogging tool Laconica and its uses in the workplace and on the Public Web.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Open Source on the Farm</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">240</id>
    <description>There are Open Source projects to develop software for all sorts of specialized uses.  Indeed, there are complete Linux distributions for K-12 schools, for libraries, for geographers, for musicians, and so on.  But, there is very little available specifically for small farmers in the Open Source world.

In this talk, we will discuss the reasons for this and ways of changing the situation.  

In particular, we will discuss:
*  The differing needs of different types of farms
*  Similarities between farm culture and Open Source culture
*  Software requirements:  What applications do farmers need?
*  What applications already exist?
*  What applications need to be created?
*  How should software by packaged for farmers?

The author will discuss these and other issues from the point of view of someone who grew up on a small traditional farm, and spent his career in Open Source Software, and is now farming again.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Clojure: Functional Concurrency for the JVM</title>
    <submitted-at>03/26/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">69</id>
    <description>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 &quot;feels like a general-purpose language beamed back from the near future.&quot; 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.
</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/26/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>A Tour of CodePlex</title>
    <submitted-at>03/30/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">107</id>
    <description>CodePlex is Microsoft's open source project hosting site. Launched in May 2006, CodePlex host thousands of open source projects with support for source control, bug tracking, wiki pages, release management, forums, and project statistics. Additionally, CodePlex supports SVN and Teamprise source control clients. 

This talk explores the CodePlex feature set and how the CodePlex team uses agile to deliver new versions of the CodePlex software every 3 weeks based on user feedback.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/30/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Please Your Pixel-Hungry Eyes With Codes That Read Better</title>
    <submitted-at>04/08/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">183</id>
    <description>If we spent most of our workday staring at the Terminal window, then it&#8217;s probably worth to make the letters you see in that window more legible, and the text more readable. This session will introduce you to:

* Readily available font alternatives you can try
* Tips and tricks for better onscreen legibility (do you know that white-on-black type is less legible than black-on-white, or that most fonts can easily be made more readable by tweaking the line spacing? What about anti-aliasing?)
* Tools to design pixel-based fonts and customize existing fonts (like &quot;gbdfed&quot;:http://www.math.nmsu.edu/~mleisher/Software/gbdfed/)
* Practical tips to drawing and completing your font character set (how should an &#8216;A&#8217; look?)
* And, if you&#8217;re feeling ambitious, tools to design your own font _from scratch_ (with tools like &quot;FontForge&quot;:http://fontforge.sourceforge.net/

Bring your own laptop and prepare questions you always wanted to ask (but never could) about typography and how text are displayed. You&#8217;ll get out of this session with a programming font you can call your own.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/08/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/16/2009</updated-at>
    <biography nil="true"></biography>
    <title>Organizing a Volunteer-Driven Open Source Community Project</title>
    <submitted-at>03/15/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">41</id>
    <description>This panel will describe the process of one local group's community project from inception to completion, and the panelists will be able to answer questions and speak to considerations that the audience might have regarding organizing a community project of their own.

Panel members will be myself, as organizer/project manager; Melissa Anderson of Incite Development, as technical lead/Drupal manger; Molly Vogt of the City of Gresham (my Americorps supervisor) who did a lot of political organizing and set up the structure that made this possible; Joaquin Lippencott of Metal Toad Media, who donated theming and recruited a design team that took the project to the next level; and Israel Bayer, of Street Roots Newspaper, who the project was for.

We will discuss the development of the http://rosecityresource.org website, the first volunteer community project of the &lt;a href=&quot;http://groups.drupal.org/portland-oregon&quot;&gt;Portland Drupal User Group&lt;/a&gt;, which I organized as my capstone Americorps project.  

What began as an effort to map resources for the area turned into a massive volunteer undertaking to provide a tool for a local nonprofit to better manage and publish their data.

We will talk about how the project came to be, the considerations that were made, and the recruitment and the pulling together of local resources and volunteers that enabled this project to happen, and include perspectives from the people and groups involved.  We'll also offer suggestions to identify and build community projects for any local user group.

This panel will include the individuals involved in various aspects of the project and will provide a well-rounded array of information from all perspectives of implementing such a project, from technical, outreach/promotion, client, and developer perspectives.

Note: This site just launched on March 28th, 2009!  You will now be able to see it by going to http://rosecityresource.org.  
You can also check out our project/development page at http://groups.drupal.org/node/17216</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/15/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Teaching System Administration</title>
    <submitted-at>03/31/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">136</id>
    <description>I'll describe my experience with teaching a University-level system administration course that combines academic education about principles and theories of system administration and computer science with practical information and hands-on learning using realistic projects, as a means of inspiring a more general discussion of how one can teach and train other system administrators.  What do you wish you could have known in advance but learned from experience instead?   How do you sort out the ideas and information that are most important from a field as wide-ranging and open-ended as system administration?</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/31/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/16/2009</updated-at>
    <biography nil="true"></biography>
    <title>The Scylla and Charybdis of Open Source Legalese</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">250</id>
    <description>On the one hand, there is the &quot;zealous advocate,&quot; defending the rights of software developers from nasty pirates, or developing models for inextricably locking proprietary layers on top of an OS base. This is your basic lawyer.

On the other, there's &lt;a href=&quot;http://frienda.com&quot;&gt;FrieNDA&lt;/a&gt;, the way we wish the world would work, with rainbows and ponies and sharing and kisses. It's not that open source embodies this in any way, but when you expose your soft underbelly for all to see, you can (and should) expect it to occasionally get torn out.

Neither viewpoint is the &quot;right&quot; legal framework for open source work. The lawyers don't get open source, and developers don't get the law. Betwixt and between lies a middle path, full of powerful and innovative mechanisms by which the collective knowledge and crowdsourced power of open development could meet, and befriend, some of the traditional protections and rights of ownership. 

There are enduring examples, but this talk will not evangelize the sterling efforts of known quantities. Rather, it will attempt to tease out the unknowns, the next useful idea, the place to land. If nothing else, you will walk away with some good ideas for your next collaboration.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/16/2009</updated-at>
    <biography nil="true"></biography>
    <title>Become a better programmer by bridging Ousterhout's Dichotomy</title>
    <submitted-at>04/09/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">193</id>
    <description>John Ousterhout, the inventor of TCL, observed that languages could be grouped into &quot;scripting&quot; and &quot;system&quot; categories, with very few falling in-between.

I believe not only that all working programmers should be familiar with at least one of each, but that familiarity with scripting language X will make one a _better_ programmer in system language Y, and vice versa. This talk will discuss the lessons each has for the other, using C and Python as primary exemplars, but also touching on other popular languages from both camps, and those that have attempted to bridge the gap.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/09/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>05/15/2009</updated-at>
    <biography nil="true"></biography>
    <title>5 things to know about MySQL if you don't have a DBA</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">231</id>
    <description>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.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Work for the Government for Fun and Profit</title>
    <submitted-at>04/14/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">269</id>
    <description>Government consumes lots of technology, and the benefits to using it in the public sector may seem intuitively obvious.  But what if you own a small business or are an independent developer/contractor?  Can the  little guy do business with a big bureaucracy?  This session will provide:

* An overview of where open source is being used in government today
* Why government needs your skills (or is just about to find out they do)
* The culture of government procurement
* Government government procurement systems nutshell
* A brief introduction to Hoops (as in the ones you&#8217;ll need to jump through)
* Ideas that can get you working on government projects

This talk is designed to help you decide if providing open source &#8220;products&#8221; or services to the government is something that makes sense for you.  It will also serve as general enlightenment on where the government stands today on their uptake on open source and where some of the challenges remain.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/14/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>RubySpec: What does my Ruby do?</title>
    <submitted-at>02/16/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">13</id>
    <description>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.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>02/16/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Clustering Data -- How to Have Fun in n-Dimensions</title>
    <submitted-at>03/31/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">146</id>
    <description>I will introduce the theory and goals of clustering algorithms. The literature in statistical analysis is made up of dense mathematical equations; so I will translate equations into pseudocode to make the topic more accessible to programmers.

I will expand on the theoretical discussing by demonstrating a simple example of a clustering problem: how to group volcanos in Alaska by geographical proximity. I will move on to algorithms with real-world applications, such as how to group users with similar tastes given a database of user ratings.

I may touch on more advanced techniques to improve the accuracy of resulting clusters. I will also discuss current limitations of statistical analysis. As an example, Netflix' ongoing competition for an algorithm that can predict whether or not a user will like the movie Napolean Dynamite.

The examples from the talk will be implemented using JavaScript and CouchDB. My hope is that people from many different language and environment backgrounds will have some experience with JavaScript. And the data-processing capabilities of CouchDB are well suited to clustering algorithms.
</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/31/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Using virtualization and automation to improve your web development workflow</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">260</id>
    <description>Most web developers are probably familiar with the concepts and motivations behind staged deployment.  But the prospect of setting up such a system can raise daunting questions, especially for smaller shops that may work on many projects for many clients.  How much extra hardware will be needed?  How much will the required software cost?  How much development time will it take?

In this session, I show how the combination of Linux, VMware Server, and AutomateIt can make a staged deployment environment easy and inexpensive to set up.  This is a high level session meant to introduce concepts and tools; it will be light on code examples or live demonstration of software.

I review a handful of web development infrastructure approaches.  For each configuration, I discuss the benefits and costs.  Next, I introduce VMware Server and AutomateIt, and show how the introduction of virtualization and automated configuration can drastically reduce these costs.
</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/16/2009</updated-at>
    <biography nil="true"></biography>
    <title>Advanced Git tutorial: Not your average VCS.</title>
    <submitted-at>02/27/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">23</id>
    <description>Git is an open source, distributed version control system used to track many different projects.  You can use it to manage anything from a personal notes directory to a multi-programmer project.

This tutorial provides a short walk through of basic git commands and the Git philosophy to project management.  Then we'll dive into an exploration of the more advanced and &quot;dangerous&quot; Git commands.  Watch as we rewrite our repository history, track bugs down to a specific commit, and untangle commits into an LKML-worthy patchset.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>02/27/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Introduction to Parrot</title>
    <submitted-at>04/07/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">175</id>
    <description>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.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/07/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Faking It Til I Make It: A Woman On The Fringe Of Open Source</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">213</id>
    <description>This is a three-part presentation, beginning with an introduction of my personal experiences with open source:

- early exploration of open source software
- technical journey, from sales to support, administration and finally, engineering
- the danger of &quot;laying low&quot;
- challenges and successes
- how failure led to the need for inspiration
- how inspiration led to community

The second section will explore the community I've discovered:

- local groups for women in tech
- vast resources on the web
- support and recognition within the sub-community of women in tech
- what's next?

The last section invites the attendees to participate:

- Q &amp; A
- Invitation to share women-in-tech events
- Invitation to share additional experiences
- Comments and suggestions

The entire presentation gives voice to my own experience but more precisely how I believe it parallels that of many women in technology: we think ourselves on the fringe, but in fact, we are active participants in an ever-growing community.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Firefox Switchblade</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">251</id>
    <description>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
* Writing lean and performant code
* Interacting with the host operating system
* Busting out of the browser with standalone applications</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Android location services from social networks to games</title>
    <submitted-at>03/30/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">118</id>
    <description>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).</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/30/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>CodeIgniter As Drinking Game</title>
    <submitted-at>04/02/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">156</id>
    <description>CodeIgniter is the only PHP framework that has the Rasmus Lehrdorf seal of approval, and that guy is from Greenland, so he knows what he is a talking about. In this tutorial session, I'll take you through the steps to create a web site using PHP and CodeIgniter, a PHP MVC framework that's so easy you can use it while you drink.

Rules: Every time I demo a new CodeIgniter library, we drink. Every time I say &quot;can you believe how little code that took?&quot; we drink. Every time something works on the first try, we drink. Every time something doesn't work on the first try, we drink. We'll make up new rules as we go along just in case we aren't drinking enough, but ultimately the goal will be to get you familiar with CodeIgniter to create PHP web sites quickly and cleanly. And drink. BYOB.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/02/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>05/27/2009</updated-at>
    <biography nil="true"></biography>
    <title>Bootstrapping Your Open Source Business</title>
    <submitted-at>04/20/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">270</id>
    <description>A panel on building a profitable business without outside investment using open source, hard work, and a little bit of luck.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/20/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/16/2009</updated-at>
    <biography nil="true"></biography>
    <title>Building an embedded Linux system monitoring device</title>
    <submitted-at>03/24/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">61</id>
    <description>Update: The device isn't completely working but the talk will cover debugging, setting up a build environment, Beagleboard I/O and basics of Linux network drivers.

I will show how I built an embedded system to monitor machines on a small development network using an ARM based Linux machine with a SPI attached network adapter.

The embedded ARM device is a &quot;BeagleBoard&quot;:http://beagleboard.org/ that records the syslogs coming from my development systems and communicates with my &quot;power distribution unit&quot;:http://www.apc.com/resource/include/techspec_index.cfm?base_sku=AP9212 to reboot them automatically if it detects a system oops. My talk will discuss building software for the ARM architecture, writing a Kernel driver for a simple network device and the automation of the system.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/24/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Bridging the Developer and the Datacenter</title>
    <submitted-at>02/18/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">14</id>
    <description>Your application is live and is now publicly accessible.  You and your team have spent countless hours devouring your code base for the slightest imperfections, bugs and potential issues that may arise in production.

We put an enormous amount of faith in our service providers / Datacenters to keep the bandwidth, power, servers, backups, and all other components of the hosting fabric online and operational.

We will explore the aspects of hosting facilities which physically power your applications.  Knowledge in these areas can strengthen your awareness when making purchasing decisions, or debugging critical components between the application and the hosting provider.

_Key topics of discussion:_

*Bandwidth*
 * How failure can occur when your data is in transit.
 * Redundancy methods actively in use today.
 * Quantifying usage and requirements for your application.
 * Understanding the terms and technologies used by hosting providers.

*Backups*
 * Technologies for archiving and verifying the integrity of your data.
 * Web host or developer, who is responsible?
 * Understanding how and where data is stored.
 * Data restoration and retrieval.

*Power*
 * Why it is the most critical component of the hosting model.
 * Basics of power redundancy.
 * Questions to ask your hosting provider.

*Servers*
 * Measuring CPU, Memory and Disk I/O requirements.
 * Horizontal / Vertical Scaling.
 * Redundancies, and where failure most often occurs.

*Virtualization*
 * When virtualization is, and is not appropriate.
 * Virtual Private Servers.

This discussion will conclude with an open forum for QA on topics discussed, and any other relevant topics the attending audience might have.


</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>02/18/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>The Linux Kernel Development model</title>
    <submitted-at>03/11/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">33</id>
    <description>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.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/11/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Deploying to the Edge from CouchDB</title>
    <submitted-at>03/30/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">109</id>
    <description>Apache CouchDB makes the perfect vehicle for extremely distributed applications. CouchDB can serve HTML and other static web assets, while providing dynamic access to data. CouchDB's validation functions and rendering capablities mean you can write your web app in pure JavaScript. Once it's done it can spread through ad-hoc sharing. When users have full access to the source code, interesting things happen. The application models are different. I'll run you though some of the major differences. Learning how to program extremely distributed case will make you stronger at building more traditional scalable web services.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/30/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>JRuby: when Ruby grows up and gets a job</title>
    <submitted-at>04/09/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">185</id>
    <description>The Rails community is notoriously fickle when it comes to hosting, monitoring, and packaging their applications. In a few short years, we've seen no less than three &quot;recommended&quot; deployment models come and go: FastCGI + lighttpd, Mongrel + load-balancing proxy, and now Passenger/mod_rails. There's another option which gets much attention, though, despite its many strengths: running Rails in a Java application server via JRuby.

There are good reasons to consider this model all by itself, but websites are only one small part of what the Java ecosystem supports. Once you open yourself up to the possibility of using Java infrastructure for your Ruby code, there are a whole raft of other high-quality services and libraries available to you, covering everything from scalable message queues, shared object caching, and distributed computation frameworks. You can even tame legacy databases and enterprise platforms like Oracle, SAP, and the dreaded &quot;portal&quot;.

Furthermore, now that Google App Engine supports Java -- and JRuby was a big part of that announcement -- you can deploy your Ruby code onto Google's servers for free. Once you're ready to upgrade to your own deployment, there are numerous high-quality open source Java application servers available (Glassfish, Tomcat, JBoss, Jetty, etc.) which you can run on your own system.

Come see how JRuby makes writing Java apps less painful, and how the Java ecosystem's focus on stable, scalable infrastructure can make your Ruby apps more reliable and performant. Bring a laptop with a recent JDK installed, and you'll be able to follow along with the entire process of getting basic Ruby apps up and running in a Java application server, using JDBC to talk to backend databases, and even wrapping a legacy Java library in a &quot;Ruby-like&quot; API layer, all without ever going anywhere near a compiler or an XML config file.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/09/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Open Source Development - The Dark Side</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">223</id>
    <description>Do you love the idea of an Open Source Development community but frequently find yourself battling:

* Application components that require chmod 777 to work correctly
* The need for a law degree to understand implications of OSI licenses and how they mix and match
* Scattered documentation
* OS Distros that divide up your configuration files
* Cargo Cult mentalities
* Learning to use five different source control systems
* Dealing with communities where developers are highly specialized and not technologists
* Smack talk on the development mailing list and in irc channels
* Meritocracies that aren't
* Benevolent Dictators that aren't so benevolent or competent
* Upgrade paths that require the correct astronomical alignment, a sirocco, and twin albino goats to successfully complete with no data-loss
* And more!

Jennifer Redman, a veteran user of and occasional attempted contributor to Open Source software explores the labyrinth of the community development model and the trials and tribulations of mixing with technically diverse &quot;open&quot;-communities, from a primarily end-user perspective. </description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Command-Line Kung Fu: White Belt</title>
    <submitted-at>03/26/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">71</id>
    <description>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.

Topics covered include:
-- Command line history and tab completion skills
-- Fun with find and xargs
-- Loop constructs
-- cut vs. awk
-- sort and uniq

The talk is interactive and full of live demos.  Students can bring their own laptops and play along.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/26/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Remember Tcl/ Tk?  Grandpa might be old, but he can still kick your ass!</title>
    <submitted-at>02/28/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">24</id>
    <description>Even though Tcl/ Tk is purported to be so &quot;1993&quot; (see http://radar.oreilly.com/2009/03/four-short-links-3-mar-2009.html ), it can actually provide a more advanced rapid development environment than the more popular scripting languages that start with &quot;P&quot; and &quot;R&quot;, supporting built in templating abilities, built in event-loop and callback structures, trivial-to-learn syntax, powerful and simple C extension facilities, a generous license, wide cross-platform deployment (out-of-the-box on Mac OS X, Windows, and all Unix flavors), and the simplest GUI development system in production today. 

This session will showcase the unique features of this excellent &quot;old-school&quot; language.  We will help potential users overcome their disorientation at the lack of parentheses and equal signs and automatic derefencing.  We will show them how to write simple and powerful interactive and event-driven programs that run anywhere.

We will do this with an extended example -- &quot;tksed&quot;, a hack I wrote to combine interactivity with stream editing.  Tksed processes a file by grabbing each line in turn and applying a regular expression (the &quot;sed&quot; part).  It displays the line both before and after applying the regular expression, and allows the user to edit the regular expression and the output line.  The user can try different RE's, test the results, reapply various RE's to the current line without output, skip lines, edit the outpost after RE transformation, or non-interactively apply the RE to the remaining lines.  This interactivity comprises the &quot;tk&quot; part.

This session is perfect for scripters searching for the perfect four line GUI, programmers bored/annoyed by the rococo syntax of their current language, and anyone who has ever felt the need for a built in event loop.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>02/28/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Unit Test Your Database!</title>
    <submitted-at>03/16/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">43</id>
    <description>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.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/16/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Trust the Vote: An Open Source Digital Public Works Project</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">252</id>
    <description>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 &quot;I count!&quot; 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&#8212;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. </description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Web Server Shootout</title>
    <submitted-at>03/30/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">119</id>
    <description>Apache is no longer the only sensible open source web server choice.  Lighttpd and Nginx, as well as a number of other contenders, have become popular and blogs are littered with quick &amp; dirty benchmarks _proving_ which server is supreme.  With a myriad of languages, platforms, and deployment options, there's very little way to tell which combination is right for your specific needs.

This presentation will measure a number of environments on a wide variety of metrics:

*Metrics*


* Requests per second (of course)
* Memory usage
* Features (extensibility, modularity, etc)
* Community (support options, tools/modules available, etc)
* Portability
* Reliability (can I crash it? how well does it handle load?)
* Administration (floods of patches? hideous configuration?)


*Web Servers*


* Apache (prefork and worker mpms)
* Nginx
* Lighttpd
* Possibly others such as Cherokee or even proprietary options like Google App Engine and IIS.


Benchmarking static files isn't really useful to anyone, so I'll test as many of the servers on as many of the following frameworks and applications as possible:


* WordPress
* Drupal
* Bugzilla, Redmine, and Trac
* trivial Django app
* trivial Ruby on Rails app
* trivial Zend Framework app


Please feel free to &quot;leave suggestions for other applications, frameworks, and environments that I should make sure to include!&quot;:http://michael.susens-schurter.com/blog/2009/03/29/crowdsourcing-my-os-bridge-talk-proposal/

For more details as I run the tests to make my presentation you may want to follow the &quot;osbridge tag on my blog.&quot;:http://michael.susens-schurter.com/blog/tag/osbridge/</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/30/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/06/2009</updated-at>
    <biography nil="true"></biography>
    <title>Wednesday Welcome and Keynotes</title>
    <submitted-at>05/08/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">271</id>
    <description>Welcome to Open Source Bridge!

Amber Case will be speaking about being a cyborg citizen.

Kurt Von Fink will speak about the hacker business model.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>05/08/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>05/15/2009</updated-at>
    <biography nil="true"></biography>
    <title>Drop ACID and think about data</title>
    <submitted-at>03/30/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">100</id>
    <description>http://bitbucket.org/etrepum/drop_acid_pycon_2009/</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/30/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/16/2009</updated-at>
    <biography nil="true"></biography>
    <title>What's New in GCC</title>
    <submitted-at>03/31/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">138</id>
    <description>The GNU Compiler Collection includes compilers for seven languages and supports dozens of architectures and operating systems.  Hundreds of developers are constantly improving GCC by implementing new language features, porting to new processors, and adding new optimizations to make your application run faster.  The last few releases have included many interesting changes, with many more new developments in the works for upcoming releases.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/31/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Running an EDU on OSS</title>
    <submitted-at>04/08/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">176</id>
    <description>With the current economy, we're seeing enrollments in higher education rise while budgets get cut;  in these tough times, OSS allows institutions to empower their greatest asset: their people.  In this presentation, we compare and contrast several popular enterprise-class EDU OSS tools, including Moodle, Sakai, .LRN, and Kuali, discussing their architectures, strengths and weaknesses, and how to get involved with making them better.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/08/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Server Sky</title>
    <submitted-at>02/18/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">15</id>
    <description>Large data centers are growing, and soon some will consume 50MW or more of electrical energy.  The EPA estimated US data center power consumption in 2006 at 60 billion kilowatt hours, or 1.5% of total US power consumption, and predicts a doubling by 2011.   Our efforts as programmers and technologists  will continue this exponential growth.  This will have huge environmental, social, and economic consequences unless we find alternative ways to power our digital economy.

Server sky is a proposal to use the capabilities of Oregon companies such as Solar World, Intel, and Triquint to build large dispersed arrays of ultralight solar powered server satellites and launch them into 6000km earth orbit, between the inner and outer Van Allen belts.

A 50 gram server-sat consists of a thinned 12 inch solar cell, with an efficient  2GIPs processor, terabit solid state disk, and microwave transmitter bonded to the back.  Thousands of server-sats position themselves into dozens of  dispersed three dimensional clouds  (kilometers on a side) using light pressure for thrust and liquid-crystal shutters for trimtab steering.   A server-sat array acts as a large phased array antenna, permitting it to steer thousands of communication beams at receiving stations and communities under its position in orbit, handing off communication and control to the server-sat clouds that follow it in orbit as it passes overhead.

A Russian Dnepr rocket  could place a cylindrical stack of 50,000 server-sats into orbit for $15,000,000, or $300 per server-sat.  If each server-sat displaces 100 watts of ground-based electrical generation, cooling, and power conversion,  it will pay for itself in electrical savings alone in just a few years.  A server-sat will cost more to manufacture than a white-box PC, but it will not need the cases, racks,  cabling, power converters, land, buildings, power lines, and other materials needed to build a ground-based server farm.  Total resource usage is reduced, and the total manufacturing cost may become less than traditional approaches.  A server-sat array provides its own communication infrastructure and can reach the entire inhabited globe.  

Since server-sat arrays operate outside the biosphere, the environmental impact of power generation and heat disposal is close to zero.  Server-sat arrays can grow to practically unlimited size - space is big, and filled with unused solar energy.  In time, new launch techniques, and solar cells made from lunar rock, can greatly reduce the environmental and economic costs of manufacturing and launch.  There is room for 1 trillion server-sats within a 100 millisecond ping time distance from earth. Someday, quintillions of server-sats scattered around the solar system  will perform cluster computation.  

Of course, it will be built on open source technologies with best-of-breed security.  Hopefully, OSbridge participants will have many ideas for protecting the system from criminals.

Earth can return to what it is good at - green and growing things - while space can be filled with gray and computing things.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>02/18/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Python for Teachers</title>
    <submitted-at>03/12/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">34</id>
    <description>Portland is at the cutting edge when it comes to pioneering a world class 21st century education for its students.  &quot;The Silicon Forest&quot;: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, &quot;Saturday Academy&quot;:http://www.saturdayacademy.org has been teaching FOSS concepts (free and open source software), later morphing into a more mainstream form of &quot;Pythonic Math&quot;.  Winterhaven (Portland Public, a &quot;geek hogwarts&quot;) has also gotten in on the &quot;pilot studies&quot;: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 &quot;FOSS capital&quot; (&quot;Christian Science Monitor, 2005&quot;:http://www.csmonitor.com/2005/1128/p03s02-ussc.html).  Kirby is a curriculum writer for &quot;4D Solutions&quot;:http://www.4dsolutions.net, also CMO for a FOSS project involving &quot;coffee shops&quot;:http://coffeeshopsnet.blogspot.com.  He is also &quot;an IEEE member&quot;:http://worldgame.blogspot.com/2008/11/ieee-presentation.html and past web wrangler for the Buckminster Fuller Institute (&quot;BFI.org&quot;: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.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/12/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>HOWTO earn an open source living without taking on investors or selling your soul</title>
    <submitted-at>03/29/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">91</id>
    <description>For five years OpenSourcery has been building web applications under contract.  We've gone from three to 20+ people without outside investment or compromise on our open source ideals.

We'll cover the simple formulas that led to our success, explore the some of the dubious business models and side adventures we tried along the way, and hopefully cause the launch of many successful open source businesses.

If you are an experienced open source entrepreneur who would like to join this presentation, please contact me.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/29/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Building Open Source Communities in Higher Education</title>
    <submitted-at>03/31/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">129</id>
    <description>A large number of computer science students leave school without getting the kind of real world experience working on Open source project can give them. They have not been exposed to large code bases, had to deal with constructive feedback, and may lack basic skills such as writing good bug reports, good coding practices, submitting patches, and other project collaboration skills. Open source communities provide excellent venues for learning these skills while still in school.

This presentation will focus on how Oregon State University is trying to encourage more students to participate in Open source, and use Open source tools and development practices. We accomplish this by providing a custom Open source hosting environment (Beaversource) with social networking features aimed at removing many of the stigmas and fears students have when approaching Open source. This social framework also helps people with similar interests find each other so that they can work together.

The information in the presentation will be of use to people in academia who want to encourage students to learn more about open source, as well as those in the open source community who want to engage more students.
</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/31/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Spindle, Mutilate and Metaprogram:  How far _can_ you push it before there be dragons?</title>
    <submitted-at>02/28/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">25</id>
    <description>Languages such as perl, ruby, python, scala, javascript, lua, and others have been steadily pushing out the frontier of what a &quot;normal&quot; language should do for almost two decades now.  Despite the early prognostications of imminent doom from the static typing, LR(1), &quot;you can visualize the machine code&quot; establishment, nothing too awful has happened.  Yet.

Meanwhile, languages like clojure, OMeta, and others are boldly going even further, and with a rigor lacking in the earlier edge dwellers.

Maybe the edge isn't as close as we thought it was.  Maybe you can do some really funky things with your language without accidentally summoning eldritch spirits.

Or maybe not.

The only way to find out is to try it--or, if you are of the more prudent proclivities, to watch someone else try it.

</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>02/28/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>New Ways for Teaching Children Software Programming</title>
    <submitted-at>04/02/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">158</id>
    <description>Software programming has come a long way for students and younger children since the days of Logo. Syntax has been replaced with connecting blocks and the triangle turtle has been replaced with custom artwork children create themselves.

Other changes include the assumptions we make when teaching children to program. For instance, multi-threading and event processing are easier to teach than functions.

While computers are ubiquitous in children&#8217;s lives, how much of using computers is being transferred into training computers? And does programming offer something beyond the utility to something akin to re-enforcing the academic and problem-solving skills taught in school?

This session discusses the new crop of kid-friendly programming languages as well as how best to teach them. This includes:
 * Etoys
 * Alice
 * Scratch

The session focuses on Scratch, as the best interface for teaching younger children, but also shares a teacher&#8217;s perspective of what works and what doesn&#8217;t work and how the open source community can help create a (potentially new) environment helpful to both students and their teachers.
</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/02/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>How to build a successful open source software consulting company</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">234</id>
    <description>In this talk, I will share my experience growing a open source consulting company from a one man freelance operation to a global corporation employing 20 persons in 8 countries. We will explore some of the challenges that a business owner will face, and the unique issues that a company building open source software must embrace. 

What does it take to be an open source consultant? It's usually not enough to be a good developer. You need to know about the business side of software development, including sales and marketing and legal and accounting. Fret not - just like programming, these are skills that can be learned!

How do you find work and how do you determine how much to charge? We will discuss the merits of time and materials billing, optional scope contracts vs. fixed bid contracts. Blogging, speaking at local tech events and search engine optimization are some inventive ways to attract new customers.

How do you compete against commercial proprietary software vendors and dispel the myths around open source. What are the unique selling points that can help catapult your company to the shortlist? Positioning your services and finding a niche are essential to differentiate yourself from other competing vendors.

How do you structure contracts to allow for the software you create to be GPL licensed? The legal issues cannot be overlooked if you want to ensure your software remains open source. Education of your customers is important to get them to think of software not as an asset, but a liability.

How do you recruit and retain talented developers? The transparency of open source software provides you with developer footprints that reveal far more about a developer's technical skills than any resume. I have recruited some of my best developers solely by reading their code and their blog posts to get a sense for how they communicate.

Open source software is often developed by distributed teams, in which the leaders and developers are geographically dispersed. Can this team dynamic work for consulting projects? We've learned through many failed attempts what works and what doesn't, navigating timezones, multi-currency payments, remote pair programming, and global conference calls.

How can you be a profitable company and still be a good citizen of the open source community? Where do you draw the line between paid customer work and unpaid community work? If structured properly, the community work can complement the billable work and vice versa.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/06/2009</updated-at>
    <biography nil="true"></biography>
    <title>Thursday Keynotes</title>
    <submitted-at>05/08/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">272</id>
    <description>Portland Mayor Sam Adams

Ward Cunningham</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>05/08/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Agile JavaScript Testing</title>
    <submitted-at>03/31/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">139</id>
    <description>h3. Intro
* Test Driven Development - What is it, why do it, what are the advantages?
* Challenges of web applications - browser quirks, asynchronous ajax, dynamic-ness of JavaScript language
* Future VMs will run JS faster, making &quot;bigger&quot;, more processing intensive apps possible within a browser
* Traditionally web applications have most business logic running server side.
* Testing for server-side web applications has matured over the past few years
* AJAX applications have large amounts of code executing in the browser in JavaScript
* This creates a growing need for testing at the browser level, but this area is still young and not as widely practiced

h3. What do we gain?
* Stable development - iterate without fear of breaking existing features
* Easier refactoring - rewrite the guts of your app and be confident it continues to work
* Speed - stop refreshing and clicking through your app to verify things are working, thats what computers are for
* Automation - repeatable tests help you do the right thing every time, without having to think about it

h3. Getting Started
* What libraries and methodologies exist for JavaScript testing?
* A simple example - a client-side form validation library and a suite of tests for verifying it works as expected

h3. Going further
* A complex example - integration testing, scripting user stories
* Testing across multiple browsers
* Incorporating JS tests into a larger development workflow with server-side tests
* Continous integration - running tests automatically, every time you commit</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/31/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/17/2009</updated-at>
    <biography nil="true"></biography>
    <title>Making Twitter Suck Less With Perl</title>
    <submitted-at>04/08/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">177</id>
    <description>Many applications are starting to emerge that allow you to slice and dice the Twittersphere, (like Tweetdeck [1] or Yahoo Sideline [2]) such as advanced searching and grouping of tweets, posting to multiple accounts, filtering out unwanted tweets from hash tag searches and generally making searching for what you want easier.

Why not use the power of Perl regex's and the vast CPAN codebase to do as you please? Interested in creating autonomous agents that search for what you are interested in and archiving relevant information? This talk is for you!

As an example, this talk will teach the basics of Net::Twitter[3] by explaining how one can write Perl code that watches certain locations (a log file, RSS feed, website, whatever) for given strings of text and depending on which source and string it detects, notifies it's master via Twitter.
In the case of watching an error log, this can be sending a Direct Message if the error severity is past a threshold or posting a normal tweet on a timeline for more routine events.

Other topics that will be touched upon will include

* Unify interactions with Twitter/Identi.ca/etc
* Integrating with Continuous Integration/Smoke Testing
* Tweetholes - Automagically sending certain spam-like messages to the bit bucket
* Integration with IRC bots, blogs and RSS feeds
* Filtering out the same message across networks


[1] http://www.tweetdeck.com
[2] http://sideline.yahoo.com
[3] http://search.cpan.org/dist/Net-Twitter/</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/08/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Building Open-Source Desktop Apps with the Titanium Platform</title>
    <submitted-at>03/28/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">82</id>
    <description>Titanium is a truly open-source alternative to Adobe AIR, allowing developers to use their existing knowledge of rich web application technologies &#8211; JavaScript, Python, Ruby, HTML and CSS &#8211; to build desktop applications. 

In this presentation, we will:

* introduce the Titanium platform and the technology/people behind it
* demonstrate the power and features of the Titanium API
* look at WebKit's power with CSS3 transformations, slick canvas support, and built-in vector graphics
* show the inherit reusability of code by combining JavaScript, Python, Ruby
* go through creation of a simple desktop application from start to finish

Attendees should have a decent understanding of HTML, CSS and JavaScript. Knowledge of Python and Ruby are optional. We will leverage a number of open source web libraries, mainly at high levels to demonstrate the best of breed technologies that are reusable in Titanium.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/28/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Building Scale Free Applications with Hadoop and Cascading</title>
    <submitted-at>03/30/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">111</id>
    <description>Many more applications are suitable to be built on Apache Hadoop than many developers realize. 

In this presentation, we hope to give attendees enough information on how Hadoop works, how MapReduce can be leveraged to perform common and well understood data processing operations, and how the &quot;Cascading&quot;:http://www.cascading.org/ open-source project helps developers rapidly build sophisticated Hadoop applications that can be simply tested locally and executed remotely.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/30/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>A Database Called The Web</title>
    <submitted-at>04/09/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">197</id>
    <description>Since its inception Creative Commons has made machine readable
metadata a critical part of the licensing infrastructure.  Our choice
was obvious (to us): RDF and the Semantic Web.  This of course gave us a chicken and egg problem: how do you convince people the Semantic Web isn't just a bunch of academic dreaming when, well, there wasn't much evidence.  Six years later, we've made it work.  With the publication of the CC Rights Expression Language, we have an extensible, independent, machine readable way to express information about works. A machine readable &quot;database&quot; that people are contributing to every time they mark a work with a license.

During this presentation we'll:

* Demonstrate how this metadata can be used by other web applications to inform users of attribution and re-use specifics
* Demonstrate our lightweight copyright registry, the CC Network,
which is purely driven by semantic web metadata
* Build an even lighter weight version that integrates with the CC
license deeds (with no changes to the CC deed code)
* Build a Yahoo SearchMonkey application that exposes license and
attribution information to the user
* Give specific guidelines to site developers who want to free their data without building a specialized API</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/09/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/11/2009</updated-at>
    <biography nil="true"></biography>
    <title>Friday Unconference Kickoff &amp; Scheduling</title>
    <submitted-at>05/08/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">273</id>
    <description>A short introduction to unconferences, and session scheduling.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>05/08/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/17/2009</updated-at>
    <biography nil="true"></biography>
    <title>Open Source Press Relations</title>
    <submitted-at>03/25/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">64</id>
    <description>You have a really cool open source project and everyone should see it, try it, and use it.  But ... they don't seem to know about it.  How can you make sure your project gets the press coverage it deserves?  More importantly, how can you do it without compromising your open source community relationships and principles?

Josh Berkus will go over the methods he's used for the last 7 years to publicize both the OpenOffice.org and the PostgreSQL projects.  He'll also show you how you can use OSS methods and tools not just to get PR done, but to get it done *better* than proprietary methods. 

Slides will be up at http://www.pgexperts.com/presentations.html by the end of the conference.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/25/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Tangible open source!?</title>
    <submitted-at>03/31/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">140</id>
    <description>Beginning with an overview of the current state of open source hardware, hardware tool chains and collaboration platforms, attendees will learn everything they need to know to jump in and start their own open source hardware project.  Starting with blank napkins, everyone will build out their ideas and leave with a complete design that is ready to manufacture. </description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/31/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Assholes are killing your project</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">216</id>
    <description>The strength of your community is the best predictor of your project's long-term viability. What happens when your community is gradually infiltrated by assholes, who infect everyone else with their constant negativity and personal attacks? Although one person may be a valuable technical contributor, that one person will never contribute as much to the project as the many people who are scared away and demotivated.

How can you defuse these time bombs and prevent your project's destruction? The level of closeness of personal connections between members of your community has a huge impact on the likelihood a conversation will descend into the kinds of personal attacks that send people running from your project. Another key realization is that technical ability and social ability are orthogonal concepts, and both are a requirement for a competent contributor. You can't just have one or the other, and more of one never balances out less of the other.

This talk will teach you about the dramatic impact assholes are having on your organization today and will show you how you can begin to repair it.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Programming patterns in sed</title>
    <submitted-at>03/31/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">121</id>
    <description>Do you grok sed, or is it all just line noise to you?  Do you marvel at hackers who craft out nifty sed one liners only to realise that there's no way anyone could understand and reuse them?

On the other hand, perhaps you're the kind of person who loves tools like sed and awk, but have never been able to convince others of their power.  In either case, this talk is for you.

sed may not be a fully featured programming language like, say C, Java or PHP, but you can do a lot with it, and you can write clean, structured sed programs.  What?  Did I just say sed and structured in the same sentence?

This talk will cover the basic programming patterns of sequence, selection and iteration, and also touch on variable manipulation, file handling and debugging - all in sed.

At the end of this talk, you'll either have a new found interest in sed, or you'll think that I'm a nutcase... but that's why it's in the Hacks track.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/31/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/09/2009</updated-at>
    <biography nil="true"></biography>
    <title>Web Testing with Windmill</title>
    <submitted-at>03/12/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">36</id>
    <description>h2[=approaches]. Web Testing Approaches

Separating Concerns, Isolating Components
Unittesting vs Functional Testing
Full Monty (blurring the lines between unittesting and funcitonal testing)

h2[=toolsAndTech]. Tools and Technologies

Browserless tools (HTTP tools, Browser simulation, DOMless JavaScript Interpreters)
Browser tools (Watir, Selenium, Windmill)

h2[=writingTest]. Writing Windmill Tests

Starting Windmill
The Windmill IDE
Using the recorder
Adding actions and assertions
Using the Inspector
Serializing your test (Python vs JavaScript Tests)

h2[=debuggingTests]. Debugging Windmill Tests

Running tests
Debugging Failed Actions
Firebug and Firebug Lite
Using the Lookup object

h2[=runningTests]. Running Tests Continuously

Command Line Features
Hudson Plugin
Getting Windmill running in hosted environments like EC2

h2[=extra]. And now for something completely different

Dynamic testing (Windmill's eval APIs)
Testing Firefox Extensions (MozMill)</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/12/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Ask Forgiveness not Permission</title>
    <submitted-at>03/31/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">131</id>
    <description>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&#8217;s concerns about business critical open source so no apology will ever be necessary.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/31/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Is the Web Down: a Practical Tutorial on How the Web Works</title>
    <submitted-at>03/21/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">55</id>
    <description>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, &quot;is Google down for anyone else?&quot;

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 &quot;owning&quot; 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.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/21/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/23/2009</updated-at>
    <biography nil="true"></biography>
    <title>An Introduction to Computer Vision</title>
    <submitted-at>03/29/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">93</id>
    <description>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 &quot;here&quot;:http://www.cs.ubc.ca/~mrd/OSB/OSB.zip .
The slides can be found &quot;here&quot;:http://www.cs.ubc.ca/~mrd/OSB/OSB09-slides.odp and in PDF format &quot;here&quot;:http://www.cs.ubc.ca/~mrd/OSB/OSB09-slides.pdf .</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/29/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/12/2009</updated-at>
    <biography nil="true"></biography>
    <title>Getting Started in Free and Open Source</title>
    <submitted-at>03/17/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">46</id>
    <description>Leslie Hawthorn and I co-present this talk for beginners who are interested to getting involved but don't know where or how to start.  

We cover the basics of:
-why you might want to get involved
-what you can get out of participating
-more than coding is needed
-how to chose a project
-how to get started
-etiquette of lists and other communication
-dos and don't of joining a community

The talk is not just for beginners; experienced FOSS folks can learn how to help newbies successfully join their projects.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/17/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>&quot;M&quot; is for Manual: Creating Documentation for your Project</title>
    <submitted-at>03/31/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">122</id>
    <description>Documentation for open source projects is every bit as important as the code itself. Without documentation, users frequently get lost or frustrated.  But with limited time to work on your project, how can you create a single source of docs that can be used in a variety of ways, such as in downloadable PDFs, or as searchable web content?  And how can you engage with localization (translation) communities to spread your content further?

Many people are not aware of the incredible power and versatility of the documentation system known as DocBook, nor how it works. This session will cover what it is, what it isn't, and some of flexible, useful (and in a couple cases, new and shiny) tools that exist to quickly and easily produce fantastic looking content for your users worldwide.

This presentation will cover a few basic XML tenets, DocBook XML, a couple of general-purpose libxml2 and libxslt tools, and Publican, a complete system for turning DocBook XML source into an attractive publication in any of a number of formats.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/31/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>bzr vs git smack down</title>
    <submitted-at>03/13/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">37</id>
    <description>&lt;a href=&quot;http://www.chesnok.com/daily&quot;&gt;Selena&lt;/a&gt; loves &lt;a href=&quot;http://git-scm.com/&quot;&gt;Git&lt;/a&gt; and &lt;a href=&quot;http://www.emmajane.net&quot;&gt;EmmaJane&lt;/a&gt; loves &lt;a href=&quot;http://bazaar-vcs.org/&quot;&gt;Bazaar&lt;/a&gt;. And like all good nerds they've spent a fair amount of time talkin' smack about the other's version control system (VCS).

But what really makes a good VCS? What are the questions you need to ask to pick the right VCS for your work environment? In this talk we'll help you to learn how to weed through the smack-down-talk and choose the best system for your needs today (and in the future). 

Please participate in the creation of this talk by tweeting and denting your questions. We're keeping a running total at &lt;a href=&quot;http://www.bzrvsgit.com&quot;&gt;www.bzrvsgit.com&lt;/a&gt;.</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>03/13/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Ubiquitous Angels</title>
    <submitted-at>04/10/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">246</id>
    <description>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 &quot;angels&quot; 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.
</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/10/2009</created-at>
  </record>
  <record>
    <event-id type="integer">2009</event-id>
    <updated-at>06/04/2009</updated-at>
    <biography nil="true"></biography>
    <title>Django: Thinking Outside The Blog</title>
    <submitted-at>04/01/2009</submitted-at>
    <website nil="true"></website>
    <id type="integer">151</id>
    <description>Django is a powerful open source web framework that leverages the expressive power of the Python programming language.  Each piece is well-documented and there are tutorials showing how to create small pieces of functionality.  But that's the small picture... how do you leverage Django's power and flexibility to solve real-world business challenges?

I'm a developer tasked with exactly this responsibility.  I develop and manage systems for a small (but growing) consulting firm that needs to deploy powerful web-based solutions quickly and cheaply.  Django is frequently my tool of choice.

105 minutes isn't nearly enough to fully explore Django, but it might be just the right amount of time to show how an experienced Django developer would plan and execute a solution to a real-world problem.  I have a couple different projects in mind, but I expect that the elements of a good project would include:

  * Working with the security model
  * Enhancing the built-in admin interface
  * Adding &quot;just enough&quot; workflow
  * Structuring data
  * Using templates effectively
  * Custom forms
  * Some Web 2.0 fairy dust
  * Interaction with an external system

For purposes of the session, I'd be assuming a &quot;stock&quot; Django installation with the standard templating, ORM, etc.

This would assume familiarity with Python and Django basics, but no experience beyond the basic tutorials.
</description>
    <presenter nil="true"></presenter>
    <user-id nil="true"></user-id>
    <affiliation nil="true"></affiliation>
    <created-at>04/01/2009</created-at>
  </record>
</records>
