<?xml version="1.0"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Indoor Vivants</title><link>https://blog.indoorvivants.com/</link><atom:link href="https://blog.indoorvivants.com/rss.xml" rel="self" type="application/rss+xml"></atom:link><description>Anton Sviridov's personal blog</description><item><title>Video: Scala and C - tight as brothers (Scalar 2026)</title><link>https://blog.indoorvivants.com/2026-06-01-video-scala-and-c-tight-as-brothers-scalar-2026.html</link><guid>https://blog.indoorvivants.com/2026-06-01-video-scala-and-c-tight-as-brothers-scalar-2026.html</guid><description>Recording of my talk at Scalar about Scala and C interop, with tools, examples, caveats, and general message of fear</description><pubDate>Mon, 1 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Log context propagation in http4s with Scribe</title><link>https://blog.indoorvivants.com/2026-01-08-log-context-propagation-in-http4s-with-scribe.html</link><guid>https://blog.indoorvivants.com/2026-01-08-log-context-propagation-in-http4s-with-scribe.html</guid><description>As a sign of nature healing, we no longer need to use Kleisli and polymorphic effects to do something as trivial as attaching request metadata to log statements. Let's take a look at how IOLocal helps here.</description><pubDate>Thu, 8 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Video: Scala Days talk about Tree Sitter, and Scala 3 multiplatform</title><link>https://blog.indoorvivants.com/2025-11-26-video-scala-days-talk-about-tree-sitter-and-scala-3-multiplatform.html</link><guid>https://blog.indoorvivants.com/2025-11-26-video-scala-days-talk-about-tree-sitter-and-scala-3-multiplatform.html</guid><description>In August 2025 I gave a talk at Scala Days about Tree Sitter and Scala syntax highlighting on all the platforms that Scala supports</description><pubDate>Wed, 26 Nov 2025 00:00:00 GMT</pubDate></item><item><title>Restarting Kubernetes deployments with Github Webhooks and Scala</title><link>https://blog.indoorvivants.com/2025-10-20-restarting-kubernetes-deployments-with-github-webhooks-and-scala.html</link><guid>https://blog.indoorvivants.com/2025-10-20-restarting-kubernetes-deployments-with-github-webhooks-and-scala.html</guid><description>On my lazy Kubernetes cluster that hosts various apps I want to have the easiest possible way for automatic deployments - and reacting to Github package publishing seems just simple enough</description><pubDate>Mon, 20 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Self-contained multi-stage Dockerfiles are rad</title><link>https://blog.indoorvivants.com/2025-10-14-selfcontained-multistage-dockerfiles-are-rad.html</link><guid>https://blog.indoorvivants.com/2025-10-14-selfcontained-multistage-dockerfiles-are-rad.html</guid><description>In this post I show you the approach I've been using for a while to simplify some aspects of the packaging of my apps. Through it all I will try to convince you that waiting a long ass time for project to build is a sign of greatness (somehow)</description><pubDate>Tue, 14 Oct 2025 00:00:00 GMT</pubDate></item><item><title>sn-bindgen-web - Typelevel stack on Scala Native 0.5</title><link>https://blog.indoorvivants.com/2025-09-22-snbindgenweb-typelevel-stack-on-scala-native-05.html</link><guid>https://blog.indoorvivants.com/2025-09-22-snbindgenweb-typelevel-stack-on-scala-native-05.html</guid><description>This is a showcase of the app I've been working on and off for a while now, which recently got a major update and public release. A http4s and smithy4s full stack application which provides a web interface to my Scala Native bindings generator</description><pubDate>Mon, 22 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Video: When Scala meets C, C++, and Assembly</title><link>https://blog.indoorvivants.com/2025-06-08-scala-native-interop-livecoding.html</link><guid>https://blog.indoorvivants.com/2025-06-08-scala-native-interop-livecoding.html</guid><description>Live coding session for London Scala User Group where we build a Scala Native HTTP server using a C++ library, interact with it via C interface, and even call assembly-defined functions from Scala</description><pubDate>Sun, 8 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Calling Scala Native from Java using FFM</title><link>https://blog.indoorvivants.com/2025-02-16-scala-native-from-java-via-ffm.html</link><guid>https://blog.indoorvivants.com/2025-02-16-scala-native-from-java-via-ffm.html</guid><description>Let's point Java's newfangled foreign function and memory interface at a C header file that secretly acts as a portal into a Scala Native implementation. Zendaya meme will help explain.</description><pubDate>Sun, 16 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Calling Java from Scala Native via JNI</title><link>https://blog.indoorvivants.com/2025-02-08-java-from-scala-native-via-jni.html</link><guid>https://blog.indoorvivants.com/2025-02-08-java-from-scala-native-via-jni.html</guid><description>If you like suffering and have some Java libraries you just can't live without, here's a way to use them from your Scala Native application</description><pubDate>Sat, 8 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Optimal Scalafmt configuration using Genetic Algorithms</title><link>https://blog.indoorvivants.com/2024-09-27-scalafmt-genetic-optimiser.html</link><guid>https://blog.indoorvivants.com/2024-09-27-scalafmt-genetic-optimiser.html</guid><description>We stop at nothing to avoid manual work in tweaking our scalafmt config to produce the least amount of changes in the existing files</description><pubDate>Fri, 27 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Besom and Smithy4s on AWS -  Scala 3 good vibes only</title><link>https://blog.indoorvivants.com/2024-04-14-besom-smithy4s-aws.html</link><guid>https://blog.indoorvivants.com/2024-04-14-besom-smithy4s-aws.html</guid><description>We write a Scala 3 web service that talks to AWS Comprehend service to do basic sentiment analysis, but without using AWS SDK, through the power of Smithy4s. We then take that service and deploy it to AWS using Besom - a pure Scala 3 SDK for Pulumi</description><pubDate>Sun, 14 Apr 2024 00:00:00 GMT</pubDate></item><item><title>Simple anti-toddler game with Scala Native and Raylib</title><link>https://blog.indoorvivants.com/2024-02-05-defeating-toddler-with-raylib.html</link><guid>https://blog.indoorvivants.com/2024-02-05-defeating-toddler-with-raylib.html</guid><description>To save my Slack and Discord from messages sent by a toddler, I need an efficient keyboard protection software. Let's build one with Raylib and Scala Native.</description><pubDate>Mon, 5 Feb 2024 00:00:00 GMT</pubDate></item><item><title>Scala Native and Swift: building Twotm8 MacOS app</title><link>https://blog.indoorvivants.com/2023-11-24-scala-native-from-swift.html</link><guid>https://blog.indoorvivants.com/2023-11-24-scala-native-from-swift.html</guid><description>Let's build a Swift UI (MacOS) client app for Twotm8, using both Swift and Scala Native</description><pubDate>Fri, 24 Nov 2023 00:00:00 GMT</pubDate></item><item><title>Smithy4s full stack (p.4): Frontend and closing thoughts</title><link>https://blog.indoorvivants.com/2022-06-13-smithy4s-fullstack-part-4.html</link><guid>https://blog.indoorvivants.com/2022-06-13-smithy4s-fullstack-part-4.html</guid><description>Where we build parts of our app's frontend and discuss the overall experience</description><pubDate>Mon, 13 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Smithy4s full stack (p.3): Backend testing</title><link>https://blog.indoorvivants.com/2022-06-12-smithy4s-fullstack-part-3.html</link><guid>https://blog.indoorvivants.com/2022-06-12-smithy4s-fullstack-part-3.html</guid><description>Where we identify meaningful levels of testing without any controversy
at all, using Weaver and Testcontainers for integration testing</description><pubDate>Sun, 12 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Smithy4s full stack (p.2): Backend and deployment</title><link>https://blog.indoorvivants.com/2022-06-11-smithy4s-fullstack-part-2.html</link><guid>https://blog.indoorvivants.com/2022-06-11-smithy4s-fullstack-part-2.html</guid><description>Where we set up HTTP server, Postgres access with Skunk and Flyway,
then package and deploy the app to Platform.sh</description><pubDate>Sat, 11 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Smithy4s full stack (p.1): Introduction</title><link>https://blog.indoorvivants.com/2022-06-10-smithy4s-fullstack-part-1.html</link><guid>https://blog.indoorvivants.com/2022-06-10-smithy4s-fullstack-part-1.html</guid><description>Kicking off a series where we develop a fullstack Scala application
using Smithy4s, Skunk, Laminar, and deploy it to Platform.sh and Heroku</description><pubDate>Fri, 10 Jun 2022 00:00:00 GMT</pubDate></item><item><title>Smithy in Neovim: parsing, syntax highlighting, LSP</title><link>https://blog.indoorvivants.com/2022-05-12-smithy-neovim.html</link><guid>https://blog.indoorvivants.com/2022-05-12-smithy-neovim.html</guid><description>Slumming it to edit Smithy files like the king/queen you are</description><pubDate>Thu, 12 May 2022 00:00:00 GMT</pubDate></item><item><title>Twotm8 (p.5): Building the frontend</title><link>https://blog.indoorvivants.com/2022-03-07-twotm8-part-5-building-the-frontend.html</link><guid>https://blog.indoorvivants.com/2022-03-07-twotm8-part-5-building-the-frontend.html</guid><description>Building a Single Page Application with Scala.js and Laminar, start to finish</description><pubDate>Mon, 7 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Twotm8 (p.4): Building the backend</title><link>https://blog.indoorvivants.com/2022-03-06-twotm8-part-4-building-the-app.html</link><guid>https://blog.indoorvivants.com/2022-03-06-twotm8-part-4-building-the-app.html</guid><description>Armed with HTTP definitions and Postgres bindings, we build out the backend for the app in full</description><pubDate>Sun, 6 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Twotm8 (p.3): NGINX Unit and Fly.io</title><link>https://blog.indoorvivants.com/2022-03-05-twotm8-part-3-nginx-unit-and-fly.io-service.html</link><guid>https://blog.indoorvivants.com/2022-03-05-twotm8-part-3-nginx-unit-and-fly.io-service.html</guid><description>In this installment, we introduce NGINX Unit (and SNUnit), build out the foundations of our API, and set up a deployment to Fly.io</description><pubDate>Sat, 5 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Twotm8 (p.2): Postgres and OpenSSL</title><link>https://blog.indoorvivants.com/2022-03-04-twotm8-part-2-postgres-and-openssl.html</link><guid>https://blog.indoorvivants.com/2022-03-04-twotm8-part-2-postgres-and-openssl.html</guid><description>In part two, we will setup bindings to Postgres and OpenSSL, and write a data access library to make working with Postgres easier</description><pubDate>Fri, 4 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Twotm8 (p.1): Introduction</title><link>https://blog.indoorvivants.com/2022-03-03-twotm8-part-1-introduction.html</link><guid>https://blog.indoorvivants.com/2022-03-03-twotm8-part-1-introduction.html</guid><description>We embark on an adventure of infinite struggle, trying to build an opinionated (=bad) Twitter clone using nothing but Scala Native and C libraries, Scala.js for frontend, Postgres for database, and Fly.io for cloud deployment</description><pubDate>Thu, 3 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Cloudflare functions with Scala.js</title><link>https://blog.indoorvivants.com/2022-02-14-cloudflare-functions-with-scalajs.html</link><guid>https://blog.indoorvivants.com/2022-02-14-cloudflare-functions-with-scalajs.html</guid><description>How to build, deploy, and develop an app using Cloudflare functions with Scala.js, choosing most difficult routes on every turn</description><pubDate>Mon, 14 Feb 2022 00:00:00 GMT</pubDate></item><item><title>Open Source Scala I: versions, platforms, artifacts</title><link>https://blog.indoorvivants.com/2022-02-13-maintaining-scala-open-source-library-part-I.html</link><guid>https://blog.indoorvivants.com/2022-02-13-maintaining-scala-open-source-library-part-I.html</guid><description>A chaotic tour of Scala's versions, platforms, and artifacts</description><pubDate>Sun, 13 Feb 2022 00:00:00 GMT</pubDate></item><item><title>What's new in Scala 3 video (p.2)</title><link>https://blog.indoorvivants.com/2021-02-08-scala3-video-part-II.html</link><guid>https://blog.indoorvivants.com/2021-02-08-scala3-video-part-II.html</guid><description>Second part of conversation with my friend Artem, this time about Scala 3 implicits (=givens)</description><pubDate>Mon, 8 Feb 2021 00:00:00 GMT</pubDate></item><item><title>What's new in Scala 3 video (p.1)</title><link>https://blog.indoorvivants.com/2020-12-30-scala3-video-part-I.html</link><guid>https://blog.indoorvivants.com/2020-12-30-scala3-video-part-I.html</guid><description>A conversation with an old friend of mine where we spend almost 2 hours exploring some of the new features of Scala 3</description><pubDate>Wed, 30 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Visualising timeseries: stocks data and global trends</title><link>https://blog.indoorvivants.com/2015-06-10-visualising-real-world-time-series.html</link><guid>https://blog.indoorvivants.com/2015-06-10-visualising-real-world-time-series.html</guid><pubDate>Wed, 10 Jun 2015 00:00:00 GMT</pubDate></item><item><title>Google search history analysis</title><link>https://blog.indoorvivants.com/2015-05-31-google-search-history-analysis.html</link><guid>https://blog.indoorvivants.com/2015-05-31-google-search-history-analysis.html</guid><pubDate>Sun, 31 May 2015 00:00:00 GMT</pubDate></item></channel></rss>