Microposts
- Drizzle (ORM) - easy enough to set up. Seems relatively straightforward and intuitive
- Biome (linter/formatter, Prettier replacement) - TODO
- Bun (all-in-one toolkit thingamabob) - finally got around to trying it. Don’t know what the advantages are over NodeJS, though. Supposedly faster, I wouldn’t know. Supports Typescript out of the box, but you can do that with the latest Node version as well (both just do type-stripping)
- Deno (runtime) - TODO
- Zustand (state management) - TODO
- Hono (web framework) - like express but with some QOL stuff? You can write code in a .jsx file and send JSX as a response. Is nice
- HTMX (reactivity with server-sent HTML fragments? idk) - TODO
- Shadcn (styled components) - TODO
- Rebuilt my site’s “microposts” page in Astro for it to work fine in development but not on the deployment target (Netlify)
- Spent two hours wondering why - made lots of guesses, moved stuff here and there, migrated from Astro v4 to v5
An excerpt from “Metaprogramming Ruby”:
“I am still confused, Master,” said the disciple, even more worried than before. “They always taught me that self-modifying code is bad. How will I know that I am wielding this art properly?” […] The master began to get annoyed. “You’re smart enough to learn,” he said, “but are you smart enough to forget what you have learned? There’s no such thing as metaprogramming. It’s just programming all the way through. Now get lost, and let me meditate in peace.”
LOL
I saw a list of “10 JS frameworks in 2025” on Reddit and decided to look into some of them.
I like functional programming some but this library is one of the worst things I’ve ever seen
Today:
Nearing my wits end, I caved and asked Deepseek. Gave a couple of suggestions, the first of which turned out to be the culprit:
// went from this
myEntries.sort() // sorting algorithm here
// to this
myEntries.toSorted()
That’s the price you pay for playing with “bleeding edge” features, I guess.
(repost)
I only just recently wrote a post about monkeypatching in Ruby, so I’m just gonna leave this here, but this is (oneof) the weirdest things I’ve seen…
CONST = true
# Conditional methods...
class Do
class << self
if CONST
def it
1
end
else
def it
2
end
end
end
end
puts Do.it
Nvm here’s more
class StringUtils
def self.reverse_enabled(is_enabled)
if is_enabled
define_method(:rev, lambda(&:reverse))
else
define_method(:rev, ->(x) { x })
end
end
reverse_enabled(true)
end
su = StringUtils.new
p su.rev('my string')
StringUtils.reverse_enabled(false)
p su.rev('my string')