After moving to iTunes Match (and not to get too navel gazey, but that post brought more traffic to my blog than I think I’ve gotten … ever), I’ve been trying to figure out ways to avoid having to ever plug my iPhone into my computer. There are two things that I still do via syncing with iTunes: getting photos off the phone and podcasts.

The getting photos off the phone part is sort of helped by Photo Stream, but not really. But that’s also not what this is about.

The podcast bit can be managed really nicely through Instacast. Export your podcast subscriptions from iTunes, import ‘em into Instacast, and it’ll become your podcast player. It’s very handy.

The only thing it doesn’t do particularly well is let you know when to start it up and download new podcasts. (Actually, there’s a cool feature in Instacast HD for the iPad that does just that, but I don’t listen to podcasts on my iPad all that much.)

Screwing around one night, I was trying to come up with a solution, and I remembered that I had Boxcar installed, which gets me push notifications for Twitterrific (since it doesn’t have them natively). I logged into Boxcar, noticed they had a “Push me a notification when there’s a new entry in this feed” option, and thought “Hey, I’ll plug in the podcast feeds and get push notifications whenever there’s a new podcast!”

Amazing, right?

Except, it didn’t work. I don’t think Boxcar supports podcasts as a feed type or something, as it just seemed to ignore any new items that showed up.

But I was not discouraged.

There’s another cool “send me a notice” website/tool out there called ifttt.com. Basically, it’s an awesome little site that lets you plug things together and trigger actions. The premise is “If [this] then [that]” (hence ifttt.com). I’d been using it to send me emails before it’s forecast to rain (can’t forget that umbrella!).

It also lets you send notifications based off of RSS feeds. And it can send those notifications into Boxcar.

That opened up a whole world of possibilities.

First, I plugged in my podcasts. I turned my weather notifications from email to Boxcar push notifications.

Ifttt  Tasks

While dorking around inside these cool webapps, I noticed that Boxcar also ties into Growl (the Mac desktop notification system). “Awesome,” I thought, “I can have my computer push stuff to my phone when scripts finish and stuff.”

And that is entirely possible. You simply install the Boxcar Growl theme, configure a few easy settings, and boom, your computer can send your Growl notifications to your phone, straight through Boxcar. Mine is configured to only do so when my screen saver is on or I’m inactive. If I’m in a meeting, IMs will get shot to my phone so I can determine if something is urgent. Long backup jobs or scripts will let me know they’ve finished.

Tying all of this into growlnotify (the command line tool to let you send arbitrary stuff into Growl) means you can basically trigger almost anything into a push notification. It’s an amazingly powerful toolset.

Fullscreen

Photo

 

I’ve got a 2 year old MacBook Pro (15-inch) that I use as my work and home machine. It’s got my canonical iTunes music collection, my photo collection, all of my archived mail, files, whatever.

It is the one machine to rule them all.

I try to do a lot of smart stuff to keep my machine and data safe, since pretty much everything I care about is on it. I have a Time Machine backup that I keep up-to-date religiously. I sync a collection of documents to Dropbox as an off-site backup. The music and photos get sync’d to another machine on my home network.

Nothing groundbreaking, but I try to do what I can to keep this machine happy and healthy.

Over the past few months, as often happens, software upgrades and new applications put a little extra stress on the hard drive and CPU, so things started to get just a bit slower. Things might stutter a bit as I scroll down a web page, or flip between applications. Just enough to annoy me while I worked and make me look longingly at Katie’s MacBook Air with its nice solid-state drive and near instance application loading and boot up.

So, I tried to do the best thing I could do, short of buying a new machine and having to go through all of the work to make that new machine the machine. I SSD-ified it[1].

Well, first, actually, I found out that I could upgrade the RAM to 8GB. $45 later, I had my shiny 8GB RAM kit, took the 10 minutes to install it, and in the couple of weeks since I installed it, my machine has gone into swap a grand total of 500 times (or so). In the couple of weeks before that, it’d gone into swap millions of times. Score one for memory.

The final step was the actual SSD-ification. I found a reasonably good deal on 256GB SSD (at MicroCenter, and grabbed a USB enclosure for the disk I’d be removing at the same time for $8). When I got home from my excusion, I loaded up Carbon Copy Cloner, and cloned my existing data onto the SSD. About 2.5 hours later, I had this nice SSD with all of my data on it.

Again, another 15 minute surgery to the laptop, and I had removed the old drive, placed in the new SSD, and closed things back up.

This machine now flies. iTunes starts in seconds. Excel opens up in seconds rather than minutes. It boots up and loads up my settings in less than a minute.

It’s a giant MacBook Air.

And, at the same time, I’ve now gained a nice backup drive (remember that USB enclosure). Every week or so, I can clone off my entire drive and have a 3rd backup of my data.

All in, the upgrades cost me about $450, which is less than half the cost of buying a brand-new low end MacBook Air, and about a quarter of what a new MacBook Pro will cost. I’m guessing I’ve added at least another year or two to the life of this machine.

It’s probably one of the easiest and most productive upgrades you can perform on your aging laptop.


  1. There’s a great guide to this over on Ars Technica.  ↩

 

Over the past few months, as I’ve been playing with different web technologies, I’ve dabbled with Redis. I really like the idea behind it: a super fast, all-in-memory, key-value store (disk basked so that you don’t lose everything in a crash, can replicate, get backups, etc).

I think what I like most about it is that it is does one thing very very well. It doesn’t try to replace your relational database. It just focuses on being a super fast way to store little buckets of data. Now, granted, you can do really creative things with those little buckets of data, but, by and large, Redis is just unbelievably fast.

Today I had a chance to play with Redis using some pseudo-real data. I wanted to benchmark/simulate how it would perform at holding keywords, and then the references (ids) to logs that contain those keywords. I’m imagining using this to keep track of support logs (hey, ftp has been mentioned in support contacts 15x today) or maybe to track server performance (tracking loads of servers or which services are running, etc). Tons of systems can do this. What Redis does really well is doing it fast (have I mentioned that?) and doing really awesome set geometry (intersections, unions).

For instance, imagine you wanted to keep track of support contacts. You look for keywords coming in via email messages (ftp, mail, outage, whatever). That’s easy. But now what if you wanted to get the overlap where ftp was mentioned in the same email as cancel? That’s harder. In MySQL, you might have to do some smart sub-selects, or joins to a bunch of mapping tables. It works fine when you’ve got a small number of rows, but the performance gets progressively worse. You probably also end up writing some ridiculous queries to make it happen in a way that doesn’t end up going off to disk and killing your performance entirely.

With Redis, it’s dead simple. I mean seriously simple.

First, you install Redis. It’s about the easiest thing I’ve done. Untar, make, run. I didn’t even bother to make any config changes.

Next, either via script or via the command line, you start adding data. For the support keyword example, you might do something like:

sadd ftp id_1
sadd ftp id_2
sadd ftp id_3
sadd ftp id_4
sadd cancel id_2
sadd cancel id_4

Basically, messages 1-4 mentioned FTP. Messages 2 and 4 also mentioned the word cancel.

To get that intersection, you follow that up with:

sinter ftp cancel

And that’s it, it’ll tell you id_2 and id_4 contain both words. Done and done.

Of course, that’s a pretty simple example. I threw together a test script that generated 80 random keywords and 50000 random message ids for each keyword. The random ids were all in the same range (1 – 999999), so there’s a good chance of some overlap, but not a ton. This seemed like a pretty good test of Redis.

It took, on average, about 4.5 seconds to insert 50k bits of data. So for the total of 4 million entries, it took about 6 minutes. That’s pretty darn fast.

But what’s so much more impressive is the intersection work. To get the intersection between two sets of data (which was usually between 1500-2500 entries) it took …

.05 seconds

Seriously.

And that, right there, is why Redis is f’ing awesome.

 

Hands-On: With Wii U’s Touchscreen Controller, Nintendo Could Radically Change Games | GameLife | Wired.com: “As Link duked it out with a giant hairy spider on the TV screen, we could see all sorts of secondary info on the controller screen: the dungeon map, Link’s health bar, the items he was carrying. These icons no longer cluttered up the TV screen and got in the way of the high-definition visuals. The cool part was this: With one tap of an icon on the touchscreen, the images flipped. Suddenly, seamlessly, the game was running on the touchscreen and the map, etc., was on the television.”

Aahhh. So awesome.

Notification Center: “You get all kinds of notifications on your iOS device: new email, texts, friend requests, and more. With Notification Center, you can keep track of them all in one convenient location. Just swipe down from the top of any screen to enter Notification Center. Choose which notifications you want to see. Even see a stock ticker and the current weather. New notifications appear briefly at the top of your screen, without interrupting what you’re doing. And the Lock screen displays notifications so you can act on them with just a swipe. Notification Center is the best way to stay on top of your life’s breaking news.”

Ahhhhh. Awesomesauce.

iTunes Match:”Here’s how it works: iTunes determines which songs in your collection are available in the iTunes Store. Any music with a match is automatically added to your iCloud library for you to listen to anytime, on any device. Since there are more than 18 million songs in the iTunes Store, most of your music is probably already in iCloud. All you have to upload is what iTunes can’t match. Which is much faster than starting from scratch. And all the music iTunes matches plays back at 256-Kbps iTunes Plus quality — even if your original copy was of lower quality.”

Knockout.

Apple and Nintendo should just marry each other. They would have kids as cute as baby pandas, but who hit baseballs like Albert Pujols, and dominate basketball like LeBron James.

 

“You can’t replace pants with shorts when your definition of shorts is: everyone buy pants and cut the legs off — pants will still be a viable business (the consumer is just altering the usage). Same too with Twitter, Facebook, et al, they are still relying on email for certain parts of their service (like adding new users or sending notifications) while wanting to replace email at the same time.”

I hadn’t really thought about the ubiquitousness of email from this angle before. Even the services that are trying to replace email as the primary communications channel require you to have an email address. Obviously, this is because a) today email is the way they are used to getting their communication of passwords, logins, etc., and b) you have to have a way to communicate to people before they start using your service.

But, it would be pretty ballsy for some new service to require either email or a phone number (or <insert your method of identity here>).

(via The Brooks Review)

© 2011 That Not So Fresh Feeling Suffusion theme by Sayontan Sinha