Category Archives: Software

Zapier – Smart Update Emails

Zapier is an interesting service I’ve been playing with lately. It’s somewhat similar to IFTTT, but with more of a business focus. In their words:

Zapier enables you to automate tasks between other online services (services like Salesforce, Basecamp, Gmail, and 224 more). Imagine capturing Wufoo form leads automatically into Salesforce or displaying new Paypal sales in your Campfire team chat room. Zapier lets you automate all these simple tasks and get back to real work.

One recent touch that was nice – they send periodic updates with new actions available in their services. The email updates are focused for just the services you have used in the past. Nice and targeted, and probably leading more users to return and try out the new actions.

Zapier Service Email

Smart email from Zapier – updates only on services I’ve used before

Find Largest Files in Dropbox

File hosting services like Dropbox, SkyDrive, Google Drive, and Box all have very generous free storage levels (2 GB and up). Even so, it’s easy to quickly reach the free limit, especially as you start backing up photos, movies, and other large files.

If you’re getting close to your service’s free limit, here’s a solution for quickly finding the largest of your files, so you can clean them out or back up elsewhere. This works best when you’ve set up your service to sync everything to your local Mac or Windows computer. In my case I’m using Dropbox which defaults to this mode.

The solution involves a free (open-source) software application, depending on which platform you’re using:

The steps are pretty straightforward:

  1. Install the utility and start it
  2. Point to your local storage path (in my case, the Dropbox home dir)
  3. Run the analysis
  4. From the results, find the large files and do something with them (back up, move, delete, etc.)

Both utilities show a “treemap” view which helps quickly spot the biggest individual files (e.g., movies), and groups of similar files that collectively take a lot of space (e.g., MP3).

Here are screenshots of the two apps run against my Dropbox path:

WinDirStat Screenshot

WinDirStat results point to the biggest files in my Dropbox account

Disk Inventory X Screenshot

Disk Inventory X results are patterned after WinDirStat

In my case I’m primarily using Dropbox and have used about half of my 5GB account. I use the WinDirStat utility regularly to find large files that are better saved elsewhere, and to keep my Dropbox backups somewhat manageable.

Tweetfave Stats After 30 Days

Graph up and to the rightOne month ago I launched Tweetfave – my new service which improves the usefulness of Twitter favorites. After using Tweetfave myself for so long, it’s been exciting to open it up for others, and to see where it goes.

Here’s a quick look at some numbers since the launch 30 days ago:

  • 400 emails delivered with 65% open rate (thank you SendGrid!)
  • 15 active users
  • 5 inactive users (cancelled)
  • 1,700 tweets favorited (from 1,300 separate sources)

So far my “marketing” has included emailing an earlier interest mailing list (about 30), reaching out to some friends individually, and periodic links this blog and my Twitter/LinkedIn accounts.

Next I’ll be asking for specific feedback from each user and continuing with the next couple of features on my to-do list.

If you use Twitter favorites, give Tweetfave a try and let me know what you think!

Brief History of Tweetfave

Here’s a brief history of Tweetfave – my new free service that automatically emails your Twitter favorites to your inbox.

This project started as one of those “wouldn’t it be useful if…” projects, as an addition to Twitter. I was already using the Twitter favorite feature to bookmark tweets and links to read later, and wanted a way to automatically receive those (short of going to my profile page and viewing my own favorites). Combine that with an interest in learning the Twitter API, and the project was underway.

As I started writing this, I was a bit surprised as to just how long I’ve been working on this. Here’s the history timeline I came up with:

  • First working code: April 2011
  • domain registered: May 2011
  • Start keeping source code in git: October 2011
  • Landing page, collect email addresses: October 2011
  • Feature survey on Amazon Turk: November 2011
  • Real front-end live, “coming soon”: October 2012
  • First person other than me using it: April 2013
  • Go-live, open for anyone to sign up: May 2013

Yes, you read that correctly: I have been working on Tweetfave for two years!

That seems like a long time. I worked on it in chunks of time, and kept using it myself. I favorited over 5000 tweets in that 2-year period, an average of 50/week! In the back of my mind I kept thinking I should finish this and see if anyone else found it useful. A couple months ago I decided to quit procrastinating and finish this to the point where others could give it a try. In April I finally reached that point and asked a few friends to sign up. After a couple more bugs fixed and a week running without errors, I finally opened it up for everyone.

Now I’ve got a few people actively using it and everything seems to be running smoothly. In a few weeks I’ll post some usage numbers and let’s see how much interest I can generate.

If you haven’t tried Tweetfave yet, give it a shot and let me know what you think.

Tweetfave Software and Services


With my Tweetfave project finally launched and starting to get a little bit of usage, I thought I’d summarize some of the key building blocks for this project.

First of all, what does Tweetfave actually do? It periodically checks your Twitter account to look for new tweets you have marked as favorite. If you have any new ones, it sends them to your email inbox. The functionality is very simple, but I’ve found it to be a handy addition to Twitter, turning favorites into a sort of “read it later” bookmarking feature.

Following are some of the software tools and services I used to build Tweetfave:

PHP – for this project I chose PHP because it’s what I’m most proficient in. I’ve got another side project going where I’m learning Ruby on Rails, but for Tweetfave I stuck with the familiar. With PHP’s popularity, everything else I needed was already available as PHP libraries, and it was really easy to set up both my dev and live environments.

Twitter API – learning this API was pretty straightforward, especially with the ease of the PHP library. The trickiest part was setting up the whole OAuth flow with my site’s signup/login flow (and PHP sessions). Originally the code required a read/write access to Twitter accounts, but I later refactored that to use read-only access to minimize the chance of any bugs causing problems for live Twitter accounts. I’ve also switched to the new API version 1.1 without any trouble, and (so far) the application is not running into any rate limit problems.

Twitter PHP Library (by Abraham Williams) – this was the first PHP library to help with Twitter’s OAuth API, and may be the most popular one. It’s very easy to add to a project, and makes calls to Twitter really simple. For example, my main call is getting favorites for an account: $favorites = $twitter->get('favorites/list');. See this discussion for a quick change to support API version 1.1.

Twitter Text PHP Library – the Twitter Text library takes the full text of a tweet and adds hyperlinks and markup for detected identifiers like “@” handles, hyperlinks, and search hashtags. For Tweetfave I use the original tweet text in plain-text emails, and the Twitter Text marked-up version for the HTML email body. The results are pretty decent, making the tweets appear almost the same as on the Twitter website. It also extracts all the links contained in the tweet, making it easy to expand those from short form to their original form.

Mustache Templates & PHP library – Mustache provides a very simple templating language that I use to create all of Tweetfave’s outbound emails. Every email sent has both plain text and rich HTML versions included, and Mustache makes it easy to manage dual templates from the same data source.

Swift Mailer PHP library – creating and sending emails always seems more complicated than it should be. The Swift Mailer library is a straightforward way to ensure your outgoing emails are formatted correctly, especially when you want full control over the email including multipart. Paying attention to the details of email creation also helps prevent the messages from being flagged as spam.

SendGrid † – a very reliable email delivery service that “just works”. Even when I was on the free plan, I made a couple of support requests and had excellent service both times. I really like SendGrid’s reports and “Email Activity” dashboard, both of which make troubleshooting and tracking a breeze. One downside is you don’t get a dedicated IP address for your delivery point unless you’re at the $79/month pricing level. So far my emails seem to avoid being flagged as spam even without the dedicated IP.

Bootstrap – the Tweetfave website consists of only a couple of pages, but I wanted to make sure they worked well on both desktop and mobile browsers, so I used Bootstrap as a starting point. It was pretty easy to learn LESS and tailor the Bootstrap template down to just what I needed. For the next go-round, I need to learn how to customize Bootstrap while still being able to merge updates and improvements.

pair Networks † – I’ve been using them for web hosting for over 10 years for this blog and a few small side projects. I ran Tweetfave here as well during the year-long development. Recently as Tweetfave usage has grown, my cron scripts are a bit too much for my shared webhost account, so I moved them to Digital Ocean. I kept the MySQL backend and website on pair.

Digital Ocean – after I outgrew my shared webhost, I signed up for a basic VPS ($5/mo) from Digital Ocean. Signing up and creating my virst VPS (a “droplet” in their terminology”) only took about 15 minutes. Installing my code and packages like PHP only took about a half hour. Very impressed so far.

† Affiliate link; I’ll earn a small referral fee if you use this link; thanks for supporting this service!

I’m happy to answer any questions about the software and services used to build Tweetfave. Just shoot me an email (brian at cantoni dot org).

If you haven’t tried Tweetfave yet, give it a shot.

Image credit: zzpza (Flickr)