Completion closures in Swift

22 December 2017

Completion closures in Swift are incredibly useful: they let you execute some code after some computationally long task is completed, often a task that takes an indeterminate amount of time to complete.


Installing an iOS archive from Xcode 9

12 October 2017

Sometimes, you need to install an older version of an iOS app you’ve developed so that you can test that migration is handled properly when a user updates your app. Apple makes this an easy two-step process in Xcode 9.


Measuring the solar eclipse

22 August 2017

Yesterday’s total solar eclipse was spectacular, especially along the line of maximum totality near Clemson, South Carolina, where we watched it. I used my Arduino temperature and light logger to record the progression of the eclipse.


Adding light to the temperature logger

20 August 2017

During tomorrow’s eclipse, air temperature is supposed to drop, so what’s a scientist supposed to do? Get some data, of course! I’ll modify my Arduino temperature logger so that I can log the light level and the temperature simultaneously.


Taking the unmanned aircraft general exam

31 July 2017

I recently took the FAA’s Unmanned Aircraft General exam so that I could get my Remote Pilot Certificate. The FAA gives good guidance on what to study for the exam, but it’s a large chunk of material. The material is not difficult, but it helps to approach it with a plan, and that’s what I’ll describe.


Becoming a developer and being a student

17 June 2017

About nine years ago, I formed Hunt Mountain Software and started to become a software developer, not just a programmer. One of the surprises of doing this is that it has helped me to better understand the graduate students that I advise in my day job as a professor of geology, and what they face.


Bird-song sonograms in R

14 May 2017

I’ve birded for many years, and one of my goals this summer is to learn to bird by ear. After starting the Cornell Lab of Ornithology course on How to Identify Bird Songs, I’ve become sold on sonograms, pictorial representations of bird songs that show the frequency of the song through time. They’re easy to make with a cell phone and R, and that’s what I’ll show here.


Swift and the Internet of Things

11 May 2017

This week, I presented a talk at CocoaHeads Atlanta on Swift and the Internet of Things. It’s based on my explorations of Swift and Raspberry Pi this past month.


Swift Package Manager on Raspberry Pi

5 May 2017

The Swift Package Manager offers an easy way to add packages to your Raspberry Pi Swift projects. In this post, I’ll use it to flash an LED.


Taking the temperature with Swift and Raspberry Pi

28 April 2017

I’ve used Swift to blink an LED on the Raspberry Pi, now it is time to do something new with the Pi’s GPIO pins. Today, I take the temperature.


SSH into a Headless Raspberry Pi

21 April 2017

In my latest explorations of the Raspberry Pi, my goal is to use its GPIO pins as a sensor and report the results on a web page, combining the capabilities of the Pi’s. In this post, I set up my Pi to run headless, that is, without a monitor, keyboard, and mouse. To do that, I’ll need to access it through secure shell.


Swift on Raspberry Pi

16 April 2017

Since being open-sourced by Apple, Swift has been ported to a a variety of platforms, which is good news not only for code reuse and writing in a consistent language, but also because Swift has many good features. I like writing in Swift, in part because it forces me to think critically about what each method returns.


Preserving User’s Data

16 January 2017

Years ago, many scientists I knew used three Mac apps to plot their data, CricketGraph, KaleidaGraph, and DeltaGraph. Although some of these are still available, some after checkered histories of availability, most scientists I know have moved on to other options, especially R. These apps had proprietary binary data formats for storing the data, the scientist’s data. You were locked in...


FTDI Drivers AND OS X 10.11

24 July 2016

While building a new Arduino project on OS X El Capitan (10.11), I wasn’t able to connect using a serial port. Getting the serial port as an option was possible with some temporary changes to Apple’s System Integrity Protection.


David Raup and Balance

24 April 2016

I have one observation about Dave that I'd to share with you. We don't become rich by doing paleontology; we do it because it fascinates us. Because of that, …


The Basics of Closures in Swift

8 January 2016

Closures are one of the great features in Swift.


Late-summer caterpillars

7 September 2015

The end of summer has brought a profusion of caterpillars to our yard, and many of them look like something out of Dr. Seuss.



8 August 2015

I went out for a short hike this morning with my 11-year-old son. One of our favorite nearby hikes is the orange trail at the State Botanical Gardens here in Athens. One of the reasons it’s a favorite is the stream and the chance to explore for critters.


Arduino and R

22 February 2015

Like Hepburn and Bogart, Arduino and R are made for each other. The only trick is getting the two to talk. I came across a recent post on Mages’ blog with that trick. With it, I made R read temperature data from the Arduino and plot it in real time.


DIY Arduino Board

17 January 2015

Arduino boards have come down in price, but you can make your own for about $10. It’s pretty simple, and it’s a good way to learn how an Arduino board works.


Start Something New

11 January 2015

What I’ve always admired about Apple is their emphasis on creativity. Inspired by their post Start Something New a couple of weeks ago, I’ve started exploring with my camera.


Indispensable Tools

31 December 2014

Dave Verwer’s most recent issue of iOS Dev Weekly got me thinking about the tools I use in development. Like Dave, I thought this would be a good time to review which are the most helpful to me.


Data and iOS

6 September 2014

In updating one of my apps (Coordinates) to using storyboards instead of .xib files, I took the opportunity to rethink how the app worked as a whole..


Arduino: taking the weather monitor online

13 January 2013

The weather monitor I made has been useful for keeping an eye on conditions in our basement, which can feel a bit damp at times. It would be more useful to see this data from anywhere. Luckily, its easy to turn an Arduino into a web server. As a side benefit, I can also have the Arduino log the data.


Arduino: weather monitor

2 November 2012

I’ve graduated from temperature to other environmental data: humidity and pressure. For this installment, I’ll show a slightly more involved circuit using two excellent sensors from. I’ll also use a two-line LCD display to show the current readings.


Put a Lid On It

16 September 2012

After building the Arduino temperature logger, I can get to the real question: how can I keep my coffee warmer for longer? After a good bit of experimentation, the answer was intuitive and simple: put a lid on your mug.


Arduino: temperature logger

9 September 2012

This weekend’s fun is a temperature logger. What I am curious about is how quickly my coffee cools off and what I can do to slow that down. More on that next time; for now, I need to build something that can measure temperature in liquids and that can record that temperature so I can plot it.


Arduino: motion-triggered camera

1 September 2012

For a few months now, I’ve been learning some electronics through, the open-source microcontroller. I have a few older projects that I’ll post soon, but this one is my latest: using Arduino to trigger my Nikon D80 with passive infrared motion-detection sensor.


Yellow-bellied Slider

21 April 2012

This little fellow has been hanging out near our garage the past few days. To get an idea of just how little he is, that’s my eight-year-old son’s finger next to it.


Should I Go to College?

7 April 2012

On the last episode (#71) of Build and Analyze, Marco Arment and Dan Benjamin discussed whether college was necessary. Marco fielded a listener’s question about whether the choice of a college mattered for a career, and he went on to the larger question of whether one should go to college at all, especially for someone interested in programming and development. I agree with most of what Marco and Dan said, but there is another way to think about the whole question.


Academia and App Store Reviews

19 March 2011

I’d been thinking about how App Store reviews follow an academic approach for several months, and a pair of tweets by Daniel Jalkut yesterday spurred me to finish it.


A Simpler Approach to Subversion and Xcode

24 February 2011

I’m no expert on Subversion, but I have learned over time how to at least not wrestle with it quite as much.


Thoughts on the iPad

10 May 2010

I’ve had my 3G iPad for about a week now, and it’s becoming clear to me how I’ll use this device.


Scientists and User Interfaces

16 October 2009

Scientists are by nature do-it-yourselfers. Whether in the field or the lab, they solve problems for which there is often no ready-made fix. They build new equipment, develop novel algorithms, and find fresh solutions.



22 August 2009

There is a great set of tools for development on OS X and the iPhone. Many of my favorites are by small developers. I want to give all of these tools a shout-out for making things so much easier.


Things I've Learned

17 June 2009

Over the years, various friends have made short pithy comments that have stuck with me. Here’s some of their wisdom, including one of my own nuggets.


Facebook Security

16 February 2009

It seems like every day raises new reasons to be concerned about Facebook and the security of your personal information. Just two weeks ago, I was about to send out my reply to “25 things you may not know about me”. Fortunately, I had the good sense to balk. My list contained 25 personal facts, but certainly no deep, dark secrets. Even so, they were 25 things I wouldn’t mind sharing with good friends and family, but with long-distant acquaintances and former students? I don’t think so.


Locking Down SSh

10 February 2009

Although ssh is far more secure than telnet, it is also subject to exploits. Even so, it can be made more secure than it is in it’s default distribution. Here’s what I do to make ssh for Mac OS X less subject to being hacked. Much of this is based on an article originally published at The instructions are involved, but you’ll just need to set this up once and then you’ll be running secured.


Beta, baby!

3 December 2008

I released Diversity for beta testing today. This is huge for me - this was the first big application I planned after the Cocoa Bootcamp at the Big Nerd Ranch. I had nothing but praise for Aaron Hillegass’ course after I took it, and the more I program in Cocoa, the more I think Aaron is an extraordinarily gifted teacher.


Tools and Applications

1 December 2008

Most of the programs I distribute at the UGA Stratigraphy Lab are simple tools for doing some calculation that cannot be done easily in a spreadsheet. All of the programs are tools that I developed for my own research problems and that I thought might be useful for a larger audience. Some turned about to be more useful than others (and some I’m sure have never been used by anyone but me!). What’s common to all of them is that they’re tools, not applications. The data is assumed to be in some text file, in some specific format, often in some specific location with some specific file name. The program reads that file, does some calculations, and churns out another text file with the results, with some specific ... you get the picture. If the input file isn’t in the right place, or doesn’t have the right name, or doesn’t have the right format, the program fails. Usually, the user has no idea what happened and they have to email me.


A Start

20 November 2008

About a year ago, I realized it was time for new challenges. I’m a professor in geology and I study the effects of climate and sea-level change on ancient marine ecosystems (but that’s a different story). As part of my research, I’ve written programs for scientific analyses and have distributed some of them on my university website. I’ve programmed for over twenty years, writing some BASIC, FORTRAN, Hypercard, and then I switched to C about 15 years ago. The software I released was written for Mac OS 7-9, and I made the switch to Carbon once it came out. Although I made a couple of half-hearted attempts at learning Cocoa, it seemed that the demands on my time never allowed me to really take it on. I’d read about Aaron Hillegass’ highly regarded Cocoa Bootcamp, but finances always seemed a barrier.