Rails plugins: keep init.rb thin

Rails plugins' initializer script, init.rb, is currently invoked via eval, not require—so it inherits whatever module-space Rails calls it from. If you reopen any classes in init.rb itself (like the will_paginate guys quite reasonably attempted to define Hash#slice), your changes will be made—but to the wrong module.

So, to avoid strange gotchas, consider init.rb just a generic hook point to kick things off, and always require in any code that's to do actual work at plugin load time.

Alternatively, you can explicitly anchor referenced classes to the top level, like ::Hash. That's the route will_paginate took, but I would just break out a separate file and require it to keep things plain and clear.

Remove the menu bar and toolbar from gvim

I wanted to reclaim some real estate from the top of my gvim screen. Here's a couple lines for the .vimrc or .gvimrc:

" Remove menu bar
set guioptions-=m

" Remove toolbar
set guioptions-=T