Recently in RubyHitSquad Category

Ruby Hitsquad's Newest Members

| | Comments (0)

Kevin Bullock has recently released both vlad-hg and vlad-merb gems.

John Barnette released the vlad-git gem.

They're all available under the hitsquad's project on rubyforge.

Reservoir Nerds, pt 3

| | Comments (0)

8 days, 5 hours, 24 minutes, and 52 seconds after I sent out my enigmatic post, Mr. Black (me, duh), Mr. White (Eric Hodel), Mr. Pink (Aaron Patterson, duh), and Mr. Blonde (John "Which one was Michael Madsen?" Barnette) all received offer letters from AT&T Interactive to work on one of their new ideas (totally green field! I don't think any of us have seen an empty repository in years and years!).

I'm amazed. I'm in awe. I had no idea that such a thing was possible, let alone so incredibly effortless. Thank you Ruby community for making such a thing possible and thank you ATTi for making such a bold move.

Reservoir Nerds, pt 2

| | Comments (1)

ReservoirNerds.png

>> require 'time'
=> true
>> t0 = Time.parse "January 22, 2009 12:05:56 PM"
=> Thu Jan 22 12:05:56 -0800 2009
>> t1 = Time.parse "January 30, 2009 5:30:48 PM"
=> Fri Jan 30 17:30:48 -0800 2009
>> t = (t1 - t0).to_i
=> 710692
>> u = []
=> []
>> [86400, 3600, 60, 1].inject(t) { |t, n| m = t / n; u << m if m != 0; t % n }
=> 0
>> puts u.map {|t| '%02d' % t }.join(":").sub(/^0/, '')
8:05:24:52

Reservoir Nerds

| | Comments (0)

ReservoirNerds.png

Mr. Black, Mr. White, Mr. Pink, and Mr. Blonde are immediately available for hire. Package deal. 49 years of programming experience, 28 in Ruby. You know their names. Get in touch.

One Line Multi-Stage Deployment for Vlad:

Kernel.load "config/deploy_#{ENV['to']}.rb" if ENV['to']

Making this elegant line possible:

% rake vlad:deploy to=qa

Coming Soon™ to a Vlad near you!

Vlad the Deployer is pragmatic application deployment automation, without mercy. Much like Capistrano, but with 1/10th the complexity. Vlad integrates seamlessly with Rake, and uses familiar and standard tools like ssh and rsync.

Impale your application on the heartless spike of the Deployer.

FEATURES/PROBLEMS:

  • Full deployment automation stack.
  • Turnkey deployment for mongrel+apache+svn.
  • Supports single server deployment with just 3 variables defined.
  • Built on rake. Easy. Engine is small.
  • Very few dependencies. All simple.
  • Uses ssh with your ssh settings already in place.
  • Uses rsync for efficient transfers.
  • Run remote commands on one or more servers.
  • Mix and match local and remote tasks.
  • Compatible with all of your tab completion shell script rake-tastic goodness.
  • Ships with tests that actually pass in 0.028 seconds!
  • Does NOT support Windows right now (we think). Coming soon in 1.2.

Changes:

1.1.1 / 2008-01-14

  • 5 major enhancements:

    • Support for Rake 0.8. Should still work for Rake 0.7.
    • Added git support (contributed by Garry Dolley).
    • Reviewed for accuracy by Evan Phoenix.
    • Added lighttpd.rb
    • Added automatic client setup for perforce.
    • Added mercurial SCM support patch. Closes ticket 13475.
  • 6 minor enhancements:

    • Added #put method that wraps up Tempfile/rsync pattern.
    • Added automatic p4 client setup for perforce.
    • Added vladdemo.sh
    • Moved everything over to put.
    • Moved generic app setup to core from mongrel.
    • Parameterized 'head' into 'revision' variable (with head as default).
  • 1 bug fix

    • Fixed cleanup to actually properly clean up.
  • http://rubyhitsquad.com/

  • http://rubyforge.org/projects/hitsquad/

Vlad Hanging on you?

| | Comments (0)

I just finished writing up a lighttpd plugin for Vlad so I can switch my textdrive projects over. I had a problem where firing up lighttpd would hang. I knew there wasn't any IO it was actually waiting on, it was just hanging...

After googling I found a similar bug regarding capistrano having the same problem and the workaround offered works beautifully!

The solution/workaround is to forcibly detach all IO from the process:

#{web_command} -f #{lighttpd_conf} </dev/null >/dev/null 2>&1

For non-unix geeks, this:

  • merges stdout and stderr (2>&1)
  • redirects stdout to /dev/null
  • redirects/attaches /dev/null to stdin

By doing this, ssh doesn't hang around waiting for more stuff to happen. This is specific to lighttpd, but I'm guessing there are other daemons out there with similar problems.

Vlad the Deployer is pragmatic application deployment automation, without mercy. Much like Capistrano, but with 1/10th the complexity. Vlad integrates seamlessly with Rake, and uses familiar and standard tools like ssh and rsync.

Impale your application on the heartless spike of the Deployer.

FEATURES/PROBLEMS:

  • Full deployment automation stack.
  • Turnkey deployment for mongrel+apache+svn.
  • Supports single server deployment with just 3 variables defined.
  • Built on rake. Easy. Engine is small.
  • Very few dependencies. All simple.
  • Uses ssh with your ssh settings already in place.
  • Uses rsync for efficient transfers.
  • Run remote commands on one or more servers.
  • Mix and match local and remote tasks.
  • Compatible with all of your tab completion shell script rake-tastic goodness.
  • Ships with tests that actually pass in 0.028 seconds!
  • Does NOT support Windows right now (we think). Coming soon in 1.2.

Changes:

1.1.0 / 2007-09-12

  • 3 major enhancements:
    • Vlad.load now takes a hash of recipe overrides, eg: Vlad.load :web => :nginx. See rdoc for defaults.
    • Removed vlad_tasks.rb and split into vlad/apache.rb, vlad/mongrel.rb, and vlad/core.rb.
    • The flog ratio between capistrano+deps / vlad+deps is pi (or, damn close)!
  • 12 minor enhancements:
    • Added $TRACE to make it more available and cleaner to read.
    • Added :svn_cmd variable.
    • Added Rake.clear_tasks *str_or_regexp
    • Added debug and mana_from_heaven tasks to Rakefile.
    • Added more documentation.
    • Added :rsync_cmd and :rsync_flags.
    • Added :ssh_cmd and :ssh_flags.
    • Added variable expansion to vlad:debug task.
    • Removed :scm variable. Now a Vlad.load component/flavor/need-a-word-here.
    • Removed :application var. Use it if you want it. We don't require it.
    • Renamed :p4cmd to :p4_cmd.
    • Renamed :rake var to :rake_cmd.
  • 2 (important) bug fixes:

    • HUGE: Fixed sudo hang bug #13072. Fix suggested by Chris Van Pelt.
    • HUGE: Vlad.load calls user config last, allowing variable overrides. ACK! Sorry!
  • http://rubyhitsquad.com/

  • http://rubyforge.org/projects/hitsquad/

Comparing flog scores of the upcoming Vlad 1.1 + dependencies to capistrano + dependencies:

vlad  = 801.703121839339 + 2852.62383908144
cap   = 11480.3919695285
ratio = cap / vlad
      = 3.141588613252   # <-- zomg! look here!!!

ratio - Math::PI
= -4.04033779499713e-06

target = cap / Math::PI
= 3654.32226116592

target - vlad
= -0.00469975485839313

EDIT: Cleaned up for the terminally ADD. You'd think arithmetic was hard...

ADDED: From Wilson:

"What I'm seeing here is that the endless cycle of creation and destruction cried out for a hero... and Vlad answered the call"

"The Ruby Hit Squad has been activated"... that was the message I sent people, and less than 2 weeks later, it happened.

From Saturday, August 4th to Tuesday, August 7th, the Ruby Hit Squad was in full effect. We flew in the prodigious Wilson Bilkovich from Florida, holed ourselves up, and 4 days later we had an all but polished product: Vlad the Deployer.

Severely tired, it took a little while to get the last of it polished off, but we finally got Vlad out the door. We did 94 commits in the first 4 days, and another 42 following to get the release polished up and out the door. It is probably the best that Eric or I have done wrt spit and polish on a 1.0 release, with impl, tests, a fairly complete website, and rdoc. I'm quite happy with it.

I had sooo much fun doing this. I hope that the hit squad can be activated again soon... Right after my nap.

About this Archive

This page is a archive of recent entries in the RubyHitSquad category.

Ruby is the previous category.

RubySadism is the next category.

Find recent content on the main index or look in the archives to find all content.

Pages

Powered by Movable Type 4.32-en