<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en_CA"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://loukidelis.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://loukidelis.com/" rel="alternate" type="text/html" hreflang="en_CA" /><updated>2026-03-16T18:56:23+00:00</updated><id>https://loukidelis.com/feed.xml</id><title type="html">David Loukidelis’ Website</title><subtitle>Personal website and blog of David Loukidelis. Tech, book reviews, random thoughts.</subtitle><entry><title type="html">Thai pie recipe</title><link href="https://loukidelis.com/2026/03/16/thai-pie-recipe.html" rel="alternate" type="text/html" title="Thai pie recipe" /><published>2026-03-16T00:00:00+00:00</published><updated>2026-03-16T00:00:00+00:00</updated><id>https://loukidelis.com/2026/03/16/thai-pie-recipe</id><content type="html" xml:base="https://loukidelis.com/2026/03/16/thai-pie-recipe.html"><![CDATA[<p>Thai pie is essentially Québécois tourtière pie with Thai aromatics. I came up with the idea because I wanted to make tourtière pie but did not have all of the spices required by <a href="https://www.allrecipes.com/recipe/261983/tourtiere-french-canadian-meat-pie/">this recipe</a>. I did happen to have lemongrass and kaffir lime leaves, and so the thai pie was born.</p>

<div class="big-image">
  <img src="/assets/images/thai-pie-recipe/finished-pie.png" alt="" />
  <p class="image-caption">A just-baked thai pie</p>
</div>
<!--more-->

<h2 id="ingredients">Ingredients</h2>

<ul>
  <li>Pie shell<br /><em>I use Tenderflake pie shells. One package contains two shells; you can use the second shell as the top crust. Homemade pie crusts are probably better but I think these are pretty good.</em></li>
  <li>1 tablespoon of coconut oil or neutral cooking oil</li>
  <li>1 pound of ground pork</li>
  <li>1 pound of ground beef</li>
  <li>2 medium potatoes, white or yellow</li>
  <li>3/4 cup of light beer (optional)</li>
  <li>1 large onion, finely diced</li>
  <li>4 cloves of minced garlic</li>
  <li>1 cup bamboo shoots<br /><em>I used canned bamboo shoots. They are also commonly sold in sealed bags. Smaller sliced shoots are better. If your bamboo shoots are too large you might want to slice them into smaller pieces before adding to the filling.</em></li>
  <li>1-2 tablespoons of green curry paste, depending on desired spice level (I use Aroy-D brand)</li>
  <li>1 Lemongrass stalk<br /><em>Bruise it with the butt of your knife before adding. It will be removed at the end.</em></li>
  <li>3-4 kaffir lime leaves, finely minced (see below)</li>
  <li>1 tablespoon of minced ginger (optional)</li>
  <li>Juice from half a lime (optional)</li>
</ul>

<p>This recipe can be easily doubled in order to make more filling. The filling can be frozen for later. The ideal filling mass for the pie shell I use is about 600g.</p>

<h3 id="using-kaffir-lime-leaves">Using kaffir lime leaves</h3>

<p>Kaffir limes leaves are tough even after cooking, so you want to mince them as finely as you can. The best way to process kaffir lime leaves for use in this pie is:</p>

<ol>
  <li>Remove the tough central stem/rib by folding the leaf in half and pulling it out</li>
  <li>Stack the de-stemmed leaves together</li>
  <li>Roll them into a tight cylinder</li>
  <li>Use a sharp knife to slice the roll into very thin ribbons (chiffonade)</li>
  <li>Then mince these ribbons into tiny pieces by rocking your knife back and forth through them</li>
</ol>

<p>Alternatively, you can bruise them with your knife and add them whole, as long as you remove them at the end. You can also omit them entirely.</p>

<h2 id="the-filling">The Filling</h2>

<p>The first thing to do is start the potatoes. The potatoes add satisfying starch to the pie. Place the potatoes in a pot and cover with water. Add a pinch of salt. Once boiling, let them simmer for about 10 minutes. Remove the potatoes and place them in cold water. When they’re cool enough to handle, peel them and mash them. While they are boiling you can start the next steps.</p>

<div class="responsive-row">
  <div class="left-image">
    <img src="/assets/images/thai-pie-recipe/potatoes-dry.png" alt="Potatoes in a sauce pan" />
    <p class="image-caption">Note: I doubled the recipe when making the filling for this post, hence the six potatoes in this sauce pan</p>
  </div>
  <div class="right-image">
    <img src="/assets/images/thai-pie-recipe/potatoes-skinned.png" alt="Potatoes after the skin is removed" />
  </div>
  <div class="right-image">
    <img src="/assets/images/thai-pie-recipe/potatoes-mashed.png" alt="Mashed potatoes" />
  </div>
</div>

<p>While your potatoes are boiling, heat your cooking oil in a pot. Add your diced onions, a pinch of salt and the lemongrass stalk. Cook until the onions are translucent (5-10 mins).</p>

<p>Add curry paste, garlic, minced kaffir lime leaves, and ginger if using. Cook for one minute.</p>

<p>Add 3/4 cup of beer if you’re using it. Alternatively, you can add some starchy potato water at this point.</p>

<div class="big-image">
    <img src="/assets/images/thai-pie-recipe/pie-filling-1.png" alt="" />
    <p class="image-caption">Filling mixture after adding beer and before adding meat</p>
  </div>

<p>Add the ground pork and beef, and bamboo shoots. Simmer, stirring occasionally, until meat is brown, and most of the liquid has evaporated, about 45 minutes. Stir in the mashed potatoes. Add lime juice if using. Remove from heat.</p>

<div class="big-image">
  <img src="/assets/images/thai-pie-recipe/pie-filling-2.png" alt="" />
  <p class="image-caption">Mixture after adding meat and bamboo shoots</p>
</div>

<p>The filling should cool almost completely before you bake your pie. When I make this in the winter I like to cool it outside (just make sure no animals will get at it). Remove the lemongrass stalk.</p>

<div class="big-image">
  <img src="/assets/images/thai-pie-recipe/pie-filling-3.png" alt="" />
  <p class="image-caption">Mixture after cooking off the liquid</p>
</div>

<h2 id="baking">Baking</h2>

<p>Fill your shell with the filling and bake according to the instructions on your pie shell box. I bake my pies at 375ºF for 50 minutes.</p>

<p>Optionally, you can add an egg wash to the top of your pie. Whisk an egg in a bowl and use a brush to apply the liquid egg generously to the top of the pie.</p>

<div class="responsive-row">
  <div class="right-image">
    <img src="/assets/images/thai-pie-recipe/pie-shells-2.png" alt="Pie shells with holes pricked in the bottom and sides" />
  </div>
  <div class="right-image">
    <img src="/assets/images/thai-pie-recipe/pie-shells-3.png" alt="Pie shells with filling" />
  </div>
  <div class="right-image">
    <img src="/assets/images/thai-pie-recipe/pie-shells-4.png" alt="Raw pies" />
  </div>
</div>

<p>Allow the pie to cool for at least 15 minutes before cutting into it.</p>

<div class="big-image">
  <img src="/assets/images/thai-pie-recipe/finished-pies-2.png" alt="" />
  <p class="image-caption">Pies cooling in my kitchen</p>
</div>

<h2 id="notes">Notes</h2>

<p>This recipe can take some time and might be best for a weekend afternoon, especially the first time you make it. The filling can be made in about an hour and a half but must be cooled before it is used in a pie. If you want to spread it across two days, make the filling, cool it in the fridge overnight, and then bake your pie the next day.</p>

<p>I like to make enough filling for 2-4 pies, separate it into 600g portions, and freeze it. Then it is easy to thaw a portion in the fridge overnight and bake a pie for dinner.</p>]]></content><author><name></name></author><category term="cooking" /><summary type="html"><![CDATA[Thai pie is essentially Québécois tourtière pie with Thai aromatics. I came up with the idea because I wanted to make tourtière pie but did not have all of the spices required by this recipe. I did happen to have lemongrass and kaffir lime leaves, and so the thai pie was born. A just-baked thai pie]]></summary></entry><entry><title type="html">Education after ChatGPT</title><link href="https://loukidelis.com/2026/01/04/education-and-ai.html" rel="alternate" type="text/html" title="Education after ChatGPT" /><published>2026-01-04T00:00:00+00:00</published><updated>2026-01-04T00:00:00+00:00</updated><id>https://loukidelis.com/2026/01/04/education-and-ai</id><content type="html" xml:base="https://loukidelis.com/2026/01/04/education-and-ai.html"><![CDATA[<p class="first-paragraph">
  A few times now, I have heard people bring up Socrates' suspicion of writing in the context of the impact of AI on learning. As a defense of AI, the point is that people (even wise people like Socrates) have long been concerned about the impact of technologies on the human mind, and in hindsight these concerns usually look silly.
</p>

<p>AI fears may be partly a <a href="https://en.wikipedia.org/wiki/Moral_panic">moral panic</a>. Still, AI <em>is</em> having an impact on learning in specific and undeniable ways. ChatGPT can write an essay better than many high school and university students, it seems, and many students are all too happy to outsource their essay writing–and critical thinking–to it. Teachers are struggling to prove that essays have been written by AI, and so the value of the whole rigmarole of essay writing and grading seems to be in question.</p>

<p>Socrates thought that dialogue was superior to reading and writing for the development of the mind. In 2026, when everything is being thrown into question, this old idea might have fresh salience. In the same way that calculators made mental math (somewhat) obsolete, maybe LLMs, essentially information regurgitation machines, have made this standard part of education obsolete also. Should classrooms return to the Socratic method of education? I have to admit I love to imagine it, and I probably would have liked for my own education to have included more open-ended dialogue and less information regurgitation.</p>

<p>I can’t say exactly how this would work and scale. One benefit of written essays is that they can be graded en masse. Maybe traditional grading systems will also have to be reworked in response to the AI disruption. What I do believe strongly is that nothing should be off the table.</p>]]></content><author><name></name></author><category term="AI" /><summary type="html"><![CDATA[A few times now, I have heard people bring up Socrates' suspicion of writing in the context of the impact of AI on learning. As a defense of AI, the point is that people (even wise people like Socrates) have long been concerned about the impact of technologies on the human mind, and in hindsight these concerns usually look silly. AI fears may be partly a moral panic. Still, AI is having an impact on learning in specific and undeniable ways. ChatGPT can write an essay better than many high school and university students, it seems, and many students are all too happy to outsource their essay writing–and critical thinking–to it. Teachers are struggling to prove that essays have been written by AI, and so the value of the whole rigmarole of essay writing and grading seems to be in question. Socrates thought that dialogue was superior to reading and writing for the development of the mind. In 2026, when everything is being thrown into question, this old idea might have fresh salience. In the same way that calculators made mental math (somewhat) obsolete, maybe LLMs, essentially information regurgitation machines, have made this standard part of education obsolete also. Should classrooms return to the Socratic method of education? I have to admit I love to imagine it, and I probably would have liked for my own education to have included more open-ended dialogue and less information regurgitation. I can’t say exactly how this would work and scale. One benefit of written essays is that they can be graded en masse. Maybe traditional grading systems will also have to be reworked in response to the AI disruption. What I do believe strongly is that nothing should be off the table.]]></summary></entry><entry><title type="html">Frontend State Beyond useState</title><link href="https://loukidelis.com/2025/12/19/frontend-state-management.html" rel="alternate" type="text/html" title="Frontend State Beyond useState" /><published>2025-12-19T00:00:00+00:00</published><updated>2025-12-19T00:00:00+00:00</updated><id>https://loukidelis.com/2025/12/19/frontend-state-management</id><content type="html" xml:base="https://loukidelis.com/2025/12/19/frontend-state-management.html"><![CDATA[<p class="first-paragraph">
  At work I often encounter frontend state management that is overly complex and error-prone. Some examples:
</p>

<ul>
  <li>Fetching some data from the server, then maintaining a copy of that data in a global store like Redux</li>
  <li>Manually managing form state with React’s useState hook</li>
</ul>

<p>Sometimes, state is used when URL search params should be used instead. In modern frontend programming, there is usually a right and wrong way to manage some state, depending on its purpose and qualities. This flow chart should be helpful when making a decision about how to manage some frontend state:</p>

<p><img src="/assets/images/frontend-state-management/fe-state-mgmt.png" alt="" title="Flow chart: how to manage frontend state" /></p>

<h2 id="server-data">Server Data</h2>

<p>Modern javascript frameworks come with data fetching solutions. For example, <a href="https://svelte.dev/docs/kit/load">SvelteKit load</a>. For a stand-alone library, I like <a href="https://tanstack.com/query/">Tanstack Query</a>, which manages fetching, deduplication, invalidation, and more. There is absolutely no reason for you to be managing server data manually on the client, you will save yourself many headaches by using a framework or a data fetching library.</p>

<h2 id="what-is-addressability">What is addressability</h2>

<p>Web pages are accessed using <strong>U</strong>niversal <strong>R</strong>esource <strong>L</strong>ocators, or URLs.<a class="footnote-link" href="#Note1">1</a> As implied by the name, the URL points to a specific resource provided by your website. In other words, it is an address: a way to communicate about where something is. When deciding if some state should be addressable, ask yourself: Should this state persist if I bookmark this page for later? Or if I share the link to this page with a friend? For example, consider a page that shows a list or grid of similar items, where the user can filter the items based on certain qualities. Frontend developers often use state to store filter selections, but using the URL’s search parameters is preferable for addressability. Imagine an ecommerce site that sells fruit. A URL for this site might look like: <code class="language-plaintext highlighter-rouge">example.com/shop/apples?colour=red</code>. If I share this link with my friend, they will know I meant to show them red apples. Other examples of state that should be addressable include:</p>

<ul>
  <li>Pagination</li>
  <li>Search queries</li>
  <li>Addressing a specific tab or part of a page. Wikipedia does this well. E.g. <code class="language-plaintext highlighter-rouge">https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#Syntax</code>, this link specifically addresses the section about URL syntax.</li>
  <li>Linking to a form with some data pre-filled (e.g. <code class="language-plaintext highlighter-rouge">foo.com/register?country=CAN</code>)</li>
  <li>Selections (e.g. <code class="language-plaintext highlighter-rouge">inbox?selected=msg_456</code>)</li>
</ul>

<p>Other benefits of addressability:</p>

<ul>
  <li>Browser back/forward buttons work as expected</li>
  <li>Search engines can index filtered pages</li>
  <li>Analytics can track which filters users actually use</li>
</ul>

<p><strong>Avoid putting sensitive data in URLs.</strong> URLs will end up in the user’s browser history, and in your logs.</p>

<h2 id="form-data">Form Data</h2>

<p>Similar to server data, modern frameworks have idiomatic solutions for form management. If you aren’t using a framework, use a form library like <a href="https://react-hook-form.com/">react-hook-form</a>. Managing form state manually is likely to result in overly verbose code, while using a library or framework will result in more declarative, readable code. These tools will also help you to follow best practices for semantic HTML.</p>

<h3 id="when-to-use-forms">When to use Forms</h3>

<p><code class="language-plaintext highlighter-rouge">&lt;form&gt;</code> should be used when your user needs to submit input. Often, this means they are mutating some data. For example, to allow a user to update their address, you would show them an address form. Most websites use forms for search inputs. While you should consider using a form any time a user is entering input into your website, you might not be able to use forms in all cases. For example, a rich text editor like an email composer might be awkward to implement as a form. In general, a form should be the first tool of choice for collecting user input.<a class="footnote-link" href="#Note2">2</a></p>

<hr />

<p id="Note1" class="footnote">1. I know URL officially stands for uniform resource locator, but "universal" works better for the point.</p>

<p id="Note2" class="footnote">2. <a href="https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Forms" target="_blank">
MDN has a good guide on form building.</a></p>]]></content><author><name></name></author><category term="web" /><summary type="html"><![CDATA[A breakdown of different strategies for managing state in client-side code.]]></summary></entry><entry><title type="html">Book Review: Cod: A Biography of the Fish that Changed the World</title><link href="https://loukidelis.com/2025/10/09/book-review-cod.html" rel="alternate" type="text/html" title="Book Review: Cod: A Biography of the Fish that Changed the World" /><published>2025-10-09T00:00:00+00:00</published><updated>2025-10-09T00:00:00+00:00</updated><id>https://loukidelis.com/2025/10/09/book-review-cod</id><content type="html" xml:base="https://loukidelis.com/2025/10/09/book-review-cod.html"><![CDATA[<div class="big-image">
  <img src="https://upload.wikimedia.org/wikipedia/commons/a/a3/Atlantic_cod.jpg" />
  <p class="image-caption" style="font-size: 0.8rem;">Atlantic cod. Public Domain, <a href="https://commons.wikimedia.org/w/index.php?curid=34661">Link</a></p>
</div>

<p class="first-paragraph">
The fisherman of Newfoundland never thought that the cod stocks could run out. With the benefit of hindsight, their folly seems obvious, but as a fisherman in the 20th century, it would be hard to imagine the extinction of cod. Cod had been plentiful off the coast of Newfoundland since Europeans began fishing it in the 1490s (this book speculates that Europeans--Basques and the British--were fishing in North America before Columbus sailed there in 1491, though this can't be proven). Cod lay 9000 eggs at a time. They had disappeared in certain locations many times before, only to reappear somewhere else. It was not thought that humans could possibly overfish cod to the point of depletion.
</p>

<p>The depletion of the Grand Banks (Newfoundland) cod fishery in the late 1980s could be called a black swan event. As someone who was born after the cod fishing moratorium was effected in 1992, reading this book helped me to appreciate just how surprising this was. The most economically important fish of all time, which had for hundreds of years been the main staple of many Europeans’ diets and contributed to the European settlement of North America, was gone.</p>

<!--more-->

<p>This passage describes the attitude towards waning cod numbers in the late 1980s:</p>

<blockquote>
  <p>In reality, catches were increasing not from an abundance of fish but because the efficiency of a modern trawler fleet made it possible to locate the sectors with remaining cod populations and systematically clean them out. In retrospect, this seems obvious, but it must be remembered that during Newfoundland’s long history of fishing, the migratory cod periodically disappeared from certain sectors only to reappear in others. Almost every year that records were kept, there were some areas of Newfoundland or Labrador where the cod stocks had nearly vanished. In some years, only one area failed. The years 1857 and 1874 were notable because there were no failing grounds. In 1868, almost all sectors experienced a failure in the stocks. But they would always show up somewhere the following year. Despite cries of alarm, these failures had never resulted in the disappearance of cod but had only been caused by temporary shifts in migratory patterns, perhaps in response to temperature changes. In the 1980s and early 1990s, the Canadian government assumed that Newfoundland waters were again experiencing this well-known phenomenon.</p>
</blockquote>

<p>Some environmental problems have been anticipated in advance by scientists and effective action has been taken to avoid worst-case outcomes. The story of the Newfoundland cod fishery is a good reminder of what can happen when warning signs are ignored.</p>

<p><a href="https://www.goodreads.com/book/show/64895.Cod">Cod: A Biography of the Fish that Changed the World</a> on Goodreads.</p>]]></content><author><name></name></author><category term="books" /><summary type="html"><![CDATA[Atlantic cod. Public Domain, Link The fisherman of Newfoundland never thought that the cod stocks could run out. With the benefit of hindsight, their folly seems obvious, but as a fisherman in the 20th century, it would be hard to imagine the extinction of cod. Cod had been plentiful off the coast of Newfoundland since Europeans began fishing it in the 1490s (this book speculates that Europeans--Basques and the British--were fishing in North America before Columbus sailed there in 1491, though this can't be proven). Cod lay 9000 eggs at a time. They had disappeared in certain locations many times before, only to reappear somewhere else. It was not thought that humans could possibly overfish cod to the point of depletion. The depletion of the Grand Banks (Newfoundland) cod fishery in the late 1980s could be called a black swan event. As someone who was born after the cod fishing moratorium was effected in 1992, reading this book helped me to appreciate just how surprising this was. The most economically important fish of all time, which had for hundreds of years been the main staple of many Europeans’ diets and contributed to the European settlement of North America, was gone.]]></summary></entry><entry><title type="html">Book Review: Devil Take the Hindmost</title><link href="https://loukidelis.com/2025/10/08/book-review-devil-take-the-hindmost.html" rel="alternate" type="text/html" title="Book Review: Devil Take the Hindmost" /><published>2025-10-08T00:00:00+00:00</published><updated>2025-10-08T00:00:00+00:00</updated><id>https://loukidelis.com/2025/10/08/book-review-devil-take-the-hindmost</id><content type="html" xml:base="https://loukidelis.com/2025/10/08/book-review-devil-take-the-hindmost.html"><![CDATA[<blockquote>
  <p>Men, it has been well said, think in herds; it will be seen that they go mad in herds, while they only recover their senses slowly, one by one.</p>
</blockquote>

<p>― Charles MacKay, Extraordinary Popular Delusions and the Madness of Crowds (1841)</p>

<p class="first-paragraph">
Lately I've been reading the works of Edward Chancellor. In February of this year I read <i>The Price of Time</i>, a book about how interest rates affect the economy and the business cycle. It is essentially a critique of central banks' control of interest rates, and the economic distortions caused thereby. I also read Capital Returns, which he edited and wrote the forward to, have listened to his podcast, and read some of his articles published in Reuters and elsewhere. All of this reading combined to give me the impression of Chancellor as a staunch libertarian capitalist, so I was surprised by his first book, <i>Devil Take the Hindmost</i>, which seems ambivalent about capitalism, or at least capitalism's ability to rationally allocate resources.
</p>

<div class="big-image">
  <img src="/assets/images/book-review-devil-take-the-hindmost/Nasdaq-1994-2004.png" alt="" />
  <p class="image-caption">The NASDAQ index from 1994-2004, showing the <a href="https://en.wikipedia.org/wiki/Dot-com_bubble">dot-com bubble.</a></p>
</div>

<!--more-->

<p>The surprising message of the book is that speculative bubbles are an inherent feature of capitalism. As soon as trade began to become sophisticated, in the Netherlands and London in the 1600s, speculation ran amok, leaving value destruction and suffering it its wake. From the Dutch tulip bubble to today, bubbles form, pop, and reform.</p>

<p>Chancellor also documents how economists have tried to discredit or downplay past episodes of speculation in service of the “effecient markets hypothesis”–the idea that capital is allocated rationally in a market economy. Chancellor uses endless examples of stock market manipulation and speculative bubbles to show that this just isn’t so. He persuades us that the valuations of stocks at any given time are as much a sociological phenomenon as anything rational. The collective consciousness of the market is subject to extraordinary mood swings, prices rise when the market feels greedy, confident and euphoric, and fall when it feels fearful and pessimistic.</p>

<p>I’ve become a little bit obsessed with speculation and stock market bubbles. As a software developer, I’ve had a front row seat to the <a href="/2025/08/10/ai-skepticism-part-2.html">AI bubble</a>. Reading this book has helped me to keep my sanity during what I see as a deeply irrational optimism about LLMs and their profit-making potential. There is nothing new under the sun. Since the beginning of capitalism, new technology has inspired speculation. While the euphoria is high, nobody wants to look soberly at the facts. When the music stops, we will all wonder how we could have been so foolish.</p>]]></content><author><name></name></author><category term="AI" /><category term="books" /><summary type="html"><![CDATA[A reflection on the history of speculation by Edward Chancellor]]></summary></entry><entry><title type="html">CulinaryWiki</title><link href="https://loukidelis.com/2025/09/30/culinary-wiki.html" rel="alternate" type="text/html" title="CulinaryWiki" /><published>2025-09-30T00:00:00+00:00</published><updated>2025-09-30T00:00:00+00:00</updated><id>https://loukidelis.com/2025/09/30/culinary-wiki</id><content type="html" xml:base="https://loukidelis.com/2025/09/30/culinary-wiki.html"><![CDATA[<p>I <a href="https://culinarywiki.org/wiki/Main_Page">created a wiki</a> which is intended to be a culinary encyclopedia. The idea came to me when I wanted to know about the culinary properties of rosemary–how it should be used, what culinary heritage it originates from, etc. The <a href="https://en.wikipedia.org/wiki/Rosemary">Wikipedia page for rosemary</a> is too generic and not tailored towards culinary info. I was surprised that something like CulinaryWiki didn’t already exist.</p>

<p>I won’t be able to signle-handedly provide all the content needed by this wiki, and obviously there is a good chance that it never catches on with a wider audience. But, now it exists, and I will at least use it for a repository of my own cooking knowledge.</p>

<p><a href="https://culinarywiki.org/wiki/Rosemary">The CulinaryWiki page for rosemary</a></p>

<div class="big-image">
  <img src="/assets/images/culinary-wiki/screenshot.png" alt="" />
</div>]]></content><author><name></name></author><category term="web" /><summary type="html"><![CDATA[A wiki for culinary knowledge.]]></summary></entry><entry><title type="html">Waiting For The Next Big Thing</title><link href="https://loukidelis.com/2025/09/14/waiting-for-the-next-opportunity.html" rel="alternate" type="text/html" title="Waiting For The Next Big Thing" /><published>2025-09-14T00:00:00+00:00</published><updated>2025-09-14T00:00:00+00:00</updated><id>https://loukidelis.com/2025/09/14/waiting-for-the-next-opportunity</id><content type="html" xml:base="https://loukidelis.com/2025/09/14/waiting-for-the-next-opportunity.html"><![CDATA[<p>I’m currently unemployed. I’m not lazy; I’m waiting for the next big thing.</p>

<blockquote>
  <p>In the summer of 1998, I got an opportunity to talk with Jobs again. I said, “Steve, this turnaround at Apple has been impressive. But everything we know about the PC business says that Apple cannot really push beyond a small niche position. The network effects are just too strong to upset the Wintel standard. So what are you trying to do in the longer term? What is the strategy?” He did not attack my argument. He didn’t agree with it, either. He just smiled and said, “I am going to wait for the next big thing.”</p>
</blockquote>

<p>― Richard P. Rumelt, Good Strategy Bad Strategy: The Difference and Why It Matters</p>

<p>This famous passage about Steve Jobs describes how he managed Apple. I think one’s career can be approached this way too, and I intend to try it for myself. <em>The next big thing</em> is not always obvious. I expect the best thing to do in this case is bide one’s time, enjoy the moment, read widely and stay curious. Let the <em>next big thing</em> reveal itself in due time.</p>

<p>A <a href="https://link.springer.com/article/10.1007/BF00349198">research paper</a> from 1981, “Time resources and laziness in animals”, found that many animals spend a lot of their time doing nothing at all. We might have something to learn from our animal cousins. Inaction makes people uncomfortable, especially Westerners who are used to energetically attacking work. But not all work is worthy of one’s time; sometimes our time is better spent walking, reading, conversing, meditating, and exploring.</p>

<!-- Life is non-linear, but many people want to feel that their life has a direction. It's comforting to think that the day to day toil is _for_ something; that there will be some point in the future at which you will have "arrived" at happiness, fulfillment or whatever. But this is an illusion, and when you give up an illusion, you are free from the burden of maintaining it. -->]]></content><author><name></name></author><summary type="html"><![CDATA[I’m currently unemployed. I’m not lazy; I’m waiting for the next big thing. In the summer of 1998, I got an opportunity to talk with Jobs again. I said, “Steve, this turnaround at Apple has been impressive. But everything we know about the PC business says that Apple cannot really push beyond a small niche position. The network effects are just too strong to upset the Wintel standard. So what are you trying to do in the longer term? What is the strategy?” He did not attack my argument. He didn’t agree with it, either. He just smiled and said, “I am going to wait for the next big thing.” ― Richard P. Rumelt, Good Strategy Bad Strategy: The Difference and Why It Matters This famous passage about Steve Jobs describes how he managed Apple. I think one’s career can be approached this way too, and I intend to try it for myself. The next big thing is not always obvious. I expect the best thing to do in this case is bide one’s time, enjoy the moment, read widely and stay curious. Let the next big thing reveal itself in due time. A research paper from 1981, “Time resources and laziness in animals”, found that many animals spend a lot of their time doing nothing at all. We might have something to learn from our animal cousins. Inaction makes people uncomfortable, especially Westerners who are used to energetically attacking work. But not all work is worthy of one’s time; sometimes our time is better spent walking, reading, conversing, meditating, and exploring.]]></summary></entry><entry><title type="html">Sourdough Bread Notes</title><link href="https://loukidelis.com/2025/09/05/sourdough-notes.html" rel="alternate" type="text/html" title="Sourdough Bread Notes" /><published>2025-09-05T00:00:00+00:00</published><updated>2025-09-05T00:00:00+00:00</updated><id>https://loukidelis.com/2025/09/05/sourdough-notes</id><content type="html" xml:base="https://loukidelis.com/2025/09/05/sourdough-notes.html"><![CDATA[<p class="first-paragraph">
I've been making sourdough bread regularly since 2022. I learned from the book <a href="https://www.goodreads.com/book/show/8185785-tartine-bread?ac=1&amp;from_search=true&amp;qid=ZmlwBABxEl&amp;rank=1" target="_blank">Tartine Bread</a> by Chad Robertson. Over the last few years, I've learned some things about bread making. I compiled some notes for a friend to serve as a companion to the “Basic Country Loaf” recipe from Tartine bread. I thought I'd publish them here as well.
</p>

<div class="big-image">
  <img src="/assets/images/sourdough-notes/IMG_0311.jpeg" alt="A loaf of sourdough I recently baked" />
  <p class="image-caption">A loaf of sourdough I recently baked</p>
</div>

<!--more-->

<h2 id="starter">Starter</h2>

<p>I find that starters are easier to manage than most people think. The night before I bake, I take out the starter, remove all but 1 tbsp, add 100g white flour and 100g room temperature water, and stir vigorously. The next morning it should be ready. If the starter is very bubbly and floats in water, it’s good to go. If you’ve left the starter for a few weeks, you may need to do this two nights in a row to get it ready.</p>

<div class="big-image">
  <img src="/assets/images/sourdough-notes/IMG_0285.jpeg" alt="An active sourdough starter" />
  <p class="image-caption">An active sourdough starter</p>
</div>

<p>This is my starter, pictured right before I used it for a new dough the other day. I hadn’t used it in over a month, but after two feedings over 24 hours (throwing all but a small amount away each feeding), it was back to being very active and bubbly.</p>

<h2 id="dough-mix">Dough mix</h2>

<p>It’s fun to mess around with different hydration levels. I’ve experimented with hydration levels in the range of 70% to 90%. At 90%, the loaf will be very hard to manipulate, and will be more of a flat loaf, but the moistness of the final product might be considered worth it.</p>

<p>I usually add about 10% whole wheat flour as the country loaf recipe suggests. Sometimes I use white flour only.</p>

<div class="responsive-row">
  <div class="left-image">
    <img src="/assets/images/sourdough-notes/IMG_0286.jpeg" alt="" />
    <p class="image-caption">Mixing bowl with water and starter</p>
  </div>
  <div class="right-image">
    <img src="/assets/images/sourdough-notes/IMG_0287.jpeg" alt="" />
    <p class="image-caption">After adding flour and mixing</p>
  </div>
</div>

<p>When creating the dough mix, I set my mixing bowl on a kitchen scale. I add water first. If I’m doing 75% hydration and the dough will be 1000g, I add 700g of water (50g more will be added along with 20g of salt after the autolyse). The water should be between 80-90ºF.</p>

<p>I then add the starter and stir it around in the bowl (pictured above). Then I add the flour and mix with my hands. This is the messiest step, but using your hands is really the best way to get a good mix. Make sure you have your dough scraper handy to scrape the sides of the bowl. My favourite dough scrapers are flexible plastic, <a href="https://www.amazon.ca/Bread-Dough-Bench-Bowl-Scraper/dp/B0894HTQVZ">like these</a>.</p>

<h2 id="autolyse">Autolyse</h2>

<p>From step 3: “Let the dough rest for 25 to 40 minutes.” This is sometimes called the “autolyse” stage, letting the dough rest before adding salt &amp; any other mixins and before working the dough. I often let this stage go longer, up to a bit over one hour.</p>

<div class="big-image">
  <img src="/assets/images/sourdough-notes/IMG_0289.jpeg" alt="Using an electric blanket to keep dough warm" />
  <p class="image-caption">Using an electric blanket to keep dough warm</p>
</div>

<p>During the autolyse and bulk fermentation, it’s important that the dough is kept warm. If your room is colder than 23ºC or so, you may want to keep the dough in a warmer state. Tartine Bread suggests methods for doing this, such as putting the dough in your oven above a warm baking stone, but I’ve found the easiest method for myself is to use an old electric blanket. I simply wrap the dough in the blanket on the counter during these stages.</p>

<h2 id="bulk-fermentation">Bulk Fermentation</h2>

<p>During autolyse, the dough is still in the mixing bowl. I wrap it in a plastic bag to keep in moisture. When beginning bulk fermentation, I move the dough to a container like <a href="https://www.cambro.com/Products/food-storage/square-food-storage-containers/camsquares-classic-food-storage-containers/camsquares-translucent/">this one</a>.</p>

<p><img src="/assets/images/sourdough-notes/IMG_0290.jpeg" alt="Container for dough" style="display: block; margin: 0 auto;" /></p>

<p>I set a 1/2 hour timer and do a “stretch and fold” every half hour, then wrap it back in the electric blanket, until the dough is ready. As the book mentions, the temperature of the dough will impact this timing a lot, which is why I use an electric blanket to keep it somewhat standardized.</p>

<div class="responsive-row">
  <div class="left-image">
    <img src="/assets/images/sourdough-notes/IMG_0292.jpeg" alt="" />
    <p class="image-caption">Dough in container at start of bulk fermentation</p>
  </div>
  <div class="right-image">
    <img src="/assets/images/sourdough-notes/IMG_0297.jpeg" alt="" />
    <p class="image-caption">End of fermentation. This dough is ready to be shaped and proofed.</p>
  </div>
</div>

<p>Knowing when the dough is done fermenting is something you need to get a feel for. The description in Tartine Bread is a good start:</p>

<blockquote>
  <p>A well-developed dough is more cohesive and releases from the sides of the bowl when you do the turns. The ridges left by the turn will hold their shape for a few minutes. You will see a 20 to 30 percent increase in volume. More air bubbles will form along the sides of the container. (page 31)</p>
</blockquote>

<h2 id="proofing">Proofing</h2>

<p>I use these <a href="https://www.amazon.ca/Sourdough-Banneton-Proofing-Brotform-Professional/dp/B0823DGC5N">twin bannetons</a>, and split the dough into two. Lately I’ve been freezing one and proofing the other in the fridge for ~4hrs before baking. The frozen one can be baked later. I take it from the freezer to the fridge and leave it there for about 18-24 hours, then bake it.</p>

<div class="responsive-row">
  <div class="left-image">
    <img src="/assets/images/sourdough-notes/IMG_0299.jpeg" alt="" />
    <p class="image-caption">Shaping the dough into loaves</p>
  </div>
  <div class="right-image">
    <img src="/assets/images/sourdough-notes/IMG_0301.jpeg" alt="" />
    <p class="image-caption">Shaped loaves, ready to proof. They are wrapped in plastic bags to keep moisture in.</p>
  </div>
</div>

<h2 id="baking">Baking</h2>

<p>The book recommends buying a “cast-iron combo cooker. One part is a shallow frying pan, and the other is a deep pan”. I already had a normal dutch oven and didn’t want to buy another one. I work with the deep sides of mine by placing the dough on a small piece of parchment paper. Then I use oven mitts to lower the dough into the dutch oven. If you don’t already have a cast iron dutch oven and are buying one just for this, you could go ahead and get the recommended one.</p>

<div class="responsive-row">
  <div class="left-image">
    <img src="/assets/images/sourdough-notes/IMG_0307.jpeg" alt="" />
    <p class="image-caption">After proofing in the fridge for 4 hours, this loaf is ready to be baked.</p>
  </div>
  <div class="right-image">
    <img src="/assets/images/sourdough-notes/IMG_0310.jpeg" alt="" />
    <p class="image-caption">Taking the lid off of my dutch oven after 25 minutes. You can see that the loaf has risen. It looks almost like the finished bread except that it needs a crust. It will bake for 25 more minutes with the lid off.</p>
  </div>
</div>

<p>Let the loaf cool completely (~45mins) before cutting into it.</p>

<h2 id="misc-tips">Misc tips</h2>

<ul>
  <li>Dough is easier to manipulate with wet hands; your fingers won’t stick to it</li>
  <li>A kitchen scale is essential. Mass measurements (grams) are more accurate than volume measurements</li>
  <li>I do horizontal-ish scores into the sides of the loaf, which creates dramatic “ears” that explode upward during baking. It’s worth experimenting with different scoring techniques.</li>
  <li>I use all-purpose flour. Bread flour has more gluten and can create a stronger dough which will rise more, but I find that all-purpose works well and I don’t feel like having two bags of flour in our small pantry.</li>
  <li>For the first 5-10 times you make bread, it’s worth taking detailed notes to learn what works well. I kept notes on my computer with a template that included a checklist so I never forgot a step.</li>
</ul>

<div class="responsive-row" style="margin-top: 2rem;">
  <div class="left-image">
    <img src="/assets/images/sourdough-notes/IMG_0312.jpeg" alt="" />
  </div>
  <div class="right-image">
    <img src="/assets/images/sourdough-notes/IMG_0314.jpeg" alt="" />
  </div>
</div>

<p><img src="/assets/images/sourdough-notes/IMG_0318.jpeg" alt="Slices of finished sourdough bread." style="display: block; margin: 0 auto;" /></p>

<p>See also: <a href="/2022/07/04/what-i-have-learned-about-making-sourdough.html">What I have learned about making sourdough (so far)</a></p>]]></content><author><name></name></author><category term="sourdough" /><summary type="html"><![CDATA[I compiled some notes for a friend to serve as a companion to the “Basic Country Loaf” recipe from Tartine bread. I thought I'd publish them here as well.]]></summary></entry><entry><title type="html">Is the AI Bubble About to Burst?</title><link href="https://loukidelis.com/2025/08/10/ai-skepticism-part-2.html" rel="alternate" type="text/html" title="Is the AI Bubble About to Burst?" /><published>2025-08-10T00:00:00+00:00</published><updated>2025-08-10T00:00:00+00:00</updated><id>https://loukidelis.com/2025/08/10/ai-skepticism-part-2</id><content type="html" xml:base="https://loukidelis.com/2025/08/10/ai-skepticism-part-2.html"><![CDATA[<p class="first-paragraph">
  I have been meaning to write a follow-up to my <a href="/2025/07/06/against-easy-agi.html">post about AGI</a> with a second part. My intention was to document some examples of prominent people saying or strongly implying that AGI is imminent, to convince myself and my imagined readers that this view is pervasive. For example, here is AI researcher Geoffrey Hinton, often called the "Godfather of AI", <a href="https://www.youtube.com/watch?v=IkdziSLYzHw">speculating about AGI while veiling this as disinterested scientific analysis</a>. Here is the co-founder of Anthropic <a href="https://www.youtube.com/watch?v=p8Jx4qvDoSo">speaking matter-of-factly about creating human-level AI.</a> However, I've also started to wonder if we've hit peak AI hype, and I am going to write about that instead.</p>

<!--more-->

<p>I should elaborate on something I didn’t really cover in my first post on AI, which is the connection between “AGI” hype and AI economics. There are other writers who have already spent a lot of effort documenting the economics of the AI companies. For a good skeptical analysis, see <a href="https://www.wheresyoured.at/the-haters-gui/">The Hater’s Guide to the AI Bubble.</a> The TLDR is that the “Magnificent Seven” (NVIDIA, Microsoft, Alphabet (Google), Apple, Meta, Tesla and Amazon) are spending massive capital on building AI data centers, but LLMs are not actually bringing in that much revenue. The only way this bubble has been able to continue this long, in my opinion, is optimism that LLM progress has increasing exponentially, and that extremely competent LLMs will massively displace human labour in the near future, resulting in huge profits for the companies that have invested so much capital in these models.</p>

<p>Since I’m skeptical that we’re anywhere near creating AGI, and I’m also skeptical that AI progress has been increasing exponentially, I’m definitely with the skeptics on this bubble idea. The reason I’m writing this now is that I feel like I’m seeing a growing number of people voice concern about the US stock market’s over exposure to AI. Here’s a short list from the last few days:</p>

<ul>
  <li><a href="https://paulkrugman.substack.com/p/about-that-stock-market">Paul Krugman, economist: About That Stock Market</a></li>
  <li><a href="https://www.noahpinion.blog/p/who-will-actually-profit-from-the">Noah Smith, econ blogger: Who will actually profit from the AI boom?</a></li>
  <li><a href="https://www.derekthompson.org/p/how-ai-conquered-the-us-economy-a">Derek Thompson, author of Abundance, blogger: How AI Conquered the US Economy: A Visual FAQ</a></li>
  <li><a href="https://www.youtube.com/watch?v=VZMFp-mEWoM">Hank Green, pop science vlogger: I’m Changing How I Manage My Money Because of AI</a></li>
</ul>

<p>The last one is particularly interesting to me as it signals that this narrative may be “breaking containment”. The other three articles are from people who are either economists or follow and write about economics. Hank Green, on the other hand, is a popular Youtuber who mostly talks about pop science, as far as I know.</p>

<p>So why now? Maybe it’s because GPT-5 was just released and the evaluation of it has been <a href="https://news.ycombinator.com/item?id=44826997">lukewarm</a>. The biggest story to come out of the launch was the <a href="https://futurism.com/gpt-5-demo-dumb-errors">chart</a> that misleadingly made GPT-5 look much better than OpenAI’s previous best model, o3. If optimism about the progress of AI is fading, it may mean more people start to ask some questions about how much of the US economy (or at least stock market) depends on it.</p>]]></content><author><name></name></author><category term="AI" /><summary type="html"><![CDATA[I have been meaning to write a follow-up to my post about AGI with a second part. My intention was to document some examples of prominent people saying or strongly implying that AGI is imminent, to convince myself and my imagined readers that this view is pervasive. For example, here is AI researcher Geoffrey Hinton, often called the "Godfather of AI", speculating about AGI while veiling this as disinterested scientific analysis. Here is the co-founder of Anthropic speaking matter-of-factly about creating human-level AI. However, I've also started to wonder if we've hit peak AI hype, and I am going to write about that instead.]]></summary></entry><entry><title type="html">Adding Comments To This Blog With Bluesky</title><link href="https://loukidelis.com/2025/08/08/blog-comments.html" rel="alternate" type="text/html" title="Adding Comments To This Blog With Bluesky" /><published>2025-08-08T00:00:00+00:00</published><updated>2025-08-08T00:00:00+00:00</updated><id>https://loukidelis.com/2025/08/08/blog-comments</id><content type="html" xml:base="https://loukidelis.com/2025/08/08/blog-comments.html"><![CDATA[<p class="first-paragraph">
  I came across this <a href="https://natalie.sh/posts/bluesky-comments/">blog post</a> on Hackernews the other day and wanted to do something similar for my own blog. My reasons for doing this are similar to those outlined in the original post:
</p>

<ul>
  <li>Comments are nice to have. This site doesn’t exactly have huge readership, but I like the idea that someone could leave a comment here if they wanted to.</li>
  <li>That said, it is not worthwhile for me to implement my own comment solution.</li>
  <li>Many people have Bluesky accounts already. It is convenient to not have to make a new account to comment on my website.</li>
  <li>Outsourcing the data hosting, account management, etc. to Bluesky is very nice.</li>
</ul>

<p>Natalie used React to create the blog post UI, and her blog is powered by Astro. Getting this working in Jekyll with pure Javascript was pretty simple (&lt;100 lines of code, mostly written by ChatGPT). I’m not bothering with image support, linking back to Bluesky (except at the top) or any of the other fancier stuff that natalie b. did for now. I may improve on this eventually, but I’m happy to support text responses only for now.</p>

<p>The only friction with this solution is that I have to go back and edit my post’s <a href="https://jekyllrb.com/docs/front-matter/">front matter</a> with the CID after creating the blog post and linking to it from Bluesky, but this isn’t too much hassle.</p>

<p>You can see the code used to fetch and render Bluesky comments on this site’s <a href="https://github.com/SpLouk/splouk.github.io/blob/main/_layouts/article.html#L13">github repo</a>.</p>]]></content><author><name></name></author><category term="web" /><summary type="html"><![CDATA[Using pure Javascript and the Bluesky API to create cheap and simple blog comment support.]]></summary></entry></feed>