Shared posts

12 Jan 16:56

Analyst suffered 20 years in US prison for helping Cuba, still condemns 'suffocating' blockade

Tom Roche

unexpectedly eloquent tribute to Ana Belén Montes, who fought against US terror attacks on Cuba

Former DIA analyst Ana Belén Montes was imprisoned for 20 years for sharing intelligence with Cuba that helped it prevent US attacks and sabotage. Upon being released, she condemned the “suffocating embargo” that makes Cubans “suffer.” VIDEO: https://youtube.com/watch?v=KuE7tVbD7qY Sources and more information here: https://geopoliticaleconomy.com/2023/01/10/ana-belen-montes-20-years-prison-cuba-blockade Illegal US blockade against Cuba continues harming millions on 60th anniversary: https://geopoliticaleconomy.com/2022/02/03/illegal-us-blockade-cuba-60th-anniversary Entire world votes 185 to 2 against blockade of Cuba – US and Israel are rogue states at UN: https://geopoliticaleconomy.com/2022/11/03/un-vote-blockade-cuba-us-israel
12 Jan 15:10

Hell on Earth - Episode 1: GOD

Tom Roche

mostly excellent history--except Luther probably didn't /nail/ the 95 theses to the cathedral door, he probably pasted them (just like folks do today, on walls, poles, etc)

A man, a hammer, a nail, a door, history. Martin Luther sets off the protestant reformation and lays the groundwork for a century of violence in Europe.


This first episode of Hell on Earth: The Thirty Years War and the Violent Birth Capitalism is available for free. Subsequent episodes will be released exclusively for Chapo Trap House subscribers on Patreon at patreon.com/chapotraphouse.


Interactive atlas, bibliography and credits for the series can be found at: hellonearth.chapotraphouse.com



Get bonus content on Patreon

Hosted on Acast. See acast.com/privacy for more information.

11 Jan 01:49

There are some foods that you just don't order in Saskatchewan

Tom Roche

Amusing bits from (1st) Tim Steeves (1964-2022) and (2nd) George Westerholm (still alive and doing musical comedy)

Today we pay tribute to the late Tim Steeves. From 905 Comedy Festival, Tim talks about eyesight, jam cellars and restaurant envy. Musical comedian George Westerholm takes us through a wild musical ride of the 1980's - live from the Danforth Music Hall.
11 Jan 00:55

China 'counters US dollar hegemony' with gold reserves, Argentina yuan currency swap deal

Tom Roche

excellent, great start for Geopolitical Economy Report

China is advancing the global movement toward de-dollarization. Beijing's central bank is boosting its gold reserves while signing currency swap deals in yuan with countries like Argentina, encouraging the use of renminbi instead of US dollars. VIDEO: https://youtube.com/watch?v=bdASCjEeJ0I Sources and more information here: https://geopoliticaleconomy.com/2023/01/08/china-dollar-gold-reserves-argentina-yuan Russia dropping US dollar for Chinese yuan – and fast: https://geopoliticaleconomy.com/2022/12/26/russia-us-dollar-chinese-yuan IMF admits US dollar hegemony declining, due to rise of Chinese yuan, sanctions on Russia: https://geopoliticaleconomy.com/2022/03/31/imf-us-dollar-decline-china-russia How Argentina has been trapped in neocolonial debt for 200 years: An economic history: https://geopoliticaleconomy.com/2022/12/18/argentina-neocolonial-debt-history
11 Jan 00:51

Alvaro Ramirez: Emacs: org-present in style

by Alvaro Ramirez
Tom Roche

pullquote (lightly edited) regarding elisp in this post:
> [I had 2 main slide-navigation goals:]

> 1. Easily jump between areas of interest. Subheadings, links, and code blocks would be a good start.
> 2. Collapse all but the current top-level heading within the slide, as navigation focus changes.

10 January 2023 Emacs: org-present in style

I had been meaning to check out David Wilson's System Crafters post detailing his presentations style achieved with the help of org-present and his own customizations. If you're looking for ways to present from Emacs itself, David's post is well worth a look.

org-present's spartan but effective approach resonated with me. David's touches bring the wonderfully stylish icing to the cake. I personally liked his practice of collapsing slide subheadings by default. This lead me to think about slide navigation in general…

There were two things I wanted to achieve:

  1. Easily jump between areas of interest. Subheadings, links, and code blocks would be a good start.
  2. Collapse all but the current top-level heading within the slide, as navigation focus changes.

A quick search for existing functions led me to org-next-visible-heading, org-next-link, and org-next-block. While these make it easy to jump through jump between headings, links, org block on their own, I wanted to jump to whichever one of these is next (similar a web browser's tab behaviour). In a way, DWIM style.

I wrapped the existing functions to enable returning positions. This gave me ar/rg-next-visible-heading-pos, ar/rg-next-link-pos, and ar/rg-next-block-pos respectively. Now that I can find out the next location of either of these items, I can subsequently glue the navigation logic in a function like ar/org-present-next-item. To restore balance to the galaxy, I also added ar/org-present-previous-item.

(defun  ar/org-present-next-item (&optional backward)
   "Present and reveal next item."
  (interactive  "P")
   ;;  Beginning of slide, go to previous slide.
  (if (and backward (eq (point) (point-min)))
      (org-present-prev)
    (let* ((heading-pos (ar/org-next-visible-heading-pos backward))
           (link-pos (ar/org-next-link-pos backward))
           (block-pos (ar/org-next-block-pos backward))
           (closest-pos (when (or heading-pos link-pos block-pos)
                          (apply (if backward #'max #'min)
                                 (seq-filter #'identity
                                             (list heading-pos
                                                   link-pos
                                                   block-pos))))))
      (if closest-pos
          (progn
            (cond ((eq heading-pos closest-pos)
                   (goto-char heading-pos))
                  ((eq link-pos closest-pos)
                   (goto-char link-pos))
                  ((eq block-pos closest-pos)
                   (goto-char block-pos)))
             ;;  Reveal relevant content.
            (cond ((> (org-current-level) 1)
                   (ar/org-present-reveal-level2))
                  ((eq (org-current-level) 1)
                    ;;  At level 1. Collapse children.
                   (org-overview)
                   (org-show-entry)
                   (org-show-children)
                   (run-hook-with-args 'org-cycle-hook 'children))))
         ;;  End of slide, go to next slide.
        (org-present-next)))))

(defun  ar/org-present-previous-item ()
  (interactive)
  (ar/org-present-next-item t))

(defun  ar/org-next-visible-heading-pos (&optional backward)
   "Similar to ` org-next-visible-heading ' but for returning position.

 Set BACKWARD to search backwards."
  (save-excursion
    (let ((pos-before (point))
          (pos-after (progn
                       (org-next-visible-heading (if backward -1 1))
                       (point))))
      (when (and pos-after (not (equal pos-before pos-after)))
        pos-after))))

(defun  ar/org-next-link-pos (&optional backward)
   "Similar to ` org-next-visible-heading ' but for returning position.

 Set BACKWARD to search backwards."
  (save-excursion
    (let* ((inhibit-message t)
           (pos-before (point))
           (pos-after (progn
                        (org-next-link backward)
                        (point))))
      (when (and pos-after (or (and backward (> pos-before pos-after))
                               (and (not backward) (> pos-after pos-before))))
        pos-after))))

(defun  ar/org-next-block-pos (&optional backward)
   "Similar to ` org-next-block ' but for returning position.

 Set BACKWARD to search backwards."
  (save-excursion
    (when (and backward (org-babel-where-is-src-block-head))
      (org-babel-goto-src-block-head))
    (let ((pos-before (point))
          (pos-after (ignore-errors
                       (org-next-block 1 backward)
                       (point))))
      (when (and pos-after (not (equal pos-before pos-after)))
         ;;  Place point inside block body.
        (goto-char (line-beginning-position 2))
        (point)))))

(defun  ar/org-present-reveal-level2 ()
  (interactive)
  (let ((loc (point))
        (level (org-current-level))
        (heading))
    (ignore-errors (org-back-to-heading t))
    (while (or (not level) (> level 2))
      (setq level (org-up-heading-safe)))
    (setq heading (point))
    (goto-char (point-min))
    (org-overview)
    (org-show-entry)
    (org-show-children)
    (run-hook-with-args 'org-cycle-hook 'children)
    (goto-char heading)
    (org-show-subtree)
    (goto-char loc)))

Beware, this was a minimal effort (with redundant code, duplication, etc) and should likely be considered a proof of concept of sorts, but the results look promising. You can see a demo in action.

org-navigate_x1.6.webp

While this was a fun exercise, I can't help but think there must be a cleaner way of doing it or there are existing packages that already do this for you. If you do know, I'd love to know.

Future versions of this code will likely be updated in my Emacs org config.

Update

Removed a bunch of duplication and now rely primarily on existing org-next-visible-heading, org-next-link, and org-next-block.

10 Jan 17:21

696 - Meet the Schlapps feat. Seeking Derangements (1/9/23)

Tom Roche

very funny, just bant (no Matt esp via citation) but Hesse, Felix, and Will totally click

We’re joined by Ben and Hesse of Seeking Derangements to look at the bungled coup in Brazil, Matt Schlapp’s sexual harassment accusations and prince Harry’s explosive new book about getting frostbite on his dick. Finally, we read a New York Post story about parents whose kids hate them so much they have to hire deprogrammers. 


LINKS+PLUGS:

Seeking Derangements patreon: https://www.patreon.com/seekingderangements

Hell on Earth launch party, Littlefield, NYC 1/20/23: https://littlefieldnyc.com/event/?wfea_eb_id=479703214227

And Introducing DJ night, Elsewhere, NYC 1/18/23: https://www.elsewherebrooklyn.com/events/night-rippers-presented-by-audio-video-disco-18th-jan-the-loft-new-york-tickets

Talking Simpsons @ SF Sketchfest feat. Matt, 1/25/23: https://www.eventbrite.com/e/talking-simpsons-10p-seating-tickets-500829052177



Get bonus content on Patreon

Hosted on Acast. See acast.com/privacy for more information.

10 Jan 14:42

Those Russian Twitter Bots Didn't Do $#!% in 2016, Says New Study

by Sam Biddle
Tom Roche

interesting that TI continues to maintain that 'Russian intelligence attempted to influence the 2016 election, broadly speaking', but is at least backing away from the claim that this effort was somehow effective

Since the 2016 presidential election, the notion that the Russian government somehow “weaponized” social media to push voters to Donald Trump has been widely taken as a gospel in liberal circles. A groundbreaking recent New York University study, however, says there’s no evidence Russian tweets had any meaningful effect at all.

“We demonstrate, first, that exposure to Russian disinformation accounts was heavily concentrated: only 1% of users accounted for 70% of exposures,” the scholars wrote in the journal Nature Communications. “Second, exposure was concentrated among users who strongly identified as Republicans. Third, exposure to the Russian influence campaign was eclipsed by content from domestic news media and politicians. Finally, we find no evidence of a meaningful relationship between exposure to the Russian foreign influence campaign and changes in attitudes, polarization, or voting behavior.”

The research, conducted by NYU’s Center for Social Media and Politics, is a rare counter to what’s become the prevailing media narrative of the post-2016 era: that social platforms like Twitter were and will continue to be wielded by malicious foreign actors to interfere with American political outcomes.

Most importantly, according to the study, based on a longitudinal survey of roughly 1,500 Americans and an analysis of their Twitter timelines, “the relationship between the number of posts from Russian foreign influence accounts that users are exposed to and voting for Donald Trump is near zero (and not statistically significant).”

That Russian intelligence attempted to influence the 2016 election, broadly speaking, is by now well documented; the idea that the propagandizing amounted to anything other than headlines and congressional hearings, however, is little more than an article of faith. While their impact remains debated among scholars, the specter of “Russian bots” wreaking havoc across the web has become a byword of liberal anxiety and a go-to explanation for Democrats flummoxed by Trump’s unlikely victory.

The NYU study found that Russia’s Twitter campaign had no effect in part because barely anyone saw it. Moreover, to the extent anyone ever saw the Russian tweets, it was people who weren’t going to be easily influenced anyway: “[T]hose who identified as ‘Strong Republicans’ were exposed to roughly nine times as many posts from Russian foreign influence accounts than were those who identified as Democrats or Independents.”

After 2016, as platforms like Twitter rushed to scrub networks of Russian accounts based on the premise they were inherently harmful, Sen. Mark Warner, D-Va., characterized Russian tweets as a full-blown national security crisis. Following a September 2017 congressional hearing on Russian social media meddling, Warner described Twitter’s testimony as “deeply disappointing,” and decried an “enormous lack of understanding from the Twitter team of how serious this issue is, the threat it poses to democratic institutions, and again begs many more questions than they offered.”

This stance became a popular stance among Russia hawks and Trump foes. A year later, Rep. Adam Schiff, D-Calif., tweeted, “Russian troll accounts were still active on Twitter as recently as this year, interfering in our politics. We will continue to expose this malign online activity so Americans can see first-hand the tools Russia uses to divide us.”

Panic over Russian tweets and the belief they might swing elections spread throughout Congress, academia, business, and the U.S. intelligence community. A cottage industry spouted up to combat what Facebook termed “Coordinated Inauthentic Behavior” — an industry that lives on today.

Crucially, the report focused only on tweets, so the possible effect of Facebook groups, Instagram posts, or, say, the spread of materials hacked from the Democratic National Committee was left unassessed. The report nonetheless serves as a gentle evidence-based corrective to societal fears of low-effort social media propagandizing as some diabolical tool of adversarial regimes.

Russian tweets, the authors note, were a small speck when compared to homegrown posters. “Despite the seemingly large number of posts from Internet Research Agency accounts in respondents’ timelines,” the report says, “they are overshadowed—by an order of magnitude—by posts from national news media and politicians.”

The post Those Russian Twitter Bots Didn’t Do $#!% in 2016, Says New Study appeared first on The Intercept.

09 Jan 22:43

Irreal: Customizing Org Mode Exports

by jcs
Tom Roche

Note that where the post has

< Walsh’s post contains all his configuration except his setup files. Those are available in his [GitHub repository](https://github.com/mclearc/org-latex-classes).

... that's a typo: he should say

> McLear's post [...]

I have a longstanding fascination with document layout. It’s something I first learned from Rich Stevens. His books were always visually beautiful with a layout that showed an obsessive attention to detail. Fortunately, he wrote about his process extensively on his Website and was generous with his help when I was laying out my first book.

Like Stevens, I wrote and typeset my books with Groff. These days, I do all my writing with Org mode so I’m always interested in ways the make Org mode exports look better. I recently I came across two posts that address this very problem.

The first is by Norman Walsh. His interest is customizing PDF output from Org files. He didn’t like the way the default output made his documents look like academic papers. He includes output from both the default method and his customized method so that you can see the differences.

The second is by Colin McLear, a teacher who wants to use the same Org file to produce

  1. A set of notes for his students
  2. A set of slides for his lectures
  3. A handout version of the slides with additional content

Walsh’s post contains all his configuration except his setup files. Those are available in his GitHub repository.

Neither of these setups are likely to be exactly what you want but they’re ripe with ideas and show you how to make your own customizations. The ability to do this means that there’s no reason to do your writing in anything but Org. If you have special output requirements, it’s pretty easy to realize them with some simple configuration.

UPDATE [2023-01-14 Sat 18:55]: Added link to McLear’s post.

09 Jan 22:34

Eric MacAdie: I Got an Account On Mastodon

by Eric MacAdie
Tom Roche

post is /actually/ about [Emacs support for Mastodon](https://codeberg.org/martianh/mastodon.el) (and how to install/use it) and the new [Gitea](https://en.wikipedia.org/wiki/Gitea)-based (OK, actually Forgejo-based, but ... long story omitted :-) independent code forge

I got an account on Mastodon. I am at https://emacs.ch/@EMacAdie. It is on a server for Emacs enthusiasts. I will probably post about more than just Emacs.

I created the account in the browser, but afterwards I posted using the Mastodon client hosted on Codeberg; here is a link to the post. After you install and add a couple of vars to your Emacs config, you type “M-x mastodon“, and it puts a URL to the authorization page in the OS buffer. You go there, then you get the token, or the secret, or whatever OAuth calls it, and you then do back to Emacs and C-y, and you are in. It will put a file called “mastodon.plstore” with all the login info in your Emacs config directory. If you put your config into a git repo, add “mastodon.plstore” to your .gitignore file (or whatever your equivalent is if you do not use git).

One thing the author of the client does not mention is that you cannot authorize the client if you run with “–no-window-system“. The URL I kept getting when I ran Emacs in terminal mode was just the regular page for my profile. I could get to a page listed what apps were authorized, but I could not actually authorize anything. I re-started Emacs without “–no-window-system” and it worked fine. I looked at some of Mastering Emacs, and apparently there are some things that do not work when you are in terminal mode. There are some times I thought I was doing something wrong and could not get something to work. Perhaps the real issue was that I was in terminal mode.

The client repo does mention that if you want to post with a second account, you need to edit your config and restart.

I mentioned the Mastodon client in my post about the December 2022 Austin Emacs meetup.

What does one do on Mastodon? Tweet? Mastocate? Is there another word for it? [Note 1]

The code for the client is hosted on Codeberg. I might move my Github repos to Codeberg. I want to have as little Microsoft in my life as I can. If I do, I might give some money to Codeberg to help keep them going. I might also donate to help keep Emacs.ch running. I have given money to Wikipedia. I will make a list of projects/organizations to make small donations to, and track them in Org.

I will try to post a link to this post from the Emacs client, but I reserve the right to fall back to the web if needed.


Note 1, added after publishing: Per the comments, apparently you “toot” on Mastodon.

Image from the Emperor’s Bible, an 11-century manuscript housed in the Uppsala University Library; image from the Alvin portal, assumed allowed under public domain.

09 Jan 22:15

Michael Spicer: Before Next Door

Tom Roche

EXCELLENT in the great tradition of BBC "light comedy": consistently inventive, well-produced, and amusing (though rarely LOL funny)

Room Next Door Man, Michael Spicer, charts his real-life progress to global internet stardom. However, this rags to riches story is still lacking in riches so Michael has accepted a promotion at work and continues to plug away on Twitter. We re-join the story in December 2019 on a family swimming trip that is as damp and disappointing as Michael’s comedy career to date, but the impending general election coverage provides an opportunity for media attention. Meanwhile, an office workshop led by Conservative-supporting, communications guru Benjamin Cruz (Sanjeev Bhaskar) provides extra stress. Cruz thinks Michael's comedy should be more politically balanced, something the BBC echoes by interrupting the episode to ensure Michael is performing with total impartiality. To further fuel Michael's anxiety, his wife Roberta wants him to stuff the day job and go on tour - with her as his full-time manager. Can Michael seize the day while also holding onto the job that pays his mortgage? Cast: Michael Spicer with Ellie Taylor, Joanna Neary, Jamie Borthwick, Alison Ward, Greig Johnson, Jason Forbes, Peter Curran, and guest starring Sanjeev Bhaskar Writer: Michael Spicer Producer: Matt Tiller A Starstruck and Tillervision Production for BBC Radio 4
09 Jan 21:24

New Year, Same Germany

by The Späti Boys
Tom Roche

just Ciarán and Nick, otherwise excellent on (mostly) German politics esp Berlin esp housing and development

Apparently all it took were some fireworks to send Germany into a racist frenzy. Happy 2023 everyone!

HOW TO SUPPORT US:
https://www.patreon.com/cornerspaeti

HOW TO REACH US:
Corner Späti https://twitter.com/cornerspaeti
Julia https://twitter.com/KMarxiana
Rob https://twitter.com/leninkraft
Nick https://twitter.com/sternburgpapi
Uma https://twitter.com/umawrnkl
Ciarán https://twitter.com/CiaranDold

Support Corner Späti

08 Jan 16:00

Sacha Chua: Org Mode: Including portions of files between two regular expressions

by Sacha Chua
Tom Roche

pullquote:
> I decided to make a custom [Org] link type instead. This allows me to refer to parts of code with a link like this: [[my-include:~/proj/static-blog/assets/css/style.css::from-regexp=Start of copy code&to-regexp=End of copy code&wrap=src js]]

I'd like to refer to snippets of code, but lines are too fragile to use as references for code and posts that I want to easily update. I'd like to specify a from-regexp and a to-regexp instead in order to collect the lines between those regexps (including the ones with the regexps themselves). org-export-expand-include-keyword looked a bit hairy to extend since it uses regular expressions to match parameter values. For this quick experiment, I decided to make a custom link type instead. This allows me to refer to parts of code with a link like this:

[[my-include:~/proj/static-blog/assets/css/style.css::from-regexp=Start of copy code&to-regexp=End of copy code&wrap=src js]]

which will turn into this snippet from my stylesheet:

/* Start of copy code */
pre.src { margin: 0 }
.org-src-container {
    position: relative;
    margin: 0 0;
    padding: 1.75rem 0 1.75rem 1rem;
}
summary { position: relative; }
summary .org-src-container { padding: 0 }
summary .org-src-container pre.src { margin: 0 }
.org-src-container button.copy-code, summary button.copy-code {
    position: absolute;
    top: 0px;
    right: 0px;
}
/* End of copy code */

Here's the Emacs Lisp code to do that. my-include-complete function reuses my-include-open to narrow to the file, and my-include-complete uses consult--line so that we can specify the prompt.

(org-link-set-parameters
 "my-include"
 :follow #'my-include-open
 :export #'my-include-export
 :complete #'my-include-complete)

(defun my-include-open (path &optional _)
  "Narrow to the region specified in PATH."
  (let (params start end)
    (if (string-match "^\\(.*+?\\)::\\(.*+\\)" path)
        (setq params (save-match-data (org-protocol-convert-query-to-plist (match-string 2 path)))
              path (match-string 1 path)))
    (find-file path)
    (setq start
          (or
           (and
            (plist-get params :from-regexp)
            (progn
              (goto-char (point-min))
              (when (re-search-forward (url-unhex-string (plist-get params :from-regexp)))
                (line-beginning-position))))
           (progn
             (goto-char (point-min))
             (point))))
    (setq end
          (or
           (and
            (plist-get params :to-regexp)
            (progn
              (when (re-search-forward (url-unhex-string (plist-get params :to-regexp)))
                (line-end-position))))
           (progn
             (goto-char (point-max))
             (point))))
    (when (or (not (= start (point-min)))
              (not (= end (point-max))))
      (narrow-to-region start end))))
    
(defun my-include-export (path _ format _)
  "Export PATH to FORMAT using the specified wrap parameter."
  (let (params body start end)
    (when (string-match "^\\(.*+?\\)::\\(.*+\\)" path)
      (setq params (save-match-data (org-protocol-convert-query-to-plist (match-string 2 path)))))
    (save-window-excursion
      (my-include-open path)
      (setq body (buffer-substring (point-min) (point-max))))
    (with-temp-buffer
      (when (plist-get params :wrap)
        (let* ((wrap (plist-get params :wrap))
               block args)
          (when (string-match "\\<\\(\\S-+\\)\\( +.*\\)?" wrap)
            (setq block (match-string 1 wrap))
            (setq args (match-string 2 wrap)) 
            (setq body (format "#+BEGIN_%s%s\n%s\n#+END_%s\n"
                               block (or args "")
                               body
                               block)))))
      (insert body)
      (org-export-as format nil nil t))))

(defun my-include-complete ()
  "Include a section of a file from one line to another, specified with regexps."
  (interactive)
  (require 'consult)
  (let ((file (read-file-name "File: ")))
    (save-window-excursion
      (find-file file)
      (concat "my-include:"
              file
              "::from-regexp="
              (let ((curr-line (line-number-at-pos
                                (point)
                                consult-line-numbers-widen))
                    (prompt "From line: "))
                (goto-char (point-min))
                (consult--line
                 (or (consult--with-increased-gc
                      (consult--line-candidates
                       nil
                       curr-line))
                     (user-error "No lines"))
                 :curr-line curr-line
                 :prompt prompt)        
                (url-hexify-string
                 (regexp-quote (buffer-substring (line-beginning-position) (line-end-position)))))
              "&to-regexp="
              (let ((curr-line (line-number-at-pos
                                (point)
                                consult-line-numbers-widen))
                    (prompt "To line: "))
                (goto-char (point-min))
                (consult--line
                 (or (consult--with-increased-gc
                      (consult--line-candidates
                       nil
                       curr-line))
                     (user-error "No lines"))
                 :curr-line curr-line
                 :prompt prompt)        
                (url-hexify-string
                 (regexp-quote (buffer-substring (line-beginning-position) (line-end-position)))))
              "&wrap=src " (replace-regexp-in-string "-mode$" "" (symbol-name major-mode))))))
This is part of my Emacs configuration.
08 Jan 01:36

Contrary to What the NYT Tells You, the Problem in An Aging Society is Distribution

by Dean Baker
Tom Roche

pullquote (edited by me, because Baker kinda "buries the lead"):
> The conventional story of a country facing problems due to aging would be that it stops seeing per capita income growth, and could even see declines, as the ratio of workers to total population falls. [But, empirically and internationally, per capita income growth does not correlate with population aging.] This means that the reason older people are unable to retire in these countries is not the aging of the population, but the political decision to not provide adequate support for the elderly population.

The New York Times had a major article reporting on how many people in South Korea, Hong Kong, and Japan are being forced to work well into their seventies because they lack sufficient income to retire. The piece presents this as a problem of aging societies, which will soon hit the United States and other rich countries with declining birth rates and limited immigration.

While the plight of the older workers discussed in the article is a real problem, the cause is not the aging of the population. The reason these people don’t have adequate income to retire is a political decision about the distribution of income.

If the issue was simply that too few people were working in these aging societies, we should expect to see slower per capita growth than in countries where aging is less of a problem. That is not the case. The figure below shows real per capita income in these three countries from 2014, along with projections to 2027, as well as France, which has maintained a relatively high birth rate.

 

Source: International Monetary Fund.

As can be seen, both Korea and Hong Kong have been seeing more rapid per capita GDP growth than France and are projected to continue to do so, with Japan’s growth rate virtually identical over this period. Korea is projected to maintain a 2.4 percent growth rate, while Hong Kong is projected to have a 1.4 percent annual growth rate. By comparison, France is projected to have a 0.94 percent growth rate, only slightly higher than Japan’s 0.9 percent rate.

The conventional story of a country facing problems due to aging would be that it stops seeing per capita income growth, and could even see declines, as the ratio of workers to total population falls. Two of the three countries highlighted are sustaining considerably more rapid per capita growth than a country that is less affected by an aging population. In the third case, the growth is essentially identical.

This means that the reason older people are unable to retire in these countries is not the aging of the population, but the political decision to not provide adequate support for the elderly population. In short, the problem is political, not demographics.

The post Contrary to What the NYT Tells You, the Problem in An Aging Society is Distribution appeared first on Center for Economic and Policy Research.

07 Jan 18:07

Episode 240 - We Need To Talk About Kevin (w/ Thomas Frank)

Tom Roche

[Frank](https://tcfrank.com/) is VERY EXCELLENT as usual

Subscribe to Bad Faith on Patreon to instantly unlock our full premium episode library: http://patreon.com/badfaithpodcast

Whenever something crazy is going down in Congress, Thomas Frank is here to talk about it. We chatted while the Capitol was stormed on 1/6, and now the historian, writer, and populism expert returns to Bad Faith as the House Republicans struggle to meet the 218-vote threshold to elect a Speaker. Inside: discussions about the parallels between this historical moment and the ones Frank has written about, the wisdom of Force The Vote, and whether Briahna is right to be jealous of the rogue Republicans in this moment.

Subscribe to Bad Faith on YouTube for video of this episode. Find Bad Faith on Twitter (@badfaithpod) and Instagram (@badfaithpod).

Produced by Armand Aviram.

Theme by Nick Thorburn (@nickfromislands).

07 Jan 00:01

695 - Lucky Number Kevin (1/5/23)

Tom Roche

EXCELLENT, consistently funny, even when doing the done-to-death {Kevin McCarthy, US House Speaker} non-story. After that, among other topics The Guys do
- George Santos as new high in US fraud (even topping Sam Bankrun-Fraud?)
- Ali Alexander and other US rightwing influencers (imagined in their own Hogan's Heroes internment camp)
- Bolsonaro in Florida (banging leathery Republicans in his Minions-themed bedroom)
- and yet another excellent Rod Dreher reading, this time featuring his crap-uscular ancestry, esp his Freemason-and-KKK (a combination that presumably only works in Rod's native Baton Rouge) father

We’re back to regular coverage today with a look at the enjoyably dysfunctional quest of the GOP trying to elect a speaker of the house. Then, we discuss Bolsonaro in Orlando and OF COURSE, for the reading series we’ve got Rod Dreher’s revelation that his father was a damnable Freemason (oh, and also in the KKK). 


Tickets for the Hell on Earth launch show/party @ Littlefield in NYC 1/20/23 here: https://littlefieldnyc.com/event/?wfea_eb_id=479703214227

Get bonus content on Patreon

Hosted on Acast. See acast.com/privacy for more information.

06 Jan 23:49

Financial World Celebrates Slowing Wage and Employment Growth in New Jobs Report

by Ken Klippenstein
Tom Roche

In case you were wondering who US corporate-funded media and the Corporate Democrats /really/ support/represent, pullquote:
> Others reacted to the news [of decreasing share of US income going to workers, thereby protecting profits] with even less restrained enthusiasm. “Wage growth … slowed a lot,” tweeted Harvard economics professor Jason Furman, declaring that it represented the “best reason for hope on moderating inflation.”

In case you've forgotten, that's Obamascum Jason Furman--chair of BHO's Council of Economic Advisers, and staffer for several global-corporate-empire thinktanks (inc Aspen Institute, Council on Foreign Relations, Kennedy School of Government, Peterson Institute)

The drops in both new jobs and wage growth contained in a Department of Labor report released on Friday elicited cheers from financial world insiders.

“This is a really terrific jobs report in lots of subtle ways,” tweeted Neil Irwin, Axios’s chief economic correspondent. He said, “Job growth is soft-landingish” — polite econ-speak for saying growth is decreasing steadily.


“This looks like the right direction of travel re: jobs,” New York Times economic reporter Jeanna Smialek said on Twitter, above a chart depicting a steady decline in jobs. “But it’s probably not *as much* of a slowdown as the Fed wants, yet,” Smialek hedged, adding that “[Federal Reserve] Chair Powell is looking for notable cooling in wages” — the dip in wage growth depicted in the jobs report apparently not steep enough.

Others reacted to the news with even less restrained enthusiasm. “Wage growth … slowed a lot,” tweeted Harvard economics professor Jason Furman, declaring that it represented the “best reason for hope on moderating inflation.”

Even President Joe Biden welcomed the news, saying that “this moderation in job growth is appropriate,” after acknowledging that “average monthly job gains have come down from over 600,000 a month at the end of last year to closer to 200,000 a month.”

Last year, amid the economic recovery following the dips of the pandemic, the central bankers of the U.S. Federal Reserve launched a campaign of some of the steepest interest rate hikes in years in an attempt to tamp down inflation. By making money more expensive to borrow, rate hikes can reduce inflation by slowing down the economy and driving up unemployment.

“While higher interest rates, slower growth, and softer labor market conditions will bring down inflation, they will also bring some pain to households and businesses,” Federal Reserve Chair Jerome Powell said in August. “These are the unfortunate costs of reducing inflation.”

Not all experts agree. Some argue that the medicine of rate hikes and their attendant costs to workers, including higher unemployment and lower wages, can be worse than the inflationary disease. Other dissenting experts say the primary, underlying causes of inflation — a pandemic, supply-chain crisis, corporate concentration, climate crisis straining agriculture — aren’t addressed by tighter monetary policy and that the pandemic-related inflation was always going to be transitory.

At stake in the debate is millions of Americans’ jobs. To tame inflation, former treasury secretary and economist Larry Summers has called for a year of 10 percent unemployment, far above what we have now and which would see millions of people put out of work. The Fed, for now, appears to be heeding that advice, albeit on a smaller scale — a scale that could grow depending on which side of the debate prevails.

Sen. Elizabeth Warren, D-Mass., has warned that the Fed’s rate hikes “risks triggering a devastating recession.” Warren’s assessment was echoed by the Fed’s own research, which this summer warned that, in a past example, aggressive interest rate hikes in rapid succession resulted in the depression of 1920. The United Nations has also called on the Fed to stop its rate hikes, warning that it risks a “global recession.” The International Monetary Fund issued a similar warning, as did a World Bank paper.

Rate hikes can be an effective tool against inflation depending on its causes, but it is far from the only one. The inflation currently besetting the U.S. is being driven by forces beyond the control of the Fed, like supply chain problems and Russia’s invasion of Ukraine, Warren argued. (Economist Thomas Ferguson identifies the same causes as well as another one: extreme weather events resulting from climate change.)

Instead of rate hikes, Warren suggested several other ways to bring down inflation, including fighting corporate price gouging with aggressive antitrust policies, bringing more parents into the workforce by subsidizing child care, strengthening supply chains by ending tax breaks for corporations that offshore jobs, and bringing down drug prices by allowing Medicare to negotiate them.

“As with any illness, the right medicine starts with the right diagnosis,” Warren has said. “Unfortunately, the Fed has seized on aggressive rate hikes — a big dose of the only medicine at its disposal — even though they are largely ineffective against many of the underlying causes of this inflationary spike.”

Warren has asked Powell, the Fed chair, how many job losses the central bank is willing to accept in its war on inflation. The Fed has no clear answer.

In a press release announcing further rate hikes last month, the Fed specified the inflation rate it was aiming for — 2 percent — but, in terms of employment, only vaguely claimed to seek the “maximum.”

In contrast to the 2 percent figure, the president of the New York Fed recently said unemployment could reach 5 percent this year — representing millions of people losing their jobs. Despite the Fed’s famous mandate to pursue both the highest employment and lowest inflation possible, the priority seems obvious.

Inflation has been steadily falling since July, buoying hopes that the “pain to households” that Powell warned about might subside. For now, though, it appears the Fed’s aggressive war on inflation is just beginning, despite growing warnings that it could trigger a recession.

An alarming but little-noticed report released by the St. Louis Fed on December 28 found that slightly over half of U.S. states are experiencing “recession-like conditions” that serve as a key indicator for a coming national recession.

“Huge downward revision to November wage growth,” Dean Baker, an economist at the Center for Economic and Policy Research, said of the new jobs report. An earlier report had suggested wages were rising again, but the finding was corrected in the latest report once better data became available. Dean called on the Federal Reserve to “hold the rate hikes please.”

The post Financial World Celebrates Slowing Wage and Employment Growth in New Jobs Report appeared first on The Intercept.

05 Jan 19:06

1/5/23: McCarthy Speaker Vote Chaos, AOC Floats Compromise, Trump Blames Abortion, Mass Tech Layoffs, Jim Cramer Flips On Crypto, Age Of The Con Artist, Big Soda Smears Opponents

Tom Roche

Virtually all of this episode is skippable, /esp/ the 1st half (literally 30 min of this 61-min /Breaking Points/) which continues to chew the overdigested cud that is the {Kevin McCarthy, US House Speaker} "drama" ...
/except/ for an unusually (for Saagar) {interesting, short (only 56:11-60:17)} "radar," which begins with revelations by former Coca-Cola consultant (now whistleblower) Calley Means on how Coke and Big Soda lobbied and funded NAACP, Hispanic Federation, and other civil rights groups in order to get those allegedly-anti-racist organizations to oppose soda/sugar taxes and support maintaining {EBT, SNAP, Food Stamp} eligibility for high-sugar beverages and foods.

Krystal and Saagar discuss the multiple days of continuing chaos surrounding the vote for House Speaker, AOC floating a potential compromise between Dems and R's, Trump receiving blowback from the religious right over his Abortion midterm comments, Mass tech layoffs at Amazon and Meta, Jim Cramer changing his mind and warning people about Crypto, the Age of Con Artists like Andrew Tate and George Santos, and Big Soda smearing their opponents as racist.


To become a Breaking Points Premium Member and watch/listen to the show uncut and 1 hour early visit: https://breakingpoints.supercast.com/



To listen to Breaking Points as a podcast, check them out on Apple and Spotify



Apple: https://podcasts.apple.com/us/podcast/breaking-points-with-krystal-and-saagar/id1570045623

 


Spotify: https://open.spotify.com/show/4Kbsy61zJSzPxNZZ3PKbXl

 



Merch: https://breaking-points.myshopify.com/

Learn more about your ad choices. Visit megaphone.fm/adchoices

05 Jan 02:12

Brazil's President Lula is back - and Bolsonaro fled to Florida

Tom Roche

excellent, detailed on both domestic and geopolitics

Lula da Silva has returned as Brazil's president. This will cause a major geopolitical shift. Meanwhile, far-right leader Jair Bolsonaro fled to Florida, fearing legal consequences for his corruption. Brazil-based journalist Brian Mier joins to discuss what a third Lula government means for Latin America and the world. VIDEO: https://youtube.com/watch?v=CQq1kTubYQQ Follow Brian at https://twitter.com/BrianMteleSUR
05 Jan 00:31

1/4/23 Counter Points: Kevin McCarthy's Historic Loss, Twitter Pressured By Intelligence Community, SBF In Court, Idaho Killers, Bipartisan Stock Corruption, Tech Layoffs, Exclusive Matt Taibbi Interview

Tom Roche

consistently excellent (excepting too much McCarthy drama), esp
* final/Taibbi segment on continuing Twitter Files revelations
* seg on Unusual Whales 2022 year in bipartisan US legislators' corruption

Ryan and Emily discuss the historic loss of Kevin McCarthy's bid for speaker, the new chapter of the Twitter Files revealing pressure Twitter experienced from the intelligence community, SBF in court, how DNA technology was used to catch the Idaho killer, Unusual Whales revealing information on dem/republican stock corruption, tech company layoffs rising, and an exclusive interview with Matt Taibbi on the new chapters of the Twitter Files.


To become a Breaking Points Premium Member and watch/listen to the show uncut and 1 hour early visit: https://breakingpoints.supercast.com/



To listen to Breaking Points as a podcast, check them out on Apple and Spotify



Apple: https://podcasts.apple.com/us/podcast/breaking-points-with-krystal-and-saagar/id1570045623

 


Spotify: https://open.spotify.com/show/4Kbsy61zJSzPxNZZ3PKbXl

 



Merch: https://breaking-points.myshopify.com/

Learn more about your ad choices. Visit megaphone.fm/adchoices

04 Jan 22:46

Will US Aggression Stop Eurasian Integration or Accelerate It? w/ Vijay Prashad

Tom Roche

Prashad excellent as usual

Why is the US willing to risk a nuclear apocalypse to weaken Russia and China? Our leaders say it’s about protecting the international rules based order from an authoritarian axis of evil. But this is just a guise. It’s actually about maintaining US unipolar hegemony over the world, which requires preventing or at the very least delaying the integration of Europe and Asia, an integration that is logical, both economically and geographically. 

To discuss this and more Rania Khalek was joined by Vijay Prashad, Executive Director of the Tricontinental Institute for Social Research and author of many books including “Washington Bullets: A History of the CIA, Coups, and Assassinations."

Articles discussed in this episode: 

The United States wants to prevent a historical fact–Eurasian integration: The Twenty-Seventh Newsletter https://mronline.org/2022/07/08/the-united-states-wants-to-prevent-a-historical-fact-eurasian-integration/

Mali’s Break with France Is a Symptom of Cracks in the Transatlantic Alliance: The Forty-Eighth Newsletter (2022) from Tricontinental: Institute for Social Research: https://thetricontinental.org/newsletterissue/malis-break-with-france-is-a-symptom-of-cracks-in-the-transatlantic-alliance/ 

Listen to every episode of Rania Khalek Dispatches anywhere you get podcasts.

Apple: https://apple.co/3zeYpeW 

Spotify: https://spoti.fi/3za9DRK


04 Jan 20:54

So long, Richard Shelby, and thanks for all the pork

by Eric Berger
Tom Roche

pullquote:
> Shelby was a senator from Alabama for nearly four decades, starting out as a Democrat and then switching parties to become a Republican in 1994. But his jam was never partisan politics. Shelby preferred dealmaking and working with lawmakers in both parties to fund the government in general and his priorities in particular. And over the years, Shelby brought home the bacon to Alabama, delivering large contracts to NASA's Marshall Space Flight Center, the Army's Redstone Arsenal, and large companies that agreed to do business in Alabama.

Retiring Sen. Richard C. Shelby, R-Ala.

Enlarge / Retiring Sen. Richard C. Shelby, R-Ala. (credit: Scott J. Ferrell | Getty Images)

Every other year, luminaries of the air and space community gather in France for the famed Paris Air Show, the largest aerospace exhibition in the world. The show offers visitors the chance to see new technology and the opportunity to mix and mingle.

For the leaders of the largest and most powerful aerospace companies in the world, there is also an opportunity to kiss the ring. This would come on the one evening of the Paris Air Show, during which the Alabama legislative delegation rented out the top floor of the Eiffel Tower for a reception to host aerospace dignitaries.

The star attraction atop the historic tower was a US senator, Richard Shelby. The chief executives of Boeing, Lockheed Martin, Dynetics, and other industry firms would come to meet with Shelby, to see and be seen, and to show the state of Alabama the love. As chair of the powerful Appropriations Committee in the US Senate, Shelby's voice was that of God when it came to funding US defense and civil space contracts.

Read 13 remaining paragraphs | Comments

04 Jan 02:23

694 - Tulkun King (1/2/23)

Tom Roche

excellent, insightful, funny

It’s finally time to return to Pandora: we review Avatar: The Way of Water. James Cameron expands and improves on his otherworldly saga of colonization and resistance in about every conceivable way, including revolutionary whale violence, CRAB MECHS, and competing visions of eternal life, one blessed & one damned. Saddle up your Skimwing and join us once again in this consciousness-raising blockbuster fantasy world of blue guys.


Tickets for the Hell on Earth launch show/party @ Littlefield in NYC 1/20/23 here: https://littlefieldnyc.com/event/?wfea_eb_id=479703214227


Get bonus content on Patreon

Hosted on Acast. See acast.com/privacy for more information.

02 Jan 19:57

Fresh audio product: fitness in America, weak bourgeoisie in Italy

by Doug Henwood
Tom Roche

both excellent, esp 2nd/Gerbaudo

Just added to my radio archive (click on date for link):

December 8, 2022 Natalia Petrzela, author of Fit Nationon the history of physical culture in the US • Paolo Gerbaudo on the weakness of the Italian bourgeoisie

02 Jan 19:48

Sacha Chua: EmacsConf backstage: Using TRAMP and timers to run two tracks semi-automatically

by Sacha Chua
Tom Roche

very impressive! Chua is definitely the girlboss of Emacs

In previous years, organizers streamed the video feeds for EmacsConf from their own computers to the Icecast server, which was a little challenging because of CPU load. A server shared by a volunteer had a 6-core Intel Xeon E5-2420 with 48 GB of RAM, which turned out to be enough horsepower to run OBS for both the general and development track for EmacsConf 2022. One of the advantages of this setup was that I could write some Emacs Lisp to automatically play recorded intros and talk videos at scheduled times, right from the large Org file that had all the conference details. I used SCHEDULED: properties to indicate when talks should play, and that was picked up by another function that took the Org entry properties and put them into a plist.

This function scheduled the timers:

emacsconf-stream-schedule-timers
(defun emacsconf-stream-schedule-timers (&optional info)
  "Schedule PLAYING for the rest of talks and CLOSED_Q for recorded talks."
  (interactive)
  (emacsconf-stream-cancel-all-timers)
  (setq info (emacsconf-prepare-for-display (emacsconf-filter-talks (or info (emacsconf-get-talk-info)))))
  (let ((now (current-time)))
    (mapc (lambda (talk)
            (when (and (time-less-p now (plist-get talk :start-time)))
              (emacsconf-stream-schedule-talk-status-change talk (plist-get talk :start-time) "PLAYING"
                                                            `(:title (concat "Starting " (plist-get talk :slug)))))
            (when (and
                   (plist-get talk :video-file)
                   (plist-get talk :qa-time)
                   (not (string-match "none" (or (plist-get talk :q-and-a) "none")))
                   (null (plist-get talk :stream-files)) ;; can't tell when this is
                   (time-less-p now (plist-get talk :qa-time)))
              (emacsconf-stream-schedule-talk-status-change talk (plist-get talk :qa-time) "CLOSED_Q"
                                                            `(:title (concat "Q&A for " (plist-get talk :slug) " (" (plist-get talk :q-and-a) ")"))))
            )
          info)))

It turns out that TRAMP doesn't like being called from timers if there's a chance that two TRAMP processes might run at the same time. I got "Forbidden reentrant call of Tramp" errors when that happened. There was an easy fix, though. I adjusted the schedules of the talks so that they started at least a minute apart.

Sometimes I wanted to cancel just one timer:

emacsconf-stream-cancel-timer
(defun emacsconf-stream-cancel-timer (id)
  "Cancel a timer by ID."
  (interactive (list
                (completing-read
                 "ID: "
                 (lambda (string pred action)
                    (if (eq action 'metadata)
                        `(metadata (display-sort-function . ,#'identity))
                      (complete-with-action action
                                            (sort
                                             (seq-filter (lambda (o)
                                                           (and (timerp (cdr o))
                                                                (not (timer--triggered (cdr o)))))
                                                         emacsconf-stream-timers)
                                             (lambda (a b) (string< (car a) (car b))))
                                            string pred))))))
  (when (timerp (assoc-default id emacsconf-stream-timers))
    (cancel-timer (assoc-default id emacsconf-stream-timers))
    (setq emacsconf-stream-timers
          (delq (assoc id emacsconf-stream-timers)
                (seq-filter (lambda (o)
                              (and (timerp (cdr o))
                                   (not (timer--triggered (cdr o)))))
                            emacsconf-stream-timers)))))

and schedule just one timer manually:

emacsconf-stream-schedule-talk-status-change
(defun emacsconf-stream-schedule-talk-status-change (talk time new-status &optional notification)
  "Schedule a one-off timer for TALK at TIME to set it to NEW-STATUS."
  (interactive (list (emacsconf-complete-talk-info)
                     (read-string "Time: ")
                     (completing-read "Status: " (mapcar 'car emacsconf-status-types))))
  (require 'diary-lib)
  (setq talk (emacsconf-resolve-talk talk))
  (let* ((converted
          (cond
           ((listp time) time)
           ((timer-duration time) (timer-relative-time nil (timer-duration time)))
           (t                           ; HH:MM
            (date-to-time (concat (format-time-string "%Y-%m-%d" nil emacsconf-timezone)
                                  "T"
                                  (string-pad time 5 ?0 t) 
                                  emacsconf-timezone-offset)))))
         (timer-id (concat (format-time-string "%m-%dT%H:%M" converted)
                           "-"
                           (plist-get talk :slug)
                           "-"
                           new-status)))
    (emacsconf-stream-cancel-timer timer-id) 
    (add-to-list 'emacsconf-stream-timers
                  (cons
                   timer-id
                   (run-at-time time converted #'emacsconf-stream-update-talk-status-from-timer
                                talk new-status
                                notification)))))

The actual playing of talks happened using functions that were called from org-after-todo-state-change-hook. I wrote a function that extracted the talk information and then called my own list of functions.

emacsconf-org-after-todo-state-change
(defun emacsconf-org-after-todo-state-change ()
  "Run all the hooks in `emacsconf-todo-hooks'.
If an `emacsconf-todo-hooks' entry is a list, run it only for the
tracks with the ID in the cdr of that list."
  (let* ((talk (emacsconf-get-talk-info-for-subtree))
         (track (emacsconf-get-track (plist-get talk :track))))
    (mapc
     (lambda (hook-entry)
       (cond
        ((symbolp hook-entry) (funcall hook-entry talk))
        ((member (plist-get track :id) (cdr hook-entry))
         (funcall (car hook-entry) talk))))
     emacsconf-todo-hooks)))

For example, this function played the recorded intro and the talk:

emacsconf-stream-play-talk-on-change
(defun emacsconf-stream-play-talk-on-change (talk)
  "Play the talk."
  (interactive (list (emacsconf-complete-talk-info)))
  (setq talk (emacsconf-resolve-talk talk))
  (when (or (not (boundp 'org-state)) (string= org-state "PLAYING"))
    (if (plist-get talk :stream-files)
        (progn
          (emacsconf-stream-track-ssh
           talk
           "overlay"
           (plist-get talk :slug))
          (emacsconf-stream-track-ssh
           talk
           (append
            (list
             "nohup"
             "mpv")
            (split-string-and-unquote (plist-get talk :stream-files))
            (list "&"))))
      (emacsconf-stream-track-ssh
       talk
       (cons
        "nohup"
        (cond
         ((and
           (plist-get talk :recorded-intro)
           (plist-get talk :video-file)) ;; recorded intro and recorded talk
          (message "should automatically play intro and recording")
          (list "play-with-intro" (plist-get talk :slug))) ;; todo deal with stream files
         ((and
           (plist-get talk :recorded-intro)
           (null (plist-get talk :video-file))) ;; recorded intro and live talk; play the intro and join BBB
          (message "should automatically play intro; join %s" (plist-get talk :bbb-backstage))
          (list "intro" (plist-get talk :slug)))
         ((and
           (null (plist-get talk :recorded-intro))
           (plist-get talk :video-file)) ;; live intro and recorded talk, show slide and use Mumble; manually play talk
          (message "should show intro slide; play %s afterwards" (plist-get talk :slug))
          (list "intro" (plist-get talk :slug)))
         ((and
           (null (plist-get talk :recorded-intro))
           (null (plist-get talk :video-file))) ;; live intro and live talk, join the BBB
          (message "join %s for live intro and talk" (plist-get talk :bbb-backstage))
          (list "bbb" (plist-get talk :slug)))))))))

and this function handled IRC announcements when the talk state changed:

emacsconf-erc-announce-on-change
(defun emacsconf-erc-announce-on-change (talk)
  "Announce talk."
  (let ((func
         (pcase org-state
           ("PLAYING" #'erc-cmd-NOWPLAYING)
           ("CLOSED_Q" #'erc-cmd-NOWCLOSEDQ)
           ("OPEN_Q" #'erc-cmd-NOWOPENQ)
           ("UNSTREAMED_Q" #'erc-cmd-NOWUNSTREAMEDQ)
           ("TO_ARCHIVE" #'erc-cmd-NOWDONE))))
    (when func
      (funcall func talk))))

The actual announcements were handled by something like this:

erc-cmd-NOWCLOSEDQ
(defun erc-cmd-NOWCLOSEDQ (talk)
  "Announce TALK has started Q&A, but the host has not yet opened it up."
  (interactive (list (emacsconf-complete-talk-info)))
  (when (stringp talk) (setq talk (or (emacsconf-find-talk-info talk) (error "Could not find talk %s" talk))))
  (if (emacsconf-erc-recently-announced (format "-- Q&A beginning for \"%s\"" (plist-get talk :slug)))
      (message "Recently announced, skipping")
    (emacsconf-erc-with-channels (list (concat "#" (plist-get talk :channel)))
      (erc-send-message (format "-- Q&A beginning for \"%s\" (%s) Watch: %s Add notes/questions: %s"
                                (plist-get talk :title)
                                (plist-get talk :qa-info)
                                (plist-get talk :watch-url)
                                (plist-get talk :pad-url))))  
    (emacsconf-erc-with-channels (list emacsconf-erc-hallway emacsconf-erc-org)
      (erc-send-message (format "-- Q&A beginning for \"%s\" in the %s track (%s) Watch: %s Add notes/questions: %s . Chat: #%s"
                                (plist-get talk :title)
                                (plist-get talk :track)
                                (plist-get talk :qa-info)
                                (plist-get talk :watch-url)
                                (plist-get talk :pad-url)
                                (plist-get talk :channel))))))

All that code meant that during the actual conference, my role was mostly just worrying, and occasionally starting up the Q&A (if I wasn't sure if the code would do it right). The shell scripts I wrote made it easy for the other organizers to take over the second part as they saw how it worked.

Yay timers, Emacs, and TRAMP!

You can find the latest versions of these functions in the emacsconf-el repository.

02 Jan 18:17

Prof. Michael Hudson: Super Imperialism, from the World Bank to Ukraine

by Maria
Tom Roche

VERY EXCELLENT short (~27-min audio, minus intro and outro) explainer on how the US-based, US-dollar-based (aka USD), and finance-based global capitalist empire (/GCE/, aka [Super Imperialism](https://michael-hudson.com/books/super-imperialism-the-economic-strategy-of-american-empire/)) works, with a bit (towards end) on GCE dynamics, esp

- [1971 USD withdrawal from the Bretton Woods "gold window"](https://en.wikipedia.org/wiki/London_Gold_Pool#Gold_window)
- how the US is now creating multipolarity by overuse of sanctions, esp the "shock-and-awe" sanctions that were intended to win NATO's proxy war with Russia in Ukraine. (Unfortunately, these latter sanctions packages have not only failed, but have backfired.)

The audio was excerpted by [TUC Radio](https://tucradio.org/podcasts/newest-podcasts/prof-michael-hudson-super-imperialism-from-the-world-bank-to-ukraine/) from [this Michael Hudson video](https://www.youtube.com/watch?v=K9nbj4X556A)) given to YouTube channel=[India & Global Left](https://www.youtube.com/c/IndiaGlobalLeft). Topics covered include (in ~order of presentation)

1. how US deepstate uses World Bank
- against GCE vassals' food self-sufficiency
- to fund infrastructure for US multinationals operating within those vassals' territory (i.e., socializing GCE costs onto US taxpayers)
2. how GCE absorbed UK empire
3. how GCE vassals finance their US military overlords:
- trade deficit has been and continues to be military-driven, but ...
- by holding USD reserves and US-based bonds (esp [T-bills](https://en.wikipedia.org/wiki/United_States_Treasury_security#Treasury_bill), GCE vassals fund the US global military-base "archipelago" that in turn enforces GCE's "rules-based international order"
4. how, by taking the USD off the "gold standard," the 1971 "Nixon Shock" enabled this ["exorbitant privilege"](https://en.wikipedia.org/wiki/Exorbitant_privilege)
5. devolution of Ukraine from Maidan coup to NATOstan to battleground for NATO proxy war on Russia
6. how Russia et al (esp PRC) are dismantling USD supremacy ("dedollarization") and GCE unipolarity by increasing global economic multipolarity

Here are excerpts from a conversation on the new podcast site: India & Global Left. The well prepared host, Jyotishman Mudiar wants to know: “Why the US has a unique place in the history of imperialism?” And Michael Hudson describes how much power can be projected by control of the instruments of finance. Michael Hudson is Distinguished Research Professor of Economics at the University of Missouri, Kansas City – But unlike most academics he has also practiced banking as a balance of payments economist in Chase Manhattan Bank from 1964 to 1968. Michael Hudson acts as an economic advisor on finance and tax law to governments worldwide including China, Iceland and Latvia. Michael Hudson is the author of many books, among them: Super Imperialism: [ . . . ]

Read More

02 Jan 03:21

Episode 238 - Whose War is it Anyway? (w/ Stephen Semler)

Tom Roche

mostly excellent, mostly about how elected US "progressives" increasingly betray their principles and constituencies

Subscribe to Bad Faith on Patreon to instantly unlock our full premium episode library: http://patreon.com/badfaithpodcast

Briahna speaks to Security Policy Reform Institute co-founder Stephen Semler, about his thorough and viral analysis of the 2023 Omnibus bill. No. one is breaking down military spending like Stephen. We discuss how the bill undermines Biden's climate "victories," increased spending on the Ukraine/Russia conflict, the complacency of elected progressives, and whether the American dream exists outside of the military.

Subscribe to Bad Faith on YouTube for video of this episode. Find Bad Faith on Twitter (@badfaithpod) and Instagram (@badfaithpod).

Produced by Armand Aviram.

Theme by Nick Thorburn (@nickfromislands).

02 Jan 00:28

INSIDE THE STORY: Banks’ Get-Out-Of-Jail-Free Card

by The Lever
Tom Roche

VERY EXCELLENT, quite short

This mini-episode is part of our Inside The Story series, where we highlight some of The Lever’s original reporting and speak with the journalists who wrote the story. Frank Cappello speaks with Rebecca Burns who details their new story published by The Lever:


Amid a financial crime spree and spate of corporate convictions, federal regulators recently floated a proposed fix: strengthening an existing rule designed to bar criminal banks from managing — and profiting off — trillions of dollars of retirement funds.


To read the full story, click here.


If you enjoyed this story and want to support independent journalism, you can go to LeverNews.com to subscribe to our free newsletter or become a paid supporter. 

02 Jan 00:28

INSIDE THE STORY: BlackRock’s Stealth Anti-Climate Agenda

by The Lever
Tom Roche

VERY EXCELLENT, quite short

This mini-episode is part of our Inside The Story series, where we highlight some of The Lever’s original reporting and speak with the journalists who wrote the story. Frank Cappello speaks with Rebecca Burns who details her new story published by The Lever:

BlackRock, the world’s largest investment company, has become a top target of the right’s crusade against so-called “woke capitalism” because of its rhetoric around climate change and sustainable investing. But when it comes to climate action, the giant asset manager isn’t presently all that far apart from its GOP detractors. Both BlackRock and congressional Republicans are fighting — albeit through different strategies — to defang a forthcoming regulation that would force companies to disclose their carbon emissions and the risks that climate change pose to their business models.


To read the full story, click here.


If you enjoyed this story and want to support independent journalism, you can go to LeverNews.com to subscribe to our free newsletter or become a paid supporter. 

02 Jan 00:25

Imran Khan: Pakistan should be non-aligned in cold war, neutral over Ukraine, applauds China

Tom Roche

EXCELLENT, part 2 of 2 on 28 Dec 2022 Imran Khan interview, in which IK

- admires PRC progress in poverty reduction (over period from 1949, during which Pakistan made almost zero such progress)
- admires India's nonalignment, both during the 1945-1990 Cold War and now
- expresses neutrality in the US-NATO proxy war on Russia, while supporting moves to increase trade with Russia (esp Pakistan-Russia gas pipeline, stopped by new Sharif coup regime)
- opposes the US GWOT ("global war on terror") esp in Afghanistan

Ex Prime Minister Imran Khan argued Pakistan should have been non-aligned in the first cold war and in the new one between the US and China/Russia, as well as independent in the Ukraine proxy conflict. He also praised Beijing's historic poverty reduction program. VIDEO: https://youtube.com/watch?v=NjuKZIBvgO4 Sources and more information here: https://multipolarista.com/2022/12/31/imran-khan-pakistan-non-aligned-neutral-ukraine Pakistan’s Imran Khan compares his ouster to CIA coup in Iran, criticizes Western colonialism: https://multipolarista.com/2022/12/30/pakistan-imran-khan-cia-coup-iran
02 Jan 00:12

Pakistan’s Imran Khan compares his ouster to CIA coup in Iran, criticizes Western colonialism

Tom Roche

EXCELLENT, part 1 of 2 on 28 Dec 2022 Imran Khan interview, in which IK

- expresses solidarity with Iran and against US-NATO sanctions
- compares the Apr 2022 anti-IK coup with the 1953 CIA-MI6 coup overthrowing Mosaddegh_
- is pro-Palestine and anti-Israel
- notes the importance of economic and political sovereignty, deprecating colonialism, IMF and foreign-aid-implemented colonialism, and subservience to the 5Eyes-NATO new world order

Pakistan’s ex Prime Minister Imran Khan compared the US-backed coup against him in April 2022 to the CIA plot that overthrew Iran’s elected PM Mohammad Mossadegh in 1953. He praised Tehran’s sovereignty, criticized Western colonialism, and reaffirmed support for Palestine. VIDEO: https://youtube.com/watch?v=AeRL-POPV94 Sources and more information here: https://multipolarista.com/2022/12/30/pakistan-imran-khan-cia-coup-iran Analysis of the coup in Pakistan by scholar Junaid Ahmad: https://multipolarista.com/2022/11/08/assassination-imran-khan-pakistan-us-coup