Tom Roche
Shared posts
On Property: Rinaldo Walcott
Tom Rocheabsolutely (unintentionally) hilarious: Walcott claims police abolition "is not an endpoint" but just "continuously evaluating what we want from policing." Similarly, abolishing private property "does not mean that no one would own their own homes" but that there would be ... a muddled mess, but basically Wolcott seems to mean public regulation. Both excellent ideas, that have nothing to do with any reasonable definition of "abolition."
The Unnatural Endurance of Bipartisanship
Tom RocheVERY EXCELLENT, see https://newrepublic.com/article/161542/unnatural-endurance-bipartisanship
Joe Biden ran for president promising to “revive” the spirit of bipartisanship, put an end to factional battles, and bring Americans together after an era of painful division. Yet faced with an intransigent, extremist Republican Party that has little to gain from compromise, such a vision of politics seems quaint at best. On Episode 26 of The Politics of Everything, hosts Laura Marsh and Alex Pareene look into the history of bipartisanship as an ideal. The show features Paul Blest, a co-founder of Discourse Blog; Ed Burmila, the author of a forthcoming book on the mistakes of the Democratic Party; Osita Nwanevu, a staff writer at The New Republic; and Julian Zelizer, a professor of history at Princeton University. Does bipartisanship have a future in American politics? And, more to the point, should it?
Learn more about your ad choices. Visit megaphone.fm/adchoices
Tulsi Gabbard calls out the US dirty war on Syria that Biden, aides admit to
Tom RocheVERY EXCELLENT, essence of Imperial Party evil condensed to 23:26 of audio
Bernie Backers Took Over the Nevada Democratic Party. The Old Guard Walked Out.
Tom RocheVERY EXCELLENT: time for "the left" to take the Democratic Party from the CorpDems the same way the Trumpists took the Republican Party from the CorpPubs
On Saturday, a year after Sen. Bernie Sanders won the Nevada caucuses in the Democratic presidential primary, a slate of progressive candidates swept elections for leadership positions in the Nevada State Democratic Party. Ryan Grim talks to activist Keenan Korth and Judith Whitmer, who was elected state party chair, about how they out-organized establishment Democrats.
[Introductory music.]
Ryan Grim: Welcome to Deconstructed. This is Ryan Grim.
On Saturday afternoon, the Nevada Democratic Party leadership was thrown out of office by a coalition that had come together organizing for Bernie Sanders in the state’s caucuses in 2016 and 2020. What happened next was both shocking and, if you’re cynical enough, expected.
To back up — a group of five candidates calling themselves the progressive slate, running in coalition with the local Democratic Socialists of America, swept four of the five races Saturday against the establishment slate, which dubbed itself “Progressive Unity.” After a fight over who was eligible to vote and whose vote hadn’t been counted, the one race they lost flipped, meaning the DSA-backed slate had won all five party leadership positions.
The party establishment, which is still led by former Senate Majority Leader Harry Reid, a titan in Nevada politics, quickly ditched the rhetoric about unity. Local reporter John Ralston reported that nearly half a million dollars was drained from the party’s coffers and transferred to the Democratic Senatorial Campaign Committee. Every employee quit; all the consulting contracts were severed.
Not long after winning her chair race, Judith Whitmer got a blunt email from the soon-to-be-former Nevada state party executive director, Alana Mounce. The email begins:
“Judith — congratulations on being elected the new NV Dems Chair. I am writing to inform you that I have received resignations from all NV Dems staff, as well as notices of termination of contracts from our consultants. Additionally, I will resign effective Monday, March 8th.
The NV Dems had already made arrangements with our payroll provider to process the 3/15 payroll for our employees (before learning of their earlier departure). To recognize these employees for their contributions to the party and facilitate a smooth transition we have also already provided them severance through the end of the month.
Thank you,
Alana”
Mounce didn’t respond to a request for comment, but that ruthlessness is part of what has made the Reid machine so effective against Republicans in the state, but it’s unclear how it’ll work against the party’s progressive wing.
In a twist of history, Reid himself actually produced the conditions that led to his own lieutenants getting tossed from office. It was Reid who successfully maneuvered in 2008 to make Nevada the first presidential caucus in the West. His reasoning was simple: He wanted presidential candidates to have to take a position on whether nuclear waste should be stored at Yucca Mountain — more precisely, he wanted that position to be no. In exchange for Obama’s promise to scuttle the Yucca Mountain project, Reid endorsed him for president, after encouraging him to run. It worked: Obama appointed a former aide of Reid’s to the Nuclear Regulatory Commission with instructions to halt the project.
Reid also wanted the caucus to help build the party’s infrastructure, and that worked, too. After years of Republican control, Democrats now hold the governor’s mansion, the state Senate, and the state House, as well as both Senate seats. Without those two senators, there’d be no Democratic majority in the Senate today.
But the caucuses also created an opening for Bernie Sanders, and his supporters have run through it to swamp the party. Instead of finding a way to work with the newcomers, the Reid machine is setting up an independent shop.
We’ll be joined today by Whitmer as well as Keenan Korth, a Nevada organizer you might remember as a character in the documentary “Knock Down the House,” where he was on the staff of Amy Villella, who lost a race for Congress in 2018 in Nevada. Korth went on to work for another “Knock Down the House” candidate, Cori Bush, in 2020.
Judith, welcome to Deconstructed.
Judith Whitmer: Thank you, Ryan. It’s good to be here.
RG: Keenan Korth, thank you for joining me here.
Keenan Korth: Great to be here as well.
RG: [Laughing] So, tell me what happened this weekend! Judith, you’re now running the Nevada Democratic Party?
JW: I am. I’m officially the chair of the state party here in Nevada. We’ve got a lot of work to do, but we’re ready to do it.
RG: And so … winning this entire slate, how much of that had to do with Bernie Sanders victory in the Nevada caucuses a year ago, and how much of it relied on organizing over the last year? Was it a fait accompli once Bernie had done so well in the caucuses? Or was it kind of a push and pull since then?
JW: I think that it goes all the way back to 2016, actually, and the fact that we saw some missed opportunities, but there was still progressive engagement and a few progressive startups that didn’t go anywhere. And then when Bernie announced his run for 2020, I think it was reinvigorating for a lot of the progressives that were still here and were still engaged, but just not organized. So once we started organizing for the Bernie campaign, we went all in on that, we had a very effective strategy — a very effective ground game in coalition with DSA — and then a coalition with the Left Caucus to bring all those people into the fold and back into the progressive movement. And that’s what led to a landslide win here for Bernie Sanders in Nevada.
RG: Now are both of you dues-paying DSA members? How many of the five-person slate are DSA members?
KK: I believe four of them are formerly dues-paying DSA members and one of them located in Carson City County simply does not have a local org to join. But we are certainly trying to get DSA up and running in every county here in Nevada, so that our inside-outside strategy works in every county.
RG: So what was the message that you ran on? I noticed that you called your slate the progressive slate, whereas the establishment called there’s the “Progressive Unity” slate. So what were the differing messages?
JW: [Laughing] Well, we were up and running with the progressive slate back during the state convention. So what happened was we were organizing for the caucus, obviously, and, you know, we had a big win here and a big celebration with Nina Turner. And so after that, we worked really hard to keep those delegates engaged through the convention process. When Bernie suspended his campaign, of course, a lot of people were feeling pretty frustrated, and disappointed, and we couldn’t let them all just disappear. So we worked overtime to make sure that we gave them a reason to stay engaged in the progressive movement through the work of DSA on the outside, Left Caucus on the inside; we kept them engaged through the state convention, and that’s when we elected members of our organization of DSA and Left Caucus to the state party executive board as at-large members, and that was on the progressive slate. So we decided to carry that over for this campaign as well, because it had been so effective. We won nine out of 10 races in that particular campaign for the state convention.
KK: And, you know, our progressive slate here that we ran on, right, that was like 12 months-plus in the making versus the “Progressive Unity” slate, which was much more of a reaction to, I think, the establishment or the status quo seeing the writing on the wall, seeing what we had been able to accomplish last summer. And I think the the implicit message of their slate, they wanted to project that they were progressive because they knew that they had to be — to a certain extent — to have a shot at all, because of the sheer numbers that, under Judith’s leadership, we have been able to recruit into our county and state central committees here.
But, you know, the implication was always that they were uniquely suited to be able to unify the party, whereas our slate was divisive or would be unable to do so.
RG: Which is fascinating, given what the reaction has been from the “Progressive Unity” faction since then.
JW: [Laughing.]
RG: Judith, you, not long after winning, you got an email from the executive director of the party saying: Congratulations on becoming the new chair, effectively I’m writing to quit — and also everyone else is quitting, all the rest of the employees are quitting, and we have severed all of our contracts with our contractors. Were you surprised to get that message?
JW: We weren’t really surprised, in that we were prepared for it. We were hoping that that would not be the case. I mean, we’ve had many conversations — we do a lot of consensus building, we do a lot of worst-case scenario discussions about OK, what if this and what if that — so it didn’t hit us by surprise, necessarily in that regard. But what is sort of shocking is that for a slate that claimed that they were all about unity, and kept this false narrative of division going on throughout the entire campaign, in fact, they kept intensifying that, that’s what was surprising about it was then the willingness to just walk away instead of working with us.
KK: And yesterday — sorry, yeah — even before the meeting was over, the virtual Central Committee meeting, it was kind of ironic to see John Ralston here reporting some comments from those inside the “Reid machine” — as they framed it — that even before the meeting was adjourned, and these elections were ratified, that they were framing this as they had no other option but to work around the party.
RG: Right. And I understand, I mean, from the local reporting, that they moved something like $400,000, $500,000 out of the party coffers and transferred it over to the DSCC somewhat recently. Is that accurate? And what is left of the party that you’ve now taken over?
JW: Well, we are still working through our attorney to gain access to everything. So that’s an ongoing effort right now.
RG: Mhmm.
JW: So we don’t even know if that reporting is entirely accurate, especially given the source of some of that information. We’re not entirely sure it’s accurate. But we have taken measures to make sure that everything is safeguarded: A letter went out today from our attorney, making sure that no other actions were taken.
We are officially in charge of the party. That became the case as soon as the election meeting adjourned; there’s no gap in that or no wait time to take that office. So as the state party chair, I made the decision that we had to safeguard our party assets, our party bank account, and everything else. And the letter from our attorney went out today.
RG: And Keenan, I want to read you the quote that you were referencing, and ask you to unpack it for people. So this is in the [Las Vegas] Review Journal, this is a source to an operative, somebody who’s close to what’s known as the Reid machine. So the quote says: “But keep in mind, the Reid machine is not the Central Committee. It’s the operatives, volunteers, fundraising, and organizing capacity, all of which can be accomplished outside of the state party organization. Unfortunately, there’s no real choice but to work around the party.”
So what signal is the operative sending there? And, functionally, how does the machine carry that out?
KK: Well, you know, I think to start, one of the things that’s notable is, and we saw this in the lead-up to the election this weekend, this sort of reframing of the party, of the Central Committee membership, trying to minimize the role of that governing body of the party, trying to minimize the scope or the legitimacy of the decisions we make; it’s funny, because over the past four years, there have been a lot of efforts for progressives — for Sanders supporters post-2016 — to engage in the party, a lot of fights have been mounted at the county and state level at our Central Committee meetings, whether they’ve been leadership elections, motions to implement new rules and procedures or change bylaws. And we would routinely come up short prior to this most recent caucus-to-convention process, we would get a 40-45 percent of the vote. And we were always told: Well, you know, this is how it works. Don’t hate the player, hate the game. If you want to make change, get involved.
RG: Mhmm.
KK: Right? There’s been this sort of this specter of “Dem exit” — at once scornful of people who maybe get frustrated with the party and leave and they say: Well, you need to just stick around and make it better. And then also dismissive of anyone who actually does.
And so what we’ve seen now is, OK, we’re going to double-down and play this game where we understand how it’s done and knew the opportunity in Senator Sanders’ landslide win in the caucus that we had. By no means was it inevitable — it was a concerted organizing effort — but we knew what the rules of the game wore, and we played by it accordingly. This is the first time we really heard the Nevada State Central Committee members, as a body minimized, and it’s in the same way that the left always has been, that DSA has been, that progressives have been.
RG: And, Judith, the reaction of the establishment here feels almost tailor-made to breed cynicism. Like Kenan was saying, the message that leftists are always given is: Look, if you don’t like how things are, be the change, make the change; do the work, show up for the meetings, be a loyal party member, we follow Robert’s Rules of Order, make your case, and may the best person win.
You win. And, as he said, it seems like they would rather burn the thing to the ground, than have somebody else be in control of it — literally draining funds from it, and stripping it of all of its staff, and its contract, and its consulting contracts, and suggesting that they’re going to build a rival kind of party apparatus to it.
So, for people who hear that and say: “See? I told you! This is pointless.” What would you say to them? What are the tools that you have? And what should people look for from this new Nevada Democratic Party over the next couple of years? What can you do?
JW: Well, actually, one of our biggest goals was removing the obstruction. And when they talk about putting in the work or putting in the time, I was one of those people.
So in 2017, I ran for party office. I’ve been serving on the Clark County Democratic Party Executive Board since 2017. So I’ve been putting in the work. What they just didn’t expect is that we got better and better at organizing and out-organizing them at every turn.
RG: Right, don’t put in that much work!
JW: Yeah! Exactly, right? That’s not really what they met. They meant just, you know, show up and do what you’re told — which was never me, it was never going to be me. But I did put in the work.
So I have been at all the meetings. I’ve been at all the campaign events, all the canvassing, everything it takes. I did the fundraising for Clark Dems. We raised more money during small-dollar, grassroots fundraising than they’d ever had before. And we had money to help in this last election.
So they tried something similar with Clark County Executive Board when we had these massive resignations and they walked away, thinking that we were going to fail and then they would just be rid of us, and that we would just give up and go away. Well, it didn’t quite work out the way they wanted it to. And Clark County Dems is thriving and has grown to over 1,200 members under my leadership.
So I have been constantly encouraging people, and recruiting people, to go onto these central committees, to become members of them, knowing full well that there is power there because it’s the governing body of the Democratic Party. They can try to minimize that role, but the main thing here is that those rules are made by a body bent on the whole philosophy that you have to vote blue no matter who, you always have to fall in line, you have to do what you’re told, and — maybe — you might someday get rewarded for that. I don’t believe in that. I believe that this should be an open and democratic process and that people should get to choose their own candidates. But when the party keeps constantly putting obstructions in the way of people doing that, then the best option — to me — is removing the obstruction.
RG: Right. So what will it look like on the ground, this new Nevada Democratic Party, for regular, rank-and-file members of the Democratic Party, for voters, for disaffected people? What change will they see in how they kind of relate to the Democratic Party? And, related to that, how has the last day of fundraising been? It’s been a bit more than 24 hours since you won. Has there been a national response?
JW: We have just — like I said — literally been dealing with issues at hand, trying to get access to everything. But we do have a fundraising plan, and a fundraising mechanism, and we will be doing that immediately. So I’m really not worried about the money or the fundraising. We know how to do that and we’ve got a really great team — and we work together as a team. We’ve already had numerous discussions about how we’re going to raise the money, how we’re going to support candidates, how we’re going to recruit and engage candidates from disenfranchised, marginalized communities. This is the kind of work that we’ve already been doing on the ground.
And we actually have been building a really effective ground game. And we’re about to roll out a new get-out-the-vote operation, because that’s being restructured as well, because the old, so-called precinct captain program doesn’t serve people well in a 2020-2021 cycle, and going into 2022, we saw during this pandemic, that it’s not going to just be knocking on doors anymore to be effective. We’ve got to be a lot more innovative in our approaches: We’ve got to have not only a great ground game and a great structure for implementing that ground game, but it’s gonna come down to the latest technology, the latest, great digital outreach as well, and finding ways to constantly engage people. Because people engage a lot differently now than they used to! And I don’t think things are going to go back to business as usual even once we have a fully vaccinated population, it’s going to mean that we’re going to have to find more creative ideas and solutions — and sometimes customizable solutions.
I’ve been meeting with all of our rural counties and our county chairs, and we’re mapping out statewide election strategies going forward. And some of our counties want to be able to recruit their own candidates in some of these rural areas, but they’ve been prevented from doing that before, because, typically, people at the top decide: OK, it’s mostly a Republican district, there isn’t a chance in hell, we’re not putting any money there, which totally ignores the efforts of those areas to start recruiting more people into the party or to growing and building the party. And if you’re going to have a successful Democratic Party going into an election cycle, then you damn well better be bringing people into the party, and engaging them, and giving them a reason to vote.
KK: You know, a lot of what Judith is speaking to is this persistent idea or this set of assumptions, which I think are ultimately a disadvantage to the establishment, or the status quo, or however you want to refer to it, which is this assumption that just things will never change. And I think they’ve looked at the past, right? The left doesn’t have a great track record if you go back cycle after cycle after cycle; this is kind of a new movement, built out of the 2016 and 2020 Sanders’ campaigns in many ways. But one thing I think that we’re cognizant of, that we’re certainly a part of daily — whether it’s engaging in this work as a volunteer in the party and orgs like DSA or those of us who work professionally on progressive campaigns — is that we are building infrastructure to go toe to toe with the long-standing infrastructure that the Democratic establishment has relied on, whether that’s just rank-and-file organizers with the skill sets necessary to staff these campaigns, to the consultants and firms that campaigns need to build their teams out around to do fundraising, to do digital outreach, to tap into and be able to translate that kind of really successful small-dollar operation that Sanders pioneered in 2016, but make sure it works at every level.
And so, I think when they do things like this kind of take-their-ball-and-go canceling these consulting contracts here, that they think: Our consultants aren’t going to work with them, so they’re not going to be able to do anything. But the fact of the matter is that there are incredible operatives on our side of the aisle — or within our wing of the party — that raise incredible sums of monies without relying on contributions, like here in Nevada from the mining industry or the gaming industry that are true to their value, that outraised campaigns. I’ve been part of campaigns that didn’t accept corporate contributions where we did outraise outright — outraised and outspent — our incumbent establishment opponents.
And I’m really excited about the opportunity here! By no means did this slate run with the intent of coming in, and firing everyone, and canceling these contracts — although the other side kind of cynically campaigned on that message that we were going to do that. But now that we are faced with a clean slate, to me, that’s nothing but an opportunity to rebuild the party even more quickly, and build a team out of staff, and volunteers, and rank-and-file members, and consultants that have been doing incredible work to engage new constituencies. It was a big part of the Sanders campaign, the outreach to Latino and Hispanic communities, to Muslim communities here in Nevada; in particular, we had an extraordinary engagement with the broader Muslim communities, and two leaders of which are on our slate, Dr. Zaffar Iqbal, our second vice chair; and Ahmad Adé, our newly elected secretary.
And there are folks that have been rebuffed by the Democratic establishment that want to help do that work, that have been rebuffed here in Nevada, specifically, that want to do that work, and that have a strong track record of success. So we’re looking forward to the opportunity to work with folks like that as we strengthen our party here in Nevada, prepare for victory in 2022; as Judith said on the campaign trail repeatedly, she and this slate are not willing to concede a single seat in 2022, no matter what the anxieties might be out there, because we have a different approach that we think is a winning approach — that when we do things differently, different outcomes happen. I think they’re anticipating just doing the same thing, and the same outcome’s gonna happen, right? We’re gonna have this midterm bloodbath. But I don’t think that’s a given.
RG: Well, Senator TK Catherine Cortez-masto is up in two years. She seems to have worked against your slate. Judith, have you heard from her since you won? And what impact will this change to Nevada politics have on her race?
JW: Well, it’s really kind of a shame, because I actually had some really great conversations with her prior to this race. In fact, my last one with her, she seemed impressed with some of my plans and said she would be great with working with me. And then, suddenly, everything sort of seemed to change or go off track. So I’m not really sure about that or why, because I thought we had a fairly decent relationship. And I reassured her that we weren’t going to primary her and we were planning on going all-in on making sure she got reelected. So it seems kind of strange to me that you wouldn’t see the value of what we’ve been able to do, and how well we organize, and how we’re winning these elections by keeping everybody actively engaged. It seems to me like she would see the value of that and want to utilize that.
And no, she has not reached out to me. But I have reached out to her and gotten no response. I feel like it’s appropriate for me to try to reach out to everybody; I don’t usually wait for people to reach out to me first. It’s just always good to have good relationships, and I don’t believe in burning bridges or being in any way toxic, or hateful, or anything else, even though I’ve had it directed at me for numerous years. But that’s just that [it] doesn’t accomplish anything. That’s not what we’re trying to accomplish here.
We’re trying to restore democracy. And I’m fully aware that we can’t do anything if Republicans are in control or running the show. But I also am worried that if we don’t do something, it won’t be Democrats anyhow, because of what I’m seeing and hearing on the ground. So why wouldn’t you want to engage with one of the most effective organizing and fundraising machines for progressives, and bring them to the table also as another tool in your resources to make sure that you win in 2022? So I am surprised by that.
But I have reached out to elected officials. I’ve been doing the work and trying to set up meetings. And, so far, only one elected official — well, actually two now — have reached out to me. So, hopefully, maybe some more of them will decide this isn’t really the right move, will see the value of what we’re doing, and want to be engaged because it’s only going to help them.
RG: Judith, thanks so much for joining us on Deconstructed.
JW: Thank you, Ryan.
RG: And Keenan, thanks for being here. And congratulations to you both.
KK: Thank you so much. It was a pleasure.
[Credits music.]
RG: That was Judith Whitmer and Keenan Korth, and that’s our show.
Deconstructed is a production of First Look Media and The Intercept. Our producer is Zach Young. Our supervising producer is Laura Flynn. Our theme music was composed by Bart Warshaw. Betsy Reed is The Intercept’s editor in chief.
And I’m Ryan Grim, D.C. bureau chief of The Intercept. If you’d like to support our work, go to theintercept.com/give — your donation, no matter what the amount, makes a real difference.
If you haven’t already, please subscribe to the show so you can hear it every week. If you’re subscribed already, please do leave us a rating or review — it helps people find the show. And if you want to give us feedback, email us at Podcasts@theintercept.com. Thanks so much!
See you soon.
The post Bernie Backers Took Over the Nevada Democratic Party. The Old Guard Walked Out. appeared first on The Intercept.
Implementing Open Data Strategies for Climate Action: Suggestions And Lessons Learned for Government and Civil Society Stakeholders
Tom Rochesummary of new 'working paper' @ https://files.wri.org/s3fs-public/implementing-open-data-strategies-for-climate-action.pdf (archived @ https://web.archive.org/web/20210309191356/https://files.wri.org/s3fs-public/implementing-open-data-strategies-for-climate-action.pdf ). pullquote:
> ['Implementing Open Data Strategies for Climate Action: Suggestions and Lessons Learned for Government and Civil Society Stakeholders'] aims to promote greater accessibility of climate-related data by building government officials’ and other stakeholders’ understanding of the benefits of open data practices for climate action, potential challenges, and ways to address these challenges while taking steps to ensure that data publication is impactful, responsible, and sustainable. It draws on a literature review, expert consultations, and observations from pilot projects implemented in Chile and Uruguay to provide insights for contexts with a range of data capacities, from those with mature data collection and publication protocols to those investing in new data generation processes.
Long Reads: Jim Wolfreys on Vichy France's Dark Legacy
Tom RocheVERY EXCELLENT!
Long Reads looks in-depth at political topics and thinkers, both contemporary and historical, with Jacobin’s longform writers. Hosted by Features Editor Daniel Finn.
Our guest today is Jim Wolfreys. Jim teaches French politics at King's College in London. Jim is author of Republic of Islamophobia: The Rise of Respectable Racism in France.
Read Jim's piece "How France's Vichy Regime Became Hitler's Willing Collaborators" here: https://www.jacobinmag.com/2020/07/vichy-france-holocaust-nazi-hitler-world-war-ii
See also his review of Jean-Marie Le Pen's memoir at https://www.jacobinmag.com/2021/02/le-pen-memoir-review-national-front and other articles here: https://www.jacobinmag.com/author/jim-wolfreys
Produced by Conor Gillies, music by Knxwledge.
Codementor: Descriptive Statistics for World GDP per Capita with Python
Tom Rochedone as a Jupyter Notebook page, archived @ https://web.archive.org/web/20210308152156/https://www.codementor.io/@info658/descriptive-statistics-for-world-gdp-per-capita-with-python-1fsclil0y6
News Brief: The Transactional Dog-Whistle Politics of the Term "Taxpayer"
Tom Rochemostly good: though Carrillo is a bit identitarian fortunately offset by Adam and Nima dialing theirs back
Why treason was so unforgivable in the Middle Ages
Tom RocheEXCELLENT
Dr Amanda McVitty explains what treason meant in the medieval era, and why its consequences were particularly brutal
Dr Amanda McVitty, author of Treason and Masculinity in Medieval England, explains what treason meant in the Middle Ages. She explains how the crime was the subject of heated debate, and why the punishment for it was so brutal, humiliating and public.
See acast.com/privacy for privacy and opt-out information.
Voices of China
Tom Rochetone is waay too breathlessly popularizing (beyond merely patronizing), but still interesting
Michael Wood, author of The Story of China, gives a lecture on the ancient civilisation’s rich and varied history. He introduces us to five individuals from across the centuries whose lives and voices can shed light on Chinese history, including an emperor, a footsoldier and a feminist.
See acast.com/privacy for privacy and opt-out information.
The Cold War: everything you wanted to know
Tom Rochevery conventional
From espionage across the Iron Curtain, to the global struggles between communists and capitalists, Michael Goodman responds to your questions on the decades of geopolitical tension that shaped relations between east and west in the second half of the 20th century, in the latest in our series tackling the big questions on major historical topics.
See acast.com/privacy for privacy and opt-out information.
HAP 70 - Tommy Curry on the Early 20th Century
Tom RocheVERY EXCELLENT, esp Curry on William H. Ferris, also a Marxist reading (à la late/last period Du Bois) of Booker T. Washington
We chat with Tommy Curry about African-American thought between the turn of the century and the Harlem Renaissance.
Behind the News, 3/4/21
Tom Roche[[https://scholars.duke.edu/person/nancy.maclean][Nancy MacLean @ Duke]], author of [[https://www.penguinrandomhouse.com/books/533763/democracy-in-chains-by-nancy-maclean/][Democracy in Chains]] and of a chapter cut from that book now published [[https://www.upenn.edu/pennpress/book/16153.html][here]], on the right’s reaction to Obama and what it portends for Biden • [[https://www.ecoequity.org/about/][Tom Athanasiou @ EcoEquity]] on what the US return to the Paris climate agreement means, and what Biden means for the climate (Nation article [[https://www.thenation.com/article/environment/paris-agreement-us-goals/][here]])
John Ludhi/nbshare.io: Python Generators
Tom Roche> Python generators are great for building the pipelines. Let us open a CSV file and iterate through it using Python generator.
def generator_example1():
count = 0
while True:
yield count
count+=1
g = generator_example1()
next(g)
0
next(g)
1
next(g)
2
and so on...
Ok let us revisit our function 'generator_example1()'. What is happening in the below code?
Inside while loop, we have 'yield' statement. Yield breakes out of loop and gives back control to whomever called function generator_exampe1(). In statement 'g = generator_example1()', g is now a geneator as shown below.
def generator_example1():
count = 0
while True:
yield count
count+=1
g = generator_example1()
g
<generator object generator_example1 at 0x7f3334416e08>
Once you have a generator function, you can iterate through it using next() function. Since we have a infinite 'while' loop in the genereator_example() function, we can call iterator as many times as we want it. Each time, we use next(), generator starts the execution from previous position and prints a new value.
Python generators can be used outside the function without the 'yield'. Check out the below example.
g = (x for x in range(10))
g
<generator object <genexpr> at 0x7f3334416f68>
(x for x in range(10)) is a Python generator object. The syntax is quite similar to Python list comprehension except that instead of square brackets, generators are defined using round brackets. As usual, once we have generator object, we can call iterator next() on it to print the values as shown below.
next(g)
0
next(g)
1
Python generators will throw 'StopIteration' exception, if there is no value to return for the iterator.
Let us look at following example.
def range_one():
for x in range(0,1):
yield x
g = range_one()
next(g)
0
next(g)
--------------------------------------------------------------------------- StopIteration Traceback (most recent call last) <ipython-input-16-e734f8aca5ac> in <module> ----> 1 next(g) StopIteration:
To avoid above error, we can catch exception like this and stop the iteration.
g = range_one()
try:
print(next(g))
except StopIteration:
print('Iteration Stopped')
0
try:
print(next(g))
except StopIteration:
print('Iteration Stopped')
Iteration Stopped
We can pass value to Python Generators using send() function.
def incrment_no():
while True:
x = yield
yield x + 1
g = incrment_no() # Create our generator
next(g) # It will go to first yield
print(g.send(7)) # value 7 is sent to generator which gets assgined to x, 2nd yield statement gets executed
8
Python generators can be used recursively. Check out the below code. In below function, "yield from generator_factorial(n - 1)" is recursive call to function generator_factorial().
def generator_factorial(n):
if n == 1:
f = 1
else:
a = yield from generator_factorial(n - 1)
f = n * a
yield f
return f
g = generator_factorial(3)
next(g)
1
next(g)
2
next(g)
6
Continuing with above example, let us say we want generator to throw error for the factorial of number greater than 100. We can add generator.throw() exception such as shown below.
n = 100
if n >= 100:
g.throw(ValueError, 'Only numbers less than 100 are allowed')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-29-bf449f9fafac> in <module>
1 n = 100
2 if n >= 100:
----> 3 g.throw(ValueError, 'Only numbers less than 100 are allowed')
<ipython-input-24-e76bd978ab03> in generator_factorial(n)
5 a = yield from generator_factorial(n - 1)
6 f = n * a
----> 7 yield f
8 return f
ValueError: Only numbers less than 100 are allowed
Python generators take very less memory. Let us look at following two examples. In the examples below, note the difference between byte size of memory used by 'Python list' vs 'Python generator'.
import sys
#Python List comprehension sequence = [x for x in range(1,1000000)] sys.getsizeof(sequence)
8697464
#Python Generators sequence = (x for x in range(1,1000000)) sys.getsizeof(sequence)
88
#Python List comprehension
import cProfile
cProfile.run('sum([x for x in range(1,10000000)])')
5 function calls in 0.455 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.327 0.327 0.327 0.327 <string>:1(<listcomp>)
1 0.073 0.073 0.455 0.455 <string>:1(<module>)
1 0.000 0.000 0.455 0.455 {built-in method builtins.exec}
1 0.054 0.054 0.054 0.054 {built-in method builtins.sum}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
#generators
import cProfile
cProfile.run('sum((x for x in range(1,10000000)))')
10000004 function calls in 1.277 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
10000000 0.655 0.000 0.655 0.000 <string>:1(<genexpr>)
1 0.000 0.000 1.277 1.277 <string>:1(<module>)
1 0.000 0.000 1.277 1.277 {built-in method builtins.exec}
1 0.622 0.622 1.277 1.277 {built-in method builtins.sum}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
Check the number of function calls and time the 'Python generator' took to compute the sum compare to Python 'list comprehension'.
Let us wrap up this tutorial with Data Pipelines. Python generators are great for building the pipelines.
Let us open a CSV file and iterate through it using Python generator.
def generator_read_csv_file():
for entry in open('stock.csv'):
yield entry
g = generator_read_csv_file()
next(g)
'Date,Open,High,Low,Close,Adj Close,Volume\n'
next(g)
'1996-08-09,14.250000,16.750000,14.250000,16.500000,15.324463,1601500\n'
Let us say, we want to replace the commas in the CSV for each line with spaces, we can build a pipeline for this.
g1 = (entry for entry in open('stock.csv'))
g2 = (row.replace(","," ") for row in g1)
next(g2)
'Date Open High Low Close Adj Close Volume\n'
next(g2)
'1996-08-09 14.250000 16.750000 14.250000 16.500000 15.324463 1601500\n'
next(g2)
'1996-08-12 16.500000 16.750000 16.375000 16.500000 15.324463 260900\n'
Debunking US media propaganda against leftists in Latin America, from Venezuela to Nicaragua
Tom Rocheexcellent, part 3 of 3
Ben Norton speaks with Venezuelan journalist Diego Sequera about the corporate media disinformation targeting leftist governments in Latin America. We discuss Venezuela, Nicaragua, Bolivia, Colombia, Costa Rica, Mexico, and even Libya. We also talk about the importance of food sovereignty, and respond to questions from viewers and listeners.
This is part 3 of our lengthy livestream with Diego: youtube.com/watch?v=WlRl0ZVUrHE
Diego's website Misión Verdad: misionverdad.com
Follow Diego on Twitter: twitter.com/QueraElse
Cuttlefish can pass the marshmallow test
Tom Rocheincludes useful-if-very-abbreviated survey of literature on delayed-gratification (or ability to delay gratification) and its correlates

Enlarge / A common cuttlefish, Sepia officinalis, in the Marine Resources Center at the Marine Biological Laboratory, Woods Hole, MA. A new study finds the cuttlefish can delay gratification—a key feature of the famous "marshmallow test." (credit: Alexandra Schnell)
Certain species show a remarkable ability to delay gratification, notably great apes, corvids, and parrots, while other species do not (such as rodents, chickens, and pigeons.) Add the cuttlefish to the former category.
Scientists administered an adapted version of the Stanford marshmallow test to cuttlefish and found that the cephalopods could delay gratification—that is, wait a bit for preferred prey rather than settling for a less desirable prey. Cuttlefish also performed better in a subsequent learning test, according to a new paper published in the journal Proceedings of the Royal Society B. It's the first time such a link between self-control and intelligence has been found in a non-mammalian species.
As we've previously reported, the late Walter Mischel's landmark behavioral study involved 600 kids between the ages of four and six, all culled from Stanford University's Bing Nursery School. He would give each child a marshmallow and give them the option of eating it immediately if they chose. But if they could wait 15 minutes, they would get a second marshmallow as a reward. Then Mischel would leave the room, and a hidden video camera would tape what happened next.
Fired By Neera Tanden With Matt Bruenig
Tom RocheVERY EXCELLENT not as banterish as many KHS
Law and Disorder February 22, 2021
Chris Hedges: Donald Trump Acquittal, Going Forward
Before going to prison Trump’s attorney and fixer Michael Cohen testified to Congress that Trump would never leave office peaceably. He sure didn’t. He instigated an insurrection on January 6th. His premeditated coup almost succeeded.
His plan appears to be that he would get his followers to prevent the ballot certification of Biden as president and cause enough mayhem to declare martial law. The marauders he sent to the White House hunted for Nancy Pelosi and Mike Pence. They roamed the Capitol chanting “Hang Mike Pence. Hang Mike Pence.” A sturdy gallows was constructed near the Capitol for that purpose.
Reportedly Trump took delight in all of this as it was going on and refused to call off the Capitol sackers or bring in the National Guard. The horrors of that day were dramatically presented by the House trial managers. Comprehensive videos were shown to a national audience. A totally convincing presentation was made. Any right thinking person watching would necessarily conclude that Trump was responsible for what happened. Trump’s defenses were demolished.
It was explained that Constitution allows for illegal and prior cases had established that Trump could be tried even after leaving office. The argument that he had free speech rights was effectively countered. Nevertheless he was not found guilty although seven Republicans refused to go along with their party’s defense of the indefensible. A number of Republican Senators, who were supposed to sit as impartial jury, met with Trumps defense lawyers. Twelve others did not even attend the last day of trial.
After the vote Mitch McConnell, voted to acquit on the spurious grounds that Trump could not be tried since he was no longer in office. He spoke of the possibility of Trump being tried for his crimes. The Republican lead acquittal of Donald Trump will be appreciated as a turning point in American history. The vote to acquit him will be understood as a moment that democracy and the rule of law were trashed allowing the former president to retain his control over a transformed Republican Party which has become an instrument of demagoguery and white supremacy.
Guest – Chris Hedges, a Pulitzer prize winning journalist and considered by many on the left to be an American moral philosopher. He was forced out of his job at the New York Times for opposing the war in Iraq. Hedges is the author of many books including “American Facists: The Christian Right‘s War on America.“ He is the host of the RT show “On Contact”. His latest book is “America: the Farewell Tour.” He writes a weekly column for “Scheerpost” the latest is titled “Cancel Culture: Where Liberalism Goes to Die.”
—-
ICC Investigation Into War Crimes Proceeds
In 2015, the State of Palestine became a member of the International Criminal Court and granted the Court jurisdiction over crimes committed on the territory of Palestine, including East Jerusalem, since June 13, 2014. The Prosecutor of the ICC opened a preliminary examination into crimes committed in Palestine on January 16, 2015, and the State of Palestine referred the case for investigation in May 2018. During the preliminary examination, Palestinian human rights organizations and victims made submissions describing war crimes and crimes against humanity committed by Israeli officials, including in relation to the 2014 military offensive on Gaza.
In December 2019, the Prosecutor found a reasonable basis to proceed with an investigation into war crimes and crimes against humanity committed on the territory of Palestine – the Gaza Strip and West Bank, including East Jerusalem. victims were invited to submit observations on the Prosecutor’s requests and Center for Constitutional Rights attorney Katherine Gallagher submitted on behalf of twenty Palestinian victims of persecution from all parts of Palestine and the diaspora. A year ago April, CCR joined more than 180 Palestinian, regional, and international human rights organizations in signing an open letter to the ICC prosecutor in support of opening the investigation.
Guest – Attorney Katherine Gallagher, senior attorney at the Center for Constitutional Rights, has appeared before the ICC in the Hague in Holland. She represented two men indefinitely detained in the US offshore prison camp in Guantanamo Bay, Cuba. Katie works on universal jurisdiction ad international criminal law cases involving US and foreign officials and torture and other war crimes.
—————————
Law and Disorder March 1, 2021
- Commentary By Attorney Jim Lafferty: Christian Nationalism
—-
Activists Face Felony Charges In Action Denouncing Elijah McClain Murder
On September 17, 2020 at least six anti-racist activists were arrested in an action denouncing the Colorado police, notably for the murder of Elijah McClain. In the summer of 2019, three Aurora Colorado police officers put 23-year-old McClain in a chokehold and medics injected him with ketamine. The young violinist and massage therapist went into cardiac arrest, was pronounced brain dead, and died three days later.
The social justice activists now face a litany of felony charges, and possible decades in prison, on charges that include “kidnapping.” Four of those arrested — Russel Ruch, Lillian House, Joel Northam, and Eliza Lucero — are considered protest leaders and are members of the Party for Socialism and Liberation.
Police made a spectacle of the arrests, sending what many assert is a threatening message to other activists. Police followed Russel Ruch to Home Depot where they arrested him in the parking lot; five police cars surrounded Lillian House as she was driving; and a S.W.A.T team was dispatched to Joel Northam’s home. According to the 30-page arrest affidavits, the police used livestream footage, call transcripts, and social media posts to build a case against those arrested.
Guest – Lillian House, one of the four protest leaders. More information at Denverdefense.org
—-
The Current Risk of Nuclear War And Treaty Restoration
When Donald Trump was president, the Democrats called him Putin‘s poodle. They falsely claimed that Russia influenced the election and caused Hillary Clinton to lose to Trump. Clinton famously said “all roads lead to Russia.“
But the truth of the matter was quite different. Despite Trump seemingly adoration of Vladimir Putin as a strong man, American policy towards Russia was not completely friendly. The question now is what will Biden do?
The risk of nuclear war with Russia has been a grave concern since the cold war of the 1950s. Under Presidents Donald Trump and Barack Obama American nuclear policies were such that the threat of war including accidental war was never reduced. With Biden as president will this change? Will there be a restoration of nuclear treaties and a de-escalation.
Guest – Ray McGovern former CIA intelligence analyst, Ray briefed President George H. W. Bush every morning on intelligence matters, particularly with respect to Russia. He is a founder of VIPS, Veteran Intelligence Professionals for Sanity and a contributor to the blog Common Dreams.
———————–
Chen Bin (redguardtoo): Use Magit to commit efficiently and correctly
Tom Rocheusing both git CLI and Magit, latter where it adds value
I prefer using git cli because it's more light weight.
Here is my bash alias of git commit,
alias gc="git commit -m"
The problem of my "cli-only" workflow is it can't detect my mistakes automatically.
I often forget to add new code file into git. So my final commit might miss files.
Magit UI solution
One solution is to use Magit to commit inside Emacs. After commit, I could double check the files inside the hooks provided by Magit.
My set up in Emacs,
(defun my-lines-from-command-output (command)
"Return lines of COMMAND output."
(let* ((output (string-trim (shell-command-to-string command)))
(cands (nonempty-lines output)))
(delq nil (delete-dups cands))))
(defun my-hint-untracked-files ()
"If untracked files and commited files share same extension, warn users."
(let* ((exts (mapcar 'file-name-extension (my-lines-from-command-output "git diff-tree --no-commit-id --name-only -r HEAD")))
(untracked-files (my-lines-from-command-output "git --no-pager ls-files --others --exclude-standard"))
(lookup-ext (make-hash-table :test #'equal))
rlt)
;; file extensions of files in HEAD commit
(dolist (ext exts)
(puthash ext t lookup-ext))
;; If untracked file has same file extension as committed files
;; maybe they should be staged too?
(dolist (file untracked-files)
(when (gethash (file-name-extension file) lookup-ext)
(push (file-name-nondirectory file) rlt)))
(when rlt
(message "Stage files? %s" (mapconcat 'identity rlt " ")))))
(with-eval-after-load 'magit
(defun my-git-check-status ()
"Check git repo status."
;; use timer here to wait magit cool down
(run-with-idle-timer 1 nil #'my-hint-untracked-files))
(add-hook 'magit-post-commit-hook #'my-git-check-status)
(add-hook 'git-commit-post-finish-hook #'my-git-check-status))
Screenshot of step 1 in Emacs,
Screenshot of step 2 (final step) in Emacs (I was reminded of untracked files "bye.js" and "tree.js" at the bottom of UI),
BTW, my actual code in my .emacs.d is a bit different.
CLI solution
Another solution is doing the git thing in shell plus Emacs "-batch" option.
Here is my bash setup,
function gc {
# check my emacs.d exist
if [ -f "$HOME/.emacs.d/README.org" ] && [ "$PWD" != "$HOME/.emacs.d" ]; then
# magit hook does not work
git commit -m "$@" && emacs -batch -Q -l "$HOME/.emacs.d/init.el" --eval "(my-hint-untracked-files)"
else
git commit -m "$@"
fi
}
Please note running magit-commit-create in cli won't work. It's because magit-run-git-async in called and it might lock the git after the cli execution.
Screenshot in shell,
How Colombia's US-backed narco-regime massacred thousands of innocent people and blamed socialists
Tom Rochepart 2 of 3
Ben Norton speaks with Venezuelan journalist Diego Sequera about the far-right government in Colombia, its close links to drug cartels and death squads, Latin America's anti-imperialist Bolivarian movement, the brutally violent repression of the Colombian left, and the false positives scandal, in which the Colombian military massacred over 6400 innocent people and falsely claimed they were socialist guerrillas.
This is part 2 of our lengthy livestream with Diego: youtube.com/watch?v=WlRl0ZVUrHE
Diego's website Misión Verdad: misionverdad.com
Follow Diego on Twitter: twitter.com/QueraElse
Life in Venezuela under US sanctions, resisting the imperial gangsters in Washington
Tom Rochepart 1 of 3
Ben Norton speaks with Venezuelan journalist Diego Sequera, from inside Caracas, about the US blockade, the Biden administration's continued recognition of puppet Juan Guaidó, and Washington's gangster-like theft.
This is part 1 of our lengthy livestream with Diego: youtube.com/watch?v=WlRl0ZVUrHE
Diego's website Misión Verdad: misionverdad.com
Follow Diego on Twitter: twitter.com/QueraElse
Jacobin Show: Why Americans Hate the Government w/ Matt Bruenig
Tom RocheVERY EXCELLENT all 3 segments (Pan, Thornhill, Bruenig)
Every Wednesday at 6 PM ET, Jen Pan, Ariella Thornhill, and Paul Prescod host a new episode of The Jacobin Show, offering socialist perspectives on class and capitalism in the twenty-first century, the failures of liberalism, and the prospects of rebuilding a left labor movement in the US. This is the audio version of the broadcast on February 24, 2021.
Matt Bruenig, founder and president of People's Policy Project, joins the show to talk about building a functioning welfare state, the Family Fun Pack, and what's wrong with how we think about the racial wealth gap today.
Subscribe to Jacobin for just $10: https://jacobinmag.com/subscribe/?cod...
The Vast Majority: Mike Davis's Forecast
Tom RocheVERY EXCELLENT survey of Davis' life and work
The Democrats Try To Cancel Fox News, with Shahid Buttar
Tom Rocheexcellent as usual, esp funny bit about (some) US teens' ignorance about WW2 and early-20c history
Shahid Buttar joins the show to discuss Democrats, Fox News, and free speech. Hosts Matt Taibbi and Katie Halper discuss Tennessee GOP efforts to prohibit kneeling during college sports national anthems.
Merch link: https://teespring.com/stores/useful-idiots
Learn more about your ad choices. Visit podcastchoices.com/adchoices
The Open Sourcerer: A new data format has landed in the upcoming GTG 0.5
Tom RocheGnome GTD app=https://wiki.gnome.org/Apps/GTG/
Here’s a general call for testing from your favorite pythonic native Linux desktop personal productivity app, GTG.
In recent months, Diego tackled the epic task of redesigning the XML file format from a new specification devised with the help of Brent Saner (proposal episodes 1, 2 and 3), and then implementing the new file format in GTG. This work has now been merged to the main development branch on GTG’s git repository:
Diego’s changes are major, invasive technological changes, and they would benefit from extensive testing by everybody with “real data” before 0.5 happens (very soon). I’ve done some pretty extensive testing & bug reporting in the last few months; Diego fixed all the issues I’ve reported so far, so I’ve pretty much run out of serious bugs now, as only a few remain targetted to the 0.5 milestone… But I’m only human, and it is possible that issues might remain, even after my troll-testing.
Grab GTG’s git version ASAP, with a copy of your real data (for extra caution, and also because we want you to test with real data); see the instructions in the README, including the “Where is my user data and config stored?” section.
Please torture-test it to make sure everything is working properly, and report issues you may find (if any). Look for anything that might seem broken “compared to 0.4”, incorrect task parenting/associations, incorrect tagging, broken content, etc.
If you’ve tried to break it and still couldn’t find any problems, maybe one way to indicate that would be a “👍” on the merge request—I’m not sure we really have another way to know if it turns out that “everything is OK” 🙂
Your help in testing this (or spreading the word) will help ensure a smooth transition for users getting an upgrade from 0.4 to 0.5, letting us release 0.5 with confidence. Thanks!
Behind the News, 2/25/21
Tom RocheMike Lofgren on the cultural devolution of the right (article [here](https://www.commondreams.org/views/2021/02/12/right-devolves-js-bach-skinhead-rock)) • Gustavo Gordillo and Brandon Tizol @ NYC DSA of [DSA’s public power campaign](https://publicpower.nyc/) on socializing electricity
Gerald Horne on the Political Economy of Boxing and Slavery
Tom Rochehttps://kpfa.org/episode/letters-and-politics-february-4-2021/ archived @ https://web.archive.org/web/20210204205526/https://kpfa.org/episode/letters-and-politics-february-4-2021/
Long Reads: Peter Hudis on Frantz Fanon and the Revolution Against Racism
Tom RocheVERY EXCELLENT
Long Reads is a Jacobin podcast looking in-depth at political topics and thinkers, both contemporary and historical, with the magazine’s longform writers. Hosted by Features Editor Daniel Finn.
The guest for this episode is Peter Hudis. Peter teaches philosophy at Oakton Community College and is the author of Frantz Fanon: Philosopher of the Barricades.
Read his essay, "The Revolutionary Humanism of Frantz Fanon" here: https://www.jacobinmag.com/2020/12/humanism-frantz-fanon-philosophy-revolutionary-algeria
Produced by Conor Gillies, music by Knxwledge.
Irreal: Managing Window Placement
Tom RocheTODO: https://github.com/tilmanrassy/emacs-dir-treeview (and prereq https://github.com/tilmanrassy/emacs-treeview)
One of the tropes of Emacs use is the idea that there’s always something new to learn about the editor. I know that to be true but today it was brought home to me by a new video from Protesilaos Stavrou. The video is nominally about managing window placement but part of that is the notion of “side window.”
I had never heard of them before or even the concept that they implement. It’s no wonder. While I was preparing to write this I looked them up in the documentation but couldn’t find anything at all about them in the Emacs manual. I had to consult the Elisp manual to find any information about them.
The problem that Stavrou is seeking to solve is the inconsistent placement of the windows that pop up for things like HELP. Sometimes a new window is created; other times an existing window is reused. If you’re like me, you probably suspected that the behavior is configurable but haven’t seen or used the mechanism to do it. Window placement configuration is fairly fine-grained so you can pretty much have it anyway you like.
Unless you’re very particular about window placement or want to implement something like emacs-dir-treeview, you probably won’t need to deal with side windows or the other functionality that Stavrou discusses but his video does show how the configuration is possible if you need it. The video is just short of 19 minutes long so plan accordingly.






