ShofarNexus was seeded from a project started in the late 1990s to manage the projection of song lyrics for a congregation at a church. Over the following years technology was developed to deliver the lyrics on screen and simultaneously live on the web. The product expanded to include audio and video delivered both live and on demand.

The project proved to be too early for the technology of the day, and more importantly it did not produce sufficient revenue to fund development.

Over the following years the design went under a significant review. Refinement of the various component parts of the system resulted elegant solutions that can be applied in many arenas.

The Screen

Circa 1998 technology was seeded to manage the projection of lyrics on a screen for a worship service. The first goal was to allow the operator to view the entire song and be able to follow the planed order of verses by simply hitting enter or be able to click on a verse for impromptu situations. The first implantation used VBScript with DHTML.

Just as we can focus on the content of the book and not be distracted by the technology of the book, it was important to deliver lyrics in a natural way and not dazzle with technology. Simple operation was required to allow a first-time operator to deliver a crisp error-free presentation. Responsiveness of the application was important to allow an operator to quickly respond to impromptu events. The design allow for numerous occasions where the lyrics for an impromptu song were on screen within moments and sometimes before the first word.

Live and on-demand

Additional goals were added to allow for live and on-demand presentation of the lyrics with the audio and later video of the service. This seeded the need for storage and distribution technology.

The design moved to a full web application written in C# with a SQL Server database. Data correctness issues were addressed by developing techniques using immutable data within the database. Immutable data proved to be the ideal solution for archiving and distribution.

SQL to XML

Over time the weight and distribution requirements of SQL Server became too much of a burden and the XML based ShofarFile was born. The ShofarFile had immediate advantages over the SQL based implementation in the areas of code size, performance, immutability, archiving and distribution.

Initially the ShofarFile was encoded using Microsoft’s .Net Framework’s XML serialization. Although Microsoft’s XML implementation is very good, it only gives limited control of what the XML looks like which hinders readability. It also imposed a significant startup time for the application which grew to over 18 seconds. New serialization code was written from scratch that reduced the startup time to zero, improved performance and provided complete control of the layout of the XML file.

Performance

After experimenting in many directions, two new goals were introduced. It is clear that less code allows for a more complete understanding of the entire application by an individual and gives a smaller surface area to optimize and secure. A goal was set to keep the application under one megabyte in size.

Response time was also important, so a one millisecond goal was set from the time the request is in place to the time the response is complete and ready for return.

In 2008, with most of the desired functionality in place, both of these goals were accomplished.

Embedded Systems

Starting in 2009 we are returning to our roots in embedded systems. The ShofarNexus core is being moved to C++ to allow for implementation on embedded systems.

Since ShofarNexus is fundamentally built on the ShofarFile, a small amount of code has to be updated and all of the data can now reach the smallest of systems.