Intro to Deno
I tried out Deno for the first time. Deno bills itself as the most productive, secure, and performant JavaScript runtime for the modern programmer
I tried out Deno for the first time. Deno bills itself as the most productive, secure, and performant JavaScript runtime for the modern programmer
Disclaimer: I am not a security expert or a security professional.
Edit (2024-07-21): Vercel has updated the ai package to use different abstractions than the examples below. Consider reading their docs first before using the example below, which is out of date.
I started playing the NYTimes word game "Connections" recently, by the recommendation of a few friends. It has the type of freshness that Wordle lost for me a long time ago. After playing Connections for a few days, I wondered if an OpenAI language model could solve the game (the objective is to...
Goku has a concept called a simlayer. A simlayer allows you to press any single key on the keyboard, then any second key while holding the first and trigger an arbitrary action as a result. I'm going to write a karabiner.edn config that opens Firefox when you press <kbd>.</kbd>+<kbd>f</kbd>.
Karabiner is a keyboard customizer for macOS. I've used it for a while to map my caps lock key to <kbd>cmd</kbd> + <kbd>ctrl</kbd> + <kbd>option</kbd> + <kbd>shift</kbd>. This key combination is sometimes called a hyper key. With this keyboard override, I use other programs like Hammerspoon and...
I've starting playing around with Fireworks.ai to run inference using open source language models with an API. Fireworks' product is the best I've come across for this use case. While Fireworks has their own client, I wanted to try and use the OpenAI Python SDK compatibility approach, since I have...
End of year review
At the beginning of 2023, I set some goals for myself. Here are those goals and how the year turned out.
In a previous note, I discussed running coroutines in a non-blocking manner using gather. This approach works well when you have a known number of coroutines that you want to run in a non-blocking manner. However, if you have tens, hundreds, or more tasks, especially when network calls are...
Exploring accidental synchronous blocking in asynchronous programming in Python with coroutines.
Python coroutines allow for asynchronous programming in a language that earlier in its history, has only supported synchronous execution. I've previously compared taking a synchronous approach in Python to a parallel approach in Go using channels. If you're familiar with async/await in JavaScript,...