Will vs Technology

Where I, William Rudenmalm, document my quixotic struggle against technology.

Making your LLM run Python code with `llm-chain-tools` in Rust

Unleash the power of your LLM to run Python code using llm-chain-tools in Rust! Learn how to create a custom Python tool that allows your language model to perform accurate mathematical operations and more. Dive into the step-by-step guide and explore the endless possibilities with this powerful combination. Proceed with caution, as with great power comes great responsibility!

Using GPT3.5 to summarize financial reports for your favorite stocks

Discover how to create a time-saving solution for staying informed about your favorite stocks using unstructured.io, langchain, GPT-3.5, Python and some clever prompt engineering. Learn how to combine these technologies to effortlessly summarize lengthy investor documents, allowing you to quickly grasp key takeaways without investing too much time.

Leveraging Langchain to iteratively apply Large Language Models to Evaluate Job Candidate CVs

Explore the potential of Large Language Models (LLMs) in solving complex problems with this informative blog post. Understand how iteratively applying LLMs can be utilized in applications like evaluating job candidate suitability based on CVs, and learn the essential steps to effectively harness the power of these models. Delve into the world of LLMs and see how they can simplify the development process and provide innovative solutions to intricate challenges. Join us for an insightful discussion on the practical applications of LLMs.

Caching headers for Microfrontends

Microfrontends or MFEs for short, have taken over the frontend development space. One problem that teams need to solve however is that of caching. This post shows you how to do it right.

Thread is taking over IoT: How IP will change the game

Over recent years IoT has finally gained widespread adoption, both in the industry and among enthusiasts. Most devices today are using Bluetooth Low Energy, WiFi, Zigbee or Z-wave. All of these have different benefits and downsides. None of the options however fulfill the criteria of being low-power and easily integrated into an IP network. Thread allows low-power devices use IP networking opening the door for innovation in the IoT space.

Deduplication with BTRFS

BTRFS is an alternative filesystem for Linux that provides copy-on-write support which enables deduplication.

Web components - Using the Lit library

In my last post about Web components we looked using webcomponents without using any libraries. In this part see how far we can get by using Lit, a framework or more accurately a library for building web components.

Web components - a short introduction

Web components have experienced something of a second wind in recent years. This article takes a look at the possibilities and limitations of web components in the context of the move back towards native web APIs.

Building a Kafka based key-value store in Rust - Part 3: API

The third part in the series implementing a kafka based key-value store in Rust. In this part we implement the API itself.

Push-down automatons in Rust

Push-down automatons, essentially finite state machines with a Stack, are in adddition to being theoretically interesting useful for a number of tasks, such as ensuring that parenthesises are balanced in a string

Building a Kafka based key-value store in Rust - Part 2: Implementation

The second part in the series implementing a kafka based key-value store in Rust. In this part we finally start writing code and implement the logic for storage as well as Kafka.

Building a Kafka based key-value store in Rust - Part 1: Design

In this first part of a series about building a key-value store in Rust with Kafka and sled. We completed the design of the service and reason about the choice of tech.

Picking a Tech Stack - Part 1 identifying the must-have criteria

One of the first things that you have to do when embarking on a new project is choosing the set of technologies - the tech stack - that you will be using. This article discusses the principles to keep in mind when making this critical decision.

Functional programming in Java8: Filters

Java 8 adds the new Stream APIs to the Java language and runtime. These APIs increase the succinctness of the Java languages and making it almost as expressive as many dynamic languages such as Ruby and Python, without sacrificing Java's compile-time type checking. This article discusses how these new features can be used.

Never write another for-loop: Replacing Java 8 for-loops with forEach calls using the Stream API

Java 8 and JDK 1.8 introduces a new functional programming concept called a stream to java

Writing good React components

This article looks at best-practices for writing React components

The Implicit — Explicit Gap

A discussion of the connection of Implicit and Explicit processing informs UI design

Bower.js and the Future of Client-side Modularity

Twitter recently released Bower, a dependency manager for client-side JavaScript. This article discusses how Bower compares to other dependency managers and how this release affects the client-side JavaScript space as a whole.

k-means clustering in R

This post documents who to perform K-means clustering in R

Installing Meteor on ArchLinux

Guide on how to manually install Meteor on ArchLinux