Developer Diary #2: Feature Freeze

Writing this as my github action executes...

Moving into “feature freeze” offers an interesting opportunity for a developer diary. Our Technical Director, Brian Ballsun-Stanton, ponders the state of all the various components that are working together in our project.

I’m writing this watching a timer count past 5 minutes while building FAIMS3 using Github Actions. Our Continuous Integration/Continuous Delivery CI/CD) pipeline that rebuilds our webapp and our native Android and (soon, I hope) iOS apps so we can test that all of the “bits” are working together. This week I added our “conductor” server which handles user authentication and I’m working on automating iOS uploads to the Apple App store.

Status Update

We now support file attachments, and integration with photo-taking capabilities on device! Above is a screenshot of an unscalled photo of some lovely trees that I took while on a ferry ride.

Other features in the last few weeks include:

  • UI updates to highlight notebook creation as well as data collection

  • Relationships and child-records in the notebook creator!!!!!

  • Very very very preliminary work towards a round-trip capability1

  • Annotations and certainty support!

  • Manual app creation on Apple’s App store (not-public but a necessary precondition for the work I’m doing today).

  • Authentication using AAO’s DataCentral — this time we have real authentication which can survive on the internet.

  • And some more work on the GIS/Map plugins by Steve!

Everything seems to be happening at once as we enter feature-freeze as all of the various threads of work over the last months get polish, attention, and final commits.

Thinking about a decade of Stack Overflow

When working on all of this DevOps2 a post by Greg Wilson3 kept resonating with me on when reading the answers on stack overflow is not enough:

I spoke with someone earlier this year who had been using the Unix shell for several years but had never used the man command. Whenever they had a question they went to Stack Overflow: experience had taught them that they could find their answer there more quickly than by hunting through comprehensive breadth-first documentation written by people who are guessing what the reader wants to know rather than responding to the actual gaps in their knowledge.

In years past, I was a moderator on the Stack Exchange network4 and a not inconsiderable amount of my moderation time was spent trying to get people to move very useful information from the comments back into answers. People would leave answers, have a fascinating clarifying discussion in the comments and then wander away — job done.

And yet, in this hodgepodge of answers and conversations and "edits signalled in text” (which we frowned upon), is the most amazing resource for software development. And somehow those of us who use this resource successfully know how to interrogate the answers, the answer metadata (when was it answered, by whom, with what rep), the answer paradata (comment threads) and the general tone of activity around the question to judge how to most successfully use it to achieve our goals.

The art of using Stack Overflow successfully is not taught, seldom enforced on the site itself, and essential to advanced modern software development practices. Thinking about technical documentation as a form of professional knowledge transfer, we have moved from closely guarded guild apprenticeships to formal and well-typeset manuals5 to… embedding links to Stack Overflow in error messages instead of links to a manual6.

We live in strange times.

Some time later…

This post has been worked on (while waiting for builds to run and fail and run and fail and run and fail and run and fail and-^C) for a few days. The perfect coda to this post is a screenshot of a very-long-runtime command that finally worked.

Now all I have to do is make this into a pull request to our main branch and we’ll have automatic deployment to Apple’s TestFlight and App Store along with all of our other CI/CD infrastructure.

Reading this week

Outside of extremely fluffy fiction reading, notable stuff from my RSS feed this week is:

1

Right now you can edit any data you like so long as you like hand-editing a JSON file. But it does demonstrate moving data out of FAIMS3, doing something, then moving that same data back into FAIMS3. This is neat.

2

DevOps: building all of the infrastructure around development to allow the programmers to get on with their actual job

3

Founder of The Carpentries!

4

The Role-Playing Games SE, if you must know.

5

Knuth invented TeX to lay out The Art of Computer Programming

6

Writing this sentence gives me flashbacks to Oracle’s awful error messages and their multiple manuals. This innovation is a genuine improvement. It’s just… odd.