Tags
webcam vindaloo version vegan unix unicef trojan todo thinkpad textmate testing tagging syntax svn subversion sphinx spaces solaris sitemap sinatra sheet security search schema_info SchemaInfo ruby rinari relationships refresh rdiff-backup ramaze railsconf08 railsconf07 rails protools production power placeboeffect pink floyd PIC perl overheat outbreak osx os x NYHS NYC netbeans nanophotonics mysql music MPEG-4 model migration microvolunteer macbook mac log linux less leopard keynote JAX javascript java imunizator highlighting Handbrake haml hacks google geocoding genghistron gem gaming gabrielle's funny functional fun friends food fixes fixed firefox FF3 ferret fantasy' emacs DV donate datarecovery database D&D converter conference computing cheat capistrano business bribesThe Decider said on Fri Dec 14 10:26:16 +0000 2007 | permalink
Tagged: os x gem mysql leopard
mysql gem and Leopard not playing nicely
Just installed the latest mysql for os x Leopard. Re-installed the mysql gem using:
sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
All seemed to go well but when trying to rake test I got:
dyld: NSLinkModule() error
dyld: Library not loaded: /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib
Referenced from: /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
Reason: image not found
Trace/BPT trap
Crap!
The gem is looking in the wrong place for the dylib!
Fix
sudo mkdir /usr/local/mysql/lib/mysql
sudo ln -s /usr/local/mysql/lib/libmysqlclient.15.dylib /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib
The Hacker said on Fri Dec 14 11:54:02 +0000 2007 | permalink
Tagged: ruby rails gem geocoding google
Google-Geocode Gem Woe's
While using the very cool google-geocode gem for ruby, I ran into a small (read: big) problem.
Do a search for “Trinidad” by itself and you get something like:
Communication error: #<REXML::ParseException: Missing end tag for 'AdministrativeAreaName' (got "AdministrativeArea")
The problem lies not in the gem but in ruby’s REXML and how it deals with the xml google sends back. This only happens when international characters are involved.
After doing a little googling I saw a patch for rexml which I changed into a monkey patch for google-geocodes helper library rc-rest.
This monkey patch will solve all your accent mark woe’s.
class RCRest
def get(method, params = {})
url = make_url method, params
url.open do |xml|
body = xml.read
res = REXML::Document.new Iconv.conv("UTF-8//Ignore", 'UTF-8', body)
check_error res
return parse_response(res)
end
rescue IOError, SystemCallError, SocketError, Timeout::Error,
REXML::ParseException => e
raise CommunicationError.new(e)
rescue OpenURI::HTTPError => e
begin
xml = REXML::Document.new e.io.read
check_error xml
rescue REXML::ParseException => e
end
new_e = CommunicationError.new e
new_e.message << "\n\nunhandled error:\n#{xml.to_s}"
raise new_e
end
end
The magical change is the inclusion of Iconv to make REXML happy.