<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Articles on Salar Rahmanian</title><link>https://www.softinio.com/post/</link><description>Recent content in Articles on Salar Rahmanian</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 26 Apr 2025 18:07:52 -0800</lastBuildDate><atom:link href="https://www.softinio.com/post/index.xml" rel="self" type="application/rss+xml"/><item><title>The Data Surrender Trap: How Enterprises Are Losing Control in the AI Gold Rush—and the Simple Fix</title><link>https://www.softinio.com/post/the-data-surrender-trap/</link><pubDate>Sat, 26 Apr 2025 18:07:52 -0800</pubDate><guid>https://www.softinio.com/post/the-data-surrender-trap/</guid><description>&lt;p&gt;
 &lt;img src="https://www.softinio.com/post/the-data-surrender-trap/TheDataSurrenderTrap.svg"
 alt="The Data Surrender Trap"
 loading="lazy" /&gt;
&lt;/p&gt;
&lt;p&gt;Generative AI has lit a fire under every product road-map. Faced with “ship it yesterday” pressure, many teams reach for a turnkey vendor: upload data, call an API, launch the feature. It works—until the bill comes due.&lt;/p&gt;
&lt;p&gt;Handing raw customer data to a third party introduces two long-term headaches:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Governance and compliance risk - once data leaves your perimeter, you lose direct control over how long it&amp;rsquo;s stored, where it resides, and who can see it. A single mis-configuration or model-training clause could violate GDPR, HIPAA, or internal policy.&lt;/li&gt;
&lt;li&gt;Technical debt - the day you need to swap providers, migrate regions, or delete a customer record, you discover tight coupling in schemas, pipelines, and security controls that were never designed for portability.&lt;/li&gt;
&lt;li&gt;Technical debt - having to synchronize data between multiple vendors and your own systems, which can lead to data inconsistencies and increased complexity.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="best-practices-bring-the-ai-to-the-data-not-the-data-to-the-ai"&gt;Best practices: bring the AI to the data, not the data to the AI&lt;/h2&gt;
&lt;p&gt;Enterprise architects have converged on four guard-rails for safe, future-proof AI:&lt;/p&gt;</description></item><item><title>Announcing My New Site for Great Technical Video Content</title><link>https://www.softinio.com/post/announcing-my-new-site-for-great-technical-video-content/</link><pubDate>Mon, 22 Nov 2021 18:07:52 -0800</pubDate><guid>https://www.softinio.com/post/announcing-my-new-site-for-great-technical-video-content/</guid><description>&lt;h2 id="announcing-watchsoftiniocom"&gt;Announcing &lt;a href="https://watch.softinio.com"&gt;watch.softinio.com&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I am thrilled to announce my new video website &lt;a href="https://watch.softinio.com"&gt;watch.softinio.com&lt;/a&gt;, a place for great technical talk content ad free and free from commercial sponsorship.&lt;/p&gt;
&lt;p&gt;As many of you know I used to organize meetup/technical talks in the bay area (and later virtually online since the start of the pandemic) in the past. To get the ball rolling with some content, you can now watch a selection of the technical talks that were done at meetups I had arranged. This collection includes some of the greatest speakers from the Scala, Nix, Elasticsearch and Functional Programming world whom I had the honor of hosting.&lt;/p&gt;</description></item><item><title>Unicomp New Model M Keyboard</title><link>https://www.softinio.com/post/unicomp-new-model-m-keyboard/</link><pubDate>Fri, 18 Dec 2020 20:08:42 -0800</pubDate><guid>https://www.softinio.com/post/unicomp-new-model-m-keyboard/</guid><description>&lt;p&gt;

 &lt;picture&gt;
 &lt;source srcset="https://www.softinio.com/post/unicomp-new-model-m-keyboard/unicomp_new_model_m_hu_177077c8c6af1952.webp" type="image/webp" /&gt;
 &lt;img src="https://www.softinio.com/post/unicomp-new-model-m-keyboard/unicomp_new_model_m_hu_4fa4414529114682.png"
 alt="Unicomp Model M"
 width="640" height="480"
 loading="eager" fetchpriority="high" /&gt;
 &lt;/picture&gt;
&lt;/p&gt;
&lt;p&gt;Unicomp new Model M keyboard is the latest version of the classic and fabulous IBM Model M keyboard that came out earlier this year. This blog post is my unboxing and review of this timeless keyboard.&lt;/p&gt;
&lt;p&gt;My favorite keyboard of all time was the &lt;a href="https://en.wikipedia.org/wiki/Model_M_keyboard"&gt;IBM Model M keyboard&lt;/a&gt;. Through out the 1980s and the 1990s I would exclusively use this keyboard. In fact as I type this blog post I can confirm I still have 3 of them in my garage back in London, England.&lt;/p&gt;</description></item><item><title>Introduction to Zio Actors</title><link>https://www.softinio.com/post/introduction-to-zio-actors/</link><pubDate>Sun, 01 Nov 2020 14:14:21 -0800</pubDate><guid>https://www.softinio.com/post/introduction-to-zio-actors/</guid><description>&lt;p&gt;

 &lt;picture&gt;
 &lt;source srcset="https://www.softinio.com/post/introduction-to-zio-actors/ZIO_hu_5e7abc2694463537.webp 780w, https://www.softinio.com/post/introduction-to-zio-actors/ZIO_hu_1e40d5b6867f0de5.webp 1560w"
 sizes="(max-width: 830px) calc(100vw - 3rem), 780px"
 type="image/webp" /&gt;
 &lt;img src="https://www.softinio.com/post/introduction-to-zio-actors/ZIO_hu_7fb8c61bcaacc43c.png"
 alt="ZIO"
 width="780" height="318"
 loading="eager" fetchpriority="high" /&gt;
 &lt;/picture&gt;
&lt;/p&gt;
&lt;p&gt;In this post I am going to do a quick introduction to using the &lt;a href="https://zio.github.io/zio-actors/"&gt;ZIO Actors&lt;/a&gt;, a library that implements the Actor model using Scala and ZIO a library for asynchroneous and concurrent programming.&lt;/p&gt;
&lt;p&gt;Before reading this post it is recommended that you read my two earlier posts &lt;a href="https://www.softinio.com/post/introduction-to-the-actor-model/"&gt;Introduction to the Actor Model&lt;/a&gt; and &lt;a href="https://www.softinio.com/post/introduction-to-akka-typed-using-scala/"&gt;Introduction to Akka Typed Using Scala&lt;/a&gt; as I have assumed the reader will be familiar with the concepts discussed in those posts. Some basic knowledge of &lt;a href="https://zio.dev"&gt;ZIO&lt;/a&gt; is assumed.&lt;/p&gt;</description></item><item><title>Introduction to Akka Typed Using Scala</title><link>https://www.softinio.com/post/introduction-to-akka-typed-using-scala/</link><pubDate>Sat, 24 Oct 2020 20:32:41 -0700</pubDate><guid>https://www.softinio.com/post/introduction-to-akka-typed-using-scala/</guid><description>&lt;p&gt;
 &lt;img src="https://www.softinio.com/post/introduction-to-akka-typed-using-scala/akka_logo.svg"
 alt="akka"
 loading="eager" fetchpriority="high" /&gt;
&lt;/p&gt;
&lt;p&gt;In this post I am going to do a quick introduction to using the Akka Typed toolkit that implements the Actor model using Scala. As part of this post I will be developing a simple application using Akka. My goal is to highlight what its like to develop applications using Akka and how to get started with it. I will be following up this post with more posts diving into Akka in more details and exploring more of its features and patterns you can use to solve concurrent and distributed applications.&lt;/p&gt;</description></item><item><title>Introduction to the Actor Model</title><link>https://www.softinio.com/post/introduction-to-the-actor-model/</link><pubDate>Sun, 04 Oct 2020 11:23:12 -0700</pubDate><guid>https://www.softinio.com/post/introduction-to-the-actor-model/</guid><description>&lt;p&gt;

 &lt;picture&gt;
 &lt;source srcset="https://www.softinio.com/post/introduction-to-the-actor-model/introduction_to_the_actor_model_hu_f64da33bd343762b.webp 780w, https://www.softinio.com/post/introduction-to-the-actor-model/introduction_to_the_actor_model_hu_f54e2708b7a58cda.webp 1560w"
 sizes="(max-width: 830px) calc(100vw - 3rem), 780px"
 type="image/webp" /&gt;
 &lt;img src="https://www.softinio.com/post/introduction-to-the-actor-model/introduction_to_the_actor_model_hu_10e8b84f8882e391.png"
 alt="Actors"
 width="780" height="378"
 loading="lazy" /&gt;
 &lt;/picture&gt;
&lt;/p&gt;
&lt;p&gt;My first proper computer was an IBM PC clone with an Intel 486 processor. It had a button on it called &lt;code&gt;turbo&lt;/code&gt; that when you pushed it would run the processor at double the speed. I say proper as before that I had started my computer journey with a Sinclair ZX Spectrum (48k Ram) and a Commodore 64 (64k Ram) hence didn&amp;rsquo;t consider them as serious contenders for this post. It has been a really exciting ride watching hardware and software evolve together. The interesting observation has been that as faster more powerful hardware has come out, software has been quick to grab all the extra speed and resources the new hardware provides.&lt;/p&gt;</description></item><item><title>Scale By The Bay 2018 San Francisco</title><link>https://www.softinio.com/post/scale-by-the-bay-2018-san-francisco/</link><pubDate>Thu, 02 May 2019 18:30:40 -0700</pubDate><guid>https://www.softinio.com/post/scale-by-the-bay-2018-san-francisco/</guid><description>&lt;p&gt;One of the highlights of 2018 was attending and being part of the Scale By the bay 2018 conference in San Francisco. This by far was the best conference I have ever attended.&lt;/p&gt;
&lt;p&gt;

 &lt;picture&gt;
 &lt;source srcset="https://www.softinio.com/post/scale-by-the-bay-2018-san-francisco/scalebythebay_2018_header_hu_e053b36e60fe72df.webp 780w, https://www.softinio.com/post/scale-by-the-bay-2018-san-francisco/scalebythebay_2018_header_hu_861eb0c463e11226.webp 1560w"
 sizes="(max-width: 830px) calc(100vw - 3rem), 780px"
 type="image/webp" /&gt;
 &lt;img src="https://www.softinio.com/post/scale-by-the-bay-2018-san-francisco/scalebythebay_2018_header_hu_2a8998d54da42144.jpg"
 alt="Scale By the Bay 2018"
 width="780" height="780"
 loading="eager" fetchpriority="high" /&gt;
 &lt;/picture&gt;
&lt;/p&gt;
&lt;p&gt;from left: &lt;a href="https://twitter.com/dickwall"&gt;Dick Wall&lt;/a&gt;, &lt;a href="https://twitter.com/SalarRahmanian"&gt;Salar Rahmanian&lt;/a&gt;, &lt;a href="https://twitter.com/odersky"&gt;Martin Odersky (Creator of Scala)&lt;/a&gt;, &lt;a href="https://twitter.com/ChiefScientist"&gt;Alexy Khrabrov&lt;/a&gt;, &lt;a href="https://twitter.com/jodersky"&gt;Jakob Odersky &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The conference had 3 tracks covering the functional programming, reactive programming and data science topics. All the talks were of high quality made even better by highly intelligent audience made up of the most talented stars of our industry.&lt;/p&gt;</description></item><item><title>Moving from Homebrew to Nix Package Manager</title><link>https://www.softinio.com/post/moving-from-homebrew-to-nix-package-manager/</link><pubDate>Sat, 16 Feb 2019 18:30:40 -0700</pubDate><guid>https://www.softinio.com/post/moving-from-homebrew-to-nix-package-manager/</guid><description>&lt;p&gt;As all my friends, colleagues and followers know I am very big on functional programming, so when I heard about nixOS and the nix package manager (A Purely Functional package manager) I really wanted to find out more about it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quote from&lt;/strong&gt; &lt;a href="https://nixos.org/nix/"&gt;Nix&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. It provides atomic upgrades and rollbacks, side-by-side installation of multiple versions of a package, multi-user package management and easy setup of build environments.&lt;/p&gt;</description></item><item><title>PyBay 2018 San Francisco</title><link>https://www.softinio.com/post/pybay-2018-san-francisco/</link><pubDate>Thu, 25 Oct 2018 18:30:40 -0700</pubDate><guid>https://www.softinio.com/post/pybay-2018-san-francisco/</guid><description>&lt;p&gt;

 &lt;picture&gt;
 &lt;source srcset="https://www.softinio.com/post/pybay-2018-san-francisco/PyBay_2018_Start_hu_1fa1a84a8b66346f.webp" type="image/webp" /&gt;
 &lt;img src="https://www.softinio.com/post/pybay-2018-san-francisco/PyBay_2018_Start_hu_1b053ba37347574c.png"
 alt="PyBay 2018"
 width="450" height="338"
 loading="eager" fetchpriority="high" /&gt;
 &lt;/picture&gt;
&lt;/p&gt;
&lt;p&gt;As you read in my &lt;a href="https://www.softinio.com/post/life-changes-and-announcing-sfbayareatech/"&gt;last blog&lt;/a&gt;
I was lucky enough to finally move to the bay area. If you know me you will
know that I am passionate about Scala and Python. To me being a master of these
two language and functional programming I can rule the world. So it goes
without saying that as soon as I arrived one of the first things I did was to
become an active member of the San Francisco Python community and attended my very
first PyBay 2018.&lt;/p&gt;</description></item><item><title>Using pyenv for Python projects</title><link>https://www.softinio.com/post/using-pyenv-for-python-projects/</link><pubDate>Mon, 13 Apr 2015 09:06:03 -0500</pubDate><guid>https://www.softinio.com/post/using-pyenv-for-python-projects/</guid><description>&lt;p&gt;Using &lt;a href="https://github.com/yyuu/pyenv"&gt;pyenv&lt;/a&gt; to manage your virtual environments makes working on multiple projects, each using a different version of python a breeze.&lt;/p&gt;
&lt;p&gt;I do all my development on an Apple Macbook running Yosemite and my production environment is a VPS from &lt;a href="https://www.linode.com"&gt;Linode&lt;/a&gt; running &lt;a href="https://www.centos.org"&gt;CentOS 7&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here some simple notes on how I setup and use &lt;a href="https://github.com/yyuu/pyenv"&gt;pyenv&lt;/a&gt; :&lt;/p&gt;
&lt;h2 id="installing-on-mac-os-x"&gt;Installing on Mac OS X&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Install using &lt;a href="http://brew.sh"&gt;homebrew&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;brew install pyenv pyenv-virtualenv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Update your shell profile (.bashrc or .zshrc) adding the following to it (and restart your terminal)&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>