<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-04-07T19:39:37Z</updated>
  <generator>https://yabu.me</generator>

  <title>Nostr notes by Alex Tomkins</title>
  <author>
    <name>Alex Tomkins</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://yabu.me/npub1p8uunuqktmtf4x8y4zkm0p9k4exte46tdtv5chdztycrk92p6p4q2f9uv5.rss" />
  <link href="https://yabu.me/npub1p8uunuqktmtf4x8y4zkm0p9k4exte46tdtv5chdztycrk92p6p4q2f9uv5" />
  <id>https://yabu.me/npub1p8uunuqktmtf4x8y4zkm0p9k4exte46tdtv5chdztycrk92p6p4q2f9uv5</id>
  <icon>https://cdn.fosstodon.org/accounts/avatars/109/377/465/182/370/168/original/ac8c361818d64e16.png</icon>
  <logo>https://cdn.fosstodon.org/accounts/avatars/109/377/465/182/370/168/original/ac8c361818d64e16.png</logo>




  <entry>
    <id>https://yabu.me/nevent1qqsfu527me9m2rpgktflpslfk58uu30hzugd5l8cmlqfy0ya9xmk6eczyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx5ye96uq</id>
    
      <title type="html">I think the episode isn&amp;#39;t fully uploaded - it&amp;#39;s only 13 ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfu527me9m2rpgktflpslfk58uu30hzugd5l8cmlqfy0ya9xmk6eczyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx5ye96uq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp7m0kj7aanya9t6tenzv4tefck4dxh4fvu7st5vgpxmftpq65kvcnqhajt&#39;&gt;nevent1q…hajt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I think the episode isn&amp;#39;t fully uploaded - it&amp;#39;s only 13 minutes long.
    </content>
    <updated>2025-02-05T12:40:56Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs85wvv7alxzm9arxl48v77ts8y4mfdvuudegu9e20fvqg2grl2tvszyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx5ua8xam</id>
    
      <title type="html">It&amp;#39;s always one container maximum, with a small bit of ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs85wvv7alxzm9arxl48v77ts8y4mfdvuudegu9e20fvqg2grl2tvszyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx5ua8xam" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspjd2ll2dqfdtx6wzsggu7r462hdp8varakuys9c5cedj2maramdc0sr3tq&#39;&gt;nevent1q…r3tq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It&amp;#39;s always one container maximum, with a small bit of downtime during a deploy:&lt;br/&gt;&lt;br/&gt;desired_count = 1&lt;br/&gt;deployment_minimum_healthy_percent = 0&lt;br/&gt;deployment_maximum_percent = 100&lt;br/&gt;&lt;br/&gt;A few requests will fail during the deploy - but it doesn&amp;#39;t take too long.
    </content>
    <updated>2025-01-04T15:01:26Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxl0qhavuadtna323p8l530l4ej4gvjzdtfeqlee6038rlpvjes4czyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx5lvtvds</id>
    
      <title type="html">Yup, that&amp;#39;s pretty much how I&amp;#39;ve got some of our ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxl0qhavuadtna323p8l530l4ej4gvjzdtfeqlee6038rlpvjes4czyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx5lvtvds" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8y4gm3ahdl360a6m2a9evp4dr5xg7qxysqy3cyznvxw8rfts4m8g32czu0&#39;&gt;nevent1q…czu0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yup, that&amp;#39;s pretty much how I&amp;#39;ve got some of our Django/SQLite sites setup in AWS:&lt;br/&gt;&lt;br/&gt;litestream restore -if-replica-exists /database/django.db&lt;br/&gt;sqlite3 /database/django.db &amp;#34;PRAGMA journal_mode = wal;&amp;#34;&lt;br/&gt;&lt;br/&gt;Then run litestream, that then calls migrations and uWSGI/uvicorn after that.
    </content>
    <updated>2025-01-04T13:47:32Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8cgy4uazczaza4ttlm0wr99hs4l049l0qha57fmd8auzet6j2uvszyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx57fapeg</id>
    
      <title type="html">You don&amp;#39;t - it&amp;#39;s one server only, with the database WAL ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8cgy4uazczaza4ttlm0wr99hs4l049l0qha57fmd8auzet6j2uvszyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx57fapeg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvg4q34v5uct4z2er6nj79hnjhwcvy07dkkxaf0z5g5y2p0e7zq7snvrh7l&#39;&gt;nevent1q…rh7l&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You don&amp;#39;t - it&amp;#39;s one server only, with the database WAL (transaction log) being shipped to S3 for backup/restore.&lt;br/&gt;&lt;br/&gt;You can run multiple Django processes to scale up on a single server, and of course get a server with more cores. The one limitation is that you can&amp;#39;t have more than one process writing to an SQLite database at the same time... but you can have a *lot* of readers.&lt;br/&gt;&lt;br/&gt;And as the database is local, the latency is super low.
    </content>
    <updated>2025-01-03T18:41:56Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsr73rsx8as87wu5f82vlqe57jg3ypefycwc3qjem7p82ypnnlqjcqzyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx50elj09</id>
    
      <title type="html">Doubt there&amp;#39;s much interest to decouple it (it&amp;#39;s simple ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsr73rsx8as87wu5f82vlqe57jg3ypefycwc3qjem7p82ypnnlqjcqzyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx50elj09" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs08mq72vm7ltnelw8avpgmsfrnzn6lp3uchj4e0wpzra2uvdu7gwczmm74m&#39;&gt;nevent1q…m74m&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Doubt there&amp;#39;s much interest to decouple it (it&amp;#39;s simple enough and it works, and isn&amp;#39;t too special/advanced to justify it).&lt;br/&gt;&lt;br/&gt;It&amp;#39;s something you could replicate (or use form-designer as [@matthiask](&lt;a href=&#34;https://hachyderm.io/@matthiask&#34;&gt;https://hachyderm.io/@matthiask&lt;/a&gt; ) mentioned).
    </content>
    <updated>2024-12-17T18:07:59Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdp02ztu7sdwg2uckupw0fkjw2mv5mc86pfacrcwyk3q6ewrlfd0qzyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx567qvhj</id>
    
      <title type="html">Part of me wants to shout - just use Wagtail! It&amp;#39;s not ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdp02ztu7sdwg2uckupw0fkjw2mv5mc86pfacrcwyk3q6ewrlfd0qzyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx567qvhj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxzwkznlxz5vp5quez47ya7cqqkdaz0eelxdze3yxpu3f32kfehpswrv5yw&#39;&gt;nevent1q…v5yw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Part of me wants to shout - just use Wagtail!&lt;br/&gt;&lt;br/&gt;It&amp;#39;s not perfect, but the form builder is pretty good. Part of me wishes that it had a slightly more advanced form builder, as the Wagtail admin is way more flexible than the Django admin - and could pull it off.&lt;br/&gt;&lt;br/&gt;But, it&amp;#39;s definitely easier to use Google Forms for most people 😉
    </content>
    <updated>2024-12-17T17:48:13Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsra2rlfq6f92rn5ag0c5cavevng8zleqewmxwd494het2ksk3q6gqzyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx50mu0nv</id>
    
      <title type="html">Oh yes, it&amp;#39;s the fun of devops with AWS/Terraform. It&amp;#39;s ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsra2rlfq6f92rn5ag0c5cavevng8zleqewmxwd494het2ksk3q6gqzyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx50mu0nv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspg8rhwy3qm8efeecs66xyqc53m65qgz9x9wgku47r7s03nl5j7zq0gz40s&#39;&gt;nevent1q…z40s&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Oh yes, it&amp;#39;s the fun of devops with AWS/Terraform.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s the equivalent of learning two additional frameworks. Firstly learning how the AWS ecosystem works, what&amp;#39;s the best practice for that, along with things that feel like they should be simple options ending up being additional configuration systems due to the flexibility they want to offer. Then learning how Terraform maps to that.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s magic when it all works though!
    </content>
    <updated>2024-11-23T11:47:47Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszfugy8f2876zy8hftgt4glfne3unx8hzqqjp48zuls4h6f763ntczyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx5rheg87</id>
    
      <title type="html">Start off with: ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszfugy8f2876zy8hftgt4glfne3unx8hzqqjp48zuls4h6f763ntczyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx5rheg87" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq5kdl58pdvt8zt3vqv4nn9u6hja82qy0ef3q47lhnq4l5wtdhldcfe7kwk&#39;&gt;nevent1q…7kwk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Start off with: &lt;a href=&#34;https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html&#34;&gt;https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;That&amp;#39;ll allow you to stick to &amp;#34;private&amp;#34; files in S3 by default, but with CloudFront being able to access them (best practice).&lt;br/&gt;&lt;br/&gt;Then: &lt;a href=&#34;https://django-storages.readthedocs.io/en/latest/backends/amazon-S3.html#cloudfront-signed-urls&#34;&gt;https://django-storages.readthedocs.io/en/latest/backends/amazon-S3.html#cloudfront-signed-urls&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Links to the right places if you do really want private media files rather than fully public URLs.
    </content>
    <updated>2024-11-23T11:30:38Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsyw6fh6tw2d8ny79nmj02atldscve8prxrv3nqgvtm47v4atd65rszyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx5q0xr5x</id>
    
      <title type="html">Yup - I had some fun a couple of weeks ago dropping quite a few ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsyw6fh6tw2d8ny79nmj02atldscve8prxrv3nqgvtm47v4atd65rszyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx5q0xr5x" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgtazqy5vt6s8p8ua3rtcx52t5vyxdkw76rfr3978uplh0t9td3dqac3lra&#39;&gt;nevent1q…3lra&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yup - I had some fun a couple of weeks ago dropping quite a few sites down to 10% of what they were previously recording.
    </content>
    <updated>2024-08-27T12:42:37Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsd38n4pw2k6u8dkamtjvuqy52q67d5ncshdvh9rpqetdaymamjgxszyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx55ezgfr</id>
    
      <title type="html">Out of curiosity, is there much of a difference between ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsd38n4pw2k6u8dkamtjvuqy52q67d5ncshdvh9rpqetdaymamjgxszyqylnj0sze0ddx5cuj52mduyk6hye0xhfd4djnza5fvnqwc4g8gx55ezgfr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrg7yey90pzlsevyzv7njk26kjwf2q2z0ue7rfqu7ge3mqnsre05gt8huwt&#39;&gt;nevent1q…huwt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Out of curiosity, is there much of a difference between sampled/traced requests, versus other requests?&lt;br/&gt;&lt;br/&gt;(Is the additional monitoring having an impact?)
    </content>
    <updated>2024-08-27T11:55:08Z</updated>
  </entry>

</feed>