As the Green revolution and the Arab spring have shown, technology is now an essential tool in organizing, documenting, and cementing peaceful resistance and civil disobedience. For now, the organizers are technologically ahead of the security forces they are demonstrating against. This imbalance, sadly, cannot last without our help. In this talk, I'll cover some of the technical tools needed to help dissidents document abuses. First, we must allow citizens to cover events anonymously, should they wish to. Second, we need to allow them access to their images and video even if the device on which they were taken is confiscated. Last, we need to develop software to help media escape internet blackouts and aggressive filtering.
We all know that Git is amazing for storing code. It is fast, reliable, flexible, and it keeps our project history nuzzled safely in its object database while we sleep soundly at night.
But what about storing more than code? Why not data? Much flexibility is gained by ditching traditional databases, but at what cost?
In this talk, I will explore the idea of using Git as a data store. I will look at the benefits of using a schema-less data store, the incredible opportunity opened up by having every change to every model versioned, and the crazy things that could be done with branching and merging changes to data.
I will also explore the challenges posed by using and scaling Git as a data store, including concurrent access and distributing load.
by Aaron Quint
I love food. Over the past 10 years, what was a simple love has turned to down right obsession. My brother once dared me with the simple phrase "I wonder how hard it would be to make pickles?". From there its been a non-stop adventure, from sausage making to charcuterie to bacon to fresh cheese to hard cheese to fine french cuisine and just about everything in between. I truly believe the obsessive unrelenting nature of being a developer and wanting to solve problems lends itself very well to being a chef (or at least an amateur one). I'll walk through the science and deliciousness of cooking and a number of fun and challenging techniques, from making simple pickles and bacon at home, to building your own cheese cave. You're a nerd, you can figure this out.
by Ben Fields
From The Hype Machine to Last.fm, music recommendation is now an everyday part of our lives. These services employ many techniques, from curated-playlists to content-similarity to collaborative filtering. But can music recommendation techniques tell us what we should be drinking before a concert? Or where to drink it? Or what tasty beverage best matches a meal? In this talk I’ll be briefly surveying music recommendation techniques, focusing on personalisation and content-based recommendation. I’ll then introduce a dataset of beer descriptions and ratings. We’ll apply the earlier techniques (some with slight modifications) to this rather more intoxicating domain, via a case study. When it’s all over, everyone should know the answer to that most important of questions: What beer will go best (for you) with this bacon?
(all code used in this talk will be available online under an OSS licence)
by Steve Losh
The human brain evolved to deal with small numbers of medium-sized things. As developers we frequently have to work with huge numbers of extremely tiny things.
The complexity of the programs we write is increasing far more quickly than our intelligence. If we're going to be able to develop effectively we need to find ways to work around our poorly-suited brains. It's time for the development community to grow up and take some lessons from math and science on how to deal with complexity.
Cheap, mass produced mobile phone hardware laden with sensors combined with the compute power of the machines we use every day make expensive research systems of the 90s implementable in your living room. I'll explain how I did just that. Combining machine learning techniques anyone can learn online, an open source hardware platform, a simple mobile app and a bit of heath-robinson device hacking to build a remote control car that learns how to navigate autonomously.
Schemaless database are a joy to use because they make it easy to iterate on your app, especially early on. And to be honest, the relational model isn't always the best fit for real-world evolving and messy data.
On the other hand, relational databases are proven, robust, and powerful. Also, over time as your data model stabilizes, the lack of well-defined schemas becomes painful.
We will explore the power of hstore and PLV8, explain how to use them in your project today, and examine their role in the future of data.
Web sites are complex systems that can spectacularly fail in more ways that they succeed. Most failures are the result of a combination of totally reasonable behaviors. Learn about one of those failures from SoundCloud and how we handle failures by debunking the myth of the "root cause".
by Hilary Mason
Ever tried to use a regular expression to parse an unstructured street address? This talk is an introduction to a few machine learning algorithms and some tips for integrating them where they make the most sense and will save you the most headaches.
by Toby Kay
Wombletech is all about re-use of technology and “making good use of the things that we find”- whether that be code or machines or processes.
From the nation's canals to worldwide soft-drink distribution, some pioneers are reusing existing technology to create new businesses, social programmes and digital innovations.
It's about thinking sideways and embracing the ethos of "proudly found elsewhere" rather than "not invented here".
The glamorous world of Visual Effects involves more than just hanging out with movie stars and dressing up in tuxedos to accept awards. We also write a lot of custom technology to enable our artists to help the director realise his vision. This spans the gamut from creating herds of woolly mammoths to blowing up Japanese pagodas, and managing terabytes of data as it flows between hundreds of artists across three timezones.
I want to convince a probably skeptical audience of developers that:
Once we've shipped our latest software product we should want to keep an eye on how it behaves out in the real world. Too often this task is an afterthought, completely separate from the development process and focused only on what you get free with one tool or another. This is because even the best tools we have suck.
I'll show some examples:
And then talk about what the community are doing to hopefully fix this problem and why as developers people should join the effort. I'll show some hopeful signs:
For those intrigued, it's a perfect opportunity to dive head-first into some really interesting programming challenges:
by Zach Holman
20th–21st April 2012