Several years ago I was in New York city with my mom and my sister, Jacki. While Jacki was taking forever inside H&M, I was wandering through the many street vendors who had set up shop on the sidewalk nearby. A table full of hand-drawn inspirational quotes written in Chinese caught my eye. I spotted this framed poster, and bought it immediately for about 30 bucks.
In case the image is hard to see, the quote reads:
Go confidently in the direction of your dreams, and live the life you’ve imagined
I fell in love with this quote. It’s so direct. So assertive. Yet, so inspiring. And, I think Chinese writing looks cool.
When I got home, I hung it on my bathroom wall, directly above the toilet where I was sure to see it every day.
All this time I thought that this quote was some kind of well-known Chinese proverbial wisdom passed down through generations … until a few months ago when I started dating Lavinia, who’s from Taiwan and speaks Chinese natively. She assured me that Chinese to English translation is correct, but she’s never heard the saying before. After a bit of Googling, I find out that this was originally written in English by 19th century American transcendentalist author, Henry David Thoreau. Oh well, that doesn’t make it any less inspiring, and Chinese writing still looks cool.
I was on my way back to Atlanta from my friend’s wedding in Ohio, tired and worn out from a whole weekend of eating, drinking, and partying. Despite my mentally drained state, sometime during the flight home, the idea just came to me. I get new ideas all the time. One or two a month … at least. Most of them are written off quickly as too hard, too silly, or too expensive … so I let this idea soak for a while.
Hours later, I’m at home in bed. It’s 4:00am. My brain won’t turn off.
I slide out of bed and into my computer chair. A few clicks later, and I’m whipping out my credit card to register a handful of domains at GoDaddy. “Fantastically simple, but this could be huge!” I think to myself. With the comfort in knowing that my domain names are secure, I get back into bed and sleep soundly ‘till noon.
I’ve been working diligently on my build-your-own-social-network startup, Wamily for quite a while now. We’re weeks away from a public release. Did I really want to divert my already sporadic attention to something totally new at this point in the game? Was this mini-startup worth giving up precious development time? Is my co-founder gonna be pissed at me for putting Wamily on the back burner? Am I crazy?
After careful consideration, the answer to all of these is yes. I gave myself one weekend to hack something out, then I have to get back to Wamily. Hell, it’ll be fun.
Three days later (ok, fine … a long weekend) and it’s up. Using the Google Maps API and Ruby on Rails, I hacked together a neat little search tool to find biodiesel filling stations around the world. Yeah, I didn’t expect you to get it right away. But just wait a couple years, this alternative fuel thing is going to be huge.
So, am I glad that I did it? Well, yes and no. But mostly yes. This little mini-project has given me the opportunity to work with a couple of tools that I hadn’t had the chance to learn before. In one short weekend, I created a cool and useful website, and also got to:
play with the Google Maps API and the YM4R Ruby plugin
implement the MaxMind GeoLite City database to detect your site vistors’ city and country from their IP address
help save the world by making alternative fuel more accessible
hedge my bets on Wamily
The only downside, really, is that I find myself wanting to spend more time on Find Biodiesel, when I really should be getting Wamily ready to go. Oh well. What’s another weekend in the big scheme of things?
An ad on the inside of my Netflix envelope caught my attention yesterday … it was an offer from MP3 music download site eMusic for 35 free song downloads. I have been casually searching for years for a music download site that meets my tough criteria in order to earn my money:
Has a selection of music that I like. I’m not a typical mainstream music consumer. My taste leans mostly in the indie pop/rock and electronica genres.
No DRM! I refuse to pay for anything that is specifically engineered to not work.
Platform and browser independent. I use Linux (the Ubuntu variety) ... not Mac and not Windows. Don’t force me to reboot into an inferior operating system just to shop your site. This rules out iTunes.
eMusic had an interesting offering: after your free trial downloads. The basic plan is $9.99 per month for 30 DRM-free song downloads. That comes out to $0.33 per song, two-thirds cheaper than iTunes and most other sites. They also have a $14.99/50 and $19.99/75 plan, which works out to even less per song.
The deciding factor here is going to be selection. I was disappointed that I couldn’t browse the download library without signing up and providing my credit card number for when my “trial period” expired. The whole sign-up processed reminded me too much of those “Get 12 CD’s for 1 cent” ripoffs of 90’s. But, curiosity got the best of me so I coughed up the cc digits.
I was pleased to find a decent selection of music from artists that I really like. And I also found eMusic’s ratings, similar artists, and editorial content very useful. I had no problem using my 35 free downloads in a few hours. Here’s what I picked up:
The MP3 files sound great and were happily DRM-free as promised. Unfortunately, I wasn’t able to use the multiple file download manager on Linux … but at least they provide a way to download tracks manually clicking on each track individually. I can live with that for now.
One thing that is pretty annoying is that the filenames of the downloaded files are named in such a way that they don’t sort correctly. For example, The_Decemberists_Picaresque_10_The_Mariner_s_Revenge_Song.mp3 sorts before The_Decemberists_Picaresque_1_The_Infanta.mp3, and therefore plays in the wrong order in my MP3 player unless I manually re-sort them. To fix this, eMusic should use 2-digits in the track filename for each file, so The_Decemberists_Picaresque_1_The_Infanta.mp3 should become The_Decemberists_Picaresque_01_The_Infanta.mp3.
Again, the selection was pretty good, but not nearly as comprehensive as iTunes. I found enough interesting stuff to keep me busy for a while, but also a few searches for bands I know and like came up empty. I think the more eMusic can improve here, the more compelling their service will be to more people.
I’ll be upgrading to the $9.99 plan for a month or two at least.
If you want to try out eMusic and hook us both up with 50 free downloads under their Tell-A-Friend program, email me or post your email address in the comments and I’ll send you an invite.
Today I clocked my Comcast high-speed cable internet on the very cool Speakeasy Connection Speed Test. Choosing a test server here in Atlanta, I'm very happy to report that I clocked in at 6976 kbps download and 1566 kbps upload speed. Pretty impressive. I'm paying for Comcast's "6 mbps" service, and this even surpasses that. Happy.
So, you’re managing or developing a Ruby on Rails application that you deploy regularly using Capistrano (as any sane Rails developer should), and you want a really easy way to sync up the database on your remote production server with the development environment you have running on your local machine. This is really useful for debugging your app, especially if you have a lot of user-generated content. It’s also just really helpful for design and development if your local environment looks exactly the same as your live environment.
Well, I know it’s not that hard to log in to your remote database, export the whole database, copy it back to your machine, and load it into your development environment. But after a few times doing this, you realize there’s got to be a better way.
Since Capistrano gives us so much flexibility to do pretty much anything on our remote machine, there is an easy way. Here are a few tasks that you can freely copy and paste into your application that will automate all this:
Connect to your production database server
Dump your production MySQL database (sorry, this only works for MySQL right now!)
Download the MySQL dump file to your local machine
Replace the contents of your local development environment with the data and structure from your live production environment
Usage
rake db:production_data_refresh
Yep! That’s all there is to it. It uses the database connection information that you have already set up in your config/database.yml file, so no passwords are ever transmitted. It also uses SSH and SFTP to do all the remote communication and data transfer, so everything is nice and secure.
It is highly recommended that you set up public key authentication so you don’t have to log in with your username and password every time Capistrano wants to connect to your remote host.
Get your copy and paste finger ready … the code is right below the fold
I recently returned from a great ski trip over New Year’s to Heavenly with my best college friend Hyaat and his finance Sheila. We had a great time, despite a shortage of snow on the mountain.
Anyway, Sheila had bought Hyaat a new Casio digital camera for Christmas. I was impressed with the small size of it and the nice LCD screen. We took it out on the slopes with us and ended up taking a lot more video clips than actual still photos. This lead to a perfect opportunity for me to try out Jumpcut, a new online video editing and video sharing site that I heard about from TechCrunch not too long ago. Jumpcut is now owned by Yahoo!
So I got started by uploading about 20 video clips ranging from a few seconds to a few minutes. Most of Jumpcut’s interface uses Flash, and their Flash uploader tool is pretty cool—but it kept crashing my browser (Firefox 2.0.1 on Ubuntu Linux 6.10)! I only got about two clips uploaded with the flash browser before I gave up on it. I did notice in Jumpcut’s FAQ or Help page they mentioned Flash crashing on OS X, but no mention of Ubuntu or Linux. In any case, I think the have some stability work to do.
Luckily, Jumpucut also offers a standard HTTP upload which works fine, but it was slow even on my high-speed cable connection. The worst part was that I had to upload the video clips one at a time. It took me about two days (not continuously) to get ‘em all uploaded. This painful upload process was my biggest complaint. Jumpcut: either fix your flash uploader or offer a FTP/SFTP batch upload option!
Once all my video clips were in there, I really had fun arranging the clips and creating transitions between clips. I should say that I have very little video editing experience – I took one TV production class in high school years ago, but then we used two VCRs and a little jog wheel – nothing like this! I had also used Windows Movie Maker once or twice. And before trying Jumpcut, I played with Kino for Linux for a few minutes, but quickly abandoned that because it was too complicated.
The Jumpcut movie editor is very easy to use. I like how you can easily switch between editing a single clip and then back to the whole movie in one click. I did have a few problems again with Flash/Mozilla crashing on me, but Jumpcut lets you save your progress which saved my video from destruction a few times.
I has some problems with the ‘Undo’ functionality – it didn’t seem to undo change-by-change like I would have expected. Also, I think the audio overlay features could use some more work. I couldn’t figure out how to fade out an audio track into another track—so I ended up using one song for the entire movie.
Overall, I think Jumpcut is a lot of fun, easy enough for most people, and a great Web 2.0 business. I know I found myself glued to Jumpcut’s site for hours at a time, which could have presented them with ample opportunity to show me ads (but there were none!).