Category Archives: Software

Best Practices for Leading Online Meetings

Team Meeting Fist Bump

Online meetings continue to rise in popularity, in particular for companies with remote workers or distributed teams. The effectiveness of online meetings can be improved significantly by following a few simple techniques and habits.

First of all, what kind and size of meetings are we talking about?

  1. One-on-one (2 people)
  2. Smaller team meetings (2-10 people)
  3. Medium team meetings, internal training or demo (10-20)
  4. Larger team meetings, company “all hands” (20+)
  5. Public facing webinar (marketing, sales, training)

This guide is targeting categories 3 & 4 – these meetings are big enough that you want to run them effectively but are still internal and less formal compared to public webinars or training. These types of meetings are often recorded for those not able to attend, so creating a good quality recording is important.

The advice here should be general enough to apply to most online meeting software, even though the exact features may vary and the apps themselves are constantly changing. Over time I’ve used Skype, GoToMeeting, Google Hangouts, WebEx, and most recently BlueJeans. In some cases I’ll reference particular options in certain software which are helpful.

With the intro out of the way, let’s dive in to the list of best practices. What follows here is opinionated based on my own experiences and needs, so make sure to tailor the advice here to fit your own situations.


  • If you’re using a presentation, make sure to have a shareable version of it. Google Docs is good for sharing; PowerPoint/Keynote can be shared as PDF for those who might not have those apps.
  • On the title slide make sure to include the presenter’s name and date (this helps puts the meeting in the proper context for anyone watching the recording later)
  • If applicable, post the slides and share the link ahead of the meeting
  • Configure your computer for effective visibility for meeting participants:
    • When showing a presentation, use slide show mode
    • In other apps, use full screen mode if available
    • Zoom in (increase font size) as needed, especially for anything involving code
    • Turn off 2nd monitor if needed (some older apps like WebEx had a real problem with this)
    • Quit or snooze any apps which may show notifications or reminders
  • Practice with your online meeting software if you’ve never presented before


  • Schedule a unique meeting in your system and include the pertinent details in the calendar invite:
    • Instructions for joining the meeting
    • Agenda
    • Where will chat/Q&A happen
    • Will recording be posted afterwards
  • Configure your meeting with settings to help minimize distractions:
    • Entry/exit tones: off (to avoid annoying beeps)
    • Mute on entry (not everyone will remember to automatically mute themselves)
    • If using a separate system like HipChat or Slack for chat and Q&A, disable the built-in chat
  • For bigger meetings with moderators/presenters in multiple locations, consider using a back-channel for coordinating hand-offs and so on. Using a mobile app like WhatsApp, GroupMe or SMS has the added benefit of being available even if some participants’ internet connections have problems.


  • Have a separate moderator who is not presenting; this lets the presenter focus on their content while the moderator focuses on the meeting itself (mute/unmute, watching for questions, etc.).
  • Join the meeting from a second device like a tablet or phone and leave it on your desk. This makes it easier to confirm and monitor what the attendee view looks like. (Make sure to mute and silence the 2nd device to avoid audio feedback.)
  • Start and join the meeting 10 minutes early and arrange for all presenters to do the same; check all the controls and screensharing before everyone joins. (For first-time presenters, you could do a separate dry-run meeting earlier to ensure their software is working correctly.)
  • When joining the meeting, make sure all presenters are identifiable by their names (as opposed to something like “guest_1” or a dial-in phone number)
  • If your software has the option, turn off entry/exit tones and select mute on entry
  • At the start of the meeting, make announcements a couple times while waiting for people to join:
    • Where the chat or Q&A will be happening
    • Please mute yourself
    • We’ll be starting soon
    • This will be recorded and posted afterwards


Recordings are helpful for anythings that may have value later, especially internal product demos or training. They can also be useful for regular project/staff meetings for the benefit of people unable to attend.

  • If your meeting software has a built-in recording feature, use it. If not (or even in addition to) you can use a desktop application like Screenflow or Camtasia. (For higher-quality recordings, I always use an external recording application.) Make sure to record the presented video screen, the meeting audio, and your local audio device.
  • If the meeting is important (e.g. you have a guest speaker), have a second person also record from their computer as a backup.
  • Don’t start the recording until the presentation is about to start (i.e. don’t record your announcements mentioned above).
  • When you’re ready to start, hit record, wait a moment, then give a good introduction before passing off to the first presenter. That gives your recording a clean starting point with the subject mentioned right away (and avoids all the pre-meeting dead time).


  • For questions and discussion during or after the presentation, encourage everyone to unmute and ask their question live; this helps with those watching the recording later.
  • For questions read from chat or other sources, make sure to read the questions out loug before answering (again, for the benefit of the recording).


  • Clean up and edit the video as needed (depending on how polished you need it). (I like to at least run through the whole video and edit out obvious dead time, coughing, and “ums”.)
  • Upload/post the video and slides
  • Send an email to everyone with links to both

Photo by rawpixel on Unsplash

Running LinkChecker on a Mac

LinkChecker is a utility written in Python for scanning and checking web page links, usually used for finding invalid or outdated pointers which need to be updated. The LinkChecker project is in a bit of flux right now because the original project (GitHub wummel/linkchecker) has gone completely quiet and presumably the original author is no longer interested in maintaining it. Luckily there is a new group of volunteers rallying around a new fork (GitHub linkcheck/linkchecker)

The project has a variety of packaged downloads, but they are not all updated yet from the newest source tree. On my Mac system I always had trouble making the old project work (usually getting an error like ImportError: No module named requests). Switching to the new LinkChecker source and using Virtualenv have solved my problems! These are my steps for making this work; it’s pretty straightforward if you have some experience with Python-based utilities.


First Time Installation

The first step is to create a working directory for LinkChecker and set up the virtual Python environment:

mkdir ~/linkchecker
cd ~/linkchecker
virtualenv env
source env/bin/activate
python --version

Next we’ll clone the latest LinkChecker and install it in the virtual Python environment:

git clone .
python sdist --manifest-only
python build
python install

Next, confirm that it’s installed and ready to run:

linkchecker --help

Finally, start using the tool and check some websites, for example:

linkchecker --timeout 5 --check-extern
linkchecker -r 1 --timeout 5 --check-extern

Running LinkChecker

The above steps are just needed for the first time. After that, you just need to enter the Virtualenv first:

cd ~/linkchecker
source env/bin/activate
linkchecker --help

Tweetfave Growth Tops 240K Tweets

Ever since I launched Tweetfave in 2013, it’s been quietly working away and slowly growing. (For some more of the background, see Brief History of Tweetfave.)

An update on the numbers so far:

  • Over 200 users have tried the service, with over 100 still active
  • Over 240,000 favorite tweets have been marked and emailed

Here’s a growth chart which shows the tweet count growing at a steady rate ever since we went live. The rate of new users cooled off after that first year but is still growing by a few each month. The growth has basically been some word-of-mouth and people who stumble across it (I’m not doing anything active to reach out). I guess you could call it a “hockey stick” growth curve if you count those first 2 years with me as the only user :)

Graph showing total tweets growing to 240,000 and users to about 200
Tweetfave 5-Year Growth Chart

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


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.


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.


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 ( 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)