The future of Shion

First of all, I owe every Shion user an apology for my absence for the past year. In a nutshell, my consulting business took on a good amount of work, and it’s only been recently that I’ve been able to fulfill those obligations and clear them off of my agenda so that I could resume work on Shion and my other projects. Due to personal reasons, I’ve largely shuttered my consulting business and am now working as a 9-to-5 employee doing much of the same things I did as a consultant.

With the change in my employment situation, the Shion project is changing as well. Instead of trying to develop the application into a commercial product, I am open-sourcing the code and work will continue as an open project. This frees me from having to make technical decisions dependent upon commercial considerations, and allows me to take the project in a direction that makes the most sense from a technology and innovation perspective.

In terms of the current offerings, I’m planning a series of bug fixes that addresses the issues e-mailed to me over the past year as well as resolving some issues of my own that I have with the software. I anticipate releasing several more versions of the Mac application in the next couple of months. The online service will remain online and the mobile app will remain available as well.

After the outstanding issues are addressed satisfactorily, I plan to take the development of the platform in a different direction. Given that with every release, the Mac becomes more like an iPad and less like a general-purpose computing device, I’m deemphasizing my Mac-based focus in favor of a more ubiquitous stance. The Shion application (as it is now), will be split into a variety of components designed to interoperate and communicate with each other. While I haven’t made any definitive technology decisions yet, here’s how I envision the current apps changing:

Shion will remain the core component that communicates with devices on behalf of you. I plan to bring it back to basics and remove much of the user interface it now enjoys. Essentially, I want to “daemonize” it and turn it into a component primarily focused on device communication and management. The initial version of the new Shion app will be a Mac application, but after I have that working as a reference implementation, I plan to turn my energies toward porting the system to Linux so that I begin deploying the system to plug-computer architectures that would allow Shion to essentially operate as a standalone dedicated device much in the same way an Insteon or X10 controller does.

“Shion UI” (a working name at the moment) would be a new app that incorporates much of the Shion user interface for monitoring and controlling devices. The fundamental “theory’ behind this app is that it can live on any computer on your network and control any networked Shion instances that it may discover. After I have a Mac reference implementation running, the plan is to port Shion UI to other mobile and desktop platforms.

Shion Gateway is a new application and one that is responsible for providing remote access to a local Shion network. This would provide the technology that allows for instances of Shion UI to communicate with your devices anywhere a TCP/IP connection is available. Given that I’m not entirely satisfied with how the XMPP has worked for Shion (it creates a larger server load than I anticipated), Shion Gateway will approach the networking questions from a fresh perspective.

Given that I already have a large Mac codebase, the initial reference implementations of these applications will remain Mac programs. However, by splitting them up in this manner, I’ll be free to advance elements of the overall system more incrementally than the current monolithic scheme provides. I haven’t determined which open-source license I will use to release the new code, so stay tuned if that question is of interest.

Thank you again for your patience over the past year. I look forward to getting this project rolling again.