<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Scala on Luke Wassink</title><link>http://lukewassink.com/tags/scala/</link><description>Recent content in Scala on Luke Wassink</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 06 Sep 2026 15:33:45 -0400</lastBuildDate><atom:link href="http://lukewassink.com/tags/scala/index.xml" rel="self" type="application/rss+xml"/><item><title>From Categories to Types</title><link>http://lukewassink.com/posts/categories-to-types/</link><pubDate>Sun, 06 Sep 2026 15:33:45 -0400</pubDate><guid>http://lukewassink.com/posts/categories-to-types/</guid><description>&lt;h2 id="who-is-this-for"&gt;&#10; Who is this for?&#10; &lt;a class="heading-link" href="#who-is-this-for"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;At this point, there are, by conservative estimate, 80,000 blog posts and&#10;Youtube videos that explain how monads fit into functional programming. It seems&#10;to be mandated by federal law that 99% of them begin by reassuring you that,&#10;unlike all the other explanations out there, &lt;em&gt;this explanation&lt;/em&gt; won&amp;rsquo;t use any&#10;fancy math or require any knowledge of category theory. This blog post belongs&#10;to the remaining 1%.&lt;/p&gt;</description></item><item><title>Matrix Multiplication Optimization</title><link>http://lukewassink.com/posts/matrix-multiplication-optimization/</link><pubDate>Thu, 03 Sep 2026 16:58:27 -0500</pubDate><guid>http://lukewassink.com/posts/matrix-multiplication-optimization/</guid><description>&lt;h1 id="optimizing-matrix-multiplication"&gt;&#10; Optimizing Matrix Multiplication&#10; &lt;a class="heading-link" href="#optimizing-matrix-multiplication"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;Matrix multiplication is a great test case to understand performance&#10;optimization. The underlying algorithm is fairly simple, and it benefits&#10;significantly from some classic optimizations like:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;reducing array access&lt;/li&gt;&#10;&lt;li&gt;sequential memory access&lt;/li&gt;&#10;&lt;li&gt;cache locality&lt;/li&gt;&#10;&lt;li&gt;parallelization&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;There are also fancy algorithms that reduce the asymptotic complexity, but they&#10;are so complex they usually only show benefits for very large matrices, if at&#10;all. In any case, our plan will be to use the traditional algorithm for matrix&#10;multiplication and explore the benefits we can get from other changes like: how&#10;we store the matrices, what order we do the computations in, and running parts&#10;of the computation in parallel.&lt;/p&gt;</description></item></channel></rss>