Category Archives: Software

Twitter Favorites RSS Feeds

Twitter dropped RSS feeds in early 2013 (Mashable) and never had direct support for RSS feeds from favorites. I still use Twitter favorites as a bookmark or “read it later” service for myself and have been running the Tweetfave service for over 2 years now. Tying these ideas together, I’ve just rolled out Twitter favorites RSS feed support in Tweetfave.

How it Works

Tweetfave periodically scans your account (using the official API) and summarizes all favorited tweets in an email. Now the system will also update a feed which can be used with other systems that accept standard RSS feeds.

The RSS feed will be created with each tweet contained in an item element with the following fields set:

  • title – text version of the tweet
  • description – text version of the tweet, plus a link to the original tweet
  • content:encoded – HTML version of the tweet, plus a link to the original tweet
  • link – the first link mentioned in the tweet (see Notes below)
  • guid – same as link
  • pubDate – date/time of the original tweet

Here’s a screenshot of my favorites feed shown in Firefox:

Screenshot of favorites RSS feed in Firefox
Favorites Feed in Firefox

Setup Instructions

For existing Tweetfave users:

  1. Visit the Tweetfave login page
  2. Sign in to Twitter (if needed) and approve the Tweetfave App
  3. Copy the link for “Twitter favorites RSS feed”

For new Tweetfave users:

  1. Visit the Tweetfave login page
  2. Sign in to Twitter (if needed) and approve the Tweetfave App
  3. Enter your email and click Submit
  4. Mark a couple of tweets as favorite to get started
  5. Within a couple hours you should get your first email from Tweetfave
  6. Now return using the “existing users” steps above to grab your RSS feed link

What to Do

So what can be done now that you have an RSS feed of your Twitter favorites? I like to use IFTTT which is an awesome application for connecting different services together. (For a great overview, see their About IFTTT page).

I’ve set up my recipes where the source trigger is a new item in the RSS feed and the target is a service like Instapaper, Paper, or Evernote. You can configure the fields and formatting sent to various services, giving you lots of different options.

Screenshot of IFTTT example recipes
IFTTT Recipe Examples

Notes

Here are a few notes and caveats to keep in mind:

  • If you’re a new Tweetfave user, you need to favorite at least one tweet first, and wait for the first email before your feed link is created
  • Your RSS feed link is somewhat obfuscated so that people can’t guess it. It’s also only shown to you after login, so you can still keep your favorites stream private.
  • If a favorited tweet has multiple links, you will have multiple RSS items (because each one can only have one link). This seems like a good compromise even at the expense of some extra entries.
  • The time between favoriting a tweet and it appearing in your feed is not instant; Tweetfave currently scans everything at 2-hour intervals, then sends emails and updates the feeds.
  • If you disable your Tweetfave account, the RSS feed file will still be online but won’t be updated. If you’d like the file removed, just email me.

Feedback

I’d love to hear feedback from anyone trying this out, including any interesting use cases people come up with!

Best Technical Podcasts

Podcast Equipment Photo

Every so often I like to publish my current podcast subscriptions (last update from late 2013: Top 7 Technical Podcasts). Since joining DataStax a year ago my commute time is significantly shorter, so I’ve slimmed down my playlist as well.

Here is my current subscription list:

Hanselminutes [rss]

One of my favorites. Scott Hanselman is a great interviewer and runs through a broad variety of guests.

Giant Robots Smashing into other Giant Robots Podcast [rss]

One of my other favories. Ben Orenstein from Thoughtbot hosts. Plus, the title is cool.

.NET Rocks! [rss]

I’ve been listening to these guys for over 10 years now, and they’ve recently hit episode 1132. That’s a lot of podcasts! In March 2014 they merged in The Tablet Show (which had 130 episodes on its own). These days it’s not only about .Net, but covers a lot of different technologies and platforms. The Geek Out espisodes are especially good, if you’re in to that sort of thing.

RunAs Radio [rss]

Hosted by Richard Campbell (also of .Net Rocks!), this podcast is more IT-focused, giving a slightly different perspective.

The Changelog [rss]

I kind of dropped out of this one for a while, but recently have been catching most episodes. They cover a nice cross-section of different open-source projects.

Startups For the Rest of Us [rss]

Rob Walling and Mike Tabor covering all aspects of bootstrapping and running your own SaaS business. It makes me wish I was actually doing that, but in the meantime I enjoy hearing about it.

Zen Founder: Startups. Family. Life. [rss]

From Rob Walling (of Startups for the Rest of Us) and his wife. I’ve only recently starting listening, but it seems promising.

Product People [rss]

I really enjoyed the interview style and variety of guests on this show by Justin Jackson. It’s no longer regularly produced (last episode was December 2014), but I’m still subscribed to scoop up any new ones.

Kalzumeus Software Podcast [rss]

It’s not published very often, but still worth hearing the latest ideas from Patrick McKenzie and his experiences running SaaS businesses.

Colophon:

I’m still using and can highly recommend the Downcast iPhone app. It has a handy export feature for your podcast subscription list in OPML format. I have a simple Python script (podcast.py) which converts it to Markdown text, then I just added my review comments to create this point.

Photo credit:

My Podcast Set I by Patrick Breitenbach (Flickr)

DataStax Installer with Vagrant

I’ve continued to make improvements to my “Cassandra on Vagrant” project (Using Vagrant for Local Cassandra Development) which shows how to install open-source Cassandra or DataStax Enterprise in a variety of different ways. Using Vagrant is very helpful for local development and testing. Virtual images can be created very quickly and can be erased when done, keeping your primary development system clean.

Recently I added an example which uses the DataStax Enterprise (DSE) standalone installer which first appeared in DSE 4.5. The standalone installer normally runs in a graphical UI mode, but can also be run in an unattended mode which I’m using here.

To play with the examples, grab a copy of the Vagrant projects from GitHub: bcantoni/vagrant-cassandra. Once you have Vagrant and VirtualBox set up, check out example 5. DSE Installer and go through the setup.

On my Mac laptop, creating a 3-node DSE cluster takes less than 5 minutes. (The speed is greatly improved because we only need to download the installer once.) The installer has several options for running in unattended mode, so the installation can be customized as needed.

See the code and more details at bcantoni/vagrant-cassandra.

Tech Advent Calendars – 2014

Update: For the latest, check out Tech Advent Calendars – 2016

It’s that time of the year again – Advent calendars for many tech communities. As in past years (2011, 2012, 2013), I’ve gathered a few here that should be interesting:
* Perf Planet Advent (performance) – Feed
* 24ways Advent (web design/development) – Feed
* Perl Advent (Perl language) – Feed
* Java Advent (Java language) – Feed
* UXMas (UX for everyone) – Feed
* SysAdvent (Sysadmin) – Feed I have a combined RSS feed (created with Yahoo! Pipes) that picks up all of these advent calendars:

http://feeds.feedburner.com/TechAdventCalendars. (Yahoo Pipe source).

Quick Guide to Vagrant on Amazon EC2

Here’s a really quick guide to using Vagrant to create virtual machines on Amazon Web Services EC2. I’ve gotten a lot of use out of Vagrant for local development, but sometimes it’s helpful to build out VMs in the cloud. (In particular, if your local machine isn’t very powerful.)

These steps assume you already have Vagrant installed and have an Amazon Web Services account (and know how to use both).

Installation

First you’ll need to install the Vagrant AWS plugin:

vagrant plugin install vagrant-aws
vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box

Next login to your Amazon AWS console to get a few things:

  • AWS access key
  • AWS secret key
  • SSH keypair name
  • SSH private key file (.pem extension)
  • Make sure the default security group enables SSH (port 22) access from anywhere

I like to set these up as environment variables to keep them out of the Vagrantfile. On Mac or Linux systems you can add this to your ~.profile file:

export AWS_KEY='your-key'
export AWS_SECRET='your-secret'
export AWS_KEYNAME='your-keyname'
export AWS_KEYPATH='your-keypath'

Vagrantfile

Now we can configure our Vagrantfile with the specifics needed for AWS. Refer to the vagrant-aws documentation to understand all the options. In the example below we have all the AWS-related settings in the x.vm.provider :aws block:

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.define :delta do |x|
    x.vm.box = "hashicorp/precise64"
    x.vm.hostname = "delta"

    x.vm.provider :virtualbox do |v|
      v.name = "delta"
    end

    x.vm.provider :aws do |aws, override|
      aws.access_key_id = ENV['AWS_KEY']
      aws.secret_access_key = ENV['AWS_SECRET']
      aws.keypair_name = ENV['AWS_KEYNAME']
      aws.ami = "ami-a7fdfee2"
      aws.region = "us-west-1"
      aws.instance_type = "m3.medium"

      override.vm.box = "dummy"
      override.ssh.username = "ubuntu"
      override.ssh.private_key_path = ENV['AWS_KEYPATH']
    end
  end
end

See this Github gist for a longer example file.

Now you can bring up the VM by specifying the AWS plugin as the provider:

vagrant up --provider=aws

After about a minute, the VM should be up and running and available for SSH:

$ vagrant up --provider=aws
Bringing machine 'delta' up with 'aws' provider...
==> delta: Launching an instance with the following settings...
==> delta:  -- Type: m3.medium
==> delta:  -- AMI: ami-a7fdfee2
==> delta:  -- Region: us-west-1
==> delta:  -- Keypair: briancantoni
==> delta:  -- Block Device Mapping: []
==> delta:  -- Terminate On Shutdown: false
==> delta:  -- Monitoring: false
==> delta:  -- EBS optimized: false
==> delta:  -- Assigning a public IP address in a VPC: false
==> delta: Waiting for instance to become "ready"...
==> delta: Waiting for SSH to become available...
==> delta: Machine is booted and ready for use!
==> delta: Rsyncing folder: /Users/briancantoni/dev/vagrant/aws/ => /vagrant

$ vagrant ssh
Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.13.0-29-generic x86_64)

ubuntu@ip-172-31-30-167:~$

Notes

  • You need to configure a specific AMI for Vagrant to use. I find the Ubuntu Amazon EC2 AMI Finder very helpful to match the version and region I wanted to use.
  • A common tripping point is the default security group not allowing SSH (port 22) from any IP address. Also make sure to add any other ports depending on your application (e.g., port 80 for HTTP).
  • Once you have the basics working, make sure to read through the vagrant-aws project to understand all the options available.
  • Make sure to vagrant destroy your VMs when done, and check the AWS Console to make sure they were terminated correctly (to avoid unexpected charges).