net-http-persistent 1.1
Eric Hodel | Wed, 19 May 2010 03:56:11 GMT
Persistent connections using Net::HTTP plus a speed fix for 1.8. It’s thread-safe too!
Changes
Minor Enhancements
Proxy support, see Net::HTTP::Persistent::new, Net::HTTP::Persistent#proxy_from_env
Added name parameter to Net::HTTP::Persistent::new for separation of connection pools.
Added Net::HTTP::Persistent#shutdown so you can clean up after yourself
Net::HTTP::Persistent now suppresses “peer certificate won’t be verified in this SSL session” warning.
Bug Fixes
Net::HTTP::Persistent retries requests in accordance with RFC 2616.
imap_processor 1.3
Eric Hodel | Wed, 05 Aug 2009 02:38:30 GMT
IMAPProcessor is a client for processing messages on an IMAP server. It provides some basic mechanisms for connecting to an IMAP server, determining capabilities and handling messages.
IMAPProcessor ships with the executables imap_keywords which can query an IMAP server for keywords set on messages in mailboxes, imap_idle which can show new messages in a mailbox and imap_archive which will archive old messages to a new mailbox.
Changes
- IMAP IDLE support now matches ruby trunk’s support. See Net::IMAP#idle and Net::IMAP#idle_done
rc-rest 3.0.0
Eric Hodel | Fri, 10 Jul 2009 21:31:00 GMT
Robot Co-op REST web services base class. This library makes it easy to implement REST-like web services APIs.
Changes
- Upgrade to Nokogiri from REXML. This is incompatible with 2.x and older. Thanks Aaron Patterson!
smtp_tls 1.0.3
Eric Hodel | Wed, 08 Jul 2009 23:18:00 GMT
Provides SMTP STARTTLS support for Ruby 1.8.6 (built-in for 1.8.7+). Simply require ‘smtp_tls’ and use the Net::SMTP#enable_starttls method to talk to servers that use STARTTLS.
require 'net/smtp'
begin
require 'smtp_tls'
rescue LoadError
end
smtp = Net::SMTP.new address, port
smtp.enable_starttls
smtp.start Socket.gethostname, user, password, authentication do |server|
server.send_message message, from, to
end
You can also test your SMTP connection settings using mail_smtp_tls:
$ date | mail_smtp_tls smtp.example.com submission \
"your username" "your password" plain \
from@example.com to@example.com
Using SMTP_TLS 1.0.3
-> "220 smtp.example.com ESMTP XXX\r\n"
<- "EHLO you.example.com\r\n"
-> "250-smtp.example.com at your service, [192.0.2.1]\r\n"
-> "250-SIZE 35651584\r\n"
-> "250-8BITMIME\r\n"
-> "250-STARTTLS\r\n"
-> "250-ENHANCEDSTATUSCODES\r\n"
-> "250 PIPELINING\r\n"
<- "STARTTLS\r\n"
-> "220 2.0.0 Ready to start TLS\r\n"
TLS connection started
<- "EHLO you.example.com\r\n"
-> "250-smtp.example.com at your service, [192.0.2.1]\r\n"
-> "250-SIZE 35651584\r\n"
-> "250-8BITMIME\r\n"
-> "250-AUTH LOGIN PLAIN\r\n"
-> "250-ENHANCEDSTATUSCODES\r\n"
-> "250 PIPELINING\r\n"
<- "AUTH PLAIN BASE64_STUFF_HERE\r\n"
-> "235 2.7.0 Accepted\r\n"
<- "MAIL FROM:<from@example.com>\r\n"
-> "250 2.1.0 OK XXX\r\n"
<- "RCPT TO:<to@example.com>\r\n"
-> "250 2.1.5 OK XXX\r\n"
<- "DATA\r\n"
-> "354 Go ahead XXX\r\n"
writing message from String
wrote 91 bytes
-> "250 2.0.0 OK 1247028988 XXX\r\n"
<- "QUIT\r\n"
-> "221 2.0.0 closing connection XXX\r\n"
This will connect to smtp.example.com using the submission port (port 587) with a username and password of “your username” and “your password” and authenticate using plain-text auth (the submission port always uses SSL) then send the current date to to@example.com from from@example.com.
Debug output from the connection will be printed on stderr.
Changes:
- 1 minor enhancement
- Added mail_smtp_tls executable to test SMTP connections
- 2 bug fixes
- Suppress default DH parameters warning
- Pass debug output down to child IOs
imap_processor 1.2
Eric Hodel | Wed, 08 Jul 2009 01:17:00 GMT
imap_processor version 1.2 has been released!
IMAPProcessor is a client for processing messages on an IMAP server. It provides some basic mechanisms for connecting to an IMAP server, determining capabilities and handling messages.
IMAPProcessor ships with the executables imap_keywords which can query an IMAP server for keywords set on messages in mailboxes, imap_idle which can show new messages in a mailbox and imap_archive which will archive old messages to a new mailbox.
Changes:
- 2 major enhancements
- imap_archive which archives old mail to dated mailboxes
- imap_idle which lists messages that were added or expunged from a mailbox
- 4 minor enhancements
- Added IMAPProcessor#create_mailbox
- Added IMAPProcessor#delete_messages
- Added IMAPProcessor#move_messages
- Disabled verification of SSL certs for 1.9
- 1 bug fix
- Fixed options file names, they should be Symbol keys
rubypan 1.0 released
Eric Hodel | Fri, 17 Apr 2009 00:19:00 GMT
rubypan version 1.0 has been released!
A gem command plugin that adds `gem ferret` to perform fulltext searching of rubypan.org. Requires RubyGems 1.3.2+
$ gem ferret Eric Hodel action_profiler (1.0.0) ar_mailer (1.3.1) ar_mailer_generator (1.0.0) cached_model (1.3.1) firebrigade_api (1.0.0) geocoder-us (1.1.1) [...]
quick_cert 2.0
Eric Hodel | Thu, 16 Apr 2009 08:41:00 GMT
quick_cert version 2.0 has been released!
seattlerb.rubyforge.org/quick_cert
rubyforge.org/projects/seattlerb
quick_cert allows you to quickly and easily create SSL certificates. It uses a simple configuration file to generate self-signed client and server certificates.
quick_cert (formerly QuickCert) was one of the first things I released for Ruby, some four years ago. I’ve heard over the years that (shockingly!) people have continued to use it. Here it is for the first time as a gem!
Changes:
- 2 minor enhancements:
- Released as a gem
- Reorganized for Hoe
- 3 discoveries:
- CVS is odd after not using it for so long
- My ruby style hasn’t changed much in the past five years
- I still don’t know how OpenSSL works
200thish Seattle.rb Meeting!
Eric Hodel | Wed, 10 Dec 2008 03:07:50 GMT
Next week is the 200thish Seattle Ruby Brigade meeting. We’re not sure exactly how many meetings we’ve had, but we’re celebrating right around our bicentennial!
Our 200thish meeting will be at the usual place and time. The meeting will feature cake and party hats! It’s also Aaron Patterson’s 28th birthday, so there will even be an extra cake!
Firebrigade Home Page Fixed
Eric Hodel | Tue, 18 Sep 2007 02:40:22 GMT
I denormalized a bit and beat the tests back into shape and the Firebrigade home page is back to life! Next I’m going to sand down a few rough edges on RubyGems to get a beta shipped suitable for feedback.
Firebrigade is now fully vladified using perforce.
Here’s the two setup steps you need for perforce:
- Require ‘vlad/perforce’ at the top of config/deploy.rb.
- Your .p4config goes in the scm/ directory of the server’s checkout.
- Run p4 client in the scm/ directory and set your View to //path/to/project/... //clientname/...
Hopefully we can fully automate this so the vlad:setup_app task can handle this automatically.
I also had to do some custom setup for firebrigade because it uses RubyInline and needs the INLINEDIR set. I just added extra stuff to the setup_app task:
namespace :vlad do
remote_task :setup_app do
cmds = [
"mkdir #{inline_dir}",
"sudo chown www:www #{inline_dir}",
]
run cmds.join(' && ')
end
end
Update: Automatic p4 setup is done!
production_log_analyzer version 1.5.0 has been released!
Eric Hodel | Wed, 16 May 2007 21:43:57 GMT
production_log_analyzer provides three tools to analyze log files created by SyslogLogger. pl_analyze for getting daily reports, action_grep for pulling log lines for a single action and action_errors to summarize errors with counts.
http://seattlerb.rubyforge.org/production_log_analyzer
sudo gem install production_log_analyzer
Changes:
1.5.0
- Fixed empty log bug. Patch by Tim Lucas.
- Fixed bug where sometimes lines would be logged before the Processing line. Patch by Geoff Grosenbach.

Articles