08.16.11/Sharing aliases and other bash configurations using Dropbox
I have two computers: one at work and one at home. Dropbox has been a fantastic way for me to effortlessly share files between the two.
I often setup aliases, and other bash configurations, in my .bash_profile to make life easier. Though, sometimes I’m not so careful; I’ll set something up on one computer, but forget to do it on the other.
Sharing configurations across two computers is easy thanks to Dropbox. Here’s how:
- Create a file in your Dropbox. I called mine
.bash_profile_shared, and stored it in the root Dropbox folder, for consistency’s sake, but you can call whatever you like, and store it anywhere on Dropbox. - Edit your local
.bash_profilefile, and add this as the first line of your script:source ~/Dropbox/.bash_profile_shared, or whatever you named your shared Dropbox file. - Reload your Terminal, or
source ~/.bash_profile
And, that’s it. Anytime you’d like to share a config, just add it the .bash_profile_shared file in Dropbox (and wait for it to sync).
Categories
12.28.10/Sister Rosetta Tharpe
Last week, at a visit to the Stax Museum of American Soul Music, I was turned onto the music Sister Rosetta Tharpe, a gospel singer from the 1930-40s, and a damn fine guitar player. Blew my mind.
Note: She really starts cookin’ around 1:20.
Enjoy.
Categories
09.26.10/Progressively Unenhanced
UPDATE: I jumped the gun. This is just a preview of the new Twitter; the non-JS bits will be added in soon.
…
I’m surprised that the new Twitter web client wasn’t developed with progressive enhancement in mind. Here’s what it looks like with JavaScript turned off:

Compared to the old site:

I wonder how assistive devices, such as screen readers, handle the new situation?
Tags
Categories
09.06.10/Django 1.1 on the Google App Engine SDK
If you’ve used Django 1.1 App Engine, or are trying to, then you’ve probably read the instructions on how replace Django 0.96 with 1.1. That all fine an dandy in a production environment, but what about local development? Perhaps you’ve seen the following error message?
UnacceptableVersionError: django 1.1 was requested, but 1.2.1.final.0 is already in use
Me too. After mucking around a bit, I’ve figured out an acceptable workaround:
First, download Django 1.1.1 and place it somewhere on your hard drive (I put mine on Dropbox, so that I could use this fix across multiple computers).
Then, modify your main.py from this:
import os, sys,logging
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from google.appengine.dist import use_library
use_library('django', '1.1')
To look like this:
import os, sys,logging
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
if os.environ.get('SERVER_SOFTWARE','').startswith('Devel'):
sys.path.insert(0, "/your/local/path/to/Django-1.1.1/")
from google.appengine.dist import use_library
use_library('django', '1.1')
Essentially, you’re telling App Engine that, when it’s in the Development environment (running on your local computer), it should prepend Django 1.1.1 to the system path. Then, a few lines down, when the App Engine SDK looks for Django, it will see that version first.
Tags
Categories
09.01.10/Thoughts from a First Generation Apple TV Owner
This post is a follow-up to a tweet I had sent this afternoon:
Did you hear? If you hold the Apple TV wrong, Apple loses interest. #gen1owner #bitter
I received enough replies, with varied interpretations of my poorly worded joke, that I wanted to respond on my blog. Sometimes 140 characters is not enough. What I really should have said was this:
I’m a first generation Apple TV owner. I was very excited when I bought it, but after using it for a few months I realized that it was just a shiny rubber nipple that would let me feed off of Apple’s teat and nothing else. Now, it collects dust in my closet. In my opinion, Apple abandoned the product, and as a result I feel like it was the worst consumer purchase that I’ve made in recent history. Yes, I’m excited about the announcement of a smaller, cheaper Apple TV, but I’m too burned by my first experience to head down that road again. So, I write silly, bitter tweets instead…
I do like that Netflix is now an option — as someone who has no cable hookup, it’s where I find most of my entertainment — though there are a lot of other things to consider when buying a media center. Will you want to watch Hulu, Vimeo, Ustream.tv, DivX, etc.? I do. I ended up shelving my Apple TV and hooked up a Mac Mini which runs Boxee. It runs purty good.
All in all, if you don’t already own a device capable of running Netflix on your TV, then I think this is a great, inexpensive option. For everyone else, good luck. I’m skeptical of Apple’s rediscovered “hobby,” but I hope that your purchases are well-made and enjoyed. Just consider these the ramblings of a crotchety, old man…
Tags
Categories
08.23.10/SXSW 2011: Interaction Jones and the Template of Doom

Naz and have submitted a talk for SXSW 2011 Interactive called "Interaction Jones and the Template of Doom." In summary, we’re going to discuss design and development ideas by looking at Spielberg and Lucas films, both old and new.
If you’re planning to attend the conference, we’d very much appreciate if you’d cast your vote for us:
Tags
Categories
08.14.10/Developing for the Mobile Web
The slides from my presentation at SocialDevCamp Chicago. Thanks, everyone, for the kind words and thoughtful questions. And, many thanks to the guy who bought into my Pee-wee Herman Secret Word bit, and yelled every time I said, “HTML5.”
Feel free to get in touch if you have any follow-up questions.
Tags
Categories
07.28.10/jQuery Backstretch 1.1 Released
A new version of jQuery Backstretch has been released. It contains a number of fixes and enhancements:
- Added ‘centeredX’ and ‘centeredY’ options.
- Removed ‘hideUntilReady’ option. It looks pretty bad if you don’t hide the image until it’s fully loaded.
- Fixed IE img onload bug.
- Now supports iPhone/iPad orientation changes.
Many thanks to Peter Baker for providing the code to center the images.
Tags
Categories
07.03.10/Happy Birthday, @timer!
Back in the spring of 2007, I was introduced to Twitter and soon thereafter their API. At the time, I had little programming experience with third-party APIs, but was immediately taken by the simplicity and robustness of what Alex was building, and tutored by the growing community of Twitter developers.
For my first project, I decided to play with Twitter’s direct message feature. The idea was simple: send me a direct message that included a time (number of minutes) and a message, and I would reply with a direct message when the specified time had expired. It was a sort of alarm clock…an egg timer…a timer. In May 2007, @timer was born.
Three years later, @timer is still actively used, with over 16,000 followers (you have to follow in order to direct message). Happy belated birthday, lil’ buddy.
On a related note, I’ve updated @timer to use OAuth (as of August 16th, Twitter will be shutting of basic authentication). I suppose this is a the real reason for the post, but the birthday wishes seemed overdue and appropriate. So, enjoy the new and improved @timer…



