In the past I mentioned some Pros and Cons of Jungledisk and Amanda and the one listed “con” for Amanda is that it periodically had issues with my buckets and the size of data stored therein.
It turns out that there was a bug with the Amanda S3 device: it had issues with buckets that had a lot of keys (files) in it. Due to the way Amanda works it makes one gig pieces of data on the holding disk and then the S3 device chunks them up smaller and puts them on the S3 device. When the tape/bucket was due to be resused the files in it had to be removed. Fetching the key list (file list) that could be rm’d had a buffer overflow.
I found this out with the awesome help of djmitche (and Freenode #amanda) who wrote a patch for me. I’m pretty sure the patch made its way into amanda trunk. In Gentoo the patch is in app-backup/amanda-2.6.0_p2-r1.
Since applying the patch I’ve had no problems with Amanda at all and it’s run perfectly for me.
I’ve begun playing with git over at github by importing Reve’s source.
Eventually I will do away with subversion and trac and move to github for Reve completely. Trac is not very good and often locks up.
As I’m still new with git and github I’ll have to keep contributions to a minimum since I don’t know exactly what I’m doing.
There’s a new revision of Reve that has just been uploaded to Rubyforge: Revision 99.
This includes a major change – Reve is now licensed under a proper license: the MIT License. The terms of the license are now distributed with the package and are.
There is also a fix for the character_id that came back from a market order request.
Why a new license now? Simply because I think it’s important to realise that it’s unlikely that anyone will use Reve to create some billion dollar enterprise that I could have got in on. Yeah, not everyone can be Delicious, Flickr or Facebook. ha ha.
So go forth, ye multitudes and fix, hax, and use. Ruby and Rails both use the MIT license so now Reve should be at home.
Today CCP announced the release of their MS SQL dump. Following in step with past conversions here is a Postgres version. Tested with 8.0.15 but should work on everything.
This dump is odd: CCP is using integers where they mean to use booleans. So in those cases remember 1 is true, 0 is false. Good luck.
Edit: As a note the Eve Online Database Viewer is updated with this dump.
Edit 2 (July 31, 2008): I nearly forgot to give props to bunjiboys for providing the .sql files from which the above dump is derrived.
If you've got a boat load of legacy fixtures laying around (and who doesn't?) it can be a pain now that Rails handles the ID of objects so you don't have to.
On the train back from holiday I wrote a snippet of code to migrate them:
RUBY:
-
def Util.real_yml(klass,col = 'name')
-
y = YAML.load_file(File.join(RAILS_ROOT,'test','fixtures',"#{klass.to_s.tableize}.yml"))
-
real_names = y.inject([]) { |names,(key,val)| names <<y[key][col] if y[key][col] ;names }
-
real_objs = klass.
find :all, :conditions =>
[ "#{col} IN (?)",real_names
],

rder =>
"#{col} asc"
-
yml = ""
-
real_objs.each do |real_obj|
-
yml += "#{real_obj.name.downcase.gsub(' ','_').gsub('-','')}:\n"
-
real_obj.attributes.each do |k,v|
-
if k =~ /_id$/ && real_obj.respond_to?(k.gsub(/_id$/,'').to_sym) && ! v.nil?
-
n_klass = k.gsub(/_id$/,'').camelize.constantize.find(v) rescue nil
-
key = k.gsub(/_id$/,'')
-
val = n_klass.name.downcase.gsub(' ','_').gsub('-','')
-
yml += " #{key}: #{val}\n"
-
else
-
yml += " #{k}: #{v}\n" unless k.to_s == 'id'
-
end
-
end
-
end
-
yml
-
end
The use is:
RUBY:
-
require 'util'
-
print Util.real_yml(Corporation)
Copy/paste into corporations.yml
So far it's working great!
Here's a quick announcement to let people know that Reve (0.0.96) now supports Factional Warfare.
The cool new things are:
I know the documentation may not be the best, but I'll do my best to improve it for the next release.
Grab the new gem (0.0.96) and give it a whirl!
Just a quick note. There's a new Reve gem out as of June 7th. This one's release notes are:
- Typo fix in Reve::Classes::MapKill - shipJills -> shipKills
- Resolve trac ticket 3 (lowercase field names in postfields method)
- Update documentation to make 'charid' more consistantly 'characterid'
- Resolve trac ticket 2 (Reve does not use @charid, but takes it as an argument in initialize)
- Be strict about currentTime's casing.
The code changes can be seen At the Reve Trac.
Had my first bug report today about the to_i method I made on the String class breaking Rails migrations because leading zeroes weren't being treated nicely in my method: "001".to_i # => 1 and fails the test 1.to_s == "001" and so a String was being returned fromto_i. Crap.
I don't think that I need the method anyways (I'm going to spend part of today to make sure with more tests!) so I've removed it and tagged Release 80 and uploaded the gem to RubyForge. It should be available to gem update or gem install shortly.
This release also has a larger test coverage and some other unnecessary methods were pruned. Check it out!
In reference to the post about My First Patch to the Rails trac I mentioned in the edit of the post that I emailed the maintainer. There's been no response, unfortunately.
So I'll post the patch here so it'll get a bit more visibility and hopefully Oracle users can find it helpful in speeding up rake db:migrate on Oracle systems with a lot of indicies.
Patch to speed up Rails’s OracleAdapter#indexes method
Here is Reve release 39. As always it can be found at its homepage, http://www.crudvision.com/reve-ruby-eve-online-api-library/
Download the release with these links. Reve requires the hpricot gem to run.
This release supports the API Version 2 from Eve Online. The RDoc can be found online at http://docs.crudvision.com/reve/ or by running rake doc.
I know the documentation is spartan. I'll be working on the documentation over the coming week to make it much more informative.