Blog : Bubbles in the Bathtub

October 07, 2013

MoC Days 4 and 5: coding madness

Slight short circuit in the Month of Change. Spent most of last Friday (Day 4) writing code for something new. I didn't quite finish and ran out of time to post anything. Spent a bunch more time trying to finish it up today, but still have a little bit to do. Should be able to share details tomorrow. However, I was able to get a few little things done in between.

Satellite Tracking Data Processing

I mentioned improvements to data processing on Day 3. I was also able to optimize data processing for the chlorophyll satellite imagery that is used in STAT. Thought I had also finished with the sea surface temperature, but there is still a bug somewhere that I need to fix. When it is all working, a process that was taking 12-18 hours every day should complete in just 3 or 4 hours.

More Updates to Remigration Summary Statistics

Had another request from Brian Shamblin which I have added to the Remigration Summary Statistics. The summary now shows you the percentage of females that have only been detected during one season. A critical metric when looking at remigration.

iPhone 5s Side Project

And I got distracted for about half an hour on a side project on Friday. I have been getting annoyed that I can't find the iPhone 5s I want at my local Apple Store. Apple lets you check online if their stores have iPhones in stock, but I kept forgetting to check their website. So I wrote a little script to check for me every hour and let me know if my Apple Store gets the iPhone I want. I decided to spend a little more time on it to make it a public service, since I assumed there are other people in the same boat. So now there is a page that will allow you to sign up to receive an e-mail notification when your favorite Apple Store has the iPhone 5s model you want available for in-store pick up.

iPhone 5s Availability Notifier

October 03, 2013

MoC Day 3: data processing optimization

Satellite Tracking Data Processing

Today was the culmination of something I have been poking at for several weeks. I significantly optimized one of the data processing tasks. Something that used to take about 4 hours per day now takes about 20 minutes. One of the things that happens behind the scenes as part of the Satellite Tracking and Analysis Tool (STAT - the engine behind the satellite tracking website) is sampling of environmental data for every animal location that is collected by STAT. STAT users are able to export their data from the system and get access to all of the sampled environmental data. In this case, the process determines if it is wet or dry (water or land) underneath each animal location, and keeps up to date as new animal locations are added every day. Now that that is done I just have to do the same with data sampling of sea surface temperature and chlorophyll :)

October 02, 2013

Month of Change: Day 2

A smallish update today. I had too much fun making this graphic this morning :)

Now, back to business...

Updated Remigration Summary Statistics

I received some great comments from Brian Shamblin, one of the DNA project partners from the University of Georgia, on the Remigration Summary Statistics that I set-up yesterday. Brian wanted to be able view remigration summaries at the state level at for the entire project. You can now do that. Brian also mentioned that he gets lots of people asking him how many of "their" turtles are new each year. So I have now added a statistic that indicates the percentage of new females identified each year.

Suggestions and feedback are great and help make me so much more productive. Thanks Brian!

October 01, 2013

Month of Change: Day 1

Nesting Database Bug Fix

The first change of the month is a small bug reported by Mark Dodd and the folks from Jekyll Island, Georgia. One of the reports generated by the Sea Turtle Nest Monitoring System was incorrectly giving hatch success and emergence success values of zero in some cases. The report in question is called the Activity Report and allows users to export all of their nesting data to a CSV file. The bug was related to changes I made to the code at the beginning of the 2013 nesting season to add several new fields to meet Florida sea turtle nest reporting requirements. The changes caused one (yes 1!) line of code, a simple counter, to end up in the wrong place and throw off the HS% and ES% calculations. Now fixed :)

Remigration Summary Statistics

Added a new feature to the STNMS that calculates remigration summary statistics based on the genetic ID of each nesting female on beaches participating in the Northern Recovery Unit Loggerhead DNA Project. Basically you can look at any participating beach and see what percentage of the nesting females nested in other years. It is soooo cool all of the amazing things that people will be able to do with this DNA data!

September 30, 2013

A month of change

People are generally surprised to learn that is (mostly) run by one person. One of the most frequent questions I get is how do you do it?

Skip down to the punchline if you get bored :)

The short answer is monkey buttons! A lot has changed since I wrote that "monkey button" post in 2003 (more than 10 years ago!). now averages 90,000 hits a day (2-3 million hits a month) and I'm not sure I can count how many pages make up the site. I now no longer have a "real job". About 6 years ago became too much work to keep up with in my spare time, so this is now my "real job".

The (slightly) longer answer: I automate everything as much as I can. So much so that I typically will not add a new feature until I can figure out how to automate it. So if you are ever wondering why feature X is taking so long, that is usually the reason. Take this approach to it's logical conclusion and you add a new feature/doo-dad every few days for 10+ years, and eventually you have a giant, feature-rich website.

Note that I said "new feature every few days". In the early days I could easily add a feature, or multiple features, every day! However, even with automation, the code base and the user base has grown so much that day to day maintenance has become a huge task unto itself. I typically spend at least half of each day responding to inquiries via e-mail (preferred) and phone (not preferred!). These can be anything from simple questions and customer service type problems ("where is my adoption packet?") to technical questions and bug reports ("my favorite thing on that I need right NOW is broken!"). The questions get answered, the problems get fixed and the bugs get squashed. And as with any growing and increasingly complex system, I periodically have to step in and optimized code, manage databases, etc, to speed things up and keep everything running smoothly. Throw in the (thankfully) infrequent hardware and network failures and you have multiple full-time jobs!

The Punchline

It can be a bit difficult to wrap your head around all of this, so I thought I would try something I am calling "a month of change". Everyday for the month of October I will document the changes I make on This could be anything from a brand new tool/service (least likely), to a new feature on an existing tool/service (a little more likely), to one or more bug fixes (most likely!). Sometimes it can be difficult to tell the difference between a bug fix and a new feature :)

Consider this a peek under's kimono, and a preview of some of the things I am working on.

One small caveat...

Family is important to me, so I will not make changes/post on weekends. Except in emergencies :)

Starting tomorrow (1 October 2013) keep an eye on this space to see what has changed on The changes will come from a variety of sources. There may be a bug fix reported by a user that day. I have an official to-do list of things that I have to get done. I have a less official wish list of things that I want to get done. And then I have a stack of random pieces of paper with notes and ideas scribbled on them sitting next to my keyboard. If you have any ideas or suggestions, please send them along (or post them in the comments below if you are reading this on the blog).

And enjoy a month of change!


Michael Coyne

PS - There are a couple of folks that help out tremendously (and others that have helped out in the past). Not everything can be automated. A lot of the content on is user submitted and some of it needs to be reviewed/approved before it goes online. Without help I definitely would not be able to keep up. Matthew Godfrey manages the Image Library and ALan Rees manages the Job/Volunteer Board. They review all of the submissions and correspond with users as needed, I just need to make sure the engine keeps running.

And of course I would not need this extra help managing content if all you turtle nerds weren't participating by sharing your data, submitting your photos, and just generally being awesome. Thanks for being a part of the Global Sea Turtle Network!

And while I've got your attention on this topic, if there is a favorite tool or resource on that you would like to help out with, please let me know :)