Todd Sundsted
Better dead than bored.

fdescribe/xdescribe, fcontext/xcontext, fit/xit have really been game changers during tdd. previously, i specified specs to run by line number, which works but requires me to hunt down the line number... i don't know why it took me so long to adopt this—i guess i assumed spectator didn't support them.

#crystallang #spectator

i like acronyms, and i really like keeping things simple, but i don't like the acronym KISS (for "Keep it Simple, Stupid"). it just seems unnecessarily pejorative. from now on i'm just using KIS...!

saturn is one of my favorite coffee shops (and music venues) anywhere. you’ve got your 8-bit (and 16-bit) consoles, old circuit boards for decor, and great coffee!

saturn, birmingham al

#coffee #birmingham-al

chat gpt straight up cheats at tic tac toe!

tic tac toe with chat gpt

#chatgpt #tictactoe

i caught this out of the corner of my eye on a screen at the coffeeshop this morning, and thought "is that brent spiner?!?"

brent spiner on night court

it turns out he played the hard-luck character bob wheeler on several episodes of night court before playing the character data on star trek the next generation.


RT @CrystalLanguage
Looking for Community Feedback on an important upgrade

The next Crystal release will upgrade the regex engine to PCRE2 and we’re looking for feedback on the effects of this transition. Please help by responding to this poll:
#CrystalLanguage #programming

great main gig day at the world petrochemical conference in houston. i know that doesn’t sound cool, and maybe even sounds a little alarming but the content today was on things like alternative (net zero) fuels, regulatory drivers needed for net zero in maritime by 2050, and (my topic) the systemic factors that inhibit decarbonization in ocean shipping. there’s a lot of work to do!


commits 984e28b7 through a367c215 include changes that support following threads, hashtags and mentions:

  • index pages for threads, hashtags and mentions include a follow/unfollow button
  • following a thread, hashtag or mention results in notifications when new posts arrive that are part of the thread or include the hashtag or mention
  • to support navigation and discovery, the details pages for posts include labels with links to the index pages for hashtags and mentions

next up is support for actively finding and fetching followed content from elsewhere in the fediverse.

also included are a bunch of bug fixes, some internal enhancements, and greatly reduced build times and executable sizes.


the crystal programming language always inlines blocks, which is great for performance but trades off space for speed. using blocks effectively means keeping this in mind.

somewhere along the line, i learned the habit of passing a block to a function as a means of customizing the behavior of the function. if the function that takes the block is large, it's important to remember that the body of the function is inlined where the function is called, which may not be what you are expecting. if you call the function multiple times, you even get multiple copies.

i just committed code that fixes an egregious example of this problem. in this case these ~30 lines of code replace the blocks with procs (which aren't inlined) and cut ~24mb (that's megabytes) off the executable (over a third of its size).

i regularly shoot myself in the foot trying to be clever, so i don' t know how prevalent this problem is in practice, but it's definitely something to keep in mind, especially if you see compile times and executable sizes growing!

#crystallang #ktistec

"You have attributed conditions to villainy that simply result from stupidity."
Robert A. Heinlein, Logic of Empire