Building a simple tide clock

Myself and Jeremy Long recently had a paper published in PeerJ (open access, free to read) describing the use of an Arduino microcontroller to predict tides and regulate the water levels in aquaria in synchrony with the natural tides. You can read more about that tide controller system here and further variations here.

As part of the process of putting a poster together on the Tide Height Controller project for a meeting of the Western Society of Naturalists, I whipped up a simple little 3-piece tide clock that shows a live display of the tide for … Continue Reading

Controlling tide height in lab aquaria

A few years back I posted about a set of Arduino libraries I wrote to allow an Arduino with an attached clock to predict the tides for a coastal site. In that post, I showed a variation on the theme that had a motor-driven rack that transited up and down in time with the tide.

Now Jeremy Long and I have published an open access paper in the journal PeerJ (external link) describing our use of that tide-predicting-motorized-rack, which we called the Tide Height Control system. We used the THC system to recreate real tide … Continue Reading

Using knitr and R to make instructor/student handout versions

I teach some of my lab sections using R, and so I need to create lab handouts that include nicely formatted R commands and R output as an example for the students. These handouts will also include exercises where the students will be writing their own R code, or interpreting the results, or generating figures. For these exercises, it is useful to also have an instructor version of the handout so that I can recall what I was hoping to have the students do, and so that other instructors in the course have some clue as to what I might … Continue Reading

Adventures in course management software: Canvas

Course management software is universally garbage, but Canvas has managed to be better than most. Which is a lot like saying “This is the best tasting pile of dog poop I’ve found today.”

The ability to create online quizzes that have the answers entered for easy grading should make for a useful system, but today I discovered that the precision of the system tops out at the 4th decimal place, which tends to be problematic if I want students to calculate fairly small probabilities (what is the probability of flipping a coin 10 times and getting 10 heads in a row?). … Continue Reading

PCB silkscreen sizes

Recently I’ve been getting my printed circuit boards manufactured through OSH Park, and they make good quality (to my eye) boards at a decent price, with less than a 2-week turnaround time. They also take files directly from Eagle software, rather than having to produce gerber files (though this is also an option).

On a recent set of orders I played around with the silkscreen label sizing in my copy of Eagle 7.2. The OSH Park guidelines say that their minimum silkscreen line thickness is 5 mils (0.005 inches). This is the thickness of the lines that make up … Continue Reading

iButton internals

I’ve written in the past about iButtons and my attempts to waterproof them. Although iButton temperature dataloggers are fairly well sealed, they are not waterproof. But if you know an old person that used iButtons in the late 90s or early 2000s, they might claim that iButtons are absolutely waterproof.

It turns out that iButtons are one of those rare things in life that really were better when you were a kid. In the old days they could be put out in the ocean for weeks or months, completely bare, and most of them would survive just fine … Continue Reading

Basic text string functions in R

To get the length of a text string (i.e. the number of characters in the string):


Using length() would just give you the length of the vector containing the string, which will be 1 if the string is just a single string.

To get the position of a regular expression match(es) in a text string x:

pos = regexpr('pattern', x) # Returns position of 1st match in a string
pos = gregexpr('pattern', x) # Returns positions of every match in a string

To get the position of a regular expression match in a vector x of text strings … Continue Reading

Electronics parts list

Here’s the start of a list of common bits and doo-dads I use for building electronics projects.

That’s all there is to it.

Preserving equations in Powerpoint when going cross-platform

This is another one of those tricks that I forget how to do unless I write it down. When I move Powerpoint (2010) presentations from my Windows machine to my Mac (Powerpoint 2011), the equations usually get destroyed along the way. The workaround is to turn the equations into images that can’t be altered by the Mac.

For example, here I’ve got an equation plopped into a blank presentation, with the equation editor toolbar.

The equation.

The equation.

The first step is to copy the entire equation and the text box … Continue Reading

A plot of co-authorships in my little corner of science

author year count image

Here’s a mostly useless visualization of the collection of journal articles that sits in my reference database in Endnote. I deal mostly in marine biology, physiology, biomechanics, and climate change papers, with a few molecular/genetics papers thrown in here and there. The database has 3325 entries, 2 of which have ambiguous publication years and aren’t represented above. This is by no means an exhaustive survey of the literature in my field, it’s just an exhaustive survey of the literature on my computer.

To make this figure, I first had Endnote export the database to … Continue Reading

Page 3 of 1212345...10...Last »