JRubyConf EU 2015

Introduction

IMG_1063I was fortunate to attend the recent JRuby conference in Potsdam (nr Berlin).
http://2015.jrubyconf.eu/

JRuby is an implementation of the dynamic language Ruby based on the JVM – this gives it the advantage of the ubiquity of the JVM, the more mature threading facilities and access to the various Java libraries/frameworks etc. Jruby is an interpreted language – by the JVM.

It can be used in many ways – from pure Ruby without touching Java or it can be embedded as a library within a Java app. You can both call Java from JRuby and vice versa.

The conference was a one day event, with 10 varied talks.

There was even quality coffee on tap (pic)

You can see the talks here – http://confreaks.tv/events/jrubyconf2015

Talks

Keynote – JRuby 9000 has recently been released, which includes a major revamp of the core engine and a rewrite of the IO/Transcoding parts to make them more native – thus making them more compatible with the C implementation of Ruby.This was presented by the amazing Charles Nutter and Thomas Enebo.

JRuby/Gradle build tool – this talk was about how Gradle could be used to provide a better build tool for mixed Java/Ruby projects – covering both Java and Ruby dependancies. It can also be used to build a single jar file for deployment.

JRuby/Java data processing – based on the Java library Esper, a Ruby specific library has been built that allows for stream processing within Ruby.
A related tool is Embulk for bulk data loading.

This was followed by a talk about Shoes – which is a Ruby based UI library – its recently been brought uptodate and compatible with JRuby – its used to power the learning website – http://www.hackety.com/

The next talk was on Mirah- a JVM language that is similar to Ruby but is typed and compiled to bytecode, this gives it the advantage of better performance over JRuby. Its still in a very early stage – http://www.mirah.org/. The word “mirah” means “ruby” in Javanese, the language of the island of Java. Get it? “Ruby” in “Java”?

Alex Coles did a talk on the Quiet and Versatible Rubyist. There are times when we can work with the technologies we love. And there are times when we have to work with WebSphere and Oracle. Sometimes it’s necessary to be pragmatic.

This was followed by Joe Kutner’s talk on the 12 factor app – 12factor.net
– codebase/use version control, separate repo per app/service
– manage dependencies. e.g. jbundler
– configuration, per env settings eg DB password – don’t check it in!
– backing services, eg DB etc. Attachable resource, eg via env
– build, release, run
– processes.
– port binding. Do in app not via other service – containerless
– concurrency. scalability. Services.
– disposability. Start quick, resilience to failure. Shutdown quickly/ gracefully
– dev/prod parity, identical! Same tools/services
– logs
– admin processes. DB migrations etc.

Next we had Scaling JRuby with docker and Apache mesos. Michal Olah/ Rocky Jaiswal
– mesos. Treat cluster as single resource. W/zookeeper. Distributes tasks to nodes.
– docker containers run on the nodes, lightweight, isolation
– marathon executor service. Hosts docker containers.
– grouping servers, eg by location

JRuby file IO using mmap – Colin surprenant. This talk was about getting fast disk IO within JRuby and where to draw the line between Java and JRuby objects.

Diversity in IT
10% world is white male, yet 90% of IT is dominated by white males! Studies have shown that half the women who enter the technology field will leave over time.
We need to promote and encourage diversity in our industry.

There were then a few short lightning talks – from multi-dimensional analysis to a new systems programming language!

Conclusion
All talks were very interesting – providing me with several tips and tricks and potential future ideas.