Skip to content
rdp edited this page Sep 13, 2010 · 6 revisions

Nokogiri pure-Java version for JRuby

Sergio Arbeo spent last summer working on a pure Java version of Nokogiri. Nokogiri normally uses the C library libxml, either through a C extension on MRI or through FFI on JRuby. Unfortunately, many environments where JRuby runs do not allow native extensions like FFI. This means that, for example, you can’t use Nokogiri for apps deployed to Google App Engine or Android devices.

Sergio needs help finishing Nokogiri-Java. Many JRuby users would be very happy to see this happen.

$50 headius
+$25 rdp
+$100 dje
+$200 tenderlove
+$200 flavorjones
+$50 tarcieri
+$50 Serabe

some work has been started
looks like it has been completed

patch rubygems to hint on mispellation.

If I type in gem install RubyLexer and it errs, could it not search for and give me a hint “rubylexer”?
Amount: $50 rdp

completed

Method inliner

This one would basically be klass.inline! which would redefine methods within the class to suck in other existing methods of the class and place them inline. It should work with return’s, too, and speedup well. Theroetically such a tool could be used to “inline methods” before c_ifying them, etc.

completed by rubymacros

Core patch

Come up with patches for a few ruby core items

GC getters+setters : make a patch to be able to modify GC_MALLOC_LIMIT and whatever other constants are in gc.c that are useful. Test the effects with ruby-benchmark-suite to make sure it doesn’t actually slow things down. (Patch submitted 03/05/2010 05:10 AM)

$40 rdp

Make a ruby pre-processor that can rewrite elegantly the following:

n.times { a = something}

can be rewritten to a = 0; while(a < 1000); a_internal = something; ; end (that’s faster)
But it needs to be able to handle arbitrary expressions/regex, etc.

$40 (rdp)

completed by rubymacros

create a ruby extension that wraps boost regexes

something along the lines of


a = Boost::Regex.new("abc")
a = Boost::Regex.new("abc", Boost::Regex::INSENSITIVE)
a = Boost::Regex.new(/abc/)
a = Boost::Regex.new(/abc/i)
>> 'abcdefghi' =~ a
=> 0
>> 'abcdefghi'.scan(a).each do |setting|; end

$95 rdp

completed by Michael Edgar

windows native installer

Something that can package up a ruby installation and make it fit for windows consumption. Like a setup.exe file or what not, one click installer.

hints: the InnoSetup of rubyInstaller, or the ruby-ified setup of http://www.osk.3web.ne.jp/~nyasu/vruby/vrproject-e.html

appears that there are indeed options

“endless” Ruby

In a bit of python envy, some people wish that “end” and “}” (when not used) could be optional.
Create a gem that allows ruby files formatted thus to work.
Ideas: caleb’s endless merged with polyglot.
Maybe leverage 1.9’s “-w” which tells you when it looks like one is missing?

completed by http://github.com/michaeledgar/seamless ($50)

ffi sqlite3 driver

As stated (ffi), good enough to work with rails, compatible with recent versions of sqlite3.

$100 rdp

This was http://github.com/qoobaa/sqlite3/network previous to me even putting this up :)