In the last post I described how chat interfaces to LLMs are giving a limited view of what the LLMs could do. In this post I wanted to compare this to graphics pipelines. Graphics pipelines used to be "fixed function" , where the graphics system (such as Silicon Graphics hardware) would offer you the graphics features: you always got a matrix multiply (translate, scale, rotate, perspective, etc.)…
I often see someone say "the AI said XYZ" but my understanding is that what an LLM like ChatGPT shows us is not the the LLM answering, but something slightly different. I am going to post my current understanding, with the expectation that my readers will correct me ( xkcd 386 and/or Cunningham's Law ). When we chat with an LLM, we might see something like: User: Hello. My name is John. Assistant:…
For several years now I've been using color in my Emacs buffers to mark whether it's a "work" project or a "personal" project. I think I first showed this in a blog post I wrote in 2017 , when I had switched to spaceline 's mode line. Since then I've extended that color to also work on the tab line, current line, and header line. I wanted to make it work with the cursor color but couldn't figure…
In the last post I described how, for a particular project with certain naming conventions, I wanted to use emacs tree-sitter font-locking to highlight variables that might be used in the wrong context: I found a way to make it work for simple expressions but it was relying on regular expression matching rather than tree-sitter parse trees. I set a goal of handling these types of expressions:…
In the last post I described my initial attempt at customizing font-lock using Emacs 29 tree-sitter. Regular font locking uses regular expression matching. Tree sitter allows combining regular expression matching with parse tree matching, like "variable declaration" or "function call". The ideas I came up with were mostly things that I could have implemented with regular expressions alone, but I…
A few years ago I blogged about custom tree-sitter-based syntax highlighting in emacs . I started out with highlighting certain keywords in red. I wanted to show the keywords that interrupt control flow: Screenshot showing syntax highlighting of keywords in black or red I highlight regular keywords ( while , if ) in bold. I highlight control flow interrupting keywords ( return , continue ) in red.…
When working on my web projects I often have same the same filename in different folders, such as projectname/index.html and anotherproject/index.html . When opening files in Emacs, I might have to open index.html if I'm already in projectname/ or type ../anotherproject/index.html to open from another folder. I switch folders enough that I wanted to have a more consistent way to open things. I now…
Star Trek Red Shirt, Wikipedia, Derek Springer, CC BY-SA 2.0 People who wear red shirts on the original Star Trek have a high mortality rate . can we conclude that red shirts caused the high mortality rate? can we solve the problem by having them yellow shirts instead? Every time I see observational study results like "people who eat lots of beef get cancer" it reminds me of the Star Trek…
I often put TODO comments into my projects, including in source code. And I'll change it to DONE afterwards. I ended up keeping a list of four-letter codes: This is my collection so far: IDEA : maybe someday TODO : doing later SOON : doing soon NEXT : doing now DONE : done HACK : done in a cheesy way, blend of todo and done WAIT : waiting for some external change (event) HOLD : waiting for some…
" robot asks a question holding a book " image from stable diffusion I occasionally play with LLMs (large language models). Last time I had tried Simon Willison's llm software to search over my notes. Today I tried amaiya/onprem to ask questions about my notes. The documentation is pretty good but I made a few changes for my configuration, so I decided to write them down here. I'm running these on…
Julia Evans had a great talk called Making Hard Things Easy . One of the takeaways for me was that I should be using tools for parts of a system I find hard to remember. In particular, when writing bash scripts I should be using shellcheck . It turns out Emacs 29 has support for shellcheck , and older versions of Emacs can use the flymake-shellcheck page . To set it up in Emacs 29: ( use-package…
In a previous post I showed some examples of how railroads influenced the shape of Interstate 5 in California. In this post I have some more examples of what I call "road archaeology". Looking at the present roads, we can make guesses about the past. In Las Vegas the major casinos are along "The Strip". Just to the west of this is the interstate highway, I-15. What is the history here? My guess ,…
[Update: 13-Apr-2023 with some of the background context and some things I learned from hackernews ] [Update: 18-Dec-2023] This hidutil stopped working for me in MacOS 13.6 and 14.2. Also see other people having problems too . [Update: 28-Jan-2024] Some people say hidutil works again in Mac OS 14.3. On my Mac, I've used KeyRemap4Macbook, Karabiner, Karabiner Elements, and FunctionFlip for some of…
While on road trips I notice sometimes there are places where a road will deviate from the path I expect it to take. I take a note of it and then investigate what happened there. Usually there's some geography or history involved. Take I-5 in Northern California for example. There's a straight segment from Dunnigan CA to Williams CA: Map of I-5 between Dunnigan CA and Williams CA But let's zoom in…
Although I primarily use Emacs, I love the idea of vim text objects, and wanted to incorporate them into my editing. The Kakoune introduction explains that vim uses verb first, noun second for its commands, whereas Kakoune uses noun first, verb second. I wrote a blog post about why I prefer noun-verb over verb-noun , not only in text editors but also in games and other applications. I started…
I like to try various things out in my editor to see if they're useful. Most are interesting but not useful. On my guide to hexagons I use colors for the three hexagon axes (q, r, s). I thought it might be cool to do something similar in the text editor, for x and y: Coloring variables by which axis they refer to Type systems already do so much for us. A type system catches operations that should…
Over the years I've mentioned to people that I work in two modes: Beer Mode 🍺 I'm relaxed and make connections between many different ideas. I can come up with new creative ideas. Coffee Mode ☕ I'm focused and make progress on my work. I am productive and can complete existing projects. I assumed that the names "Beer Mode" and "Coffee Mode" are something I saw somewhere. But then when I went…
I'm a big fan of tunnels. I've previously blogged about tunnels for package delivery and tunnels for infrastructure like electricity, internet, water, etc. But I think tunnels might also be useful at a very small scale, within my yard. If we had flexible tunnel boring machines that could dig 4mm diameter tunnels: For each plant with invasive root systems (bamboo, blackberry) I'd tell the machine…
Illustration from unDraw I want to personalize things I use. I want to change the settings. I want to change the colors, the design, the functionality. It used to be more common that I could do this type of thing. But these days, it seems like companies want to use "AI" to personalize things without my consent. Instead of asking me what I want, they decide what I want. On Netflix, I'd love to…
I find that Roman Numerals didn't "click" for me. At an intellectual level, I understand how they work. But they felt unintuitive. Until now! Image of US paper currency, from Wikipedia, public domain Let's start with the simplified version: I is 1. If you want more than 1 you write more of them: II is 2, III is 3, etc. But it doesn't keep going like this. IIII is 4 (yes, it is! I'll cover IV…
Firefox 89 has a new appearance, removing features (ugh) and annoying some people while delighting others. It can be disabled by setting browser.proton.enabled to false: Firefox 89 with Proton disabled I mostly like the new design though, but I strongly dislike some elements, especially the tabs: Firefox 89 tab appearance I want the active tab to be much brighter. I couldn't see a way to set the…
I write some of my web pages with emacs org-mode, and then export to html. Like markdown, org-mode is a convenient format to write a simple subset of html. Each heading in the document will get exported with an ID so that it can be linked to from the table of contents. The default IDs look like #org3091de9 . I usually replace these with a custom id that matches the section heading, so a heading…
Transport Tycoon / OpenTTD is my favorite game of all time, and I wanted to play it on Steam. I kept getting "file not writable" error. I tracked it down to the Windows security system blocking it. To unblock: Start → Settings → Update & Security → Windows security → Open Windows Security → Virus & threat protection → Manage settings → Controlled folder access → Manage Controlled folder access →…
Update: [2021-01-24] The workarounds in this blog post are now obsolete, as openjdk, yuicompressor, and emscripten are now available in ARM homebrew. On Mac, Emscripten is available in the Intel version of Homebrew, but not the ARM version of Homebrew. I use Emscripten rarely enough that this doesn't bother me. However, I thought I'd try compiling it on the ARM version. I couldn't get openjdk…
In online collections (photos, bookmarks, blog posts, emails, etc.), “labels” and “tags” are typically words attached to the content. For example I have a photo of a hummingbird on which I used the labels hummingbird (what it is) and coyote hills (where it was). These words are non-hierarchical, unlike “categories” or “folders”. But are “labels” and “tags” the same thing? A long time ago, I read…