An Online Mastodon Archive Viewer

Here’s a quick write-up of something I actually built a week or so ago… and forgot to share on the blog. Instead, I shared a way to integrate your Mastodon with Eleventy. In that post, I mentioned how the account Fedi.Tips was looking for ways to let people view their archived Mastodon data. I followed their guide on getting my export and started work on a simple viewer. If you don’t care about the "how", and have your archive ready, just head on over to https://tootviewer.netlify.app and upload your zip. The Archive # When you get your Mastodon archive, it will be a zip file containing the following: actor.json: A file related to the user, yourself probably. avatar.jpg:... more →
Posted in: JavaScript

Caching Input with Google Gemini

A little over a month ago, Google announced multiple updates to their GenAI platform. I made a note of it for research later and finally got time to look at one aspect – context caching. When you send prompts to a GenAI system, your input is tokenized for analysis. While not a "one token per word" relation, basically the bigger the input (context) the more the cost (tokens). The process of converting your input into tokens takes time, especially when dealing with large media, for example, a video. Google introduced a "Context caching" system that helps improve the performance of your queries. As the docs suggest, this is really suited for cases where you’ve got... more →
Posted in: JavaScript

Web Component to Generate Image Color Palettes

Chalk this up to something that is probably not terribly useful, but was kind of fun to build. A few weeks ago I came across a site talking about the colors used in the Fallout TV show. I grabbed a screenshot of how they rendered it: Unfortunately, I didn’t make note of the site itself and I can’t seem to find it anymore. I really dug how it showed the palette of prominent colors directly beneath the image itself. Using this as inspiration, I looked into how I could automate this with a web component. To get the color palette, I turned to a library I’ve used many times before, Color Thief. Given an image, it can return either the most dominant color of an image or return an... more →
Posted in: JavaScript

Scraping Recipes on the Web – Now with Display and Print

A few weeks back I wrote up the process of building an API that looks for JSON-LD on a web page containing recipe information, parses it, and returns it as pure data. You can (and should before continuing on) find that post here: Scraping Recipes Using Node.js, Pipedream, and JSON-LD. When I first shared this, someone (I forget your name, but thank you!) asked the natural follow-up question – can we then render this to HTML or PDF? The answer is, of course, I just had to stop being lazy and build a proper web app. I fired up Glitch and created the following little demo. It isn’t the prettiest demo, but it gets the job done – converting a recipe site that’s 90% adds/commentary... more →
Posted in: JavaScript

Links For You (7/13/2024)

Hello from the incredibly hot Pacific Northwest. This week I discovered that not every part of the PNW looks like Seattle. I’m in Bend, Oregon, which is incredibly beautiful, but also just as hot as back home. On the flip side, the humidity is basically zero and the mornings and evenings are incredibly nice. My wife and I are up here for a few days as a quick break, and last night we saw a great concert featuring Ratboys, The Head and The Heart, and the Decembrists. Now to your links – enjoy! Slash Pages # First up is not a directory of horror fansites, but rather, a list of the many different types of "slash pages". These pages follow a similar URL scheme (like /now or... more →
Posted in: JavaScript

Creating a Generic Generative Template Language in Google Gemini

I’ve been a fan of ‘random text’ for some time. "Random text" is a bit vague, but to me the idea of using code to generate random stories, or even snippets, is fascinating. Back in April, I blogged about how I created short dragon-based stories. It took a generic string: A #adjective# dragon lives #place#. She #verb# her hoard, which consists of a #number# of #thing#, #number# of #thing#, and #number# of #thing#. She feels #feeling#. And created a story by replacing the pound-wrapped tokens with real words. I used a couple of different tools to build this, but the core one was a cool little Node library named random-word-slugs. It’s a powerful random word library... more →
Posted in: JavaScript

Cat Herder V1 Released!

It’s been a few weeks since I blogged about Cat Herder, my latest web game, but over the holiday break I plugged up the last few features missing and decided it was time to "release" it, and by release, I mean set the version number to 1 and see what happens next. Since my last post in June, I’ve made a few small changes here and there, but the biggest updates in this last release revolve around the cats, and how you get more of them. As I mentioned in my previous posts, I wasn’t really sure about making cats "purchasable", that just didn’t feel right. Instead, I went with a system that kind of works like levels in a RPG. The more purrs you get (which... more →
Posted in: JavaScript

(Don’t) Add BASIC Support to Eleventy

So yesterday I wrote up the process of adding the Squirrelly template language to Eleventy. It was, essentially, five minutes of work due to how well Eleventy supports adding custom languages. After writing it up, publishing it, and running some errands, a really bad and silly idea came to me… what if I added BASIC support to Eleventy? Way back in the Stone Age, my first computer language was Applesoft BASIC on an Apple 2e (or +, not sure). Just look at this rad machine and imagine it paired with a monochrome green monitor: By Bilby – Own work, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=11119727 I wrote a lot of programs on that machine, most typed by hand from the... more →
Posted in: JavaScript
1 33 34 35 36 37 114