Behind the Curtain: The Future is Now

Over the past couple of years, we’ve worked hard to release the latest and greatest new features as quickly as we can.

As time has gone on, and the system has grown larger and larger, being able to roll out new features has quickly become a much more lengthy process.

We’ve repeatedly told ourselves that, in the future, things will be better, but for now we need to keep rolling on with the system the way it is.

Well, after our lengthy Assignments projects, we’ve come to realization that the future has finally arrived, and we need to make the radical shift we’ve been pushing off for too long.

The main thing we are planning for the rest of this year is a complete Beta Network: A complete network of all our servers which will act as a bleeding edge system.  For agencies which want the latest and greatest, the beta network will have continuous integration with code as we produce it.  The beta network would have less stability and reliability, so users who can wait for our scheduled releases would remain on the main production services.

In conjunction with this, we are looking at developing a better system of community feedback, and identifying users and agencies which can help us vet our systems thoroughly before they go live to production.

If you have any ideas on the best ways we can achieve these goals, we are always welcome to suggestions from the community, just leave a comment below.

We will also be doing another Live AMA today (July 31) at 2PM Pacific time, so click here to submit any questions about any of our products or the direction we are going in for the rest of this year

 

Apple app notes – week in review

We pushed the iOS Active911 1.5 app update on Monday, enabling Assignments.  Today is Friday, so we have had a week to get feedback and figure some things out.

In version 1.5.1

Selectable text in version 1.5.1

The bottom line is that some more updates are in store for Apple users.  Here’s a list:

  1. The “External Link” on the bottom of the alert details page used to launch Apple Maps, and it doesn’t any more.  Lots of people use this for navigation. This is being fixed.
  2. The address area launches a map within the Active911 app.  Most people already know this, but for those who don’t, we’ve added a helpful icon.
  3. Test messages don’t pop up when the app is in the foreground.  This has been fixed in beta and should be in your hands soon.  Normal alerts seem to come through fine, as do alerts and test messages when the app is in the background.
  4. People asked us to make the text within the app selectable.  This has been added to detail text for 1.5.1 beta.  It also means you can have hyperlinks in the details section!  See the image at right.
  5. The app update required a server update which in turn introduced a bug.  The bug made it so late-model iOS devices didn’t get paged when messages were very looooong (many lines of notes).  This was fixed today and does not require an app update (we had to update the server).
  6. We have one report of an iPhone 5 user (iOS 8.2 or iOS 8.3) who says the alert title is reset to “Alert” when he sends an alert from his phone.

All told, it’s been a busy and tiring week!  On the radar also is making assignments assignable to anyone from within the app, and paging (Apple Notifications) to the assignees.  :)

That’s it for now – have a good weekend, everyone!

Developer’s Log: Low hanging fruit anyone?

This week has been a busy one here at Active911. Currently, some of us are shaking hands in Baltimore for the Firehouse Expo.while those of us who have remained in the office are working on anything that is low hanging fruit. Low hanging fruit is how we are referring to any task that has been in our backlog and should be a quick and easy thing to do, but we just haven’t been able to get around to yet. Low hanging fruit is an important thing to make time for, so we have set our regularly scheduled features aside for one week only to make sure we are taking care of some of the smaller tasks that could be otherwise overlooked.

Between all of us, we have a smattering of easily accomplishable features and bug fixes to keep us busy before wrapping up this week. Some of the bug fixes range from tweaks to the types of data we are storing in the database to how certain drop down lists on the website are being presented. The features are a bit more exciting and include the ability to order your agencies within the apps and have a darker map view during the night.

It feels good to set aside some time to make sure that these kind of little things get done in the midst of larger features we want to roll out. Now that the assignment beta feature has been released, we could easily spend a lot more time working on improving it and bringing it out of beta. The plan is to add more features to assignments and scheduling in able to make it much more effective as a tool for every department. In fact, there have already been many suggestions rolling in on our forums as well as questions that highlight areas that need to be better explained, and development on new features like this will resume after this week has ended. In short, taking care of `low hanging fruit` tasks are like going back and making sure you have dotted all of your Is and crossed your Ts.

Boots on the ground: Come say hello and talk a bit!

11150581_929232383764477_4546388882694467953_n (1)

The Active911 community has been going strong for several years now; we have have talked with users over the phone, Facebook, Skype, Google Hangouts, and email. This year we realized that no matter how much we get to know a person through all those different avenues, nothing beats a good strong handshake!  So we packed our bags and hit the road!

Our first stop was FDIC in Indianapolis, IN, and was that ever an eye opener! We talked to many Active911 users everyday. It was awesome to hear the stories of how people were putting Active911 to work in their departments. I recognized some of the names of the people stopping by as folks I talk with regularly. Almost everyone wanted to pull out their device and show us what was going on back at their departments. We had some show us unique uses for the app and it’s features, like uploaded preplans with 360° photos of classrooms in local schools. In return, we were able to demo some of the new features that are coming out this year, the first of which are due out in the coming week or so in the Scheduling and Assignments release.

As we are about to roll out these new features, we will be on hand to demo them once again directly to the Active911 community! This next week, we will be at Firehouse Expo in Baltimore, MD. Stop by to say hi, show us what your department has done with Active911, and talk about new and upcoming features.

For those of you who can’t make it to Baltimore next week, we may be in your neck of the woods soon! Here is a list of where you can find us the rest of this year.

Firehouse Expo – Baltimore, MD – July 16-18
APCO 2015 – Washington, DC – August 17-18
Fire Rescue International – Atlanta, GA –  August 28-29
EMS World – Las Vegas, NV – September 17-19
FireShows West – Reno, NV – October 7-8

The Constant Learner: Assignments

As our assignments feature is nearing open-beta, I thought I would take a shot at explaining how  we have set it up to work.

We designed the system to be very flexible to be very customizable.  The first step of the process is to add some assignments to the assignments tab.  It can be anything, but we sort of envisioned a couple of scenarios.  It could be a qualification like pump operator, a physical place like station 1, a work schedule like shift 1, or an event like ‘Pancake breakfast this Sunday’.

Once the assignment is created, you can then go to the Scheduling tab to set up when an assignment is meant to occur by clicking on the date.  From there, you will get a popup asking for a name of the event.  It can be the same as the assignment or different, when it will start and and, and optionally how often the event happens.  If the event is recurring, you can set an end date to have it stop or have the event go into the indefinite future by leaving it blank.  The last option is to add devices to the event.  Just start typing the name of the device and we will give suggestions.

After the event is added, if there was assignment and devices, those devices will show as that assignment during the duration of the event unless the device is overriden inside the app.

For example, in our case of the pump operator assignment you can add events for shifts of pump operators.  There could be a pump shift 1, 2 and 3, each occuring at a different time with different devices assigned.  When an alarm is received a quick glance at the personnel tab can show you how many devices are currently assigned to the pump operator assignment.

That is the basic use case we have prepared for, but we are excited to hear feedback and suggestions on how to improve the usability and the use-cases everyone can come up with.

 

Behind the Curtain: Clustering Across The World

In my last post, I discussed the obstacles introduced by restructuring our services into a more modular and scalable structure.

One obstacle this has introduced is how even a small amount of latency between the backend and interfaces could dramatically increase the time it takes to fulfill a complex request.
This becomes a very real possibility when considering that we are planning to distribute our services into multiple datacenters across the world in order to provide constant uptime and availability, even in cases of local natural disaster.

To do this, our shards are provisioned in such a way as to group geographically similar objects together on the same shard. This means that, for the most part, a single agency, as well as agencies which are close together, will likely be on the same shard.

By incorporating these shard identifiers into the new 64-bit identifiers themselves, we are able to direct requests to a particular shard cluster just by using a DNS prefix for each shard identifiers.
This allows us to integrate our services vertically within each cluster, from the frontend apis all the way down to the database backing each shard.

There will be some objects which may be sharded to a location geographically distant from their original agency, for example when someone moves across the country and switches to an agency in their new city. Thus, there will be some connections between distant clusters, but we expect this will be far and few between.

In essence, each cluster will be able to serve a distinct geographic area with minimal connections to other shards, allowing consistently low latency between the layers of our backend infrastructure.

We will be migrating data to the new system slowly over the course of the next year, which should create minimal impact on our current system. This concludes our preliminary look at our new sharded data infrastructure, please join me next time as I present an overview of where Active911 is today and what we hope to achieve through the end of 2015 and into 2016.