Firefox OS, JavaScript, Mozilla, Open Source, Programming, Software, Web Applications

Introducing Reenact: an app for reenacting photos

Here’s an idea that I’ve been thinking about for a long time: a camera app for your phone that helps you reenact old photos, like those seen in Ze Frank’s “Young Me Now Me” project. For example, this picture that my wife took with her brother, sister, and childhood friend:


Reenacting photographs from your youth, taking pregnancy belly progression pictures, saving a daily selfie to show off your beard growth: all of these are situations where you want to match angles and positions with an old photo. A specialized camera app could be of considerable assistance, so I’ve developed one for Firefox OS. It’s called Reenact.

The app’s opening screen is simply a launchpad for choosing your original photo.


The photo picker in this case is handled by any apps that have registered themselves as able to provide a photo, so these screens come from whichever app the user chooses to use for browsing their photos.



The camera screen of the app begins by showing the original photo at full opacity.


The photo then will continually fade out and back in, allowing you to match up your current pose to the old photo.


Take your shot and then compare the two photos before saving. The thumbs-up icon saves the shot, or you can go back and try again.


Reenact can either save your new photo as its own file or create a side-by-side composite of the original and new photos.


And finally, you get a choice to either share this photo or reenact another shot.




If you’re running Firefox OS 2.5 or later, you can install Reenact from the Firefox OS Marketplace, and the source is available on GitHub. I used Firefox OS as a proving ground for the concept, but now that I’ve seen that the idea works, I’ll be investigating writing Android and iOS versions as well.

What do you think? Let me know in the comments.

Open Source

Reminiscing about old code

I imported some long-forgotten CVS repositories into GitHub last night: anyInventory and Toby Web Mail (which contains the first commits I ever made to a version control system). They are nine years old and eight years old, respectively.

Those two projects were my introduction to participating in the Open Source ecosystem. It felt magical that strangers were emailing me, asking if they could help develop and translate these projects that I had previously been working on by myself, albeit in the open.

It’s painful to read some of the code, knowing how insecure it is. There aren’t any indications that I knew about XSS or database query paramaterization. That being said, the applications still work. I was able to install anyInventory on my Web server in about 90 seconds. Thank you, PHP backwards compatibility.

My commit messages were not so great back then:

“Various trivial changes”

The commit? 12 changed files with 227 additions and 195 deletions.

Here’s the Slashdot post that was the impetus for anyInventory. I left a comment suggesting that users could solve their inventory problems by just sending all of their uncatalogued junk to me, and I included my actual mailing address. Despite concerns from other users about a physical Slashdot effect, not one Slashdotter took me up on my offer. (Also note the then-requisite SCO comment at the end of the thread.)

Drew Hearle, who submitted that Slashdot post, ended up working on the anyInventory project with me for a while.

I credit the amount of time I spent on Slashdot for my stances on open source, Web standards, and pony pranks.

I wrote Toby Web Mail so that I wouldn’t have to use Outlook Express any more, and it eventually became the basis of my college senior-year independent study project, anyMail. I think, but cannot confirm, that at one point, there were Web hosts offering both Toby and anyInventory as one-click installs. The thought of this now terrifies me. (See the security section above.)