<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on Blog of Jan</title>
    <link>/</link>
    <description>Recent content in Home on Blog of Jan</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 07 Jul 2025 00:20:35 +0100</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>A closer look at the Model Context Protocol</title>
      <link>/posts/2025-05-04-mcp_from_scartch/</link>
      <pubDate>Mon, 07 Jul 2025 00:20:35 +0100</pubDate>
      
      <guid>/posts/2025-05-04-mcp_from_scartch/</guid>
      <description>I think the main reason the Model Context Protocol (MCP)1 has become popular is its simplicity. Like any remote procedure call protocol, it allows us to call a function outside our own process. That function can run in a different process on the same machine or a different machine entirely. As such the remote function can be implemented in any language as long as the client and server use the same RPC protocol.</description>
    </item>
    
    <item>
      <title>Remind yourself that ChatGPT is a slow and insidious killer</title>
      <link>/posts/2025-03-20-chatgpt_prevents_learning/</link>
      <pubDate>Thu, 20 Mar 2025 00:28:35 +0100</pubDate>
      
      <guid>/posts/2025-03-20-chatgpt_prevents_learning/</guid>
      <description>It feels like the tide is shifting. Influencers like The primagen have gone from being critical about LLM code assistants to downright dismissing them. And on r/programming I came across three posts condemning vibe coding in the last week alone. Criticism of LLM integrations in IDEs seems well-established, and I imagine most of us can’t use tools like Cursor or GitHub Copilot at work anyways. So instead I want to talk about how ChatGPT, Claude &amp;amp; Co change the way we search for answers.</description>
    </item>
    
    <item>
      <title>Do instructions actually change text embeddings? </title>
      <link>/posts/do-instructions-actually-change-text-embeddings/</link>
      <pubDate>Sat, 11 Jan 2025 00:28:35 +0100</pubDate>
      
      <guid>/posts/do-instructions-actually-change-text-embeddings/</guid>
      <description>When we humans read a text, we are not just reading the characters that make up the text. Instead, we map the words to a mental model of the world. For example, when you&amp;rsquo;re reading the word warm, you have an idea of what warm represents. You know how it relates to other concepts such as temperature, cold, or lava. One attempt at capturing these attributes is to create a numerical embedding of a text.</description>
    </item>
    
    <item>
      <title>Gotta load fast! Speeding up this blog</title>
      <link>/posts/speeding-up-this-blog/</link>
      <pubDate>Thu, 17 Oct 2024 00:28:35 +0100</pubDate>
      
      <guid>/posts/speeding-up-this-blog/</guid>
      <description>I’ve been hosting this blog on GitLab Pages for the past eight years or so, and it’s been working great — no real issues. Well, there is one &amp;ldquo;problem.&amp;rdquo; The page loading speed isn’t exactly slow . . . but it’s not fast either. Opening the dev tools reveals that the main culprit is latency. GitLab Pages are hosted in the United States, while I’m based across the pond in Germany.</description>
    </item>
    
    <item>
      <title>Compiling math statements to executables</title>
      <link>/posts/2024-08-21_math-compiler/</link>
      <pubDate>Wed, 21 Aug 2024 00:28:35 +0100</pubDate>
      
      <guid>/posts/2024-08-21_math-compiler/</guid>
      <description>We&amp;rsquo;re going to make our own compiler that is completely self sufficient. No libraries, no regex engine, no parser, no assembler. We will do everything by hand and we will end up with a working executable but what is the compiler? At its core, a compiler is a tool that translates from one language into another language. However, in more practical terms, we typically think of compilers as translating programming languages to executables.</description>
    </item>
    
    <item>
      <title>Using clib in ZIG for a simple HTTP Server</title>
      <link>/posts/2024-04-18-zig-clib-sockets/</link>
      <pubDate>Fri, 16 Feb 2024 00:28:35 +0100</pubDate>
      
      <guid>/posts/2024-04-18-zig-clib-sockets/</guid>
      <description>I thought that implementing sockets using the standard clib library rather than a Zig library would be a good &amp;ldquo;hello world&amp;rdquo; project. It&amp;rsquo;s a good way to learn about ZIG while also seeing how well it integrates with C code. The code itself is basically a copy of this tutorial. As such I will focus on zig language features and assume the reader is familiar with the socket interface.
Zig allows direct importing of C headers through a special import directive @cImport.</description>
    </item>
    
    <item>
      <title>About</title>
      <link>/about/</link>
      <pubDate>Sun, 04 Feb 2024 18:30:58 +0000</pubDate>
      
      <guid>/about/</guid>
      <description>My name is Jan Scheffczyk, and I currently work at the Fraunhofer Institute. In my team, we use natural language processing and machine learning to build tools that aid in the creation and maintenance of project requirements. I enjoy experimenting with machine learning and I am passionate about building robust services that deliver our machine learning models to customers. With my background in computer graphics, I am also comfortable with low-level programming and know how to layout data in memory to improve performance.</description>
    </item>
    
    <item>
      <title>legal</title>
      <link>/legal/</link>
      <pubDate>Sun, 04 Feb 2024 18:30:58 +0000</pubDate>
      
      <guid>/legal/</guid>
      <description>Copyright Notice © 2025 Jan Scheffczyk. All Rights Reserved.
Restrictions on Use for AI Training All content published on this blog, including but not limited to articles, posts, text, images, graphics, code snippets, and metadata (collectively, &amp;ldquo;Content&amp;rdquo;), is the intellectual property of Jan Scheffczyk unless otherwise stated.
The scraping, harvesting, downloading, or any other use of the Content on this site for the purpose of training artificial intelligence (AI) systems, machine learning (ML) models, large language models (LLMs), or any similar technology, now known or hereafter developed, is strictly prohibited without the express prior written consent of the copyright holder.</description>
    </item>
    
    <item>
      <title>Master: Introducing the component coreference resolution task for requirement specification</title>
      <link>/posts/2022-04-24-master/</link>
      <pubDate>Fri, 01 Apr 2022 00:28:35 +0100</pubDate>
      
      <guid>/posts/2022-04-24-master/</guid>
      <description>For models trained on masked language Modeling cos similarity is not always the best choice. Full Thesis
Abstract Consistent terminology is important for successful communication between two parties. If two parties do not agree on a common term for a component in their project, the resulting inconsistency leads to confusion and misunderstandings. In NLP this type of terminological inconsistency is called coreference since there are multiple terms that refer to a common entity.</description>
    </item>
    
    <item>
      <title>Implementing kernalized regression from scratch in python</title>
      <link>/posts/2021-03-10-regression/</link>
      <pubDate>Wed, 10 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>/posts/2021-03-10-regression/</guid>
      <description>Originally published on medium.com on 10. March 2021.
Okay, there are already plenty of articles describing linear regression but I have not seen much on kernelized regression. Well the fact that you are reading this means that you also didn’t find what you were looking for…
For completeness we will get started with ordinary linear regression.
Ordinary Linear Regression First we need some data that we can play with. Here we will just create some arbitrary 2 dimensional samples.</description>
    </item>
    
    <item>
      <title>Synthetic Silviculture: Multi-scale Modeling of Plant Ecosystems</title>
      <link>/posts/2019-07-04-ecopaper/</link>
      <pubDate>Wed, 03 Jul 2019 00:28:35 +0100</pubDate>
      
      <guid>/posts/2019-07-04-ecopaper/</guid>
      <description>Together with colleagues at KAUST, Adam Mickiewicz Univiersity and Google I co-authored Synthetic Silviculture: Multi-scale Modeling of Plant Ecosystems. My colleagues implemented the actual model for the plant and ecosystem growth and exported a graph structure for each tree as well as meta-information for the reconstruction of the plant geometry. I created around the pipeline and Houdini that reconstructs the plant geometry, generates procedural leaves depending on the tree type and correctly places and orients them on the trees.</description>
    </item>
    
    <item>
      <title>Bachelor: Interactive simulation of anisotropic fracturing with position based composite materials</title>
      <link>/posts/2018-08-24-bachelor-copy/</link>
      <pubDate>Sat, 01 Sep 2018 00:28:35 +0100</pubDate>
      
      <guid>/posts/2018-08-24-bachelor-copy/</guid>
      <description>Simulation of wood fracture Full Thesis
Abstract In this bachelor thesis we present a novel approach for simulating transverse- isotropic materials. In contrast to classical approaches that integrate the anisotropy into the strain-stress-constitutive model the presented approach is inspired by the natural structure of timber. A rod simulation that repre- sents the fibers in timber is combined with a solid simulation that represents the cementing material to create an anisotropic composite material.</description>
    </item>
    
    <item>
      <title>Recreating realistic bokeh by biasing lens-sample positions</title>
      <link>/posts/2018-03-10-bokeh/</link>
      <pubDate>Sat, 10 Mar 2018 13:28:35 +0100</pubDate>
      
      <guid>/posts/2018-03-10-bokeh/</guid>
      <description>Real lenses produce stunning images, some of which capitalize on the oddly shaped circle of confusion which a some lenses exhibits. When this shape becomes visible on the image it is commonly referred to as bokeh.
Example image where the bokeh adds a artistic element to the image
Some lenses are specifically designed to exhibit a certain shape and distribution of bokeh. However many modern raytracers such as pbrt, cylces or the blender render engine only provide a uniformly sampled disk shaped bokeh.</description>
    </item>
    
    <item>
      <title>Partical fluidsimulation based on double density relaxation</title>
      <link>/posts/2017-08-29-fluidsim/</link>
      <pubDate>Mon, 04 Sep 2017 13:28:35 +0100</pubDate>
      
      <guid>/posts/2017-08-29-fluidsim/</guid>
      <description>As the name suggests this approach is based on simulating particles, or in other words tracing the state of the fluid at a finite number of dynamic points ( also known as position based dynamics). Only external forces are integrated and other forces are solved through constraints between particles. A cloth-piece for example can be realised by apply a distance constraint between neighboring particles, keeping them at the same distance from each other.</description>
    </item>
    
    <item>
      <title> Fast ray-AABB Intersection test</title>
      <link>/posts/2017-04-12-pbrt-exercise-4-9/</link>
      <pubDate>Thu, 01 Jun 2017 13:28:35 +0100</pubDate>
      
      <guid>/posts/2017-04-12-pbrt-exercise-4-9/</guid>
      <description>As suggested by Excercise 9 in Chpater 4 I replaced the original ray-AABB (Axis Aligned Bounding Box) collision with the algorithm proposed by Martin Eisemann et. al 2007.
General Idea In order to hit a 2D AABB the ray has to pass through it&amp;rsquo;s diagonal. What diagonal to consider depends on the direction of the ray. Each component of the direction vector is either Zero (O), Positive (P) or Negative (M), thus each ray can be categorized as a combination of $(x,y,z) : x,y,z \in {O,P,M} $.</description>
    </item>
    
    <item>
      <title>A simple Game</title>
      <link>/posts/2017-03-15-simple-game/</link>
      <pubDate>Tue, 13 Sep 2016 00:28:35 +0100</pubDate>
      
      <guid>/posts/2017-03-15-simple-game/</guid>
      <description>As part of the final project of a computer graphic course at university i developed this openGL game. For the most part the game consist of basic computer-graphic techniques which are taken from online resources. Thus i will only explain the parts that i thought of myself and will redirect you to other resources for the other parts.
What is the game like? The player controls a sphere that he can move forward, backwards and sideways.</description>
    </item>
    
    <item>
      <title>L-Systems a simple Tree</title>
      <link>/posts/2017-03-13-l-system-opengl/</link>
      <pubDate>Mon, 13 Jun 2016 00:28:35 +0100</pubDate>
      
      <guid>/posts/2017-03-13-l-system-opengl/</guid>
      <description>After learning some openGL basics i decided it was time to combine fragments i already knew like phong-lighting and Camera transformations with new aspects. I came across L-systems which can be used to create plant like geometry. Since i was intrigued by the results that can be achieved i wanted to try it myself.
In general L-systems are a set of symbols (or elements of a set) that define a Alphabet.</description>
    </item>
    
    <item>
      <title>Data Oriented Design</title>
      <link>/posts/2016-07-08-data-oriented-design/</link>
      <pubDate>Mon, 08 Feb 2016 00:28:35 +0100</pubDate>
      
      <guid>/posts/2016-07-08-data-oriented-design/</guid>
      <description>Within the last few decades CPU performance doubled almost annually, leav- ing the memory performance lacking behind. While new memory generations generally increase the total data throughput, the latency decrease is marginal at best. This disparity makes it difficult to reach a high CPU utilization, which can presently only be achieved by minimizing uncached memory reads, thus avoiding the latency-bottleneck.
The full essay can be viewed here.</description>
    </item>
    
  </channel>
</rss>
