<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Scribblings of an Introvert</title><description>Blog about Scala, functional programming and software development.</description><link>https://yadavan88.github.io/</link><item><title>Apache DataSketches: A Guide to Sketch Types</title><link>https://yadavan88.github.io/posts/apache-datasketches-a-guide-to-sketch-types/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/apache-datasketches-a-guide-to-sketch-types/</guid><description>A quick overview of cardinality, percentiles, frequency, sampling, and membership sketches, with their use cases and trade-offs.</description><pubDate>Sun, 01 Nov 2026 15:33:53 GMT</pubDate></item><item><title>Fast Approximate Analytics in Scala with Apache DataSketches</title><link>https://yadavan88.github.io/posts/fast-approximate-analytics-in-scala-with-apache-datasketches/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/fast-approximate-analytics-in-scala-with-apache-datasketches/</guid><description>Learn HLL, KLL and Frequent Items sketches in Scala with Apache DataSketches, and inspect stored sketches with SketchProbe.</description><pubDate>Sat, 31 Oct 2026 19:56:29 GMT</pubDate></item><item><title>Safe AI Agentic Development: Sandboxing Coding Assistants</title><link>https://yadavan88.github.io/posts/safe-ai-agentic-development-sandboxing-coding-assistants/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/safe-ai-agentic-development-sandboxing-coding-assistants/</guid><description>Secure local environments from AI coding agents by sandboxing. How to isolate Claude using nono, Nix, or Docker to block unsafe commands.</description><pubDate>Thu, 08 Oct 2026 15:02:21 GMT</pubDate></item><item><title>Building a Generic Data Integration Pipeline in Scala: The Data Plumber - Part 3</title><link>https://yadavan88.github.io/posts/building-a-generic-data-integration-pipeline-in-scala-the-data-plumber-part-3/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/building-a-generic-data-integration-pipeline-in-scala-the-data-plumber-part-3/</guid><description>This blog is a part of the ***Data Plumber Series.***</description><pubDate>Tue, 18 Mar 2025 05:35:14 GMT</pubDate></item><item><title>Building a Generic Data Integration Pipeline in Scala: The Data Plumber - Part 2</title><link>https://yadavan88.github.io/posts/building-a-generic-data-integration-pipeline-in-scala-the-data-plumber-part-2/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/building-a-generic-data-integration-pipeline-in-scala-the-data-plumber-part-2/</guid><description>This blog is a part of the ***Data Plumber Series******.***</description><pubDate>Mon, 17 Mar 2025 19:09:17 GMT</pubDate></item><item><title>Building a Generic Data Integration Pipeline in Scala: The Data Plumber - Part 1</title><link>https://yadavan88.github.io/posts/building-a-generic-data-integration-pipeline-in-scala-the-data-plumber-part-1/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/building-a-generic-data-integration-pipeline-in-scala-the-data-plumber-part-1/</guid><description>This blog is a part of the Data Plumber Series.</description><pubDate>Mon, 17 Mar 2025 18:09:10 GMT</pubDate></item><item><title>A Generic Approach to Parsing CSV into Case Classes in Scala 3</title><link>https://yadavan88.github.io/posts/a-generic-approach-to-parsing-csv-into-case-classes-in-scala-3/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/a-generic-approach-to-parsing-csv-into-case-classes-in-scala-3/</guid><description>CSV is one of the most common formats for exchanging and importing data between different systems.</description><pubDate>Thu, 27 Feb 2025 11:51:43 GMT</pubDate></item><item><title>Custom SBT Task to List Direct Dependencies of a Project</title><link>https://yadavan88.github.io/posts/custom-sbt-task-to-list-direct-dependencies-of-a-project/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/custom-sbt-task-to-list-direct-dependencies-of-a-project/</guid><description>Recently, at work, there was a requirement to list out the direct dependencies of the our SBT project, something like Bill Of Materials.</description><pubDate>Tue, 02 Jul 2024 16:11:39 GMT</pubDate></item><item><title>Developing Java Applications with Scala-CLI</title><link>https://yadavan88.github.io/posts/developing-java-applications-with-scala-cli/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/developing-java-applications-with-scala-cli/</guid><description>Discover how to easily create small Java projects without the need for Maven or other complex build systems.</description><pubDate>Mon, 01 Jul 2024 16:59:48 GMT</pubDate></item><item><title>Effective Test Parameterization with ScalaTest Tables</title><link>https://yadavan88.github.io/posts/effective-test-parameterization-with-scalatest-tables/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/effective-test-parameterization-with-scalatest-tables/</guid><description>Make your tests more readable and maintainable using Table Driven testing in Scalatest</description><pubDate>Thu, 23 Nov 2023 21:08:12 GMT</pubDate></item><item><title>Scala Made Simple for Beginners: A Gentle Introduction to Kickstarting Your Scala Learning</title><link>https://yadavan88.github.io/posts/scala-made-simple-for-beginners-a-gentle-introduction-to-kickstarting-your-scala-learning/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/scala-made-simple-for-beginners-a-gentle-introduction-to-kickstarting-your-scala-learning/</guid><description>How to leverage Scala-CLI, Scala Toolkit, and Scastie to kickstart your journey into the exciting Scala world.</description><pubDate>Sun, 01 Oct 2023 18:56:56 GMT</pubDate></item><item><title>Diving into ZIO Test &apos;Aspects&apos;: Streamlining Cross-Cutting Concerns in Testing</title><link>https://yadavan88.github.io/posts/diving-into-zio-test-aspects-streamlining-cross-cutting-concerns-in-testing/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/diving-into-zio-test-aspects-streamlining-cross-cutting-concerns-in-testing/</guid><description>Empowering Your Testing Strategy: A Close Look at ZIO Test Aspects for Effortless and Effective Handling of Cross-Cutting Concerns</description><pubDate>Sun, 20 Aug 2023 06:24:51 GMT</pubDate></item><item><title>Mastering ScalaTest - Exploring Tagging, Retry, Runner and More</title><link>https://yadavan88.github.io/posts/mastering-scalatest-exploring-tagging-retry-runner-and-more/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/mastering-scalatest-exploring-tagging-retry-runner-and-more/</guid><description>How to tag tests, retry flaky tests, runners, compile check etc in ScalaTest framework</description><pubDate>Fri, 23 Jun 2023 20:48:18 GMT</pubDate></item><item><title>Unlocking the Power of SBT: A Beginner&apos;s Guide to Understanding Not-So-Common Features</title><link>https://yadavan88.github.io/posts/unlocking-the-power-of-sbt-a-beginners-guide-to-understanding-not-so-common-features/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/unlocking-the-power-of-sbt-a-beginners-guide-to-understanding-not-so-common-features/</guid><description>Overcome the complexities of SBT with this guide to advanced features for newbies. Streamline the build process and maximize SBT&apos;s capabilities.</description><pubDate>Fri, 28 Apr 2023 17:23:44 GMT</pubDate></item><item><title>Error Handling in Cats Effect [Part-9]</title><link>https://yadavan88.github.io/posts/error-handling-in-cats-effect-part-9/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/error-handling-in-cats-effect-part-9/</guid><description>Various ways to perform error handling in Cats Effect 3</description><pubDate>Sun, 23 Apr 2023 13:07:29 GMT</pubDate></item><item><title>Useful Automation Tools for Scala Development</title><link>https://yadavan88.github.io/posts/useful-automation-tools-for-scala-development/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/useful-automation-tools-for-scala-development/</guid><description>This article introduces popular and useful tools for Scala application development, such as GitHub Actions, Scalafmt, Mergfy, Scala Steward, etc.</description><pubDate>Sun, 19 Mar 2023 16:04:30 GMT</pubDate></item><item><title>Comparing case class instances using DiffX</title><link>https://yadavan88.github.io/posts/comparing-case-class-instances-using-diffx/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/comparing-case-class-instances-using-diffx/</guid><description>Compare instances of scala case classes and identify differences with ease.</description><pubDate>Sat, 04 Mar 2023 13:15:01 GMT</pubDate></item><item><title>ULID - Sortable Unique Identifier</title><link>https://yadavan88.github.io/posts/ulid-sortable-unique-identifier/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/ulid-sortable-unique-identifier/</guid><description>ULID - Sortable Unique Identifier that is better than UUID in many cases. ULID vs UUID</description><pubDate>Sun, 01 Jan 2023 07:00:44 GMT</pubDate></item><item><title>Easy Integration Testing with TestContainer-Scala</title><link>https://yadavan88.github.io/posts/easy-integration-testing-with-testcontainer-scala/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/easy-integration-testing-with-testcontainer-scala/</guid><description>Non flaky integration testing with testcontainers-scala</description><pubDate>Fri, 02 Dec 2022 06:00:42 GMT</pubDate></item><item><title>Tuple Improvements in Scala 3</title><link>https://yadavan88.github.io/posts/tuple-improvements-in-scala-3/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/tuple-improvements-in-scala-3/</guid><description>New changes introduced in Scala 3 for Tuples</description><pubDate>Sun, 06 Nov 2022 06:00:42 GMT</pubDate></item><item><title>Compile Time Error Generation using inline in Scala 3</title><link>https://yadavan88.github.io/posts/compile-time-error-generation-using-inline-in-scala-3/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/compile-time-error-generation-using-inline-in-scala-3/</guid><description>Implementing compile time validation in Scala 3 using inline modifier</description><pubDate>Mon, 24 Oct 2022 06:15:42 GMT</pubDate></item><item><title>Scala Exceptions - Try, try..catch and a caveat</title><link>https://yadavan88.github.io/posts/scala-exceptions-try-trycatch-and-a-caveat/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/scala-exceptions-try-trycatch-and-a-caveat/</guid><description>How does scala.util.Try differ from try-catch, and where scala Try don&apos;t work as expected!</description><pubDate>Fri, 21 Oct 2022 18:12:17 GMT</pubDate></item><item><title>Lazy and Eager Computations in Cats using Eval</title><link>https://yadavan88.github.io/posts/lazy-and-eager-computations-in-cats-using-eval/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/lazy-and-eager-computations-in-cats-using-eval/</guid><description>Controlling evaluations in Cats using Eval</description><pubDate>Sun, 18 Sep 2022 09:26:22 GMT</pubDate></item><item><title>Retrying Cats Effect Failures With Ease</title><link>https://yadavan88.github.io/posts/retrying-cats-effect-failures-with-ease/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/retrying-cats-effect-failures-with-ease/</guid><description>Learn how to create a customized retry policy with error handling using the Cats-Retry library. Discover the various methods like retryingOnSomeErrors and retryingOnFailures, that enable users to...</description><pubDate>Wed, 22 Jun 2022 04:30:01 GMT</pubDate></item><item><title>Self Type in Scala</title><link>https://yadavan88.github.io/posts/self-type-in-scala/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/self-type-in-scala/</guid><description>Different usages of self types in Scala</description><pubDate>Fri, 10 Jun 2022 16:00:00 GMT</pubDate></item><item><title>Data Validation and Error Accumulation using Cats Validated</title><link>https://yadavan88.github.io/posts/data-validation-and-error-accumulation-using-cats-validated/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/data-validation-and-error-accumulation-using-cats-validated/</guid><description>Let&apos;s see how this is not good in certain scenarios. Assume that we have a simple use-case of transfer of money between two bank accounts. The user input model looks like below and have some...</description><pubDate>Mon, 30 May 2022 10:16:02 GMT</pubDate></item><item><title>Common Operators in Cats Effect 3 [Part-8]</title><link>https://yadavan88.github.io/posts/common-operators-in-cats-effect-3-part-8/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/common-operators-in-cats-effect-3-part-8/</guid><description>This is the 8th part of the Cats Effect 3 blog series. In this part, let&apos;s discuss about the other common operators/methods available in Cats Effect which were not discussed in the previous parts.</description><pubDate>Thu, 26 May 2022 20:18:40 GMT</pubDate></item><item><title>Synchronisation and Concurrent Access in Cats Effect 3 [Part 7]</title><link>https://yadavan88.github.io/posts/synchronisation-and-concurrent-access-in-cats-effect-3-part-7/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/synchronisation-and-concurrent-access-in-cats-effect-3-part-7/</guid><description>We can mainly use 2 different ways to create a Ref:</description><pubDate>Wed, 25 May 2022 22:17:39 GMT</pubDate></item><item><title>Cancellation of IO/Fiber in Cats Effect 3 [Part 6]</title><link>https://yadavan88.github.io/posts/cancellation-of-iofiber-in-cats-effect-3-part-6/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/cancellation-of-iofiber-in-cats-effect-3-part-6/</guid><description>This is the sixth part of Cats Effect series. In the part 4 of this series, we looked at concurrent programming in Cats Effect 3 using Fibers. In this part, we&apos;ll look at cancellation of already...</description><pubDate>Wed, 18 May 2022 21:52:18 GMT</pubDate></item><item><title>Resource Handling in Cats Effect 3 [Part 5]</title><link>https://yadavan88.github.io/posts/resource-handling-in-cats-effect-3-part-5/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/resource-handling-in-cats-effect-3-part-5/</guid><description>For example, if we are opening a file to read and forgets to close it when done, this will lead to memory leaks and eventual crash of the application. So, it is very important that these resources...</description><pubDate>Fri, 13 May 2022 14:45:42 GMT</pubDate></item><item><title>Concurrent Execution in Cats Effect using Fibers [Part 4]</title><link>https://yadavan88.github.io/posts/concurrent-execution-in-cats-effect-using-fibers/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/concurrent-execution-in-cats-effect-using-fibers/</guid><description>Parallelism is a way by which multiple computations run at the exact same time. This generally utilises multiple processor cores to execute each computation. The methods parSequence, parTraverse...</description><pubDate>Mon, 09 May 2022 07:49:20 GMT</pubDate></item><item><title>Traversing Cats Effect IOs [Part-3]</title><link>https://yadavan88.github.io/posts/traversing-cats-effect-ios-part-3/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/traversing-cats-effect-ios-part-3/</guid><description>In this part, let&apos;s look at different ways to combine and traverse multiple IOs.</description><pubDate>Tue, 03 May 2022 16:02:11 GMT</pubDate></item><item><title>Tools to Get Started With Scala Programming</title><link>https://yadavan88.github.io/posts/tools-to-get-started-with-scala-programming/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/tools-to-get-started-with-scala-programming/</guid><description>Get a taste of Scala for the beginners</description><pubDate>Sun, 01 May 2022 12:20:08 GMT</pubDate></item><item><title>Common APIs: Cats Effect IO [Part-2]</title><link>https://yadavan88.github.io/posts/common-apis-cats-effect-io-part-2/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/common-apis-cats-effect-io-part-2/</guid><description>We can also use flatten to avoid nested IOs:</description><pubDate>Fri, 29 Apr 2022 15:46:10 GMT</pubDate></item><item><title>Cats Effect 3 for Beginners [Part-1]</title><link>https://yadavan88.github.io/posts/cats-effect-3-for-beginners-part-1/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/cats-effect-3-for-beginners-part-1/</guid><description>Scala Cats Effect tutorial</description><pubDate>Thu, 28 Apr 2022 15:23:25 GMT</pubDate></item><item><title>ScalaNative - Build Native Applications In Scala</title><link>https://yadavan88.github.io/posts/scalanative-build-native-applications-in-scala/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/scalanative-build-native-applications-in-scala/</guid><description>Native application using Scala Native</description><pubDate>Wed, 27 Apr 2022 15:06:17 GMT</pubDate></item><item><title>TASTy File Format in Scala 3</title><link>https://yadavan88.github.io/posts/tasty-file-format-in-scala-3/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/tasty-file-format-in-scala-3/</guid><description>TASTy format captures more detailed informations regarding types and other advanced features in Scala 3. The Scala compiler converts the Scala files into TASTy format(.tasty). This .tasty file is...</description><pubDate>Sun, 24 Apr 2022 09:21:59 GMT</pubDate></item><item><title>Scala Closures</title><link>https://yadavan88.github.io/posts/scala-closures/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/scala-closures/</guid><description>closure in scala</description><pubDate>Thu, 14 Apr 2022 21:04:21 GMT</pubDate></item><item><title>Creating an SBT Project Template using Giter8</title><link>https://yadavan88.github.io/posts/creating-an-sbt-project-template-using-giter8/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/creating-an-sbt-project-template-using-giter8/</guid><description>Giter8 can be used in two different ways.</description><pubDate>Wed, 06 Apr 2022 19:40:29 GMT</pubDate></item><item><title>Introduction to Clear-Config in Scala</title><link>https://yadavan88.github.io/posts/introduction-to-clear-config-in-scala/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/introduction-to-clear-config-in-scala/</guid><description>mongo.dbName = &quot;mongoDB&quot; mongo.username = &quot;mongoUser&quot; </description><pubDate>Wed, 06 Apr 2022 19:40:29 GMT</pubDate></item><item><title>Loading Configs in Scala using PureConfig</title><link>https://yadavan88.github.io/posts/loading-configs-in-scala-using-pureconfig/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/loading-configs-in-scala-using-pureconfig/</guid><description>We can create the required case classes to hold the configurations. Pureconfig can then load the config from the files to these config classes. Pureconfig can handle HOCON, JSON and Properties...</description><pubDate>Wed, 06 Apr 2022 19:40:28 GMT</pubDate></item><item><title>Tagged Types in Scala</title><link>https://yadavan88.github.io/posts/tagged-types-in-scala/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/tagged-types-in-scala/</guid><description>Programming languages utilize the concept of Tagged Type to enhance type safety and mitigate common errors. While not a standard library feature, Scalaz, Shapeless, and Scala-Common offer their...</description><pubDate>Tue, 05 Apr 2022 12:15:01 GMT</pubDate></item><item><title>Duck Typing In Scala</title><link>https://yadavan88.github.io/posts/duck-typing-in-scala/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/duck-typing-in-scala/</guid><description>Duck Typing or Structural Typing in Scala</description><pubDate>Mon, 04 Apr 2022 18:08:25 GMT</pubDate></item><item><title>Different Ways To Package A Scala Application</title><link>https://yadavan88.github.io/posts/different-ways-to-package-a-scala-application/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/different-ways-to-package-a-scala-application/</guid><description>Different ways to create scala app packaging using scala-cli, sbt-assmbly and sbt-native-packager</description><pubDate>Sat, 29 Jan 2022 09:36:26 GMT</pubDate></item><item><title>Json parsing using Json4s in Scala</title><link>https://yadavan88.github.io/posts/json-parsing-using-json4s-in-scala-32eeb4516e06/</link><guid isPermaLink="true">https://yadavan88.github.io/posts/json-parsing-using-json4s-in-scala-32eeb4516e06/</guid><description>Learn how to use Json4s, a widely-used JSON parsing library in Scala that can work with various existing json libraries including Jackson and Play-Json. Discover how to optimize Json4s with...</description><pubDate>Wed, 01 Jul 2020 20:07:20 GMT</pubDate></item></channel></rss>