<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Tommaso Amici</title><description>I&apos;m a full stack web engineer based in Amsterdam</description><link>https://tommasoamici.com/</link><lastBuildDate>Sun, 18 Feb 2024 11:01:00 GMT</lastBuildDate><item><title>Demistifying list virtualization in React</title><link>https://tommasoamici.com/blog/demistifying-list-virtualization-in-react/</link><guid isPermaLink="true">https://tommasoamici.com/blog/demistifying-list-virtualization-in-react/</guid><description>A walkthrough of minimal implementation of a virtualized list component in React&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/demistifying-list-virtualization-in-react/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Sun, 04 Feb 2024 14:03:18 GMT</pubDate><category>React</category><category>Frontend</category><category>Performance</category></item><item><title>How to load a local Parquet file in Starrocks</title><link>https://tommasoamici.com/blog/how-to-load-a-local-parquet-file-in-starrocks/</link><guid isPermaLink="true">https://tommasoamici.com/blog/how-to-load-a-local-parquet-file-in-starrocks/</guid><description>A short guide on how to ingest data in Starrocks using Parquet files&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/how-to-load-a-local-parquet-file-in-starrocks/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Wed, 20 Sep 2023 20:37:33 GMT</pubDate><category>Data</category><category>Starrocks</category><category>Parquet</category></item><item><title>You may not need Nx Cloud</title><link>https://tommasoamici.com/blog/you-may-not-need-nx-cloud/</link><guid isPermaLink="true">https://tommasoamici.com/blog/you-may-not-need-nx-cloud/</guid><description>Some of the things I learned while migrating the frontend monorepo at FLYR from Lerna to Nx and how to make the most out of this setup without Nx Cloud.&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/you-may-not-need-nx-cloud/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Wed, 20 Sep 2023 19:35:36 GMT</pubDate><category>CI/CD</category><category>CircleCI</category><category>Nx</category></item><item><title>A reactive approach to backend response caching</title><link>https://tommasoamici.com/blog/a-reactive-approach-to-backend-response-caching/</link><guid isPermaLink="true">https://tommasoamici.com/blog/a-reactive-approach-to-backend-response-caching/</guid><description>In this post I discuss how to implement backend response caching based on dependencies between data, significantly simplifying invalidation.&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/a-reactive-approach-to-backend-response-caching/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Fri, 07 Jul 2023 05:43:34 GMT</pubDate><category>Backend</category><category>Cache</category></item><item><title>How to dynamically change the signature of a function in Python</title><link>https://tommasoamici.com/blog/dynamically-change-signature-function-python/</link><guid isPermaLink="true">https://tommasoamici.com/blog/dynamically-change-signature-function-python/</guid><description>Here&apos;s something I learned today when adding Redis backed caching to a FastAPI application.&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/dynamically-change-signature-function-python/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Mon, 13 Mar 2023 22:33:08 GMT</pubDate><category>Python</category><category>FastAPI</category><category>TIL</category></item><item><title>How to specify the type of a `column_property` in SQLAlchemy</title><link>https://tommasoamici.com/blog/sqlalchemy-specify-type-columnproperty/</link><guid isPermaLink="true">https://tommasoamici.com/blog/sqlalchemy-specify-type-columnproperty/</guid><description>A short post illustrating how to specify the type of a SQL expression addded to a model with a `column_property` in SQLAlchemy&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/sqlalchemy-specify-type-columnproperty/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Thu, 09 Feb 2023 16:40:31 GMT</pubDate><category>SQLAlchemy</category><category>Python</category></item><item><title>Adding dynamic Open Graph images and social cards to a Next.js application</title><link>https://tommasoamici.com/blog/adding-dynamic-open-graph-images-and-social-cards-to-a-nextjs-application/</link><guid isPermaLink="true">https://tommasoamici.com/blog/adding-dynamic-open-graph-images-and-social-cards-to-a-nextjs-application/</guid><description>Vercel recently announced a new service to generate OG Images dynamically. In this post I will show you how you can add this feature to a self hosted Next.js application.&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/adding-dynamic-open-graph-images-and-social-cards-to-a-nextjs-application/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Sat, 12 Nov 2022 14:56:26 GMT</pubDate><category>Next.js</category></item><item><title>Estimating the size of Serie A fanbases using Pwned Passwords</title><link>https://tommasoamici.com/blog/estimating-the-size-of-serie-a-fanbases-using-pwned-passwords/</link><guid isPermaLink="true">https://tommasoamici.com/blog/estimating-the-size-of-serie-a-fanbases-using-pwned-passwords/</guid><description>I had a bit of fun today poking around the Pwned Passwords data breaches. I wanted to see which Serie A team had the most fans based on the number of leaked passwords that can be reasonably associated with a specific team.&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/estimating-the-size-of-serie-a-fanbases-using-pwned-passwords/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Fri, 06 May 2022 09:51:01 GMT</pubDate><category>Security</category></item><item><title>Wagtail as a headless CMS for JavaScript frontends</title><link>https://tommasoamici.com/blog/wagtail-as-a-headless-cms-for-javascript-frontends/</link><guid isPermaLink="true">https://tommasoamici.com/blog/wagtail-as-a-headless-cms-for-javascript-frontends/</guid><description>In this talk at Wagtail Space US 2022 I spoke about how to set up Wagtail as a headless CMS for JavaScript frontends&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/wagtail-as-a-headless-cms-for-javascript-frontends/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Fri, 25 Mar 2022 17:46:22 GMT</pubDate><category>Python</category><category>Django</category><category>Wagtail</category></item><item><title>Headless Wagtail, what are the pain points?</title><link>https://tommasoamici.com/blog/headless-wagtail-what-are-the-pain-points/</link><guid isPermaLink="true">https://tommasoamici.com/blog/headless-wagtail-what-are-the-pain-points/</guid><description>The first installment of my guide on how to set up Wagtail as a headless CMS for JavaScript frontends.&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/headless-wagtail-what-are-the-pain-points/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Thu, 24 Feb 2022 13:17:51 GMT</pubDate><category>Python</category><category>Django</category><category>Wagtail</category></item><item><title>How to write unit tests for functions using `timezone.now` in Django</title><link>https://tommasoamici.com/blog/how-to-write-unit-tests-for-functions-using-timezonenow-in-django/</link><guid isPermaLink="true">https://tommasoamici.com/blog/how-to-write-unit-tests-for-functions-using-timezonenow-in-django/</guid><description>A short post explaining how to mock `django.utils.timezone.now` in unit tests.&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/how-to-write-unit-tests-for-functions-using-timezonenow-in-django/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Thu, 27 Jan 2022 11:10:00 GMT</pubDate><category>Python</category><category>Django</category><category>Testing</category></item><item><title>How to setup the modern frontend toolchain in Django</title><link>https://tommasoamici.com/blog/how-to-setup-the-modern-frontend-toolchain-in-django/</link><guid isPermaLink="true">https://tommasoamici.com/blog/how-to-setup-the-modern-frontend-toolchain-in-django/</guid><description>So you want to deploy a traditional Django application, but you also want Typescript, Tailwind, and all the good that modern frontend offers?&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/how-to-setup-the-modern-frontend-toolchain-in-django/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Thu, 28 Oct 2021 17:12:12 GMT</pubDate><category>Django</category><category>Webpack</category><category>Typescript</category><category>Tailwind</category></item><item><title>Custom Metrics Reports on GitLab</title><link>https://tommasoamici.com/blog/custom-metrics-reports-on-gitlab/</link><guid isPermaLink="true">https://tommasoamici.com/blog/custom-metrics-reports-on-gitlab/</guid><description>GitLab allows you to record Metrics Reports and will display a report on merge requests so that it’s easier and faster to identify changes without having to check the entire log&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/custom-metrics-reports-on-gitlab/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Fri, 22 Oct 2021 16:08:41 GMT</pubDate><category>GitLab</category><category>CI/CD</category><category>DevOps</category></item><item><title>What I wish I knew before building a Gatsby source plugin</title><link>https://tommasoamici.com/blog/what-i-wish-i-knew-before-building-a-gatsby-source-plugin/</link><guid isPermaLink="true">https://tommasoamici.com/blog/what-i-wish-i-knew-before-building-a-gatsby-source-plugin/</guid><description>What I learned building a Gatsby plugin to source my collection of board games through BoardGameGeek&apos;s API.&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/what-i-wish-i-knew-before-building-a-gatsby-source-plugin/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Sat, 29 May 2021 20:02:41 GMT</pubDate><category>Gatsby</category><category>Typescript</category></item><item><title>Building a HomeKit compatible temperature and humidity sensor</title><link>https://tommasoamici.com/blog/building-a-homekit-compatible-temperature-and-humidity-sensor/</link><guid isPermaLink="true">https://tommasoamici.com/blog/building-a-homekit-compatible-temperature-and-humidity-sensor/</guid><description>In this short post I&apos;ll explain how I set up a HomeKit compatible temperature and humidity sensor with a ESP8266 chip, Homebridge, and an AM2302 sensor&lt;hr&gt;&lt;a href=&quot;https://tommasoamici.com/blog/building-a-homekit-compatible-temperature-and-humidity-sensor/&quot;&gt;Read more&lt;/a&gt;</description><pubDate>Thu, 12 Nov 2020 19:12:35 GMT</pubDate><category>ESP8266</category><category>AM2302</category><category>Homebridge</category></item></channel></rss>