RSSAmplifier

Blog

Home on Salar Rahmanian

Recent content in Home on Salar Rahmanian

softinio.comRSS feed ↗31 posts

Latest posts

Resume

Salar Rahmanian My Location San Francisco Bay Area, California Profile I have been developing software since the age of eleven. I have extensive experience: Programming in: Java, Scala, Python and Swift Databases: Oracle, Postgresql, MySQL, IBM DB2 Frameworks: Spring and Hibernate (Java), Akka / Akka-http (Scala), Typelevel (Scala), FastAPI (Python), Langchain(Python), Django (Python), Flask…

Using Stable And Unstable Nix/NixOS Channels Together

For one of my servers that is running NixOS I have been using the stable channel for all packages. However I wanted for one package to use the version of the package that the unstable channel had and had to learn how to do it. I am using flakes and this is what I originally had as my input: inputs = { nixpkgs = { url = "github:NixOS/nixpkgs/nixos-24.11" ; }; }; I added the unstable channel as an…

The Data Surrender Trap: How Enterprises Are Losing Control in the AI Gold Rush—and the Simple Fix

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. Handing raw customer data to a third party introduces two long-term headaches: Governance and compliance risk - once data leaves your perimeter, you lose direct control over how…

PostgreSQL: collation version mismatch

I run my own instance of PeerTube which uses PostgreSQL as its database. When I tried to record my latest video, I got an error message that said: [3397851] WARNING: database "peertube" has a collation version mismatch I had never seen this error before, so I did some research to figure out what was going on. It turns out that this error occurs when the collation version of the database does not…

Migrating my markdown notes from Obsidian to Apple Notes

So I wanted to migrate my markdown notes from Obsidian to Apple Notes. Apple Notes did not support import from markdown. I also wanted to maintain the folder structure. For every file I also wanted to maintain the title of the note. I wanted to prepend the title to the HTML file so that when I import the HTML file to Apple Notes, the title is correctly set. I did this by adding the file name…

Converting HTML to Markdown using Markdownify

I had some HTML content that I wanted to convert to markdown. The simplest tool I found to do this effectively was a python utility called Markdownify . I used Nix Shell to install it: nix-shell -p python311Packages.markdownify And to do the conversion I just did: markdownify myfile.html > myfile.md where myfile.html is the name of the file I wanted to convert and myfile.md in the name of the…

Streamline Your Development Workflow: Harnessing the Power of NixOS and Nix Package

In November 2023 I had the great privilege to do a talk at Scale By The Bay 2023 in San Francisco, California. Recording of my talk ▶ Watch on YouTube Pre-Conference Introduction to talk ▶ Watch on YouTube

Elevating Python Development with Nix Package Manager

In October 2023 I had the great privilege to do a talk at PyBay 2023 in San Francisco, California. Recording of my talk ▶ Watch on YouTube Slides Slides for my talk can be found here .

Configuring Github Pages With a Custom Domain

To setup my custom domain I went through the following steps: Verify Domain: I followed these steps to verify. Note that this was done using my GitHub accounts settings and not the repositories settings. Configuring my subdomain: Next I configured my subdomain to be used as my custom domain with GitHub pages by following these steps which involved adding a CNAME record to my DNS settings with my…

Announcing My New Site for Great Technical Video Content

Announcing watch.softinio.com I am thrilled to announce my new video website watch.softinio.com , a place for great technical talk content ad free and free from commercial sponsorship. 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…

All Good Things Come to an End

▶ Watch on YouTube After having spent the last seven years organizing technical talks at several meetups I have decided to step down and move on. It is an end of an era for me, but I am excited about what’s next. I want to take this opportunity to thank all of my co-organizers, all of the speakers I hosted and all the attendees for supporting my efforts to help all of us learn from each…

Acting Lessons for Scala Engineers With Akka and Zio

In November 2020 I had the great privilege to do a Talk at Scale By The Bay Conference . Recording of my talk ▶ Watch on YouTube Slides Slides for my talk can be found here . I also wrote three blogs posts as a companion to my talk Introduction to the Actor Model

Unicomp New Model M Keyboard

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. My favorite keyboard of all time was the IBM Model M keyboard . 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…

Introduction to Zio Actors

In this post I am going to do a quick introduction to using the ZIO Actors , a library that implements the Actor model using Scala and ZIO a library for asynchroneous and concurrent programming. Before reading this post it is recommended that you read my two earlier posts Introduction to the Actor Model and Introduction to Akka Typed Using Scala as I have assumed the reader will be familiar with…

Introduction to Akka Typed Using Scala

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…

Introduction to the Actor Model

My first proper computer was an IBM PC clone with an Intel 486 processor. It had a button on it called turbo 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’t consider them as serious contenders for this post. It has been a really…

Next-Level Diagnostics for Async & Concurrent Errors with ZIO

In November 2019 I had the great privilege to do a Talk at Scale By The Bay Conference with John A De Goes. Recording of my talk ▶ Watch on YouTube Slides Slides for my talk can be found here .

Scale By The Bay 2018 San Francisco

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. from left: Dick Wall , Salar Rahmanian , Martin Odersky (Creator of Scala) , Alexy Khrabrov , Jakob Odersky The conference had 3 tracks covering the functional programming, reactive programming and data science topics. All…

Moving from Homebrew to Nix Package Manager

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. Quote from Nix Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. It provides atomic upgrades and…

PyBay 2018 San Francisco

As you read in my last blog 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…

Life changes and announcing SFBayAreaTech

Update: Since writing this blog, I have changed jobs and SFBayAreaTech has changed to https://www.sfbayareatechies.com 2018 has been a fabulous year so far. Me and family moved to the San Francisco bay area realizing my life long dream and our family goals. It is absolutely an awesome experience living in the Bay Area amongst so many super smart techies and great startups. On arrival I had two…

Migrating from Pelican to Hugo

In this post I will discuss the steps I took to migrate my blog from Pelican to Hugo . Goal Original Blog New Blog Static site generator Pelican Hugo Hosting Linode Amazon S3 Deployment Strategy Manual using git Automated using Wercker Source Control bitbucket GitHub Installing Hugo I do all of my development on an Apple Macbook Pro so I used homebrew to install Hugo: brew install hugo Creating my…

Using pyenv for Python projects

Using pyenv to manage your virtual environments makes working on multiple projects, each using a different version of python a breeze. I do all my development on an Apple Macbook running Yosemite and my production environment is a VPS from Linode running CentOS 7 . Here some simple notes on how I setup and use pyenv : Installing on Mac OS X Install using homebrew brew install pyenv…

Scala News

Overview I wanted to create a directory of all bloggers who write about Scala Programming language with links to their RSS Feeds. Using this directory I have created a CLI tool using Scala, Typelevel stack (cats-effect, fs2, http4s, decline, Laika) to use the rss feed links to generate the latest news in the scala community that I publish periodically on www.scalanews.net . Links Website:…

scaladex.nvim

Overview I created a lua library that is able to search for scala pages on Scaladex . I then used it to create a Neovim plugin and telescope.nvim plugin so that when I am coding using Neovim I can search for and add packages as dependencies. Demo and Video Tutorial on using scaladex.nvim ▶ Watch on PeerTube

duck4s

Overview A modern, type-safe Scala 3 wrapper library for DuckDB that provides idiomatic, functional programming-friendly access to DuckDB’s analytical database capabilities through its Java JDBC client. Links Repository: https://github.com/softinio/duck4s README: https://github.com/softinio/duck4s/blob/main/README.md

Fishee

Overview Fishee is a command-line interface (CLI) tool designed specifically for users of the Fish Shell. It provides a convenient way to manage and manipulate your Fish Shell history files, making it easier to maintain and transfer command history across different environments. Links Repository: https://github.com/softinio/Fishee README: https://github.com/softinio/Fishee/blob/main/README.md

ZIO Actors

Overview ZIO Actors is a high-performance, purely functional library for building, composing, and supervising typed actors based on ZIO using Scala. Original creator of this project, though I do not maintain it anymore. My blog post and Talk about ZIO Actors see here Links Repository: https://github.com/zio/zio-actors README: https://github.com/zio/zio-actors/blob/master/README.md Documentation:…

About

I, Salar Rahmanian , am a software engineer based in San Francisco Bay Area, California. I have been developing software since the age of eleven. My current passion is functional programming, big data and distributed systems. I am particularly enthusiastic about the Scala Programming language and NixOS and technologies such as Apache Nifi, Kafka, Spark and Akka / Pekko. I contribute to open source…

Search

Subscribe

You can subscribe to my blog via my email newsletter on Substack and receive notifications when I publish new blogs or have other announcements to make. Your email will only be used for this purpose and nothing else, so no spam or advertising or anything just content. You can also subscribe to my atom / rss feed or follow me on Mastodon or X (formerly known as Twitter) too.