Tom Carden's Avatar

Tom Carden

@randometc.org

Inbetweener, volunteering with @bikewalkbus.bsky.social, Denver Tool Library, Pedestrian Dignity, and @cammiecroft.bsky.social

188
Followers
567
Following
73
Posts
12.11.2024
Joined
Posts Following

Latest posts by Tom Carden @randometc.org

I think anything close to this much economic power should be controlled and allocated democratically. Would that be so hard?

03.03.2026 03:58 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

I think about this Tony Benn speech much more than I used to

28.02.2026 16:09 πŸ‘ 13122 πŸ” 5310 πŸ’¬ 89 πŸ“Œ 183

Me automating: Haha fuck yeah!!! Yes!!

Me being automated: Well this fucking sucks. What the fuck.

16.02.2026 02:58 πŸ‘ 26 πŸ” 7 πŸ’¬ 1 πŸ“Œ 0
Preview
What I learned at West Side Books β€” and what comes next "Everything we love will disappear, but if we are lucky, it transforms before vanishing."

This story of our local bookshop is a poignant portrait of our times. It rightly centers the previous owner, the workers, the patrons, and the ray of hope from the new owner.

denverite.com/2026/01/28/d...

05.02.2026 15:29 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Pin by Aurelia North on Tattoos | Migraine art, Migraine aura, Visual migraine This Pin was discovered by Aurelia North. Discover (and save!) your own Pins on Pinterest

People paint them, it’s amazing.

Tag yourself:

jp.pinterest.com/pin/49764782...

31.01.2026 00:10 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Kierkegaard & the Information Highway by Hubert Dreyfus, 1997

I don’t have it to hand (it’s an old picture) but if you dig a bit for Dreyfus’s early explorations of Kierkegaard you’ll find references to The Present Age. I’d start here goldberg.berkeley.edu/lecs/kierkeg...

22.01.2026 14:31 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
a woman in a white dress with a speech bubble that says daisy daisy give me your answer do Alt: a woman in a white dress with a speech bubble that says daisy daisy give me your answer do
20.01.2026 03:49 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Ugh 2001, sorry!

20.01.2026 03:47 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Excerpt from On The Internet by Hubert Dreyfus. 

Key paragraph reads:
β€œBut the vision of a worldwide electronic agora precisely misses the Kierkegaardian point that the people talking to each other in the Athenian agora were members of a direct democracy who were directly affected by the issues they were discussing, and, most importantly, the point of the discussion was for them to take the responsibility and risk of voting publicly on the questions they were debating. For Kierkegaard, a worldwide electronic agora is an oxymoron. The Athenian agora is precisely the opposite of the public sphere, where anonymous electronic kibitzers from all over the world, who risk nothing, come together to announce and defend their opinions.
As an extension to the deracinated public sphere, the electronic agora is a grave danger to real political community.
Kierkegaard enables us to see that the problem is not that Rheingold's 'electronic agora' is too utopian; it is not an agora at all, but a nowhere place for anonymous nowhere people. As such, it is dangerously distopian.”

Excerpt from On The Internet by Hubert Dreyfus. Key paragraph reads: β€œBut the vision of a worldwide electronic agora precisely misses the Kierkegaardian point that the people talking to each other in the Athenian agora were members of a direct democracy who were directly affected by the issues they were discussing, and, most importantly, the point of the discussion was for them to take the responsibility and risk of voting publicly on the questions they were debating. For Kierkegaard, a worldwide electronic agora is an oxymoron. The Athenian agora is precisely the opposite of the public sphere, where anonymous electronic kibitzers from all over the world, who risk nothing, come together to announce and defend their opinions. As an extension to the deracinated public sphere, the electronic agora is a grave danger to real political community. Kierkegaard enables us to see that the problem is not that Rheingold's 'electronic agora' is too utopian; it is not an agora at all, but a nowhere place for anonymous nowhere people. As such, it is dangerously distopian.”

I really think Hubert Dreyfus nailed this in On The Internet (2002) and I’ll keep posting this page until everyone has seen it. Key para in alt text.

20.01.2026 03:46 πŸ‘ 164 πŸ” 42 πŸ’¬ 5 πŸ“Œ 5

Yes!

19.01.2026 03:59 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
You’ve Heard About Who ICE Is Recruiting. The Truth Is Far Worse. I’m the Proof. What happens when you do minimal screening before hiring agents, arming them, and sending them into the streets? We're all finding out.

Did you see slate.com/news-and-pol...

19.01.2026 03:55 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
a cartoon of a cat playing a piano with other cats Alt: The Aristocats
01.01.2026 04:45 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

It’s a pretty little book too, if you have means and like Things.

31.12.2025 04:06 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Did you see the saga of her Ren Fair costume contest entry? So good.

31.12.2025 04:05 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

#AdventOfCode Day 9 part 2 definitely threw me today. So much for bragging about the runtime of naive algorithms and JavaScript as β€œgood enough”. A hackish memoized somewhat brute force solution, after several attempts, finally competed in 15 minutes. Phew!

10.12.2025 02:44 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

It only took 21 years for passwords to be split out of Safari as its own app, or 25 years if you see it as an offshoot of Keychain.

09.12.2025 04:13 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

One optimization of note, switching to a basic PriorityQueue (sort as you build) instead of building then sorting the list by distance helped drop runtime from ~300 to ~90ms.

09.12.2025 00:23 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

One thing I noticed this time: the answers worked more as "checksums" that you'd done the right calculation, rather than meaningful parts of the puzzle. Would have been nice for the answer to tie back to the question, e.g. the length of wire needed for the elves to complete the circuits?

08.12.2025 20:07 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Part 2 is my slowest performing JS code so far in this advent, running in about 300ms on my laptop. Might try to dig in and see if there are optimizations to be made... later!

08.12.2025 19:29 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

An adventure in reading comprehension β€” I had an off-by-one error in my counts because I was counting *success* and not *attempts*.

08.12.2025 19:29 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Day 8 - Advent of Code 2025

I just completed "Playground" - Day 8 - Advent of Code 2025 #AdventOfCode adventofcode.com/2025/day/8

[Spoiler in thread]

08.12.2025 19:29 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

While I respect everyone cranking on hyper-optimized solutions in their favorite languages, once again my naive implementation in Javascript (favoring clear syntax and convenience over any real optimizations) runs part 2 in ~4ms on my M1 Pro. Computers are fast, again!

07.12.2025 20:40 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

This stumped me for a while as well - this is the correct hint!

07.12.2025 20:37 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Google sheets visualization of the log10 value of the number of tachyons at each cell of the simulation. Green = 0th percentile, yellow = 90th percentil, red = 99th percentile.

Google sheets visualization of the log10 value of the number of tachyons at each cell of the simulation. Green = 0th percentile, yellow = 90th percentil, red = 99th percentile.

I just completed "Laboratories" - Day 7 - Advent of Code 2025 #AdventOfCode adventofcode.com/2025/day/7

Part 2 definitely caused a rethink - no use trying to trace everything, need to switch to a constant space algorithm. Final result is pretty!

07.12.2025 20:35 πŸ‘ 4 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
homer simpson from the simpsons is holding a cup in front of a picture Alt: Old man yells at cloud meme (Simpsons Grandpa)

dang cephalopods and their significant white space

07.12.2025 03:54 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Revisions to RegEx match open tags except XHTML self-contained tags Stack Overflow | The World’s Largest Online Community for Developers

it’s giving β€œHave you tried using an XML parser instead?” stackoverflow.com/posts/173245...

07.12.2025 03:19 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Day 6 - Advent of Code 2025

I just completed "Trash Compactor" - Day 6 - Advent of Code 2025 #AdventOfCode adventofcode.com/2025/day/6

Today's main fight was all about turning off the whitespace trim-on-save behavior in my editor. Once the input whitespace was preserved I could get parsing and transposing and evaling. Phew!

06.12.2025 19:37 πŸ‘ 5 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

everyone’s bsky age is 12?

05.12.2025 20:56 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Screenshot of implementation of consolidating the ranges in Advent of Code 2025, day 5, part 2. Full code follows:

  consolidateRanges() {
    for (let i = 0; i < this.freshRanges.length; i++) {
      for (let j = i + 1; j < this.freshRanges.length; j++) {
        let range = this.freshRanges[i];
        let other = this.freshRanges[j];
        if (range.intersects(other)) {
          let newRange = range.merge(other);
          this.freshRanges[i] = newRange;
          i--; // backtrack to start over with new i
          this.freshRanges.splice(j, 1); // throw out j
          break;
        }
      }
    }
  }

Screenshot of implementation of consolidating the ranges in Advent of Code 2025, day 5, part 2. Full code follows: consolidateRanges() { for (let i = 0; i < this.freshRanges.length; i++) { for (let j = i + 1; j < this.freshRanges.length; j++) { let range = this.freshRanges[i]; let other = this.freshRanges[j]; if (range.intersects(other)) { let newRange = range.merge(other); this.freshRanges[i] = newRange; i--; // backtrack to start over with new i this.freshRanges.splice(j, 1); // throw out j break; } } } }

The whole solution for part 2 runs in ~3ms on my M1 Pro, including the time to merge ranges. With only 190 ranges, 94 after merging, why worry? ~12k comparisons. Computers are fast! #deliberatelyquadratic

05.12.2025 15:56 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Stayed as naive as possible and did an O(N^2) greedy merge of the overlapping sets. No trees or binary searches for me.

05.12.2025 15:56 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0