department of hack
1850 stories

Eternal shell history 🐢

1 Share
Tar, XKCD 1168 by Randall Monroe Licensed: CC-by-NC 2.5
XKCD #1168 by Randall Munroe (Licensed: CC-By-NC 2.5)

Over the past eight years, I’ve hoarded ¾ million commands in my bash history:

$ wc -l < ~/.muh_history

My history accounts for every shell command I’ve run since 2016—all saved in a 102MB file: ~/.muh_history.

$ ls -lh ~/.muh_history
-rw------- 1 thcipriani thcipriani 102M Feb 27 21:23 /home/thcipriani/.muh_history

It’s a perfect, searchable archive of my work.

hist a command to search ~/.muh_history
hist is a command I wrote to search ~/.muh_history.

The killer feature of this file is trust—I’ve never been able to trust ~/.bash_history.

Even rigging bash to stow infinite history left me searching for commands I knew should be there but weren’t. Meanwhile, my ~/.muh_history file works. And because it works, I trust it.

🛟 Save history via prompt command

To save my history, I exploit the bash PROMPT_COMMAND variable.

Set PROMPT_COMMAND to a command that bash understands, and it’ll run before showing your prompt:

$ export PROMPT_COMMAND='fortune && echo 🥳'
Q:  Do you know what the death rate around here is?
A:  One per person.

I use PROMPT_COMMAND to write history 1 to a file:

$ export PROMPT_COMMAND='history 1 >> ~/.muh-history.test'
$ fortune
Caution: breathing may be hazardous to your health.
$ cat ~/.muh-history.test
6851  2024-02-25 18:44:30-0700 export PROMPT_COMMAND='history 1 >> ~/.test-history'
6852  2024-02-25 18:44:35-0700 fortune

I started doing this in 20151, but later added more metadata—the bash pid, current directory, and user.

Today, my history file looks like this:

$ tail -1 ~/.muh-history
847008 /home/thcipriani thcipriani 2024-02-27T15:52:16-0700 echo 'Weeee!' | figlet | lolcat

Now, I can crawl these bits of metadata to look at my history in interesting ways. For example:

  • Trace the history of a single shell session.
  • Show all commands within a time range.
  • Search for all commands run in the current directory.

🧐 Problems and tradeoffs of ~/.muh_history

My eternal shell history has been working well for eight years. But every solution has tradeoffs and problems:

  • One machine – This works on one machine. If you need history saved across more than one machine, Atuin seems like what you want (though I’ve never tried it).
  • Local security – This stores any command you run, including those with woopsied passwords. The HISTCONTROL=ignorespace setting helps—it makes history ignore commands that start with a space.
  • Bash only – I use the default Linux shell for most operating systems: bash. Nicer shells can do the same things as PROMPT_COMMAND and history (e.g., zsh’s preexec, fish’s fish_preexec).
  • Overly simplisticMcFly and Atuin seem like robust, active alternatives. And both use PROMPT_COMMAND under the hood. Maybe I’d start there if I were starting today, but ~/.muh_history pre-dates both projects.
  • Remote security – It would be Bad™ to install this on a remote machine unless you’re the admin of that machine. Never cross a sysadmin.

⚠️ Flailing at bash’s built-in history, Wed, 02 Sep 2015, Wed, 02 Sep 2015

Goals of ~/.muh_history:

  1. Eternal – I want the option of keeping history forever.
  2. History builtin commands – “↑” and ctrl-r should work in the default way.
  3. History builtin depth – I want a few weeks of history available to ctrl-r.
  4. Instant startup – Minimize lag when starting new bash sessions.
  5. No logrotate – Avoid logrotate, systemd timers, and cronjobs to manage history—nothing to troubleshoot or maintain.

And the hacks I’ve seen to juice bash’s built-in ~/.bash_history fail at least one of these:

  • HIST(FILE)SIZE=<huge number>2 – On startup, bash loads a HISTSIZE amount of HISTFILE into memory—this could cause lag during bash startup unless you logrotate regularly. And there’s a risk of losing commands if/when your sessions crash.
  • unset HIST(FILE)SIZE/HIS(FILE)SIZE=-1 – This should make HIST(FILE)SIZE infinite, so the same caveats apply as using a huge number. Plus, this has a history of failing in some instances.
  • HISTFILE=~/.history/$(date -I) – For the first bash session you start in the morning ctrl-r will give you nothing.
  • PROMPT_COMMAND='history -a && history -r' – Before showing your prompt, write your in-memory history to HISTFILE and re-read it into memory. This mixes up the history of different sessions, so hitting “↑” may show history from a different session.

Other pitfalls:

  1. Write on exit – when you exit a session, bash dumps HISTSIZE lines of your command history into ~/.bash_history. If your session crashes: all gone. This makes HIST(FILE)SIZE unappealing to me.
  2. Append vs. overwrite – if your shell initialization files skip setting histappend, bash will overwrite ~/.bash_history rather than append your session history on exit.
  3. Small defaults – bash stores your 500 most recent commands in your session history and 500 commands from old sessions in ~/.bash_history.

I’ve set some sensible defaults and ignored clever ideas. Here are my settings:

# append to history vs. overwrite
shopt -s histappend
# ignore commands starting with space; ignore duplicates
# Up the history in memory: 500 → 10,000
# Up the history on disk: 500 → 20,000
# RFC 3339 format; e.g., 2024-02-27T15:52:16-0700

  1. When I read the wonderful, shorter version of this article: Andy Teijelo Pérez’s Bash eternal history↩︎

  2. I scraped of GitHub for HISTSIZE=. It’s all over the place. Max: 10,000,000,000,000,000; 25 percentile: 1,000; 75th percentile: 100,000; median: 10,000. I set mine at the median. Works fine.↩︎

Read the whole story
6 hours ago
Boulder, CO
Share this story

US sues to block merger of grocery giants Kroger and Albertsons, saying it could push prices higher

1 Comment

The Federal Trade Commission sued to block a proposed merger between grocery giants Kroger and Albertsons, saying the $24.6 billion deal would eliminate competition and lead to higher prices for millions of Americans.

The FTC filed a lawsuit in U.S. District Court in Oregon on Monday. It was joined in the suit by the attorneys general of eight states and the District of Columbia.

The move comes less than two weeks after Colorado Attorney General Phil Weiser filed a similar lawsuit in Denver District Court that also seeks to block the merger, likewise arguing it could harm consumers.

Kroger and Albertsons, two of the nation’s largest grocers, agreed to merge in October 2022. The companies said a merger would help them better compete with Walmart, Amazon, Costco and other big rivals. Together, Kroger and Albertsons would control around 13% of the U.S. grocery market; Walmart controls 22%, according to J.P. Morgan analyst Ken Goldman.

Kroger, based in Cincinnati, Ohio, operates 2,750 stores in 35 states and the District of Columbia, including brands like Ralphs, Smith’s and Harris Teeter. Albertsons, based in Boise, Idaho, operates 2,273 stores in 34 states, including brands like Safeway, Jewel Osco and Shaw’s. Together the companies employ around 700,000 people.

But the merger, announced at a time of high food-price inflation, was bound to get tough regulatory scrutiny. U.S. prices for food eaten at home typically rise 2.5% per year, but in 2022 they rose 11.4% and in 2023 they rose another 5%, according to government data. Inflation is cooling, but gradually.

“Kroger’s acquisition of Albertsons would lead to additional grocery price hikes for everyday goods, further exacerbating the financial strain consumers across the country face today,” Henry Liu, the director of the FTC’s Bureau of Competition, said in a statement.

The FTC, which said the proposed deal would be the largest grocery merger in U.S. history, said it would also erase competition for workers, threatening their ability to win higher wages, better benefits and improved working conditions.

The Biden administration has also shown a willingness to challenge big mergers in court. Last month, the Justice Department sued to block a proposed merger between JetBlue Airways and Spirit Airlines.

The action by the FTC and the states follows lawsuits filed earlier this year in Colorado and Washington to block the merger. The states that joined the FTC lawsuit Monday are Arizona, California, Illinois, Maryland, Nevada, New Mexico, Oregon and Wyoming.

Kroger has promised to invest $500 million to lower prices as soon as the deal closes. It said it also invested in price reductions when it merged with Harris Teeter in 2014 and Roundy’s in 2016. Kroger also promised to invest $1.3 billion in store improvements at Albertsons as part of the deal.

Last year, C&S Wholesale Grocers agreed to purchase 413 stores and eight distribution centers that Kroger and Albertsons agreed to divest in markets where the two companies’ stores overlapped. C&S said it would honor all collective bargaining agreements with workers.

Still, the United Food and Commercial Workers union, which represents 835,000 grocery workers in the U.S. and Canada, voted last year to oppose the merger, saying Kroger and Albertsons had failed to be transparent about the potential impact of the merger on workers.

The union was also critical of a $4 billion payout to Albertsons shareholders that was announced as part of the merger deal. Several states, including Washington and California, tried unsuccessfully to block the payment in court, saying it would weaken Albertsons financially.

Kroger and Albertsons had hoped to close the deal early this year. But the two companies announced in January that it was more likely to close in the first half of Kroger’s fiscal year. Kroger’s fiscal second quarter ends Aug. 17.

Read the whole story
4 days ago
get 'em
Boulder, CO
Share this story

Saturday Morning Breakfast Cereal - Yeep


Click here to go see the bonus panel!

Also nothing will ever taste as good as a single oreo, age 9.

Today's News:
Read the whole story
4 days ago
Boulder, CO
Share this story

the mystery

1 Share

Read the whole story
4 days ago
Boulder, CO
Share this story

we’ve found it folks: mcmansion heaven

2 Comments and 7 Shares

Hello everyone. It is my pleasure to bring you the greatest house I have ever seen. The house of a true visionary. A real ad-hocist. A genuine pioneer of fenestration. This house is in Alabama. It was built in 1980 and costs around $5 million. It is worth every penny. Perhaps more.

Now, I know what you’re thinking: “Come on, Kate, that’s a little kooky, but certainly it’s not McMansion Heaven. This is very much a house in the earthly realm. Purgatory. McMansion Purgatory.” Well, let me now play Beatrice to your Dante, young Pilgrim. Welcome. Welcome, welcome, welcome.

It is rare to find a house that has everything. A house that wills itself into Postmodernism yet remains unable to let go of the kookiest moments of the prior zeitgeist, the Bruce Goffs and Earthships, the commune houses built from car windshields, the seventies moments of psychedelic hippie fracture. It is everything. It has everything. It is theme park, it is High Tech. It is Renaissance (in the San Antonio Riverwalk sense of the word.) It is medieval. It is maybe the greatest pastiche to sucker itself to the side of a mountain, perilously overlooking a large body of water. Look at it. Just look.

The inside is white. This makes it dreamlike, almost benevolent. It is bright because this is McMansion Heaven and Gray is for McMansion Hell. There is an overbearing sheen of 80s optimism. In this house, the credit default swap has not yet been invented, but could be.

It takes a lot for me to drop the cocaine word because I think it’s a cheap joke. But there’s something about this example that makes it plausible, not in a derogatory way, but in a liberatory one, a sensuous one. Someone created this house to have a particular experience, a particular feeling. It possesses an element of true fantasy, the thematic. Its rooms are not meant to be one cohesive composition, but rather a series of scenes, of vastly different spatial moments, compressed, expanded, bright, close.

And then there’s this kitchen for some reason. Or so you think. Everything the interior design tries to hide, namely how unceasingly peculiar the house is, it is not entirely able to because the choices made here remain decadent, indulgent, albeit in a more familiar way.

Rare is it to discover an interior wherein one truly must wear sunglasses. The environment created in service to transparency has to somewhat prevent the elements from penetrating too deep while retaining their desirable qualities. I don’t think an architect designed this house. An architect would have had access to specifically engineered products for this purpose. Whoever built this house had certain access to architectural catalogues but not those used in the highest end or most structurally complex projects. The customization here lies in the assemblage of materials and in doing so stretches them to the height of their imaginative capacity. To borrow from Charles Jencks, ad-hoc is a perfect description. It is an architecture of availability and of adventure.

A small interlude. We are outside. There is no rear exterior view of this house because it would be impossible to get one from the scrawny lawn that lies at its depths. This space is intended to serve the same purpose, which is to look upon the house itself as much as gaze from the house to the world beyond.

Living in a city, I often think about exhibitionism. Living in a city is inherently exhibitionist. A house is a permeable visible surface; it is entirely possible that someone will catch a glimpse of me they’re not supposed to when I rush to the living room in only a t-shirt to turn out the light before bed. But this is a space that is only exhibitionist in the sense that it is an architecture of exposure, and yet this exposure would not be possible without the protection of the site, of the distance from every other pair of eyes. In this respect, a double freedom is secured. The window intimates the potential of seeing. But no one sees.

At the heart of this house lies a strange mix of concepts. Postmodern classicist columns of the Disney World set. The unpolished edge of the vernacular. There is also an organicist bent to the whole thing, something more Goff than Gaudí, and here we see some of the house’s most organic forms, the monolith- or shell-like vanity mixed with the luminous artifice of mirrors and white. A backlit cave, primitive and performative at the same time, which is, in essence, the dialectic of the luxury bathroom.

And yet our McMansion Heaven is still a McMansion. It is still an accumulation of deliberate signifiers of wealth, very much a construction with the secondary purpose of invoking envy, a palatial residence designed without much cohesion. The presence of golf, of wood, of masculine and patriarchal symbolism with an undercurrent of luxury drives that point home. The McMansion can aspire to an art form, but there are still many levels to ascend before one gets to where God’s sitting.

If you like this post and want more like it, support McMansion Hell on Patreon for as little as $1/month for access to great bonus content including a discord server, extra posts, and livestreams.

Not into recurring payments? Try the tip jar! Student loans just started back up!

Read the whole story
28 days ago
My god, it's a work of art.
Washington, DC
27 days ago
Died in childbirth ass bed
9 days ago
Boulder, CO
Share this story
1 public comment
17 days ago
The pièce de résistance of McMansions!
San Francisco, CA

BOMBSHELL: Potential Criminal Activity Revealed in the Kroger-Albertsons Merger

1 Share

Welcome to BIG, a newsletter on the politics of monopoly power. If you’d like to sign up to receive issues over email, you can do so here.

Today I’m writing about the $24 billion Kroger-Albertsons supermarket merger, which is, to put it mildly, in trouble. I haven’t written about this deal in depth since late 2022, because it looks like a standard problematic big merger. It’s a private equity arrangement where the executives will get rich, consumers will pay higher prices, workers will endure lower wages, and there will be worse quality in the food system. There will be a trial where the Federal Trade Commission will argue before a judge that it should be blocked, and it’s semi-random how judges interpret the Clayton Act. I said that in late 2022, and little had changed.

But fascinating things have happened over the last few months. Most notably, enforcers found what looks like criminal behavior by Albertsons and Kroger to suppress worker wages, and are actually doing something about it beyond just challenging the merger.

But first, let’s go over the stakes of the deal itself. The Kroger-Albertsons combo is massive:

Kroger and Albertsons are both monsters, and the two of them combining would create the second largest chain in the country, after Walmart, with 15% of the national grocery business. Kroger/Albertsons would employ over 700,000 people, have over $200 billion in revenue and more than 40,000 private label brands, and own and operate brands such as Safeway, Ralphs, Smith’s, Harris Teeter, Dillons, Fred Meyer, Vons, Kings, Haggen, Tom Thumb, Star Market, Jewel-Osco, and Shaw’s.

There are already 30% fewer grocery stores than there were a few decades ago, because of consolidation. And that’s a problem. Large chains “not only secure better prices for goods than their smaller counterparts, but can also increase prices faster than costs, contributing to inflation.” This merger will worsen the situation, as “suppliers, consumers, and workers will all feel the pressure from Kroger/Albertsons, and since suppliers buy from farmers, farmers will feel it too, at least indirectly.” There are also data implications, since both firms have large data stores and seek to grow their targeted advertising business.

The share of food sales at supermarkets, other grocery stores, warehouse clubs, and supercenters of the top 4, 8, and 20 retailers trended upwards for the last three decades

Kroger and Albertsons both argued that their deal will increase efficiencies and lower prices. So far, that argument hasn’t worked. Since this merger was announced, most labor unions turned against it, and so have a lot of politicians concerned about the shuttering of stores or higher prices. (UFCW Local 555 just endorsed the merger, largely due to fear that if this deal doesn’t go through the firms will shutter a bunch of stores. That said, UFCW Local 555 is an outlier who has angered their own members with the move.)

The Federal Trade Commission, which has jurisdiction over supermarkets, hasn’t filed a case yet but is likely to oppose the merger soon. Two separate state attorneys general - Bob Ferguson in Washington state and Phil Weiser in Colorado - filed complaints in their states, meaning there will be state-level trials. They make the standard claims of higher prices, less choice, and lower quality, and Weiser adds an interesting wrinkle by noting that consolidation harms supply chain resiliency by ending fair prices for local produce, like Colorado Palisade peaches.

The procedure here is a bit unusual. Most mergers involve one large set of enforcers all working together in one trial. Because of suits by Colorado, Washington, and (soon) the FTC, this one is three separate trials. Kroger and Albertsons basically have to win them all to complete the combination, a sort of death by a thousand cuts theory on how to scuttle a deal. But it’s not the procedure so much as what’s in the state complaints that is so interesting.

Merger investigations are in-depth examinations of firm strategy, with lawyers poring through millions of emails turned over as part of the review process. Usually, these documents include employees writing embarrassing things like, “You are basically creating a monopoly in grocery with the merger . . . It’s like AT&T and Verizon wanting to merge,” or executives saying “We are being bought by our enemy,” or musings on how a deal can’t possibly be approved because it would create a “monopoly.” Albertsons wrote internally that where there’s less competition it can hike prices and “margin up” and Kroger similarly noted it can pursue a “different price strategy” in those circumstances. All of those things are in the complaints, and executives will be asked about them. But that’s standard for a merger trial.

No, what’s amazing is what they found independent of the merger itself. The Colorado Attorney General Phil Weiser published evidence in his complaint that the two firms routinely colluded to not hire each other’s workers in order to suppress wages and break their unions. This dynamic was particularly bad in early 2022, when unionized workers at a Kroger supermarket chain, King Soopers, went on strike after their contract expired. And let’s be clear, these firms hate unions. Kroger executives, for instance, had previously considered “closing” unionized stores in Washington state “for a period of time to make them nonunion.”

Why didn’t Kroger shut down union stores temporarily? The answer is competition. If they had done so, rivals would have taken their customers

A different path, rather than shutting stores, was to work with a rival to collude against workers, which is what Albertsons and Kroger did. And there are emails. This isn’t surprising, though it’s always shocking to read stuff this blatant. On January 9, 2022, the SVP of Labor Relations at Albertsons, Daniel Dosenbach, wrote his counterpart at Kroger, Jon McPherson, who was the VP for Labor & Associate Relations at Kroger, and pledged not to hire any striking workers. Here’s the email he sent:

After Dosenbach sent this email, another Albertsons executive, Brent Bohn, forwarded it to the executive team, writing "let's make sure the Denver team understands the below two things" - meaning the wage-fixing and non-solicitation agreements. He concluded with, "Please don't forward the email."

BIG is a reader-supported newsletter focused on the politics of monopoly and finance. This is journalism that reveals how power works, so please consider a paid subscription. Lies are free, the truth costs a few bucks. You can subscribe by clicking here.

Subscribe now

Other executives, such as President of Albertsons Denver Division Todd Broderick confirmed the agreement in an interview with the FTC. He also told higher ups about the agreement not to “hire [King Soopers'] employees and not actively solicit their pharmacy customers,” including Chief Operating Officer Susan Morris.

At Kroger, the agreement was widely known. McPherson told CEO Rodney McMullen, CFO Gary Millerchip, General Counsel Christine Wheatley, SVP of Operations Mary Ellen Adcock, Chief People Officer Timothy Massa, and President of the King Soopers and City Market Division Joe Kelley. It wasn’t the first instance of such a promise, there were records of agreements elsewhere at different times. In other words, there’s fairly good evidence of a conspiracy of all the executives in both firms working together to steal money from their workers. That said, Kroger denies there were any such agreements, and I’m not 100% sure, as it’s not clear from the emails that Kroger participated in the no-poach and non-solicitation agreements, or if it was a one-way promise. In the complaint Weiser, asserts it was an agreement. I suspect we’ll learn more when the FTC files.

So that’s the wage-fixing and non-solicitation activity.

There’s another aspect of the deal revealed by Washington Attorney General Bob Ferguson, whose complaint was unsealed, that will make it much harder to complete the merger. Kroger and Albertsons are trying to avoid monopolization claims by selling off stores where there are geographic overlaps, with the idea that they aren’t going to reduce competition because there will still be rivals in local markets. That is, even though the two firms will get bigger, supermarkets don’t compete at a national level, they compete in a few mile radius for shoppers, and if a third party buys the stores where there are overlaps, then the deal is kosher.

So Kroger and Albertsons will sell 413 stores to a company called C&S Wholesale Grocers, which is a distributor in the food industry. What Ferguson found is that C&S has a track record of buying and closing supermarket stores. And in this case, the firm seems to have little intention of keeping the stores it is acquiring open. I bolded the relevant part below.

Neither Defendants nor C&S have provided binding commitments that would ensure that C&S will continue to operate and invest in the divested stores. To the contrary, C&S’ internal documents suggest that it is not committed to operating all of the stores it hopes to acquire from Defendants. When commenting on a draft press release relating to the Proposed Transaction in September of this year, C&S’ former CEO commented to current CEO, “Do we have to say that we won’t close stores? (the ‘all’ is a problem’) – the trick is that they stay open as they transition but then what? Are we committed to this?”

There’s a lot more, of course. C&S isn’t a retailer, it has never operated a grocery store in Washington, it doesn’t have the IT systems ready to go, it doesn’t have an array of private brands necessary to make its retail operations profitable, and it doesn’t seem to have much interest in actually competing.

This dynamic, of a likely failed divestiture in a giant supermarket merger involving a private equity giant, has happened before, with the same company, Albertsons, in “one of the swiftest, most spectacular corporate crash-and-burns in recent history.” Washington state residents remember it bitterly. Here’s Ferguson:

Indeed, the proposed divestiture bears a striking resemblance to Albertsons’ failed divestiture of stores in connection with its 2015 acquisition of Safeway. In order to address competition concerns regarding that merger, Albertsons and Safeway divested 146 stores, including 26 stores in Washington, to Haggen, a Washington-based regional supermarket chain. Haggen lacked the infrastructure to rapidly expand to a multi-state, national grocery retailer and struggled immensely to operate the divested stores. Six months after the divestiture, Haggen was forced to lose 127 stores (14 of which were in Washington)2 and lay off thousands of workers (more than 1,130 of whom had worked in Washington).

Albertsons sabotaged the stores it was selling to Haggen. It “overstocked stores so products spoiled, and understocked others so customers complained about a lack of product. It reduced advertising for the stores it was selling before Haggen took over. And it kept the customer data from loyalty rewards programs, so Haggen couldn’t use that information in advertising.” But the truth was, Haggen was buying the divested stores for the real estate, which was worth more than the stores themselves, as “executives knew they could make money selling off the property even if the stores went bankrupt.”

And that’s similar here, with a $1.9 billion purchase price to C&S for a set of stores whose “real estate alone is worth at least $2 billion” along with five distribution centers “worth at least $400 million.” So the divestiture intended to make the deal competitive doesn’t seem to work. And even if there weren’t so much evidence the C&S side deal was intended to fail, it would still be conceptually absurd. If Kroger and Albertsons believe that scale fosters efficiency, and that will bring down prices, then why does it make sense to create a much smaller third party competitor?

So what now? Is this just going to be another merger trial? No. In this case, Colorado AG Weiser isn’t just asking to block the merger, but to fine both firms $1 million apiece for their agreement to not solicit each others’ customers or workers.

That’s not a lot of money for these firms, and certainly wouldn’t scare any CEO in and of itself. But if a judge does actually find Kroger and Albertsons liable for collusion, then it opens the door to class action follow-on litigation. Indeed, Kim Cordova, the president of UFCW Local 7, said her union has already filed unfair labor practices with the National Labor Relations Board after this information came out, and is considering suing directly.

And who knows what the Department of Justice Antitrust Division will do? They do have a track record of trying to address criminal behavior around wage-fixing, though I imagine the evidence will determine if they pick it up since the bar for criminal liability is much higher. Either way, it’s an ugly precedent. Already, engaging in a merger is a highly risky endeavor, and if you can’t get your deal through, you often lose your job. Now enforcers have opened up the possibility of finding other wrongful corporate behavior in the course of a merger investigation. And that’s yet another reason not to do M&A.

Thanks for reading! Your tips make this newsletter what it is, so please send me tips on weird monopolies, stories I’ve missed, or other thoughts. And if you liked this issue of BIG, you can sign up here for more issues, a newsletter on how to restore fair commerce, innovation, and democracy. And consider becoming a paying subscriber to support this work, or if you are a paying subscriber, giving a gift subscription to a friend, colleague, or family member.


Matt Stoller

Read the whole story
9 days ago
Boulder, CO
Share this story
Next Page of Stories