Daniel Liden

Home / Blog / About Me / Photos /

My name is Dan. I am a developer advocate at Databricks focused on Generative AI.

Before starting at Databricks, I worked at bit.io, which offered a fast and easy-to-use cloud Postgres database (with one of the best product demos I've ever seen). In my role, I used bit.io databases to manage the data in various data science research projects. I've analyzed data and written about topics such as methane emissions, Bayesian statistics, labor turnover, the size of the House of Representatives, and much more. Read more…

Recent Posts

(2023-12-17) Introduction to Emacs Hooks

Today I was customizing the appearance of org files displayed with org-tree-slide. In particular, I wanted to increase the font size and start Olivetti mode whenever I started org-tree-slide-mode and return everything to normal when I was done. This, I quickly discovered, required the use of hooks. Hooks are not especially complicated, but they are useful and worth taking a few minutes to understand. This post will cover the basics of working with hooks in emacs.

(2023-07-09) YASnippet for Prompt Templates for Chatgpt-Shell

The wonderful chatgpt-shell package by Xenodium lets you interact with the gpt-3.5 and gpt-4 APIs in emacs via a handy shell built on top of comint-mode. It also integrates well with org-mode.

I find that I tend to re-use a few prompt patterns for specific tasks. Yasnippet provides a great way to create prompt templates made up of some fixed component with placeholders for user input. I can easily insert these prompt templates when working with chatgpt-shell to gain easy access to reusable, task-specific prompts. This post describes how to start using Yasnippet for prompt templates for use with chatgpt-shell.

(2023-06-01) Writing on AI and Postgres

Since this start of this year, I've been working on and writing about AI tools for working with Postgres databases. Most of this work has involved finding different ways to integrate ChatGPT (and previously Codex) with other tools and workflows. I wanted to collect and share some of that writing here, as it's related to a lot of the other things I write about on my personal blog.

(2023-03-10) Using the ChatGPT API with Julia Part 2: Defining a Chat Struct

One of the things that makes working with the ChatGPT API a little different from working with, e.g., the davinci-text-003 model api is the need to maintain the history of a given chat session. A Julia Struct containing the chat history, coupled with a function that acts on that Struct, provides a good way to work with the ChatGPT API.

For the basics of working with the ChatGPT API, check out part 1.

(2023-03-04) Using the ChatGPT API with Julia Part 1: the HTTP.jl Library

This brief post shows the basics of using the Julia HTTP library to interact with the OpenAI ChatGPT API, which was made public a few days ago. This post will only include the minimum necessary detail for getting started with the API. Future posts will go into a little more detail on how to send message histories and engage more interactively with the API.

Post Archive

Emacs 27.1 (Org mode 9.3)