Ethics training in the governor’s office.

The ethics records that the attorney general’s office refuses to give me didn’t present an obstacle for Gov. Bob McDonnell’s office. Here are the records of when the employees of that office—including Gov. McDonnell—have received their legally-mandated ethics training:

(Because employees have come and gone during the prescribed period, some have received training in other branches of government. Others received training as a part of their continuing education requirement by the state bar.)

I FOIAed these records in response to the ethics questions surrounding the governor and the AG’s relationship with Star Scientific. It looks to me like McDonnell and his employees are receiving the required training. Whether Cuccinelli and his employees are is, apparently, a state secret.

A Virginia campaign finance API.

Last year, I wrote here that I was working on an open-source campaign finance parser for Virginia State Board of Elections data. Thanks to the good work of the folks at the SBE, who are making enormous advances in opening up their data, I’ve been able to make some great progress on this recently. That open-source project, named “Saberva,” is now a fully-functioning program. When run, it gathers a host of data from the State Board of Elections’ great new campaign finance site and saves it all as a series of machine-readable JSON files. (And a simple CSV file of basic committee data, which is more useful for some folks.) The program is running on Open Virginia, which means that, at long last, Virginia has an API and bulk downloads for campaign finance data.

This is now the source of Richmond Sunlight‘s campaign finance data about each candidate (currently limited to their cash-on-hand and a link to their most recent filing), which provides me with a good incentive to continue to improve it.

If you’ve got ideas for how to improve this still-young project, you’re welcome to comment here, open a ticket on GitHub, or make a pull request. Hate it, and want to copy it and make your own, radically different version? Fork it! It’s released under the MIT License, so you can do anything you want with it. I look forward to seeing where this goes.

Cuccinelli’s self-inflicted FOIA gunshot wound.

This time last week, I got a surprise in the mail. A couple of weeks prior, I had sent requests to both the governor and the attorney general’s offices for some pretty boring records—a list of everybody in their offices who had received the ethics training prescribed under the law. These records are explicitly FOIAable, so I anticipated that I’d just get an Excel file e-mailed to me before long. I wasn’t looking for anything in particular, but the FBI probe into Bob McDonnell and Ken Cuccinelli’s relationships with Star Scientific made me wonder if the proper ethics training had been provided. Five business days later, both offices got back to me saying that they’d need another five days. No problem. Then, last Thursday, I got home to find a letter in the mail from Cuccinelli’s office. Busy packing for a flight the next day, I didn’t get around to reading it until late at night, just before bed. This was the letter:

I found the letter difficult to understand, in part because of the lateness of the hour, but on the third reading, I figured it out. The attorney general’s office was claiming that a) they did not need to offer ethics training b) they did not need to comply with FOIA. Having no idea of how to respond to this, and knowing I’d have no time to deal with it for at least five days, I simply scanned in the document, posted it to DocumentCloud, tweeted about it, and went to bed.

It quickly emerged that I was not the only person to be told by the OAG that they were complying with FOIA only as a matter of courtesy, I was merely the first person to tweet about it. Roz Helderman wrote about the matter for the Washington Post, and David Ress wrote about it for the Roanoke Times. (The Times had also been told by the AG’s office that FOIA didn’t apply to them.) These stories were published on Sunday, the same day that the prior day’s Republican convention was on the front page. What should have been a day full of post-convention-bounce news, helpful to the newly minted nominee for governor was, instead, marred by coverage of Cuccinelli’s extraordinary claim. The timing by Cuccinelli’s office was amazingly bad.

Editorial boards were unanimous in their response.

The Richmond Times Dispatch:

So how did the attorney general’s position seem ironic? Let us count the ways:
A believer in original intent is ignoring the plain meaning of the law.
To do so, he rests his case on an appeal to judicial authority that he shows little regard for in other cases — such as Roe, Kelo, or the Supreme Court’s 2012 ruling upholding Obamacare.

He thereby seems to suggest a state agency with a staff of dozens and a budget of $36 million has to disclose less than, say, a researcher at the University of Virginia whose work has been questioned by right-wing activists. Cuccinelli spent two years and untold sums trying to pry loose the private correspondence of climatologist Michael Mann. Poor Mann — if only he had had the presence of mind to claim he was, like the AG’s office, not a “public body.”

The Roanoke Times:

Virginia’s top lawyer is not above the law. Nor is Attorney General Ken Cuccinelli just doing his constituents a favor when he responds to requests for public records.

Cuccinelli’s startling epiphany that he is exempt from the Freedom of Information Act came at a convenient moment. He is running for governor while being pelted with questions about his relationship with a businessman who has a pending dispute over state taxes.

It was tempting for Cuccinelli to slather himself in a potent Scandal Proof Formula to shield himself from the state sunshine law.

The Daily Press:

To truly appreciate the absurdity of the legal argument, consider this: The public-records law that staff members in Attorney General Ken Cuccinelli’s office said did not apply to the attorney general specifically mentions the office four times.

[…]

[Their] explanation is ludicrous, its reasoning so twisted that it can only be understood through its ultimate goal: To deny requests made by this paper’s sister publication, The Roanoke Times, and others for office records and correspondence involving a company entangled in a federal investigation and multiple lawsuits, including one against the state.

The Daily Press:

It’s no wonder Virginia received an “F” grade from the State Integrity Investigation, a watchdog organization that monitors the risk of government corruption in each of the 50 states. While Virginia ranks 12th in the nation in population, it ranks 47th in the organization’s key measures of government transparency. The Attorney General’s policy shift demonstrates what can happen when a weak FOIA law combines with an insipid judicial precedent: We get a culture of need-to-know governance that undermines citizen access and decreases government accountability.

To be clear, the logic employed by the OAG (constitutional officers don’t have to comply with FOIA) is total nonsense. In § 2.2-3701—the definitions that establish the application of terms for the entire chapter about FOIA—this is made explicit:

For the purposes of the provisions of this chapter applicable to access to public records, constitutional officers shall be considered public bodies and, except as otherwise expressly provided by law, shall have the same obligations to disclose public records as other custodians of public records.

As The Daily Press wrote:

The legal argument, however, was never there, which is why no one in or out of state government could offer any defense for it.

“It’s news to me,” said Maria J.K. Everett, executive director of the Virginia Freedom of Information Advisory Council.

The council, a state-created entity, includes a representative from the attorney general’s office.

On Monday, in Richmond, he was notably quiet during a council subcommittee meeting to discuss FOIA exemptions.

The OAG’s own website says that they must comply with FOIA, The Daily Press points out:

[T]he Attorney General’s office maintains a FOIA page on its website that advises citizens: “You have the right to request to inspect or receive copies of public records, or both.” The page outlines detailed instructions for how to request information from the AG’s office, along with a list of the AG’s responsibilities — such as “the Office must respond to your request within five working days of receiving it.”

In brief, this is not a matter on which intelligent minds may disagree. It’s a silly claim, and I find it baffling that the AG’s office would make it, especially when not actually refusing to release any information. Nothing is gained by this, and, as OAG discovered, much stood to be lost.

So it didn’t come as a great surprise when Ken Cuccinelli issued a statement backing down—just a bit—from his office’s position. As Roz Helderman wrote for the Post, the OAG is no longer going to inform people that they don’t believe that FOIA applies to them. So Cuccinelli still believes that he’s FOIA-exempt. But he’ll keep responding to FOIA requests, apparently out of the goodness of his heart.

In the end, I’m not sure that it matters what Cuccinelli believes he’s obliged to do, as long as he actually complies with the law.

So here I am, a week later, and I still don’t have an answer to the boring question that I posed in the first place: Is the attorney general’s office providing ethics training to its employees? I’m coming at the question from a different angle now, having asked the governor’s office for related records, and I hope to find out the answer. It doesn’t strike me as a very interesting question—I figure that, whatever the response, it’ll merit a tweet and a blog entry consisting of sharing that response. I wish I knew what all the fuss was about.

Make money from home! (Even if your home is the governor’s mansion.)

Many months ago, an acquaintance was invited to join a small gathering at the estate of erstwhile Charlottesville-area millionaire Patricia Kluge. Kluge was inviting some women over to a brunch at Albemarle House, an event at which the honored guest was Virginia’s first lady, Maureen McDonnell. Unbeknownst to the invitees, the host was teetering on the edge of bankruptcy. When they showed up for the event, Albemarle House was off-limits—soon to be sold on the courthouse steps—and the puzzled guests were directed to one of the model homes, bare of furniture. Left standing around in the living room, with no brunch to be found, their host and the first lady soon showed up. After only a brief introduction, McDonnell began to deliver a pitch. Gradually it dawned on the attendees that this was some kind of a pyramid scheme diet-pill scam. One by one, they slipped out, desperate to escape the suffocating awkwardness of the weird affair.

I was told this story shortly afterwards, and mostly found it baffling. The first lady? Hawking scam diet pills? What in the world? I had no frame of reference for such a story, and I decided to keep it to myself.

First lady Maureen McDonnell, Gov. Bob McDonnell, Donald Trump, and Patricia Kluge.
First lady Maureen McDonnell, Gov. Bob McDonnell, Donald Trump, and Patricia Kluge.

With the benefit of time, this story is no longer baffling. Instead, I get the sense that it’s a piece of a larger puzzle, a puzzle that a state-appointed prosecutor and the FBI are trying to assemble. There is a relationship between the governor, the first lady, and Star Scientific, a Virginia-based company that recently got out of the cheap-cigarette business and into the dietary supplement business. Star and its CEO have given $120,000 to McDonnell and his PAC, but apparently also gave some undisclosed gifts to McDonnell’s family, including his wife, Maureen. Star Scientific is in rough shape—they have enough money to get through early next year, but they keep having to sell more stock to pay the bills. They’re doing everything that they can to stay afloat. To that end, Maureen McDonnell went to Florida a couple of years ago, to promote their product, Anatabloc, in a talk.

I don’t know that Maureen McDonnell was promoting Anatabloc on that awkward day. (I don’t think any of the attendees were taking notes.) And I don’t have any reason to believe that doing so would have been wrong in any way. But I do think it’s a heck of an interesting coincidence, and I look forward to finding what it’s all about.

New site, new datasets.

Since creating Richmond Sunlight and Virginia Decoded, I’ve been building up a public trove of datasets about Virginia government: legislative video, the court system’s definitions of legal terms, court rulings, all registered dangerous dogs, etc. But they’re all scattered about on different websites. A couple of years ago, I slapped together a quick site to list all of them, but I outgrew it pretty quickly.

So now I’m launching a new site: the Open Virginia data repository. It’s an implementation of the excellent CKAN data repository software (which will soon drive Data.gov). The idea is to provide a single, searchable, extensible website where every known state dataset can be listed, making them easy to find and interact with. It’s built on the industry’s best software, in part because I’m hopeful that, eventually, I can persuade Virginia to simply take the site from me, to establish a long-overdue data.virginia.gov.

There are a few new datasets that accompany this launch:

  • The Dangerous Dog Registry as JSON, meaning that programmers can take these records and do something interesting with them. (Imagine an iPhone app that tells you when you’re close to a registered dangerous dog.) Previously I provided this only as HTML.
  • VDOT 511 Geodata. This is the GeoJSON that powers Virginia 511, exposed here for the first time. Road work, traffic cameras, accidents—all kinds of great data, updated constantly, with each GeoJSON feed listed here.
  • Public comments on proposed regulations. Over 28,000 comments have been posted by members of the public about regulations to the Virginia Regulatory Town Hall site over the past decade. Now they’re all available in a single file (formatted as JSON), for programmers to do interesting things with.

There’s so much more to come—good datasets already available, and datasets that need to be scraped from government sites and normalized—but this is a good start. I’m optimistic that providing an open, accessible home for this data will encourage others to join in and help create a comprehensive collection of data about the Virginia government and its services.

I am one dog old.

Lady Bird

Our sweet old beagle passed away today.

It seems like it was just yesterday that we took her in. Back then—in late 2006—she was just another foster. My wife and I decided that, rather than fostering lively animals and finding homes for them, we’d pick out the most pathetic dog we could find at the SPCA, as our very own Pygmalion tale. This elderly, frightened old girl was the clear winner, so we took her with us, determined to find her a forever home. There didn’t turn out to be much of a market for elderly, gassy beagles, and come March, we made things official.

Her life before 2006 was obviously pretty rough, and I’m proud that we could provide her with a great retirement home and a proper family. I hope all of her memories of her prior life were gradually replaced with a fuzzy impression of joy, safety, and freedom from want. She certainly provided us with many happy memories of our own.

I am one dog old.

$500 speech transcription bounty claimed.

It took just 27 hours for the $500 speech transcription bounty to be claimed. Aaron Williamson produced youtube-transcription, a Python-based pair of scripts that upload video to YouTube and download the resulting machine-generated transcripts of speech. It took me longer to find the time to test it out than it did for Aaron to write it. But I finally did test it, and it works quite well.

There are lots of changes and features that I’d like to see, and the beauty of open source software is that those changes don’t need to be Aaron’s problem—I (and anybody else) can make whatever changes that I see fit.

This will be pressed into service on Richmond Sunlight ASAP. Thanks to Matt Cutts for the idea, and to the 95 people who backed this project on Kickstarter, since they’re the ones who funded this effort.

$500 bounty for a speech transcription program.

The world needs an API to automatically generate transcript captions for videos. I am offering a $500 bounty for a program that does this via YouTube’s built-in machine transcription functionality. It should work in approximately this manner:

  1. Accepts a manifest that lists one or more video URLs and other metadata fields. The manifest may be in any common, reasonable format (e.g., JSON, CSV, XML).
  2. Retrieves the video from the URL and stores it on the filesystem.
  3. Uploads the video to YouTube, appending the other metadata fields to the request.
  4. Deletes the video from the filesystem.
  5. Downloads the resulting caption file, storing it with a unique name that can be connected back to a unique field contained within the manifest (e.g., a unique ID metadata field).

Rules

  • Must be written in a common, non-compiled language (e.g., Python, PHP, Perl, Ruby) that requires no special setup or server configuration that will run on any standard, out-of-the-box Linux distribution.
  • Must run at the command line. (It’s fine to provide additional interfaces.)
  • May have additional features and options.
  • May use existing open source components (of course). This is not a clean-room implementation.
  • May be divided into multiple programs (e.g., one to parse the manifest and retrieve the specified videos, one to submit the video to YouTube, and one to poll YouTube for the completed transcripts), or combined as one.
  • Must be licensed under the GPL, MIT, or Apache licenses. Other licenses may be considered.
  • If multiple parties develop the program collaboratively, it’s up to them to determine how to divide the bounty. If they cannot come to agreement within seven days, the bounty will be donated to the 501(c)3 of my choosing.
  • The first person to provide functioning code that meets the specifications will receive the bounty.
  • Anybody who delivers incomplete code, or who delivers complete code after somebody else has already done so, will receive a firm handshake and the thanks of a grateful nation.
  • If nobody delivers a completed product within 30 days then I may, within my discretion, award some or all of the bounty to whomever has gotten closest to completion.

Participants are encouraged to develop in the open, on GitHub, and to comment here with a link to their repository, so that others may observe their work, and perhaps join in.

This bounty is funded entirely by the 95 folks who backed this Kickstarter project, though I suppose especially by those people who kept backing the project even after the goal was met. I deserve zero credit for it.

Why fresh-squeezed orange juice turns bitter.

Several times recently I have squeezed a large number of oranges, enjoyed some of the delicious fresh-squeezed juice, and then been disappointed by the rest the next day. It tastes bitter, and becomes worse rapidly. This turns out to be the result of naturally occurring limonoate A-ring lactone (aka "LARL," a tasteless substance) breaking down into limonin, which is very bitter tasting. The amount of LARL varies between oranges and throughout the growing season. If there’s any way to arrest the conversion of LARL to limonin in the home-squeezing process, I don’t know about it.