The Daily Parker

Politics, Weather, Photography, and the Dog

The price of too many guns

We're still grappling with the horror of last week's mass murder in Uvalde, Texas. Nick Meyer, a retired lawyer who grew up there, shares our horror but not our surprise:

First, you would be challenged to find a more heavily armed place in the United States than Uvalde. It’s a town where the love of guns overwhelms any notion of common-sense regulations, and the minority White ruling class places its right-wing Republican ideology above the safety of its most vulnerable citizens — its impoverished and its children, most of whom are Hispanic.

I wasn’t surprised to see the Republican panel of politicians at a news conference the day after the shooting, almost all White and in top positions of power in the community and the state, taking the lead. In Uvalde, the custodians of order — the chief of police, the sheriff, the head of the school district police — are Hispanic, but here they were largely silent. Unsurprisingly, they now bear the primary blame for the disastrous response at the school.

Bloomberg asks how that total police failure happened when fully 40% of the town's budget goes to police:

But determining what may have gone wrong during the police’s response to the attack will take more than scrutinizing city budgets. In fact, Uvalde’s police spending is not such an aberration. 

Policing is one of the few services smaller cities are set up to provide. For Uvalde, which has roughly 16,000 residents, the $4 million police budget is the biggest expense in the city budget this year, funded at a proportion that’s higher than some peers but far from abnormal. An analysis of a sampling of 15 other cities with populations between 15,000 and 20,000 in 10 states, some dominated by Republicans and others by Democrats, show that on average, policing accounted for 32% of their general-fund budgets in 2022. The average level in big cities is also around 30%, with cities like Milwaukee, Oakland and Phoenix spending closer to 40%.

In a way, these high percentages can be deceiving, because some small towns and cities aren’t set up to provide many other services, such as health care, social services or the expensive items that dominate most big-city budgets. Those expenditures are instead left to school districts, counties, states and larger entities with more resources to run those programs efficiently, according to Richard Auxier, a senior policy associate in the Urban-Brookings Tax Policy Center. That’s why policing makes up such a huge share of spending.

Retired FBI Special Agent Katharine Scweit, who created and ran the FBI's active-shooter training program, worries about training:

In the first few years after the massacre at Sandy Hook Elementary School in December 2012, the F.B.I. spent more than $30 million to send agents to police departments around the country. The goal was to train local officers how to handle active shooters so they would know how to go after a shooter with confidence and neutralize the threat.

Current protocol and best practices say officers must persistently pursue efforts to neutralize a shooter when a shooting is underway. This is true even if only one officer is present. This is without question the right approach.

We need to understand why that protocol was not followed in Uvalde. I am still confident the F.B.I.’s focus on training to this standard was right, but I’m less confident in its execution. The officers who responded may have been unprepared for conflict, which can lead to fatal results. Law enforcement officers need to be mentally prepared before they arrive on the scene, so they can respond immediately.

After Sandy Hook the federal government adopted the run, hide, fight model, which instructs students and teachers to run first if they can, then hide if they must and, finally, fight to survive.

I remember telling my children that if someone approached them in a car while they were walking, they should run as fast and as far as possible. Yet in many school settings we have mistakenly discouraged students from trying their best to simply stay alive.

Journalist Susie Linfield grapples with the "Emmett Till" moment:

The question of how much violence we should see, and to what end, is almost as old as photography itself. But the question gains urgency in our age of unfiltered immediacy — of the 24-hour news cycle, of Instagram and Twitter, of jihadi beheading videos, of fake news and conspiracy theorists and of repellent sites like BestGore, which revel in sadistic carnage. What responsibilities does the act of seeing entail? Is the viewing of violence an indefensible form of collaboration with it? Is the refusal to view violence an indefensible form of denial?

In the case of Uvalde, a serious case can be made — indeed, I agree with it — that the nation should see exactly how an assault rifle pulverizes the body of a 10-year-old, just as we needed to see (but rarely did) the injuries to our troops in the Iraq and Afghanistan wars. A violent society ought, at the very least, to regard its handiwork, however ugly, whether it be the toll on the men and women who fight in our name, on ordinary crime victims killed or wounded by guns or on children whose right to grow up has been sacrificed to the right to bear arms.

Despite the very real dangers of exploitation and misuse that disclosure of the Uvalde photographs would pose, I myself would like politicians to view them: to look — really look — at the shattered face of what was previously a child and to then contemplate the bewildered terror of her last moments on earth. But that would not mean that the jig is up. People, not photographs, create political change, which is slow, difficult and unpredictable. Don’t ask images to think, or to act, for you.

Uvalde may be the worst mass shooting in May, but it wasn't the only one. The US had 14 more over the weekend. I'm so glad we have Wayne LaPierre's thoughts and prayers to help us. And don't even get me started on the new "mental health" misdirection coming from the Republican Party.

Reading Excel files in code is harmful

I've finally gotten back to working on the final series of place-data imports for Weather Now. One of the data sources comes as a 20,000-line Excel spreadsheet. Both because I wanted to learn how to read Excel files, and to make updating the Gazetteer transparent, I wrote the first draft of the import module using the DocumentFormat.OpenXml package from Microsoft.

The recommended way of reading a cell using that package looks like this:

private static string? CellText(
	WorkbookPart workbook, 
	OpenXmlElement sheet, 
	string cellId)
{
	var cell = sheet.Descendants<Cell>()
		.FirstOrDefault(c => c.CellReference == cellId);
	if (cell is null) return null;

	if (cell.DataType is null || cell.DataType != CellValues.SharedString)
	{
		return cell.InnerText;
	}

	if (!int.TryParse(cell.InnerText, out var id))
	{
		return cell.InnerText;
	}
	var sharedString = workbook.SharedStringTablePart?
		.SharedStringTable
		.Elements<SharedStringItem>()
		.ElementAt(id);
	if (sharedString?.Text is not null)
	{
		return sharedString.Text.Text;
	}
	return sharedString?.InnerText is null 
		? sharedString?.InnerXml : 
		sharedString.InnerText;
}

When I ran a dry import (meaning it only read the file and parsed it without writing the new data to Weather Now), it...dragged. A lot. It went so slowly, in fact, that I started logging the rate that it read blocks of rows:

2022-05-29 18:43:14.2294|DEBUG|Still loading at 100 (rate: 1.4/s)
2022-05-29 18:44:26.9709|DEBUG|Still loading at 200 (rate: 1.4/s)
2022-05-29 18:45:31.3087|DEBUG|Still loading at 300 (rate: 1.4/s)
...

2022-05-29 22:26:27.7797|DEBUG|Still loading at 8300 (rate: 0.6/s)
2022-05-29 22:31:01.5823|DEBUG|Still loading at 8400 (rate: 0.6/s)
2022-05-29 22:35:40.3196|DEBUG|Still loading at 8500 (rate: 0.6/s)

Yes. First, it looked like it would take 4 hours to read 20,000 rows of data, but as you can see, it got even slower as it went on.

I finally broke out the profiler, and ran a short test that parsed 14 lines of data. The profiler showed a few hot spots:

  • 355,000 calls to OpenXmlElement<T>.MoveNext
  • 740,000 calls to OpenXmlCompositeElement.get_FirstChild
  • 906,000 calls to OpenXmlChildElements<GetEnumerator>.MoveNext

That's for 14 lines of data.

So I gave up and decided to export the data file to a tab-delimited text file. This code block, which opens up the Excel workbook:

using var document = SpreadsheetDocument.Open(fileName, false);
var workbook = document.WorkbookPart;
if (workbook is null)
	throw new InvalidOperationException($"The file \"{fileName}\" was not a valid data file");

var sheet = workbook.Workbook.Descendants<Sheet>().FirstOrDefault(s => s.Name == "Airports");
if (sheet is null) throw new InvalidOperationException("Could not the data sheet");

var sheetPart = (WorksheetPart)workbook.GetPartById(sheet.Id!);
var sheetData = sheetPart.Worksheet.Elements<SheetData>().First();
var rows = sheetData.Elements<Row>().Count();

Now looks like this:

var lines = File.ReadAllLines(fileName);

And the code to read the data from an individual cell becomes:

return columns.Count >= index ? columns[index] : null;

Boom. Done. Took 30 minutes to refactor. My profiler now says the most frequent call for the 14-row test occurs just 192 times, and teh whole thing finishes in 307 ms.

So let's run it against the full file, now converted to tab-delimited text:

2022-05-30 09:19:33.6255|DEBUG|Still loading at 100 (rate: 211.3/s)
2022-05-30 09:19:33.8813|DEBUG|Still loading at 200 (rate: 274.2/s)
2022-05-30 09:19:34.1342|DEBUG|Still loading at 300 (rate: 305.4/s)
...
2022-05-30 09:20:14.9819|DEBUG|Still loading at 19600 (rate: 468.6/s)
2022-05-30 09:20:15.2609|DEBUG|Still loading at 19700 (rate: 467.8/s)
2022-05-30 09:20:15.5030|DEBUG|Still loading at 19800 (rate: 467.5/s)

Well, then. The first few hundred see a 200x improvement, and it actually gets faster, so the whole import takes 45 seconds instead of 6 hours.

So much time wasted yesterday. Just not worth it.

Maplewood Brewing, Chicago

Welcome to stop #75 on the Brews and Choos project.

Brewery: Maplewood Brewery, 2717 N Maplewood Ave., Chicago
Train line: CTA Blue Line, Logan Square
Time from Chicago: 16 minutes
Distance from station: 1.7 km

I've actually visited Maplewood many times in the past, but not since starting the Brews & Choos project. The pandemic got in the way, especially after it killed Fat Willy's Rib Shack and nearly killed the movie theater around the corner.

I finally returned to the movie theater on Wednesday to see the director's cut of Star Trek: The Motion Picture. Since we did not, in fact, take public transit to get to the movie, we did not take shrooms before watching it as several friends advised. Instead we got beers. I decided on this flight:

I didn't take notes, but I do remember liking all of them. The one second from the right (Son of Juice) and the stout (Fat Pug) were especially tasty. (Note the embankment just across the alley: that's the Union Pacific Northwest Line, so the window seats provide the true railfan with entertainment during rush hour.)

The taproom doesn't have a lot of room but it does have a lot of taps. Plus, Maplewood distills spirits, which (again because I drove) I didn't sample this time.

Beer garden? Sidewalk
Dogs OK? Outside only
Televisions? None
Serves food? Snacks; BYOF while the kitchen is closed
Would hang out with a book? Yes
Would hang out with friends? Yes
Would go back? Yes

Remember those parking meters?

In 2008, Chicago gave up its parking meter revenue for 75 years in exchange for $1.16 billion, which made no sense at the time and got widely criticized by everyone who knows what "Net Present Value" means.

Guess what? The deal still sucks:

In their failed attempt to block Bally’s $1.7 billion River West casino, downtown City Council members warned the deal was being rushed — just like the one that privatized Chicago parking meters — and that it would end up being “even worse” for taxpayers.

That dire prediction is difficult to imagine, considering results of the latest parking meter audit by accounting giant KPMG.

It shows Chicago parking meter revenues nearly back to pre-pandemic levels. After dipping to $91.6 million in 2020, they climbed to $136.2 million last year.

Not a penny of those revenues went to ease the burden on Chicago taxpayers, who had to absorb a $76.5 million increase in the city’s property tax levy after a $94 million hike in real estate taxes the year before.

Factoring in the newly reported figure for 2021, private investors have already extracted $2.1 billion from the deal, in part by refinancing three times. The latest refinancing for $1.2 billion was completed in 2019.

Well, it turns out, if they got $900 million in revenue off a $1.2 billion investment over 14 years, that's an annualized ROI of just 4.1%. It's just that the ROI in the past year was well over 11%, so that 4% number is depressed by the deal's startup costs.

We'll have to see whether they continue making that kind of revenue. But the deal still sucks. We could have upgraded the technology and controlled our own parking destiny for a lot less money, and we'd have all that income now. I mean, if the Council didn't squander it. Ah, ha ha, ha.

Chicago's great sports teams

Chicago's two baseball teams gave up a combined 36 runs yesterday, with the Cubs losing to the Reds 20-5 and the Sox losing to the Red Sox 16-7. Perhaps the bullpens could use a little work, hmm?

In other news:

Finally, astronomers have produced a photo of the supermassive black hole at the center of our galaxy, and were surprised to see it looks nothing like Ted Cruz's head.

We know how to prevent mass murder

Australia, Canada, and the UK managed to prevent mass shootings in the aftermath of horrible crimes. And as The Onion reminded people again this week—for the 21st time since 2014—the United States is the only place where this happens.

You know how they do it? How other free, English-speaking democracies keep their citizens alive? How every other civilized country in the world does? They ban the fucking guns.

Civilians do not need assault rifles. They do not need large-capacity magazines. They do not need guns of any kind before they prove they're capable of using them properly.

By civilians, I'm including civilian police forces in most places, who only think they need them right now because other civilians have them.

To be clear: I don't want to ban all guns. In the dense urban core of Chicago where I live, no one needs a gun. But at my colleague's father-in-law's place in Montana, 50 kilometers from the nearest town, you'd be stupid not to leave the cabin without a high-powered hunting rifle at hand. The Chicago Police Department has a response time of around 30 seconds to my neighborhood. No one will save you from a bear in rural Montana.

For fuck's sake, what kind of societal insanity does a country have when you can buy a military-grade weapon easier than you can adopt a dog?

Commonsense rules already exist to mitigate the worst risks: limit magazine sizes, raise the minimum age to own a gun, close the gun-show loophole, license gun owners and guns, and end the product-liability protections for gun manufacturers.

So why haven't we adopted these rules? After 27 mass shootings this year alone? Because we can't get 50 US Senators to retrieve their testicles from the NRA.

The next time a Republican politician offers "thoughts and prayers" for the families of murdered children while voting against even the least intrusive gun regulation, I hope someone punches him in the head. My thoughts and prayers will follow.

American exceptionalism in the worst way

Three reactions to this week's school shooting, the 27th of the year (despite this being only week 22 on the calendar). First, from Josh Marshall:

The “good guy with a gun” theory was always absurd. These events make that all the more clear. But this is a bit more than that. In both these incidents armed police officers or security guards exchanged gunfire with the perpetrator. But they were outgunned. The assailants had more powerful weapons and they had body armor that allowed them to absorb gun shots and return fire. These aren’t cases with a mythical armed good samaritan. The cops are there, armed and on the scene, and they’re losing in fire fights with the assailants.

When you combine high powered rifles and body armor, these guys are close to unstoppable, at least at first. That’s not their only advantage. These shooters have all accepted that they’re likely going to die within minutes. They also, by definition, have the element of surprise. Unless police have a decisive advantage in firepower and defensive equipment, the shooter is always going to have a big advantage in those engagements.

Second, from James Fallows:

The “originalist” conceit that Americans’ birthright is to be armed with AR-15s is lethal bullshit. You don’t have to have been around at the time of the Founders to know that. You only need to have been a working reporter, or sentient human being, as recently as the 1980s, when I happened to have done a hugely long Atlantic article on how the AR-15 was designed.

You can read the article here. Its central argument is that the AR-15 is an even more effective weapon-of-death than the U.S. military’s M-16, which was derived from the AR-15 and first put to serious use in Vietnam. Don’t believe it? Read the article, and the Congressional hearings it cites. Or check the footnotes in this recent post.

Gun control hasn’t ‘failed.’ Specific people have blocked it.

Many people have played their part. But none has mattered more than Mitch McConnell. I made the case in detail here, after the Parkland gun massacre.

The children and teachers of Uvalde are the latest who deserve a vote. As do the families of Buffalo, and of hundreds of other places.

Will they get it? Mitch McConnell is still there, with 50 members of his bloc, to say No.

“When in God’s name?” Joe Biden asked this evening. When in God’s name.

Third, from the governors of Texas and Illinois, when the former tried to smear my city to deflect blame from his own party's actions:

Taking the stage at a press conference today flanked by U.S. senators, law enforcement and other officials, Texas Gov. Greg Abbott was asked about gun laws in other states. “I hate to say it,” Abbott said, “but there are more people who are shot every weekend in Chicago than there are in schools in Texas.”

Illinois Gov. J.B. Pritzker, a Democrat, was quick to respond to Abbott’s remarks with an extended Twitter thread.

So we'll get "thoughts and prayers" from the Republican Party, then the National Rifle Association will go dark for a couple of days, then nothing will change. Because a large minority of people in this country fantasize about armed conflict and don't want the deaths of a thousand children to keep them from their guns.

Elizabeth Line opens

The Elizabeth Line through central London, formerly known as Crossrail, opened today:

First approved in 2008, the heavy rail line will dramatically improve public transport coverage of the city, says Transport for London (TfL), slashing journey times, providing substantial extra capacity and making the city more altogether more accessible. By extending the transport system to areas that were previously much slower to access and creating new central hubs for transfers to the Tube, the line could also reshape the way people navigate the city.

Travel times from Southeast London’s Abbey Wood to the major western rail terminus of Paddington, for example, will be cut by almost half to 29 minutes. Journeys from southeastern Woolwich—currently one of London’s worst-served areas for train connections—to London’s main eastern rail terminus at Liverpool Street will be halved to 15 minutes, while connections between Farringdon, in London’s financial district, and the newer dockland business hub of Canary Wharf will be slashed from 24 minutes to just ten. While all Londoners stand to benefit from these connections, business travelers will be particularly well-served, with connections from Heathrow Airport to Canary Wharf soon to be possible in 44 minutes.

An additional 1.5 million people will be within a 45-minute commuting distance from the capital’s major commercial and business centers of the West End, the City and Canary Wharf, up from 5 million currently according to Crossrail.

The Elizabeth Line will also redraw the map of London’s central transport hubs.

To take an example: Farringdon Station—the central London terminus of the world’s first underground railway, which opened in January 1863—was, before the Elizabeth Line’s opening a busy but not necessarily pivotal station in London’s transport network. Thanks to the Elizabeth Line, it will now be a key interchange station, connecting the line not just to the Tube but with high frequency trains to London’s northern and southern suburban hinterland that are routed through the station. Farringdon will also now have direct links to St. Pancras International for Eurostar connections and to three major airports: Gatwick, Heathrow and Luton. Combined with the station’s existing Tube links, Farringdon will eventually be served by over 140 trains per hour at the busiest times.

I will deliver a full report in July.

Meanwhile, 89% of UK railway workers have voted for a national railway strike, so who knows how long the Elizabeth Line will run?

Ruling seasons begins

The Supreme Court began its early-summer ruling season a bit early this year, starting with an opinion from Justice Thomas (R) that will make it easier for the state to kill innocent people:

[The] opinion claimed that a law restricting the power of federal courts to toss out convictions in state courts prevents Jones from seeking relief. But Thomas’s reading of this law is novel — his opinion had to gut two fairly recent Supreme Court decisions to deny relief to Jones.

Before Monday, the Supreme Court’s decisions in Martinez v. Ryan (2012) and Trevino v. Thaler (2013) should have guaranteed Jones a new trial. Both decisions deal with what should happen in the unusual circumstance when someone accused of a crime receives ineffective assistance of counsel, twice.

In Strickland v. Washington (1984), the Supreme Court held that a conviction must be tossed out if defense “counsel’s performance was deficient” and if this “deficient performance prejudiced the defense.” This safeguard against constitutionally inadequate lawyering would be meaningless if people who received ineffective assistance of counsel at trial could not challenge that conviction, either on appeal or in some other proceeding.

Martinez and Trevino established that someone convicted of a crime must have at least one shot at challenging their conviction on the grounds that they received ineffective assistance of counsel at trial.

“The Sixth Amendment guarantees criminal defendants the right to the effective assistance of counsel at trial,” [Justice] Sotomayor (I) writes in the first line of her dissent. She continues that “this Court has recognized that right as ‘a bedrock principle’ that constitutes the very ‘foundation for our adversary system’ of criminal justice.”

Thus in Sotomayor’s mind, and in the minds of the two other justices appointed by Democratic presidents who joined her opinion, the purpose of a criminal trial is to determine whether or not someone is actually guilty of a crime — and to do so through an adversarial process where both sides are represented by lawyers who can present the best possible legal and factual case for the prosecution and the defense.

This is consistent with Thomas’s longtime position. As far back as Herrera v. Collins (1993), Thomas joined an opinion by Justice Antonin Scalia, which claimed that there is “no basis” in the Constitution for “a right to demand judicial consideration of newly discovered evidence of innocence brought forward after conviction.” At the time, however, Thomas was the only justice who joined Scalia in this view.

Scotusblog also has its doubts:

Thomas spent the first 11 pages of his 22-page opinion recounting the grisly facts of the murders the defendants were convicted of, extolling the states’ authority to enforce criminal laws, and emphasizing the importance of the finality of convictions. Finally arriving at the issue at hand, Thomas cited cases holding that defendants are generally held responsible for their attorneys’ errors, and noted that while that general rule does not apply when counsel is constitutionally ineffective, the Sixth Amendment does not guarantee a right to counsel at the post-conviction stage – therefore, at this stage, the defendants were “at fault.”

Justice Sonia Sotomayor, joined by Justices Stephen Breyer and Elena Kagan, dissented. Her opinion was striking, even for a justice who is known for passionate dissents. She called the majority opinion “perverse,” “illogical,” and said it “makes no sense.”

The dissent zeroed in on the court’s prior holdings that the procedural default rule only applies to defendants who are “at fault” for failing to raise a claim, and that a defendant represented by a constitutionally ineffective lawyer cannot be held to be “at fault” for his lawyer’s errors. This requirement underscored what Sotomayor saw as the core absurdity in the majority’s reasoning: “A petitioner cannot logically be faultless for not bringing a claim because of postconviction counsel’s ineffectiveness, yet at fault for not developing its evidentiary basis for exactly the same reason.”

The debate between Thomas and Sotomayor in Shinn has reverberations beyond the cases of Barry Lee Jones and David Martinez Ramirez. Sotomayor argued that the majority opinion “tellingly” relied on dissents in Martinez and Trevino to support its reasoning. While the conservative majority’s explicit overruling of precedent has recently captured the public’s attention (albeit through a leaked draft), the practice of citing dissents to “hollow out” past precedents has garnered less scrutiny. But Sotomayor’s opinion subtly emphasized the danger that practice poses for the legitimacy of the court’s decision-making. Noting that the court in this case “resuscitates” an argument “that previously was relegated to a dissent,” Sotomayor contended that the argument “is just as unavailing now that it has captured a majority.”

Finally, one procedural quirk is worth mentioning in a case all about whether death row defendants are “at fault” for the failures of their constitutionally ineffective lawyers. In Ramirez’s case, Arizona did not object to the evidentiary hearing in the district court and did not raise AEDPA’s bar on developing new evidence until the case reached the U.S. Court of Appeals for the 9th Circuit. Ordinarily, an argument not raised in the district court is forfeited. But here, in a footnote, Thomas stated that the Supreme Court has “discretion to forgive any forfeiture” and because deciding the issue would reduce the likelihood of future litigation, “we choose to forgive the State’s forfeiture before the District Court.”

We will no doubt see a series of rulings like this, shielding the state from its errors while making life much more random and unforgiving for people already at a disadvantage economically or socially. As I hinted yesterday, authoritarians don't accept dissent of any kind, no matter how obviously stupid their own positions. Thomas wants to live in the world of Inspector Javert and Brazil. So, clearly, do the other four Republicans on the Supreme Court, and for some reason in this case, the Chief Justice.

We're in for a decade or so of really bad judicial outcomes. Let's hope we can get the pendulum swinging the other way soon.