Sunday, July 20, 2008

FOSCON 2008!!

What: FOSCON is a free, fun gathering of Ruby fans held during an evening of O'Reilly's OSCON conference with cool presentations, food, discussions, and a live coding competition.
Who:Anyone interested in Ruby, whether you're just curious or a seasoned pro.
Where:CubeSpace, Portland, Oregon near the Oregon Convention Center (directions).
When:Wednesday, July 23, 2008 from 6pm-9pm.
Why:The Portland Ruby Brigade user group wants to share the joy of Ruby with you.


I'll be there, talking about my second-favorite programming language *and* my favorite operating system! But don't just come to hear me talk (or sing, if they let me). We have:

  • IronRuby: John Lam
  • Selectricity and RubyVote: Benjamin Mako Hill
  • Ruby performance: Brian Ford
  • Musical glasses: Gregory Borenstein
  • Ruby++!…?: Markus Roberts on defining custom operators
  • Five minutes with Selenium: Ian Dees, author of "Scripted GUI Testing with Ruby"
  • Ruby culture: Audrey Eschright, Reid Beels and Igal Koshevoy of Calagator
  • Ruby server automation: Igal Koshevoy on AutomateIt
  • Ruby on Rails profiling: M. Edward Borasky on applying Linux OProfile
  • Ruby web development: John Labovitz on Gossamer, a microframework to spin websites out of distributed, lightweight, ephemeral resources
But wait! There's more! (I know, I said you would never hear me say that, but hey, this is typing.) :-)

  • Live coding competition: Ruby on Rails, PHP Symfony, PHP Drupal, and GemStone/S Smalltalk Seaside
That's right -- you'll actually get to watch web applications built while you wait!

Did I mention that it was free?
--
"A mathematician is a machine for turning coffee into theorems." --
Alfréd Rényi via Paul Erdős

Friday, July 11, 2008

FOSCON 2**2 Is Afoot!

Yes, there will be a FOSCON 4! Stay tuned at http://pdxfoscon.org/start. I'll introduce you to my new best friend. :)

Monday, July 7, 2008

oprofile is my new best friend

For those of you who haven't been following the Ruby mailing lists, I've spent a fair amount of time over the long weekend getting up to speed on "oprofile" as a tool to dig into Ruby performance. There haven't been any great surprises beyond what I learned last year with "gcov" and "gprof" (https://rubyforge.org/docman/view.php/977/2705/Slides.pdf), but what is new is how much you can learn with oprofile.

All of you on Windows, MacOS and Solaris can stop reading now. oprofile is only available on Linux. The clever thing about oprofile is that you can profile your entire workload. Ruby, Rails, Apache, the database and the kernel -- oprofile tracks them all. And you don't have to recompile anything with special flags unless you want to get down to the exact line of code. You can even profile optimized code!

There's one more thing oprofile gives you -- down-to-the-hardware analysis. If you want it, you can get an annotated assembly language listing and learn where your code is generating cache misses, page faults, pipeline stalls, branch prediction failures -- anything that can bottleneck your code.

I'm planning to post a more detailed how-to for using oprofile to find Ruby/Rails application bottlenecks, but for now, there are some sample profiles I made over the weekend for MRI, KRI and Rubinius on RubyForge. They're all in http://cougar.rubyforge.org/svn/trunk/PTR2/. From there, look in "*_benchmark_oprof_reports". The benchmark in question is the Ruby Benchmark Suite, started by Antonio Cangiano and maintained on GitHub at http://github.com/acangiano/ruby-benchmark-suite/tree/master.

Stay tuned! To paraphrase Mark Twain, "Everybody talks about Ruby performance, but we're doing something about it!"

Thursday, July 3, 2008

Chaos, Part 2

  1. Igal Koshevoy is probably the only Rubyist who doesn't have a blog. :-)
  2. It looks like there is going to be a "continuous integration" site set up to watch the Ruby source, compile it, run test suites and post results, etc. Can you say, "We eat our own dog food?"

YES!! Watch this space!!