This page shows the source for this entry, with WebCore formatting language tags and attributes highlighted.


Links and Notes for August 27th, 2021


<n>Below are links to articles, highlighted passages<fn>, and occasional annotations<fn> for the week ending on the date in the title, <a href="{app}/view_article.php?id=4085">enriching the raw data</a> from <a href="">Instapaper Likes</a> and <a href="">Twitter</a>. They are intentionally succinct, else they'd be <i>articles</i> and probably end up in the gigantic backlog of unpublished drafts. YMMV.</n> <ft><b>Emphases</b> are added, unless otherwise noted.</ft> <ft>Annotations are only lightly edited.</ft> <h>Table of Contents</h> <ul> <a href="#economy">Economy & Finance</a> <a href="#politics">Public Policy & Politics</a> <a href="#philosophy">Philosophy & Sociology</a> <a href="#programming">Programming</a> </ul> <h><span id="economy">Economy & Finance</span></h> <a href="" source="CounterPunch" author="Dean Baker">The $26 an Hour Minimum Wage?</a> <bq>Many workers in the tech sector make high six or even seven figure salaries. Lucky winners can walk away with tens or even hundreds of millions of dollars because of these government-granted monopolies. <b>Bill Gates would probably still be working for a living if the government was not prepared to arrest anyone who made copies of Microsoft software without his permission.</b> And yes, there are other ways to finance creative work and innovation. We can pay people, sort of like we do with just about every other task in the economy. (Read chapter 5 of Rigged.)</bq> <bq>The financial sector is another place where we structure the economy to give large sums to a small number of rich people. <b>We have created a tax and regulatory structure that allows some people to get incredibly rich by making little or no contribution to the productive economy.</b></bq> <bq>To see how the bloated incomes for those at the top make it impossible for those in the middle and bottom to get decent pay, imagine that the high-end incomes came in the form of government checks. <b>Instead of Bill Gates getting his billions from Microsoft’s patent and copyright monopolies, suppose their software sold at free market prices, but the government sent him billions of dollars each year to allow him to accumulate his current fortune.</b> Suppose we did the same with the pharmaceutical industry, sending top executives tens of billions annually, as all drugs were now being sold as cheap generics. And, the government paid out tens or hundreds of millions of dollars each year to private equity and hedge fund partners and other big winners in finance.</bq> <bq>[...] we removed the link between productivity and the minimum wage. <b>Not only did the federal minimum wage not keep pace with productivity growth, it did not even keep pace with inflation.</b> A person working at the minimum wage today is getting substantial lower pay than a worker did 53 years ago in 1968.</bq> <h><span id="politics">Public Policy & Politics</span></h> <a href="" source="Harper's Magazine" author="Andrew Quilty">When the Raids Came</a> <bq>Nabil agrees that along with ideological and cultural forces, the new generation of Taliban fighters in Wardak is the product of two main factors: first, the American empowerment of ethnic and tribal adversaries; and second, <b>the appetite for avenging the deaths of noncombatant Wardakis and the abuse of detainees at the hands of American and Afghan forces over two decades of war.</b></bq> <bq>Abdul Jalil battled for twenty years to prevent his children from succumbing to the pull of the insurgency. “I never asked them to work in the fields with me,” says Abdul Jalil. “I wanted them to prioritize their studies.” But Nasratullah was vulnerable to the same fate that befell many of his classmates. <b>“Most Taliban now are university graduates,” Abdul Jalil says. “But because of a lack of jobs, they join the Taliban.”</b> Now Abdul Jalil no longer believed his own arguments. “Before the night raid, he had friends in the Taliban, but we kept him away from them and I used to tell him not to join,” he says of Nasratullah. “But <b>after the night raid</b>, to be honest, we didn’t have any reason to stop him. <b>He had a better reason to join the Taliban than we did to stop him.”</b></bq> <hr> <a href="" source="Jacobin" author="Opal Lee">I Produce Adult Content on OnlyFans. Their Ban on Porn Will Hurt Me.</a> <bq>NCOSE celebrated the victory in a post to their website addressed to supporters, praising “advocacy from passionate defenders of dignity like you.” NCOSE credited their victory to a “cunning strategy and the brave survivors who used their voices to expose this exploitative and abusive industry — steps we believe will truly help cripple online pornography forever.” <b>Mastercard and Visa’s support for survivors of violence only goes so far, however. Both companies still allow vendors of firearms and assault weapons to use their services.</b></bq> <bq>Of course, OnlyFans is not free of problems. However, <b>for many sex workers, it is a far safer alternative to face-to-face work or traditional porn studios.</b> Indeed, the pandemic created an influx of new OnlyFans subscribers and content producers. In the name of opposing abuse, the OnlyFans ban on adult content will expose many vulnerable or inexperienced sex workers to danger, abuse, and exploitation.</bq> <bq><b>We need to fight to defend sex workers against conservatives who weaponize the stories of survivors and hide their puritan agenda in the guise of defending victims.</b> And we need to call out companies that will throw their workers on the scrapheap to defend profits.</bq> <hr> <a href="" source="Scheer Post" author="Michael Klare">Is a Chinese Cold War Still Possible in an Overheating World?</a> <bq>According to a recent report from the U.N.’s Intergovernmental Panel on Climate Change (IPCC), extreme climate events, occurring with ever more frightening frequency, will prove ever more destructive and devastating to societies around the world, which, in turn, will ensure that <b>military forces just about everywhere will be consigned a growing role in dealing with climate-related disasters.</b></bq> <bq>Ominously, that event also exposed significant flaws in the design and construction of China’s many “new cities,” which sprouted in recent years as the Chinese Communist Party (CCP) has worked to relocate impoverished rural workers to modern, highly industrialized metropolises. Typically, these urban centers — the country now has 91 cities with more than a million people each — prove to be vast conglomerations of highways, factories, malls, office towers, and high-rise apartment buildings. <b>During their construction, much of the original countryside gets covered in asphalt and concrete. Accordingly, when heavy downfalls occur, there are few streams or brooks left for the resulting runoff to drain into and, as a result, any nearby tunnels, subways, or low-built highways are often flooded,</b> [...]</bq> <bq><b>We Americans tend to assume that Chinese leaders spend all their time thinking about how to catch up with and overtake the United States as the world’s number one superpower.</b> In reality, the single greatest priority of the Communist Party is simply to remain in power — and for the past quarter-century that has meant maintaining sufficient economic growth each year to ensure the loyalty (or at least acquiescence) of a preponderance of the population. <b>Anything that might threaten growth or endanger the well-being of the urban middle-class — think: climate-related disasters — is viewed as a vital threat to the survival of the CCP.</b></bq> <bq>As a result, <b>expect Chinese soldiers to be spending far more time filling sandbags to defend their country’s coastline from rising seas in 2049</b> than manning weaponry to fight American soldiers.</bq> <hr> <a href="" source="CounterPunch" author="John Pilger">The Great Game of Smashing Countries</a> <bq>As a tsunami of crocodile tears engulfs Western politicians, history is suppressed. More than a generation ago, Afghanistan won its freedom, which the United States, Britain and their “allies” destroyed. <b>In 1978, a liberation movement led by the People’s Democratic Party of Afghanistan (PDPA) overthrew the dictatorship of Mohammad Dawd, the cousin of King Zahir Shar. It was an immensely popular revolution that took the British and Americans by surprise.</b> Foreign journalists in Kabul, reported the New York Times, were surprised to find that “nearly every Afghan they interviewed said [they were] delighted with the coup”. The Wall Street Journal reported that “150,000 persons … marched to honour the new flag …the participants appeared genuinely enthusiastic.”</bq> <bq>The Washington Post reported that “Afghan loyalty to the government can scarcely be questioned”. Secular, modernist and, to a considerable degree, socialist, <b>the government declared a programme of visionary reforms that included equal rights for women and minorities. Political prisoners were freed and police files publicly burned.</b></bq> <bq>For women, the gains had no precedent; by the late 1980s, half the university students were women, and <b>women made up 40 per cent of Afghanistan’s doctors, 70 per cent of its teachers and 30 per cent of its civil servants.</b></bq> <bq><b>For the United States, the problem with the PDPA government was that it was supported by the Soviet Union.</b> Yet it was never the “puppet” derided in the West, neither was the coup against the monarchy “Soviet backed”, as the American and British press claimed at the time.</bq> <bq>On 3 July 1979, unknown to the American people and Congress, <b>Carter authorised a $500 million “covert action” programme to overthrow Afghanistan’s first secular, progressive government.</b> This was code-named by the CIA Operation Cyclone.</bq> <bq>In August, 1979, the US Embassy in Kabul reported that “the United States’ larger interests … would be served by the demise of the PDPA government, <b>despite whatever setbacks this might mean for future social and economic reforms in Afghanistan.</b>” Read again the words above I have italicised. It is not often that such cynical intent is spelt out as clearly. <b>The US was saying that a genuinely progressive Afghan government and the rights of Afghan women could go to hell.</b></bq> <bq>Calling themselves the Northern Alliance, the mujahedin were dominated by war lords who controlled the heroin trade and terrorised rural women. The Taliban were an ultra-puritanical faction, whose mullahs wore black and punished banditry, rape and murder but banished women from public life.</bq> <bq>In 1996, the enlightened PDPA government was overrun. The Prime Minister, Mohammad Najibullah, had gone to the United Nations to appeal to for help. <b>On his return, he was hanged from a street light.</b></bq> <hr> <a href="" source="Business Insider" author="Jamie Killin / Julio Gonzalez">I'm a landlord with 24 properties. We're suffering during Biden's eviction ban, too, and no one is helping.</a> <bq>The moratoriums have led to a significant and negative effect in profitability — for me, it's been a 15% loss in profit.</bq> That's profit, not revenue, that he's talking about. A business whose profits are down 15% in 2020/2021 is pretty low on the list of businesses to be worried about. They may have been able to make <i>more profit</i> if there were fewer people shirking their rent (something he later admits he hasn't even been able to prove), but societally, there are bigger fish to fry. That's the harsh reality. If you're doing all right, you don't need help. <bq>Second, proof of hardship could eliminate some of the questions landlords like me have about our tenants. We see that there's an incredible number of open jobs, and communities are opening up in spite of the COVID-19 Delta variant. <b>It's likely that our tenants have received jobs and are now working.</b></bq> Here's where he admits that he really doesn't know whether his tenants would be capable of paying rent. That is, he implies that landlords are suffering because of people not having to pay their rent, but he doesn't really know how many of them can't pay vs. won't pay. <bq>If you have an accountant, they may also be able to take the losses you've incurred and carry that back to previous tax years to get a refund.</bq> Wow, really? Retroactive refunds? That's some wicked rich-guy advice right there. <hr> <a href="" source="CNN" author="Frederik Pleitgen, Claudia Otto, Angela Dewan and Mohammed Tawfeeq">The Middle East is running out of water, and parts of it are becoming uninhabitable</a> <bq>A study published in the Proceedings of the National Academy of Sciences showed that Jordanians will have to halve their per capita use of water by the end of the century. <b>Most Jordanians on lower incomes will live on 40 liters a day, for all their needs -- drinking, bathing and washing clothes and dishes, for example. The average American today uses around 10 times that amount.</b></bq> <bq>Groundwater levels in parts of the country are dropping by well over one meter a year, studies show, and <b>waves of refugees from many countries in the region have put extra pressure on the already stressed resource.</b></bq> <bq>"Jordan bore the heavy load of the Syrian refugee crises on behalf of the international community and was deeply impacted regarding water. <b>Refugees cost the water sector over $600 million per year while Jordan received a fraction of this amount from the international community," he said.</b></bq> <bq>But <b>that's not going to help a farmer whose family has owned land for generations and can't necessarily move to wetter climes</b>, or has little control over where a neighboring country might build a dam.</bq> <hr> <a href="" author="Nicky Reid" source="CounterPunch">Afghanistan and the Racism of Imperial Progress</a> <bq>They conveniently leave out the fact that this sudden collapse was precipitated by an offensive that the Taliban began in May when Biden first violated the peace deal carefully inked by the Trump Administration by pushing back the militaries departure date by five months. They leave out the fact that the Taliban managed to take most of the country with minimal bloodshed and Kabul without even firing a goddamn shot because <b>most Afghanis actually prefer these homegrown despots to the obscenely corrupt Vichy state that we’ve been propping up superficially for decades.</b> They leave out the fact that most of the refugees packing our transport planes are as frightened of their own neighbors who might seek revenge against them for collaborating with a foreign occupier as they are of the actual Taliban. And <b>they leave out the fact that the Taliban’s brutally sexist style of governance is basically identical to that of the wealthy Gulf states that they tolerate and our nation’s tax dollars covetously prop up.</b></bq> <bq>In many ways Afghanistan is far from unique. There are hundreds of Afghanistans scattered across the Third World. <b>Complex indigenous tribal societies that America and its other enlightened allies in the First World insist on violently stuffing into the neoliberal Jello mold of the Westphalian nation state.</b> We rely on a network of dictators, quislings, and corrupt local plutocrats to manage this collection of neo-colonialist ant farms, a network that is every bit as brutal and cruel as the terrorists and fundamentalists constructed indigenously to fight them and at least twice as greedy. <b>These western concubine states don’t give a flying fuck about feminism or social progress</b>, that’s just propaganda used to justify their errant existence to foolish middle class liberals back at home.</bq> <bq>Afghanistan is now run by a horde of bloodthirsty bearded barbarians, but at least they are their bloodthirsty bearded barbarians. <b>As much as my heart may desire rights for women, children, and Queer people in that region of the world, I am not foolish and racist enough to believe that I can give it to them</b>, especially not from the barrel of a drone. The Afghan people have to want it for themselves. <b>They have to develop their own forms of progress based on their own complex indigenous customs that westerners can’t begin to comprehend.</b> But this kind of progress will never occur as long as Afghanis across the globe continue to struggle beneath the boot of western imperialism.</bq> <hr> <a href="" author="Jeffrey St. Clair" source="CounterPunch">Roaming Charges: Hour of the Goat</a> <bq><b>The IDF has been seizing solar panels from Palestinian homes in the brutal heat of summer in a cruel attempt to extort families into abandoning their homes.</b> Ha’aretz’s lead editorial denounced these disgusting seizures in terms so vehement it would almost certainly have been denounced as “anti-Semitic” if it had run (it wouldn’t) in a major US paper: “These events can only be described as pure evil, a lack of conscience, which stems from a desire to abuse the inhabitants until they have no choice and leave.”</bq> <h><span id="philosophy">Philosophy & Sociology</span></h> <media href="" src="" source="YouTube" width="560px" author="Contrapoints" caption="Envy"> This is an excellent discussion of Internet culture through the lens of envy. Starting at <b>20:00</b>, it presents a long arc that ties the Evil Eye, SpongeBob SquarePants, Black Swan (the movie), and Mozart (the movie) together. Truly inspired and interesting and educational. <h><span id="programming">Programming</span></h> <a href="" source="Chrome Developers" author="Chris Harrelson, Daniel Cheng, Philip Rogers, Koji Ishi, Ian Kilpatrick, Kyle Charbonneau">Key data structures and their roles in RenderingNG</a> <bq>After layout, each fragment becomes immutable and is never changed again. Importantly, we also place a few additional restrictions. We don't: Allow any "up" references in the tree. (A child can't have a pointer to its parent.) "bubble" data down the tree (a child only reads information from its children, not from its parent). <b>These restrictions allow us to reuse a fragment for a subsequent layout. Without these restrictions we'd need to often regenerate the whole tree, which is expensive.</b></bq> This reminds me of the <a href="">Glyph/Flyweight object pattern</a>, a paper I read long ago and part of which I once implemented for a customer's custom editor for building complex formulae. <hr> <a href="" source="Ardalis" author="Steve">Comparing Techniques for Communicating Between Services</a> <bq>Today, data stores are commodities that can easily be deployed as part of any individual application or service, and it's widely understood that using a database as the primary mechanism for inter-process communication has a lot of negative impacts on service/app independence. After all, <b>using a single, mutable, global container for state is a well-known antipattern in software application development, but many teams didn't realize this applied to shared databases until relatively recently.</b></bq> <bq>[...] for any request that cannot be completed quickly, service B can return a 202 with the location of the status endpoint. <b>Service A can poll the status endpoint (additional headers might indicate how long to wait before checking the status again), eventually getting back the result it's expecting (or timing out or any number of other error states).</b> Note that this pattern can be applied wholesale to all API calls, if desired, resulting in a consistent backend approach.</bq> <bq>While asynchronous messages work well for publishing status events and issuing commands, they're more difficult to use with queries. <b>Many architectures that leverage CQRS will use messaging systems for the Command part of the pattern, while leaving Queries as synchronous calls.</b></bq> <bq>Any time the needed data isn't found in the cache, it can be requested from the "source of truth" service using the Cache-Aside pattern. Cache entries often are given an expiration date, but in order to better improve runtime performance (and avoid having a client request pay the cost of updating the cache), the downstream service can make an API call to the consuming service to update its cached version of the data any time its data changes. In this way, <b>the cache can be kept in sync with its source data without necessarily needing short expirations or frequent updates, at least for "read mostly" kinds of data.</b></bq> <hr> <a href="" source="Fly.IO" author="Thomas Ptacek">API Tokens: A Tedious Survey</a> <bq>JWT doesn’t bind purpose or even domain parameters to keys, and JWT libraries are written with the assumption that RSA and HMAC-SHA2 are just interchangeable solutions to the same problem. So you get bugs where people take RSA-signed JWTs and switch the JWT header from RS256 to HS256 (don’t even get me started on these names), and the libraries obliviously treat public signing keys as private MAC keys. Also, there’s alg=none. <b>JWT is so popular that it has become synonymous with the concept of stateless authentication tokens, despite the fact that stateless tokens are straightforward without (and were in wide use prior to) JWT.</b></bq> <bq>OIDC’s competitor is SAML, which is based on XML DSIG, which is a way of turning XML documents into signed tokens. You should not turn XML documents into signed tokens. You should not sign XML. XML DSIG is the worst cryptographic format in common use on the Internet. Take all the flaws JWT, including the extensive parsing of untrusted data just to figure out how to verify stuff. Mix in a DOM model where a single document could potentially have dozens of different signed subtrees, then add a pluggable canonicalization layer that transforms documents before they’re signed. <b>Make it complicated enough that there is essentially a single C-language implementation of the spec that every SAML library wraps.</b></bq> <bq>Push all your token semantics into the Token message, and marshal it into a string with a first pass of Protobuf encoding. Sign it with Ed25519 (concatenate a version string like “Protobuf-Token-v1” into the signature block), stick the token byte string in the token field of a SignedToken, and populate the signature. Marshal again, and you’re done. This two-pass encoding gives you two things. First, there’s only one way to decode and verify the tokens. Second, everything in the token is signed, so there’s no ambiguity about metadata being signed. <b>The tokens are compact, easy to work with, and can be extended (Protocol Buffers are good at this) to carry arbitrary optional claims.</b></bq> <bq>Honestly, when I first read about Biscuits, I thought it was pretty nuts. If the proposal hadn’t lost me at “pairing curves”, it had by the time it started describing Datalog. But then I implemented Macaroons for myself, and now, I kind of get it. <b>One thing Biscuits get you that no other token does is clarity about what operations a token authorizes. Rendered in text, Biscuit caveats read like policy documents.</b> That’s I think the only big concern I have about them. I wonder whether taking real advantage of Biscuits requires you to move essentially all your authorization logic into your tokens.</bq>