Plasticx Blog

Capable of being shaped or formed

[ANN] impostor 0.0.1 Released

Posted by Mike 02/08/2008 at 10:56AM

impostor version 0.0.1 has been released!

Makes automatic posts to the following forum applications:

  • Web Wiz Forums (WWF) 7.9
  • Web Wiz Forums (WWF) 8.0
  • PHP Bullitin Board (phpBB) 2.0 (2.0.22)

SYNOPSIS:

# config yaml has options specefic to wwf79, wwf80, phpbb2, etc.
# read the impostor docs for options to the kind of forum in use
# config can be keyed by symbols or strings
config = YAML::load_file('conf/impostor.yml')
post = WWW::Impostor.new(config)
message = %q{hello world is to application
programmers as tea pots are to graphics programmers}
# your application stores forum and topic ids
post.post(forum=5,topic=10,message)
# make a new topic
subject = "about programmers..."
post.new_topic(forum=7,subject,message)
post.logout

Changes:

0.0.1 / 2008-02-02

  • 1 major enhancement
    • Birthday!

by Mike Mondragon
http://impostor.rubyforge.org/

Posted in , , |

Collect your contacts with the Blackbook Gem

Posted by Mike 02/01/2008 at 03:26PM

Dave Myron of Contentfree wrote a great Gem that he’s
named Blackbook. The Gem is hosted in the
Contentfree collection on Ruby
Forge. Blackbook imports
contacts from a number of sources and currently supports AOL Mail, GMail, Hotmail,
Yahoo! Mail, and contacts from CSV file. Blackbook exports the contacts that have
been collected as XML and VCard formatted text or as an Array of Hashes
with :name and :email keys.

Posted in , , |

be nice to ducks or I will mock you

Posted by Mike 01/24/2008 at 12:18PM

When I first started programming Ruby I lurked on the Seattle.rb mailing list and then gathered the courage to finally attend a meeting. At the time I had written a Perl script that did the basics of what MMS2R does and it was lucky for me that Aaron Patterson who coincidently maintains WWW::Mechanize was also a member of Seattle.rb. My Perl script was using Perl’s original version of WWW::Mechanize to scrape pictures from MMS that were sent by mobile subscribers to Sprint.

I knew that it would be a great experience to me if I converted the Perl script into a Gem. I would be contributing to the Ruby community, I would be learning how to author a Gem, and I would improve on my coding and testing abilities.

A testing problem I was perplexed with was how should I test my code that reaches out to Sprint’s content servers to scrape images? The other cellular carriers actually deliver their images mime-encoded in the MMS payload so testing them in a closed environment is simple enough with a fixture.

Posted in , |

mms2r 2.0.0 Released

Posted by Mike 01/23/2008 at 02:15PM

mms2r version 2.0.0 has been released!

Upcoming!

DESCRIPTION:

MMS2R is a library that decodes the parts of an MMS message to disk while
stripping out advertising injected by the mobile carriers. MMS messages are
multipart email and the carriers often inject branding into these messages. Use
MMS2R if you want to get at the real user generated content from a MMS without
having to deal with the cruft from the carriers.

If MMS2R is not aware of a particular carrier no extra processing is done to the
MMS other than decoding and consolidating its media.

Contact the author to add additional carriers to be processed by the library.
Suggestions and patches appreciated and welcomed!

Corpus of carriers currently processed by MMS2R:

  • Alltel: message.alltel.com
  • AT&T/Cingular/Legacy: mms.att.net, txt.att.net, mmode.com, mms.mycingular.com,
    cingularme.com
  • Dobson/Cellular One: mms.dobson.net
  • Helio: mms.myhelio.com
  • Hutchison 3G UK Ltd: mms.three.co.uk
  • LUXGSM S.A.: mms.luxgsm.lu
  • NetCom (Norway): mms.netcom.no
  • Nextel: messaging.nextel.com
  • O2 Germany: mms.o2online.de
  • Orange & Regional Oranges: orangemms.net, mmsemail.orange.pl, orange.fr
  • PXT New Zealand: pxt.vodafone.net.nz
  • Sprint: pm.sprint.com, messaging.sprintpcs.com
  • T-Mobile: tmomail.net
  • Verizon: vzwpix.com, vtext.com

Changes:

1.2.0 / 2008-01-23 (Skwisgaar Skwigelf – fastest guitarist alive)

  • added support for pxt.vodafone.net.nz PXT New Zealand
  • added support for mms.o2online.de O2 Germany
  • added support for orangemms.net Orange UK
  • added support for txt.att.net AT&T
  • added support for mms.luxgsm.lu LUXGSM S.A.
  • added support for mms.netcom.no NetCom (Norway)
  • added support for mms.three.co.uk Hutchison 3G UK Ltd
  • removed deprecated #get_number use #number
  • removed deprecated #get_subject use #subject
  • removed deprecated #get_body use #body
  • removed deprecated #get_media use #default_media
  • removed deprecated #get_text use #default_text
  • removed deprecated #get_attachment use #attachment
  • fixed error when Sprint content server responds 500
  • better yaml configs
  • moved TMail dependency from Rails ActionMailer SVN to ‘official’ Gem
  • ::new greedily processes MMS unless otherwise specified as an initialize
    option :process => :lazy
  • logger moved to initialize option :logger => some_logger
  • testing using mocks and stubs instead of duck raped Net::HTTP
  • fixed typo in name of method #attachement to #attachment
  • fixed broken downloading of Sprint videos

Posted in , , |

Gentoo init.d script for a Rails mongrel cluster

Posted by Mike 12/23/2007 at 02:45PM

Here is my Gentoo init.d script for a mongrel cluster running a Rails app.

/etc/init.d/mongrel

#!/sbin/runscript

depend() {
        need net
        use apache2 mysql
        after apache2 mysql
}

start() {
        ebegin "Starting mongrels"
        start-stop-daemon --start --chuid $USER --exec $MONGREL \
        -- cluster::start -C $MONGREL_CONF
        eend $?
}

stop() {
        ebegin "Stopping mongrels"
        start-stop-daemon --start --chuid $USER --exec $MONGREL \
        -- cluster::stop -C $MONGREL_CONF
        eend $?
}

status() {
        ebegin "mongrel status"
        start-stop-daemon --start --chuid $USER --exec $MONGREL \
        -- cluster::status -C $MONGREL_CONF
        eend $?
}

/etc/conf.d/mongrel

Gentoo will load script variables for an init.d script from the /etc/conf.d directory where the conf file is the same name is the init.d file. Thus in /etc/conf.d/mongrel

USER=deployer:deployer
MONGREL=/usr/bin/mongrel_rails
MONGREL_CONF=/var/www/mysite/rails_app/shared/mongrel_cluster.conf

Some things to point out:

  • this integrates perfectly with Gentoo’s rc-status command
  • the mongrel cluster will be running as the user/group defined in USER (i.e. safer non-root)
  • mongrel_cluster.conf is a standard mongrel cluster configuration that you would have generated with Capistrano, Vlad or written by hand
  • start-stop-daemon command is executed in —start mode because all of the commands ‘start’ ‘stop’ ‘restart’ ‘status’ are delegated to the mongrel_rails executable
  • because you are running the commands as a non-root user your Capistrano or Vlad tasks (rake vlad:start_app) will still work from your remote shell (you’re not running as root through ssh right!?)

Posted in , , |

Last blog post of 2007?

Posted by Mike 12/11/2007 at 02:10PM

Synopsis

I’ve been in a writers block for useful bits of information to post on my blog. I guess I’ll give a summary of things I’ve seen and done lately and perhaps that will inspire others.

Work

I started my own S-Corp. to work freelance out of over the summer. I was motivated to do so after attending the The Business of Rails session at RubyConf 2007. And I’ve gotten a lot of great tips on how to be a business person in Rails from the Google group Ruby on Rails meets the business world

I started consulting through Contentfree over the summer. They are a Rails consulting shop and have been working on a startup for their Eachday photo and memories sharing site. Its been great to working with Dave Myron there. Dave is one of the best coders and software designers I’ve ever worked with and I’m not saying that just to get more work!

RubyConf

I went to RubyConf 2007. It was fun. I played a lot of Werewolf (see #53) in the evenings. Sadly, it felt like the close knit party was/is over in the Ruby community since all the momentum that Rails has brought to Ruby is bringing in the masses (I’m in that group, one of “those guys”). My guess is that RailsConf 2008 is going to feel like a JavaOne, and RubyConf 2008 will feel like RailsConf 2007 with to many tracks.

#fauna

At RubyConf I got to meet the people I’ve met in the #fauna channel on irc.freenode.net. I think some of the greatest Ruby code and ideas I’ve been exposed to are from people in that channel. Shout outs to adamblock, agile, evn, lifo, heaveysixer, loincloth, defunkt, and others.

Evan Weaver

Evan is a genius and pretty cool dude.

Pratik

Pratik is a genius and is very active on RailsCore contributions. He says Just Say No To Named Spaced Models so I guess you should ignore this post: Rails Models in a Namespace

Chris Wanstrath

Chris is a genius is full of ambition Ambition Google Group

ditching Typo

I’m probably going to ditch this Typo blog when I can make time to do it. I’ll either go with an another Rails based blog called Mephisto or Evan Weaver’s Bax blog which uses scripts and Apache SSI and is hidden on fauna’s SVN on Ruby Forge: ‘svn co svn://rubyforge.org/var/svn/fauna/bax’

like Ozimodo

I’ve been thinking about doing a Camping based tumblelog. I even paid a designer to make a template for it. I’ll blog about that latter. It will be like Ozimodo and probably steel code from it.

imPOSTor

I’m sitting on a Gem called imPOSTor that will post comments to forums such as phpBB and Web Wiz Forums . I’ll probably release within the month. It has been working inside a production grade private Rails app for over a month so I think its ready to be released. “The imPOSTor library is used to automate the act of posting comments and data to forums such as phpBB and WWF. impostor encapsulates the work of posting to these forums using a common (ruby) interface.”

MMS2R

I’m about to finish the next major version of MMS2R (2.0) . I think I’ve found the best architecture for it be maintained for the long haul. Each release of MMS2R is named after a character in the Metalocalypse cartoon.

Speaking of MMS2R Luke Francl and I submitted a MMS + Rails proposal for RubyConf 2008 called “Mobile Messaging with Rails”. Luke and I are also writing a PeepCode book about Rails+MMS+Mobile phones.

Posted in , , , , , , , |

wrapping processes in IO.popen and festivaltts4r

Posted by Mike 10/26/2007 at 12:09PM

There is a cool gem called Festival TTS for Ruby . What it does is take text, pass it into the The Festival Speech Synthesis System , then transform the WAV from Festival into an MP3. festivaltts4r provides a programming interface to use its functionality in an application. The project includes a Flash media player so that you can use festivaltts4r easily in a Rails application. Listen to their example Rails application. To use the Flash player you need to check out the project as a plugin to your Rails app like so:

Posted in , , |


Web Statistics