Blog

  • What's Better Than Windows Balloon Help?…

    Twice as much balloon help!

    picture-3.png

    My current testing environment for JumpBox development uses two Windows XP virtual machines on OS X under Parallels coherence mode: one with IE6 (gold taskbar on the bottom), the other IE7 (blue taskbar on the right). While they perform sufficiently with 4GB physical RAM, the constant nurturing required to keep these retards up to date and complaint free is ridiculous, given I only boot them once every couple weeks. Dyslexia also arises when each instance periodically “forgets” I’m using a Dvorak layout and reverts to QWERTY, even when sitting idle.

    picture-1x.png

    It’s the little things that drive one nuts. Office 2004 for OS X, for example, sets the bar really low for usability, quality and elegance. Full-screen mode?

    full_screen.png

    ..I guess not. And I won’t be inserting any cells into this table, either…

    insert_cells.png

    Given a choice between A and A, I think I’ll choose A.

    spell_check.png

    Waaaaay too much of this stupidity plagues Office. Not that Microsoft has much motivation to fix it, but it’s still sad to see such crappy software in wide-spread use.

    preston.rant_mode = false

  • 6 Things I'm Thankful For

    Bread BowlAn awesome first business year for OpenRain. The constant stress of context switching between software projects has become more managable, making weekend relaxation slightly more frequent. Marc has been a geeky Asian version of Superman, and our part-time office manager Gracie has been a godsend. Business has been great, and 2008 should be an exciting growth period.

    Bread bowls. Especially the kind filled with Cream of Broccoli soup.

    Not being poor. It’s easy to forget all the small luxuries afforded by a modest middle-class suburban family. Indoor plumbing, internet access, telephones, health care, shelter, affordable schooling… these aren’t common in many parts of the world.

    Loads of opportunities. One of the most motivating and simultaneously scary realities of running your own software company today is knowing you hold all the keys to your own future. There are so few barriers (especially economic) to today’s start-up that there is little excuse for not taking the risks and giving it your all. This year alone I’ve gotten to go to L.A., Washington D.C., England, San Francisco, Mendocino (California), Amsterdam, Austin, Baja and Portland off the top of my head. (Note to self: redeem those frequent flier miles!)

    Cheese. I’m a huge sucker for bree and havarti.

    The awesome people around me. Support structure is fundamental to success, and I’ve been fortunate enough to have a great one. Y’all know who you are!

    It’s been a superb 2007. Cheers to an even better 2008!

  • Switching To Dvorak: One Week Later

    dvorak.pngIt’s been exactly one week since I switched to the Dvorak Simplified Keyboard (DSK) layout. Thoughts…

    • The first couple days are especially frustrating while you memorize key locations and build a small bit of muscle memory for common phrases. Hang in there.. this is the toughest part.
    • Temporarily relabel your real keyboard with cheap stickers from eBay or physically rearrange the keys on a cheapo USB keyboard while you’re learning. Physically mod’ing a QWERTY board kinda sucks, though, because..
      • The nubs for the pointer finger keys are in the wrong place. This alone is a deal breaker.
      • Keys aren’t necessarily manufactured to be of homogeneous shape. Even on my cheapo Memorex, for example, the key tops are sloped differently by row, so rearranging the keys results in what feels like a 3D topology of the Rocky Mountains.
    • The common typos (“teh”, “taht”, “nad” etc.) are different, so..
      • You’ll have to be more accurate in IM conversations. People won’t be able to guess what you meant to type.
      • Spell-checkers won’t work as well.
    • Make every reasonable attempt to avoid using QWERTY while you’re learning.
    • Be prepared to explain to people WTF you just did to their computer when you use it.. Every. Freakin’. Time.
    • Looking for an ergonomic, Dvorak Mac keyboard? LOLL3RSKATES!!! Good luck with that, and let me know if you think your new $300+ Kinesis is worth it.
  • Switching To Dvorak

    dvorak.png
    After years of deliberation, I’m finally taking this Thanksgiving break to switch to the Dvorak keyboard layout. It’s been frustrating, yes, but I believe my wrists will be much better off with the change. Within a couple hours of switching I’m probably crawling at ~15 words per minute, which is faster than I expected. Stuff that still throws me off due to being permanently etched in muscle memory..

    • My name.
    • `cd` and my custom `ls` aliases.
    • OpenRain.
    • . (period)
    • Common commands such as cut/copy/paste, closing and opening files etc.
    • The letter ‘o’ for some reason.

    Ohh, and I switched my command and caps lock keys too, so my brain is a tad bit overloaded at the moment πŸ™‚

  • In The News

    OpenRain affiliate img surf‘s Mugr facial recognition services have been receiving some press lately. Here’s the lowdown of what’s been happening..

    Mad props to the Mugr team for the thrill ride thus far!

  • Featured In Rubyology Podcast #48

    The talk I gave at yesterday’s Phoenix Rails meeting will be featured in Rubyology Podcast #48, courtesy of Chris Matthieu. Thanks for the effort and kind words! The Mugr.com demo portion at the end got cut out unfortunately, but the meat of the technical discussion is available for your listening pleasure.
    Slides: Keynote PDF

    Listen Online or Subscribe on iTunes

  • Rails Presentation: attachment_fu, Kropper and Mugr.com face-based services preview.

    I’m giving a brief talk at tonight’s Rails meeting in Chandler at 7:00pm on what we’re doing with attachment_fu and Kropper for upcoming face-based search service mugr.com. I’ll post the slides afterwards for those who can’t make it, but you won’t get to see the Über-secret developer build unless you come πŸ™‚

    Slides: Keynote PDF

  • Rails attachment_fu/Kropper Scaling Fix: attachment_fu_skip_resize

    I recently integrated Kropper into a custom RoR application for OpenRain affiliate img surf. A fundamental flaw in the upload-save-crop-save process used by Kropper is that attachment_fu automatically scales down the image on first save to :resize_to dimensions. After the subsequent crop–which may result in a significant drop in resolution–the image is scaled back up to :resize_to dimensions: an ugly lossy operation.

    The attachment_fu_skip_resize plugin gives attachment_fu the ability to temporarily bypass resizing of the full-size original image, thus allowing your final cropped photos to be of the highest quality as possible.

    1. Install the plugin.
    2. In your attachment_fu image class, add..
      attr_accessor :skip_resize
    3. Any time you want to save an image without invoking resizing on the original image..
      image.skip_resize = true
      image.save

      Thumbnails will be generated at their defined resolutions regardless of the skip_resize flag.

  • Dynamically Generating SSL Certificates with Ruby on Rails

    OpenRain had a couple projects recently need to programmatically generate private keys and SSL certificates in Ruby. To contribute back to the community, we’re releasing several small things today.

    • SSLsicle.com A simple form which does the OpenSSL grunt work and pop outs an SSL certificate ready to use with Apache (or whatever). SSLsicle uses..
    • eassl_fix A Rails plugin which patches a small but critical bug in the eassl v0.1.1643 gem which makes OpenSSL object manipulation a bit less dense. I’ve submitted a patch (included) to the author, but as of today he hasn’t applied it. (Also, props to the JumpBox guys.)

    If you need to write your own code to generate SSL certificates in Rails..

    1. sudo gem install eassl
    2. Install the eassl_fix plugin
    3. Bust out a view for the user to enter the information that gets baked into the cert and then write a few lines in your controller…
      require 'eassl'
      key = Key.new
      options = {
      :country      => params[:csr][:country],
      :state        => params[:csr][:state],
      :city         => params[:csr][:city],
      :organization => params[:csr][:organization],
      :department   => params[:csr][:department],
      :common_name  => params[:csr][:common_name],
      :email        => params[:csr][:email]
      }
      name = CertificateName.new(options)
      csr = SigningRequest.new(:name => name, :key => key)
      ca = CertificateAuthority.new(:password => nil)
      cert = ca.create_certificate csr
      @pem = key.private_key.to_s
      @pem += cert.to_pem
    4. @pem.to_s will contain an unencrypted private key as well as a signed certificate suitable for deployment.
  • Facial Search Service Coming Soon

    My company recently entered into a partnership with img surf to develop Mugr.com: a facial identification/search service initially targeted at the mobile market. I’m pleased to announce that we already have the base functionality working, and are planning to deploy Mugr.com for experimentation in an invite-only beta starting in October. We’re also planning on providing a developer API and releasing some of the libraries behind the magic of our face search process later this year, which are largely implemented in Ruby.

    Exciting times.

    Let me know if you’re interested in playing with facial search technology as either a user or developer, and I’ll hook you up with an invite code when the time comes.