Yet some more good presentations

written by jedi on June 6th, 2009 @ 09:49 AM

Presentations of the Los Angeles Ruby Conference 2009 are now online.

Here are my picks:

Embracing events

written by jedi on May 31st, 2009 @ 12:39 AM

Straight away from Railswaycon 2009, here's a great presentation about event-driven and fibers-driven development: Embracing events in Ruby. Neverblock is amazing!

Python zealots can also read the Python counterpart.

Meanwhile, PHP zealots can keep swearing by PHP 6, that's gonna introduce innovative brain-blasting technology: unicode support (woah!) and basic "goto" support (re-woah!).

Coroutines puts an end to latency in SOA and database-driven apps, where apps keep being stupidly stuck waiting for a remote server to answer instead of keeping the ball rolling.

As demonstrated in this presentation, web developpers still have loads to learn from games coders. But it seems to sink in slowly.

Slides and videos from MWRC2009

written by jedi on May 16th, 2009 @ 02:09 PM

The slides and videos of the MountainWest event are now available.

Some very interesting stuff in here.

Even if you don't have any Ruby skill, I'd really suggest you to have a look at these presentations. Some of the technologies described here can be very helpful to build modern applications, regardless of the language they are built in. And these technologies are for sure people with swear by in a few years.

Here are some picks:

MurmurHash: now in 64-bits flavor

written by jedi on May 6th, 2009 @ 11:31 PM

Yes, this post comes late, but in case you missed it: Austin Appleby has released a new version of MurmurHash 2, optimized for 64-bits CPUs.

MurmurHash is nothing but the fastest hash function ever designed so far. It's a non-cryptographic function, but it has excellent distribution, excellent avalanche behavior and excellent collision resistance. Plus, it is public domain.

Speedwise, MurmurHash beats Bob Jenkin's lookup3 hash and Hesieh's Superfasthash hands down.

MurmurHash home page - MurmurHash on Wikipedia

and of course, there's already a Ruby extension: Ruby extension for MurmurHash 2

Might make a PHP one if I ever have time to waste.

Cloudkit, Hypertable, HyperRecord

written by jedi on April 18th, 2009 @ 10:30 PM

Ruby on Google App Engine

written by jedi on April 13th, 2009 @ 02:22 PM

Since Google App Engine now supports Java and Groovy, and since JRuby compiles Ruby code into Java bytecode, it might be possible to write a glue in order to run Ruby code over Google App Engine, right?

Right : AppEngine-JRuby wraps the Google App Engine API for JRuby.

10 Reasons why PHP is Still Better than Ruby

written by jedi on April 9th, 2009 @ 11:56 AM

MacRuby, soon based upon the LLVM infrastructure

written by jedi on March 28th, 2009 @ 09:57 PM

Apple's MacRuby is a version of Ruby 1.9, ported to run directly on top of Mac OS X core technologies such as the Objective-C common runtime and garbage collector, and the CoreFoundation framework.

MacRuby is already a very cool and fast Ruby implementation, but it looks like Apple wants to take it a bit further: "It’s now time to focus on the next release, 0.5, which will be principally dedicated to performance. A new virtual machine based on the LLVM compiler infrastructure has been developed and integrated as a replacement for YARV.

The new VM transforms the abstract source tree (AST) directly from the parser into LLVM’s intermediate representation (IR), which is then compiled into optimized machine code. A number of other key optimizations have also been completed, such as fast fixnum arithmetic, cached method dispatch, zero-cost IA64 exceptions, fast instance variable access, constants caching, fast break/next, cheap local variables, tail call optimization and much more.

While the amount of work remaining is significant, the compiler is already able to compile most of the Ruby syntax and the new runtime is mostly complete. Early performance measurements are also very promising, with substantial room for improvement remaining."

Wow.

A complete search engine in 200 lines

written by jedi on March 20th, 2009 @ 11:13 PM

Sau Sheong Chang, a Yahoo! developper, wrote an internet search engine in 200 lines.

Of course it isn't designed to index billions of documents, but it's amazingly featureful.

Just like any decent search engine, starting from seeds, it crawls and tokenizes web pages, handles robots.txt, take cares of pages freshness for intelligent re-crawling, filters data types, it has natural language processing (using the Porter Stemmer algorithm as a variant to lemmatisation), 3 ranking algorithms (implemented in 14 lines, grand total), and of course the 200 lines include the user interface (query box + display of ranked results, with page titles and scores). Yes, the end result is a fully working search engine, not just pieces of sample source code.

An interesting read, and a great introduction to how search engines are working.

Ruby 1.9.1 is released

written by jedi on January 31st, 2009 @ 09:02 PM

The first production-release of Ruby 1.9 has seen the light!

After years of hard work, the 1.9.x branch has become the new production branch of Ruby, and Ruby 1.9.1 replaces 1.8.7 as the latest stable release of Matz's Ruby interpreter.

Notice that Ruby 1.8 still remains. 1.8.8 will be released this year.

Of course, since this is a major release, you'll have to wait a bit until apps and gems catch up.

Here's a link to Ruby benchmarks made two month ago.

Oh yeah, Ruby is slow, Ruby frameworks are slow, PHP is so much faster than Ruby... or not.

CloudKit: RESTful versioned storage of JSON data

written by jedi on December 30th, 2008 @ 11:10 PM

CloudKit is an easy way to store JSON data with a RESTful interface.

That's pretty cool on its own, but what's even cooler is that every object is automatically versioned.

Have a look at the CloudKit via cURL demo to immediately see the point.

Jon Crosby's blog tells a bit more about CloudKit, especially how simple it is to enable OpenId and OAuth support.

Thanks for the xmas gift, Jon!

A YARV to LLVM compiler

written by jedi on December 8th, 2008 @ 11:41 PM

YARV is the virtual machine shipped with Ruby 1.9. YARV is a great step forward, since current benchmarks show that Ruby 1.9 is about 4.5 times faster than Ruby 1.8. Speed wise, Ruby 1.9 can really compete PHP and Python. I also played with JRuby today, and its JIT and AOT compiler + a current JVM makes it a very scalable platform.

But here's a project that might really makes Ruby a speed daemon: a YARV to LLVM compiler.

The LLVM compiler infrastructure provides aggressive optimizations, and the recently-released Adobe Alchemy is yet another proof that LLVM rocks.

Can you imagine if Ruby code could be compiled through LLVM?

This is the goal of the yarv2llvm project and it already works pretty well. The web page is only in japanese, the benchmarks are easy to read:

http://d.hatena.ne.jp/miura1729/20081012/1223785541

42 times faster than Ruby 1.9. Pure crazyness. It probably blows away every VM of other script languages out there.

Here's the github for yarv2llvm, as you can see, the project is quite active.

(by there way, here's a link to a project that didn't get a lot of coverage, but that's also worth looking at: the Ludicrous JIT compiler although I'm quite confident that LLVM will remain more efficient).

New version of Ruby Enterprise Edition released

written by jedi on December 8th, 2008 @ 07:45 PM

A new version of REE is now available for download.

Ruby Enterprise Edition is Ruby 1.8 with several patches that greatly improve its garbage collector and that uses Google's memory allocator.

REE is now compatible with OSX and Solaris, and it has enhanced 64-bits support.

Also have a look at how REE and GC tuning can reduce the spec suite runtime to one third.

Ruby off Rails

written by jedi on October 26th, 2008 @ 10:04 PM

Building web applications with Ruby doesn't imply Rails.

Although it's not a just-released document, the Ruby off Rails presentation is a great roundup of available options, in order to build a web site with today's most suitable components.

Thin: a fast and simple Ruby web server

written by jedi on January 30th, 2008 @ 11:30 AM

If you are looking for an alternative to Mongrel, here's a very good one : Thin

It's as stable as Mongrel, just lighter and faster.

Options:

Size

Colors