I pivoted to using home-manager using the standalone installation. It seems to provide a reasonable starting point and a found a fair bit of prior art when searching Github, so my hope was there would be good examples to model off of. It took me a frustrating time to realize after running home-manager switch that only some changes took effect immediately. Knowing this probably would have saved me an hour and could have possibly solved a number of my problems from yesterday as well – I don’t have a quick way to check.Today, was a first day setting up a new computer. I spent most of the time installing applications and building up my setting with declarative configurations. This site has been helpful. I also started this walkthrough for setting up nix on a Mac.
I had to temporarily disable my nix.conf that was generated from the installer then run
nix --extra-experimental-features nix-command --extra-experimental-features flakes run nix-darwin -- switch --flake . to run the flake.A new thing I am trying is sending thanks to folks who write articles or build projects that I find useful. I got a taste of this after writing an article on fine-tuning gpt-3.5 to solve the Connections word game, even though the results didn’t turn out that well. Getting the positive feedback was quite motivating and my hope is to give others the same appreciation for the positive impact their work makes on me.I’m currently working on building a language model based chatbot that can answer questions about the contents of a database. There are a lot of products and libraries making efforts at this problem. To start, I tried out the Vanna.ai open source library. I followed this guide to get started with ChromaDB for the indices and OpenAI as the language model to query a Postgres database. I also set up a Postgres database with Docker and the Chinook dataset.For several days now, I’ve been looking into recording audio in a browser and streaming it to a backend over a websocket with the intent to do speech to text translation with an AI model. I know the pieces are all there and I’ve done something like this before (streamed audio from a Twilio IVR to a node backend, the send that to a Google Dialogflow CX agent). The current challenge is finding which pieces I want to connect.Hardly seemed with a TIL post because it was too easy, but I learned gpt-4 is proficient at building working ffmpeg commands. I wrote the prompt
convert m4a to mp3 with ffmpeg
and it responsed with
ffmpeg -i input.m4a -codec:v copy -codec:a libmp3lame -q:a 2 output.mp3 Since the problem at hand was low stakes, I just ran the command and, to my satisfaction, it worked. Language models can’t solve every problem but they can be absolutely delightful when they work.I spent another hour playing around with different techniques to try and teach and convince gpt-4 to play Connections properly, after a bit of exploration and feedback. I incorporated two new techniques
Asking for on category at a time, then giving the model feedback (correct, incorrect, 3/4) Using the chain of thought prompting technique Despite all sorts of shimming and instructions, I still struggled to get the model to
only suggest each word once, even when it already got a category correct only suggest words from the 16 word list Even giving a followup message with feedback that the previous guess was invalid didn’t seem to help.After some experimentation with GitHub Copilot Chat, my review is mixed. I like the ability to copy from the sidebar chat to the editor a lot. It makes the chat more useful, but the chat is pretty chatty and thus somewhat slow to finish responding as a result. I’ve also found the inline generation doesn’t consistently respect instructions or highlighted context, which is probably the most common way I use Cursor, so that was a little disappointing.I worked through a basic SwiftUI 2 tutorial to build a simple Mac app. Swift and SwiftUI are an alternative to accomplish the same things Javascript and React do for web. I could also use something like Electron to build a cross-platform app using web technology, but after reading Mihhail’s article about using macOS native technology to develop Paper, I was curious to dip my toe in and see what the state of the ecosystem looked like.I enjoyed this article by Robin about writing software for yourself. I very much appreciate the reminder of how gratifying it can be to build tools for yourself.