Skip to content

Commit 6fbfc63

Browse files
authored
add AI article + some cosmetic touchups (#57)
* update post * remove unused dayjs * add posts component * allow passing an adhoc style to the prose component * add pic * extract posts component from home page, remove dayjs stuff * extract posts component, remove dayjs stuff * simplify date handling * replace fite page image * fix image * fix link in resources * update url
1 parent 636d70a commit 6fbfc63

File tree

12 files changed

+1519
-1907
lines changed

12 files changed

+1519
-1907
lines changed

package-lock.json

Lines changed: 1429 additions & 1822 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
},
4949
"dependencies": {
5050
"chart.js": "^4.5.0",
51-
"dayjs": "^1.11.13",
5251
"flexsearch": "^0.8.212",
5352
"gray-matter": "^4.0.3",
5453
"rehype-external-links": "^3.0.0"

src/lib/components/Posts.svelte

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<script lang="ts">
2+
const options: Intl.DateTimeFormatOptions = {
3+
year: "numeric",
4+
month: "long",
5+
day: "numeric"
6+
};
7+
8+
let { data } = $props();
9+
// NOTE on weird date parsing https://stackoverflow.com/a/31732581
10+
</script>
11+
12+
<nav class="mx-auto flex max-w-xl grow p-2">
13+
<ul class="flex grow flex-col gap-8">
14+
{#each data.posts as post}
15+
<li class="flex flex-col gap-1 rounded-md border border-dsa-red3 p-2 shadow-sm">
16+
<a href="/blog/{post.slug}" class="text-3xl underline decoration-dsa-red">{post.title}</a>
17+
<div class="flex flex-row justify-between">
18+
{#if post.title}
19+
<span>{post.author}</span>
20+
{/if}
21+
{#if post.date}
22+
<em>
23+
<time>{new Date(post.date.replace(/-/g, '\/').replace(/T.+/, '')).toLocaleDateString("en-us", options)}</time>
24+
</em>
25+
{/if}
26+
</div>
27+
</li>
28+
{/each}
29+
</ul>
30+
</nav>

src/lib/components/Prose.svelte

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
<script lang="ts">
2+
interface Props {
3+
children: any;
4+
adhocStyle?: string | undefined;
5+
}
26
37
/**Any inner elements (children) will be rendered */
4-
let { children} = $props();
8+
let { children, adhocStyle } : Props = $props();
59
</script>
610

711
<!--
@@ -10,6 +14,6 @@ Use this component to render Markdown from posts.
1014
It often helps to enclose the Prose element in a div with some background opacity.
1115
-->
1216

13-
<div class="prose dark:prose-invert text-lg p-2">
17+
<div class="prose dark:prose-invert text-lg p-2" style={adhocStyle}>
1418
{@render children()}
1519
</div>
989 KB
Loading

src/lib/images/fite-tent.jpg

3.44 MB
Loading
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
title: The socialist imperative to reject AI
3+
date: 2026-01-12
4+
description: The Baton Rouge DSA chapter passed a ban on the use of generative AI for chapter materials. Emerging AI technologies are extractive tools being used to further suppress the working class. Socialists must make a conscientious effort not to use AI.
5+
imageUrl: boot-roach-graphic-transparent.png
6+
imageDescription: graphic of a boot stomping a monacle-wearing roach
7+
author: Alicia C.
8+
hidden: false
9+
source: https://docs.google.com/document/d/1nDuMg0208dtHHZWfjNa6EVWvTwQLNldJIgDyuBEwzpE/edit?tab=t.0
10+
---
11+
12+
"You sold us out!" I yelled at the Louisiana Public Service Commission (LPSC) members who voted yes on U-37425, approving plans to construct new energy infrastructure to meet the needs of one customer in Louisiana. That one customer is Meta, and they needed approval from the LPSC to expand energy infrastructure in Louisiana to build an AI data center in Richland Parish. More precisely, Entergy, the electric utility with a chokehold on the state, needed approval because they wanted to construct new natural gas-powered plants necessary to meet the power requirements of the data center – a facility expected to be larger than the island of Manhattan.
13+
14+
Data centers are where generative AI models do their training and processing. They house the many graphics processing units (GPUs) required to train the model to handle queries generated by users. Each time a query is made, it must go through all its parameters to output an answer. The more parameters a model has, the better answer the model outputs. GPUs are needed to quickly process an increasing number of parameters. However, more GPUs also require more energy to power the computing system and more water to cool the computing system.
15+
16+
Louisianians have long been told their home state is sacrificable, and they are also sacrificeable along with it. Entergy and Meta wanted to get to work sacrificing another parcel of Louisiana and its inhabitants because the potential profits could not be put on hold for another second. Overall, Meta’s investments in AI could increase the market capacity of the already multibillion dollar company to over a trillion dollars. They moved a meeting previously scheduled for October to August. Most members of the LPSC seemed set on their vote before the public could give testimony. Baton Rouge DSA member Davante Lewis, Public Service Commissioner for District 3 and the lone nay vote, wanted to push back the vote to consider renewable energy sources to power the data center. However, renewable energy infrastructure would have kept another multibillion dollar company, Entergy, from profiting off of burning more fossil fuels. If Louisiana missed an opportunity to increase the concentration of carbon dioxide in the atmosphere, Phillip May (Entergy’s President and CEO) might not be able to further line his pockets with the wages of the Louisiana working class.
17+
18+
The proposal for U-37425 approved at the August meeting of the LPSC was not supposed to be heard until November. However, that timeline would have allowed the public who opposed the construction of an AI data center to organize around the growing negative sentiment toward generative AI and the data centers that come with them. I was not alone in my anger as I walked out of the meeting alongside others who made time to go to the August LPSC meeting at 10am on a workday. Across the United States, the construction of massive AI data centers have been noticed and the people have begun fighting back against them. Some of these communities have won their fight! People are worried about rising energy costs, water usage, and the increased use of fossil fuels that come with the data centers required by AI.
19+
20+
There are other considerations too. What will be the fallout of people becoming more dependent on the use of AI? Will [people lose their jobs](https://www.wsj.com/tech/ai/ai-job-losses-are-coming-tech-execs-say-the-question-whos-most-at-risk-984331d4?msockid=36bb3a413e5866952c2f2c773fd66712) as AI becomes more dominant? How can AI be used by the [health insurance industry](https://lailluminator.com/2025/04/22/louisiana-will-turn-to-ai-to-detect-medicaid-fraud-health-officials-say/) that already disregards medical expertise from doctors when making decisions about people’s healthcare? How can AI technology be used by governments to [monitor ideas and topics discussed in higher education classrooms](https://www.insidehighered.com/news/governance/state-oversight/2025/08/11/texas-lawmakers-create-overseer-make-colleges-follow)?
21+
22+
As socialists, we should reject AI. If AI is going to be used to further disempower the working class by taking away job opportunities; used by the already dysfunctional healthcare industry in the United States; and used as a tool to police ideas and topics discussed in college classrooms, then socialists should boycott the use of AI. In the summer of 2025, the national DSA convention voted to ban the use of AI-generated images across the organization. I wanted to take it further in our Baton Rouge chapter. Why use AI for anything produced by our chapter at all? At this point in AI’s lifetime, we have an opportunity to opt out of participating in the metrics that will be used to continually justify investments into the technology, which will increase fossil fuel infrastructure, water use, and labor exploitation. Many other harmful technologies and systems under capitalism have become so embedded in our lives that the rejection of them is a matter of survival.
23+
24+
An example of something harmful that has become nearly impossible to opt out of is the use of oil and gas for transportation. DSA is currently engaged in a boycott of Chevron because of the company’s involvement with the Israeli genocide of Palestinians in Gaza. There are plenty of other reasons for socialists to boycott any oil and gas company. These companies exploit labor and the environment to extract fossil fuels from the Earth, pollute the air and poison people to turn fossil fuels into petrochemicals, all while warming the atmosphere. However, there are so few places in the United States where we have the ability to live and work without a personal vehicle, an [intentional design](https://www.upress.umn.edu/9780816677856/lifeblood/) of post-World War II economics. Being a patron of oil and gas companies is a matter of survival in today’s capitalistic world.
25+
26+
AI technologies are not yet necessary for survival. We have not passed the point of no return, but we may be there soon. The companies that would benefit from everyone’s reliance on AI (Meta, Google, OpenAI, Palantir, etc.) are doing their best to make that our reality. AI is included in everything now. Search engines, apps, and websites all have their own AI bots. Even our hardware, like laptops and tablets, are equipped with built-in AI tools. Commonly used web browsers are now implementing AI tools. It is becoming more and more difficult to opt out of using AI.
27+
28+
I spearheaded [a proposal](https://docs.google.com/document/d/11ePVZlLs9jIe7kuW5rg4zgMC1yAjTP5BgHgpEvvmuuI/edit?tab=t.0), co-written with some of my comrades, that Baton Rouge DSA reject the use of generative AI for chapter materials. It was an opportunity to talk about AI technology as it rapidly grows, and refuse to be a part of the ways in which AI is harmful. I know a better world is possible, but it will not be built without us working together against the capitalist class. Rejecting AI is one of the ways we can do that.
29+
30+
The focus of the proposal to ban AI use was the harm AI could do to the working class. The transactional balance of AI and AI data centers is already inequitable. The multi-billion dollar transnational tech companies financing the AI boom will benefit endlessly by convincing you that you need AI, and raking in the profits. Meanwhile, the working class will suffer. We will have to use our [already stagnant wages](https://www.forbes.com/sites/bryanrobinson/2025/01/24/the-wage-crisis-of-2025-73-of-workers-struggling/) to pay higher electric bills, [effectively subsidizing the extremely wealthy tech industry](https://www.npr.org/2026/01/02/nx-s1-5638587/ai-data-centers-use-a-lot-of-electricity-how-it-could-affect-your-power-bill). Data center projects often come with the promise that it will bring jobs to economically depressed areas. However, the reality is that [proponents of data centers overstate the employment opportunities offered by data centers](https://www.foodandwaterwatch.org/2026/01/07/new-research-debunks-data-center-industry-job-claims/). While the United States is experiencing an increase in [union popularity, it is being met with ruthless anti-unionization efforts](https://www.forbes.com/sites/teresaghilarducci/2025/01/28/union-popularity-hits-70-but-trumps-nlrb-move-threatens-labor/) never before seen since the establishment of the National Labor Review Board. The American C-suite now has the backing of the federal government to clamp down on us when we exercise our right to organize for better pay and better working conditions. It is unlikely that the wealthy elite and the politically powerful will respond positively to us fighting against companies choosing to use AI over paying people a living wage. More data centers could mean more (and higher) medical bills for us because of the [potential (and currently unknown) health risks](https://hbr.org/2025/11/mitigating-the-public-health-impacts-of-ai-data-centers) of destroying more land for data centers, and the fossil fuel infrastructure demanded by them. And we must not forget the role of AI in the expansion of the surveillance state. We are already heavily policed in ways that are being normalized and [deemed legal by our federal government](https://documentedny.com/2025/05/15/musk-doge-immigrant-database-palantir-irs-dhs-ice/). AI technologies are currently [used by ICE as surveillance tools](https://www.wired.com/story/ice-social-media-surveillance-24-7-contract/) to help them kidnap people and tear apart families.
31+
32+
Using AI may save you some time writing your grocery list or [parenting your children](https://www.businessinsider.com/how-moms-use-ai-co-parent-kids-2025-11). However, I fear that many of us will have enough free time when we are out of a job. Emerging AI technologies have been marketed as a way to improve our lives, but they are just another way to subjugate and police the working class.

src/routes/+page.svelte

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
<script lang="ts">
2+
import HeadSummary from "$lib/components/HeadSummary.svelte";
23
import PaletteHeader from "$lib/components/PaletteHeader.svelte";
4+
import Posts from "$lib/components/Posts.svelte";
35
import Prose from "$lib/components/Prose.svelte";
4-
import HeadSummary from "$lib/components/HeadSummary.svelte";
5-
import type { PageProps } from "./$types";
6-
import About from "./about/about.md";
76
import hero from "$lib/images/Header_ABetterWorld_Louisiana.jpeg?enhanced";
87
import foodDistribution from "$lib/images/baton-rouge-dsa-cover-image.jpg?enhanced";
8+
import type { PageProps } from "./$types";
9+
import About from "./about/about.md";
910
const options: Intl.DateTimeFormatOptions = {
1011
year: "numeric",
1112
month: "long",
@@ -80,27 +81,14 @@
8081

8182
<div class="palette-sibling mt-4">
8283
<div class="flex justify-center">
83-
<Prose>
84+
<Prose adhocStyle="width:100%">
8485
<p
8586
class="border-l-4 border-l-dsa-red p-2 dark:border-l-dsa-red1 dark:bg-dsa-black1 dark:text-white"
8687
>
8788
Here are some recent posts from us
8889
</p>
8990
</Prose>
9091
</div>
91-
<nav class="mx-auto flex max-w-[65ch] grow p-2">
92-
<ul class="flex grow flex-col gap-3">
93-
{#each data.posts as post}
94-
<li class="flex flex-col">
95-
<a href="/blog/{post.slug}" class="text-3xl underline decoration-dsa-red"
96-
>{post.title}</a
97-
>
98-
{#if post.date}
99-
<time>{new Date(post.date).toLocaleDateString("en-us", options)}</time>
100-
{/if}
101-
</li>
102-
{/each}
103-
</ul>
104-
</nav>
92+
<Posts {data} />
10593
</div>
10694
</article>

src/routes/blog/+page.svelte

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
<script lang="ts">
2+
import Posts from "../../lib/components/Posts.svelte";
3+
24
import HeadSummary from "$lib/components/HeadSummary.svelte";
35
import PaletteHeader from "$lib/components/PaletteHeader.svelte";
46
import Prose from "$lib/components/Prose.svelte";
5-
import dayjs from "dayjs";
6-
import customParseFormat from "dayjs/plugin/customParseFormat";
7-
import utc from "dayjs/plugin/utc";
8-
import timezone from "dayjs/plugin/timezone";
9-
dayjs.extend(customParseFormat);
10-
dayjs.extend(utc);
11-
dayjs.extend(timezone);
127
138
let { data } = $props();
149
const title = "Statements by BRDSA";
@@ -26,35 +21,9 @@
2621
<p
2722
class="border-l-4 border-l-dsa-red p-2 dark:border-l-dsa-red1 dark:bg-dsa-black1 dark:text-white"
2823
>
29-
This is a list of statements released by our chapter.
24+
This is a list of statements released by members of our chapter.
3025
</p>
3126
</Prose>
3227
</div>
33-
<div class="flex justify-center">
34-
<Prose>
35-
<nav class="flex grow p-2">
36-
<ul class="flex grow flex-col gap-3">
37-
{#each data.posts as post}
38-
<li class="flex flex-col">
39-
<a href="/blog/{post.slug}" class="text-4xl underline decoration-dsa-red"
40-
>{post.title}</a
41-
>
42-
{#if post.date}
43-
<span>
44-
<time
45-
>{dayjs
46-
.tz(post.date, "YYYY-MM-DD", "America/Chicago")
47-
.format("YYYY-MM-DD")}.</time
48-
>
49-
{#if post.author}
50-
{post.author}
51-
{/if}
52-
</span>
53-
{/if}
54-
</li>
55-
{/each}
56-
</ul>
57-
</nav>
58-
</Prose>
59-
</div>
28+
<Posts {data} />
6029
</article>

src/routes/blog/[slug]/+page.svelte

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,16 @@
22
import HeadSummary from "$lib/components/HeadSummary.svelte";
33
import PaletteHeader from "$lib/components/PaletteHeader.svelte";
44
import Prose from "$lib/components/Prose.svelte";
5-
import dayjs from "dayjs";
6-
import customParseFormat from "dayjs/plugin/customParseFormat";
7-
import utc from "dayjs/plugin/utc";
8-
import timezone from "dayjs/plugin/timezone";
9-
10-
dayjs.extend(customParseFormat);
11-
dayjs.extend(utc);
12-
dayjs.extend(timezone);
13-
14-
let { data } = $props();
15-
const { post, hero } = data;
16-
const { title, description } = post;
175
const options: Intl.DateTimeFormatOptions = {
186
year: "numeric",
197
month: "long",
20-
day: "numeric",
21-
timeZone: "America/Denver"
8+
day: "numeric"
229
};
10+
let { data } = $props();
11+
const { post, hero } = data;
12+
const { title, description } = post;
13+
14+
// NOTE on weird date parsing https://stackoverflow.com/a/31732581
2315
</script>
2416

2517
<svelte:head>
@@ -46,7 +38,9 @@
4638
<p class="px-2 text-center">
4739
{post.author} |
4840
{#if post.date}
49-
<time>{dayjs.tz(post.date, "YYYY-MM-DD", "America/Chicago").format("YYYY-MM-DD")}</time>.
41+
<em>
42+
<time>{new Date(post.date.replace(/-/g, '\/').replace(/T.+/, '')).toLocaleDateString("en-us", options)}</time>
43+
</em>
5044
{/if}
5145
</p>
5246
{/if}

0 commit comments

Comments
 (0)