August 04, 2016

July 08, 2021

STS135 - Ten Years After

Ten years ago today was the final launch of the Space Shuttle, STS-135. The Space Shuttle Atlantis flew a crew of four on a final support mission to the International Space Station and closed out the then 30-year-old Space Shuttle Program.

I grew up with imagery and stories of the Space Shuttle; I had the extraordinary chance to be at Cape Canaveral for the final launch; on this day, it is good to remember that moment as it was.

I wrote to a friend shortly after -

This past weekend I drove down to Florida for the STS135 launch; watched from the Kennedy Space Center causeway, ~4mi out. The launch ... I'm not sure what to say about it, I'm still processing. I can say what it was like physically; at ignition, there was an great grey cloud of exhaust from the launchpad; a few seconds later, two incredible plumes of orange-white fire, the SRB exhaust plumes. The exhaust was superbright, throwing light into the grey day like little else I've ever seen. In just a few seconds the stack hit a cloud and lit it orange-white and it was gone.

A little after, there was a pressure wave across the water; it was both sound and physical force. Not overwhelming; but powerful, deep. Like hundreds of heavy trains all rolling at once near you. And then it too was gone.


I left with two things; the SRB fire and memory of lying on the grass by the water, commanding away clouds in the grey sky.


May 08, 2021


A couple of months ago, Google Cloud launched gvnic, a new paravirtual network interface for virtual machines in Google Compute Engine. gvnic offers higher performance than and new features over the prior paravirtual network interface in GCE, virtio-net.

Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-1036-gcp x86_64)

 * Documentation:
 * Management:
 * Support:

  System information as of Sat Feb 20 03:49:30 UTC 2021

  System load:  0.08              Processes:             103
  Usage of /:   14.9% of 9.52GB   Users logged in:       0
  Memory usage: 5%                IPv4 address for ens4:
  Swap usage:   0%

1 update can be installed immediately.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable

The list of available updates is more than a week old.
To check for new updates run: sudo apt update

Last login: Sat Feb 20 03:42:19 2021 from
extrudedaluminiu@instance-2:~$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation 440FX - 82441FX PMC [Natoma] [8086:1237] (rev 02)
00:01.0 ISA bridge [0601]: Intel Corporation 82371AB/EB/MB PIIX4 ISA [8086:7110] (rev 03)
00:01.3 Bridge [0680]: Intel Corporation 82371AB/EB/MB PIIX4 ACPI [8086:7113] (rev 03)
00:03.0 Non-VGA unclassified device [0000]: Red Hat, Inc. Virtio SCSI [1af4:1004]
00:04.0 Ethernet controller [0200]: Google, Inc. Compute Engine Virtual Ethernet [gVNIC] [1ae0:0042]
00:05.0 Unclassified device [00ff]: Red Hat, Inc. Virtio RNG [1af4:1005]
gvnic on GCE: PCI Device ID 0x42, of course

I worked on gvnic for nearly three years (though it was some time ago); It is exciting to see a new paravirtual device of this scope reach General Availability!

A new paravirtual device represents a VM guest/hypervisor ABI and requires careful attention to detail - we needed to ensure that the ABI is a good match to VM guest requirements, to a hypervisor and underlying network infrastructure properties, and is designed with forward-evolution and versioning in mind. There are tradeoffs at multiple levels - for example, VM guests and hypervisors may have different preferences for where in memory transmit or receive frames live and how they're scattered/gathered; whether receive frame headers are more efficient in-line or out-of-line; and hundreds of other decisions that impact system performance and maintainability.

Building anything is kind of like this

Congratulations to everyone involved in the design and launch of the system; and to everyone who uses it, I hope it works well for you!


February 04, 2020

Linux barriers and implementations

The Linux kernel has a family of barrier functions suitable for communicating across processors (smp_*), with DMA devices (dma_*), and for other uses (mb/rmb/wmb).

I've often found it useful to know what hardware instructions a particular barrier maps to; this table maps each Linux barrier to its corresponding implementation on x86-64 and aarch64.

smp_rmb__asm__ __volatile__("": : :"memory") [1] dmb ishld [1]
smp_wmb__asm__ __volatile__("": : :"memory") [1] dmb ishst [1]
smp_mbasm volatile("lock; addl $0,-4(%%rsp)" ::: "memory", "cc") [1] dmb ish [1]
dma_rmb__asm__ __volatile__("": : :"memory") [1] dmb oshld [1]
dma_wmb__asm__ __volatile__("": : :"memory") [1] dmb oshst [1]
mbmfence [1]dsb sy [1]
rmblfence [1] dsb ld [1]
wmbsfence [1] dsb st [1]

  1. mmiowb was formerly used to enforce partial orders of MMIO writes with respect to main memory writes. It is no longer generally used, the required ordering properties have been folded into other primitives.


July 02, 2019

Organizations I've supported in 2018 and 2019 H1

Early in 2017, I committed to support a number of nonprofits and civil society organizations, particularly focused on climate change. I wrote about the organizations I planned to support and why - Organizations I'm supporting (2017) and I wrote a follow-up of what I ended up doing - Organizations I've supported in 2017.

In 2018, I wrote an updated plan - Organizations I'm supporting in 2018. I added a number of non-proliferation and think-tank organizations in preference to direct assistance and I slightly biased in favor of local and regional organizations relative to national ones.

I'm writing to share what I've been doing / what's worked for me and highlight organizations or types of organizations worth thinking about out.

In 2018, I donated 321 individual times to 68 distinct organizations. Donations were skewed - the top 7 organizations received > 50% of all donations, the top 12 received 75%.

2018 overall
2018 Overall

2018 75+
2018 75%

2018 50
2018 50%

Top organizations -

  • Union of Concerned Scientists
  • Environmental Defense Fund
  • Pro Publica - Nonprofit investigative newsroom
  • RENEW Wisconsin
  • Natural Resources Defense Council
  • Brennan Center for Justice
  • Northwest Immigrant Rights Project ( > 50%)
  • GiveWell
  • EarthJustice
  • Ploughshares Fund - Grant-making nonprofit focused on nuclear nonproliferation
  • ACLU
  • National Immigration Law Center ( > 75% )

I’d like to highlight RENEW Wisconsin and Fresh Energy - both state-level organizations advocate for cleaner energy generation and access in Wisconsin and Minnesota respectively; I think they are high-leverage organizations given the carbon intensity of the MISO region and the possibility of state-level climate action. Both were new to the list in 2018.

In 2018 I also opened a Donor Advised Fund (DAF), presumptuously named Memorial. A Donor-Advised Fund is a designated account at a “nonprofit”, often associated with a financial services firm (I use Fidelity’s, for example); contributions to the fund are considered 501(c)3 donations and may be invested and later donated to a separate non-profit. DAF’s do have associated fees; these fees may mean they are not a good choice in all circumstances. I’ve chosen to invest in a balanced mix of US stock / US bond index funds and do not use Environmental/Sustainable/Governance (ESG) funds, though they are available.

I use a DAF for two reasons - 1) Better recordkeeping and 2) To defer year-end donations into the following calendar year, to take advantage of annual corporate donation matching.

Total direct donations in 2018 were 92% of 2017’s total; including pre-funding the Donor-Advised Fund raises that to 107%. As a percentage of my total income, this was between 11% and 14%, again depending on whether the pre-funding was included.

In 2018, I found out about the Effective Altruism (EA) community; EA aims to apply analysis to philanthropy - where can a dollar do the most good (by a common metric, years of life, quality-weighted, per intervention), with an emphasis on measuring outcomes and the good a marginal dollar can do. EA-favored nonprofits have focused on public health (ex: malaria control) and existential risks in the recent past.

I am convinced the EA approach is valuable, but the metric undervalues indirect work civil society may do, such as advocacy or informing policy.

In October 2018, I took the EA-associated Giving What We Can Pledge:

“I recognize that I can use part of my income to do a significant amount of good. Since I can live well enough on a smaller income, I pledge that for the rest of my life or until the day I retire, I shall give at least ten percent of what I earn to whichever organisations can most effectively use it to improve the lives of others, now and in the years to come. I make this pledge freely, openly, and sincerely.”

I missed this target in 2018, though I gave 3.8% overall to GiveWell, GiveDirectly, Against Malaria Foundation, Future of Life Foundation, and No Lean Season.

In 2018, I contributed to a number of state and federal election campaigns; contributions can be viewed through the FEC site but are not included above.

In 2018, I also purchased 20 metric tons of CO2e offsets, via methane flaring, from a private provider.

In the first half of 2019, I’ve donated 135 individual times to 48 distinct organizations. Once again, donations were skewed - the top 5 organizations received > 50% of all donations, the top 15 received > 75%.

2019 Overall

2019 50%

Top organizations -

  • Oregon Climate Trust - Oregon organization administering Oregon Carbon Dioxide Standard, undertaking offset programs
  • Fresh Energy - Minnesota energy transition / clean energy organization with a long track record (~1992). Was involved in the closure of the Sherco I and II (coal) generating stations in Becker, MN
  • RENEW Wisconsin - Wisconsin advocacy organization, focuses on interfacing with PUC and supporting "Focus on Energy" program
  • Union of Concerned Scientists
  • US Climate Action Network
  • Against Malaria Foundation (> 50%)
  • GiveWell
  • Pro Publica
  • Midwest Renewable Energy Association
  • Natural Resources Defense Council
  • Climate Solutions - Oregon and Washington
  • International Refugee Assistance Project
  • Northwest Immigrant Rights Project
  • Human Rights Watch
  • Center for Civilians in Conflict (> 75%)

In 2019, I've focused on state- and regional- clean energy and climate organizations (Oregon Climate Trust, Fresh Energy, Renew Wisconsin, Wind on the Wires, Midwest Renewable Energy Association, Climate Solutions...). There have been too many failures of large climate projects, from regional transmission projects, to carbon taxes (Washington has failed to pass three times), to Oregon's HB2020, to V.C. Summer's abandonment. At the same time, there have been and state- and regional-level successes; focusing on the organizations that have made them possible buys space and time and window for larger-scale projects, I think.

Total direct donations in 2019 so far have been 90% of 2018’s yearly total and 84% of 2017’s total. As a percentage of my income so far, this has been between 16% and 19%, depending on whether Donor-Advised Fund contributions or outflows are credited.

I've met roughly 10% of my Effective Altruism Giving Pledge target this year. I plan to at least meet 2018's mark, though am hoping to meet the whole target.

I haven't purchased any carbon offsets this year; I am not sure as to whether or how effective they are; I'd appreciate any thoughts about them.

I've enjoyed this three-year-long giving project; I'd appreciate any thoughts about what I could be doing better/differently and anything else I should check out. I'd appreciate any thoughts about how I might contact and chat with the non-profits I support and what sort of metrics would be appropriate for climate or civil organizations. Or any thoughts about how to present this data better!


STS135 - Ten Years After July 08, 2021
gVNIC May 08, 2021
Organizations I've supported in 2018 and 2019 H1 July 02, 2019
Recurse Center - First steps w/ Queues July 16, 2018
Organizations I'm supporting in 2018 March 21, 2018
Organizations I've supported in 2017 December 28, 2017
Detect. Transmit. March 21, 2017
Organizations I'm supporting this year February 12, 2017
4K for Cancer 2015 - Seattle, WA August 14, 2015
4K for Cancer Portland 2014 - Portland, OR August 16, 2014
A couple of days with 4K Portland 2014 July 31, 2014
4K for Cancer 2014 Sendoff & Day 1 June 08, 2014
Trust Fall June 06, 2014
4K for Cancer Seattle 2013 - Seattle, WA August 26, 2013
4K for Cancer Portland 2013 - Cannon Beach August 25, 2013
Baltimore to Portland September 29, 2012
Blink and life flies by. August 03, 2012
Day 68 -- Tillamook to August 02, 2012
Day 67 -- Corvallis to August 01, 2012
Halfway to Corvallis. After that, July 31, 2012
Before riding to Corvallis, Team July 31, 2012
Day 66 -- Eugene to July 31, 2012
Day 64 -- Rest day July 29, 2012
Crossing Country and Catching Up, part 1 July 18, 2012
In Denver, CO. Veiled mountain July 03, 2012
Something is hidden in the July 03, 2012
@4KPortland 200mi in 2 days, July 01, 2012
Welcome to Colorful Colorado! July 01, 2012
The country from Franklin, NE June 28, 2012
#4kportland Cheers from Arapahoe, NE!! June 28, 2012
#4kportland Day 33 -- To June 28, 2012
#4kportland Iowa is not flat!! June 23, 2012
#4kportland Day 28 -- Atlantic, June 23, 2012
#4kportland Day 25 -- Wheatland June 20, 2012
#4kportland Day 24 -- Iowa June 19, 2012
#4kportland Day 23 -- 120mile+ June 18, 2012
@4kportland Day 21 -- Chicago June 16, 2012
@4kportland winning June 09, 2012
#4kportland -- Cincinnati to Lexington, June 08, 2012
Intro & Twelve Days June 07, 2012
First week of #4kportland!! (@4KPortland) June 03, 2012
#4kportland Day 8 -- Canton, June 03, 2012
#4kportland at the host in June 02, 2012
#4kportland Day 7 -- Youngstown June 02, 2012
Reached host in Youngstown! _So_ June 01, 2012
#4kportland Day 6 -- Pittsburgh, June 01, 2012
#4kportland Day 4 -- Ligionier, May 30, 2012
4K day 2: Waking up May 28, 2012
@4KPortland group 4 is in May 27, 2012
My last night in Baltimore. May 27, 2012
An alumni's thoughts on 4K; May 18, 2012
IOCCC Korn 1987 August 04, 2007

July 2021
May 2021
February 2020
July 2019
July 2018
March 2018
December 2017
March 2017
February 2017
August 2016
August 2015
August 2014
July 2014
June 2014
August 2013
September 2012
August 2012
July 2012
June 2012
May 2012
August 2007

Powered by
Movable Type 2.661