Sunday, December 13, 2009

Critters Update for December

Critters has been updated and includes the following new functionality and enhancements:
  • New - Pet list with thumbnail photos
  • New - Pet list filtering
  • New - Veterinarian search via Google Maps application
  • New - Save custom veterinarian search terms
  • New - User stories added to unit tests
  • Enhancement - Owner list thumbnail photos
  • Enhancement - Owner list filtering
To learn more about Critters and see a few screenshots, visit the project's home page here. The source snapshot has been updated and is available for download.

Sunday, November 8, 2009

Critters Source Snaphot Available for Download

The first source code drop for Critters is available for download.

The application is feature complete for the management of pet owners. Unit and functional tests have been completed and included in this release. Don't laugh too hard while you are reviewing the source. This is the first project I have done in Android and it is still a learning process. If you have any suggestions or pointers, please feel free to let me know.

Friday, October 23, 2009

Critters Update

It has been hard to find the time, but I finally made a bit of progress on Critters. Pet owner management is almost complete and includes the following functionality:
  • Create, edit and delete owners
  • Attach a photo of an owner to their personal record
  • Place a call from the owner's contact list
  • Send an e-mail from the owner's contact list
To learn more about Critters and see a few screenshots, visit the project's home page here.

Sunday, September 27, 2009

ActiveRecord Data Model for Android

This month I was researching ways to implement data access for my Android project. I found an interesting tutorial posted by Java Padawan available here. The author presents what is a "sort-of" ActiveRecord data model for Android. I really liked the idea and implemented my own version for use in my project. Today's article covers most of what was presented in the author's original tutorial plus a few other items that I felt were missing.

Sunday, August 30, 2009

Android Input Validation

Today's article will cover a quick and dirty approach to form validation for Android applications. My application has an activity that displays a form to the user for entering personal information. This information is then stored in a SQLite database. I needed a way to validate the data in the form's widgets before saving that data in the application's database. The Android framework provides some support for entering valid data into a form. This support includes hints and input filters. Hints are a handy way to help a user enter information when a widget's text is empty.

Saturday, July 11, 2009

Android Dialog Theme and Window Decorations

While working on my first Android project, I ran into an interesting problem; how to add an icon to the window title of my application's about dialog. My search for a solution only led to others asking this same question without any answers. Here is my solution to the problem in the hope that it may save you some time engineering your own.

Sunday, June 14, 2009

openEPRS Project Update

It was over two years ago that I embarked on creating an open source electronic medical record. Today I have decided to discontinue work on openEPRS. This rise of other open source projects such as Medsphere put openEPRS at a competitive disadvantage. The complexity and scope of building an EMR is beyond the capabilities of a single developer. That is not to say definitively that it is impossible. However, by the time a single person could complete such a project, it would be obsolete.

In retrospect, the project was not a complete failure. openEPRS was a great opportunity for learning Ruby on Rails which helped me become a better developer. Now, on to the next challenge!

Sunday, May 17, 2009

KB: Running Cruise behind Apache with SSL on Ubuntu

Configuration guide for running Cruise behind Apache with SSL on Ubuntu Linux.

Sunday, May 3, 2009

Cruise and Ubuntu System Wide Environment Settings

I discovered a strange little problem the other day. I just completed my install of ThoughtWorks Cruise on a server running Ubuntu 8.04 LTS. In case you haven't heard of it, Cruise is a continuous integration and release management system. Everything appeared to be running correctly; so I proceeded to setup a pipeline for an Android project I was working on.

Android uses Ant to build and manage a project outside an IDE such as Eclipse. This looked like a no brainer using Cruise's <ant> task. I had Ant 1.7.1 installed with the following lines in my server's /etc/environment file:

Sunday, April 5, 2009

KB: Running Mingle behind Apache with SSL on Ubuntu

Configuration guide for running Mingle behind Apache with SSL on Ubuntu Linux.

Saturday, April 4, 2009

KB: Secure WordPress Administration on Ubuntu

Configuration guide for the administration of WordPress over SSL on Ubuntu Linux.

Monday, March 23, 2009

Friday, February 27, 2009

ASP.NET MVC and Tabs

Recently I have been spending time creating a batch application for SQL Server Reporting Services. During the day, I work for a third-party administrator (TPA). Part of the business involves the payment of medical, vision and dental claims on the behalf of our clients. Periodically we need to print the check registers on the accounts from which the claims payments are made. A data driven subscription alone is not flexible enough. Running the report on demand for each date and client would take too long.

To make it easy for the accounting department to run these reports, I created a web application using ASP.NET MVC that allows the user to search for check runs by date and then select which registers to print from the search results. The selection is used to populate a parameter table followed by the application executing a SQL Agent job associated with a standard data driven subscription for the check register report. Now that the background is out of the way, on to the problem and solution.

The default ASP.NET MVC application layout is a simple master page with a "MainContent" place holder. The master page provides a menu located above the content place holder. The menu is a basic unordered list formatted to look like a series of tabs. Each tab contains an ActionLink helper that ties it to a specific controller and action. This works great except that there is no support for identifying and maintaining the currently selected tab.

Saturday, January 31, 2009

Plug-ins, Security and Frustration

Really nothing to post on except my increasing level of frustration with Rails security plug-ins and my domain model. This shouldn't be that difficult given:
  • There are multiple clinical facilities
  • Users can belong to more than one facility
  • Users can have different roles at each facility
  • The application supports an HTML interface as well as a REST API
Authentication was easy, I used the restful_authentication plug-in. It is easy to customize and works great with HTTP basic authentication and SSL for securing the REST API. The only modification I made to the plug-in was changing from SHA1 to SHA512 for the password hashes.