Sign in

James

@types4life.bsky.social
110 followers 222 following 15 posts

he/him. Lover of type theory and functional programming. Also, comedy and politics. Not super optimistic.

PostsRepliesMedia
Reposted by James
Haskell programming language @haskell.org · 02/07/2026
Hyperbole 0.7 has been released! The HTMX-inspired framework for interactive web applications now supports multipart file uploads. discourse.haskell.org/t/ann-hyperb... #Haskell
discourse.haskell.org
[ANN] Hyperbole 0.7 - Multipart form file uploads, immediate triggers
hyperbole.live github hackage There were many changes and improvements, but the biggest new feature is Multipart Form file uploads. It works with the default settings using a secure configuration, bu...
0103
Reposted by James
Max Kennerly @maxkennerly.bsky.social · 01/07/2026
By itself, this is both impeachable and cause for radical reform. The GOP Supreme Court does not even bother to explain the majority of its decisions. It's apparently too much to ask they at least barf up dishonest, unprincipled, poorly-reasoned excuses for their arbitrary exercise of power.
For the First Time in Two Decades, Decisions on the Supreme Court’s Shadow Docket Outnumber the Merits Docket
181217440
Reposted by James
Adam Steinbaugh @adamsteinbaugh.bsky.social · 28/06/2026
After federal agents shot Alex Pretti in Minneapolis, a New Yorker sent ICE's director an email in January comparing him to a Nazi. This week, DHS agents stalked him across New York. His home. A hotel. They gave his wife a letter warning of criminal prosecution. www.syracuse.com/news/2026/06...
Two DHS agents on a doorbell camera.“You are a monstrous human being and will go down in history as America’s Reinhard Heydrich, the butcher.

“The way you are protecting the obvious execution in Minnesota, even as we see the videos, will lead to your downfall. Even Trump will turn on you before the end, and you will be a sad, despised man who eats himself alive with shame at your own pathetic weakness.

“You will never know peace. You will seek to lose yourself, to escape the burden of knowing the truth about yourself. But wherever you go, you will find yourself. You will torment yourself until your last day on Earth.”
21057882592
Reposted by James
Marisa Kabas @marisakabas.bsky.social · 25/06/2026
and this isn't just some random evil racist congressman. he's the majority whip, the third most powerful member of the house! this *is* the party.
27064061872
Reposted by James
Impure Pics @impurepics.bsky.social · 22/06/2026
@lexi-lambda.bsky.social talks Racket, nonogram/picross puzzles, puzzle solvers, a functional picture combinator library on top of OpenGL, and programming for fun. Enjoy. youtu.be/LwpnwQGNC9Q
youtu.be
Having fun with Racket Nonograms (w/ Alexis King)
YouTube video by Impure Pics
0124
Reposted by James
Chad Loder @chadloder.dev · 22/06/2026
A security firm published a working exploit on June 18 that permanently breaks the security foundation of a large range of previous gen Apple iPhones, iPads, and Watches. It cannot be fixed with a software update, ever. The code is publicly available. Here’s what I surmise so far about the risk.
ps.tc
Paradigm Shift - Introducing usbliter8
This write-up details a novel iPhone BootROM vulnerability discovered and exploited by our team. It covers the underlying bug, the associated exploitation techniques, and the post-exploitation steps r...
16694330
Reposted by James
Gabriel Volpe @gvolpe.com · 21/06/2026
Museum of Meaningless Metrics
414032
Reposted by James
☀️🌸idspispopd🥀🌙 @bhaalspawn.bsky.social · 20/06/2026
Blu Ray (2006) is now as old as SCSI (1986) was when Blu Ray came out.
Blu Ray SCSI
49853247
Reposted by James
Koffie Kobold - Gnollsome Adventures! @bemusedbehemoth.bsky.social · 21/06/2026
No matter how smart you think you are, you’re only one really exhausted bad day away from clicking a bad link. Anyone who thinks they’re too smart to have this happen to them is just proving how little critical thinking they possess.
11506207
Reposted by James
scala-js.org @scala-js.org · 20/06/2026
#Scala.js 1.22.0 is out! This release adds support for sbt 2.x, and officializes the support for WebAssembly as stable. It also comes with performance improvements and bug fixes. www.scala-js.org/news/2026/06...
scala-js.org
Announcing Scala.js 1.22.0
Harness the Scala and JavaScript ecosystems to develop robust apps for browsers, serverless, and Node.js.
097
Reposted by James
Mardoch @mardoch.bsky.social · 20/06/2026
"you need two paying accounts for local multiplayer" is a degree of rent seeking behavior I'm still somehow shocked by Fucking ludicrous
1104
Reposted by James
∃ugene -Yokota 🥙 @eed3si9n.com · 15/06/2026
🛠️ sbt 2.0.0 is released! sbt 2.0 is a new major series of sbt, based on Scala 3 constructs and Bazel-compatible cache system. many thanks to Scala Center, Anatolii Kmetiuk (new maintainer), Adrien Piquerez (alumni), and other volunteers like Kenji Yoshida eed3si9n.com/sbt-2.0.0 #Scala
a screenshot of sbt session demonstrating sbt run called twice. the first run shows the startup sequence of the sbt server and shows "hello" on screen.

the second run, invoked via "sbt run" shows "hello" again, but in 0s.
22613
Reposted by James
Dan Nguyen @dancow.bsky.social · 14/06/2026
randomly thought about and re-read this story about Charles Barkley and a guy from Iowa, an all timer of a heartwarmer www.wbur.org/onlyagame/20...
wbur.org
My Dad's Friendship With Charles Barkley
Shirley Wang's father, Lin, was on a business trip when he ran into NBA Hall of Famer Charles Barkley. It was the beginning of a friendship.
410723
Reposted by James
Amyville Hoyrror @amyhoy.bsky.social · 12/06/2026
i know writers who use subtext, and they're all cowards
846194
Reposted by James
Arin Dube @arindube.bsky.social · 17/05/2026
Here is a figure showing the various OECD countries minimum wages as a ratio of median. Average around 60%. But many at or above 2/3. Then there is an outlier, the US.
02620
Reposted by James
Matej Cerny @matejcerny.bsky.social · 20/04/2026
It is heavily inspired by Jamie Thompson's presentation last year about named tuples and it is built directly on the new named tuples feature introduced in Scala 3.7. I will get back to it again after I try it by myself, but the compile-time safety looks amazing. 👏 github.com/Netflix/wick
github.com
GitHub - Netflix/wick: A zero cost type safe Apache Spark API
A zero cost type safe Apache Spark API. Contribute to Netflix/wick development by creating an account on GitHub.
011
Reposted by James
Salar Rahmanian @salarrahmanian.bsky.social · 15/04/2026
Skunk 1.0.0 is out! 🎉 A huge milestone for the @typelevel.org ecosystem — pure functional PostgreSQL library for Scala. Massive congrats to @armanbil.ge @mpilquist.bsky.social and the whole @typelevel.org crew. 🍾 github.com/typelevel/sk... #Scala #PostgreSQL #FunctionalProgramming
github.com
Release v1.0.0 · typelevel/skunk
Finally! Nearly three years since the 0.6 release, Skunk 1.0.0 is final! This release supports Scala 2.13 & 3 for the JVM, JS, and Native 0.5. There's quite a bit of functionality in this release i...
071
Reposted by James
onion person @junlper.beer · 13/04/2026
my sign saying we operate under US law has a lot of people asking a lot of questions already answered by the sign
142031193
Reposted by James
404 Media @404media.co · 09/04/2026
NEW: The FBI was able to forensically extract copies of incoming Signal messages from a defendant’s iPhone, even after the app was deleted, because copies of the content were saved in the device’s push notification database, multiple people present for FBI testimony in a trial told 404 Media.
404media.co
FBI Extracts Suspect’s Deleted Signal Messages Saved in iPhone Notification Database
The case was the first time authorities charged people for alleged “Antifa” activities after President Trump designated the umbrella term a terrorist organization.
15697361
Reposted by James
Woltergeist 2: The Other Side-Eye @wolter.bsky.social · 01/04/2026
Oh so now copyright matters.
559752023
Reposted by James
GrapheneOS @grapheneos.org · 02/03/2026
We're happy to announce a long-term partnership with Motorola. We're collaborating on future devices meeting our privacy and security standards with official GrapheneOS support. motorolanews.com/motorola-thr...
motorolanews.com
Motorola News | Motorola's new partnership with GrapheneOS
Motorola announces three new B2B solutions at MWC 2026, including GrapheneOS partnership, Moto Analytics and more.
711040239
Reposted by James
Michael Chavinda @mschav.bsky.social · 29/03/2026
I took a crack at category theory + dataframes. I find the difficulty with reading and writing about this kind of stuff is that it's really hard to communicate what the "point" is. Hopefully it all makes sense: mchav.github.io/what-categor...
mchav.github.io
What Category Theory Teaches Us About DataFrames
Every dataframe library ships with hundreds of operations. pandas alone has over 200 methods on a DataFrame. Is pivot different from melt? Is apply different from map? What about transform, agg, apply...
1144
Reposted by James
Radley Balko @radleybalko.bsky.social · 22/03/2026
Trump: I’m going to put ICE in the airports, where they will target and arrest all the illegals, especially Somalis, because I hate the Democrats Headlines: Trump puts ICE officers in airports to ease long lines, provide relief for weary travelers
234104233453
Reposted by James
ProPublica @propublica.org · 21/03/2026
THREAD: Cherise Doyley was in her 12th hour of contractions at the hospital when a tablet was brought to her bedside. On the screen was a Zoom call with a judge and several lawyers and doctors. She was in court, a nurse told her. The reason? For failing to agree to a C-section.
52863963392
Reposted by James
Steve Reeves @stevereeves.bsky.social · 09/03/2026
A great man...a sad time en.wikipedia.org/wiki/Tony_Ho...
en.wikipedia.org
Tony Hoare - Wikipedia
024
Reposted by James
Sam Levin @samtlevin.bsky.social · 06/03/2026
NEW: ICE tackled + arrested Juanita Avila, an Oregon shop owner who is a legal permanent resident and had her green card in her pocket. When she asked through sobs why they didn't believe her, one masked agent replied: “Because they lie all the time.” Video + interview with her and her daughter:
theguardian.com
ICE arrested an Oregon shop owner who had her green card in her pocket: ‘They didn’t care’
Juanita Avila later helped expose ICE’s ‘arrest first, justify later’ tactics in a lawsuit that won a major victory for immigrants’ rights
281324701
Reposted by James
Phil Lewis @phillewis.bsky.social · 03/03/2026
Bruce Campbell announces he has a type of cancer that's "treatable" not "curable"
Hi folks, these days, when someone is having a health issue, it's referred to as an "opportunity," so let's go with that – I'm having one of those. It's also called a type of cancer that's “treatable” not "curable." I apologize if that's a shock – it was to
me too.
The good news is, I'm not gonna go into any more detail. I'm posting this, because professionally, a few things will have to change - appearances and cons and work in general need to take back seat to treatment.
My plan is to get as well as I possibly can over the summer so that I can tour with my new movie Ernie & Emma this fall.
There are several cons this year summer that I have to cancel. Big regrets on my part. Treatment needs and professional obligations don't always go hand-in-hand.
That's about it. I'm not trying enlist sympathy-or advice-Ijust want to get ahead of this information in case false information gets out (which it will).
Fear not, I am a tough old son-of-a-bitch and I have great support, so I expect to be around a while.
As always, you're the greatest fans in the world and I hope to see you soon!
Much love,
Bruce Campbell
753032714
Reposted by James
slate @pleasebegneiss.bsky.social · 03/03/2026
me: what if instead i walk out that door and leave all this bullshit behind computer: i just need a new password man
120719
Reposted by James
Max Kennerly @maxkennerly.bsky.social · 01/03/2026
If America still had the rule of law, this would be the easiest prosecution ever, but we all know absolutely nothing will happen.
Six accounts on Polymarket made around $1 million in profit by betting on the US to strike Iran by Feb. 28, according to analytics firm Bubblemaps SA. The accounts were all freshly created in February and had only ever placed bets on when US strikes might occur. Some of their shares were purchased, in some cases at roughly a dime apiece, hours before the first explosions were reported in Tehran.
18887682889
Reposted by James
Aditya Mukerjee 🦦 🏳️‍🌈 @chimeracoder.bsky.social · 27/02/2026
Jack Dorsey renamed the company to Block because he thought blockchains would be the future, in case you were wondering what his track record of predicting long-term tech trends is
372559571
Reposted by James
Robert "The Bobby Yaga" McNees @mcnees.bsky.social · 26/02/2026
There's a "is anyone even reading this" sort of honesty you get in the software update release notes from a project that's been around for a long time.
The screenshot of the release notes reads:

A new version of TeX Live Utility is available!
TeX Live Utility 1.55 is now available-you have 1.54. Would you like to download it now?
Release Notes:
Changes Since 1.54
• Fix bug 137, homepage link in Help Book.
• First release in a long time, since I don't use TeX anymore and resent the very idea of paying Apple annually for the privilege of giving away free and open-source software. Also, I'm really lazy. Please accept my apologies for all the annoying issues you've encountered in this mission-critical software.
• Updated mirror list, which was three years out of date.
• Added missing legacy mirrors, which was even more out of date.
• Added an alert on startup when user tries Homebrew's lobotomized MacTex, because those lunatics left timgr but removed its database.
Thanks for nothing, guys. Bug 142 and 144.
• Use a custom user-agent to work around the Anubis bot trap on texlive.info. Can't wait to see what else breaks because of this, thanks to the profusion of degenerate Artificial Insemination fetishists scraping websites to feed their models.
• Lists of countries in Repository/Continent are now sorted. No idea how you people let me get away with that one for the last fifteen years.
181335327
Reposted by James
Julia @insertdomain.name · 26/02/2026
And they call it "reproducible", despite the fact that NixOS users will never reprodu-
510816
Reposted by James
Marisa Kabas @marisakabas.bsky.social · 26/02/2026
Fuck this and everyone who helped get things to this point. Trans rights are human rights—full stop.
7039251065
Reposted by James
brent @murrman5.bsky.social · 24/02/2026
[whispering to paramedic before I pass out] save me but not enough that I have to go to work tomorrow
133211556
Reposted by James
Lyna @blooym.dev · 24/02/2026
hey @manjaro.org just wanna say that certbot.eff.org is actually free to use - also, fun fact, most reverse proxies actually do something called “automatic cert renewal” just incase yall didn’t know 💚
certbot.eff.org
Certbot
Get your site on https://
4365
Reposted by James
Garrett M. Graff @vermontgmg.bsky.social · 22/02/2026
And yet it’s even more dumb: Both hospital ships are in dry-dock in Alabama, so they won’t be arriving anytime soon. This is a weird distraction from the Danes medically evacuating a sick US sailor from a US Navy nuclear sub yesterday 9 miles from Nuuk. What was a sub doing nine miles from Nuuk?
1372482946
Reposted by James
Ida Bae Wells @nhannahjones.bsky.social · 22/02/2026
I want us to understand this in the context of these same people killed affirmative action using Chinese-American plaintiffs because they said helping Black people was discriminatory against Asian Americans and anti-merit. Once again: it was never about that. www.theguardian.com/us-news/2026...
theguardian.com
Amid Trump crackdown on Chinese students, one US university appears to block them altogether
Purdue says no ban on Chinese students exists, but reportedly rescinded dozens of offers after warnings from legislators
261735570
Reposted by James
evacide @evacide.bsky.social · 21/02/2026
Hacktivists tried to find a workaround to Discord’s age-verification software, Persona. Instead, they found its frontend exposed to the open internet, and that was just the beginning. www.therage.co/persona-age-...
therage.co
Hackers Expose Age-Verification Software Powering Surveillance Web
Three hacktivists tried to find a workaround to Discord’s age-verification software. Instead, they found its frontend exposed to the open internet.
251209596
Reposted by James
Greg Greene (he/him/his) @greene.haus · 17/02/2026
They raided the jailed children to steal their letters. The problem, in federal officials' minds, wasn't confining children in prison-camp conditions; it was that the children could tell the public about it.
4439781987
Reposted by James
Ken Jennings @kenjennings.bsky.social · 16/02/2026
A prominent Bluesky elder already hosts Jeopardy
192205011483
Reposted by James
Abu Aardvark @abuaardvark.bsky.social · 15/02/2026
The RFK number seems like a massive failure of the media to explain what RFK is doing to our public health system and how catastrophic it will be
552157450
Reposted by James
Quantian @quantian.bsky.social · 04/02/2026
Crazy story: A bank analyst published a report showing Kalshi users lose money even faster than sports gamblers, so Kalshi first tried to pressure the data provider to change their data and then accused them and the analyst of conspiring to extort them when that doesn’t work.
302038539
Reposted by James
Ross A. Baker @rossabaker.com · 30/12/2025
Chapter 2 of my Scala Developer's notes on the Rust Book: rossabaker.com/blog/rust-book-progr… #Rust #Scala
rossabaker.com
Rust Book, Chapter 2: Programming a Guessing Game
Chapter Two introduces a wide range of Rust constructs to build something a little more substantial than Hello, World. In this post, we’ll try to map Rust’s approach to mutability, error handling, and side effects to `val=/=var`, `Either`, and `IO`. None of these mappings is perfect, because the two languages diverge in more than syntax, but much remains familiar. ## New projects # `cargo new` is much like `sbt new`, but lacks the templating power of giter8. It isn’t as necessary in Rust, because we’re not trying to embed our domain name in a package statement or directory structure, but expect to add your own project metadata, like `authors` and `license`. ## `let` and `let mut` # Scala has two orthogonal notions of mutability: * Reference: A `var` can be reassigned to a different reference, whereas a `val` can’t. * Data: An `Array` is mutable, and a `List` is immutable. | Immutable reference | Mutable reference ---|---|--- Immutable data | `val x = List(1, 2)` | `var y = List(1, 2)` Mutable data | `val z = Array(1, 2)` | `var w = Array(1, 2)` In Typelevel Scala, we aspire to the top left quadrant, avoid the bottom right. Sometimes we put one degree of mutability in `IO`, but carefully wash our hands before returning to work. In Rust, both kinds of mutability are determined by the `mut` keyword. | Immutable reference | Mutable reference ---|---|--- Immutable data | `let x = vec![1, 2]` | Mutable data | | `let mut w = vec![1, 2]` Instead of separate mutable and immutable collections, the individual operations may take either an immutable or mutable reference to the collection. This lets us mutate the vector referenced by `w` (e.g., `w[0] = 3`) or reassign `w` to a new `Vec` (e.g., `w = vec![3, 4]`). Both of these are disallowed on `x`. ## Associated functions # Rust’s associated functions, like `String::new()`, serve a similar purpose to Scala’s companion objects. ## `Result` # A Rust `Result` is either `Ok` or `Err`. Either? Yeah, like Scala’s `Either`! Scala calls them `Left` and `Right`, and it’s only by convention (and the convenience of `map` and friends) that the okay type goes on the right and the error type goes on the left. Rust gives us better names, which is a good thing, because it flips the order of the parameters from what Scala developers are used to. Early versions of Cats had `Xor`. Not only was my shitpost that we should call them `Sinister` and `Dexter` denied, but the type was removed altogether. Rust’s judgmental names sound more like Scala’s `Success` and `Failure` from `Try`. But only a `Throwable` can go in `Failure`, whereas Rust allows anything in `Err`, just like `Left`. ## Footguns # Like Scala, Rust promises us safety and mostly delivers, but gives us a few functions to point at our feet and shoot off our toes. Rust’s `result.expect(s)` is similar to Scala’s `option.get`, but worse: Scala throws an exception that might be recovered, whereas Rust panics before a dramatic, error-coded exit. Like Scala, linters can help. Like Scala, such methods are often less verbose if you think you’re smarter than the type system. Like Scala, you’re usually not. ## Lockfiles # We won’t go deep into crates vs. jars now, except to emphasize that a `Cargo.toml` file can resolve to different versions of dependencies over time. If you don’t check in your `Cargo.lock` today, you may be saying “worked on my machine” to a frustrated colleague in the future. ## We aren’t in FP anymore, Alice # This chapter is printing to the console, reading from the console, generating random numbers, and nary an `IO` in sight. This is not different from standard Scala, but is jarring coming from Typelevel Scala. We find a lot in Rust that’s familiar: its enums are like Scala’s sealed traits. We already discussed `Result` and `Either`. Its pattern matching brings a new syntax but most of the same benefits and safety. But to be successful in this journey, we need to accept that mutability is more acceptable, and that we’ll rely on different safety nets like the borrow checker to keep us safe. You’ll miss some things and appreciate other things and that’s okay because they’re different languages, even if a lot of us enjoy both. ## Shadowing # In Scala, it’s frowned on to shadow an existing variable in a tighter scope, and forbidden in the same scope. It’s socially acceptable in Rust. CC-BY-SA-4.0 let mut guess = String::new(); io::stdin() .read_line(&mut guess) .expect("Failed to read line"); let guess: u32 = guess.trim().parse().expect("Please type a number!"); This can get confusing in a large function. In a small function, it ties together the transformation from an unwanted, mutable `String` to the desired, immutable `Int` without any namespace pollution. Use with care.
011
Reposted by James
Chef Kennedy🐸🏳️‍🌈 @kennedy.northsky.social · 29/12/2025
Robber: "Give me the most valuable thing you own!" Me: "Oh wow ok. I have here a mint copy of the Battlestar Galatica board game in shrink with all the expansions. You'll have to find the right buyer but-" Robber: "WTF? Give me all your money!" Me: "Oh man I am like, so broke until payday. lol"
2466289
James @types4life.bsky.social · 28/12/2025
Maybe if I were assimilated by the Borg, they could cure my ADHD. I think I'm ready.
000
Reposted by James
Boo!-per Lund @cooperlund.online · 28/12/2025
In the next four years you’ll see a lot of New York Post articles about City Hall that don’t make sense when you read them as an outsider because they’re just permission to hit the anger button in the reader’s brain. This is about seeing someone non-binary in power and getting permission to be mad.
61090128
Reposted by James
Rodger Sherman @rodger.bsky.social · 27/12/2025
Happy Pop-Tarts Bowl Day to all who celebrate
My tweet from 2023:

I asked if it was offensive to eat a Pop-Tart in front of the @PopTartsBowl mascot and then its handler yelled out "ITS THEIR DREAM" and then the mascot grabbed a Pop-Tart out of my hand and started force-feeding it to me while making soft grunting noises.


Picture of me being fed a pop tart by a Pop tart
8176101380