Message driven development can be hard due to the asynchronous nature
of messaging. Messaging is also often still considered enterprisy
stuff and therefor out of reach for the average developer. I'll show you
how to rewrite a monolithic web application into a scalable web app that
uses RabbitMQ as the message queue. In the second step we introduce
Redis as a caching layer and I will show you how to make a dog slow web
app into a light wight and easy to maintain and scale app stack.
Even though this talk will be mainly about AMQP based messaging I will
briefly talk about ZeroMQ and (if time permits and interest arises)
about the workflow engine I wrote on top of CouchDB and RabbitMQ.
Even though I work mainly with Perl I successfully applied this method
to other environments even as exotic as PHP based websites running Java
backends. This talk is intended for a technical audience that is
interested in web application development and scaling of web apps. It is
also interesting for anyone who is interested in messaging and message
driven development.
recording release: yes license: CC BY-SA
34. Extracting metrics from logs for realtime trending and alerting
Jamie Wilkinson
Application logs contain a wealth of data on events in a system, but are typically only examined after an incident occurs. Due to a lack of a common language between open source tools, these events remain hidden, unexported to a monitoring system.
In this presentation, Jamie will describe and demonstrate a general purpose tool for extracting metrics from logs, and exporting them in real time.
recording release: yes license: CC BY-SA
35. EFI and Linux: the future is here, and it's awful
Matthew Garrett
The PC BIOS is a dreadful thing. Poorly standardised and often poorly implemented, it has one job to do and frequently does it badly. The kernel and bootloaders are obliged to devote extensive sections of code to working around issues present in the BIOS, code and time that could have been better spent elsewhere.
Everyone agrees that the PC BIOS is awful. So why, when Intel introduced the Extensible Firmware Interface (EFI) as a replacement for it, did we not great it with open arms?
This presentation will introduce EFI to the audience, covering the reasons for its existence and its benefits. It will then go on to discuss everything that's wrong with it, from poorly considered aspects of the specification to implementation flaws.
Should it be necessary, audience members are advised to provide their own gin.
recording release: yes license: CC BY-SA
36. Mistakes were made
Selena Deckelmann
In an ideal world, code would have complete test coverage, releases would be seamless and databases wouldn’t require downtimes to upgrade. The fact is, most companies still have to manage systems upgrades and code deployment that includes downtime. This talk is for you.
Maintenance windows are rarely wanted, but frequently needed. And sometimes things go horribly wrong.
This talk will teach you how to plan for the worst, minimize risk and recover gracefully from failure.
Elements to successful downtimes include: proper testing, automated checks for success, and complete rollback plans, and a timeline. We’ll go over useful tools for keeping track of what is going on before, during and after a downtime, and talk through good and bad communication for employees and customers.
We’ll also talk about how non-technical people can evaluate technical change. And how having the right stakeholders involved from the beginning of the planning process reduces risk.
Stories to illustrate success and failure will come from Selena Deckelmann’s 15 years in education, public and private sectors, as a consultant, DBA and IT manager. Additional examples
recording release: yes license: CC BY-SA
37. antiSMASH: Searching for New Antibiotics Using Open Source Tools
Kai Blin
Ever since Alexander Fleming discovered the first antibiotic being produced by a Penicillium mould in 1928, scientists have been searching bacteria and fungi for new substances to combat infectious diseases. In the last 40 years however, only few new substances have been discovered that actually reached the market. In the arms race between bacteria developing new resistances and humanity developing new antibiotics, a more organized approach on drug discovery can keep us from falling behind. With the advent of high throughput genetic sequencing, a large number of bacterial genome sequences have become available for analysis. Rather than testing every candidate strain for antimicrobial activity and then painstakingly isolating and characterizing the substance causing this activity, it has now become viable to predict the substances a bacterium can produce using computer-based prediction algorithms.
antiSMASH is an Open Source pipeline that combines all published methods for predicting the genetic potential to synthesize antibiotics and other interesting small-molecular substances in bacteria and fungi. By combining existing Open Source tools with re-implementations of published but proprietary prediction methods, antiSMASH manages to provide life scientists with a user-friendly web interface and publication-quality illustrations.
This talk will present to the interested non-biologist how the whole process of going from sequence information to prediction of produced antibiotics is done, requiring as little previous knowledge in mathematics and biology as possible. The author will also talk about the differences in developing Open Source software in an academic environment as compared to traditional OSS development.
recording release: yes license: CC BY-SA
38. Low-hanging Fruit vs. Micro-optimization, Creative Techniques for Loading Web Pages Faster
Trevor Parscal
Optimizing web pages has historically been focused on what's happening on the server, and more recently how resources being sent to the client are compressed and cached. Some have even resorted to clever JavaScript packing maneuvers, extreme image spriting and even micro-optimization of CSS selectors. Unfortunately nearly all of these performance improvements come at the cost of reducing development efficiency, and yield only minor gains. Puling from practical experience implementing and deploying a variety of features for Wikipedia, Trevor and Roan applied creative ideas to fundamental problems and came up with a set of techniques that have proven themselves to significantly improve performance.
recording release: yes license: CC BY-SA
39. This Old Code, or Renovating Dusty Old Open Source For Fun and Profit
Greg Banks
Software is a human construct and like everything we make it
eventually falls into disrepair. Houses get mould, vermin
infestations, and frightening old wiring. Software projects get
equivalents of these, albeit a few decades faster.
This talk is about the experience of doing a major renovation on
a software relic: the Cyrus IMAP server. Fastmail (now Opera
Software Australia) has been using Cyrus commercially to provide
an IMAP interface to an email store for years now, and over the
last year has significantly contributed to a resurgent effort to
modernise the code and rejuvenate the community. The author
works fulltime on this project and has both observed and
contributed.
Topics will include: introducing modern software engineering
practices like Continuous Integration, making testing happen,
attracting a developer community, a practical guide on how to
find and fix outdated coding practices (a.k.a. bugs waiting to
happen), and an introduction to paleoentomology. All
illustrated with real world examples.
If your organisation depends on ancient software in need of
revitalising, or if you're just looking for some spare time Open
Source work to keep your hand in, come to this talk and get some
practical tips and a laugh or two.
recording release: yes license: CC BY-SA
40. Tux in Space: High altitude ballooning
Joel Stanley,Mark Jessop
Tux in (near) space!
This talk will describe how to launch and recover high altitude balloons: logistics, regulations, and most importantly the open source hardware and software used. Arduino hackers, amateur radio operators and anyone who likes seeing photos of earth from 35km will enjoy this talk.
Project Horus is a high altitude balloon project run by amateur radio and electronics enthusiasts for fun and experimentation. We launch payloads into the stratosphere, capturing photographs, recording sensor data and provides a launch platform for high altitude experiments.
Attendees of LCA 2011 will be familiar with the project; the team showed off the video of a plush Tux, and auctioned a print of that toy at the conference dinner.
recording release: yes license: CC BY-SA
41. Erlang in production: "I wish I'd known that when I started"
Bernard Duggan
Erlang is gaining popularity as a language for developing robust, maintainable, concurrent systems for high load environments. Its list of features, including hot code loading, crash isolation and easy concurrency make it look extremely attractive, but any even moderately experienced developer knows there's no silver bullet.
In this talk we discuss our journey from being "Erlang newbies" to pushing a critical system out into M5's high-load production telephony environment. We will focus in particular on the various "lessons learned" from the experience; notably:
* Several great ways to crash the VM and bring down your whole system
Having your entire system in a VM can lead to a false sense of security. Things can go wrong, and when they do it will really hurt. We look at ways to break the VM and how to avoid them.
* Message queues – you really need to look after them
Message queues lie at the heart of Erlang's concurrency system, and for 99% of cases they fall into the "you don't have to care about the internals, they just work" category. We discuss how to avoid your system hitting the 1% of cases where they can cause serious pain.
* Running Erlang as a Unix-style service
One oft-overlooked shortcoming of Erlang is its lack of ability to be easily started up with a service (/etc/init.d) style interface. We take a brief look at erld, our in-house solution to the problem. [Note: We are presently awaiting management approval to release erld as open source – we hope to have this in the next couple of months, well before LCA rolls around].
* Hot code loading – it's not nearly as easy as it said on the brochure
Hot code loading promises little short of 100% uptime. We talk about how trying to get it working panned out in practice and how to maximise your chances of getting it to work in your system.
* Monitor your system like a hawk
Erlang makes it easy for problems to go un-noticed for quite a while before they suddenly cause serious damage. We look at some key areas you can monitor and how to do so.
This talk is meant to be anything but a "why Erlang sucks" talk; we still love Erlang and are pushing forward with moving all our core systems to use it. We now, however, have a much better understanding of its limitations and foibles than when we started out and we hope to help others avoid some of the pitfalls we have encountered.
recording release: yes license: CC BY-SA
42. IPv6 Dynamic Reverse Mapping - the magic, misery and mayhem
Robert Mibus
We all want IPv6, because the sky is falling, and many of us have gone back to the future and are trialling IPv6 already. This is a good thing. But many of us want our NodePonies too - we want those v6 addresses reverse mapped. There's no way your ISP is going to handle all those reverse mappings manually like they did for v4 - there's around 2^72 entries per customer! What do you use to solve your problem - use pymds!
This presentation is a real-world case study of how a successful Australian ISP - Internode - took a simple open-source DNS server and made it part of their production DNS environment. As we fall down the rabbit hole we'll discuss:
* Why people want all IPv6 addresses to have reverse mappings
* Solutions that were ruled out (eg. BIND's "GENERATE" macro)
* Why pymds was picked (ie., rapid prototyping is better than weeks of effort).
* Naming/formatting options we went through for what the reverses should look like
* Options for integrating it into our main DNS zones.
* How can we easily override the automatic generation, without complicating the codebase.
* Pitfalls we expect to see
* Future evolution possibilities, competing projects
[Note: Our modifications to pymds are not yet available publicly, but will be by the conference - promise! We know that's not ideal, but our legion of code ponies are busily cleaning up the source before releasing - internal approval to release has already been granted]
Appropriate for Sysadmins, advanced users, and people playing with IPv6 in their basement.
recording release: yes license: CC BY-SA
43. Scaling OpenStack Development with git, Gerrit and Jenkins
Monty Taylor,James Blair
The OpenStack Project has seen a phenomenal growth in its first year and a half. Part of the reason that we've been able to handle the dramatic influx in developers is by having automation systems that allow us to treat all developers equally from a process perspective, keep our trunk always clean by performing testing pre-merge and still be streamlined enough that the process did not get in the way of development.
James Blair and I will start with a brief (very brief) history of where we started and the techniques we employed at first, including bzr, launchpad and tarmac. We had some wins and learned some excellent lessons from the early setup.
We'll move quickly on to the meat though, which is the design and implementation of the current system, based around a combination of gerrit and jenkins. We'll cover the workflow that we support and require, how we implemented it and what the challenges were.
At the end of the talk, you should come away with a good sense of why we made the choices we made and how they might be applicable to your project, and how to go about implementing them. You should also have been convinced that any process which does not employ pre-merge testing is doomed to failure. :)
recording release: yes license: CC BY-SA
44. Codec 2 - Open Source Speech Coding at 2400 bit/s and Below
David Rowe
Codec2 is an open source low bit rate speech codec designed for communications quality speech at around 2400 bit/s. Applications include low bandwidth HF/VHF digital radio and VOIP trunking. Codec 2 operating at 2000 bit/s can send 32 phone calls using the bandwidth required for one 64 kbit/s uncompressed phone call. It fills a gap in open source, free-as-in-speech voice codecs beneath 5000 bit/s and is released under the GNU Lesser General Public License (LGPL).
Speex and the other open video and audio codecs have proven it’s possible to create a patent free, high quality codec. There is an important social theme behind these technical projects. A free codec helps a large amount of people and promotes development and innovation. A closed codec helps a small number people make money at the expense of stifled business and technical development for the majority.
One important part of Codec 2 is the use of open source and community development techniques. The net result was access to a world wide "brains trust" and network of beta testers that has resulted in swift development of effective DSP algorithms.
This presentation will explain the advanced DSP techniques used in Codec 2 in terms the average Linux user can understand, plus give examples of end user applications.
recording release: yes license: CC BY-SA
45. Operating System Support for the Heterogeneous OMAP4430: A Tale of Two Micros
Etienne Le Sueur
The OMAP4430 is a system-on-chip recently released by Texas Instruments. What makes it interesting, is that not only is it the first dual-core ARM Cortex A9 embedded ARM processor, but TI also put two Cortex M3 micro-controllers on the same chip, sharing the same memory. All four cores support the ARM Thumb-2 instruction set, so conceivably, they could all run SMP Linux!
This talk will outline all of the hurdles that we encountered, hacks we did to get around them, and also present some performance numbers for the system. We also hope that manufacturers can take something from our experience making future asymmetric chips more amenable to running Linux without all the hacks!
recording release: yes license: CC BY-SA
46. POLICY CIRCLES - Freedom to Think Aloud
Dan McGarry
Despite its immensity, the Pacific can feel like a tiny place, fraught
with small-town, identity-driven politics. Isolated and outnumbered by
consultants, advisors and family- or island-based alliances,
decision-makers often acquiesce to ideas they might not share.
Policy Circles aims to change that. We're building a distributable
social networking app that emphasises frank, confidential discussion
which in turn feeds public debate. Users can take on a single,
persistent online persona to present their honest views without
compromising their real life identity.
With curated information streams supplemented by user-submitted content,
we'll supply Pacific decision-makers with appropriate, useful research
and opinion, feeding open, honest discussion, free from undue pressure
from inside and out.
Policy Circles aims to fill that gap by offering a platform that is open to those dealing with policy development in the islands but also holds a public section that publishes profiles about the participating countries, the organizations and the various people involved in policy development.
Policy Circles is built on top of CouchDB and Mojolicious and was bootstrapped in Vanuatu in October 2011. It is driven by the Pacific Institute for Public Policy in Port Vila and we try to reach participation of all pacific islands by 2012. The project is unique in the way it tries to address both, the need for public discussion and the need to protect privacy in these discussions.
recording release: yes license: CC BY-SA
47. Moving Day: Migrating Big Data from A to B
Laura Thomson,Shyam Mani,Justin Dow
In January 2011 we moved the Mozilla crash reporting system from old creaky hardware in San Jose to a new shiny datacenter in Phoenix. This system contains more than 40TB of data in HBase, the Hadoop database, and PostgreSQL. The data collecting app has a requirement for close to 100% uptime. On top of that we have data processing, an API, and a webapp. After many months of work, the migration went seamlessly.
In this session we’ll talk about:
- The checklist manifesto, reprised, and understanding the critical path
- How to move all that data in a reasonable timeframe
- The importance of devops culture in success
- Automating packaging and configuration and how it will save you
- Understanding the difference between old and new platforms: correctness testing, load testing, and smoke testing
Attendees should walk away with an outline of everything they’ll need to do to achieve a successful data center migration.
recording release: yes license: CC BY-SA
48. Opus, the Swiss Army Knife of Audio Codecs
Jean-Marc Valin
Ever thought that there were too many audio codecs, each with its own special niche? So did we, so we made a new one (1). The difference is that Opus scales from very low bit-rate VoIP to high-fidelity, low delay music transmission. It can be used for anything from making phone calls, to remote jam sessions, to archiving your music collection. It's better at speech than Speex, and better at music than Vorbis and MP3.
Opus is the product of a standardization process at the IETF, as a collaboration between the developers of the Xiph.Org CELT codec (2) and Skype SILK codec. This talk will describe the features, as well as a technical overview of the codec. It will also give an overview of the standardization process, including the issues involved in standardizing a free codec at the IETF. At last, listening test results will be presented, along with a demo.
(1) http://xkcd.com/927/
(2) Presented at LCA 2009
recording release: yes license: CC BY-SA
49. Efficient multithreading with Qt
Dario Freddi
Multithreaded appliances are becoming a standard each developer must know at his best. Qt, one of the most popular Open Source frameworks, powering projects such as MeeGo and KDE, is also among one of the most popular libraries providing multi-thread facilities.
Lots of developers are already taking advantage of Qt and his multi-threading facilities, but most of the times, they are not familiar with the least known features, which could greatly improve their work. Are you creating a separate thread for processing a single method? Are you processing a list of elements in a single thread, or just in a separate one? Uploading textures to OpenGL from the main thread? Or worse, disregarding threads at all? This talk is for you.
Besides showing the usage of the most common features, such as QThread, QMutex or QSemaphore, this talk will strongly focus on uncommon features such as QtConcurrent or the new threaded OpenGL support, which are what makes Qt really taking a stand, and can ease your life as a developer while improving performance.
A variety of demos for each topic will be shown, to see how each component can fit into a real-world appliance.
recording release: yes license: CC BY-SA
50. Multi-tenancy, multi-master, Sharding, scaling and analytics with Drizzle
Stewart Smith
The Drizzle database had its first stable GA release at the start of 2011. Since then we have been working on a few features taht directly relate to be able to easily produce applications that can scale.
1) True mulitenancy.
running a database server in a Virtual Machine is an instant way to kill performance. A VM running a database server for each user doesn't scale.
Drizzle now has a concept of CATALOGs, this can give each tenant their own namespace for databases, tables and users.
2) Multi-master
Drizzle has the ability to replicate from multiple masters, enabling you to pull all your shards into one database for analytics and cross-shard queries.
3) Sharding
The Drizzle client library (libdrizzle - which can speak the MySQL protocol to Drizzle and MySQL servers) has new features to help with sharding, being able to connect to a shard, a read-only replica of a shard as well as supporting moving shards between machines and adding more capacity.
recording release: yes license: CC BY-SA
51. where is your data cached and where should it be cached
sarah Novotny
Taking a look at the many layers of caching in the modern webstack can lead to some interesting optimizations. We know that raid card caches, disk caches and CPU caches all exist at the hardware level, but how do they interact with database caching, application code caching and rendered page caching. Where are the redundancies and where is the most optimal location for your services to cache? Are you risking data integrity by using both disk and raid card caching? Is there a similar risk in using both filesystem and database caching? These are hard won lessons if you have to learn them during an outage. they can be avoided with some forethought and benchmarking. I’ll call out the many layers where data is cached and talk about some of the risks and potential performance gains that we’ve found by selectively disabling and adding particular caching layers.
recording release: yes license: CC BY-SA
52. Keynote - Paul Fenwick
(Needs description.)
recording release: yes license: CC BY-SA
53. I Can't Believe This is Butter! A tour of btrfs.
Avi Miller
Btrfs ("Butter FS") is a new copy on write filesystem for Linux aimed at implementing advanced features while focusing on fault tolerance, repair and easy administration. Initially developed by Oracle, Btrfs is licensed under the GPL and open for contribution from anyone.
This tutorial will take users through some of the new features of the btrfs file system, including:
- Creating/mounting the filesystem
- Setting up mirroring/striping
- Adding/removing devices
- Rebalancing data
- Growing/shrinking volumes
- Creating snapshots/subvolumes
- Booting from snapshots
On completion, attendees should be confident about using btrfs in their own environments and taking advantage of some of the new features.
recording release: yes license: CC BY-SA
54. Beginning with the Shell
Peter Chubb
The Bourne shell is universally available on every Linux system, from the least-powerful embedded device, to the largest supercomputer.
In this tutorial, we'll cover the basics of:
The Shell's input: how it reads words, splits them, expands special stuff, etc.
Control flow: case, if, while, for
Common utilities: sed, awk, grep, test, find, xargs, etc
After some introductory material, we'll spend the time working together to build a simple server for fortunes/fables entirely in shell.
Attendees should bring laptops, and be competent with a text editor.
recording release: yes license: CC BY-SA
55. Developing accessible web applications - how hard can it be?
Silvia Pfeiffer,Alice Boxhall
Presentation by Silvia Pfeiffer and Alice Boxhall
This talk will introduce some of the background any developer creating a web application should have when considering accessibility.
There are many simple, but important things that we can do when developing Web applications that will have a massive impact on their accessibility. At the same time, they help us make our Web pages more navigable and usable.
The same techniques which will make a banking application easier to use for a blind user will also benefit someone accessing the site using a mobile phone or tablet PC. An email application with keyboard shortcuts will be more usable for both motor impaired users, and power users who prefer to avoid switching to the mouse. Multimedia applications with captions may be used by people who are deaf or simply situationally unable to play audio.
We will cover:
* The tools and techniques people with visual impairments use to interact with, navigate through and consume web pages on different platforms
* Some key techniques to improve the accessibility of rich, Javascript-heavy web applications, including tools to assist in accessibility testing
* The systems that take a snippet of HTML from the Web page through the browser accessibility APIs to screen readers and braille devices
The latest accessibility-related developments in HTML5, in particular around multimedia elements.
We’ll also take an example of an existing Web application and show some key approaches to make it accessible.
Key technologies covered: ORCA, NVDA, JAWS, VoiceOver, ChromeVox, ChromeShades, WAI-ARIA, accessible forms, captions, audio descriptions, IAccessible2, UIAutomation, ATK/AT-API, NSAccessible, MSAA
Alice is part of the Google Chrome development team focusing on implementing accessibility support in the browser. Silvia is active in the HTML5 Working Groups for audio and video accessibility and is helping YouTube become more accessible.
recording release: yes license: CC BY-SA
56. OGPC - One Geek Per Classroom
Thomas Sprinkmeier
The thrilling adventures of a geek volunteering at his kids' schools to promote geek-dom.
For the last 3 terms I've been running a weekly session in all things geek, from Guido van Robot programming to Lego Mindstorm, circuit-glue to cyber-safety, rocketry to metallurgy.
My motivation is to inspire curiosity, the burning desire to know how things work (and how to make them work better), in short: geek-dom.
My talk is about how to do this in a minimal budget using not much more than remastered Linux DVDs, salt and LEDs.
The title is my challenge to the community: find yourself a classroom and spread the word!
recording release: yes license: CC BY-SA
57. The Web as an Application Development Platform
Shane Stephens,Mike Lawther
This talk will discuss the current state of the World Wide Web as a platform for the development and deployment of applications, providing answers to the following questions:
* How does web application development differ from the development of traditional desktop applications?
* How easy is it to shift from one environment to the other?
* What pieces are missing from the web in this regard?
* What does the web provide that desktop application environments do not?
* is it possible for an application to be deployed in both environments simultaneously?
Attendees will take away:
* an understanding of the fundamental components of the state-of-the-art of the web platform.
* when it makes sense to consider writing a web app instead of a desktop app.
* pointers to the basic technologies required to make rich, desktop-like web applications.
recording release: yes license: CC BY-SA
58. XFS: Recent and Future Adventures in Filesystem Scalability
Dave Chinner
Filesystems are being asked to scale to larger configurations every week. They need to store more files, larger amounts of data and be able to index that data more efficiently than ever. XFS has had a number of pain points for managing large numbers of files and complex metadata structures that limit it's ability to scale out to the capabilities of it's underlying structures.
The first part of this presentation describes the underlying reasons for these limitations and how they have been solved over the past 18 months. Through the use of pretty graphs, shiny pictures and puppies, it will be demonstrated that the work of the past 18 months has resulted in XFS having the most scalable and highest performing metadata subsystem of the current crop of Linux filesystems.
The second part of this presentation will address the challenges we are facing over the next 18 months. These challenges are focused around reliability and robustness and having confidence in a filesystem indexing petabytes of storage.
The problems being solved will be described, along with the solutions being designed, prototyped and implemented that will allow robust deployments of petabyte scale XFS filesystems. Topics being discussed involve improving error detection and handling, use of metadata CRC codes, reverse mappings for efficient lost object recovery and more. More details of some of these topics can be found here:
http://xfs.org/index.php/Reliable_Detection_and_Repair_of_Metadata_Corruption
In the course of the presentation, it will become obvious why ext4 will not catch up to or replace XFS and why btrfs complements rather than competes with XFS. In other words, the presentation will show that XFS is still the filesystem of choice for large scale storage deployments on Linux and will continue to be so for the indefinite future.
The presentation is moderately technical, but most users and administrators of XFS should have no trouble understanding the content. There is, however, sufficient technical depth in the presentation that developers should still find it interesting.
recording release: yes license: CC BY-SA
59. TBA
(Needs description.)
recording release: yes license: CC BY-SA
60. Design your own Printed Circuit Board using FOSS
Scott Finneran
This is a near two hour course on how to design a Printed Circuit Board (PCB) from scratch using only Free and Open Source Software. The student will learn skills such as how to design and layout a board that will work the first time (without bursting into flame). They'll learn how to minimise the manufacturing cost of their new board and how to navigate the maze of manufacturing options.
At the same time, they'll learn how to produce a board that is not just an end product but a platform for themselves and the community to further hack on. The only thing more rewarding than a working printed circuit board is seeing others do things with it that you had never even considered.
recording release: yes license: CC BY-SA
61. Testing CTDB - not necessarily trivial
Martin Schwenke,Ronnie Sahlberg
Presented by Martin Schwenke and Ronnie Sahlberg.
CTDB, the Clustered Trivial Database, is used to support clustered
versions of Samba, NFS, HTTP and other protocols. It handles node
monitoring, network failover and synchronisation of state between
nodes. As such, there are a lot of moving parts and automated testing
is non-trivial.
We present details of some testing techniques being used by CTDB.
Given that CTDB normally runs as root we have tried to find testing
methods that allow a developer to run "make test" as a regular user in
the development tree and do a useful amount of testing. One unit
testing technique involves scripted stub replacements to replace
various system commands, allowing event scripts to be tested in a
sandbox. We were going to build a shared library containing most of
the CTDB code and replace some functions with stubs using LD_PRELOAD,
allowing a useful subset of CTDB's functions to be unit tested.
Instead we decided to build CCAN-style test programs that "just"
#include all the relevant source code - this makes it easy to test
static functions. For system testing, we also discuss our use of
KVM-based virtual clusters and our trivial configuration tool to make
it easier to setup such clusters. The techniques probably aren't
original or mindblowing but should still be of interest to many
developers. :-)
recording release: yes license: CC BY-SA
62. Ubuntu ARM from netbook to Server, the journy from the beginning and where it's going
David Mandala
Bringing up the ARM archive in Ubuntu has had many challenges, lack of hardware, porting code, bringing up SMP, and now almost 3 years later going into the server space.
This presentation will quickly review the challenges to bringing up a binary distribution, talk more extensively about building a custom ARM build cluster, validating and fixing ARM SMP issues (shocking some code simply assumed that there would never be SMP ARM CPU's). What is devicetree and why it's so important to many distributions (and others), not just Ubuntu and how we are using it. Finally we will look at ARM Server, no not the ARM home server, the ARM Enterprise server. Crazy isn't it? Who would have thought a cell phone embedded processor would end up in the high end server space!!
recording release: yes license: CC BY-SA
63. Mentoring: We're Doing It Wrong
Leslie Hawthorn
Dave Neary of the GNOME community recently penned a post [0] on mentoring programs for FOSS communities, and his findings were a bit disheartening. Of all those mentees taken in under various mentoring programs, from Google Summer of Code to the Great Documentation Project, only about 1 in 4 became regular contributors to their mentor's projects. Based on these figures, it appears that mentoring programs are actually quite a poor return on investment and mentors would be better off simply doing the work themselves.
Right? Well, sort of. Well, no, actually.
In this talk, Leslie Hawthorn argues that FOSS communities approach mentoring in a problematic manner. Our current approach focuses on the problem from the lens of software development, such as scaling our mentoring processes and measuring return on investment. Rather than focusing on these as measures of success, Leslie will discuss alternative ways to conceptualize the mentoring process and explore the broader social and cultural implications of mentoring folks in FOSS. She will also discuss alternative models for mentoring the next generation of contributors, including recommendations for implementing these models in your projects.
[0] - http://blogs.gnome.org/bolsh/2011/05/31/effective-mentoring-programs/
recording release: yes license: CC BY-SA
64. Data mining packages to assess update risks.
Kate Stewart
Figuring out the system wide implications of accepting an updated package into a release is currently a bit of an art form. Balancing risk and implications of new features/bug fixes in a specific package, against causing problems for other dependent packages, makes release management challenging. There's quite a difference between a bug fix to a compiler, and one self contained application. From a release perspective though, they are both packages.
In this presentation, we will discuss some techniques and tools for assessing the impact of a specific package change, and some heuristics that might help with making the priority calls when those release deadlines are approaching.
recording release: yes license: CC BY-SA
65. Helping your audience learn
Jacinta Richardson
You have so much you want to teach, how do you structure it so that your training course is both interesting and challenging? How much theory can you squeeze into an hour before your attendees have forgotten where you started? How do you structure your course to account for classes which move slower or faster than average?
Whether you are designing a class to be presented in person, a tutorial to be worked through on-line, a practical book on how to do something, or even extensive user documentation; correct structure makes a huge difference to how memorable the information is.
Burn-out and full brains are a major problem for anyone attending any intensive learning activity. At university, a student attends many classes all on different topics, but only has to learn one to two hours of material per class per day. At a conference, an attendee may sit through many hours of interesting talks, but they have the freedom to choose how much they participate in each. In an intensive training course, a student has to learn, understand and fully absorb 6 hours of material on the same topic, every day for several days in a row. Worse, each of these hours builds on the one before; requiring a level of alertness and participation not usually needed at educational institutions, conferences or in the workplace.
Make your training experience truly stand out by structuring it to help alleviate burn-out. These techniques are essential for a multi-day training course, but will provide you with a solid background for single or even half-day sessions as well.
This talk will describe what Perl Training Australia has learned about course structure for technical courses involving lots of hands-on programming exercises. We will cover answers to the questions above, as well discussing other issues such as cognitive load, learning fatigue and ideal classroom set up.
recording release: yes license: CC BY-SA
66. 1,000,000 Watchpoints, 20 Applications, 1 Driver, 0 Kernel Modifications
Todd Austin
State-of-the-art tools in dynamic program security vulnerability
analysis, such as Valgrind, Sage or Testudo, require the ability to
efficiently monitor program variable accesses. The traditional
approach of using binary instrumentation or mprotect can slow
analyzed programs by orders of magnitude. In this talk, I'll present
a open-source kernel-level solution that implements unlimited
byte-level watchpoints with significantly less slowdown. Our
approach utilizes a run-time loadable kernel module that works with
unmodified recent versions of the Linux kernel. We've shown that our
watchpoint facility serves security vulnerability analysis well, as
well as program debugging, software-based transactional memory, and
other applications. At the heart of our watchpoint technology is
efficient kernel-level shadow paging and judicious use of instruction
interpretation to avoid painfully slow single-step invocations.
We're looking for new applications and new users!
recording release: yes license: CC BY-SA
67. How good are you, really? Improving your technical writing skills.
Lana Brindley
Even the most hardcore open source developers need to write documentation to go with their code. Whether it's design specifications, code comments, a reference manual, or the entire user guide, having good documentation can mean the difference between people using and contributing to your code, or throwing it away as a bad joke.
Lana has been writing open source technical documentation for over five years, and is now inviting you to come along and learn about why open source projects require the best possible documentation. During the first half of the tutorial, we'll go over why documentation is so important for open source projects, what the hallmarks of good writing are, and some examples of both good and bad writing. The second half of the tutorial will be applying the lessons we've learned to your own writing to improve it, and learning how to apply those skills to future writing tasks.
Bring a writing sample of your own for improvement. It can be documentation related to any current project you are working on: design and planning documents, end-user documentation, user interface or help text, or even commented code.
recording release: yes license: CC BY-SA
68. The Samba tour of scripting languages
Andrew Bartlett,Amitay Isaacs
Andrew Bartlett and Amitay Isaacs
This talk will examine the history of the Samba project over the past
20 years, from the perspective of the scripting languages that have
been our accomplices in our crimes against network protocols. From
AWK and perl to JavaScript, M4 and eventually python, the Samba Team's
facade of 'A C project' has always been a bit of a fraud, truly aimed
at ensuring we never used C++.
Of late, the Samba Team has embraced python as the scripting language
of choice, a move that was originally made under false pretenses.
As Samba matures to Samba 4.0, we have seen python as a key way to
engage new contributors and embrace a more flexible programming
paradigm. Samba is now a mature python/C project, with a python based
build system, and python bindings (many auto-generated with perl!) for
many of our internal libraries.
This talk will examine the journey and highlight the challenges and
milestones as we celebrate 20 years of Samba, no longer (and never
really) a pure C project.
recording release: yes license: CC BY-SA
69. The Serval Project presents Rhizome - Self Replicating Software and Data Distribution in Resilient Mesh Networks
Corey Wallis,Jeremy Lakeman
The Serval Project has as a core tenet the concept that Communication is a Human Right. The project is focused on the development of open source software that uses mobile devices to create a resilient mesh network. The network is designed to support communication tools that are infrastructure independent, while integrating with existing infrastructure where possible. This means we can provide communication capabilities where it may not be possible otherwise.
The need to be infrastructure independent means we run into issues such as : how do we install the software at times of need without supporting infrastructure. the solution we have come up with is Rhizome.
Some of you are already going - why Rhizome as a name? Well, besides the fact it is desperately hard to come up with an original recursive name nowadays, we wanted something that would reflect how it works. It is almost viral in nature but we thought calling it Virus was probably not going to make it all that popular. So we went fungal instead.
Rhizome comes from an Ancient Greek word that means ‘mass of roots’. In botanical terms, it is the horizontal stem of a plant that is usually found underground, sending out shoots & roots from nodes. The technology that forms the basis of Rhizome in the Serval Project Software serves a similar purpose for the resilient mesh network. Hence the strange name!
Each mobile device that has the Serval Project mesh software installed on it can, using Rhizome, offer the software wirelessly to another device. This is known as the donor device. A second device, known as the recipient, can connect to the donor device wirelessly and download a copy of the installation package. Multiple devices can copy the software at a time. Once copied the user can follow the directions displayed on the donor device to install and configure the software on the recipient device.
In this way one device becomes two, two devices become four and so on. A relatively small network, even one that starts from a single device, can grow and support a large number of users without the need for a centralised software distribution server or other infrastructure. In future releases the Rhizome technology will support the distribution of other data and files once the device is part of the network.
The resilience of a mesh network is directly proportional to the number of nodes on the network. The more nodes on the network, the more resilient the network becomes. The challenge therefore is to distribute the Serval Project software to new devices in such a way that doesn’t rely on existing infrastructure, or on access to any single node on the network.
This presentation will outline some of the challenges in developing this technology, the lessons learned in developing Android based software as well as explore future directions and capabilities of the technology. Lastly the use case of Rhizome as part of the Serval Field Communications Kit for disaster response will be explored.
recording release: yes license: CC BY-SA
70. Linux as a Boot Loader
Peter Chubb
Once upon a time, you could put a floppy disk with the Linux kernel on it into a PC and it would boot.
Nowadays, you have to use a separate program (LILO, GRUB, U-Boot, Blob, LART, RedBoot, etc., etc.) to load Linux, set up some parameters, and then start it running.
When you have new hardware, this sucks. You have to port not one but two programs that have intimate knowledge of the hardware. And you generally have to port USB stacks, Network drivers, etc., to an environment that's only used at boot time.
Linux has a feature, kexecboot, that allows a running kernel to replace itself with another. This has been used in the Zaurus OpenEmbedded port to use Linux as a second-stage bootloader.
So here's the plan: to use Linux with a small carefully-crafted initial ramdisk as a generic bootloader. The advantages should be obvious: port drivers only once; have a feature-rich pre-boot environment; not have to learn yet another low-level programming environment, and be able to boot anything (not just Linux) that you can get into the machine's memory.
We currently have a plan, and a body to work on this. By December, we should have something reasonable for people to play with.
In this talk, we'll go through the problems involved in getting from bare hardware to a running system, (i.e., what a bootloader does) and the challenges and experience of making a small, custom linux system that can boot not just Linux, but other operating systems such as L4 or Windows, and that works on a wide variety of platforms (ARM, X86, M68k, etc).
recording release: yes license: CC BY-SA
71. Freedom, Out of the Box!
Bdale Garbee
This presentation is a status update on the development of "FreedomBox", which is a project supported by the FreedomBox Foundation founded by Eben Moglen.
FreedomBox is a personal server running a free software operating system and free applications, designed to create and preserve personal privacy by providing a secure platform upon which federated social networks can be constructed.
The software for FreedomBox is being assembled by volunteer programmers around the world who believe in Free Software and Free Society, with Bdale coordinating development of a reference implementation on behalf of the foundation.
recording release: yes license: CC BY-SA
72. Serval Maps - Building Collaborative Infrastructure Independent Maps on Mobile Devices
Romana Challans,Paul Gardner-Stephen
The Serval Project is focused on the development of open source software that uses mobile devices to create a resilient mesh network. The mesh network is designed to provide and support communication services without any reliance on existing telecommunications infrastructure. Such infrastructure can be integrated into the overall network where required.
The lack of existing telecommunications infrastructure may be due to it being damaged during or disaster or emergency event, or where there are no economic incentives for telecommunications companies to put the infrastructure in place. The focus of this presentation is on the use of the Serval Project software to support collaborative mapping activities.
A key component in managing an effective response to a disaster event is communication. Communication needs to be achieved between individual team members, between the teams and the management hierarchy and between organisations responding to the event.
To improve the effectiveness of this communication an understanding of the geographic layout of the disaster event is required. This includes such factors as where individuals and teams are located, where incidents are occurring and where response infrastructure is located. It is this component that is the focus of the Serval Maps project.
The Serval Maps project uses the Serval resilient mesh network to support collaborative infrastructure independent mapping. Users of the application can see on the map their own location, the location of other network peers, and the location of incidents reported by users of the network.
By working collaboratively it is anticipated response personnel can form a more informed understanding of what is happening and therefore formulate a more effective response. Individual team members improve their understanding of not only the events that are occurring around them, they are also able to pinpoint where their team members are. Those coordinating the response gain an overview of the disaster and response from the location of teams and the incidents that they add to the map.
For instance a team member can add an incident to the map indicating that a road is blocked by flood waters. A second team responsible for transporting equipment from one area to another can see the incident on the map and adjust their route accordingly. The command centre may send out additional teams to assist based on the severity of the situation.
This presentation will outline some of the challenges in developing a mapping application that must be infrastructure independent, the lessons learned in developing Android based application. Lastly future directions will be explored including some of the other opportunities of collaborative mapping on mobile devices.
recording release: yes license: CC BY-SA
73. BITS: Running Python in GRUB to test BIOS and ACPI
Josh Triplett
Modern hardware platforms include numerous features to support awesome OS and application functionality. Often, those platform features require careful initialization by BIOS to work correctly, and require carefully written ACPI tables to tell the OS how it can use them. Often, BIOS gets these wrong, and the functionality depending on those platform features suffers.
We created BITS, the BIOS Implementation Test Suite, to allow experts in platform-level functionality to produce BIOS tests for that functionality, and to support BIOS and OS developers who want to validate that functionality. BITS allows domain experts to use and test platform functionality without having to write low-level C code or become an expert in a special-purpose test environment.
BITS uses GNU GRUB2 as a capable pre-OS environment; to that, it adds the full Python interpreter and much of the standard library, as well as the ACPICA interpreter, and various additional Python modules to interact with the hardware platform. You can write high-level Python code to evaluate ACPI methods and access arbitrary hardware, either to produce tests or just to explore.
We'll demo BITS and its functionality, and talk about how we made Python run in a bootloader. We'll show you how to turn your understanding of platform issues into test suites, and how we use BITS to ensure that those issues won't appear in new BIOSes. Along the way, we'll give you an overview of just how much your system still depends on BIOS, and we'll show you how to use BITS to explore your own system's functionality.
recording release: yes license: CC BY-SA
74. Keynote - Karen Sandler
(Needs description.)
recording release: yes license: CC BY-SA
75. Desktop Home Hacks
Allison Randal
A life-long love of hardware and software has grown a series of increasingly curious experiments in the intersection of virtual life with real life, bringing the desktop experience into the home. Inspired by a friend's X10-wired house in the 1990's, this talk is a modern take on the "smart home", employing technologies like Arduino, PandaBoard, WiFi, a handful or so of multi-colored LEDs, 3D depth sensors and Natural Interaction, RFID, DBus, Javascript, text-to-speech, and more. If possible, I'll bring along some demo projects, such as a mood-egg IRC traffic monitor.
recording release: yes license: CC BY-SA
76. High Availability Sprint: from the brink of disaster to the Zen of Pacemaker
Florian Haas
Ever wonder what happens to your most important application if your server goes cactus? Does the mere thought make the hair on your neck stick up like that of a roo facing a road train going 100? And, when you think about server failure, are you as well protected as a skinny dipper on a North Queensland beach during stinger season?
Relax. We're here to help.
In this tutorial, three of the world's best Linux High Availability experts -- including the original author of Pacemaker -- will walk you through setting up a 2-node high availability cluster front to back. From configuring DRBD-based replicated storage, to creating a baseline Pacemaker configuration, to adding a highly available application. All in under two hours.
Attendees should bring Linux laptops with KVM and libvirt installed, and will be provided with pre-installed virtual machine images. Required memory for the two virtual machines is approximately 1GB in total. The virtual machines will run on any reasonably recent hardware, but for best results, bring a laptop with virtualization CPU extensions (Intel VT or AMD SVM) available and enabled in the BIOS. Please do not bring a road train, or a roo, and do wear clothes.
Co-tutors:
Andrew Beekhof (Red Hat, Melbourne, Victoria)
Florian Haas (hastexo, Vienna, Austria)
Tim Serong (SUSE, Hobart, Tasmania)
recording release: yes license: CC BY-SA
77. Torturing OpenSSL
Valeria Bertacco
For any computing system to be secure, both hardware and software have to be trusted. If the hardware layer in a secure system is compromised, not only it is possible to extract secret information about the software, but it is also extremely difficult for the software to detect that an attack is underway.
This talk will detail a complete end-to-end security attack to on a microprocessor system and will demonstrate how hardware vulnerabilities can be exploited to target systems that are software-secure. Specifically, we present a side-channel attack to the RSA signature algorithm by leveraging transient hardware faults at the server. Faults may be induced via voltage-supply variation, temperature variation, injection of single-event faults, etc. When affected by faults, the server produces erroneous RSA signatures, which it returns to the client. Once a sufficient number of erroneously signed messages is collected at the client end, we filter those that can leak private key information and we use them to extract the private key. We developed an algorithm to extract the private RSA key from messages affected by single-bit faults in the multiplication during Fixed Window Exponentiation (FWE), that is, the standard exponentiation algorithm used in OpenSSL during RSA signing. Our algorithm was inspired by a similar solution developed by Boneh, et al. for the Chinese Remainder Theorem (CRT) [D. Boneh, R. DeMillo, and R. Lipton. On the importance of eliminating errors in cryptographic computations. Journal of Cryptology, Dec 2001], an algorithm particularly prone to attacks. Depending of the window size used in the encryption algorithm, it is possible to extract 4-6 bits of the private key from an erroneously signed message.
Our attack is perpetrated using a FPGA platform implementing a SPARC-based microprocessor running unmodified Linux and the OpenSSL authentication library. The server provides 1024-bits RSA authentication to a client we control via Ethernet connection. Faults are injected by inducing variations in the supply voltage on the FPGA platform or by subjecting the server to high temperatures. Our client collects a few thousands signed messages, which we transfer to an 80-machines computing pool to compute the private RSA key in less than 100 hours.
Note that our attack does not require access to the victim system’s internal components, but simply proximity to it. Moreover, it is conceivable that an attack leveraging solely high temperatures can be carried out on machines in a remote poorly-conditioned server room. Finally, the attack does not leave any trail of the attack in the victim machine, and thus it cannot be detected.
recording release: yes license: CC BY-SA
78. Making video streaming interactive, heckling user groups from the clouds!
Tim Ansell
For the last 6 months Tim Ansell has been trying to figure out a live streaming solution for the local user groups he help out with (including Sydney Linux User Group, Sydney Python User Group and Functional Programming Group).
The solution had to be turn key and support the latest HTML5 streaming as well as fall back to flash for legacy users. Users participating at home should be part of the action, including the ability to ask questions and heckle!
The system has been now used for 3 months and successfully streaming the events to numerous users. Tim will describe the set up that he settled on which uses an open source stack and how to reproduce it for your own user group.
This talk will cover the following technologies;
* Flumotion and gstreamer, the backbone of the streaming system.
* Flowplayer and jwplayer, the front end UI provided to users.
* A little bit of AppEngine to serve the front end UI.
* Set up scripts for deploying to your favorite cloud hosting provider such as Amazon AWS.
* Some custom code to integrate IRC, twitter and the player into one UI.
recording release: yes license: CC BY-SA
79. World domination and party tricks with the Android Open ADK
Jonathan Oxer
Linux hasn't won the desktop war (yet!) but it has taken over the world one pocket at a time. Android-based mobile devices now outnumber all other Linux machines on the planet by a huge number.
This is an enormous opportunity for FOSS developers. We have the capability of developing and deploying on all those devices with Open tools and no gatekeepers. Now with the release of the Android Open Accessory Development Kit we have a bridge to connect them to other physical devices and peripherals around us. The software toolchain is open, the physical interface is just USB, and even the hardware reference designs for example peripherals are available under Open Hardware licenses.
This talk will explain how to get started with the necessary hardware platform and software toolchain to design your own peripherals that can plug straight into your Android phone or tablet.
It will also demonstrate some of the possibilities connecting Android-based phones and tablets to external devices such as robotics, telepresence, automotive projects, and home automation.
recording release: yes license: CC BY-SA
80. Cheap tabloid tricks: The truth about Linux, open source and the media
Angus Kidman
Linux and open source technology should be a good news story for everyone. However, the way these topics are presented in the media often leaves enthusiasts unhappy. There is a widespread belief that open source alternatives are neglected in favour of commercial products; that coverage often distorts the facts and exaggerates conflict rather than offering insight; and that the right-wing bias of much Australian media dooms the open source community to being dismissed as a kook minority led by some cult figure from Scandinavia whose name no-one can pronounce. The reality is more complex, as reality usually is.
Drawing on my own personal experience over nearly two decades covering the technology scene in Australia and internationally, I want to examine some key issues in this area:
* Is there an evident bias against covering open source by technology media and general media?
* Do editors avoid open source topics because of commercial pressure from advertisers?
* Why did I once ask Linus Torvalds if he was available as a hired guest for parties?
* How does the decentralised and collaborative nature of open source make life more difficult for journalists?
* How has Apple displaced Linux as a go-to topic when online publications are keen for traffic?
* Does it matter if the Daily Telegraph gets everything about Linux wrong when we have the entire Internet at our disposal?
* What can open source developers and enthusiasts do to ensure that their projects get covered accurately and fairly by the media?
recording release: yes license: CC BY-SA
81. mitmproxy - use and abuse of a hackable SSL-capable man-in-the-middle proxy
Jim Cheetham
mitmproxy is great new tool for investigating the conversations your web browsers & devices carry out. Not only will it hack open HTTPS connections with ease, from the console tool you can halt, inspect, modify and replay requests in either direction.
Many websites take additional steps to obscure or encrypt the data they are passing over HTTPS -- with mitmproxy's straightforward python API you can run custom functions over the packet contents to reveal the secrets being leaked, and to rewrite their contents.
We will look at a few examples of how mitmproxy has been used by its creator Aldo Cortesi in live investigations, showing how your personal data such as the Apple iOS unique device identifier (UDID) has been mishandled by various upstream application vendors, making it possible to de-anonymise your real-world identity in many cases.
recording release: yes license: CC BY-SA
82. Android Accessories Made Easy With Arduino
Philip Lindsay
http://antibioticswithoutadoctorsprescription.top/