Oh, how todo lists never seem to get any shorter.
My first half of February was focused on stem development, most importantly the implementation and testing of the BaseController class. This is the foundation on which useful controller activity can be based, providing a parallel to TorCtl’s asynchronous controller communication (event handling) and sendAndRecv function. Good news is that the BaseController is also designed to be thread safe. Bad news is that getting the deadlocks worked out was a pain in the ass and consumed well over a week. Sometimes concurrency is hard. >:(
Other stem development included…
- Simulated chroot setups for integration testing (ticket). This hasn’t yet been merged because I haven’t added a method for users to provide their chroot prefixes (and hence these integ tests for things like cookie authentication rightfully fail). Not hard, just haven’t gotten to it yet.
- Gave some input on Robert’s Safe Cookie proposal and filed a ticket for supporting it in stem. Sathyanarayanan has offered to take the first pass at implementing it.
- Discussions with people helping to make stem better. Sathyanarayanan put the finishing touches on configuration saving and Neena fixed an integration testing bug. Many thanks!
Later in the month I began making the arduous trek (half hour walk) to the Tor developer meeting. For everyone who could attend it was great to see you again! Highlights for me included…
- Demoed stem to several people and schemed about its future plans.
- Discussed a python metrics-lib with Karsten. Making a skeleton for that now holds the top slot on my dance card when I finally get some time to do development again.
- Talked with potential mentors about ideas for GSoC. There was quite a bit of interest but not any concrete plans at the time.
- Discussed the burden of proof needed for badexiting and resolved a ticket we had for an automated exit setup we’ve been seeing.
- Brainstormed alternative names for the third incarnation of TorStatus with Karsten and Arturo. In the end we went with “Atlas”. I later filed tickets (1, 2, 3) to move it and Onionoo to tor’s infrastructure (tpo vm, git repos, trac, etc).
- Talked with Runa and Karsten about the monitoring infrastructure project. It won’t be a GSoC project, but rather something that Runa plans to hack on later.
- Organized for us to go on the Underground Tour. Note to future self: leaving with twice as much transit time as you need doesn’t work. Quadruple it.
Sadly as the month went on I’ve shifted more and more from development to helping others. Of late the little time I have has gone toward GSoC preparation…
- Revised our GSoC landing page, rewriting a few of the sections.
- Nagged lots of people for project ideas and added them to the ideas page.
- Added a project idea for stem.
- Dug up our application from last year. With only a few minor tweaks it should still be fine.
- Discussions about if we’ll be filing a joint application with the EFF again or not. Conclusion was that it probably isn’t as vital to our acceptance as we once believed, but we’re still gonna do it because we like the EFF and they’ve pinky promised to communicate better this year.
… and then of course there were other things…
- Code reviewed Karsten’s script for gathering obfsproxy statistics (ticket).
- Several volunteer page changes, like adding Obfsproxy, Ooniprobe, and Shadow.
- Discussions about trac with proper. On one hand I’m glad that he’s trying to help, but on the other I feel like there’s a growing need for us to include a banner on our wiki warning that it’s community maintained. With our logo and the official domain there’s a sizable risk that visitors won’t realize that we don’t review several of the pages at all.
- Thanks to Sebastian for fixing an arm bug where reading tor logs from February 29th on leap years would crash arm. This problem was reported by dozens of people, which is actually really heart warming.
While I’d like to get back to my own coding, I doubt that these distractions will subside much any time soon. C’est la vie, I shouldn’t complain – it’s all good stuff.