The Joy of Instapaper

I started using Instapaper after hearing Scott Hanselman explain its benefits during his talk about increasing personal productivity. The tool helps you read web articles on your own time schedule. I think you'd like it. I'd heard about Instapaper a while back, but didn't understand how handy it is until I saw it in use.

The Problem

There are many, many ways to find great things to read on the web. People are always linking to interesting articles on Twitter. Some sites, like Hacker News, aggregate the most interesting articles of the day on a certain topic. Everywhere you look there's intriguing content on the web, and the most interesting stuff is more than two paragraphs long.

However, the moment when you find a great new article isn't always the best time to read it. If you're checking Twitter in line at the grocery store, you probably don't have time to finish that four-page New York Times article. Or, if you're taking a quick five-minute break from work, you may not have time to power through the interesting-but-distracting article your friend emailed you about raising urban chickens. Eventually you could end up having 20 tabs of unfinished articles in your browser, all of which you think you'll read eventually, but will only end up confusing you.

The Solution - "Read It Later"

Instapaper is a simple tool that lets you mark interesting webpages, then come back and read them later on the device of your choice. You set it up by dragging the Instapaper's "Read Later" bookmarklet up to you bookmark toolbar.

 

When you're hunting around for great articles, just click "Read Later" and it's saved. Then, when it's convenient, you can return to the Instapaper website (or iPhone/iPad app ) and browse through your treasure trove of brain-enhancing blog posts. I end up getting a lot of Instapaper reading in at the end of the day in bed. TMI?

Here's what Instapaper looks like in action:

 

Instapaper Website

 

Instapaper iPhone App

 

Do you use Instapaper? Maybe some other great productivity-enhancing tool?

brain-enhancing blog posts.

Dude, Where’s My Podcast?

As I have previously mentioned, I’ve become a podcast addict.  To me, listening to a podcast is equivalent to attending an expert panel discussion at an industry conference, except the conference is in my car.  I’m sure you could find four or five awesome podcasts dedicated to any interest you have (e.g. Home Brewing, Accounting, or Buddhism).  Like any addict, I need my fix daily.  This is where I run into problems.  Experts spend their valuable free time producing these podcasts and often release them weekly, but sometimes skip a week, or multiple weeks.   So, my morning ritual is to ask: “Dude, I wonder if any new podcasts are available?”

What’s that?  I should just use iTunes?  Maybe you’re right, but I’ve never liked the podcast subscription feature in iTunes.  I have to go through the pain of attaching my iPhone to my PC, refreshing all my subscriptions, and synching to iTunes.  Wait... did it just delete six unheard episodes?  Dang!  Maybe I have an irrational fear of the synch, but their UI just doesn’t seem to meet my needs.

The iPhone is perfectly capable of downloading podcasts on its own (PC-free), but you have to check each podcast manually, every day.  Bummer, dude.  Checking things repeatedly is never fun, I prefer getting notified.  So I’ve looked around and found a few options:

Subscribe via RSS

Most podcasts have a website containing a link to the RSS feed for their show.   You can subscribe using your favorite RSS reader (aka Google Reader).  Now you can group all your subscriptions into a folder and have one place to check every day.  The drawback is that you’re still stuck with checking a website then going somewhere else to manually download shows.  Weak, dude.

iPhone App #1  -  Podcast Push

I was initially stoked after finding this app.  It allows you to enter your podcast subscriptions and promises to pop up a “Push Notification” alerting you when new podcasts are available.  You can quickly tap the link and be downloading in seconds.  Sadly, this app does not consistently notify, and for some podcasts it completely fails to notify.  Seriously dude?  Great idea though!

iPhone App #2  -  Podcaster

This full featured app is my current fave.  After adding your subscriptions you can check them all for new shows with one swift tap.  You can even schedule it to check for new episodes at certain times of the day and download the automatically.  It does some things better than the iTunes app, such as displaying show details so you can decide if it’s worth a listen.  Some things aren’t as polished, like podcast searching.  But, at 99 cents, I’d say it’s a sweet deal.

Do you also suffer from podcast addiction syndrome?  How do you deal with this?  Android users:  are their better tools on the Droid?  I’d appreciate any suggestions.



Design for the Likely Changes

I need to do some design work soon, and it has me thinking about the design process.  What’s the best way to go about designing software?  The answer can vary for different organizations.   Recently I took the “Software Design Techniques” class from PSU, which offered some solid tips.  Here’re my general recommendations: 

Set Some Goals Upfront

Eventually you’ll produce a design.  Maybe you’ve produced some very professional UML docs or a slick data-flow diagram.  Perhaps you’re like me and have scribbled some circles on a whiteboard and taken a picture of it with your phone.  In any event, the next step will be to ask: “Is this any good?”  To answer that question you’ll need to have established what “good” means for this project.  Set some goals at the beginning for what your design should achieve.  Keeping them in mind during the process will help.    

Know Thy Stakeholders

It can be tough to produce software that pleases everyone.  Stakeholders often have conflicting desires.  Product managers want it done fast, QA wants it to be easily testable, the ops team wants the deployment to be hassle-free and the end user is asking for an intuitive UI.  Your fellow engineers may have several technical priorities.  The challenge is to try to consider several perspectives as you proceed.  Hopefully your product/project manager can help you prioritize requirements and balance conflicting stakeholder needs.

Prepare for the Likely Changes

Let’s pretend you just produced the best design ever for a billing system.  You’re quite pleased with yourself.  Then, one month after release Bob from sales rushes into your office and says, “We need to import billing data from Company X… by next week!”  Ideally you’d have already talked to sales and known that the Company X integration was imminent.  It’s a great mental exercise to make a list of the top “likely changes” to the system that you and others foresee.  Again, your software can’t do everything and the architecture won’t respond to all requests with equal grace.  However, you should know the company’s priorities for future development, and those things shouldn’t require a full rewrite of the system.

Get it Reviewed

I mentioned before that code reviews are very helpful.  Reviews are great for design products as well.  Designing by committee isn’t fun, but this is a little different.  In a design review you present a fully baked (you hope) plan to some peers and solicit their feedback.  Maybe they’ll have tackled a similar problem last year, failed miserably, and found an open source tool that solves everything.    

On a team practicing some form of Agile development, you may be asked to produce a design quickly and get on with it.  It’s important to at least cover the basics if you want to arrive at a design that’s somewhat sustainable and doesn’t disgust the new guy you’ll hire this fall.  Do you have a sure-fire design tip or pet-peeve?