Japan: Part 1: RubyKaigi

This year I was honoured and delighted to have my submission to RubyKaigi 2015 accepted. This was the entire impetus for our trip to Japan, and I was incredibly excited to finally be able to start talking about the OMR project in public.  

The Besalle-Shiodome, home of the conference. 

The Besalle-Shiodome, home of the conference. 

The conference was excellent. It was my first non-academic conference, and the schedule was filled with great talks. I'll likely share my favourite videos when they start to show up on YouTube, and as a dual track conference, I'll have to catch up on some of the ones I missed as well.  

As an english speaker, I was very happy that the conference provided English to Japanese translation services. It made it possible to enjoy some of the excellent content from the Japanese conference speakers, for example, @hsbt's entertaining talk on Ruby's test suites. I was really impressed with the live translation, so many thanks to the translation team, and to the organizers for hiring them. 

View from the speakers podium in Hall A, though, not after my talk, as I totally forgot to take a picture like this after I spoke. 

View from the speakers podium in Hall A, though, not after my talk, as I totally forgot to take a picture like this after I spoke. 

People tell me that my talk went well. It's hard for me to remember myself, from inside of the speakers-fugue I get into. I'll have to watch the video when it's available to confirm. It felt like it went OK, and I was pretty delighted with the questions I got. 

I also really enjoyed talking with members of the Ruby community as well. It was nice to start to feel out their needs as a community. Though Kaigi has helped a lot, I am still ultimately an outsider to the Ruby Community, so I really appreciated everyone who helped me to understand their usage of Ruby, and their understanding of the needs of Ruby applications and how OMR might be able to help them. 

I didn't go alone to RubyKaigi. Two colleagues of mine from Ottawa also went, to speak about our experiments with replacing Ruby's existing garbage collection technology with OMR GC technology. You can see their slides here. I enjoyed sitting in the audience for their talk; It managed to explain everything we were doing, while also getting a couple good laughs from the audience! 

Overall, I really enjoyed RubyKaigi. I hope that over the next six months we can make enough progress on OMR to warrant getting talks accepted to RubyKaigi 2016, which will be held in September, in Kyoto. Next time though, I'll be prepared for picking up a conference-cold, and bring medicine... 

Thanks again to the organizers, staff, and helpers for making the conference great. Thanks as well to the sponsors, for making the conference and excellent parties possible. 

Japan: Part 0

As is traditional... because I'm doing it now, therefore making it the start of the tradition, I am posting a preview of my trip to Japan, while sitting in Terminal 2 of Narita airport.

Unprocessed, Directly from Camera

More will come once I am home. I am thinking this will end up being a series of posts, as it would likely be too much for one post. 

My Kaigi talk's video hasn't been posted yet, however, I can share the slides below.

I'll have more thought on Kaigi once I have had more time to digest the trip. In the mean time, please, download our Tech Preview, and let use know what you think of it! 

 

What Have I Been Up To?

So, I've been cagey about writing about work here. While it's no longer a secret what I've been up to, I guess I still have a residual amount of hesitance to writing about my work. So here I am, trying to push back against my hesitance! 

JavaOne

JavaOne was last week, and IBM had some representation, including some people I work with. 

Perhaps the most important presentation for sharing what I'm working on, was that of my team lead, Daryl Maier, who presented the following on Wednesday (video here).

In it, he covers the work I'm most closely connected with: The refactoring and reshaping of an existing runtime system into a language agnostic set of recyclable components, which we want to open source!

Our focus, as the JIT team has of course been on the refactoring of the JIT compiler, however, other teams in the IBM Runtimes area are also involved.For example, below is a slide deck from Charlie Gracie describing the Garbage Collection portion of the effort. 

In addition to refactoring, my personal focus has been on the Ruby JIT, improving functionality, and exploring approaches to compilation for Ruby.

I've learned an immense amount about virtual machines, JIT compilation and software engineering over the last year or so. I'm planning on doing some in-depth writing about the JIT, and I will link to / republish it here as soon as I've gotten to it.

I'll also be presenting at a conference next month!  (More on that later!) 

One last thing: If any of this sounds interesting, if you have questions, or want to come work with us? Drop me a line: magaudet <> ca.ibm.com!, @MattStudies

Learn your tools: GDB and Replay

Lesson

Pay attention to what your tools give you. Sometimes it's exactly what you want. 

Story

I have been trying to figure something out inside the Ruby interpreter for a couple of days now. Trying to find something that happens only after hundreds of method executions can be painful; Putting a breakpoint is difficult when the breakpoint will be executed hundreds of thousands of times before it becomes interesting. Conditional breakpoints help, but still aren't perfect, as sometimes formulating the right condition can be difficult.

Mozilla's rr put me in the mind of replay. I even went so far as to find a machine to run it on . Turns out however, Ruby, or our JIT hooked up to Ruby uses a system call unimplemented in rr, and so it didn't work.

While looking for something else though, I noticed the replay family of commands in GDB's help menu. Some googling led to the documentation. Not going to lie though, it really took the tutorial to help me get a handle on it.

What a revelation!

Replay allowed my to very quickly find something I'd spent the day before trying to track down.

reverse-step, you are a dear friend now.


What about rr? As it turns out, for my issue, rr is almost certainly overkill. rr aims to catch non-deterministic failures; where mine is perfectly deterministic. I do hope to spend more time playing with rr though, as it's very cool tech.

Magic Paper Box

Eight months ago, my beloved Kindle 2 (a fantastic gift from Andrea) started to give up the ghost.

The decline was entirely in the battery. Slowly, but surely it stopped holding charge. Finally, a couple of months ago, it finally got to the point where it wouldn't start up disconnected from power.

For a bit, I made due with my phone. Reading on a phone sucks, but it was better than nothing, and I was in the middle of re-reading The Rook. Then, after I finished it... I sort of stopped reading. For a few months I barely touched a book.

This was fine, as I was very busy at work, watching TV on the bus, and playing a lot of Rocket League at home.

Recently, a friend recommended a series to me that sounded like it'd be right up my alley: The Laundry Files, by Charles Stross. My universe summary 'Mathematics of a certain complexity attracts entities from parallel universes; A nerd special agent is tasked with helping prevent the end of the world.'.

A conundrum: With my Kindle dead, how would I read them?

A faint tickle occurred in the back of my head while pondering this question.

Hmmm. Lye-berry... Lie-Barry...

A Library!

I dug out my library card, which had rested inactive since I had used it to get out The Martian.

A real book! Who would have thought!

Anyhow. This post was inspired by something that caught my eye: Apparently e-book sales are down.

I wonder if others are in the same place as me, Finding their e-book readers hitting their end-of-life, and being greatly disappointed by the heirs. I guess we'll see. It's starting to look to me that e-books will simply be yet another format, beside the hardcover, paperback and audiobook.