Archive for the ‘Whining’ Category

For heaven’s sake, please just install hoe!

Thursday, February 21st, 2008

This is why people get annoyed about the silly gem install dependency mess (esp WRT hoe):

$ gem install heckle
Need to update 31 gems from   # fair enough, you're allowed
Install required dependency ruby2ruby? [Yn]  Y    # Yeah, I know you need these
Install required dependency ParseTree? [Yn]  Y     # oh, and this one too
Select which gem to install for your platform (i686-linux)
 1. ParseTree 2.1.1 (ruby)                                   # yeah, just a vanilla ruby here
 2. ParseTree 2.1.1 (i386-mswin32)
 3. ParseTree 2.1.0 (ruby)
 4. ParseTree 2.0.2 (ruby)
 5. Skip this gem
 6. Cancel installation
> 1
Install required dependency RubyInline? [Yn]  Y   # This is also needed, I gather 
Install required dependency hoe? [Yn]  Y             # Ha, hoe again, OK
Install required dependency rubyforge? [Yn] Y     # Don't care, don't understand why both
Install required dependency rake? [Yn]  Y            # There's no rake on this box, really?
Install required dependency hoe? [Yn]  Y             # WTF, yeah, I just said that
Install required dependency hoe? [Yn]  Y             # .. now you're just fucking with me
Install required dependency ZenTest? [Yn] Y        # Huh? I like ZenTest, but there's no reason...
Install required dependency hoe? [Yn]  Y             # **** YOU, hoe!
Successfully installed heckle-1.4.1
Successfully installed ruby2ruby-1.1.8

The fourth time it asked me, it decided to trust me and actually starting installing the gems….

Sometimes, a Picture Speaks Louder Than Words

Tuesday, January 23rd, 2007

Especially a picture of SVN commit messages:
Nasty Commit Logs

PS: That’s an RSS feed via Trac, a decent tool if you can manage to set it up…

Firefox 2.0 Tabs Waste Space

Monday, October 23rd, 2006

I downloaded Firefox 2.0 RC3 this morning to see if it would keep GMail from being so totally wasteful with RAM (see: RAM Hogs). Not sure on that. What I did notice was that they’d implemented the “X”-on-each-tab feature (from Opera and Safari), but did it in a pretty wasteful way in terms of vertical space. As more people move to laptops, even with bigger monitors, we’ve slowed down on the advancement to bigger screens. My silly iBook, for one, can only drive 1024×768, so I really care about screen real estate.


Opera tabs
Safari tabs
Firefox 2.0
Firefox 2.0 tabs

RAM Hogs

Wednesday, October 18th, 2006

I’m getting pretty annoyed by the performance of my year-old iBook these days, mostly due to my DSL not working properly and running out of RAM (neither of which is really the fault of the hardware persay). After noticing that I was has 870MB of RAM “Used” (of 1GB total) according to my iStat Nano widget (basically a wrapper to top or Activity Monitor), I started trying to quit stuff to get that back down. With everything closed, I was using 697MB.. Blech.

I shutdown, restarted. Here’s my startup log:

Action Used (MB) Difference (MB)
Startup 224 n/a
Thunderbird 267 43
Firefox ( 314 47
FF to 324 10
Adium 341 17
Finder (new window, browsing) 351 10
Terminal 365 14
Teminal–3 new windows 378 13
Firefox–two new tabs, sites 378 8
Azureus 446 68 (!!)

Blah, I thought life should at least be decent with 1GB RAM?!

Update: This document from Apple helps explain why only some of the columns in Activity Monitor are interesting.

Picked on

Friday, June 23rd, 2006

Do you ever feel like you’re being picked on by a higher authority? Perhaps you walked to work, are about to leave, and a huge rainstorm starts? Perhaps one exactly like this:

Bad Weather

Yeah… this is why I’m moving to San Francisco.

Why Does the Google Search API Suck?

Saturday, December 10th, 2005

First attempts

Ruby doesn’t have CPAN

I spent quite a bit of time Friday evening and this morning trying to get a simple Ruby script to pull search data from Google’s crappy search API. There is a standard library for SOAP/WSDL stuff for Ruby here. It is, like so many other potentially good Ruby libraries, almost totally undocumented.

I played around with that for a while and failed to get anything useful. After a little more searching, I found ruby-google on the RAA. It looked promising, specifically:

Ruby/Google offers a higher-level abstraction of Google’s SOAP-driven Web API. It allows you to programmatically query the Google search-engine from the comfort of your favourite programming language, as long as that’s Ruby.

The aim of the library is to make the details of the raw data structures returned by the Web API irrelevant, in the process making the API more accessible for everyday use.

After installing it on amartya, our development server, I tried using the thing. It barfed with some error. I then tried tweaking it for a bit but gave up because the thing hadn’t been updated since mid-2003.

More Annoyed

The rest of the evening and this morning progressed in the same way. Long story short: tried to get a Ruby version to work on 3 different machines (and OSes), gave up on Ruby.

Perl has CPAN

I switched to Perl and happily found CPAN modules that looked promising, specifically Net::Google .

Not if you haven’t got a good version or Perl

I then spent hours trying to install all of the dependencies for the CPAN meta-module on amartya before realizing that it was using 5.005_03!. After that, I gave up completely on amartya, tried on my Dreamhost machine, failed because I wasn’t root [yes, I know how to fix that but was too annoyed by this point], then failed on my iBook because I somehow screwed up the urllist to download from [yeah, I tried fixing that too].

Why Google?

Then I stopped and looked at Yahoo’s API. It worked out of the box (in Ruby). Here’s the basic code: (with WordPress escaping the double quotes for some reason)

require 'rexml/document'
require 'net/http'
APP_ID = "whatever_you_asked_Yahoo_for"
query = "a%20search%20string"
url ="{APP_ID}&query=#{query}"
  response = Net::HTTP.get_response(URI.parse(url))
data_xml =
data_xml.elements.each("ResultSet/Result") {|r|
  puts r.elements["Title"].text,
  puts r.elements["Url"].text,
  puts r.elements["Summary"].text

I wish I would have tried Yahoo in the beginning.