Big Problems with the Pebble Time


It's been around a week since my Pebble Time arrived in the mail, so I figure it's time to write up some of my preliminary experience with the device. I wish I could say I was in love, I truly do: the watch's design is so nice, and programming for the Pebble has been a lot of fun. Unfortunately, my device is already broken, and I'm a sad customer. This was my only gift for the holidays this year, and it's already non-functional.

Inital Troubles:

Shortly after I received the Pebble Time, I noticed that something was not quite right with the device. Once my battery had dropped to a low enough level - surprising in itself, given that Pebble advertises a 7 day battery life - I plugged the watch in to charge. Oddly enough, the battery instantly jumped to 100%. I thought that this was a bit strange, but chocked it up to a minor glitch. I left the device to charge for several hours, and when I returned, the battery seemed full, so I put it back on my wrist. That night I went to the theater to see the new Star Wars film (in IMAX 3D, it was real pretty) and on the ride back home, my watch began to vibrate. First it told me that my battery had dropped to 20%, then within minutes it had dropped to 10%. By the time I got home shortly thereafter, the watch was out of battery (it wasn't completely dead, as the Pebble Time will actually still display the time for a while after the battery reaches 0%). This got me really worried: was my brand new device broken already? Would I need to send it in for a replacement?

Read more...

Pebble Time - Quiet Time API Needed


Taking a break from some of my hardware problems with the Pebble Time, I want to take a minute to focus in on a software feature that I'd like to see in the next firmware update. In the last update, the Pebble dev team introduced a handy quiet mode feature, which allows the user to mute the vibrations that occur when a new notification is sent to the watch. This is nice for when a wearer is sleeping, or in class/meetings which they don't want to be distracted from. The feature can be enabled by holding down the back button, or can be scheduled to days of the week or calendar events. I love the concept, but there is one thing which was missing from this software update: an API interface.

Pebble Time Quiet Mode The cute quiet time animation. Courtesy of u/santigaray

Is It Quiet Time?

Here's the big problem with the quiet mode: I can't tell if the watch is set to be quiet! The Pebble team have neglected to add a variable or event to the API which would allow developers to add a quiet mode indicator to their watchfaces. As such, the best way to tell if the watch is in quiet mode is to check the settings or to simply try toggling quiet mode by holding down the back button.

This isn't a new problem either, a forum posting dating back several months has several other developers discussing and requesting this feature. Another thread from November discusses the same issue.

I submitted a request to the developer team, as suggested by one of the forum posters, and got a rather unsatisfying response: "We've received this request a number of times and the firmware team are aware of it... Hopefully it will be included in a future update." One would think the Pebble team would be eager to incorporate such a simple feature, which would so greatly improve their user experience. Instead, the Pebble team doesn't seem to have any clear plan to include this feature. If they are, they certainly aren't telling us, the developers who supply most of the content for their platform free of charge.


Getting Started with the Pebble Time


This year for the holidays my wonderful girlfriend got me an awesome new piece of tech to add to my arsenal: the Pebble Time! This neat little device is an Android and IOS compatible smart-watch which uses a bluetooth connection in order to send information back and forth between it and your smartphone. The watch itself is unable to connect to the internet in order to retrieve information, but instead uses your phone to do so! I'm the kinda guy who like to wear a watch all the time, so the lightweight and 30M waterproof Pebble Time was a great option for me. In addition, Pebble boasts one of the longest battery lives on the smartwatch market; this was particularly appealing, as I prefer to take my watch off as infrequently as possible. With a maximum battery life of 7 days, I hope that the Pebble Time will allow me to do just that. I've only had the watch for a few days now, but I may write a review of the device sometime in the near future.

Pebble Time My Pebble Time featuring a watchface of my own design.

Developing for the Pebble Time

Though the Pebble Time is a real pretty piece of technology, and I love the way it looks on my wrist, this is only part of the appeal for me. You see, I love to build things, and Pebble is an open and well documented platform, which supports the programming of software for the watch using C, Javascript, or a combination of the two. There are two different kinds of software which can be written for the Pebble: watchfaces and watchapps. At this time, I have only begun to explore the possibilities of the Pebble platform. I decided that my first project would have to be a watchface; after all, what good is a watch if it doesn't tell ya the time? I wanted to go back to basics.

Read more...

Jekyll - "Read more" links


I just implemented a new feature on the blog: read more links! After writing my first post, I realized that it was rather long and took up a lot of space in the post timeline (home page). I needed some way to cut-off part of the material in the preview and only include it in the whole article. After some searching I came upon Trần Trường's article, which detailed the code for something similar to what I desired.

Read more...

Modeling Epidemics - Mathematical Models versus Agent-based Modeling


With the end of the fall semester here at Rice I have a lot more free time to take on personal projects and explore some of the material I learned this semester in more depth. To this end, I have started revisting material from my EBIO 331 (Biology of Infectious Disease) course. One thing that I was particularly interested in during my studies in this class was the potential for computational modeling to be used in this field. In order to explore this subject further, I've begun to implement some such models using Python!

Approaches to Modeling

There are a couple of means of modeling the progress of epidemics:

  1. Mathematical models: There are several mathematical models which allow for simplistic, yet accurate, description of certain disease outbreaks.

    Two such models, SIR and SIRD, describe the progression of disease in a population using probabilities that an individual will transition between states. These states are Susceptible (S), Infected (I), Resistant/Recovered (R) and Dead (D). For instance, a pathogen's infectiousness, a population's susceptibility to the given infection, and environmental conditions can be simplified down to an estimate of the probability that an average individual will become infected in a time-step (this describes the rate of transition betwen state S and I). This Math Association of America article goes into further detail on SIR models of epidemics.

  2. Agent-based models: While mathematical models can provide some very accurate results with strong predictive value, they fail to take into consideration all of the factors which can govern a system as complex and chaotic as the spread of disease in a real population. Herein lies the value of agent-based modeling.

    Agent-based modeling is a technique which leverages the power of computation to simulate systems in which a disease might spread. The goal of agent-based modeling is to design a computational laboratory that can be used to test the impact of various variables on disease progression in a complex system such as a human social network. Nonetheless, we try and keep our models as simple as possible so as to save time on un-needed coding and run-time. It might help to begin by describing what exactly an agent is in the context of modeling.

Read more...