2024-01-05

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.

I finally had a chance to use Github Copilot Chat in VS Code. It has a function to chat inline like Cursor, which has worked quite well given my initial use of it. I’m looking forward to using this more. Unfortunately, it’s not available for all IDEs yet but hopefully will be soon!


I watched lesson 3 of the FastAI course. I’ve really enjoyed Jeremy Howard’s lecture’s so far.

I looked into 11ty today to see if it could be worth migrating away from hugo, which is how (at the time of this post) I build my blog. After a bit of research and browsing, I setup this template and copied over some posts. Some over my older posts were using Hugo’s markup for syntax highlighting. I converted these to standard markdown code fences (which was worthwhile regardless). I also needed to adjust linking between posts. In Hugo, I use ref. In 11ty, these need to be relative links, e.g. /posts/2023/future-of-personal-knowledge. In Hugo, this approach works as well, so I may move to it.

I would love if OpenAI added support for presetting a max_tokens url parameter in the Playground. Something as simple as this:

https://platform.openai.com/playground?mode=chat&model=gpt-4-1106-preview&max_tokens=1024

My most common workflow (mistake):

  • Press my hotkey to open the playground
  • Type in a prompt
  • Submit with cmd+enter
  • Cancel the request
  • Increase the “Maximum Length” to something that won’t get truncated
  • Submit the request again

2023-11-25

A thoroughly enjoyable and inspiring read by Omar about his 20 year journey to date.

Quantity was important. Quantity led to emergent of quality.

Read the documentation: I can’t emphasize how useful this is. There are gems upon gems in the documentation. A good documentation gives a glimpse of the mind of the authors, and a glimpse of their experience.

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 expect a more feature complete offering is on the way.

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). In general, when writing code, I’ve found I don’t really want line completion, I want idea completion. Copilot can do this, but you have to set it up in the right way, with a comment or a well named function stub

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. It looks like the utility can’t map a single keypress to multiple keys, so it can’t directly substitute for how I use Karabiner. Along the way, I found this useful tool for generating a plist file to load a startup to persist hotkeys across system restarts. I was considering switching to use the right command key, but it looks like Hammerspoon may not provide hotkey support for that according to this issue. I might be able to put something together in combination with skhd, but this idea is going to the backburner for now.