<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>lemonfold.io</id>
  <title>Lemonfold.io Blog</title>
  <updated>2023-08-08T06:55:51.149723+00:00</updated>
  <link href="lemonfold.io"/>
  <link href="lemonfold.io/blog/atom.xml" rel="self"/>
  <generator uri="https://ablog.readthedocs.org/" version="0.10.28">ABlog</generator>
  <entry>
    <id>lemonfold.io/posts/2022/dbc/typed_decorator/</id>
    <title>Fully-typed Python decorator with optional arguments</title>
    <updated>2022-09-15T00:00:00+02:00</updated>
    <author>
      <name>Stefan Ulbrich</name>
    </author>
    <content type="html">&lt;div class="ablog-post-excerpt docutils container"&gt;
&lt;p&gt;This is my very first blog post! In this short post, I will show the blueprint
for a fully-typed Python decorator that optionally accepts parameters.&lt;/p&gt;
&lt;/div&gt;
</content>
    <link href="lemonfold.io/posts/2022/dbc/typed_decorator/" rel="alternate"/>
    <summary>This is my very first blog post! In this short post, I will show the blueprint
for a fully-typed Python decorator that optionally accepts parameters.</summary>
    <category term="Bestpractice" label="Best practice"/>
    <category term="Decorators" label="Decorators"/>
    <category term="Python" label="Python"/>
    <category term="Recipes" label="Recipes"/>
    <category term="Typing" label="Typing"/>
    <published>2022-09-03T00:00:00+02:00</published>
  </entry>
  <entry>
    <id>lemonfold.io/posts/2022/aiml_essentials/part1/aiml-essentials-part1/</id>
    <title>AI/ML Essentials Part1: Self-Organizing Maps</title>
    <updated>2022-10-29T00:00:00+02:00</updated>
    <author>
      <name>Stefan Ulbrich</name>
    </author>
    <content type="html">&lt;div class="ablog-post-excerpt docutils container"&gt;
&lt;p&gt;This article is the start of a series that introduces different models and algorithms to beginners&lt;/p&gt;
&lt;/div&gt;
</content>
    <link href="lemonfold.io/posts/2022/aiml_essentials/part1/aiml-essentials-part1/" rel="alternate"/>
    <summary>This article is the start of a series that introduces different models and algorithms to beginners</summary>
    <category term="AI/ML" label="AI/ML"/>
    <category term="Science" label="Science"/>
    <published>2022-10-29T00:00:00+02:00</published>
  </entry>
  <entry>
    <id>lemonfold.io/posts/2022/aiml_essentials/part2/aiml-essentials-part2/</id>
    <title>AI/ML Essentials Part 2: Cluster analysis with (Gaussian) Mixture Models</title>
    <updated>2023-01-15T00:00:00+01:00</updated>
    <author>
      <name>Stefan Ulbrich</name>
    </author>
    <content type="html">&lt;div class="ablog-post-excerpt docutils container"&gt;
&lt;p&gt;This is the second part of the series “AI/ML Essentials”, which intends to be a gentle introduction to the topic using
mostly layman’s terms and as little mathematics as possible–you don’t need an engineering degree to see the beauty
within this fascinating field.&lt;/p&gt;
&lt;/div&gt;
</content>
    <link href="lemonfold.io/posts/2022/aiml_essentials/part2/aiml-essentials-part2/" rel="alternate"/>
    <summary>This is the second part of the series “AI/ML Essentials”, which intends to be a gentle introduction to the topic using
mostly layman’s terms and as little mathematics as possible–you don’t need an engineering degree to see the beauty
within this fascinating field.</summary>
    <category term="AI/ML" label="AI/ML"/>
    <category term="Science" label="Science"/>
    <published>2023-01-15T00:00:00+01:00</published>
  </entry>
  <entry>
    <id>lemonfold.io/posts/2023/aiml_essentials/part3/aiml-essentials-part3/</id>
    <title>AI/ML Essentials part 3: Gaussian Process Regression</title>
    <updated>2023-05-26T00:00:00+02:00</updated>
    <author>
      <name>Stefan Ulbrich</name>
    </author>
    <content type="html">&lt;div class="ablog-post-excerpt docutils container"&gt;
&lt;p&gt;In this article in the AI/ML Essentials series, we will learn about yet another
machine learning model—Gaussian Process Regression. In the previous articles, we
encountered instances of &lt;em&gt;unsupervised&lt;/em&gt; learning (for clustering and density
estimation). The last issue presented a simple taxonomy of machine learning,
which guides us through the series:&lt;/p&gt;
&lt;/div&gt;
</content>
    <link href="lemonfold.io/posts/2023/aiml_essentials/part3/aiml-essentials-part3/" rel="alternate"/>
    <summary>In this article in the AI/ML Essentials series, we will learn about yet another
machine learning model—Gaussian Process Regression. In the previous articles, we
encountered instances of unsupervised learning (for clustering and density
estimation). The last issue presented a simple taxonomy of machine learning,
which guides us through the series:</summary>
    <category term="AI/ML" label="AI/ML"/>
    <category term="Science" label="Science"/>
    <published>2023-05-26T00:00:00+02:00</published>
  </entry>
  <entry>
    <id>lemonfold.io/posts/2023/citrate/introduction/</id>
    <title>Announcing the Citrate workspace</title>
    <updated>2023-07-01T00:00:00+02:00</updated>
    <author>
      <name>Stefan Ulbrich</name>
    </author>
    <content type="html">&lt;div class="ablog-post-excerpt docutils container"&gt;
&lt;p&gt;Data science with rust! Finally, two years after having started to learn and develop in the
&lt;a class="reference external" href="https://www.rust-lang.org/"&gt;Rust programming language&lt;/a&gt;,
I am happy to find the time to write about my two projects
that I have been developing in my rare spare time during the last year.&lt;/p&gt;
&lt;/div&gt;
</content>
    <link href="lemonfold.io/posts/2023/citrate/introduction/" rel="alternate"/>
    <summary>Data science with rust! Finally, two years after having started to learn and develop in the
Rust programming language,
I am happy to find the time to write about my two projects
that I have been developing in my rare spare time during the last year.</summary>
    <category term="AI/ML" label="AI/ML"/>
    <category term="Citrate" label="Citrate"/>
    <category term="Potpourri" label="Potpourri"/>
    <category term="Rust" label="Rust"/>
    <published>2023-07-01T00:00:00+02:00</published>
  </entry>
  <entry>
    <id>lemonfold.io/posts/2023/citrate/cerebral/cerebral_part1_motivation/</id>
    <title>Citrate Part 1: My First Rust Project</title>
    <updated>2023-07-02T00:00:00+02:00</updated>
    <author>
      <name>Stefan Ulbrich</name>
    </author>
    <content type="html">&lt;div class="ablog-post-excerpt docutils container"&gt;
&lt;p&gt;In this blog post, I want to announce &lt;a class="reference external" href="https://github.com/StefanUlbrich/citrate/tree/main/cerebral-rs"&gt;Cerebral&lt;/a&gt; a
framework written in Rust for experimenting with Self-organizing Neural Networks such as the famous &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Self-organizing_map"&gt;Kohonen
networks&lt;/a&gt;. It is designed in a way that a network can be defined by
composing a model out of a variety of algorithm that define its behavior. Unlike deep learning architectures, the
behavior is not defined by a composition of layers, loss functions and diverse learning methods. This type of network
defines a less hierarchical topology and learning rules affect all neurons at once. Therefore, this project has
different goals as prominent deep learning frameworks, and thus, a different architecture. Being my
first Rust library (applications are simpler to implement), I had to evaluate a few options to achieve my goal and I
often failed enough battling with Rust’s occasionally frustrating type system.&lt;/p&gt;
&lt;/div&gt;
</content>
    <link href="lemonfold.io/posts/2023/citrate/cerebral/cerebral_part1_motivation/" rel="alternate"/>
    <summary>In this blog post, I want to announce Cerebral a
framework written in Rust for experimenting with Self-organizing Neural Networks such as the famous Kohonen
networks. It is designed in a way that a network can be defined by
composing a model out of a variety of algorithm that define its behavior. Unlike deep learning architectures, the
behavior is not defined by a composition of layers, loss functions and diverse learning methods. This type of network
defines a less hierarchical topology and learning rules affect all neurons at once. Therefore, this project has
different goals as prominent deep learning frameworks, and thus, a different architecture. Being my
first Rust library (applications are simpler to implement), I had to evaluate a few options to achieve my goal and I
often failed enough battling with Rust’s occasionally frustrating type system.</summary>
    <category term="AI/ML" label="AI/ML"/>
    <category term="Citrate" label="Citrate"/>
    <category term="Potpourri" label="Potpourri"/>
    <category term="Rust" label="Rust"/>
    <published>2023-07-02T00:00:00+02:00</published>
  </entry>
  <entry>
    <id>lemonfold.io/posts/2023/rust/sorting_ndarray/</id>
    <title>Sorting arrays of the ndarray crate</title>
    <updated>2023-08-08T00:00:00+02:00</updated>
    <author>
      <name>Stefan Ulbrich</name>
    </author>
    <content type="html">&lt;div class="ablog-post-excerpt docutils container"&gt;
&lt;p&gt;I came across a problem where I needed to sort an array by its values in one column
and potentially sort other arrays with that index. In Python, this is &lt;em&gt;very&lt;/em&gt; easy:&lt;/p&gt;
&lt;/div&gt;
</content>
    <link href="lemonfold.io/posts/2023/rust/sorting_ndarray/" rel="alternate"/>
    <summary>I came across a problem where I needed to sort an array by its values in one column
and potentially sort other arrays with that index. In Python, this is very easy:</summary>
    <category term="Rust" label="Rust"/>
    <published>2023-08-07T00:00:00+02:00</published>
  </entry>
</feed>
