<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-04-03T09:53:12Z</updated>
  <generator>https://yabu.me</generator>

  <title>Nostr notes by Andreas Ahlenstorf</title>
  <author>
    <name>Andreas Ahlenstorf</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://yabu.me/npub1y7ltc37tccytngpm5ezmx65lpsx3cvsgg3jmldfdj0g6tj4etpysl2wyyu.rss" />
  <link href="https://yabu.me/npub1y7ltc37tccytngpm5ezmx65lpsx3cvsgg3jmldfdj0g6tj4etpysl2wyyu" />
  <id>https://yabu.me/npub1y7ltc37tccytngpm5ezmx65lpsx3cvsgg3jmldfdj0g6tj4etpysl2wyyu</id>
  <icon></icon>
  <logo></logo>




  <entry>
    <id>https://yabu.me/nevent1qqstl3xnv47mlz3vtt259aptjplfclgaa0zp6a9lhqmqrklz3wms5xszyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjtkes75</id>
    
      <title type="html">@nprofile…3n63 How do you figure out whether a contribution is ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstl3xnv47mlz3vtt259aptjplfclgaa0zp6a9lhqmqrklz3wms5xszyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjtkes75" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrvx9hrwg75274mwdv2y2vj6r7nktfza2j32n8ghsdrqtztegq5nqpz4mhxue69uhhyetvv9ujuerfw36x7tnsw43q3aly45&#39;&gt;nevent1q…ly45&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy2hwumn8ghj7un9d3shjtnyd968gmewwp6kyqpq7qes6mstpcsn6rg3w9fwnsau68sw9h9nga9zjy3htmegg27na6wsjd3n63&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;nprofile1qy2hwumn8ghj7un9d3shjtnyd968gmewwp6kyqpq7qes6mstpcsn6rg3w9fwnsau68sw9h9nga9zjy3htmegg27na6wsjd3n63&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…3n63&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; How do you figure out whether a contribution is copyrightable or doesn&amp;#39;t violate someone else&amp;#39;s rights? Because that&amp;#39;s what I ultimately have to do when reviewing LLM-generated code. I don&amp;#39;t want to end up in an ReactOS-like situation.
    </content>
    <updated>2026-04-03T09:05:04Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqst36ndnqv95hvlvkasza9snp0zhvvv9sznlpdkyvc7ur2v707jjxszyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyj3q5ppr</id>
    
      <title type="html">@nprofile…xehz And it runs Forgejo (with modifications), which ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqst36ndnqv95hvlvkasza9snp0zhvvv9sznlpdkyvc7ur2v707jjxszyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyj3q5ppr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszgapyjwuer4kx6h2tjajvl8nxy276k0ftyqld9pfprd9cclx2ejgpz4mhxue69uhhyetvv9ujuerfw36x7tnsw43qfgmse3&#39;&gt;nevent1q…mse3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy2hwumn8ghj7un9d3shjtnyd968gmewwp6kyqpq33stthhmlxcl2d7kayppq0y0sd8hda0h7m8g82hjmg023c0nmsdsnfxehz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;nprofile1qy2hwumn8ghj7un9d3shjtnyd968gmewwp6kyqpq33stthhmlxcl2d7kayppq0y0sd8hda0h7m8g82hjmg023c0nmsdsnfxehz&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…xehz&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; And it runs Forgejo (with modifications), which can be self-hosted. You can even improve it yourself by sending a PR! And nobody forces &amp;#34;reviews&amp;#34; or PRs authored by &amp;#34;AI&amp;#34; onto you. Isn&amp;#39;t that awesome? &lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://forgejo.org/&#34;&gt;https://forgejo.org/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;(I&amp;#39;m a Forgejo contributor, so please excuse the excitement.)
    </content>
    <updated>2026-01-14T10:57:10Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsvcz85jww6efv9psp49f0dk7c63680jw8rw09tgampek52ffmsfsqzyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjaajw4v</id>
    
      <title type="html">Medgate (a Swiss telemedicine provider) is absolutely awesome. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsvcz85jww6efv9psp49f0dk7c63680jw8rw09tgampek52ffmsfsqzyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjaajw4v" />
    <content type="html">
      Medgate (a Swiss telemedicine provider) is absolutely awesome. Roughly 30 minutes from filling in a form with my symptoms until a consultation with a physician. And that on a Saturday in the late morning. It took me longer to pick up my prescribed meds. Tomorrow (yes, on a Sunday), the physician will check in again with me to see how it&amp;#39;s going.
    </content>
    <updated>2026-01-10T13:08:49Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsvxmycj3ktlwl92j30rvdgxdml3ksq863vg4kqh9pft86j45exqvszyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjajvcca</id>
    
      <title type="html">@nprofile…zupg You might find Antora (https://antora.org/) ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsvxmycj3ktlwl92j30rvdgxdml3ksq863vg4kqh9pft86j45exqvszyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjajvcca" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszeg08k2qn03f2jz58vr66yje52u3hma3884yva2setvfw60hn8gqpzemhxue69uhhyetvv9ujuerfw36x7tnsw43z7sjng45&#39;&gt;nevent1q…ng45&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcqyzxxpdw7l0umrafh6m5syypu37p57ah47lmvaqa27tdpa28p70wpkywzupg&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;nprofile1qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcqyzxxpdw7l0umrafh6m5syypu37p57ah47lmvaqa27tdpa28p70wpkywzupg&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…zupg&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; You might find Antora (&lt;a href=&#34;https://antora.org/&#34;&gt;https://antora.org/&lt;/a&gt;) useful. It&amp;#39;s an authoring system based on Asciidoc. For example, the documentation of Spring Framework is made with it.
    </content>
    <updated>2025-10-26T17:28:55Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszrrelazhqyyr2uh65ezfppzupqe56jhvpx79y0afqyfd46dnejjszyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjv4d0xe</id>
    
      <title type="html">@nprofile…zupg I think I finally understand your problem. Thank ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszrrelazhqyyr2uh65ezfppzupqe56jhvpx79y0afqyfd46dnejjszyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjv4d0xe" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9n8z0yd6qtznxvuvazsgfmggnhxrpsuy55grz5h7945r4yt6gl8gpzemhxue69uhhyetvv9ujuerfw36x7tnsw43z72jst2u&#39;&gt;nevent1q…st2u&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcqyzxxpdw7l0umrafh6m5syypu37p57ah47lmvaqa27tdpa28p70wpkywzupg&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;nprofile1qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcqyzxxpdw7l0umrafh6m5syypu37p57ah47lmvaqa27tdpa28p70wpkywzupg&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…zupg&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; I think I finally understand your problem. Thank you.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t agree that having entities without references to services or repositories (as in DDD) inevitably leads to an anaemic model. While my side project hasn&amp;#39;t the richest domain possible, it isn&amp;#39;t anaemic either. There are some awkward solutions in there to make it work (like returning events from methods), but I find them more acceptable than putting services into entities.
    </content>
    <updated>2025-10-15T11:26:53Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszv0533ztanvhs7phtxaj0tktqqjfgw6v0clfpkv0yu7jzrqffvmszyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjg4ds09</id>
    
      <title type="html">@nprofile…zupg Do you inject DeliveryService into your Order? ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszv0533ztanvhs7phtxaj0tktqqjfgw6v0clfpkv0yu7jzrqffvmszyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjg4ds09" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvjapc4ngrs6w7hkur3lr5vpzddkczjuf77ufqe8lkve2u6fhthjcpzemhxue69uhhyetvv9ujuerfw36x7tnsw43z76nkp9u&#39;&gt;nevent1q…kp9u&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcqyzxxpdw7l0umrafh6m5syypu37p57ah47lmvaqa27tdpa28p70wpkywzupg&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;nprofile1qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcqyzxxpdw7l0umrafh6m5syypu37p57ah47lmvaqa27tdpa28p70wpkywzupg&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…zupg&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; Do you inject DeliveryService into your Order? That seems an odd choice to me and could be the reason of my confusion. I&amp;#39;d let the DeliveryService handle the Order, just for the different life cycles alone. The Order could still have a lot of behaviour.
    </content>
    <updated>2025-10-14T19:07:03Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsg5yqt3d5fks0t7m3ky44mdwrydzcftsjg8nuphl6dgwhq5j6nftgzyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjv4e9n3</id>
    
      <title type="html">@nprofile…zupg So, your argument is that it&amp;#39;s wrong to have ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsg5yqt3d5fks0t7m3ky44mdwrydzcftsjg8nuphl6dgwhq5j6nftgzyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjv4e9n3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswuqqu74z97p7dxzst70alstq5v2jn009tmj6jkhd9zfkmpqzuedspzemhxue69uhhyetvv9ujuerfw36x7tnsw43z74986w2&#39;&gt;nevent1q…86w2&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcqyzxxpdw7l0umrafh6m5syypu37p57ah47lmvaqa27tdpa28p70wpkywzupg&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;nprofile1qyt8wumn8ghj7un9d3shjtnyd968gmewwp6kytcqyzxxpdw7l0umrafh6m5syypu37p57ah47lmvaqa27tdpa28p70wpkywzupg&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…zupg&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; So, your argument is that it&amp;#39;s wrong to have a field of type ProductRepository, which encapsulates querying a database, in the object ProductCatalogue. Did I get that right?
    </content>
    <updated>2025-10-14T08:40:00Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsx55qsrnxq5mjtyfgtfp06ffme2qen4vnpewsdwryfqhuuaucee4gzyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyj8elrc8</id>
    
      <title type="html">@nprofile…6nrq You seem to have a different understanding of ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsx55qsrnxq5mjtyfgtfp06ffme2qen4vnpewsdwryfqhuuaucee4gzyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyj8elrc8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv9n07gwfutqfnhcsg2lpalfem2z2ws4arm7vkfz0r9dp7l98yhygpz4mhxue69uhhyetvv9ujumt0wd68ytnsw43qewufql&#39;&gt;nevent1q…ufql&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqpq33stthhmlxcl2d7kayppq0y0sd8hda0h7m8g82hjmg023c0nmsds9p6nrq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;nprofile1qy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqpq33stthhmlxcl2d7kayppq0y0sd8hda0h7m8g82hjmg023c0nmsds9p6nrq&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…6nrq&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; You seem to have a different understanding of dependency injection than many others in the industry or academia (&lt;a href=&#34;https://martinfowler.com/articles/injection.html&#34;&gt;https://martinfowler.com/articles/injection.html&lt;/a&gt;). &lt;br/&gt;&lt;br/&gt;Passing a ZoneId as an argument to java.time.Instant for conversion is the right thing to do, because the ZoneId is not part of Instant&amp;#39;s state. But that&amp;#39;s not dependency injection. Dependency injection is about &amp;#34;How do I get ahold of an ExecutorService?&amp;#34;
    </content>
    <updated>2025-10-13T13:08:47Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstgmum337dn4wqwfp8yp29knckugw8r9xfuxzp2w98pl0j9u393hgzyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjcyr4md</id>
    
      <title type="html">@nprofile…6nrq When it comes to dependency injection, the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstgmum337dn4wqwfp8yp29knckugw8r9xfuxzp2w98pl0j9u393hgzyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjcyr4md" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9w0mqefh4qey2hura2teuke8atkkq6ycf9p5g77509c9t8pzlwaqpz4mhxue69uhhyetvv9ujumt0wd68ytnsw43qgq3kmw&#39;&gt;nevent1q…3kmw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqpq33stthhmlxcl2d7kayppq0y0sd8hda0h7m8g82hjmg023c0nmsds9p6nrq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;nprofile1qy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqpq33stthhmlxcl2d7kayppq0y0sd8hda0h7m8g82hjmg023c0nmsds9p6nrq&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…6nrq&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; When it comes to dependency injection, the question is usually whether to use a constructor, setters, manipulate fields directly, or use a Service Locator. Collaborators that are unrelated to an object&amp;#39;s state do not belong there, no matter what technique you&amp;#39;re using.
    </content>
    <updated>2025-10-13T12:52:01Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqspkk9m78hyzf6x4cjj37f5a2kus99seasjzl9w5mm7jxznn4yflpgzyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjzmcwf4</id>
    
      <title type="html">@nprofile…6nrq An argument in favour of constructor injection ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqspkk9m78hyzf6x4cjj37f5a2kus99seasjzl9w5mm7jxznn4yflpgzyqnma0z8e0rq3wdq8wnytvm2nuxq68pjppzxt0a49kfarfw2h9vyjzmcwf4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfn9mvf7f02ruae9g74c3jzqqayjpjcqxk9h8k90wzahm30cuvh6qpz4mhxue69uhhyetvv9ujumt0wd68ytnsw43qnfpsgx&#39;&gt;nevent1q…psgx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nprofile1qy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqpq33stthhmlxcl2d7kayppq0y0sd8hda0h7m8g82hjmg023c0nmsds9p6nrq&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;nprofile1qy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqpq33stthhmlxcl2d7kayppq0y0sd8hda0h7m8g82hjmg023c0nmsds9p6nrq&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;nprofile…6nrq&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; An argument in favour of constructor injection is that the object is fully initialized after construction. Is that not important for you?&lt;br/&gt;&lt;br/&gt;I find your distinction between &amp;#34;state&amp;#34; and &amp;#34;dependencies&amp;#34; confusing. What&amp;#39;s so special about a time zone that you consider it part of Delivery&amp;#39;s state whereas Location is not?&lt;br/&gt;&lt;br/&gt;Looking at your examples, I&amp;#39;d say that you have design problem. Computing the delivery time is not Delivery&amp;#39;s responsibility. Also, how does an Order deliver itself?
    </content>
    <updated>2025-10-13T11:25:30Z</updated>
  </entry>

</feed>