Automator workflow for quick and easy screenshot sharing via Dropbox

I created a simple Automator workflow to quickly share screenshots via Dropbox. Here’s what it does:

  1. Detect when a new screenshot is added to the Desktop
  2. Move the image to ~/Dropbox/Public/Screenshots/
  3. Copy its public link to the Clipboard

Currently I use this mostly for adding sceenshots to GitHub Pull Requests and Issues.

If you think this is useful for you, too, head over to the Goodies section for the download and installation- and modification-instructions.

Essential Mac third-party software

I recently got a new MacBook Air at work.
Thanks to the increasing number of tools like iCloud, Dropbox and GitHub I can store and backup more and more of my digital stuff online. This makes setting up a new Mac from scratch pretty effortless. And so I did.

I thought it would be interesting to write down what third-party apps are essential for me to get work done. Here’s the list:

  • Dropbox
    Apart from music, photos and code, I store all my documents here. This also includes my bash profile and gitconfig dotfiles to set up the respective tools.

  • TextMate
    Still my editor of choice.

  • Git
    For source control management. I definitely need to access my work and personal code repositories.

  • Things
    Despite missing cloud-sync, it’s still the only to-do app I want to use.

  • Skype
    For chat and calls.

  • Alfred
    Quick access to anything on your Mac and the web.

  • Jumpcut
    To be able to access my clipboard history.

  • Divvy
    The best window management software.

  • Rdio
    On-demand music to listen to throughout the day. It’s absolutely fantastic.

  • 1Password
    My password manager of choice. Great for storing other sensitive data, too.

  • Skitch
    For taking and annotating screenshots.

  • MenuMeters
    Drives me crazy when I can’t monitor how my Mac is performing.

  • Homebrew
    The easiest way to install UNIX tools.

  • rbenv and ruby-build
    For installing and running different versions of Ruby.

  • Rubygems
    Essential when programming with Ruby and Rails.

  • Chrome
    Mostly to access Flash content without having to install Flash Player for Safari.

I will install more software as time goes on, but since I didn’t need to install them so far, I wouldn’t call them essential.

My current iPhone homescreen

My current iPhone homescreen

Rdio

I recently subscribed to Rdio. What an amazing new(ish) music service.
For NZD 13.90 a month - less than the price of one album on iTunes - I can pretty much listen to anything. I don’t have to own it and everything is streamed in excellent quality (256 kbps MP3 files) to my MacBook, my iPad and my iPhone. I can even download albums and songs to my mobile devices to enjoy offline or on-the-go.

The software is great, too. Signing up, setting up, navigating, discovering, listening, using - everything is top notch. I regularly catch myself listening to music on Rdio, although it’s in my iTunes library and I wouldn’t have to stream it. It’s just more convenient.
What I particularly like is the “Queue”, to which I can constantly add new albums to and don’t have to worry that it stops playing.

Of course, there are things that could be better. My biggest complaint is the unavailability of quite a few albums due to licensing restrictions. Although I very rarely find an album they don’t have in their catalogue at all, sometimes albums are just not available in New Zealand at this point. I really hope that gets better over time.
Other features I would like to see are the ability to rate/like/favorite songs as well as Airplay support for the Mac Desktop app.

But all in all, Rdio is amazing value for money. And for me, it makes discovering and listening to music fun again without having to ponder on what albums I am going to spend money on next.

Memento Mori

We are all going to die. To remind you not to waste your life, here are 5 good articles I came across recently for you to read:

For many years I worked in palliative care. My patients were those who had gone home to die. […] When questioned about any regrets they had or anything they would do differently, common themes surfaced again and again. Here are the most common five.

Regrets of the Dying - Bronnie Ware

There’s a common misconception that work is necessary. You will meet people working at miserable jobs. They tell you they are “making a living”. No, they’re not. They’re dying, …

Don’t work. Be hated. Love someone. - Adrian Tan

I believe I’m as happy as it is possible to be. […] This is a happiness I wish on everyone alive. The question then is, what are the factors that contribute to my happiness?

as happy as possible - Leo Babauta

I was having a discussion with an entrepreneur neighbor about how we might best raise our kids to think for themselves and be successful, instead of thinking like everyone else and confusing “getting a job” or “building a career” with success.

Risk: You have to be willing to lose to win - Ken Rockwell

But not everybody thinks this way. What we think is obvious, others find to be amazing.

Lessons Learnt from Derek Sivers and Thomas Edison - Benjamin Spall

I recommend you read them all.

Better understand Creative Commons’ non-commercial licenses

Creative Commons offers three licenses that allow others to re-use your material for non-commercial purposes. That material is mostly photos in my case.
It turns out, the least-restrictive one of those three - Attribution-NonCommercial (BY-NC) - is all you need if you only care about the “non-commercial” part. That sounds kind of obvious, but I was confused by one other non-commercial license.

Here are the three licenses as described on the Creative Commons homepage, ordered from most-restrictive to least-restrictive:

Attribution-NonCommercial-NoDerivs (BY-NC-ND)
This license is the most restrictive of our six main licenses, only allowing others to download your works and share them with others as long as they credit you, but they can’t change them in any way or use them commercially.

Attribution-NonCommercial-ShareAlike (BY-NC-SA)
This license lets others remix, tweak, and build upon your work non-commercially, as long as they credit you and license their new creations under the identical terms.

Attribution-NonCommercial (BY-NC)
This license lets others remix, tweak, and build upon your work non-commercially, and although their new works must also acknowledge you and be non-commercial, they don’t have to license their derivative works on the same terms.

I want my photos to be available for the widest range of use-cases and people/institutions possible, as long as these use-cases are non-commercial and I get credited. I am fine with modifications of my work, so I didn’t need to use the most-restrictive BY-NC-ND license. For my photos, I chose the middle one: BY-NC-SA. The reason for choosing this one over the less-restrictive BY-NC license was, that I was not sure about this line from the description of that license:

[…]although their new works must also acknowledge you and be non-commercial, they don’t have to license their derivative works on the same terms.

I thought this meant, someone could use my photos, modify them the tiniest bit and then release it under any other license, including one that does allow commercial re-use.
After some research, I discovered that this might be a myth, as Terry Hancock writes:

The only real reason most people care about using “ShareAlike” with “NonCommercial” is because they think it protects them from commercial exploitation of the derivative works.

However, this isn’t necessary. Deriving from a work in order to make commercial use of the derivative is considered “commercial use.”

That describes exactly what I was worried about.
There are some more websites that seem to implicitely support this statement: Creative Commons’ own “Choose a License” page, Flickr’s Creative Commons page as well as this article on the SquidooHQ blog. Here are these parts (emphasis mine).

From Flickr:

Noncommercial means:
You let others copy, distribute, display, and perform your work - and derivative works based upon it - but for noncommercial purposes only.

From SquidooHQ:

You let others copy, distribute, display, and perform your work - and derivative works based upon it - but for noncommercial purposes only. You can also remix, tweak, and build upon the image, use it non-commercially, and license the new version under a different Creative Commons license if you so choose. The new license must be non-commercial.

However, none of these pages list any official sources from Creative Commons - at least not directly regarding these particular statements.
Eventually, I was able to find an answer, buried in Creative Commons’ Frequently Asked Questions. The table under “If I derive or adapt a work offered under a Creative Commons license, which CC license(s) can I apply to the resulting work?” clearly shows, that derivatives/adaptations of work which was originally released under a non-commercial license, can only be re-licensed for non-commercial purposes:

Now I finally feel comfortable using the least-restrictive BY-NC license without having to worry about that derivatives of my work might get re-licensed for commercial purposes.

Running a Rails app in production using rbenv, Apache and Passenger

Recently, I upgraded NZ Walks Info to Rails 3 and Ruby 1.9.3. In order to run this new setup successfully, I needed to upgrade the Ruby version on the server. I chose ruby-build and the rbenv Ruby Version Manager to do so and would like to share some simple instructions that worked for me.

Read More...

Pow and Rails 2.3.x apps

Pow has just been released by 37signals:

Knock Out Rails & Rack Apps Like a Superhero.
Pow is a zero-config Rack server for Mac OS X. Have it serving your apps locally in under a minute.

Usually, there’s no configuration needed at all, but in order to get my old Rails 2.3.x apps running, I needed to “rackup” all of these. Following the Rails Guides instructions, I had to create a config.ru file with the following contents:

# RAILS_ROOT/config.ru
require "config/environment"

use Rails::Rack::LogTailer
use Rails::Rack::Static
run ActionController::Dispatcher.new

Then I was good to go.
Unless…

Read More...