Short-Lived, Tick-Bound Memoization in JavaScript Sometimes, typical memoization function won't cut it when there are so many changing variables in play between ticks of the event loop. Let's explore how we might fine-tune it.
Using Forced Reflows and the Event Loop to Slide Open a Box Triggering smooth, reliable CSS transitions with JavaScript can be weirdly more complicated than you expect. We're gonna explore it more.
scrap New It’s a sad paradox that the most wonderful time of the year can also stir up the most despair in people. For many, I know the season coincides with a past wound, but I’m also think pain is just made more acute when it’s contrasted with all
scrap Cast Down There are Psalms I sometimes read that just make me angry. “Why are you cast down, O my soul, and why are you in turmoil within me? Hope in God; for I shall again praise him, my salvation and my God.” - Psalm 42:5 Maybe I am just that
remote:jamcomments You Might As Well Use a Content Security Policy Content Security Policies, even for simple, content-focused sites, offer good protection against rare but real vulnerabilities out there. You might as well just get one.
scrap On Having Already Failed I’m reading John Bunyan’s The Pilgrim’s Progress for the first time. Everything in that book is relatable, but there are certain scenes hitting harder than I expected. One of them is Christian’s encounter with Apollyon on the way to the Celestial City. Apollyon is an ugly,
remote:picperf Avoiding a "Host Permission" Review Delay When Publishing a Chrome Extension Get a Chrome extension reviewed a smidge more quickly by more carefully executing its client-side scripts only when they're needed.
remote:picperf Collect All Requested Images on a Website Using Puppeteer Walking through how I used Puppeteer to programmatically collect every image loaded when a page is viewed in the browser.
TIL: inline event handlers still fire when passed to React's dangerouslySetInnerHTML Even though it won't run <script> tags, React's dangerouslySetInnerHTML still allows inline event handlers to execute. Here's how you might neutralize that threat.
scrap Unseen Footprints Sometimes I feel like I’ve been holding my breath for a long time and I'm not sure there will be any air to breathe when I finally let go. It’d be nice to know what God is doing in those moments rather than being left there
Streaming Text Like an LLM with TypeIt (and React) We're getting real familiar with seeing LLMs stream chunks of text to a page. Here's a simple demonstration of how you'd mimic the effect with TypeIt.
scrap Control It is pathetic how often I overestimate the control I have over my circumstances, and how protective I am of the little I do have. A couple passages have been stirring this up. First, from Exodus. The Israelites have fled into the wilderness after escaping Egypt. They set up camp
I didn't know you could use sibling parameters as default values in functions. Default parameter values have been in JavaScript for a while. But I just found out you can use sibling parameters as the default values themselves.
scrap Discipline I wish it were easier to tell the difference between God’s discipline that I should rejoice in, and misfortune that I should lament. But I guess that’s a false dichotomy. There’s no reason to believe they can’t be one in the same, especially if I take
Empty Building I’ve started to notice my stomach bunch up when I come across #BuildInPublic hashtags, or see people throw around phrases like: * “Forget everything else. Just get out there and build.” * “It’s all about building cool stuff together.” * “The future belongs to the builders.” * “Stop talking. Start building.” * “So
scrap Foolish Prayer There is no earthly indication that some of my prayers will be answered. It’s something I’ve had to face eye-to-eye in recent weeks, and I can sense a waning hope in people who’ve been praying with me too. It makes me realize how dependent I’ve been
scrap Whirlwind I’ve either never seen this verse or I’m reading it with different eyes: “Though he slay me, I will hope in him; yet I will argue my ways to his face.” - Job 13:15 ESV What a weird combination of statements. Though he slay me, I will
scrap Being Still I have not been reading Psalm 46:10 correctly for a long time (probably because I’ve always read it in isolation). “Be still, and know that I am God.” I’ve always taken “stillness” to strictly be a synonym for “peace.” God’s just telling us to find inner
scrap Persuading God I know God does not change; that His word and being are eternally immutable. That’s why I’m struck by stories in which He appears to change His mind, as if He can sometimes be persuaded to alter plans He’s been very clear about. It happens in the
scrap Persistence Stories like the persistent friend in Luke 11 are easy to admire when things are going well. A man urgently goes to his friend in the middle of the night to ask for some bread. After some determination, all’s well: I tell you, even though he will not get
remote:jamcomments JamComments Now Offers AI-Powered Moderation You can now use an LLM to moderate new comments submitted through JamComments. Here's the why and how.
scrap Hope & Weakness I think I’ve had a messed up, self-sufficient view of “hope” for a long time, and I didn’t start to realize it until I read Romans 8:24 while life was falling apart. For in this hope we were saved. Now hope that is seen is not hope.
remote:picperf It Might Be Worth Converting that GIF to an Animated WebP Despite it's key role in modern meme culture, it may be ready to migrate from the animated GIF to a format offering some serious technical advantages -- WebP.
external Exploring the Possibilities of Native JavaScript Decorators Native support for decorators is inevitable! It simplifies augmenting class methods, which can help with things like logging, memoization, debouncing, and dependency injection.
remote:plausible How to Back Up Self-Hosted Plausible Analytics Data to an R2 or S3 Bucket Services like S3 and R2 can be invaluable when self-hosting Plausible Analytics. Let's walk through what it looks like to use them for automated backups a simple cron job.