PRIM is a white-labeled, intervention participant registration system. Although the participant registration is the central focus of PRIM, ease of administration is an essential non-functional requirement. An administrator must be able to easily update intervention registration content and be able to change the look and feel.
The CBITs web developers have decided to focus on a new programming principle, heuristic or pattern each week. Our hope is that by doing so, we will start to develop a more intuitive understanding of the tradeoffs involved when applying these principles. For our first week, we have chosen the Single Responsibility Principle.
Since Purple Robot's inception in the fall of 2012, it's become the largest Android application I've ever written with over 50 different sensors, a built-in web server, and two complete embedded scripting environments. Lately, I've had to temper my ambitions a bit given that the app has begun to hit fundamental system limitations that are causing major issues moving forward.
The world of CBITS is two intersecting domains - Behavioral Intervention theory and web technology. Ontologies are one strategy to manage the multi-faceted body of knowledge, models, designs, data and code that researchers at CBITS encounter every day.
Two of the most persistent issues that I have to constantly address with Purple Robot its performance and resource footprint. I just committed some code that increased battery life 176% and decreased average CPU load by 65% at the cost of increasing the average memory footprint from 31.7MB to 36.4MB. How did I do it?
Building custom, simple, and user-friendly content management systems is perhaps the greatest challenge in developing web applications for clinical research. The requirements of many studies demand the creation of an application that can balance the complex and specific logical functions of the application and the ability for a non-programmer researcher to administer custom content within the application.
With this dual demand in mind, I have been developing CommunicationBridge - an application that coaches people with aphasia - in a RoR framework and testing the limits of the popular Rails Admin gem as a CMS.
The mobile app landscape is constantly changing. There are literally hundreds of mobile apps for depression and anxiety treatment and prevention with new ones published all the time. Of course I've seen and used many of these apps before, but I wanted to get an overview of what is currently out there, common features and limitations, and how app developers are weaving tutorials into the user experience.
This blog post will introduce Vagrant, a tool which makes it dead-simple to start and stop virtual environments which run on your local workstation, and Puppet, a tool which allows us to express our configuration as code. By using Vagrant and Puppet together, we can easily and iteratively create complex configurations, and re-use our efforts across local, remote virtual, and cloud environments.
The megahertz race in desktop CPUs petered out sometime in the middle of the 2000's as Intel and AMD found it more difficult to keep increasing the clock speeds of their processors as they had done consistently for the fifteen years before. The competition shifted from who could pack the most MHz into their chips into one where the overall performance of a set of increasing processing cores became the competition.
A few days ago, a friend of mine asked me to create a simple CRUDing app. He had two requirements: it had to work completely off-line and be compatible with an Android tablet. Now this posed a few problems, the main one being: I am not an Android developer.