Building a Chat Integration with Google Gemini

It’s been on my queue to investigate how to use Generative AI in a ‘chat’ interface versus "one prompt and answer" mode for some time and today I finally got a chance to check it out. I’ll share my thoughts below, but once again I want to thank Allen Firstenberg for his help while I worked through some issues. As always, take what I’m sharing as the opinion of a developer still very new to this space. Any mistakes are my fault! What is GenAI chat? # Specifically, what is chat when it comes to generative AI? Nothing. Seriously. All ‘chat’ is taking your initial prompt, getting the result, then taking your next prompt and appending it. So for... more →
Posted in: JavaScript

Super Useful NPM Module – Open

Forgive the samewhat lame title, and this will be a quick little post, but I’ve recently been using such an incredibly helpful npm module I wanted to share it with others. open by Sindre Sorhus (you must click that link and look at their incredible GitHub profile) is a simple, but powerful utility that… opens things. Ok, that sounds rather obvious, but what it means in practice is that your Node code can open a resource on your computer with the associated app. (It can also open up an app by itself if you want.) I can’t tell you how many scripts I’ve written that generate file-based results, or URL-hosted results, that I then double-click to open. This one little utility... more →
Posted in: JavaScript

How to Fix: Windows WASD Keys Reversed with Arrow Keys

This past weekend I had the opportunity to be what every father wants, if only for a moment: the “cool dad”. My wife was out of town and my youngest son wanted to play PUBG. I caved in, taught him the basic FPS key binds, and he was having a great time. While he was fragging out, he pressed a bunch of random keys and ended up changing movement buttons. Suddenly the traditional WASD movement keys were useless and the arrow keys triggered movement. Of course, this was a degradation of player experience. After struggling to figure out what my son did, I found the solution. To restore the WASD keys as movement keys, press the FN+W key combination. You’ll switch back to... more →
Posted in: JavaScript

Automating Movie Recommendations with Generative AI and Pipedream

For the past few months or so, I’ve started tracking my movie watching with Letterboxd. I’m not doing a lot of reviews, mostly just logging, but I find it neat to look back and remind myself of what I’ve watched recently. You can see my profile if you’re curious, or check out my "Now" page as well. I thought it might be interesting to see if I could use my Letterboxd data along with Google Gemini as a way to suggest the next movie I should watch. I was able to build a quick workflow using the incredible Pipedream in a few minutes. Let me share with you how I did that. What does it do? # At a high level, my workflow does the following: It runs, automatically,... more →
Posted in: JavaScript

JSON Results with Google Gemini Generative AI API Calls

Forgive the somewhat alliterative title there, but today’s post covers something that’s been on my mind since I started playing with Google Gemini, specifically, how to get the results of your API calls in JSON. To be clear, the REST API returns a result in JSON, but I’m talking about the content of the result itself. Before I continue, a quick shot out to Allen Firstenberg who has been helping me off and on with Google Gemini stuff. Anything I get wrong though is entirely my fault. 😜 Ok, so before I go on, let’s look at a typical result. Take a prompt like so: "What is the nature of light". Pass this to Gemini via the API, and the result you get, once you... more →
Posted in: JavaScript

HTML popover Attribute

Modals have been an important part of websites for two decades. Stacking contents and using fetch to accomplish tasks are a great way to improve UX on both desktop and mobile. Unfortunately most developers don’t know that the HTML and JavaScript specs have implemented a native modal system via the popover attribute — let’s check it out! The HTML Creating a native HTML modal consists of using the popovertarget attribute as the trigger and the popover attribute, paired with an id, to identify the content element: <!-- "popovertarget" attribute will map to "id" of popover contents --> <button popovertarget="popover-contents">Open popover</button> <div... more →
Posted in: JavaScript

Using GenAI to Help Pick Your D & D Class

A few weeks back I wrote up my experience with generative AI as a dungeon master. That post ended up being really popular and got me thinking about other ways I could integrate D & D, or other games, with Generative AI. With Gemini 1.5 now available via API, I thought it would be good to find an excuse to hit the API in a demo. So with that in mind, I’d like to introduce you to the Class Suggester. The Application # The app begins by simply presenting some introductory text and invites you to click a button to roll for your stats. You can hit the Roll Stats button as many times as you want. It uses the standard D & D rule of rolling a six-sided dice four times and removing the... more →
Posted in: JavaScript

Using Netlify Edge and Blob Support to Investigate Website Traffic

For some time now, I’ve relied on my Netlify Analytics report to keep track of how well my site is doing, what content is popular, and so forth. I was a Google Analytics user for over ten years, but when they updated the UI, I saw red every time I tried to use it. Netlify Analytics is super simple and quick. (My only real complaint is that it’s limited to 30 days, but I’ve got free access to the feature so I’m happy to not care about that.) I complement Netlify Analytics with GoatCounter as well. Netify’s analytics show much more traffic than Goat, and I figure the truth is somewhere in the middle, and again, I’m fine with that. What’s odd though is that... more →
Posted in: JavaScript
1 28 29 30 31 32 106