Hi everyone,
I stumble upon an issue when testing torsocks[1] with firefox. I'm still
wondering how this can be fixed thus I need more eyes on this :). The
issue is that torsocks gets into a deadlock during the initialization
phase within the libc.
Here it is. This new torsocks version hijacks the "syscall" symbol
(syscall(2)) in order to intercept applications that decides to do some
network operations with that interface. To do that, the torsocks library
constructor (executed before the application main()) lookup the original
symbol in the libc (dlopen(3)) and is used for unhandled syscall values
(for instance open(2)).
Now the issue was detected with firefox which uses a custom malloc hook
meaning that it handles its own memory allocation. This hook uses mmap()
that firefox redefines to be a direct syscall(__NR_mmap, ...) and
remember that this symbol is hijacked by torsocks.
Torsocks constructor calls dlsym() to get the original libc syscall
symbol. This call locks a "loading lock" inside the libc:
dlfcn/dlsym.c +68: __rtld_lock_lock_recursive (GL(dl_load_lock));
Just after, dlerror_run is called which does a calloc() which then calls
the firefox malloc hook and calls syscall() for mmap that torsocks
hijacks. In torsocks, syscall() make a check on the original libc
syscall pointer to see if it's NULL or not and if NULL, tries to look it
up with dlsym(). And there you have the deadlock.
dlsym --> LOCK --> dlerror_run --> calloc --> syscall() --> dlsym() -->
dlerror_run --> DEADLOCK.
It's a bit of a catch 22 because torsocks is basically looking for the
libc syscall symbol but then it gets call inside that lookup code
path...
To be honest, I am not sure what's the right fix here or if there is any
way to lookup the symbol in a "special" way that would help here. Any
idea or questions are VERY welcome :).
Hope this explanation is clear enough, this is a "not that trivial"
issue.
Cheers!
David
[1] https://github.com/dgoulet/torsocks.git
Hi everyone,
I just finished a first draft of a tech report sketching out the
requirements and a software design for a new Torperf implementation.
This is related to my earlier attempt to rewrite Torperf in Twisted [0],
which I still think is a good idea, but only if somebody else who's
better at Python and Twisted than I does it.
Sathya offered help to implement this tool by "translating English into
Python". But I think this project can keep more than one person busy
for a while. I assume both Sathya and I would appreciate feedback from
others. (Of course, I'm eager to hear your thoughts, Sathya.)
Neither the requirements nor the software design are set in stone, and
the implementation, well, does not exist yet. Plenty of options for
giving feedback and helping out, and most parts don't even require
specific experience with hacking on Tor. Just in case somebody's
looking for an introductory Tor project to hack on.
Here are the PDF and the LaTeX sources:
https://people.torproject.org/~karsten/volatile/torperf2.pdfhttps://gitweb.torproject.org/user/karsten/tech-reports.git/tree/refs/heads…
Feedback in the form of patches to the LaTeX sources is most preferred,
though email replies are of course fine, too.
Thanks!
Karsten
[0] https://lists.torproject.org/pipermail/tor-dev/2013-January/004356.html
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Dear List,
I have been trying to help get Project Cute which is a "point-and-click"
hidden service blogging tool, off the ground.
So far I have 2 documents that have come out as a result of a few IRC chats.
1) Possible use-cases:
https://trac.torproject.org/projects/tor/attachment/wiki/org/sponsors/Otter…
2) Working draft Design Document:
https://trac.torproject.org/projects/tor/attachment/wiki/org/sponsors/Otter…
Any comment or attention from you is very much appreciated.
All the best,
SiNA
For the sake of discussion, I am pasting the Use Case document, so you can just reply away:
This document is an attempt to list the possible users of a
"one-click-publishing" hidden service. The goal of this effort,
is to provide developers with a set of options and features that could support
their development decisions. It is also an attempt to describe the challenges and
risks associated with anonymous content publishing
1) Activist - a single person
This is a person with a specific message or material. Wishes to
share some content with the world, without revealing identity.
This activist/publisher can operate from a range of private and public
places. Such as: Work, Home, School, Internet Cafe and the public library.
May or may not be able to dedicate a hardware for such activities.
But we can assume access to to a computer that can be booted with a USB or CD.
2) Activists - 2 or more of them
They all access the same site from different places on the Internet.
They have specific political/social agenda. Often they maintain an AFK
identity and an on-line persona. Hoping for a level of privacy. They
each have different roles based on their skills. Roles like reporter,
editor, graphic designer and comment-moderator. They publish content
on a consistent bases, and very determined to get their words out.
Such groups are the building blocks of large scale political/social movements.
Their activities lead to mass protests and social change.
3) Whileslblowers
This could be an employee of an evil entity that is about
to do harm. For example company X bypassing international laws &
selling DPI boxes to dictatorships. This whistle blower wishes to stay
anonymous in fear of retribution. He/She may have limited technical
abilities, and facing a well resourced adversary.
4) Professionals
I call this group professionals because they usually operate like a
business and involved in some sort of commercial activity. This group
includes and not limited to: Newspapers, public and private entities.
They wish to use the features such as end-to-end encryption and DDoS
mitigation of hidden services, but don't have the desire or technical
ability to setup a proper Hidden service. Many major newspapers are
setting up whistle blowing portals on their websites already.
5) Anonymous Crime Reporters
Police departments have webportals for the public to send "anonymous" crime
reports. The reality is that these portals are NOT anonymous, considering
the state of insecurities on the Internet. Such Law Enforcement groups
can instead direct crime-reporters to launch a self hosted hidden service
and not depend their lives on privacy by policy.
6) Anyone that does not or can not got to wordpress.com and register for a free blog.
Help me identify these groreality ups :)
- --
“Be the change that you wish to see in the world.” Mahatma Gandhi
-----BEGIN PGP SIGNATURE-----
iQJ8BAEBCgBmBQJScVN8XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRGQ0E0NjQxNDg4RUMyMjUwOThBQzA0QTYz
QzYyNzgwMTIyMkNFOUE4AAoJEDxieAEiLOmow2EP/iS+hA4QFq0d67DoWUaBffwd
DAl4cYX94dxlYMjyvE6F1y9Gbj6FKfNXnerzUzCvsS+9SzQgHsPT2V2vbOItTI62
AfHm1EitUVO2YfdioJbUaom6Gh3JfIJukPjy0oJbbccK6jlQcs8TBFdas0FYi4ML
YQNN/UQrGkSGm4JnnVCobFGwVBcVp7SOb3ClyGVTml/dpkntoHwyJ7aO6ZmoGhxv
+bqx0o90cfka3a0wnamAhkTp1pUi1fMcDdG2OJ1ccemvaaBBmG/Gjt1Fw266HN2p
53vMZ6ZcEZE8iCGgShEm4nnq/FJn7mGuXHxwozjbYao5uCMPNrqCsfxnxS80H3d4
vH6ICCbF7ETfLoLVe//UV0+SRfnIaCQ97x8SMugnK1nKNlAvAuwvRZpm6xyteeoW
syR2EfnNEERjmlzzqBlfjX9HkuSE0BAnWEbhTzsIzWyFjpr8KahYHtcTyKAyFcz1
ph6Wxi6/PAVNuAAow7gybKf425Qt19G85IU+3OZj6RtIl0vjnX1Umyu/3JvViLUs
Y6gluA7RA6JMxH9a5p3BhjjnvEfIFFHGvwJeFf2wG3Tmq+N9XArS3kszFuvuW5j8
KaVWF7e2ql7BucgY9AasYkxobFOsX91THhOMaLJfqO9CtB3p2WxNQrsI64syd2SQ
fr30v9bBRv0zN/bozpF7
=HEt2
-----END PGP SIGNATURE-----
Hi tor devs,
Steven, Rob, and I wrote a tech report on evaluating Steven's libutp Tor
implementation in the public Tor network and using Chutney and Shadow:
https://research.torproject.org/techreports/libutp-2013-10-30.pdf
>From the introduction:
"""
Datagram designs are a promising approach to overcome Tor's
performance-related problems. Advantages of datagram designs over
stream designs are that they allow better end-to-end congestion
management, reduce queue lengths on nodes, and prevent cell loss on one
circuit delaying cells on other circuits. In earlier reports we
compared possible Tor datagram designs and outlined a testing plan.
In this report we evaluate our implementation of a libutp-based Tor
datagram design. However, this evaluation does not focus on performance
improvements over the current stream-based Tor implementation, because
we found that our datagram-based Tor implementation is not mature enough
for such a comparison. The focus is rather on our approach to integrate
a datagram design into the Tor source code and on setting up test
environments to evaluate the new design. We hope that our findings will
be useful when further tweaking our libutp-based design or implementing
other datagram designs.
In the next section we describe our libutp-based Tor implementation in
sufficient detail for others to understand our source code and to act as
blueprint for implementing other datagram designs. Sections 3 to 5
outline the experimental setup that we used to evaluate our
implementation and point out roadblocks that kept us busy longer than
necessary. Section 6 concludes the report by sketching out possible
next steps.
"""
As the introduction says, this report doesn't contain shiny performance
comparisons, because we kept hitting bugs and then ran out of time. But
the report contains detailed instructions for experimenting with libutp
and Tor, and it has plenty of footnotes containing starting points and a
conclusion with suggested next steps. In short, we had to stop when
things started to be fun.
Unfortunately, neither of us can work on this topic in the next two
months at the very least. If anybody here wants to pick up this work
and comes up with bug fixes or even a performance comparison to current
Tor, please post your findings here!
All the best,
Karsten
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Hello everyone,
At today's Buoyant Otter meeting, it was determined that we needed a
pad to organize our thoughts regarding the current documentation we
have, and what we need.
I have created a pad at https://zugzug.titanpad.com/3 for this
purpose, and will begin adding resources to it tomorrow.
- --
- -Phoul
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iQIcBAEBCAAGBQJScH3pAAoJEJ01Zvx7KO7Y1c0P/39cMM5fSdx5LIVdfuKVctYx
6hde6OPDvmTPzzTI03MlcYMKRSvH60cJUKCah2J7r2nfEGD3gw0uq0hcn/izc1wr
+de7y3yAofbygFCT1k9v3KBaPi+nezvglqYu+hia9gsKuXf3+cLSATpymxTtUIDN
eOtEIsggCjDv3eD8bs4rSYINI2B+j6V0qj5Lhts0nikbLkoiO/Q34RxELr1DQxot
D+19Lvqb+yVCZE3NEsGyeJEu9hbAwRGgYgB2Qv/CSvbJ7c6SYFx4K0PUbG1ZYlHs
wQ0MB6PoZ3cub4W4jb0R3HwyT++tBARvzbrbALHGehmKCNsY6wZ1ucx36xJB/p6x
ABruNMjzAZhMPAz7yrf9cakOCskqXn10se21yd6EHUlknOKECEwzdCxJxE0Oswph
OjISwL+JAkI5aTC52NGelIwd2VPrYY/2RkOgCnybop7wGsBBqNqrY7pGLiT03NJx
m7MYE0RqJfZUjH++Ym52KU15ycPG2JhRxjnmym8OrvW1TPw0t24mSjfzIR0x90XI
Og7teG9ugxv2rCftdCVMNKLUh8BVOTC7G6GIxeqPlii7IHiHEAqBdxAhXAm945WJ
BjrimEQ0E73s/M/j7mDf7dblZegansvlHXuoBEpJSiT9fZHu3DAlAGvTS0dmBIkF
aMUcspY2nbhD+zCdI4z2
=OVcv
-----END PGP SIGNATURE-----
Tor psyops group,
We'll be meeting in #tor-dev in just under an hour to scheme, plan,
and otherwise prepare out ongoing outreach, training, and
documentation efforts.
See y'all in an hour.
-Tom
Why is there a limited set of OpenSSL engine algorithms chosen in crypto.c
(code below)?
log_engine("RSA", ENGINE_get_default_RSA());
log_engine("DH", ENGINE_get_default_DH());
log_engine("RAND", ENGINE_get_default_RAND());
log_engine("SHA1", ENGINE_get_digest_engine(NID_sha1));
log_engine("3DES", ENGINE_get_cipher_engine(NID_des_ede3_ecb));
log_engine("AES", ENGINE_get_cipher_engine(NID_aes_128_ecb));
Crypto hardware may be able to support various modes/key sizes and I would
have thought one would want to support the algorithms allowed in TLS from
the tor spec (MUST support SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA and SHOULD
TLS_DHE_RSA_WITH_AES_128_CBC_SHA).
Also, I was a bit surprised to see ECB mode. Is it true that ECB, when
used as a stream generator, is equal to CTR mode? ECB mode is not
mentioned in the spec and after some digging, I found a reference to it [1]
for encrypting at most one block length of data in the header.
To rephrase the opening question, it appears, by my limited review, that
there is support for only a subset of the algorithms that Tor uses; what
are the implications of increasing this support?
Thanks,
Josh
[1] https://lists.torproject.org/pipermail/tor-commits/2012-July/044878.html
p.s. My motivation for this question is that I'm trying to optimize the
performance of the TI AM335X for use on the BeagleBone Black. While it
can't compete with high end servers, it appears to hold its own behind a
home network. Unfortunately, the processor doesn't support any asymmetric
algorithms, which would help in circuit creation, but it does support
various flavors of AES as well as SHA1.
Happy Monday,
This is your just-a-smidge-more-than-an-hour reminder that the final
Sponsor F year 3 meeting will be in #tor-dev at 1100h Pacific. Bring
true tales of your work, the final reports you've been preparing, and
-- probably -- snacks.
Sadly, I suspect that this meeting will last slightly more than the 90
assigned minutes. I plan to proceed in deliverable number order, so
you may be able to use that as a gauge. If you can only be near the
beginning or the end of the meeting, I'd love to know that forthwith
so that I can jazz up the order for optimal conveniencing.
Also, in the unlikely event that I still have your attention, it'd be
really super neat if you could drop into the [Sponsor F year 4 riseup
pad][1] and make sure that anything which sounds like you might want
to help has your name near it, and that anything you might want to
take point on has not just your name, but also as many time,
difficulty, chance of success, and alternate result descriptions as
you can.
See y'all in an hour or so.
-Tom
1: https://pad.riseup.net/p/Vt0TDXcdH0PB_Tor-Sponsor-F_Year-4
On 30 September 2013 19:13, Tom Lowenthal <me(a)tomlowenthal.com> wrote:
> Today, at 1100 Pacific, we spent more than 90 minutes discussing
> [Sponsor F][]. Here's the summary.
>
> **READ THIS**: The next Sponsor F meeting will be held in a mere two
> weeks on **2013-10-14, at 1100h Pacific in #tor-dev**.
>
> This is a schedule change: from now on, the meetings will be every two
> weeks. It's possible that we may have to increase this to every week,
> depending on how fast we work, and how long meetings are taking. If
> you should be at these meetings but cannot make Mondays at 1100h
> Pacific, please contact me, and I'll start the process of finding a
> better time or times.
>
> If you are individually in the `cc` field of this message, it's
> because I think that there's something which I think you need to do
> for Sponsor F before Halloween. You should also come to the next
> Sponsor F meeting. If you can't make the meeting, or don't think this
> work applies to you, you should get back to me ASAP so we can fix it.
>
> Is something else missing, wrong, or messed up? I'd like to know.
>
> [Sponsor F]: https://trac.torproject.org/projects/tor/wiki/org/sponsors/SponsorF/Year3
>
>
> * * * * *
>
>
> Core Phase 2 Deliverables
> =========================
>
>
> UDP Transport [#10]
> -------------
>
> **[On Track: Minimal]** Karsten will work with Rob to complete the
> Shadow simulation of this work, then write up a full report on this,
> probably with Stephen's help. We expect both tasks to be complete by
> Halloween. This likely represents a minimal outcome for this
> deliverable.
>
>
> Combine obfuscation (obfsproxy) with address-diversity (flashproxy) [#11]
> -------------------------------------------------------------------
>
> **[On Track: Minimal]** The work of integrating obfsproxy with
> flashproxy is done. George will include this in the next released
> version of the pluggable transports browser bundle. George will also
> write a report on this work. Ximin and David will help. By Halloween,
> the report will be complete and the bundles will either be released or
> well on their way through testing. This likely represents some
> combination of minimal or intended outcomes for this deliverable.
>
>
> Bridge Metrics [#12]
> --------------
>
> **[Done: Intended]** Our reporting code has been merged into master.
> It will ride the trains or flow downstream or whatever your favorite
> code development cycle imagery is, and show up in future releases. As
> it goes through alpha, beta, and release, gets picked up and adopted
> by more operators, we'll get more comprehensive sample coverage, and
> better data. This likely represents an ideal outcome for this
> deliverable.
>
>
> N23 Performance Work [#13]
> --------------------
>
> **[On Track: Alternate]** Roger doesn't think that N23 is as good as
> we thought it was, so he's going to write a report on the various
> performance improvements we've implemented lately; the performance
> work which we though about, but decided not to implement, and why; and
> a wishlist of future performance work and research. He'll have this
> done by Halloween. This likely represents an alternate outcome for
> this deliverable.
>
>
> Improved Scheduling [#14]
> -------------------
>
> **[On Track: Intended]** Nick will work with Roger and Andrea to
> implement an improved scheduler (possibly based on picking randomly,
> weighted by bandwidth), and -- if possible -- also to refactor `cmux`.
> If time permits, Nick will also attempt to simulate this using Shadow
> , probably with Karsten's help. Finally, Nick will produce a full
> report before Halloween. This likely represents an intended outcome
> for this deliverable.
>
>
> Alternate `Fast` Flag Allocation [#15]
> --------------------------------
>
> **[At Risk]** The person who we initially expected to do this work
> does not seem to be available to do it. We need to find an alternate
> plan to execute this deliverable. If you think you can do it, please
> read [ticket #1854][#1854] and get in touch.
>
> [#1854]: https://trac.torproject.org/projects/tor/ticket/1854
>
>
> VoIP Support [#16]
> ------------
>
> **[On Track: alternate]** Our implementation strategy for this was
> high-latency send-an-mp3-over-XMPP using Gibberbot/Chatsecure, or a
> similar system. The internal milestone was to have a release candidate
> available today. Sadly, Nathan (who is on point for this) wasn't on
> the call. Fortunately, Nathan [blogged][guardian-1] about Chatsecure's
> `12.4.0-beta4` ten days ago, and a tantalizingly-named
> [`ChatSecure-v12.4.2-release.apk`][chatsecure-release]
> ([sig][chatsecure-release-sig]) is available in the Guardian Project
> [release directory][guardian-releases]. The outlook seems good, but
> Tom will follow up with Nathan as soon as possible to verify these
> outrageous claims. Nathan, if you're reading this, could you get in
> touch (email, IRC, XMPP, whatever). Thanks!
>
> [guardian-1]: https://guardianproject.info/2013/09/20/gibberbots-chatsecure-makeover-almo…
> [chatsecure-release]:
> https://guardianproject.info/releases/ChatSecure-v12.4.0-beta4-release.apk
> [chatsecure-release-sig]:
> https://guardianproject.info/releases/ChatSecure-v12.4.0-beta4-release.apk.…
> [guardian-releases]: https://guardianproject.info/releases/
>
>
>
> Extended Phase 2 Deliverables
> =============================
>
>
> VoIP Support [#17]
> ------------
>
> **[Limbo: Intended]** Here we're talking about getting a general VoIP
> client (Mumble) to work over Tor. This discussed in [ticket
> #5699][#5699], and [instructions][torify-mumble] for using Mumble over
> Tor are on the wiki. We didn't get an update during the meeting, so if
> you're working on this, get in touch, eh?
>
> [#5699]: https://trac.torproject.org/projects/tor/ticket/5699
> [torify-mumble]:
> https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/Mumble
>
>
> Simulating Tor [#18]
> --------------
>
> **[On Track: Intended]** Linus will finish Shadow improvements as
> needed, and write a full report on his Shadow work. That'll all be
> done by Halloween. This probably represents the intended outcome of
> this deliverable.
>
>
> Relays as Bridges [#19]
> -----------------
>
> **[Done: Minimal]** Using a public relay as a bridge works.
>
>
> Defiance [#20, #21]
> --------
>
> **[At Risk]** We cannot work on these without open Defiance code.
>
>
> Throttling Classifiers [#22]
> ----------------------
>
> **[On Track]** Adaptive throttling seems to come with unpleasant
> anonymity tradeoffs, so we're not doing that right now. It looks like
> static throttling will work really quite well, without these
> tradeoffs.
>
>
> Torbrowser Optimistic Data [#23]
> --------------------------
>
> **[Done: Ideal]** It's in your TBB *right now*.
>
>
>
>
> FAQ
> ===
>
> **Q**: Why do you keep talking about Halloween?
> **A**: We're currently in Phase Two of Year 3 of the Sponsor F
> project. That phase ends on October 31st 2013, so we should try to
> finish everything as best we can before then. Also: if we don't
> finish, at midnight (local time) each person who has an outstanding
> deliverable will be besieged by a seemingly-endless horde of zombies.
> Others may be besieged too: the zombie report is hazy.
Hi everyone,
some of you may already know our new approach to estimating daily Tor users:
https://metrics.torproject.org/users.html#userstats
This new approach is in beta since April, and I'm quite happy with it.
I trust the new numbers more than the old ones, both for direct users
and bridge users. The new code for direct users is quite similar to the
old one, but much cleaner. The approach for bridge users is a much
better idea than the old hack. Today I added the missing features like
the top-10 lists and the censorship detector.
Why do I tell you this?
Because the old approach uses resources on our poor, already overloaded
metrics machine, and I'm planning to shut down the old approach in the
very near future. Here's the plan:
- Compute user numbers for 2012 and before; the current numbers start
on January 1, 2013. This is going to take at least until September 23.
- Take out the "BETA" labels and throw out everything above "New
approach to estimating daily Tor users (BETA)". This could happen on
October 1.
Thoughts? Did I miss anything that's worth keeping? Anyone want to
create an archive of their favorite graphs before I pull the plug?
All the best,
Karsten
Hi all. Here's a quick update of what I was up to this October...
======================================================================
Stem Release 1.1.0
======================================================================
After seven months of work Stem version 1.1.0 is finally out!
https://blog.torproject.org/blog/stem-release-11
This month was primarily focused on pre-release performance and
compatibility improvements in preparation for this...
* Handful of improvements that reduced the memory usage of our
Descriptor classes by 20%. [1]
* Replaced Stem's custom caching with Python's @lru_cache. This was
added to the standard library in Python 3.2, so Stem includes a
Python 2.x backport to our utilities. [2][3]
* Dozens of compatibility fixes for Python 2.6 and 3.x.
* Added test coverage for Stem's interpretor examples, courtesy of
Python's doctest module. [4][5]
======================================================================
GSoC Mentor Summit
======================================================================
Nick, Moritz and I attended the GSoC Mentor Summit at Google's main
campus. By and large it was very similar to previous years, with many
of the same faces and discussion topics. Unlike the prior couple
years however I did not focus on keeping notes which, on reflection,
was a mistake. Here's the small bit I remember...
* Had a couple fun language discussions with developers from SciRuby
and Scala. The former mostly concerned the advantages and
disadvantages of Ruby with respect to Python (I use the former
at work, so I've had some time to form an opinion on this). The
later concerned Scala support for issuing database queries via
list comprehensions.
* Couple discussions with Wikimedia developers regarding Tor abuse.
Unfortunately this is a perennial discussion that never seems to go
anywhere despite having plenty of technical solutions.
* Nick gave me a tour of Chutney's codebase and tried to persuade me
to take on development of it. Nearly worked too. But while Chutney,
SoaT, TorBEL, and a dozen other projects would be a lot of fun to
work on I only have so much I can squeeze in alongside a full-time
job.
* A hackathon organizer with Random Hacks of Kindness discussed what
they've found most successfully attracts contributors. The two
most memorable tips were momentum and recognition. Regularly
organizing events is necessary to maintain a core contributor
group, and engaging local media doesn't hurt as it provides
recognition for the contributors.
* Shadowed Nick during discussions with a Mozilla developer concerning
the upcoming Tor IM bundle. They certainly seem excited for OTR
support...
* Visited with Terry and Arc from the PSF quite a bit. Still no ETA
on when distributions will switch to Python 3, and Mailman 3 is
still a ways off. Momentum on lots of projects though. Evidently
they acted as an umbrella org for roughly sixty students. I would
weep bitter, bitter tears if I had to be the admin for that...
======================================================================
Other news this month includes...
* Karsten, Andrew and I are now all moderators for the tor email
lists. I'm taking point in this area, making daily sweeps through
the moderator queue and tweaking Mailman to reduce friction.
* Handful of DocTor fixes and improvements. Karsten shut down the
Java DocTor early in the month so our shiny, new Python DocTor
is now flying solo!
* Attended events in the Seattle area including 'Go for Python
Developers' at Google Fremont and the second TA3M meetup.
* Worked with authority operators to resolve brief outages with dizum
and urras.
Cheers! -Damian