Tom is the co-lead of the JRuby project and an employee of Red Hat. He has been a practitioner of Java since the heady days of the HotJava browser, and he has been happily using Ruby since 2001. Thomas has spoken at numerous Java and Ruby conferences, co-authored "Using JRuby", and was awarded the "Rock Star" award at JavaOne. When Thomas is not working he enjoys biking, anime, and drinking a decent IPA.
JRubyConf EU Keynote: Today & Today+1
Tom will talk about the current state of JRuby along with some things that will be happening in the not so distant future.
Theo is Chief Architect at Burt, a Göteborg based big data startup that wants to revolutionize the advertising industry by showing that there's more to ad analytics than clicks. Theo has built distributed analytics systems that handle tens of millions of messages per day – in Ruby.
Concurrency and distributed systems with JRuby
You probably code on a machine with two, if not four, or even eight cores. Yet your Ruby application will use only one of them. Concurrency is hard, but it’s even harder when you don’t have the environment, or the tools, to do it properly.
JRuby gives you these tools, and so much more. I’ll show you how you can use JRuby to write concurrent code, and even distributed systems without having to think about threads, locks and the complexity that they cause.
Running on the JVM is like standing on the shoulders of giants. Why not use Akka, an actor framework written in Scala, or Storm, a distributed real time computation system written in Clojure? I’ll explain how, and show you many more examples of how to use the full power of the JVM from the comfort of Ruby.
Stefan has been working as a researcher on distributed data management for grids, concurrency frameworks, and graph partitioning, contributing to the scalaris key-value-store and writing the GNDMS grid data management system. Currently he is working for moviepilot.com on their internal graph database middleware.
As a developer, Stefan is passionate about building flexible abstractions that are simple to use and get the most out of available resources. In his spare time, he aims to make concurrency more accessible by writing DSLs (souffleuse) and frameworks (andromenda). When not writing software, Stefan likes to play a good game of go and is a member of c-base Berlin, a club for the local IT community.
Andromeda - A dataflow concurrency framework for Ruby
to be announced
Michael has been passionate about soﬅware development for a long time. He is particularly interested in the people who develop soﬅware, soﬅware craﬅsmanship, programming languages, and improving code.
For the last two years he has been working with Neo Technology on the Neo4j graph database. As the project lead of Spring Data Neo4j he helped developing the idea to become a convenient and complete solution for object graph mapping. Now he has even more fun taking care of the Neo4j community and hacking on cool stuff.
Good relationships are everywhere in Michael’s life. His “real” life concerns his family and children, running his coffee shop and co-working-space "die-buchbar", living in the depths of a text-based multi-user dungeon, tinkering with and without Lego® and much more.
As a developer he loves to work with many aspects of programming languages, learning new things every day, participating in exciting and ambitious open source projects and contributing to different programming related books. Michael is also member of the Jetbrains Academy Board and an editor at InfoQ.
Despite Neo4J being written in Java and running on the JVM, the Ruby community has embraced the concepts of connected data and graph databases from early on. So gems from both camps - like the JRuby based neo4j.rb and neography written pure Ruby have allowed Ruby developers to write cool applications using Neo4j. I will quickly introduce graph databases and Neo4j and then give an overview of existing ruby drivers and show some apps using these. We will peek at some code and check out the app powering the tag-graph for JRubyConf.EU
Joe is the author of Deploying with JRuby from the Pragmatic Bookshelf. He has been building JRuby applications since 2006 for clients including IBM and NASA. Today, Joe is a professional software consultant and founder of LogicHaus, where he builds Ruby and Rails applications for customers of all sizes. He also contributes to several JRuby projects including TorqueBox and Trinidad.
Deploy, Scale and Sleep Better with JRuby
JRuby deployments have fewer moving parts and consume less memory than traditional Ruby deployments, but to deploy your apps on the JVM, you need to learn some new approaches. This talk will introduce you to three JRuby deployment strategies that will give you the performance and scalability you need while letting you use the language you love.
You'll learn how Warbler can be used to create a binary file from a Ruby web application. Then we'll discuss how the light-weight Trinidad web server can be used to create a flexible, modular deployment that still feels friendly and familiar. Finally, you'll learn how to power an application with TorqueBox, an all-in-one environment that includes built-in support for messaging, scheduling and daemons.
As a core member of the TorqueBox and Immutant teams at Red Hat, Toby helps drive the integration of Java and other JVM languages. Toby joined Red Hat in 2010, initially working on cloud technologies using Ruby before moving to work on TorqueBox and Immutant full-time.
Prior to joining Red Hat, Toby spent too many years as a freelance consultant developing Ruby and Java applications.
Simplify Your Infrastructure With TorqueBox
TorqueBox is an open source project that combines JRuby with the JBoss Application Server to form a fast, scalable application server for Rack/Rails applications. It exposes features traditionally found in Java application servers to Ruby, such as:
- asynchronous processing
- job scheduling
After a quick overview, we'll modify an existing application via "live" coding to use some of the above features as a demonstration of the simplicity and power that TorqueBox provides.
Benoit is an open-source evangelist and a benchmark freak. He recently became an MRI committer and enjoys contributing to many projects including JRuby, Rubinius and Homebrew. He has been working this summer with the Google Summer of Code program and had the chance to have @enebo as a mentor.
Benchmarking the right way with Perfer
Ever wondered what it would take to have stable and reliable measurements for your performance? Or wished to know the evolution of it across releases and rubies? Or simply to know how fast or slow some code is? Perfer is a benchmarking tool, intending to solve these, and to provide an easy way to store, transform and compare the results and to make a graph of it. This is the result of a GSoC project of this year, so it's fresh and new, come and see yourself!
The talk will start with some benchmarking best practices, explaining why using the benchmark stdlib is usually not sufficient. I will then explain Perfer's approach and show how to use it and how it can be useful in real-world examples.
Seven years ago David was asked to join a friend's startup. Very simple stuff, one web server, editing php scripts live. That was the start of a fantastic journey that has now taken him to ad analytics startup Burt, where they show that there's more to metrics than clicks. On a normal day, the Burt team process tens of thousands of requests per second, in real time, in JRuby. In my spare time, David sings in two metal bands, play competitive Starcraft II and collect single malts.
Gotcha! JRuby performance issues that will come back to bite you
With JRuby you can take the simplicity of Ruby and scale up to very complex systems with little effort. But there are monsters hiding in the shadows, waiting to strike. That class you just wrote might work perform fine in your tests, but what happens when you run it ten thousand times per second? At Burt we've learned a lot of these lessons the hard way. Now you don't have to! Let me show you some of the most common issues you're going to run in to, how you can work around them and the tools that will help you on the way.
Mario has been involved with Java since the Beta version, and with JRuby and Scala since 2008. In previous incarnations he was Java Evangelist for Sun Mexico and Java Instructor for Sun EMEA. He is currently Master Architect and Co-founder of Abstra.cc, where he is involved in several projects using JRuby, Scala and combinations thereof.
Static or dynamic typing? Why not both? Integrating JRuby and Scala
One of the advantages of JRuby is that, running on the JVM, it is relatively easy to integrate it with other JVM languages and libraries. One language that has been generating a lot of interest lately is Scala. Apart from being a "better Java", Scala brings to the table many interesting features such as:
- A hybrid object-oriented/functional programming model, including such concepts as pattern matching, immutable values, first-class functions and closures.
- An Actor framework for easy scalability and concurrency.
- A Parser Combinator library for easily writing parsers and many other things.
- While the JRuby team has added some features to easily call Scala code from JRuby in 1.6.0 and 1.6.6, calling JRuby from Scala still relies on the bare JRuby embedding APIs.
In this session we will cover the new features for calling Scala from JRuby, as well as introducing an interoperability library called Scuby that we built for easing the pain of calling JRuby from Scala.
Uwe lives in Norway just north of Oslo with his wife and two kids. By day he works at Datek Wireless developing fleet control systems for airports and the evenings are divided between family, open source development and jujutsu. He is currently most active in the Ruboto project, JRuby on Android.
Ruboto - JRuby on Android
Android has made great advances the last couple of years, and is one of the major actors in the phone and tablet markets.
The main programming language on Android is Java. Android offers a comprehensive API to apps running on the Dalvik VM. The API covers a large part of the Java standard library in addition to Android specific APIs. Android includes tooling to convert Java .class files to Dalvik VM compatible class files.
Ruboto uses JRuby to allow you to run Ruby scripts on the Dalvik VM. Using Ruby code, you have access to the complete Android API.
Currently, there are two offerings: ruboto and ruboto-irb. Ruboto is a framework and tool chain to develop stand-alone Android apps in Ruby. Ruboto-IRB is an interactive Ruby environment for learning, exploration, development, and testing.
This presentation will introduce the different parts of Ruboto:
- Hello World
- Development tools
- Combine Java and Ruby in the same project
There is a lot happening both on Android, JRuby, and Ruboto, and I'd like to present the last months development, and present the road map for the project.
See what Ruboto has to offer!