About Jeff Kaufman

A programmer living in the Boston area, working at the Nucleic Acid Observatory.

The RSS's url is : https://www.jefftk.com/news.rss

Please copy to your reader or subscribe it with :

Preview of RSS feed of Jeff Kaufman

Quick Thoughts on Our First Sampling Run

2024-05-22 21:00:00

Cross-posted from my NAO Notebook

While the NAO has primarily focused on wastewater, we're now spinning up a swab sampling effort. The idea is to go to busy public places, ask people to swab their noses, pool the swabs, sequence them, and look for novel pathogens. We did our first collection run yesterday:

After months of planning and getting approvals, it was great to be out there! Some thoughts on how it went:

Comment via: facebook, lesswrong, mastodon

Scientific Notation Options

2024-05-18 21:00:00

When working with numbers that span many orders of magnitude it's very helpful to use some form of scientific notation. At its core, scientific notation expresses a number by breaking it down into a decimal ≥1 and <10 (the "significand" or "mantissa") and an integer representing the order of magnitude (the "exponent"). Traditionally this is written as:

3 × 104

While this communicates the necessary information, it has two main downsides:

Instead, I'm a big fan of e-notation, commonly used in programming and on calculators. This looks like:


This works everywhere, doesn't mess up your line spacing, and requires half as many characters as writing it the traditional way.

There are a bunch of other variants of e-notation, but I don't like any of them as much:

One downside of "e" notation is that it comes off as less formal than traditional scientific notation. But unless you need to be read as maximally formal I think it's just better all around.

Comment via: facebook, mastodon

Contra Caller Gender III

2024-05-15 21:00:00

When I looked at the genders of dance callers at large contra dance events several years ago there was an interesting pattern where events were more likely to book a man and a woman than you'd expect by chance. With more years worth of data to look at, I thought it was worth checking if this was still the case.

To see the effect most clearly, I looked at events with two binary callers. [1] Here's what I saw:

You can see that events with one female and one male caller are the most common, but you'd also expect this even if bookers were selecting both slots independently because there are two ways to get a male-female pair and only one way each to get a male-male or female-female pair. What we can do, however, is generate another set of lines representing the expected number in each category if bookers were selecting independently:

The idea is that if, say, 40% of slots went to men than you'd normally expect to see two men 16% (40% * 40%) of the time, two women 36% (60% * 60%) of the time, and one of each 48% (40% * 60% + 60% * 40%) of the time. That we see one of each 63% of the time for 2026-2024 instead of 48% tells us that about some bookers are gender-balancing callers.

What these statistics don't tell us, however, is the gender distribution we would get if bookers didn't consider this as a factor. You could think that this factor leads to fewer women being booked (because bookers are avoiding booking two women and there are more female callers) or that this leads to fewer men being booked (because booking two male callers looks regressive). One way to try to get at this would be to look at events with only one caller. While they might try to balance over years, I would at least expect the effect to be smaller? Here's what I see:

(Note that I don't have this data for before 2016)

It seems to me that at the beginning of this period the booking preference for gender balance was leading to fewer female callers at two-caller events, since single caller events were much more likely to book a female caller. More recently, however, these have converged, which I think means that, under the assumption that single-caller events reflect the uninfluenced ratio of male to female callers, the preference for gender balance is affecting which gigs men and women get but isn't affecting how many?

I was curious whether this phenomenon was primarily driven by a subset of events, and tried looking to see if there were events that only booked male-female pairs. I only found five events in this category with at least four years of data, however, which is about as many as you'd expect by chance. I think this tells us that to the extent that bookers have this preference it's not their only consideration, which isn't very surprising. I don't think there are enough observations to say anything more specific than the general preference for balance, because we have relatively few booking records by many events.

[1] I don't know how everyone identifies, so I've done the best I could. Most of this is by first name, with searches on "[caller] contra" to look for pronouns in tricky cases.

Comment via: facebook, lesswrong, mastodon

Embedded Whistle Synth

2024-05-14 21:00:00

A few years ago I ported my whistle synth system from my laptop to a Raspberry Pi. This was a big improvement, but I still wasn't that happy:

After my Electronic Harp Non-Mandolin project I was feeling more at home with electronics, and decided to build an embedded version of my whistle synth.

It's built around a Teensy 4.0 with the audio shield. [1] This gives me stereo 44.1kHz in and out, though currently I'm just using mono. It's plenty fast for the processing I'm doing.

I'm using a standard dynamic mic, which puts out a very weak signal. Instead of connecting that directly to the line in on the Teensy, I need a pre-amp. A normal pre-amp is fancy, but literally all I need here is something that preserves zero crossings and gets amplitude about right, so I made my own around an LM358P (github):

If you want any of these boards let me know; I have dozens of them because the minimum order was five sheets and each sheet has six boards.

I breadboarded it to make sure it worked, and then mounted the electronics in a project box:

This is an absurd number of lever nuts: once this isn't a prototype anymore I'll take all of them off and solder the connections.

The box has XLR connections for input and output, because it incorporates the A/B switching functionality. With the 3P3T switch on the top I can send the XLR input to the whistle synth, or pass it unmodified to the XLR output.

The whistle synth output is 1/4", for use with guitar pedals:

It gets power (and updated programming) over micro USB:

Here's an example of it generating a simple sine wave, transposed down from my whistling:

And here's what it sounds like feeding that sine wave into the SY-1:

I'm quite excited about this, and it's now to a stage where I could play it at a gig, but there are still a bunch of things I'd like to add:

A lot more work to do! But for now I'm very happy with it, and am planning to use it this Thursday at the Scout House.

[1] I initially tried using an ADC pin for input and a HiLetgo PCM5102 I2S DAC for output, because I didn't notice there was a standard Teensy audio shield. After some frustration around no audio output I got it working, but then I ran into issues getting it to work well with the audio library and switched to doing the normal thing.

[2] fc = 1 / (2 * pi * C * R). So 1 / (2 * pi * 13.3e-6 * 600) = 20Hz

Comment via: facebook, lesswrong, mastodon

Somerville Porchfest Thoughts

2024-05-13 21:00:00

This Saturday was Porchfest in Somerville, an annual festival where musicians around the city play on their porches and people wander around listening. As in the past few years Cecilia and I ( Kingfisher) played for contra dancing:

Harris Lapiroff called:

If anyone has pictures of videos from the set, I'd love to see them as well.

Overall, we had a great time! It was fun seeing so many friends, and the kids did some very good business with their bake sale.

This was the second year we'd gotten permission to close the street to traffic, which we really needed. I applied on Monday 2024-03-18 and it was approved on Wednesday 2024-05-08 for an event on Saturday 2024-05-11. This was cutting it a bit close; among other things the permit says you need to give all abutters at least one week written notice, which wasn't possible. My guess is the city wanted to decide all together which streets would be closed, and wanted to do that close to the time so they'd have as much information as possible?

There were several times that cars came through the closed street, mostly in groups. They moved appropriately slowly, but they're just very bulky which was tricky with the dancing. There were barriers up, but maybe with how many streets were closed the drivers felt like they had no other possible routes?

Even though Morrison tends to have a lot of bands and people, this year it was far from the most crowded place. That would have been Aberdeen, where Guster played. Over on Reddit /u/mais318 took a drone up (possibly unsafely/illegally?):

I did hear a lot of mixed things afterwards about crowd and traffic management. Some ideas for future iterations:

Other ideas?

[1] Spitballing: Broadway, Holland, Elm, Powder House, Boston Ave, Highland Ave, Summer, Broadway, Medford St, Pearl, Somerville Ave, Washington, Mystic, Rt 16, Rt 28, College, Cedar, Central, School, Prospect

Comment via: facebook, lesswrong, mastodon

Custom Audio Switch Box

2024-05-10 21:00:00

When I play live I have a bunch of instruments, including:

I also have some effects, primarily a talkbox and an audio-to-audio synth pedal. Normally I route the mandolin into the effects, but I've recently been wanting more options:

The thing that makes this tricky is that I want to be able to play mandolin direct (which goes via the talkbox output) at the same time as playing bass whistle (which goes via the pedals output). I sketched a lot of options:

And eventually realized I only needed something simple:

This lets me switch between two modes:

I wired something up with a 3PDT switch, five 1/4" jacks, and a couple wagos, in a a small case:

The 1/4" jacks are very slightly too big for the case, so I needed to make them very slightly smaller. Which I did (not recommended) by melting away the offending region with the soldering iron.

I tested it with my mandolin pretending to be each instrument, and it seems to work! The main risk is that the volumes of the input instruments aren't in the right range, which I won't know until I combine all three instruments. If that's the situation I think I can add some resistors to balance it out.

If the levels are decent, though, I'll give it a go at Porchfest tomorrow!

Comment via: facebook, lesswrong, mastodon

Four Unrelated Is Over

2024-05-09 21:00:00

Somerville historically had a zoning ordinance limiting housing units to at most four unrelated people:

any number of persons related by blood, marriage, adoption, or foster care agreement and up to three (3) additional unrelated persons living together as a single housekeeping unit

This is something I'd been unhappy about for years, and was enthusiastic about the "4 unrelated is outdated" campaign to change it in in 2018. So I'm very happy that after a request for a variance the city council instead ended up removing the restriction.

The actual change was in November, so I'm a bit late on this!

I also think there was an oversight, where the removal didn't include changing the text in section 7-153 which says "All schools shall be responsible for publicizing to their students the limitations of the city's zoning ordinance which limits occupancy to not more than four unrelated individuals." I've written to the city council to let them know.

I've also noticed that several school-affiliated sites still list this limitation:

I've written to Tufts and Harvard to let them know this has changed. I wasn't able to find this listed on any MIT or Lesley sites, and didn't check all the other Boston-area college websites.

Comment via: facebook, lesswrong, mastodon

Experience Switching to Right Shoulder Round

2024-05-08 21:00:00

Contra dance has a figure where two people walk a small circle looking at each other. When it was introduced into contra in the 1970s as a borrowing from ECD, it had the name "gypsy", originally from Morris dancing, but many communities now use "right shoulder round".

In many dance communities the debate over whether and how to switch functioned as a highly acrimonious culture war outlet. I really didn't want our group going through that, but talking publicly about how I didn't want that at the time would have been counterproductive. Now that it's been ~5y since switching to "right shoulder round" and ~10y from the first big online discussions, I think this is probably something I can share some history on.

While I'm sure people had occasionally talked about being uncomfortable with the term, I think the first big online discussion started in January 2014 with a since-deleted post in a Facebook group:

From: Elio Lewis
To: Stuff Contra Dancers Say
Date: 2014-01-20 9:48am

Hey, contra dance callers! I totally just figured out the ideal substitution for that racist-named move! It should be called a "hippie". It sounds similar enough to the offensive term that people will still cue off of it (though I'd note my substitution during the walkthrough), it appeals to a sense of silliness, and it's unlikely to offend anyone. If you like the idea, please spread it around!

The discussion was long and heated, properties it shared with later iterations on other platforms (ex: October 2015, January 2016, April 2016, etc on Shared Weight). There were two main questions, the same ones as in the role terms debate:

There were a lot of candidate terms, with a variety of issues, and "right shoulder round" was quite a late addition. The first place I find it written down is March 2018, four years into the debates. (That thread also gives a good flavor of how these discussions tended to go, with a lot of frustration, anger, and people talking past each other.) Looking back at emails, it took about six months for the term to go from unknown to the favorite.

The approach our dance organization took was mostly waiting: I knew that this was something that had the potential to be divisive and that there wasn't a widely supported replacement, and I suspect the rest of the board felt similarly. When callers asked us about terms, I'd write back things like (November 2016):

BIDA doesn't have an official position on it. If you want to avoid using "gypsy" in your calling that is fine with us, though most callers lately have been using it.

Then, in September 2018, I wrote to the BIDA board:

As you might know, there's been a lot of discussion, mostly online, in the contra dance world about moving away from using the term "gypsy". I've been to many events where callers used other terms instead, like "right shoulder round", and among other things these are, being descriptive, easier for newcomers to understand.

I don't think this is something people have asked for at BIDA, though I'm kind of surprised that they haven't; more dances have stopped using "gypsy" than have switched to "larks/ravens". My expectation is there are two ways this could go:

  1. We continue not having an official position. An increasing number of callers stop using "gypsy" on their own, but many keep using it. At some point a group of dancers writes something publicly about how bad it is that we're still using "gypsy" in 2019 or something and there are nasty fb arguments where people feel less like a community. This is enough of a tinderbox that I've been avoiding it in blogging (example: polling people on which alternative they prefer) which is a high bar for me...

  2. We start encouraging callers to use "right shoulder round" if they're comfortable calling that way. After trying this for a while, if it still looks like "gypsy" is going away, we can switch away from it entirely.

As you might guess, I think we should do #2. This would be something like changing bidadance.org/caller-welcome to have, in the "terms" section, something like:
  • If you're comfortable using "right shoulder round" or other descriptive terms instead of "gypsy" we encourage you to call that way.
What do you all think?

(I'm planning to ask all the Beantown Stomp callers not to use "gypsy")

We had a long discussion, but were mostly on the same page, and did end up updating the website and what we wrote to callers. I don't remember getting any feedback from the dancers.

This felt like it was going well, so in February 2019 I brought it up again:

It looks like the dance community has coalesced on "right shoulder round" as a replacement for "gypsy", and I think it's time for us to switch. It flows well, callers are comfortable with it, and as a descriptive term it's easier for new dancers.

Our current caller guidance on "gypsy" is:

If you're comfortable using "right shoulder round" instead of "gypsy" we encourage you to call that way.

I propose we change this to:

We use "right shoulder round" instead of "gypsy". For example, "right shoulder round your neighbor" or "walk around your neighbor by the right shoulder".

NEFFA already doesn't allow Gypsy and their guidance is:

As for the figure formerly known as Gypsy, we use Walk Around, as in, "Right Shoulder Walk Around your Neighbor". You may add, "Maintaining eye contact, if that is comfortable for you." Please do not use other terminology.

Any objections? Happy to talk about this at our next meeting if anyone would like an in person conversation on this.

(If we can move away from "gypsy" without it being a big thing I think that's way better for our community. Unlike with Larks/Ravens and bathrooms this is the sort of change that we don't need to poll on our get buy-in. We've already had many callers using "right shoulder round" and dancers mostly don't notice either way. We haven't yet had a big blowup over this, but other dances have and we definitely could.)

We again had a discussion, mostly around whether there were other terms that would be better than "right shoulder round" but did decide to make this change.

Again we didn't hear anything, so after a few months I wrote a post recommending other organizations consider switching. There was again some discussion of whether other terms would be better, and some pushback to the idea of switching (from dancers in other communities) but it was reasonably uncontroversial.

Looking back, I'm reasonably happy with the relatively low-key way our local community handled this. Lots of discussion on potential terms, mostly online and national; trying out alternative terms until we settled on something that worked; gradually increasing the fraction of our dances where we used the new terms; not making a big deal out of the switch. I recognize I'm risking undoing a bit of this by getting into this now, but I think it's been long enough and we're sufficiently satisfied with where we are that it's ok. I hope you don't prove me wrong on this!

Comment via: facebook, lesswrong, mastodon

Accidental Electronic Instrument

2024-05-05 21:00:00

I've been working on a project with the goal of adding virtual harp strings to my electric mandolin. As I've worked on it, though, I've ended up building something pretty different:

It's not what I was going for! Instead of a small bisonoric monophonic picked instrument attached to the mandolin, it's a large unisonoric polyphonic finger-plucked tabletop instrument. But I like it!

While it's great to have goals, when I'm making things I also like to follow the gradients in possibility space, and in this case that's the direction they flowed.

I'm not great at playing it yet, since it's only existed in playable form for a few days, but it's an instrument it will be possible for someone to play precisely and rapidly with practice:

This does mean I need a new name for it: why would you call it a "harp mandolin" when it has nothing to do with a mandolin and little to do with a harp?

While you play it totally differently, the instrument it feels most similar to me is a hammered dulcimer. You can play quite quickly, and the only information you're producing is the note selection, the timing, and the initial velocity. It also makes me wonder whether this would pair well with a damper pedal, reasonably common on hammered dulcimers, to allow you to mark the ends of notes? My feet are already allocated, but perhaps a strip running along the left hand side, for your thumb, would do this well?

On the construction side, some things I've learned:

I have four more of the circuit boards if anyone else would like to put one together. I'd be happy to include the diodes, resistors, and piezos, which are super cheap. You'd need to supply a teensy 4.1, and make the teeth (1/16" aluminum angle, 3/4" x 1/2", which you cut and shape).

I do still want to explore the mandolin-mounted version at some point, but it's mostly dependent on figuring out how to make much smaller sensors. This model is a good spacing for fingers, but for picking I want something with the horizontal spacing of frets and the vertical spacing of strings: about 3/8" by 3/8".

Comment via: facebook, lesswrong, mastodon

Haymarket at Closing Time

2024-05-04 21:00:00

Historically produce shopping was mostly in open-air markets, but in the US produce is now typically sold in buildings. Most open-air produce sales are probably at farmers markets, but these focus on the high end. I like that Boston's Haymarket more similar to the historical model: competing vendors selling conventional produce relatively cheaply.

It closes for the weekend at 7pm on Saturdays, and since food they don't sell by the end of the market is mostly going to waste they start discounting a lot. You can get very good deals, though you need to be cautious: what's left at the end is often past the end of it's human-edible life.

Today Lily was off at a scouting trip, and I asked Anna what she wanted to do. She remembered that a previous time Lily was off we had gone to Haymarket and bought three containers of raspberries (18oz, half a kilo) for $1. Many of them were moldy, which was clear before before buying them, and we'd had a fun time sitting in the park hunting for the ones that were good eating.

We decided to go back, which is easier now that the Green Line runs from Ball Sq. We bought a few different things and tried them out:

We were pleasantly surprised that the raspberries were tasty and non-moldy! We decided to buy more, but it was still a few hours from closing time and we weren't ready to go home yet, so we visited Paul Revere's house. I was especially interested to see that it had a folding bed, which was apparently a common way to maximize usable space in cities during that period:

We also visited City Hall Playground, with several slides:

You can see the infamous cop slide in the background. Anna was initially afraid of it, but ended up going ten times.

I wasn't planning to wait quite this long, but Anna had such a good time at the playground it was hard to get her away. Around 6:30 we walked back over to Haymarket, and found one vendor with raspberries who was willing to do $15 for two boxes (12 6oz cartons, 2 kilos, per box). I got four boxes (18lb, or 8 kilos). Anna helped transport:

The kids were very excited to be able to eat all the raspberries they wanted! I emphasized that this was 'special', which is a term I use a bit as jargon with the kids to designate something as "not how the world usually works". We ate about three cartons fresh, shared a bunch with housemates, kept a few more in the fridge for the morning, and I washed and froze the rest.

We normally go through quite a lot of frozen raspberries, which I use instead of jam, so in addition to this being a fun adventure it also saved us about $60. But this was an unusually good trip: sometimes I've gone and the only things at excitingly low prices have gone bad or are not foods I'm interested in.

Comment via: facebook, lesswrong, mastodon

Extra Tall Crib

2024-05-03 21:00:00

A few days ago I came upstairs to:

Me: how did you get in there?

Nora: all by myself!

Either we needed to be done with the crib, which had a good chance of much less sleeping at naptime, or we needed a taller crib. This is also something we went through when Lily was little, and that time what worked was removing the bottom of the crib.

It's a basic crib, a lot like this one. The mattress sits on a metal frame, which attaches to a set of holes along the side of the crib. On it's lowest setting, the mattress is still ~6" above the floor. Which means if we remove the frame and sit the mattress on the floor, we gain ~6".

Without the mattress weighing it down, though, the crib would not be hard for an energetic toddler to tip. I've attached it to the wall on two sides with strapping, right into a stud:

Nora was eager to give it a try, holding on the rail and bouncing hard:

This should get us a bit more time with solid naps!

(I was going to do something similar with Anna when she was the same age, but the crib we happened to be using for her was designed differently and had a structurally important bar across the bottom.)

Comment via: facebook, lesswrong, mastodon

Playing Northboro with Lily and Rick

2024-04-27 21:00:00

This afternoon Lily, Rick, and I ("Dandelion") played our first dance together, which was also Lily's first dance. She's sat in with Kingfisher for a set or two many times, but this was her first time being booked and playing (almost) the whole time.

Lily started playing fiddle in Fall 2022, and after about a year she had enough tunes up to dance speed that I was thinking she'd be ready to play a low-stakes dance together soon. Not right away, but given how far out dances booked it seemed about time to start writing to some folks: by the time we were actually playing the dance she'd have even more tunes and be more solid on her existing ones. She was very excited about this idea; very motivated by performing.

I wrote to a few dances, and while several (very reasonably!) said to send another sample when we had a bit more experience, the Northboro dance said yes for 2024-04-27. This gave a good amount of time to work on things.

At the time we were booked Lily had some tunes up to speed that would be a good fit for dancing (Sandy Boys, Coleman's March, ...) but had also recently been pretty excited about some notey tunes that she was still quite a while from getting up to speed (Dancing Bear, Bus Stop, ...) and so wasn't on track to end up with a set list that was going to work. We looked over my tune list and picked a few tunes to learn that weren't too hard (The Wren, Trip to Moscow, ...). These went pretty quickly: they're tunes she'd heard all her life, so it was mostly a matter of getting them into her fingers.

By the time of the gig the list we had was:

If you want to play multiple tunes in a set this isn't going to work, and it's pretty skewed towards marches, but it was enough! We ended up playing (from memory):

Lots of one-tune sets! But I find these pretty fun, getting to think of lots of different ways to accompany them to add variety and reinterpret the tune.

This was a lot longer than she'd ever played in one sitting, and I was a bit worried she'd overplay and hurt herself. We talked about noticing how you're feeling and resting; since Rick and I can hold things down fine on our own she sat out some of the times through to rest (often ~2/3 of the way through the dance, coming back in for the last two times through). Two of Lily's friends came to support her, and she also skipped two of the second-half dances (with my encouragement) to dance with them:

I took a short video at one point when I had my left hand free:

Several people have suggested open bands, like Roaring Jelly or BIDA's, but I think these wouldn't actually work very well. Lily's learning fiddle by ear, and both doesn't have that many tunes and doesn't have most of the tunes on these groups' tune lists. When I play with her we can do specifically the tunes she's strongest on, which is going to go better and be more fun. This would go even less well if we were trying to get into ECD: I really appreciate that contra is a scene where we can show up with eleven sets prepared and know we can collaborate with the caller to put on a good dance!

Overall, it was a lot of fun, and she's already asking when we can play another dance. I hope it continues to be a strong motivation for getting better at fiddle!

Comment via: facebook, lesswrong, mastodon

Breadboarding a Whistle Synth

2024-04-26 21:00:00

With my electronic harp mandolin project I've been enjoying working with analog and embedded audio hardware. And a few weeks ago, after reading about Ugo Conti's whistle-controlled synth I wrote to him, he gave me a call, and we had a really interesting conversation. And my existing combination of hardware for my whistle synth [1] is bulky and expensive. Which has me excited about a new project: I'd like to make an embedded version.

Yesterday I got started on the first component: getting audio into the microcontroller. I want to start with a standard dynamic mic, so I can keep using the same mic for talkbox and whistle synth, so it should take standard balanced audio on XLR as input. In a full version this would need an XLR port, but for now I can pull back the housing on an XLR cable:

I'm planning to use the Teensy again, which will be lowest noise at 3.3v peak-to-peak. What is the mic giving me? Whistling as loudly as I can into my e835 dynamic mic I see 23mV peak-to-peak:

This means I need to amplify it by ~150x: 3.3v/23mV.

I found these notes from MAS 836 pretty helpful, and sketched out an ac-coupled differential amplifier, with a voltage divider to bias it up to a mean voltage of +1.65v and the same protective diode arrangement I used on my pluck sensor to keep from going above +3.3v or below 0v:

It also includes simple high-pass and a low-pass filters.

For choosing the component values, I set R1 to 33Ω because my understanding is standard dynamic mics want a low input impedance. Then I set R2 to 5.1kΩ (155x) because gain is R2/R1 and this gives us close to the target gain I calculated above. The frequency cutoff of the high-pass filter on the input is 1/(2 * pi * R1 * C1), and I'd like this to be 500Hz (or a bit lower) because that's the lowest I can whistle. Since we've already chosen R1, this means C1 should be 9.6µF; I used 10µF. For the low-pass filter I'd like the frequency cutoff to be 2.5kHz (or a bit higher), the upper end of my whistling range, and it should be 1/(2 * pi * R3 * C2). We haven't picked either of these, but I think we want R3 to be low so we don't make a lot of heat, so I did 7.5Ω. This means C2 should be 8.4µF, but I didn't have one so I used a 4.7µF and 3.3µF in series for a total of 8µF. Note that for C1 I rounded up and for C2 I rounded down, so that this wouldn't cut off any of my whistling range.

For the amplifier I wasn't sure what to use. I want something with reasonable audio performance, but it doesn't need to be super high-quality because the output is just going to be interpreted for (a) zero-crossing detection and (b) overall volume. I decided to go with the LM358P because they're cheap. For the diodes I used the same 1N5818 schottkies I used last time.

I breadboarded it up:

Testing it with the oscilloscope it looks good enough:

That curve is clearly not symmetric, so I don't think this would make a good mic pre-amp for listening to music regularly, but it doesn't look noisy and should be enough for my purposes.

To verify the biasing was working correctly I switched my oscilloscope to DC mode, and I do see it centered on +1.63v, which is close enough to +1.65v:

Next steps:

[1] Focusrite 2i2 for ADC and DAC, Raspberry Pi for processing, numpad for control.

Comment via: facebook, lesswrong, mastodon

Electronic Harp Mandolin Prototype

2024-04-23 21:00:00

While I'm not really at a clear stopping point, I wanted to write up my recent progress with the electronic harp mandolin project. If I go too much further without writing anything up I'm going to start forgetting things. First, a demo:

Or, if you're prefer a different model:

Since last time, I:

While this works, it's a little bulky for attaching to the mandolin. I also don't like having a bunch of wires running from the teeth to the computer and that I only have thirteen of the eighteen inputs hooked up. I've also been enjoying playing it with my fingers, in more of a piano orientation. I decided to make a new version that's all a single board:

The squares show where the "teeth" will go.

I've prepared a new batch of eighteen pluck sensors:

Sanding them smooth was a good fit for watching the kids at the park.

I'm a bit nervous with this design that something will break and it will be hard to repair because it's all on one board, but it's got to be better than the giant blob of epoxy in the v1 design.

If this works well I might make a case for it where only the teeth poke out?

Comment via: facebook, lesswrong, mastodon

Contra Chord Simplification

2024-04-20 21:00:00

Tomorrow, Lily and I will be leading a Kids Contra Jam at NEFFA (2pm in the Sudbury room!). We'll be playing off of Lily's tune list, but someone was asking about chords. I decided to have a go at writing out the simplest acceptable chords for each of the tunes we're planning. Each letter represents two downbeats:

All the Rage

A: 𝄆 E E A B 𝄇 x4
B: 𝄆 A A B B 𝄇 x4


𝄆 G G C D 𝄇 x8

Devil's Dream

𝄆 D D A E 𝄇 x8

Reign of Love

A: 𝄆  Em Em C D 𝄇 x4
B: 𝄆  Em Em C C
D  D  C C 𝄇

June Apple

A: 𝄆 A A G G
    A A G D 𝄇
B: 𝄆  A A G D 𝄇 x4

Dancing Bear

𝄆 Em Em C C
  D  D  B B 𝄇 x4
can play B7 for B if that's easier

The Wren

A: 𝄆 Em C D D 𝄇 x4
B: 𝄆 C  C D D 𝄇 x4


A: 𝄆 D D G A 𝄇 x4
B: 𝄆 D G A A 𝄇 x4

Trip to Moscow

𝄆 Am Am C C
  G  G  D D 𝄇 x4

Road to Boston

A: 𝄆 D D G A 𝄇 x4
B: 𝄆 D D G G
D D A A 𝄇 x4

Coleman's March

A: 𝄆 D G D A
     D G A A 𝄇
B: 𝄆 D D D D
     G G A A 𝄇

Sandy Boys

A: 𝄆 A A A G 𝄇 x4
B: 𝄆 A A A A
     G G G G 𝄇

Angeline the Baker

𝄆 D D D G
  D D D A 𝄇 x4

Liza Jane

A: 𝄆 A A A D
     A A E A 𝄇
B: 𝄆 A A A D
     E E E A 𝄇

Mairi's Wedding

𝄆 G G C D 𝄇 x8

Cluck Old Hen

A: 𝄆 A A A G 𝄇 x8

Cripple Creek

A: 𝄆 A A D E 𝄇 x8

Bile 'Em Cabbage Down

𝄆 D G D A
  D G A A 𝄇

Four of these are just "𝄆 I I IV V 𝄇": a good first guess for a major tune!

I'll have these there in person as well on handouts.

Note that normally you'd be doing different chords each time through, and they'd been more complex (more).

Comment via: facebook, lesswrong, mastodon

Events Booking New Callers?

2024-04-19 21:00:00

A friend asked whether anyone else had noticed a pattern where big contra dance events were generally booking more established callers since restarting. This could make a lot of sense: the established callers will be less "overplayed" than they had been, and many events will be less robust financially and so more risk averse. Can we use the trycontra.com/events data to see if this is happening?

I have the caller listings for 2016, 2017, 2018, 2019, and 2023, plus part of 2024 for dance weekends, camps, long dances, and festivals. And you can see the raw data in this sheet if you think I'm missing any!

A reasonable measure for whether someone is "established" is how many events they've previously been booked for. But where to draw the line? Someone calling their first is clearly new, but so probably is someone on their third? I decided to graph several (code):

threshold 2018 2019 2023 2024
1 10% 8% 9% 13%
2 16% 15% 11% 18%
3 21% 22% 15% 22%
4 24% 27% 20% 23%
5 28% 29% 22% 27%

Overall it looks to me like this was a real effect for 2023, but with 2024 it's going back to normal.

You can see I've left off the first two years: I don't want to count someone as "new" just because it's 2016 and that's the first year I have any data. One limitation with this approach is that someone who called a lot pre-2016 and then took a few years off will (briefly) show up as new in year they returned. Another is that someone who's been calling for years but doesn't take many gigs will show up as established, and be more likely to show up in the first few years.

These effects will be more pronounced at higher thresholds, because it's less likely someone called enough in 2016 and 2017 to pass the threshold, so I trust threshold=1 ("first time") a lot more than threshold=5 ("fifth time"). Even that is still not perfect: this categorization puts Dudley Laufman as a new caller in 2024, since it didn't see him in earlier years. Still, skimming the categorizations of callers, it looks pretty good to me.

Comment via: facebook, lesswrong, mastodon

Backyard Office

2024-04-18 21:00:00

In 2020 I renovated the small building in our backyard which had fallen into disrepair. It was zoned for use as a home office, and had electric but not plumbing. I wrote about how I was thinking about insulating it and comparing framing options but then apparently I never got around to writing up how I finished it!

I hired someone to replace the roof:

Doesn't look like I have a picture of the top, but it's rubber membrane.

I hired them to put in a window as well. If I'd realized how much space would be lost to casing I'd have asked the mason to make a larger window hole.

Plans for the walls and floor:

Covering the walls and floor in 2" foam:

Anna helped:

The floor is one layer of OSB, then one layer of plywood, screwed to each other but floating:

Vapor barrier around the top, and 2x3s the flat way to attach the drywall to. I used fiberglass batts to insulate the roof:

One more layer of foam, around everything.

Help from Lily:

Drywalling it all:

Casing the old windows. This was annoying since nothing was quite square.


A major thing I liked about this house project is that no one was depending on it being done at any specific time, so I could work on it when I had free time.

Now one of our tenants uses it as an office, and we rent it for $400/month (utilities included). The total cost (ignoring my time) was $17k, and utilities might be $500/y, so if we're able to rent it continuously the payback period is 4y.

It's nice to have more usable space!

Comment via: facebook, lesswrong, mastodon, mastodon

Spending Update 2024

2024-04-16 21:00:00

I'm generally a pretty big fan of transparency, and one way I try to promote this is writing up our finances every few years ( 2022, 2020, 2018, 2016, 2014). This is also useful to me: putting things into a form where others can understand it is pretty good for getting myself to really understand it!

This post uses the same approach as last year, which is almost the same as before then. Numbers are monthly, based on 2023 spending:

Here's a summary of our monthly spending as a table:

Category pre-tax post-tax total
Donations $0 $6,167 $6,167
Taxes $0 $3,400 $3,400
Housing $0 $2,793 $2,793
Childcare $0 $4,275 $4,275
Medical $244 $400 $644
Food $0 $732 $732
Other $0 $1,000 $1,000
Savings $3,750 -$6,000 -$2,250

Comparing to previous years and adjusting for inflation, still monthly:

2024 2022 2020 2018 2016
Donations $6,167 $35,870 $23,614 $14,750 $16,053
Savings -$2,250 $7,065 $9,277 $1,875 $1,974
Taxes $3,400 $15,217 $5,301 $5,188 $5,447
Housing $2,793 $4,022 $3,892 $3,438 $2,461
Childcare $4,275 $5,978 $3,313 $2,125 $4,566
Food $732 $748 $904 $938 $303
Medical $644 $773 $784 $933 $417
Other $1,000 $1,087 $602 $1,400 $388

Here's this as a chart:

The biggest changes with 2024 are:

This is the first time I've included inflation in one of these posts, through a combination of it having a larger effect than before and my previously being too lazy to include it.

When I write this post in 2026, what do I expect to be saying?

Comment via: facebook, lesswrong, mastodon

Four Local Gigs

2024-04-15 21:00:00

I haven't been playing in Boston much lately, but over the next month I'll be playing four times:

Comment via: facebook, lesswrong, mastodon

Clipboard Filtering

2024-04-14 21:00:00

Here's a pattern I find pretty useful:

pbpaste | some_command | pbcopy

For example:

The way this works is that pbpaste reads from the clipboard as plain text, the intermediate command(s) transform the text, and the pbcopy sends it back to the clipboard.

While these are the Mac commands it should be similar elsewhere. For example, on Linux I'd use xsel, though that does require paying attention to whether you want PRIMARY (xsel) or CLIPBOARD (xsel -b).

Comment via: facebook, lesswrong, mastodon

Text Posts from the Kids Group: 2020

2024-04-13 21:00:00

Another round of liberating kid posts from Facebook. For reference, in 2020 Lily turned 6 and Anna turned 4.

(Some of these were from me; some were from Julia. Ones saying "me" could mean either of us.)


We went to the movies, and brought our own popcorn. When I passed the popcorn to Lily during the movie she was indignant, saying that we weren't supposed to bring in our own food. She ate one piece, but then said it wasn't ok and wouldn't eat more.

When the movie ended, Lily wanted us to tell the people at the concession stand and apologize: "Tell them! *Tell* them." She started trying to bargain with Julia: "I'll give you a penny if you tell them. Two pennies! Three pennies, *Five* pennies!"

But then we were outside and she was excitedly pretending to be Elsa, running down the sidewalk without a coat.


I left for a trip on Tuesday afternoon, and beforehand Lily had asked me to give her one hour's notice before I left. I told her it would be about an hour from when she got home from school, but I forgot to give her warning at the actual one-hour mark. When I came up to read and cuddle with the kids 20 minutes before I left, she was angry that I hadn't given her enough notice. Then she went off and did something with paper, which I thought was sulking. I tried to persuade her to come sit on the couch with Anna and me and enjoy the time together, but she wouldn't.

Turns out she was making a picture and had wanted enough notice to finish it before I left. It is of her, Anna, and Jeff "so you won't forget us while you're gone." I assured her I will definitely not forget them, but that this was a very nice thing to be able to bring with me.


Anna: "I will buy a baby at the baby store when I am a grownup, and I will be a mama like you! And I will work at Google and have the same job as my dad."

Pretty sure the kids don't think I have a real job. To be fair Google has much better food.

This was the first I had heard of the baby store. We'll see how that pans out for her.


Me: Before you were born we thought about what to name you, and we thought Anna would be a good name. Do you think that's a good name?

Anna: No. I want to be named Bourbon.


Anna: We're not going outside when we get Lily.

Me: How are we going to pick up Lily from school without going outside?

Anna: You can order her.

Me: Order her?

Anna: You will order her on your phone.

Sorry, Amazon is not yet offering same-day delivery of kindergarteners from school.


Lily backstage watching her dad play BIDA: she grabbed handfuls of the air, saying "I want to put the sound in my pocket."


Lily: "repeat after me, 'I, Anna, won't do the terrible deed ever again'"


"Papa, I'm sleepy and want to sleep *now*. Can you use the potty for me?"


I let Anna try chewing gum for the first time. She knew she was supposed to just chew it and not swallow it. Her method was to make tiny dents in it with her teeth and barely put it in her mouth at all.


I'd been meaning to try the marshmallow test on the kids for a while, but today Lily described it at dinner. ("From my science podcast, of course.")

Lily's past the age of the children in the original studies, but Anna's well within the range. They both happily played for 15 minutes, didn't eat the candy, and got more candy at the end. Unanticipated bonus for the researcher: 15 minutes of the children playing quietly in separate rooms.


Lily requesting a bedtime song: I want a song about a leprechaun and a dog, and the leprechaun asks the dog to help get a pot of gold, but the dog tricks the leprechaun and runs away with the pot of gold.

Me: That's too complicated for me. It's after bedtime.

Lily: The leprechaun and the dog just get the pot of gold, and the dog takes it.

Me: [singing] Once there was a leprechaun and her name was Eliza....



Lily, wiggling her doll around: "Blip blip blip blip blip. My baby is writing on her baby blog. She has an invisible computer."

Me: What does Baby blog about?

Lily:"Mostly about her day with Ms. Dolphin who's her babysitter while I'm at school."


During morning toothbrushing: Lily starts to howl, and Anna is seen running from the scene of the crime.

Lily: She shut the door on my foot!!

Me, after finding Anna on the other end of the house: Anna, why do you think Lily is crying?

Anna: ...It's just a secret.

Me: It hurts when you shut the door on someone's foot.

Anna: I didn't do that ...I did something else mean.


Anna, drawing a picture of all of us: "Daddy, your face looks differenter than mine or Lily's or Mama's."


Anna: Papa, will you brush my teeth?

Me: first you brush your teeth, then I'll brush them

Anna: no, I won't brush my teeth!

Me: [sternly] Anna, if you don't brush your teeth, *I* will need to brush your teeth

Anna: ok, ok, I will brush my teeth [brushes teeth]


Today's episode of pretend play has included:

  • Lily somehow becoming pregnant and having a baby ("I see a foot - time to push!")
  • Lily explaining their family origin to Anna: "Let me tell you about our parents who died. They didn't love you as much as much as me. They didn't love you at all, and they threw you out a window and you were raised as an orphan."
  • A lot of fishing for pretend salmon and roasting them

Today's play episode: Lily falls into a "river" and is splashing and drowning on the living room floor. Anna is walking by helpfully carry a coiled rope in a basket, and she throws it to Lily and rescues her. After Lily is rescued and they've had a picnic, Lily makes her move:

Lily: I would be up for marrying you.

(Anna is busy with the rope)

Lily: I would like to marry you, you beautiful man.

Anna: I'm a woman.

Lily: Want to be teammates? Want to be soulmates?

Anna: No, I'm going to be a mommy. I need a daddy.

Lily: I'll marry you.

Anna: Ok!


There's a weird nostalgia in watching your child cut up the pajamas that you brought in your hospital bag when she was born. (They were in the ragbag, so fair game for cutting.) She especially liked cutting off the buttons.


Anna: I have a hat!

Anna: No! I have a hood!

Anna: Hat!

Anna: Hood!

Anna: Hat!

Anna: Hood!


Anna: Hat!

Anna: Hood!

Anna: who do you think I'm arguing with?

Me: Yourself?

Anna: Yes!

Anna: No!

Anna: Yes!

Anna: No!


"I want rice crispies with milk. I want milk in the bowl, and rice crispies in the milk"

Anna has had some practice asking me for things


Me: who's the other kid over there?

Lily: she got half of the M&Ms since it was her dad that paid


Anna is trying to get us all to switch to calling it "hanitizer"


Lily decided that tonight was when she wanted to thank Santa for the presents in December (despite our family having no pretense at Santa bringing the presents.) She left this cookie out for him, in a zip-loc, refusing the plate I suggested ("ants will get it because it will be out at night!") and instructing me: "After I go to bed, eat the cookie and leave a letter that says "Thank you for the cookie, I appreciate it. From Santa."

I have now done this, except I put the cookie back in the package.


This morning she delightedly found my letter, said "Thank you, mom" and thankfully wasn't mad when she asked what I had done with the cookie and I told her I hadn't eaten it.


Looking at pictures with Anna: "Look! That's me back when I was younger!"


(After a long silence at lunchtime)

Anna: "Mom, what IS air?"


At Anna's age I told my preschool teacher that I wasn't going to eat cucumber ever again, and I haven't.

Today Anna told me that she's never going to eat any food ever again.

Uh oh.


Anna: "I want to be a vampire."

It turns out she meant that she wanted me to unbuckle her helmet because she and Lily were playing vampires and "vampires don't wear helmets."


When Lily was ~two she couldn't get comfortable at bedtime. She kept complaining that her bed was too lumpy. I came in to settle her, and it turned out she had an acorn in her pocket.

The story came up at dinner tonight, and when I went to bed I found a little lump in the pocket of my pajamas: [acorn]


When I brought it up with Lily this morning she was super smiley


Lily: "Anna, I'll give you a choice: I can either pinch you, or I can steal toys from you"

Anna: "I guess... If I haveta... Steal my toys?"


The kids are playing a baby game with fake crying. Lily has done something to get Anna mad enough that she's really crying, but she hasn't stopped fake crying so now she's real-crying through her fake cries.


I just did the annual explanation that no, even though your great-grandparents were Jewish, Irv and Gloria did not personally escape from Egypt. Three thousand years is just not a timescale four-year-olds are equipped to think about.


Yesterday she told Erika she was sad. When Erika asked why, she said it was because of the plagues and how there are no people in Egypt anymore. Looks like we have some more clarification to do...


Lily: "hey Ruthie, is there anything you need glued forever?"


Why does Anna have Lily's dollar? "It's because I'm a magic chicken and we take people's money."


"Six are the days of creation,
Five are the books of the tourists"


Lily and Anna are playing Rapunzel. Lily, in the role of the imprisoning witch, has just promised to throw Anna "in a lake of lice, bears, tigers, and ticks" if she leaves the tower.

...I think a mashup of the 10 plagues and The Wizard of Oz, which we just watched.


Anna has started to respond to most things I say with "Is that a joke?"


Me: What should we do that's fun?

Anna: We could stick things to our legs!


Lily: "It's hard to say. I'm really sad. I don't know the words. I guess I'll just sing it out: [sings a story about why she's sad] Now do you see why it makes me so sad?"

Anna: now I'm going to sing a story about Elsa and Anna!


Anna, alone in the hallway: "Anna, stop talking to yourself."


Anna: "I have magic powers that mean I don't have to go to time out any more. I only have to do it once a week!"

Lily: "This must be your weekly time then"

Anna: "No! I'll do my powers!" [Stares at me intently]


Me, my fourth time of telling the kids to get ready for nap: It's time to get ready for nap. Go find a bathroom to use.

Lily: Wait, Mom! Me and Anna have something to say.

Me: Okay?

Lily: (singing) We have different preferences!


Lily: "You might think princesses just get to laugh and play all the time. But that's wrong. Power princesses have responsibilities. Evil has struck again. Pack what you need for a few days. Bring food and water."


Today's naptime delay tactic involved these deep questions from Anna:

"What did they do to fix you after parts came off of you and Papa?" (this turned out to be because she knows making a baby involves part of a mama's body and part of a papa's body, but didn't realize it's not an amputation)

"What will be here after we are here?....I think maybe more dinosaurs?" and

"Does God really exist?"


Lily: "I am doing the most mud, I am taking this seriously!"

I never knew anyone to be so Type A about mud


Me: if you got up from the table, and then half the other people got up, how many people would still be at the table?

Lily: I think someone might need to be cut in half, and I don't suggest doing that. Because if you cut someone *all* the way in half they would probably die.

Anna: you're only allowed to cut someone in half if you're a doctor and they're having a baby and the baby is stuck.

Lily: please don't talk about cutting people open because it's making me start to cry.

Anna: can we talk about chocolate? Because that would make you hungry!


Anna: It's warm when Betsy touches me with her tail. It feels like drinking hot chocolate. And I really like the taste of hot chocolate.


Anna, yesterday: "If I get married, one of the eggs inside me could turn into a curled-up baby and then it will come out and I will be a mama."

Anna, at breakfast: "Mama, you wanted to have a baby and you and papa got close and you stood still and the thing happened so after a few days, an egg turned into a curled-up baby in your belly, and when the baby came out it was Lily."

We've told her some parts of how this works, and obviously she's a little mistaken about some of the details, but I'm surprised at how accurately she's pieced it together. She also appalled Lily by telling her how a baby comes out. Maybe the Hemingway side of the family with its interest in midwifery is coming out.


Sometimes Lily calls me "Jeffo", and then I'll call her "Lilo". But when I call Anna "Grub" she doesn't appreciate it.


Lily, at bedtime, "Before bed I want to pray. How do you pray to God?" We discussed just saying what's on your mind, or reciting a pre-written prayer. She wanted to do the second, so I taught her "Father we thank thee for the night" which I used to recite at bedtime as a child. She was not interested in doing this from bed, insisting on getting up and kneeling with clasped hands.

Then she explained, "I believe in everything about God. It's different when you pray to Zeus or to Aphrodite. For Zeus you do like this" [kneels and clasps hands] "and for Aphrodite it's more like this" [stands up in bed and bows.]

Jeff came in to say goodnight. "I was just praying to Zeus," she explained.


Lily leads Anna in to the room, with Anna pretending to be a pigeon.

Lily: I found this pigeon. Can I keep her?

Me: Sure, I guess.

Lily: I even got her a wildlife tiara.

Me: What's a wildlife tiara?

Lily: Well, you know we all have tiaras. This is a tiara for wildlife. Like pigeons.

Anna: Coo, coo!


Lily: "I'm not going to be your sister anymore if you don't pretend you like my hair"


Anna has started introducing her "facts" with "I read a book that said..." as in tonight's "I read a book that said danger moles get on you when they're angry, and if you talk they get scared and hide in your belly button."

I don't know what danger moles are, but I hope they don't get angry.


This morning at breakfast Lily informed me that she had been praying to the sun god for the end of coronavirus, and that the string apparatus in her room holding up her toy giraffe wearing pajamas was part of this effort (because you wear pajamas when you wake up, as the sun is rising). "I did it today because it's SUNday, get it?"

I was definitely at least 12 before my friends and I invented a religion.


Anna: I found a rainbrella tree, and I picked a rainbrella to keep my daughter from getting sunburned.

Lily: did you pick a ripe unbrella?

Anna: [as if it's obvious] yeah


Nothing puts one at ease like "I want to put on my own toothpaste. Don't look at how much I'm putting on."


My favorite Lily joke recently:

Q: Why didn't Fred eat the stick? Fred is a dog with a tongue made of lava that never stops growing.

A: Because he already ate it!


Lily approached me as I was reading.

Lily: Excuse me, miss farmer, I know this is strange, but I'm the queen's horse. I'm here to bring you to the palace. The queen wants you to be the new princess.

Anna: No, the queen.

Lily: Princess.

Anna: Queen!

Lily: Princess or nothing.

Anna: [stamping foot] Queen!!

Lily: Ok, fine, queen. Let's go to the palace.

Usually Lily is better at negotiation than this.


Lily: "luckily for me I have *at least* ten years before I die"


We've been playing a lot of "One Night Ultimate Werewolf," which involves trying to trick each other. Usually the kids are pretty good at not letting on when they have the werewolf card, but tonight Lily's developed a habit of howling that gives her away.

Today she began biting people, which was even more of a giveaway


Jeff: "Anna, the last time you had your bran flakes and milk separately you didn't eat very much. How sure are you that that's how you want them?"

Anna: "20% sure"

Jeff: "That's not very much!"

Anna: "60% sure!"


Anna has Jeff's mandolin tuner. "I only use my cell phone for calling people, or writing things, or sending Polagrams. Polagrams are when you call people you don't know. You don't know whose kid they are or whose mama or papa they are."

Jeff: "They're called "polargrams" because you're cold calling"


Anna: "I say prayers because I think when Jesus was a kid they celebrated Chanukah."

Well, yes, but...


Lily, dictating into this text box: "So, the thing is, today I was like, my calzone has too much cheese can I please have some pure mozzarella?"

(She did in fact tell me she didn't want her slice of calzone and wanted mozzarella instead, and, when I asked why she didn't want her calzone, she said it was too cheesy)


Lily is lying on the sofa claiming to be Jeff.

Anna is arguing against her. "No, there's things different! Your nose is smaller than my Papa's."


Anna: You have two sets of eyes.

Me: Like two eyes? Or like four eyes, two sets of two?

Anna: Four eyes.

Me: I only see two eyes on each of us. Where are the others?

Anna: They hide when you're awake. They go somewhere else in your body.

Me: Where?

Anna: Near your hips.

Me: What about when you're not awake?

Anna: Then they get up and put their clothes on and go outside.


We were reading a book about space. Lily is worried that Anna will become an astronaut and fall into a black hole or have some other space accident. Lily is trying to get Anna to promise not to become an astronaut, and Anna is refusing to commit to this. I'm trying in vain to point out that we have 21 years until Anna is as old as the youngest person to go to space.


Anna: Can I have more cherries?

Jeff: No, because we're starting dinner.

Anna: That's just an old way of pronouncing, "You can have more cherries."


Lily: "Anna, never eat wax"

Anna: "If I see a wack I'll be careful not to eat it"


Lily has been interested in bedtime prayers for a while, and has been saying the vaguely Christian one she asked me to teach her. This week she told me that since she wants to be Christian and Jewish, so she wanted a Jewish prayer as well. I taught her the Shema. When she wanted verification that this was a bedtime prayer, I told her Jewish people traditionally say it when going to bed and when waking up. Now she's upset because she can't remember the Hebrew and she wants to say it in the morning when she wakes up, but nobody is there to recite it with her when she wakes up. Also she wants to read the Bible and do everything it says. I told her I did that when I was 11 and she'd better wait until she can read it herself, because I'm not facilitating that project.


Anna: "I'm just a normal, everyday kid. Because I'm not royalty. Or a grown-up."


Lily has gotten her baby dressed in fancy clothes. "It's her wedding day."

Me: "She's awfully young to get married."

"She's marrying another baby. . . Baby's actually marrying Lily Bear. He would normally eat any baby he saw, but he's not going to eat her. He only does that when there are a lot of people. For example at Christmas."


Anna was supposed to be getting ready for bed but I found her in her room piling up stuffed animals in a basket. "Don't look at me. I definitely don't have a stash of toilet paper."


Anna: I am excited about eating a dead baby lamb


Lily heard about the marshmallow test on her podcast, and has started self administering a version with her dessert.


Things that Lily was upset about this weekend:

  • climate change
  • rhinoceroses being hunted for their horns
  • "I heard when you're a teenager you get stuff in your face. I don't want to get stuff on my face!"

These days, Anna has two basic moods:
1. chipper

2. AAAAGH I hate you! You're the worst sister in the world!
I don't want you in this house!
I don't want to live in this house!
I don't want blue to be my favorite color anymore!
I will never come upstairs!
I don't want to live in this world! I want to live in space!
I hate meals! I will never eat lunch!


Anna tried a good trick on me tonight. I told her she could have two more honeysuckle flowers and then we were going home. I gave her one and she counted "Zero..." I gave her the next one and she counted "One..." Good try, but that's still two flowers no matter where on the number line you start.


When Lily has been afraid of things, I have sometimes offered to bet. For example, she thought there would be bees at the park and I was pretty sure there wouldn't be, so I offered to pay her a penny if there were bees, and she would pay me a penny if there were not.

Recently, Lily didn't want to go to the ocean because she was afraid that sharks would eat her up. I offered to bet that they wouldn't, and she called me on it. "Papa, if sharks eat me up you won't have to pay any money, and if they don't eat me up then I will have to pay you money."


Anna, very mad: "I don't want to have to explain the rules of the game to you, I want you to know what you have to do without me having to tell you!"


Anna: After nap, we're going to play a game. The winner is whoever tickles me the most. I bet you'll win, Mom!


Anna, after being told something is not allowed: "It's allowed for giants. And I'm a giant. A baby giant. Baby Giants talk just like this, and they are exactly this size, and they look like this!"


Lily: [holds up Contact Specialist] "Papa, what does this one do again?"


"Mama, can I tell you something?"

"Is it what you want for bedtime snack?"

"Well, it *is* on the bedtime snack topic..."


Competition this morning:

"I'm taking a bath after you."

"I'm taking twenty hundred baths."

"I'm taking twenty million baths!"

"I'm taking twenty billion baths."

"I'm taking twenty trillion baths."

"I'm taking twenty tuba market Lily Anna window dollhouse lightbulb baths."

"That's not a number."

"Whoever says it first winsI'mtakingabath!"

"Whoever says it last wins."



In the end I believe they took one bath each.


Anna at the park to another kid: how old are you?

Other kid: I'm ten I think? Mommy, how many am I?

Mother: you're three, sweetie


Anna, listening to Lily's podcast: What's that person's name?

Lily: I don't know.

Anna: Maybe Izeria!

Me: What?

Anna: Izeria! I know a lot about science.


Anna seems to have passed through her rage stage ("I don't want to live in this house" etc) and into an appreciative stage:

The ever-welcome "You are the best mama in the world"

The more general "Everyone in my family is the best family in the world"

And the sweet but tautological "All the people in the world are the best people in the world."


"Anna, are you pulling the feathers out of that pillow?"

"Only some of them"


Anna: "I could fit 20 million Earths inside my eyeballs"


We were reading a book where a character digs up a bar of gold. I asked Lily what she'd do if she found a bar of gold.

"If Annie was real, I'd buy her a new Winkie doll. [character in the book whose doll got burnt up]. I'd keep a dollar. And the rest I'd donate to homeless people. Maybe if they had enough money, they could find a house they could afford.

...If Annie wasn't alive or if she wasn't real, I'd donate half the money to malaria nets and homeless people. And I'd keep ten dollars, five for me and five for Anna. That's fair, isn't it? And the rest I'd give to you guys for stuff like groceries and the house loan. But it's only for stuff you need, like if one of us gets sick you would buy us medicine. But diet coke and mentos explosions? No."

Good to know what makes the cut.


Lily ran an election for president of her dolls and stuffed animals, and her Elsa barbie won in a landslide (possibly seen as a more experienced candidate due to previously serving as Queen of Arandelle.) Elsa went missing this week (she was later located in a laundry basket) so Lily held another election last night. At bedtime she was telling me about the downfall of Dolphiny the stuffed dolphin.

"Ten dolphins - including Dolphiny! - owned half the money in the world."

"How did they get that much money?"


"I can see why people wouldn't want to vote for Dolphiny, then."

Monkey is now serving as president, although I'm not sure what the plan is now that Elsa has been found.


Lily: "I want to join the navy."

Me: "... you have to be 18 to join the navy."

Lily: "I want to join the navy when I'm 18, then."

Me: "What do you know about the navy?"

Lily: "You get a sword."


Lily: "Jeffy, you should let me play more games on my tablet. They did a study, and kids who got more screen time were more patient. They did the marshmallow test, and kids who got more screen time were better at waiting."


Lily decided this afternoon would be "Fun Friday", laid out a selection of board games, asked me to make a cake, and hid behind a sofa so she could jump out and yell "surprise!" when Anna came down from nap. Anna has the post-nap grumps and has announced "I hate cake. Cake is the worst thing ever." "I only want to have Fun Friday in my room." "I hate cake, and babies. I hate everything."


Reasons we have not left the house yet, serially:

  • Anna doesn't want to wear a helmet because then she has to take off her hood
  • Anna forgot her mask
  • Kids decide they want mittens
  • One of them decides they want snow pants
  • Another realizes they haven't used the potty yet
  • The other one decides they also want snow pants

Time elapsed so far: half an hour

Luckily we don't really have much of a deadline!


We are making spider decorations for Halloween.

Anna: A big spider always needs a baby spider to be proper.

Me: ...to be proper?

Anna: Yeah. Duh.

She has many times implied the "duh" in her answers to me, but I think this is the first time she's said it out loud.


Lily: "I only want to brush my grown-up teeth"


Lily has learned the concept of a cliffhanger, so now a lot of nights when I announce it's time for me to stop reading aloud she argues we are at a cliffhanger in the story and I can't possibly stop now.


Lily went trick-or-treating barefoot in the snow because she didn't have purple shoes that matched her costume. I brought her shoes just in case. After about a block she stopped and put them on. "This feels so much better!"


Lily, to Anna: "I will always be your friend, no matter if you can fly or not"


Lily told me that Elsa retired as president of her stuffed animals, so Thomas the giraffe and Butterbear are having an election to be her successor. I asked who she thought would win.

"Thomas, because he will give all the stuffies free ice cream every Wednesday."

"How is he going to pay for the ice cream?"

"It's *free* ice cream."

We discussed the concept of "there ain't no such thing as a free ice cream." It turns out Thomas is very wealthy and can reimburse the ice cream truck owners, and also the free ice cream will only be in the summertime.


Both kids have gotten into dictating books that I transcribe and they illustrated. Here's "Dinosaurs" by Anna:

"Long, long ago there were dinosaurs. That was before any people could be born. Dinosaurs have their eggs in clutches.

Different people started to be born. They were a strange animal. Then they got less strange. Then they turned into real people. Now back to the dinosaurs.

No one really knows why the dinosaurs were extinct. I don't think that any dinosaurs were pink or blue.

Sometimes dinosaurs could grow faster than other dinosaurs did. First dinosaurs are babies, then kids, then adults.

Some dinosaurs accidentally died, like in floods. Or they died by other dinosaurs eating them. Some dinosaurs died because they didn't have enough food.

Sometimes, once, dinosaurs died from a big rock coming from space to the earth that was called an asteroid."


Lily braided some pipe cleaners, and sold them to Anna for $2. "You're lucky Anna, this is a special sister discount."


Lily's theory on babies:

"Maybe you could get a baby from the baby store. They have 170 babies and they ask you, "White, black, or Latina?" And you'd say white. And they'd ask "what color eyes?" and you'd say blue. They'd ask "what color hair?" and you'd say "Blond but it will turn brown later."

I asked where the store gets the babies.

"From space in the Googoo 220. It brings them to the baby shelter. And the store gets them from the baby shelter."

I have many, many followup questions but of course she always brings up this kind of material right before bed


Lily: I need some red pants.

Me: Oh?

Lily: And some black boots. And a Santa mask.


Lily dictated a Christmas wishlist with about 30 items tonight. Later she marked the ones she especially wanted. "I picked the ones that were most important to me, and the ones I thought I would use the most. Because I think I would use a remote-control robot and a remote-control plane a lot."

I notice "drum set" is also marked - not sure whether that's due to importance or expected frequency of use.


Anna: "I'm going to pick a book. Looking, looking. Here it is, the one I want, the one you hate!"

Me: "Anna, did you just pick out a book because Lily hates it?"

Anna: "No, I picked it because I like it. It does give Lily scary dreams."


Anna, appearing in the kitchen doorway with a dress up dress:

"Can you give me braids?

Also, you guys are becoming kings and queens! Because I am becoming a princess.

Look how long I can stand on one leg!"


Lily and Anna are in the bath arranging a vacation for their whale toy. Lily is coaching Anna on how to answer for the whale:

"Say that you have a two week vacation coming up from your job as an artist, so you can go on this kayak vacation. Do you have any vacation coming up?"

Anna, as the whale: "Yes, I have two weeks."

Lily: "Great, you can go on vacation in this kayak!"

Anna: "But I have children to take care of."

Lily: "They can go in the kayak too!"

Must be a large kayak.


"No echolocation at dinner"


One of our housemates moved out and Jeff is setting up his work desk in the now-available room. Lily is arguing that instead the room should become her science lab, because she asked for a science kit for Christmas. We are arguing that the kinds of science you do at age 6 can typically be done at the dining room table or in the basement rather than requiring a lab. Lily is extremely sure that she should receive a science kit that you need a lab for.


Lily: "If all you got for Christmas was one thing and you had to choose, which would you pick: a rattle or a rattlesnake?"

Comment via: facebook, lesswrong, mastodon

Interference Issues

2024-04-11 21:00:00

I've been working on building an electronic harp mandolin ( previously, previously, previously). I got it all hooked up, but unfortunately I'm running into pretty bad interference, and need to redesign it.

Going back a bit, I had designed a circuit for testing and breadboarded it. It worked very well, and I wrote a bunch of code to interpret the pluck signals. [1] Here's a video of the breadboard version, showing both velocity sensitivity and direction detection:

I did a bit of soldering and got the full version hooked up:

Unfortunately I got very large amounts of interference. Here are all 18 pins, though only 13 have piezos attached:

It's even worse if move my hand close, and terrible if I touch one of the teeth:

Note the change in scale:

This looks like powerline interference, sinusoidal at ~60Hz. And then even if I don't touch it or do anything, I'll see spikes, which I think are probably other radio interference?

I made some attempts to fix this in software, though nothing super sophisticated. One option is to figure that mains interference affects all the pins equally and is close to synchronized, so we can just subtract the average across all pins from each pin. This works pretty well, except we still see those spikes:

I guess those hit different lines differently, depending on which path each takes through my ball of wires?

A different idea was to compute the correlations between each pair of pins, and use the two most similar pins to denoise each pin (you can't use just one pin, because then you can't tell which was plucked). This worked better for some pins than others, and didn't resolve the spikes:

Possibly I could do some sort of low-pass filtering to remove these spikes, but I'm guessing this is better to fix in hardware?

I think the key question is, why did I get good results with the breadboard prototype, but not the full version? I can think of a few things I've changed:

All of these sound not ideal, but I don't know enough electrical engineering to figure out what to prioritize, or what to test. After a bit of reading, here's what I think I should do:

  1. Instead of bare signal wires and a shared black wire, switch each piezeo to shielded cable.

  2. Put the board inside a metal box (or a cardboard box wrapped in tinfoil in testing).

  3. Redesign the board so the piezo ground is true ground, and use an op-amp to bias the output up.

  4. Possibly: remake the teeth so that the pizeo ground is electrically isolated from the metal of the tooth.

  5. Possibly redesign the board to use a star topology for grounding, where the pizeo grounds only come together at a single point, avoiding ground ground loops.

I think I'll probably start with the first two, since that doesn't require redoing the board. But I think that probably won't be enough, since I can't ground the cable shields: the current design has them at +1.65v.

Other suggestions?

[1] The main thing that made it tricky is that I wanted different notes plucking down vs up ("bisonoric"). Here are the shapes of some of these waveforms, taken from the breadboard version:

Some observations:

I initially coded a classifier that did the simplest thing that could possibly work: wait for the input to exceed a threshold, and then take the most extreme value you saw over the next N samples. If that's negative classify it as an upstroke, positive classify as a downstroke.

For how simple this is it works very well: it gets more than 95% of the plucks correct. But that's not good enough for a musical instrument. If I'm going to play wrong notes I want it to be because I made the wrong movement, not because I got unlucky.

This weekend I flew to CA to play a dance weekend and this seemed like a fun problem for the plane, now that I have an ergonomic stacked laptop monitor. I saved a bunch of examples of up and down plucks, and tried to write a classifier.

It seemed to me that there were two scenarios: either there was only the sharp peak, or there was a sharp peak proceeded by a broad peak. And if the broad peak was present, it was a completely reliable indicator of direction. So I could add "broad peak detection" to my algorithm from before, and if it said it found one I could use that to decide on the direction, falling back to simple magnitude if it couldn't.

The broad peak detector is quite simple: count how many samples the signal goes without falling below a gate, and that's the width of the peak. If the width is more than a threshold, you've seen a broad peak. This worked very well!

Comment via: facebook, lesswrong, mastodon

Pandemic Identification Simulator

2024-04-08 21:00:00

At my day job I work on identifying potential pandemics sooner, so we have more time to respond. I recently made a simulator which pulls a lot of things I've been thinking about recently into a single estimate. You can read more on the NAO blog or give the simulator a try.

Comment via: facebook, lesswrong, the EA Forum, mastodon

Trying to Do More Good

2024-04-04 21:00:00

This is an edited transcript of a talk I gave last week at Commonwealth School, a high school in Boston that I attended from 2000 to 2004. I'm typing from memory, so in places it may be closer to what I intended to say than what I actually said.

It's been twenty years since I was a student here, but the place feels very similar. It's good to be back!

I want to start with a conversation, sometime around 2003. I was in the computer lab:

That's not actually the computer lab. Would you believe I looked through four yearbooks and didn't find a single picture of the computer lab?

Anyway, I was talking to a classmate, in front of some computers that looked a lot like that one, and we were having some sort of political or moral argument. They pointed out that what I was arguing people should do didn't match how I lived, or what I was planning to do with my life. This felt like a very dirty trick! They were cheating! Debate is an abstract combat of ideas, it's not supposed to connect to real life, is it?

I spent the next four years not thinking about this tension very much, and when I did I felt uneasy and moved on quickly. But then I met my now-wife, who had come to a pretty different conclusion. She pushed me pretty hard: how could I live a life that was so far from my ideals? How could I justify keeping so much for ourselves when some have so little?

I started thinking: what if I really took this seriously? I talked to others online, and the ideas bouncing around this nascent community coalesced into the effective altruism movement.

While in the movement there were and continue to be lots of different ideas about what good is and how to do more good, I think at the core that ties this group together is the idea of comparing different options and taking optimization seriously.

Over the years I've taken a lot of different approaches to putting effective altruism into practice. Each time I've decided what to do, I've had two main questions:

Initially there was very little money, including for projects that I thought were extremely valuable. Perhaps I could earn money and fund these projects?

We called this "earning to give" which is not a new idea. Sometime around 1750, John Wesley, the founder of Methodism, advised his followers to:

This is somewhat archaic language, but if you read his full sermon, he's exhorting people to earn as much as they can, avoid spending it on unnecessary things so they have as much left over as possible, and then spend that excess to help others.

I decided to start there. I would earn money, and donate half of what I earned. I did not actually succeed at this, at least at first: in 2009, working my first job out of college, I had not understood how taxes worked and failed to budget for them properly. Over the years, however, as my income rose and I got better at budgeting, 50% worked well as a target.

In deciding where to give, one of my main sources was GiveWell's recommendations. This is an organization that evaluates charities on their impact: how will the world be different if your money goes here vs there? They compared many options for making people better off: bednets, textbooks, deworming, clean water, etc. These are all good things to do, but some are much more valuable than others. Because we don't have the ability to give every approach all the money it needs, we need to triage and prioritize.

I spent the next few years earning to give, 2009-2017, and I liked my work a lot. I was learning how to be a software engineer, how the corporate world worked, how to get things done. But I was also increasingly wondering: were there better things I could be doing with my time?

In 2017 I was talking to a friend, Ben Kuhn ('08), who worked at Wave. This was a company founded by some people I knew in the EA movement, trying to improve the handling of remittances. The idea is people come from poor countries to rich countries, work, and then send money home. Unfortunately, they would lose quite a bit to fees. If this process could be automated, you could make a profit charging much lower fees, and so make a bunch of money while also increasing how much money was available for poor families. Wave would accept payments from American debit cards, and deposit the money into mobile money accounts and Kenya, Uganda, and Tanzania.

But what is mobile money? In 2007, Kenya got M-Pesa. This let people send each other money with their phones. Like Venmo, but older, and even with cheap "dumbphones". It was really valuable economically: Suri and Jack (2016) looked at the impact in Kenya, treating where agents happened to open as a natural experiment, and people were much better off.

Ben asked if I wanted to work with him to help build a mobile money system in Ethiopia. I wouldn't need to move there, I could program remotely. This seemed like a really valuable thing to do, and I decided to quit my job at Google and join them.

I ended up liking it a lot, though not the remote aspect. I got to write software for low-end phones and satellite connections, and experience a very different work environment. Unfortunately, after I'd only been there a few months our Ethiopian effort failed, and I was laid off. I do think it was worth trying, but it didn't pan out for me. (The company has since been successful in Senegal and elsewhere.)

I looked at a lot of different options for what I could do next. One that seemed pretty valuable was government. Governments control the flows of large amounts of money, and have even larger influence through their policies. It was election season in Somerville, and I decided to try running for city council. Over the course of the next 3 days I learned something important: this was not work I enjoyed. I spent a lot of time talking to potential constituents in the process of gathering signatures to get on the ballot, and I hadn't previously really understood how so many of my neighbors (that I like a lot!) had very different priorities than I did. They would be telling me about something that was a problem for them in the community, and I would just be thinking: "OK, but this is so much less important than the housing crisis. Can we talk about zoning?" But of course I couldn't say that; a good representative pays attention to what's important to everyone. Still: not for me.

Another thing I tried was an independent research project to evaluate risk from artificial intelligence. I knew some people through the effective altruism movement who are quite concerned that AI systems becoming more capable and powerful could lead to major problems. But then when I talked to AI researchers I knew through school, some of them working on state of the art models at places like Google Brain and DeepMind, they thought these concerns were science fiction speculation. Perhaps if I spent a while talking to both groups I could understand why they disagreed, make up my own mind, and help other people understand the conflict?

I spent 2 months interviewing a bunch of different people, including Dario Amodei, now the CEO of Anthropic, who apparently had more time back then. I wrote up conversation notes for many of these interviews, which I think were helpful to others, but I wasn't able to make much progress on the core disagreements.

I also learned something else: I really didn't like this work. While I liked the interviews themselves, and writing up the notes, overall, the process was just too lonely, with too much time by myself in a room reading things.

Another thing I looked into, though not very deeply, was biological risk. I had read arguments that we should be more concerned about pandemics, and it really is pretty worrying just how vulnerable people are. I remember how when if you put a CD into a computer it used to be that the computer would just start running whatever program the CD said to run. We pretty quickly realized this was a bad idea and stopped making computers do that, but this is essentially what happens when you breathe in a virus: your system starts following those external instructions. But at the time, in my brief looking, there didn't seem to be anything that was a good fit for my skills.

At this point I'd spent a few months thinking about a bunch of different things I could do, tried some of them, didn't really like them, and was getting a bit burnt out on the process. I wasn't finding anything that was a good fit: I wanted to be working in person, in Boston, on something technical. It seemed like earning to give was my only good option. I was somewhat sad about this outcome, since with more money available for the things I thought most needed funding, it seemed like my donations would not be doing as much good as they had been, but it's still seemed like I could be doing a lot of good this way and I knew it was a good fit for me.

In late 2017 I rejoined Google, and resumed earning to give. I was earning more money now, because I was more senior, and still giving 50%. I was also still learning a lot, but different things now. I learned how to make progress on efforts that cut across the company, leading without authority. I spun up in a new domain, ads this time, and got a good enough understanding of the technology that I could see ways to solve old problems. I became a manager, and benefited from some pretty good training, resources, and mentorship there. I was happy, productive, and excited about what my money was able to fund.

Still, I was pretty sure that if there was a way to apply my skills directly, on a project that was a good fit for me in terms of what I needed from a work environment, that would probably be a lot more valuable. In spring 2022 I was talking to a friend at 80,000 Hours, an EA career advice group, and they suggested I look into biosecurity.

I was quite concerned about biorisk, and unlike 5 years earlier they're now were projects where it seemed like my skills were pretty relevant. And it's a good field for in person work if you want to be in Boston!

But why is biorisk concerning? One way to think of it is that there's a big red button. If you press it, the world ends. Now I know none of you would press it, but if you stuck a button like that in the middle of a busy public place, probably someone would. Right now there are probably a few thousand people in the world who, if they really set their mind to, it, could apply their biotech skills to creating something globally catastrophic. As bio gets more accessible (yay!) more people are in a position to press this big red button (uh...) We need a range of new defenses, so we are less biologically vulnerable.

I talked to some people who were starting a new organization, the Nucleic Acid Observatory, that aimed to cover one particular vulnerability. There are two main kinds of pandemic that could be especially bad:

This is the core problem the NAO has been trying to solve: how can we detect a stealth pathogen? I decided to join. So what do I actually do now?

Technologically, we have a newly affordable tool that is potentially a really good fit for this detection problem. It's genetic sequencing, which lets you learn which nucleic acid sequences are in some biological sample. Nucleic acids are "A", "C", "T", "G", the genetic code that says how to make humans and all these other living things. Which includes viruses and bacteria. Every organism has its own genetic code, and you can read it with a sequencing machine.

You've probably seen the Biobot numbers for how much covid there is in the Boston wastewater? That's a great system, but the tool they are using, qPCR, depends on knowing exactly what to look for. What's really valuable with sequencing is that you don't need to decide in advance what to look for. You can pull it all in, and then do your work in the computer.

So just like with Biobot we can start with a sample of wastewater, but instead of qPCR we sequence it. This gives us many observations of nucleic acid sequences, representing the vast variety of different things present in the wastewater. One thing we do with this look for human viruses that seem different than you'd expect. Perhaps a natural mutation, perhaps bioengineered, but not a tidy match for the known genetic code of the virus. So this is what I'm doing now: trying to build out an early detection system for engineered stealth pandemics.

To wrap up, I was thinking it might be helpful to look back at a timeline of my different approaches. I'm going to use donations on the y-axis, not because donations are all that matters, but because they illustrate what I've been doing altruistically over this time. This is our family's donations on our combined income, though over most of this period a large majority of the money came from my earning to give because my wife has been doing lower-paying non-profit work:

You can see how as I became more senior as a programmer. I was able to earn quite a bit more, and donate quite a bit more. Then you can see a dip in 2017 when I took a pay cut to work at Wave, and then try to a few different things that didn't end up being a good fit for me before going back into earning to give. In 2022, and especially 2023, you can again see a large drop off as I joined a non-profit halfway through 2022. I'm still giving 50%, though it's now 50% of a much smaller income.

I'm not actually sure it makes sense for me to still be donating half, since the money that goes to pay my salary is donated and maybe I should just take an even lower salary, but I've stuck with it at least for now.

So over the years I've tried to turn my beliefs into practice a few different ways:

This is one specific path, where I've looked at my options, compared them with my skills and interests, and looked at what is a good fit for me. Other people have ended up in different places, and I think that's really good; I'm glad people in the EA movement are pursuing a wide range of approaches!

I'll stop here. Thank you very much! Questions?

[Note: some of these were in the main Q&A, others were when a group of students came up to me with more questions after, and I mostly don't remember which is which. I also don't recall the order of questions and may have forgotten some. And even more than above these responses are going to be influenced by what I'd say now since I remember the questions better than my answers.]

Q: How do you think about art and music? Are you saying people who want to make the world better shouldn't go into artistic careers?

Art and music clearly bring a lot of joy to a lot of people, and a world without them would be much worse. On the other hand, I think this is somewhere it's helpful to look on the margin: what is the benefit of an additional person going into art or music? What is the benefit of that person going into reducing global poverty, harm to animals, or global catastrophic risk? So many people are eager to get into art and music that we're far from a world in which we suffer from too few options here.

Q: How do you think about careers that cause harm? If you go into earning to give, how do you compare the harms of the work you are doing to the benefits you can have through donation?

First, if you are doing enough harm through your career that even considering the value of your donations, you are causing harm on balance, that's clearly not a good choice. Don't steal people's crypto savings to donate! Figuring out whether this is the case is really hard, and it's even harder because there's a thing that happens where we tend to overestimate the harms of careers, downstream from news prefering to cover the negative aspects of things. A clothing manufacturer polluting or paying people poorly makes the news, but stories about the pollution from what it replaced, what their employees would have been doing otherwise, or the diffuse benefit of somewhat cheaper clothing don't come up. And if it would be ok for someone to work some job and not donate then it's clearly better if they work it and do donate. But looking into the potential harms of your work is an important consideration in earning to give.

Q: What were the specific donation options you saw when you were initially earning to give that were less attractive in 2017?

When I started earning to give, as I said earlier, there was a lot less money for things I thought were really valuable. One of those was giving career advice to people who wanted to do good with their career in a really effective way. I talked earlier about 80,000 Hours, and in 2012 when I first donated to them this made a significant difference to the amount of money they had available. I still think they're doing great work and funding them is valuable, but by 2017 this was clear to a lot of people and they needed my money less.

Q: Why don't effective altruists prioritize giving locally? When I've talked to EAs in the past, they haven't been very receptive to this idea. How can I convince them how important it is?

When EAs work on reducing poverty, the general question is, where can you do the most to improve people's lives for a given amount of funding or effort? In rich countries we have much more extensive social services than in poorer countries, and while things are far from perfect the easy cheap options have already been put in place. A strategy of helping the people physically close to you means that the people who happen to live near rich people get much more help.

If you think EAs are going about this wrong, and you see opportunities to help people in rich countries more cost effectively than in poor countries, I'd encourage you to write up your thoughts and consider posting them on the EA Forum. The community relies heavily on written communication, and I at least find it much easier to sort out a detailed debate if it's in text.

Q: What do you think about asteroid mining?

Some people think this is a good way to acquire valuable resources, other people think it will be a waste of money. I'm happy for the people who think it will be profitable to fund it, and if they're right they'll make a lot of money.

Q: Do you know [specific contra dancer]


Q: If you are interested in effective altruism, is there anything you would recommend doing differently in college? Or is this something you would suggest people think about after graduating?

My main advice for college is pretty general, and mostly doesn't depend on whether you're interested in EA: when you are deciding what to study, think about what careers this might lead to and look into whether you'd like them. This may sound obvious, but at least when I was in college and picking classes, this wasn't something I thought about or remember people discussing. Instead, I took linguistics and computer science because they seemed fun. With linguistics this didn't work out too well: while I like undergraduate linguistics I'm much less interested in the kinds of work people do professionally in the field. On the other hand, with computer science, I was very lucky: I graduated with extremely marketable experience at the beginning of a unprecedented demand for software engineers, and I like the work a lot. Of course AI and other changes make seeing into the future this way quite difficult, but I think it's better to try than not!

Comment via: facebook, lesswrong, the EA Forum, mastodon

BIDA Election Thoughts

2024-04-02 21:00:00

At this Sunday's dance BIDA will be holding its annual meeting, which means at the break there will paper ballots for voting on two things:

Harris wrote up a blog post with a sample ballot and candidate statements. Possibly I should have expected this from our unprecedented recent attendance, but this is the most people we've ever had running, by a large margin.

I'm not making any endorsements for the election: I've enjoyed working with the people who are running for re-election, and I'd be happy working with any of the people running to join. I'm glad to see this level of enthusiasm for helping make this all-volunteer organization happen!

On the bylaw changes, I think all three would be good. I think the case for (C), switching to standard approval voting, is by far the strongest: there's no reason to limit how many people you can vote for. The cases for (A) and (B) are also pretty good: (A) avoids asking dancers to fill out ballots which don't do anything, which happened in 2022, and (B) handles a case where the board is functioning well, has more than seven people, and no one is interested in leaving or joining. Of these, (A) and (B) would be irrelevant this year (and I generally prefer them to stay irrelevant—interest in joining is good!) while (C) would help a lot (if there are a lot of people you want to vote for and a few people you'd like to vote against).

Comment via: facebook, lesswrong, mastodon

Pluck Sensor Circuit

2024-04-01 21:00:00

A while ago I finished the "user interface" portion of my electronic harp mandolin. I'm happy with the signals the piezos put out, but now I need some electrical engineering to get the signals into a computer where I'll be more at home.

Since I made a design with 13 piezos, I wanted something with at least that many analog to digital converters, and decided on the Teensy 4.0 with 14. It turns out that this only has ten easily accessible ADCs, though, and in retrospect the 4.1 would have been a better choice. More on that later!

Reading the docs, each ADC pin converts an input voltage between 0 and +3.3v into a number between 0 and 1023. The piezo puts out voltages centered on zero, and not guaranteed to have a peak-to-peak of under 3.3v. So we have two problems: how do we bias the pizeo's output up, and how do we ensure it stays in range?

I talked to my TAs and posted on StackExchange, and ended up with this circuit:

To center the pizeo's output halfway between 0 and 3.3v I've used resistors to make a voltage divider. Since R1 through R4 all have the same values, as we go around the circuit each will drop the voltage by the same amount:

To keep voltages from getting too high or low for the ADC I've used two diodes. With an ideal diode this would keep the ADC between +2.48 and -0.83:

Since in practice the diode will have some resistance and some delay, this 2x margin should keep us between 0 and +3.3v.

The R5, in parallel with the piezo, is to pull the ADC pin back to the midpoint.

When running multiple sensors, only the piezo, R5, the diodes, and the ADC pin need to be duplicated; everything else can be shared.

I assembled a single-sensor version on a breadboard, and tested it with a cheap oscilloscope. I'm not totally confident I was using it correctly, but I think it said the voltage was staying within range, so I assembled a two-sensor version and hooked up the microcontroller:

I followed the Teensy tutorial and wrote some code github to look for a pluck and dump the ADC values around it. Here's what I saw:

Looks pretty good! I played with the detection and got it to where it could reliably determine how hard I plucked, and almost always determine which direction. That "almost always" is probably not good enough for a musical instrument, though, so I'll need more work there if I want it bisonoric. Right now it's using that the second peak is nearly always higher than the first, but this isn't quite always true and I think code that looks at the shape of the peaks could help.

I'm also not using the ADC to it's full extent, which is fine for one or two pins but would be a problem when trying to use all of them. There are docs for optimal sampling, but I haven't gone through them yet.

I'd like to move this to a circuit board so I can make something more robust than my breadboard toy, and can include more sensors without driving myself nuts. It looks like KiCad is the standard tool here, and while I normally don't like video for documentation I found this one did a great job with moving fast enough and skipping the repetitive bits. Here's the schematic I ended up with:

If you count the pizeo inputs, why are there only ten? The problem is that only ADC pins A0 through A9 on the Teensy 4.0 are standard pins. The other four ADCs, A10 through A13, are surface mounts on the underside of the board:

The Teensy footprint library I'm using doesn't know about these pins, and I wouldn't want to solder them anyway. Possibly I'll update my design to use a Teensy 4.1, which has pins for A0 through though A17 but for now I just have a ten-piezo design.

KiCad includes a 3D viewer, which is fun, though the library I used for the Teensy apparently doesn't specify a 3D model:

I was thinking of ordering this from JLCPCB, who seem to have very good pricing for low-volume orders?

I think my two main options at this point are to go ahead with this smaller version, or redo it with a Teensy 4.1 to get all the inputs?

If anyone wants to play with the design, the KiCad files are on github.

Comment via: facebook, lesswrong, mastodon

Historical Contra Swing Holds

2024-03-28 21:00:00

One of the most common and moves in contra dance is the 'swing', where two people face each other, hold on in some fashion, and quickly spin clockwise. In modern urban contra every dance has a partner swing (doing the figure with the person you chose to dance with, every 30s or so), and maybe a bit more than half have a neighbor swing (doing the figure with a series of other people you meet in line).

The amount of force needed to hold two people together who are swinging quickly is pretty high. [1] I've written about some holds I think do a better job distributing the weight than the standard one, but after some discussion on the contracallers@ mailing list I was curious: what did people do historically?

I looked back at several older contra dance videos to see what holds people were using. What I'd call the "ballroom" swing was the most common, with outer hands (gent's left, lady's right) joined, gent's right hand behind lady's back, lady's left hand behind gent's shoulder. Another very common hold is what I'm calling a "forearm" hold, where the outer arms overlap more. In some videos nearly everyone is using one hold, while in others there's more variation.

1964, somewhere in New England:

A slightly shorter version of this video is also online by the videographer labeled 1967, and unfortunately I took the timestamps from that video. I see ballroom at 0:35, 0:37, 3:15, 3:16, 5:08, 5:10. At 1:05 (and then again in the background at 5:11, and then again at 5:23 and 5:33) I see a forearm hold with arms that are straighter than I'm used to. At 2:08 I see a hold where the gents hands are both around the lady's waist and the lady's hands are both over the tops of the gent's shoulders.

1976 in Bloomington IN:

Almost all the couples are swinging with a ballroom variation where the lady's left hand is on the back of the gent's right arm. One couple's doing a symmetrical swing with left hands joined low between their bodies.

1981 in Belmont MA:

This one is very long, and I only watched the contra portion from 9:17 to 13:00. Almost all the swings use a forearm hold, though I saw one couple doing that symmetrical swing at 10:52 and another doing a ballroom swing at 11:33.

1986 in Cambridge MA:

Outdoor demo performance. Almost all ballroom holds, but at 4:04 the couple all the way on the right has outer hands in a forearm hold (which they continue doing in later iterations of the dance). 1986 in Chico CA:

Almost all ballroom holds, except for one couple where the lady's left hand is on the back of the gent's right arm instead of behind his shoulder.

1986 in Francistown NH:

At 0:30 I see two ballroom holds and two forearm holds. At 1:06 I see two ballroom holds, one forearm hold, and one summetrical hold, though note that this is many of the same couples. Jumping ahead to 8:38 I see three forearm holds. Separately, I really like how enthusiastic the balances are: you can feel the room shake through to the camera!

1987 Mendocino CA:

I only see ballroom holds.

1989 Portland OR:

I see almost all ballroom. At 0:58 and then again at 1:28, 1:58, 3:02 etc there's a couple with the symmetrical hold. I didn't watch the whole video, so it's possible there were other couples that did other holds at some point?

1990 Cambridge MA:

I see forearm holds at 3:41 and 5:16. I see ballroom holds at 4:12, 4:14, 4:44, 5:17, 5:49, and 5:50. At 5:18 there's a ballroom variation where the lady's inner hand is behind the gent's arm. At 5:48 there's one where both lady's hands behind gent's shoulders, the gent's left hand is behind the lady's elbow, and the gent's right hand is behind lady's back.

[1] I tried to do some math on this, but the values are high enough that I don't tust it. If you like to spin quickly you might go 4.5x around in twelve beats, which is 45rpm at a tempo of 120bpm. Let's guess the people each weigh 150lb and approximate them as point masses one foot apart. Doing some math:

r = 1ft
m = 300lb
ω = 45rpm = 0.75 hz

v = ω2πr
  = 0.75 hz * 2π * 0.5ft
  = 4.7 ft/s

F = mv^2/r
  = 300lbm * (4.7 ft/s)^2 / 0.5ft
  = 300lbm * 11 ft / s^2
  = 3300lbm * ft / s^2

1lbf = 32.17 lbm * ft / s^2
1lbm = 0.0311 lbf * s^2 / ft

F = 3300 lbm * ft / s^2
  = 3300 * 0.0311 lbf
  = 103lbf

This says you need ~100lb of force to hold the dancers together! If you're spinning slower, perhaps 2.5x in twelve beats, it's still a significant 31lb.


Comment via: facebook, lesswrong, mastodon

Legality as a Career Harm Assessment Heuristic

2024-03-26 21:00:00

A question many people in the effective altruism movement have struggled with around earning to give is how to handle potentially harmful careers. It's obviously self-defeating if you cause more harm in earning your money than the good it does when you donate it, but we want a higher threshold than that. As humans we need to have approaches that account for our self-serving biases, where we tend to underestimate the harm we cause and overestimate the good we do. Additionally, some kinds of harm (ex: murder) do not seem like the kind of thing you ought to be able to "cancel out" through donation, even if the donation clearly has larger benefits (ex: saves vastly many lives).

Unfortunately for most jobs, even questionable ones, the social impact is very hard to work out. Consider someone deciding to go into the oil industry: how much would they contribute to carbon emissions, after considering the oil company's elasticity of labor and the elasticity of production? Does cheaper oil displace even more carbon-intensive coal? How likely are extreme climate outcomes? Is the benefit of cheaper energy in lifting people out of poverty enough to make it positive on its own? Making a high-quality impact estimate for a career is a huge amount of work, and there are a lot of potential careers, especially when you consider that some roles in the oil industry might be far more replaceable than others.

What should we do in cases where the benefits seem much larger than the harms, but the harms are still significant? A potential rule I've been kicking around is, "don't do work that is illegal, or that would be illegal if the public knew what you were really doing." The idea is, we have a system for declaring profitable activities with negative externalities off limits, one that is intended for the more common case when someone is keeping what they earn for their own benefit. But we can't just use "don't do work that is illegal" because our legislative system can be slow to react to changes in the world or information that isn't yet widely available. For example, if most people understood the cost-benefit tradeoffs in research to assess the pandemic potential of viruses or create very powerful AI systems I expect both would be prohibited.

It is, however, only a heuristic. For example, it gives the wrong answer in cases where:

I expect there are other areas where this rule permits careers altruistically-minded people should avoid (even if the benefits seem to dramatically outweigh the costs) or rejects ones that are very important. Suggesting examples of either would be helpful!

Choosing a career is the kind of large-consequences decision where going beyond our heuristics and thinking carefully about outcomes is often warranted. Still, I see a bunch of value in sorting out a framework of general rules and common exceptions, where people can think through about how their particular situation fits.

Comment via: facebook, lesswrong, the EA Forum, mastodon

Photo Curation Approach

2024-03-25 21:00:00

I take a lot of pictures, maybe 10k annually. Most of them aren't that great, but if you take enough you'll get some good ones, and even the discards can be a useful reference. How do I handle these?

I have an Android phone, set to automatically upload any pictures to Google Photos. My wife does as well, and we have it configured to use a shared camera roll, which is super useful. As soon as a photo or video either of us has taken uploads, the other one can see it as well.

The Photos interface struggles a little with this many photos, but mostly does a good job. I like that I can search by text descriptions or people, and not just scroll back to a certain date, though I wish I could combine these with some sort of "see in context" option after finding a picture in a search.

As I take pictures, if I get an especially cute or funny one I'll share it in our kids FB group, but mostly I leave pictures for one big page at the end of the year with my favorites.

I'm thinking about this because I just finished pictures for 2023 (here). Choosing which pictures to include to represent the year is a bunch of work, but it's also pretty fun. I'll sit down with one or more of the kids (Nora does a lot of asking to look at pictures with me) and we'll flip through Google Photos. I'll press Ctrl+D on any that look reasonably good, and at the end of the session save my progress with:

mv ~/Downloads/PXL_*.jpg \
   ~/Google\ Drive/My\ Drive/2023-Photos/

Then I take a second pass, usually also with kids, where I go through my initial selections a month at a time (open PXL_202301*). At this stage I'll pick my favorite when I initially selected several pictures, and I'll crop them a bit. Almost every picture gets at least a little cropping: what are the odds I framed a shot perfectly on my camera in the moment?

Once I've completely finished, usually in January, I use ImageMagick to make thumbnails (standard and hidpi) and exiftool to remove metadata with a command like:

for x in *.jpg ; do
  echo $x
  exiftool -overwrite_original -all= "$x"
  convert -resize 1000000x400 $x ${x/.jpg/-tn.jpg}
  convert -resize 1000000x800 $x ${x/.jpg/-2x.jpg}

Then I'll make an initial web page with something like:

for tn in *-tn.jpg; do
  echo "<div><figure>
<a href='$base.jpg'><img src='${base}-tn.jpg}'
   srcset='${base}-2x.jpg 2x'></a><figcaption
done > draft.html

I'll go through again, terminal and browser side by side, adding captions. This is also usually a joint activity with kids.

At this point it's ready to go, but there's a final look over for Julia and the two older kids to make sure I don't have any pictures they'd rather not have online. I also run pictures by a few other people I know who are generally cautious about having pictures publicly accessible. This year that last stage added about two months of delay, because it just ended up being really hard to find time to review with them.

It probably takes me a few dozen hours to make each year's album, but it's spread out over the year and it's fun to sit together looking back at things we've done and picking our favorites.

Comment via: facebook, lesswrong, mastodon

Mandolin Harp Sensor Placement

2024-03-24 21:00:00

One of my goals in adding electronic "harp strings" to my mandolin is that I don't want to change anything about my normal mandolin technique when I'm not using them. I've been playing for decades, and like how I normally play. This means I can't place these "teeth" anywhere my hands normally pass through. With a bit of testing, I think these are the available areas:

I don't normally pluck the strings that close to the fretboard, but after some experimenting I realized that I do sometimes when I want a different sound, so I need to keep that whole area open.

Since I think I want to be able to pluck a tooth on the downbeat and then strum on the upbeat, the area above the neck sounds like a better choice than below. I made a cardboard template so I could get a sense of whether this got in my way when I was playing:

It felt good, so I used my jigsaw to transfer the outline to the piece of 22ga (1/32") steel I'd attached my first two teeth to:

I cut a bunch more sections off the aluminum offset angle I used before, and laid them out in a potential layout. FYI this isn't the layout I ended up choosing:

These are all still pretty rough, so I filed off the burrs and rounded the corners. Then I epoxied on the piezos and went to bed:

Today I cut out pieces of sorbothane and glued the teeth to the tops:

I decided to go with an offset layout, and will probably map it as Wicki–Hayden (with the up stroke a half step below the down stroke). I glued the teeth to the backing:

I taped the backing to my mandolin, and played with my normal technique for a while to ensure it felt ok. No issues!

Next comes picking out a microcontroller, sorting out the circuits if I can't just go in direct, and a ton of wiring. [1] Then software to interpret the signals and generate MIDI, and integrating it into my existing system. Then learning how to play it!

[1] I haven't figured out my wire routing yet. Possibly I'll use a drill press to make a bunch of tiny holes, one next to each tooth, and do all the routing on the back? Though deburring the tiny holes on a sheet I've already glued the teeth to sounds annoying.

Comment via: facebook, lesswrong, mastodon