I started a website called MacGenealogist.com in July of 2008. On that website I published instructional videos teaching people how to research their family histories using the leading genealogy software for the Macintosh computer. In October of that year I began covering the leading Windows genealogy software on a sister website called PCGenealogist.com (the content of which has since been moved to GenealogyTools.com). I wanted the videos on both sites to be focused on carrying out specific family history research processes so I studied the available methodologies and researched the commonly performed tasks.
After a year and fifty or so videos, I noticed that all of the major genealogy programs were focused on collecting conclusions, but not the evidence and arguments for those conclusions. They were focused on the end of the process! That left genealogists and family historians to figure out the most difficult part. I decided to develop a genealogy program that was focused on making the research and analysis of genealogical evidence clearer and easier. I wanted the software to be usable by everyone, regardless of their choice of Windows or Mac, so I chose to create a web-based solution.While I had been creating websites for twelve years and programming as a hobbyist for thirty-five, I had never written a web application! I had a lot to learn about design patterns, languages, and frameworks.
I researched the current, popular languages and frameworks. PHP was very popular, but unappealing to me because I didn’t find it to be an elegant language. Java and accompanying frameworks had a steep learning curve and was overkill for what was essentially a proof of concept. I tried out Ruby on Rails and found it to be elegant and well suited for rapid prototyping. Then I looked into web hosting options; I could run a Ruby on Rails application on my web host. My choice was made.
I bought a book, Agile Web Development with Rails. I read the book, working through the examples as I went and thoroughly enjoyed the Ruby language and the Rails framework. Meanwhile I captured my ideas for features as user stories on index cards. About half way through the book I started getting concerned about scalability. I was confident the application would work well with a relatively small number of users, but how many would be too many? How difficult would it be to re-architect the system to work with multiple databases and application servers? By the time I got three quarters of the way through the book I had let my scaleability concerns become significant so I set about researching Ruby on Rails scalability. I learned about database sharding and other techniques for scaling up, but my concerns persisted. Then I happened upon a news item about Google App Engine.
I learned that it was a free web application platform and set of frameworks that Google made available with generous quotas before requiring payment. I could run my genealogy software as a service on Google’s infrastructure and not incur hosting expense until the concept was proven valuable, at which time I could develop and charge for advanced features. The icing on the cake was that one of the two supported languages was Python, a long-time favorite of mine! My choice was re-made.
I bought another book, Programming Google App Engine. As I read the book I applied what I learned in each lesson by building my genealogy application in Google’s excellent, free development environment that ran on my Macbook Pro. I committed to myself a ship date of April 2, then proceeded to add functionality one user story at a time.
As I implemented each story I created and maintained automated tests using Selenium IDE. Eventually I reached the point where I needed to deploy the application to Google’s servers, so I had to choose a name and associated domain name.
I turned the task of naming the application to my sub-conscience, capturing the ides that sprang forth over the next few days. Then I ran the ideas past my wife and mother-in-law (an amateur genealogist herself). Considering their feedback I settled on a name and registered the domain name. Lineascope.com was born!
I designed a simple logo and wrote the CSS for a clean design to present the forms and tables that Lineascope generated using Django templates.
I launched on schedule by deploying a working system and blogging about it to the several hundred people who follow me on my genealogy weblogs. As of today, 363 people have used Lineascope.com.