<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on staticnotes.org</title>
    <link>/posts/</link>
    <description>Recent content in Posts on staticnotes.org</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Thu, 19 Oct 2023 00:40:04 +0000</lastBuildDate>
    <atom:link href="/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>UK house price changes in real terms</title>
      <link>/posts/uk-house-prices/</link>
      <pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate>
      <guid>/posts/uk-house-prices/</guid>
      <description>&lt;p&gt;This post is a response to a newspaper article I read this morning. Every month the FT is reporting on how the housing market in the UK is performing as people love to talk about it:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;UK house prices rise less than expected in 2025 as growth slows&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;UK house prices rose by 0.6 per cent in 2025 after a slowdown at the end of the year, according to lender Nationwide. [&amp;hellip;] Prices fell 0.4 per cent between November and December to an average of £271,068. Both figures were below analysts’ expectations of a 1.2 per cent annual rise and a 0.1 per cent month-on-month expansion.    &lt;em&gt;FT Weekend (02.01.2026)&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building a local data warehouse with DuckDB, dbt, and Superset</title>
      <link>/posts/duckdb-dbt-superset/</link>
      <pubDate>Sun, 09 Mar 2025 15:00:00 +0000</pubDate>
      <guid>/posts/duckdb-dbt-superset/</guid>
      <description>&lt;p&gt;In previous blog posts, I described two DuckDB use cases for data scientists and data engineers: &#xA;&lt;a href=&#34;../posts/duckdb-for-data-scientists/&#34; &#xA;&gt;Querying remote parquet files&#xA;&lt;/a&gt; and &#xA;&lt;a href=&#34;../posts/duckdb-large-datasets/&#34; &#xA;&gt;processing larger-than memory datasets&#xA;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Now I want to explore if I can set up a local and open-source version of the analytics data stack that we use at my company. At work, we are using Snowflake, dbt cloud, and Google&amp;rsquo;s Looker which cost us several thousand EUR per month. I am going to use the following open-source tools in my local setup:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Book notes: Poor Charlie’s Almanack</title>
      <link>/posts/poor-charlies-almanack-notes/</link>
      <pubDate>Fri, 21 Feb 2025 00:00:00 +0000</pubDate>
      <guid>/posts/poor-charlies-almanack-notes/</guid>
      <description>&lt;p&gt;The book is a collection of speeches that Charlie Munger, partner of Warren Buffett at Berkshire Hathaway, gave over the years (1986 - 2007) at universities and institutions.&lt;/p&gt;&#xA;&lt;p&gt;I found four interesting themes across the speeches:&lt;/p&gt;&#xA; &lt;h2 id=&#34;advocating-interdisciplinary-collaboration-between-university-departments&#34;&gt;&#xA;  &lt;a href=&#34;#advocating-interdisciplinary-collaboration-between-university-departments&#34; class=&#34;header-link&#34;&gt;&#xA;    Advocating interdisciplinary collaboration between university departments&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;He believes that the social sciences, especially economics and psychology, are focusing on too narrow theoretical problems. Academics suffer from a &lt;em&gt;man-with-a-hammer-syndrome&lt;/em&gt;. He suggests that they collaborate more across departments, e.g. economics borrowing from psychology, and within departments, e.g. macroeconomists shouldn&amp;rsquo;t avoid microeconomic explanations. Moreover, the social science should try to incorporate findings / models from the hard sciences (physics, chemistry, etc.) and attribute properly.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How related posts are computed</title>
      <link>/posts/how-recommendations-work/</link>
      <pubDate>Sun, 09 Feb 2025 00:00:00 +0000</pubDate>
      <guid>/posts/how-recommendations-work/</guid>
      <description>&lt;p&gt;The number next to related posts at the bottom of each page is the advertised post&amp;rsquo;s &amp;ldquo;similarity&amp;rdquo; to the currently viewed page (from 1.0 to -1.0).&lt;/p&gt;&#xA;&lt;p&gt;I am using the following process to compute related posts locally:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Summarize every post and TIL using local Llama 3.1 (&lt;code&gt;llama3.1:8b-instruct-q5_0&lt;/code&gt; via Ollama) with the following prompt:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;promptbox&#34;&gt;&#xA;    &lt;div class=&#34;promptbox-title&#34;&gt;&#xA;        Prompt&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;promptbox-content&#34;&gt;&#xA;        &lt;p&gt;You are an analyst and editor with many years of experience in reading and synthesizing content.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Book notes: How Big Things Get Done by Bent Flyvbjerg and Dan Gardner</title>
      <link>/posts/how-big-things-get-done/</link>
      <pubDate>Sun, 02 Feb 2025 00:00:00 +0000</pubDate>
      <guid>/posts/how-big-things-get-done/</guid>
      <description>&lt;p&gt;&#xA;&lt;a href=&#34;https://itu.dk/flyvbjerg&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;Bent Flyvbjerg&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.7em; padding-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 512 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt; is an economics professor at IT University of Copenhagen. He maintains a database of megaprojects (power plants, opera halls, tunnels, airports) and their planned and realized timelines and budgets. He researches the reasons why modern megaprojects often fail to deliver on time and on budget. It has recently become quite popular to &#xA;&lt;a href=&#34;https://patrickcollison.com/fast&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;discuss&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.7em; padding-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 512 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt; the apparent decrease in speed with which large-scale projects are realized. Examples are easy to find, e.g. the delayed &#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/High_Speed_2&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;High Speed Rail 2 (HS2)&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;                style=&#34;height: 0.7em; width: 0.7em; margin-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;                class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;                viewBox=&#34;0 0 640 512&#34;&gt;&#xA;                &lt;path fill=&#34;currentColor&#34;&#xA;                    d=&#34;M640 51.2l-.3 12.2c-28.1 .8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3 .3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4 .2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5 .3v13.1c-19.4 .6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4 .3-3.6 0-10.3 .3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5 .8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1 .2 .5z&#34;&gt;&#xA;                &lt;/path&gt;&#xA;            &lt;/svg&gt;&#xA;        &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt; project or the time and cost overruns of the &#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/Construction_of_Berlin_Brandenburg_Airport&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;Berlin Brandenburg Airport (BER)&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;                style=&#34;height: 0.7em; width: 0.7em; margin-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;                class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;                viewBox=&#34;0 0 640 512&#34;&gt;&#xA;                &lt;path fill=&#34;currentColor&#34;&#xA;                    d=&#34;M640 51.2l-.3 12.2c-28.1 .8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3 .3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4 .2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5 .3v13.1c-19.4 .6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4 .3-3.6 0-10.3 .3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5 .8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1 .2 .5z&#34;&gt;&#xA;                &lt;/path&gt;&#xA;            &lt;/svg&gt;&#xA;        &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt;. Counter-examples are less common (or less newsworthy), e.g. the 2023 Notre-Dame Reconstruction.&lt;/p&gt;</description>
    </item>
    <item>
      <title>LLM prompt heuristics that definitely maybe work</title>
      <link>/posts/prompt-heuristics/</link>
      <pubDate>Fri, 11 Oct 2024 14:56:00 +0000</pubDate>
      <guid>/posts/prompt-heuristics/</guid>
      <description>&lt;p&gt;Effective prompt writing for large language models continues to be a dark art. Having read the prompt engineering blogs from Meta, Anthropic, and OpenAI and watched some of Anthropic&amp;rsquo;s prompt discussions online, it does feel more like design than engineering. Even employees from the same lab don&amp;rsquo;t agree what tricks actually work. If you have time watch &#xA;&lt;a href=&#34;https://www.youtube.com/watch?v=hkhDdcM5V94&amp;amp;pp=ygUqcHJvbXB0IGVuZ2luZWVyaW5nIG1hc3RlcmNsYXNzIGFpIGVuZ2luZWVy&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;this video&#xA;    &#xA;&#xA;        &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.9em; margin-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 448 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M549.7 124.1c-6.3-23.7-24.8-42.3-48.3-48.6C458.8 64 288 64 288 64S117.2 64 74.6 75.5c-23.5 6.3-42 24.9-48.3 48.6-11.4 42.9-11.4 132.3-11.4 132.3s0 89.4 11.4 132.3c6.3 23.7 24.8 41.5 48.3 47.8C117.2 448 288 448 288 448s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zm-317.5 213.5V175.2l142.7 81.2-142.7 81.2z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;&#xA;    &#xA;    &#xA;&lt;/a&gt; of one of Anthropic&amp;rsquo;s prompt engineers running a prompting masterclass. While giving good heuristics to the audience he is careful not to make any definite statements.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Processing 112M rows of steam reviews locally with DuckDB</title>
      <link>/posts/duckdb-large-datasets/</link>
      <pubDate>Sat, 28 Sep 2024 13:43:40 +0000</pubDate>
      <guid>/posts/duckdb-large-datasets/</guid>
      <description>&lt;p&gt;In &#xA;&lt;a href=&#34;../posts/duckdb-for-data-scientists/&#34; &#xA;&gt;DuckDB use cases for data scientists: Querying remote S3 files&#xA;&lt;/a&gt; I wrote how I use DuckDB as a convenient way to query data from CSV or Parquet files in S3. Another use case for data scientists and data engineers is DuckDB&amp;rsquo;s ability to processing larger-than-memory data on your local machine. For us data scientists this fills the gap between&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;small data that you can transform with pandas&lt;/li&gt;&#xA;&lt;li&gt;big data that typically requires a multi-node processing engine like PySpark.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In this post I am going to run some exploratory queries against this &#xA;&lt;a href=&#34;https://www.kaggle.com/datasets/kieranpoc/steam-reviews/&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;kaggle Steam review dataset&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.7em; padding-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 512 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt;. It contains 112M rows of Steam game reviews and comes as an uncompressed 46GB CSV file (17GB compressed). Let&amp;rsquo;s find out how my MacBook copes with it. Later I am going to run a small comparison against &#xA;&lt;a href=&#34;https://docs.pola.rs/&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;polars&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.7em; padding-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 512 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt;, a DataFrame library, which is often mentioned for out-of-memory processing.&lt;span class=&#34;sidenote-number&#34;&gt;&lt;small class=&#34;sidenote&#34;&gt;I am not comparing against pandas because its inability to work with large datasets was one of the reasons why I explored this topic. However, you could do this &#xA;&lt;a href=&#34;https://pandas.pydata.org/docs/user_guide/scale.html#use-chunking&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;with chunking&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.7em; padding-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 512 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt;.&lt;/small&gt;&lt;/span&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Interest rate expectations</title>
      <link>/posts/interest-rate-expecations/</link>
      <pubDate>Sat, 14 Sep 2024 00:00:00 +0000</pubDate>
      <guid>/posts/interest-rate-expecations/</guid>
      <description>&lt;p&gt;This morning, the top headline on the front page of my weekly newspaper was:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Bets rise on bumper rate cut by Fed&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Investors have sharply increased their bets on half percentage point interest rate cut by the Federal reserve next week as the US central bank prepares to lower borrowing cost for the first time in more than four years. Traders in swaps markets are pricing in a 43 percent chance the Fed will opt for a bumper cut in a bid to prevent high rates damaging the economy. -  &lt;em&gt;FT Weekend (14.9.2024)&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Clearing up confusion around IPython, ipykernel, and Jupyter notebooks</title>
      <link>/posts/jupyter-confusion/</link>
      <pubDate>Mon, 26 Aug 2024 00:00:00 +0000</pubDate>
      <guid>/posts/jupyter-confusion/</guid>
      <description>&lt;p&gt;One of my big recurring time sinks while doing data science work used to be trying to get my colleagues&amp;rsquo; jupyter notebooks to run on my machine. The main contributing factors:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;My team generally uses poetry environments to improve reproducibility, but sometimes dependencies aren&amp;rsquo;t specified&lt;/li&gt;&#xA;&lt;li&gt;I use VS code and the jupyter extension to edit notebooks in VS code which requires more configuration then running the Jupyter web UI.&lt;/li&gt;&#xA;&lt;li&gt;I lacked a clear understanding of the differences of &lt;code&gt;IPython&lt;/code&gt;, &lt;code&gt;ipykernel&lt;/code&gt;, &lt;code&gt;jupyter&lt;/code&gt; and which python environments are being used when running a notebook.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;So this is my attempt at a &#xA;&lt;a href=&#34;https://www.swyx.io/friendcatchers&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;friendcatcher&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.7em; padding-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 512 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt;. I hope this saves you a few minutes the next time you run into similar issues.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Data analysis: Vätternrundan 2024 results</title>
      <link>/posts/vatternrundan-results/</link>
      <pubDate>Sat, 03 Aug 2024 00:00:00 +0000</pubDate>
      <guid>/posts/vatternrundan-results/</guid>
      <description>&lt;p&gt;In 2024, I was foolish enough to participate in the &#xA;&lt;a href=&#34;https://vatternrundan.se/en/&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;Vätternrundan&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.7em; padding-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 512 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt;, which is a 315km distance bike sportive around Sweden&amp;rsquo;s second biggest lake. It took me and my friends a little less than 11.5 hours of cycling (15h including breaks).&lt;/p&gt;&#xA;&lt;p&gt;Since this event is a &#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/Cyclosportive&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;sportive&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;                style=&#34;height: 0.7em; width: 0.7em; margin-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;                class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;                viewBox=&#34;0 0 640 512&#34;&gt;&#xA;                &lt;path fill=&#34;currentColor&#34;&#xA;                    d=&#34;M640 51.2l-.3 12.2c-28.1 .8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3 .3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4 .2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5 .3v13.1c-19.4 .6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4 .3-3.6 0-10.3 .3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5 .8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1 .2 .5z&#34;&gt;&#xA;                &lt;/path&gt;&#xA;            &lt;/svg&gt;&#xA;        &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt;, not a race, the organizers only publish finishing times via a bib number search on &#xA;&lt;a href=&#34;https://vatternrundan.se/en/participants-results/&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;their website&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.7em; padding-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 512 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt;. However, I was curious to understand how well my group did overall.&#xA;To get my hands on the data I wrote a small scraping script to collect all finish times from the results page.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to better remember books</title>
      <link>/posts/reading-and-note-taking/</link>
      <pubDate>Sun, 26 May 2024 00:00:00 +0000</pubDate>
      <guid>/posts/reading-and-note-taking/</guid>
      <description>&lt;p&gt;In this article I am going to describe the system that I use to retain more information from the non-fiction books that I read. There seem to be two schools of thought about how to best retain the content of non-fiction books.&#xA;The first approach is best described by the quote:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;I cannot remember the books I’ve read any more than the meals I have eaten; even so, they have made me.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>A great weekend</title>
      <link>/posts/great-weekend/</link>
      <pubDate>Sun, 25 Feb 2024 00:00:00 +0000</pubDate>
      <guid>/posts/great-weekend/</guid>
      <description>&lt;p&gt;After a stressful work week I sometimes fall into the trap of trying to maximize how I use my days off. This makes me restless. I sometimes need to remind myself that the weekend is not about squeezing as many productively used hours into the day, but rather about just living, relaxing, and embracing a little bit of boredom and randomness in your life.&lt;/p&gt;&#xA;&lt;p&gt;So here is a list of activities that make a weekend great:&lt;/p&gt;</description>
    </item>
    <item>
      <title>DuckDB use cases for data scientists: Querying remote S3 files</title>
      <link>/posts/duckdb-for-data-scientists/</link>
      <pubDate>Sun, 25 Feb 2024 00:00:00 +0000</pubDate>
      <guid>/posts/duckdb-for-data-scientists/</guid>
      <description>&lt;p&gt;&#xA;&lt;a href=&#34;https://duckdb.org/&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;DuckDB&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.7em; padding-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 512 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt; is a pretty cool &lt;em&gt;in-process&lt;/em&gt; OLAP analytical database that I started to spin up on the fly for quick data analysis. What SQLite is to &lt;em&gt;Postgres&lt;/em&gt;, DuckDB is to &lt;em&gt;Snowflake&lt;/em&gt;. It is a single executable without dependencies and stores databases in local files.&lt;/p&gt;&#xA;&lt;p&gt;I can think of four use cases for data science work:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;DuckDB supports larger-than-memory workloads by loading data sequentially. You can use it to analysis datasets that are too large for Pandas (and too small to justify PySpark).&lt;/li&gt;&#xA;&lt;li&gt;I can query CSV, parquet, and JSON files directly from remote endpoints, e.g. S3, using SQL.&lt;/li&gt;&#xA;&lt;li&gt;I can replace Snowflake queries with DuckDB queries in unit / integration tests.&lt;/li&gt;&#xA;&lt;li&gt;I can set up a &#xA;&lt;a href=&#34;https://duckdb.org/2022/10/12/modern-data-stack-in-a-box.html&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;(DuckDB + dbt)&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.7em; padding-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 512 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt; data warehouse for local development.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;I want to share here my workflow for the second use case. Inspecting parquet files in AWS S3 is a pain because I can&amp;rsquo;t easily inspect them in the AWS console. Since a few months I use DuckDB to load, inspect, and analyse parquet files from the command line. I found this reduced my cognitive load in situations where I quickly want to check a remote file, because I don&amp;rsquo;t have to download the parquet file and write a python script to inspect it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to display jupyter notebooks on your hugo blog</title>
      <link>/posts/hugo-and-jupyter/</link>
      <pubDate>Sat, 20 Jan 2024 00:00:00 +0000</pubDate>
      <guid>/posts/hugo-and-jupyter/</guid>
      <description>&lt;p&gt;I like the simplicity and ease of use of Hugo, the static site generator that powers this blog.&#xA;However, as a data scientist I want to be able to make an argument using code, data, and graphs in a Jupyter notebook. This post explains my setup how to convert a Jupyter notebook into a blog post for this website, such as &#xA;&lt;a href=&#34;../posts/covid_bipartisan_bayesian/&#34; &#xA;&gt;this&#xA;&lt;/a&gt;. Before I started, my requirements were:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I wanted to be able to easily share both the original notebook (and accompanying data) as well as the website version.&lt;/li&gt;&#xA;&lt;li&gt;I wanted to regenerate the website version from the notebook file with at most one command and without any post-processing. This is important because I usually work iteratively on notebooks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA; &lt;h2 id=&#34;writing-the-notebook&#34;&gt;&#xA;  &lt;a href=&#34;#writing-the-notebook&#34; class=&#34;header-link&#34;&gt;&#xA;    Writing the notebook&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;p&gt;The source code for this blog is available in this &#xA;&lt;a href=&#34;https://gitlab.com/frankRi89/blog&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;Gitlab repository&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.7em; padding-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 512 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt;. I created a new top-level folder &lt;code&gt;notebooks/&lt;/code&gt; and a subfolder for each notebook project I want to post about. This allows me to easily link to the Jupyter notebook and data to make it reproducible.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reproducing Nate Silver&#39;s regression analysis on COVID death rates</title>
      <link>/posts/covid_bipartisan_bayesian/</link>
      <pubDate>Mon, 20 Nov 2023 00:00:00 +0000</pubDate>
      <guid>/posts/covid_bipartisan_bayesian/</guid>
      <description>&lt;p&gt;I spent some time recently studying causal inference methods. Two great resources for this are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;a href=&#34;https://matheusfacure.github.io/python-causality-handbook/landing-page.html&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;Causal Inference for The Brave and True&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.7em; padding-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 512 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt; (frequentist view)&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;a href=&#34;https://xcelab.net/rm/statistical-rethinking/&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;Statistical Rethinking&#xA;    &#xA;        &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;            style=&#34;height: 0.7em; width: 0.7em; padding-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;            viewBox=&#34;0 0 512 512&#34;&gt;&#xA;            &lt;path fill=&#34;currentColor&#34;&#xA;                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;&#xA;            &lt;/path&gt;&#xA;        &lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;        &#xA;    &#xA;&lt;/a&gt; (Bayesian view).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;When I learn about an unfamiliar topic, I will always try to look for real-world examples. In this case I keep my eyes open about articles sharing statistical findings, where I can attempt to reproduce the results.&lt;/p&gt;</description>
    </item>
    <item>
      <title>On Writing Well - 80/20 Checklist</title>
      <link>/posts/writing-well-checklist/</link>
      <pubDate>Mon, 14 Aug 2023 00:00:00 +0000</pubDate>
      <guid>/posts/writing-well-checklist/</guid>
      <description>&lt;p&gt;This is a checklist that I use at work to quickly sense check my drafts of strategy documents, tech proposals, PR reviews, project feedback, and other places where effective writing is helpful. It&amp;rsquo;s listing suggestions from the book &#xA;&lt;a href=&#34;https://www.goodreads.com/en/book/show/53343&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;On Writing Well&#xA;    &#xA;&#xA;        &#xA;    &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;        style=&#34;height: 0.7em; width: 0.9em; margin-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;        class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;        viewBox=&#34;0 0 448 512&#34;&gt;&#xA;        &lt;path fill=&#34;currentColor&#34;&#xA;            d=&#34;M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8 .3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9 .4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2 .5-1 1.1-1.9 1.7-2.9 .2 .1 .4 .1 .6 .2 .3 3.8 .2 30.7 .1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z&#34;&gt;&#xA;        &lt;/path&gt;&#xA;    &lt;/svg&gt;&#xA;&lt;/span&gt;&#xA;&#xA;&#xA;&#xA;    &#xA;&lt;/a&gt; that I covered in this &#xA;&lt;a href=&#34;../posts/writing-well/&#34; &#xA;&gt;blog post&#xA;&lt;/a&gt;. As I mentioned in the blog post I am not striving for perfection. Instead I want to be able to identify the main parts of my first draft that I can improve within 5&amp;ndash;20 min of editing time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Writing well as a skill for working well remotely</title>
      <link>/posts/writing-well/</link>
      <pubDate>Sat, 12 Aug 2023 00:00:00 +0000</pubDate>
      <guid>/posts/writing-well/</guid>
      <description>&lt;p&gt;Writing a good blog post that summarizes William Zinsser&amp;rsquo;s classic book &#xA;&lt;a href=&#34;https://www.goodreads.com/en/book/show/53343&#34; &#xA;&#xA;    target=&#34;_blank&#34;&#xA;    &gt;On Writing Well&#xA;    &#xA;&#xA;        &#xA;    &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;thinsp;&lt;svg&#xA;        style=&#34;height: 0.7em; width: 0.9em; margin-left: -0.2em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;&#xA;        class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&#xA;        viewBox=&#34;0 0 448 512&#34;&gt;&#xA;        &lt;path fill=&#34;currentColor&#34;&#xA;            d=&#34;M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8 .3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9 .4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2 .5-1 1.1-1.9 1.7-2.9 .2 .1 .4 .1 .6 .2 .3 3.8 .2 30.7 .1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z&#34;&gt;&#xA;        &lt;/path&gt;&#xA;    &lt;/svg&gt;&#xA;&lt;/span&gt;&#xA;&#xA;&#xA;&#xA;    &#xA;&lt;/a&gt; is a stressful activity. You don&amp;rsquo;t want to break his rules while writing about them. I will attempt this anyway since I learned a lot from the book that I can use while working with my team.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Book notes: How to Win Friends and Influence People by Dale Carnegie</title>
      <link>/posts/how-to-win-friends/</link>
      <pubDate>Mon, 29 May 2023 00:00:00 +0000</pubDate>
      <guid>/posts/how-to-win-friends/</guid>
      <description>&lt;p&gt;I remember listening to the audiobook version of Dale Carnegie&amp;rsquo;s &amp;ldquo;How to win Friends and Influence People&amp;rdquo; in 2015 and finding his advice intuitive and applicable to real-life situations.&#xA;However, as time passed I seem to have largely forgotten about the content. Coincidentally in the past months, this book has been mentioned to me again by friends and by guests of podcasts that I listened to. So I decided to give it another read, refresh my memory, and summarize the main points.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Book notes: Four Thousand Weeks by Oliver Burkeman</title>
      <link>/posts/4000-weeks/</link>
      <pubDate>Tue, 10 Jan 2023 00:00:00 +0000</pubDate>
      <guid>/posts/4000-weeks/</guid>
      <description>&lt;p&gt;I read this book in December 2022 at which point I have lived ~1700/4000 weeks. Here are my summary notes for every chapter as well as some overall takeaways and questions for the author.&lt;/p&gt;&#xA; &lt;h2 id=&#34;introduction-in-the-long-run-were-all-dead&#34;&gt;&#xA;  &lt;a href=&#34;#introduction-in-the-long-run-were-all-dead&#34; class=&#34;header-link&#34;&gt;&#xA;    Introduction: In the long run, we&amp;rsquo;re all dead&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Most people live only 4000 - 4700 weeks. This seems short or limited during one&amp;rsquo;s own lifetime. It is almost negligible at the cosmic timescale.&lt;/li&gt;&#xA;&lt;li&gt;This means that proper time management should be on our mind and one of our major concerns.&lt;/li&gt;&#xA;&lt;li&gt;Modern time management advice focuses on how to get more done in the same time. The author thinks this is a flawed approach as he describes time as an &lt;strong&gt;unstoppable conveyor belt&lt;/strong&gt; (Edward T. Hall).&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It brings new tasks as quickly as we can dispatch old ones&lt;/li&gt;&#xA;&lt;li&gt;Becoming more productive just causes the belt to speed up&lt;/li&gt;&#xA;&lt;li&gt;New work appears magically as we tick things of the to-do list. Someone who appears to answer quick to email requests at work, will get a reputation and receive more requests.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA; &lt;h2 id=&#34;part-1-choosing-to-choose&#34;&gt;&#xA;  &lt;a href=&#34;#part-1-choosing-to-choose&#34; class=&#34;header-link&#34;&gt;&#xA;    Part 1: Choosing to Choose&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt; &lt;h3 id=&#34;1-the-limit-embracing-life&#34;&gt;&#xA;  &lt;a href=&#34;#1-the-limit-embracing-life&#34; class=&#34;header-link&#34;&gt;&#xA;    1. The limit embracing life&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;This chapter shows us that our time and what we can do with it is very limited. Instead of pretending that we can have everything we want (in the future) through ever more work, we should embrace the limitedness and dedicate more time thinking about what matters to us and how to spend our time wisely and &lt;strong&gt;in the moment&lt;/strong&gt;. We should not live for a future version of our life that might not materialize because we will always shift the goal post further.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
