Sign in

Joel Uckelman

@uckelman.bsky.social
291 followers 156 following 374 posts

vassalengine.org Working on V4... | Github: uckelman | Logician | CS PhD | OSS contributor | vim | Wargamer | Short-stack developer | Complete the Five Year Plan in Four Years | Trolley opportunities

PostsRepliesMedia
Joel Uckelman @uckelman.bsky.social · 9h
Vassal 3.7.28 is released: forum.vassalengine.org/t/vassal-3-7...
forum.vassalengine.org
Vassal 3.7.28 Released
VASSAL 3.7.28 Released The Vassal Team is happy to announce the release of Vassal 3.7.28. IMPORTANT Starting with 3.7.25, Vassal requires Java 17 or newer. If you are using one of the MacOS or Windo...
040
Joel Uckelman @uckelman.bsky.social · 30/09/2026
What I love about this is that a senator from Missouri is being corrected by a senator from Minnesota about the name of a college team from Iowa while the chair of the committee---a senator from Iowa---sits there in silence. That is some kind of metaphor for Missouri, Iowa, and Minnesota.
030
Joel Uckelman @uckelman.bsky.social · 21/09/2026
API: 200 OK 👍 Me: But where is the object I made? API: lol what object
000
Reposted by Joel Uckelman
Grant @syncingsinking.bsky.social · 10/09/2026
This is just to say I have solved the open questions that were in your paper and which you were probably saving for your phd students Forgive me they were delicious so incentive-laden and followed so readily once your postdoc's drafts mysteriously found their way into my training data
4356115
Joel Uckelman @uckelman.bsky.social · 08/09/2026
If this is accurate, it's hostile action by OpenAI. Why are you sending your data to third parties again?
011
Joel Uckelman @uckelman.bsky.social · 06/09/2026
Vassal 3.7.27 is released: forum.vassalengine.org/t/vassal-3-7...
forum.vassalengine.org
Vassal 3.7.27 Released
VASSAL 3.7.27 Released The Vassal Team is happy to announce the release of Vassal 3.7.27. IMPORTANT Starting with 3.7.25, Vassal requires Java 17 or newer. If you are using one of the MacOS or Windo...
0123
Joel Uckelman @uckelman.bsky.social · 26/08/2026
Saddened to hear that Tim Curry has escaped to the one place that hasn't been corrupted by capitalism... space!
010
Joel Uckelman @uckelman.bsky.social · 17/08/2026
GitHub being down most of the afternoon makes it hard to troubleshoot when everything you want to read is an issue on GitHub...
011
Joel Uckelman @uckelman.bsky.social · 11/08/2026
The warning text for the plaque marking long-term nuclear waste storage would make banger code comments. Consider your reaction if you were reading a C header file and you saw this: // This message is a warning about danger. // The danger is still present, in your time, as it was in ours.
111
Joel Uckelman @uckelman.bsky.social · 10/08/2026
Nah, that could never happen. Right?
011
Joel Uckelman @uckelman.bsky.social · 07/08/2026
I saw someone comment that they "would rather piss glass" than use AWS Elastic Beanstalk again. Accurate! Use something else!
120
Joel Uckelman @uckelman.bsky.social · 04/08/2026
This is your reminder that computational complexity is swamped by cache locality when n is small. I just now benchmarked checking a six-element array for duplicates by brute force (6 choose 2 = 15 comparisons) versus using a hashset.
131
Joel Uckelman @uckelman.bsky.social · 03/08/2026
"I propose to fight it out on this line if it takes all summer." -- Grant, at the start of the Overland Campaign, 1864 Feeling this, combined with the theme from Gilligan's Island, in a work project...
120
Joel Uckelman @uckelman.bsky.social · 31/07/2026
Some interesting analysis about returning Result from frequently-called functions: purplesyringa.moe/blog/you-mig... I like the trick for keeping the ergonomics of Result without the cost; makes me wonder if this could be done automatically in conjunction with PGO.
purplesyringa.moe
You might want to use panics for error handling
Rust’s approach to error handling comes at a cost. The Result type often doesn’t fit in CPU registers, and callers of fallible functions have to check whether the returned value is Ok or Err. That’s a...
200
Joel Uckelman @uckelman.bsky.social · 30/07/2026
I've found four different names for the pagination cursor in boto3 today. AWS is breathtakingly inconsistent.
210
Joel Uckelman @uckelman.bsky.social · 30/07/2026
There is a lip on the threshold between our living room and hallway that the Roomba sometimes can't get over, not without my help. Every time it makes me think of the Voight-Kampff Test from Blade Runner.
131
Joel Uckelman @uckelman.bsky.social · 29/07/2026
Vassal 3.7.26 is released: forum.vassalengine.org/t/vassal-3-7...
forum.vassalengine.org
Vassal 3.7.26 Released
VASSAL 3.7.26 Released The Vassal Team is happy to announce the release of Vassal 3.7.26. IMPORTANT Starting with 3.7.25, Vassal requires Java 17 or newer. If you are using one of the MacOS or Windo...
0102
Joel Uckelman @uckelman.bsky.social · 29/07/2026
How tf am I supposed to know that the thing labeled "Trusted entities" on an IAM Role in the console is "AssumeRolePolicyDocument" in boto3? Thanks for the consistent naming, AWS.
000
Joel Uckelman @uckelman.bsky.social · 28/07/2026
Vassal 3.7.25 is released: forum.vassalengine.org/t/vassal-3-7...
forum.vassalengine.org
Vassal 3.7.25 Released
VASSAL 3.7.25 Released The Vassal Team is happy to announce the release of Vassal 3.7.25. IMPORTANT Starting with 3.7.25, Vassal requires Java 17 or newer. If you are using one of the MacOS or Windo...
0111
Joel Uckelman @uckelman.bsky.social · 21/07/2026
I found a nice example of how the type system can prevent bugs last night. I have some types for actions. They originally had undo and redo methods. 1/
100
Joel Uckelman @uckelman.bsky.social · 13/07/2026
I'm a bit surprised they're all openable, tbh.
010
Joel Uckelman @uckelman.bsky.social · 13/07/2026
Some days you spend the entire day trying to determine where an error is being swallowed, just because somebody didn't take sufficient care in a language that doesn't force you to.
010
Joel Uckelman @uckelman.bsky.social · 26/06/2026
Vassal 3.7.24 is released: forum.vassalengine.org/t/vassal-3-7...
forum.vassalengine.org
Vassal 3.7.24 Released
VASSAL 3.7.24 Released The Vassal Team is happy to announce the release of Vassal 3.7.24. IMPORTANT If you are using MacOS 14, please ensure you are using 14.4 or later, to avoid a bug in MacOS whic...
2166
Joel Uckelman @uckelman.bsky.social · 23/06/2026
Updated the V4 demo to bevy 0.19 in about half an hour. Quite pleased that was close to trivial.
020
Joel Uckelman @uckelman.bsky.social · 17/06/2026
I spent the past three days fighting with import of some data which was malformed, but neither the exporter nor the importer did any type verification, so there was nothing to suggest what the problem was. Why in 2026 do we still have to suffer with shoddy engineering like this? STATIC TYPING NOW
020
Joel Uckelman @uckelman.bsky.social · 09/06/2026
Vassal 3.7.23 is released: forum.vassalengine.org/t/vassal-3-7...
forum.vassalengine.org
Vassal 3.7.23 Released
VASSAL 3.7.23 Released The Vassal Team is happy to announce the release of Vassal 3.7.23. IMPORTANT If you are using MacOS 14, please ensure you are using 14.4 or later, to avoid a bug in MacOS whic...
0142
Joel Uckelman @uckelman.bsky.social · 01/06/2026
Got some keys cut a few weeks ago, because we changed the lock. They were not three for the price of one, but were guaranteed for a lifetime's use. And you can't have one, you know, the other two. I think this will pop into my head any time I get keys, for the rest of my life.
000
Joel Uckelman @uckelman.bsky.social · 03/05/2026
Vassal 3.7.22 is released: forum.vassalengine.org/t/vassal-3-7...
forum.vassalengine.org
Vassal 3.7.22 Released
VASSAL 3.7.22 Released The Vassal Team is happy to announce the release of Vassal 3.7.22. IMPORTANT If you are using MacOS 14, please ensure you are using 14.4 or later, to avoid a bug in MacOS whic...
050
Joel Uckelman @uckelman.bsky.social · 01/05/2026
Closed the book on a job I've effectively had for 16 years today. Starting a new thing in the morning.
9991
Joel Uckelman @uckelman.bsky.social · 22/04/2026
This has never been a problem for the US Army before... such as when dozens of men died of the flu on the troop ship my grandfather took to France in 1918.
061
Joel Uckelman @uckelman.bsky.social · 19/04/2026
Vassal 3.7.21 is released: forum.vassalengine.org/t/vassal-3-7...
forum.vassalengine.org
Vassal 3.7.21 Released
VASSAL 3.7.21 Released The Vassal Team is happy to announce the release of Vassal 3.7.21. IMPORTANT If you are using MacOS 14, please ensure you are using 14.4 or later, to avoid a bug in MacOS whic...
050
Joel Uckelman @uckelman.bsky.social · 11/04/2026
Wrote my first check in 11 months today. At this rate, I wonder if checks go out of use before I have to order new checks.
100
Joel Uckelman @uckelman.bsky.social · 08/04/2026
How frequently does the "Ill" in Ill Communication get misread as the Roman numeral for 3 due to sans-serif fonts?
000
Reposted by Joel Uckelman
Acerbic Otter, but SPOOOOOOOOOKY @acerbicotter.bsky.social · 02/04/2026
"Viral crypto tortoise deathscam" in the TMNT logo font
02441851
Reposted by Joel Uckelman
Erlend Sogge Heggen @erlend.sh · 28/02/2026
I make open source software because I want: - agency - correctness - transparency - trustworthiness - longevity-by-replicability - collective self-sovereignty
1536
Reposted by Joel Uckelman
Hilary Davidson @fourredshoes.bsky.social · 21/02/2026
FYI, Academia.edu has changed its terms of service to give an irrevocable worldwide license for anything uploaded to its site to be used for generative AI. I do not consent to this and have pulled all my papers.
academia.edu
Academia.edu - Find Research Papers, Topics, Researchers
Academia.edu is the platform to share, find, and explore 50 Million research papers. Join us to accelerate your research needs & academic interests.
13596480
Joel Uckelman @uckelman.bsky.social · 13/02/2026
Have these people never read/watched any sci-fi or fantasy? The answer to "Can I borrow your body to act in the corporeal world?" should always be "no". arstechnica.com/ai/2026/02/i...
arstechnica.com
I spent two days gigging at RentAHuman and didn't make a single cent
These bots supposedly need a human body to accomplish great things in meatspace.
020
Joel Uckelman @uckelman.bsky.social · 10/02/2026
When I work, I create the thing in my mind and then move it from my mind to the world. It's been like this for me my whole life. This is extremely inconvenient when I have a task for which I just cannot envision the result.
000
Joel Uckelman @uckelman.bsky.social · 06/02/2026
Vassal 3.7.20 is released: forum.vassalengine.org/t/vassal-3-7...
forum.vassalengine.org
Vassal 3.7.20 Released
VASSAL 3.7.20 Released The Vassal Team is happy to announce the release of Vassal 3.7.20. IMPORTANT If you are using MacOS 14, please ensure you are using 14.4 or later, to avoid a bug in MacOS whic...
0102
Reposted by Joel Uckelman
qdot @buttplug.engineer · 04/02/2026
inspired by CLAUDE.md, I’ve started putting markdown files named after coworkers into work code repos so I can remind them to stop doing shit to the codebase that annoys me for some reason they’re all mad at me now, which means ill be adding commands to JEREMY.md for an attitude adjustment
6814176
Joel Uckelman @uckelman.bsky.social · 04/02/2026
Worth a read. Exploring outcomes isn't much use if not followed up.
000
Joel Uckelman @uckelman.bsky.social · 02/02/2026
It's like setting up shadow IT infrastructure because the real IT infrastructure is so bad...
000
Joel Uckelman @uckelman.bsky.social · 30/01/2026
I thought there was no punishment too severe for ICE goons, but I have to draw the line at Workday.
041
Reposted by Joel Uckelman
Aaron Reichlin-Melnick @reichlinmelnick.bsky.social · 25/01/2026
You have to read this. Firsthand affidavit from one of the women who was there and recording the video. She talks about how Alex Pretti was directing traffic when she arrived. She watched him be killed in front of her. She's afraid to go home, worried she'll be arrested.
1. I am a resident of the Whittier neighborhood of Minneapolis, Minnesota. I am over 18 years of age. I am a children's entertainer who specializes in face painting.
2. On Saturday, January 24, 2026, at about 8:50 am, I was getting ready to go to work when I heard whistles outside. I knew the whistles meant that ICE agents were in the area, so I decided to check it out on my way to work. I've been involved in observing in my community because it is so important to document what ICE is doing to my neighbors. Connecting to your local community and knowing who your neighbors are is something I profoundly value.
3. I drove to Nicollet Ave. and 26th where I could hear the whistles coming from. I turned south onto Nicollet. There were already several ICE agents there and they'd set up a sort of vehicle convoy on Nicollet and 28th. There were also about 15 observers there, recording and observing ICE.
4. I saw ICE agents surrounding cars and punching car windows. I also saw them stopping vehicles further down Nicollet, so I backed up because I didn't feel safe continuing on.
5. I noticed a man sort of acting to help traffic move more smoothly. He helped me find a place to park. I got out with my whistle and my camera. I went over to him and said something like, "I'm going to film and use my whistle."
6. It seemed like most ICE activity was happening a little farther down the street from us, near 27th. Someone was being thrown to the ground.7. I started recording. There was an agent by a car across the street. Two observers were a few feet away from the agent, blowing their whistles. One was wearing a backpack.
8. I and the man who was observing and helping direct traffic were standing in the street. There was a phone in the man's hand recording a video.
9. An agent approached and asked us to back up, so I moved slowly back onto the sidewalk.
10. The man stayed in the street, filming as the other observers I mentioned earlier were being forced backward by another ICE agent threatening them with pepper spray. The man went closer to support them as they got threatened, just with his camera out. I didn't see him reach for or hold a gun.
11. Then the ICE agent shoved one of the other observers to the ground. Then he started pepper spraying all three of them directly in the face and all over. The man with the phone put his hands above his head and the agent sprayed him again and pushed him.
12. Then the man tried to help up the woman the ICE agent had shoved to the ground. The ICE agents just kept spraying. More agents came over and grabbed the man who was still trying to help the woman get up. All three of the observers looked to have been badly affected by the pepper spray. I could feel the pepper spray in my eyes.13. The agents pulled the man on the ground. I didn't see him touch any of them-he wasn't even turned toward them. It didn't look like he was trying to resist, just trying to help the woman up. I didn't see him with a gun. They threw him to the ground. Four or five agents had him on the ground and they just started shooting him. They shot him so many times.
14.1 don't know why they shot him. He was only helping. I was five feet from him and they just shot him.
15. The video I recorded of what happened accurately depicts the events leading up to the agents shooting him and several minutes afterwards. The video is attached as Exhibit 1.
16. I have read the statement from DHS about what happened and it is wrong. The man did not approach the agents with a gun. He approached them with a camera. He was just trying to help a woman get up and they took him to the ground.
17. I feel afraid. Only hours have passed since they shot a man right in front me and I don't feel like I can go home because I heard agents were looking for me. I don't know what the agents will do when they find me. I do know that they're not telling the truth about what happened. I've heard that other witnesses might have been arrested and taken to the Whipple Building.
18. I am disgusted and gutted at how they are treating my neighbors and my state. I keep alternating between crying and feeling determined it is important to remember the value of documenting injustice. We show up for the people who need us to bearwitness, because it can't just be one group of people bearing the brunt of their tyranny. This is a struggle to protect our freedom and democracy, those things are on the line. He lost his life for those values.
I declare under penalty of perjury that everything I have stated in this document is true and correct.

Dated and signed on Jan 24, 2026 in Hennepin County, State of Minnesota.
4352314211148
Reposted by Joel Uckelman
Emily Tamkin @emilyctamkin.bsky.social · 22/01/2026
The thing about America today is that if you just describe what is happening objectively and unemotionally you sound hysterical and partisan and what you have to remind people is that the reason for that is not you, it's the people doing the things you are describing
252096623
Reposted by Joel Uckelman
Norm Charlatan @normcharlatan.bsky.social · 18/01/2026
A lot of good businesses are closing on Friday to participate in the ICE Out General Strike. But make sure to support these places on the other days. A lost Friday is a tough thing for a restaurant or bar. Also use this as a barometer for the types of businesses you want to support.
2773240
Joel Uckelman @uckelman.bsky.social · 17/01/2026
This is a thing that once broken won't be possible to repair. We have a president who doesn't take the idea of obligation seriously. Republicans could stop him.
010
Joel Uckelman @uckelman.bsky.social · 14/01/2026
This is day eight waiting in the hospital for my father to be able to go home. <deep breath>
240
Joel Uckelman @uckelman.bsky.social · 13/01/2026
On a related note, we could use some Wide Awakes about now.
120
Reposted by Joel Uckelman
TekNeex @tekneex.social · 12/01/2026
I dunno, but with each day that passes the NRA loses more and more ground in their “you have to watch your kids die in mass shootings at school so we can protect you if the government goes rogue” argument 🤷‍♂️
31029