About openFace
March 23rd, 2008 | View Post


The first openFace logo
Welcome to openFace!
...online archiving software

It's been over three years since I decided to embark upon my own personal content management system (CMS) specifically for powering my personal archival space on the internet, www.kevinludlow.com.

My first version of such a software package was designed under the guidelines that database designs were not only unnecessary, but also that they provided gaping security problems to the average user. As a result, my first CMS (which incidentally has powered www.kevinludlow.com for the past several years) was designed such that the administrator could use databases for support, but that the resulting website would be 'built' and hence all pages would actually be static. Given the system was driven by pluggable modules, it was titled staticMOD.

Though the staticMOD system worked well, it became more and more clear that in order for a CMS to be truly dynamic, it could not rely upon the administrator to 'build' new database remarks into the static pages. After coming to that sad realization, I discontinued building the finer features of staticMOD

In the summer of 2006, I began working on new concepts for how a true personal archival package should be built, and specifically how it should differ from the typical content management system. The system should avoid more technical features commonly used for allowing administrators to set up slashDot style websites, and should rather focus on the aspects truly desired by users: photo support, video support, personal blog, contact capabilities, and etc. Additionally that all aspects of text should be taggable in a wiki-like style thus allowing visitors to truly learn about the website owner's world.

After over a year of here-and-there planning, the first bits of code were written on the 19th of July, 2007. From then on, the software package has slowly been transformed into the vision I have had for it all along.

Some of the more interesting features, in my opinion, deal specifically with how entities are tagged throughout the openFace system. For example, say you are looking at a scanned photo over 80 years old of relatives, perhaps your grandparents. openFace has the unique ability to not only let you discern who is who in the picture, it will also tell you roughly (or in most cases exactly) how old the individuals are in the photo. Additionally, you have the ability to click on the individual and read more about them and how they pertain to my life. The same profile display will link you to various stories about the individual, any video footage I may have of them, some personal information, and of course will allow you to view all images with said individuals.

As far as the look of openFace goes, it may strike you that the website has a remarkably similar look and feel to Facebook. Though I suppose it is safe to say this is no coincidence, no portion of Facebook was used to design this website. Additionally, no codebases, external or otherwise, were in any way borrowed from Facebook. I simply feel that of the social networking sites available online Facebook is the only one that has done it right as far as a clean interface goes. My imitation of that cleanliness is nothing shy of flattery to the web-layout team over at Facebook.

To expand on the previous statements, all code was written from the ground up in Linux shells using nothing more than VIM. The codebase is primarily written in PHP, though it also relies heavily upon JavaScript, CSS, and of course HTML. To date, the entire codebase (including comments) is in excess of 16,000 lines. The entire API is also documented with the help of Doxygen.

Though there are still many features and functions on the way, some of which are even discussed in the former paragraphs, I hope you'll enjoy the first new version of my content management system personal archival system, openFace!

Newest Albums


Recent Posts
Packing Everything Up!
Sporting Clays
Kayaking the Missouri River
My Retirement Video
Round-the-World Map
Final Round of Shots
Getting my Thailand Tourist Visa
Starting Price Sheet
Vaccinations Complete
Equipment Layout


Blog Archives
Recent Posts
August 2017 ( 7 )
July 2017 ( 5 )
December 2016
November 2016
November 2015
October 2015
March 2015 ( 3 )
January 2015
October 2014
September 2014 ( 4 )
August 2014 ( 6 )
July 2014 ( 7 )
June 2014 ( 8 )
May 2014 ( 3 )
April 2014 ( 2 )
February 2014
January 2014 ( 4 )
December 2013 ( 4 )
November 2013 ( 2 )
September 2013
August 2013 ( 3 )
July 2013
June 2013
May 2013 ( 2 )
March 2013 ( 2 )
February 2013
January 2013
December 2012
November 2012 ( 4 )
October 2012 ( 2 )
September 2012 ( 4 )
August 2012
July 2012 ( 8 )
June 2012
May 2012 ( 6 )
April 2012 ( 7 )
March 2012 ( 4 )
February 2012 ( 5 )
January 2012 ( 4 )
December 2011 ( 5 )
November 2011 ( 2 )
October 2011
September 2011
August 2011 ( 5 )
July 2011 ( 6 )
June 2011 ( 2 )
May 2011 ( 3 )
April 2011 ( 3 )
March 2011 ( 2 )
February 2011
January 2011
December 2010 ( 2 )
November 2010 ( 2 )
September 2010
August 2010
June 2010
March 2010
February 2010 ( 3 )
November 2009
June 2009
May 2009 ( 3 )
April 2009
March 2009 ( 2 )
February 2009
December 2008
November 2008
October 2008
May 2008 ( 2 )
March 2008
January 2008
December 2007
July 2007 ( 2 )
June 2007 ( 2 )
May 2007
December 2006
October 2006 ( 3 )
July 2006
May 2006 ( 2 )
April 2006
December 2005
October 2005
September 2005 ( 5 )
August 2005
July 2005
June 2005 ( 3 )
May 2005
April 2005
December 2004
November 2004 ( 6 )
May 2004
February 2004 ( 3 )
January 2004
December 2003 ( 9 )
November 2003 ( 5 )
August 2003
July 2003 ( 15 )
June 2003
September 2002
August 2002
May 2002
April 2002
December 2001 ( 2 )
July 2001
April 2001 ( 3 )
February 2001 ( 5 )
November 2000
September 2000
May 2000 ( 2 )
March 2000 ( 2 )
December 1999
November 1999 ( 3 )
October 1999 ( 5 )
September 1999
August 1999
July 1999 ( 8 )
June 1999 ( 2 )
May 1999 ( 3 )
April 1999
March 1999
December 1998
November 1998 ( 2 )
October 1998 ( 3 )
September 1998
July 1998 ( 2 )
June 1998
April 1998
March 1998
November 1997
October 1997 ( 2 )
March 1997
February 1997
January 1997
November 1995
September 1995 ( 2 )
Complete Listing