Maine aquaculture workforce

February 06, 2021

The state of Maine says one thing, the industry says another. "Everyone" is optimistic about what aquaculture can do for the state economy, but sometimes it all seems a little futile. Maybe we're collectively looking at the problem wrong?

Autogenerating interfaces from OpenAPI specifications

November 21, 2020

I always start development on an API by writing the OpenAPI specification. Python backends that we deploy use `prance` and `connexion` to validate traffic, so any specification is guaranteed to be correct. Seemed like a good idea to just transpile that YAML into frontend code.

JavaScript Dependencies

October 23, 2020

Getting into JavaScript dependencies always scared me, because web dev is the wild west and all that. I spend a not insignificant amount of time trying to remove dependencies. These are notes on the first order dependencies for this site, and why we use 'em.

PDF parser part 1

October 18, 2020

This a continuation of the series on citing scientific literature in software and websites. I had an interesting challenge the other day, to extract syntax and information from the text and images in a PDF. Since I am not a NLP practitioner, this took a hot second to wrap my head around.

Tide gauge data

October 14, 2020

We integrate new data sources into our software systems all the time, and thought it would be a good idea to start documenting the how and why. This one describes tide gauge data from NOAA.

Marine operators software rubric

October 02, 2020

I see people make bad deals with unscrupulous people for medicore software. This rubric is intended to help businesses on the water evaluate tools (and their providers) to ensure that you are buying what you think you are, and aren't going to run into surprises that drive up the total cost of ownership.


September 06, 2020

Ode to an ocean entrepeneur

Notes on IndexedDB

May 24, 2020

Basic instructions to use the IndexedDB API, based on official documentation.

Algorithms — Neural networks

February 27, 2020

A quick note about implementing neural networks with back- and counter-progation, and what they can be used for.

Software-defined control system

February 11, 2020

Several years ago, I built something pretty neat for a National Science Foundation grant. The code has been incorporated into other projects at this point, but this piece describes the design and implementation of a software defined control system for studying ocean biochemistry by simulating climate futures in a controlled setting.

Algorithms - Convex hull

February 08, 2020

Building spatial relationships based on topology can be a good way to store information and speed up queries and analysis. The next level of sophistication after bounding boxes are convex hulls.

Leadership at sea

February 02, 2020

I've been thinking about what makes a great leader. Why do I look up to certain people, and reject others? The reason is, of course, my own fallibility. I revisited this essay about leaders aboard the fated ships Essex and Bounty.

Algorithms — Hashes, maps, and lists

February 01, 2020

Notes on applications of linked lists, hash tables, and other graph stuctures. Provides some canonical references from the literature.

New Gatsby website

February 01, 2020

Despite my adversarial relation with React and Node.js, I bit the bullet and made a proper website to replace the Wordpress we've been rocking for two years.


December 15, 2019

Public comment on NOAA artifical intelligence strategy

Algorithms - Statistical clustering

December 13, 2019

Brief overview of statistical clustering analysis methods, an unsupervised learning method for defining intrinsic groups in unlabelled data.

Algorithms — Kalman filter

December 01, 2019

Kalman filtering is a common approach when integrating multiple time series data streams. This is a quick note about the math behind it, and the OG reference, "A new approach to linear filtering and prediction problems"

Open $ource

November 06, 2018

News-worthy action in open source this week

Dive safety

July 18, 2018

Diving is dangerous. Do it safely.

Hybrid cluster

May 03, 2018

Tips for build a low-cost linux cluster for training events

Container cluster

April 02, 2018

Basics of running applications as a cluster of Linux containers.


August 17, 2017

Strategies for making faster Python code from parallelization to JIT to GPUs and whatnot. Sometimes people say languages are slow, but they're just not being creative enough.

Chemistry at the air-sea interface

December 17, 2011

The vertical stratification of the ocean creates unique layers of interest. One of the most challenging to study is the nearly 2-dimensional surface microlayer. This review explores some of the peculiarities of dealing with biogeochemical processes right at the surface.

Helmholtz lobsters

December 09, 2009

Lobster rely on powerful sensory capabilities during all life stages, and adults can accurately find their way home over 200 km. Migrations of the spiny lobster are accomplished using the geomagnetic field. I proved this is also true in *H americanus*, by reversing the polarity of the local magnetic field. Understanding this ability has applications in population connectivity and ocean energy planning.

Aldo Leopold's “Odyssey”

April 15, 2009

A poem about the fate of molecules in the environment, based on the Aldo Leopold essay in Sand County Almanac