Videos provided by Windy City Rails via ChicagoRuby Vimeo Channel
Rubinius X is an experiment to bring modern programming language design to Ruby. It is generally well-known that Ruby is a combination of ideas from Smalltalk, Lisp, and Perl. Rubinius X aims to purge the Perl, soup up the Smalltalk, and leverage functional concepts seen in modern Lisps like Clojure.
In this talk, Brian will discuss the motivation for creating Rubinius X and show how its features support writing modern applications in a world where connected devices and multi-core CPUs are everywhere.
Brian is the maintainer of Rubinius and creator of RubySpec and Rubinius X. He’s driven to make Ruby the friendliest programming language in the universe.
A couple of years ago, a client asked Evan to build a recommendation engine for them. Coming into this with a minimal knowledge of statistical math, Evan ultimately built a relatively simple recommendation engine in Ruby. The design made heavy use of Redis Sets, Lists, and Hashes in order to greatly reduce the number of SQL queries to provide recommendations.
This talk will be a case study discussing the object-oriented considerations in designing a scalable service, how Redis was a good fit for the project, and some of the painful lessons that Evan learned along the way so that you don’t have to repeat them.
When not polishing his bio for conferences, Evan slings code from the comfort of his apartment near Washington, D.C., attends entirely too many meetups, and organizes, if it can be called organized, the annual Ruby DCamp unconference that has never, in fact, been run within the borders of Washington, D.C.
Devise is the go-to authentication gem for Rails apps and you probably worked with it once or twice, but do you know how Devise works inside your app? We are going to talk about how Devise is designed to provide a full stack authentication solution, who are the main building blocks of the library and how we can extend their behaviour to our will in our applications.
Lucas writes code at Plataformatec, a consultancy firm based in Brazil. He usually helps to maintain the company projects like Devise and SimpleForm while working on some gems of his own. When the subject is not about Ruby, he dives into the world of interface design, front end development and casual writing.
Sometimes a little time spent upfront on design is worth it. Just because we’re agile doesn’t mean no design upfront. Unfortunately some people have taken “working software over comprehensive documentation” to mean no documentation and no design. In this talk, Mark will present a method for evolving an object oriented design through tests, with a strong separation between collaborator classes and process classes. The emphasis will be on quickly driving toward a tested design before committing to functioning process code to save time commonly spent in the refactoring of operational code and test code. You’ll learn how to write better designed and tested code faster with less refactoring churn.
Mark Menard is the founder of Enable Labs, a boutique consulting firm, in Troy, NY, specializing in product development, business productivity and problem solving. Mark has spoken at several Ruby conferences including LA Ruby Conf, Ruby on Ales, Wicked Good Ruby. Mark also evangelizes Ruby at such events as BarCamps and CodeCamps. Mark has also spoken on Software Patents at TEDxAlbany, and several academic settings. Mark frequently presents on Ruby issues at the TechValley Ruby Brigade; and does training sessions covering Ruby, Rails, refactoring, test/behavior driven development, and other software development topics.
Mark is the happy husband to Sylva and dad of Ezra and Avi.
Software is intellectual property. In this presentation, Daliah Saper will cover:
Key provisions in a software licensing agreement
The different protections afforded by trademark and copyright law
Open source licensing benefits and pitfalls
Issues related to outsourcing to 1099 contractors
Daliah Saper has handled many high profile cases (including one she argued before the Illinois Supreme Court) and is regularly interviewed on national tv, radio, and in several print publications including Fox News, CNBC, ABC News, and The New York Times. She has served as an Adjunct Professor at the University of Illinois College of Law teaching an Internet Law course and for the past 4 years, Loyola University Chicago School of Law teaching an Entertainment law course. As a litigator she handles cases involving trademark and copyright infringement, trade secret misappropriation, online defamation, and commercial disputes. As a transactional lawyer she helps clients choose the right business entity, drafts bylaws and operating agreements, negotiates contracts and software licenses, and provides comprehensive trademark and copyright counseling.
Yan will offer hands on examples of extracting Rails controller & model logic into a domain layer, and talk through several types of domain object patterns such as Value Objects, Policy Objects, and Use Case classes to show how large Rails projects can organize code in small single responsibility modules.
Yan Pritzker is CTO at Reverb.com, a marketplace for musicians, and previously founder of Planypus, a collaborative event planning platform.
It has been said that Go is a language created by Google, at Google, for Google-sized problems. Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. Presenters Ken Walters and Ted Price will share a quick overview with the audience.
Ken Walters has more than 18 years of experience designing, developing and managing web and interactive experiences. He is a technologist, a strategist, and a craftsman who is passionate about application architecture and user experience. Ken’s work has been featured in Communication Arts, Graphic Design:USA, Graphis and Forbes.com’s Best of the Web.
What happens when you put a major American city on Rails? Find out in this talk from a 2014 Code for America Fellow working in Atlanta. Find out in this talk from a 2014 Code for America Fellow working in Atlanta.
How is writing a Rails app for government different? When governments are still huge believers in .NET, Oracle, and all other forms of bloat as a proxy for stability, where does Rails fit in? Does it fit at all? In this session, the presenter will talk about putting together Rails apps in the City of Atlanta as a Code for America Fellow and beginning the process of turning the apps over to the city. Topics include:
Preparing city staff for taking over a Rails app when they’re .NET-focused and short-staffed
Running lean and iterating faster than the speed of a municipal budget cycle
Increasing transparency by liberating app data with a Rails-based API
Integrating with existing software running in city hall to break down silos and save taxpayer dollars
Tiffani pursues better living through software. She founded Pencil You In, enabling businesses as far away as Australia to operate more efficiently by accepting appointments online. She is also a 2014 Code for America Fellow working with the City of Atlanta, GA. Tiffani is a front and back-end developer working primarily with Ruby on Rails and iOS. Her latest work includes determining how to take full advantage of a Hadoop cluster. Tiffani holds a BS in Computer Science from Howard University. She’s a chronic gum-chewer.
In this session, we’ll take a look at how Rails could be improved by concepts used by our functional programming cousins in Scala with the Play framework. We’ll talk about concurrency in Rails, and why having a concurrent server isn’t enough. We’ll look at how tightly coupled ActiveRecord is to our form builder, and why that can lead to unexpected results in your code. While we look at the solutions Play has provided, we’ll also look at what the repercussions of bringing these ideas would be.
Sean is a fanatic about Vim, Rails, and TDD. After spending far too long with PHP and ASP.NET, he’s never looked back since joining the Ruby community. When he’s not writing code, he enjoys fedoras, fine cigars, and blogging about the games industry.
In 2014 and beyond, what patterns are emerging for your deployment solutions? How to orchestrate your cloud infrastructure? To use a cloud’s orchestrator service, such as AWS Cloud Formation or OpenStack Heat? Or something that will work with multiple infrastructures - public and private - such as BOSH?
How will applications and services be configured, packaged and run across your cluster of servers? To use upstream packages or bake your own packaging locally? Perhaps combine both with the packaging services of Docker or BOSH? Do you still need Chef or Puppet? Do applications and services need explicit configuration or can they dynamically discover each other with Etcd or Zookeeper?
Should your development and support teams be thinking about servers and packages anyway? What about the new era of open source PaaS options such as Cloud Foundry? Perhaps build something on Docker?
There is a New Era of Orchestration and in this talk we’ll overview all the new solutions that are available.
Constant Contact is a 10-year-old, publicly-traded SAAS company that provides marketing solutions for 500k+ small businesses. Over the last four years the company has transformed itself from a monolithic architecture to an SOA, from a six month space-shuttle deploy to continuous deployment, and an all-J2EE application to a number of Rails-based and Java services.
When they began to look at performance, they found that their most frequent API query was running at an average of 44 seconds. A far cry from its SLA of 500ms, which they now exceed!
Dinshaw will share their journey through through AR circumvention, compound-id db partitioning, Torquebox deployment, caching services, and much more. This session will also highlight successes and lessons learned as Constant Contact transitioned from a monolithic architecture and SDLC to continuous delivery of a large number of services.
Dinshaw Gobhai has been writing Ruby for close to 10 years and currently works as a programmer at Constant Contact. His first computer was an iMac. He began learning to code at his bar tending job at Scores NYC on slow nights in 1999. He is passionate about testing, automation, and song writing. His best Rubik’s Cube time is 1:59 and enjoys doing a little yoga between pair-programming sessions.
Chris Powers has been developing Web applications for the last ten years. He strongly believes in the power technology has to bring people together and enjoys developing platforms that empower the user. Currently Chris is working as a software engineering manager at Groupon and lives in the northern Chicago suburbs with his wife and daughter. In his free time he enjoys drumming, playing tabletop games and homebrewing.
You have a killer web application, hits are through the roof and your database is starting to get overloaded. Do I need to throw more hardware at the database? Should I shard it? Should I use replication? How do I access multiple databases via one Rails application? Join us as we talk about strategies for scaling your database. See how easy it is to use multiple databases with db-charmer and octopus when it is time to move beyond that one ubiquitous database instance in your app.
Lance has been a computer nut ever since his dad bought him a VIC 20 in the 1980s. After nearly a decade as a Java developer for companies like Kodak, CNN, and GE, he decided to end his addiction to heavy inheritance, static typing, and coding without tests. These days, he practices clean Ruby living with lots of well-tested code, class composition, and fun dynamic languages as a developer/startup CTO for hire with extensive experience in data science and committer on open source projects such as the Passbook-iOS, Asari and Active Asari Gems. He is known to practice interspecies pair (purr) programming with his orange tabby, Allie, and when he’s not writing code, you will find him diving with sharks, trekking through Chernobyl, sampling wine, cheering on the Springboks or perfecting his biltong recipe.
What’s better than Test-Driven Development? Even more test driven development - this time with deeper tests. Unit tests are useful, but a few examples don’t prove our Ruby code correct. Can we approach mathematical proof without ballooning the lines of test code we maintain? Jessica knows how! Let’s cover every valid scenario with exactly one test! This is the goal of Generative Testing.
It means carefully defining every possible input, then letting the framework run hundreds of scenarios through one test. It means deciding what the code should do in every possible situation. This kind of test is much harder to write, and that’s the best reason to do it. Thinking before coding is the real purpose of TDD, and generative testing drives us to think harder. Generative testing won’t just sharpen your test and your code: it can sharpen your mind. After this session, you’ll consider a new way of focusing your thoughts and driving your code with tests.
Jessica Kerr writes Scala for a living, and lives to share what she has learned. Thirteen years of Enterprise development led to a love of git, functional style, and the cognitive science of programming. Besides speaking, her victory conditions include raising two subversive daughters, drinking good beer, and meeting people who help her see when she is wrong.
Lightning talks are short, five-minute talks given by your fellow attendees!
Functional Programming is more popular than ever. Languages like Clojure, Haskell, Scala, and F# and popping up everywhere. Even Apple’s new Swift language has a functional flavor to it. The popularity of SICP study groups seems to be at an all time high.
What’s a poor Ruby programmer to do? If you’re using JRuby you might be able to integrate with Clojure or Scala, but what about the rest of us?
This is where the RubyLisp project comes in. It’s an opensource implementation of a large chunk of the Scheme language, written in pure Ruby and easily integratable into a plain ol’ Ruby app… or a RubyMotion app.
This talk will introduce RubyLisp: both the language itself as well as how to integrate it into a Ruby app.
Dave Astels, award winning technical author, has 30 years of experience creating software, primarily using object-oriented and functional languages. Dave has worked for companies such as TogetherSoft, ThoughWorks, Google, and DRW. He currently works for SteelSeries, in charge of Research and Innovation. Dave once wrote a blog post that resulted in rSpec.
Back in 2006, when Dave was helping Kevin Taylor get Obtiva started, they realized that in order to get to where they wanted to go, the standard hiring approach wasn’t going to work. They knew that they needed to grow talented developers at the same time as hiring them. They launched an apprenticeship program that produced over a dozen strong developers, who played key roles in Obtiva’s success. In the years since that time, Dave has distilled the approach they used down to 7 essential ingredients. Come learn how to transition your team from being a skill consumer, to a skill producer, and harness the potential of world-class beginners.
Dave is on a mission to help more businesses become skill producers instead of passive, skill consumers. His first exposure to a skill-producing business was during his time at Thoughtworks (2004-2006), where he experienced their world-class learning culture. He took what he learned there to Obtiva (2006-2012), where he started and led a successful apprenticeship program. In 2009, “Apprenticeship Patterns” was published by O’Reilly, a book Dave had been co-authoring with Adewale Oshineye since 2005. In 2012, Dave joined Dev Bootcamp, and led the launch of their Chicago location in 2013. Dave is now working with companies in the Dev Bootcamp Employer Network, helping them start apprenticeship programs, and improve their ability to incorporate newcomers.
In a world of in-demand minds and ever changing job positions, your project better be ready to get developers up to speed quick. How do we do this? We show them the manual of course. Wait… you guys have a manual for your project, right?
You probably already do. It’s called your test suite. In particular, your Cucumber features. Cucumber allows us to write how a feature is intended to work and then assert that it does. It is a great way to exercise the entire stack but an even better way to educate on how your application behaves.
This talk will go through why cucumber is still relevant in a sea of fast running tests, why every chosen word in your feature is important, and ways to get the most out of your integration suite.
Matt is a seasoned veteran of the Ruby world, having spent many years helping build up the Ruby community in Chicago and putting in time at both Obtiva and Groupon. He’s a lover of the simple things in life, and that love translates to an ability to see the simple solutions in complex development problems.
In addition to his development chops, he’s a father, husband, son, friend, software developer and unemotional robot (or at least that’s what he’s heard).
“Secure, Quick, Reliable Login” is a proposed technique to replace username/password login, as well as third party logins providers. SQRL (pronounced “squirrel”) provides an extremely user-friendly workflow - the user simply scans a QR code on the page using a dedicated application, verifies that it refers to the correct url, and is then logged into the site.
This talk will provide an overview of the challenges with existing user/password login systems, as well as the concerns with third party social network login. We will then describe the properties of SQRL that address these concerns, and describe the cryptographic algorithms that provide those features at a high level.