Skip to content

Instantly share code, notes, and snippets.

@headius
Created February 8, 2013 03:12
Show Gist options
  • Save headius/4736328 to your computer and use it in GitHub Desktop.
Save headius/4736328 to your computer and use it in GitHub Desktop.
Brainstorming for RubyConf AU JRuby workshop

Workshop notes

  • Getting Started
    • Plug the book
    • JVM
      • Version differences
    • JRuby
      • rvm, rbenv, chruby, whatever
      • Linux packages?
      • Windows installer?
      • Drip?
      • Tuning JVM and JRuby
        • Performance
          • invokedynamic
          • what to expect
        • Startup
        • Memory
    • jirb
    • gems
  • Java Integration
    • Accessing Java classes
    • Basic Java integration
    • Understanding type coercions
    • Implementing interfaces
    • Extending classes
    • Effective JI
      • Performance
      • To JI or not to JI
  • GUI dev
    • Swing
      • Why Swing?
      • Basic application
      • Event handling
    • SWT
      • Basic application
      • Event handling
    • JavaFX?
  • FFI
    • Why?
    • Basic library binding
    • Structs
    • Other libs/tools?
  • Rails
    • Anatomy of a JRoR app
    • Threadsafe mode
      • Justification
      • Preparing apps/libs
    • Development servers
  • Tools
    • Profiling
      • --profile and friends
      • JVM flags
      • VisualVM?
    • Debugging
      • ruby-debug
      • IntelliJ?
      • Anything else?
    • Monitoring
      • VisualVM
      • jmx gem
        • As a client
        • As a server
  • Deploying
    • Plug the book
    • Trinidad or Torquebox lite?
    • Puma?
    • Torquebox
    • Engine Yard?
    • Heroku?
    • WAR files?
    • Others?
  • JRuby Extensions
    • Justification
    • Dev environment
    • A basic extension
    • Tips and tricks
  • Libraries
    • Finding libraries
    • Javadoc? (maybe in JI section)
    • Packaging with your app
  • Graphics and Games
    • JavaFX
    • 2D?
    • 3D?
    • Minecraft?
  • Hacking JRuby
    • JRuby-related services
      • Repository
      • Wiki
      • Bug trackers
      • IRC and MLs
    • JRuby dev
      • Dev environment
      • Layout of repository
      • Building and testing
@vbatts
Copy link

vbatts commented Feb 8, 2013

how long and how big is this workshop? pretty great list, but would you try to cover everything, or just let the crowd decide?

@chendo
Copy link

chendo commented Feb 8, 2013

Also, I think Deploying should come straight after Rails

@headius
Copy link
Author

headius commented Feb 8, 2013

@chendo Yeah that makes sense. The order here is totally negotiable.

@charts This is for a day-long workshop. I am planning on at least 6 hours of practical workshop time.

@jkutner
Copy link

jkutner commented Feb 8, 2013

+1 for performance tuning, invokedynamic and tools coming later

I think you should ask the audience about order for the rest. Some will care more about deployment, others will care more about GUI dev.

@cjheath
Copy link

cjheath commented Feb 8, 2013

Maybe just too much material there to absorb in one day. It's a workshop; do we get time to actually build something? Better to learn something thoroughly than forget a broad sweep. I'd like to build a little Swing app, see if someone can break through the FFI barrier to start wrapping freetds, or make a change to a Date or Time primitive in JRuby itself (as discussed and implemented for Rubinius). Oh, and see whether Java profiling tools can give me more help with the behaviour of my activefacts-api gem. I.e. see how to use JRuby to solve practical problems, not to feel like a swallowed a library by accident!

@jkutner
Copy link

jkutner commented Feb 8, 2013

Maybe add jruby-lint? Maybe even have them port a Rails app? I have one that makes a good example if you need it.

@markmandel
Copy link

Deploying - Mizuno is a possible option as well.
WAR files is also interesting although I don't think it matters what the servlet container is (i.e. how to war etc)

Some thoughts on Graphics and games (IMHO):

  • You could do gaming through LWJGL, but it's very low level, and you have to write OpenGL, which is it's own one day workshop.
  • Slick2D is very newbie friendly, and easy to get into, however people seem to be using libGDX much more (pretty sure the lead dev of Slick is now working solely on libGDX). (I wrote some bits and pieces using JRuby + Slick, and it was very simple)
  • libGDX looks great, and lets you target games at Android, Browser (WebGL), and desktop. I've not played with it, but it is a bit more low level than Slick2D (see: http://code.google.com/p/libgdx/wiki/SimpleApp), although far more powerful.

Love the section on Hacking JRuby :)

@andrewmcnamara
Copy link

I'd be interested to learn more on the memory management and tuning side. Been tripped up on PermGen errors and out of memory errors.
What about threads and concurrency?
Application profiling is high my list too
Will you cover rails boot within the war?

@markmandel
Copy link

I'd also be curious to see thoughts on when to use a WAR and when not to when deploying web apps - i.e. pros and cons.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment