I’m betting OpenAI will soon have a Cloud Storage product like Google Drive or iCloud for ChatGPT Plus users. Having your personal data available in the context of a language model is a massive value add. With a product like, OpenAI can fully support use cases like “summarize my notes for the week” or “create action item reminders from this recording”. They’re already dipped their toe in the water with the Files API.
I did more exploration with Copilot, mainly for writing unit tests. Copilot is a pretty good at bootstraping unit tests, particularly in Java, where initializing the right types may take several lines and there is a large standard library. In doing this, the Copilot-written code was close enough that it saved me time relative to writing the tests from scratch. I learned that Copilot can show a ranked list of completion in a separate window in the IDE, which is helpful and can also be invoked with a hotkey (option+\ in IntelliJ), which is useful as well.
I’ve been integrating Copilot into my workflow the past few days. From my understanding, it uses OpenAI’s Codex model, which is part of the GPT-3 model series. I believe this also predates the chat models, gpt-3.5-turbo and gpt-4. As someone who has been using Cursor for my personal work for several months now, the core completion functionality of Copilot feels like a step back compared to Cursor’s cmd+k (to say nothing of chat, which both have and other features).
I finished migrating my site to the latest release of Hugo today. It’s been quite a while since I’d pulled the latest changes but most of the fixes were straightforward. A number of the partials had been updated, so I need to port my custom components to incorporate the changes. I also migrated what I’d previously kept in a static directory to assets. I looked further into using hidutil to replace Karabiner.
I’ve been looking into hidutil to potentially replace Karabiner for overriding my capslock behavior. My first attempt, follow instructions similar to this post, was close but unsuccessful. I was able to remap the capslock key, but it wasn’t trigger the key combo I had hoped for – I use cmd+option+ctrl+shift. Caplock wasn’t performing it’s normal function and the key light wasn’t turning on but it also wasn’t triggering my hotkeys. Hopefully I will have something workable after a bit more time with this.
I’ve been working on a Next.js app with a Leaflet map component. Using this combination of technologies has not gone smoothly. I’ve been running into an issue trying to make the Leaflet component render client side. From my understanding, Next.js renders React server-side by default, but this is easy to change with the 'use client' directive. After a bit of work, I was able to get a map component rendering on the page by importing it with

2023-10-18

I spent some time experiementing with Inngest, cloud software for running async jobs, workflows, crons and more. It’s quite similar to Temporal, which I am big advocate for for running durable workflows and gracefully handling failures. There are some drawbacks, but it feels simpler to get started than Temporal and has a most of the same topline capabilities. The main feature deficiencies I noticed in about an hour of research were lack of as granular retry configurations and timeouts and no support for query handlers to inspect the status of a running function/workflow.
I had a bunch of fun following along with this post with my own Hugo blog to construct a sqlite database of metadata. Building the database indices, I found a mistake I had made years ago in defining a post’s alias, which was a duplicate, so I fixed that. I’ve read a lot of praise of sqlite lately and wanted to get more familiar with the tools and ecosystem and this was a nice way to start to do that.
Further investigation with Open Interpreter today reaffirmed certain strengths but also revealed a number of weaknesses. The look is excellent at parsing structured data like JSON or CSV, doing analysis with tools like pandas and numpy, and plotting the results with matplotlib. However, it falls short when trying to perform more complex data fetching tasks. It seems to struggle to scrape websites or make use of less common libraries, at least when I tried without providing any additional documentation.
I did some more experimentation with open-interpreter today. The first use case I tried was to create, organize and reorganize files. It didn’t generate interesting content, but it was fluent at writing Python code to organize and rename files. When I prompted it to generate a fake dataset, it installed faker and created a CSV with the columns I requested. When I requested it plot those data points, it installed matplotlib and did so without issue.