Personal schedule for Dan Bernier
Download or
subscribe to Dan Bernier's
schedule.
This is an introductory course which teaches the basics of web application development using the Ruby language with the most recent release of the Ruby on Rails framework. If you've never tried Rails or you've only "played with it" at home, then this tutorial is for you.
Read more.
As the Rails community has matured several conventions have emerged, in the form of best practices. In this 5 part lab, we will walk through the most common of these practices and get some hands on experience refactoring Rails.
Read more.
Matthew McCullough, trainer for GitHub.com, and Tim Berglund, co-presenter of the O'Reilly Git Master Class, will guide you through the fundamentals of Git in three hours of lecture, discussion, and hands-on exercises.
Read more.
We've all heard about HTML5 & CSS3, but do we know how to effectively apply all of the new properties and features to our websites? In this tutorial, practical application is the name of the game. We'll cut through the theory and show you how to design and build functional websites using the newest HTML5 tags and CSS3 properties.
Read more.
The Go programming language was designed to make programming productive and efficient. Go is a concurrent language that compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. This talk is an introduction to Go that focuses on how the design of the language helps it achieves those goals.
Read more.
8 years ago, I moved from my tuned Linux desktop to OS X. This closed-source platform has attracted many developers with its BSD underpinnings and excellent user interface. Can a developer pampered by sleek design ever go back? I'm going to show you how to break the closed-source habit and run a true open-source environment without sacrificing usability.
Read more.
Hot Potato is an open source real-time processing framework written in Ruby. Originally designed to process the Twitter firehose at 3,000+ tweets per second, it has been extended to support any type of streaming data as input or output to the framework.
Read more.
Slate is a self-hosted dynamic language based on prototypes and
multi-dispatch. It melds the Smalltalk and Lisp traditions, while
attempting to incorporate ideas and idioms from a variety of sources.
Slate is being re-invented using Atomo as an incubator along with
direction from Newspeak and functional programming.
Read more.
There's a lot of information around about using different patterns in your JavaScript. This is only part of what you need to know to build a large-scale web application. Learn how to keep your JavaScript objects loosely coupled and build an architecture that can grow and change as your application does.
Read more.
Vagrant is a tool for building and distributing virtualized development environments. It uses VirtualBox combined with configuration management to deliver fast and portable development and testing environments. I'll demonstrate how to use Vagrant and Puppet to easily build environments that you can deploy (and re-deploy) to developers and testers.
Read more.
Ruby on Rails is a great framework for quickly building applications, but what happens when you are wildly successful and need to scale WAY up? This talk is a case study in the evolution of our Rails application from a monolithic "does everything" systems running on a hosted server to a service-oriented system running in the cloud.
Read more.
Web forms have been the bane of web developers existence for years. HTML5 Web Forms make forms (almost) fun. In this workshop, we'll cover the new HTML5 forms types and attributes, and show how web form building, UI and validation can actually be easy.
Read more.
Smart developers have been using Ruby on Rails to build web applications for over 5 years. Cutting-edge projects have aged into legacy apps. Rails 3 and Ruby 1.9 offer new features that are guaranteed to take the squeak out of that old wheel and grease the tracks of new development. We're going to walk through upgrading real projects and work together to solve issues the audience has found.
Read more.
The most important data is yours, and it's spread everywhere on your devices and on the services you use. Learn about the Locker Project and how to get your own locker up and running with all of your personal data. Then explore the many things you can do with it all in one place, including personal analytics, data-mining, trending, and a rich set of sharing and privacy tools.
Read more.
Open source folks are naturally lazy. Anything mundane task they can automate, they will. So what does an open source developer do when faced with planning, planting, and tediously watering a garden? Automate!
Read more.
From a quick automation script to a more involved command-line based system, it's hard to make a polished and maintainable command line application. With Ruby, and a handful of open-source libraries, it's actually pretty easy.
Read more.
Think Zork is dead? Wrong! Come see what 30 years of evolution has done to the fascinating intersection of creative writing and programming. Witness the amazing open source tools that have made it possible: virtual machines, domain-specific programming languages, and IDEs. Learn about the intense indie community that develops these works, and how you can get involved as either a player or writer.
Read more.
Seph is a new experimental language. It is based on pure differential prototype based object orientation, with immutability and polymorphic dispatch built in deep. Seph uses the new features in Java 7 to full effect, by compiling highly dynamic code to use method handles and invoke dynamic. It's got light weight threads and the mature concurrency primitives from Clojure.
Read more.
In "topics we're looking for", the call for papers has the phrase "open, open, open". And the word "open" appears eleven times. The word "source" appears thrice. This talk is about "source, source, source." It is the intelligibility, the accessibility, the understandability of the *source* code and data which creates community and collaboration. Presenting source patterns and anti-patterns.
Read more.
Techniques and tools to used to profile software applications. Examples and usage of OProfile, Google Profiler, Valgrind's Callgrind, and strace, geared towards profiling C/C++ applications. People should come away with the knowledge of what tools are available and how to diagnose performance issues in software.
Read more.
The Sunlight Foundation and its partner organizations make a variety of data on the influence of money in politics and the operation of government easily available to application developers. This talk will give a broad overview of the data sets and APIs available and the applications that have been built with them, including stand alone sites, browser extensions and mobile apps.
Read more.
Object-functional languages have a number of desirable properties and have proven very useful in practice. Unfortunately, the merger brings with it a raft of complexities, being the root of nearly all of Scala's infamous complexity. This talk will present a new framework for resolving these issue, based around the notion of statically-typed functional object prototypes.
Read more.
We will demonstrate writing a native Android app with the open source framework Rhodes, which includes the first Android Ruby implementation, written in the NDK to bypass Java entirely. We also show writing an app with Ruboto, which runs on the Android Java stack. We will also discuss how the Embedded Ruby project may affect future Android Ruby development with both of these options.
Read more.
JavaScript is the language everyone loves to hate. From its
pathological global-fetish to its weird take on object-orientation (prototypes? really?), it's hard to believe that JavaScript has not
only survived for the past 15 years, but continues to thrive.
Read more.
One of the key properties of RESTful Web applications is the ability to evolve over time. Too many Web APIs don’t evolve; they just get old, and useless; they rot. Why? Because they are little more than URI-based RPC calls returning serialized objects. Instead, Web APIs should rely on well-crafted media-type messages driven by links; they should be more RESTful.
Read more.
Perl
Location: Portland 256
Code execution speed affects development time, hardware, scalability, and the bottom line less than you would think and never where you expect it. Are your optimizations overpriced?
Read more.
Both location based technology and Ruby have become extremely popular in recent years. There are many libraries and tools that are available for Rubyists to geospatially enable their applications. In this workshop you will learn both what these tools are and how to use them.
Read more.
Gamification is a critical trend, affecting industries from finance to fashion and beyond. But how does gamification affect open source, software development and community? How can we leverage the techniques of engagement to build better software and connect with end users. And, how do we make our lives more fun in the process?
Read more.
Perl
Location: Portland 256
Once again, Perl's own Dr. Evil emerges from his secret lair on a remote Pacific island to beam a devastating onslaught of dangerously useful software ideas directly into your unsuspecting frontal lobes.
Read more.
What does it take to build a hacker culture? This talk will cover activities in creating a hacker society in Uruguay. The small south american country has engaged in the massive task of raising a generation of hackers. Every school child gets an XO laptop and every landline comes with DSL. While most of the world is trying to replicate silicon valley, Uruguay's building something quite different.
Read more.
Plaid is a new programming language with native support for typestate and permissions. Typestate captures the changing states an object can be in, allowing the object's interface, representation, and behavior to change. A gradual (optional) type system tracks the typestate of objects, using permissions like "unique" to reason in the presence of aliasing. The PL's power is demonstrated by examples.
Read more.
How one person’s desire to know if his vitamins really worked became a set of tools for doing open, crowd-sourced health experiments. By combining data and analysis from engaged individuals, we can answer big questions traditionally asked exclusively by pharma companies and research institutions. And for less than 1/1000 of the cost.
Read more.
Imagine a language with no objects, functions, or variables. Wheeler intersects relational, declarative, reactive, and aspect-oriented programming approaches to create a surprisingly simple language that you can learn in about 10 minutes. (Assuming you are willing to bend your brain into the proper pretzel shape.)
Read more.
Languages with first class functions are different. Callbacks and `each' are just the start - the fun really begins when you start learning from the Lisp guys and writing code that writes code that writes code. Think differently about your Javascript and do more with less code
Read more.
Magpie is a brand new language that borrows the shiniest bits from other languages. From Lisp, it takes multimethods and extensible syntax. From ML, it takes pattern-matching and records. From Ruby it takes classes, and a passion for clarity and readability.
Read more.
FAUST (Functional AUdio STreams) is a programming language for real-time signal processing and synthesis that targets high-performance DSP applications and audio plugins. The talk will be the opportunity to discover Faust and its applications in the musical and audio domains.
Read more.
Designing interfaces so that other code can interact with ours (whether our code is a library, framework, application, website...) is a very common and clearly crucial activity, but fraught with dangers — stuff we all keep doing wrong time after time. This talks shows some common cases of API design errors encountered in the wild, with tips on how to avoid them when you design your next API.
Read more.
We present a new statically typed JVM-targeted programming language developed by JetBrains and intended for industrial use.
Read more.
This presentation relates my experience teaching Python as a tool for creative writing---or, more specifically, as a tool for creatively reading, transforming, and generating poetic text. Code examples link Python with contemporary practices in creative writing (cut-ups, flarf, generative poetics). Discussion will include hints, tips, and obstacles in using Python in a pedagogical environment.
Read more.
SVG as a vector graphics format has been around for many years, but its usefulness has recently blossomed. Web support extending to being native in all major browsers, inclusion in HTML5, iOS device and now Android support are just the beginning of where SVG can be applied. This talk will give an overview of SVG and then present many of the different areas where one might use it today.
Read more.
Open source projects have long skimped on presentation & packaging (basically, they are the equivalent of "she has a great personality!"). Let's change that. Open source can be the hot girl too. Learn how developers can create opportunities for designers to contribute to projects. Great design is the best way to draw an audience to your project & build contributor confidence.
Read more.
Review worst practices for releasing software: how to destroy scope in a single meeting; "death sprints" (more agile than death marches); how to avoid testing; how to make your software impossible to configure; and finally, when pushing out a webapp release, how to make your ops team hate you. This tongue in cheek session will review things learned painfully and late at night.
Read more.
Developers deploy production code more than 20 times per day at Etsy. Small rapid changes allow us to move fast, detect failure, and respond quickly. This works for a number of cultural and technical reasons. Learn about the tool we built, Deployinator, to automate this processand how we accomplish this effectively.
Read more.
Most online education has failed to work, for the simple reason that it was designed by engineers instead of educators. The O'Reilly School of Technology has been growing for three years and has deployed multiple certificate series in technology fields. Come and hear from its founder (and a content author who will be familiar to OSCON audiences) the principles that make OST so successful.
Read more.
Whether you’re just rolling out a new project, or you’re maintaining ten years and three major versions of legacy code, good documentation is vital for your users. They won't bother downloading your software if they can’t work out what it does, and if all you have is the bare-bones documentation to help them to get up and running, you’ll end up spending more time than you want to on support.
Read more.
Git makes so much more sense when you understand how it really works. It only has two tricks, and they're really simple, but explanations go on about Directed Acyclic Graphs and Octopus Merges and a bunch of CS jargon nobody understands. Feh. You can illustrate and understand git using just children's toys!
Read more.
Discover a variety of creative techniques for dramatically improving page load speed which focus on low-hanging fruit rather than micro-optimization, and what impact they had when applied to the world's fifth largest website, Wikipedia. Trevor and Roan will explore optimization beyond server load, minification and gzip, and offer up new open source libraries to help others do the same.
Read more.
With the news that IPv4 address allocation is in its final stages, IPv6 is getting a great amount of attention and questions are being asked about whether software works with IPv6. Why should you as an open source developer care? What do you need to think about in your applications? How can you make sure your apps work with IPv6?
Read more.
Sometimes there is a mix between performance and scalability, but they are different dimensions. Changing your code from blocking to non-blocking yields scalability at the cost of a complexity. In this talk I show how Python, Ruby and JS do that, the differences between their async toolkits and some basic building blocks for web and high load applications.
Read more.