Using Ollama with LangChainGo

One of the most exciting areas of LLM-related development in 2023 is the availability of powerful (and sometimes even open-source) models we can run locally on our machines. Several tools exist that make it relatively easy to obtain, run and manage such models locally; for exampl...

There's no nil to panic

#​485 — November 21, 2023 Unsub  |  Web Version Go Weekly River: A Fast, Robust Job Queue for Go + Postgres — A new beta, open-source job queue “for building fast, airtight applications” that’s written in Go and takes advan...

Third party Emacs packages that I use (as of November 2023)

Happy birthday to Go

#​484 — November 14, 2023 Unsub  |  Web Version Go Weekly Fourteen Years of Go — Russ recaps a productive year for Go that included the introduction of profile-guided optimization (PGO), enhanced coverage profiles to improve testin...

Go modules and the domain expiry problem

Using a Markov chain to generate readable nonsense with 20 lines of Python

Describes a simple Markov chain algorithm to generate reasonable-sounding but utterly nonsensical text, and presents some example outputs as well as a Python implementation.

Retrieval Augmented Generation in Go

I've been reading more and more about LLM-based applications recently, itching to build something useful as a learning experience. In this post, I want to share a Retrieval Augmented Generation (RAG) system I've built in 100% Go and some insights I learned along the way. Some li...

Fourteen Years of Go

Happy Birthday, Go!

Demystifying function parameters in Go

In this post we're going to talk about how (and why!) different types of function parameters behave differently in Go. If you're new (or even not-so-new) to Go, this can be a common source of confusion and questions. Why do functions generally mutate maps and slices, but not o...

People skills for developers

In the second part of this series on career skills for software engineers, we’ll look at how to deal with that trickiest of species: human beings.