perl6

I was looking at how perl6 is coming along and found this: http://perlgeek.de/blog-en/perl-5-to-6/ which is really cool.  Besides being a really nice presentation of the material (including the “Motivation” section) there’s just lotsa nice stuff.  Some of the new way outa here cool perl6 features:

  • meta operators
  • gather/take construct for lazy lists
  • grammars
  • Enums
  • twigils
  • custom operators

And that’s just a few…

Enjoying being on the Wagn

We are building out the new currency frontiers web-site, using the Wagn, which is pretty darn cool. It’s a wiki + database + cms. It’s kinda geeky, but not so much that you have to be a programer to use it (so don’t freak if your aren’t), but if you are a programming inclined, there’s lots of nice stuff you can. Ethan and Lewis are are the excellent chaps wheeling the Wagn. Kudos dudes.

git bandwagon

Well, I’ve officially joined the git bandwagon.  I’ve put metaform up on github (the open money projects will come soon, but I think probably on gitorious); I’ve been reading tons of articles about git; I installed it on Tiger (use MacPorts) and Leopard (install from source with these instructions but use 1.5.5); and now I’m blogging about it.  The most interesting article so far on git, has made me realize how closely related it is to the mesh and churn…  Quite interesting!

ubuntu gutsy on a xen virtual host

Hey googlers looking for tech-support:

I was trying to install various packages (emacs, etc) from universe on Ubuntu Gutsy (7.10), and I kept getting weird segmentation faults (Setting up emacsen-common (1.4.17) Segmentation fault). Turns out that the problem was that my server was being hosted on a VPS running XEN for virtualization, and you have to first install libc6-xen: apt-get install libc6-xen

Hope this saves someone the half day that it cost me…

rails capistrano deploy script OS X to Ubuntu

Ok, so in a previous post I described the rabit-hole which is switching to rails. Below’s my capistrano deploy script which solves a number of problems:

  1. The production server needs a mongrel cluster configuration file added.
  2. Deployment requires restarting the mongrel cluster.
  3. On Ubuntu the database.yaml spec has to be modified to because you need to specify a mysql socket path differently from OS X.

So here’s what I added to make it work:

desc "Restart the web server and mongrel cluster"
 
task :restart, :roles => :app do
  sudo "echo 'fish'" #bogus command to make sudo work in the run command
  run "cd #{current_path} && sudo mongrel_rails cluster::restart"
  sudo "/usr/local/apache/bin/apachectl graceful"
end
 
desc <<-DESC
configure the mongrel cluster
DESC
 
task :configure_mongrel do
  run "cd #{current_path} && mongrel_rails cluster::configure -e
  development -p 9000 -a 127.0.0.1 -P #{shared_path}/pids/mongrel.pid
    -c #{current_path} -N 2 --user om --group om"
end
 
desc <<-DESC
configure the mongrel cluster
DESC
 
task :configure_database do
  db_config = "#{shared_path}/config/database.yml"
  run "cp #{db_config} #{current_path}/config/database.yml"
end
 
desc <<-DESC
after updating we need to add back in the mongrel configuration file so that when restart is called
it will be appropriatly launched.  We also need to update the database config file
DESC
 
task :after_update, :roles => :app do
  configure_mongrel
  configure_database
end