The Haskell programming language has grown rapidly in popularity over the last several years. In this tour, we'll introduce you to some of its most seductive aspects: expressiveness, elegance, and versatility. Just as vital is the community around the language: we'll show you the mix of people and ideas that make Haskell uniquely appealing.
The average individual is given little scope for failure, at least not the type that really matters. However in recent times we have developed a profession who have the opportunity to fail like never before. The few, the proud, the Software Developers.
Join us for a voyage of discovery, as we travel back through history to some of the most monumental failures the world has ever seen.
In this tutorial, we introduce actors and show how they can be used to implement systems that can utilize multiple cores for performance, distribute across multiple machines for scale, and survive various kinds of failures for resiliency. We follow a demonstration application and implement it in Erlang and Dramatis, an actor library for dynamic languages.
Interested in doing your own startup company, or starting a new
project within your existing company? This 3-hour tutorial walks you
through a compact version of the Startup Weekend experience, which has
seen multiple companies go from nothing to a running prototype in 54 hours.
Apprenticeship programs offer opportunities to learn and innovate in
the context of real-world projects under the supervision of
experienced journeymen. We will review the aspects of Open Source
Software (OSS) that helped jump-start Obtiva's apprenticeship program,
such as market demand, active communities, low cost, hackable source,
and opportunities for public contribution.
An introduction to the concurrency features of Erlang,
showing how to build reliable, scalable applications without getting
lost in the plumbing.
Development methodologies are morphing from "pure" Agile to
incorporate best practices from Lean and the open source world.
Parrot is the virtual machine intended to run Perl 6 and other dynamic languages efficiently and effectively. Parrot tools used to build "Rakudo" (Perl 6 on Parrot) are powerful and general enough to host other languages. This talk explains how they work and demonstrates how to start running your own language on Parrot--and to use other code targeting Parrot without writing it yourself.
bigdata is a scale-out database and computing platform designed for commodity hardware. The presentation will cover scale-out indices, map/reduce computing, and how we have applied these techniques to develop a high-performance scale-out semantic web database.
KnowledgeTreeLive is an on-demand service provided by KnowledgeTree. A key constraint of the system is to provide a SaaS solution without incurring the overhead of establishing a traditional data center. This is where Amazon's Elastic Compute Cloud, in combination with their Simple Storage Service, provides an alternative.
Code reviews are a well-known best practice in all SW development, and particularly crucial for open source SW. Systematic and optimally conducted reviews enhance your code quality and offer great ROI, but you need to pay attention to both the human/community and technical aspects of such pratice. Get some key "do"s and "don't"s about performing code reviews!
Odds are you get an F in using the POSIX file IO APIs. Even better, you probably don't know it. Oh, and operating systems can hate you. As a user, you'll leave crying. As a developer, you'll leave knowing you have bugs to fix.
Eclipse is an open source integrated development environment (IDE) that has available extensions for a variety of languages and tools. We discuss the Parallel Tools Platform (PTP) which adds support for parallel programming development and analysis (including MPI and OpenMP) and runtime and debug support for a variety of target architectures including both local and remote control of the target.
Normal Accident Theory (NAT) describes the potential for failure in many diverse systems, from nuclear reactors to marine shipping. It also predicts many classical techniques that good programmers have come to rely on. A NAT-based approach provides a unifying view that helps you avoid the hidden dangers of otherwise useful constructs, and improves the reliability of the software you build.
My system is slow! My app is slow! What in tarnation is going on? Using powerful tools we will finally answer the question: what is my system doing?
The Hadoop Distributed Filesystem (HDFS) provides scalable, fault-tolerant, and high performance data storage and retrieval for Internet scale data applications. This talk presents an overview of HDFS and then dives under the hood to look at its implementation, performance characteristics, and planned enhancements.
Since it began in March 2006 as a result of a contract with the Department of Homeland Security, the Coverity scan site has identified and helped open source developers eliminate defects in projects like PHP, Linux Kernel, and Mozilla. This tutorial will provide information needed to use Coverity’s open source static analysis scan project.
Many open source projects work at a low-level in C to take advantage of the power and speed of working close to the machine. Whether it's Perl, Postgres, or Linux, C is what makes these and other projects run. If you're experience in a high-level language like Perl, Ruby, or Java, you'll need to learn about the intricacies of C.
mod_parrot embeds the Parrot VM in the Apache web server, giving Parrot and its languages access to the Apache API without the overhead of writing a module for each language. This talk will explore the goals of mod_parrot, its architecture, why it is important at this point in time, and the ease with which new languages can be integrated.
Perl 5.10 is the first major release of Perl in five years, and brings dozens of new features and significant improvements. This talk provides a guided tour of features that can benefit everyday users of Perl, not just the frightening C programmers who make Perl itself go.
This tutorial covers the basic, sequential, and concurrent aspects of the Erlang programming language. You will learn the basics of how to read, write, and structure Erlang programs. The target audience are software developers and engineers with an interest in server-side applications and massively concurrent systems.
Launchpad is often referred to as Ubuntu's "secret sauce." Learn how it can add flavor to your development efforts.
Test-driven development is becoming an accepted development methodology in the programming world. It is not a new topic; however, it is still a developing art and a challenging practice that requires not only an expertise at programming, but initially also requires a discipline that takes even seasoned programmers to task.
Processing terabytes of data can be daunting but with open source software in form of Hadoop and on-demand computing power via Amazon's EC2 service—it becomes pure fun.
Shell scripts automate routine and repetitive tasks in Linux/Unix. Adding craftsmanship and style to your scripts will improve their usefulness and reliability.
Much of the practical reason for "best coding practices" is not to make code "pretty" but to allow code to be skimmed. We rarely read and understand an entire project, instead we read just enough to get something done. It allows one to work very efficiently on unfamiliar code.
You will learn the art of skimming and the role of best practices in writing skimmable code.
Want a snapshot of the state of open source worldwide? Fourteen open source luminaries will very briefly update you on some of their projects. Fast, fun, furious and full of information, the State of Lightning Talks have been a hit at OSCON since 2005.
In past years we've talked about Subversion "best practices." In this talk we'll discuss the worst blunders to avoid when using Subversion in your open source project: bad layouts, ridiculous hook scripts, file locking, too much access control, confused merges, versioning derived objects, mixing locales, and other painful mistakes.
Over the past ten years nothing has impacted business more than community. Whether through the openness of software development spurred by Linux or the dismantling of media empires through blogging, the rise of communities has been the driving force in how we work and live today.
For open source developers, what has to happen to maintain and grow the communities they've built?