This action will delete this post on this instance and on all federated instances, and it cannot be undone. Are you certain you want to delete this post?
This action will delete this post on this instance and on all federated instances, and it cannot be undone. Are you certain you want to delete this post?
This action will block this actor and hide all of their past and future posts. Are you certain you want to block this actor?
This action will block this object. Are you certain you want to block this object?
Are you sure you want to delete the OAuth client [Client Name]? This action cannot be undone and will revoke all access tokens for this client.
Are you sure you want to revoke the OAuth token [Token ID]? This action cannot be undone and will immediately revoke access for this token.
| Introduction | https://epiktistes.com/introduction |
|---|---|
| GitHub | https://github.com/toddsundsted/ktistec |
| Pronouns | he/him |
| 馃寧 | Sector 001 |

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鈥檝e got your 8-bit (and 16-bit) consoles, old circuit boards for decor, and great coffee!



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

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鈥檙e looking for feedback on the effects of this transition. Please help by responding to this poll: https://forum.crystal-lang.org/t/poll-experiences-with-the-migration-to-pcre2/5499
#CrystalLanguage #programming

great main gig day at the world petrochemical conference in houston. i know that doesn鈥檛 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鈥檚 a lot of work to do!

commits 984e28b7 through a367c215 include changes that support following threads, 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!

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

...well, for future reference, Invalid memory access (signal 11) at address 0x7ff7b19429f8 likely means the application has overrun its stack, especially if the stack trace shows even moderate recursion.
about the recursion though, this error happened after only 5 recursive calls (not 50,000) and that caught me off guard. i've been recently conditioned to think the stack only holds primitive values and references (pointers) but crystal, like c and similar languages, lets you pass around structures (instances of struct) by value and those values can be arbitrarily large.
now i need to figure out how to debug the contents of the stack...