Mozilla, Mozilla Firefox, TubeStop, YouTube

Adopt an Add-on: TubeStop

Notice: TubeStop was discontinued on December 25, 2012 and is no longer supported.

I’m no longer going to be updating TubeStop, a Firefox extension I wrote that disables autoplay on YouTube videos. I don’t have the time or the inclination to keep up with YouTube’s HTML changes.

TubeStop has been around for about five years, and it has 17,000 users. It was the first browser extension that made it possible to disable YouTube’s autoplay feature (if you don’t count the all-purpose Flashblock), and it gained notoriety in 2007 for inadvertently stripping ads from YouTube videos.

If you’d like to adopt this abandoned add-on, let me know, and I’ll transfer ownership of the extension to you on Mozilla Add-ons. If nobody wants to take over development, I’ll shut it down and the void will be filled by one of the other anti-autoplay extensions on AMO.

Standard
Christmas

Our 2012 Christmas Letter

HEY YOU GUYS,

Blah blah blah introduction. Let’s get down to business.

In January, I took a trip to New York City to meet my co-workers for the first time, and Christina used the opportunity to jet to Oregon with Gideon to visit a friend. I’m not sure what Gabriel did while we were gone; you’ll have to read his Christmas letter to find out.

This spring, I threw myself into the political process and was elected as a delegate at the precinct, county, and state level for Ron Paul. The political process promptly threw me back, choosing to support Mitt Romney instead. By the time this letter reaches you, I’ll have either been proven wrong or revealed as a wise soothsayer that the country should have heeded. My money is on the sooth.

In March, we got new windows put on our house. They look nice, but the process was a pane.

Christina held a garage sale in April, and boy were her arms tired! Because it would be hard to hold a garage sale in your arms! Because it would be heavy! LOL!

In May, I took another “work” trip, this time to Vegas. Unfortunately for you, I am contractually obligated by the city of Las Vegas to ensure that what happened within the city limits of Las Vegas stays within the city limits of Las Vegas.

Get it? “Pane?” Because of windows!

Gabriel played his first team sport this year: three sessions of tee ball in June. In a startling display of segue, I also took him to his first professional sporting event later in the summer, to see the Twins with Grandpa and Jacob Finke. I didn’t plan it that way just so this letter would flow, but it definitely worked out. He enjoyed both tee ball and the Twins game equally, which is to say, little.

We did the annual family camping trip at the end of June. The weather was perfect, there were no bugs, and the kids slept for 10 hours each night. (Can you find the three lies in the previous sentence?)

August put me on an airplane again, this time to San Diego for an all-company meetup. (The meetup was in September; August was the name of the Delta airlines flight attendant.)

Gabriel started preschool in September. He also ended preschool in September. We decided his crying and refusal to attend each day were signs that he was too advanced for school. We’ll see if he’s still too advanced next year.

I should probably say something about Gideon.

I did the Paleo challenge for a month this year. If you’re not familiar, the Paleo diet involves eating only food that would have been eaten in caveman days; it’s supposed to make you healthier and hardier. Unfortunately, I didn’t look up the exact definition until it was too late, and I had spent a month eating bread, swiss cheese, potatoes, and milk — they’re pale, yo.

Christina spent a lot of time this year traveling back and forth to the Mayo Clinic with her dad while he was treated for esophageal cancer and subsequently underwent a gastrectomy. (Not Christina, her dad.) The surgery has changed him a little: he used to love steak, but now, he just doesn’t have the stomach for it.

This year, Gideon turned one year old, as children tend to do a year after they are born. (Next year, we are hoping that he will turn two, but we would settle for three.) He is a regular chatterbox; I stopped keeping track of his vocabulary once it hit 350 words. Speaking of which, did you know that it is possible to only know 350 words but never stop talking?

We bought a new car in October. Well, “new.” And “car.” And “October.” Okay, we bought a used SUV in November.

Merry Christmas,

Chris, Christina, Gabriel, and Gideon

Standard
Blogging, Writing

Somebody’s Gonna (Write a Book About The) Lotto

tl;dr: I’m writing a novel about the lottery at lotterynovel.wordpress.com.

I’ve always wanted to write a book; it’s on a list I made about ten years ago of things that I’d like to accomplish in life. I’ve had a couple of topic ideas floating around in my head, but the lottery is one that I think I can really run with. (Sentences ending with prepositions are just one of the literary treats you’ll be party to if you read my book.)

I don’t get many opportunities to write fiction, although some of my co-workers might argue that my comments explaining how my code is supposed to work would count. This is also a chance to see the platform I work on every day in a different light as I use it for sequential story-telling rather than blogging.

By publishing the sections as soon as I write them, I’ll be able to benefit from immediate reader feedback (assuming that there will be any readers). I suppose this is a sort of crowdsourcing turn on the editor feedback model of traditional publishing, and I’m not sure whether it will be a blessing or a curse.

When I finish, I’ll package the whole thing up as an e-book and learn a little something about that process too. Until then, I invite you to read along as I write my way towards a conflict and its eventual resolution. The first portion was posted a couple of days ago, and part two will be up this week.

Standard
Blogging, Clean and Sober, Programming, Themes, WordPress

New WordPress Theme: Clean and Sober

Today, I’m releasing my site’s theme (the design you’re looking at right now) as a free open source theme for WordPress. I’m calling it Clean and Sober, and it’s compatible with WordPress 3.4 and up. Here’s the default homepage:

The default Clean and Sober homepage.

It’s designed mainly with single-author blogs in mind, since I initially wrote it for (this) single author blog, and there are not a lot of graphics (zero, to be exact), since I am, how-you-say, very bad at doing art.

This is the first WordPress theme I’ve released in five years (the last being Greencode in January of 2007), and the first one that I’ve tried to make compatible with all of the Theme Review Guidelines, and let me tell you, it is exhausting. Major props to the themers who can do this more than once every five years.

Some notable notes:

  • Post excerpts are displayed on index pages beneath the post title. If no excerpt is defined, nothing is displayed there.
  • You can define one menu, which is displayed beneath the header. If a menu item has children, they will automatically be shown in a dropdown menu.
  • On pages with an author (posts, pages, etc.), the author’s bio will be displayed beneath the content if the author has written a bio and saved it in their profile’s Bio field.
  • On pages without an author (search results, the homepage, etc.), you can choose a user to be displayed as the default author. This is handy for single-author blogs that are identified solely with one user. This setting can be changed from the theme customizer.
  • The contact links on the right side of the bio are defined at the bottom of your profile page.

It works well for my needs, but I’m interested to see all the new and exciting ways that other people can break it by trying it on their blogs. Give it a shot and let me know how you like it in the comments, or just take a look at this gallery of screenshots:

Standard
Formategory, Plugins, WordPress

Formategory: A WordPress Plugin Four Years in the Making

You may recall (but you probably don’t) that four years ago, I was looking for a WordPress plugin that would let me add a postscript to all of the posts in a given category. I wrote a simple proof-of-concept at that time, called it Formategory (“Format” by “category”), and left it to simmer in my subconscious.

Well, you can stop holding your breath, because even though I forgot about it for three years and eleven months, I’ve finished the first version and uploaded it for you to use! Here’s a screenshot of the template editing screen:

The editing screen for a category template.

A full description and usage instructions are on the Formategory homepage, but if you’re one of those people who would rather trial-and-error your way through it than read the manual first, here’s how you can get started:

  1. Search for “Formategory” in the “Add new plugin” screen on your WordPress dashboard and install it from there.

or

  1. Download the .zip file from Extend.
  2. Choose “Add New” from the “Plugins” menu in your WordPress dashboard
  3. Upload the .zip file.

Activate it, click the new “Category Templates” link in your dashboard’s menu, and create your first template.

Translators: formategory.po is included in the /languages/ directory if you’d like to translate Formategory. Thanks to Andrew Kurtis from WebHostingHub for providing the es-ES translation. To ensure that Formategory is displayed in your language, follow the instructions at WordPress in Your Language.

By the way, this post about Formategory is using Formategory to auto-add the download link for Formategory to the end of this post. Formetagory, am I right?

Standard
Life, Video

How I manage my digital home videos

My family shoots a lot of video. We’re on our second Flip camera, we used a mini-DV camcorder until it would no longer record cleanly, my wife and I both have iPhones, and we have two young sons who we find very photogenic.  Add that all up, and you get what can seem like an unmanageable amount of digital video: 560GB divided between 1,500 video clips since 2004, 80% of that since our first was born in 2009.  At last count, those clips totaled 80+ hours, and that number is increasing every day.

A couple of years ago, I digitized all of my wife’s family’s home videos from the 80s and 90s, and it was heartbreaking to see how much of the videotape had degraded and was no longer watchable.  I didn’t want anything like that to happen to our family memories, whether it be due to hard drive crash, accidental deletion, or just disorganization, so over the last few months, I’ve formalized the system that I’ll use to ensure that all of our videos stay organized and backed up.


On the first of every month, I ensure that all videos from our Flip camera (which we use rarely, and usually only for long recordings) and our iPhones have been transferred to a computer. On that computer, there’s a daily cron job that looks for new video files in the Flip and iPhoto libraries and copies them to the “Home Videos” folder on our Drobo, which is network-accessible via our Time Capsule.

Using exiftool, all of these new files are automatically renamed using the format “2012-01-02 03 04 05.MOV”, where the filename is the date and time the video was taken:

exiftool "-FileName<CreateDate" -d "%Y-%m-%d %H %M %S.%%e" [files_to_rename]

I then add captions to the videos by adding a description of the video to the filename (after the timestamp). If multiple clips are from the same event, I can leave them without a description, and a cron job will automatically add the description from the previous clip, appending ” – 2.MOV”, ” – 3.MOV”, etc. (It only does this for clips taken within a 15 minute window of one another.) It takes me about 10 minutes to caption a month’s worth of video.

I chose to organize the video files directly, without using any video library management software, since I want to have as much control over the portability of the clips as possible.  I’ll want to be able to stream them to myriad devices over my home network or even the Internet, and I don’t want to have to deal with whatever folder and file structure was chosen by the management software.

If all I wanted to do was keep all of my clips organized by date in a folder, I’d be done right now, but I want to burn DVDs of this footage for easy physical portability, universal playability, and as a last-ditch backup solution.1

A cron job runs every night, checking if I have accumulated 2 hours of named footage in the folder on the Drobo that has not yet been burned to DVD. If I have two hours, but it’s not all named, I get an e-mail reminding me to name it. If I have two hours and it is all named, it will automatically create an iMovie project, populating it with the clips (using ffmpeg to convert all the non-.MOV videos into a format that iMovie won’t choke on). It also auto-creates chapters in the project by stripping the timestamps from the clips and adding a new chapter for each new event. For example, this set of clips:

  • 2001-01-01 00 00 00 – New Years Day.MOV
  • 2001-01-01 00 04 03 – New Years Day – 2.MOV
  • 2001-01-01 00 17 12 – New Years Day – 3.MOV
  • 2001-01-21 17 00 00 – Christina’s Birthday.MOV
  • 2001-01-24 14 00 00 – Hiking.MOV
  • 2001-01-24 14 11 00 – Hiking – 2.MOV
  • 2001-01-29 15 00 00 – Snowboarding.MOV

would result in this chapter list:

  1. New Years Day
  2. Christina’s Birthday
  3. Hiking
  4. Snowboarding

Once the project has been generated, the rest of the process is manual, since I want to hand-check the chapters and make sure that a multi-day event (like a family vacation) hasn’t been split across DVDs. I also like to customize the DVD with relevant background images and an appropriate theme. (I’ve even been known to pick out some complementary background music for the menus if I’m feeling particularly creative.)

Once the DVD project is ready, I export it as a disc image to a different folder on the Drobo and eventually burn it to a physical disc.


It’s a solid setup for my next project, which is to find a way to easily watch all of these videos on our Tivo, our iPhones, or at least via a Mac Mini connected to our TV, because having all of this video of family memories doesn’t matter if it’s too much of a hassle to actually watch it.

How does this compare to your own process for organizing and managing your personal media collection? Any tips or tricks that you’d like to share?

1. It’s not my only backup: in addition to the inherent drive failure protection provided by the Drobo, I have everything backed up to two external drives as well, one of which is kept at home, the other off-site. Every six months, I update the contents of the on-site drive, swap it with the off-site drive, and then update the contents of that one too.

Standard
Browser Add-ons, Feed Sidebar, For Sale, Mozilla, Mozilla Add-ons, Mozilla Firefox, RSS Ticker

Firefox Add-ons for Sale

The time has come for two add-ons, RSS Ticker and Feed Sidebar, to find new owners.

Since I started developing add-ons for Firefox, I’ve written at least forty different extensions: some for personal use, some as a freelancer, and some as the primary function of my full-time employment.

In order to free up more time to pursue new ideas and projects, I occasionally need to either retire or transfer ownership of add-ons that I wrote of my own volition. Some of these, like TwitterBar and FireFound, were retired by executive decision. Today marks the first time that I am attempting to actively sell the rights to some of my add-ons.

Allow me to brag about these add-ons

RSS Ticker and Feed Sidebar are my two most popular add-ons, and they’re fully functional in the most recent version of Firefox.

RSS Ticker Screenshot

Both of them have been featured as “featured” or “recommended” add-ons Mozilla Add-ons multiple times, and both maintain healthy usage by a dedicated base of users not interested in Web-based feed readers.

RSS Ticker averages 39,000 daily users and has been download 1.3 million times. Feed Sidebar averages 21,000 daily users and has been download over 900,000 times. The two add-ons are unlikely to have overlapping users.

RSS Ticker is the first Google result for firefox ticker. It is also the first result for rss ticker and feed ticker.

Feed Sidebar screenshot

Feed Sidebar is the fourth result for firefox feeds and firefox feed reader and number two for firefox feed. It’s number one for feed sidebar.

Both of these add-ons would be excellent footholds for a Web-based feed reader to attract users who prefer to consume news directly from their browsers; they would be equally beneficial for content-oriented sites to push recommended feeds to users via the already-integrated “Featured Feeds” feature in both add-ons. (Both extensions regularly check a list of “Featured Feeds” and suggest these feeds as subscriptions to their users.)

What do you get if you buy?

If you buy either of these add-ons, I’ll:

  1. Transfer ownership of the add-on(s) to you on Mozilla Add-ons.
  2. Redirect the add-on pages on my blog to the pages of your choosing.
  3. Forward any feedback e-mail I receive regarding the add-ons indefinitely.
  4. Add you to my Christmas card list.
  5. Be a good guy in general and offer free consulting and advice related to the add-on(s) for as long as I can.

If you’re interested in purchasing either or both of these add-ons and taking over their development, e-mail me at chris@efinke.com.

Standard
AutoAuth, Browser Add-ons, Feed Sidebar, Interpr.it, Links Like This, Mozilla, Mozilla Firefox, OPML, Programming, RSS Ticker

Interpr.it now speaks Mozillian

My browser extension translation platform, Interpr.it, is now able to parse locale files from extensions for Firefox, Thunderbird, SeaMonkey, or any other Mozilla-powered program, and it can likewise generate Mozilla-compatible locale files. The interface for translation is the same as the one for translating Chrome extensions, but when the locales are downloaded via the API, the files are returned in the format in which they were originally uploaded (either DTD files or Java-style .properties files).

This is most obviously introducing a competitor to Babelzilla, the only major site offering a translation platform for Mozilla extensions. Babelzilla is a functionally sufficient solution for translation (I’ve used it without much issue for almost six years), but I’m moving away from it for two reasons:

  1. Translation/localization is a problem that I’d like to understand better, and I find the best way to understand a problem is to try and solve it yourself.
  2. I think that the experience of localizing an extension (or developing a localizable extension) can be better, and I have the hubris to think that I can be the one to make it better.

In the spirit of putting my money1 where my mouth2 is, I’ve moved five of my Firefox extensions (AutoAuth, Feed Sidebar, OPML Support, RSS Ticker, and Links Like This) from Babelzilla to Interpr.it.

If you are interested in trying Interpr.it, upload your extension (either using the Web form or API), and let me know how it works for you.

  1. For extremely small values of “money.”
  2. For extremely large values of “mouth.”
Standard