Thursday, January 26, 2012

Android Critters Retired

The Android version of Critters has been retired so we can focus our resources on our next version. Trying to keep the application viable on three different versions of Android (2.x, 3.x, and 4.x) for no cost and creating a new version was consuming more resources than were available.

For those currently using the Android version, you may certainly continue to use it; however, we will not be releasing any future updates and the application has been removed from the Android Market. If you need to re-install the old application, please contact us and we will e-mail you an APK of the last release. You can install the APK directly from e-mail, if you have set your security to install applications from "Unknown sources".

The next generation of Critters will be web based and work on a variety of traditional and mobile platforms. By focusing on the web, we hope to make updates and fixes more timely and transparent. See our page on facebook so we can get your thoughts and ideas of what we need to make Critters the best personal veterinary record ever!

Thank you for using Critters!

Thursday, December 8, 2011

Critters Source - KTR Development Violates the GPL

Today I discovered that my GPL Critters Android code was copied and turned into a commercial application by a company named KTR Development.

KTR changed the home screen graphic and renamed the application. See the following example:

They are now selling it on the Android Market under the name "Healthy Pets". The link to the KTR home page results in an invalid redirect. There is no way to check if my modified source is available online or on request, a clear violation of the GPL v2 license under which I made the code available.

Modifying and redistribution for fee is allowed under the license; however, the source must be made available. KTR's description on the market does not say the application is open source or even acknowledges the original author of the source they are using.

This is becoming a very disappointing trend where suspect companies troll for source code and use it to make money while violating licenses in the process. I think I will need to re-evaluate making my projects open source in the future.

Maybe KTR will step up and make things right...

Tuesday, November 29, 2011

New Critters Version in the Works

I recently started working on the next generation of Critters, my personal pet health record project. The new version will be based on ASP.NET MVC and JQuery Mobile.

Pet data will be stored on a secure server and allow access to any device that supports a JavaScript enabled web browser. This will give end users a wider range of devices to use with Critters. Multiple devices in conjunction with cloud services and storage puts your pet's information at your fingertips anywhere!

Check back and we will let you know when we get our demo up and running!

Sunday, October 30, 2011

WordPress to Blogger Conversion Success!

It has been over a year; however, I just managed to get all my old WordPress posts, comments, and pages into Blogger. There are a lot of broken links at the moment and missing pictures that I hope to have fixed soon.

Thank you for your unbelievable patience!

UPDATE 10/30/2011: Finished!
UPDATE 10/29/2011: Reformatted another 4 posts!
UPDATE 10/23/2011: Reformatted another 4 posts!
UPDATE 10/07/2011: Almost halfway finished!

Tuesday, October 25, 2011

Critters Development - Now Hosted on Google Code

Yesterday I moved Critters development to Google Code. This moved included the user FAQ, platform statistics and source code archive packages.  The latest source is available in Git along with all tagged releases. I also created a Google Group for users to post questions and suggest enhancements for the application. The current project page on this blog with continue to be updated with the latest feature list, screenshots and links to the Google Code and Google Group sites.

New Site Links: I hope that if you find Critters useful or just have an issue that you need help with, you will take advantage of these new resources.

Tuesday, March 8, 2011

Create a Data Dictionary on the fly for any SQL Server 2005 or 2008 Database

I have included a quick script that creates a stored procedure that will generate a data dictionary on the fly for any SQL Server 2005 or 2008 database:

Monday, March 7, 2011

Import XML Files into SQL Server 2005 or 2008

Presented is a script that allows one to import all XML files in a specific directory into SQL Server 2005 or 2008 and store it as XML. Most of what is presented should work for importing the contents of any type of file, not just XML. The example uses OLE Automation Procedures to extract extra data that one may find of use storing along with the XML such as file creation time, size, etc.

The first step is to enable OLE Automation Procuedures in SQL Server:

USE [master];
GO

EXECUTE SP_CONFIGURE 'show advanced options', 1;
RECONFIGURE WITH OVERRIDE;
GO

EXECUTE SP_CONFIGURE 'Ole Automation Procedures', 1;
RECONFIGURE WITH OVERRIDE;
GO

EXECUTE SP_CONFIGURE 'show advanced options', 0;
RECONFIGURE WITH OVERRIDE;
GO

The next step is to create a table to hold the XML documents. This table will also allow one to version the XML documents if a document is imported with the same name as one that already exists:

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID('[meta].[XMLSchema]') AND type in ('U'))
 DROP TABLE [meta].[XMLSchema];
GO

CREATE TABLE [meta].[XMLSchema](
  [XMLSchemaID] [int] IDENTITY (1, 1) NOT NULL
 ,[FileName] [VARCHAR](500) NOT NULL
 ,[FileVersion] AS CAST(Major AS varchar) + '.' + CAST(Minor AS varchar) + '.' + CAST(Maint AS varchar)
 ,[Major] int NOT NULL
 ,[Minor] int NOT NULL
 ,[Maint] int NOT NULL
 ,[FileType] [VARCHAR] (100) NOT NULL
 ,[FileSize] int NOT NULL
 ,[TimeCreated] [DATETIME] NOT NULL
 ,[TimeLastModified][DATETIME] NOT NULL 
 ,[XMLData] [xml] NOT NULL
 ,[EffDate] [datetime] NOT NULL
 ,[InEffDate] [datetime] NULL
 ,[CurrVersionFlag] [tinyint] NOT NULL
) ON [PRIMARY]
GO

-- Primary key
ALTER TABLE [meta].[XMLSchema]
 ADD CONSTRAINT [PK_XMLSchema] PRIMARY KEY CLUSTERED(
   [FileName] ASC
  ,[Major] ASC
  ,[Minor] ASC
  ,[Maint] ASC
 ) ON [PRIMARY];
GO

-- Defaults
ALTER TABLE [meta].[XMLSchema]
 ADD CONSTRAINT DF_XMLSchema_CurrVersionFlag
  DEFAULT 0 FOR CurrVersionFlag;
GO