12th - 18th June 2006

Ruby Weekly News is a summary of the week’s activity for the ruby-talk mailing list (and its mirror equivalents the ruby-talk google group and the Ruby forum) and the comp.lang.ruby newsgroup.

This week’s newsletter is brought to you by Tim Sutherland.

Articles and Announcements

User Group News

Threads

Short But Unique (#83) (ruby-talk)

Ruby Quiz is by Ryan Williams this week.

“The quiz would be to develop an abbrev-like module that shortens a set of strings so that they are all within a specified length, and all unique.”

Troubles Extending IRB (ruby-talk)

Matthew Harris is having problems integrating IRB with a GTK+ widget – the IRB source code doesn’t have enough documentation to get his head around how it works.

“My ultimate goal is to use the Syntax library to create a custom syntax highlighting widget using Gtk::TextView and write a full-fledged Ruby programmer’s editor and create countless plugins, the first one being the IRB GTK console.”

Is anyone able to help?

ruby-dev summary 28637 - 28714 (ruby-talk)

Kazuo Saito summarised the Japanese list ruby-dev. (Index of summaries.)

Ruby 1.8.5 will be released in the middle of August. Mauricio Fernandez comments on this in ruby 1.8.5 release schedule, noting that mid-August is O-bon day in many parts of Japan, a “Japanese Buddhist holiday to honor the departed spirits of one’s ancestors” (Wikipedia). Previous Ruby releases have often coincided with Christmas.

RubyGems for inclusion in JRuby (ruby-talk)

Charles O Nutter says the next release of JRuby (0.9.0) will work with RubyGems. “It will also be the first release in which we ship a full complement of Ruby’s own .rb libraries. In short, it’s the first really usable release with everything you need included.”

Absolute paths in $" (ruby-talk)

Trans wondered if Ruby 1.8.5 will convert paths in $" ($LOADED_FEATURES) to be absolute instead of relative (like 1.9 does), to avoid some situations where require can load a file multiple times.

Matz said it was too big a change for a stable release. “Compatibility goes beyond anyone’s expectation.”

Unicode roadmap? (ruby-talk)

Unicode was a popular topic this week, with around 200 posts.

It all started with a user complaining that Ruby does not have “proper Unicode support”. Matz asked him to define what he meant by proper support. “Note that 1.8 handles Unicode (UTF-8) if your string operations are based on Regexp” (set $KCODE = 'u' at the top of your code, or set the KCODE environment variable).

Ruby 1.9 will have improved behaviour for string encodings, including Unicode ones.

Which missing features are causing the most pain? “I don’t think it is a method to get number of characters in a string. It can’t be THAT crucial”, pondered Matz, adding that he is a non-English writer and doesn’t have any problems with Ruby’s current support.

Peter Ertl said that validates_length_of in ActiveRecord (and therefore Rails) doesn’t work with UTF-8 strings since it uses String#length. A couple of people mentioned case-insensitive regular expressions not working.

Julian ‘Julik’ Tarkhanov later noted (in response to a different message) “Trust me, when multibyte/Unicode handling is optional, 80% of libraries do it wrong.”

Dmitry Severin listed a combination of libraries that can be used to solve most Unicode problems, e.g. jcode, which adds methods like String#jlength that are encoding-aware; and unicode_hack for ActiveRecord which provides a String#chars accessor that’s codepoint-aware and puts your database connections in UTF-8 mode.

The thread started talking about UTF-8 vs UTF-16 vs …, and whether Ruby should use one of them for its internal string representation (for efficiency of splicing etc. in Unicode), and how such a decision would affect users of non-Unicode encodings.

Tim Bray (who among other things “co-edited the XML spec and helped work out its character-encoding issues”) said:
the practical experience is that the code required to unpack a UTF-8 stream into a sequence of integer codepoints (and reverse the process) is easy and very efficient; to the point that for “slicing and poking”, UTF-8 vs UTF-16 vs UTF-32 is pretty well a wash.

He went on to give great advice on all manner of questions on how Ruby should approach Unicode.

See also Closing in on Unicode with Jcode from a year ago on RedHanded.

Ruby and Windows Vista (ruby-talk)

Richard Livsey wondered if anyone had tried running Ruby on Windows Vista Beta 2. “Any gotchas?”

James Schementi says it’s working fine, with the exception of some Win32API code, and Barry Burd ran Rails under it a few weeks ago (which didn’t work for him in Beta 1).

Whither Ruby DBI? (comp.lang.ruby)

Someone noticed that Ruby/DBI (database abstraction layer) is only version 0.10, and wondered why ActiveRecord doesn’t use it. It is still actively developed?

Dave Burt said that it is still active.

Mac OS X automation with Ruby (comp.lang.ruby)

What options are there for automating Mac OS X applications with Ruby, asked Tony.

Une bévue pointed out RubyAEOSA for using AppleEvent and OSA Scripting Component.

ruby-forum.com (ruby-talk)

Last week’s thread on this topic (too many low-quality posts from ruby-forum.com) had some outcomes: Andreas S. disabled posts for unregistered users, added a paragraph with some posting rules, and links to the Ruby FAQ and documentation.

“I hope this will to improve the quality of postings from ruby-forum.com. If you have any better suggestions, please tell me.”

Later in the thread, a ruby-forum user posted “Why does Ruby insist on using a Webboard instead of a regular newsgroup forum?” ... “Lets just switch it to a public newsgroup forum and let Ruby flourish. There is no need to keep it bottled up like this.”

This was a good illustration of the misunderstanding many ruby-forum users have about it – they don’t realise it’s a mirror of the ruby-talk mailing list. (And the comp.lang.ruby newsgroup, when the newsgroup gateway is up, which it isn’t at the moment.)

New Releases

Ruby Reports 0.4.9 (ruby-talk)

Gregory Brown released the “Sneakin’ Into RoR” edition of Ruby Reports. It now has basic Rails integration, with acts_as_reportable in your ActiveRecord models.

Get your mojo back with Mojo Helpdesk (comp.lang.ruby)

Supercobra Thatbytes introduced Mojo Helpdesk, “a simple ticket tracking system for small businesses”. It is written with Rails.

MongrelDay Documentation -- Memoirs Of A Web Server (ruby-talk)

Zed Shaw wished everyone a happy RailsDay, and announced he’d spent it writing “tons” of “documentation for Mongrel” (Mongrel is a web server for Ruby applications).

Also, “MONGREL IS #2!”: RubyGems was the only rubyforge project to have more downloads than Mongrel this week.

BTW, if anyone wonders why I support win32, just ask yourself why the Ruby One-Click installer is consistently in the top three projects on RubyForge. Yeah, windows doesn’t matter at all.

NokiaFS (ruby-talk)

Werner Bohl uploaded the first, alpha, version of NokiaFS. “This application is based on fusefs ruby lib and gammu. Mounts as user space fs your Nokia phone.”

ZenObfuscate - for when you really really have to ship a (ruby-talk)

Ryan Davis announced ZenObfuscate, a commercial tool for effective obfuscation of Ruby source code.

“ZenObfuscate is a translator for a fairly large subset of ruby that converts your pure ruby code into a dynamically loadable binary”.

rcov 0.6.0: "differential code coverage", full (faster) cross-references, vim integration (ruby-talk)

The Ruby code-coverage tool ‘rcov’ now has a “differential code coverage” mode that shows you when you’ve added new code that isn’t covered by tests. Cross-referenced reports have also been improved – you can click on a method in the HTML report to see who called it.

Rcov is by Mauricio Fernandez, and he thanks Alex Wayne, Coda Hale and Tim Shadel for their bug reports.

Announcing MarkaBoo - Creative Commons licensed Rails app for Social Bookmarking (comp.lang.ruby)

Christian Romney: “After much lobbying, I managed to convince the company I work for to release the source of one of our for-profit web propertied under a Creative Commons license.”

MarkaBoo is a social bookmarking tool, featuring a WYSIWYG editor, the ability to create bookmarks by email and from mobile phones, import from other sites like del.icio.us, and more.

Geocoding Goodness (ruby-talk)

Eric Hodel wrote Ruby bindings for the Yahoo, Google and geocoder.us geocoding services. “And as a bonus, you get a Yahoo! search gem to search either the web or for locations”.

There was an enthusiastic response, and it looks like several people will be creating Ruby programs using geocoding soon.