Planet Iron Blogger

April 21, 2017


Neuralink is horrifying

This is the craziest thing I’ve read in a while. I may be missing context, but it seems that Elon Musk’s various ventures have settled on giving important product announcements and exclusive access to a cartoon science blogger named Tim Urban (Randall Munroe was presumably too expensive or inquisitive). Over many, many words, Urban explains the idea behind Musk’s newest astoundingly ambitious venture: Neuralink, which aims to accelerate the development of direct brain-to-machine interfaces.

It’s impossible to know the extent to which Urban’s account actually reflects Neuralink’s plans. It’s built on the kind of homunculus-riddled explanations of cognition that one is warned against repeatedly, even in the undergrad classes that make up the entirety of my education on these questions. But from Neuralink’s perspective this might be a feature, not a bug: Urban can’t have gotten it quite right, so everything is deniable.

To the extent that it is accurate, the essay itself perfectly recapitulates Neuralink’s strategy: just as the reader must slog through tens of thousands of unobjectionable words before reaching the punchline, Neuralink’s real aims are buried beneath a bunch of shorter-term medical goals that are unquestionably admirable. Sensory prostheses, cures for paralysis–only a monster would object to these. But that’s not all they want to do. Ultimately, they want to connect human minds seamlessly to digital communication technologies. Memory and computation would be partially offloaded to computers. Nonverbal forms of interpersonal communication might be possible. Collective forms of cognition could arise.

Given the power of network effects and the pathetically small incidence of technological abstinence in our society (picture a Western teenager without a smartphone) is it plausible that such a change could really be called optional? Can there be any doubt that this would transfigure humanity into something unrecognizable? Can there be any argument that this would constitute the end of our species’ current intellectual and cultural history?

And who gets to make this decision, anyway? An overextended Silicon Valley weirdo? His board of venture capitalists? I spent years of my professional life working to transform American political institutions on behalf of a billionaire philanthropist who was so-empowered because he happened to write some early auction software. All I can say in defense of this decisionmaking system is that we were not all that effective.

A good response to this is that there has never been a deliberative process for these sorts of things: humanity blunders into new technologies and always will. The best you can hope for is some queasy retrospective essays about the Manhattan Project. I don’t have an alternative to suggest, but I find this insufficient. My sense is that we were enormously lucky that nuclear weapons happened to be developed in cultural and social systems that turned out to have brinksmanship as their equilibrium state (so far, anyway). Our species has occasionally invented societies that do not work that way.

But back to the matter at hand. Naturally, the justification offered for destroying humanity is that this is the only way to save it: Musk says he’s worried that we’re about to invent vengeful superpowered AI, and that a hivemind superconsciousness is the only path to protecting ourselves. It’s hard not to notice that this theory contains a number of things that are optional, unlikely or could simply not work.

Personally, I think a more parsimonious explanation is that Musk suffers from a psychosis by which he finds various science fiction-y ideas utterly irresistible and is compelled to do everything in his power to realize them. I say this with both horror and admiration: if even one of his various non-Hyperloop projects works out, he will have made himself into a figure of world-historical significance. Even if I had the talent to do these sorts of things (obviously I don’t), I think the wiser and more ethical path is a family, a career, a home, and then historical oblivion. But it’s hard not to marvel at someone who is actually able to live your daydreams.

The crucial difference is that electric cars and solar panels and batteries and rockets and terraforming Mars all seem like good or at least sane ideas. This is not obviously true of Neuralink.

I won’t bore you with obvious arguments about such technologies’ capacity for totalitarian control or simple hacking. Instead I’ll ask: how is the electronic communication project looking, do you think?

Brain-to-brain interaction could easily be a singularity-level development, something with consequences that cannot be anticipated. It could even have Fermi Paradox implications! Reasoning about it might be impossible. But apparently we have to, and so we should probably start by asking what has happened over the last century as we learned to use electricity to make communication instantaneous, then digital, then networked.

I’m not sure whether or how to count world wars against being able to Facetime with your grandkid, so let’s just call that stuff a wash. I find the very recent history of many-to-many, pan-society frictionless communication to be extremely discouraging. Social media makes us less happy, as our evolved impulses for status competition and tribalism are supercharged. At a larger scale, the U.S. media and political ecosystem seems to have been successfully manipulated to a mind-boggling conclusion by a foreign power during our last election, despite the fact that the manipulation was detected as it was in progress. We can quibble about which part of this era of unprecedentedly efficient communication is responsible for our seemingly unstoppable descent into bitter factionalism and individual discontent; whether technologically enabled forms of suffering are new or merely more humane substitutes for older torments; whether the humanitarian benefits still being realized by technological diffusion outweigh the ennui that sets in after its arrival. But I don’t think many would disagree that the hedonic, intellectual, spiritual and institutional returns to a fully networked contemporary lifestyle are looking pretty suspect.

This is a tragedy. You could not find many people more enthusiastic than my younger self about the cathartic deliverance that perfect communication would provide. I ran a BBS as a kid; I built grandiose, essay-filled websites; I was consumed by technology and absolutely convinced that millennia-old liberal ideals about knowledge and deliberation would finally reach their apotheosis now that an age of universal democratic access was dawning. I count the failure of this vision as one of the great disappointments of my life.

In my younger self’s defense: it’s still early days. The jury is out on all of this. Yes, we are responding to social media and institutional decentralization badly, but populations sometimes evolve resistance to new pathogens after an initial wave of devastation. It’s possible we will develop the cultural practices necessary to avoid the helpless emotional and social debasement that currently pervade a fully wired existence.

(On the other hand that lifestyle still only reaches a tiny fraction of very wealthy people. Things will probably get much worse in the short term.)

I have no idea how this will work out in the future, but it seems obvious that blithely accelerating these processes today is unwise. If we do learn how to endure this changed way of living, I will agree it’s a shame that Elon and I will have missed our chance to be a part of its completion. But we all owe each other caution and care on matters this enormous, and maybe this is the cost of that duty. All that history owes us is oblivion. If Elon cannot learn to be content with that, I pity him. But not enough to release him from his responsibility to me.

by Tom at April 21, 2017 04:59 PM

April 20, 2017


DIY eye-fi server: docker, flickr, all sorts of good stuff

The Eye-fi is an SD card with an embedded wifi chip. Configure it, put it in your camera and it can wirelessly upload photos without human intervention. It’s a neat gadget, even if I never did manage to get my mother’s working for her.

Alas, Eye-fi’s software accomplishes this feat by running in the background of an always-on desktop computer. Worse, they’ve been steadily eroding their services’ capabilities, stripping away integration with photosharing sites people actually use in favor of their own cloud photo service (don’t worry, the first year is free).

A few intrepid geeks reverse-engineered the early Eye-fi cards, but enthusiasm seems to have diminished as Eye-fi’s services changed and their early-gen cards stopped working. Nevertheless, the techniques they discovered and software they wrote still work… well, they almost worked. There were some rough spots.

I have a baby on the way (did I mention that?) and expect to be generating lots of photos. So I have taken one low-dependency-count open source project and given it a fresh coat of paint. In addition to the satisfaction of knowing you are running slightly more reputable Python, the system is now able to upload your photos to Flickr, if you let it. And it runs in Docker (renamed as of today to Moby, ugh), which should remove many of the idiosyncratic configuration headaches that would otherwise make sharing a project like this a masochistic declaration of one’s intent to provide free tech support, forever.

If any of this sounds useful I hope you’ll give it a look. It has already happily uploaded many debug photos of my coffee table to Flickr from my a household Raspberry Pi. Perhaps it will prove equally helpful to you.

by Tom at April 20, 2017 10:24 PM

April 19, 2017


technology, religion and repeating yourself

Sometimes you read something that’s so good you have to share it even though its quality reveals that your own thinking on similar questions is utterly threadbare.

by Tom at April 19, 2017 03:31 PM

April 10, 2017


Library of Congress, National Archives Host Wikipedia Edit-a-Thon

On Friday, the Library of Congress, the National Archives, and Wikimedia D.C. hosted an Edit-a-Thon, focused on updating committee information on Wikipedia. This is the second such event, and the first to be hosted at the Library of Congress.Continue Reading

-- Delivered by Feed43 service

April 10, 2017 09:00 PM

April 02, 2017


Whip Watch 2.0

On Thursday, Democratic Whip Steny Hoyer launched Whip Watch 2.0, a free app that provides the public (and congressional staffers) a real-time mobile view into the Democrats’ whip operation. In addition to all the neat features we wrote about when Whip Watch first launched in June 2015, it allows users to see vote totals, including vote breakdowns by party, on floor votes as it happens, as well as show the time remaining on a vote and how long a vote stays open after it was supposed to close.Continue Reading

-- Delivered by Feed43 service

April 02, 2017 03:00 AM

The House Rules Should be Publicly Available in Advance of Their Adoption

At the start of the 115th Congress, there was a fight over whether the Office of Congressional Ethics should continue its existence. I won’t get into the merits of the disagreement here (although I’ve written about it elsewhere), but how it occurred is interesting.

The Office of Congressional Ethics is one of the many offices and agencies created by the rules of the House of Representatives, which are adopted on the first day of the new Congress. The House Rules are contained in a simple resolution, and that resolution usually is released to the public at most 24 hours before the vote, and sometimes with even less notice. At the start of the 115th Congress, the Republican Conference did not finalize the proposed rules until the night before they were to be considered by the House, and the full text didn’t leak out in full until the day of the vote.

More or less, this is the general practice of both parties, which is neither transparent nor helpful to the deliberative process. And yet, bills and joint resolutions were publicly available online for 3 days in advance of when they were voted on, just as the House rules require. What was going on?Continue Reading

-- Delivered by Feed43 service

April 02, 2017 03:00 AM

The House of Representatives Orders Seconds on Legislative Transparency

Once again, at the start of the 115th Congress, the House of Representatives included an order in its rules package in support of public access to legislative information.

(m) BROADENING AVAILABILITY OF LEGISLATIVE DOCUMENTS IN MACHINE-READABLE FORMATS.—The Committee on House Administration, the Clerk, and other officers and officials of the House shall continue efforts to broaden the availability of legislative documents in machine readable formats in the One Hundred Fifteenth Congress in furtherance of the institutional priority of improving public availability and use of legislative information produced by the House and its committees.

What this means it the House of Representatives will continue–as a matter of policy–its work in making information about the legislative process available to the public.

As readers of this blog know, there has been a tremendous amount of progress in the last few years, including: publishing structured data about legislation, publication of bills and amendments to be considered by the Rules committee, the publication of the House’s rules as XML, publication of a House phone directory, publication of the U.S. code as structured data, publication of the committee hearing and markup schedule, online committee video, and more. And, even more remarkably, this is all being done on a bipartisan basis.

I’m looking forward to seeing what will be accomplished in the 115th Congress.

-- Delivered by Feed43 service

April 02, 2017 03:00 AM

Why I Came To Believe CRS Reports Should be Publicly Available (and Built a Website to Make it Happen)

I first started working for Congress as a senate intern in September 2001. I was 23 years old and had no experience working on policy. I found myself responding to letters from constituents on issues that I’d never heard of previously. It was then that I first encountered the Congressional Research Service and its reports.

The Congressional Research Service, sometimes called Congress’ think-tank, provided introductory classes to orient interns on the service. It was fascinating to see all the different kinds of analysis performed by CRS — and there were rooms filled, just loaded with reports on every issue that you could imagine. CRS also provided classes on how Congress worked. It was a great way to learn.

I worked for Congress for the next year or so, eventually rising to become a (very) low-level staffer. Occasionally I spoke with analysts, but generally speaking the reports often were enough. CRS emphasized that its advice was non-partisan and even-handed. When I left, I did what many departing staff did, and took an armful of reports with me.

After I finished law school, a half-decade later, I came back to Congress. I joined CRS as a legislative attorney. It was my job provide legal advice to members of Congress on matters concerning telecommunications, terrorism, and the separation of church and state. As the person who was now writing the reports, I was aware in a way I never had been before about the gaps in my knowledge. I also became familiar with gaps in the way CRS reports were written, the idiosyncrasies of management, and the history and role of the agency.

What was surprising to me was the unrelenting insistence by CRS that CRS reports should never be available to the public. Of course, it was understood by everyone who wrote the reports that members of Congress would make them available to the public. But we were never to do so and even the thought of public access — that there were two sides to the issue — was heresy. I never really questioned the matter.

When I left CRS, I went to work in the nonprofit world. I had — and still have — a real interest in making government work better, and I ended up working on governance, transparency, and accountability issues. It was there that I really dug into the question of public access to CRS reports.

CRS used to be a very different agency. It used to provide unvarnished advice for members of Congress on the crucial issues of the day. But over time, and especially during the 1990s, the mode of analysis changed to a description of issues, moving away from an evaluation of the strengths and weaknesses of various courses of action. I don’t mean to overstate this, and there still are many examples of prescient analysis, but CRS changed the way it did its work, in large part because of existential concerns. CRS was concerned about irritating its congressional masters by finding fault in a pet project or cherished belief. The old-timers still had great latitude to share their advice on policy, informed by their expertise, but the agency became sclerotic.

Part of this calcification included a fear of public access to any aspect of CRS’s work. At one time, CRS published a newsletter about its latest research. Later, while its employees still testified before Congress, CRS management became nervous about that testimony and also began to discourage and then generally prohibit from sharing their work even with their academic peers. Agency staff grew more insulated and isolated, focused on managing management and staying out of trouble.

Over time, I came to realize that the policy concerning public access to CRS reports was counterproductive. Members of Congress could get the reports. Lobbyists and special interests could get the reports from Congress or from private vendors for a fee. Former congressional staff could ask their friends on the hill for a copy. But the general public, unless they knew a report existed, really did not have access.

And that’s too bad. CRS reports are written for intelligent people who are not necessarily policy experts. In a world that’s awash with 5 second YouTube ads, horse race political coverage, and the endless screaming and preening of political figures, these reports are a good way to start to understand an issue.

Assomeone who has developed expertise in several issue areas over the last decade-and-a-half, I can pick out problems with CRS reports on issues that I know about. Sometimes there are significant errors — and sometimes they go uncorrected. But overall, widespread access to CRS reports increases the reservoir of knowledge available to the American people. If the first result for any internet question is Wikipedia, shouldn’t it contain the knowledge that the American people spent $100 million annually to refine? Congressional staff often start their research with Google, for better or for worse. Shouldn’t we make the reports easy for them to find? In addition, public access to CRS reports can help make constituent communications to Congress better providing useful context for people who have questions about matters of policy.

Public access to CRS reports is also good for CRS. It builds a public base of support for a legislative branch agency that far too often has suffered from the budget axe over the last two decades. As it turns out, the second greatest threat to CRS doing its job is members of Congress. They’re the ones who have an axe to grind (or wield) when policy recommendations don’t come out the way that they want. The greatest threat, of course, can be CRS’s leadership, which can be so desperate to avoid the budget axe it will doanything to stay out of the public eye, including things that hurt the agency in the long run.

Opposition to public access to CRS report is rooted in fears of the unknown. Even though many reports are routinely released by members of Congress, published by committees, and available through third-party web sites, there still remains this unreasoning fear. It is time to conquer that fear.

Today my organization, in concert with others, is published 8,200 CRS reports on a new website, We are not the first organization to publish CRS reports. Many others have done so. Nor are we the first to advocate for public access. We’re part of a huge coalition that includes many former CRS employees. But I think we are the first to publish just about all the (non-confidential) reports currently available to members of Congress, in concert with a bipartisan pair of members who are providing the reports to us, and with a method to keep on doing so.

We have tried to address CRS’s concerns. We redacted the contact information for the people who wrote the reports. We added information about why the reports are written and that they’re not subject to copyright. And we added a few bells and whistles to the website, such as letting you know how much a report has changed when it’s been revised.

We think Congress as an institution should publish the reports. We support bicameral, bipartisan legislation to do so. And we hope that our website will help show the way forward.

-- Delivered by Feed43 service

April 02, 2017 03:00 AM

House launches a public-facing phone directory for all staff

As promised at the 2016 Legislative Data and Transparency Conference, the House of Representatives launched a public-facing phone directory for all its staff.

This is a tremendously useful tool. It provides authentic, up-to-date information on the people who work in the people’s house. While it (reasonably) does not contain email addresses, it has phone numbers, titles, and lots of other useful information about staff. It also will empower future analyses around employment in the House of Representatives, including discussions of legislative capacity and staff retention.

Until now, this information was only available through private vendors–for a fee–so the launch of the phone book amounts to a democratization of information about our elected representatives.

Using responsive design, so that it works on mobile devices, the phone directory allows anyone to obtain phone numbers and address information for any House staffer via a cleverly-designed interface. You can sort by member office, committee, or search for a particular staffer.

A screenshot of the new telephone directory website.

It’s also possible to download the underlying data set, whether as a CSV or PDF. This may save the House money on printing directories and provide more up-to-date information, particularly as staff move around all the time. The website was built by the Clerk and is extensible, so it may become possible to include the staff issue areas at a future date.

-- Delivered by Feed43 service

April 02, 2017 03:00 AM

Kudos to House of Reps. for Releasing its Spending Info as Data

Today the House of Representatives published its spending information as structured data (a CSV) in addition to printing three volumes of tables. This is the second time it has done so. (I wrote about it the last time it happenedand why it is important for accountability.)

Okay, Senate, it’s your turn. Publish your semi-annual spending statement as data.

-- Delivered by Feed43 service

April 02, 2017 03:00 AM

The Constitution (Annotated) In Your Pocket

After a powerful speech by Khizr Khan at the Democratic National Convention, sales of pocket U.S. Constitutions have skyrocketed, becoming the second best selling book on Amazon. This is great! But the words of the Constitution are unsufficient to provide an understanding into how it has been applied by the courts over the last two centuries. That’s where the Constitution Annotated comes it.

The Constitution Annotated (aka CONAN) is a plain language explanation of the U.S. Constitution as interpreted by the U.S. Supreme Court. Published by the non-partisan Congressional Research Service at the direction of Congress, CONAN provides insight into the meaning of our founding document. It also is available online as of 2013 and can downloaded as an app for your phone (iPhone) (Android is under development).

Unfortunately, there are flaws with CONAN — not the content, but how it’s made available to you. First, CONAN is published as PDF files, which makes it all but unreadable on your phone. The app is virtually worthless. Blast. Second, while CONAN is continuously updated by the folks at CRS, what’s available on the website and the app is not. Information can be a year or more behind recent court opinions. This is a travesty, especially when the information is readily available on the congressional intranet and the document is prepared in a format that allows for immediate updates.

We’ve been trying to fix this problem. Believe me. I’ve written about this at least once a year for eight years (2009, 2010, 2011, 2012, 2013, 2014), usually on my birthday, Constitution Day. And I’ve lobbied on it. We did finally get CONAN published online, after an enormous effort which resulted in this letter from the Senate Rules Committee to the Government Publishing Office. But CONAN still is not being published online as it is updated, and it’s still not published in a format that would support an app or sophisticated website.

As a result, people are reading highly-biased interpretations of the Constitution instead of the legal treatise that by law must be evenhanded and impartial, and is paid for by your tax dollars.

Maybe the Senate Rules Committee, the Government Publishing Office, and the Library of Congress will move to make the Constitution Annotated available online, in real time, and in a format that human and computers can use. At a moment with so many people are interested in the Constitution, Congress should make sure that everyone has access, electronically and otherwise.

-- Delivered by Feed43 service

April 02, 2017 03:00 AM

Report from the 2016 Legislative Data & Transparency Conference

Today the House of Representatives’ Committee on House Administration hosted its fifth annual Legislative Data & Transparency Conference in the U.S. Capitol. The Conference brought together staff from House and Senate and legislative support offices, civil society advocates, technologists, overseas legislatures, and featured a speech by House Speaker Paul Ryan. More than 150 people attended, with more participating online.

There’s too much to recap from the conference — my notes, taken in real-time, are online, as is a video of the proceedings — but this blogpost will focus on the highlights. Once again, the most important aspect of the conference was that it brought together all the internal and external stakeholders to work together, announce progress, celebrate advances, and educate one another. It was a tremendous success.

Speaker Ryan: New Digitization Project

Speaker Ryan addressing the conference. Photo credit: Speaker Ryan’s office.

Speaker Paul Ryan announced a new project to publish enrolled legislation as structured data (in United States Legislative Markup Language). The project encompasses all enrolled bills (the final copies of legislation passed identically by both Houses of Congress), public laws, and statutes at large. In its first phase, all enrolled bills from the 113th Congress forward (i.e. January 2013 forward) and all statutes at large from the 108th Congress forward (January 2003 forward) will be published online in the same structured data format in which the U.S. Code is published.

While this sounds technical, what it does it allow the Congress to begin using more sophisticated tools to manage its legislation, including how it is written and updated. It becomes possible to tell better stories around what has happened with bills enacted into law, including formatting the laws so that one can see how they have changed over time.

It is expected that ultimately all legislation enacted by Congress will become available as structured data. Because much of the federal law is non-codified, this will make it easier to show how the law has evolved over time and reflect the current state of the law at any given time.

In addition to the technical details, Speaker Ryan’s announcement underscored the House’s continued dedication to making important information about legislative activities available online and in formats that support analysis and reuse. It is a doubling-down on the commitment made at the beginning of the Congress, in the House Rules package, to ensure that legislative information is available to the public in structured data formats — to support improving congressional processes and public insight into congressional action.

The Congressional Data Coalition had asked for this improvement, and some member offices have been requesting these changes as well.

Steady Improvements and a New Project from the Bulk Data Task Force

The Bulk Data Task Force Presentation. Photo Credit: Alex Howard

Phone Directory. The House of Representatives has built and will release to the public in August an online telephone directory. Using responsive design, so that it works on mobile devices, the phone directory allows anyone to obtain phone numbers and address information for any House staffer via a cleverly-designed interface. You can sort by member office, committee, or search for a particular staffer.

A screenshot of the new telephone directory website.

It’s also possible to download the underlying data set, whether as a CSV or PDF. This may save the House money on printing directories and provide more up-to-date information, particularly as staff move around all the time. The website was built by the Clerk and is extensible, so it may become possible to include the staff issue areas at a future date. Data Updates. In response to public requests, the bulk data behind will be updated every four hours so that users can download the most recent data. Coming soon will be an RSS feed that will tell users when the data has been updated, so users known when to run their update processes. This is a change from the once-a-day update, which was discussed at the last Bulk Data Task Force meeting and had created problems for some users. The data updates will also be reflected on the GitHub page so that programmatic users will know specifically which data has changed. Interface Updates. now has legislative alerts and other new tools (including improving command line and other searches). On July 5th, THOMAS will be retired after 21 1/2 years of service.

Office of Law Revision Counsel. The OLRC had 4 significant updatesbuilding on work from last year.

First, it will expand information about non-positive law that’s made available to the public to include XML format, not just PDFs.

Second, the development of Ramseyers — to track changes for legislation reported out of committee — is proceeding and it is expected to be used as part of the legislative process. This goes hand in hand with the Amendment Impact Program, which eventually will be publicly available and will make it possible to see how amendments change bills and bills would change laws in real time.

Third, the legislative lookup and link tool, which provides contextual information about references inside legislation, will become a public tool that everyone can look up on a public website.

Fourth, the OLRC is developing with leg counsel a new/updated legislative markup language to encompass new uses and data types. This is a second generation legislative markup language, of which the first was the Bill DTDs, and will empower many more ways to make sense out of legislative language.

And Still More

Josh Tauberer retelling Mr. Smith Goes To Washington. Photo Credit: Alex Howard.

I don’t want to get too deep into everything else for the sake of brevity. However, I do want to briefly mention:

  • The presentations on the use of mapping (GIS) data, particularly a fascinating presentation by CRS on the different kinds of maps they can generate for congressional staff. Additionally, it’s worth noting how Rep. Takano’s office uses maps to keep track of communications from constituents. The Senate’s GIS working group is of particular interest to anyone who wants to use geographic data to understand policy issues.
  • A great discussion on “consuming the law” which delved deep into when/whether it is possible for leg support offices to move towards focusing on electronic/online publication and moving away from print.
  • There’s much more, including great panels on five hacks for congress, the unfinished (digitization) work of congress, Josh’s excellent Mr. Smith presentation, UK and New Zealand digitization efforts, and the future of legislative publishing.

If you want still more, here are recaps of prior Legislative Data and Transparency Conferences:

-- Delivered by Feed43 service

April 02, 2017 02:59 AM

2016 Legislative Data and Transparency Conference is this Tuesday, June 21

The House’s Legislative Data and Transparency Conference is this Tuesday, June 21, from 9-4, in the Capitol Visitor Center auditorium in Washington, DC. RSVP here.

The conference brings together individuals from Legislative Branch agencies with data users and transparency advocates to foster a conversation about the use of legislative data – addressing how agencies use technology well and how they can use it better in the future. This is the 5th annual conference, and the conversations that take place help change the nature of government.

House Speaker Paul Ryan and and the UK’s Director of Parliamentary Digital Service Rob Greig will both address the conference.Continue Reading

-- Delivered by Feed43 service

April 02, 2017 02:59 AM

House of Reps’ Spending Info Is Now Online as Data

Yesterday the House of Representatives began publishing its spending data online as a spreadsheet (and continued publishing it online as a PDF file).

As Josh Tauberer explains in Open Government Data: The Book, the compilation of spending data, known as the Statements of Disbursements, includes “how much congressmen and their staffs are paid, what kinds of expenses they have, and who they are paying for those services.” While it does not contain all the nitty-gritty details, the Disbursements data can tell you a lot about the health and activities of Congress.

Yesterday’s publication includes the full dataset for the first quarter of 2016 in a 17.8 MB CSV file, and a smaller 502 KB summary file in CSV format. The information is also published as a PDF, which it has been since November 2009.Continue Reading

-- Delivered by Feed43 service

April 02, 2017 02:59 AM

March 27, 2017


Drawing a Line on Mass Surveillance: How Congress Must Reform Section 702

On Monday, members of the House Intelligence Committee held an open hearing into Russian involvement in the 2016 presidential election that included a discussion of whether the U.S. government improperly surveilled officials or associates of any campaign. During that hearing, members of both parties favorably referred to Section 702 of the FISA Amendments Act, a sweeping piece of intelligence legislation that is up for reauthorization later this year and, in our view, permits significant offenses against Americans’ civil liberties. Section 702 authorizes two truly alarming efforts that must be reformed or ended.

The first program is Prism, which produces the majority of information collected under Section 702, and involves ordering companies to search all information in their possession and copy whatever data is tied to something intelligence agencies call ‘selectors.’ A selector is like a keyword in a search engine; they can be very broad and are connected to enormous amounts of information, all of which is provided to the government. A Washington Post analysis found 9 out of 10 people whose account information was collected were not the “target” of an intelligence investigation. Half were American. For Prism to work, the government searches and copies emails and other sensitive information, including information traditionally protected by the Fourth Amendment’s probable cause standard.

The second program is Upstream, which collects information from the Internet’s ‘backbone,’ which includes the undersea cables linking continents and thereby enabling the global connectivity the Internet depends on. By compelling the entities that control that infrastructure (like AT&T) to scan or otherwise tap the information flowing through them — again, based on certain selectors — intelligence agencies collect information in real-time. This scanning affects all information traveling across the cables, with no regard for privacy or sensitivity. Information tied to these selectors, including our most intimate communications, is turned over to the government and stored for years (or indefinitely).

Given the many problems with Section 702, any legislation that does not include the following five reforms would raise grave concerns, prompting grassroots organizations like ours to oppose the measure. In the most recent fight over surveillance, overreach by surveillance hardliners led to hundreds of thousands of people contacting Congress to demand reform and the temporary expiration of three surveillance provisions.

1. A new sunset: Should Congress choose to reauthorize Section 702, any reauthorization must include a sunset, a date beyond which government intelligence agencies cannot use the authorities granted under Section 702 without passage of a new law. Sunsets are the primary means for revisiting and reforming controversial laws, and we want to make sure that Congress looks at this law again in the future.

2. Close the backdoor loophole: Warrantless ‘backdoor’ searches of Americans’ information must end. A backdoor search, which the government calls a “U.S. person query,” is when an intelligence agency deliberately searches through its massive databases with selectors for known US persons. In other words, after searching and copying billions of private communications, something allowed by law only in the interest of targeting non-Americans, the government searches through that huge store for information they know belongs to an American. We know these searches happen thousands of times per year — the total number of backdoor searches isn’t publicly known — and they are routinely used when the FBI starts an investigation into a U.S. person. Backdoor searches fly in the face of both the constitutional rights of Americans and the clear Congressional intent to permit foreign intelligence collection under Section 702. The House of Representatives overwhelmingly has supported reforming this provision in the past, and a fix must finally be incorporated into any law reauthorizing Section 702.

3. Limit ‘about’ collection: Currently, the government not only scans for communications to or from a target, but also for communications that are ‘about’ a target. For example, when the government searches for an email address, it doesn’t just look to see who sent and received the email, but whether the email address is included in the body of a message. In other words, the government is searching through the contents of communications. No programmatic surveillance should be allowed to operate this way because it requires searching en masse through the communications of innocent people suspected of no wrongdoing. A surveillance apparatus that reviews people’s communications without evidence of wrongdoing is extremely dangerous. Historically, mass surveillance has been applied disproportionately against communities of color and people outside the political mainstream. If the government’s past actions are to be any indicator, it is likely to leak into investigations of no relevance to national security. It also results in erroneous arrests.

4. Improve notice requirements and ban parallel construction: Section 702 is an extraordinary surveillance tool, and it must not be allowed to trample the constitutional rights of defendants and the authority of the courts. Unfortunately, we have seen disturbing examples where prosecutors failed to provide notice to defendants about the information being used to prosecute them. We are deeply concerned about possible evidence laundering designed to conceal intelligence collection practices through what’s known as ‘parallel construction.’

Parallel construction may occur in this context when the government uses information it collected for intelligence purposes for criminal prosecutions. This is problematic because the standard the government must meet to get the green light to collect information for intelligence purposes is lower than what the constitution allows in the criminal context. To get around the constitution and to hide collection methods, the government tips off investigators or prosecutors using the intelligence-derived evidence, and then the investigators recreate the investigation using information that could survive in court. The use of this ruse undermines the constitutionally-recognized right of a criminal defendant to test the basis of surveillance and the veracity of information used against them. These critical safeguards for justice cannot function when defendants do not know the original source of the investigation and the information used against them.

5. Disclose secret interpretation of law: Secret interpretations of law have no place in the U.S., yet the Justice Department’s Office of Legal Counsel secretly interprets law for the Executive branch, at times producing indefensible guidance that vitiates the statutes enacted by Congress. For instance, when the Bush administration wanted to torture detainees, it needed to avoid U.S. law and the Geneva Conventions. Cue John Yoo, an attorney for the Office of Legal Counsel, who wrote a memo okaying torture. While his analysis was not up to legal snuff, and was eventually withdrawn, and Yoo was described by DOJ as having “committed intentional professional misconduct,” the opinions issued by OLC kept Bush administration officials safe from prosecution and allowed torture to go ahead — all blessed by a secret memo. For an issue as critical and potentially dangerous as mass surveillance, a bill reauthorizing Section 702 must be safeguarded against any such abuse. We need to know the administration has not secretly reinterpreted the law and that the will of Congress has been faithfully implemented.

There are many other reforms to Section 702 that Congress should consider, and which we would wholeheartedly support including in reform legislation.

For example, we would support:

  • Limiting the purposes for which Section 702 can be used to collect information — especially ‘foreign affairs’ purposes that lie beyond counterterrorism.
  • Ensuring that U.S. persons can sue the government when it oversteps its surveillance authority.
  • Allowing companies to report on their compelled and voluntary cooperation with the government in greater detail.
  • Requiring the government to destroy data and limit retention of information, especially for U.S. person data.
  • Requiring the government to show that its targets are agents of a foreign power.
  • Requiring more government disclose about collection, especially with regards to the FBI, which is exempt from some of USA Freedom Act’s transparency requirements.
  • Strictly limiting the circumstances under which 702 information can be used after it is collected.

First published on Just Security.

Drawing a Line on Mass Surveillance: How Congress Must Reform Section 702 was originally published in Demand Progress on Medium, where people are continuing the conversation by highlighting and responding to this story.

by Daniel Schuman at March 27, 2017 05:16 PM

Lesser known Senate rules

Rule 19 is interpreted to prevent any disparagement of another senator, regardless of whether it is true. (Rarely used)

The rule of perpetuities describes the sense of subjective time elapsed once a senator commence an oration.

The Graham rule describes a privilege against testimony in a murder trial of another senator should death occur on Senate floor.

Note: Godwin’s rule (now a law) was suspended from 1939–1945.

Rule 34 applies to members of the senate but no one has ever dared check its application.

Rule 66 permits the permanent removal of senators who are members of the Jedi order.

The mirror rule describes what every senator sees when looking at a reflecting object.

The Franklin rule describes the circumstances under which a republic can be maintained.

The public conveyance rule describes the strictures placed on senators from Delaware in their choice of mode of transportation.

The Thurmond rule describes a longstanding caution about any comely person being located within arm’s reach of a senator.

The Daschle rule states the likelihood of a member of the Senate becoming a lobbyist approaches 1 as relates to the passage of time.

Lesser known Senate rules was originally published in Demand Progress on Medium, where people are continuing the conversation by highlighting and responding to this story.

by Daniel Schuman at March 27, 2017 03:05 PM

The House Rules Should be Publicly Available in Advance of Their Adoption

At the start of the 115th Congress, there was a fight over whether the Office of Congressional Ethics should continue its existence. I won’t get into the merits of the disagreement here (although I’ve written about it elsewhere), but how it occurred is interesting.

The Office of Congressional Ethics is one of the many offices and agencies created by the rules of the House of Representatives, which are adopted on the first day of the new Congress. The House Rules are contained in a simple resolution, and that resolution usually is released to the public at most 24 hours before the vote, and sometimes with even less notice. At the start of the 115th Congress, the Republican Conference did not finalize the proposed rules until the night before they were to be considered by the House, and the full text didn’t leak out in full until the day of the vote.

More or less, this is the general practice of both parties, which is neither transparent nor helpful to the deliberative process. And yet, bills and joint resolutions were publicly available online for 3 days in advance of when they were voted on, just as the House rules require. What was going on?

As a matter of policy, the House Republicans pushed forward a 72-hour rule by which legislation should be available to the public before a final vote on the floor. Here is then-Speaker Boehner making the case for its adoption.

Here’s the 72-hour rule was put into text, as descried in the House Republican document “A Pledge To America.”

We will give all Representatives and citizens at least three days to read the bill before a vote. (emphasis added)

As it turns out, there are many different 3 days rules that apply to different types of documents: reported bills and resolutions (Rule XIII, Clause 4(a)), unreported bills and joint resolutions (Rule XXI, clause 11), conference reports (Rule XXII, clause 8(a)), Special Rules (Rule XIII, Clause 6(a)). (This CRS Report explains the 3-day rule.)

In addition, it’s not a 72-hour rule, as is generally understood, but has been implemented as a 3 legislative day rule, which can be considerably shorter. In some instances, barely 24 hours.

Even so, as the rules from the prior Congress have expired, and new rules for the House has not been adopted, what rules existed at the start of the 115th Congress that could require legislation be made publicly available prior to a vote?

A clue is found in House Rule XXIX, clause 1. It states:

The provisions of law that constituted the Rules of the House at the end of the previous Congress shall govern the House in all cases to which they are applicable, and the rules of parliamentary practice comprised by Jefferson’s Manual shall govern the House in all cases to which they are applicable and in which they are not inconsistent with the Rules and orders of the House.

In other words, the House of Representatives has (in effect) an underlying set of parliamentary practices that constitute a common law of sorts that apply even when the House has not adopted new rules. That would explain why so many other bills and joint resolutions were published three days in advance of the start of the new Congress. And House Rule XXIX clause (3) explains why those bills were available online:

3. If a measure or matter is publicly available in electronic form at a location designated by the Committee on House Administration, it shall be considered as having been available to Members, Delegates, and the Resident Commissioner for purposes of these rules.

But, if all of that’s true, why were the House Rules not available in advance?

As it turns out, there is no House rule that requires simple resolutions to be made available to the public in advance of a vote. That long list of provisions that require pre-publication does not include simple resolutions.

Simple resolutions include things like a statement honoring someone’s life, but they are also used to elect (i.e appoint) members to congressional committees, control debate on the House floor including how legislation may be considered and what amendments (if any) might be offered, allot money to committees, and … establish the Rules of the House of Representatives.

Even so, this violates the pledge by House Republicans. As we saw, the Rules of the House of Representatives establish policy, not just handle administrative matters or make statements about one matter or another. The proposed abolition of the Office of Congressional Ethics was a big deal, and required at least a minimum of notice and debate.

At least in the case of the House Rules, the resolution that would put them into effect should be available to all members of Congress and to the public 3 days in advance. They should be treated like all the bills and joint resolutions that were made publicly available in advance of the start of the new Congress.

The House Rules Should be Publicly Available in Advance of Their Adoption was originally published in Demand Progress on Medium, where people are continuing the conversation by highlighting and responding to this story.

by Daniel Schuman at March 27, 2017 03:04 PM

A small step towards a better House of Representatives

Today the Committee on House Administration took a small but important step to restore the House of Representatives as an effective legislative and oversight body. It voted unanimously to increase funding for each permanent committee — with four committees receiving a double-digit percentage increase.

The legislative branch is appropriated 0.1% of the federal budget to oversee the entire federal government, with much of that going towards non-legislative functions like security and facilities. Congress is woefully underfunded to perform its legislative, oversight, and representational duties, and that has undermined its ability to serve as a check on the executive branch.

In particular, over the last few decades, Congress has dismantled its ability to govern. It ceded its oversight and legislative responsibilities to an over-assertive executive branch and weakened its ability to engage in thoughtful lawmaking. As an illustration, the House has a skeleton crew by historic norms, with 57% fewer committee staff now than it employed in 1979, a drop from 1,909 people in 1979 to 1,100 in 2015. It’s no surprise that people think poorly of Congress.

The most notable increase in funding from today’s vote is in the committee that oversees the intelligence community — the House Permanent Select Committee on Intelligence (HPSCI) — which received a 31 percent increase, to a total of approximately $6 million annually. HPSCI will still be a comparatively poorly funded committee, ranking 12th out of 20 in terms of annual allotment.

In an article entitled Improving Congress’s Oversight of the Intelligence Community, we argued that HPSCI is woefully understaffed to perform its duties. “Last year the Committee had a 33-person staff and a $3.8 million dollar budget (the Intelligence Community’s budget is 18,421 times larger).” That point may have had some traction, as HPSCI Chair Devin Nunes (R-CA) referred to it in his testimony requesting additional funds. While this increase won’t solve the mismatch between committee funding and oversight responsibilities, it does start to move us, slowly, in the right direction.

With the new allotment, HPSCI will be able to hire more staff and be able to better retain the staff it has. It will allow for improved oversight of the work of the intelligence community, although more money and additional reforms still are necessary, such as potentially providing staff designees for members of the committee.

What’s true for HPSCI is true for all the committees and for Congress writ large. Today is a small step in the right direction.

A small step towards a better House of Representatives was originally published in Demand Progress on Medium, where people are continuing the conversation by highlighting and responding to this story.

by Daniel Schuman at March 27, 2017 03:03 PM

March 10, 2017


A Small Step Towards a Better House of Representatives

A Small Step Towards a Better House of Representatives

Today the Committee on House Administration took a small but important step to restore the House of Representatives as an effective legislative and oversight body. It voted unanimously to increase funding for each permanent committee — with four committees receiving a double-digit percentage increase.

The legislative branch is appropriated 1% of the federal budget to oversee the entire federal government, with much of that going towards non-legislative functions like security and facilities. Congress is woefully underfunded to perform its legislative, oversight, and representational duties, and that has undermined its ability to serve as a check on the executive branch.

In particular, over the last few decades, Congress has dismantled its ability to govern. It ceded its oversight and legislative responsibilities to an over-assertive executive branch and weakened its ability to engage in thoughtful lawmaking. As an illustration, the House has a skeleton crew by historic norms, with 57% fewer committee staff now than it employed in 1979, a drop from 1,909 people in 1979 to 1,100 in 2015. It’s no surprise that people think poorly of Congress.

The most notable increase in funding from today’s vote is in the committee that oversees the intelligence community — the House Permanent Select Committee on Intelligence (HPSCI) — which received a 31 percent increase, to a total of approximately $6 million annually. HPSCI will still be a comparatively poorly funded committee, ranking 12th out of 20 in terms of annual allotment.

In an article entitled Improving Congress’s Oversight of the Intelligence Community, we argued that HPSCI is woefully understaffed to perform its duties. “Last year the Committee had a 33-person staff and a $3.8 million dollar budget (the Intelligence Community’s budget is 18,421 times larger).” That point may have had some traction, as HPSCI Chair Devin Nunes (R-CA) referred to it in his testimony requesting additional funds. While this increase won’t solve the mismatch between committee funding and oversight responsibilities, it does start to move us, slowly, in the right direction.

With the new allotment, HPSCI will be able to hire more staff and be able to better retain the staff it has. It will allow for improved oversight of the work of the intelligence community, although more money and additional reforms still are necessary, such as potentially providing staff designees for members of the committee.

What’s true for HPSCI is true for all the committees and for Congress writ large. Today is a small step in the right direction.

Originally published in Just Security. Co-authored by Daniel Schuman, Phillip Lohaus, and Mandy Smithberger

by Daniel Schuman at March 10, 2017 05:57 PM

February 13, 2017


Calculating public burden using OIRA data -- Part Two

Yesterday, I published an article about using open government data to hunt for paper-based information requests by the government. Based on the data, it looked like there are still a lot of hours spent filling out paper-based forms. As I noted, though, I ran out of time to do careful analysis. So, today, let's explore deeper.

First, we'll create a histogram to look for the distributions of requests. To do so, we'll use pandas to examine the results data, and specifically the histogram method.

In [1]:
# Set up the graphing environment. Because I'm using jupyter notebooks, first I need to tell
# it to show the graphs inline. I also use the `ggplot` style, because it's less hideous. 
%matplotlib inline
import matplotlib'ggplot')
In [2]:
import pandas as pd
data = pd.read_json('results.json')
<matplotlib.axes._subplots.AxesSubplot at 0x7fca4799d358>

Wait. Hold on right there. That's not what you'd expect to see. That looks like there's an outlier. Let's see what that might be... To do so, we look for the top ten burdens.

In [3]:
data[["burden", "title"]] .sort_values('burden', ascending=False).head(10)
burden title
720 2997500000 U. S. Business Income Tax Return
729 48731780 IRA Contribution Information
719 34115874 Form 1099-DIV--Dividends and Distributions
718 24951529 Return of Organization Exempt From Income Tax ...
248 20036012 2017-2018 Free Application for Federal Student...
509 13500230 National Fire Incident Reporting System (NFIRS...
717 10880812 Employer's Annual Tax Return for Agricultural ...
497 9902378 Arrival and Departure Record
449 7736084 Physician Quality Reporting System (PQRS) (CMS...
713 7041290 Customer Due Diligence Requirements for Financ...

Oh dear. Looks like we've got a pretty obvious mistake here: "U.S. Business Income Tax Return" can definitely be filed electronically. Same with the other things on the list. And that one outlier accounts for 3 billion of the 3.3 billion hours. Oof. So what gives?

Well, it turns out that the way that OIRA displays the burden data is that if any of the forms that are part of an information collection request is not electronically available, then the burden for all of the forms gets aggregated. And unfortunately, there doesn't seem to be an obvious way to back out the other forms. So, that's not very useful, unfortunately.

Let's see what the total burden is if you remove the top 20% of information collection requests.

In [4]:
"{:,} hours".format(data.burden.sum() - data.sort_values('burden', ascending=False).head(220).burden.sum())
'5,589,316 hours'

So, that feels a lot more sane, and a lot less exciting. There are only 5,589,316 hours of public burden for everything but the top 20% of information collection requests.

In the end, this is a great lesson in how a data schema can lead to incorrect conclusions.

Still, we have some good data near the bottom of the chart.

In [5]:
<matplotlib.axes._subplots.AxesSubplot at 0x7fca467f8080>

In other words, there are a lot of information requests that account for a couple hundred hours of public burden. Not a surprising result, but perhaps even more useful in the end. This result means that there are about 200 forms in the middle that account for much of the remaining burden hours. Now, that seems like a good place to start.

February 13, 2017 12:00 AM

February 12, 2017


CRS Report Author Information

CRS Report Author Information

Jun, we intentionally redact the CRS report author information. The ultimate purpose of this website is to encourage Congress to change its policy and publish CRS reports online.

While I think it meritless, one of the concerns raised by CRS in opposition to Congress publishing CRS reports is an (unfounded) fear that lobbyists or others will somehow gain greater access to the authors of the reports and try to bias their analyses or intimidate the authors. I don’t think that greater public accessibility will lead to that result for the reasons described in a lengthy letter we wrote to Congress last year.

However, I would not want this unsupported argument around authorial information to be a barrier to Congress releasing the reports. By showing that redaction is feasible at scale, we can move the debate past this sticking point and encourage the relevant congressional committees to have a conversation with us.

Of course, we publish enough information that anyone who is interested in an unredacted report can simply call their member of Congress and ask for it or search for it online.

by Daniel Schuman at February 12, 2017 10:11 PM


Calculating public burden using OIRA data

Recently, the new Administration issued an Executive Order aimed at Reducing Regulation and Controlling Regulatory Costs. As part of this effort, the Administration is supposed to offset regulated costs.

So, that got me thinking. The Office of Information and Regulatory Affairs (OIRA) is charged with reviewing not only regulations, but also is charged with reviewing agency's information-collection requests under the Paperwork Reduction Act. And as part of that review, OIRA and the agencies are supposed to track the public burden associated with the information collection.

As a thought experiment, I decided to see whether we could find some low-hanging fruit, namely paper-based information requests. And the results were interesting...

The analysis

First, we need to find the data. Fortunately, that data is already available in bulk from OIRA. Well done, OIRA.

From here, it's simple. First we use lxml to parse the XML file.

In [1]:
from lxml import etree
tree = etree.parse('CurrentInventoryReport.xml')
root = tree.getroot()

So, now that we have the data and it's parsed, where to begin? Let's see what this data looks like by checking out the first Information Collection Request in the data.

In [2]:
print(str(etree.tostring(root[0], pretty_print = True).decode('UTF-8')))
<InformationCollectionRequest xmlns:xsi="">
        <Title>National Appeals Division Customer Service Survey</Title>
        <Abstract>To conduct a customer survey to gather date on the quality of how to make improvements in NAD processes and establish customer service standards.       </Abstract>
        <ICRTypeCode>Revision of a currently approved collection</ICRTypeCode>
                <PhoneNumber>703 305-2514</PhoneNumber>
                    <NameOfEO>Setting Customer Service Standards</NameOfEO>
                <Title>National Appeals Division Customer Service Survey</Title>
                    <LineOfBusiness Code="116">Litigation and Judicial Activities</LineOfBusiness>
                    <Subfunction Code="055">Resolution Facilitation</Subfunction>
                        <FormName>NAD Customer Survey</FormName>
                        <ElectronicCapability>Paper Only</ElectronicCapability>
                    <PublicCode>Individuals or Households</PublicCode>
                <Title>National Appeals Division Customer Service Survey Non-Respondents</Title>
                    <LineOfBusiness Code="116">Litigation and Judicial Activities</LineOfBusiness>
                    <Subfunction Code="055">Resolution Facilitation</Subfunction>
                        <FormName>NAD Customer Survey</FormName>
                        <ElectronicCapability>Paper Only</ElectronicCapability>
                    <PublicCode>Individuals or Households</PublicCode>

Well, would you look at that?! There's an AvailableElectronically element.

So, how about we try and find all the agencies that have some information collection requests that are not available electronically.

To do this, we use xpath to find all the Information Collection Requests that has a "AvailableElectronically" element with "No". Then, we simply pick the fields we want to dump into a Python dict.

In [3]:
results = []

def getInfoRequests(element):
    res = []
    collections = element.xpath('./InformationCollections/InformationCollection')
    for collection in collections:

            "title": str(collection.xpath('./Title/text()')[0]).strip(),
            'obligation': str(collection.xpath('./ObligationCode/text()')[0]).strip(),
            'affected': str(collection.xpath('./AffectedPublicCode/PublicCode/text()')[0].strip()),
            'number_responses': str(collection.xpath('./NumberResponses/AnnualQuantity/text()')[0].strip()),
            'burden_hour': str(collection.xpath('./BurdenHour/TotalQuantity/text()')[0].strip()),
            'frequency': collection.xpath('.//ReportingFrequency/text()'),
    return res

requests = root.xpath('//InformationCollectionRequest[.//AvailableElectronically/text()[. = "No"]]')

for request in requests:
        "agency_code": request.xpath('./AgencyCode//text()')[0],
        "omb_control_number": request.xpath('./OMBControlNumber//text()')[0],
        "icr_reference_number": request.xpath('./ICRReferenceNumber//text()')[0],
        "title": str(request.xpath('./Title//text()')[0]).strip(),
        "abstract": str(request.xpath('./Abstract//text()')[0]).strip(),
        "expiration_date": str(request.xpath('./Expiration/ExpirationDate//text()')[0]).strip(),
        "burden": int(request.xpath('./Burden/BurdenHour/TotalQuantity/text()')[0]),
        "requests": getInfoRequests(request),
        "cost": int(request.xpath('./Burden/BurdenCost/TotalAmount/text()')[0]),

Now that we have a Python dict, time for the payoff. We sum the burden for each Information Collection Request and print the results.

In [4]:
burden = sum([result["burden"] for result in results])
agencies = set([result["agency_code"] for result in results])

print("There are %s information requests that cannot be filed electronically from %s different agencies with a total public burden of %s hours." % (len(results), len(agencies), "{:,}".format(burden)))
There are 1110 information requests that cannot be filed electronically from 149 different agencies with a total public burden of 3,298,793,451 hours.

That's not a typo. That's a total of 3.3 billion hours of public burden associated with paper-based information requests. Seems like a target-rich environment.

Unfortunately, I've run out of time to really get in there and visualize where to begin. So, for now, I'll simply save the results in a json file for later.

In [5]:
import json
with open('results.json', 'w') as fp:
    json.dump(results, fp, indent=2)

Hope you enjoyed this little exploration in how open government data can be used to make government work better. It's important to note that none of this would be possible if OIRA did not publish the data in bulk... Again, nice work OIRA.

February 12, 2017 12:00 AM

February 07, 2017


How to Support the Resistance

Over the last few weeks friends have asked me to name organizations they should financially support to deliver the biggest bang for their buck in fighting the Trump administration.

This is my list based on a decade of work as an advocate and 17 years in and outside government in Washington, D.C. Caveats at the bottom.

In brief:

The Fighters
→ Demand Progress (c3 and c4) — donate
→ Free Press (c3 and c4) — donate
→ Color of Change (c4) — donate

The Truth Tellers
→ GovTrack (LLC)— donate
→Project on Government Oversight (c3) — donate
→ ProPublica (c3) — donate + Center for Public Integrity (c3) — donate

The Fighters

Demand Progress is where I work as policy director. Our purpose is to build a modern democracy, and our issues include civil liberties, open government, open internet, and money and politics. We are on the vanguard of fighting for democracy and we punch way above our weight. We played a key role on the debate on mass surveillance, on SOPA/PIPA (net neutrality), shaping the ongoing Trump nomination fights, and protecting the Office of Congressional Ethics.

Demand Progress has 2 million members and fewer than 10 staff. We run a number of projects including Rootstrikers, the Congressional Data Coalition, and help support the Fourth Amendment Advisory Committee. Co-founded by David Segal and Aaron Swartz, Demand Progress is both a c(3) and c(4) organization, which means we can do just about everything. Donate online or drop me a line. (We accept c(3) and c(4) donations.)

Free Press. I’ve long been impressed by the quality of work from Free Press, and especially their lobbyists. They describe their work as fighting for your right to connect and communicate, and they are tenacious in those efforts, bringing in slightly under a million activists and a highly capable lobbying team. From civil liberties to an open internet, they are at the forefront of the resistance.

Free Press has around 25 staff. They accept both c(3) and c(4) donations.

Color of Change accurately describes themselves as “a high-impact, collaborative team of activists committed to making justice real for Black people.” They work on all the important issues that affect black people and are phenomenally good at their work. They are fighting back.

Color of Change has around 35 staff. Donation information here.

The Truth Tellers

Just a word about the Truth Tellers. These organizations are not partisans in the fight against Trumpism. Rather, they work to make our political space more vibrant and get information out to people. (Some of the Fighters also do this.)

The Project on Government Oversight is a well-lead, smartly staffed advocacy and research organization that champions good government issues including whistleblower protection. They describe their goals of achieving a more effective, accountable, open, and ethical federal government. They are one of the few organizations left standing in this space as foundation funding for open government largely has evaporated. They have around 25 staff.

POGO is a non-partisan c(3) organization, so they do not do campaign-related work and there are some limits to how much they can lobby. Donate here.

GovTrack is a website that provides more than 800,000 people each month basic information about the inner workings of Congress. Built and run by just one person, GovTrack empowers advocates, journalists, and regular citizens to make our democracy better. GovTrack also makes the data it gathers available to everyone for free, and that empowers a whole ecosystem of information-sharing organizations and tools. It is organized as a small business (and LLC), but is run like a charity. Donate.

ProPublica and Center for Public Integrity are a public-interest journalism outfit that has doubled-down on investigative journalism. Their stories change the world and they invest in the kind of deep reporting that helps push back the truthiness and alt-facts that are so rapidly encroaching.

ProPublica says they are dedicated to “producing journalism that shines a light on exploitation of the weak by the strong and on the failures of those with power to vindicate the trust placed in them.” Center for Public Integrity says they “serve democracy by revealing abuses of power, corruption and betrayal of public trust by powerful public and private institutions, using the tools of investigative journalism.”

They are c(3) organizations; Pro Publica has more than 50 journalists; CPI has around 35. Donate here to ProPublica and donate here to CPI.


While I regularly lobby Congress on civil liberties, open government, open internet, and money in politics issues, and have done so for a decade, my impressions are idiosyncratic. I like organizations that find points of leverage and use a variety of tactics to meet their goals. I also like the issues I work on.

  1. My list is heavily biased towards small organizations that are on the vanguard — and where a small infusion of cash will make a significant difference in what they can do. I am focused on organizations with fewer than 50 staff, and ideally under 20. So slightly larger but eminently worthy organizations, like EFF, did not make the list.
  2. This list reflects my personal opinions.
  3. There are many other good organizations in the world that do amazing work that provides a high return on donations, including those focused on resistance to Trump. If an organization is comparatively well funded, or fairly large, or fairly established, or has a more diffuse mission, that weighed against inclusion here. Similarly, international organizations were not included.
  4. There are also worthwhile organizations to donate to separate from the Trump issue — such as our local hospice, local shelter, local food pantry, and Planned Parenthood — but this list is specifically focused around the political events shaping our world.

About your donation

You may have noticed that I indicated whether an organization is a c(3) or a c(4). (GovTrack is neither, it’s a private corporation, a LLC.)

What this means for the donor (i.e. you). What this means for you is that c(3) donations are tax deductible, but c(4) donations are not. That is, when it comes to file your taxes — depending on how you do it — you can write off your donation. BUT: c(4) donations are better for the organization.

What this means for the recipient. There is a big difference between donations to c(3) and c(4) organizations.

  • 501(c)(3) organization, known as charitable organizations, do not pay taxes and can receive donations without the donors paying taxes. But, they must not participate in political campaigns and must strictly limit the amount of lobbying they do to a tiny amount of their budgets.
  • 501(c)(4) organizations, known as social welfare organizations, must operate primarily for the public good. Donations to them are not tax exempt. But they can engage in a lot more activities, including lobbying and intervening in political campaigns (but cannot coordinate with candidates on those campaigns). So they can do a lot more with the money.

by Daniel Schuman at February 07, 2017 01:59 PM

January 26, 2017


bike hack night

I gave a talk at Bike Hack Night a couple of weeks ago, and have finally managed to put the audio and slides online. It runs about 12 minutes long and describes how I used the ESP8266 wifi microcontroller, ultrasonic rangefinding sensors, a homegrown iOS app and some data analysis to examine how much space cars afford me when passing me as I ride my bike.

It was a fun project! The big takeaway for me was the accessibility of these tools, both in terms of learning the technology and in terms of price. If you assume a smartphone is already handy, total bill of materials doesn’t even hit the $20 mark.

You can find the slides and audio here:

by Tom at January 26, 2017 04:52 PM

January 03, 2017


Effort Underway to Undermine the House’s Ethics Watchdog

Source: MasonDan

Update at 12:52 pm on Tuesday: After an outpouring of phone calls, emails, tweets and an avalanche of news stories, House Republicans held a secret meeting just before noon and pulled the Goodlatte amendment, which would have eviscerated the Office of Congressional Ethics. While we have won for now, members are quoted as saying they’re going to revisit the issue later this year. We must remain vigilant.

Update at 10:05 am Tuesday: We are trying to find out which members voted to gut OCE. YOU CAN HELP. Follow this link and let us know who voted to undermine OCE.

Update at 7:22 pm: House Republicans, in a secret meeting of their conference, voted 119–74 to undermine the Office of Congressional Ethics, the House’s independent ethics watchdog, by subsuming it under the Ethics Committee, taking away most of its powers, and undermining its transparency. The vote itself is secret. The amendment will be placed into the House Rules package, to be voted on tomorrow, which inevitably will pass. This is bad news, and we must keep calling on Congress to restore and strengthen OCE. Here is the text of the amendment (credit Eric Lipton).

An effort apparently is afoot today to weaken the House independent ethics watchdog, the Office of Congressional Ethics (OCE), by placing it under the House Ethics Committee. This would undermine the very purpose it is meant to serve.

OCE was created because Congress and the general public viewed the House Ethics Committee as having failed in its duties to police the House of Representatives, resulting in a series of transgressions culminating in the Abramoff corruption scandal and the Foley page sexting scandal. OCE and the Ethics Committee are institutional rivals, with very different roles: OCE investigates bad behavior and adds transparency to the process; the Ethics Committee operates in secret and only it can mete out punishment.

According to reporter Billy House, Rep. Goodlatte is leading the charge to undermine OCE. He tweets:

Just recently, a bipartisan coalition of open government and ethics organizations called on the House to re-authorize OCE without weakening its powers. They wrote:

OCE is one of the stellar ethics accomplishments of the House of Representatives…. OCE has helped change a secretive and oft-perceived moribund ethics enforcement process into a reasonably more accountable and active system.

It seems that the amendment is being offered as part of the internal House Republican conference debate on the Rules of the House of Representatives, which is taking place today. House Republicans will present their rules package late tonight or tomorrow, and it will be voted on tomorrow (Tuesday).

In doing so, this also apparently violates the GOP’s Pledge to America, which says that Republicans will “give all Representatives and citizens at least three days to read the bill before a vote.” This pledge has been interpreted as requiring 3 legislative days.

I am having trouble seeing how public release of the proposed House Rules tonight (or tomorrow) will satisfy that 3-legislative-day requirement, but it certainly violates the spirit. Other legislation intended for consideration this upcoming week is already online, which begs the question of why not here?

We are reaching out by twitter to encourage the House to leave OCE as an independent ethics watchdog. Please re-tweet:

The Office of Congressional Ethics is one of the best congressional reforms of the past two decades. Weakening OCE — in particular, placing it under the enervated Ethics Committee — will foster corruption and undermine congressional transparency.

UPDATE at 5:40pm — Here’s a description of the Goodlatte amendment:

Renames the “Office of Congressional Ethics” the “Office of Congressional Complaint Review,” and places the Office under the oversight of the Committee on Ethics. Provides protections against disclosures to the public or other government entities, and requires that any matter that may involve a violation of criminal law must be referred to the Committee on Ethics. Provides greater certainty as to the commencement and termination of any review, including timely notice to the subject and Committee on Ethics. Bars the consideration of anonymous complaints and requires rules changes to better safeguard the exercise of due process rights of both subject and witness. Limits the jurisdiction of the Office to the last three Congresses to conform to the statute of limitations for the Committee on Ethics.

In other words, it eviscerates OCE.

Update at 7:53: Here is a statement for attribution to Daniel Schuman, Policy Director, Demand Progress

“Today House Republicans made an unfathomable decision to weaken ethics and accountability in the House of Representatives, undoing reforms enacted in the wake of a series of scandals that shook Washington. The House cannot police itself, which is why it created the Office of Congressional Ethics, an independent watchdog with a fact-finding mission that uses transparency to provide accountability for Members of the House and serves as a stimulus to the moribund Ethics Committee.
With today’s action — taken behind closed doors and with no opportunity for public debate — the House now rolls back the clock to an era of corruption and decay. We will all be the worse for it.”

Update on Tuesday at 9:28am: My colleague at CREW Adam Rappaport tweets that over the last two Congresses, OCE has about a 50% ratio of referring matters on to the House Ethics Coommittee.

Journalist Steve Rich tweeted that his article “10 members of Congress took trip secretly funded by foreign government” would not have been possible without the work of OCE.

Not only is that true, but OCE’s report showed where the House Ethics Committee failed to do its job and misled members into taking trips and receiving gifts that federal law prohibits.

This backgrounder from Public Citizen makes the case for an independent Office of Congressional Ethics.

Effort Underway to Undermine the House’s Ethics Watchdog was originally published in Demand Progress on Medium, where people are continuing the conversation by highlighting and responding to this story.

by Daniel Schuman at January 03, 2017 05:53 PM

January 01, 2017


This Week I Ate: Asheville

For Christmas this year I headed down to Naples, Florida to visit my grandparents. By car. The from Washington to Naples is about 17 hours and not something I was excited to jump in the car for. However, I also wasn’t keen on shelling out buckets of money for subpar flight accomodations.

To get the most of the miles I would spend in my car I thought of places I could visit en route to/from Florida. I landed on Asheville, NC from the extensive coverage of the city’s beer and food scene that I’ve been exposed to over the past year (admittedly thanks to Bon Appetit Magazine). I was also able to convince my boyfriend to meet me in Atlanta en route to Asheville after his Boston visit. So, with a phone full of podcasts I headed from Naples to Atlanta to pick up the boyfriend after Christmas. His company both in Asheville and on the drive back was so appreciated.

The two places at the top of my food list in Asheville were Buxton Hall and Hole Doughnuts. My orders at both did not disappoint.

Hole Doughnuts

First up for our day in Asheville was Hole Doughnuts. The little shack exists across the river in West Asheville, a couple minute drive away from our Airbnb. Hole Doughnuts is known for their doughnuts (obviously), but I was also really impressed with the vibe. A full parking lot and a to-the-door line is always indicative of a delicious meal to be had, but for a Wednesday morning at 10am, I was impressed with how much of a local hangout Hole was: UNC Asheville students gathered around to study together; a man grabbed a half dozen to bring home to his family; families sat together at picnic benches for a lazy breakfast. Oh, and this dougnut was named best of the year by Bon Appetit, too.

To match its limited hours of 7am-2pm, Hole has a perfectly limited menu. Every day Hole serves vanilla glazed, rubbed cocoa, and sesame almond. Each week they also rotate in a special flavor. The week we were there, I was pleased to see mulled wine on display. Wine for breakfast is an automatic win.

Hole serves no other food, but does have an awesome drink selection — coffee, orange juice, and milk (both plain and chocolate) from local cows. I recommend the coffee to keep you warm as you walk through Asheville like we did.

We ordered on of each doughnut and sat at a low counter right in front of the fryer. Off to the left dough was weighed, balled, and hand-shaped (the Hole signature move) on a simple butchers block counter. Directly in front a Frylator bubbled with doughnuts fried to order. To our left, each doughnut was dipped in one of the four toppings and served immediately on wax paper to each customer. Despite the fry-line sitting within the dining room, there was an awesome calm emitted by the small crew of 4 taking orders and making doughnuts. If you ever end up at Hole Doughnuts — and I highly recommend you do — wait for a seat at the counter. The crew will not only impress you, but will answer all of your doughnut questions, too.

Hole Doughnut’s (top to bottom) coffee, cocoa rubbed doughnut, and mulled wine doughnut.

As for the actual doughnuts, each had the wonderful signature hand-shapen look (much artisanal), served warm and crispy. The interior of the doughnut was like a super light yeast doughnut — no cake here — but luckily lacked the oily-ness that most yeast doughnuts have. We were told this is in part due to the type of rice oil that Hole employs. Unfortunately, we were only able to try two of the four flavors (we were accidentally served double mulled wine and rubbed cocoa instead of one of each) but they were both totally awesome. The rubbed cocoa was bitter and offset the sweetness of the dough nicely, but was very rich — proceed with caution, or order one with a friend. I really enjoyed the mulled wine flavor with it’s lighter flavor of cloves and allspice, but the boyfriend had trouble discerning (a first!). He thought it was the plain glazed.

Buxton Hall

After some time walking downtown through Asheville’s street, full of doughnuts, we hit up Buxton Hall for a late lunch. Opened in 2015 and awarded top 10 new restaurant by Bon Appetit, the restaurant has been flocked by beer and food tourists — like me. We did hit about a 30 minute wait for lunch, on a weekday, the week after Christmas. The lobby has plenty of things to checkout and Buxton offers take-out of their whole menu, some prepared items like their pimento cheese, and whole pies and slices.

Buxton Hall’s dining room.

After our wait, we were sat in the very large hall at the community table next to fellow tourists from Chicago. The atmosphere throughout was friendly with families and groups throughout. We sat right in front of a full bar and while all of the drinks were delicious we opted for iced tea and Cheerwine.

Buxton Hall’s hush puppies.

Buxton Hall is a barbecue place. It boasts it whole-hog, Carolina smoke-style approach to its pork. However, I came to Buxton wanting one thing — the fried chicken sandwich that I heard about on Bon Appetit’s Foodcast a few months ago and haven’t stopped thinking about since. I ordered the sandwich, and the boyfriend opted for a pulled pork sandwich with some pasta salad. Hush puppies were also eaten.

First things first, the chicken sandwich was bomb and is simply not fair to compare against the boring pulled pork. The pork was served on a basic bun with sauce on the side and really nothing else. It was fine, but we suspect that it was this sandwich that made us both very sick and almost unable to enjoy the Asheville beer scene that night. The rally was rough.

Now, the fried chicken.

Buxton Hall’s fried chicken sandwich.
  1. Perfectly fried juicy breast topped with slightly melty orange cheese. Usually I turn my nose up at artificially colored cheese slices, but the cheese turned this sandwich up from crispy-savory to crispy-savory-creamy-nomz. Done.
  2. In-house made pimento cheese, enough said I hope.
  3. A slightly sweet bread and butter pickles brought a needed and balanced brightness to the bread-chicken-cheese combo. The boyfriend, not a fan of sweet pickles, even lauded them.

The fried chicken sandwich was what I couldn’t stop talking about all afternoon but Buxton Hall didn’t disappoint with everything else. The macaroni salad and cole slaw sides incoroporated whole grain mustard, a fun addition to what could be an otherwise basic dish. The hush puppies were mostly starch but came perfectly golden brown delicious. I recommend dipping the hush puppies in the “white barbecue sauce” that is served alongside with Buxton’s pork instead of the cream sauce served with them.

All in all, my Asheville experience was full of great food with a couple of bucket list items checked off. That’s what I call a success, and a great way to make a long drive a little shorter.

by Becca James at January 01, 2017 09:27 PM

December 28, 2016


Previewing the House’s Rules for the 115th

On the first legislative day of a new Congress, the House of Representatives operates virtually in a state of nature, governed only by the Constitution. The first order of business is electing a Speaker, and after the Speaker swears in the Members, they adopt the rules that govern the House. Until then, there are no committees, no officers of the House, nada. At that moment, it’s pure majority rule. The Rules of the House, adopted that day, set the tone and parameters for all that follows.

Recently, Bloomberg summarized a proposal from House Republicans on the Rules the House of Representatives for the 115th Congress should adopt, and I have copies of a draft that shows how these rules would differ from the 114th, so here’s what pops out as notable. (Warning: this is not comprehensive!)

But first….

The proposal I’m describing can still change before January 3rd; the text usually is publicly available on the 2nd, although I’m not aware of rules that govern when it must be available, and the 3-legislative-day presentment rule technically is not in effect. It would be nice for Democrats and Republican to publicly release the final proposals farther in advance (but I’m glad these were shared comparatively earlier than usual!)

These are not the rules for the House Republican Conference and Democratic Caucus. House Republicans usually publish their rules; Democrats (sadly) do not. Republican rules likely will be published here. Update: the R rules for the 115th are here, but were pretty hard to find.

The Rules will be published as structured data. Last Congress, for the first time, the House published its rules as structured data. This is very helpful. Here’s how the rules have changed recently: 111-to-112th, 112–113th. (I haven’t published 113–114th.)

How should the House modernize its rules? Glad you asked. Here are recs for transparency/accountability the 114th, 113th, and 112th Congresses. Here are recs for modernizing congressional oversight of the intelligence community for the 115th, and elsewhere we’ve signed on (and helped identify) ethics reform recs and a letter in support of retaining the Office of Congressional Ethics.


  • The House will continue publishing House documents in machine-readable formats. This is a BFD.
  • The ethics watchdog known as the Office of Congressional Ethics will continue in its current form. (We will have to watch to see if an amendment is offered to weaken OCE). We support strengthening the office by granting it subpoena power.
  • The House will continue to require the use of parallel citations for non-codified laws, which is making it possible to build a tool (the Amendment Impact Program) that shows how a bill would change the law in real time, at the touch of a button.
  • Members will (continue to be) able to more easily fund staffers at Congressional Member Organizations, which are congressional caucuses.
  • Docs.House.Gov, run by the House Clerk, now is authorized by a provision in the House rules itself, not just an order.

Likely in response to the Democratic sit-in on gun violence, the new rules allow the House to fine anyone who digitally records anything on the House floor, violating House rules or whatever the Speaker says is policy on electronic devices. It also underscores (or maybe grants further powers to?) the Ethics Committee to punish sit-ins on the floor when the House is in session.

This provision will get the most media attention and likely is intended as such. I suspect that it constitutes a pyrrhic victory, however, if adopted. Wealthy members of Congress can easily afford the fines, or may draw no salary and thus the mechanism created here would be ineffectual. The optics of punishing members who speak out on hot topic issues are awful, and serve to highlight the governance problems arising from the minority feeling so disempowered by the House under its rules. In addition, the way this rule it would be implemented — with the money coming out of member pay — may violate the 27th amendment, which prohibits altering member pay during the current congressional term, although I’d have to do homework to figure that one out.

The House must have a way to effectuate its subpoenas, but a new provision seems to make it a lot easier, and we’ve seen the House Science Committee abuse its subpoena authority against NGOs in its fight against climate science, using it as a political weapon instead of a fact finding tool. With a friendly administration, it’s much more likely people will go to jail for refusing to comply with (punitive) subpoenas. There’s real fear among NGOs that House committees will abuse their authority to punish political opponents, and that the new measures seem to weaken the checks on House committees and thereby makes it much easier to tie civil society up in knots. I haven’t worked through the implications of these new provisions but they make me really nervous.


  • Strengthen Congressional Oversight of the Intelligence Community. Congressional Oversight of the Intelligence Community is terribly broken. A bipartisan coalition of dozens of organizations put together common-sense, do-able recommendations to make it better, building on a nifty white paper. Those recommendations were not adopted here, which is particularly unfortunate in light of all the concerns about foreign influence in domestic elections, interference/surveillance by our own spy agencies in the domestic sphere, and impending shifts in US foreign policy.
  • Committee on the Operations of Congress. Congress is badly malfunctioning and it has been decades since Congress itself looked at the causes. A coalition of organizations endorsed a recommendation spearheaded by the Congressional Institute that called for a Joint Committee on the Operations of Congress. We’ve already seen useful, related work in the Article 1 project, but it’s not enough. The House could have kicked off its own select committee.
  • Improved Committee Transparency. We’ve seen real improvements with transparency on bills on the floor of the House, but committees still are quite opaque. The rules should be updated to release the text of amendments offered in committees and to modernize how votes are released to the public. This info is largely available through paid services, but is not available to the general public.
  • Whistleblowing. This is partially covered elsewhere, but I wanted to reiterate that whistleblowing is so important that the House should establish an office of a Whistleblower Ombudsman to help Members and Committees protect whistleblowers who talk to Congress and facilitate their doing so.
  • Nitpicky stuff. There’s a bunch of nitpicky stuff that would be useful. Witness disclosure forms, for example, could be put online at one central location, made searchable, and include a field to indicate whether the witness is a lobbyist. It’d be great for the House to have a Chief Transparency Officer, who helps people inside the institution better publish data and those outside find it. If you’re interested, I have a long list. :)


  • The House has reinstituted the seemingly archaic Holman rule, which is explained on p. 7 of this Appropriations Committee history but makes little sense to me. Based on the House’s explanation, I think it allows appropriations bills to be amended, but only when (1) the amount of money appropriated is cut; (2) federal employees salaries (or total number of positions) are cut; or (3) compensation to other people (contractors?) are cut. Drawing on news analyses, this seems like a incredibly powerful and fairly dangerous tool to cut pay or employees through amendments that are rammed through, instead of working through the slower but more deliberative processes.
  • Another provision disallows amendments to appropriation bills that would increase budget authority. Also not sure what this means, although I suspect it is connected somehow to the sequester and would prevent efforts to increase money available for the different approps cardinals.
  • There’s a further provision with prevents the committee of the whole from reporting a bill that’s funding goes beyond what’s allowed under the budget resolution. This is another way that weakens all Members of the House except the few who sit on appropriations.
  • The Speaker Pro Tempore is given priority over the Clerk’s ability to restore order prior to the selection of a new Speaker, apparently after a Speaker has been deposed. I’m not sure what the consequences of this are, but it may be a response to what happened after Speaker Boehner was forced out in the middle of a session.


  • Why is Homeland Security allowed to hold closed hearing for 5 additional days without holding a public vote to continue those proceedings? The vote doesn’t take long, and secrecy is a bad habit in the people’s house.
  • Adding the motion to postpone and the motion to recommit as postponable questions seems like it could have significant repercussions in circumstances where leadership is losing on a bill, i.e. when members would be willing to delay (kill) a measure but don’t want to outright vote against it.
  • Looks like there’s a requirement to say how many rulemakings are being directed in a bill, but not listing the directed rules itself. This could be about the balance between agencies and Congress.
  • I’m not sure what’s changing w/r/t the House Oversight Plans.


  • Reiterates that the documents in personal offices of Members belong to the Members and not the public. It’s probably worth rethinking, but not sure it’s a big deal. I wonder if there’s a way to help members preserve personal office documents that would be of public interest.
  • Former members who lobby cannot go to the House gym.
  • House Democracy Partnership will continue.
  • Granting House Intel staff deposition authority without a member present seems reasonable.

Previewing the House’s Rules for the 115th was originally published in Demand Progress on Medium, where people are continuing the conversation by highlighting and responding to this story.

by Daniel Schuman at December 28, 2016 02:28 PM

December 24, 2016


On bringing stories to data, or, the trouble with the Cubists

I did badly in every statistics class.

Econometrics 301 was my only D grade as an undergrad, and grad school was only marginally better. This is an essay about how I went from not getting it at all to writing an open-source, production-quality library of statistics functions almost from the ground up. It’s an essay about why I started working on it in 2005, and the problem in quantitative social science that led me to keep pushing until the present. There’s something of a happy ending: I kept hacking despite constant pressure to just go with the flow and accept the flaws of existing methods, and the library, Apophenia, is now in a complete enough state that one can use it for its intended purpose of bringing narratives to data.

Maybe I could start my story earlier, in ninth grade science class, where we learned about an idealized Scientific Method, that begins with a hypothesis, almost always expressed in some sort of narrative (A happens, which leads to B, which, if C is present, leads to D), and then tests that narrative using data. But applied statistics today is an eerie world where there are no stories, only a modest set of forms that bear some distant relation to the narratives they ostensibly test. This essay explains the current norms, and my efforts to come back to the ninth grade ideal of bringing narratives to data.

The first realization that got me from D-grade undergrad to my current status as a professional statistician/economist: understanding the difference between probability and statistics. Probability is an objective branch of mathematics, a bundle of theorems all of the form if these conditions hold, then this distribution will result. You can’t argue with the probability textbooks unless you want to get into philosophy of science questions.

Statistics is the subjective part of the story, the human art where we impose a view on the real world that we hope is somehow useful. After encapsulating a worldview in a set of equations and assumptions, we can describe certain properties of those models using the tools of Probability. Stats textbooks, taking an air of authority, often blur the distinction between statistics and probability, implying that it’s all on equally objective footing. As an undergrad, I couldn’t see which was which, and it was all downhill from there.

Speaking of art, here are “Woman with a lute”, by Johannes Vermeer; and “Girl with a mandolin”, by Pablo Picasso.

Vermeer and Picasso via Wikimedia Commons

Vermeer shows the context in which the person is playing to be worthy of every detail, but Picasso seems to want us to focus on the player and instrument. Picasso’s girl and mandolin blur together in parts, which is factually incorrect but perhaps a reasonable description of a person enraptured by music. I’m not going to say that one is a “better” representation of a person playing an instrument than the other, but I am willing to say that Vermeer painted a more accurate and precise representation. Given specific questions like ¿What is the player wearing? or ¿How many fingers does she have?, I’d rather have the Vermeer as a reference than the Picasso.

The second thing that I didn’t understand earlier about statistics is that, despite the implications of the textbooks, the linear models that have been the core of applied statistics for decades are far closer to Picasso than Vermeer.

A typical model might posit that

income = β_0 + β_1 * sex + β_2 * years of schooling + β_3 * years of work + ε.

How this works is that you give me a set of observations, and I will use linear algebra (not even probability or statistics!) to pin down the βs defining the line of best fit to the data. Then, you give me a new person’s sex, years of schooling, and years of work, and I can use the now-specified formula to sum up the prediction for his or her income. A few assumptions will even let me use theorems from probability to say something about our confidence regarding the estimates, given the model form and its assumptions.

Please let me remind you just how implausible this model is. Is third grade more or less important than a year of grad school? The model says there’s a global factor, β_2, that bumps up incomes in both cases. Does work experience affect a person differently from school? Sure, in that a year of the first raises income by β_3 and the second by β_2, but otherwise they’re structurally identical. Is sex relevant because women take time off to have babies, or because they’re not encouraged to take math/science classes, or because bosses are jerks? All we know is whether β_1 is positive or negative.

I know you’ve heard this one before: “essentially, all models are wrong, but some are useful.” But a model with no serious underlying narrative, which is a drawing of the world using only straight lines and the occasional curve, whose only structure is a sum of individual elements, scores especially badly on usefulness.

We could perhaps use a model with no narrative to show that income and education are positively correlated or not, and sometimes that’s all the utility we need. We could add confounding factors by adding extra terms to the sum [… + β_4 * height + β_5 * parent’s income + … ] and see if the correlation still holds. Adding terms like this is typically written up in academic papers as “controlling for” other factors, drawing a (theoretically ill-founded) metaphor to controlled experiments. It is how research seems to progress in the simple linear regression world, as the thing correlated to income in a study from one year gets added as an extra term to every regression in later years.

Despite all its cons, linear regression has one very notable pro: it’s easy to implement, even in FORTRAN 77. Yes, the 77 stands for 1977 which, by no mere coincidence, is the beginning of the period when linear regressions became increasingly common. In the present day, there is a regression feature on almost anything that handles numbers: stats packages, spreadsheets, database systems, expensive hand calculators.

And so, simple linear models are prevalent in the social sciences.

In November 2014, I surveyed the fifty most recent working papers from the World Bank’s research working paper series, and the fifty most recent from the Census Bureau’s Center for Economic Studies’ working papers series. It’s not a universal survey, but I’m comfortable taking economists at the WB and Census as typical examples of working PhD economists. I divided the papers into (A) papers that are only qualitative or only theoretical, and so make no effort to fit a model to real-world data (31 out of 100); (B) papers that use only linear methods in the family of the example above (58 out of 100 papers); and (C) papers that use anything from the infinite space of models outside of linear models (11 out of 100 papers).

Let’s start building an alternative narrative, something one might find in that thinner wedge of not-linear models. We might start with an underlying factor called “human capital”, which people build over their lives, maybe quickly at first but with diminishing returns. People then use the human capital they have and some chosen hours per week of work to gain income. We’re up to a three layer model: choice and method of human capital development, choice of work hours, a function mapping work to income. You can’t be a doctor and thus score doctor incomes without a medical degree, so we could also divide people by fields of study, which gives us another layer, tied to but distinct from the others.

We could implement this in computer code as a series of distributions and equations linking those distributions, a hierarchy of submodels. Or, we could simulate a million individual agents, each making life choices about fields and school and hours of work, then measure the aggregate outcomes given all those individual agents’ decisions. In the 1990s that was cutting edge; now that sort of agent-based model is a textbook exercise.

With a nontrivial narrative, different possibilities take different forms. Women might choose to opt out of the work force to have babies (choice of hours layer), or might choose different lines of work (field of study layer), or maybe bosses are jerks (layer mapping work to income). Later researchers building on the model might have a different form for the choice-of-hours layer, or might want to add another layer about location choice. This sort of tweak-by-tweak improvement and comparison is actively encouraged among agent-based modelers, and you can download hundreds of models at OpenABM and make such improvements.

[FWIW, this picture of a bartender is being used for the novel purpose of illustrating the Balkanization of social science research, taking a single fuzzy still from a feature-length movie, and is really no substitute for seeing the film, a time capsule of Chicago and its music from that era.]

There’s a scene in The Blues Brothers (a film from 1980) where the band wanders into a rural bar. They ask the waitress, “what kind of music do you usually have here?” and the waitress says, “Both kinds: country and western!”

So, that’s the state of social science modeling today. The people using the cubist linear models seem blissfully unaware that more detailed narrative models can even be written. Nor are they alone in being alone: for example, the bartendress who learned it all from a Machine Learning textbook will laugh about using support vector machines and random forests.

In the early 1900s, journals didn’t think it a big deal to publish a seventy-page treatise as just another article. In the present day, there’s a joke unit called the MPU — the minimal publishable unit — and journals are filled with papers containing exactly a single MPU. Authors want a longer résumé, which comes from lots of 1MPU articles. Journal editors will have an easier time finding peer reviewers for a 1MPU paper than something approaching a monograph. Readers want to feel that they understand the article after ten minutes of attention.

Running a somehow-novel suite of linear regressions is one MPU. It will get you funded and published.

So why push harder? In fact, a 2MPU paper with novel results using novel methods is vulnerable to criticism for using untested methods. The model underlying a linear regression is clearly implausible in almost every case, but it’s certainly familiar, to the point that it would be awkward for an editor to reject a paper because it chose the same method thousands of previous papers had used.

For a brief, shining moment, The Brookings Institution, a well-regarded and very applied think tank that has every incentive to stay within the methodological orthodoxy and pump out MPUs, had a research group with some of the pioneers of agent-based modeling. For reasons that are largely inexplicable, I was a part of this ideally-situated team of ideal members.

Working with a group that pushed new methods in a traditional context was wonderful in a hundred ways, but also had some frustrations. I wanted to talk about our work in mainstream terms to mainstream researchers but didn’t have the tools to do so. They were filling pages with precise information: “β_2 is 2.3487 with a margin of error of ±.01428” sort of things, while we had other largely qualitative results that didn’t look like those traditional forms. I tried estimating the parameters of my agent-based model of cross-border migration using R (a popular implementation of the S programming language by two guys named Ross and Robert), and R couldn’t do it. Its model syntax was clearly aimed at linear combinations, not models with millions of decision making agents. The more I tried, the more it broke my heart. I could try the agent-based modeling packages, which produced attractive Mondrian-inspired pictures, but they didn’t even contemplate accommodating traditional statistical forms.

This is when I started writing Apophenia, the library of stats tools and models that this essay is announcing.

“Apophenia” means the human tendency to see patterns in static, like faces in clouds or trends in random data streams, or swirls in the snowflake pic at the top of this essay. It’s a nice word, which is more than enough reason for using it as a name.

The MPU is a reflection of the normal course of modern science, in which a research project consists of working on some little corner of a big problem.

The big problem I’ve attempted to convey to you here is that the social sciences rely heavily on models with no serious narrative underpinnings. The little means by which I’ve been contributing to this problem is Apophenia.

The core feature is a definition of model that provides a single generic form that provides a consistent interface for any narrative, linear model, agent-based microsimulation, whatever. Then we can write down all sorts of transformation functions, that take in one or two uniform models and output another uniform model, which can be be input to the next transformation down. For those of you who really want the exposition, here’s my 45-page Census working paper (PDF) detailing the model object and some transformations.

For example, once you have a uniform model structure to describe a distribution of one person’s change in human capital in one year (herein D1), then it’s easy to simulate a million agents each building on to their stock of human capital with a new draw from D1 every year, and write down the resulting population distribution of human capital after several years as D2. Then we could easily apply a transformation of arbitrary complexity to D2 to produce a distribution of incomes, D3. If we later decide there isn’t enough jargon in the aggregate model, we could replace D1 with a Bayesian hierarchy estimated via Markov chain Monte Carlo, and the rest of the narrative won’t have to change.

Coming up with a uniform model structure may sound like a literal formality, but it is the building-block structure that lets us build chains like the above example without spending an impracticable amount of time wiring together incompatible bits and then trying to debug the mess we’ve just built.

The idea that uniformity allows us to have easily interchangeable parts is certainly not original, and on many occasions I have had a dialogue like this:

An academic: It’s completely obvious that systems should be written around models with a uniform form that can be combined and transformed in a uniform manner. Say something original.
Me: Do you have any examples of statistical and scientific computing platforms that are built around a general model object like that?
AA: Well, not exactly. But you could implement this in R in an hour.
Me: Could you point me to an R package that does this?
AA: Not really, no. But I’ll bet nobody’s done it because it’s just so obvious.

The answer to the question of why this is so obvious and yet (to the best of my knowledge) Apophenia is the first serious implementation of the idea, is that implementing this concept is hard. Every step of implementing a general model building block raised another difficult computing, statistical, modeling, or user interface question. And we don’t just want to write down these models and admire them, we want to fit them to data and make probabilistic statements about them. It’s a tall order, and I’m not sure why I thought it would be easy.

Nor do I quite know why I kept working on Apophenia for a decade, after realizing just what I’d gotten myself into. The rational me realized that the correct thing to do is to put out an MPU several times a year, and working on Apophenia was the exact opposite of that.

On the plus side, I got paid to do it. Apophenia was very appropriate for the work I did at the Census working out novel large-scale statistical processes, and every time a problem came up in a Census project, I or a coworker added a feature to Apophenia. So thanks, U.S. taxpayers, for your contribution. There are a lot of places that would never put up with an employee who fails to publish a stream of MPUs and instead puts all his efforts into writing new tools to facilitate better methods.

I don’t know if I’d do it all again, but it exists now, so nobody has to. Whatever language you’re writing in — R or Julia or Python or even Perl — has a mechanism for linking to libapophenia. And then you don’t have to work out how to get the Bayesian updating routine in this season’s favored language to accommodate agent-based models.

After one presentation on the algebraic system of models I talk about in the above-linked paper, an audience member revealed that he had received an NSF grant a few months earlier to implement something that would be a relatively easy application of Apophenia. He — and the NSF panel that funded him — didn’t know that there was a stats library that he could use as a back-end. I left that talk depressed. No matter how well we do with the technical problems, the social glitches prevail.

So, now you know it exists. Tell your friends: Apophenia version 1.0 is out! It’s part of Debian Stretch! You can download it from GitHub! You can help to make it better, or front-end it for people who aren’t as good with scientific computing as you are! You can learn from its effort to improve narrative models, throw it all away, and do something even better!

Most importantly, you don’t have to settle for describing the world as a linear combination of independent elements! There’s debate about
whether social science is worth it, but I’m a believer — research in how people make decisions and how they form what we call society can be done and can have real influence to the real world. To take all the research done in every aspect of behavior, encode it into careful, detailed models, and then fit a rough and basic simplification to the data because STATA couldn’t handle the fully structured model is heartbreaking, a vote that social science isn’t worth doing with full vigor. Let’s keep pushing to do better.

by Ben Klemens at December 24, 2016 02:17 AM

December 22, 2016


2016 in review

I did this mini-guide of a year-in-review in 2013, forgot to do in 2014, found it again, did in 2015. I like reviewing at the end of a year. LIFE! Let's see what happened in the past year...last year I wrote this: "2015 was a pretty tough year, honestly. Here's hoping 2016 has more and better things in store."

And guess what? It did! 2016 was obviously a shitstorm for a variety of reasons related to the external world but personally for me it was a very great year, a turning point of a year in a way, I think. I had breakthroughs about my voice, who I am as a person, my self-confidence levels, my relationships, my ability to ask for what I need, and what I want out of life. Woah. That is a lot of heavy stuff. But it all came to me this year, and I did a lot of hard work to make it happen, and I am extremely grateful for it all. I feel very actualized and ready to take on the world, and am excited for the next year. So. Let's recap 2016.

1. What did you do in 2016 that you’d never done before?

Last year I wrote that I got to see my nephew be born. I don't think I did anything as significant or as new as that in 2016, but I did some small fun new things. I went to Ireland and southwest England for the first time. I urban gardened. I freelanced a few pieces (for Vox and Refinery29). I kept up a semi-regular meditation habit. I started a workout challenge group that is still going which means I worked out 4x a week for 45 minutes for the last 15 weeks, which I probably have literally definitely never done before. All nice, small, new things. 

2. Did you keep your new year’s resolutions, and will you make more for next year?

According to my fancy goals spreadsheet, I accomplished 40 percent of my goals, I came close or semi-hit the mark on 30 percent, and I didn't do 24 percent. Not bad, not bad. The ones I didn't accomplish? I'm okay with that because I think I didn't really want to do them in the first place and maybe just felt like I ought to. 

Will I make goals for 2017? Is the pope Catholic? I've already made about 15. Here is a sampling: 

Go on 6 hikes locally
Not open computer until an hour after I'm home on weeknights
Read 30 books only by women and POC
Clear my Twitter list of majority white men
Go to South Africa
Do another SXGR trip (Austin?)
6 cabin trips
Take my annual solo beach trip


3. Did anyone close to you give birth?

A lot of friends and acquaintances gave birth and it's hard to keep track of all the new beautiful squishy babies around. I got to visit Emily's bean baby in Boston earlier this year, which was a delight. My closest experience was one of my employees, Nicole, who is an amazing woman and worker and I am very close to her and accompanying her on the whole maternity leave/HR process/etc thing was eye-opening to me as a manager. Let's make it easier for women to have babies, America.

4. Did anyone close to you die?

LOL our republic? Just kidding. Maybe. 2016: The year I did not go to any funerals, after going to too many in 2015. 

5. What countries did you visit? 

Ireland and England! 

6. What would you like to have in 2017 that you lacked in 2016?

A cabin in the woods for weekend retreats. 

7. What dates from 2016 will remain etched upon your memory, and why? 

Uh I think November 8 2016 is a date that's gonna live in infamy for a lot of us for a long time.

8. What was your biggest achievement of the year?

Referring back to my intro paragraph, become truly comfortable in who I am and in my voice and where I am in my life now. It sounds small when I write it out like that, but I think sometimes that's a goal some people spend their whole lives trying to achieve and sometimes never do. So I am proud of myself and happy.

9. What was your biggest failure?

I donated to Hillary's presidential campaign but I didn't do anything beyond that. Never again will I be so politically uninvolved. 

10. Did you suffer illness or injury? 

Nothing serious, but I got the stomach flu (I NEVER get the stomach flu), and that was an existential nightmare. 

11. What was the best thing you bought? 

Probably plane tickets to see two of my oldest friends get married. Not to each other. One in San Fran, and one in England. Great weddings, the both of them, and they married okay husbands, too.

Also, I didn't buy it, but the money I spent on my Airbnb rental for my little beach solo vacation is always worth it.

12. Where did most of your money go? 

Probably skin care stuff or Sephora. Worth it? YOU TELL ME.

13. What did you get really excited about?

For a long while I was very excited about our first female president, but, you know. I got excited about small, satisfying things again - cooking, reading, building communities, working out, trying out fun new makeup. I started a fun outfit Instagram that I really enjoy, as well as kept up a cookbook club, a single ladies salon, a workout group, and more communities. 

14. What song will always remind you of 2016?

LOL like I listen to music anymore.

15. Compared to this time last year, are you:

– happier or sadder? happier
– thinner or fatter? About the same, a few pounds fatter. 
– richer or poorer? A bit richer thanks to some attention to my finances and a stock cashout that came when my company was acquired. 

16. What do you wish you’d done more of?

Writing and seeing movies.

17. What do you wish you’d done less of?

I wrote this last year: Definitely dating. Yes, I wish I'd dated less. I dated a LOT in 2015 - all good guys. I actually don't think I dated one asshole in 2015, so well done me. But I would say most of the dudes were not quite right for me in some way, or I them, which I was aware of at some level, I think, going into each of the relationships. I assume I will go on dates in 2016, but I hope to be able to listen to my gut on them and fully be myself in those relationships.

I achieved this goal in 2016 and dated some but really not too much, and in fact am not at all trying to date right now and it is so wonderful. So I stuck to that one. I can't think of too much else I'd have rather done less of this year, but I will go with a tried and true classic: I wish I'd spent less time fucking around aimlessly on the internet. Still can't beat that habit.

18. How did you spend Christmas?

I'm writing this before Christmas, but I'll get to spend it with my delightful family out in the burbs and my sweet sweet nephews and niece. Really looking forward to it.

19. What was your favorite TV program?

I don't watch much TV because I am literally too lazy to watch/pay attention to TV, but I really liked Fleabag.

20. What were your favorite books of the year?

I read 30 books in 2016 which you can see here. I really enjoyed Euophoria, The Girls, and Shonda Rhimes Year of Yes. 

21. What was your favorite music from this year?

LOL like I listen to music anymore.

22. What were your favorite films of the year?

Ummm I'm so bad at seeing movies. I thought Ghostbusters was pretty funny?

23. What did you do on your birthday, and how old were you?

I turned 36, and went out for some beers with buds. I'm immeasurably excited for my plans for my 2017 birthday, but you'll have to stay tuned to hear about those in January.

24. What one thing would have made your year immeasurably more satisfying?

Last year I wrote: Never being afraid to be myself and say what I truly think and ask for what I need. I still struggle with this. Also figuring out what I want and making it happen. I generally just float along. I deeply want to be more intentional in how my life turns out in 2016.

OMG I did these things and I do these things now! This blog is goddamn magic. In 2017 something that would make my year immeasurably more satisfying is a pile of gold? Will that work? But playing aside, continuing to build communities, live intentionally, meditate more, and be grateful. These were things I started to do in earnest in 2016 and I hope to take them to the next level in 2017.

25. What kept you sane? 

Therapy, working out, meditating, and possibly-too-large doses of Vitamin D.

by catherine at December 22, 2016 06:04 PM

December 18, 2016


Meditation for stressful times

I went to an excellent holiday party this weekend. There was food, there was booze, there were lights, there was much panicking about the future of the country because it was a party full of godless liberals who don't care about email servers. One friend in particular was very down, and we got to talk about ways of dealing with the next four years. My #1 way I told him I plan on dealing? A lot of working out, and a lot of meditation. Self-care for health, strength and resiliency is not something that can at all be cast aside, in my opinion -- in fact, it's going to be more important than ever to fortify ourselves mentally, emotionally, intellectually.

Why do I meditate? It keeps anxiety and depression at bay, it makes me more focused at work and in my personal life; it helps me come up with really good ideas; it clarifies the important things. I think of meditating like vacuuming for my brain. A lot of unimportant crud is going to inevitably build up day over day, week over week, month over month. This helps clear it out so you can focus on what's really important.

I think I convinced him that trying meditation would be a good idea, so I put together the below email for him this morning with tips. If you've been thinking about trying out meditation, maybe this will be helpful for you, too.

To my friend: Wanted to send you some meditation recs & tips. Remember, it's about making your mind resilient, focused and strong so we can stop nazis from taking over our country instead of just falling into a useless panic spiral! 

Here's a good primer on why meditation is so awesome and helpful:
headspace (costs money, but a lot of people i know like it and count it as the first gateway for them getting into meditation)
andrew johnson guided meditations - great scottish voice guy who has meditations for everything from relaxation to ones to help you get over a fear of flying
any app about yoga nidra - this will help you fall asleep. i use this one:
simply being apps -
just meditating:
I personally don't use apps to help me meditate. Two to three times a week I sit on my couch before bed or in the morning and just close my eyes and breathe, counting breaths 1-10, and starting over. Inevitably thoughts come in but I just observe them and try to go back to counting my breath. I do this for anywhere from 15-45 minutes. The goal isn't to totally empty your mind, it's just to observe thoughts and breathe. 

If you have any questions about meditation at all, I'm no expert, but throw them in the comments and I'll do my best to help you out! 


by catherine at December 18, 2016 02:28 PM

December 12, 2016


DNSync MAC Addresses

I’ve been hacking on a project on and off for my LAN called DNSync. This will take a DNSMasq leases file and sync it to Amazon Route 53.

I’ve added a new feature, which will create A reccords for each MAC address on the LAN.

Since DNSync won’t touch CNAME records, I use CNAME records (manually) to point to the auto-synced A records for services on my LAN (such as my Projector, etc).

Since It’s easy for two machines to have the same name, I’ve decided to add A records for each MAC as well as their client name. They take the fomm of something like, which is harder to accedentally collide.

December 12, 2016 03:30 AM


This Week I Ate: Cranberry Sage Sourdough

I’m almost a year into my exploration of the world of sourdough. I received a sourdough starter from a close friend and have been caring for it since. It took more than a few months to make a successful loaf, but I have started feeling increasingly confident in my bread abilities.

With the holiday season, I’ve been ignoring my starter for about a month and decided yesterday to revisit sourdough. My first successful loaf of sourdough was from a sourdough beginner’s guide by The Clever Carrot. I came across one of Clever Carrot’s sourdough rendition recipes today and it sparked a desire to make a flavored loaf. I originally was going to lean into the flavors of a cinnamon raisin bread, but quickly found no raisins in the cupboard. Instead, I opted for cravings, rehydrated in water along with a chiffonade of sage.

My Procedure

The Clever Carrot’s beginner’s guide goes into quite a lot of sourdough details, but I started the recipe as I always do with fed starter, water and flour. After the initial ingredients are brought together, I let the dough autolyze for about an hour. This lets the flour hydrate and gives the starter a kickstart before adding salt.

Once autolyzed, I added salt, rehydrated craisins, and sage and kneaded into the dough. Afterwards, the dough gets bulk fermented (aka let sit in a sealed proofing container) for about 12 hours. I let my dough sit at room temperature from the afternoon until about midnight and put in the fridge until morning to slow down what would have been an 18 hour rise — and an inevitable over-proof.

The next morning, all I had to do was turn the dough out onto a counter and shape into a ball. Then, I placed the dough into a corn meal dusted dutch oven and let rise for a second proof of about an hour (or until slightly puffy). Afterwards, it’s a only a bake that separates the bread from my stomach.

While more complex than a typical bread bake, this sourdough bake is decently simple.

  1. Place the bread in a lid-on dutch oven in the middle of a 425 degree oven. Let bake 20 minutes.
  2. After 20 minutes, take lid off dutch oven. Let bake 30 minutes.
  3. After 30 minutes, set oven door slightly ajar. Let bake final 10 minutes.
  4. Remove and let cool on wire rack — as much as your will and nose allows.

This was certainly one of my better flavored loaves, with a hearty sourdough starter and the powerful flavors of sage and cranberry pushing through. While the crumb was slightly dense to an overproof and collapse, the overall texture was irregular and absorbed copious amounts of butter beautifully. I also really enjoyed the slashing I attempted on this loaf and hope to invest in a lame for some sharper and deeper slash patterns.

by Becca James at December 12, 2016 03:16 AM

December 09, 2016


Django Signals and Deferred Fields

Django Signals and Deferred Fields

A little while ago I had implemented a bug fix using Django signals to detach an object before any object it was attached to was deleted. It was a Resource object that contained ContentObjects that connected it to various other objects (we’ll say it was a Record). If a Record was deleted, that ContentObject stuck around, so when you tried to view the Resource, the ContentObject ran a query for a record that was no longer there and it threw an error. For a solution I turned to Django’s signals:

from django.db.models.signals import pre_delete

@receiver(pre_delete, sender='Record')
def detach_object_resources(sender, instance, **kwargs):
    for resource in instance.resources:
        content_object = resource.content_objects.get(

The sender (an object with a Record class), notified the signal that it was about to be deleted, so it looked through that particular record instance to see what resources were attached to it. It made sure to look through all of those connections and delete their corresponding content_objects. The resource stuck around, but nothing associated with that record would. And thus I happily moved along with my life.

Until the view changed.

For one of our Django views, get_queryset() retrieved a list of Record objects, but we decided we didn’t need all of the fields associated with it, so we added defer():

class RecordList(generic.DetailView):
    def get_queryset(self, *args, **kwargs):
        return Record.objects.all().defer('attributes')

Seems harmless enough: now you get Record objects, just without their attributes, which we didn’t need for this view. The problem is this no longer triggered the signal receiver. Turns out, if you use .defer() or .only(), the object that returned is no longer <class record.objects.Record>

Instead you get <class record.objects.Record_Deferred_Attributes>.

So the pre_delete signal is no longer being triggered because it’s not getting a Record class. It’s getting a Record_Deferred_Attributes class.

So in order to fix this, you need to check if your sender has been deferred:

def detach_object_resources(sender, instance, **kwargs):
    sender = sender.__base__ if sender._deferred else sender

    if sender.__name__ == 'Record':
        for resource in instance.resources:
            content_object = resource.content_objects.get(

Calling .__base__ checks the original object associated with the deferred object. Since you can no longer check it outside the function, you’ll have to double check if the sender is a Record, and after that everything runs as expected.

Aren’t Django’s quirks fun?

December 09, 2016 11:00 AM

November 28, 2016


I watched some CBS shows and you should probably ignore me

I got horribly sick around 10pm on Thanksgiving night. It wasn’t the food (no one else got sick) but by early afternoon the next day I was in the ER getting IV fluids and a CT scan to ensure my appendix was in one piece. It was! But the rest of the stuff in there remained unhappy and I didn’t eat anything but gatorade and two bananas for the next 48 hours. I’m feeling much better now but the recovery process has involved watching a hell of a lot of TV. Which reminded me of something I’ve been meaning to write about for a long time. Specifically: the cultural salience of the CBS primetime lineup. It’s the key to everything. Bear with me.

CBS’s loud claims to being America’s top network need to be taken with a grain of salt. The numbers are actually pretty close, and the rankings switch around if you start removing sports from the equation. Still, their shows are indisputably popular. And indisputably stupid. Very, very stupid. This is the network that made America’s top comedy a show defined by the catchphrase “Bazinga!” — a detail so on-the-nose that it reads like Pynchon losing a step.

The strategy is boringly obvious: lowest common denominator. Some of this is simple, like cloning successful formulae into new franchise spinoffs or using the hoariest TV tropes (their newest show’s tagline: “he’s not a lawyer — he’s a trial consultant”). Normally this is merely banal and unworthy of notice. But now, in a year when we’ve all learned some horrifying things about what appeals to the masses, I find myself pondering what else they might like.

Identifiability is clearly important to these shows’ success. Leads wear casual clothing and are often unshaven. They are not cerebral except when they are specifically meant to be nerds. Credentials are never mentioned (well, except badges). Not to be unkind, but there are quite a lot of fat people. Some shows seem specifically engineered to have no distinguishing characteristics except a cast as heavy as its audience. For a long time I couldn’t figure out why a formerly cut-up action star like Chris O’Donnell led a top action series behind a doughy torso and loose neckline. Now I think it might be more of a feature than a bug. These are shows for an audience that has let itself go. Or has had to.

It’s also a set of shows expressing personal dynamics so anachronistically conventional that it feels like they must be there specifically for reassurance. The shows are overwhelmingly white, but then it’s not uncommon for television networks to target racially-defined audiences. The treatment of women is sexist — plenty of comments about how sexy everyone is — but always with plausible deniability (it’s mostly villains or rakish one-off characters making the remarks). Slightly more unusual is the frequency with which these series are anchored by a somewhat weatherbeaten white guy who’s generationally separate from the rest of the cast. I take this to be a promise to an aging audience that virility hasn’t left them entirely behind. That they’re still in charge.

But this is so much pointy-headed snobbery. Less important than how the viewers see themselves is how they see the world.

There is a larger military presence on CBS than the other networks combined. So many characters who used to be in the service; not too long ago, so many shows structured around weirdly civilian corners of the armed forces. Arguably this is merely a twist on TV’s love of police departments as a means of structuring four acts and a teaser: martial rather than municipal. Still, pair it with an utterly blase attitude toward and presumption of omnipresent surveillance, and it all starts to feel a little authoritarian and bad.

Finally, while I think the moment has passed, I got started on this line of thought during the burst of forensic investigator shows–CSI, Bones et al. Some of this is just the usual network copycattery. Still, it’s remarkable to see America fall in love with shows obsessed with human remains as religious affiliation (and, presumably, belief in an afterlife) falls off a cliff. CSI debuted in 2000; the correlation with this methodologically questionable index is probably too good to be true. But the broader trend is hard to deny.

I don’t have any grand observations to make about all of this. That’s probably why it’s never made it past the drafts folder before now. Still, it’s striking how different media looks when it’s only courting an audience, only chasing dollars. And winning.

(I should acknowledge that overthinking these shows is not an idea that’s wholly mine. Years ago my friend Matt tried to pitch a TV recap series about the top (dumb) broadcast shows at work, as a fun differentiator from the overwhelming mass of prestige cable recaps. Alas, I understand it went nowhere. I was already noodling on some crackpot theories about the above but his argument made me resolve to write them down… someday. It’s worth mentioning that CBS shows’ dialogue and the marketing specifically recapitulates his thesis about the family unit’s renewed primacy in entertainment.)

by Tom at November 28, 2016 03:57 AM

November 22, 2016


Dear Alexandra,

Dear Alexandra,

I am entirely with you, and I too spent time in despair, anger, and the rest of the list---and I was able to drink through it a little. But I’m hoping to offer some optimism that I couldn’t offer when we talked on the telephone, in the form of a longer perspective. "The arc of the moral universe is long, but it bends toward justice."

You're biking along a road at a decent pace, and an SUV drifts up behind you. You can feel that it wants to pass you. The SUV driver is tailgating you, such that if you brake too hard you're going to get rear-ended, and the SUV keeps veering to get around you and then pulls back as an oncoming car appears. Eventually, the driver finds enough clearance, revs, and passes you, optionally giving you the finger.

Many books have been written — I am writing one myself — about why that driver doesn't just kill you. Somehow, our society has evolved to an uncomfortable detente where those hauling the larger quantity of metal respect their obligation to not endanger other drivers. And it's reliable: could you begin to count the number of times you've been safely passed? [You ascribed the Left Turn Incident in DC to incompetence before malice.]

People do sometimes rant about how they're tired of having to watch for cyclists — were you in DC when Courtland Milloy, a Washington Post columnist, made a mini-career out of it? It's got to be exhausting that the easiest thing to do — barrel forward at top speed, destroying anything that gets in your path — is barred from you.

So, that's neo-Naziism. If our group has greater (real or perceived) power than other groups, why do we have to slow ourselves down for those who have less power? Isn’t it morally correct (for a convenient definition of moral) to give free reign to those who have power to do whatever they wish with it?

In game theoretic terms, neo-Naziism is an equilibrium. If you have some set of people who do indeed have more power than others, they have the option to act unilaterally to use that power. [What if they just think they have enough power to act unilaterally but that turns out to be hubris? This would be a very long digression, but it’s probably the worst case.]

Preventing this unilateral tyranny of the majority is the purpose of the progressive movement. How can we set up a society where those in power find it to be more useful to allow opportunity to everybody than to push others to the curb? It’s not just about laws and imposed restrictions, which can be hard to enforce anyway. Here’s Mr Milloy, writing in the Washington Post: "It’s a $500 fine for a motorist to hit a bicyclist in the District, but some behaviors are so egregious that some drivers might think it’s worth paying the fine."

I’m stumped about what behavior a person riding a bicycle could engage in that is more egregious than causing potentially life-changing bodily harm, but Mr Milloy has his list, indicating that the social norms he works with differ from ours. As a corollary to the above goal of the progressive movement, shifting those social norms is an essential sub-goal.

I won't go into great detail about how those norms are established, because (a) you already have a dozen examples in your head and (b) I'm writing a book about it, which means I'm going to belabor it if I go in to it here.

It is clearly difficult to maintain a stable equilibrium where people in very different groups maintain stable relations. Again, you have examples in your head already, but I'll give you one.

You might remember the battle for Kosovo in 1993, when a Muslim-leaning army clashed against a Christian-leaning army around Sarajevo — U2 recorded a single about it. But I know U2 is not your jam, so maybe you only know the battle of Kosovo of 1389, when a Muslim-leaning army faced off against a Christian-leaning army in the same place. Six hundred years, zero progress.

I took a few seconds with a calculator and rounded off the count for dramatic effect: we are on day 500,000 of the Christian-Islam war. I want to call it epic, but usually epics only span a thousand days at most.

Every year, physical technology gets better for everybody, and social technology barely crawls forward. The scale of progressivism is literally over centuries.

One plus for the progressive side is that, societally, it's more efficient. Society A has an in-power group that always leads (whether the leaders are capable or total idiots) and a suppressed group that has a circumscribed set of opportunities (whether they are total idiots or the best in the bunch); society B has mechanisms to allow members of all groups to find their level; ceteris paribus, society B is going to be more productive. This doesn't mean that society A is going to fall apart, but the fact that society B is more efficient nudges the arc of the moral universe in a certain direction.

You sometimes refer to the old saw about how ontogeny recapitulates phylogeny, and here in ethics you have another example. Your kid will be a total jerk who understands only yelling and force for a few years, but will soon start to understand the basics of other-regarding niceties like using “please” and “thank you”, then develop some sense of fairness, and ideally reach the ability to introspect and recognize his or her own tendencies that prevent fairness. Human society had to develop these technologies, in sequence — how can you have a sense of fairness without a habit of regarding the desires of others?

With everybody born a savage, social technology is extremely slow to progress. At the individual level, there are a lot of present-day adults who have trouble leaving a fifteen percent tip; they are not going to understand why they should exert any effort to understand the outsiders they tell off-color jokes about. In that regard, every generation has to start over.

But the arc does curve! People owned slaves 150 years ago — my house is older than that. Could you imagine the gay rights movement, the ADA, mental health reforms, equal opportunity employment laws, in that world where the big point of debate was whether some people only count as three fifths of a person?

New investors (I've done this) have a habit of checking back on their stock pick every twenty minutes, with a wave of emotion every time. Any uptick is proof that this was the right choice; any downtick is impending disaster. They're working at the wrong scale. Even a week or a month of return data is limited help in predicting the stock price a year from now.

Of course, the state of progressivism isn't just a number on a ticker. When somebody gains power with a promise to purge people who have the wrong religion or skin tone, those people on the wrong end of things could have their lives massively disturbed (or worse), and the social understanding that it's OK to transact with everybody takes steps back, doing damage for even those in the most favored demographics. That's what we have to deal with right now, with the centuries of progress as backdrop.

Given downticks like the resurgence of neo-Naziism in Europe and North America, we can be confident that both the Byzantine-Ottoman war and the fight for progress have centuries to go. You, I, and your future kid won’t live to see the arc of history settle to a stable equilibrium, but we’ll keep pushing anyway.



by Ben Klemens at November 22, 2016 02:28 AM

November 19, 2016


Don't stay in

I was talking to a friend last week who had been invited to a happy hour with a bunch of fabulous women - the only problem was, she didn't know any of them (and I couldn't make it).

She said she was thinking of skipping - her social anxiety was getting the best of her and it was just easier to stay in. 
I told her this: "You should go. If you're too scared to attend a happy hour filled with nice women, there's going to be a lot of other scarier things coming your way. Think of your attending as a small act of defiance in a way - doing something that scares you or takes you out of your comfort zone. It's preparation for all the other stuff we'll need to do."
She went. She had a good time. She did something that was scary to her and it turned out it wasn't that scary or hard. And she felt stronger afterwards, knowing she could do something like that again.
There's not really a huge lesson to be learned here, other than this: if you're too scared to pick up the phone to call your senator because you've never done something like that before, it's more important than ever that you take a deep breath and do that now. If you want to go to a protest but you've never been to a protest because it's overwhelming and you're not sure what to do, that means you need to go. If you've never told that family member how their hurtful words about your politics cut you, say it out loud to them today.
Not one of us can do one single thing that will affect a lot of stuff, but a ton of small actions and small acts of defiance and small acts of courage - even if they don't seem like on the face of things that they matter - they add up.
Do the small things that scare you now, so you can be braver to do other things that matter tomorrow.

by catherine at November 19, 2016 02:04 PM

November 13, 2016


A little levity

This week has been… tough. I’ve whirlwinded through fear, denial, anger, and have finally settled into a quiet sadness at the end of a week that’s felt like it lasted a lifetime. I hope to be able to channel all of this into a post at some point, once I’ve gained some perspective, but today is not that day.

Instead, I’ll just post a reminder that exists, and that politics can’t ruin everything because:

November 13, 2016 11:00 AM

November 10, 2016


November 06, 2016


Why I'm currently reading four books at once.

If I’m being totally honest, the answer to this question would be pretty short: My self-control and focus are not what they used to be.

But that doesn’t make for a particularly interesting blog.

The four books I’m reading I’ve categorized (i.e. justified) in the following way: “work related learning”, “non-work related learning”, “emotional growth”, and “recovery from the other books”.

The book I’m reading for work is Fluent Python, by Luciano Ramalho. I’ve been trying to read this book for several months now. I’m maybe 70 pages in. But the reason I’m only 70 pages in is because I’m using it as a crash course to all the things in python I don’t know about. Every page of this book contains maybe 1 - 5 things i didn’t know about, so I then spend 15 - 20 minutes figuring out what each of those things are. There’s no skimming through this book for me. There’s no “oh I already know how this works, let’s move right along shall we”. To be frank, this book is miles ahead of where I am right now, but I got really sick of underestimating myself. I’ve tried to go through so many different beginner python tutorials, that I end up just rolling my eyes at and walking away. I then continue using the same tactics that I already know, because they work and I don’t what to read about for loops again for the 100th time. By forcing myself to go through a book that’s too advanced for me, I’m beginning to fill in that gap of “I don’t know what I don’t know.” This book is more than happy to tell me everything I don’t know, and there’s a lot I don’t know. Which is good. I’m working on it.

My non-work related learning book fills the gap left by academia. Now that I’m out of college and not operating an four hours of sleep and a three day hangover, I miss the days of assigned reading, discussing theories, new ideas, and stretching my world view. So I started a book club with two of my friends and started assigning my own reading. Currently, we’re going through Second Sex by Simone de Beauvoir, and it’s fantastic. I thought it would be much more difficult than it is, but despite being an incredibly dense and large philosophy book, Simone manages to pull you in with dry wit, and rhetorical sparring with the ideas of her contemporary authors of the time, and it is fascinating. I get excited about reading this book, but it’s not a book that allows me to turn my brain off and enjoy.

My ‘emotional growth’ books fall into that category of literature that are usually beautifully written, have important and urgent stories to tell, and are ultimately exhausting to read. They’re the kind of books that you’re glad you read, but you don’t walk away feeling good about the state of the world, and you definitely shouldn’t read them right before going to bed. Bell Jar or The Glass Castle for example. Olive Kitteridge is my work of choice this month, and word of warning, this is not a good book to read if you’re in a serious, young, and happy relationship. In a series of vinyets, it peels back the layers of sadness, hope, trust, heartbreak, and habit that make up relationships that have lasted decades. It looks at the complex relationships that make up families, and the reasons why relationships and people fall apart. It’s a beautiful book, but after five nights of reading it before bed, I got tired of picturing all of the ways my relationship could potentially end in the next couple of decades and decided I should maybe relegate Olive Kitteridge to daytime reading only.

After deciding I wasn’t allowed to read any of these books before bed (because that’s when I should be winding my brain down, not sending it off on wild adventures), I went out and bought a “recovery from the other books” book. I hadn’t realized until I was trying to pick one out that I am so drawn to ‘emotional growth’ books. After forcing myself to walk past Game of Thrones, Fahrenheit 451, Catch 22, and anything by Junot Diaz, I stumbled across Romeo and/or Juliet. I’ll admit my fondness for Shakespeare has grown over the recent years (having someone very passionate about it expound upon it in great detail almost daily certainly helps (and if it wasn’t helping this relationship would be doomed)), so the cover caught my attention. It turns out it’s the same author, Ryan North, who created the “To Be or Not To Be” Hamlet based choose your own adventure game that my friend introduced me to. If you haven’t read/played anything by him and you have even a modest understanding of Shakespeare, I highly recommend you give me a shot. He manages to make fun of Shakespeare in a way that’s incredibly clever, and shows just how much time he’s spent studying him in depth. There are several trillion different paths that your adventure can take, some of them following the more traditional Romeo and Juliet path (with a few “gosh if they had just talked to each other” endings that are hilarious), while others result in you swashbuckling with pirates or fighting a robot invasion. It’s hilarious, absurd, and requires just the right amount of mental engagement to help me wind down to go to sleep.

I used to chastise myself for considering starting a new book before I was finished with an old one, but now I realize that’s just ridiculous. If I’m capable of watching multiple TV shows at any given time and can remember the plot lines of each, I can do so with books as well, and I’m much happier for it. Maybe one of these days I’ll actually finish one of them.

November 06, 2016 01:00 PM

November 03, 2016


Super basic financial tips for you even if you think it’s too late to start saving and you’re emotionally prepared to retire and die in like a mental asylum from the 1800s

I’m not good with money. I’m not Bad With Money (like this excellent podcast), but I ain’t ever been great at it. My parents always took care of everything, and we were well-off (at least from what I understood growing up) so money was sort of like a thing that was there but you never needed to worry or talk about it.

As I got into my 30s though and started to get that it was JUST ME and it might always be JUST ME (aka no rich billionaire was coming to marry me -- I think this economic anxiety is a real one that single people in their 30s start feeling) I was like, I really have got to figure this out. This was hard to do when in your 30s because of one huge obstacle: SHAME. I was like, I AM TOO OLD TO NOT KNOW HOW TO DO THIS STUFF. So I just will never ask any questions or tell anybody I DON’T UNDERSTAND EVEN SUZE ORMAN WHO HAS MADE HER CAREER EXPLAINING TIPS SO BASIC THAT O MAGAZINE PEOPLE UNDERSTAND THEM. So I just went on for a bit pretending that money wasn’t real and everything was fine.

To be fair I was never in a super dire situation. My parents paid for undergraduate college (at a state school; when I got into a certain New Hampshire liberal ivy I really wanted to go to they were like nuh uh we’ll pay for the state school; they are known as Good with Money, good call mom and dad); I had a scholarship for graduate school; and I paid off debts related to my costs of living during graduate school several years ago. I never keep credit card debt because it terrifies me. And if I’ve ever needed help, my parents, again, have ALWAYS been there as a cushion, so I’ve never truly worried for it, and I am extraordinarily lucky in so many ways.

Except the way in which, as I mentioned, I was getting old and I was like I guess I’m probably not going to work until I’m 87 and my parents won’t always be around so maybe I should look into this retirement thing… ? This is a true story that really will show you how bad with money I was until a few years ago: I DISCOVERED A 401K I NEVER EVEN KNEW I HAD!!! My first job out of college I had a 401K, I literally didn’t know what that was or that I was putting money into it, and a few years ago I discovered it! Part of me was like YAY FREE MONEY and part of me was like :horrified face emoji: Catherine you have got to take control of these things and start educating yourself.

So I did. I’m doing fine now - I’m not going to retire a millionaire - but I feel more comfortable and knowledgable about my situation than I did five years ago. Here’s how I got there and also some things I wish I’d known along the way. Some of this may be wrong and most of it is certainly very basic, but this isn’t for the money experts out there; it’s for those like me who were like WHERE DO I EVEN START. If advice is bad or wrong feel free to tell me in the comments. Like I said, I’m not great with money.

(Note: This isn’t a blog post about how to spend less, by the way. A lot of shame and emotional issues are tied up in money for a lot of people and they have trouble stopping spending beyond their means. That is absolutely something worth talking about and finding help for, but I don’t know how to do that. I also don’t know how to like, coupon, or be thrifty. This is just a blog post about basic financial steps you should be taking as an adult that took me way too long to learn.)


I used to think I was going to save more money and be better off financially if I could like, stop going to Starbucks. Now you shouldn’t be spending hundreds of dollars a month on lattes but the best way you are going to make more money is ASK FOR MORE MONEY. If you don’t negotiate job offers you are missing out on untold thousands or tens of thousands of dollars, and then it impacts every job you have down the line because, though unfairly, most jobs base what you will make at your new job at your last salary. (This is dumb because you should just be paid whatever the job is worth and I think some states are making demanding a salary history of past jobs illegal, which is good.) Anyways, ask for that raise. My biggest jumps in net income came from when I screwed up my courage and blurted out asks for raises that to me, at the time, seemed incomprehensibly large. I didn’t always get what I asked for by the way, but I got more. More income = being able to save more for retirement, by the way, NOT SPEND MORE.


Like I said, my biggest obstacle to being better at money was the enormous amount of shame I felt that I, a smart, educated woman in her 30s, knew basically nothing about money. I think this is what prevents a lot of people from asking more (see again the newish and good Bad With Money podcast). Oh like I knew how much I made, I knew I shouldn’t spend beyond that; but I didn’t know what else to do with it. I wasn’t poor, but I wasn’t investing, or doing enough for retirement. So in my friend Slack channel (which I’ve raved about here) I created a money channel where I ask my seemingly incredibly stupid questions about money to my loving and kind group of friends who know way more about money who are also very good at hiding their disdain. Find that group in your life and ask those people all the questions about what you should be doing. They’re your friends; they will want to help you not die in a gutter.


I used for this. It will not steal your money. For me it was enormously helpful in creating a budget but mostly understanding like… where does all my money go? Some of it was horrifying. A lot was going to, on what I didn’t even know (damn you Amazon Prime) so I made a rule of no more mindless purchasing. A lot was going to booze, like a horrifying amount, so that made me more conscious of spending there. Mostly I understood how much I was spending in a month, and it helped me understand that I wasn’t just spending money abstractly - I was spending a lot on certain things I didn’t realize, which then helped me think twice the next time I was out on a Saturday night spending $75 on drinks.

I also like Mint because it serves as a single dashboard showing me all of my accounts - bank accounts, investment accounts, savings accounts, 401ks, whatever.


From what I understand about money, you should work actively to pay off all your debt first before doing much saving. I have to admit if you have a lot of debt, I don’t have good advice to offer. I’ve never had much debt nor big spending problems that created a lot of debt for me. But I did work to pay off my student loans, and then moved into the next tip…


If you’re a single-income household I read you should have six months saved of what you spend every month. I do this using Capital One 360 - I figured out what my emergency fund should be based on my current monthly spending, figured out how much I could afford to put towards that every month, then set up an auto-withdrawal that would take that amount out of my paycheck every month. I like using Capital One 360 because it’s relatively liquid (a term which I had to look up - it means easily accessible, so basically you can withdraw as much as you need at any point right away) but it’s not directly in my bank so I can’t get at it TOO easily. I recently completed my emergency fund and it will sit there happily until I never have to use it because I will have no emergencies in life ever or ever get laid off. Maybe I should be doing something different with it? Let me know if so.


Now I know this is the most basic tip but if you were anything like me you didn’t know what maxing out your 401k meant; you didn’t EVEN KNOW WHAT A 401K WAS. So, basic:

A 401k (stole this from google) is a retirement savings plan sponsored by an employer. It lets workers save and invest a piece of their paycheck before taxes are taken out. Taxes aren't paid until the money is withdrawn from the account.

Maxing out your or 401k simply means that you contribute the maximum amount allowed in a given year. Because of laws, or whatever, you can only contribute 18,000 a year to your 401k (I think this amount changes slightly year to year depending on said mysterious laws).

Now, a lot of people can’t contribute that much money which is fine and normal. What you can do is contribute the necessary percentage of your salary towards your 401k to trigger a matching amount from your employer. Yes, if your work has a 401k and they do matching, they are basically giving you free money. For example, my matching amount is 6%, and then my employer contributes 3.5%. FREE MONEY!

(I currently put in 8% of my paycheck to my 401k, btw. I have friends who put in 9 or 10%. But I would never put in below 6% since that’s the matching amount set by company.)

I never understood the paperwork around this but your 401k plan should have a website where you can figure out how to log in and adjust the amount yourself that’s taken out every paycheck. Talk to your kind HR person if you can’t figure this out. Remember: forget the shame. Forget the embarrassment. Just walk in and be like “I have to admit I know nothing about my 401k and I am trying to get better. Could you walk me through how it works like I am a stupid baby?” They will take pity on you, I promise. Nobody wants to hurt stupid babies.

The most confusing part about 401ks I found for me was like… where does that money GO? What is DONE with it? How do you put in some money and it MAKES MORE MONEY? Well, I’m still not super clear on this, but from what I understand the money you put into a 401k goes into funds that are managed by your 401k plan and invested in the stock market. I was like, okay - what funds should I pick, then? I ain’t knowing nothing about the stock market. What friends have told me is that the Vanguard Target Retirement funds are good ones to pick for your 401k. They are kind of a set it and forget it approach towards the investment of your 401k money. Say you calculate you want to retire in 2045 - pick the vanguard target retirement 2045 fund.

There’s probably more to be said here but honestly I didn’t care, I just wanted the basics and to be told what to do, and not be flooded with a huge amount of choices.


So say you paid off debt, are contributing a good amount towards your 401k, and are contributing each month to an emergency savings fund. I think what you’re supposed to do next (at least, what I did) is set up a Roth IRA. Fuck money, by the way. Like, WHAT DOES ROTH IRA MEAN? I hate the language around money and finances. I think it’s just stupid lingo that doesn’t make any sense and only serves to obfuscate true meanings so people with the secret lingo knowledge can amass more power.

In this case this is what a Roth IRA is: an individual retirement account allowing a person to set aside after-tax income up to a specified amount each year. See, the IRA stands for Individual Retirement Account. I never really wondered what Roth meant until now so I just looked it up. It’s some white dude senator who made the legislation creating this individual retirement account. I mean, I guess good job and thank you Mr Roth - from what I understand a savings vehicle like this did not exist for people who did not have a company one. But like, can we just call it Individual Retirement Account?

This made me look up what the hell 401k means, which I literally never thought to ask until this moment, and that’s also stupid. 401(k) plans, named for the section of the tax code that governs them, arose during the 1980s as a supplement to pensions.

LOL OK. Look, think of it like this: 401k is work retirement account. Roth IRA is your own personal retirement account. We need these things because nobody gives pensions anymore. Most employers used to offer pension funds. Pension funds were managed by the employer and they paid out a steady income over the course of the retirement. We don’t get those no more, so now we need 401ks and Roth IRAs.

ANYWAYS TANGENT. For mysterious law and tax reasons, you can only contribute a certain amount each year to your Roth IRA. For individuals that are under 50 years old the limit on contributions to a Roth IRA is $5,500 if you make less than a certain amount of income and if you’re single or married, but overall it depends on how much you make. Here’s a list.

How I did it? I went to, opened a Roth IRA, picked one of their target retirement funds, and contribute as much as I can each month so that my yearly total doesn’t exceed what my income level allows. Also my friend James from Slack made me promise to explain there are more than one kind of IRA and a Roth IRA is just one kind and also something about tax exemptions but you’ll have to go ask him.

I think that's all I've got. What I'm struggling with now is what to do with money now that I've maxed out my Roth IRA and 401k and emergency fund. I have some other Vanguard retirement accounts set up as well as a USAA mutual fund but I'm not sure if those are the best vehicles for money for retirement. If anybody has any ideas, hit me up, I'm a dumb baby who doesn't know much about money but still wants to learn.


by catherine at November 03, 2016 02:42 PM

October 27, 2016


Things I did on my 3-day solo vacation

Last year I went on a solo vacation to a little beach cabin in the woods and I wrote a whole article about it. A couple of weeks ago, I went back. I think people wonder, how can you spend 3 whole days alone? I am at heart an introvert, so it’s very easy for me (and I’m a very social introvert so I spend a LOT of time in DC out and about, so a 3-day break like this for me is very good).

Well, I do a lot of things in those 3 days, all by myself. I try to treat it like a mini Catherine retreat. Yeah, I spend time doing all the self-righteous and healthy stuff. I meditated every day for at least 30 minutes; I wrote; I read books (All the Single Ladies and Shonda Rhimes Year of Yes); I worked out each day, whether it was yoga or online videos); and since we now live in a burning ring of fire that is getting closer and closer to imploding on our heads every day, I also suntanned in 80 degree weather and went in the ocean.

I did not leave the house once. Also there is no TV here and only spotty internet.

So to fill the space, I also did a bunch of stupid-ass things too that were dumb or pointless or were just to kill time. So that you don’t think I spend 3 days levitating in meditation and subsisting on green juice, I present to you a list of Rando Dumb Things Catherine Does When She Goes on Solo Vacation:

-Picked off all of an old gel manicure

-Panicked for 20 minutes while sitting on the screen porch while some animal in a thicket outside gnawed ferociously on something. I think maybe it was a possum?

-Made a two-person serving of Bisquick pancakes… and ate the whole thing

-Foam-rolled for an hour while listening to old episodes of “Another Round” podcast

-Fucked around on Twitter for entirely too long (the story of every day of my life)

-Drank an entire pot of increasingly cold and stale brewed coffee throughout the day

-Showered exactly once. Dirt’s good for you yeah?

-Recorded 2 different drafts of a new podcast I’m working on

-Did some work, probably a couple of hours a day. I like work, so no biggie

-Set up a trap for the fruit flies taking over the little kitchen and watched with glee as they all got stuck in the cup with plastic wrap over it.

-Went through 2 bottles of wine

-Got bored of wine one night, pawed through cabinet of airbnb (they said this was fine) and found some drambuie. Googled what exactly drambuie is. Proceeded to make disgusting but sort of satisfying drink out of drambuie and tonic water.

-Ate an entire slab of brie by myself, semi slowly, of the course of two days.

-Lay on the floor of the screen porch and stared up and listened to waves

-Wrote this, then napped

by catherine at October 27, 2016 04:31 PM

October 25, 2016


New York: The greatest city in the world... for some people.

So, I only lasted a year in New York. I remember my uncle telling me that he only made it a year in New York and was begging his job to let him leave by the end of it. I remember pridefully laughing at how silly this was: New York will be great! He just couldn’t handle it. I can.

Little did I know.

Looking back I remember my very first impression of NYC: I took a trip there when I was in 8th grade. The only things I remember from that trip are Times Square and Central Park. My impression? It’s gross, there’s trash everywhere, and ohmygod there are way too many people. It was incredibly overwhelming, and I clung to the group that I was with for fear of being swept away in the sea of people, or having my bag stolen by the millions of pickpockets and criminals that littered the streets (or so I was told).

I travelled there again in 11th grade to take dance classes at Broadway Dance Center with the dance troupe that I had been in for six years. I have fonder memories of this trip. The dance classes were challenging, but exciting. We saw Chicago and Wicked. We ate at Serendipity. We went shopping along 5th Avenue. We ate at a five star restaurant you could only get to by going through the kitchen of a taco stand. This time around New York had more glitz and glamour, but still not in a way that I found inviting. It felt like a facade. It felt unattainable, or at the very least unsustainable. In the end, I still walked away happy to leave New York categorized under a fond, if odd, memory.

Flash forward seven years and I find myself in a serious relationship with a New York actor, a distain for the job that I was currently in, and the strong desire to hard pivot into coding full-time. All of this led me to Recurse Center, but my one concern was that it was in New York. I had bused back and forth to New York a couple of times in order to visit Nathan, but originally Nathan was the only thing that I looked forward to. With each visit, New York started to dig its claws in. I discovered what public transportation should be like (in comparison to WMATA), I learned summers don’t have to be muggy disgusting swamps of humidity, but what really sold me was Central Park. It was a beautiful sea of calm in the midst of this whirlwind of people, or as someone once described it “the reason New Yorkers don’t kill each other.” If I could have spent every summer day lounging in Central Park, I would have. So, despite my reservations, when the acceptance letter from Recurse came, I jumped on it.

I moved into the top floor of a five story walk-up in the Cobble Hill neighborhood of Brooklyn. That climb never got easy, but the view from the roof was unbeatable. I was right across the street from Trader Joes, a block down from what would become my gym, and a 10 minute walk to 4 different subway lines. The spot was ideal. And while I was attending Recurse, I loved everything about New York. I had a built in friend group, activities to attend every night, free theatre to see, endless sights and sounds and opportunities. I attended parties with celebrities. I got to see the inside of many a tech giants headquarters. I was living the New York dream. And then Recurse ended.

Suddenly my place in New York felt less secure. The search for jobs left me feeling uncertain about myself, my career choice, my purpose in New York. Even when I eventually started my job at Cadasta, it no longer felt quite right being in New York. I worked from home everyday, which got progressively harder between the increasing heat and the constant construction on either side of my building. I attended fewer and fewer Recurse events because it never felt quite the same. The built in friend group I had became harder to get a hold of as everyone started their new jobs. Maybe if I had had a physical office with co-workers I might have maintained the feeling of belonging for a little while longer, but in reality there were a lot of other factors that played into my slowly loosing excitement for New York.

When Nathan mentioned the possibility of moving back to DC, I wasn’t totally sure at first, but the more we talked about it, the more it just felt right. I had at one point loved New York. That feeling wasn’t really there any more. It’s a vibrant city that deserves every bit of the reputation that it’s garnered - the good and the bad. This city forces growth or destruction in everything from buildings to resources to people. The growth that I experienced has a sort of complicated morality to it. It certainly hasn’t made me ‘nicer’, but it’s made me happier, stronger, and less apologetic about my existence.

Be Assertive

I learned to be more assertive. New York doesn’t have time for you to pussy foot around, it doesn’t have time for your uncertainty, or unexpected politeness. Don’t hesitate, don’t second guess. You’ll get run over. This counts in every situation: walking down the street, ordering food, getting on and off public transportation. No matter what, even if you’re totally clueless, always at least act like you know what you’re doing. If you need someone’s attention, demand it. No one is going to give it to you freely. It’s not that they’re rude or don’t care, they just literally do not have the emotional stamina to be aware of other human beings unless they absolutely have to.

Don’t apologize

I learned not to apologize for my existence. Women especially have a tendency to say “sorry” all the time. For everything. It’s not my fault they were looking at their phone and ran into me. It’s not my fault someone stepped out of a shop into the flow of sidewalk traffic and ran into me. It’s not my fault they feel the need to take up two subway seats when I was sitting there first. It’s not my fault someone abruptly stopped in front of me so I ran into them. I’m learning to not let “sorry!” be an unconscious reaction to all of these situations. I’ll glare, get angry, role my eyes, yell at them. Or not. But I definitely won’t apologize if I’ve done nothing to apologize for. Was it my fault? Did I do something wrong? Then no apologies. If that makes people think I’m rude that’s their problem.

Accept uncontrollable rage

I’ve been angry before. I’ve been upset by situations that any logical person would be upset by. But I have never known rage quite like that caused by NYC. There’s something about the combination of being constantly jostled by other people, the noise, the smell, the overstimulation, the stress, and then waiting 30 minutes for subway only to get stuck on a train with no AC that spends a good ten minutes at every stop. That feeling of “WHAT IS HAPPENING AND WHY IS NO ONE DOING THEIR JOB I JUST WANT TO BE HOME”. That unconsolable feeling piled on top of the heart breaking desire of just wanting to be home and alone and crying into a stiff drink. Something about all of this really puts things into perspective. I’ve learned to embrace it, and confront these feelings head on, so when they occur in a situation I’m actually in control of, I’m prepared to deal with them.

Try new things

Literally everything in New York is a new thing, so this was a hard lesson to avoid, but it’s something I’ve really learned to appreciate. I’m no longer afraid to travel on my own. I’m no longer afraid of any big city. I’m no longer afraid of talking to strangers, and I’m no longer afraid of trying “weird food”. Life is far more exciting now.

Embrace anonymity

I met so many people in NYC, but it got to the point where someone would introduce themselves, and my brain would not even register that they had said their name, let alone remember what it was. You just meet so many people, and there’s a 90% chance you’ll never see them again. While this might seem sad, it means those 10% really matter. There’s also a certain freedom in knowing you’ll never see people again. You don’t have to worry about whether or not they like you. You don’t have the pretend to be someone else because that’s too much work for a stranger. I used to make it a goal to ensure everyone thought I was nice. It was very important to me. But to what end? Who cares. I’ll never be rude or cruel, but I now refuse to shrink myself out of fear of being disliked. If they didn’t like me, there are plenty of other people who will.

There’s also a freedom that comes with this anonymity. There are so many people that New Yorkers have no time to register anyone else. So I could wear whatever I wanted, do whatever I wanted, and be whoever I wanted. No one cares, it doesn’t matter. “Those who mind don’t matter, and those who matter don’t mind.”

I’m grateful for New York. While I wish I could say that I’m thick skinned enough to really love living there, I can certainly say I’m glad that I at least tried. At the very least, it’s made me appreciate things that I never thought I would in 8th grade: dishwashers, boredom, and silence.

October 25, 2016 01:00 PM

October 20, 2016


For The First Time, More than 8,200 Congressional Research Service Reports Available Online

New Civil Society Website Makes Available to the American People Reports Previously Available to Congressional Staff and DC Insiders

Contact: Daniel Schuman, Demand Progress


Washington, DC— October 19, 2016 — More than 8,200 reports authored by the Congressional Research Service, Congress’ think-tank, were published online today at by Demand Progress, a progressive grassroots organization with 2 million members that works to build a modern democracy. CRS reports contain non-partisan, in-depth analysis of important issues before Congress, ranging from telecommunications to privacy to social security and more, and are written to help members of Congress understand the policy choices they must make.

Daniel Schuman, policy director at Demand Progress, and former legislative attorney with CRS, said:

“For more than 20 years, the public has clamored for Congress to systematically release CRS reports to the public. Instead, those with DC connections have received preferential access, leaving lone members of Congress to fill the gaps and address iniquities. Congress must do better, and this new website points the way forward.”

For the first time, all CRS reports currently available on Congress’ internal website have been made publicly available at once, with more to come. Previously, members of Congress had released the reports piecemeal to the public, although there have been legislative efforts over the last three decades to do so systematically. The most recent effort is the bipartisan bicameral Equal Access to Congressional Research Service Reports Act of 2016, introduced by Sens. John McCain (R-AZ) and Patrick Leahy (D-VT) and Reps. Leonard Lance (R-NJ) and Mike Quigley (D-IL).

Rep. Mike Quigley, who sponsored legislation to release all non-confidential CRS reports to the public, said:

“Increasing transparency and accountability in government is not only the key to improving public trust, it is the key to improving the way government works. I applaud Demand Progress on their efforts to bring greater transparency to the exceptional, non-partisan research conducted by the Congressional Research Service. While I will continue to work with my colleagues on both sides of the aisle to create a Congressionally maintained database for non-confidential CRS products, this website is a great resource for our constituents to access these important reports. Information is the power the people need to trust their government and the work we do each and every day.”

Rep. Leonard Lance, who introduced the Equal Access to Congressional Research Service Reports Act in the U.S. House, said:

“It is 2016, any student, reporter, taxpayer or interested citizen should be able to view CRS reports online. These reports for paid for by taxpayer funds, the taxpayers should be able to read them. It is past time to end the era of secrecy to these reports and open them to the benefit of research, reporting and public information. This online portal will become a resource for many and bolster the argument for transparency.”

Notable about this effort is:

  • It is done in partnership with a Democratic and Republican member of Congress, who are programmatically providing the reports to us.
  • All reports published on CRS’ website are included — more than 8,200 — which previously were directly available only to the 20,000 staff on Capitol Hill.
  • The reports are viewable on mobile devices as well as online, unlike CRS’s own website, and can be downloaded individually and in bulk by anyone.
  • The phone number, email address, and names of the analysis are redacted from virtually all the reports, and a “no copyright” statement is added, addressing concerns raised by CRS.
  • When a report is updated, we tell users the percentage of the report that has changed.
  • The code for the website is available online on GitHub for free.

Calls for Congress to release the reports to the public have been endorsed by former CRS employees with a combined 500 years of experience as well as a broad bipartisan coalition of civic organizations, non-profits, think tanks, grassroots organizations, libraries, and others.

Julie Todaro, president, American Library Association, said:

“Today, Demand Progress has enabled researchers and entrepreneurs everywhere to benefit from the kind of information that drives innovation. Now it’s time for Congress to permanently guarantee this access by law, and to itself create an online portal to such vital, taxpayer-funded information for all.”

Kevin Kosar, senior fellow and governance project director, R Street Institute, a libertarian think tank, and a former research manager and analyst at the Congressional Research Service, said:

“Congress long ago could have fixed this inequitable and anachronistic situation with ease and little to no cost. But it dithered for years, so the private sector stepped forward and got the job done in a blink.”

CRS reports do not contain classified information or individualized advice for members of Congress. They are written in plain language for general consumption and it is anticipated they may become publicly available. On occasion, House and Senate committees have officially published the reports, and it has long been Senate policy to encourage members and committees to release the reports to the public.

Former Representative Chris Shays (R-CT), who pushed for public access to the reports in the 1990s and published them on his congressional website, said:

“CRS reports are thoughtful, well researched, well written and well organized. My staff and I depended on these reports on nearly a daily basis. It is truly terrific that 8,000+ CRS reports will now be available to the public by visiting the website”

The website was built by Dr. Josh Tauberer who founded, a website that makes available federal legislative information to the American people. is a project of Demand Progress, a progressive organization that coordinates the Congressional Data Coalition alongside the libertarian R Street Institute.The coalition champions greater governmental transparency through improved public access to and long-term preservation of congressional information.

With a new Librarian of Congress, and the start of a new Congress in January, the time is ripe for Congress to systematically make the reports available to the public. Until then, we will do so at


For The First Time, More than 8,200 Congressional Research Service Reports Available Online was originally published in Demand Progress on Medium, where people are continuing the conversation by highlighting and responding to this story.

by Daniel Schuman at October 20, 2016 05:05 PM


How to Socialize Effectively - If Boringly - in Your 30s

Let me set the scene about what it looked like in DC amongst my group of friends to socialize in our 20s. Somebody would send a text; or yell up the stairs in a group house; or send an email; or maybe awkwardly utilize the then-brand-new Twitter to send a tweet suggesting an evening plan. (Yes, Twitter in 2007 was used for stuff like ‘going to dc9 in a few minutes any1 want to join’; this was before it turned into a platform that reflected your career and before any of us had more than 20 followers.) I would estimate that 75% of the time we would end up at the aforementioned DC9 - one of the only bars on U street around that time -- drinking pitchers of Miller Lite until 1am and feeding dollars to the jukebox to play a Dismemberment Plan song. Somehow we were never hungover the next day. All told, it was fun, easy, and always spontaneous.

Fastforward 10 years. People have marriages, kids, careers that demand they not be presenting to the board the next day with unwashed hair and a low-level hangover. Some of us try -- futilely -- to keep in shape, so are spending time at the gym in the evenings or rolling out of bed for early morning runs. We more often live alone, with partners or in our own apartments, so you can’t just yell up the stairs if anybody wants to go grab dinner or expect that every Sunday night, without any formal planning, you’ll be huddling around the TV for whatever HBO drama is playing out. Socializing with friends got hard.

Enter UPTIGHT PLANNING LADY (that’s me, could somebody create me a logo please and thanks) to tell you about how I’ve managed to still socialize several times a week in meaningful ways with groups of friends. I’m very happy with my social life. I talk to a lot of people daily and I would say, although I’m single and live alone, I probably socialize 3-4 times a week in real life with people, and multiple times a day virtually (which I count).

How do I do it? Here are my secrets: 1. Bucket your friend groups into the ways in which you can socialize with them and 2. Plan everything, preferably around clubs or formal activities.

Yes, this means that spontaneity no longer exists in your life, but you’re in your 30s, you knew that by now. Embrace structure. Embrace boringness. Embrace plans.

Let me explain by what I mean by #1: Bucket your friends into groups.

As I got older, I started realizing that (duh) certain friends met certain needs. Some were the people I knew would always want to see a concert with me. Some were into cooking and dinner parties, and some were running buddies. Some I could expect to have a light evening of fun with - but not much more - and some are besties that I know I’ll have a meaningful and real conversation with everytime I hang out with them. Some friends are my family; some are my coworkers; some could always meet for lunch but never for happy hour; some, despite my advice, would only hang out spontaneously and fail at all planned attempts to hang out.

The key is knowing which activity is right for which friend bucket. I know enough now that I would never ask my running buddy to go see a concert with me. My friends with kids I would suggest plans on a weekend morning near their house, but I certainly wouldn’t say, let’s meet up for 12 beers on Thursday night. I have friends who like outdoor activities and camping so that’s what I do with them. I do have a couple spontaneous friends, and even though I’m not very spontaneous, they’re the ones when, I’m feeling like a last minute drink after work, that I text. When I’m down and need a real talking to, there are the BFFs I know I can ask to meet me who would drop everything to do so - but I wouldn’t ask one of my more superficial friends to do that. (Nothing wrong with superficial friends, by the way. I have plenty, they are great, and I’m sure I fall into this category for lots of other people --  it’s just more a realization they are people to have a good time with on an occasional basis, not for life advice and emotional needs.)

This may sound depressing to so strictly categorize HUMAN BEINGS but I’ve found it useful for my emotional friendship needs and socializing. I have a lot of friends and know a lot of people and when I’m in tune with what I want to do in terms of socialness or interest level on any given day, I know who is more likely to be able to do it with me.

Moving on to #2: Plan everything, preferably around clubs or formal activities.

This sounds dorkier the more I write about it, but I’ve found great social success in having any number of clubs. I have a cookbook club. I have a fitness club. I have a book club. I have a single ladies club. I’m in a casual blogging club where we all try to blog once a week (many of us fail but oh well) and we just had our first happy hour, which was a lot of fun. Some of my friends do a Whiskey Club that I join occasionally. I have a Slack Club (IRL friends who hang out virtually and chat daily in a Slack channel, which I find very socially nourishing and totally count as real relationships and friendships even though I don’t see most of them in person more than once or twice a year.) I have my family (which I would consider sort of a club, the Family Activity Club. And I’m very lucky for them - parents, siblings, a sister-in-law and three cute kids are all in the area). I have occasional Cabin Club friends - where I plan a cabin weekend and I have a set group of friends that I know will go with me. I guess I have work, or like, Work Club, which I am also very lucky in - not only is my work fulfilling but I am very emotionally nourished by my coworkers and the relationships I have there.

This is more a reflection of my personality perhaps -- I’m an activator-type person who’s pretty organized and proactive and likes to Get Things Done. So I’ve created or joined any number of real-life or virtual clubs and consider them the fabric of my social life. I think this works as you get into your mid to late 30s because as you get older, more boring, and make more money (if you’re so lucky, that is) you develop particular interests and hobbies and go deeper into them. Mine are pretty straightforward - reading, being outdoors, working out and cooking. (Probably a real normcore slew of late 30s activities.) So reorienting my social life to be around those clubs that require an investment of time and energy has worked for me.

The fact is that I’m just not as spontaneous as I was in my 20s - though I was never really spontaneous, I am UPTIGHT PLANNING LADY after all. But our 20s encouraged and enabled spontaneous hanging out. Which was great. But I have stopped holding on to that wish for always having something social to do at the drop of a hat every single day of the week, and embraced a more structured approach to my socialization. It works for me and if you’ve been struggling with socialization into your 30s, it might work for you too.

by catherine at October 20, 2016 01:49 PM

October 19, 2016


Thanks, Chris.

Thanks, Chris. We’re as good as the source material, so if the HTML version doesn’t have graphs, we won’t have them either.

The search experience is little weird because it’s cheap (well, free). We could use a better search engine from Google, but it would cost a fair amount more. If this project receives financial support, we’ll be able to have nicer things.

Finally, as to your concern about lobbying CRS to have additional information in its reports — we’re already in that world. The people who care most about its reports are Congress and the lobbying world, and they’ve had access to all this for a very long time.

by Daniel Schuman at October 19, 2016 08:35 PM

October 18, 2016


Experts Call on Senate to Stabilize Committee Staff

October 18, 2016

Dear Majority Leader McConnell, Majority Whip Cornyn, Democratic Leader Reid, and Democratic Whip Durbin:

The United States Senate is an institution rooted in history and tradition. Its long serving members and staff are a repository of policy expertise that serve as a counterweight to an often over-assertive executive branch. We encourage the Senate to continue to implement its rule on committee staff, Rule XXVII, in a way that reinforces one of the Senate’s key strengths: its committees.

The Senate has approximately 900 committee staff. Senate Rule XXVII requires committee staff reflect the relative number of majority and minority members serving on the committee, with no fewer than 1/3 of the staff hired by the minority.[1] Starting in the 112th Congress, leadership agreed to a new funding approach for committees that reflects the party division of the Senate while recognizing the majority’s need for resources “commensurate with its responsibilities in administering the committee.”[2] In effect, committee resources are proportionally split between the parties in a way that reflects the composition of the chamber, with some additional funds available to the majority to manage each committee. Prior to that time, agreements concerning budgets and staff numbers were struck by leadership,[3] with committee staff allocations prior to the 107th Congress providing for two-thirds of funding for the majority and one-third funding for the minority, resulting in nearly 300 staff turning over when control of the Senate changed hands.

By some news accounts, majority control of the Senate is expected to change twice in the next four years. As you have recognized, such staff volatility is not conducive to good governance.Elections must have consequences for how the Senate operates, but they should not result in an immoderate changeover in its committees. More stability in tenure enables staff to build expertise in their issue areas, gain experience with oversight, and strengthen relationships with other staff that foster the spirit of comity so sought after in the upper chamber.

It is in that spirit we write to you, a diverse group who share a common concern for the well-being of Congress. Senate committee staff turnover is not a partisan matter; rather, it is a separation of powers issue. Congress should not weaken itself vis-a-vis the executive branch.

We urge you to agree in principle, prior to the election, to continue to share committee staff appointments proportionally by party membership in the chamber, with the carve-out and limitations as currently is in effect for the 114th Congress.[4] We also recommend you update Senate Rule XXVII at the appropriate time to reflect this policy.

We welcome the opportunity to discuss this with you further. Please contact Daniel Schuman, policy director, Demand Progress, or 202–577–6100, or Kevin Kosar, governance project director, the R Street Institute, at or 202–525–5715.

Sincerely yours,

Lee Drutman, senior fellow, New America Program on Political Reform

Louis Fisher, former senior specialist with the Congressional Research Service and specialist with the Law Library of Congress

Kevin Kosar, governance project director, the R Street Institute

Molly Reynolds, fellow in governance studies, Brookings Institution*

Daniel Schuman, policy director, Demand Progress

* Affiliation for identification purposes only

cc: The Honorable Chuck Schumer

{ Read the letter as a PDF }


[1] Senate Rule XXVII, available at

[2] “10 percent of the total majority and minority baseline salary amount, after allocations for administrative expenses and non-designated staff, would be set aside for the majority. The remaining 90 percent would be divided according to the party division of the Senate.” In addition, “regardless of the party division of the Senate, however, the minority share would never be less than 40 percent, and the majority would never exceed 60 percent including the 10 percent set aside for the majority.” S. Rept. 114–112,Authorizing Expenditures of the Committees of the Senate, available at

[3] Senate Committee Funding: Description of Process and Analysis of Disbursements, Congressional Research Service (July 2013), available at

[4] In 2011, in a colloquy, then Majority Leader Reid and Minority Leader McConnell stated their intentions that this approach be adopted by future Congresses. See S. Rept. 112–9, Authorizing Expenditures of the Committees of the Senate, available at

Experts Call on Senate to Stabilize Committee Staff was originally published in Demand Progress on Medium, where people are continuing the conversation by highlighting and responding to this story.

by Daniel Schuman at October 18, 2016 01:10 PM


if exit new_york: return dc;

While the whirlwind of the past few months has finally subsided, I still haven’t yet digested everything that happened. I kept thinking to myself “Once this one thing is over, things will slow dow”. Yeah. About that. That never happens. But I should still set aside time to recap.


  • Attended both OpenSource and Feels, and State of the Map US

  • Spoke at my very first conference ever (SOTMUS), and didn't throw up.

  • Got engaged (!!).

  • Travelled to the Thousand Islands region (NY), Seattle (WA), and Lake Anna (VA).

  • Moved everything out of my apartment in NYC and into a storage unit and DC.

  • Finally settled in Wellfleet, MA for a two month stint.


  • Travelled to London, England and ate at every food market I could manage to get to. Saw some fellow Recursers along the way.

  • Trained from London to Frankfurt, Germany for my first all-staff Cadasta meeting. Got some fancy company swag and ate my body weight in sausages.

  • Travelled back to Wellfleet to finish off the month with trips to the beach, searching for turtles, and nature walks.


  • Sunsets, Alabama Story, and Secret Hitler.

  • A month of much needed relaxation.

  • Officially moved back down to DC (well, Bethesda).

It was definitely amazing (if at times stressful) few months. I’m looking forward settling into an apartment in DC and starting chapter 2 of my DC adventure!

October 18, 2016 01:00 AM

October 15, 2016


This Week I Ate: Keftedakia

I tried a food with an unfamiliar name, but the most familiar and comforting taste. This week, I tried keftedakia — basically, a Greek-style meatball — at a new pop-up restaurant in Washington, DC. The restaurant is called Oenosophia, owned and run by Greek brothers, and is aimed at testing the concept of Greek small plates paired with excellent regional wine.

These meatballs were not only delicious greasy balls of meat, but they accomplished what I hear great meatballs should be, but rarely are. They were small, delicate, and boasted a cripsy exterior, yet pillow-y interior. Basically, they were perfect.

Served alongside a surprising lemon wedge and garnished with dried oregano, these five balls of joy were the highlight of the entire table’s meal. We ordered two plates of them.

I even tried to convince the owners that their restaurant concept should be meatball-centric — they have a magical magical recipe on their hands.

I’m struggling to communicate how these meatballs have set a new standard for meatballs in my life. And the picture that I took doesn’t help either. All I can say, is if you’re in the DC area in the next month or so, check out Prequel the restaurant’s incubator and see if Oenosophia is there. I recommend starting and ending your meal with a couple orders of these expectation-setting balls, and a few amazing glasses of Greek wine in between.

One order of Keftedakia from Oenosophia pop-up restaurant in Washington, DC


by Becca James at October 15, 2016 11:12 PM

October 09, 2016


I went to NYC and I found some great alcohol

Guys, don't let anybody ever tell you meeting people off the internet is a bad idea. Do people still say that nowadays? Like, how literally does anybody meet a person otherwise? Anyways, I've been meeting people off the internet since 1996 in a lot of different formats, and I'm IRL friends (that stands for internet relationship likely just kidding it stands for In Real Life) with so many of them now.
Last weekend I went to New York City with several internet friends who are now just friends (one I met through DCist; one I met through Tumblr; one I met through Google reader) and we had a grand time. Here are the things we did:
-Ate at a Mario Batali restaurant, where FRAN DRESCHER WAS ALSO EATING (she uploaded a youtube video of it, it was her birthday, she's 59 and let me tell you she looks good) and proceeded to get the theme song to "The Nanny" stuck in our head for hours
-Ate every smoked fish imaginable at Russ & Daughters where I also drank two 'breakfast' martinis by 11am
-Ate soup dumplings at Shanghai Cafe Deluxe in Chinatown
-Went to the Met and drank $15 glasses of wine on the roof (me in the museum: "Art, art, old artifacts, boring... OH MY GOD THEY HAVE A ROOFTOP BAR?! SEE YA")
And finally, we had a group fried chicken dinner (it was truly incredibly delicious) at Momofuku Nishi where I casually ordered a cocktail called the Penicillin which is now my favorite drink ever.
Turns out it's also everybody's favorite drink ever and it's not hard to find out how to recreate it via the internet, though a lot of the recipes vary. Here's what I did. 
-2 oz of a blended scotch (I know so little of scotch I had to ask another internet friend what this is; she said I could use Johnnie Walker basically so I did)
-3/4 oz fresh lemon juice
-3/4 oz a magical concoction, ginger-honey syrup. To make this syrup, take half a cup of water, half a cup of honey, and whisk them in a pot til blended over medium heat. Then take a big knob of ginger, peel and slice it, and dump it into the honey water. Bring it all to a boil, then turn down heat and let it simmer for 10 minutes. Let it cool, then strain the syrup into a jar, leaving out the ginger pieces.
Then do the cocktail-y thing which is shake it all up in a mixer with ice and strain it into a glass. Preferably one of those super huge ice cubes. Listen, I don't know anything about cocktails, but this is the first one that's made me want to buy a super huge ice cube tray and make huge ice with like, imported Arctic stream water, it's that good.
Other recipes said to serve it with an Islay scotch floated on top. I don't know what that sentence means or what Islay scotch is, but I did read a trick which is you can take the half ounce or whatever of the Islay and "float" it on top by pouring it onto the drink over the back of a spoon. I guess that does something cool? 
It's nowhere near as good as the original but I think it makes a very fine autumnal cocktail and you should make it and I will toast you virtually, or IRL.


by catherine at October 09, 2016 12:14 PM

October 05, 2016


My morning routine

Did you know that 'morning routines of successful women' is a popular content piece? I'm not sure why, since I imagine most morning routines, no matter who you are, start with you huffing awake to your alarm, drool spiderwebbing your pillow, robbed of that awesome dream where you and Chris Hemsworth were about to save Mars (which had been won in a very long space war between different countries on earth and eventually populated) from a colony of alien invaders. But it's true. They're popular. Check it out. 
Screen Shot 2016-10-04 at 8.34.17 PM
I suspect the fact is that a site thinks it can convince readers that there is one magical routine that if you just got yourself to do on a regular basis in the morning, one day you would wake up and be Sheryl Sandberg. Alas, I don't think it works like that. And I find many of these routines to be very suspect. They involve way too much green juice, 6am yoga, and journaling to be at all accurate. Yet another way women, in trying to make themselves look infallible and incredibly put together, end up setting impossible standards for other women that they think they must live up to. This happens in basically every area of life for women, by the way.
Anywhoo. It made me think about my morning "routine." I don't have one, per se. I have a series of things I need to do in the morning so I can get out the door and to work but there has been no conscious thought put into the order of them or if they will make me successful or not. They just seem logical, and necessary, and some of them I like (some meditation), some of them I don't like (blow drying my hair, what a pain) and some of them I do to be a functioning, semi hygienic member of a civil society (brushing my teeth). 
Now, I wouldn't call myself successful, but I'm not NOT successful, and I am a woman, so in case you're interested, here's my human woman morning routine that happens Monday through Friday.

6:30-7:00am: Wake up
This is where the spiderwebbed drool and the Chris Hemsworth dream come into play. I used to be a Very Good Morning Workout Person, getting up between 5:30 and 6 to go for a run or to the gym. That ship sailed, for reasons I'm not sure of but suspect Getting Old is a prime cause, about two years ago. I'm trying not to fight it anymore. I am no longer a Very Good Morning Workout Person. Nearly a year of painful snooze sessions and feeling guilty and regretful for almost never getting a morning workout in anymore, I try to be okay with it. After going to bed between 10 and 11, this is just when I wake up. I wake up to an old school analog travel alarm clock, and if I've been very good the night before, I do NOT have my iPhone in bed with me. But some mornings I do and I check it groggily. I hate this habit, but I do it. My goal for Future Catherine is to get to a place where I do not look at my phone until at least after I've showered.
7:00am: Make tea and put on NPR on my phone to listen to.
Except I have stopped listening to NPR in the mornings as an act of mental health care. The election coverage and news was driving me so batty that most mornings now I just listen to nothing. It's refreshing. This morning, missing some of my daily news information, I ventured back into the world of NPR, straight into a segment where they were interviewing undecided voters. One woman lived in Arizona and seemed to be leaning Trump. She talked about how he WAS smart for not paying his federal income taxes, and how he paid more than any of us could imagine in property taxes, which is what really mattered. She then said most Muslims want to kill "us" (unlike Mormons, which she is, and that had come up because she said she understood she did not want to persecute by religion as the Mormons had been). At this point, I turned off NPR, and sang a song to myself: "You are turning off NPR and it's okay, because self care is the word of the day." I literally sang that song for the next ten minutes. This is now part of my morning routine.
7:05-7:10: Shower.
I am a fast fast showerer. I use some soap stuff, condition my hair first (A TRICK I LEARNED!), then shampoo it off. I also wash my face with Aveeno Clear Complexion face wash. I use whatever shampoo that promises cleansing and volume. Mostly drugstore stuff. 
7:10-7:20: Do all the womanly things.
This means shit like: put shit on my face while my hair is wrapped in a towel): some serums, moisturizer, sunscreen. Think about putting lotion on other parts of my body, decide, almost every single morning, that sounds too goopy and I am too lazy. Put stuff in my hair (John Freida has some good volumizing products) and comb out the tangles.
7:20-7:22: Put on my outfit.
This takes me like 2 seconds because I have all my outfits planned out for the week to save time in the mornings. That was the most boring sentence a human has ever typed.
7:22-7:35: Blow dry my hair and brush my teeth.
Good lord blow drying is boring. I have shorter hair now that needs to be blown out with a round brush so I don't look like Christopher Lloyd in back to the future, but it's boring and takes time. 
7:35-7:45: Meditate
This is the only piece of my morning routine that belongs in an article on the Huffington Post or Forbes. I am pretty good about taking 10 or even just 5 minutes to meditate in front of my light box. Sometimes I light incense because I'm chill like that.
7:45: Leave
I try to get out the door by 7:45 so I can walk to work. I live just inconveniently far enough from work and Metro is a dumpster fire so I generally just walk the 35-40 minutes if the weather is nice and also it makes me do better than all my stupid Fitbit friends, take that Fitbit friends. I stop for a coffee nearly every day at a gas station Dunkin Donuts. I'm classy like that. I listen to podcasts. My latest favorite was this Invisibilia episode on noncomplementary behavior. It was so up my alley and really the way I would like to approach the world more. 
8:25 or 8:30: Arrive to work bathroom
You may have noticed I have not yet applied makeup at this point in the day. In a futile effort to get it to stay on longer and look more like a Real Business Lady throughout the day, I wait til after my walk and apply it in the work bathroom. This takes FOREVER. FOREVER in Catherine's world is 10-15 minutes. But still, a chunk of time.
8:45: Settle in at desk, change shoes (let's be real I walk to work in sneakers), be Real Business Lady
It ain't no "wake up at 5am and stretch in gratitude while preparing my Nutribullet green smoothie then head off to two hours of yoga" that I feel like those morning routine articles often are, but there you have it. The very normal and very boring routine of a mid-30s business lady in the District of Columbia.

by catherine at October 05, 2016 01:05 AM

September 25, 2016


Weird things about my family

I think I've written about this before but for those of you who don't know, I'm a very small part Chinese on my mother's side (I'm 1/8 Chinese; my great-grandfather Otis was Chinese). Despite that being relatively interesting and unique to a blond, hazel-eyed, all-American woman, I have never taken super interest in my heritage. As I get older though, as I think for most people, you want to learn more about where you came from. So when my uncle scanned and emailed a genealogy document my cousin put together in 1993 (that I had seen before my totally ignored) last week, I read it with great interest. And there is some super weird stuff in there.

#1: My great great grandfather was an indentured servant. 
From his bio: One of about four brothers, Luk Wing Hoy immigrated to San Francisco from Kwantung Province, China in 1871 when he was only 12 years old. He arrived on a Chinese sailing vessel and worked as an indentured servant to another Chinese family. He moved to Sacramento as a free man and joined the Westminster Presbyterian church on December 30 , 1875 (age 17). He learned English at the church's mission school and earned a living as a court interpreter. Eventually he became a partner in a general merchandise business - -the Hoy Kee Company at the comer of 5th and I streets. In 1890, he met and married Fong So through a matchmaker.

#2: My great great grandparents met through a matchmaker and had a 20 year age difference.
This means my great great grandmother (Fong So) was, oh, 15 when they got married. The marrying through a matchmaker was very common from what I understand in the Chinese immigrant community (and maybe in China anyways? Not sure). They then proceeded to have EIGHT CHILDREN.

#3: My great great grandfather "went insane."
I don't really know what happened. But this is from his obituary in the Sacramento Bee in 1909:  Until two years ago Hoy conducted a store (blah blah blah) and was one of the most prosperous of the local Chinese. Suddenly he went insane and his last two years have been spent in Napa.

That's literally exactly all it says. So in 1909 you can just go cray and get shipped off to wine country? Must investigate this approach.

#4: The media was racist AF back in the early 1900s.
This is a literal excerpt from my great great grandfather's obit: "His family are still in possession of the store and business. Among white people Hoy was as well or better known than any other member of his race in the city." Yay? Then, from a previous marriage newspaper article in 1890: "The marriage of Luk Hoy, the well-known Chinese interpreter, and Miss Fong Sue, a coy maiden with a complexion of olive hue (!!! WTF) occurred last night etc etc."

by catherine at September 25, 2016 11:04 PM

September 18, 2016



While setting up my new network at my house, I figured I’d do things right and set up an IPSec VPN (and a few other fancy bits). One thing that became annoying when I wasn’t on my LAN was I’d have to fiddle with the DNS Resolver to resolve names of machines on the LAN.

Since I hate fiddling with options when I need things to just work, the easiest way out was to make the DNS names actually resolve on the public internet.

A day or two later, some Golang glue, and AWS Route 53, and I wrote code that would sit on my dnsmasq.leases, watch inotify for IN_MODIFY signals, and sync the records to AWS Route 53.

I pushed it up to my GitHub as DNSync.

PRs welcome!

September 18, 2016 09:00 PM

September 15, 2016



Steph and I have been AirBnBing our guest bedroom for about a year and a half now, and it’s been mostly great. It’s not a ton of extra money, but it’s not an insignificant amount, either. We occasionally meet interesting people. We are regularly reminded that the world is full of people unlike ourselves, and that it’s possible to get along with them, at least when the interaction is supervised by an app’s influential reputation system.

And it seems like it’s probably good for us. I love my job dearly, but it does involve a lot of playing with computers and eating free snacks. Spending a few hours a month scrubbing toilets for money makes me feel like I might have at least a slim chance of surviving the revolution.

The aforementioned reputation system does a good job of driving nearly everyone within it toward neurotic approval-seeking. You are not just supplying a service for money; you are also hoping your guests will have a good time and compliment your home and be impressed with your lifestyle. They are not just paying for lodging; they are trying not to be a bother and giving you coffee from their home country and making implausible offers to put you up if you ever visit COUNTRY/CITY X. It’s all a little bit charming and let’s be honest more than a little pathetic, but the five-star ratings really do seem to weed out the sociopaths. It works pretty well.

Despite their business being built on overeager social fumbling, AirBnB is taking steps to make interactions more impersonal through the use of their Instant Book feature, by which hosts relinquish their ability to approve requests from prospective guests one by one. They have both good and bad reasons for this. Good, in that there is strong evidence of racial and no doubt other forms of iniquity in how hosts accept guests. Bad, in that they were pushing Instant Book well before the bias conversation, presumably because lowering coordination costs leads to more transactions and revenue.

I am in favor of systematizing away opportunities for human odiousness, but Steph and I are unlikely to enable Instant Book. In our experience, the worst AirBnB interactions occur when expectations are mismatched. A first-time user with poor English expects to get a full condo, rather than just a room, for eighty bucks a night. A high school kid from suburban Maryland expects to stay at our place with his girlfriend. A couple of friends expect a third to maybe join their weekend trip on a whim and crash on our living room couch. A new graduate’s parents have never been out of China before and expect to order room service. Or maybe Steph and I just have an inkling of plans for a week we haven’t thought to block off yet. Reviewing potential guests allowed us to avoid several of these catastrophes. Plus the silly letter the guest has to compose gets the stilted courtship described above off on the right foot.

Most guests are nice but boring folks. They typically hole up in the room they’ve let and do their thing without much bother. We have learned to identify risk factors for those who will spend a bunch of time at home (when they do this you have to pretend not to mind):

  • Those at the end of very long trips will be exhausted and will just want to surf the web rather than continuing to fake enthusiasm for seeing cultural treasures or whatever.
  • The young will be too poor to spend time outside of the house except for whatever their Big Planned Event is. Also their blase attitude toward their creeping mortality makes them feel like they have all the time in the world to visit the National Archives someday, but you know what, young man, you don’t.
  • The old, particularly those who have clearly been dragged along by their spouses, might just want to watch TV, which in our household often requires moderate-to-advanced skill at TCP/IP network configuration. We try our best but some of them don’t even know how to run a traceroute.

We have been charmed by several guests. There was the Parisian atmospheric scientist who flew planes to take air samples, who Steph still pines for. There was the bartender who was back to take the bar for the third time after missing the date for the one near his home in New York City. There was the Eastern European flight attendant who met his internet language-learning community girlfriend for the first time in our house on Valentine’s Day, followed her home to Southeastern Virginia, proposed, was not allowed to meet her family, flew home without a ring or engagement, and was still so polite as to respond to our thirsty AirBnB requests for details about how it all went. I think fondly of all of them.

But if I were to offer only one piece of advice about how to charm your AirBnB host it would have to be this: try not to leave too much hair behind. Honestly, this is all I care about. Maybe avoid putting wet garbage in the bin, too, so I can reuse the liner after I empty it. Otherwise, go nuts. My dream guests are an aging and profoundly bald gay couple. No stray hairs, in bed at a reasonable hour, and maybe they can tell us some good stories over a glass of wine. God bless them.

If you are considering AirBnB hosting, I have a longer list of suggestions:

  • Consider the cost of room turnover and the cost of guests letting their guard down and beginning to transgress boundaries. For us this means bookings of 3-5 nights, which is a narrow window that probably hurts earnings but minimizes stress.
  • Use AirBnB’s free photography service. It makes your place look great, though it can take a while to get an appointment and our listing makes it look like we have a Christmas tree up year-round.
  • Buy some makeup removal wipes and leave them in a prominent spot, or else you will eventually wind up with some destroyed towels. The first time you see a guest heading out for the evening in unexpectedly high heels you should immediately buy another towel set on Amazon.
  • Get some programmable door locks or a key lock box, obviously. Alternately, prepare yourself to get upset over guests not respecting your arrival policies. You will be irate but they will not understand the problem at all, like a dog getting yelled at for drinking out of the toilet. It’s water, isn’t it? I don’t see what the big deal is.
  • Ask existing hosts for testimonials to get over the “is this new listing a scam that will steal my kidneys” hump.
  • If your guest shower has a hose sprayer, great, bully for you. If not, get one of these things. It will make your bathroom cleaning so, so much faster. A little handheld vacuum is also a substantial time-saver.
  • It’s maybe overkill but we installed some fan timers and USB outlets to encourage non-moldy bathrooms and fewer questions about borrowing chargers.
  • We’ve found that guests leave reviews about how much they like having a good neighborhood guide, a comfy bed, immaculately clean bathrooms and an electric kettle in the room. They don’t seem to care about the cheap Trader Joe’s wine we gave away for a while. I guess we weren’t fooling them.

Sometimes we are attentive, sometimes we are busy, sometimes we are maybe even a little surly. The guests don’t seem to notice. The AirBnB review is by now a well-understood compositional form. Give them a fair deal and they will write you one, like a traveling bard composing a song. You’ll meet some strangers and it’ll basically be okay, sometimes a little worse but often better than you’d think.

by Tom at September 15, 2016 04:36 AM

September 13, 2016


Strengthening Congressional Oversight of the Intelligence Community

Today 33 organizations called on the House of Representatives to strengthen its oversight of the intelligence community. Concurrently, a bipartisan quartet of organizations made in-depth recommendations on how the House should update its intelligence oversight rules.

The letter and white paper are the culmination of nearly two years of work. Their release comes on the heels of the commemoration of 9/11 one day prior to a House hearing on updating the lower chamber’s rules.

This video, prepared to accompany the release of the letter and white paper, explains the importance of a strong congress.

The letter is below. The White Paper is online.

Dear Speaker Ryan and Minority Leader Pelosi,

We write to express our concerns about congressional oversight of intelligence activities. Congress is responsible for authorizing and overseeing these programs. In recent years, experts and policymakers have expressed concern that congressional oversight efforts are falling short. Experts have put forth reform proposals, but there has been no systematic evaluation of whether reforms adopted heretofore have met the mark.

We believe Congress must renew its commitment to provide a meaningful check on the executive branch and reform how it conducts oversight over intelligence matters. The time for modernization is now. When the House convenes for the 115th Congress in January 2017 and adopts its rules, the House should update them to enhance opportunities for oversight by House Permanent Select Committee on Intelligence (“HPSCI”) members; members of other committees of jurisdiction; and all other representatives. The House also should establish a select committee to review how it engages in oversight.

HPSCI Modernization

Provide staff designees for HPSCI members. Each HPSCI member must be able to designate a staffer to represent his or her interests on the committee, as their Senate counterparts do.

Improve HPSCI operations and transparency. HPSCI must improve transparency while protecting classified information. We recommend:

For HPSCI members. Regularly review whether HPSCI receives all requested information and reports from the executive branch. Retain an information specialist to track all requests made by and reports received by HPSCI from the intelligence community.

For the House of Representatives. Abide by the same requirements placed on standing committees with respect to providing notice to Congress and the general public. Provide appropriate notice to all members about HPSCI’s work and support an informed conversation about intelligence oversight.

For the general public. Establish a process to declassify, review and process intelligence information.

Improve responsiveness to House membership. HPSCI must quickly and transparently

respond to member requests for information or for meetings, with a process to engage the full chamber. Information in HPSCI’s custody must be available to House members and cleared staff upon request, unless restricted by statute.

Make available annual unclassified intelligence reports. The annual, unclassified intelligence reports that HPSCI receives must be made public with minimal delay.

Modernize HPSCI membership. The current structure of HPSCI must be further aligned with the interests of the House. The Speaker and the Minority Leaders should continue to designate the chair and ranking member. Chairs and ranking members of other committees with intelligence jurisdiction — Appropriations, Armed Services, Foreign Affairs, Homeland Security, Oversight and Government Reform, and Judiciary — should each select a designee on HPSCI. For the remaining committee members, each party conference should have an inclusive process to choose them (four for the majority, three for the minority).

Empower all members of Congress

Improve training for members and staff and establish Office of Classified Information Access. Members and staff must be provided training to handle classified information and to conduct effective congressional oversight of classified matters. A new office must be created to assist with handling classified materials.

Reaffirm member access to executive branch communications. Communications from the executive branch must be made available to all members, unless the sender explicitly indicates otherwise.

Clarify discussion of public domain information. Reaffirm that members and staff may refer publicly to classified information already in the public domain.

Allow congressional publication of information in the public interest. Reform the process by which members of Congress may inform the public of matters they conclude should be publicly available.

Provide members with sufficient staff assistance: All members must be allowed to designate one personal office staff member to be provided Top Secret/Special Compartmented Information (TS/SCI) clearance to attend briefings on behalf of and to provide counsel to the member.

Strengthen Congress’ capacity to engage with whistleblowers. Federal employees and contractors who blow the whistle must be able to speak to any members of Congress, committee of jurisdiction or personal office staffer without fear of reprisal. A new whistleblower ombudsman office will be created to provide assistance and advice to offices and review House disposition of whistleblower complaints. Committees with jurisdiction will create new secure, classified intake systems for whistleblowers to contact Congress directly.

Review of Intelligence Community oversight

In addition to the above reforms, we urge you to consider establishing a distinct, broad-based review of the activities of the Intelligence Community since 9/11, modeled after the 9/11 Commission or the U.S. Senate Select Committee to Study Governmental Operations with Respect to Intelligence Committees.

When questions were raised about the activities of the intelligence community in the 1970s, Congress reacted by forming two special committees, colloquially known as the Pike and Church committees. Reports preceded wholesale reforms of the intelligence community, including improving congressional-oversight mechanisms. The outcome improved congressional oversight and the perception of its efficacy. The House should provide the new select committee adequate staffing and financial support, and give it a broad mandate to review practices and structures associated with congressional oversight of intelligence matters.

Background information on our recommendations are available in the forthcoming white paper “Congressional Oversight of the Intelligence Community Reform Agenda.”

Thank you for your service to our nation and for your attention to our request. We welcome the opportunity to discuss this with you further. Please contact Daniel Schuman, policy director, Demand Progress, at and 202–577–6100 or Nathan Leamer, outreach manager, R Street Institute, at 202–525–5717 and

Sincerely yours,

American Library Association
American-Arab Anti-Discrimination Committee
Association of Research Libraries
Bill of Rights Defense Committee/Defending Dissent
Brennan Center
Campaign for Liberty
Center for Democracy and Technology
Constitution Project
CREDO Mobile
Demand Progress
Electronic Frontier Foundation
Electronic Privacy Information Center (EPIC)
Federation of American Scientists Project on Government Secrecy
Fight for the Future
Free Press Action Fund
Government Accountability Project
Liberty Coalition
National Security Archive
National Security Counselors
Open The Government
Participatory Politics Foundation
Principled Action in Government
Progressive Change Campaign Committee
Project on Government Oversight
Public Citizen
R Street Institute
Restore the Fourth
Rhode Island Coalition to Defend Human and Civil Rights
Sunlight Foundation
World Privacy Forum

Strengthening Congressional Oversight of the Intelligence Community was originally published in Demand Progress on Medium, where people are continuing the conversation by highlighting and responding to this story.

by Daniel Schuman at September 13, 2016 03:04 PM

September 12, 2016



Timba is similar to Salsa but somehow different (still figuring out what the difference is). Just heard about it for the first time in several years of Salsa dancing. Very intrigued.

by Zack Maril at September 12, 2016 02:59 AM

September 11, 2016


Come join this possibly infinite workout challenge

I read the most brilliant workout challenge this week on Style By Emily Henderson and I'm stealing it wholesale. Read the details below, and let me know if you want to join - the pot is already up to over $1,000 bucks. FREE MONEY! You just have to work out literally for the rest of your life, a lot!

Deets: Everybody puts $100 (or however much) in a pot, with the deal being you have to work out every week, four times a week for 45 minutes (at one go - like a 30 minute run and 15 minutes of weights is fine, but you can't do 20 minutes of weights in the AM and a 20 minute run at night). You get one 'pass' week, and you can also miss a week if you're sick. But if you don't accomplish those 4 workouts one week, you're out of the challenge (though you could buy back in for another $100 if you really want to). The last person standing (aka, the last person who has continued through all the weeks to do the 4x a week 45 minute workouts) gets all the money in the pot. Long walks do not count as exercises. 

Yes, this could go on forever, because I have several insanely motivated and much fitter friends than I that work out at least four times a week regularly, but I bet I can get myself to a solid at least 3 weeks of regular workouts with this competition, and that's worth about $100 to me. Let me know if you want in and I will add you to the Facebook group. We start Sunday, September 18th. I will be the one holding onto your money. Mwahahaha. 

Other fitness things of note:

I'm on fitbit, which I find comfortingly appealing. It has made me even more competitive and smug about my workouts, which I did not think possible. Follow me here

I've found the annoying boutique DC gym workout of my choice, the terribly named Sweatbox DC. I like it because the instructor is, due to a screen that changes color depending on your effort level, able to see exactly how hard you are actually working. At something like Soulcycle (which I never found that good of a workout) I was always like, sure I am turning the effort knob up... looks around furtively, turns effort knob down. But here I know the instructor will yell at me if the screen is not the right color, so I'm going all out. Besides the bike, it also incorporates body weight and TRX stuff, so you get lots of other muscles going on. It is approximately one billionty dollars per class, but they have a $99 deal for 5 classes for September going on, so check it out and let me know if you go.

by catherine at September 11, 2016 09:43 PM

September 05, 2016


Vlogging, Internationally

When people learned that Kriston and I would be hanging out in England at the same time for our dear friend Susan's wedding, the onslaught of people asking us to vlog from England was TOTALLY... nonexistent. Except the voices in my head. They really wanted us to do it. And because I'm a nothing but a glutton for online humiliation, I did sneak in an insulting attempt at a British accent or two. A conversation this weekend reminded me that not everybody has seen these videos since we vlogged using Facebook Live, so here you go!

Because Facebook Live is an utter mystery to me, it's letting me embed the above video (which Kriston posted, not me) but is not letting me embed the second vlog/video I posted on MY Facebook so whatever. Here's a link. Teaser is it includes the story of a man who told me to never again do a British accent in public, or anywhere.

by catherine at September 05, 2016 11:24 PM


An Enumeration of Dances

Is such a thing even possible? I wonder if Google has tried that with Youtube yet.

by Zack Maril at September 05, 2016 03:53 AM



Within the past week, I’ve been in four cities and eaten a lot of very bad and very good food as is inherent with travelling. However, one of the items on my must-go list was a burger and drink from bar restaurant Drink in Boston.

Drink is one of those places that you never knew existed, but once you have been there once it changes your entire perspective on what food and drink should be. Famous for its bartenders who understand the drink you desire before you have told them, the experience is impossible without one of Drink’s menu items – the burger.

While the Proper Burger from Duke’s Grocery in the Dupont Circle neighborhood of DC maintains its prestige as my favorite burger, this burger from Drink takes a very strong second. It plays on everything classic about a burger – tomato, lettuce, pickles, cheese, meat – and doesn’t pretend that it’s not the epitome of bar food. However, while understated in appearance, this burger is everything in taste. Its meatiness alongside a perfectly balanced sweet pickle and a buttered bun get this dish very close to perfection.

Of course, the beverages at Drink cannot be ignored. You can, of course, order off of their wine/beer list, and get a delicious beverage. But what you should do at Drink is decide what kind of drink you’re in the mood for and explain it to your bartender. There are no limits or requirements for what you can ask for – they will figure out what your heart desires and bring you the perfect start to your night. For instance, on Thursday I asked for something like a French 75 with maybe some citrus or herbal notes. I not only got that – but my drink also included my favorite apertif, Aperol. Good job indeed. And, after I finished that drink a little tipsy, I asked for something a bit lighter with a lower ABV and was given a classic, light Tom Collins to wash down some incredibly rich fries. Seriously, I don’t understand how they do it.

So, if you’re ever in Boston – regardless of your plans – hit up Drink in Fort Point. It is signless, but will entice you through basement windows along the sidewalk and show off its unnecessary yet hip line.


September 05, 2016 03:01 AM



In the spirit of blogging about some of the code i’ve written in the past year or two, I wrote a small utility library called go-haversine, which uses the Haversine Forumla to compute the distance between two points.

This is super helpful when working with GPS data - but remember, this assumes everything’s squarely on the face of the planet.

September 05, 2016 02:52 AM

August 30, 2016


August 29, 2016


Kudos to House of Reps. for Releasing its Spending Info as Data

Today the House of Representatives published its spending information as structured data (a CSV) in addition to printing three volumes of tables. This is the second time it has done so. (I wrote about it the last time it happened and why it is important for accountability.)

Okay, Senate, it’s your turn. Publish your semi-annual spending statement as data.

by Daniel Schuman at August 29, 2016 08:57 PM


Friend walks into my apartment and over to the kitchen counter. Picks up the wooden bowl full of...

Friend walks into my apartment and over to the kitchen counter. Picks up the wooden bowl full of silver sequins. 

“OK, you’re going to have to explain this.” 

“I made art!”

“Oh! What’d you make?!”

“…a bowl full of sequins.”

August 29, 2016 04:59 PM


Questions I Have For You, Part I

Life’s been a bit hectic lately so I’ve been feeling pretty dull. My hair doesn’t have that shine and bounce it normally does, you know? I don’t have too many answers right now so the typical blog format of “Semi-implicit question, long clever jokes about the answer” isn’t going to do it today. So here’s some questions I have, feel free to answer them via DM or email or whatever.

So first, do you like this song? How long does it take before you recognize which song it is?


Do you still listen to the radio? Do you have a car?

How does insurance work for folks who are unemployed? Does it change based on age, besides the 26 year old family cut off? How much does it cost for individuals to have?

Have you ever read any stories that could be termed political (science) fiction? I’m not too interested in Foundation series type stuff, but more like a story/guess about what American politics is going to be like in 10 years. Was there a science fiction writer who predicted trolling?

There is a mindset that argues that there is value in focusing in on the classics and the Great Works of Literature as a way of finding the True values in life. I don’t much subscribe to that line of thinking and I imagine there are others who don’t either. What’s the name of the school of thought that are against the Great Books type thinking? Also, when you don’t know the words to google for but are reasonably certain the material is out there if only you had the right keywords, how do you go about searching for those keywords?

Has touching a physical object ever inspired hope in you?

Which questions should I be asking but am I not?

By the questions I’m asking, what do you think I’m thinking about?

What part of the future are you looking forward to that you can’t experience now?

What part of the past do you think you can’t ever experience again?

Has programming ever felt stale to you?


by Zack Maril at August 29, 2016 02:38 AM


D3: a travelogue

I broke my promise from last time and included a visualization.

by Ben Klemens at August 29, 2016 12:00 AM

August 28, 2016


St. Louis, Fried

I’m writing this post from a coffee shop in St. Louis, Missouri. As part of my first trip to the true mid-west, I decided I would eat sterotypically midwestern (read fried) this trip. St. Louis has definitely not disappointed.

On my first day in St. Louis, I went for barbecue with one of my sorority sisters at Pappy’s Smokehouse. Not feeling my best, I opted to select a few sides from their menu and ordered apple sauce, sweet potato fries, and what would be the achievement of the day – fried corn on the cob. I figured when ordering this that it would be good, beacuse fried corn, but I had no idea how it would turn out. Apparently when you fry a corn on the cob, seemingly in a buttered pan, you get the most fantastic tender, crispy, and complexly flavored corn on the cob imaginable. The only downside to this dish was the hot oil that splattered after each bite.


After a long night on my second day I went out with a group for brunch at a non-assuming place in the suburbs called “The Shack”. From the street, this place looked like a wannabe shack with grey shingled siding and green shutters. However, on the inside, everything was spot-on authentic. The first thing that catches your eye when walking up to the door are the walls covered in Sharpie marker, with notes of visitors past. This motif continues throughout the restaurant on the ceilings, bar, walls, seats, and tables. Everything has a message from someone written in vibrant Sharpie. With a craving for chicken and waffles, I ordered the closest thing on the menu – chicken in a waffle. The vibrancy and playfulness of the space extended to the dish – a piece of unbelievably juicy chicken breast fried in waffle batter and served alongside two eggs, hash browns, syrup, and sriracha. Needless to say, I didn’t finish the dish and if I had a kitchen at my hotel I would have brought this with me for my next meal. I’m sincerely hoping a restaurant nearby me in DC picks up this chicken/waffle trick and I start seeing it on menus nearby because it’s now that way that I want all of my chicken and waffles to be.


On my final day in St. Louis, I took a solo trip out to The Hill, St. Louis’ Italian neighborhood. Unlike the bustling Italian neighborhoods of the East Coast I found The Hill to be incredibly sleepy for midday on a Sunday. However, that didn’t matter as I was going to The Hill for one mission and one mission alone – to obtain fried ravioli. I went to what is likely one of the more famous joints – Mama’s on the Hill. Fun fact: Mama’s also appeared on Restaurant Impossible after it was taken over by new ownership in the mid-2000s. While the fried ravioli were exactly what I needed (fried pasta, meat, cheese, and tomatoes), they didn’t live up to my expectations. I had hopes for these ravioli to contain more cheese on the inside, equal to the meat mixture. Since this is mostly personal preference, I do standby that the ravioli’s meat mixture was supreme to most that I’ve had. The meat was very smooth and tender – almost alluding to the consistency of a melted cheese.

As I’m still in St. Louis as I write this, wrapping up my weekend with some gooey butter cake, I’m going to try to direct my diet to the less fried as I head to Chicago tonight. I don’t think my arteries can take St. Louis for much longer.

August 28, 2016 08:03 PM


The End of Daylight Savings is Coming: Prepare Thyself

On Sunday, November 16, 2016, the worst day of the year with the worst of the truths will arrive: winter is coming. Daylight savings will be over. 
Each year as I age (and boy am I aging), the end of daylight savings and the darkness of November through March gets harder and harder, because it precipitates a very strong Seasonal Affective Disorder in me (appropriately acronymed SAD). If you don't know what SAD is, it's basically the winter blues, brought on by a lack of sunlight (that's a scientific definition, right?). Everybody gets the blues once in a while, but when you're getting them for four or five months straight, and you haven't seen sunlight since what feels like the Jurassic Era, things start to go a little pear-shaped.
Wonder if you have SAD? My systems include pretty basic depression type symptoms: feeling blah, sleeping too much, anxiety, lack of an ability to focus, generally feeling hopeless. You can have them mildly, you can have them very strong, you can have them in between, you can have these symptoms sometimes and not others, etc etc. It varies for each person. 
I know that in late August it may seem a bit, how do you say, excessive to already be worrying about SAD, but I've learned in life you've got to be like a Boy Scout: overly prepared and wearing a lot of khaki. So with that in mind, there are a few steps I've learned to take that make the endless slog of winter months feel a little better and more productive, though. I've written about them before, and I'm going to share them again here (with some updated tips I've found useful). 
A couple of things: These tips are probably good to do yearround, because they mostly include "healthy living" type things (GROSS). Also, as with every post, I am not a doctor, and probably nobody should listen to me about anything, ever. That said, definitely listen to these tips and heal your SAD-addled brain. If you want me from November to March, I'll be hiding out in the Caribbean or under my desk, no in betweens.
Tip #1: Watch your diet
This is the most boring, annoying part of all the tips. (Hang with me, though, because later I'm going to recommend a trip to the Caribbean.) What I eat generally affects my mood all the year long, and especially so in winter. What helps? Cutting out refined grains and refined sugar, cutting down on alcohol, and cutting down on coffee. God, this is so boring and awful I'm already falling asleep, but seriously, those things help. A model winter diet? Tea (I'm partial to Trader Joe's ginger-tumeric tea); a big helping of this green smoothie (yes, it looks like sadness in a jar, but getting all those greens in one serving helps, though all the stuff she says about breaking down things to a particular consistency seems like bullshit); scrambled eggs and avocado; salads and fish and veggies for lunch and dinner; nuts and fruits for snacks and sweetness. Basically, a paleo diet (ugh, sorry). Cutting down on the alcohol REALLY helps, because one (aka, me) forgets that alcohol is a depressant and while a margarita in the summer sun is all fun and giggles, a half of bottle of wine on your couch under a blanket while watching the 2000 Sex and the City movie is just sadness distilled.
Tip #2: Meditate, and while you're doing it, meditate in front of a sun lamp
I've long espoused the mind-calming benefits of meditation, but in the winter I'm going to try doing it a bit differently, to kill two birds with one stone: I'm going to try to meditate each morning for 15-20 minutes in front of a sun lamp. Meditation makes my mood happier, and a sun lamp definitely helps me with the SAD, so I'm going to be like that insane hyper efficient family in Cheaper By the Dozen and do both at once. (Secondary tip: meditation is nothing more than closing your eyes and counting your breaths for 10-15 minutes, you don't have to complicate it more than that. And you can get a cheap sun lamp on Amazon - I have this one.) 
Tip #3: Exercise
And you can't just half ass it on an elliptical for 30 minutes either. I've found that when I doing exhausting heart-rate-raising exercise for 20-30 minutes a few times a week, it seriously improves my mood, whether it's in the winter or not. If you don't belong to a gym where you can do a boot camp or the stair mill (my personal favorite exercise machine of all), these high-intensity videos are good to do at home. The Nike Fit app is also really good, as is the Sworkit app.  
Tip #4: Go somewhere warm, preferably in early or mid-February
I've done a lot of scientific research on this, and I've found that late January to mid-February is the time I'm most likely to go totally cray from SAD. So if I can, I try to plan a vacation to warmer climes around that time. Anywhere in the Caribbean will do (I've had great times in Tulum, the Dominican Republic, and St. John); I've also had a really good vacation (and it's a super quick flight/drive) to the Florida Keys. 
If you can't make or afford a trip, just make sure on the sunny days that do happen you're walking outside a lot. Or try a trip to Spa World in Centerville (a big old Korean spa outside the DC area). It's warm and infrared saunas are the best and you'll feel like you're treating yourself a little bit.
Tip #5: Sleep better
Easier said than done, I know. Meditation helps so much with my sleep. As well as turning away from screens an hour before I need to go to sleep, and not bringing my iPhone into bed (I really can't break this habit; it's so hard). But if you can install the Flux app on your computer, and set your iPhone to go into night mode, those things will at least harsh the blue glare from the screens and ideally help making go to bed a little bit easier. I also just got a Fitbit and you can set it to buzz like 30 minutes before you want to go to bed so you're aware it's time to step away from the screens, start winding down, and doing bedtime stuff.
Tip #6: It'll end, one day....sob 
I wrote this tip last time I wrote about SAD, and it still holds true for me: Know you're not crazy. Sometimes I forget how bad I get SAD and I think I will be an awful, anxious, sluggish mess forever. And I think that I AM that person - muddled by lack of sunlight and reluctant to do anything or make good decisions. But then I do some of the stuff above, or get back from a trip to Mexico, and I feel like I've been reset. I remember how I normally am. Only one billionty days to go until spring!

by catherine at August 28, 2016 11:01 AM


Dataviz packages: a travelogue

So named because I really do feel like a tourist in these parts, and because this post is about the general structures I happened to observe, not specific how-tos.

by Ben Klemens at August 28, 2016 12:00 AM

August 22, 2016


Duck Donuts

In DC, great donuts are relatively hard to come by. There are plenty of Dunkin’ Donuts and an iconic Krispy Kreme location in Dupont Circle – but Astro Chicken and Fried Donuts is the only, in my opinion, great offering of fried breakfast doughs. I went to Astro earlier this year, and was pleased with their offerings. Delicious donuts. However, I was not blown away.

I’ve been hearing similarly great things about Duck Donuts and for the past year or so have been driving by its location in Rockville stating “Ooh! There’s that Duck Donuts place – I hear it’s really good!” I never went in.

So, this week I was heading into work and having a subpar morning, I had a craving for a comforting, warm donut. I routed to the Duck Donuts location in Arlington and found myself in a strip mall, in line with more families than I imagined would be a donut shop at 9:15 in the morning.

To my surprise, the shop consisted of a quite large menu, instructing me to choose my coating, topping, and/or drizzle for a donut that would be made hot just for me. In all of the times that I had heard how good this place was, no one had mentioned to me that these donuts weren’t just made hot, but totally made to order (toppings and all!)

As this was my first visit to Duck Donuts, I decided to choose two: something simple and something nostalgic. I chose a cinnamon sugar and a vanilla icing with rainbow jimmies – taste of childhood. I then stood in line for a very long time watching two donutiers fancy up dozens of donuts behind a sneeze guard.

When it was time to retrieve my donuts, they can in a perfectly sized for two box with little vents on the top to help with the incredible steam coming off these hot-off-the-oven donuts.

I proceeded to eat my donuts alone in the car (remember, I was having a bad morning?) and boy did they brighten my day. They were almost too hot to eat, melting in my hands and mouth like no donut has ever before. I’m jumping on the bandwagon that these donuts are the best in the DC metro area.


August 22, 2016 02:29 AM


go-wmata - golang bindings to the DC metro system

A few weeks ago, I hacked up go-wmata, some golang bindings to the WMATA API. This is super handy if you are in the DC area, and want to interface to the WMATA data.

As a proof of concept, I wrote a yo bot called @WMATA, where it returns the closest station if you Yo it your location. For hilarity, feel free to Yo it from outside DC.

For added fun, and puns, I wrote a dbus proxy for the API as weel, at wmata-dbus, so you can query the next train over dbus. One thought was to make a GNOME Shell extension to tell me when the next train is. I’d love help with this (or pointers on how to learn how to do this right).

August 22, 2016 02:16 AM

August 19, 2016


Will Sen. McConnell Finally Close the Presidential Library Golden Parachute for Ex-Presidents (and…

Will Sen. McConnell Finally Close the Presidential Library Golden Parachute for Ex-Presidents (and a Future One)?

Yesterday the Clinton Foundation announced it no longer would accept donations from corporate or foreign entities should Hillary Clinton be elected president, responding to criticism for “potentially allowing donors to seek special access through [Clinton’s] government post.” Unremarked upon is the danger of having a foundation linked to a president accepting any donations during his or her term of office, a circumstance that led to major scandals in the last three administrations.

Over the last 70 years, every outgoing president raised money for a presidential library. George W. Bush hauled in a Texas-sized $500 million, and Barack Obama expects to reach a cool billion in his already-underway efforts, though the president himself promised he personally will not fund-raise in office. With the existing Clinton Foundation, potential president Hillary Clinton may have a head start. The libraries aren’t just a repository for presidential papers; they are an attempt at telling the story of a presidency from the president’s perspective.

Departing presidents may raise unlimited funds while still in office from anyone, anywhere — from the Smiths to the Saudis — and don’t have to disclose a penny.

As you might imagine, these cozy going-away gifts — and the scandals that follow — irk members of Congress. In 2001, Bill Clinton was accused of trading a pardon of fugitive financier Marc Rich, who illegally traded with Iran during the oil embargo and was a gold medal tax evader, for a $450,000 library donation from Rich’s ex-wife. In 2008, a businessman close to George W. Bush was caught on video trading access to administration staff for a $250,000 library donation. Even George H. W. Bush ran into trouble in 1993. In an effort to avoid controversy, President Obama is voluntarily disclosing some of the donations, but it’s not enough.

The Presidential Library Donation Reform Act, a bipartisan bill that would move these fundraising efforts out of the shadows, requires quarterly disclosure of the sources of donations over $200 while the president is in office, up until the library is finished. The bill has made it past all hurdles in the House and but one in the Senate, a vote on the floor — the domain of Senate Majority Leader Mitch McConnell. He’s sat on the legislation for over a year.

Just about everyone — except perhaps those in the market for a presidential pardon or favor — agree that more transparency in presidential library funding is a good idea. Barack Obama, during a primary debate against Hillary Clinton in 2007, endorsed the bill.

Even Secretary Clinton, as Senator, endorsed a similar albeit less rigorous bill, although she balked at voluntary disclosure during her debates with Obama.

When the Senate resumes in September, Sen. McConnell can address the apparent corruption problems with presidential library fundraising by scheduling a vote on the Senate floor. Let’s see whether he can show that his Senate is one that can get commonsense things done.

Will Sen. McConnell Finally Close the Presidential Library Golden Parachute for Ex-Presidents (and… was originally published in Demand Progress on Medium, where people are continuing the conversation by highlighting and responding to this story.

by Daniel Schuman at August 19, 2016 12:46 PM

August 15, 2016


"“You’re the first person ever to win two Olympic tennis gold medals. That’s an..."

“You’re the first person ever to win two Olympic tennis gold medals. That’s an extraordinary feat, isn’t it?” Inverdale asked.

“Umm,” Murray said. “Well.”

He was indeed the first modern tennis player to successfully defend the singles title at the Olympics, he noted.

But “I think Venus and Serena [Williams] have won about four [gold medals] each,” the Scotsman said with a small smile.

His memory was right: Each of the Williams sisters has one gold medal from the singles event, and three gold medals from doubles.


August 15, 2016 07:06 PM


To encourage production of new terrain, a tax subsidy for maps


This is a post about a paper I just put out to Elsevier’s SSRN, because I believe every academic paper should have a blog post explaining why it is useful.

The paper is about the intellectual property (IP) box. The proposal is to provide a lower tax rate to profits associated with a patent or other IP. IP boxes currently exist in a few countries, and a few bills have been introduced in the U.S. Congress to set up an IP box.

The bills proposing IP boxes—which they refer to as innovation boxes—could possibly be traced to a measurement problem. Innovation is hard to define, let alone measure, so many academics will use patent rates as a proxy, in a classic case of looking under the lamppost and replacing a complex concept with something that can be counted and looked up in a database. This seems to have become ingrained, and arguments about patent boxes seem to depend upon the assumption that patents==innovation. This column traces where that substitution leads us.

The math in the paper is a mixed-strategy Nash equilibrium of a two-player game, which produced actually policy-relevant results. I don’t see solutions of equilibria in continuous strategies all that often, so even if you think the IP box politics is uninteresting you may get something out of the paper by skipping straight to the game and its solution in the appendix.

Every IP box has a different definition of what is qualifying IP: some include movies, some include only patents, and so on. For simplicity I’m going to assume just patents here; see the paper for the details.

Claim: innovations are patented

Let us define research as inquiry that leads to knowledge in the public domain, and development as inquiry that leads to private property like a patent. Laws of nature are not patentable, so anything we have learned about mathematics, chemistry, biology, is research, not development. Even within the realm of inventing gadgetry, there are wide ranges of things, like software as such or “obvious to try” developments, that can not be patented.

Claim: Each patent is an innovation.

A lot of patents—I’d say most—provide an incremental step forward on something rather uninteresting. They are definite steps forward, but not necessarily what we picture as innovation.

There are some parties that benefit greatly from maintaining a general belief that there are distinct innovation industries that work differently from others. Maybe you’ve noticed that the software industry has lately taken to calling itself the “tech industry”. Especially given how broad some IP boxes are (including know-how or designs), chair makers and restaurants could claim IP box credits.

Claim: The spillover benefits to important inventions, like transistors or CT scans, are immense. If these had not existed, society would be much worse off.

This is true, but to make this statement useful for policy it is important to know the counterfactual of what would have happened if our favorite major inventions were not invented by their inventors. Pop history likes to characterize the people who invented fundamental technologies as Great Men without whom the invention would never have existed. But the academics who study these inventions, anecdotally or using data from various sources, find that simultaneous invention is the norm, and if the Great Men who got there first didn’t do so, humankind would be deprived of the invention by a few months or years, not forever.

This makes it hard to measure the spillover benefit from a single patent. If a grain provider has a higher-quality product than its competitors, it can charge a penny a pound more, and there’s our measure of the added benefit. If an inventor gets a patent first, then the second to invent (or second to file, let’s not get in to it now) is locked out entirely. With grain, the counterfactual of what life would be like if the better grain maker didn’t exist is easy—check the next one. With an invention, the counterfactual is an exercise in creative alt history. But only if we believe the Great Man theory—and I can’t find a non-pop writer who does—will the benefits provided beyond the counterfactual be the full benefits of a new invention.

Claim: Subsidizing development has immense gains because inventions have immense gains.

If we don’t know what would happen if an inventor were somehow halted, we also don’t know what would happen if an inventor were subsidized. Maybe we’d get something that would otherwise be impossible; maybe we’d get something two weeks earlier.

Note that we’re still talking only about subsidizing development. Research has a commons problem, meaning that if we don’t subsidize many threads of research, they are economically infeasible and may indeed never get done.

Claim: When patents leave the country, the country is less innovative.

A patent has an inventor and an assignee. If we believe that having smart people who come up with interesting ideas geographically close is beneficial to the economy (and I do), then we want to have nearby inventors of patents, of artwork, of all kinds. The assignee, meanwhile, signs the contracts and takes in the royalties.

Having the assignee geographically close has little or nothing to do with invention. It may be a holding corporation with zero employees. It may be registered in the island nation of Sargasso, but have all its cash in an account at Bank of America, where the funds are used to support loans to U.S. startups.

WTO trade treaties prohibit making restrictions on where a patent can be assigned. The inventor may be unable to leave or enter a country, but the ownership assignment must be able to.

Claim: Patents leaving the country is costing billions in lost tax revenue.

This is true, but shouldn’t be. Say that WidgetCo holds a widget-making patent, and sells it to HoldingCo for $10 million. WidgetCo wants to keep making widgets, so they pay HoldingCo royalties of $1 million every year for the next eleven years, at which point the patent in our example expires. So WidgetCo has effectively shifted its risk to HoldingCo, and turned a long stream of future income into a big chunk of present cash. HoldingCo absorbed the risk, so it should make some profit off the transaction, but if it made too much then WidgetCo should have done all this with somebody else who would offer a better rate. In short, a patent reassignment paired with a licensing deal should be largely revenue neutral, and therefore also largely tax neutral. This would especially be the case with a patent portfolio, where the risk of dozens of patents are pooled.

This is not what we’re seeing in real life among U.S. companies and their subsidiaries overseas. When these companies assign a patent to their own sub, they consistently take a payment that is absurdly low relative to the future royalty stream: sell the right to a holding company in Sargasso for a million, creating an obligation to ship 100 million a year in royalty payments overseas. The million coming in to the U.S. is taxed; the 100 million a year going out is not. Incorrect transfer pricing is what makes IP shifting a tax avoidance scheme.

Claim: If we just lower tax rates to below Ireland’s, we can get those patents back.

A lowered rate is one step in a sort of auction for the assignation of the patents. As a baseline, consider a situation where two countries are bidding for the right to tax some mobile capital. They each have their own fixed capital in the country, and declare some tax rate at which both mobile and fixed capital will be taxed. The mobile capital will then flee to the lower-tax country.

If this were played as an alternating, turn-based game, the bids would never settle down. Bids would get lower and lower until one bidder realizes that it is better to just tax the fixed capital to the max than go so low chasing after the mobile. But then the other bidder won’t bid so low, and raises to just underbid the max-taxing bidder, and so on.

This is where mixed strategy equilibria come in, giving us a stable distribution to describe the outcomes. The claim that countries would randomly draw tax rates is a clear fiction, but it’s at least not incoherent, acknowledges that the U.S. setting its rate is not the last step, and produces predictions that are in line with reality.

First, in the unique mixed strategy Nash equilibrium, the country with larger capital, let’s call it the USA, will let the mobile capital go to the smaller country (the fictional tax haven of Sargasso) with a likelihood increasing in the disparity between capital rates. In the sequential game, Sargasso loses less in taxes from fixed capital when it bids lower, so it can always underbid the USA, and this fact from the equilibrium reflects that part of the storyline.

However, Sargasso doesn’t have to bid so low if the USA isn’t willing to bid low because of a loss of taxes associated with fixed capital. So the expected tax rate that the mobile capital sees is an increasing function of the amount of fixed capital held by the USA.

As a corollary, the expected tax revenue the USA sees from just the mobile capital is an increasing function of the amount of fixed capital it is taxing at the same rate. It wins the right to tax the mobile capital less often as it is less willing to bid low, but the rise in expected rates is enough to offset that.

Claim: The USA could better compete in the race to the bottom if there were a separate tax rate for IP.

How would we modify the model to describe an IP box? As it is, there is some fixed capital that is taxed at the same rate as the mobile capital, but the point of the IP box is to eliminate that linkage. If our interest is the tax rate on the mobile capital, the fixed capital associated with that rate is near zero.

We can then read the results off the model, and they’re not good for the taxing entities. The expected tax rate on the fixed capital goes to zero, and the expected revenue to the USA goes to zero.

Claim: Ireland and Luxembourg already have IP boxes, and the sky didn’t fall.

This is true, but is uninformative when considering a U.S. IP box. The model results are all asymmetric, primarily keyed to the fixed capital of the larger country. Why should Sargasso lower rates to zero if the USA can’t lower its rates below some high threshold without losing domestic revenue?

This is especially salient because, due to recent history, a lot of the high-tech happenings just aren’t in the countries that have IP boxes (it’s debatable whether China has an IP box, by the way), so the competition is still focused between countries with a higher high-tech stock like the USA and smaller countries trying to gain a foothold.

Claim: A lowered tax rate on IP-related profits would lead to increased research and development

First, remember that the lower rate on patent-related work isn’t about research at all. We’re not using tax revenue to fund the NIH or NSF, we’re lowering tax revenue to encourage patenting.

As for development, we already have some incentives that are proportional to the level of research and experimentation. The IP box incentive is proportional to the level of profits associated with R&E. The extra steps of finding associated profits give wide latitude to game the system. If you associate profits with R&E (taxed at 10%) but associate expenses with ordinary profits (taxed at 35%), you can score a negative tax rate from adding a profitable business line. If you contract out your lab to a bigger firm with a larger scale of profits (something that can be done entirely on paper), the bigger firm gets more IP box benefit, and then you can split the savings. The third part of the paper brainstorms all the ways you can game an IP box without doing additional bona fide research or development. It was fun to write.

Claim: An IP box leads to an overall lower corporate tax rate.

This claim is true. But the right way to lower corporate tax rates is to lower corporate tax rates, rather than producing something that can be gamed like crazy, would only win patent assignments back from Ireland if Ireland somehow was unable to respond, and is likely to distort behavior in many ways unrelated to expanding human knowledge.

by BK at August 15, 2016 11:34 AM



Ye Olde Blogging and Why It Disappeared: Part IV

As I wrote earlier, now it's 2016, and "nobody blogs anymore." I was interested in exploring why this happened, and why it's so hard to get this world of personal blogs back on the internet. So I (via email) asked four friends who made up the core of my blogging group in the mid-2000s to share their thoughts with me on the topic: What happened to personal blogging as we knew it, and why did it happen?

Tom's thoughts are here, and Matt Yglesias's are here, and Susan's are here. Last but not least, Kriston.


I'll bet what all of us miss is the smallness of the blogosphere. It was once possible to read everything in your blogroll. (Or, in the late days of the High Blogosphere, your RSS reader.) Mine was always aspirational: I'd read all of y'all's stuff, plus, you know, The Poor Man, Eschaton, Calpundit, Tapped, Pandagon, then maybe half of a really long Crooked Timber post on Hegel or something, see what Volokh had to say, sneer at something on Tacitus. I tried to read everything I could with what time I wasn't fisking something really, really important.
But the crucial thing was that it was possible to read or at least know about everything happening. And that made it exciting! I'm not the first person to observe that the early blogosphere was a bit like post-college college; I learned things about political science and economics that I never bothered to study in college, at least enough to seek out more information about specific topics. It was also like post-college college in that it felt socially like a closed loop, like a dorm. The blogroll was never as much a library device as it was a banner, a House Shield.
I would say that social media has suffered in the same way that blogging did. It eventually grows so large and non-local that it becomes difficult to keep up with it. I think Facebook was probably fun at one point (wasn't it? Surely it had to've been) and I definitely remember Friendster and MySpace being fun and important things at the start. But all these and even Twitter went the way of the media: they became global, not local, with rules and expectations set by everyone, not just us.  
Now that it's no longer small I would find it hard to write something jut for fun. It's partly because I'm old and don't have any kind of fun that really needs to be shared all that badly, and partly because I enjoy writing about fun topics like exclusionary zoning or installation art. Maybe some part of me occasionally thinks about sharing feelings about family or sadness or dreams, and like a responsible adult I suppress those instincts! So I don't know what for myself a return to blogging would look like, other than of course the excellent blogging we are serving up at I think there isn't any other return to blogging because the borderlessness that made it great personally and the boundaries that made it right socially are gone.
What I don't get anymore is where the blogging instinct went, or what people are channeling that feeling into now. I don't buy that Vine represents exactly the same energy although I will buy that it's immensely creative (based on the Vine that I have seen). Mittens will know better than me what young writers are doing with their time, but it isn't starting blogs just hoping to get noticed. 
We did so much sharing through text. Is that over? Millennials don't want to do that anymore? I guess we have little choice to conclude that ours is the greatest generation and it was blogging that made us strong.

by catherine at August 15, 2016 02:11 AM


Fried Chicken Dan Dan Mien

In DC’s H Street neighborhood sits one of the best ramen I’ve ever had. Above The Pug, a wonderfully dingy bar that cheers for Boston sports clubs, is Toki Underground, a tiny ramen bar with a solid menu. Unlike Daikaya in Chinatown, Toki is dark (even at 6pm) and pumps out hip hop music loudly from its speakers. The walls are plastered with stickers and wooden boards encouraging defacement as evidenced by the nearby Sharpies settle you in something slighly different. However, like Daikaya, the wait for a seat is often daunting – arrive early or be prepared to wait at The Pug downstairs (cash only) or a nearby bar down H Street.

When my father visited this weekend I decided to take him to this favorite DC spot for a food he often doesn’t get to eat. While sweating bullets due to a lack of hearty air conditioning and enticed by curry flavors, he went for the Taipei Curry Chicken Ramen. Meanwhile, I was tempted by the adjacnet words “fried chicken” and “dan dan” on the menu.

This dish gave me everything to be loved about the traditional dan dan noodle, lots of sesame and a big bowl of noodles. However, that was about it. Toki’s flavors are often surprising, but simultaneously comforting. On top of the traditional noodles was a pile of cripsy fried chicken pieces, slides of cornichons (say what!?), and cilantro. Underneath, a smear of sesame paste, sesame seeds, and chili paste. The best part? The soft poached egg hiding at the bottom of the bowl.

While I was incredibly pleased with my meal, this wasn’t the best I’ve had at Toki. I recommend staying with the ramen…but if the restaurant is a bit too hot, these nooldes are a great backup option.


August 15, 2016 12:54 AM


Minica - lightweight TLS for everyone!

A while back, I found myself in need of some TLS certificates set up and issued for a testing environment.

I remembered there was some code for issuing TLS certs in Docker, so I yanked some of that code and made a sensable CLI API over it.

Thus was born minica!

Something as simple as minica tag@domain.tls domain.tld will issue two TLS certs (one with a Client EKU, and one server) issued from a single CA.

Next time you’re in need of a few TLS keys (without having to worry about stuff like revocation or anything), this might be the quickest way out!

August 15, 2016 12:40 AM

August 14, 2016


black hat and def con

A week ago I was in Las Vegas, surrounded by thousands of people attending Black Hat and DEF CON, the computer security industry’s two most important US gatherings. I had never been, and I loved it. I loved it.

What could be more hyperbolic than an army of hackers building a hive within Las Vegas, a place that is already a cartoonish, predatory and vacuum-sealed daydream? We have all watched decades of hacker movies and shitty quasi-martial CBS procedurals where geeks have piercings and weird hair and (when in front of a keyboard) superpowers. My expectations had been set by portrayals I knew to be bad. Surely the reality would be different, which is a euphemism adults use for “disappointing”.

But it wasn’t. It was a wonderland. Those production designers did a better job than I thought. And the superpowers are real, albeit demanding of much more time and tedious scrutiny of IDA Pro output than can comfortably fit in three acts and 46 minutes. But I’m getting ahead of myself.

I did not understand the difference between Black Hat and DEF CON before going. Black Hat is more professional, I had heard. DEF CON is cheaper. A lot of the same people go to both. All of this is true, but it’s a shallow explanation.

Black Hat is an expertly-produced conference for security professionals, a category that includes researchers, software vendors and surely more than a few cybercriminals. Its escalatingly expensive tiers of access allow participation in the frenzied vendor hall; attendance at the “briefings” where new and sometimes dangerous research is presented; and “classes” where specific attacks are taught–to use a not entirely hypothetical example, a fun class exercise might involve bringing Iran’s IP address block to its knees for an hour or two.

I was surrounded by khaki pants and polo shirts and a pervasive air of menace. My most vivid memory of the conference is among my first: walking into the keynote, an impossibly vast space even by Vegas’s improbable standards. Far above me the ventilation system exhaled a low, cavernous breath. The only light came from the projection screens that relayed the distant speaker’s image, bright like windows in a spaceship orbiting a blue-white star. By that light I could make out the silhouettes of the audience, thousands and thousands of them sitting in shadow, waiting to learn something new and frightening. You don’t take photos of other people at Black Hat, but in a room like that it would be hard, anyway: they’re not even lit by their own screens. Bringing a computer into such a hostile network environment is considered by most not to be worth the risk. I’ve never seen fewer computers in a conference audience than at this computer security conference. Everyone there learned long ago that if you are in the business of having prey you are also in the business of being still and unnoticed.

It freaked me out. Black Hat’s lightning talk track is called “Arsenal”; on Twitter, observers complained about talks that didn’t come with working code. This is not an academic conference.

DEF CON begins as Black Hat ends, and it is fundamentally a social gathering. The Black Hat attendees slip into a less stony kind of crypsis, cheerfully blending in with people whose skills and interests are similar to theirs but who possess vastly less discipline. Things become a lot more fun. $240 — cash only — at the considerably seedier Bally’s got me a skull-shaped electronic entry badge with ciphertext printed across it, connection pins that would whisper more secrets if hooked to the right hardware, and absolutely no instructions. If you solve the puzzles built into it and the lanyards and the conference signs and the schedule booklet and a hidden subdirectory on the welcome CD-ROM and who knows what else, you win free entry for life.

This was just one of many badges. I stood in line to get a kit that let me build a different badge, this one associated with an annual cyberpunk role-playing game. I soldered it together at the hardware hacking village’s free workstations; afterward I could use its infrared LEDs to trade handles with other players, then send them radio messages. There were badges that could connect to your car’s diagnostic network, badges for the LGBTQ and women-focused subcons, and badges made by groups of friends where you just had to know a guy to get one. They blinked LEDs, and paired with each other, and had secret accessories.

The badges are only a small part of the con, though. In a little over 48 hours I learned about beating airport wifi portals, lockpicking, dumping and decompiling router firmware, messing with tamper-evident seals and hacking Italian parking meters. The vendor hall was full of booths devoted to hawking t-shirts rather than to collecting CISO emails; I bought gadgets to let me spy on Bluetooth network traffic and a USB thumbdrive that injects exploit code at a thousand characters per second. Around midnight on Friday I found myself in safety glasses, a nylon net cage, a 26th floor suite, and a state of considerable intoxication, all at once, as I prepared to pilot a drone against three other people vying to be the first to pop a balloon at the cage’s center. Across the hall you could get an RFID chip implanted in your hand for $60.

I was jealous of the kids whose parents had brought them. They were finding this place so early. There is a certain type of person with certain types of interests and this is where they occasionally gather, like migratory animals, for those rare experiences unmediated by LCD screens.

My ebullience at finding so many people of the same type as myself powered me through most of the weekend. But at some point I had to start asking myself what type of person that was, exactly.

On Saturday my badge was malfunctioning. It wouldn’t blink the way it was supposed to. I had no relevant tools to tinker with, and was eventually referred up to one group’s suite for help. There an exhausted man behind a mountain of soldering equipment and several empty Surge tallboys was explaining, to a semicircle of my fellow newbies, how he had designed and thought about the group’s badge. No, the group wouldn’t accept sponsorship, he said. They paid for it out of their own pockets. To get a badge you had to be cool, that was it. They never had as many to give away as they would like. He didn’t want to see them in the hands of certain people, people whose names I had never heard of but which he practically spat. No, this wasn’t his day job, he–he trailed off. “I don’t make a lot of money,” he said, breaking eye contact.

He was generous with me, and after attending to a long line of questions and requests for aid that had arrived ahead of me, he performed a simple diagnostic test and declared, reasonably, that the repairs I needed were beyond the tools he had present.

It was about five minutes into our interaction before I realized he was open-carrying a glock on his hip. That’s the kind that doesn’t have a safety. This made me pretty uncomfortable, but of course I didn’t say anything. I was his guest, in his and his friends’ suite. I thanked him earnestly and honestly and left to find someone else to help me with my badge.

That gun was jarring to me, but maybe it shouldn’t have been. What are all of these exploits, these network packet captures, these lockpicking sessions about, anyway, if not having power over others? All of us there wanted secret knowledge to make ourselves stronger. For some it’s because we can’t forget being weak before. For others it’s probably something uglier. But it’s hard for me to imagine any of it being born of an impulse that’s particularly noble.

At best, it can be enough to know when you have gained that strength, to limit its expression to sly winks and low-grade mischief shared with the similarly afflicted. That’s DEF CON. If you begin using that new strength for a living, or find yourself forced to face the people who do–Black Hat. Worse things, if you ask me.

Well, I might find its emotional foundation suspect, but DEF CON was a hell of a lot of fun, and I will be back. Eventually, I’d like to better understand why I want to go so badly. But my short-term goal is just to get faster with my new lockpicks.

by Tom at August 14, 2016 06:49 PM


Should lawyers learn to code?

For the past several years, I’ve been asked one question many times: “should lawyers learn to code?” Over those years, my view has been mostly consistent… “yes, lawyers should learn to code.” Probably unsurprising, given that I wrote Coding for Lawyers several years ago.

But, there’s always been a lingering bit of doubt. “Should all lawyers learn to code?” I would quietly ask myself. “Why?” I’d wonder. What specifically about coding did I think lawyers should learn?

Recently, the parlor game has been played out many times over amongst the #legaltech set, and folks are taking sides. So now, despite my previous reservations, here is my full-throated argument for why lawyers should learn to code.

At the outset, it’s probably the wrong question. As I suggested a few weeks ago: “Asking whether lawyers should learn to code is like asking whether lawyers should read fiction.”1 Reading fiction can help a lawyer improve her legal writing. It can help foster greater empathy and understanding of others’ motivations. Reading fiction can provide balance and joy to a lawyer’s life. No one would scoff and wonder aloud “why would a lawyer waste her time reading fiction instead of the latest article from the Yale Law Journal? Instead, lawyers should make nice with authors and literature critics who do this for a living.” Right? This is a patently absurd argument.

Except the argument reveals the deeper concern: that “learning to code” is actually a shibboleth for “lawyers should be coders.” For my part, I do not think that lawyers should be coders. Lawyers have many duties and obligations, and writing production code should not be one of them. Although there are some remarkable lawyer-coders out there, I have no utopian illusions of – or desire for – armies of lawyers submitting upstream pull requests on open-source law-related software. In that regard, even though I took a course in plasma physics in undergrad, I probably will never make any contributions to the field as a professional plasma physicist. For that matter, even though every lawyer has suffered through attempting to understand the Rule Against Perpetuities, very few of my friends in practice actually need it in daily practice.

In short, if “should lawyers learn to code” is the wrong question, “should lawyers be coders” is a false question. No one seriously asks it. But enough dodging the question.

Should lawyers learn to code? Part of my hesitation in answering the question is that “should” is normative, not objective. As someone who has written code and found it both pleasurable and professionally rewarding, encouraging others to learn to code seems like a no-brainer. But it also implies priorities.

If a lawyer had a choice between reading Python Documentation or representing her client, the answer is pretty clear: “No, coding comes second.” But if there’s a choice between learning about REST APIs and reading a Law Review article in a topic not directly relevant to your practice, how should you decide? For that matter, should lawyers learn French? Should lawyers learn to garden? Should lawyers learn to weld? This sort of analysis eventually reduces to arguments about how you can use coding skills to better serve clients.2 And that, in turn, circles back to whether lawyers should be coders.

This sort of analysis, for what it’s worth, is not limited to law. Some have made the case that everyone must learn to code and others have argued compellingly against it. In some sense, I imagine this debate as not much different from that which took place when deciding whether drivers’ education should be taught in schools (nota bene: that book is fascinating, definitely encourage you to click through).

As such, I will not appeal to the practical benefits of learning to code as something that will improve the practice of law. Instead, I propose that the best reason to learn to code is that it can improve the interaction of lawyers and the non-lawyers.

I have, over the years, watched many lawyers and non-lawyers talk past each other. Many lawyers assume that developers are either code monkeys who should just focus on implementing the latest lawyers’ vision for a better “app” or magicians who can solve any societal ill, usually through hand-wavy big-data “solutions.” Still other lawyers believe that code can never solve any problems because they perceive computers as being unable to solve complicated questions. This is all wrong in my estimation. But, I also understand why lawyers hold these views. Before I started my journey in learning to code, I held many of these same beliefs. Once I started to see things from the perspective of a developer, I gained better insight into how I might frame the questions and challenges.

Similarly, as much as it pains me to admit it, non-lawyers have wildly incorrect views of what practicing law is actually like. It seems so deceptively simple: if only we did “X”, then justice would achieved. Over time, folks who have actually worked in the trenches of legal technology observe that the answers are out there, they are just not easy.

The lack of clear communication is unhealthy for society. Lawyers, much to technologists’ chagrin, can make or break the advance of technology. Given that we are still in a period of relative infancy in grappling with the effect of digital technologies on law and society (let alone the practice of law), lawyers really ought to understand basic concepts like data encryption and even machine learning. On the other end of the spectrum, technology can help us tackle societal challenges; consider body cameras and the effect of DNA technology on criminal justice. Unfortunately, I suspect if you were to ask technologists whether they primarily view lawyers as partners in the march toward a more just society in the digital age, you’d hear a resolutely negative response.

Ultimately, lawyers and non-lawyers must learn to talk to each other. To collaborate with each other. To tackle society’s challenges together. And that requires empathy for each other’s domain expertise.

In that sense, I believe that it is relatively easier for the legal community to take the first step.3 All lawyers are part of the same profession, with a mostly unified approach to credentialing academia and professionals. By contrast, developers and technologists need no formal education and have no central professional organization representing the world of code. As such, in a purely tactical sense, it is easier for lawyers a to gain empathy for the fundamentals of code than it would be for the broader, dispersed community of non-lawyers to gain empathy for the fundamentals of law. In other words, we hold the power to create a more just society, and we should wield that power.

Whether lawyers will choose to learn to code is a different question, and one that will no doubt require substantially more discussion, and action. But if we value the idea that lawyers are supposed to be a force for good in the information age, then we need to stop debating whether lawyers should learn to code or not. We should. The sooner the better.


  1. Some have pointed out that the better analogy might be “should lawyers learn to write fiction.” The answer to that question is facially obvious: there’s not a person on the planet who thinks that a lawyer should not learn to write fiction. The question of whether a lawyer needs to be a professional writer of fiction, well, I’ll leave that to the late-night comics.

  2. For what it’s worth, understanding a little bit of code can make lawyers much better consumers of technology and to allow lawyers to ask the right questions. If nothing else, basic understanding of coding can provide a sanity check on some of the more fantastic claims that lawyers will no doubt encounter in the #legaltech space.

  3. It is necessary here to address the critique by Eddie Hartman, that lawyers equate “learning to code” with “working with coders.” I can only speak from personal experience, but I have found that learning to code actually did allow me to work better with coders. I don’t expect that understanding how to use a map function will magically enable lawyers to communicate with engineers. But it certainly could help lawyers better understand how an engineer approaches her work, and through that understanding gain greater empathy for the beautiful complexity of production code. And, for what it’s worth, coders don’t get a pass here either; building with is still very much a work in progress…

August 14, 2016 12:00 AM

August 10, 2016


Hey I finally pushed out a new edition of my newsletter! Though...

Hey I finally pushed out a new edition of my newsletter! Though this rise from the grave might have you thinkin’ it’s Easter, I promise you it’s summa summa summa time and I’m back with a few new tips and tricks.

August 10, 2016 08:13 PM


What Happens to VP Biden’s Senate Office Documents When He Leaves?

Here’s a random thought. Vice President Biden maintains an office in the United States Senate, where he serves as President of the Senate…

by Daniel Schuman at August 10, 2016 07:19 PM


This is a recently made movie, believe it or not! Not something...

This is a recently made movie, believe it or not! Not something made in the 70s! 

August 10, 2016 03:44 PM

August 08, 2016


Listening to Shani snip at Amina is my favorite thing. Also the long winded explanation of the Chris Paul State Farm commercial is really great. 

“I bet the bone apple tea guy is a second wave feminist.”

August 08, 2016 06:18 PM


Culture without Context

I’m looking for somebody to ruin some perfectly good books for me.

Google has bred a cautiousness in me I don’t need or really want anymore, that snuck up on me and everybody else all at once, a habit not so much to protect myself from anything in particular but born out of the easy access I have to all this information. I’ll look at Yelp before I go out to eat and figure out what to get before I even get there. I can’t remember the last time I read a book were I didn’t already know the gist of the plot beforehand. Spotify prepackages all the new music I hear by relating it to the similar things it has already shown me. Culturally, it all starts to feel fatalistic, small surprises here and there but still within the big picture that I had from before everything even started. It’s hard to be enthusiastic for experiencing something new when I’ve burned through the newness online for a cheap high.

What I really want is to block out all the metadata about what I’m about to experience and somehow prevent myself from experiencing it only through the shadow of its context. I don’t want to know how long an album is, or the genre of the music on it, or the artist or when it was produced or what other people thought of it. Who cares about what page I am on or how many more I have to go to get to the end. I’m an adult, I can make up my own mind about whether I like the food at a place without the help of Jimmy F. on Yelp. I spend more time thinking about which shows on Netflix I should commit to watch than I do actually watching shows on Netflix.

I want culture without the filters of Culture on it. Let me be my own filter and flex all those critical thinking skills I developed way back in sixth grade. I suppose this is the fault of the information technology folks myself, a known hell of our own devise. We’ve catalogued everything in the pursuit of efficiency and haven’t quite figured out how to convince computers to recreate the magic of discovery. With all this media and all these reviews at my fingertips, I get to indulge and be picky and shield myself from the risk of wasted time. But what’s the point of consuming only the finest of everything all the time? I’d like to imagine I would get bored of drinking nothing but the finest wine all the time, but if somebody wants to supply me in pursuit of figuring this one out, please, do get in touch.

What’s the point of the highs if you can’t anchor them relative to the lows? What’s the point of experiencing something when you know when the end is coming and have your eye on it the whole way through? I would imagine half the thrill of drinking one of those bottles of wine from the bottom of the ocean is knowing you might be about to throw back pure vinegar.

Speaking from something I’ve actually experienced though, when I watch videos of Super Smash Brothers Melee matches online, clearly it’s evidencing a profound lack of maturity and providing further disappointment for my dear parents in their manbaby of a son. Moreover, most videos of tournament Melee matches are from a set of best of five games. Once I’d watched enough of these videos, I started to get a really clear sense of why all those tinder dates had gone so poorly and I started getting a sense of how long the matches were going to last and what was going to happen. If somebody is up two games and there’s three minutes left, then it’s pretty unlikely that a stirring last minute comeback is in store. The excitement of the unknown future is drained out of the experience and it’s hard to experience that same thrill that the audience is viewing was in real time.

I’ve thought about asking friends to buy a copy of their favorite book, cut off the covers and all the fluff about publishers and the Library of Congress, take one of those big paper slicers and chop off the page numbers and the authors and titles from the tops of the pages, and then have them give me a chapter or a few pages at a time. Or maybe have them mail me mixtapes of their favorite music with nothing else. “Zack, go to this address, look for the restaurant with the red sign, don’t look at the menu and order a number 17.”

The key thing here is a friend willing to strip away the context from something. It’s not something I can really do myself. So if you’re feeling the same way or want to try experiencing some culture with minimal context, shoot me a message and I can send you purposefully vague recommendations and instructions in exchange for equally purposefully vague recommendations and instructions. I’d ask “What’s the worst that can happen” but don’t tell me actually, that’d ruin it.

by Zack Maril at August 08, 2016 03:22 AM


Using PKCS#11 on GNU/Linux

PKCS#11 is a standard API to interface with HSMs, Smart Cards, or other types of random hardware backed crypto. On my travel laptop, I use a few Yubikeys in PKCS#11 mode using OpenSC to handle system login. libpam-pkcs11 is a pretty easy to use module that will let you log into your system locally using a PKCS#11 token locally.

One of the least documented things, though, was how to use an OpenSC PKCS#11 token in Chrome. First, close all web browsers you have open.

sudo apt-get install libnss3-tools

certutil -U -d sql:$HOME/.pki/nssdb
modutil -add "OpenSC" -libfile /usr/lib/x86_64-linux-gnu/ -dbdir sql:$HOME/.pki/nssdb
modutil -list "OpenSC" -dbdir sql:$HOME/.pki/nssdb 
modutil -enable "OpenSC" -dbdir sql:$HOME/.pki/nssdb

Now, we'll have the PKCS#11 module ready for nss to use, so let's double check that the tokens are registered:

certutil -U -d sql:$HOME/.pki/nssdb
certutil -L -h "OpenSC" -d sql:$HOME/.pki/nssdb

If this winds up causing issues, you can remove it using the following command:

modutil -delete "OpenSC" -dbdir sql:$HOME/.pki/nssdb

by Paul Tagliamonte at August 08, 2016 12:17 AM


Murphy bed projects

This is a post about my workflow, which seems to be different from the norm. It comes with a bonus script to facilitate life with git, and provides a contrast to the last post about revision control as narrative—this post is about revision control for just plain archiving.

by Ben Klemens at August 08, 2016 12:00 AM

August 07, 2016


Things I'm Loving this Summer

Been a while since I did a roundup of things that are bringing me joy, but it's summertime and the living is easy or whatever so here's some good stuff:

-Traveling like a madwoman. OK, I can't say I explicitly recommend a 7-week period in which you go to the beach, go camping, to to Minnesota for work, go to Boston to visit a friend and her adorable new baby, go to San Fran for a wedding, and then go to the UK for a wedding, but getting to spend time with rad people makes up for it. And I bought a fascinator for the upcoming UK wedding, so win. 

-These brown butter rice krispie treats. If you need to make friends fast at a party, these are your guys.

-I'm apparently really into the "short essays as memoirs by woman" genre of books lately, and I have two I can recommend wholeheartedly: Jessi Klein's "You'll Grow Out of It" and Nora Mcinerny's "It's Okay to Laugh." If you like this blog, you'll really like those books, because those women are actually talented writers with a voice I aspire to.

-This profile of the Khan family. Astounding. 

-The Sofia Coppola rose. It's on sale at Costco, which I went to for the first time in my life yesterday. How does anybody get out of there without buying literally everything? SURE I NEED 27 POUNDS OF FROZEN SALMON WHAT A DEAL.

-Fresh Rose Face Mask. It's pricey but you can get an affordable sample of it on Amazon to try out first. 

-This spicy pork tenderloin salad recipe.

-Bad Moms, the movie. We laughed the whole time and I'm in love with Kathryn Hahn.

-This extremely cheap chef's knife. I ain't fancy and it works fine for me.

-Chrissy Teigen's cookbook. It's actually good. It was the choice of our last cookbook club, and the standout was really this insane dip. Make it. 

-Y'all know I drank the koolaid for Reply All a long time ago, but this particular episode explaining a couple of truly weird internet memes/scandals (Harambe, and some weird beauty blogger that may have been kidnapped by ISIS?) is so funny. 

-Barrel Oak Winery out in Virginia. We stopped here after a camping trip in early July. Stunning views, woodfire grilled pizza, decent wine, lots of puppies and kiddies playing around, and just about an hour from DC? I hope to go back soon. 

by catherine at August 07, 2016 03:52 PM

August 06, 2016


Poke Bowl

I have a bit of an obsession with Union Market in Northeast DC. If you have never been, it’s a place that makes you instantly happy yet simultaneously not hip enough to be there. Coming from Philadelphia, my idea of an indoor market is the bustling, crowded, dark, and authentic Reading Terminal Market. DC, however, has nothing like this. Instead, it has the stark, bright, hip Union Market.

Situated in DC’s NoMa neighborhood among a few block’s radius of wholesale food vendors is bright white building topped with a Hollywood sign-like declaring “Union Market.” Inside, you’ll find three restaurants, a cheese and a fishmonger, produce stand, charcuterie, espresso bar, full-service butcher, the best creamery, and both patisserie and boulangerie-style bakeries. There are also about a dozen prepared food vendors serving everything from bagel sandwiches, korean-style tacos, arepas, waffles, crepes, barbecue, pudding, and freshly made pasta dishes. And if that’s not enough, there’s a place to buy spices and flours, homegoods (the second Salt & Sundry location), creams, and lotions as well as a person who will sharpen your knifes.

In the summer, Union Market puts on monthly drive-in movie events taking advantage of the white exterior of the market on which to project films. Yesterday, I went to see Ratatouille and opted for Union Market to be the source of “dinner” for this dinner and a movie date.

I’ve had The District Fishwife’s amazing seafood a few times now, but have never opted for their usual prepared food of fish platters and sandwiches. However, last night they had a poke bowl on the menu. My decision had been made; turning down raw fish is close to impossible for me.

Not only was this dish beautiful, but it was also delicious. While I love Reading Terminal Market in Philadelphia, it would be unwise to eat raw fish from inside that building.

Fishwife’s bowl had chunks of soy and sesame marinated ahi tuna (yum!) covered in a balanced miso sauce, seaweed salad, ginger, and carrots over a bed of rice, garnished with a dollop of wasabit, and sprinkled with toasted sesame seeds.

Poke bowl

August 06, 2016 05:28 PM

August 04, 2016



August 02, 2016


Last week, I had a bit of a work crisis. Some unexpected bad feedback, a first in my long career of...

Last week, I had a bit of a work crisis. Some unexpected bad feedback, a first in my long career of highest marks on performance reviews. I completely lost my cool, in a crying jag in the office of a partner of my firm sort of way. But I found my way to a really productive solution through two methods: 

1. Time: I let myself calm down and regroup over the weekend before taking any actions to fix anything. 

2. I sent an SOS email to a group of lady friends where we occasionally discuss professional woman things. 

This part is what this post is really about. I could go on about the specifics of my incident and the specifics of their advice – ranging from communication tactics to ways to frame my thoughts around conversations to the importance of rehearsing important conversations to perspective and encouragement, to sticky conversations about the realities of gender dynamics in these situations and how to not let them make me want to jump off a roof, to advice I didn’t want to hear but was totally necessary. And holy crap. The level of support I was able to tap into was just phenomenal. So this is just to take a moment and, unironically say, what a time to be alive! I’m lucky enough to have two things women in previous generations didn’t. Electronic communication that can build an immediate bridge between DC, NY and SF. And a big network of close friends who I trust with my most delicate feelings who are also at high levels and grappling with these same issues. 

August 02, 2016 09:20 PM

"I watched The X-Files, loyally, from age 11 to age 16: the fundamental premise of the show, it..."

“I watched The X-Files, loyally, from age 11 to age 16: the fundamental premise of the show, it seemed, I now recalled, was that nothing — the state, people, the natural world, facts — was as it seemed. There were powers out there that could literally erase your identity, turn you into someone other than your self. That was the truth. Black fluid could crawl into your eyes and nose and control your actions, or a cancer-eating mutant could duplicate his own body.”

- Improbably, this is a quote from an article about whether or not Gucci Mane is a clone. 

August 02, 2016 08:33 PM


The Constitution (Annotated) In Your Pocket

After a powerful speech by Khizr Khan at the Democratic National Convention, sales of pocket U.S. Constitutions have skyrocketed, becoming…

by Daniel Schuman at August 02, 2016 03:56 PM

Tracking Lobbying by Foreign Governments

In the next few months, the Justice Department’s Inspector General will release a report on lobbying by foreign powers aimed at the federal…

by Daniel Schuman at August 02, 2016 12:40 PM

August 01, 2016


Version control as narrative device

Here is a post on why people use Git even though it is inscrutable. While I was away, I posted a series on tax policy on my other blog and, fwiw, an essay on listening to classical music. I hope to get back to posts with math in them very soon.

by Ben Klemens at August 01, 2016 12:00 AM

July 31, 2016


Nectarines and Burrata

I enjoy scrolling through Pinterest for recipe inspiration. Over the Winter, I was scrolling through countless pins until a incredibly colorful pin stuck out at me. It was a pin of a salad fit only for summer – and something that I would need to wait months to make.

Those months are now here with peaches, plums, and nectarines bountiful and sweet in the grocery store. As soon as I could get my hands on some stone fruit, I made sure to recreate the pin I found months prior.

This recipe is incredibly simple – great for a snack or meal. To prepare, segment a nectarine (or peach) with the skins on, halve a handful of grape tomatoes (or segment a whole tomato), slice the burrata into pieces, drizzle olive oil and balsamic vinegar around the salad. Finish with torn basil leaves and season with freshly ground sea salt and pepper.

To make this dish into a full meal serve with some toasted bread – you’ll be thankful to soak up all of the fruit juice, cream, and dressing at the end. Or, add some prosciutto to the mix if you’re craving something a little more salty (see Pinterest pin above!)

I’ve made this dish a couple times in my kitchen at work since it only takes a few ingredients and no heat source. It’s a simple set of ingredients that you can always have on hand – so that you don’t have to go without a homemade meal at work. All it takes is to throw a tomato, nectarine, burrata ball, basil leaves, and a small container of olive oil and balsamic vinegar into your lunch bag. No unnecessary Chipotle, for you! Also, it’s beautiful to boot.

Nectarine and burrata salad

Here are a few more delicious-looking burrata recipes from Pinterest that I hope to try soon: fig + burrata and beets + burrata Because what’s better than cream-filled mozzarella?

July 31, 2016 11:31 PM


introductory OpenStreetMap politics

None of the following will be of much interest to people already familiar with OSM, except perhaps as an opportunity to take offense. The internet has plenty of those; I encourage you to trust me when I say that I mean no disrespect. I offer this both to satisfy my own commitment to write more and because I’ve recently been thinking that saying things that seem obvious can be important. Sometimes they turn out not to be that obvious after all.

Mike Migurski has a characteristically thoughtful post about OpenStreetMap and how he feels the community must adapt to be more welcoming of automated edits (“robot mappers”) and communities focused on improving the map for emergency response (“crisis mappers”). He characterizes the interests of these communities as being at odds with the original participants in OpenStreetMap, which he names “craft mappers”.

In comments, several OSM doyens object to this characterization even while betraying some of its truth: Frederik Ramm cops to the project’s import as a social mechanism, and Richard Fairhurst (who I hasten to add seems like he might be the most reasonable person ever to use the internet) extolls the project as a vehicle for personal expression and empowerment.

One has to admit that this is a bit of stacked deck. Crisis mapping is enormously important but it’s also a rhetorical atom bomb. Saving lives is always going to be more important than preserving the hobby of a few map obsessives.

So let me complicate Mike’s typology by adding one more constituency: passive users of OpenStreetMap data. Naturally I am thinking of Mapbox customers, but also people using MapQuest and Mapzen and Carto and and countless other businesses. It’s not entirely clear to me how much the earliest mappers of OSM care about their efforts finding use, or whether they are content to build a beautiful scale model of the world. The project’s relative inattention to building consumer-friendly services has always seemed to me an intelligently-chosen strategy of allowing the competitive market to handle distributing the project’s achievements. But I suppose indifference is an equally plausible explanation.

Still, I don’t think there can be any doubt that an enormous number of people benefit from OSM as mediated by commercial entities like Mapbox. Anyone who owns a smartphone can understand the growing importance of geodata. Finding the nearest coffeeshop is a modest benefit compared to being pulled from a collapsed building by rescue workers, but it happens considerably more often. It’s reasonable to be wary of equating profit with good, but commerce generally does indicate that someone is having their needs or wants satisfied. And there’s plenty of money in maps.

This community has no meaningful franchise within OpenStreetMap, and is instead represented by the commercial actors who serve them (:waves:). Those actors command both the resources and resentment you might expect of profiteers in a volunteer community: valued for the contributions of effort, software and money that professionalization affords, but viewed with understandable suspicion as to motives. We can do a lot of things, but people are quick to assume that we are doing them for bad reasons.

It is not a very democratic circumstance, but no one claimed otherwise: OpenStreetMap is often referred to as a “do-ocracy”, implying that those who contribute work have outsize influence. Fair enough, but this means that when the work that must be done includes discussion, conflict that amounts to a veto is the overwhelmingly likely outcome.

And that means that stasis is the order of the day. A slowly growing map, best in places where people have enough time and money to support a particular type of eccentric hobbyist. Across from them, another group of professionals, this one anxious to build the map everywhere, and quickly, before the next earthquake or funding round.

Everyone involved is as earnest and passionate as you might imagine, but there are probably only a few hundred of us bothering to write heartfelt blog posts and send snarky tweets from conference sessions. Oblivious to all of this are the overwhelming majority of the tens of thousands of active mappers; the tens of millions of people using OSM data without knowing it; and the billions of people who could be safer, or richer, or freer if OpenStreetMap or a project like it became the understood commons where we map our shared world.

I think mapping is a great and interesting problem, but it’s my job, not my hobby. Perhaps this makes it too easy for me to follow my utilitarian open data beliefs and say that OSM should be built as quickly and unselfishly as possible. But there it is.

by Tom at July 31, 2016 09:49 PM


Hacking a Projector in Hy

About a year ago, I bought a Projector after I finally admitted that I could actually use a TV in my apartment. I settled on buying a ViewSonic PJD5132. It was a really great value, and has been nothing short of a delight to own.

I was always a bit curious about the DB9 connector on the back of the unit, so I dug into the user manual, and found some hex code strings in there. So, last year, between my last gig at the Sunlight Foundtion and USDS, I spent some time wandering around the US, hitting up DebConf, and exploring Washington DC. Between trips, I set out to figure out exactly what was going on with my Projector, and see if I could make it do anything fun.

So, I started off with basics, and tried to work out how these command codes were structured. I had a few working codes, but to write clean code, I'd be better off understanding why the codes looked like they do. Let's look at the "Power On" code.

0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x00 0x00 0x5D

Some were 10 bytes, other were 11, and most started with similar looking things. The first byte was usually a 0x06 or 0x07, followed by two bytes 0x14 0x00, and either a 0x04 or 0x05. Since the first few bytes were similarly structured, I assumed the first octet (either 0x06 or 0x07) was actually a length, since the first 4 octets seemed always present.

So, my best guess is that we have a Length byte at index 0, followed by two bytes for the Protocol, a flag for if you're Reading or Writing (best guess on that one), and opaque data following that. Sometimes it's a const of sorts, and sometimes an octet (either little or big endian, confusingly).

These are all just wild guesses, but thinking of it like this has actually helped a bit, so I'm just going to use this as my working understanding and adjust as needed.
 |         Read / Write
 |              |
 |   Protocol   |            Data
 |    |----|    |    |------------------------|
0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x00 0x00 0x5D

Right. OK. So, let's get to work. In the spirit of code is data, data is code, I hacked up some of the projector codes into a s-expression we can use later. The structure of this is boring, but it'll let us both store the command code to issue, as well as define the handler to read the data back.

(setv *commands*
  ;  function                       type family         control
  '((power-on                         nil nil            (0x06  0x14 0x00  0x04  0x00 0x34 0x11 0x00 0x00 0x5D))
    (power-off                        nil nil            (0x06  0x14 0x00  0x04  0x00 0x34 0x11 0x01 0x00 0x5E))
    (power-status                   const power          (0x07  0x14 0x00  0x05  0x00 0x34 0x00 0x00 0x11 0x00 0x5E))
    (reset                            nil nil            (0x06  0x14 0x00  0x04  0x00 0x34 0x11 0x02 0x00 0x5F))

As well as defining some of the const responses that come back from the Projector itself. These are pretty boring, but it's helpful to put a name to the int that falls out.

(setv *consts*
  '((power        ((on           (0x00 0x00 0x01))
                   (off          (0x00 0x00 0x00))))

    (freeze       ((on           (0x00 0x00 0x01))
                   (off          (0x00 0x00 0x00))))

After defining a few simple functions to write the byte arrays to the serial port as well as reading and understanding responses from the projector, I could start elaborating on some higher order functions that can talk projector. So the first thing I wrote was to make a function that converts the command entry into a native Hy function.

(defn make-api-function [function type family data]
  `(defn ~function [serial]
      (import [PJD5132.dsl [interpret-response]]
              [PJD5132.serial [read-response/raw]])
      (serial.write (bytearray [~@data]))
      (interpret-response ~(str type) ~(str family) (read-response/raw serial))))

Fun. Fun! Now, we can invoke it to create a Hy & Python importable API wrapper in a few lines!

(import [PJD5132.commands [*commands*]]
        [PJD5132.dsl [make-api-function]])

(list (map (fn [(, function type family command)]
               (make-api-function function type family command)) *commands*)))

Cool. So, now we can import things like power-on from *commands* which takes a single argument (serial) for the serial port, and it'll send a command, and return the response. The best part about all this is you only have to define the data once in a list, and the rest comes for free.

Finally, I do want to be able to turn my projector on and off over the network so I went ahead and make a Flask "API" on top of this. First, let's define a macro to define Flask routes:

(defmacro defroute [name root &rest methods]
  (import os.path)

  (defn generate-method [path method status]

    `(with-decorator (app.route ~path) (fn []
       (import [PJD5132.api [~method ~(if status status method)]])

       (try (do (setv ret (~method serial-line))
               ~(if status `(setv ret (~status serial-line)))
                (json.dumps ret))
       (except [e ValueError]
          (setv response (make-response (.format "Fatal Error: ValueError: {}" (str e))))
          (setv response.status-code 500)

  (setv path (.format "/projector/{}" name))
  (setv actions (dict methods))
  `(do ~(generate-method path root nil)
       ~@(list-comp (generate-method (os.path.join path method-path) method root)
                    [(, method-path method) methods])))

Now, we can define how we want our API to look, so let's define the power route, which will expand out into the Flask route code above.

(defroute power
  ("on"  power-on)
  ("off" power-off))

And now, let's play with it!

$ curl
$ curl
$ curl

Or, the volume!

$ curl
$ curl
$ curl
$ curl
$ curl
$ curl
$ curl

Check out the full source over at!

by Paul Tagliamonte at July 31, 2016 04:02 PM


Or, how I learned to stop worrying and love classical music (part 1)

I was once a schlub like you. I knew that there’s more to music than four-minute pop songs and two-minute punk songs, but I just couldn’t get into it.

And then, I did. Here are some notes from the other side, in two parts. The first part will mostly be about structure of pop music and what makes it pop. I’m covering it in detail because many people don’t recognize its deep consistency behind the genres and subgenres, and because we can’t talk about getting into not-pop until we’re clear on the key point that’s being left behind.

In part two, I’ll talk about the implications for how somebody starting out to the wilds of non-pop music can explore the landscape. As per the title, the key point of part 2 is: stop worrying.

8 bars

But first: pop.

Here is how a song is structured in popular Western music: play something for eight bars (or measures, or downbeats). Then, play something else for eight bars. Continue stepping from one 8-bar phrase to the next until the song is over. Doesn’t matter if you’re listening to radio pop, (most) jazz, rap about bustin’ out of the system, metal, country, or western. 8 bars, then a different 8 bars. Now and then there’s a four-bar fill. But like a magician asking you to draw a card, I can tell you to pick any song out of your playlist and count out the downbeats, and you’ll find the 8-bar pattern.

To give you an example in preparation of what’s to come, check out Cabin Essence, by the Beach Boys. Ignore the lyrics, but I recommend putting on headphones for this one. In case you have associations of silly throwaway songs when you think about the Beach Boys, please note that this song is amazing — their lead songwriter Brian Wilson described his songs such as this one as “teenage symphonies to God”. There are segments of a soloist with backing instruments, and segments where a veritable orchestra is playing.

Also, the eight-bar breaks are striking. Even if you’re a klutz with counting out the 1–2–3–4, 2–2–3–4, 3–2–3–4s (I certainly am), there are clear segments with blatant breaks. No matter how much the cello meanders, no matter how many layers Mr Wilson layered on, he stuck to the 8-bar rule.

A lot of people describe music like a literary essay, with phrases that build into sections. You have no problem finding a phrase in a song on a pop playlist, because the eight bar rule guarantees that phrases will come in evenly-spaced turns.

Your favorite catchy radio hit invariably has a chorus that sticks in your head. We can go back to the Beach Boys doing another teenage symphony, “Good vibrations”. The chorus (“she’s givin’ me good vibrations”) is such a catchy melody, the rest of the song pales. Maybe you can remember the musical phrasing from other parts of the song, maybe you can’t, but if you cut everything but the catchy part, you wouldn’t have a musical composition anymore, just an ad jingle. Going back to Cabin Essence, where some of the phrases had lyrics attached and some did not, Mr Wilson had a reason for putting all these disparate musical phrases into one song, and to me it feels clear that if some of the less engrossing phrases were missing it’d be less of a song.

Here’s one more track, entitled “Happiness is a warm gun”. Cabin Essence and Good Vibrations follow the standard format of two musical phrases (verse/chorus) that alternate to make a song; in “Happiness”, every eight-bar block is distinct from every other. Pop is not about repetition: stitching together a sequence of entirely different blobs is still recognizable as pop, as long as the blocks start and end on the 8-bar schedule. [Vocab: a song where every phrase is different is sometimes referred to as “through sung”. He’s hard to link to, but for another example see Prince’s “Ballad of Dorothy Parker”. Or see any opera.]

Phrasing in an odd-bar world

OK, now let’s drop the eight-bar rule.
This makes all the difference: the composer can write musical phrases that are five bars or twenty, and can blend them together in ways that you just can’t with a set 8-bar schedule. Segments that are eight bars will typically break down into even-split patterns (four two-bar blobs, or two four-bar blobs), but if a segment can be any length, subparts can be any length. Dropping the rule that everything has to stop or start at the eighth downbeat means that we can overlap phrases, and have one meander along while others come and go. Phrases from different instruments can interact and converse.

So, that’s different. And for us as listeners, it means knowing when one phrase ends and the next picks up will now take focus that wasn’t necessary when we were guaranteed that the transition was at the 8-count. When I listen to people who don’t like this stuff, such as myself a decade ago, they’d talk about how a composition just meanders in an endless stream of notes. Over on this side, I’m seeing that the me of before wasn’t picking up on where phrases begin and end, because the composer has no obligation to hit me over the head with regular start/stop points.

But the core of it is still a set of phrases. After all, it was written by a human. That human had to focus on one part at a time, just as an author has to write one sentence at a time. That person had a structure in mind and (apart from some mid-1960s composers) was not jotting down a random stream.

If you can recognize the phrases, despite their being of odd duration, you’ve won. You’re thinking at the level of language the author intended, and can consider how the composer fit the phrases together, what he or she is trying to say — in short, interact with the music.

Some of the phrases are ‘themes’, meaning phrases that repeat in variations throughout. I’ve read a few How To Listen books, and they all told me to look for the themes, but that’s like saying you should twiddle your thumbs through Good Vibrations until the chorus kicks in. The theme in a symphony will pop up in surprising places and surprising ways — it’s not caged into an 8-bar segment — but if you marked out the time where the theme appears, you’d probably cover only about ten or twenty percent of the typical symphonic work. A lot of the action in any piece is in the space surrounding the punchy core of the work.

I haven’t given any examples yet (you’ve already got enough composer names rattling around in your head, and The Internet), but here’s one example: Georg Friedrich Haas’s In Vain. I’ve listened a few dozen times, I really like this track (believe it or not), and I can confidently say that I’ve never paid full attention all the way through. Nonetheless, at any given point, I can listen to the current set of phrases and get something out of what’s going on at the moment. Having listened a few times, relationships between parts of the song have slowly come into view. This sort of bottom-up understanding of the composition has worked well for me, in contrast to the top-down approach some How To Listen textbooks push. If I’m straining to work out the overarching structure, I come out feeling crappy when I don’t get it; if I’m taking it one phrase at a time, there’s always something interesting going on. Understanding of the broader structure will follow with repeat plays and familiarity.

What’s not different

I’m belaboring this thing about complex phrases because I couldn’t think of anything else that consistently distinguishes this music from pop.

There is a beat, though we’re obviously not here for bouncy dance music. True, some of the more modern composers do deliberately obtuse things with rhythm that make no sense without something to tap out the regular beat they omitted. I don’t listen to those composers very often. But dropping the 8-bar rule opens up less dancey possibilities for the percussionists because they don’t have to follow a fixed pattern of downbeats.

Are there technological differences? A few. Some earlier instruments like harpsichords could only play at one volume, so if a passage was going to ramp up in excitement the only way to do it was a flourish of notes, which brings us to the tired joke about compositions of the time having too many notes. That’s not a problem in the present day, and a symphony may go from super-quiet to super-loud in a second. This brings us to another major piece of audio technology: the automobile. Radio pop has to have a consistent volume all the way through to comfortably come through over engine noise. There are bands that have the dynamic range of Verdi, but they’re a rarity and people always comment on how interesting it is that they have quiet parts. So, if you listen in your car, you may miss out on a lot. A few weeks after buying a pair of headphones one step up from my typical $20 jogging-appropriate headphones — they were $45 and cover the ears — I remember realizing that music I’d brushed off before was getting increasingly heavy rotation on my playlists.

Is it the fashion statement? Maybe; more on that in part 2. Once you leave pop, the cover art is always a landscape in gradual decay, or maybe people dressed for a cocktail party. The track names are very clear about what the music will be like, but that brings with it a lot of lingo I had to get used to, like how movements are named after their pacing: Legato (French/Spanish: like the cat), Andante (Italian: literally for the teeth, a mid-range walking pace), Lento (the pace one would have during Lent), and so on. It lacks color. But apart from the occasional glance at the now-playing window with its 15 pixel by 15 pixel cover art, nobody interacts with the dressing of a track much any more.

Is it track duration? Most compositions on my playlist are about 6 to 15 minutes long. The ones that are longer are split into movements of about that length, meaning that they may add up to forty minutes or more. There are two implications to this. First, everybody spaces out at some point. It happens with Shakira albums; it happens with hour-long symphonies. Going back to a piece as a sequence of phrases, the story is better when every line hits home, but you can miss a few bits out of the typical musical story and still catch up.

Second, to generalize this point about listening from the bottom up, listening to only one movement is not some kind of affront to the composer. In pop, there are purists who insist that you’ll only understand a song if you hear it in the context of the album. Yes, it’s more fun to listen to a full symphony as a symphony, but I’m not going to deprive myself of good music because I can’t block out an hour, and the familiarity I gained from listening to shorter segments will add to my experience when I do get around to putting on the full work. On days when I shuffle symphonic movements and pop, I feel like the alternation causes me to pay more attention and better appreciate both.

Maybe I’ve sold you to give music with meandering phrases another chance, to see if the phrases pop out and the structure thus becomes more evident. In part 2, I’ll talk more about how I went about finding good composers.

by Ben Klemens at July 31, 2016 02:30 AM

July 27, 2016


Or, how I learned to stop worrying and love classical music (part 2)

OK, you read Part 1, and are thinking that you’ll give all that music that sounded like an unending wash of notes another chance. So, where to begin? This is about the social habits of music listeners. Everything I said in part one about how the music is structured is of limited relevance here, which is frankly more about fashion statements and how people organize around them.

Where to begin

If the problem is that phrasing is more subtle, and phrase stops and starts aren’t at pre-set intervals, then the answer to the ‘where do I begin?’ question is not to begin at the chronological beginning and then plough through by birth date of composer, but to find works where the phrases stand out more and have clearer starts and stops.

I won’t give specific composer recommendations, because what’s easy for some is obtuse for others. Some composers (e.g., Copeland, Ives) range from clearly phrased to super-complex. But there are certain forms that lend themselves more to clarity for the unhabituated.

A concerto is a piece with a soloist backed by an orchestra. They tend to be shorter, and the soloist is a clear focal point, akin to the vocalist front and center in a song. So if you want a specific point to start exploring, maybe pick your favorite instrument — oboe, guitar, piano, clarinet, violin — and type, e.g., “trombone concerto” into the Youtube search bar and see what turns up. United Airlines has a dial-a-concerto service: call them up, ask to speak to an operator, and they’ll play you Gershwin’s Rhapsody in Blue for twenty minutes to an hour.

Any composer you can think of has probably written a series of string quartets: Beethoven, Shostakovich, Haydn, Schubert, Adams, Fauré …. With exactly four voices, they will be easier to follow than many 50-voice orchestral pieces, and often have a clear back-and-forth between phrases carried by different parts.

Symphonies get a lot of play and bring in audiences at the concert hall, but they’re not really the place that I started, and they’re not the biggest part of my playlist. But I’ll mention Beethoven, because some people don’t have a copy of Beethoven’s nine symphonies, even though it’s not that challenging to type “Beethoven Karajan”(*) into the search bar of any media provider. Beethoven got famous for a reason: he writes clearly, and his phrasing is easy to follow even the first time through, and like Gershwin, his melodies are generally hummable.
(* Herbert von Karajan is a conductor who did an especially impressive run of Beethoven’s symphonies.)

[Trivia: how important is Beethoven’s 9th Symphony, aka the national anthem of the European Union? When Sony engineers were deciding how long a compact disc should be, they decided that it should be just long enough to fit all of the 9th.]

Movie soundtracks have to be easy to follow, because the audience is supposed to not be paying attention. There’s a period in the 40s and 50s when orchestral music leaned Hollywood. Copland, Prokofiev, Rimski-Korsakov, Korngold, even Shostakovich either went to Hollywood or were influenced by what was coming out of it. Of course, there are still soundtrack composers to the present day, like John Williams (the guy who wrote, e.g., the Imperial March from Star Wars). So the pros to soundtracks are that they’re easy to parse and have clear themes (check out the Requiem for a Dream soundtrack, which is one theme a thousand times), but the cons are…that it sounds like a soundtrack. Nonetheless, if that’s your gateway to the great beyond, that’s stellar.

How I found it all

There’s a short list of composers you’ve heard of, but the drop off to relative obscurity is fast. This is a problem for recommendation engines underlying pandora/ cetera, and I’m sorry to say that those systems have had limited payoff for me. Instead, the bipartite graph of composers and performers has been my recommendation engine.

I saw Missy Mazzoli and her Victoire ensemble at the Wind-up Space in Baltimore. I have so many non-romantic hearts for this person. [Dear Tiger Beat, please stop dicking around and publish a Missy Mazzoli poster already. I know you people are getting my emails.]

Ms Mazzoli has written pieces for the NOW Ensemble. Her track was itself a delight, but the rest of the album gave me a list of other composers that the members of NOW thought were Mazzoliesque enough to put on the same album.

The Kronos Quartet recorded a piece by Alfred Schnittke under the title “Collected songs where every verse is filled with grief,” which changed my life. It even inspired me to make a twitter bot. Now I can say that what made it such a great gateway song is that, despite having a lot going on and being well-layered, the phrases largely have clear starting and stopping points.

This led me to explore Alfred Schnittke more — check out his suite in the olden style, which is entirely well behaved until a few phrases throw in super-modernist sour notes. But after their showing on Schnittke, if Kronos Quartet records a composer, I’m going to check that person out.

Concert halls have opening acts. Setting aside Beethoven’s 9th, most of the works you’ve heard of are under maybe 40 minutes, and people expect at least an hour for their ticket money. Thus, the structure you know and love of the headliner you’ve heard of and an opening act for you to learn about. I went to this Tchaikovsky/Prokofiev set and found out about this badass piece by Victoria Borisova-Ollas. If you can’t afford the ticket, the programs for your closest civic orchestra are all online, because your local symphony cares a lot more about outreach than any pop venue. Last year’s season is there for you to discover.

Oh, and liner notes. No music critic can write more than a paragraph without comparing this composer with another. Even after reading the liner notes to a few dozen albums, I felt like I was The One Percent on the scale of music knowledge. The shift to online downloads has been a real disaster here, as Amazon et al think it’s OK to sell digitized music without digitized liner notes.

So that’s been my approach. Even without Spotify, there are reliable links to be pursued. And we all have The Internet, so pursuing those links is easy.


Down here at the last section, I’ll point out that, outside of the title that brought you here, I managed to write this whole two-part series without using the word “classical”. That word has serious problems.

I still don’t know what to call this class of music: Wikipedia recommended “erudite music”, which I like for its self-aware pretension; the directory on my hard drive is currently named oddbar music, in contrast to the prevalent evenbar music. But the name doesn’t really matter anyway, as long as it’s not “classical”.

First, the term is too broad: baroque keyboard flourishes, minimalists, liturgical choral, serialist string quartets, whatever Morton Feldman does— really, they’re all the same category? Here’s a well-researched map of popular music genres that portrays classical as a monolithic grey blob over the city of pop genres.

There’s some implication that if you’re into classical, you should like the whole blob, and if you don’t, you’re somehow not there yet. I’m certainly not: those of you who are well versed with all this will notice that I barely mentioned anything pre-Romantic, because I’m not doing this for school and I’m not going to pad my playlist for the sake of satisfying imaginary snobs.

Second, the term is too narrow, and has a powdered wig problem. The word is supposed to evoke centuries past, the way that vendors put out a new model of their product and rename the model from six weeks ago the “classic” edition. But its old-soundingness implies that this thread of music tapered off circa 1900, which is false to the point of being damaging. As per the links above, there is fabulous music happening outside of the 8-bar norm up to the present.

There’s a world of music that is not strictly divided into 8-bar units, and that has a lot of corollaries. That music will have more going on, more overlapping and interplay between phrases, phrases that are free to be as long as they want to be without circling back at bar 8, and for the same reasons that music will be harder to follow. I didn’t talk about any of the markers the textbooks focused on, like instrumentation (there are pop string quartets), or about age (there’s old dance music and symphonies written in this decade), or about other sundry fashion statements, because these things don’t clarify a lot but do create a wedge between the fans of some music and fans of other music. Let the snobs have their distinctions; I just want a better playlist.

Thanks to Susan E Chalmers (who, unlike the author, has some authority on these matters) for commentary and suggestions.

by Ben Klemens at July 27, 2016 02:12 AM

July 26, 2016


Ye Olde Blogging and Why it Disappeared: Part III

As I wrote earlier, now it's 2016, and "nobody blogs anymore." I was interested in exploring why this happened, and why it's so hard to get this world of personal blogs back on the internet. So I (via email) asked four friends who made up the core of my blogging group in the mid-2000s to share their thoughts with me on the topic: What happened to personal blogging as we knew it, and why did it happen?

Tom's thoughts are here, and Matt Yglesias's are here. Now up, my dear friend Susan, who I would not have met without the blogs of 2004. You really should dig through her archives. She's such a talented writer. 


Now you've made me go back and think about why I started blogging in the first place. I had a boring job sitting in a dark corner of a law firm where it made no difference if I worked 2 hours or 10. I was reading Elizabeth Spiers' pre-gawker blog Begging to Differ and discovering this hilarious register of communication called snark. I had just moved to DC and had no friends and Kriston was still in Texas. I was bored. And nobody was listening. So why not. I could try on a persona, hear what I sounded like, amuse myself and one or two others, risk free. Very soon it became about the community of bloggers and the space we met online and offline - a primitive scratching of the itch that other forms of social media have now optimized and monetized. Same basic formula as today: voice and community.  Looking back dispassionately: it was a (relatively) time-consuming way to express ourselves on the internet and connect to other humans. You had to work out your page design. You had to choose a comment-management service. You had to curate and update blog rolls. You had to learn basic html! No platform would ask that of its casual users today! 

Like T Lee says, on a personal level, none of the blog-friendly factors are there now. We don't have boring jobs anymore, we've (tragically!) discovered our own banality, and if the payoff to sitting down and tapping out 2,000 words on my Wesley Clark crush was the pleasure that came from continuing an inside joke, the satisfaction of comments from friends on my blogroll, an approving link from another blogger -- well, now I can get that same payoff a lot quicker if I want. 
But, you know, I used to blog a lot. And I don't tweet a lot. OK, yes, a good part of that is the price of a throwaway remark is too damn high. (Remember getting "Dooced" as a fringe, tail risk injustice?)  But also I'm just no good in 140 characters. It's not my form. I'm okay with that. I am happy twitter is there and I can have a peek into the lives of all of you and follow my super niche regional interests. (Ask me about Moldovan financial sector corruption!) All the social media platforms you are abandoning this month have our basic interaction and community needs amply covered.    
But the voice side -- well, not for me. I miss writing things like a human and not a corporate-bot. (Ask me about stakeholder engagement and capacity building!)  Blogging was public enough that I had to put some effort into what I wrote, but not so public that it was paralyzing. At its best, it was satisfying in a way that finally achieving a properly witty tweet will never be for me.  I don't have the discipline to sit and write for no audience whatsoever, and so I don't write at all. And I miss your voices, you guys! I would like to blog again, in order to write just a little bit again.  But gonna go deep here - the other thing I suspect we might miss about blogging: Twenty-something Us. Isn't blogging nostalgia quite a bit like college best-years-of-our-lives nostalgia? We had all the time, we were blithely ignorant of our ignorance, everything we thought was interesting, our friends were brilliant (still are!), everything was new, worthy of note, our motives were Pure! People do still write like that all over the internet, those people just aren't us. DO WE MISS BLOGGING OR DO WE MISS OURSELVES???? 

To answer your question about the return of blogging. Do not forget that in 30 years we will return to our prior state. We will have time. We won't give a shit what anyone thinks. We will think we know it all. We are going to have some awesome group geezer blogs, y'all.      

by catherine at July 26, 2016 11:15 PM

July 25, 2016


Programming is a subjective experience

One time, I read Zen & The Art of Motorcycle Maintenance, so I pretty much know everything anybody needs to know about philosophy. At least, I know as much as one needs to know to be able to make sweeping generalizations about such things. How do I know I’m philosophically wise enough for this? Because, how have I not made this clear enough yet, I read Zen & The Art of Motorcycle Maintenance.

With that settled, I want to explain why, for me, programming is a subjective experience. Before you try and back sass me, let me redefine some key terms, specifically subjective and objective. I do this mostly because it’s an easy way to win an argument, but also because I have, like, opinions man.

Think back to college. Remember that time when you made the mistake of talking to that particularly annoying Physics major, yes, that one, the one who needed you to understand that the Universe made Sense. He cornered you for twenty minutes, proselytizing you to switch majors (but only if you were smart enough), so that you too could experience the beauty of understanding of how the world works. He’d talk about the math behind attractive forces and friction and black holes and are you doing anything later? He wasn’t wrong mind you, he just hadn’t learned yet that vector calculus wasn’t a viable replacement for charm.

There are rules and equations and math and shit that can be used to explain how tons of things in life work. If all you give me is an atom and a perfect vacuum, I can’t do all too much to surprise you if you know about the basics of physics. The rules are the rules and, given enough dedication, all the rules for how that atom and that vacuum interact can be written out and modeled and understood piecemeal. To me, that’s objective, where you can know all the rules beforehand for a situation and use them to make accurate predictions about what will happen.

Subjective is when you don’t know all the rules beforehand, can’t know all the rules beforehand, when you can only “know it when you see it”. You can try to write down all the rules and use them to make a subjectively good piece of work but then you’ll be called formulaic and fail out of your second MFA program. There are still rules when you are subjective, there’s always an explanation for why something is subjectively bad, but there isn’t an easy way to predict when something will be subjectively good. In some ways, the threshold between subjective and objective is determined by the number of rules involved. For physics, I could simplify down all the rules onto a single sheet of paper and roll from there. For art, it’s not possible to write down enough of the rules ahead of time to figure out what’s possibly going to happen. Subjective things reflect the complexity of life and the universe and how could all that fit on one sheet of paper, I mean, really?

To bring it on home, programing is subjective because we build up all these abstractions and layer them on top of each other, preventing me from understanding everything all at once. There are so many little rules and gotchas in programming that it’s not possible to know enough to predict what a computer will do ahead of time accurately. Everyday, I write programs that break in ways that I could not and would never predict to happen. Even though I could dig in and find an explanation for every thing the program does, in total, the program is an accumulation of rules that I don’t have the brain capacity to understand all at once. I can maybe remember python’s syntax, the basics of networking, the bare bones of the ftp protocol and the task at hand. The idea of trying to remember everything about how a computer works, keeping it fresh in my mind, while also trying to do anything useful is a joke. Computer programming is subjective in that I know when I’ve broken one of the rules but I can’t tell you ahead of time what all of the rules are nor whether I’m about to break one of them.

So, what I’m trying to say is that computer programming is like painting because one time I read a bunch of essays by Paul Graham and he gets this stuff deep man.

by Zack Maril at July 25, 2016 03:33 AM

July 24, 2016



For the past few months, I’ve been trying to make a successful sourdough. That endeavor has yet to be fruitful. Meanwhile, I’ve found comfort in the needy process that is brioche-making.

Brioche is a Viennoiserie (a French word for something that tastes liek a pastry but is made like a bread or from puff pastry). Brioche’s pastry-like high butter content makes this one of the most indulgent and yummy of all the breads.

However, that yumminess comes at a price – time. I follow Rose Levy Berenbaum’s Basic Brioche recipe which requires a relatively small lineup of ingredients: water, sugar, instant yeast, all-purpose (AP) flour, sugar, salt, and of course, butter. Like many breads, this brioche recipe starts with making a starter (or sponge). I make the starter the afternoon or night before I want to bake the brioche, letting it ferment overnight. But the more time you have and can plan ahead, the better your flavor will be due to a longer fermentation process.

Once your starter has fermented, all bubbly and yeasty, you make the dough adding eggs and flour. While there’s something relaxing about kneading dough – I highly recommend using a stand mixer for brioche. Due to its high butter content, you’ll need to add the butter very gradually and kneading by hand will become just plain tiring. Understand that this will be a 20+ minute process and break out your KitchenAid and dough hook.

Once all of the dough is kneaded and has developed a good gluten structure, my favorite part of the bread making process begins – the rise. While most kitchen activities require taking the life of meat and produce away – bread is a rare opportunity to make something grow. And goodness will you get to see something grow when you make brioche.

Brioche is all about the flavor development and rise, and the dough requires your involvement on an hour basis throughout the room-temperature rise/deflation process. First, you need to let your dough double in size, then chill, then deflate, then chill again, then deflate again (and shape), then chill for up to two days. Again, the longer the better to develop flavor.

However, after you wait up to two days for your bread, you’re not quite there. You’ll need to remove your dough from chilling again, deflate again, cut and let rise (again) in your baking tins. Like I said, brioche is needy.

However, at the end you’ll find yourself with a gorgeous golden loaf of buttery bread. Delicious warm with even more butter, grilled, as french toast, or covered in fruit, take my advice and make a double batch.

Brioche loaf

July 24, 2016 04:25 AM

July 22, 2016



I’ll be at HOPE 11 this year - if anyone else will be around, feel free to send me an email! I won’t have a phone on me (so texting only works if you use Signal!)

Looking forward for a chance to see everyone soon!

July 22, 2016 12:16 PM

July 19, 2016


I am completely obsessed sideways with STRANGER THINGS. I watched the new Netflix series Sunday and...

I am completely obsessed sideways with STRANGER THINGS. I watched the new Netflix series Sunday and Monday. Holy guacamole is it perfect. The reverence it has for all things 80s supernatural cinema is getting most of the digital ink on the show. And don’t get me wrong, I loved it too, it added layers and depths from a common language that starting fresh wouldn’t have achieved. But it was so much more than a nostalgia trip or an ode to Stephen King. I am a complete sucker for anything based on true friendship bonds between a pair or small group of tweens and this scratched that itch so hard. The guilelessness of the performances was amazing (also an 80s throwback), but holy crap were these kids incredible. And they let the teens have acne!!!!! Nancy is going to be a superstar and Toothless/Dustin is my new favorite human. I want to watch everything he is ever in (which apparently includes a national tour of Le Mis? OK!). I have like 33 other Why STRANGER THINGS Is So Very Great topics I want to hit on but I’ll save that for my friends who have already watched it. Go watch it, ok? it’s so very great.

July 19, 2016 06:43 PM

veronicamars: BUFFY MEME / 10 scenes » #6 (3x20: The Prom) “We...


BUFFY MEME / 10 scenes » #6 (3x20: The Prom)

“We have one more award to give out. Is Buffy Summers here tonight? This is actually a new category. First time ever. I guess there were a lot of write-in ballots, and, um, the prom committee asked me to read this.”

It wasn’t the hardest I ever cried at Buffy when it first aired (that still goes to Season 2′s Angel sacrifice; I was still so upset the next day I asked if I could stay home from school) (I was told no, because my parents aren’t insane), but man it was close. 

July 19, 2016 06:37 PM

littleredrydenhood: ryan reynolds and his daughter  See,...


ryan reynolds and his daughter 

See, parenting doesn’t seem so hard. 

July 19, 2016 06:34 PM

July 18, 2016


The Inner Ring, Slack and Trump

Read this and this. Trump is the man who constantly seeks the Inner Ring while Slack has allowed us to reify and surveil the creation and formation of Inner Rings within an organization.

by Zack Maril at July 18, 2016 03:11 AM

July 16, 2016


Rose’s Luxury

Last week, I made my second trip to Rose’s Luxury, a restaurant famous for its long lines and New American small-plates menu that don’t shy away from odd-ball flavor. The restaurant sits on Barrack’s Row, a commercial corridor in Southeast DC, with signage consisting of only a green neon sign spelling out “Roses” in the window. The quaintness of the building makes this restaurnt enticing, welcoming, and warm – and this extends fully throughout the restaurant, from the decor and food to the ecletic set of plates and silverware that will land upon your table.

Two people dining at Rose's Luxury open kitchen bar

When first sitting down for a meal at Rose’s you’ll be greated with what I deem my absolute favorite part of the meal: a small loaf of potato brioche served with buttermilk butter, crispy potato skin bits, and chives – baked potato, anyone!? This bread course is the perfect introduction to the fun cheekiness of chef-owner Aaron Silverman’s menu.

Open kichen bar and dining room at Rose's Luxury

Photo by laurabl / CC BY-NC-ND 2.0

The menu has a few classics, like the Hand-Cut Chitarra “Cacio e Pepe” and family-style brisket served with a stack of toasted white bread. But, ultimately the menu stays seasonal – enough so that the menu that I’m looking at today has already moved on from the items I enjoyed last week. If you go, trust the menu, your server, and your sense of adventure – order a dish or two from each section (for a party of two) and let Rose’s take care of you.

Cacio E Pepe

Photo by T.Tseng / CC BY 2.0

As for beverages, order one. In my most recent trip, I jumped for their Aperol Spritz – a simple cocktail of Aperol, sparkling wine, soda, and fresh orange that I fell for in Venice. This Aperol Sprtiz redefined my expectation for this cocktail (topping many of the versions I had in the drink’s Italian motherland) and any of Rose’s cocktails have never disappointed. (This is likely due to the recent additon of Jeff Faile to the Rose’s Luxury team as its first beverage director.)

Now, while this pains me, I can’t write about Rose’s luxury without acknowledging The Line. Rose’s seat capacity is relatively small and it retains a strict no reserverations policy throughout the week, causing an impressive line to form daily starting around 3pm. The restaurant opens for seatings at 5pm and will start seating those in line immediately if their entire party is present. If no seating is available, or your party is not present, you get put on a waitlist. My experience this week was pretty simple. I started waiting in line around 4:30pm and was sat immediately with my party of two shortly after the doors opened at 5pm. No fuss. Embrace the line. And, as my mother would say…“It’s a good time to practice patience.” Or, as proof with this photo, it can also be a good time to turn your purse into a mobile standing desk.

Woman standing typing on laptop located in purse

July 16, 2016 08:17 PM


The Open Source License API

Around a year ago, I started hacking together a machine readable version of the OSI approved licenses list, and casually picking parts up until it was ready to launch. A few weeks ago, we officially announced the osi license api, which is now live at

I also took a whack at writing a few API bindings, in Python, Ruby, and using the models from the API implementation itself in Go. In the following few weeks, Clint wrote one in Haskell, Eriol wrote one in Rust, and Oliver wrote one in R.

The data is sourced from a repo on GitHub, the licenses repo under OpenSourceOrg. Pull Requests against that repo are wildly encouraged! Additional data ideas, cleanup or more hand collected data would be wonderful!

In the meantime, use-cases for using this API range from language package managers pulling OSI approval of a licence programmatically to using a license identifier as defined in one dataset (SPDX, for example), and using that to find the identifier as it exists in another system (DEP5, Wikipedia, TL;DR Legal).

Patches are hugely welcome, as are bug reports or ideas! I'd also love more API wrappers for other languages!

by Paul Tagliamonte at July 16, 2016 07:30 PM

July 14, 2016


Hiding at the bottom of the stack

You will recall from the discussion of the mortgage interest deduction that where a credit or deduction appears on the tax form can matter deeply for how it works in practice. To some extent, it reveals how high-priority the law is.

The pros refer to this as the stacking order. Something low on the order gets taken into account after everything else, and so may demonstrate funny interactions and side-effects with items earlier in the order.

As I covered over the course of two columns, Form 3800 lists a few dozen credits, but the total general business credits one can take are limited. The first two pages of Form 3800 calculate that limit, so it’s complicated, but let’s just say that the credits are limited to 25% of taxes otherwise owed.

So say that you have 300k in investment credits, 300k in low-sulfur diesel credits, and 100k in miner rescue training, but are limited to taking only half a million in credits.

This is where the stacking order comes in. You are deemed to have taken the 300k in investment credits, 200k in diesel credits, and that’s it. The rest (100k diesel, 100k miner rescue), you can carry over to next year and maybe use then.

This means that, in practice, the credits at the bottom of the stacking order are less likely to be taken.

The difference between a credit taken and a credit not taken can be subtle. As far as the taxes for the business this year go, all that matters is that credits were taken, not what their names were.

If the firm has the same finances next year, it’ll claim the same higher-in-the-stack credits, and over time it may wind up carrying an increasing amount of diesel credits. Recall how past losses can carry over and eventually be used, or make the company a more valuable asset. The same is true of a firm carrying unused credits, with the caveat that companies that are already hitting their limit on credits have no need for more.

Or, the credits may just atrophy. They aren’t inflation adjusted, and so lose value the way anything else earning 0% interest will. Or, Congress may cancel the credit entirely. Many of these credits are renewed every year, so if Congress forgets to do its homework, or the miner rescue industry loses favor, the credit is cancelled and it’s unclear what happens to potentially years’ worth of saved-up credits.

On the other side, credits carried forward have no real, present cost. That means that the earlier credits look bigger to Congressfolk and pundits. When you read CRS reports listing total costs for different credits, a credit carried over has zero cost, so it’s the higher-up credits that are brighter blips on the radar.

In short, credits at the bottom of the stacking order are cheap, economically and politically.If you’re feeling positive, this means that the credits are very well-targeted: small companies that fit the quirk the credit addresses will get their credit, while big companies exhaust their credit usage by the time they get to line 1c, so any carryover from the credit on line 1y effectively drifts away.

This is the eighth and last essay in a series on tax subsidies that divide the population between people who benefit from the subsidy and people who have no idea that the subsidy exists (which started here). Now you know where to find a few dozen of these sorts of subsidies, and see how the system is built so that even in the cost accounting, they maintain as invisible a presence as possible.

by BK at July 14, 2016 12:29 PM

July 12, 2016


Rep. Hoyer Speaks on Renewing Faith in Government

Yesterday, House Minority Whip Steny Hower (D-MD) gave an interesting speech on renewing the American people’s faith in government. He…

by Daniel Schuman at July 12, 2016 03:18 PM

July 11, 2016



just went for a walk // without precious body glide // living to regret

A haiku about summer dresses

By me


July 11, 2016 07:49 PM


Blueberry Pie

We’re in the swing of summer. And that means berry season. While berries are available practically year-round, there is still a distinct difference between the blueberries that you eat in March and those you eat in July. There’s also a huge difference in price.

After a recent viewing of Alton Brown’s Good Eats episode “Kinda Blue,” I was inspired to pick up a two pound container of blueberries at Whole Foods, for the excellent price of $6. Not only were these blueberries in-expensive, but they were beautiful, tart yet sweet, and huge!

As someone who isn’t the biggest fan of raw bluerries eaten by the handful, I decided that a baked preparation would be best. I had never made a blueberry pie before – and now seems like a great time to give it a shot!

I’m quite fond of this butter pie crust recipe from Epicurious and decided to repurpose it for this pie. I don’t own a food processor and can attest that this recipe still works great by using the shortcrust pastry method. This method calls for you to cut up butter into quarter-inch cubes into dry ingredients and rub the butter with your fingertips in the dry mixture until the mixture resembles breadcrumbs or meal. Rubbing with your fingertips is important so as not to melt the butter into the flour – you want the butter to remain solid, so start with very cold, yet malleable butter!

As this was my first blueberry pie, I wanted to stay classic and simple. While some recipes call for tapioca flour (like Alton’s or corn starch, I opted for the traditional flour coating. I knew this had the potential to make my crust soggy, but I baseline is always useful!

In addition to the flour and blueberries, I added the zest and juice of one lemon and grandulated sugar. That’s it! After mixing up the blueberries, I placed them into the raw dough base of the pie dish.

To finish off the pie, I opted for a lattice crust. I used another Alton Brown method: utilizing the width of a ruler to make even top crust pieces by flipping the ruler over across the rolled out crust.

Before placing in the oven, I used a simple milk and egg yolk wash to finish off the crust, making it extra golden brown.

I hope you get the chance to make your own bluerry desserts this summer while the berries are at their peak!

Blueberry lattice pie

July 11, 2016 02:24 AM


geocoding your way to a great vacation

The road had descended steeply into the valley, and if there was a river anywhere near, it seemed like we would find it soon. There were even a few signs for a dock, but by that time we were suspicious. The people of Skradin would have you believe that their great civic passtime is standing on street corners, wearing t-shirts emblazoned with the letter P and proclaiming the availability of free parking for ferry passengers. It seemed suspicious. Besides, Google told us the ferry was over one more mountain. Nice try, Skradinze.

Our rented VW diesel leapt up the incline, no doubt leaving unimaginable pollutants in its wake. At the bottom of the hill a construction worker made a sort of :no_good: gesture but maybe he was communicating with a colleague behind us? We proceeded onward toward the pin. The road became one way, not too unusual for this part of the world. Some trees were growing into the road; I rolled up my window. Soon the gap became so small that we worried about our mirrors. But the pin urged us on.

Eventually we reached the end of the alley. The walls had closed in. There were a couple of driveways headed up to estates on the hill to our left, so steep that a scooter might tip backward. Backing out looked terrifying: to our right, footpaths ramped down from, then parallel along the road. With no guardrails in evidence, a misplaced wheel could fall into several feet of empty air.

I was panicking, but Steph got out of the car and eventually guided me through a many-, many-point turn (restarted three times). The owner of an adjacent house looked on disapprovingly, convinced with good reason that an idiot was about to crash into her house at low speed.

Obviously you should not ask me for advice about driving when abroad. But thanks to work I can tell you exactly why this happened, and how you can spot the circumstances that might produce similar predicaments for you.

We had geocoded the ferry, plopping its address into an app’s text field and relying on the location to which it was matched. Results from such a service can be divided into two levels of quality: address point and interpolated.

Point geocoding works the way you might imagine. If you put in “150 Main Street”, the system finds the coordinates associated with the building at that address and returns them. Exactly what that spot represents can vary. Sometimes it represents the land parcel, sometimes the building’s rooftop, sometimes even the entryway.

Point geocoding results are the best kind. But point geocoding datasets are never comprehensive. People build new structures all the time, and it’s hard to drop pins for them all in a prompt manner, particularly since address numbers aren’t visible from satellite imagery.

So virtually all geocoders fall back to interpolation when they can’t find a point to match a query. An interpolated dataset includes a map of road network line segments. Each segment record has the road’s name, a start and end number, and whether the odd-numbered addresses go on its right or left side. This lets the system make an informed guess about an address location when no point is available. If a segment named “Main Street” starts at 100 and ends at 200, then a query for “150 Main Street” will be placed at its middle.

This works well a lot of the time. But of course addresses are not spaced perfectly evenly along roads. Some buildings are wider or thinner than their neighbors. Some blocks have several buildings clustered at one end, followed by empty space.

Geocoding data like this is often collected by state or municipal authorities and stitched together into national and international datasets. Those authorities collect it for different reasons: taxes or emergency services or road maintenance, for instance. So it’s common to have the level of quality vary by location even within a single country or region.

And quality tends to be worse in rural areas. There are fewer government agencies managing and maybe-digitizing those places. Businesses can’t make as much profit from those areas, so there’s less money sloshing around to fix problems. And everything is spread out: a so-so interpolation result can be off by a few hundred feet on a city block, or several miles along a farm road.

The interpolation data for our Croatian ferry terminal just wasn’t very good. And there probably wasn’t any data at all for the small houses that I nearly drove into.

In the abstract, this might not be of much interest to people who don’t work on geocoders all day. But it’s worth keeping in mind for your next vacation: if you get a result that doesn’t land on a rooftop, it might pay to be suspicious of the next results, too. At the very least, I recommend paying close attention to any non-obscene gestures that you see construction workers making.

by Tom at July 11, 2016 01:46 AM

July 10, 2016


Ye Olde Blogging and Why it Disappeared: Part II

As I wrote earlier, now it's 2016, and "nobody blogs anymore." I was interested in exploring why this happened, and why it's so hard to get this world of personal blogs back on the internet. So I (via email) asked four friends who made up the core of my blogging group in the mid-2000s to share their thoughts with me on the topic: What happened to personal blogging as we knew it, and why did it happen?

Tom's thoughts are here, and next up? Matt Yglesias (one of the many people I met through blogging in the mid-2000s and became IRL friends with).

Matt's thoughts on the disappearance of personal blogging:

Old-time blogging was, essentially, what we would nowadays call "social media" and it died basically because it was beaten by Facebook and Twitter and Instagram and Pinterest and so on. 

The time and energy that once upon a time people would have put into a blog is now put into social networks that are simplified, easy to use, and more popular than blogging ever was. At the same time, blogging has "upscaled" into professional, monetized media companies.
I don't think blogging per se will ever come back, but I do think that Twitter's timeline is basically the closest thing to blogs that we have today and it's at least conceivable that the company's leadership will build the product tools that would make it possible to use Twitter to blog. Instead of "tweetstorming," for example, maybe you could attach a post to a Tweet the way you attach a photo? Contra Tom, I do think a lot of the rambling, risk-taking, discursive nature of blogging lives on — it's just up on twitter. 
Something that I think is interesting here is the counterfactual. In the heyday of blogging, Alphabet (née Google) owned both Blogger and Google Reader but didn't focus on developing either of them as businesses or really as products. This was also the period during which Google tried (and failed) to launch Orkut, Buzz, Wave, and Plus all to no avail. What if Google had made ongoing development of Reader/Blogger the pillar of the social strategy rather than trying to launch brand new social products? Is it possible then that Facebook's remorseless march to become King of All Web Content could have been halted? Would a more RSS-centric traffic universe have saved the blogs? 
Who knows. One tension is that Google's core product was and remains web search, and something Google realized early on was that to make the web search experience work the way users wanted it to work random blogs had to be heavily downweighted relative to more "credible" content. So given the centrality of search to Google's identity and business model, it would have been challenging for Google to promote a form of content that Google's own standards rate as low quality. 

by catherine at July 10, 2016 08:11 PM


The problem of incentivizing nothing

Maybe this will sound obvious, but it is impossible to offer a tax credit on money nobody spends. This basic fact creates noticeable distortions in the landscape of the tax code.

Say that the Planning Committee has determined that sugary drinks are bad for you. One approach (`the stick’) is to tax drinks with high sugar content. One (`the carrot’) is to give a tax credit or subsidy for buying drinks that substitute away from sugary drinks, like low-calorie soda or carrot juice.

Setting aside Tang,  sugary drinks do not live in a vacuum. Perhaps last year the Planning Committee initiated another set of tax subsidies to handle malnourishment, and recognizing that carbohydrates are a necessary nutrient and that sugar is a pure form of carbohydrate, set up a tax subsidy for sugar.

At the end of it all, the only people not getting some sort of tax subsidy are the people who don’t buy drinks. If you’re drinking tap water, buying two boxes of tea a year and calling that your beverage budget, growing carrots and juicing them yourself, then you are outside of the economy, and there’s no way for a tax subsidy to reach you.

To give another example, my local electric company will pay a not-negligible subsidy to people who agree to install a smart thermostat that slows down their air conditioner during peak demand periods. Except I’m ineligible, because my house doesn’t have an air conditioning unit at all. It may be cost-effective for me to install a cheap unit I never use so I can score the subsidy.

In those situations where there is a `sinful’ form of consumption, the first best outcome is to simply not consume, but not consuming can’t receive a subsidy. The second best is lite consumption, and this is where the tax code is able to nudge people.

Last time, I went over some of the more interesting credits on Form 3800 (PDF), but the bulk of the credits are energy-related:

1f renewable electricity, refined coal, Indian coal production
1l biodiesel, renewable diesel
1m low sulfur diesel
1o nonconventional source fuel
1p energy efficient home
1q energy efficient appliances
1r alternative motor vehicle
1s Alternative fuel vehicle refueling property
1y Qualified plug-in electric drive motor vehicle
4c Biofuel producer
4e Renewable electricity, refined coal, and Indian coal production again

There are a lot of fuel taxes (Form 720), but use Form 4136 to get a zero tax rate for certain uses of gasoline, undyed diesel, undyed kerosene, kerosene used in aviation, liquefied petroleum gas, compressed natural gas, liquefied hydrogen, Fischer-Tropsch process liquid fuel from coal (including peat), liquified fuel or gas from biomass, liquified natural gas, and diesel-water fuel emulsion blending.

And lest you worry that only the petroleum alternatives are getting the credits, I enjoyed this overview of the subsidies that oil extraction companies receive (PDF).

At this point, it is hard to imagine a U.S. motor whose operation is not somehow subsidized by the federal government.

Of course, if you run a fleet of bike taxis in San Diego, where the weather is always so perfect that your office needs neither a/c or heating fuel, there are no credits for you.

In total, the incentives on Form 3800 are consistent with the story I told above: you can’t incentivize doing nothing, but you can incentivize consumption lite, like buying efficient appliances and renewable diesel. More on reading these incentives next time.

The commune

An alternative hypothesis is that the goal of the code is not to shape society for some undefined better, but to push its members to move.

In a world where the only businesses are wholly self-sustaining yogic meditation communes, where everybody drinks juices made from fruits and veggies in the garden and they burn the cow’s manure on chilly nights, no money is exchanged and so GDP is zero. If your goal is maximum GDP growth and all you have are people who are blissfully self-sustaining, you have to find a way to get people to move. To modify a standard example, if you can get the people in commune A to water the plants in commune B for $10,000/year, and get the people in commune B to water the plants in commune A for $10,000/year, then the commune members are doing no additional work besides walking next door, but GDP is up $20,000/year (and tax rates follow accordingly).

My commune example may sound far-fetched, but more and more of the economy is about information, which is relatively costless to move, using open source or free-to-use software. The person who runs Pinboard broke down what he pays to run the web site that is his livelihood. He pays for four Amps a month. Doing some back-of-the-envelope math, four Amps at 110 volts for a month comes out to 317 kWh. For reference, my household of four people used 185 kWh last month, so this person’s entire business uses as much energy as two residential households. He’s not running a commune off the grid, but just about any business based on moving physical objects or maintaining a storefront or sending people around on frequent flights will show a greater mark on the GDP accounts.

By this reading, the basic message of the tax code is not that you should use energy efficiently, but that you should use energy. Form 3800 is consistent with this story as well.

by BK at July 10, 2016 03:26 PM



A while back, I found myself in need of two webservers that would terminate TLS (with different rules). I wanted to run some custom code I’d written (which uses TLS peer authentication), and also nginx on port 443.

The best way I figured out how to do this was to write a tool to sit on port 443, and parse TLS Client Hello packets, and dispatch to the correct backend depending on the SNI name.

SNI, or Server Name Indication allows the client to announce (yes over cleartext!) what server it’s looking for, similar to the HTTP Host header. Sometimes, like in the case above, the Host header won’t work, since you’ve already done a TLS handshake by the time you figure out who they’re looking for.

I also spun the Client Hello parser out into its own importable package, just in case someone else finds themselves in this same boat.

The code’s up on!

July 10, 2016 01:34 PM

July 09, 2016


When a micro-purchase doesn’t work out, we try to learn from it

This week, I co-authored a blog post for the 18F blog, entitled: When a micro-purchase doesn’t work out, we try to learn from it. It discussed a thing that is rarely discussed in government: failure. Here’s the opening graf:

Two months ago, the 18F acquisitions team ran a public micro-purchase auction to find a vendor to develop a small new feature for 18F’s, and for the first time after several successful micro-purchases for other products, the contracted vendor didn’t deliver the code on time. This was very interesting to us — we’re early in the life of the micro-purchase platform, and we believe that failure is a great way to learn. In the spirit of experimentation and sharing our lessons, here’s how we went about analyzing this, and here’s what we learned.

I encourage you to read it!

July 09, 2016 12:00 AM

July 08, 2016


"I am inside someone who hates me. I look out from his eyes. Smell what fouled tunes come in to his..."

I am inside someone
who hates me. I look
out from his eyes. Smell
what fouled tunes come in
to his breath. Love his
wretched women.

Slits in the metal, for sun. Where
my eyes sit turning, at the cool air
the glance of light, or hard flesh
rubbed against me, a woman, a man,
without shadow, or voice, or meaning.

This is the enclosure (flesh,
where innocence is a weapon. An
abstraction. Touch. (Not mine.
Or yours, if you are the soul I had
and abandoned when I was blind and had
my enemies carry me as a dead man
(if he is beautiful, or pitied.

It can be pain. (As now, as all his
flesh hurts me.) It can be that. Or
pain. As when she ran from me into
that forest.
Or pain, the mind
silver spiraled whirled against the
sun, higher than even old men thought
God would be. Or pain. And the other. The
yes. (Inside his books, his fingers. They
are withered yellow flowers and were never
beautiful.) The yes. You will, lost soul, say
‘beauty.’ Beauty, practiced, as the tree. The
slow river. A white sun in its wet sentences.

Or, the cold men in their gale. Ecstasy. Flesh
or soul. The yes. (Their robes blown. Their bowls
empty. They chant at my heels, not at yours.) Flesh
or soul, as corrupt. Where the answer moves too quickly.
Where the God is a self, after all.)

Cold air blown through narrow blind eyes. Flesh,
white hot metal. Glows as the day with its sun.
It is a human love, I live inside. A bony skeleton
you recognize as words or simple feeling.

But it has no feeling. As the metal, is hot, it is not,
given to love.

It burns the thing
inside it. And that thing

- An Agony. As Now. - Poem by Amiri Baraka

July 08, 2016 01:52 PM

July 07, 2016


Is The House Intelligence Committee Out of Balance?

Yesterday’s appointment of representative Joaquin Castro (D-TX) to the House Intelligence Committee may push the Committee’s membership out…

by Daniel Schuman at July 07, 2016 06:55 PM

July 05, 2016


11 Simple Things to Improve Senate Accountability

Democratic members of the U.S. Senate recently announced “We the People,” a legislative package the New York Times describes as intended to…

by Daniel Schuman at July 05, 2016 01:46 PM

July 04, 2016


A Selection of My Finest Bookmarks (with sparse comments)

Books! looks interesting. Add it to the stacks of books to read.

Experiences! “yeah babe I hang out at the library, the library of congress, sup”


An amazing documentary, as soon as I reopened the tab I started watching it again, be careful.

Computers! <- neat!

^ Very helpful in a sort of general, sql is awful by design way <- NEAT <- when everything around you is designed by human hands, even the most mundane element of the background has a long well documented history <- in your code, finding your bugs, watching out for your product managers’s ego <- USEFUL

Thoughts! not a good read, but still a good read, you know? speak your truths dan


A genuinely interesting read.

Politics! hmmmm Hmmm HMMMMMM .... hmmm


The New York Times! FUCK THAT I largely agree with the author. Interacting with a significant fraction of the people here is like interacting with the same soul put into a thousand different bodies. It's a mundane sameness and cloistered attitudes that smothers out the interesting part of life. Feels like they all want to live out the West Wing or something.

by Zack Maril at July 04, 2016 03:16 AM

July 03, 2016


Fun with Form 3800

This is part of a series on Form 3800. I started with this piece about how much the public can or should learn about obscure details of law, followed by this piece about laws that divide the population between people who directly benefit from the credit and people who have never heard of the credit. This section provides examples of such laws, diving into Form 3800 (PDF) itself.

The first two pages Form 3800, General Business Credits, are largely an equation stretched out over two pages, because IRS assumes that everybody does their taxes with an abacus. Skip to Part III on page three, which is the list of tax subsidies.

Each line is its own story. If I had a class of 36 or fewer students, I’d give each student one line to dig into.

Line 1u is miner rescue training credits, because apparently companies underinvest in the training to rescue their employees in case of disaster.

Line 1n is a credit for wholesalers on every case they buy of distilled spirits bottled in the U.S.

There is a class of investment corporation aimed at low-income areas, with community members on the board. These corporations get a credit on Line 1i, “new markets”. Unpacking the IRS description of low-income areas of the U.S. as “new markets” is an essay that will have to wait for another day.

Does your business have fewer than 30 employees, and do you have to comply with the Americans with Disabilities Act, because it is a federal law? Line 1e will help you out. It also covers recording books on tape and other steps toward a more accessible world, as long as they are by a small business.

Are you a smaller railroad company (not one of the big seven) who has privately-owned facilities that you use to operate your business? Great, line 4g will help you out.

Does your company do research and experimentation (R&E)? It probably does, given that those broad terms are left undefined in the US Code, though please bear in mind that this credit applies to “research or experimental expenditure only to the extent that the amount thereof is reasonable under the circumstances.” First, you get to expense your investment instead of depreciating it (on Form 4562). It’s too boring for news coverage, but minor changes in depreciation rules can have a massive effect on what corporations pay in taxes, and the rule that R&E depreciates immediately is at this point a relatively major part of the tax code.

Second, did you increase your R&E spending this year relative to years past? That too merits a tax credit, on line 1c.

It’s up to you if you want to be outraged that these carve-outs exist, or delighted that there are subsidies in place for helping the disabled get to work, providing childcare facilities for employees (line 1k), and making wholesale purchases of Skyy vodka. My joking descriptions aside, I don’t want to make thumbs-up or thumbs-down judgments here.

But I’m betting that you didn’t know that these credits even exist. Yet here they are, clearly listed on page three of Form 3,800. You can see that it’s an active page, with spaces for new credits and blanks for elimination of old credits (like line 1v, which was a credit for theft prevention measures on fertilizers and pesticides). It’s certainly a long list, with line one alone going all the way through the alphabet to part 1bb. Check the instructions to line 1zz for the list of credits that have been dropped in recent history, like Hurricane Katrina-related credits, which is not nearly as long.

by BK at July 03, 2016 03:24 PM

July 02, 2016


Hill Country BBQ

As someone who may get takeout a few times a month, whenever I do, I want to make it worth it. this often means ordering from my favorite Thai or Chinese or Indian restaurant. It’s no coincidence that I order cuisines that I have no talent in. There’s no universe in which I can whip up a Butter Chicken as delicious as Indigo, which means the $11 I spend on takeout are well worth it.

However, this week I had a dilemma: massive hunger and no desire to touch a pot or pan. I also felt slightly adventurous and bored by my typical takeout rotation. This perfect storm brought me to order takeout from Hill Country BBQ, a Texas-style cafeteria style joint in Downtown DC. (Note: Hill Country has three locations: one in Washington, Manhattan, and Brooklyn.)

I was ordering for two and opted for one of Hill Country’s daily specials that included a ¼ of their Market Chicken, a bone-in beef short rib, a ¼ pound of lean brisket, a side (of which I chose mac and cheese), and cornbread. I also opted for their “confetti” cole slaw and a quart of unsweetened iced tea – yes, they sell their iced tea by the quart!

The restuarant itself is large and cafeteria-style with a big bar at the front. It’s screams “WE SERVE BBQ” with drinks in mason jars and reclaimed wood all around. To pick up my order, I was able to go back to the ordering area and easily ask for my order. Quick and easy!

Opening my haul, I first noticed the large quart-size mason jar filled with iced tea. Let’s just say, a free large mason jar was enough to win me over to this place. The cornbread was served with an ancho honey butter – sweet and salty: the perfect accompaniment to the savory bread muffins. The lean brisket, smoked chicken, and short rib were wrapped in paper, perfectly warmed and tender, with plenty of tangy barbecue sauce served on the side. The sides stood on their own and were a great balance of creaminess to cut the salt and vinegar of the rest of the meal.

Ultimately, I think that Hill Country is going to be a perfect addition to my take-out rotation. I highly recommend them when you’re craving some really solid and dependable barbeque in a pinch.

Chicken breast, mac and cheese, cole slaw, and cornbread

July 02, 2016 07:02 PM


Hello, InfluxDB

Last week, I posted about python-sense, and API wrapper for the internal Sense API. I wrote this so that I could pull data about myself into my own databases, allowing me to use that information for myself.

One way I'm doing this is by pulling my room data into an InfluxDB database, letting me run time series queries against my environmental data.

#!/usr/bin/env python

from influxdb import InfluxDBClient

import json
import datetime as dt
from sense.service import Sense

api = Sense()

data = api.room_sensors(quantity=20)

def items(data):
    for flavor, series in data.items():
        for datum in reversed(series):
            value = datum['value']
            if value == -1:

            timezone = dt.timezone(dt.timedelta(
                seconds=datum['offset_millis'] / 1000,

            when = dt.datetime.fromtimestamp(
                datum['datetime'] / 1000,

            yield flavor, when, value

client = InfluxDBClient(

def series(data):
    for flavor, when, value in items(data):
        yield {
            "measurement": "{}".format(flavor),
            "tags": {
                "user": "paultag"
            "time": when.isoformat(),
            "fields": {
                "value": value,


I'm able to run this on a cron, automatically loading data from the Sense API into my Influx database. I can then use that with something like Grafana, to check out what my room looks like over time.

by Paul Tagliamonte at July 02, 2016 05:13 PM

June 27, 2016


Hello, Sense!

A while back, I saw a Kickstarter for one of the most well designed and pretty sleep trackers on the market. I fell in love with it, and it has stuck with me since.

A few months ago, I finally got my hands on one and started to track my data. Naturally, I now want to store this new data with the rest of the data I have on myself in my own databases.

I went in search of an API, but I found that the Sense API hasn't been published yet, and is being worked on by the team. Here's hoping it'll land soon!

After some subdomain guessing, I hit on So, naturally, I went to take a quick look at their Android app and network traffic, lo and behold, there was a pretty nicely designed API.

This API is clearly an internal API, and as such, it's something that should not be considered stable. However, I'm OK with a fragile API, so I've published a quick and dirty API wrapper for the Sense API to my GitHub..

I've published it because I've found it useful, but I can't promise the world, (since I'm not a member of the Sense team at Hello!), so here are a few ground rules of this wrapper:

  • I make no claims to the stability or completeness.
  • I have no documentation or assurances.
  • I will not provide the client secret and ID. You'll have to find them on your own.
  • This may stop working without any notice, and there may even be really nasty bugs that result in your alarm going off at 4 AM.
  • Send PRs! This is a side-project for me.

This module is currently Python 3 only. If someone really needs Python 2 support, I'm open to minimally invasive patches to the codebase using six to support Python 2.7.

Working with the API:

First, let's go ahead and log in using python -m sense.

$ python -m sense
Sense OAuth Client ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Sense OAuth Client Secret: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Sense email:
Sense password: 
Attempting to log into Sense's API
Attempting to query the Sense API
The humidity is **just right**.
The air quality is **just right**.
The light level is **just right**.
It's **pretty hot** in here.
The noise level is **just right**.

Now, let's see if we can pull up information on my Sense:

>>> from sense import Sense
>>> sense = Sense()
>>> sense.devices()
{'senses': [{'id': 'xxxxxxxxxxxxxxxx', 'firmware_version': '11a1', 'last_updated': 1466991060000, 'state': 'NORMAL', 'wifi_info': {'rssi': 0, 'ssid': 'Pretty Fly for a WiFi (2.4 GhZ)', 'condition': 'GOOD', 'last_updated': 1462927722000}, 'color': 'BLACK'}], 'pills': [{'id': 'xxxxxxxxxxxxxxxx', 'firmware_version': '2', 'last_updated': 1466990339000, 'battery_level': 87, 'color': 'BLUE', 'state': 'NORMAL'}]}

Neat! Pretty cool. Look, you can even see my WiFi AP! Let's try some more and pull some trends out.

>>> values = [x.get("value") for x in sense.room_sensors()["humidity"]][:10]
>>> min(values)
>>> max(values)

I plan to keep maintaining it as long as it's needed, so I welcome co-maintainers, and I'd love to see what people build with it! So far, I'm using it to dump my room data into InfluxDB, pulling information on my room into Grafana. Hopefully more to come!

Happy hacking!

by Paul Tagliamonte at June 27, 2016 01:42 AM

June 26, 2016



I rode my bicycle a hundred miles yesterday, and so yes, this is mostly an extended humble-brag. But it is also a mark of how much has changed since my first, ecstatic road bike experience.

A down pedalstroke no longer seems to make the ground leap past me, and my legs no longer feel like springs ready to launch. In retrospect, I got what I wished for in that post, a melding of body and bicycle: a fall two years ago means my collarbone is now built with lightweight, precisely-machined titanium (alas, my bike frame is still mere aluminum). Having wishes granted is fraught.

But I still love being on a bike, and I understand it a bit better than I did. Certainly I understand my limitations better: I am not built to be a great cyclist. Too many college days in the gym, adding muscle to protect myself for an awkward but already-concluded adolescence. These days too much mass, period. The great cyclists are hugely tall and nearly skeletal, save for the enormous engines of muscle between their knees and hips. I’m not built like that.

More interesting than that is the revelation of a body’s limits. This is Charles’ insight, really. But a bicycle makes it easy to understand yourself as a machine, to deplete your metabolism before breaking your body in a away that’s hard to achieve when running or doing most other athletic things. The air cools you and there’s little stress on your joints. You can adjust gearing to manipulate the difficulty of the task. Really, you can just keep going until you run out of fuel. If you forget to feed yourself every 20 miles or so, you will fall to pieces, but the brief delay of digestion makes it hard to remember this. Which is why I bonked around mile 60, shortly after we had climbed Sugarloaf Mountain.

Well, no matter. Matt and Charles were patient with me as we stopped in the shade near a park, and a few miles later we sat down to lunch at a restaurant in Poolesville. I consumed a digusting amount of Coca-Cola at a pace exceeded only by my heart rate, which refused to slow down. I ate my club sandwich so fast that my throat still hurts today. Afterward I felt a lot better.

The last 40 miles were not pleasant, exactly–the human butt is not meant to sit on a saddle for that length of time, and a pinched nerve in my neck meant that the skin at the top of my back was numb until this morning. But I took better, steadier care of myself after lunch, and arrived home with an odometer showing a distressing 94.5 miles.

Steph had gotten me some century-related birthday gifts two years before, but schedules and injury had made it impossible. This was a long-deferred goal. Matt had promised an 85 mile ride, which we had (accidentally) exceeded. And Charles had headed down to Hanes point when we reached 15th Street to put in the necessary laps to hit three digits.

So I trundled up and down the Met Branch Trail a few times, watched my bike computer font get the smallest it’ll ever be, then laid down on my living room floor for an hour. Today I feel fine, though I can’t tell if it’s good or bad that the impact on my knees, butt and neck seem to be the same for a 40 mile ride and a 100 mile trip.

by Tom at June 26, 2016 09:30 PM


Ye Olde Blogging (and why it disappeared)

Long is the lament that "nobody blogs anymore." (Even though you are reading a blog currently. I know. I'm shocked too.) This lament mostly comes from me and my other friends who now, as we rapidly approach 40, wax super nostalgic for what we remember as the golden days of blogging in the early and mid-2000s.

Picture it: There was no Twitter, no Snapchat. There was no Facebook, even. (Yes, a world before Facebook existed.) When people wanted to share their ill-informed thoughts on the world around them, they fired up a blogspot or a livejournal and furiously typed on their keyboards late into the nights (or, if you were me, during a boring desk job when I really should have been working more). Comments were a new thing, and oft-respectful discussions often took place in them, believe it or not. Thoughts were somewhat coherently formed. Blog posts were hundreds of words instead of 140 characters. Real-life relationships and friendships were developed through these platforms. Personal blogging was a thing -- not just blogging about politics or fashion, but about regular old stories and experiences that could happen to anybody. 

But now it's 2016, and "nobody blogs anymore." I was interested in exploring why this happened, and why it's so hard to get this world of personal blogs back on the internet. So I (via email) asked four friends who made up the core of my blogging group in the mid-2000s to share their thoughts with me on the topic: What happened to personal blogging as we knew it, and why did it happen?

I'll be sharing their thoughts over the next few weeks. First up are thoughts from Tom (who now blogs here! SEE WE WILL BRING BLOGGING BACK GOT DAMMIT): 

These days it's hard for me to think about anything on the internet except in terms of people competing for social esteem, and it's how I retroactively understand blogging, too. Writing letters to your friends and strangers to make yourself look smart or funny is a relatively harmless form of narcissism, but I do think it's basically the same as someone performing signaling on social media today by, for instance, scolding others for not caring enough about the dead in Beirut.
The systems we use for this behavior have evolved since our time into more efficient and less flattering forms. Blogging can't really compete: it takes a lot of time to produce and consume. But the alternatives seem less interesting to me.
It's also become more fraught for us to write for fun. Back then our social networks didn't match our IRL networks that closely, which offered a freedom we don't have today. I didn't care too much if, idk, norbizness was offended by something I wrote. But my mom reads my blog now. So do my coworkers, and potential future employers.
And, not to be too much of an aggrieved white guy, but there's less room to safely say dumb or half-thought-out things on the internet now than there used to be in absolute terms, too, since expressions of tribal allegiance have been popularized as an efficient (and sometimes devastating) strategy in the aforementioned esteem competition. Discourse is polarized by it. Certainly I'm mortified by some of the things I wrote back then; I'm glad I had the freedom to write them, though, and friends who read them generously and talked to me about them. The Overton window on any number of these topics is just as wide as ever, but I do think that dipping a toe into its middle has become substantially less safe. You can lose your job for telling a bad joke. That is not how the internet worked for us back then.
But mostly, of course, we got older. We had relatively undemanding jobs back then, and many of us had fewer family obligations. I, at least, was young and dumb enough not to recognize when my narcissistic ramblings were unoriginal and embarrassing. I cut myself a lot more slack, and that translated into post volume.
I think something like old-school blogging is doubtless recurring in different forms among the 20somethings of today. Look at the funny little skits millennials make on Vine! That's just a totally different form from anything we considered doing. I really would not have been any good at it. We were lucky to pick up the habit during an interesting and primitive era, when technological limitations and traits of its participants produced a freewheeling and casual (but non-stupid) epistolary form -- a time when there was an inexplicable audience for longwinded explanations of XBox encryption and indie rock recommendations. I will be forever grateful for it happening.
So yeah, I don't think blogging is coming back, but I miss it badly. I've tried to move that energy into Goodreads reviews -- having an essay prompt feels good, and I think writing about novels offers less temptation to write for bad reasons than some other forms. But it's not the same (and that Hillary Mantel French Revolution book ground me down pretty badly this fall). I would love to find some new writing outlet, but I don't know what yet (so far I am too much of a coward to try fiction).

by catherine at June 26, 2016 04:25 PM



Like most who live in DC, I’m a transplant from another corner of the country. My home corner, is a few hours up I-95 in Philadelphia. Of the many things I miss most about the abrasive land of Philly is the food. I’m sure in a future blog post, I’ll talk about the times that week that I ate delicious underrated meals in Philadelphia, worthy of more national recognition than they receive, but this week I’m going to talk about the touristy, tried and true classics.

You can’t get a soft pretzel, egg sandwich, cheesesteak, scrapple, or water ice in DC. You can get lousy imitations – but they’re just simply not the same. The soft pretzels are frozen, egg sandwiches are dry and fancy, the cheesesteaks sit on menus next to hot dogs and egg rolls, the scrapple isn’t Habbersett (the only way to go), and the water ice…well, Rita’s actually does a good job. Sorry, Rita’s.

On Friday, I found myself in University City at a few appointments with no time to eat the things I actually wanted to spend time and calories on. I had already decided that I wouldn’t eat anything during my weekend in Philly that wasn’t something I had truly missed. In between appointments, I stopped in to Philly Pretzel Factory for one of my favorite cheap-eats…and a $0.75 pretzel. Freshly baked, warm, crispy yet soft, and served in a paper bag (the best indicator of a good pretzel) this pretzel reminded me that the soft pretzel is the perfect cheap mini-meal.

Before my mini-meal, I started my carbo-loading weekend with an egg sandwich from one of my favorite food trucks: Big Blue Lunch Truck. This food truck is old school – no fancy paint or ingredients – with more consistency than a nationwide fast food joint. I used to survive almost solely on egg, cheese, and tomato bagel sandwiches from Big Blue when I worked at Monell Chemical Senses Center – the building that Big Blue permanently sits in front of. Not only does Big Blue pile on the eggs, cheese, and tomato onto a lightly toasted bagel, but the total cost comes out to $3.50. I challenge you to find an egg sandwich in DC with as much consistency, speed, and value as what Big Blue turns out daily.

The next morning, my breakfast turned home where I was quickly reminded of the ever-present block of scrapple in my parent’s refrigerator. Scrapple is melange of pork scraps, cornmeal, flour, and spices formed into a loaf that’s cooked best when sliced thin and fried. Scrapple has found its way outside of Philadelphia cropping up in delis or lunch counters around the Mid-Atlantic. However, it’s hard to find what I deem as my favorite brand of scrapple, Habbersett, outside of the Philly area. I reckon that I find Habbersett to be the most delicious due to some combination of having grown up with it in my family meat drawer and that it’s made with a only cornmeal and wheat flour. Habbersett skips the common buckwheat, unlike its competing brand, Hatfield.

Later that day, the whole family and I stopped for cheesesteaks at Dalessandro’s Steaks and Hoagies a Philly classic in the neighborhood of Roxborough. Unlike many cheesesteak places around the city, Dalessandro’s has a lengthy menu. Normally, I deter anyone from eating at a cheesesteak place that makes more than chopped and grilled steak on a roll, Dalessandro’s pulls it off. I tend to go classic with my steak orders, asking for provolone, fried onions, and ketchup. Although a classic order, Dalessandro’s makes their steaks stand apart from the cheesesteak-crowd with finely chopped, tender steak, and amazingly soft hoagie rolls. If you ever find yourself in Roxborough, make the stop.

Dalessandro’s cheesesteak

While I ate many things while in Philly this past weekend including cheeses from Di Bruno Bros., whipped ricotta and rosemary flatbreads from Zavino, and tomato pie from Corropolese (I’ll likely have a separate post just about the beauty of tomato pie), the one thing I ate twice was water ice. Water ice is the perfect summer cool-down treat appropriate for any time of the day. While Rita’s is my go-to, traditional joints like John’s Water Ice in Bella Vista scream old-school Philly and make your heart sing. With a simple recipe served in Solo Jazz cups, this place bleeds nostalgia.

June 26, 2016 02:09 PM


The Code of the District of Columbia is now available online

At long last, the Code of the District of Columbia has a permanent URL, within the domain. This may not seem like a big deal, but this simple event is the culmination of years of effort, and I couldn’t possibly be happier.

Much has already been written about the work to first get the code up online. To get from an unofficial DC Code to today, though, was the result of many many folks, too numerous to name really. But here are twelve:

  • Tom MacWright, the developer who started this whole thing
  • Ben Bryant, the Codification Counsel for the Council of the District of Columbia
  • Josh Tauberer, the civic hacker who worked with me many times to move the ball forward
  • David Greisen, the Council’s Free Law Innovation Fellow, who took the ball and carried it to the endzone
  • Ellen Efros, the current General Counsel to the Council of the District of Columbia
  • Carl Malamud, the Rogue Archivist who pushed all of us
  • Seamus Kraft, the Co-Founder of the OpenGov Foundation and who spurred the free-law innovation movement into action
  • Ed Walters, the CEO of Fastcase who has been fighting in the trenches for the free law movement
  • Waldo Jaquith, the delightful and unstoppable force for good for all things open data who created the States Decoded
  • Eric Mill, the developer and friend who persuaded me to write my first scraper
  • Chairman Phil Mendelson, the Council Chairman (and his staff) who supported this effort from day one
  • Chris Warren, the Council’s Chief Technology Officer

The craziest part is that there are literally dozens more I could name. Ok, here are a few more:

  • the DC Legal Hacker and Code for DC communities
  • the Arnold Foundation
  • Nyasha Smith and Jen Budoff
  • the Uniform Law Commission (particularly Michele Timmons)
  • and so many more

And in that sense, what makes me happiest of all is not the code, though that’s certainly nice. What makes me happiest of all is that, in making this small thing a reality, I’ve had the incredible luck to work alongside and become friends with so many brilliant people.

June 26, 2016 12:00 AM

June 25, 2016


How an ostensibly universal deduction excludes lower income taxpayers

Some tax subsidies survive by dividing the population into those who benefit from the subsidy and those who have never heard of it. The mortgage interest deduction survives by going in the opposite direction: it benefits so many people that it is largely impossible to eliminate.

It doesn’t benefit everybody: you clearly can’t take the mortgage interest deduction (MID) if you don’t have a mortgage. And people who get a smaller mortgage may have such a small MID that the deduction provides no benefit. As you may recall from filling in your 1040, taxpayers have a choice of either itemizing deductions (including the MID) or taking a standard deduction, which is $6,300 for a single person with no kids and twice that ($12,600) for a married couple. So if you’re married and you have $12,000 in mortgage interest that you want to deduct and nothing else to itemize, then you’re better off eschewing the MID and taking the standard deduction. Total MID benefit: $0 reduction in taxable income. If you have $12,700 in interest to deduct, you’re now an itemizer taking the MID, but you can only itemize if you give up your $12,600 standard deduction. Total MID benefit relative to not having a mortgage at all: $100 reduction in taxable income (0.8% of the interest paid).

Conversely, consider a family that has large business expensess, or already has an existing mortgage on their first house, so that they started itemizing deductions long ago and the standard deduction is a distant memory. If they take out a new mortgage with $12,700 in interest, then their taxable income falls by $12,700 (100% of the interest paid).

In practice, few people making under $50k/year take the deduction to any great effect. This is a tax subsidy primarily for people who can afford expensive houses and have good enough credit to get large mortgages.

A chart of MID benefits claimed by income. Very little is claimed by those under $50k. Conversely, most of the people with severe housing cost burdens have incomes below $50k.

The mortgage interest deduction primarily benefits those who can afford more expensive houses.

In fact, in terms of encouraging home ownership among those making less money, consider a situation where one family wants to bid on a house, but knows that, as above, the extra $1,000/month in mortgage interest won’t be worth deducting. For another family bidding on this house, the purchase would be their second mortgage, so they will take the full MID, and on the bottom line of the tax form save $3,000 on their taxes every year for the next thirty years. Given that subsidy, they decide to raise their bid by $10,000. Thanks to the mortgage interest deduction, the lower-income family stands that much less of a chance of achieving homeownership.

The price of comparable houses is probably the foremost factor in how home prices are valued. So after this house sold for $10k more than it would have without the MID, expect the neighbors to tick up their asking prices—even in situations where none of the bidders are expected to use the MID. Soon every house will be more expensive than in the world without the MID subsidy, meaning that it will be that much more difficult to buy a house without some sort of subsidy.

There are proposals to solve some of the asymmetry between the two families by making the mortgage interest deduction a credit. There are different ways to put a credit on the tax form, but for now we’ll just assume that it is a separate space from the standard deduction, allowing people to take both. This article (the one I copied the above bar chart from) goes into great detail on many variants of the deduction-to-credit option. In each, the family with $12,700 in mortgage interest payments would first deduct the $12,600 standard deduction, then deduct the full $12,700 as well, not just the sliver past the standard deduction.

The deduction-to-credit trick could be done with any deduction, by the way, so you’ll often find politicians propose to give a tax cut to the poor by shifting something or other from the list of deductions to the list of credits.


Even if you own your house mortgage-free, or you got over the hump and bought with no tax benefits, the price of your most valuable asset is bolstered by the mortgage interest deduction. If the deduction were eliminated, your house price would suffer. [If your plan is to sell your house and buy a more expensive home, it would basically be a wash, but people tend to not be so subtle in their thinking, and there can be complications.]

The National Association of REALTORs, which represents a group of people whose pay is calculated as a percentage of house price, has this official position: “The mortgage interest deduction (MID) is a remarkably effective tool that facilitates homeownership. NAR opposes any changes that would limit or undermine current law.”

So there are people who indirectly benefit from the subsidy, and people who directly benefit from the subsidy. And on the other side, the only people who wouldn’t see an immediate loss from the elimination of this subsidy are renters who for some reason never want to be home owners [let me tell you about my ritzy Velux skylights that leak every time it rains…].

There are two points to take away from this. First, order matters deeply in the design of tax incentives. The one-sentence version of the subsidy (you can deduct mortgage interest from your taxes!) sounds equitable and potentially beneficial to families at the bottom end of homebuying. But because of the exact positioning of the deduction on the tax flowchart, low-income families and those with smaller mortgages get almost no benefit from this subsidy.

Second, regardless of the original motivation, regardless of whether the mortgage interest deduction actually improves homeownership rates despite its complete ineffectiveness among the lower-income people most on the homebuying fence, regardless of whether home ownership is even something the federal government should spend billions of dollars encouraging, the deduction exists and is self-sustaining. The price of every house or condo in the United States takes into account the subsidy on the mortgage virtually every buyer will take out, and it is difficult to eliminate in direct proportion to its upward distortion of prices.

by BK at June 25, 2016 05:41 PM

June 22, 2016


"Report from the 2016 Legislative Data & Transparency Conference" in Demand Progress

Today the House of Representatives’ Committee on House Administration hosted its fifth annual Legislative Data & Transparency Conference in…

by Daniel Schuman at June 22, 2016 05:45 AM

June 20, 2016


When I started writing this post last week, all i got through was the title. “So, one of my best...

When I started writing this post last week, all i got through was the title. 

“So, one of my best friends is dying.” 

By the week’s end, the verbs needed to changed. One of my best friends died of cancer at 35. 

She’s been fighting it for a long time. Too long. First she fought for her mother, who died just a few months before she was diagnosed with some breast cancer of her very own. Ups, downs. Chemo. Remission. Back again. New treatments. Healthy living. Remission. Back again. On and on. She went from regular updates on her health to only telling a few people she was sick again at all, much less stage four and failing. I imagine I’d behave the same way if I’d been dealing with the same awful, worsening thing for my entire young adult life, my entire marriage. 

But then a note from her cousin came in. A laundry list of organs it had spread to. Talk of her pain and opioid dosages. An estimate of life left measured in weeks. A request to come up and say goodbye. I knew from unfortunate experience with my dad that that meant getting my ass to suburban New York needed to happen sooner rather than later. I coordinated with two old friends – people I love but have pretty much only been connected to through her as an adult – and we set off. Two of us coming in from DC, one all the way from Mali. 

We got there after she’d been moved to hospice. After she could speak or open her eyes. After she’d lost more weight than my worst imagination conjured. But while she could still hear and listen and react. Her truly wonderful family was there, coordinating her visitors and her care and displaying more strength than people suffering from that much grief, stress and sheer exhaustion should have been able to. We held her hand, we told old stories. We admitted to her dad about how those tire tracks in the front yard really got there that one weekend in high school. We read aloud from a notebook she and I used to pass back and forth in school, and were gobsmacked by our outrageous level of boy craziness. We took turns – two people holding hands and talking while the other took a break to walk across the room and cry. 

We got mad at ourselves for not being better friends in recent years. We got mad at the world for everything that was happening. We caught up on each other’s lives. We swam in the hotel pool. We tried to stay strong for our girl, for her family. We hugged a lot. We took solo walks away from each other and sobbed. 

We went back the next day before our trains home to say one-on-one final goodbyes. Her condition was sharply declined that day. The things anyone unlucky enough to have seen end stage cancer before can’t forget had set in – no consciousness, lots of swelling, more pain, labored breathing. And sometime around when we and her family had sat down to eat lunch, the family was summoned to come in for her final moments. 

I’m afraid I don’t have a tight ending to this post or a hopeful stopping point. There’s a lot I want to do and to think about. Her life rather than her death and all that. I think I just needed to get this part out, to write it down, so I can move it from the front shelf to the basement of my memories of my friend.

June 20, 2016 06:18 PM


fortress: shed

I am already failing badly at Iron Blogger. Should I hit publish on that post in drafts that I wrote months ago but which might upset my family? Is that valuable self-expression or just narcissism?

Well, we’re going to ignore that question for another week, because it turns out I haven’t introduced you to my shed.

Some of you may not realize this, but when you get close to completing the process of purchasing a house your realtor will prompt you to issue some ridiculous demands to the seller, as if you have encountered an unusually boring genie. Typically your request will be for a novelty appliance the seller secretly regrets purchasing, or maybe some furniture. It’s considered impolite to ask for pets, and requests for children should only be attempted when buying from particularly large families.

Well, Steph and I asked to build a shed. The place came with a parking spot, but we don’t have a car or much desire to haul our bikes up a flight of stairs every day. The building is a duplex, so we had to get the neighbors’ okay to build a hulking bike receptable. They are kind people and, better still, maybe did not quite realize what they were agreeing to.

We built a mighty shed, thanks in large part to help from Charles, Kriston and Ben. And yes, we used a kit. But that was just the beginning.

First, the physical security layer. Some steel pipe, threadlock, wood screws and creative reuse of the “SOLD” sign our realtor repeatedly failed to pick up produced a serviceable indoor bike rack.

bike rack

But obviously my heart lies with the electronics.

led strips and infrared sensor

LED strips are affordable and already have resistors and adhesive backing in place. All you need to do is supply twelve volts. That happens to be the voltage of most automotive and marine electrical systems, and consequently also a lot of battery technology. But more on that in a second.

The white dome zip-tied to the cross bar is a passive infrared motion sensor. For $3, it works surprisingly well. The cable running up from there goes to a photoresistor. The apex of the shed’s roof is made of translucent plastic to provide illumination during the day. The photoresistor and motion sensor ensure that the lighting system only activates when someone is in the shed and it’s dark out.

arduino/solar controller

This gadgetry runs down to an Arduino and associated hardware like a MOSFET, a comparator, a trim pot. The Arduino spends most of its life asleep, consuming as little power as possible. But it wakes up a few times a second to see if there’s any business it needs to attend to.

Above it is the solar charge controller. That’s the gadget that sits between the solar panel and battery and the things you’re powering with both. This is a particularly cheap and crappy controller, but it seems to work fine. It’s connected to a sealed lead acid battery on the floor and, on the roof:

shed roof

This guy. My eBay history says I paid $50 for a 20 watt panel back in 2014. Honestly, it’s hard to find units rated for so little power these days. But this is about enough to keep the battery topped up. The arrangement works well, though on the coldest days of winter I’ve learned I need to take the battery inside to keep it from freezing and suffering permanent damage.

The final ingredient is an underwhelming electronic door lock. It wouldn’t survive an intruder’s boot heel for more than a stomp or two, but it might make enough ear-splitting noise before then to alert us. I have an old fire alarm bell from Community Forklift and an RFID module waiting to be installed. But not every project can be a shed project.

If only it could! But they aren’t all winners. Shed telemetry, in particular, has proven tricky:

temp sensor

The obvious need for real-time shed temperature readings, published to the internet, can no longer be ignored. But doing this without draining the battery turns out to be tricky. I’ve got some new ESP8266 Arduino clones in hand. If shed telemetry proves to be viable, you’ll be among the first to hear about it.

by Tom at June 20, 2016 02:30 AM

June 19, 2016



Hear me out on this idea guys. I think it will make me one billion, or one, dollar.

I've online dated on and off for the past few years. As many of you know, it can be a tough process, though also rewarding (I've had two relationships come out of OKCupid dates with a couple of good guys). The hard parts? The constant messaging, sifting through profiles, toughness of generally putting yourself out there. The hardest part? Naturally, the actual first date. It can be nerve-wracking meeting a total stranger who has the potential to either (on a spectrum of possibilities) ruin your night or become the love of your life.

Part of the complication of this whole process that goes a little bit unacknowledged is finding a good enough first date spot to meet a complete stranger from the internet who maybe could really suck, but you also sort of want to impress, and if he's not a psycho and you want to have a conversation, a place where you can do so in a relaxing but charming setting, preferably with good drinks and also easy access to the front door and the safety of your couch and Hulu if the whole thing turns out terribly. (I also say this from the perspective of a straight white women who goes to a certain type of bars. It is quite possible that this is not an issue for anybody else. Maybe even other straight white women. As with many things, it is totally feasible this entire anxiety-inducing issue lives only in my head. If that is the case, excuse me. I will just continue to go to Bar Pilar or All Souls for first dates forever.)

The other hard part of first online dates is that it is TOTALLY OBVIOUS TO EVERYBODY AROUND YOU THAT YOU ARE ON A BLIND ONLINE DATE. I've witnessed countless of them. You can just tell - the small talk, the nervousness, either the total incompatibility or the increasing amount of flirtation that takes place (I'm always rooting for you guys, btw). I've had numerous bartenders tell me stories about first dates they've silently observed and judged. Same with friends. I've told those stories. The Washington Post recently published a whole piece about how online dating is observed in the city and economic impact it is possibly having on bars and restaurants. (The short version being places claim it impacts them negatively because people only nurse a beer, which, in my experience, could be the case ANY time you go to a bar. Oh I only ordered one drink no matter whom I'm with? That's sort of how it goes. In fact if I'm on an online date, yes I will only have one drink if it's going badly, but if it's going well, or REALLY BADLY, I will have a lot of drinks. If it's going REALLY well I will have a lot of drinks and also maybe food. And also, these are occasions on which I would otherwise just be sitting my butt on my couch watching Game of Thrones and not patronizing your establishment, so I really actually can't see how the rise of online dating especially in a city like DC isn't actually a boon to bar tabs. But whatever.)

Another difficulty though, regardless of how the date goes, is cost. With friends or a significant other, you're often more likely to be hanging out at a person's house, making dinner or having a drink on your balcony or whatever. But that's not possible with first dates. I'm sure there's been some economic studies about the cost of online dating, but it can be large. If you're going on a couple of online dates a week, that's anywhere from $20-$100 bucks a week I probably wouldn't otherwise be spending.

So I'm going to solve this problem for everybody (and by everybody I mean me). And the answer is: ENCOUNTERS. (You have to say it breathlessly and intently like it is always in bold and italics at the same time.)

Encounters is what I've decided to call the first-ever (that I know of) bar dedicated to being a spot solely for online or blind dates. I have put probably 10 minutes of thought into this enterprise, so you know it will work. These are the things that Encounters will offer:

-A charming first date spot where you are EXPECTED to be on a first date so nobody there will be judging or observing you, because you are one of many and that's sort of the whole point of the place.
-The ability to order affordable cocktails OR tea or coffee, because sometimes, you just don't want to get drunk every time you have to go out on an online date.
-Place cards with a set of encouraging questions you can use to eke out conversation out of your first date. Would you rather fight one horse-sized duck or 20 duck-sized horses, or what have you. It will also include place cards that have tips on how to be a good first date (straight men, one tip for you: make sure you are asking thoughtful questions of your date and not just speaking a monolog for an hour. This happens on 80% of my dates.)
-A compatible app so that if and when your date ghosts you (happens to everybody), you could potentially be automatically matched up with somebody else whose date has also ghosted or has left, because things went south super quick. Your entire night shall not be wasted! Two for one!
-A compatible app so that if your first date ghosts, you can be matched instead with a potential platonic friend of the gender of your choosing, so you can bitch endlessly to each other about the pain that is online dating (a conversation that your coupled friends only want to have every so often). And then you get to make new friends as an adult! (A whole other issue I could write a blog post about.)

Yes, basically this bar concept is sort of like if a singles mixer came to life and birthed a bar, but I think there's some merit to it. There's already enough pressure out there on an online date to connect with a person. A location like ENCOUNTERS takes off the additional pressure of 1. picking a spot 2. feeling judged by other observers at your spot 3. The possibility of meeting other people to connect with or be friends with who understand what online dating is like 4. errr, that's about it.

Things I haven't figured out how to deal with yet:
-How it makes money, or whatever
-How to prevent creepers who are just there to come on their own and stalk vulnerable first-daters
-How I can get it sponsored by OKC or Tinder
-Where my first billion dollars of venture capital funding will come from

What do you think, online daters? What is your advice for good online first dates? (I had one recently where the guy suggested we meet up at a cute coffee shop after work, which was great, because it was cheap and cozy and not crowded, so maybe the actual answer to this whole conundrum is just "have more first dates at coffee shops.") Regardless, as I continue my online dating journey, I'd be interested in your takes.

by catherine at June 19, 2016 11:04 PM


Huh? Or, A Grep Too Far

I don’t like Unix. I’ve learned Unix the same way that I learned the layout of the dark living room at night when I was a child, through sharp, sudden and painful lessons about how the World is and in absolute fear that I’ll fuck up Something so badly that somebody else will notice. Unix is not for me and I, I am not for it. But, there aren’t any other practical options besides Unix, so here I am reading man pages for a living.

strace is the lone bridge that transports me from living in a cargo cult fear of Unix, and operating systems more generally, across to a passive aggressive tolerance of the way computers work. Julia Evan’s passion for strace and all the things it lets her see about computers work was really amazing to see and I thank her for all her shared and public excitement. She definitely made operating systems more approachable and opened doors for folks. I still don’t really like Unix but at least now I have the tools to more accurately pinpoint my criticisms.

The main thing I don’t like about Unix is the command line tools. The interfaces to interact with the command line tools simply aren’t consistent. There’s no rule to learn that will help with remembering all the flags and options, no mnemonic to help you remember how to untar something. I can only remember so many things and I’ll be damned if the weird options for some program somebody wrote two decades ago takes priority in my memory over, well, literally anything else frankly. Moreover, the tools communicate via text only and have no regard for the structure of data coming out.

Using strace has drilled home this twined disdain for Unix I have. strace lists the system calls a program makes throughout the program’s execution. It takes a bewildering number of command line flags and outputs the representation of the syscalls to stdout as strings. As I’ve grown to depend on strace more in my day to day programming, the frustration of a half dozen flags to remember and stringly typed output has gnawed at me. huh is my attempt at allaying these frustrations.  I’m tired of grepping through the output of strace and having to craft the perfect string to learn what I want to know. huh runs a program using strace with all the Right Flags, parses the strace output and stuffs all of that newly structured information into Postgres. From there it drops into a psql repl and lets you mess around with the data. Here’s an example:

vagrant@vagrant:/vagrant$  ./huh ls  dev-resources  doc  huh  huh.sql    LICENSE  project.clj  resources  src  target  test  Vagrantfile
psql (9.5.3)
Type "help" for help.

huh=# select count(*) from huh_1466374554;
(1 row)
huh=# \x
Expanded display is on.
huh=# select * from huh_1466374554 limit 1;
-[ RECORD 1 ]-+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
pid           | 8622
time          | 2016-06-19 22:15:54.053177
instruction   | 00007f627c863cf7
command       | execve
args          | ["\/bin\/ls",["ls"],["XDG_SESSION_ID=4","SHELL=\/bin\/bash","TERM=xterm-256color","SSH_CLIENT= 54529 22","SSH_TTY=\/dev\/pts\/1","USER=vagrant","LS_COLORS=rs=0:di=01;34:ln=01;36...","PATH=\/home\/vagrant\/bin:\/usr\/loca...","MAIL=\/var\/mail\/vagrant","PWD=\/vagrant","LANG=en_US","HOME=\/home\/vagrant","SHLVL=2","LANGUAGE=en_US:","LOGNAME=vagrant","SSH_CONNECTION= 54529 10...","LESSOPEN=| \/usr\/bin\/lesspipe %s","XDG_RUNTIME_DIR=\/run\/user\/900","LESSCLOSE=\/usr\/bin\/lesspipe %s %...","_=\/usr\/bin\/strace"]]
return        | "0"
return_msg    |
total_runtime | 00:00:00.000071

huh=# select distinct pid from huh_1466374554;
-[ RECORD 1 ]
pid | 8622

huh=# select command, count(*) from huh_1466374554 group by 1;
     command     | count
 open            |     9
 exited          |     1
 write           |     1
 exit_group      |     1
 brk             |     3
 access          |     7
 mprotect        |    12
 rt_sigprocmask  |     1
 rt_sigaction    |     2
 arch_prctl      |     1
 set_tid_address |     1
 getrlimit       |     1
 mmap            |    19
 fstat           |    10
 read            |     7
 munmap          |     1
 set_robust_list |     1
 close           |    11
 ioctl           |     2
 getdents        |     2
 execve          |     1
 statfs          |     2
(22 rows)

It’s built on top of instaparse and clojure, mostly because the strace output can be pretty weird. No guarantee that it covers everything that comes out of strace or that it won’t fuck up your computer if you try to use it. I’ve been developing and using huh inside of a VM via vagrant.

That’s all for now, still hating on Unix, working on ways to mitigate the bad parts.

by Zack Maril at June 19, 2016 10:41 PM


Go Debian!

As some of the world knows full well by now, I've been noodling with Go for a few years, working through its pros, its cons, and thinking a lot about how humans use code to express thoughts and ideas. Go's got a lot of neat use cases, suited to particular problems, and used in the right place, you can see some clear massive wins.

Some of the things Go is great at: Writing a server. Dealing with asynchronous communication. Backend and front-end in the same binary. Fast and memory safe. Things Go is bad at: Having to rebuild everything for a CVE. Having if `err != nil` everywhere. "Better than C" being the excuse for bad semantics. No generics, cgo (enough said)

I've started writing Debian tooling in Go, because it's a pretty natural fit. Go's fairly tight, and overhead shouldn't be taken up by your operating system. After a while, I wound up hitting the usual blockers, and started to build up abstractions. They became pretty darn useful, so, this blog post is announcing (a still incomplete, year old and perhaps API changing) Debian package for Go. The Go importable name is This contains a lot of utilities for dealing with Debian packages, and will become an edited down "toolbelt" for working with or on Debian packages.

Module Overview

Currently, the package contains 4 major sub packages. They're a changelog parser, a control file parser, deb file format parser, dependency parser and a version parser. Together, these are a set of powerful building blocks which can be used together to create higher order systems with reliable understandings of the world.


The first (and perhaps most incomplete and least tested) is a changelog file parser.. This provides the programmer with the ability to pull out the suite being targeted in the changelog, when each upload was, and the version for each. For example, let's look at how we can pull when all the uploads of Docker to sid took place:

func main() {
    resp, err := http.Get("")
    if err != nil {
    allEntries, err := changelog.Parse(resp.Body)
    if err != nil {
    for _, entry := range allEntries {
        fmt.Printf("Version %s was uploaded on %s\n", entry.Version, entry.When)

The output of which looks like:

Version 1.8.3~ds1-2 was uploaded on 2015-11-04 00:09:02 -0800 -0800
Version 1.8.3~ds1-1 was uploaded on 2015-10-29 19:40:51 -0700 -0700
Version 1.8.2~ds1-2 was uploaded on 2015-10-29 07:23:10 -0700 -0700
Version 1.8.2~ds1-1 was uploaded on 2015-10-28 14:21:00 -0700 -0700
Version 1.7.1~dfsg1-1 was uploaded on 2015-08-26 10:13:48 -0700 -0700
Version 1.6.2~dfsg1-2 was uploaded on 2015-07-01 07:45:19 -0600 -0600
Version 1.6.2~dfsg1-1 was uploaded on 2015-05-21 00:47:43 -0600 -0600
Version 1.6.1+dfsg1-2 was uploaded on 2015-05-10 13:02:54 -0400 EDT
Version 1.6.1+dfsg1-1 was uploaded on 2015-05-08 17:57:10 -0600 -0600
Version 1.6.0+dfsg1-1 was uploaded on 2015-05-05 15:10:49 -0600 -0600
Version 1.6.0+dfsg1-1~exp1 was uploaded on 2015-04-16 18:00:21 -0600 -0600
Version 1.6.0~rc7~dfsg1-1~exp1 was uploaded on 2015-04-15 19:35:46 -0600 -0600
Version 1.6.0~rc4~dfsg1-1 was uploaded on 2015-04-06 17:11:33 -0600 -0600
Version 1.5.0~dfsg1-1 was uploaded on 2015-03-10 22:58:49 -0600 -0600
Version 1.3.3~dfsg1-2 was uploaded on 2015-01-03 00:11:47 -0700 -0700
Version 1.3.3~dfsg1-1 was uploaded on 2014-12-18 21:54:12 -0700 -0700
Version 1.3.2~dfsg1-1 was uploaded on 2014-11-24 19:14:28 -0500 EST
Version 1.3.1~dfsg1-2 was uploaded on 2014-11-07 13:11:34 -0700 -0700
Version 1.3.1~dfsg1-1 was uploaded on 2014-11-03 08:26:29 -0700 -0700
Version 1.3.0~dfsg1-1 was uploaded on 2014-10-17 00:56:07 -0600 -0600
Version 1.2.0~dfsg1-2 was uploaded on 2014-10-09 00:08:11 +0000 +0000
Version 1.2.0~dfsg1-1 was uploaded on 2014-09-13 11:43:17 -0600 -0600
Version 1.0.0~dfsg1-1 was uploaded on 2014-06-13 21:04:53 -0400 EDT
Version 0.11.1~dfsg1-1 was uploaded on 2014-05-09 17:30:45 -0400 EDT
Version 0.9.1~dfsg1-2 was uploaded on 2014-04-08 23:19:08 -0400 EDT
Version 0.9.1~dfsg1-1 was uploaded on 2014-04-03 21:38:30 -0400 EDT
Version 0.9.0+dfsg1-1 was uploaded on 2014-03-11 22:24:31 -0400 EDT
Version 0.8.1+dfsg1-1 was uploaded on 2014-02-25 20:56:31 -0500 EST
Version 0.8.0+dfsg1-2 was uploaded on 2014-02-15 17:51:58 -0500 EST
Version 0.8.0+dfsg1-1 was uploaded on 2014-02-10 20:41:10 -0500 EST
Version 0.7.6+dfsg1-1 was uploaded on 2014-01-22 22:50:47 -0500 EST
Version 0.7.1+dfsg1-1 was uploaded on 2014-01-15 20:22:34 -0500 EST
Version 0.6.7+dfsg1-3 was uploaded on 2014-01-09 20:10:20 -0500 EST
Version 0.6.7+dfsg1-2 was uploaded on 2014-01-08 19:14:02 -0500 EST
Version 0.6.7+dfsg1-1 was uploaded on 2014-01-07 21:06:10 -0500 EST


Next is one of the most complex, and one of the oldest parts of go-debian, which is the control file parser (otherwise sometimes known as deb822). This module was inspired by the way that the json module works in Go, allowing for files to be defined in code with a struct. This tends to be a bit more declarative, but also winds up putting logic into struct tags, which can be a nasty anti-pattern if used too much.

The first primitive in this module is the concept of a Paragraph, a struct containing two values, the order of keys seen, and a map of string to string. All higher order functions dealing with control files will go through this type, which is a helpful interchange format to be aware of. All parsing of meaning from the Control file happens when the Paragraph is unpacked into a struct using reflection.

The idea behind this strategy that you define your struct, and let the Control parser handle unpacking the data from the IO into your container, letting you maintain type safety, since you never have to read and cast, the conversion will handle this, and return an Unmarshaling error in the event of failure.

I'm starting to think parsing and defining the control structs are two different tasks and should be split apart -- or the common structs ought to be removed entirely. More on this later.

Additionally, Structs that define an anonymous member of control.Paragraph will have the raw Paragraph struct of the underlying file, allowing the programmer to handle dynamic tags (such as X-Foo), or at least, letting them survive the round-trip through go.

The default decoder contains an argument, the ability to verify the input control file using an OpenPGP keyring, which is exposed to the programmer through the (*Decoder).Signer() function. If the passed argument is nil, it will not check the input file signature (at all!), and if it has been passed, any signed data must be found or an error will fall out of the NewDecoder call. On the way out, the opposite happens, where the struct is introspected, turned into a control.Paragraph, and then written out to the io.Writer.

Here's a quick (and VERY dirty) example showing the basics of reading and writing Debian Control files with go-debian.

package main

import (


type AllowedPackage struct {
    Package     string
    Fingerprint string

func (a *AllowedPackage) UnmarshalControl(in string) error {
    in = strings.TrimSpace(in)
    chunks := strings.SplitN(in, " ", 2)
    if len(chunks) != 2 {
        return fmt.Errorf("Syntax sucks: '%s'", in)
    a.Package = chunks[0]
    a.Fingerprint = chunks[1][1 : len(chunks[1])-1]

    return nil

type DMUA struct {
    Fingerprint     string
    Uid             string
    AllowedPackages []AllowedPackage `control:"Allow" delim:","`

func main() {
    resp, err := http.Get("")
    if err != nil {

    decoder, err := control.NewDecoder(resp.Body, nil)
    if err != nil {

    for {
        dmua := DMUA{}
        if err := decoder.Decode(&dmua); err != nil {
            if err == io.EOF {
        fmt.Printf("The DM %s is allowed to upload:\n", dmua.Uid)
        for _, allowedPackage := range dmua.AllowedPackages {
            fmt.Printf("   %s [granted by %s]\n", allowedPackage.Package, allowedPackage.Fingerprint)

Output (truncated!) looks a bit like:

The DM Allison Randal <> is allowed to upload:
   parrot [granted by A4F455C3414B10563FCC9244AFA51BD6CDE573CB]
The DM Benjamin Barenblat <> is allowed to upload:
   boogie [granted by 3224C4469D7DF8F3D6F41A02BBC756DDBE595F6B]
   dafny [granted by 3224C4469D7DF8F3D6F41A02BBC756DDBE595F6B]
   transmission-remote-gtk [granted by 3224C4469D7DF8F3D6F41A02BBC756DDBE595F6B]
   urweb [granted by 3224C4469D7DF8F3D6F41A02BBC756DDBE595F6B]
The DM أحمد المحمودي <> is allowed to upload:
   covered [granted by 41352A3B4726ACC590940097F0A98A4C4CD6E3D2]
   dico [granted by 6ADD5093AC6D1072C9129000B1CCD97290267086]
   drawtiming [granted by 41352A3B4726ACC590940097F0A98A4C4CD6E3D2]
   fonts-hosny-amiri [granted by BD838A2BAAF9E3408BD9646833BE1A0A8C2ED8FF]


Next up, we've got the deb module. This contains code to handle reading Debian 2.0 .deb files. It contains a wrapper that will parse the control member, and provide the data member through the archive/tar interface.

Here's an example of how to read a .deb file, access some metadata, and iterate over the tar archive, and print the filenames of each of the entries.

func main() {
    path := "/tmp/fluxbox_1.3.5-2+b1_amd64.deb"
    fd, err := os.Open(path)
    if err != nil {
    defer fd.Close()

    debFile, err := deb.Load(fd, path)
    if err != nil {

    version := debFile.Control.Version
        "Epoch: %d, Version: %s, Revision: %s\n",
        version.Epoch, version.Version, version.Revision,

    for {
        hdr, err := debFile.Data.Next()
        if err == io.EOF {
        if err != nil {
        fmt.Printf("  -> %s\n", hdr.Name)

Boringly, the output looks like:

Epoch: 0, Version: 1.3.5, Revision: 2+b1
  -> ./
  -> ./etc/
  -> ./etc/menu-methods/
  -> ./etc/menu-methods/fluxbox
  -> ./etc/X11/
  -> ./etc/X11/fluxbox/
  -> ./etc/X11/fluxbox/
  -> ./etc/X11/fluxbox/
  -> ./etc/X11/fluxbox/keys
  -> ./etc/X11/fluxbox/init
  -> ./etc/X11/fluxbox/system.fluxbox-menu
  -> ./etc/X11/fluxbox/overlay
  -> ./etc/X11/fluxbox/apps
  -> ./usr/
  -> ./usr/share/
  -> ./usr/share/man/
  -> ./usr/share/man/man5/
  -> ./usr/share/man/man5/fluxbox-style.5.gz
  -> ./usr/share/man/man5/fluxbox-menu.5.gz
  -> ./usr/share/man/man5/fluxbox-apps.5.gz
  -> ./usr/share/man/man5/fluxbox-keys.5.gz
  -> ./usr/share/man/man1/
  -> ./usr/share/man/man1/startfluxbox.1.gz


The dependency package provides an interface to parse and compute dependencies. This package is a bit odd in that, well, there's no other library that does this. The issue is that there are actually two different parsers that compute our Dependency lines, one in Perl (as part of dpkg-dev) and another in C (in dpkg).

I have yet to track it down, but it's shockingly likely that `apt` has another in `C++`, and maybe another in `aptitude`. I don't know this for a fact, so I'll assume nothing

To date, this has resulted in me filing three different bugs. I also found a broken package in the archive, which actually resulted in another bug being (totally accidentally) already fixed. I hope to continue to run the archive through my parser in hopes of finding more bugs! This package is a bit complex, but it basically just returns what amounts to be an AST for our Dependency lines. I'm positive there are bugs, so file them!

func main() {
    dep, err := dependency.Parse("foo | bar, baz, foobar [amd64] | bazfoo [!sparc], fnord:armhf [gnu-linux-sparc]")
    if err != nil {

    anySparc, err := dependency.ParseArch("sparc")
    if err != nil {

    for _, possi := range dep.GetPossibilities(*anySparc) {
        fmt.Printf("%s (%s)\n", possi.Name, possi.Arch)

Gives the output:

foo (<nil>)
baz (<nil>)
fnord (armhf)


Right off the bat, I'd like to thank Michael Stapelberg for letting me graft this out of dcs and into the go-debian package. This was nearly entirely his work (with a one or two line function I added later), and was amazingly helpful to have. Thank you!

This module implements Debian version comparisons and parsing, allowing for sorting in lists, checking to see if it's native or not, and letting the programmer to implement smart(er!) logic based on upstream (or Debian) version numbers.

This module is extremely easy to use and very straightforward, and not worth writing an example for.

Final thoughts

This is more of a "Yeah, OK, this has been useful enough to me at this point that I'm going to support this" rather than a "It's stable!" or even "It's alive!" post. Hopefully folks can report bugs and help iterate on this module until we have some really clean building blocks to build solid higher level systems on top of. Being able to have multiple libraries interoperate by relying on go-debian will be a massive ease. I'm in need of more documentation, and to finalize some parts of the older sub package APIs, but I'm hoping to be at a "1.0" real soon now.

by Paul Tagliamonte at June 19, 2016 04:30 PM


Stuffed Squash Blossoms

Often at the Farmer’s Market, I come across foreign items that I have no idea what to do with. With the arrival of summer, comes the arrival of squash blossoms – an item that epiotomizes the feeling, “What could I use that for?”.

When I think of squash blossoms I think of stuffing and frying them. I’ve heard that the petals tend to break easily. And that the stuffing gets everywhere. And that in hot oil things tend to go south quickly.

But despite all of the signs pointing me away from purchasing a box of squash blossoms, that’s exactly what I did. After some recipe research and consultation, I whipped up a filling and brought a pot of vegetable oil up to 350 degrees.

My filling included ricotta, fresh chiffonaded basil, an egg, fresh minced garlic, and salt and pepper. I filled a plastic bag with the ricotta filling to pipe into the squash blossoms.

stuffed squash blossoms before frying

After that was prepared, the fun part began. Each of the squash blossoms was tightly folded together and required very soft handling to pull them apart. [The closest feeling that I could relate this too would be the feeling of stretching old nylons.] If you’re in the mood to do something incredibly fiddly in the kitchen, this is a great option.

For the frying batter, I opted for a one part seltzer, one part all-purpose flour batter. After dredging a squash blossom (very gently) in the batter, I placed them into the hot oil to fry under the batter was cooked through.

This recipe turned out amazing and goes on the list of best things I’ve ever made. I highly recommend trying this out yourself if you’re looking for something tedious and entertaining. Also…they’re delicious with some marinara.

fried stuffed squash blossoms

June 19, 2016 01:58 AM


DC's Voter Rolls are on the Internet

Earlier this week, the Washington Post ran an article with a headline destined to scare the crap out of DC’s voters: “D.C. makes it shockingly easy to snoop on your fellow voters.” But behind this hyperbole was a simple act; the DC Board of Elections posted the voter roll on the internet for public inspection. For those who might not know any better, this must have been quite a surprise. But for close observers of DC’s elections, this was, well… a nothingburger. Here’s why.

In 2015, with little fanfare, the District passed the Primary Date Alteration Amendment Act of 2014, which required the Board of Elections to “publish and display on its website…a searchable copy of the list of qualified electors registered to vote as of the date the voter registry closed.” This law is what scandalized the Post.

The legislation’s concept of public display of the voter roll was hardly novel, since the law had already long required the Board to “cause a District-wide alphabetical list of qualified electors registered to vote in the District to be placed in the main public library.” So, ok, you’d have to make your way to Penn Quarter to get the voter roll, but there it was.

In practice, this was not the only way to access this data. In fact, the most common way to access the voter roll was to spend $2, fill out this form:, and get the Microsoft Access Database. If you wonder whether that would actually work, here’s Aaron Schumacher’s write-up of getting the data online.

And, if you think that this was abnormal, you must never receive campaign mailers or have campaign volunteers know your name. Because the reality is that this data has long been in the hands of political operatives in the District. I can say from personal experience that I had the complete set of voter data in 2006.

Because I’m only a few minutes away from the start of Game of Thrones, I won’t dwell too long on all of the policy implications of posting this information online. I, of course, recognize the arguments about privacy implications.

But those who argue that this information shouldn’t be available electronically misunderstand the reality of the situation: it’s been accessible to political parties and anyone with a Thomas Jefferson bill for at least a decade. And to the extent that voter roll data has been widely accessible anyway, it seems to me that Aaron Schumacher hit it on the head:

I wonder if [the Board of Elections] would accommodate daily requests for every ward’s data. It seems like it would be much less annoying to just put the data online automatically; it isn’t even very heavy…. Any option that doesn’t require making a physical visit to their office during their fairly narrow business hours would be an improvement. Any format that doesn’t require purchasing proprietary software would be an improvement.

Furthermore, as Aaron notes, perhaps those who care about civic engagement might use this data for good: it “could be used for planning voter registration drives or reminding people to vote, for example. It could also be combined with other data sets to get a more comprehensive understanding of DC, and probably lots of other things I haven’t thought of.” Rather than be afraid, perhaps DC’s civic tech community should find a way to use this data to make DC more humane, to use this data to create more connections among Washingtonians who exercise their most basic, fundamental right to vote.

The alternative is, if we’re being totally honest, just the status quo.

June 19, 2016 12:00 AM

June 18, 2016


Why failing startups that do stupid things get bought for millions

Year zero. Your hip new startup—it’s like Uber, but for trees—just got off the ground, and lost a million dollars. On the plus side, it had no taxes. Year one: it took off, and made three million bucks. Your company is allowed to carry over the losses from the prior year, so that the reported taxable profits in the second year are only two million. This story of a company that loses in its first years and then starts gaining is a common one, but any year that a company records a loss means that next year’s taxes will be a little lighter.

Bolstered by your success, wealthy investor Eva Peronosi gives you $3 million to develop your new startup. It’s like, but with more square dancers. Year zero: lose a million dollars. Fine, but year one: lose another million. Year two: lose another million dollars, and go out of business. You call a friend at Multinational Business Ventures, and ask MBV to buy your company, which is like but with more square dancers.  Naturally, MBV offers to pay a million dollars for your startup.

After MBV buys your company, your $3m loss carries over to the now-parent company, and they can use it to lower their business expenses. If their balance sheet showed $30 million in profits after the purchase, then your $3m loss turns that into $27 million in taxable income. With a corporate tax rate of 35%, a $3m reduction in MBV’s taxable income equals a $1.05m reduction in taxes. Taking into account the million it just paid, and MBV saved $50,000 by purchasing a worthless asset.

To whom the million dollars MBV paid depends on contracts, existing debts, and other such details we could only guess at. But Eva got where she was by making sure that payments like these go back to her. With a corporate tax rate of about a third, Eva can always gets back a third of her losses by selling the company and its carried-over losses. The papers said Eva bet $3m on your project, but if the existence of a $3m loss is itself worth $1m, then she really only put $2 million on the line (which is still more than I’d put on a gamble…).  And as per the title of this post, when you read about a company that got pounded in the market getting bought anyway, this carryover of losses has to be at least part of the buyout story.

Is there a conservation of tax liability, like the conservation of energy, so that when one body subsumes another, it absorbs all its liabilities? Is a corporation a “going concern” that has an annual tax check-in, or can we treat it as a new corporation every year?  That MBV bought a worthless company for big bucks is certainly odd, a distortion of market behavior caused by the tax system, but it is the product of not-insensible answers to these questions about the meaning of a corporation.

by BK at June 18, 2016 07:22 PM

June 14, 2016


Just want to make sure – you all know the stock trick, right? It goes like this: keep a...

Just want to make sure – you all know the stock trick, right? It goes like this: keep a ziplock bag in your freezer. Throw all the garlic ends, onion heads, mushroom stems, nearly wobbly carrots, green tops of root veggies, collard spines, etc. you have in there from cooking as you go. Next time you need to make stock, boom. You’re all set. Just wanted to make sure we were all clear on that.

June 14, 2016 02:15 AM

June 13, 2016


Why people tip in US restaurants

Here, I’ll discuss a tax incentive by the federal government to encourage bosses to have employees paid via tips instead of a typical wage.

The waitress is the only person who knows how much she got tipped. [I flipped a coin to write this example, and she came up female]. And, unless she’s in the narrow band where EIC (earned income credit) kicks in, she pays out a tax on those tips and so wants to understate her tip income.

Typically, employers pay payroll taxes on income, meaning social security tax (6.2%) and medicare tax (1.45%). In such a case, her boss would be very OK with her under-reporting her tips.

To give a more precise example, say that the boss pays the waitress the minimum wage, but she takes home $20/hour in tips on top of that. She works a typical full time of 2,000 hours/year, so she takes home $40,000 in tips. Payroll taxes, totalling 7.65% of $40k, would be $3,060. That’s a $3,000 incentive for the boss to write down a small number on the waitress’s W-2.

For the IRS, the big problem is the waitress. Reporting herself at minimum wage, she gets a refund of $689 (thanks to EIC); reporting all income, she pays $6,906; for a total swing of $7,595. So the IRS’s goal in this game is to get the waitress to pay taxes, in opposition to the goal of both the waitress and the boss. If you expect that the waitress is making less money than the business owner, then this is a case where the IRS does better going after the poorer person.

The official record of tips is not what the waitress says she has in her apron at the end of the day, but the W-2 that the boss prepares. So the IRS offers the boss a credit on payroll taxes. Whatever tip income the waitress reports (past minimum wage), the boss pays zero payroll taxes.

[Formally, he pays the payroll taxes, but then reclaims the taxes as a credit when he fills in his annual taxes. I’ll get to how this can create some exceptional cases later, but in the typical case, this is a full refund of all payroll taxes associated with above-minimum tips.]

Form 8846: Credit for employer social security and medicare taxes paid on certain employee tips

I asked myself, what’s the most exciting image I could put on this blog about restaurants and waiters?

With this arrangement, the boss is a neutral party, and has no reason to tell the waitress to hide her income or lie about it himself when he prepares her W-2. There may also be incentives in how the restaurant operates to get her to be forthright about her tips.

Next year, the owner reads this enthralling series of articles about no-tip  restaurants, and decides that he’s going to do it: instead of expecting customers to calculate 15 or 18 or whatever percent, he’s just going to add 18% to the price listed on the menu. Customers eat, pay what the menu told them to pay, and leave. The waitress gets paid $25 for an hour of work, and if the business does badly or well it’s the boss’s risk, not hers. When it was a tip-oriented restaurant, the waitress always knew that if she was an inexcusable slacker and ignored tables, the boss would fire her, and that doesn’t change once she’ll be getting a fixed wage like everybody else with a job. Say goodbye to customers who think 15% of $50 is $5, explaining to Europeans that they shouldn’t leave the tip line blank, all the weirdness about splitting tips between the waitress and the kitchen, all the creepiness of customers who think they own the waitress and can be jerks because they’re leaving a $5 tip, it’s all delightfully out the window.

So he calls his accountant and tells him that everything is going to be a lot more simple from here on in. And his accountant points out that simplifying the experience for his customers and employees is going to cost $3,000 per waiter per year in un-refunded payroll taxes. Our imaginary restauarant has five waiters, so the owner has to decide whether his experiment is worth an up-front loss of $15,000/year. Knowing the margins of the restaurant business, and knowing the limits of how many expenses can be passed on to somebody buying a ten dollar burger, that ends the story right there.

The tip credit is a clear incentive for a custom that a lot of people would be fine seeing gone. If tipping were not a concept today, it’s hard to imagine a restaurant pitching customers that they’ll have a better time because they can pay less for food but must leave a variable wage payment on the table. The credit is an incentive for compliance, where in most parts of the tax code the only incentive for compliance is that you won’t get arrested. As we’re drifting toward an economy where every payment involves electronic access to an account, it seems that the problem of under-reporting of tips is on its way to obsolete. But the tip credit is a nice example of the sort of tax that divides the population into restauranteurs who benefit from the tax and everybody else who has no idea that the tax exists, so it is unlikely to go anywhere any time soon.

by BK at June 13, 2016 11:38 PM


"House Passes Historic FOIA Bill, Obama Expected to Sign" in Demand Progress

Today the House of Representatives passed the FOIA Improvement Act of 2016, which passed the Senate in March; President Obama indicated…

by Daniel Schuman at June 13, 2016 09:18 PM


June 12, 2016


Feeling like a grown-up

I wrote a little piece for the home/design section of Refinery29 this week about things you can do to make your home feel like that of an adult. Obviously, those things are subjective, but it's a few pieces of advice of how to clean up your place so it doesn't feel like an eternal frat-monster has taken over your home well into your 30s.

In the research of the pieces, as I often do, I solicited thoughts about what my friends thought should go into the home of an "adult." Then, after reading the thoughtful comments on those posts, I decided to ask a more personal question: "When did you truly feel like you were an adult?"

As you probably know by know (and if you're younger and you're reading this and you don't, you will eventually): you almost never "feel" like an adult. The one thing I've come to accept about my life is I will constantly be winging it. I'm in my mid-30s, and nothing as truly yet made feel like a grown-up -- not buying my own place, not refinancing it, not being good and respected at my job, not buying a couch. I still eternally feel like I'm 23 and figuring things out as I go along. Which is fine. I'd rather know life is that way than feeling like I'm missing out on some secret manual that my parents forgot to hand down to me upon college graduation.

Anyways, my friends on Facebook had some really interesting thoughts on the moments when they did feel like an adult, so I'm sharing them here, anonymously and with their permission. When did you first feel "grown up"? Have you yet at all? 

(PS: my favorite answer came from my cousin, sorry to out her, but it's the one I agree with most: Realizing your parents were making it up as they went along.

Not that they are stupid, or don't have more experience, just that there is no secret rule book or script or dictates for how to act as an "adult".

The best analogy I can think of is when you become adept at a skill, and look back and think about how that skill was indistinguishable from magic before you knew how it worked. But there is no magic. Just you, knowing how to do stuff.)

  • The first time I made an appointment with a general practitioner for no reason other than it's a good idea to get a checkup.
  • This may sound odd, but it was when I realized I could order orange juice AND coffee at breakfast if I wanted because I was paying. My dad used to be super stingy about that, griping about how much beverages were marked up at restaurants. He didn't get the point of going out for a meal, I guess.
  • For me it might have been spending significant money on a nice mattress that actually went a long way toward improving back pain. :)
  • Talking to the guy at Ace hardware about which is the best filter for our HVAC unit.
  • Sorry to bring this wayyyy down to depression land, but it was agreeing to not use life support for my father after his heart attack. I mean, FUCK. That was the single most adult moment of my life (and the days that followed), even more so than marriage and birth.
  • When I became a mother.
  • When I hit "pay full balance" on a credit card payment for the first time.
  • Getting jackets altered.
  • After I drop 2 kids off at 2 separate care places and drive to work alone in my car with two car seats I realize...good lord, I am an adult.

by catherine at June 12, 2016 10:12 PM

June 11, 2016


Grilled Avocado

A few weeks ago, my little sister visited me for a weekend. Entertaining a less than 21 year-old is a challenge in DC; it stretches ones creativity. What this weekend did include, was a tour of many of my favorite food purveyors in DC: Duke’s Grocery for a Proper Burger, Indigo DC for the best butter chicken and roti, and Daikaya’s Ramen Bar.

If you have ever dined at Daikaya, particularly during a traditional meal-time, you are familiar with their no reservation policy and long wait times. Daikaya, however, has no place to sit in their vestibule. With an hour wait and a rainy day outside, I found the perfect opportunity to try Daikaya Izakaya, the restaurant/bar upstairs from the Daikaya Ramen Bar.

Pro Tip: If your table is ready at the Ramen Bar and you’re still enjoying food/beverage from Izakaya, ask your server to relocate said food/beverage to your table downstairs. Not only will you have a delicious cocktail/sake/beer/appetizer to accompany your giant bowl of ramen, but your neighboring diners will look on with envy at your off-menu items.

Once we found our spot at the bar (yes, Izakaya was somehow okay with a child sitting at their bar), we got to ordering: chicken thighs, corn, and grilled avocado. When the grilled avocado was delivered to our table, it came with instructions. There were multiple components on the plate, including a grilled half avocado with the pit well filled with ponzu. The server instructed us to incorporate the components served alongside the avocado (sea salt, wasabi, and lemon wedge) into the ponzu. We obeyed, mixed up our sauce, and began to eat. The simplicity of this dish intrigued me and I decided mid-avocado half that I would attempt this dish at home.

This dish is What I Ate This Week. A craving for something grilled and light, and a bag of avocados on hand, brought me to the international aisle of my local grocer, filling a basket with ponzu and wasabi. Once back in the kitchen, I got to work dressing the plate with components while I delegated grilling the avocado halves to someone without a fear of open flames.

Cooking and plating this dish took less than ten minutes. [An eye-pleasing plate plus a short cooking time put this dish up for recommendation for any dinner party.] We sat down to eat our avocados, mixing our components one by one in the ponzu, and began to scoop out avocado and sauce.

Immediately, at first bite, we could tell something was off. The sauce was strong, bitter, and…terrible. With so few components, the problem was obvious – I had picked up undesirable wasabi too-full of horseradish.

While not the most delicious bite of food, this dish showed incredible promise, and made for a pretty picture. I know for next time to make a trip to Hanna Japanese Market for a higher-quality wasabi…and to taste all components before putting them on the plate.

grilled avocado and ponzu served with sea salt, wasabi, and lemon

June 11, 2016 11:52 PM


"House Beats Back Effort to Weaken Office of Congressional Ethics, But It Was Ugly" in Demand Progress

On Friday rank-and-file members of the House of Representatives beat back a last-minute amendment by Rep. Steve Pearce (R-NM) to reduce…

by Daniel Schuman at June 11, 2016 07:37 PM


It's all relative

As nearly anyone who's worked with me will attest to, I've long since touted nedbat's talk Pragmatic Unicode, or, How do I stop the pain? as one of the most foundational talks, and required watching for all programmers.

The reason is because netbat hits on something bigger - something more fundamental than how to handle Unicode -- it's how to handle data which is relative.

For those who want the TL;DR, the argument is as follows:

Facts of Life:

  1. Computers work with Bytes. Bytes go in, Bytes go out.
  2. The world needs more than 256 symbols.
  3. You need both Bytes and Unicode
  4. You cannot infer the encoding of bytes.
  5. Declared encodings can be Wrong

Now, to fix it, the following protips:

  1. Unicode sandwich
  2. Know what you have
  3. TEST

Relative Data

I've started to think more about why we do the things we do when we write code, and one thing that continues to be a source of morbid schadenfreude is watching code break by failing to handle Unicode right. It's hard! However, watching what breaks lets you gain a bit of insight into how the author thinks, and what assumptions they make.

When you send someone Unicode, there are a lot of assumptions that have to be made. Your computer has to trust what you (yes, you!) entered into your web browser, your web browser has to pass that on over the network (most of the time without encoding information), to a server which reads that bytestream, and makes a wild guess at what it should be. That server might save it to a database, and interpolate it into an HTML template in a different encoding (called Mojibake), resulting in a bad time for everyone involved.

Everything's awful, and the fact our computers can continue to display text to us is a goddamn miracle. Never forget that.

When it comes down to it, when I see a byte sitting on a page, I don't know (and can't know!) if it's Windows-1252, UTF-8, Latin-1, or EBCDIC. What's a poem to me is terminal garbage to you.

Over the years, hacks have evolved. We have magic numbers, and plain ole' hacks to just guess based on the content. Of course, like all good computer programs, this has lead to its fair share of hilarious bugs, and there's nothing stopping files from (validly!) being multiple things at the same time.

Like many things, it's all in the eye of the beholder.


Just like Unicode, this is a word that can put your friendly neighborhood programmer into a series of profanity laden tirades. Go find one in the wild, and ask them about what they think about timezone handling bugs they've seen. I'll wait. Go ahead.

Rants are funny things. They're fun to watch. Hilarious to give. Sometimes just getting it all out can help. They can tell you a lot about the true nature of problems.

It's funny to consider the isomorphic nature of Unicode rants and Timezone rants.

I don't think this is an accident.

U̶n̶i̶c̶o̶d̶e̶ timezone Sandwich

Ned's Unicode Sandwich applies -- As early as we can, in the lowest level we can (reading from the database, filesystem, wherever!), all datetimes must be timezone qualified with their correct timezone. Always. If you mean UTC, say it's in UTC.

Treat any unqualified datetimes as "bytes". They're not to be trusted. Never, never, never trust 'em. Don't process any datetimes until you're sure they're in the right timezone.

This lets the delicious inside of your datetime sandwich handle timezones with grace, and finally, as late as you can, turn it back into bytes (if at all!). Treat locations as tzdb entries, and qualify datetime objects into their absolute timezone (EST, EDT, PST, PDT)

It's not until you want to show the datetime to the user again should you consider how to re-encode your datetime to bytes. You should think about what flavor of bytes, what encoding -- what timezone -- should I be encoding into?


Just like Unicode, testing that your code works with datetimes is important. Every time I think about how to go about doing this, I think about that one time that mjg59 couldn't book a flight starting Tuesday from AKL, landing in HNL on Monday night, because United couldn't book the last leg to SFO. Do you ever assume dates only go forward as time goes on? Remember timezones.

Construct test data, make sure someone in New Zealand's +13:45 can correctly talk with their friends in Baker Island's -12:00, and that the events sort right.

Just because it's Noon on New Years Eve in England doesn't mean it's not 1 AM the next year in New Zealand. Places a few miles apart may go on Daylight savings different days. Indian Standard Time is not even aligned on the hour to GMT (+05:30)!

Test early, and test often. Memorize a few timezones, and challenge your assumptions when writing code that has to do with time. Don't use wall clocks to mean monotonic time. Remember there's a whole world out there, and we only deal with part of it.

It's also worth remembering, as Andrew Pendleton pointed out to me, that it's possible that a datetime isn't even unique for a place, since you can never know if 2016-11-06 01:00:00 in America/New_York (in the tzdb) is the first one, or second one. Storing EST or EDT along with your datetime may help, though!


Improper handling of timezones can lead to some interesting things, and failing to be explicit (or at least, very rigid) in what you expect will lead to an unholy class of bugs we've all come to hate. At best, you have confused users doing math, at worst, someone misses a critical event, or our security code fails.

I recently found what I regard to be a pretty bad bug in apt (which David has prepared a fix for and is pending upload, yay! Thank you!), which boiled down to documentation and code expecting datetimes in a timezone, but accepting any timezone, and silently treating it as UTC.

The solution is to hard-fail, which is an interesting choice to me (as a vocal fan of timezone aware code), but at the least it won't fail by misunderstanding what the server is trying to communicate, and I do understand and empathize with the situation the apt maintainers are in.

Final Thoughts

Overall, my main point is although most modern developers know how to deal with Unicode pain, I think there is a more general lesson to learn -- namely, you should always know what data you have, and always remember what it is. Understand assumptions as early as you can, and always store them with the data.

by Paul Tagliamonte at June 11, 2016 03:45 AM


My theory about The Americans

This week marked the finale of season 4 of the Americans. Like almost everyone else, I loved it. Already, I can barely wait until the next season starts. But as I prepared to watch the finale, I had a nagging thought. I just couldn’t let it go. And now, I am absolutely convinced that … [Warning, serious spoiler alert ahead!]

… Stan Beeman is CIA.

Let that soak in for a moment.

My theory is that Stan has known about the Jennings from day one. In fact, Mrs. Sandra Beeman is in the CIA, too. They’re just like Elizabeth and Philip; a “married” couple working together on getting close to the Jennings. The FBI story? It’s cover, designed to make the Beemans too attractive for the Jennings to pass up. Although we’ve all been waiting for Stan’s “Leaves of Grass” moment when he realizes the Jennings are KGB, we’ve been played. This whole time we’ve been thinking that Philip is trying to convert Stan? Think again: Stan has been working Philip.

If you pause and think about it, we don’t really know anything about Stan Beeman before he moves into the neighborhood. And neither do his peers. Here’s a man who one day shows up with a family that barely knows him, with a backstory that is plausible but decidedly undeveloped. Here’s a man who is decidedly tenacious in his day job, but back at the home front seems never to suspect that his neighbors are spies, despite the fact that he was suspicious on day one and then never again after that (“Huh. Nothing in the garage? Job’s done, folks!”). And, gosh darn it, even though Stan sees basically a million sketches of the Jennings, he never sees them in the pictures. I guess those wigs are just super solid.

There are a lot of pieces of the puzzle that start to make sense when you play this out. For example, Beeman has already flipped two Soviet spies: Nina and Burov. In doing so, he’s managed to thwart major dangers to the US (an assassination attempt, loss of biological weapons, etc.). Maybe it’s the Russians who are having morality crises, or maybe it’s that Beeman is a master in spycraft.

And what about the protective halo that surrounds Beeman? Remember back in season one when Stan kills a KGB agent, against orders, seemingly out of pure passion, in an unauthorized operation? Remember how Stan basically suffers no consequences for this? And, oh yeah, it was a joint operation of the FBI and CIA? Fast forward to season 3, remember when Stan effectively ran an off-books operation related to Burov? And how Gaad can’t punish him? Maybe Stan’s just lucky and the FBI prizes results over protocol. Or maybe Beeman’s got air cover.

Then, there’s Henry. Hasn’t it been a bit weird that Stan has gotten so close to Henry? Philip we can understand. They’re just two middle-class dudes in suburban DC living their lives, talking cars and EST, drinking their beers. But Henry? Sure, we’re supposed to believe that Stan’s filling the family-shaped whole in his heart now that Sandra and Matthew are out of the picture. But what if Stan’s grooming Henry? Sting is most certainly right that the Russians love their children, but the Americans’ love of Russian children might just be a little more calculated.

Finally, there’s Martha. Yes, Martha is the crown jewel in the FBI’s bumbling. Unless of course the US has known about Martha the whole time, and has been using the situation as a vector for misinformation back to the Soviets. Or, better, using Martha as an emotional wedge against Philip. Or even better, a CIA operative now working in the Soviet Union, exfiltrated by the Russians themselves! If Martha was in on it (“oh, she doesn’t have any friends either, you say? weird.”), then maybe – just maybe – the tapes from the pen were edited before they got sent to KGB Centre.

Now, all of this could be off the mark. It’s obviously possible that Beeman’s just an average American FBI agent, working in counter-intelligence, coincidentally living across the street from the KGB’s most important couple. But, if we’ve learned anything from the show, sometimes the best secrets are hiding in plain sight.

And, oh, by the way… Joe Weisberg, the creator of the Americans was CIA. Just sayin’.

June 11, 2016 12:00 AM

June 10, 2016


Faint Success, or, Surviving My First Tinder Date

I’ve been on Tinder for a long time. Me and my thumbs make vague attempts at engaging with it from time to time, but have never made it to the point of actually going on a date. At first I experienced the same phenomenon I did on earlier online dating endeavors – men who only seemed interested in chatting forever, perhaps fulfilling some ego fanning by thinking someone’s interested in you? perhaps a sign they were in fact not available and just wanted some attention? Or the constant barrage of either just gross descriptions of sex acts before nary a hello or its inverse: just being deadly boring. At any rate, sometime last weekend when I was staying in thanks to some general malaise, I decided aw fuck it. I’m going to chat up some dudes on these many apps i swipe through from time to time, and I’m going to make some fucking dates. 

This guy seemed fine – professor, multi-lingual, over 30. We seemed to share a bunch of Facebook friends, but I think that proved a glitch when those all disappeared the next day. He asked me a question About something in my profile then suggested we go for pizza, something I also mentioned liking in my profile (I’m a get to the point kind of gal. THE POINT AT THE END OF A SLICE! HEYOOOO!). “Alright, here we go, let’s roll the dice and say yes,” is what my mental monologue said. 

After I had to reschedule once because of work, pizza turned into beers (something he had expressed great interest in) at a bar he recommended. I like new bars I don’t know! This one was a board game themed place in Dupont Circle that had a really great bartender, some delightful seeming regulars, a sufficient beer selection, and had made a baffling decision to paint a giant mural on the beautiful brick wall instead of the dead boring white plaster wall opposite it, whose nakedness I found really distracting. 

So my date arrives. He jumps into a question and barrels over my answer with another question, whose answer he also steps on. I’m taken aback but chalk it up to nerves. He asks for an Allagash, which the bartender informs him they don’t have. (I find this odd as this is a favorite place of his, I thought.) The bartender lists other wheat beers they have. He asks for a Blue Moon. (That wasn’t on the list.) OK, I think, listening: not his thing. The conversation trucks on, mostly about his career, for a while. I notice that he only seems to smile at things he says. I forget how but I made some pivot away from work at one point and mentioned I have a pet, and make some comment about generally loving living things (except for bugs). He says he doesn’t like animals, or plants. He reveals he grew up in a very quiet house hold where the TV was never on and there wasn’t a lot of noise, mostly just reading books. Ah ha, I think. 

I then basically made a one foul swoop move to end the date. Asked for my tab, put on my purse, stood up and basically just kept talking the entire time throughout this motion while I shook his hand, backed away and exited. (Yes, I announced my plans to leave first, I’m not a monster.) I escaped to the soul soothing rock n roll of King Khan at the Black Cat and realized that joyfulness is a must-have quality in any mate of mine. Not something I recognized the need to quantify before. 

Anyway, moral of the story: I can keep a conversation going with just about anyone. There is some very serious woman out there who will make this man very happy but that woman is not me. I have a second date lined up tonight with another suitor. It will either be better or a disaster of a different color. I will keep trying this for a while since the regular TV season is over and there’s less to do at home right now, I guess. 

June 10, 2016 03:45 PM

June 09, 2016


I have become so weirdly obsessed with Game of Thrones this season. i’ve watched it all along, but...

I have become so weirdly obsessed with Game of Thrones this season. i’ve watched it all along, but never before have I spent LITERALLY AN ENTIRE DAY on wikis learning the ins and out of the various religions in Westeros (and Easteros! Did you know we’re talking about continents here? I didn’t!). My main lesson: the show leaves out and/or doesn’t emphasize A LOT of what makes most of the plot develop. And I think correcting for that is what’s been making this season so good. 

I pretty much constantly have at least 4 GoT tabs open and just want more and more and more content. GIMME YR CONTENT, NERDS! 

June 09, 2016 08:37 PM

Gonna buy tickets to this multiple times just to drown out the...

Gonna buy tickets to this multiple times just to drown out the MRAs.

June 09, 2016 07:42 PM

buzzfeednews: Obama Endorses Hillary Clinton For...


Obama Endorses Hillary Clinton For President

They’re here. It’s happening. The Historic Campaign Feels have creeped up on me hard. 

June 09, 2016 07:41 PM

June 07, 2016


The time I went to see a House Ways and Means Committee tax hearing

At this session, the Ways and Means Committee was hosting a show and tell, as roughly forty Congresspersons took three minutes each to talk about their favorite proposal for tax reform. Here, I’ll talk about one common pattern for single-industry reforms.

I went to the hearing partly for serious purposes that are off-topic here, but also as a bit of tourism. Most of the work of Congress happens in committees that conduct business in the office buildings that flank the Congress building itself. You’re free to attend. Security-wise, there’s a metal detector at the building entrance, but it’s much easier to enter the House Ways and Means Committee hearing room than, say, your flight to Chicago.

The House Ways and Means Committee hearing room

The House Ways and Means Committee hearing room.


I thought it was a great time, but I understand if you’d like a summary of the arguments presented instead of watching the full two hour, 40 minute video. There were a few different forms of proposal, but the one I want to focus on can be summarized in two paragraphs and an image I GIMPed up.

Think back to your first day of Econ 101. You learned that if I own a widget and value it at $10, and you want the widget and value it at $20, then an exchange will occur, let’s say at $15, leaving both of us $5 better off. From my perspective as the seller, beyond selling my widget, I produced $5 of added value for you that I did not capture. I’m some kinda charity over here, an essential engine of the economy that deserves to recapture a tiny fraction of the uncaptured value I add for others via a tax subsidy.

This argumentation form can be used by almost any industry, because as long as it is engaged in voluntary trade with the public it produces uncaptured surplus for the public. All it takes to turn this into lobbying is doing some back-of-envelope calculations to quantify the surplus. To give a local example, have a look at this PDF from the DC DOT  justifying why they want to spend millions of public dollars improving private rail lines solely owned and operated by private companies. At the hearing, there was mention of railroads, mechanical insulation makers, contract research labs, and all sorts of other corners of the economy we don’t spend much time thinking about.

My intent is not to say that this argument is wholly invalid—maybe we want to subsidize patent holders, or solar panel producers, or people operating happy farms—but to clarify that the justification for the tax cut is often tediously identical across industries.

A parody image with a car sharing logo and the caption

My mock-up rendering of what most advocacy ads boil down to.

So that’s the rationale for many of the tax reforms aimed at a specific group. With regards to such reforms, we can divide the voting public into two camps:

  • Parties that benefit from the reform.
  • Parties that have no idea that the reform exists.

To give an example that came up several times, 1 hour 24 mins into the video a Representative from Colorado gives a shout-out to H.R. 2903, the Craft Beverage Modernization and Tax Reform Act of 2015 (herein the CBMTRA).

He points out that this bill regarding craft beverages is supported by brewers with a major presence in his district, such as Miller-Coors and Anheuser-Busch. Toward the end of the hearing a representative from Surly Brewing came out to speak. The bill has some parts about tax accounting that benefit only some small businesses, but by my reading the key provision is a change in how some capital expenses are treated under tax law, shifting them from being depreciated over years to being immediately expensed.

Before I told you about this proposal, were you aware that the CBMTRA even existed? As you read about expensing versus depreciation, is your outrage meter registering anything? That’s why this bill has relatively decent odds of passing.

This is a well-tested strategy, and tax law is littered with the results: single-industry benefits that few people outside of that industry know exists, let alone care to challenge.

Next time, I’ll show some interesting examples from Form 3800.

by BK at June 07, 2016 11:17 AM

June 06, 2016


Amish Butter

It’s been said that Boris Yeltsin realized that the USSR had failed as an economic system after visiting a supermarket in Houston and seeing how much more good, cheap food was available to the average American than their counterpart in Russia. The Americans didn’t even have to wait in lines! Yeltsin apparently just roamed around the aisles, looking at all the food and considering his life choices. Just as Yeltsin sunk into a deep despair after his shopping experience, so too have I began to reevaluate my life after being introduced to Amish Butter. All I know about Amish Butter is that it is butter that is, presumably, made by Amish people and that I can buy it at the Harris Teeter by my house. Beyond that, I don’t feel like I know much about it or food in general anymore because Amish Butter has challenged my relationship with what I eat.

I was hanging out with a foodie friend in his kitchen (natch). He pulled what looked like a wad of c4 and/or lard out of his refrigerator. He grabbed a fancy knife looking thing, one of those planar knives that’s mostly just a blade and was probably originally meant to parcel out designer drugs. After sizing up a piece of bread, he cut a quarter inch thick slice of butter that covered the entire bread slice and told me to eat it. He knew better than to say try this, because you can’t just try Amish Butter, you are compelled to finish whatever the butter is on lest you let the Amish Butter go to waste and karma sees fit to prevent you from having the fortune to eat it again. Within 24 hours, I had gone out and purchased my own hunk of Amish Butter and made most of my roommates and my dad sit down and eat toast and Amish Butter with me.

Amish Butter is perhaps the only food I’ve eaten that has immediately changed my diet. It comes in two pound hunks that are surprisingly cheap. It’s got a heft to it that demands respect. I’ve refused to use a regular butter knife when slicing it out, alternating between reaching to the back of the drawer for a small sharp knife for precision slicing and a fork when I don’t feel like wasting the time to try and find the proper utensil. It doesn’t seem right to use a regular butter knife, because Amish Butter isn’t regular butter. Amish Butter is what regular butter aspires to be, the same way little kids aspire to be the president before they understand how utterly impossible it is for them to ever achieve that dream and resign themselves to living their somewhat satisfying but ultimately average and likely mediocre lives.

After Amish Butter, I now have an urgent need to deeply understand my toaster. I have more opinions about toast now than I previously thought were possible and they are all entirely predicated on finding the right level of toastedness for my bread so it can live up to Amish Butter’s exacting standards. The trick to eating Amish Butter is to eat as much as possible without getting sick. The toast acts as a transport while also reminding me of the physical limits of how much Amish Butter I can eat in one sitting. The toast can’t be so hot as to cause severe melting but it can’t be so cold as to distract from the experience. There is a certain crunch that is needed. Lukewarm cripsy toast is best for me, though I’m sure each person will find their own path towards best experiencing Amish Butter. For some reason, I can’t simply slice as I go, it has to all be cut and prepared at the beginning of the toast session. Part of the experience is seeing exactly how much Amish Butter I am about to one sitting and soaking it all in.

This all is a long winded way of saying that I’ve become that person who sits outside on his deck with two pounds of Amish Butter, a reliable knife, four pieces of toast and a massive shit eating grin  and, if you ever chance a visit to my home, you will become just such a person as well.

by Zack Maril at June 06, 2016 03:57 AM


Next Steps in Congressional Openness: News from the May Bulk Data Task Force Meeting

The 21 year-old legislative information website THOMAS will be retired on July 5 was the top news from last Wednesday’s congressional Bulk Access to Legislative Data public meeting. The fact that THOMAS was shutting down was not news, but the timing was.

While it didn’t generate a story in the press, two other developments are particularly important regarding how Congress engages the public. For the first time, the meeting was webcast and panelists—who came from offices and agencies throughout the legislative branch—responded to questions from people inside and outside the room. This will soon become regular practice; and video will shortly be available. Even more striking, Congress is responding to technical comments made on GitHub to the data it releases, creating an ongoing, real-time conversation about public access to legislative information with all the relevant stakeholders. This is a big deal. Continue Reading

-- Delivered by Feed43 service

June 06, 2016 03:30 AM


The Library of Congress announced that the legislative information website THOMAS is scheduled to stop functioning on July 5, with to replace its functionality. This will allow the Library to focus all its energy on instead of having also to maintain a very awkward, 21-year-old website.Continue Reading

-- Delivered by Feed43 service

June 06, 2016 03:30 AM

Bulk Data Task Force Meets Wednesday 4/27 at 10:30

The Congressional Bulk Data Task Force will meet this Wednesday at 10:30 am in the Legislative Resource Center in the Cannon Building near room 133. The Library of Congress graciously has offered to host the event online– go here after 10:15ish for a live feed.

On the agenda:

-- Delivered by Feed43 service

June 06, 2016 03:30 AM

3 Cheers for the Door Stop Awards

The OpenGov Foundation hosted the Door Stop Awards yesterday, which recognized the largely (but not entirely) unsung efforts to open the doors of Congress to the American people.

Last night, at the first ever Door Stop Awards last night, six Members of Congress and congressional staff were honored by the open government community for their tireless efforts to drag Congress into the digital age and make the legislative branch more open, responsive, and accountable.Continue Reading

-- Delivered by Feed43 service

June 06, 2016 03:30 AM

House Publishes Its Rules, Jefferson’s Manual, & More Online as Structured Data

Today the Government Publishing Office published the House Manual — which contains Rules of the House of Representatives, Jefferson’s Manual, and other important legislative documents — online in a structured data format on GitHub. GPO did so pursuant to direction from the House Rules Committee, which was acting in accordance with the rules package passed at the beginning of the 114th Congress, which declares:

The House shall continue efforts to broaden the availability of legislative documents in machine readable formats in the One Hundred Fourteenth Congress in furtherance of the institutional priority of improving public availability and use of legislative information produced by the House and its committees.

The online publication of key legislative documents as structured data is a welcome development. The Congressional Data Coalition has for a long time requested the enhancement, which empowers further analysis and reuse of the information in many different context. I, for one, will be glad to be able to automatically track revisions in the House Rules from Congress to Congress. I know others will find much more insightful uses.

All the offices and agencies involved with the project deserve congratulations, including: the House Rules Committee, the House Parliamentarian, the Clerk of the House, and the U.S. Government Publishing Office. (I’m sure there are more.)

The House Manual, as helpfully explained in the user guide to using the electronic version of the manual, includes:

  • the U.S. Constitution
  • Jefferson’s Manual
  • the Rules of the House of Representatives
  • Provisions of the Legislative Reorganization Acts
  • Congressional Budget Act laws
  • Legislative Procedures

All of the files can be found here. I have not had an opportunity to fully review what’s online — for example, I’m trying to find an unannotated version of the House Rules— but GPO has helpfully requested feedback on the GitHub page.

House Rules Committee Chairman Pete Sessions hailed the move in a statement:

Technology plays an important role in our daily lives, and it is necessary that the House keep up with the most efficient and effective ways to provide information about Congressional activities. As Chairman of the House Rules Committee, I am committed to the advancement of sharing legislative data online and am confident that our efforts will result in a better informed public.

GPO explained, in a press release, the value of publishing the documents in a more flexible format:

Making Government information available in XML permits data to be reused and repurposed not only for print output but for conversion into ebooks, mobile web applications, and other forms of content delivery, including data mashups and other analytical tools by third party providers, which contributes to openness and transparency in Government.

Good job. And thank you.

Continue Reading

-- Delivered by Feed43 service

June 06, 2016 03:30 AM

2016 Legislative Data & Transparency Conference Set for June 21

The Committee on House Administration will host its fifth annual Legislative Data and Transparency Conference on June 21, from 9-4 in the U.S. Capitol.

Free registration is now open. Continue Reading

-- Delivered by Feed43 service

June 06, 2016 03:30 AM

A Guide for Appropriators on Opening Up Congressional Information and Making Congress Work Better

For the fifth year in a row, today members of the Congressional Data Coalition submitted testimony to House Appropriators on ways to open up legislative information. The bipartisan coalition focused on tweaking congressional procedures and releasing datasets that, in the hands of third parties, will strengthen Congress’ capacity to govern.Continue Reading

-- Delivered by Feed43 service

June 06, 2016 03:30 AM

Congress open up the tap for Legislative Data!

Today the Government Publishing Office and Library of Congress completed a full revolution in public access to legislative information. Information about legislative actions in congress–the bills, summaries of the bills, and their status–is now available online, in bulk, in a structured data format. As I wrote in December, this has great significance:

  • It marks the publication of essential legislative information in a format that supports unlimited public reuse, analysis, and republication. It is now possible to see much of a bill’s life cycle.
  • It illustrates the positive relationship that has grown between Congress and the public on access to legislative information, where there is growing open dialog and conversation about how to best meet our collective needs.
  • It is an example of how different components within the legislative branch are engaging with one another on a range of data-related issues, sometimes for the first time ever, under the aegis of the Bulk Data Task Force.
  • It means the Library of Congress and GPO will no longer be tied to the antiquated THOMAS website and can focus on more rapid technological advancement. (At least for data from the 113th and 114th Congresses).
  • It shows how a diverse community of outside organizations and interests came together and built a community to work with Congress for the common good.

Many more good things are on the horizon, and we have hopes for many more from Congress and civic coders, but for now, congratulations to our tireless friends in Congress and the legislative support offices and agencies that have labored to make this happen. Read their announcement here.

-- Delivered by Feed43 service

June 06, 2016 03:30 AM

Congress Poised for Leap to Open Up Legislative Data

Following bills in Congress requires three major pieces of information: the text of the bill, a summary of what the bill is about, and the status information associated with the bill. For the last few years, Congress has been publishing the text and summaries for all legislation moving in Congress, but has not published bill status information. This key information is necessary to identify the bill author, where the bill is in the legislative process, who introduced the legislation, and so on.

While it has been in the works for a while, this week Congress confirmed it will make “Bill Statuses in XML format available through the GPO’s Federal Digital System (FDsys) Bulk Data repository starting with the 113th Congress,” (i.e. January 2013).  In “early 2016,” bill status information will be published online in bulk– here. This should mean that people who wish to use the legislative information published on and THOMAS will no longer need to scrape those websites for current legislative information, but instead should be able to access it automatically.Continue Reading

-- Delivered by Feed43 service

June 06, 2016 03:30 AM


I'm Blogging Again!!! About Linux

It's been over a year now since I last blogged, which is really disappointing. I think I got a lot of good writing done here from 2013-2015, with posts that really stand the test of time, and I'd like to create more of those.

This will not be one of them! But it is the start of me participating in Iron Blogger, which the kind and gentle Paul Tagliamonte has rounded up me and a number of our DC friends to do. So, I will pay a fine not to update my blog each week.

Though it is humbling to be at the point where a monetary penalty is the personal motivator that successfully puts e-pen to e-paper, I have decided to accept this and channel it in the best direction possible.

Today I would like to talk about Linux.

Desktop Linux: still not dead yet

Thanks to a dedicated little team at Dell called Sputnik, it is possible to get a light, beautiful, exquisitely machined laptop that ships with Linux, made with a world-class supply line, solid hardware and specs, and a guarantee that everything will Just Work.

In late 2014, I bought a snappy little thing and, with Paul Tagliamonte's help (sensing a pattern?), installed Debian and documented the hell out of how to do it for those who came after me. I loved that computer to pieces, in fact I loved it too much and I offered it a sip (well, quite a few sips) of the soda I was drinking at the time and then we had to spend some time apart.

So I recently went and checked out the latest from Dell's Sputnik line and got myself a new XPS. It is an outstanding and wonderful little machine:

Though it comes Ubuntu 14.04 LTS, you can install Ubuntu 16.04 or the latest Debian on it just fine. The only hiccup is that mine shipped with a buggy motherboard, but a call to Dell got me quickly in touch with a genuine expert who sent a technician out promptly to replace it. Even the customer support was excellent, better than I expect from a massive global company -- and especially nice to not have the company flick you away with their little finger when they hear that you've installed Linux on the computer they sold you. Because this time, they installed it first themselves!

If you're thinking about a new laptop and have an open mind towards Linux, consider Ubuntu or Debian. Ubuntu is very easy to install, while Debian is more challenging, my Debian instructions from last time got me through very well this time, and I'm in the process of updating them for tiny changes in Debian and the new XPS.

Did I mention that Steam works, with 3D and everything? I can play everything from Stephen's Sausage Roll to The Talos Principle, all on my fast and thin Linux laptop.

Also there's a gratuitous touch screen! The entire screen is a touch screen, while also sporting a 3200x1800 super high-resolution. It may not be the Year Of Linux On The Desktop, but goddamnit, you can still get a beautiful Linux computer today that runs a true community-built free operating system and it will make you feel very good.

June 06, 2016 03:20 AM


Good technology in the hands of terrible people

I’m definitely not the first person to say this (nor, unfortunately, will I be the last), but as creators and builders we has a responsibility to think through the implications of what we’re building. No matter how benign we may believe the app to be, we have to ask: if I were a terrible person, how would I use this for evil?

I, like many people, prefer to assume that people are inherently good, and we build apps with (I would hope) the best of intentions. However, this doesn’t mean we can ignore the hidden costs of our technology. Take the time to think through every possible, twisted scenario that could arise. If you can’t think of a single situation where someone could use this for nefarious purposes, find someone who can. This is yet another benefit of diversity: your worldview and experiences are going to be completely different from someone else’s. Especially someone of a different gender or race. We all have amazing powers of empathy, but that is so different from someone who’s lived it. They’ll think of things that would never occur to you, and that’s okay. I would argue that’s a good thing.

Diversity is (obviously) incredibly important to me, but it really hits home for me when thinking about the scary side of technology. It struck me particiulary hard when I downloaded Gyroscope and integrated it with Moves. Let me start by saying: I love these apps. They’re beautiful, they’re simple, and they’re a really great way to track your health, fitness, steps, productivity, sleep patterns, habits, etc. etc. The possibility for improving people’s lives is incredible. But the same things that make these apps great, are also what scare the daylights out of me.

Unlike something like 4Square which requires you to check into places (actively opt-in to admitting you were somewhere), Moves constantly tracks where you are, how you got there, and how long you stayed. It turns this information into a convenient map, and translates activities into calories burned. This is great if you want to track habits and remember that one bar you went to that one time. But what happens when someone else gets ahold of this information? I can hear some of you thinking “but really, the company isn’t going to do anything with my personal information, and what do I care if a stranger has this info?” Remember what I said at the top: what if I were a terrible person?

Personal story time: A long, long time ago, I, like so many other women I’ve talked to over the years, made a terrible dating choice and ended up in an unhealthy, manipulative relationship. Everything I did was watched. Friends I added on Facebook, new contacts in my phone, you name it. Anything and everything could be used as ammunition against me. It’s a long story for another time, but I bring it up because Moves would have been a nightmare for me. He could have installed it on my phone without my knowledge, and checked it at any given time. Sure, it would have been on my phone, but if you think I was allowed to have a password that’s very optimistic of you. When something as innocusous as a Spotify music update can be used for evil, image the damage that Moves could do.

I’m not saying Moves shouldn’t exist. Now, several years and many states of separation have granted me a sense of security, so now I love Moves. What I’m saying is that we need to think about the worst of the worst. The bottom-of-the-barrel “no one is really like this” situations. Think about them, ask other people, ask yourself what you can do to improve security and privacy. We owe it to our users.

June 06, 2016 03:00 AM

June 05, 2016


The pop culture of my life

I was on the stair mill on the gym the other day, as is my wont. (I have ranted about this to a lot of my friends, and I'll never stop spreading the word: the stair mill is the best piece of equipment in the gym. It's like climbing a vertical mountain non stop giving you the best leg muscles ever but instead of like being outside in beautiful nature or whatever you can also be listening to Britney Spears' greatest hits and reading trashy magazines.) Anyways, I was reading a trashy magazine, and thinking about what to blog about this week, when I came across a feature in EW mag called the Pop Culture of My Life. They interview a celebrity every week about the latest book they read, first album they bought, etc., etc. Seemed like a pretty good idea so I'm stealing it for this blog post, because the content beasts never stop being hungry.  

The book I read in secret as a kid 
This is really embarrassing (and I'll have to see if I'm remembering it correctly, I'm sure my parents, who read this blog, will chime in) but in elementary school I was a Sweet Valley High devotee. There was one particular book in the series that had gotten around the mom group that it was too scandalous to read. One of the twins, Jessica, encounters a mustachioed college student who touches her butt. Literally. My mom said I was to never read it, so naturally, I stole it from the library and read it, and then hid it in my purse until it was many months' past due. One day I came downstairs and my baby sister was playing with my purse and had thrown out that book, and my mom looked at it, and I looked at it, and we looked at it each other, and I picked it up and returned it to the library, and we never spoke of it again.
The book I’ve read over and over
I haven't reread many books as an adult but from the ages of 8-13 I probably reread the entire Anne of Green Gables series approximately 37 times.
The last TV show I binged
I'm in the midst of Game of Thrones, currently in season 3. That's right, I'm the last person on earth who had seen it. It's pretty cool I guess.
The last book that made me laugh out loud
Probably Mindy Kaling's latest. It's predictable, but has some pretty good spots.
The last album I listened to
Pavement's Brighten the Corners, this morning. Something about Pavement screams early summer to me - hazy, lazy, lo-fi, clever.
My all-time favorite movie
Sad but true, probably the 1996 A&E version of Pride and Prejudice.
The TV show that doesn’t get its due
Uh, HGTV's Property Brothers? I don't watch a ton of current TV because I find it too overwhelming to keep up with all of the things I should. Oh but you know what was a really good show that everybody thought looked terribly stupid was Selfie. It was wildly funny and Karen Gillan and Henry Cho had wonderful chemistry.
The first album I bought with my own money
Radiohead's The Bends, circa 1995, at the long-gone Tower Records on Leesburg Pike, RIP. Would put it in my discman every night, fall asleep by track 6 "Nice Dream" and awake with a start to "Just," then fall back asleep by "Bulletproof." Emo Cath.
The last book I read
Tenth of December by George Saunders. 5 stars.


by catherine at June 05, 2016 04:48 PM


Storytelling and federal procurement

Last week, after chatting about challenges in federal procurement, a colleague suggested a book entitled the “Free Enterprise Patriot.” The opening statement of the book sets the stage:

Had the complexity of today’s bureaucratic government existed when the War of Independence began, this is how it might have been, with one exception … we probably wouldn’t have won.

The book is satire, written in 1964 by a pseudonymous author, about a blacksmith who wants to sell a cannon to the Continental Army during the American Revolution. It begins with the vendor’s unsolicited proposal:

I strongly favor the action taken by the Representatives of the Colonies on 04 July 1776. Since I want to do my part to help, I want to know if you could use another cannon. I have a small blacksmith shop here in Wilfred Corners which I run myself. I have never made a cannon, but I am sure I could and if need be, I could get some of the men around these parts to help. I would only charge for the metal and a “little to help my family buy corn meal and meat for the winter. Please let me know what kind of cannon you want and where you want it, and I will get started on it right away.

And the response is pure gold:

In order to conduct business affairs with the Continental Congress and the supply agencies of the Colonial Army, it will be necessary for you to complete certain routine forms to help our Weapons Procurement Evaluation Branch (WPEB) evaluate your business and determine whether you qualify as a supplier to the Colonial Army. Naturally, in the interests of security during this period of unrest, the government agencies must insure that its suppliers meet minimum standards of quality and performance. Please fill out the attached forms provided (in triplicate), retain one file copy and return the other copies along with a statement of the type of weapons manufacture or Army supply on which you wish to bid.

This sort of back-and-forth continues throughout the book. It’s amusing and I recommend it (I bought it on Amazon for about $10). But the thing that I find most astonishing about it is how effective it is in conveying why federal procurement is so stultified.

In that vein, over the past few months, I’ve spent a lot of time learning about user experience and design. One aspect of the practice that has captured my imagination is the role of storytelling in design. The central idea behind storytelling in design is that telling a story invites teams to agree upon problems, gain an understanding of context, and consider multiple alternate realities in an easy way. But as my colleague Andrew Maier explains, storytelling is hard work:

We can use the concept of storytelling to give our teams an idea of where we are headed. But applying storytelling to the websites we create is difficult work…

It is therefore important to appreciate that the Free Enterprise Patriot is so good precisely because the reader had extraordinarily deep insight into the complexities of the federal procurement system. It only hangs together because the author had obvious empathy for the myriad ways that the government created barriers to success, for good reasons and bad. Indeed, it’s because of that insight that the author could tell an effective story using a completely different context to create space for a conversation of the current context.

The lesson for me is that storytelling can have a broader utility than creating incredible user experiences. Storytelling can also help us learn about extremely complicated topics, and find a shared understanding of how to tackle modern challenges.

June 05, 2016 12:00 AM

June 04, 2016


The time I saw Ezra Klein talk about presenting research

This post and the next are leading up to a discussion of IRS Form 3800. Why should you care about Form 3800, a form you likely have no personal dealings with? Because a form nobody cares about is a great place to hide a lot of things.

I’ll start the story by telling you about the time I saw Ezra Klein, the head of an increasingly popular news outlet. Somebody in one of the World Bank’s research groups invited him to present an explainer to the researchers about how they can get their news out to the public.

He opened strong: we eggheads like to complain that the public just wants fluff and isn’t interested in detailed or technical work, but if the public doesn’t care about your work it’s your fault, not theirs. There’s an interesting and accessible lede to every story, and it’s up to you to find it (and not bury it in academic-level detail).

If you think it’s an especially interesting story, then there’s nothing wrong with directly and politely contacting journalists and telling them about it. Finding recent papers with something new and newsworthy is exactly the kind of thing Ezra’s journalists are trying to do all day.

One WB researcher had a paper on pirates. Does having military officers on board deter them? Yes, he found, but only at a scale such that it’s not deemed cost-effective. Ezra was delighted—pirates!

Another had a paper about textbook provision in countries that rarely see textbooks. She found that teachers don’t hand them out to the whole class as one would expect, because they don’t expect to ever see another textbook shipment again and the conservation/stockpiling instinct kicks in. Ezra was less excited. Maybe the correct audience is not the general public, but the community of people who do procurement and distribution.

The third example was mine, during the Q&A after his talk. I’m writing a paper about a technical issue of great import to the U.S. public—the one tweak that could save the U.S. taxpayer billions of dollars. But you can’t understand it until you know a lot of background about the existing state of a technically complicated system (even more nuanced than Form 3800). How does one get over the hump of background information? Ezra’s reply: you don’t. He thinks that my target audience is not the public at all, but maybe even just one person, the Secretary of the Treasury. Representative democracy and an informed public is great, but we also have to respect the time of our readers, who have lives outside of public policy.

To summarize my read of his position, we can explain anything to the public in a manner that will hold their interest, but that doesn’t me we should. The journalist side doesn’t have the bandwidth to cover it all, and the public doesn’t have the bandwidth to digest it all—even Congressional staffers don’t have that much time.

This is a little more nuanced than the typical story that the public is too dumb or too apathetic, which Ezra rejected at the outset. Rather, it’s a question of the finite resource constraint of a 24-hour day. Readers will only pay attention to so many issues, especially given that they have only negligible power to change anything, and people who curate and prepare issues for the public can only hit so many topics given their own resource constraints. Technocratic issues have an inherent disadvantage on these fronts, because they cost more in time and effort for readers and authors, and the public typically has an even more minuscule influence over them.

Next episode, I’ll visit the House Ways and Means Committee, where a good deal of the more obscure policy is discussed. This is where the lack of public bandwidth will start to matter.

by BK at June 04, 2016 11:10 PM


Strawberry Shortcake 🍓

A strawberry has always been my go-to everday fruit. And by everday fruit, I mean all 12 months of the year. Growing up, I have memories of my mother buying 2 quarts of strawberries every week at the grocery store – and they were always delicious. Seasonality was not a concern or on my radar thanks to modern agricultural miracles.

Today, strawberries are still a constant in my life. However, each year I find myself surprised by the red, plump, sweet berries that appear at the grocer every May.

This year, I decided to step outside of my plastic clamshell strawberry universe and go strawberry picking. These strawberries did not disappoint.

woman holding strawerries in field

While raw, as jam, or covered in cream, strawberries may be one of the few upsides to impending summer heat. With a recent ~~obsession~~ peaked interest in local dairy, I decided that strawberry shortcake made of fresh strawberries, shortcake biscuits and homemade vanilla bean whippped heavy cream would be the perfect entry to the summer months.

I used Bon Appetit’s “BA’s Best Strawberry Shortcake Recipe” to guide the adventure, mainly because it included a few oddball, unexpected ingredients (a sign that a recipe has been through a test kitchen wringer and is likely foolproof). While hard-boiled egg yolks and cornmeal seems like bizarre ingredients for a shortcake recipe, they created a biscuit like density and brought some earthiness to what could have been a too-sweet dessert.

I made a few modifications to the recipe due to lack of tools/ingredients on hand. While I think my version turned out perfectly acceptable and delicious, I would recommend sticking with Bon Appetit’s suggested implements.

  1. I did not have access to a large enough food processor to pulse the dry ingredients. Instead, I opted for a KitchenAid at speed #4 with the whisk attachment.
  2. I did not have parchment paper on hand. Instead, I opted for a silicone mat.
  3. I did not have sanding sugar in the pantry. Instead, I used granulated sugar. Note: these shortcakes really missed the sanding sugar.

The recipe notes that these shortcakes can be baked a day in advance. I did this, but found that they did lose their external crispness and needed a quick crisp-up in a higher-heat over before serving.

As for the strawberries, this recipe asks for two different strawberry preparations: maceration (with fruit, this just means adding sugar and let sit to let the fruit release its juices) and compote (a word for half-made jam, cooked fruit in syrup). This was probably the best part of this recipe. The combination of the warm compote syrup soaked into the shortcake halves with the chill of the macerated sweet beries created the perfect temperature balance. While seemingly-labor intensive, neither of these preparations take much attention and can provide you time to clean up your counters as the strawberries cook and chill.

Aside from the dual strawberry preparation and oddball ingredients, I selected this recipe for its encouragement to utilize whole vanilla beans. Needless to say, the whole bean made the difference with a raw vanilla application in the whipped cream. As for appearance, the black specks present throughout the cream can’t be over-hyped.

strawberry shortcake

June 04, 2016 04:19 PM

June 03, 2016


Alice, it is $1,000 for the upcoming year, or $19 a week, or $3.84

Because of the way spending money works, the money for this is from a different pool of funds entirely from what pays for Social Security…

by Daniel Schuman at June 03, 2016 12:25 PM

June 02, 2016


Timeline adjacency points out a startling resemblance. *****My...

Timeline adjacency points out a startling resemblance. 


My clever friends respond to this over email: 

Kriston: I’m going to Her Grace’s Land

LSG: diamonds on the soles of her wellies? the only living girl in…. ?????????????

Josh: Take a deep breath, Beth
No need for the quiz, Liz
Just get outta my face, your Grace
And get yourself free

Me: Lizzie, I’m lost, I say, as we drive past the garden. I’ve got a new album and I don’t know whyyyyyyy

Kriston: If you’ll be my body guard, I can be your long last palI can call you Betty, and Betty when you call me, you can call me Prince Philip, Duke of Edinburgh, Lord of the House of Schleswig-Holstein-Sonderburg-Glücksburg

LSG: applause, i was just gonna send you unchanged lyrics from “I Am A Rock”’ but i’m out

June 02, 2016 02:50 PM


Alice, I’m afraid you have misunderstood what has happened.

First, staff are not getting an $18,000 raise. On average they’re getting a $1,000 cost of living adjustment, which will come out to about…

by Daniel Schuman at June 02, 2016 02:19 PM

June 01, 2016


What’s more Classic Blogging than a weekend/vacation recap? I’m fresh from a trip to Charleston for...

What’s more Classic Blogging than a weekend/vacation recap? I’m fresh from a trip to Charleston for the 40th annual Spoleto festival, which was on the heels of missing most of last week of work because of strep throat, which came right after being in England for 10 days. So basically I stopped adulting some time ago and highly recommend this lifestyle. 


The first time I went to London when I was 16, I had this overwhelming sense of “I’m supposed to live here.” I had it again when I studied abroad there. Again every other time I’ve gone. This trip was no different. God I love that city. All of the big city trappings of NYC without the DIFFICULTY plus the charm of being SUPER OLD and everything is just accessible and man I love it. London was just a pit stop on the way to Dorset, aka classic beautiful English countryside of your dreams. We were there for my goddaughter’s Christening. DESTINATION BAPTISM Y’ALL. (Really it’s just that the father is English and it was important to his family to do it there.) So me and my co-godmother (in England girls get 2 G-mothers and 1 G-father, boys the inverse) and the godfather and his lovely wife went with our best friends across the pond for a week and change of stone cold mother land adventuring. 14th century churches, 16th century farm houses, iron age forts, endless G&Ts, spaniels and labradors as far as the eye can see. Then we spent a few days at the beach in Devon. You know what’s cool? Being on a beach surrounded by rolling green hills where you can hear cows and sheep while you make sand castles. That is cool. Also my goddaughter is the best and cutest and I love her the most. 


I’ll save the story of how my mom almost missed our trip for another post. Despite the visiting monsoons courtesy Tropical Storm Bonnie, Spoleto is really cool. I saw a couple of performances I wasn’t wild about – Old Crow Medicine Show is so dogged in their schtick that it looses all immediacy. Every song is about some different southern city or river and every movement is deeply choreographed. No looseness. No dirt. Unassailably great, multitalented musicians and performers, just too too too much for this thing they’re doing. The big central event of this year’s Spoleto was a staging of Porgy & Bess, blocks from the neighborhood it was set in. It was super sold out but I made a friend in the nail salon who was in the chorus who tipped me off to some last minute released tickets. I jumped and gave them all of my money and sadly it was kind of a stinker. The brand new concert hall’s multi-million dollar build out didn’t yield perfect acoustics, leaving most of the lyrics unintelligible. And the set designer was more focused on impressing people with his own genius than making design decisions that amplified the story. All in all it was disappointing and distracting, though the chorus and orchestra were phenomenal. 

But I saw some amazing stuff too! Ada/Ava by Manual Cinema was one of the most moving, incredible, inventive, creative things I’ve ever seen in my life. I can’t think of an art form that wasn’t applied to this work of genius. The story is told with shadow puppets and actors over overhead projectors with live musicians. I can’t begin to explain what made it so special but holy hell. If you ever get the chance to see something they do, run don’t walk. 

I also got the distinct pleasure of seeing Bill T. Jones’ dance company perform two pieces. He’s a titan and it was completely perfect and incredible. 

The re-opening of the Gibbes Museum was another high point, featuring a very Charleston-centric permanent collection and an exhibit in reaction to the shootings at Mother Emmanuel last year. It was very smart and moving and really well done. 

I also ate ALL of the food in that incredible food city, walked all over, saw so many beautiful houses and gardens, went to some muckity muck cocktail parties, watched my uncle be a BFD, and spent good quality time with beloved family. 

Now I’m back at work, mainlining iced coffee. 

June 01, 2016 02:42 PM


universal basic income

UBI is getting a ton of attention these days, and on the whole I’m glad. Smart people I know who care deeply about social welfare have been quietly nursing this dream for a long time, and I respect the depth of their thought and commitment. One friend is even writing a book about UBI! I would like to see a greater share of society’s wealth go to the poor, and this seems like a mechanism for achieving that goal that is worth investigating.

This is not to say that I’m a believer. Untested ideas for social improvement generally look pretty good compared to the ones we’ve actually implemented, which have somehow all turned out to be complicated and horrible. And I’ve known enough people with serious problems to call myself a paternalist without discomfort. The dignity of financial self-determination sounds great on paper, and saying that some people can’t handle it does not. Alas, personal experience has made the latter conclusion inescapable to me.

But I don’t want to talk about that today. Really, I want to talk about the deeply silly people from my own culture who are driving this policy moment. The nerds have discovered UBI.

There’s no better spot to observe this phenomenon than Hacker News, a site that shares Reddit’s basic worldview but is more brainy, shy, and — thank goodness — ashamed of its sexuality. HN is great because threads about, say, astrophotometry fill up with people whose PhD theses were about a _similar_ kind of laser, and they think the way these researchers cooled the dielectric here is really quite clever. It’s terrible because basically everything else is about Soylent or Bitcoin or buying Soylent with Bitcoin.

(Okay, that’s a cheap shot. These days it’s about how you could write Ethereum blockchain contracts to distribute Soylent.)

HN is populated with smart people who work at software startups, most of whom live in the Bay area. Many of them are very excited about UBI. There are nineteen pages of results for the first relevant phrase I tried. It has become a subject of sufficient fascination in the community that Y Combinator, the incubator that birthed and maintains Hacker News, is investing in a series of experiments to evaluate UBI’s viability. They just announced their first UBI director and pilot program, in fact.

This is all to the good. Wealthy people are going to give some money to poorer people to see if it helps them. I bet it will! Good for them.

But at the risk of ruining a good thing, I can’t help wondering why my fellow software developers find this idea so interesting. From that post:

One reason we think it may work is that technological improvements should generate an abundance of resources. Although basic income seems fiscally challenging today, in a world where technology replaces existing jobs and basic income becomes necessary, technological improvements should generate an abundance of resources and the cost of living should fall dramatically.

When Sam says “technological improvements”, I don’t think he means better cookstoves in rural China. I suspect he means the kind of stuff that Y Combinator is funding. Software stuff, mostly — probably a bunch of machine learning projects that promise to finally invent a machine that does more than rotate, plus maybe one or two discount-rate materials science startups (I hear you can make quantum dots in room temperature water these days).

He might be right! But even if he’s not, what glorious hubris.

Imagine meeting a child running a lemonade stand. She’s proud of her lemonade, and why not?

“In fact,” she says, “I think there’s a pretty good chance that this lemonade is going to be the only thing that people drink from now on. I mean try it.”

You do. You have to admit it’s pretty good.

“On the whole I’m excited and humbled to have finally solved the beverage problem. But it won’t be an easy transition for everyone! I mean, for me it will be, I’ll be fabulously wealthy, ha ha.”

It seems polite to join in the laughter so you do.

“So I’ve been thinking,” she continues, “That the responsible thing to do is to invest a portion of my profits into researching how to remediate those negative effects. If I don’t, I think it’s pretty likely that the children of soda manufacturers, for example, will wind up dying in the streets. And before they die, they could riot. It would be hugely disruptive.”

You remark that that sounds like it would be bad for business. She locks eyes with you with a sudden intensity, in way that inescapably says: I knew you would understand.

Imagine thinking you and your buddies are so smart that your efforts are going to make most other human endeavor pointless. It must be sort of overwhelming. I’d probably feel compelled to hire a postdoc to do something about it, too.

Obviously this is not the only reason people support UBI. It’s not even the only reason people in the software industry support UBI! But, knowing human nature and my industry’s hilarious track record at introspection, I do think it’s possible — juuuust possible — that some programmers have been driven by self-regard into a historical materialist analysis under which their superior intelligence transforms society and creates a permanent, pitiable underclass. UBI is both a compassionate response to this sad calculus and, coincidentally enough, a mechanism by which the vast majority of our fortunes and lifestyles can escape disruption.

Well, I wish us all luck. At the moment there is no reason to believe that any of this is happening whatsoever. But it does seem like the robot car thing might work out.

Still, if you’re worried about the technology industry further immiserating the poor, I would pay less attention to Uber ordering LIDAR units and more to them inviting their drivers to finance their vehicles instead of spending capital on a fleet. I agree that autonomous applications driven by deep learning models written in TensorFlow are much more exciting, but if you really want to avoid screwing over the little guy, Excel spreadsheets are probably the first place to look.

by Tom at June 01, 2016 03:02 AM

iron blogger

My friend and former colleague Paultag has challenged me to participate in a scheme he calls Iron Blogger, which nudges people to blog by fining them $5 per week if they don’t. More posts than usual should follow! And no, this one doesn’t count.

by Tom at June 01, 2016 01:50 AM

May 31, 2016


"House of Reps’ Spending Info Is Now Online as Data" in Demand Progress

Yesterday the House of Representatives began publishing its spending data online as a spreadsheet (and continued publishing it online as a…

by Daniel Schuman at May 31, 2016 04:07 AM

A little math illustrates why providing a modest COLA to congressional staff really should be…

To summarize, my article considers whether there’s a connection between our investment in congress and bad outcomes. You get what you pay…

by Daniel Schuman at May 31, 2016 02:16 AM


Iron Blogger DC

Back in 2014, Mako ran a Boston Iron Blogger chapter, where you had to blog once a week, or you owed $5 into the pot. A while later, I ran it (along with Molly and Johns), and things were great.

When I moved to DC, I had already talked with Tom Lee and Eric Mill about running a DC Iron Blogger chapter, but it hasn’t happened in the year and a half I’ve been in DC.

This week, I make good on that, with a fantastic group set up at; with more to come (I’m sure!).

Looking forward to many parties and though provoking blog posts in my future. I’m also quite pleased I’ll be resuming my blogging. Hi, again, planet Debian!

May 31, 2016 01:37 AM

May 30, 2016


Things I'm enjoying in May

An occasional and arbitrary list of things I'm liking for whatever reason

-Making my own chicken salad sandwiches. Why did nobody ever tell me about the magic that is poached chicken? Takes almost no time or effort, and you end up with shreddable chicken that you can douse in mayonnaise to your heart's content (my dessert island food would probably be pizza, or bread/olive oil/cheese, but a close runner up would be rotisserie chicken dipped in mayo because I'm a disgusting human being). I poached several chicken breasts, shredded them up, tossed them with celery, dill, dijon, mayo, salt, pepper and green onions and ate it served on rustic bread. Great summer meal. 

-Pantene Pro-V Triple Action Volume Maximum Hold Hair Mousse. Just a great mousse for fine hair. Does all the things a mousse is supposed to do (more volume, body, holds any styling you do) but doesn't feel crunchy and gross. 
-This is sort of a weird recommendation, but the restaurant Carmine's in DC's Penn Quarter. I always thought of it as a huge tourist trap - it's a giant, theatrical, old-school-style Italian looking place that's always packed with out of towners and (on the night we went) prom date kids. Well, I recently had my own group of out of towners in town (a family reunion) and I was tasked with some logistics, one of those being to find a place to have a private room hold 25 of us for dinner. Carmine's fit the bill, and the food was actually... magnificent. The thing I can't stop thinking about is their chocolate torte, which is the best I've ever had. I will scour the internet to its ends looking for that recipe. Anyways, recommended for groups. 
-NPR's Pop Culture Happy Hour podcast. Have I recommend this before? Perhaps. Anyways, I don't listen to every episode because some stuff discusses things I don't care about or haven't seen (mostly comic book stuff; Hamilton) but I know it's good because even though I friggin hated the most recent Captain America (I'm the only person in America), I really enjoyed their podcast on it, because they are thoughtful, funny people and I like the things that come out of their mouths. 
-These fake Vans-style shoes from Target and these flats from Target. They're both comfortable and oh so cheap and when you inevitably wear them into the ground this summer, you just purchase them again.
-Running. I'm sloooooowllllly easing back into it after really not running much after October's marathon. It really just proves to me I, unlike many people out there, PREFER running in the disgusting summer weather. I like it. Bring on the sweat. I'm thinking of signing up for a half marathon in September, so we'll see where it goes. 

by catherine at May 30, 2016 06:40 PM

May 28, 2016


Thoughts from a person who just started watching Game of Thrones

(Though I've read all the books. Though I've also forgotten almost everything that happens in the books.)

First half of season 1 responses:

-They literally say "winter is coming like 17 times an episode." This seems like overkill.

-Catelyn Stark makes some real bad decisions. What did she THINK was going to happen if she captured Tyrion? Did she not even consider the myriad issues it would cause her husband/daughters? From what I remember of having read the books, she continues to make bad decisions. Her and Cersei. Get it together, leader women.

-So many boobs.

-The depiction of the Dothrakis seems... problematic. 

-I don't know how she progresses in the rest of the seasons but the casting of Emilia Clarke as Daenerys never sat right with me. Too wide eyed and boring.

-Can you imagine just not seeing people for like 10 years? And then you're like 'hey bestie I missed you.'

-Why had John Snow never seen the Wall if it wasn't that far of a ride up from Winterfell? (At least it didn't seem like it was that far of a ride the way episode framed it.) He got screwed.

-Bran is annoying. 

-The theme song is great and everybody should listen to the Song Exploder podcast episode on it.

-How many candles do you think they go through on an episode? Like, literally thousands. 

-How come John Snow gets to bring his dog to the wall? You can't get married or have sex but you can have a dog? OK Night's Watch. Let's have some consistency.


by catherine at May 28, 2016 08:18 PM

May 23, 2016


The Icky Democrat(ic) Party

There is a weird difference in how Democrats and Republicans refer to the Democratic Party, and it comes down to the suffix “ic.”

by Daniel Schuman at May 23, 2016 09:01 AM

May 22, 2016


How to have a delightful solo vacation in Charlottesville (without a car)


The post I wrote earlier this year about taking a solo vacation was noticed/reread by a couple of other friends this week, so I thought it would be a good time to revisit the subject. As timing would have it, I treated myself to a little solo vacation in Charlottesville just last week. Want to do the same for yourself? Here's an itinerary. (If you don't feel like reading through the narrative, I've compiled all the places I visited and dined towards the end.)
I find Charlottesville exceedingly walkable (if you're staying downtown nothing is really more than a 20-30 minute stroll away), but your mileage may very. And if you do want to visit wineries, Monticello, etc., you will need a vehicle. 
Drive down midday with your coworkers for two days of business meetings. (Bonus, when you don't own a car of your own, this is a very convenient way to get down to Cville.) Go to Studio IX, a lovely coffee shop and coworking space in a former textile mill warehouse space. You can rent their conference rooms by the hour or day. Have enormously productive work meetings! 
For dinner, go to Oakhart Social (this is a really buzzed-about place, and it was solid, but we found it just pretty good, not great). That said, it's still pretty cute, the atmosphere and cocktails are awesome, and the pork belly and pizzas were good.
Wander to Downtown Mall, have several beers at Citizen Burger Bar. Too many several beers. Consider second dinner; don't. Walk back on a pleasant spring night to hotel.
Assuage work beer hangover with giant bagel from Bodo's on the corner (I went for an onion bagel with lox and cream cheese and a large lemonade. Magic). Go work back at Studio IX for a few more hours. Studio IX happens to be in a larger complex housing a lot of other cool things, including Brazos Tacos, a nice little taco joint. Get lunch there. Work a few more hours. Bye, Studio IX! Bye, work!
Go to your Airbnb in the neighborhood of Fifeville. Nap. 
Then treat yourself to a nice evening out: oysters, an IPA, and a custom cocktail at the excellent Public Fish & Oyster just up the street. Walk over to Belmont to have tapas and a margarita at Mas (order the shrimp, the dates, and the boquerones). Have a leisurely walk home through the Downtown Mall, where the free Fridays After Five concert series is taking place, with lots of folks and children milling about, listening to the music. Get a butter pecan ice cream cone at Chaps Ice Cream, where the same woman who served you ice cream 15 years ago when you went to UVa is still doling it out and calling you honey. 
It's coffee time. You're going to get so much coffee. Head up to Sheepdog Coffee, in the new-to-you Graduate, a boutique hotel that's taken over the old Red Roof Inn space next to Mellow Mushroom. Get a La Colombe cold brew. Walk down towards the Downtown Mall because it's time for more coffee. Stop in Milli Coffee Roasters for another iced coffee.

YOU ARE VERY CAFFEINATED AT THIS POINT. It's also time to eat something, because you haven't technically had breakfast yet. Stop over at Marie Bette Bakery for two -- yes, two -- croissants -- one almond, and one ham and gruyere. Walk around a bit on the Corner, indulging in the easy rhythm of nostalgia -- oh, that's where -- oh this is different -- oh, that's the same -- and enjoy the sunshine, which feels like the rarest pleasure of all.
Saunter back home and decide you have time for a quick run around campus. Lace up shoes, wheeze around for three miles, surprised at the fact that Charlottesville is hilly. Did it seem so hilly when you were running through it at 21? No, no it did not. Run past the Rotunda -- still under construction, sad face -- and down the lawn. Run past your old house of senior year -- gosh, it's not even there anymore! -- and the houses of your other friends -- they're still there, and, shockingly, even more decrepit when you all lived there. College students have not gotten more discerning with time, it seems. 
Shower, change, and meet your friend right before a giant thunderstorm rolls through town for your most excellent meal yet, a beer, some bread, and a giant prosciutto pizza at the neapolitan pizzeria Lampo. Eat entire pizza by yourself while rain slams against window, then clears up as quickly as it came in.
It's time for a nap after that, then you meet your friends again at a lovely park and hang out with their kids for a while (you're full, from previous entire pizza, but they've bought delicious savory and sweet pies from the Pie Chest to snack on). You leave them and stroll up to the Livery for a beer on the downtown mall, then Tavern Grocery over on Main Street, which has this stunning atmosphere -- dark wood, gas lights, low ceilings, right out of Thomas Jefferson's time for a beer and some fried oysters, then sneak downstairs to this "secret" speakeasy you read about online (so, not really secret) called Lost Saint for a cocktail at the bar.
It's bedtime after that, then it's Sunday, and you have time for only one more breakfast. It's gonna be Ace Biscuit & Barbecue for a pork belly breakfast biscuit. You scarf it down, run to the nearby Bodo's for a bagel with walnut raisin cream cheese for the trip back, run to the Amtrak, hop on the 11:17 train back to Washington, DC, and google Charlottesville real estate the whole way home.
Where to go:
Bodo's Bagels
Marie Bette
Ace Biscuit & Barbecue
Lunch or Dinner: 
Oakhart Social (modern American, very hipster-y atmosphere)
Mas (tapas)
Public Fish & Oyster
Brazos Tacos
Lampo (pizza)


by catherine at May 22, 2016 10:43 PM

May 18, 2016


"House Appropriators Turn Back Public Access to CRS Reports, but Not Without a Fight" in Demand Progress

Today the House of Representatives’ Appropriations Committee debated two amendments that would make Congressional Research Service reports…

by Daniel Schuman at May 18, 2016 02:22 AM

May 17, 2016


May 16, 2016


How to Give Your Job Announcements Legs

What to include when your post announcements on your website — and how to do it

by Daniel Schuman at May 16, 2016 01:14 PM

May 08, 2016


The Time I Screamed at Thom Yorke

Radiohead launched their new album, A Moon Shaped Pool, just an hour or two ago. I listened. It's got a couple of good tunes on it but overall is pretty boring. That's a fact. That's also my stance on The King of Limbs. Those things are facts. But obviously they are basically still one of the best bands in the world. 

Most of you who have been reading for a long time know that in my youth, I was a kind of intense Radiohead fan. Like from ages 15-22, I was basically a groupie. I followed them up and down the East coast and saw them play like 12 times in a few years. My email still is pablohoney at gmail dot com (a holdover from when PabloHoney was my AIM screen name). Now, I'm old and boring and my back can't take standing for hours at concerts (and the last time I saw them live was I think in 2012, when they played the Verizon Center). But they 100% still have a special music-shaped hole in my otherwise cold and dark heart.
So in honor of the new album drop today, I will tell you the story about how I once screamed like a crazy person at Thom Yorke to play "True Love Waits."
It's a simple story. My Radiohead groupie friends that I developed via the internet (one of whom is now an elected official, and most of us grew up to be semi-respectable) (and yes, people were meeting on the internet back in the 90s, we had listservs and chat rooms and everything old is new again) and I went up to New York City to watch them play a couple of shows at Radio City Music Hall. I think this was in 1998, so I would have been 18. Because I was 18, and had stamina, and energy, and lacked cynicism, and held people as idols, we actually waited outside of Radio City Music Hall literally all day before the concert in hopes of running into members of the band. 
It worked - I met Stanley Donwood, the artist who creates most of Radiohead's album and concert/poster art. I met their drummer Phil Selway (the awesomely embarrassing experience of which you can read about here). 
At one point, Ed O'Brien, the guitarist, perhaps most well-known as The Hottest Member of Radiohead, came out of one of the side doors after their soundcheck. I am embarrassed to say, I literally sprinted after him (along with some other fan I did not know, who was ON CRUTCHES AND MOVED LIKE A SPEED DEMON) to go get his autograph. Dreamy.
But it immediately became clear that Ed had been deployed out of that side door to try to act as a decoy to distract attention from Thom Yorke, who followed out after. My friends were yelling at me to come back as he, imp-like, scampered into a waiting SUV, clearly terrified by all of us adoring maniacs. In my memory, I basically threw myself against the door of the car, screaming and crying, though I sincerely hope the interaction wasn't that desperate and insane. 

At that time, an unreleased track had been floating around called "True Love Waits." They'd played it a few times live and it really gained a following amongst fans. It was included on A Moon Shaped Pool as the last track and I just listened, and much prefer the original version, a very sweet, simple, acoustic song usually played solo by Yorke. 
So as Thom Yorke raced to hide in his giant SUV, smiling nervously at the small throng of dedicated Radiohead weirdos, I, in my Radiohead bear t-shirt and flared jeans that I distinctly remember wearing because I thought they were cool, tried to make very serious eye contact with him through the car window and screamed, "PLAY TRUE LOVE WAITS TONIGHT! PLAY TRUE LOVE WAITS!" Yorke nodded nervously and waved, and the car sped off.
They did not play "True Love Waits." I feel like that was my fault, because Thom Yorke probably feared me like, assassinating him if he did, taking it as some sort of sign that we had a mental connection. Oh well. Can't say I regret any of it. 

by catherine at May 08, 2016 07:54 PM

April 28, 2016


"So Long, THOMAS" in Demand Progress

The Library of Congress announced that the legislative information website THOMAS is scheduled to stop functioning on July 5, with Congress…

by Daniel Schuman at April 28, 2016 02:45 PM

April 21, 2016


"Thoughts on Public Access to CRS Reports and the Next Librarian of Congress: Watching Hayden…" in Demand Progress

Yesterday I sat behind Dr. Carla Hayden as she testified on her pending nomination as Librarian of Congress before the Senate Rules…

by Daniel Schuman at April 21, 2016 02:21 PM

April 05, 2016


be gentle to their servers and mean to their lawyers

I didn’t like this article about ethical screen scraping very much, and said so on Twitter.

Well, you asked for it.

Screen scraping is the automated collection of information from the web. For our purposes, let’s assume it’s public information. Stuff you can load in your web browser, using an incognito window and a pasted URL. Stuff meant for ungated human consumption.

When might it be unethical to systematically collect this information, which is being published freely? I can think of a few scenarios that might qualify. If your use of the resource makes it unavailable to others, that might be unethical. This could happen if you hammer the server, but it could also happen if you mirror and resell a database that someone has spent money amassing and maintaining, undercutting them and destroying the model that sustains the resource for others.

What if the owner simply doesn’t like the way in which you use their information? Some people think this is a workable way of limiting how information is used. For example, they feel that public tweets shouldn’t be quoted by journalists if the tweets weren’t written with widespread distribution in mind. In a screen scraping context, a realtor site might be fine with you shopping for a home but less excited about your collecting price data to power an analysis of gentrification.

I think that these kinds of implicit rules about how information is used are at best impractical. Well, okay, that’s my diplomatic framing. I really think the sentiment is prudish, illiberal and ludicrous. The transfer of knowledge is not zero-sum and we should err on the side of preserving that miraculous quality. But some people do think along opposing lines.

And although there is very little legal support for their idea that such limitations should be the default way that our society works, it’s certainly possible to impose arbitrary limits on what people do with information you give to them if you can get them to agree to a contract.

This brings us to screen scraping.

You have a right to use information you’ve been told

Liberal society works because facts belong to everyone. Unless you have a very good reason not to, you need to believe in your right to use published information. You need to believe in your right to think and speak freely about the things you have perceived. This is how our civilization works; it’s how our minds work; it’s how reality works. Don’t give up this belief without a fight.

Fuck their contracts

Nearly every website has a terms of service document. These are typically contracts of adhesion that say you can’t use the site at all unless you agree to a ton of fine print, which will often include a prohibition on automated data collection and probably other things you will do in the normal course of using the web and sustaining belief in a modicum of personal rights. They’re also sometimes called “clickwrap” licenses, a rough category of legal agreements that people mindlessly agree to through implicit action when they use software (or when they broke a seal during unwrapping, back when software came in boxes).

This is fundamentally outrageous. You do not enter a contract when you walk into a store or open a book. But the law around websites was born in a later and worse age, when we let them get away with this kind of shenanigan. To a point.

Just because a company puts something in a TOS doesn’t mean it’s legally enforceable. Google probably can’t require you to murder a stranger as a condition of accessing your email, for example. They may not even be able to force Gmail users to permanently forego their right to sue if a self-driving car runs over Fluffy (though Google’s lawyers will certainly try). When the fight lands in front of a judge, who will determine which outrageous overreaches are allowable, Google’s case will be stronger if its lawyers can prove you read and understood the contract terms prior to violating them. I am not a lawyer, and you should consult a real one rather than relying on my advice. But reading the TOS may not do you any favors.

The CFAA is bullshit

Outside of any contracts you mistakenly agree to, the Computer Fraud and Abuse Act is the primary vehicle by which scraping might get you into trouble. Let’s let the EFF explain:

The CFAA is the federal anti-hacking law. Among other things, this law makes it illegal to intentionally access a computer without authorization or in excess of authorization; however, the law does not explain what “without authorization” actually means. The statute does attempt to define “exceeds authorized access,” but the meaning of that phrase has been subject to considerable dispute. While the CFAA is primarily a criminal law intended to reduce the instances of malicious hacking, a 1994 amendment to the bill allows for civil actions to be brought under the staute.

This is a stupid, arbitrary law, and you are potentially violating it every time you use the internet. You should be aware that it exists in the same way that you are aware sharks exist. But you shouldn’t let them stop you from going in the ocean.

Not asking questions is a great way to avoid dumb answers

This is tricky, I know. If a site operator might be excited about your project, getting their permission might unlock better data, save you time, and avoid subsequent fights. But if they’re antagonistic or even just *surprised*, they will instead ask their lawyers how they should respond to your request and their lawyers will (eventually) tell them to say “no”. Then you will have no plausible way to claim that you didn’t know you shouldn’t collect the information. Worse, the publishers will be on their guard.

If you think the site operator might want to work with you, you should ask for their help. If you’re not sure, you should instead ask yourself if you have an ethical claim to the data. The site operator is not necessarily the appropriate arbiter of that question. At Sunlight we encountered endless situations where the site operator was not the information’s rightful owner. Government sites, hosting public information, with robots.txt files forbidding automated collection? To hell with that. It’s wrong.

The stakes matter

I say all of the above blithely and confidently, and I think it’s good advice for the audience to which the original talk was aimed: journalists. It is decidedly not how I approach these questions in my professional life, at least not these days. I work for a private, for-profit enterprise. We’re trying to make money. We have the resources to be careful, to buy licenses, to read contracts, and to be worth suing.

And while I’m proud of how much work our company does to add to the public good, we are not investigative reporters or nonprofit activists. Perhaps more to the point: if we callously take someone else’s information and they come after us with a decent argument about it, no one will shed tears for us.

If you are acting on behalf of a corporation, talk to your counsel, then talk to their counsel, then work out an agreement. Take it from Gawker, getting deposed isn’t as fun as it sounds.

If you are a journalist, a hobbyist, an activist, or really anyone seeking knowledge rather than wealth: scrape that site. Teach us something. Try not to be a jerk about it. It will probably be fine.

by Tom at April 05, 2016 02:49 AM

March 19, 2016


Managing complexity: encoding the tax code

I put together an interactive tool to explore the U.S. individual tax calculation.

Here is a screenshot of the most basic tax form. You can click through to and add components for kids, check the boxes to add components for a mortgage, student loans, rents and royalties, and so on.


What inspired me to develop it this far is that I showed an early draft to friends and colleagues, and for the most part their reaction was complete indifference.

Taxes are not something you understand, I was told, they are something you do. Every year, you stuff numbers into a black box, and the black box spits out a single owed/refunded number, and that’s what taxes are. There is never any need to intuit how the tax system works.

But tax law is of central importance in governance—nobody jokes about the inevitability of death and parking enforcement. And title 26 of the US Code (herein, the tax code) is arguably the most complex part of the law. What does it take to be an informed citizen or policymaker in this context?


Try it yourself

Here are some fun exercises (really) you can try with the graphical tax explorer linked above:

Q: You can’t deduct large real estate losses—they’re limited by a function of income. But you can reduce your AGI (adjusted gross income) via a student loan interest deduction. Does using the student loan deduction loosen the limitation on real estate losses?

Q: The child tax credit is also limited by a function of income. Does the student loan interest deduction affect that limitation?

Q: Can you receive EITC (earned income tax credit, a subsidy to the poor) and pay the alternative minimum tax (a limit on the wealthy) at the same time?

After you try it with the graphical version, see if you can answer the same questions using this format or this format.

Understanding matters

There are tax analysts who hate the word loophole, under the presumption that every quirk in the tax code was deliberately put there by a policy maker, but errors in managing complexity seem inevitable. When you read about how MegaPlusCorp saved fifty million dollars on their taxes by some very specific trick, you can ask whether it was a choice by legislators to allow it or a failure to manage complexity—a loophole.

Setting aside the lawmakers and the multinationals, the code is filled with exhortations to average users to do things differently. The mortgage income deduction is an incentive to take out a mortgage, the EITC is read as an incentive to work, the child tax credit is an incentive to have kids under seventeen. But if there is no way for a taxpayer to know the effect of these incentives, they aren’t really incentives.

What’s worse, they could come off as lies. “They told me that if I buy this house I’d have a tax bill that’s $1,000 lower, but deducting my house expenses did something I don’t understand to my child tax credit, which teaches me that the tax system is haphazard, random, fixed against people like me, and just plain corrupt. I’ll vote for any politician that promises to burn the whole thing down.”

It is a corollary of the principle that transparent government is good government: the more opportunities citizens have to understand the tax code, the better off the entire system will be. Wouldn’t it be great if civic hackers had a reference implementation of the tax code around which they could write what-if calculators for consumers or businesses, a policy analysis tool using IRS SOI (statistics of income) data, still more infographics, or tools for in-person tax prep for all the tax clinics that pop up this time of year?


In 1913, there was a two-step encoding process to tax law: first, legislators would write the tax code, then the IRS would write a 1040 translating the law into practice.

In the present day, we now add one more encoding, rewriting the law in the form of tax calculators, including the IRS’s Free File Fillable Forms (FFFF, or if you’re in a bad mood, FFFFF). And it is the final encoding, the one taxpayers see, that matters. Consider what would happen if FFFF and 26 USC disagree on some minor detail. Can you imagine IRS imposing penalties on somebody who correctly followed the form instructions but owes taxes under the tax code?

So legislators write the tax code in legalese, then the IRS re-encodes 26 USC in the Byzantine language of tax form instructions, then others re-encode the tax form instructions as executable instructions that people actually use. Policymakers have a harder time of it all because of the multiple re-encodings, individual taxpayers lose interest and tune out, and the big corporations exploit the encoding difficulties to find loopholes. How could we streamline the sequence of multiple re-encodings? My tax graph and the underlying cell database are some potential alternate encodings one could use to understand the process of taxation; what others can we invent?

by BK at March 19, 2016 02:53 PM

March 07, 2016


Reflections on Outreachy

I’ve written about Outreachy a number of times, but since today was my last day, I feel it’s appropriate to write one final summary post. Who doesn’t want a chance to tidy up all of their thoughts and put a nice bow on it?

Outreachy is a program dedicated to getting underrepresented members of the tech community involved in open source software through paid internships with partner companies. Much to my excitement (and surprise) I was accepted as Cadasta’s Outreachy intern for the winter session. I had been teaching myself to code for less than a year but had absolutely fallen in love with it, so I quit my job to spent three months at the Recurse Center in order to fully immerse myself. Armed with enough knowledge to get by but not enough real experience to be dangerous, Outreachy was an exciting next step towards becoming a full-time developer.

I don’t know that I would have had the confidence to pursue coding as a career without the opportunity that Outreachy provided. Part of me was terrified at the thought of doing another internship. Right out of college, I got two internships back to back that both showed me (rather quickly) that the field I thought I wanted to get into was not for me, but they also didn’t feel like a solid step forward. I wasn’t fetching coffee, but the work I was given was minimal and intern (i.e. error) proof. Going into Outreachy I expected something similar. I expected to be handed an endless list of bugs to fix, and to be told exactly what to do, when to do it, and how. It made sense. I didn’t have a lot of experience. Why would I expect anything different?

Day one I found out how misguided my expectations were. Everyone at Cadasta was unbelievably welcoming, and I was given responsibility for the entire Field Papers user interface redesign, with the expectation that it would be treated the same as any other project. I was provided with guidance by people who advised me on where to start, who pointed me in the right direction when I got stuck, and helped me make the final decisions along the way. I had walked in expecting to be handed a blueprint, but was instead asked to write the blueprint, build the scaffolding, and make the final touches. Admittedly, it was a little nerve-racking, and I kept expecting someone to stop me once they discovered I was sort of winging it.

But that was the point: this was an opportunity to learn how these projects work in a supportive and educational environment. I learned how to work with multiple companies on a single project, and that the end results of working with a team are vastly better than when you work alone without feedback. I learned to reach out frequently along the way to make sure I wasn’t getting too attached to any one idea in particular or getting off track. I learned how to work collaboratively and substantially on open source projects that had a real impact beyond bug fixes. Most importantly, I gained confidence in my own ability in a way that feels tangible because I can point to a project that I completed, that got the approval of multiple people along the way. The opportunity that Outreachy and Cadasta provided for me is invaluable, and I can’t thank or recommend them enough.

March 07, 2016 12:12 PM

February 24, 2016


February 20, 2016


On links to court filings

Dear Media,

It’s time we had a talk. Because you’re hurting democracy.

Yesterday, over lunch, I had a lovely conversation with some colleagues about the recent controversy over Apple’s intention to oppose a court order related to unlocking an iPhone in connection with the San Bernadino tragedy. We debated some of the technical aspects of encryption, the legal principles underlying the Fourth Amendment, and the policy implications of the court order. But, it turned out, none of us had read the actual order that Apple was opposing.

As such, I did what I typically do. Google: "judge order apple". There were many links to news articles about the controversy. For example:

To a certain extent, much of the news I read and hear comes from these three outlets. I listen to NPR in the morning. I have a subscription to the NY Times. I live in Washington, DC. These are also large, sophisticated organizations, with commitments to journalistic integrity. They also are hip to the Internet, taking their digital platforms seriously.

Here’s the thing, though. Although these news articles were about a federal judge’s order, none of the articles had a link to that order.

Perhaps you could chalk this up to a selection bias. Maybe I’m just reading the wrong sites? As it turns out, they are not alone. Here are three other TV media outlets with the same problem:

Even a legal media outlet couldn’t be bothered.

Kudos, though, to TechDirt, which actually provided a copy of the order and included the full text. It’s a model for how it should have been done by everyone.

As far as I can tell, it is somewhat normal in journalism to refer to legal disputes and not link to the primary filings in question. It’s not always the case, as evidenced by the most-recent article from the New York Times about the “sharply worded, 25-page motion” by the Department of Justice. But it’s normal enough.

This norm should be flipped. When court filing is the subject of a news article, the absolute default should be a link to an archived version of the file. Here’s why:

From the journalist’s perspective, it should be a no-brainer. One of the standards of the Society of Professional Journalists Code of Ethics is to “Seek Truth and Report It” and to carry out this standard, the SPJ recommends that journalists “Provide access to source material when it is relevant and appropriate.” It would seem wise—if not obligatory—to link to the underlying court filings when they are the subject of an article.

From a legal perspective, there is no good reason not to make a copy of the court filings and link to them. After all, court filings enjoy no copyright protections.

Making a copy of court filings solves another problem, too: expanding legal access. Unfortunately, despite being in the public domain or protected by fair use, many filings exist behind a paywall; providing a publicly available copy of a file will increase public access (not to mention future discoverability) to the law. To the extent those case filings that are not already on the internet behind a paywall, there’s even greater reason to make a digital copy and share it.

Finally, making a publicly available copy helps to prevent link rot of legal documents.

From the public interest’s perspective, the failure to include links harms democracy in the long run. There are many conversations about the politicization of the judiciary. One of the most incredible features of the American judiciary is its commitment to the written word. And one of the reasons for emphasis on writing is ensuring the legitimacy of those decisions. If those decisions are not published or readily accessible when they are the subject of public attention, the institution of the courts — and by extension, American democracy — is harmed.

Which is to say, in addition to harming the journalists’ and lawyers’ professional interests, the failure to cite case filings in news articles harms democracy itself. And providing a link to a copy of a court filing is so easy. If you’re a journalist, for democracy’s sake, just drop that link into your article. Thank you for your attention to the matter.

February 20, 2016 12:00 AM

February 12, 2016


Handling remote work - pair programming with Cloud9

As my Outreachy internship moves along, and I’m learning just how much I love remote work. I love being able to set my own schedule, take a nap when I need to, cook during my lunch break, and workout when then gym’s not crowded. Also, my couch is really freakin comfortable.

I was initially worried about remote work because I love pairing with people. I can happily work by myself and look up answers when I get stuck (my google fu is on point), but the way that I really cement knowledge is by pairing with someone who knows more than I do. It’s a way for me to double check my assumptions, and clear up any confusions that I might have been glossing over. There’s also a really good chance I’ll learn something random, like new bash commands. I had gotten really used to doing this at Recurse Center because they encourage you to do it as much as possible, and I was worried about losing that opportunity when I started working remotely.

Enter Cloud9

Cloud9 was built primarily as an all inclusive development environment in the cloud. While this is great and all, it’s not really why I’m excited about it. I’m excited about it because it allows multiple people to work on the same project at once. It’s different from screen-sharing programs like Screenhero which constrain you to literally sharing the same screen. Cloud9 allows you to work on the same files, but yours screens don’t have to mirror each other. If we’re both looking at the same file, I can see the other person’s cursor and what they’re typing, but I’m not constrained to looking only at the file that they’re looking at. Pair programming I’ve done in the past is has consisted of one person talking and one person driving. This is definitely a different experience. I end up just saying my thought process out loud as I type, and then when I get stuck or want to see how they would do it, I ask. If we run into a bug, we can look in two separate areas and cover ground faster. While it does occasionally lead to both of us working on two separate things rather than both being engaged in one task, it feels more efficient and still provides the safety net of being able to ask questions and watch as they come up with solutions. The one glitch is that we both share the same terminal window, and whoever’s window happens to be smaller constrains the other person’s terminal. So my tiny laptop is seriously limiting to someone who has giant two monitors set up. They don’t handle private .files, so you have to edit these in the terminal using vim, and the server is pretty slow getting set up, but overall it is a pretty nice system. My favorite part: they handle merge conflicts like a dream.

I don’t know that it would ever replace the work that I do on my local machine, but it certainly makes collaborative programming easy, and provides an environment that both a sublime and an emacs users can agree on. I give it two (or four if you’re pairing) thumbs up.

February 12, 2016 03:00 PM

February 05, 2016


First Major PR for Outreachy

It’s done!

Well, sort of. This week I submitted my first major pull request for all of the work I’ve been doing on Field Paper’s UI. After two months of drawing up mocks, working through experiments, and putting together a working product, Ian and I finished putting all the pieces into something that’s actually functional. Is it any good? We’ll see, but at least it works!

During this last chunk of the process I’ve been learning enough Rails to get by. I’ve worked with Node and Flask in the past, so I have a solid understanding of the basic model view controller structure. I understand what routing is, and how to use template languages such as Jade and Handlebars. When I initially started going through the Rails tutorial, it seemed like familiar territory. But imagine setting out on a cross-country hike, and expecting to come across some challenges: a forest to stumble through, a mountain to scale. However, when you get there, someone’s already cut a clear path through the forest and put up a nice fence with a few benches along the way in case you get tired. They’ve also installed an elevator at the bottom of the mountain, so all that climbing gear you’ve been caring around now seems silly and useless. That’s how I felt learning Rails. I’ve implemented user accounts in the past using Passport, and all of the other libraries that are required to create secure user accounts, and along comes Rails with it’s magical User model generator and has_secure_password. It’s very disorienting and makes you almost feel like you’re no longer involved in the process. It’s not that the elevator to the top of the mountain isn’t nice, you’re just vaguely suspicious because you can’t tell how it works and can’t see who’s operating it…

In the end I slogged (or strolled) through, and learned just enough Rails to be able to reconfigure my static Field Papers experiment into the original Field Papers ecosystem. Once it was up and running, it was time to re-write basically all of the CSS I had previously written. If I was going to fully integrate my changes into the original project, I needed to work with the asset pipeline, rather than try and shoehorn my !important changes in. After fiddling with a full-length menu, at the recommendation of both Chandra and Ian, I switched to an accordion menu. One of my favorite things to do in my spare time is learn how to build fancy things in CSS from other people on CodePen. I ended up not only learning how to build an accordion menu, but also re-learned how to create triangles and arrows in pure css. (Sometimes, I think CSS is really cool. But don’t tell anyone.)

See the Pen Accordion Menu by Lindsey Jacks (@linzjax) on CodePen.

There’s still plenty of room for improvement, which is why we’re currently conducting a survey to get feedback from the community. We’re hosting a demo platform where you can checkout the options for the side menu, as well as try out the UI experiments I rambled about in the last blog post. Though the process is nowhere near complete, I’m really excited about the progress that I’ve made so far. This project has ended up being a really exciting challenge and a great way to solidify my skills and confidence. It feels really good to be able to point to something and say “I built that, and it’s actually helpful to other people”.

Until next time!

February 05, 2016 12:12 PM

January 25, 2016


Admitting you don't know

Have I bragged about Recurse, or Outreachy lately? Oh, I have? Well, I’m going to do it again.

Reason #142 (or whatever) why I’m thankful for Recurse/Outreachy:

Recurse provided me with the courage and enthusiasm to admit when I don’t know something, the excitement of being presented with completely new information, and the hubris to know that I could tackle any challenge put in front of me if given enough time and support. Saying “I don’t know what that is” has become one of my favorite phrases. It’s not admitting defeat, it’s not revealing the fact that I secretly know nothing (buzz off imposter syndrome) - it’s an opportunity. They get to feel good about explaining something, and I get to learn something new. It’s a win-win situation.

When I initially got into programming, I started in python, but it never really clicked for me. I spent the entire time wondering how the user was going to interact with it. What were they going to see? So, I switched to JavaScript since front-end had a greater appeal to me. However, now that I’m comfortable with JavaScript, I find myself worry about the exact opposite: Now I’ve got something pretty the user can interact with, but it doesn’t actually do anything. So when my mentor Ian took away my JavaScript crutches and asked if I wanted to learn Ruby on Rails I responded with a hearty “Hell yeah!” (ok I said something a little more of a professional like “Sure, I would love to”, but that doesn’t make for good blog rhetoric). I knew, due to the learning environment Outreachy and Cadasta had set up, this would be the perfect time to try something completely new. So being able to work with someone on back-end, someone who I’m actively encouraged to ask my stupid/basic/fundamental questions, is perfect. It’s been great having Ian and everyone else at Cadasta be so responsive to my “I don’t know” questions.

##Why the thought of leaving this comfortable bubble worries me:

I’m learning so much, and I’m having so much fun in this internship, but I’m aware that all good things must end. With March around the corner I’ve (unfortunately) started thinking about my next steps. While I’m excited about the prospect of finding my first “big kid” tech job, I’m concerned I’ll never find an environment like this again. I had forgotten that RC and Outreachy/Cadasta are the exception, not the rule when it comes to culture. I went to a JS meet up the other day, and I was surprised at the people I talked to that felt the need to puff their chest out when talking about their experience. It felt like they were walking around with a giant “try me” button.

The majority of the people were lovely, very excited about the work that they were doing, and just happy to be surrounded by other like-minded programmers. The moderators were amazing, and overall I had a ton of fun. However, those few people were an interesting reminder that a safe learning environment is not a guarantee. How do you foster a learning environment if people are secretly terrified of being discovered as frauds?

I think Recurse Center’s social rules go a long way to solving this problem - no feigning surprise in particular. It makes it okay to admit ‘I don’t know’ something, and creates a culture of excitement around introducing someone to something new. Rather than “HOW HAVE YOU NOT HEARD OF X, Y, AND Z?! HAVE YOU BEEN LIVING UNDER A ROCK?!” You get “OMG X, Y, AND Z IS AMAZING! COME! LET ME TAKE YOU ON A JOURNEY! YOU’RE GONNA LOVE IT!” It shifts the focus to building others up instead of putting them down. Who knows, maybe there was someone else who didn’t know about x, y, and z either. Now they get to learn something new rather than thanking their lucky stars they weren’t stupid enough to ask the question.

I feel like it would be tough to judge this attitude in an interview process where admitting you don’t know something feels like writing a giant ¯_(ツ)_/¯ as an answer to a test question. Questions about mentorship and continued education only go so far as boiler plate answers, and besides, who says “nah, we hate that stuff” to a question like that. How do you really find out about the culture before signing on the dotted line?

The solution?

I actually have no answers to this so…. ‘I don’t know!’ (see what I did there?). So if anyone has any suggestions I’d love to hear them!

January 25, 2016 12:12 PM

January 08, 2016


Outreachy and the messy reality of UI

I had set aside my sketchbook, put the finishing touches on my wireframes, settled on one of them, and sat down to build a stand alone version of Field Papers. All my brilliant ideas for an improved UI were dancing around in my mind, excited to be turned into a reality that users would be thanking me for for years to come. Then, like a kid who’s finally discovered that Santa’s not real, I realized that nothing was as simple and glittery as I had hoped.

Okay, so I’m being a bit over-dramatic. Still, there’s nothing quite like that sinking, humbling feeling of reality setting in. It turns out creating the perfect UI for Field Papers is a messy ordeal. It’s a nice reminder that I am, in fact, still learning. However, the perfectionist in me was none too pleased with this situation.

Let’s take a journey together on my train of thought, to see what happened as the project went along:

Grid stays centered.

My biggest beef with the old Field Papers was that the grid didn’t move with you as you panned around, so let’s fix that! Everything is nice and centered, and when you go to add more rows and columns the map politely zooms out to let you cover the area you’re trying to access… oh wait, what if that’s not the are you wanted to cover? What if you zoomed in to the exact area you wanted to cover and now you’re frustrated that it’s zooming and jumping all over the place? Hm… ok…

Grid stays front and centered the entire time.

This is perfect. It’s like looking through the lens of a camera. You find the area you want to cover, add rows and columns to fit your desires, and voila! All done. It’s only covering the area that you’re looking at, no obnoxious jumping around, the grid and the map are now two totally separate things. Simple, easy, no bells and whistles. But wait… the zoom on Leaflet is really aggressive, so it’s really hard to get just the area that I want to cover.


Grid stays front and centered the entire time with a resize scaling button in the corner.

Alright, the grid stays in the view your looking at, and now you can adjust the size of the grid to exactly what you needed it to be. Just one whistle, that’s fine, nothing too complicated. Wait… What if because of how far you had to zoom out to keep it centered, you have no idea what you’re actually looking at? You now can’t tell what details are in each individual square!

…. okaaay…..

Grid stays front and centered the entire time with a resize scaling button in the corner and ability to lock it in place.

Ok, this time I’ve got it. The grid stays in place unless you lock it in place, which gives you the ability to pan and zoom without the grid moving at all. Wait, this is just the old UI with less mobility! Ugh, and now all of my calculations are wrong, and things aren’t able to update the way that they should, and what if…

What if situation [x, y, z, fish, etc]??

There are so many caveats. So many! This spiral went on for quite some time. Something I had pictured so perfectly in my mind was slowly falling apart in front of me. After a nice cup of warm tea and a chat with my mentor Ian, he helped me come to the realization that it doesn’t have to be perfect. In fact, it doesn’t even have to be great. It just has to be better than what’s already there. Besides, how are we going to know what works best without other people messing around with it and pointing out all of its flaws? We can worry about fine tuning and nitpicking in future iterations, but there’s no need to start pulling hair out just yet. It would be unreasonable to expect a perfect UI first go around, without any user input or research. This is a process with many steps involved, and I shouldn’t (read “can’t”) skip any of them.

After taking a few slow, deep breaths, I’ve started winding up my initial ui-experiments into something not perfect, but good enough. I’ll hopefully be passing them off for other people to debate about in the near future. In the mean time, Ian suggested that we work together to learn a little bit of Ruby on Rails, and I’m super excited! Full-stack here I come!

Until next time!

January 08, 2016 12:12 PM

January 03, 2016


New Years Cliché

Oh New Years.

A time for delusional fantasies and misplaced hopes. At least it provides motivation for me to finally get a gym membership. If I missed out on months of beautiful running weather because I “wasn’t feelin’ it”, there’s no way in hell I’m going to convince myself to go running when New York finally decides it’s time for winter. Maybe between a half-baked new year’s resolution and a $20 a month fee I’ll finally get my butt back in shape again (not that my butt doesn’t already have a lovely shape, but you know).

Eye-rolling sighs aside, this really is something I need to do. My health isn’t what it used to be. My stomach can’t handle eating three slices of cheesecake a day, no matter how hard I might try. Feeling tired, exhausted, and a kinda sad all the time is not really how I want to spend my time. So, after a few difficult goodbyes to my junk food collection and an awkward re-acquaintance with my tennis shoes (“oh, it’s you again…”), I’ve decided to start this blog as a way to keep myself accountable.

My Goals

Honestly, no section should start with “My Goals”. “What I hope to accomplish if maybe, for once, I can hold myself accountable to something longer than it takes to say ‘gosh my bed is warm’” would be much closer to the truth. Anyway…

30 Day Reset

My biggest problem is that Hashimotos has been kicking my butt for over a year now. My lab results are normal, but my gut and my brain are telling me otherwise. I’m going to stick to a 30 day reset with the AIP Protocol in an attempt to straighten things out, see how I feel, and then slowly introduce things back in.

Go to the gym (more than once)

Biggest perk of being in NYC: there are two gyms on the same block that I live. No excuses. If I’m spending $20 a month on a gym membership, I need to spend 20 hours a month (at least) in there. My knees aren’t what they used to be, and having a job that has me stuck at a desk for eight hours isn’t exactly helping me maintain my current physical status.

Learn to play the guitar/tennis/rock climb/etc…

I miss music. I miss being active. I used to be really good at both of those things, and it’s darn well time I brought them back into my life. Going to the gym is all well and good, but it should be for the goal of helping me get better at an activity I love, or don’t know that I love yet.

Get a tech job

I’ve dug my grave, now it’s time to lie in it. I quit my job, jumped off the deep end, and now it’s time to convince not only myself but others that I have skills that are useful and employable. I’m going to finish reading Eloquent Javascript, I’m going to stop having panic attacks at every Leet Code challenge, and I’m going to finally understand algorithms. Gonna do it!

Stop spending hours on social media

Why do I do this? Why do I care? It’s like my brain doesn’t know what to do if it’s not constantly entertained. I’m going to get a bedside clock so that I’m not tempted to stay in bed and stare at my phone. I’m going to start being more aware of my knee jerk reaction to open those apps. I’m going to find something more useful with my time.

There are so many other things that I could list here, but I feel like this is a good start for the next few months, which is how I’m going to do this. A year is a very long time, and can seem daunting. A few months though, that’s not bad. I can reward myself after a few months, re-evaluate my goals, and start again. We’ll see how it goes!

January 03, 2016 12:09 PM

December 24, 2015


Research, Rethink, and Redesign

“Avoid pixel-pushing at all costs – your job is to solve problems. View your work through that lens at all times. […] Accurately defining the problem goes a long way towards solving it.” - J.P. Onori

Getting started

It’s week three of my internship with Cadasta, and I have been working on a complete redesign of the UI for Field Papers. Field Papers is an open source mapping tool that allows users to select areas on an atlas grid to be printed out, taken into the field, and then loaded back onto Field Papers. The concept of Field Papers is simple in theory, and it wasn’t until I started actually trying to improve it that I realized how complicated it was, but I’ll talk more about that in the next blog post (teasers!).

As I started digging into Field Papers there were a few seemingly simple issues that stood out to me:

1) The map was way too small to actually be able to successfully navigate the atlas grid positioning.

2) The atlas grid movement was completely disconnected from the map movement, which was confusing.

3) The process was broken down into three separate steps, and could be consolidated into a single page site.

4) Adding rows and columns was complicated by the fact that the buttons ran away from you as you clicked on them.

Following the suggestion of my mentor Ian, I focused on three ways to solve most of these problems: “demodalisation”, “big map” and “better UI interaction model”.

Demodalization involves combining all three map composition steps onto a single page, and doing away with the “wizard” mode. Big map, rather unsurprisingly, consists of turning the current tiny map view port into a full screen map view. This will give the user much more flexibility and room to maneuver. Creating a better UI interaction model has turned out to be much more complicated and less straight forward than anticipated. But, again, I will discuss this in more detail in my next post.

Addressing these issues needed to start with creating a full screen map display that could incorporate all possible map interactions onto a single page. Rather than jumping straight into building, I started with research, sketches and wireframes.


My first task was to see what other people were doing.

  • [Examples of other websites with large scale maps. Most of them include a large side menu.]

Turns out that there’s not a whole lot of variation in the world of full screen maps. Unfortunately, there can’t be. If the goals is to allow the user to interact with the map, layouts and menus should be as unobtrusive as possible. There’s no need to be clever and cute. Just get out of the way.

After examining what the current trends are, I came to a few conclusions:

Only use lightbox menus for specific purposes.
There were a few sites that used them for every action. It turned out to be distracting and frustrating. Not only were they in the way of the map view, they didn’t allow me to quickly flip back and forth between actions.

Icons without explanation can be more confusing that they’re worth.
I’ve run across this in a few apps, where in attempt to be as clean and streamlined as possible they turn all of their buttons into icons. This is all well and good, but only if it’s extremely clear exactly what each icon represents. (I’m looking at you viscocam….)

Placement of menus should be simple and consistent.
Having menus along all four walls of the browser window feels cluttered, and doesn’t allow your eyes to rest. Try to keep it limited to two walls.

Having the option to toggle whether or not the menu is visible is nice.
However, and this goes along with the icon point, it should be clear how to trigger this interaction.

Separate actions into different menus only if it makes sense.
You want to make sure the separations make sense and are organized in a manner that’s not confusing to the user.

If you’re ever uncertain, include a help section.
If you think any of the interaction or icons might be confusing, include a help section. Heck, even if you don’t think it’s confusing, include a help section.


After my initial research and with these notes in mind, I settled down to do a quick 20 minute sketch session. The purpose of this exercise was to get as many ideas as I could in the allotted time, and to not stop until the timer was done.

Sketchy sketch is sketchy. #outreachy #noideawhatimdoing

A photo posted by Linz Jax (@linzjaxx) on Dec 9, 2015 at 8:56am PST

This exercise prevented me from spending much time focusing on any one idea, which prevented me from becoming attached and letting that influence all of my subsequent decisions. It also prevented me from worrying about completing each design idea. That way, when I started building wireframes I could choose the best options out of a pile of ideas and then allow myself to finish them. A lot of the sketches ended up looking the same, but they still fed ideas once I actually started building out the models. There aren’t many options when it comes to being unobtrusive, and that’s ok.

During this process, I also brainstormed different ways each interaction could be designed. When does a dropdown vs. buttons make sense? Are there ways that tasks can be separated into different actions (map adjustment actions vs. saving and note-taking actions).



Once I was done with that I moved onto wireframes. I used Balsamiq to build my wireframes, and oh my gosh it was magical. Incredibly easy to use, and little to no learning curve. Since this was the first time I had really worked with a wireframing tool, I started with the initially suggested design (with a few tweaks of my own). After that, I tried to implement as many different designs as I could, and ended up with about eight. I tried to make several that were very different, as well as a few I knew just straight up wouldn’t work. I wanted to build these anyway just to see why it wouldn’t work and what it was about these designs that made me uncomfortable.

These are a few examples of uncomfortable designs:

Image one: You can’t see anything because the text lacks a background. Also, by placing the menu all the way around the edges your eyes are never given the chance to rest.

Image two: The design just feels old, and while the positioning of the options are similar to the original Field Papers, it doesn’t feel like an improvement.

Image three: While initially I liked this design, it still presents the problem of tasks being separated a bit too harshly. It also doesn’t allow the user to write notes until they’re done with the map, which is not ideal.

After pushing myself to come up with as many ideas as possible, I was then able to narrow down my selection to three, and have a much better idea of why I preferred these designs over others. These were my final three:

This first one combines all of the task into one side menu. Everything is in one place, easily found, and always present.

This second one separates all of the actions into their own icon, allowing the user to think of them as different components to be tweaked on at a time. Stays as unobtrusive as possible.

This third one combines the first two ideas. It separates the actions into two categories, and provides a more solid menu to navigate.

After talking it over with the Cadasta team, we ended up deciding on the first one. It ensures that all of the options are present, and completely removes the issue of modalization that was so problematic with the initial Field Papers.

Final thoughts

I was glad that I had the time to spend on going through this process. It allowed me to really think through all of the decisions I was making, rather than just running with whatever idea popped into my head first. Also, designing out in the open was valuable because it prevented me from developing this idea that these designs were mine and precious and private. It allowed me to get comfortable with other people’s thoughts and opinions, and my designs only improved as a result.

So on to the next step! I am currently working on building a stand alone version of the tool to see how it actually behaves. Up next: The messy reality of UI.

Until next time,


December 24, 2015 01:33 PM

December 22, 2015


Star Wars

I think Ezra’s right about the commercial mechanics of comic book movies (though I think this is partly due to origin stories being the only filmable comic book stories). But this is not what the new Star Wars movie is doing. Or I hope it’s not.

Retelling a story is one thing, but quoting it is another. The Force Awakens isn’t taking the timbers of the original franchise and building a new house around them. It’s self-consciously constructing a scale model.

There are two ways to interpret this choice. One is that Disney has cynically decided that the things that fans love and will pay for are incredibly specific moments: lightsabers Force-flying out of snowbanks, father-son showdowns on perilous catwalk bridges, precision bombing runs to disable shield generators. The evidence for this perspective is the numerous otherwise-pointless fanservice notes that movie invokes (the holographic chess game on the Millennium Falcon comes to mind) and the colossal amounts of money at stake.

The other interpretation is that the series’ new architects are reestablishing the franchise’s structure, rebuilding a framework badly damaged by the careless renovations in the prequels. The only creative advantage to having such structures — cumbersome, constraining sets of rules and obligations — is that you can subvert them. The evidence for this is pretty thin, and basically boils down to JJ Abrams not being a hack and everyone involved being smart and rich enough to want to play the long game.

Wishful thinking means I’m leaning toward the second option, hoping for a Rey dark side turn and subversion of the franchise’s focus on a small royal family by making Finn the new trilogy’s (Force-less) hero. But who knows. As Yglesias says, we won’t know if this new movie was good or bad for some time. Sure was fun, though.

by Tom at December 22, 2015 08:40 PM

December 10, 2015


Hello Outreachy

It’s been two months since I applied, one month since I found out I got accepted, and four days since the beginning of the Outreachy internship, and yet somehow, somehow I’m still in denial about the fact that it’s actually happening.

But it is.

How cool is that?

So I’ve set aside my denial and decided to tell the world about my Outreachy journey. (Also, it’s a requirement of the internship, but I would have done it anyway. No really. Don’t look at me like that.)

As I was finishing up my batch at the Recurse Center, reality was starting to set in. If I really want to turn this hobby into a career, I have to start convincing other people (and myself) that I know what I’m doing. Outreachy seemed like a great place to start.

For those that don’t know, Outreachy is a project that works to help underrepresented members of the tech community get involved in open source. You get to spend three months working with one of their partner companies on a project they’ve outlined. Open source has been an integral part of my journey to become a developer (see my previous post for more open source banner waving), and I was excited by the opportunity to continue working within the community.

So here I am, and I am so excited to be working with Cadasta! I’m thrilled to have the opportunity to combine design and development as I work with their team to rethink and redesign Field Papers’ UI. Over the next few weeks I’ll be blogging about my progress and musings along the way.

First installment: Research, rethink and redesign.

Until next time!

December 10, 2015 12:09 PM

December 06, 2015


Apophenia v1.0

A package announcement; kind of a big deal for me (and I hope for others). The first draft of this post was originally dated 1 January 2014.

by Ben Klemens at December 06, 2015 12:00 AM

November 18, 2015



We had been feeling cross about Uber. This is, by far, the subject about which Steph and I fight the most, as the service’s admittedly poor routing prompts different and conflicting reactions from us. She cannot resist reaching across gaping chasms of culture, language and basic navigational competence to put our drivers on the right path. I prefer, in characteristically nonconfrontational style, to quietly abandon myself to fate, gladly surrendering a few hundred meters or cents if it saves everyone some embarrassment.

This was the first Uber we had taken in Paris–hoofing it from Île Saint-Louis to Canal Saint-Martin seemed unappealing, especially since we’d dawdled longer than we’d planned. Mostly the ride was great. Our driver Radhouan spoke no English but was impeccable at piloting a black sedan while wearing a suit and bald head, in exactly the way that people in movies often do before being beaten up by Jason Statham.

Our plan had been to start at the south end of the canal and pick a restaurant as we walked north. Instead, Uber’s geocoding dropped us closer to the Porte Sainte-Martin.

uber trip in paris :-(

We walked a few blocks past tiny, packed restaurants, many featuring diners sitting outside under heaters. The neighborhood was clearly cooler and younger than the tourist-filled center of the city where we’d been spending our time.

Soon we reached the canal. I thought it was obvious that most of the restaurants would be south of us, but Steph wanted to go left and I was already in hot water for my poor piloting of the Uber app. So left it was. As we walked, a police car’s blaring siren tore past us, headed south, and I made a lame joke about it not being very romantic.

The restaurants were indeed more sparse to the north, so when we found Les Enfants Perdus we quickly went in.

Five minutes, we were told. No problem: the bartender looked like he knew what he was doing. I ordered a Sazerac. Not-particularly-soon-after we were seated uncomfortably close to an older couple, just past the bulk of the bar.

When did it stop being a regular meal? I’m not entirely sure. The wait staff locked the doors at some point, but I thought perhaps dinner service was ending. Waves of additional emergency vehicles sped south, but this was a city, after all. Snippets of English kept reaching us from across the room, containing increasingly alarming words. With growing frequency, the sound system erupted in booming, buzzy hums as the staff swapped out iPhones to take calls and send urgent texts. Bit by bit, we all stopped looking at our companions and food and began staring into our smartphones.

Les Enfants Perdu

I’d drunk enough to want to make off-color jokes on Twitter, so I set about doing that. Steph and I didn’t think there was much to be done but to wait out the emergency, so we ordered more drinks and more dishes, which were slower and slower to arrive.

The rumors in the room and online intensified. We soon heard about the siege at the Bataclan, though not yet the full extent of that horror. But people were saying this was not all, that drive-by shootings were still occurring, that a new attack was unfolding at Les Halles, far from our restaurant but quite close to our apartment. No one denied that gunmen were still at large.

It did not seem safe to go outside. Soon, the staff acknowledged what was occurring: a blonde waiter without much English did some comic capering to lighten the mood, and his colleagues assured us that the restaurant’s large glass windows were bulletproof, which seemed unlikely. The neighborhood was now cordoned from traffic, they said; there would be no taxis. The owner announced that everyone was welcome to stay, but the staff would call the hotel a block away on our behalf if we’d like.

We stayed. Many diners left for nearby cars or short, furtive walks home. Eventually only four or five parties remained. The staff asked us to assemble at one table and assured us again that there was no need to leave. They opened some bottles of champagne, they put on the Beatles’ White Album. The doors were declared to be definitively locked, and cigarettes appeared as if by sleight of hand. The blonde waiter sat down with us, said he had given away his tickets to that evening’s show at the Bataclan, and began weeping. I watched as Steph comforted him. I continued to check my phone.

By two AM, I was thinking seriously about sleep and how glad I was that the restaurant’s back room decor featured padded benches and implausibly fluffy pillows. But our fellow diners were restless. Group by group, they decided to walk. We checked the hashtag that the media had been writing about, the one by which Parisians were offering refuge to those stranded on the street. Useless. Steph called some of the nearby hotels, but they couldn’t help.

So: bikeshare. There is a Velibe station in front of Les Enfants Perdus, but not one that takes credit cards. Our maître d’ led us through a block and a half of empty streets, and then several pages of inscrutable French bikeshare menus. We looked with fear into every car that passed.

I hope I will never see Paris that empty again. Police cars prowled the streets, activating their sirens every other block. And there were people, more than I expected, but all walking in the same direction or huddled in doorways, speaking urgently into their phones.

The Velibe top gear is much better-considered than D.C. bikeshare’s, and we plunged through the streets. Outside a nightclub people were massing, piling into cars. I remember desperately wanting to get away from them, from any group of people, any crowd. But otherwise the ride felt quiet, urgent, unpanicked.

A wrong turn dropped us too far west, in front of a police station across from Notre Dame. Men in police jackets were milling around on the corner, looking unsure of what to do, as if the real cops, headed to Saint-Martin, had told their little brothers to put on ill-fitting departmental jackets and do their best. We biked past the cathedral, finding more police guarding the monument–some sitting near-invisibly in nondescript cars. Ever since landing our Americanness had been reliably detected from hundreds of meters away, and this was no exception. The cops saw us, but melted from our path.

We dropped our bikes at a station next to the Seine and crossed to Île Saint-Louis, immediately feeling safer for no good reason. Soon we were in our apartment.

I kept thinking about what I’d read: that people in the Bataclan had sent messages begging the police to come, that they were being executed one by one. That was the thought that horrified me more than any other. But soon sleep came. I woke up feeling no wiser than the morning before.

by Tom at November 18, 2015 03:17 PM

November 11, 2015


Reflections on Recurse Center

And just like that it was over. If you had told me a year ago that I would quit my job, move to New York and attend a completely self-directed three month “writers retreat” for programmers, I would have laughed nervously and not made eye contact. Yet here I am, makin’ eye contact like a pro. It’s been an unbelievable three months. I’ve made an amazing group of friends, and learned so much it makes my head hurt to think about it. I went into Recurse thinking GUI was a way to describe brownies and came out of it being able to comfortably construct full-stack applications like a boss.

Reflecting back on my experience, I realized that there were a lot of things I wish I had known, or maybe had a heads up for what to expect. So, for future Recursers: here are my thoughts. Hopefully they’ll help someone.

1. It’s ok to spend time just learning.

When I got to Recurse I was asked over and over again “So what are you working on?”. It wasn’t until the second half of my batch that I realized this is Recurse equivalent of “how are you doing?”. It wasn’t meant to be intimidating. It wasn’t meant to suggest that I had to have a project idea right then and there. It was genuinely because people were interested. That being said, it was still horribly intimidating. I barely knew enough JavaScript to put together a tictactoe game. How was I going to come up with a full scale project?!

I’m going to tell you a little secret: what you’re working on doesn’t have to be a project.

I spent the first few weeks going through Node.js, Mongodb and Express tutorials, making sure that I really understood how they worked, and only then did I start working on projects. Recurse isn’t a startup factory, you don’t need to constantly be churning out some shiny new thing. It’s good to set goals, and it’s goood to have things you want to accomplish, but a good project could be going through all of Eloquent JavaScript.

However, make sure you don’t spend the entire time with your nose tucked into a tutorial. Find someone else who wants to learn the same thing. Find someone who already knows about this stuff and ask them questions if you’re confused. There are people at Recurse. Use them.

2. Don’t be afraid to ask questions

When I first got to Recurse, I was terrified of asking questions. Being rather new to programming, I assumed my questions were stupid, I was wasting people’s time, and they were silently wondering what the hell I was doing at Recurse if I didn’t already know these things.

After finally getting up the courage to start asking, I was amazing at how excited people were to help. Recurse is filled with people that are interested in learning, and excited about others learning as well, and they want to help! Rather than banging my head against my keyboard hoping Google would come up with some magic tutorial, I could ask someone to explain, and then continue to explain if I didn’t get it the first time.

Now, I’ve learned to love the phrase “I don’t know what that means”. You always learn something new, and if that person isn’t quite sure either, you get to learn together! It’s the best.

3. Work with other people

Pairing with people is scary. The first time I did I found myself replaying it in my head going “Oh god was I annoying? Did I slow them down? Was this actually something they wanted to work on?”. What I can tell you now is not to worry about it. Talk about what you’re interested in working on ahead of time and make sure that you both have the same goals. If you want to dive deep and really understand things, and they just want to finish the project, you’re not going to have a great time pairing. If you didn’t enjoy pairing with someone, don’t worry about it. If they don’t ask you to pair again, don’t worry about it. It’s all a learning experience, and there are no wrong decisions, except the decision not to work with anyone while you’re there. Mostly because you need to know how. If you want to program as a career, you need to know how to pair, and Recurse is a safe place to practice.

4. Shits and giggles programming is just the best

There were several times that I was working on a “real” project, hating my life, and finally ditching it to build something fun and stupid. These fun and stupid projects ended up being some of my favorite. It’s okay to have fun. It’s okay to build something useless just because you feel like it.

5. Learn to walk away

If you’re staring angrily at your computer screen, slamming your keys desperately trying to fix a bug that you know would be easily fixed if you could just figure out what the stupid thing is doing wrong. Walk. Away. Get up from your seat, pace the room, grab a cup of tea, ask people if they’re interested in a coffee run, anything. Just walk away. Your brain has this amazing ability to figure things out, but only if you give it a chance to recuperate. You’ll be amazed what comes to you after you’ve walked away.

6. Talk to people!

I’m the worst at networking. I think it’s silly and I find small talk painful at best. However, for the first few weeks of Recurse I made it a point to talk to as many different people as possible. It was scary, but everyone was incredibly open, and I learned a lot about my fellow Recursers. One of things that makes Recurse unique is that everyone is “the new person”, so they’re all looking for someone to talk to. It’s like a beautiful hand crafted artisanal friend group made specifically for you.

If you feel like you haven’t really made connections with anyone immediately, give it time. Some of my best friends from Recurse I didn’t talk to until the second half.

7. Do things that scare the hell out of you.

All of the following points lead into this: Practice being brave.

Recurse is one of the most supporting, loving, non-judgmental environments I’ve ever been in. No one’s doing a “thing”. No one’s looking at you funny. Everyone’s going to be excited when you join in and try new things. Before Recurse I had never sung a song at karaoke by myself. Ever. Not once. But the first karaoke night I decided I was going to do it because everyone else was having fun and no one cared that we weren’t going to be auditioning for American Idol any time soon, and everyone cheered so loud after every song that you felt like you were the biggest rock star in the world. My voice cracked, I was scared out of my mind, but I survived. Not only did I survive, I got thoroughly addicted.

While this point acts as a plug for karaoke night (please keep this tradition going!), it’s mostly to highlight the importance of doing the things that scare you. Avoiding things because “you’re not good at them” is silly. It’s a fixed mindset that’s going to keep you from rocking out like Christina Aguilera wishes she could. Be brave! Do things!


Recurse is amazing. You’re amazing. You’d make a great pair. If you’re thinking about going, you totally should. If you’re still unsure, or have more questions, please don’t hesitate to ask me anything. I have so much advice and many stories to share. My next blog will be on the scary bits of Recurse (don’t worry, they’re not that scary). Until then,


November 11, 2015 06:30 PM

September 18, 2015


ad blockers won’t be a big deal

One of the few downsides to attending a conference in Asia is that when the English-speaking world is waking up and beginning to groggily think serious thoughts, you will have just returned to your hotel from a reception with free beer, which you will have had sort of a lot of. The food here is spicy enough that beer availability is a basic amenity, like electrical outlets or ventilation. Korea is a great country.

Although fundamentally delightful, this dynamic can push your level of Twitter cantankerousness out of global circadian sync. Last night it led me to wade, intemperately, into the Great Media Ad Blocker Freakout of ’15.

This morning I woke up and resolved to be a better, more understanding conversational partner. It was easy enough to identify the pieces influencing everyone’s thinking via the Today in Tabs Media Monoculture. But these pieces are surprisingly bad!

Here is The Verge’s Nilay Patel bringing the kind of tech blogger tunnel vision that can turn a wristwatch into the fulcrum of conscious experience. He thinks this minor iOS feature is best understood as a major chapter in the Manichean conflict between tech company nation-states. Here is The Awl’s Casey Johnston relaxing into the newly-minted blend of evocative GIFs, Marxist analysis and depressive fatalism that has made her employer the web’s most prestigious purveyor of media industry commentary. She never mentions pop-up blockers or points out that non-Safari webviews aren’t affected. The other pieces just don’t make any fucking sense.

Notwithstanding the App Store rankings of the new iOS ad blockers–which are better understood as a measure of download acceleration, not velocity–I doubt that all this handwringing will be justified by the number of ads whose lives are actually cut short. But let’s suppose that’s wrong.

Ad blockers work by preventing your operating system from speaking to ad networks’ domains. Those domains are where the ad network Javascript lives, which gets added to the page and loads the images or video or flash for the ad (among other things).

You could make ad blocking much, much harder by serving this Javascript from the same domain as the page content. Ad networks don’t want to do this for two reasons.

Their first objection is about control. It’s coming from their servers, it’s their Javascript, and they get to make the decisions. Handing these Javascript responsibilities to publications would introduce a big support headache and would require the networks to police the code to ensure it isn’t modified. Their Javascript is often inexcusably shitty, and modifying it would be a great idea, so publishers might be tempted to do so. Personally, I would be very excited to see this devolution of technical power.

Their second objection is about capability. Something called the same-origin policy means that when you visit the site cannot detect that you have visited However, if both pages include Javascript from, your path between sites can be observed. This allows your behavior to be tracked, and enables the networks to assign you to segments like “auto buyer” or “likely golfer” or “pervert”.

You can pull off tracking while serving everything from a constellation of publisher domains, but it’s not trivial to do so. Many publishers would need a hosted solution to handle these engineering details, and this is where the Awl’s paranoia about a totalitarian Facebook dystopia starts to look a bit plausible.

The hypothesized migration toward a central Facebook-like architecture has a cyclical fat/thin client whiff about it, and I suspect the pendulum will swing back before too many of us are forcibly grafted to Oculus Rifts. But then again I earn my living in a different industry and have the luxury of waiting to form a conclusion.

Still, I’m unconvinced that audience segmentation is actually good for publishers. The goal of segmentation is to target ads efficiently. But efficiency means achieving a result with fewer resources than you otherwise might. In this case, those resources are the very things that pay for all those tickets to XOXO. (I’ve meandered toward this point before.)

Besides which, there’s a convincing case to be made that ad efficiency is meaningless. A roughly constant share of the economy goes to advertising:


Maybe some of the spikes in those graphs came from VCRs or loudness regulation or FTC actions or the payola scandal or Tivo or pop-up blockers. But I doubt it.

So. Could ad blockers damage or destroy some publishers? Yeah, this seems possible, particularly for niche publications with geeky audiences.

Could ad blockers hasten Facebook’s ingestion of the media industry? Sure, maybe. Kind of seems like a long-shot but I know a lot of people are freaking out about this.

Could ad blockers shift spending to TV or print, overwhelming trends toward mobile and away from cable? Kind of implausible, don’t you think?

Finally, will ad blockers reduce the size of the ad dollar pool, shrinking the total resources available to content creators? Flatly: no.

ALSO: Matt’s post is characteristically excellent.

by Tom at September 18, 2015 06:24 AM

July 28, 2015


rotation is great but someday machines will do something else & it’ll be amazing


Yglesias has just published a great post about robots’ persistent failure to put us all out of work. You should go read it immediately, forsaking any activities that contribute to GDP.

This is part of Matt’s thesis, of course: that information technology is contributing to welfare in ways that don’t show up in productivity numbers. This makes some sense. Right now the digital music player on my kitchen counter is humming some vaguely new-wavey Millennial band, and by doing so offering me both greater control and higher fidelity than its radio forebears. Those differences are not necessarily captured in its price tag.

On the other hand, I spent part of Sunday reading a great Wired story about sneaking paper maps out of post-Soviet Russia, smuggling briefcases full of cash into Parisian cafes while trailed by KGB agents. It sounds like it was considerably more trouble than I had this morning, when I researched, located and priced out Slovenian geospatial data from their government’s (non-English) website. It took me about one and a half cups of coffee to get through it, which were much more pleasant than flying across an ocean and maybe getting injected with polonium (the Parisian cafe bit sounds okay).

Still, I think Yglesias is probably right: there’s value showing up off the books, there’s goofing off, there’s overstatement of the importance of the IT-relevant section of the economy, and there’s genuine value being created. And it looks like it’s been a mistake to just assume that the last effect will surely swamp the others.

This makes IT innovations a different beast from affirmed productivity boosters like HVAC and dishwashers. Those things manipulate actual atoms, and seem to produce wealth and surplus time in a way that software might not.

Here’s the thing, though: from a certain perspective, those are pretty much all the same machine. You can create an astounding number of things with a motor and some switches and some surrounding plastic and metal bricabrac, including not only the aforementioned appliances but your dryer, refrigerator, automobile, running water, vacuum cleaner, garbage disposal and washer/dryer. Lately these appliances been tarted up with LEDs and microcontrollers, but they all come down to a fairly simple switch mechanism detecting input and, when appropriate, setting a motor turning. Powered rotary motion has been a great friend to humanity (not least thanks to the satisfaction to be had from an afternoon spent browsing websites about mechanical linkages).

But even the noble rotary motor has its limits, tasks that humans can do but which we cannot plausibly harness the awe-inspiring might of rotation and switches to accomplish. Preparing good meals, cleaning bathrooms, navigating road traffic–all of these require a bit more finesse. Or at least a much more complicated collection of switches and motors. Perhaps we won’t be able to deliver that finesse, but it sure looks like we’re close. The Roomba knockoff in my living room isn’t perfect, but it really has dramatically reduced the percentage of time I spend on certain classes of housework.

I won’t dwell on autonomous vehicles. But c’mon. Even the most curmudgeonly unmanned vehicle skeptic can buy a startlingly cheap drone. Even he must admit that we could deploy slow, unmenacing delivery droids to toddle along our sidewalks today, if we weren’t so convinced that actual cars, with all the inalienable rights American society affords them, were just around the corner. A truly enormous economic class of atom-moving will be converted from labor to capital in short order. It will involve information technology, yes. But this will be no Facebook.

And from there, who knows? I’m not sure that Asimo will be scrubbing my toilet anytime soon; perhaps one of his descendants will lift my withered body back into its goo-filled pod after every fresh organ installation. Moving atoms around is very hard if you’re facing a problem you can’t cheat your way out of with photolithography, and I doubt that a Google Car will be the harbinger of robotic burger chefs.

Still. The car thing. That will be a big one. We’re going to notice it.

by Tom at July 28, 2015 01:43 AM

July 01, 2015


VPNwatcher for OS X

Swap out “Transmission” for your own VPN-sensitive client, obvs. Assumes Viscosity or another client that creates a tun0 interface.

while [ 1 ]; do if [ -z "`ifconfig | grep tun0`" ]; then ps ax | grep -i Transmission | grep -v grep | awk '{print $1}' | xargs kill; echo "killed process at `date`"; exit 1; fi; sleep 1; done

by Tom at July 01, 2015 02:55 AM

June 01, 2015


Soylent Sherry Negroni




  • 1 tsp soylent
  • 1 tsp simple syrup
  • 1 oz Palo Cortado sherry
  • ½ oz Rosso Vermouth
  • ½ oz Campari


Combine Soylent and Simple Syrup. Create what I’m going to start to call “Soylent Syrup”. Enjoy that one, folks.

Add ice to a rocks glass, pour Soylent Syrup over ice. Add Sherry, Vermouth and Campari. Stir. Garnish with an orange twist.

Big thanks to Matthew Garrett for sparking this one.

June 01, 2015 01:21 AM

May 11, 2015


HTTPS: the end of an era

Mozilla, the foundation that maintains Firefox, has announced that it will effectively deprecate the insecure HTTP protocol, eventually forcing all sites to use HTTPS if they hope to use modern features.

This essay explains why this was such depressing news to me, why this shift marks the death of a way of life.

Part 0: HTTP vs HTTPS

If you know the difference between HTTP and HTTPS, you can probably skip this part.

But for those of you not into tech acronyms, HTTP is the hypertext transfer protocol that your browser uses to talk to web servers bringing you data. It is relatively simple, to the point that if you have a way to inspect the packets of data as they come down the wire, you could read the web page right off of them. Those packets are being sent down a long series of routers between you and the web server, and there is a not-insignificant chance that somewhere along the way they are being inspected or stored by criminals, overly aggressive advertisers, the US National Security Agency, or some bored creep somewhere.

Thus HTTPS, the secure version. Via HTTPS, the site you are connecting to (herein, because I don’t feel like inventing something clever) has some associated encryption codes, and your PC (or phone or watch or whatever contraption you are connecting with) uses the codes to encrypt all data before sending it, and the other side sends encrypted data back. So all of the packets are basically illegible to any of the many parties that handle those packets, but are legible to you and the web server at

But what if the NSA intercepts your connection, tells you it is, and tells your PC to use NSA’s preferred encryption codes? You send data encrypted with NSA keys over the wire, the NSA decrypts and records your data, then passes it on to, and passes’s requests back to you after recording those. You think nothing is wrong, but the man-in-the-middle (the NSA) has read all your communications, rendering all that encryption useless.

So you can’t trust the data until you get the right keys, but you can’t trust the keys as being from until you get some other verification, but then how do you trust that other verification? The solution is a signed certificate registering the identity of There are a small number of certificate authorities providing such trustworthy certificates, and your browser knows them by name.

The current state of the world is that there is a mix of HTTP and HTTPS. Your bank uses HTTPS (and if it doesn’t, get a new bank immediately). But works in plain HTTP, so snoops could determine for what locations you are checking the weather. Mozilla’s security team is taking its action to nudge the Web in the direction of being 100% HTTPS.

Part I: The introvert

But this is a post about people, not security keys, so let’s talk about introverts.

Introverts are the dark matter of the social universe. If you measure the world of people by easy means, like meetup groups or Facebook pages or tweets or people who are willing to pick up the phone when an unknown person calls with a survey, you will get a massive undercount of introverts. Nobody ever shows up to Introvert Club meetings.

But every introvert has a family, so that is your most likely means of running into an introvert. When somebody tells you stories about the aunt or grandfather who doesn’t get out much (invariably accompanied with some comment about how they’re a little odd), there’s your introvert sighting. Most introverts have jobs or go to a school, so you might be able to sight one or two there. They try to stay quiet and out of the way, and are often forgotten. At five o’clock, they disappear from the social grid.

So, you’re an introvert with some creative energy. Just because you don’t want to hang out with pals doesn’t mean that you have no curiosity about the world. What could you do?

In the last couple of decades, the answer to the introvert’s dilemma was easy: get a computer and learn to code. Like a novelist (another popular introvert career path), you can create a new world using only words. Being an introvert is even beneficial here, because writing good code is time-intensive and you don’t have idle socialization competing for your time.

This is where I was as a kid. I couldn’t build physical things, because I’m a klutz and we didn’t have the money for parts. I was socially inept, to say the least. But I could spend time at the school computer lab, and I could borrow time on the PC of a friend who probably only put up with me because we’re both named Ben.

I don’t really remember what I built, and doubt any of it was very good. I recall writing something to draw Mandelbrot sets, and some basic physics stuff. It doesn’t matter; what does matter is that I liked doing it, and it felt better than the alternatives.

I sometimes worry that I’m stuck in fifth grade, where I got lots of positive feedback for being good at solving little problems and writing code-like things. I certainly still spend most of my time doing things along those lines.

I felt that same sense of empowerment all over again when I had access to the web. I was granted, back when the world was loose enough that Caltech’s sysadmins could hand out domain names like that, and a pal and I typed up a joke site for the Caltech Divinity School, with some verbiage about the physical chemistry of transubstantiation. The dozen people who saw it thought it was funny.

The Caltech Divinity School web site. It uses an HTML table which my pal was never quite happy with.

Of course, I built my do-it-yourself site on a laptop built in a factory, running an operating system, with a text editor and a network stack that could serve files to users. None of that detracted from the sense of DIY wonder of it all.

What kills that DIY wonder? Pulling out a credit card dampens it. Filling in registration forms definitely dampens it. If a tool is so well-built that solving the problem consists of just starting the tool up, my sense of wonder has gone from “Look what I did” to “Look what these other people did”, which is time-efficient but not especially fun. Building something from Legos takes enough personal effort and small-scale creativity that it feels like an achievement when the thing is built, but an Ikea end table is so pre-assembled that putting it together just feels like a little chore.

Part II: The introvert on the desert island

I spent a lot of time advocating against the patenting of information processing algorithms. If you want more detail on the history, you can read my law review article on the matter (PDF).

In the context here, it is understandable why an introvert would oppose software patents. If I’m sitting at home working on a project, why do I need to even consider checking with an attorney? Now that software has become patentable subject matter, writing code tangles you in the social web of lawyers and patent-holders, whether you want to be there or not. As with the NSA snooping your packets, the question is only whether those holding the patents notice you and decide to take their option of pursuing you.

The maintainers of Debian, a Linux/GNU distribution that emphasizes the freedom of free software, have a number of heuristics to determine whether a piece of software puts undue restrictions on a user, two of which are about introverts (due to preference or circumstance). From summaries from :

The desert island test
Imagine a castaway on a desert island with a solar-powered computer. To be free, software must be modifiable by this unfortunate castaway, who must also be able to legally share modifications with friends on the island.
The dissident test
Consider a dissident in a totalitarian state who wishes to share a modified bit of software with fellow dissidents, but does not wish to reveal the identity of the modifier, or directly reveal the modifications themselves, or even possession of the program, to the government.

Requiring patent licenses to use an algorithm clearly fails these tests, unless you remembered to bring a patent lawyer to your desert island.

To give another test case, consider the “Secure Boot” issue. If you want to have a program on your PC to make sure your data has not been tampered with, you have to make sure the program itself has not been tampered with, so you have to believe that the operating system (OS) that runs the program is secure and un-tampered-with, but how do you trust the OS? The Secure Boot solution is to bake in a requirement on the hardware that only signed OSes may run on the hardware. The Free Software Foundation continues to campaign against this. They have many reasons, but we already have two on the page here: requiring registration with the hardware maker means it is impossible for dissidents or desert island denizens to write an operating system.

It seems like HTTPS would be an introvert’s friend. Yet I run into a great number of web sites out there that are HTTP-no-S. It turns out that setting up encryption is really hard, and you can’t do HTTPS alone. On the part about it being hard, I invite you to work your way through Ars Technica’s guide to getting a certificate and subsequent guide to setting up a web server to use HTTPS.

An HTTPS site can not be built on a desert island network, because you need a signature from a certificate authority. A dissident is screwed, because the dissident must give identifying information to the certificate authority.

The personal information you are required to provide to get an SSL certificate. [ ]

As the second Ars article explained, there are ways to self-sign a certificate. The FAQ from Mozilla (PDF) points out that Firefox has a lot of good reasons for putting up scary dialogue boxes (their term) every time a user goes to a site with a self-signed certificate. If you are a dissident who can’t use a fully-signed certificate, then, you can expect Firefox will put up a “scary” warning to people who come to your site.

A scary warning.

Much like the patent system and the Secure Boot system, an HTTPS requirement means that you have to check with a bureaucrat before you post code you wrote to the world. A kid who wants to ditch WordPress and make up his or her modern and hopefully more fun incarnation of the Caltech Divinity School now has more hurdles in the way.

Part III: Introverts at Ikea

If, as I argued above, introverts are attracted to geekdom more than the general population, then it follows that there is a greater density of introverts in geekdom than the general population. [Formally, given P(geek|introvert) > P(geek), one can show that P(introvert|geek) > P(introvert).]

The fact that geekdom is heavier on introverts than other fields of endeavor means that geekdom needs to care about introverts more than other fields.

We already have some important linguistic ambiguity. Is “the open source community” the full set of people interested in open source, or is it just that subset of people who are sufficiently able to overcome introversion to comment in (potentially hostile) forums? Decisions made in “the community” affect introverts and extroverts alike, but extroverts are unlikely to notice the dark matter around them. It requires an extraordinary step to stop a lively conversation among extroverts and ask who is present but hasn’t spoken loud enough to be heard.

The conversational asymmetry can be important because the archetype of the introvert I’ve described to this point, on the desert island seeking DIY wonder, doesn’t think or work like an extrovert.

Casual conversation among modern hackers has more brand names than a fashion show: “Try my project! You can clone the Docker script from GitHub and it’ll Beanstalk up an Arch instance to EC2 with SciPy/Pandas using Apache Hive to pull from Hadoop, and qGIS serving up maps using an nginx server.”

It makes sense to build using off-the-shelf tools. If you are hand-writing HTML, it just won’t look as good as the HTML assembled by somebody using a good framework that already encapsulates person-years of thought about viewports, fonts, and even color selection (thx, By the end of it all, you’ve signed up for so many services (like Github: “Build software better, together”) that registering for an SSL certificate seems like a drop in the bucket.

I like to think I’ve mostly adapted, but most of the group hacking events I go to have at least one person who learned introverted means of assembling Lego bricks and is completely at sea in the extrovert techniques of looking through catalogs of table legs and screwing them together.

I don’t mean to make a value judgment that the group doing work via pulling-together is somehow morally superior or inferior to the ways of the self-taught introvert. It’s just the typical story of technological progress. The Wright Brothers built their own plane, in correspondence with a few other aviation enthusiasts (see this PDF paper or these PDF slides). But would you board a plane today if somebody told you it was built by two guys in their garage? When you buy hand-made plates or books or furniture, you do so because it has artisanal charm relative to the factory-made versions, but where’s the market for artisanal database back-ends?

The curtain is slowly coming down on the time when one introvert quietly writing code could build something that flies better than anything else. It’s the extroverts who are running the startup, or even the major open source code project, and the focus is less on DIY and more on pulling together stock parts.

But the Mozilla foundation’s HTTPS requirement is, to me, the real end of the DIY era. This is not a closed-source corporation, or a startup pushing its new tool, or the arrogant guy at the hackathon, but the Mozilla Foundation — “Our mission is to promote openness, innovation & opportunity on the Web” — saying that if you are building web pages using tools from your desert island, without first filling in registration forms, then you are doing it wrong. Mozilla Firefox will make increasingly active efforts to block you until you obtain the correct permissions to build modern web pages.

This statement from Mozilla describes itself as “a message to the web developer community”. The introverts on the desert island, the me of the 1990s, the kid of the present day who doesn’t like WordPress and has the energy and curiosity to try building something new, the real-world dissidents in real-world totalitarian countries, are dark matter in the background and not addressed directly in the announcement, but are affected by the announcement nonetheless.

by Ben Klemens at May 11, 2015 08:26 PM


We're Deprecating HTTP And It's Going To Be Okay

Mozilla recently announced their intent to deprecate the insecure HTTP protocol in Firefox in favor of HTTPS (https://). In practice, they plan to do this by gradually removing the ability for HTTP websites to use various web features. They're joined by the Chrome security team, who declared something similar in December.

Mozilla's announcement has gotten a lot of attention, more than Chrome's, and much of it negative. There have been various laments, but the most sincere and helpful one is Ben Klemens' "HTTPS: the end of an era":

But the Mozilla foundation’s HTTPS requirement is, to me, the real end of the DIY era. This is not a closed-source corporation, or a startup pushing its new tool, or the arrogant guy at the hackathon, but the Mozilla Foundation — “Our mission is to promote openness, innovation & opportunity on the Web” — saying that if you are building web pages using tools from your desert island, without first filling in registration forms, then you are doing it wrong.

I understand the fear of raising the barriers to entry. As a child, I too fell in love with an internet made by everyone, and have spent my career, my volunteer work, and my hobbies trying to share what that love has taught me. I want children everywhere in the world to grow up feeling like the internet that permeates their lives is also in their service -- a lego set in real life that you can buy with a week's allowance.

Yet as an adult, I also understand that power for ordinary people is hard to come by and hard to keep. The path of least resistance for human society is for money to buy more money, and might to demand more might. Democracy is designed not so much to expand freedom as it is to give people tools to desperately hold onto the freedom they have.

Put another way: power has a way of flowing away from the varied, strange, beautiful little leaf nodes on the outer edges and into the unaccountable, unimaginative, ever-hungry center.

Image source: Melonie Richey

TCP/IP, DNS, and the web were each tremendous reversals of this trend, freely giving the means of production to all of us little leafs. It felt like the powers that be just didn't realize what was happening until it was too late.

But when I look at the last few years, I see a very different web than the one I was introduced to:

  • Verizon injects tracking headers into unencrypted traffic so they can sell your browsing activity to advertisers. This program started in 2012, after Verizon realized they "had a latent asset", but wasn't noticed until 2014.
  • Other companies like Turn piggyback on Verizon's tracking header to sell your data to even more people, because they "are trying to use the most persistent identifier that we can in order to do what we do", says Turn's chief privacy officer.
  • Comcast injects ads into unencrypted traffic, because "it's a courtesy, and it helps address some concerns that people might not be absolutely sure they're on a hotspot from Comcast".
  • Andreas Gal (Mozilla's CTO, in his personal capacity) has claimed that Yahoo and Bing "can acquire search traffic by working with large Internet Service providers" to harvest users' Google search results to improve their own -- and strongly implies that they used to do this before Google shut them out through encryption. Even if you support better competition against Google, I doubt you expected your ISP to make deals to sell your traffic to other corporations without your knowledge.
  • The nation of India tried and failed to ban all of GitHub. HTTPS meant they couldn't censor individual pages, and GitHub is too important to India's tech sector for them to ban the whole thing.
  • The nation of China weaponized the browsers of users all over the world to attack GitHub for hosting anti-censorship materials (since like India, they can't block only individual pages) by rewriting Baidu's unencrypted JavaScript files in flight.

And then there's government surveillance. Still here, still real, and not getting better:

When I look at all these things, I see companies and governments asserting themselves over their network. I see a network that is not just overseen, but actively hostile. I see an internet being steadily drained of its promise to "interpret censorship as damage".

In short, I see power moving away from the leafs and devolving back into the center, where power has been used to living for thousands of years.

What animates me is knowing that we can actually change this dynamic by making strong encryption ubiquitous. We can force online surveillance to be as narrowly targeted and inconvenient as law enforcement was always meant to be. We can force ISPs to be the neutral commodity pipes they were always meant to be. On the web, that means HTTPS.

As problematic as the certificate authority (CA) system that underlies HTTPS may be, its relative centralization allows for one of the very few systems of encryption available today that Just Works for regular people. In many ways, it's no different than registering a domain: you pay a nominal fee to a usually for-profit organization to participate in a mostly centralized system.

Richard Barnes, the author of Mozilla's HTTP deprecation announcement and policy, responded to Ben, saying:

As I've said in some other threads on this topic, I'm under no illusion that HTTPS or the CA system is perfect. But to quote the great sage Mr. Rumsfeld, "you go to war with the army you have, not the army you might want or wish to have at a later time." Our long experience with HTTPS shows that it’s strong enough to carry the web, and it looks like its weaknesses can be patched. Which is enough, at least for me, to get the movement started.

Starting that movement doesn't happen in a vacuum. Chrome is there, the IETF and W3C TAG are there -- even the ad industry is getting there, with the news media right behind them. That kind of movement can become self-fulfilling, motivating more people and work than anyone thought possible at the start.

Many have said that HTTPS configuration and the CA system need to become painless before we can make it the new standard. However, this has cause and effect backwards: the only way to motivate the investment and market demand necessary to make HTTPS free, easy, and everywhere is to first make it part of the baseline, like DNS is today.

The transition to HTTPS won't be painless, but it is necessary, and it's already getting easier every year. The web will evolve, and when it does we'll have pushed some of its power back out of the center and into its edges for another generation to wield, love, and defend.

If you're really concerned about keeping the internet a place for everyone, look at what's happening right now with DNS and ICANN, as the US government attempts to voluntarily relinquish control over IANA responsibilities. There's even a recent House committee hearing on the subject.

I can't recommend highly enough this outstanding explanation of the IANA transition (PDF), by Danielle Kehl and David Post at the Open Technology Institute, for understanding the history and politics of ICANN.

May 11, 2015 03:34 AM

May 10, 2015


Thanks to everybody for their replies.

Thanks to everybody for their replies. I didn’t expect so much attention for an essay about being an introvert…

I really meant it when I said “this is a post about people, not security keys”. It’s a personal essay about a slow cultural shift. Focusing on those issues, I didn’t say as much about HTTPS as I could have. So here’s another 650 words for those of you more focused on HTTPS.

I wrote about Mozilla’s HTTPS announcement because it does feel to me like a bright-line break in that slow cultural shift. I didn’t write it to try to change the position of Mozilla’s security team, who are smart people who I do not believe are acting in bad faith.

The worst I can say about the security team is that, just as lawyers think everybody needs to think about law all the time and accountants think everybody should be thinking about tax implications all the time, security experts have a tendency to think that everybody needs to be focusing on security when the rest of us have other legitimate priorities. Think how much benefit disabled users would gain if Firefox put up a scary warning every time a site failed §508 accessibility requirements! How many stupid glitches would disappear for non-English speakers if we could somehow declare the entire Web UTF-8 only?

Let’s Encrypt is intended to be `our’ registrar, a non-profit run with open principles in mind, but it’s still a registrar. Also, as I understand it, you’ll need a proper domain name to use it, so you’re stuck if you want to host a server with a bare IP address — which I actually do to serve up files from home, and which we could easily picture a dissident doing. You’re stuck if you want to run a segregated-from-the-Internet server, which a lot of companies do, and which we could easily picture people at the Caltech dorms doing. Remember all that hype about mesh networks? How would Let’s Encrypt work on one? There are a lot of programs that use a browser as an interface (think Python notebooks, or git instaweb), and it’s not hard to configure things so you can connect using a browser on a remote client down the hall; will I need an SSL certificate for the host PC, which may have no name on the greater Internet? How will this list of web servers for Android telephones work with Let’s Encrypt?

Could you picture anybody in the open source movement of a decade ago pushing users to register with a registrar? “Keep the Internet weird!” they’d cheer, and tick off a dozen more examples of unexpected innovation, of people engaging in creative play. In this world, Let’s Encrypt will either break things or be just another annoying hurdle.

For contrast, consider the response to this essay by @travismccrea, which goes over some of the key reasons for why the people who push for HTTPS everywhere do so. His examples are about the day-to-day Internet: users go to web sites, and web hosts deal with advertisers and try to pay the bills. I won’t go point-by-point through his essay, because we actually agree on the technical stuff, and on the subjective social stuff we’ve got different perspectives on this great big world and that’s a good thing.

In this day-to-day world, signing up for a registrar is not as big a deal as it is among the weirdos; @dickhardt makes a similar point. You’ve already signed up for a GitHub account, a Google account for ads and analytics, a content distribution network account, maybe an AWS account, a domain registrar, a dedicated hosting company — in this world, registering with a CA really is just a drop in the bucket.

To oversimplify a supremely difficult decision, the Mozilla security team had to balance those two worlds: the special cases and the next generation doing things the security team knows that it can’t imagine, and the day-to-day users trying to pay the bills with a web site that behaves within what are now well-defined parameters. The Mozilla security team chose to protect the day-to-day use case at the cost of putting up a barrier to out-of-the-ordinary use cases.

That they made the decision they did shows how their perception of what it means to be a hacker in 2015 is different from what it meant to be a hacker in the very recent past. That’s the bright-line break that prompted me to write.

by Ben Klemens at May 10, 2015 12:52 PM

May 07, 2015


HTTPS: the end of an era

I posted a nontechnical personal essay on, which you may be interested in reading. By `nontechnical' I mean that it only uses Bayes's rule once.

by Ben Klemens at May 07, 2015 12:00 AM

April 27, 2015



Sam Biddle thinks we care too much about teens:

Teens will betray you. Teens won’t even remember your URL. They’ll click whatever’s put in front of them. They’re colliding particles. Would you interview a bee? Should tech investors study a pile of wobbling sea foam? Adult culture has become so obsessed with harvesting youth culture that we haven’t stopped to consider whether or not these kids are basically just gangly, brand-obsessed dorks who drive poorly and have partially formed brains. We’ve been worshipping at the consumer altar of teenagers that we’ve forgotten how little this particular crop has done for us; their cultural pinnacles are EDM and acoustic Vine covers. And why be surprised? Can we resent teens for not being little culture panaceas when their entire world consists of apps, track practice, and their house? We’re the fools for thinking the tiny teen world view really became larger just because it now includes the internet.

But Sam’s wrong: the app-industrial complex’s slavering maw yearns for teens not because they contain a cure for internet ennui, but because it knows they are its next host.

You know how you hate using Facebook? How it’s nothing but a social obligation and professional imposition? That is the feeling of terminal stage brand loyalty. Someone is now making money off you, because your shared business relationship has aged past the point where they have any reason to please you.

If this were a Buffy episode about drugs, now would be the time when you’d be comatose in the back of a hovel, your life force slowly draining away into some monster that delivered mystic euphoria during act one. Except nobody is about to come crashing through the door to liberate you via a poorly choreographed fight sequence.

Today’s teens are tomorrow’s locked-in social network users, and if they seem frustratingly flighty now it only means it will be that much sweeter when they finally fall into the snare.

by Tom at April 27, 2015 08:05 PM

April 09, 2015


dead guys

I love my friend Brian Beutler. But I didn’t like his piece calling for a holiday celebrating the confederacy’s defeat or its followup.

Brian is an excellent writer and he makes his argument well. But this kind of Acela Corridor confrontationalism is inherently cartoonish, and it relies on a cartoonish understanding of one’s countrymen. Like this, where the cultural identity of a large chunk of the country is reduced to nothing more than a devotion to white supremacy:

[W]e probably wouldn’t call the region “The South” if its political identity weren’t still interwoven with a glossy conception of the Confederacy.

This is even harsher than usual: ordinarily Southerners are at least granted a nod toward fried food and congregationalist religion before being called racists.

Jokes aside, I can’t help reacting to the existence of these pieces personally. I was born in Virginia. My last name is Lee. The line of my ancestry goes through Robert E. Lee’s father and up to a bunch of other dead guys, all of whom, I’m quite sure, held odious views and did odious things. To a first approximation absolutely everyone in history was an asshole, but it is certainly true that some managed to do more harm than others. My blood contains echoes of a few who were in a position to hurt lots of people, and did.

Brian wants a fresh verdict about the moral obscenity of the Confederacy, commemorated with a holiday and the destruction of monuments venerating Confederate figures. I don’t think anyone should object to the underlying judgment; I agree that the idea of flying a Confederate flag is disgusting. But it’s sometimes hard not to feel that my fellow liberals’ modern desire to relitigate an old war — to emphatically celebrate a victory no one living remembers — is driven more by moral vanity than a considered approach to ending racism in contemporary society.

If those highways were quietly renamed and statues wordlessly removed, I wouldn’t care. A few others might, but I wouldn’t care about that, either. But I do resent the idea that this is *my* problem by virtue of where I was born or who my ancestors were — that it is my responsibility to account for it. People seem to think it is. Brian’s pieces are addressed to everyone in the South, not to Neoconfederates specifically. There’s a reason that he IMed me the link to his article after he hit publish. There’s a reason my high school girlfriend told me not to mention my last name when I met her mom. There’s a reason people sometimes make jokes about owning slaves when they meet me (really). They are demanding that I repudiate a tribe they’ve imagined for me, and that I glorify one that they have implicitly excluded me from. I wonder what their manners are like when they meet someone from Germany or Japan.

Fuck all that. My grandmother came down from Vermont and married a Lee, who grew up a missionary’s son in China and spent his declining years writing furiously anti-apartheid letters to the editors of the Washington Post. I remember finding my dad’s old slot car set in their attic, the slower, always-losing racecar labeled “BIGOT” — a household moral axiom clumsily translated into child’s handwriting. I won’t tolerate being told those people bore some kind of hereditary moral contamination, or smile at the idea of assigning original sin on the basis of birthplace. The merits of the long-dead have nothing to say about my grandparents’ failings or virtues. Nor our own.

So yes, no more veneration of the Confederates. But also no more unprompted denigration. No more thirst for confrontation. Just silence. Stop talking about them. Allow their names to fade into meaningless strings of syllables that signify nothing more than where one span of asphalt ends and another begins. Or better: nothing at all.

I’d be a fool to claim that historical grievances have no bearing on today’s injustices. But insisting on self-abasement by the children of wrongdoers has less power to heal than the descendants of the righteous flatter themselves to think. There is more pressing work we could all be doing.

by Tom at April 09, 2015 01:21 AM

September 21, 2014


The space between the signal and the action

In the game-theoretic world, the gunner never shoots: the other side looks at the options down the game tree, realizes that one action will lead to his or her getting shot, and doesn’t take that action. In Game Theory textbooks, cases never go to court: both sides calculate the risk-adjusted expected payoff from trial, and if it is positive for one hyperrational side, then it is negative for the other hyperrational side, and a settlement can be calculated based on that. In both cases, knowledge that an event could occur largely has the same effect as the event itself.

But there was an eight-year glitch in the game-theoretic matrix, which has given us an interesting chance to see what happens between when a signal of a legal position is sent and when the position actually hits.

Here in 2014, the Supreme Court handed down a ruling regarding the patentability of software, Alice Corp v CLS Bank. The first draft of the ruling was published in 2006.

The question in the 2006 case of Labcorp v Metabolite was whether a patent of this form was valid:

1. draw the patient’s blood,
2. measure the level of a chemical in the blood, and
3. correlate that level to the risk of a disorder.

Steps 1 and 2 are by themselves not patentable, because they are physical processes but are entirely not-novel. Step 3 may be a novel correlation, but it is an abstract scientific discovery, and one may not patent abstract ideas or research results. So is the combination of the physical-but-quotidian steps 1+2 with the abstract-but-novel step 3 a physical and novel invention?

The Court’s decision (PDF) was one sentence long:

The writ of certiorari is dismissed as improvidently granted.

For those whose Latin is rusty, the ruling says that due to a procedural glitch, the Court should not have heard the case, and would not rule. However, Justice Breyer, with Stevens and Souter, wrote a 15-page dissent (see the above PDF). It was a hot one, with a real sense of urgency that allowing this patent to stand will cause real damage. It argued that the patent should not stand because abstractions are not patentable for good reason, and the physical steps in this patent are just a cursory attempt to get past the bar from patenting abstractions. In game-theoretic terms, this was the Justices signaling as well as they could given that technicalities precluded a ruling.

Years passed, and nothing further was said. No member of the Supreme Court has a blog. They make an effort to give rulings that are as concise as possible. Sure, they heard cases involving sketchy patents, but if the case was about applying patents across borders, then the ruling would take the patent as given and discuss the cross-border issue. If the question was about patenting business methods, then the ruling would be about whether it’s OK to patent business methods.

So during that period, the last signal the Supreme Court gave regarding the patents like the three-step patent above was the dissent in Labcorp. You can read tea leaves, but such faint signals pale compared to the strong language of the Labcorp dissent.

Let’s apply this to software. Here is another patent template:

1. buy a (physical but quotidian) stock computer;
2. load a (novel but abstract) program onto it.

This is the same format as in Labcorp in a different context, and the logic of the Labcorp dissent would invalidate this sort of patent as well. Nonetheless, during this period the US Patent and Trademark Office granted so many Labcorp-like patents that they had to move to a new (very attractive) office complex and implement a new telework infrastructure to handle all the new examiners. As will be discussed below, probably tens of thousands of these patents were completely invalid under the logic of the Labcorp dissent.

The PTO provides this handy PDF breaking down how many patents were granted by category. Between 1993 and 2004, there was growth in most fields, but typically a doubling or tripling. If you want to see the real growth, you have to skip down to the 700 series, where most of the load my novel algorithm on a stock computer patents lie.

Here’s a trimmed down table of patents granted in certain categories:

cat # field 1993 count 2013 count change
250 radiant energy 1887 3552 188%
267 spring devices 291 330 113%
273 amusement devices: games 430 538 122%
324 Electricity: Measuring and Testing 1272 2741 215%
340 communications: electrical 1332 4995 375%
704 Data Processing: Speech Signal Processing, Linguistics, Language Translation, and Audio Compression/Decompression 252 2053 815%
705 Data Processing: Financial, Business Practice, Management, or Cost/Price Determination 229 7897 3,448%
715 Data Processing: Presentation Processing of Document, Operator Interface Processing, and Screen Saver Display Processing 263 4350 1,654%
729 Information security 21 3810 18,143%
801 Multicellular Living Organisms and Unmodified Parts Thereof and Related 38 1536 4,402%
901 Robots 204 336 165%

Think back to 1993 for a minute: there were people doing research in speech therapy, there were devious financiers looking for an edge, there were people trying to make their presentations interesting, there was information that had to be secured, there were multicellular living organisms. The invention of the Internet (in the 1970s and 80s) certainly made all fields more efficient, but it’s hard to argue that financiers in 2013 were 34 times as inventive as the financiers of 1993. You get 375% growth in patent counts by having more engineers using better technology in their research, and you get 1,600% growth by making patentable what before had not been.

They did so with the support of the Court of Appeals for the Federal Circuit (CAFC), who presented a series of rulings pushing the boundaries of what is patentable far beyond the bounds signaled in Labcorp; more on them below.

In 2012, the case of Mayo v Prometheus was decided. The three-step medical test patent I described above in the Metabolite patent also describes the Prometheus patent. The ruling followed exactly what Breyer said in his Labcorp dissent: duct-taping together an obvious physical step to a novel abstract discovery does not make the discovery patentable. It was a unanimous ruling, closely following the 15-page sketch from 2006.

The count of rejections started to rise somehwat here, but there were judges in patent-centric courts who were still reluctant to apply this to computing patents, because they perceive that enviornment as too different from the medical test environment. See the majority ruling Judge Prout dissents from and Judge Michel’s amicus brief, below.

Here in 2014, Alice Corp v CLS Bank asked about a patent regarding arguably novel software on a stock computer, as per the two-part patent above. To summarize the ruling in Alice: directly apply the ruling in Mayo v Prometheus to find this patent invalid, for exactly the same reasons. This one was also unanimous.

Dennis Crouch, well-regarded legal scholar/blogger, describes the change brought about by Alice thusly:

Alice Corp. fits within that precedent as an incremental addition, but without rejecting or even modifying the Supreme Court’s own prior precedent. Rather, what Alice Corp. has rejected is the prior analysis of the Federal Circuit and US Patent Office that seemingly allowed for the patenting of systems and processes whose inventors relied upon only an iota of hardware to separate the patented invention from an underlying abstract idea or law of nature.

The new cohort of [Supreme Court rulings] collectively wipe-away thirty years of Federal Circuit precedent on eligibility, but at the same time, revive 150-years of Supreme Court doctrine on the topic.

The buzz when Alice came out was cautious and didn’t want to assume that much would change. [For those keeping score, here’s the only thing I said about it.] But the present situation at the patent office and at the patent-centric courts is a patent bloodbath. Have a look at this article entitled “Software patents are crumbling, thanks to the Supreme Court“, or see “Already Alice Corp. v. CLS Bank Has Brought a Sea-Change in Patent-(In)eligibility“.

Back to the game-theoretic framing, if the Patent and Trademark Office and CAFC were seeking to maximize long-term stability, they would have looked down the game tree in 2006 and seen that the Labcorp ruling would eventually be precedential, so they might as well follow it immediately.

But that’s not what happened. Why?

Those who firmly believe that the Labcorp dissent was not a good position might have committed a host of confirmation biases and taken every piece of evidence hinting at another direction as proof that the Court would never implement Labcorp as a majority ruling. So that might be the story.

There were lots of patent rulings from other courts. As above, the majority on the Federal Circuit’s appeals court was especially active, but it was often swatted down by unanimous rulings by the Supreme Court over the course of this period. So if we commit the ecological fallacy and think The Law has a will and a course, then The Law, mostly steered by the Federal Circuit majority, was moving toward allowing Labcorp-style patents. But if we recognize the CAFC and SCOTUS as distinct bodies, SCOTUS was sending lots of signals that it (often unanimously) felt the Federal Circuit majority was doing it wrong. So there’s another way a not-perfectly-rational agent might misread things.

If the agents were fully rational, and knew Alice would come eventually, then we have to move on to the incentives of the agents. The Patent Office’s incentives push it to grant as many patents as the law allows. Department of Commerce employee evaluation forms rate employees on how well they protect intellectual property, not on how fairly they adjudicate the balance of what is or is not subject to IP protections. The head of the PTO through much of this period, David Kappos, had previously been the VP for intellectual property at IBM; IBM benefited immensely from having its Labcorp/Prometheus/Alice-failing patents for eight years, even if many of those patents are now worthless.

The judges on the CAFC have a more interesting utility function. They are effectively appointed for life, and you’d have to really be chummy with the litigants before there’s any buzz about removing a judge. So they have latitude to rule in terms of what they think is the correct law.

The short story for the CAFC v SCOTUS conflict is that the CAFC wants to find what is optimal for the patent system and the Supreme Court wants to find what is optimal for the United States. See Ars Technica or Cato for much discussion of the specialist court.

This has certainly led to conflict. But don’t take my word for it; here’s Judge Prout of the CAFC: “The majority [of CAFC judges who wrote this ruling] resists the Supreme Court’s unanimous directive to apply the patentable subject matter test with more vigor. […] The majority has failed to follow the Supreme Court’s instructions [in Prometheus]—not just in its holding, but more importantly in its approach.” Or on the other side, Justice Roberts had a famous quip during the oral testimony for a patent case mostly about court procedure: “[Other courts] can’t say, I don’t like the Supreme Court rule so I’m not going to apply it, other than the Federal Circuit.” (p 18)

Judge Michel of the Federal Circuit wrote an amicus brief in Alice advising against restricting patentable subject matter. Even addressing the Supreme Court itself, Judge Michel calls a previous Court ruling as “aberrational” (p 6), describes the Court “as the creator and arbiter of the judicially-created ‘exceptions’ to statutory patent eligibility, including ‘abstract ideas,’ whatever that means” (p 7), and urges the Court to not rely on its own rulings (p 8).

So the majority at the Federal Circuit’s appeals court spent the `00s working hard on pushing the scope of patentability well beyond the framework signalled in Labcorp, based on what seems to be a heartfelt but insubordinate belief that the Supreme Court has been doing everything after 1981 wrong. Given that their goals led them to avoid the Labcorp rule as long as possible, the Supreme Court was forced to pull the trigger and set its rule down in a clear majority ruling.

by BK at September 21, 2014 05:51 PM