Month: January 2008

  • Rails 2.0: Gmail SMTP With ActionMailer

    Marc just checked in a nifty little Rails 2.0 plugin to the OpenRain public subversion repository which encapsulates the voodoo required to use a Gmail SMTP server with an otherwise ordinary ActionMailer configuration. Gmail requires TLS security, which is why this is useful. Grab the plugin for your Gmail-mooching Rails 2.0 site, here.

    Note: I previously wrote about how to do this for Rails 1.2.x here.

    Update (2008.06.25): Broken download link fixed!

     

  • Small Office VoIP: Skype Pros/Cons

    skype_logo.pngBefore the 2007 tax year ended, OpenRain decided to finally solidify a telephony strategy for the next year or so. Key requirements were..

    • Easy ad-hoc and scheduled conferences.
    • Mobile flexibility and continuity across physical locations.
    • Scalability for the next couple years.
    • Voice mail
    • Call forwarding.
    • Little to no management overhead. (I don’t want to run a dedicated PBX.)
    • Usable hardware.
    • Practical prices for worldwide incoming/outgoing calls.
    • Less than ~$2K initial investment.

    It came down to one of two primary directions..

    1. Hosted VoIP (such as with Vonage or Qwest) with SIP phones such as from Cisco or Avaya.
    2. Skype with 3rd-party hardware and Mac soft-phone.

    After some debate, we chose to use Skype exclusively for services, and have been fairly satisfied. I have a few beefs, but at less than $100 per year per person, I can’t complain too much.

    Skype Pros:

    • Instant gratification. Easy to set yourself up for calls to/from landlines.
    • Good soft-client with videoconferencing support; Address Book.app integration is present in the latest Mac beta client.
    • Inexpensive. Less than $100 per seat per year for SkypePro and SkypeIn (an incoming number).
    • Awesome value when bundled with an IPEVO SOLO.
    • Extremely simple web interface for distributing company credits.
    • Concurrent logins from multiple locations. I leave my SOLO on 24/7 and use the soft-client on the road.
    • Great quality on Skype-to-Skype calls. Good quality to landlines.

    Skype Cons:

    • My biggest gripe: In the U.S., outgoing calls do NOT show your SkypeIn number on the recipients phone.
    • Vendor lock-in, since Skype uses a proprietary protocol. Since cost of entry for services is so low, however, it may not be a huge deal if your want to switch to a SIP-based provider.
    • The WiFi-Phones all suck. The IPEVO SOLO is the only desktop model I like.
    • Possible future screwage of SkypeIn numbers if they ever change.
    • No 911, which is a general issue with VoIP services.
  • Ruby Troubleshooting: Hpricot On OS X Leopard

    If you upgraded to Leopard, you may be getting this nasty error when trying to install Hpricot, which is required by other popular gems such as mechanize..

    preston$ sudo gem install mechanize
    Password: ********

    Bulk updating Gem source index for: http://gems.rubyforge.org
    Install required dependency hpricot? [Yn]
    Select which gem to install for your platform (i686-darwin8.10.3)
    1. hpricot 0.6 (mswin32)
    2. hpricot 0.6 (jruby)
    3. hpricot 0.6 (ruby)
    4. hpricot 0.5 (ruby)
    5. hpricot 0.5 (mswin32)
    6. Skip this gem
    7. Cancel installation
    > 3
    Building native extensions. This could take a while…
    ERROR: While executing gem … (Gem::Installer::ExtensionBuildError)
    ERROR: Failed to build gem native extension.

    ruby extconf.rb install mechanize
    checking for main() in -lc… no
    creating Makefile

    make
    gcc -I. -I. -I/opt/local/lib/ruby/1.8/i686-darwin8.10.3 -I. -I/opt/local/include -fno-common -O2 -fno-common -pipe -fno-common -c hpricot_scan.c
    cc -dynamic -bundle -undefined suppress -flat_namespace -L/opt/local/lib -L”/opt/local/lib” -o hpricot_scan.bundle hpricot_scan.o -lruby -lpthread -ldl -lobjc
    /usr/bin/ld: /usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../libpthread.dylib unknown flags (type) of section 6 (__TEXT,__dof_plockstat) in load command 0
    /usr/bin/ld: /usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../libdl.dylib unknown flags (type) of section 6 (__TEXT,__dof_plockstat) in load command 0
    /usr/bin/ld: /usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../libobjc.dylib load command 9 unknown cmd field
    /usr/bin/ld: /usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../libSystem.dylib unknown flags (type) of section 6 (__TEXT,__dof_plockstat) in load command 0
    /usr/bin/ld: /usr/lib/libSystem.B.dylib unknown flags (type) of section 6 (__TEXT,__dof_plockstat) in load command 0
    collect2: ld returned 1 exit status
    make: *** [hpricot_scan.bundle] Error 1

    Gem files will remain installed in /opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6 for inspection.
    Results logged to /opt/local/lib/ruby/gems/1.8/gems/hpricot-0.6/ext/hpricot_scan/gem_make.out

    The issue is that Xcode 3 must be upgraded as well; Hpricot’s native components cannot be built with the older Tiger development tools on Leopard. After installing Xcode 3 from either your Leopard DVD or Apple Developer Connection, run the install again…

    preston$ sudo gem install mechanize

    Install required dependency hpricot? [Yn] Y
    Select which gem to install for your platform (i686-darwin8.10.3)
    1. hpricot 0.6 (mswin32)
    2. hpricot 0.6 (jruby)
    3. hpricot 0.6 (ruby)
    4. hpricot 0.5 (ruby)
    5. hpricot 0.5 (mswin32)
    6. Skip this gem
    7. Cancel installation
    > 3
    Building native extensions. This could take a while…
    Successfully installed mechanize-0.6.11
    Successfully installed hpricot-0.6
    Installing ri documentation for mechanize-0.6.11…
    Installing ri documentation for hpricot-0.6…
    Installing RDoc documentation for mechanize-0.6.11…
    Installing RDoc documentation for hpricot-0.6…

    Success!