In Defense of ORMs

there is a fundamental parity mismatch between SQL and imperative code. | Continue reading


@preslav.me | 1 year ago

Successful Interviews Start with Why

It is essential to understand the motivation behind why a company is posting a job offer before taking it on. Asking the right questions can help you assess if the job is a good fit for what you are looking for and if the company is on the same page. | Continue reading


@preslav.me | 1 year ago

The Big Thing in Unix

The big thing in Unix was the realization that instead of building large monolithic systems, one could build smaller programs which could communicate with each other. | Continue reading


@preslav.me | 1 year ago

Epic Rap Battles of Programming: Java vs. Go

Two programming language giants appear on stage for a massive rap battle. Who will win? | Continue reading


@preslav.me | 1 year ago

Consistent > Idiomatic

As a software engineer, I’ve learned that consistency in code is crucial for the long-term success of a project, even when it means deviating from idiomatic principles. | Continue reading


@preslav.me | 1 year ago

Never Did. Never Will.

20 years ago: Use a fat and complex persistence framework on top of the DB, because we might switch DBs in the future… | Continue reading


@preslav.me | 1 year ago

Get 50% Off Generative Art in Go for Black Friday

The limited-time sale is only valid until Nov 30th. | Continue reading


@preslav.me | 1 year ago

How Logseq Introduces Event Sourcing to Note-Taking

Logseq is the closest thing to event sourcing in note-taking and knowledge management. | Continue reading


@preslav.me | 1 year ago

I Am Moving My Obsidian Vault Away From iCloud

I spent quite some time last Saturday morning, moving my main Obsidian vault away from iCloud. I want to make myself use Obsidian more, but syncing via iCloud has been such a pain - regularly ended up having duplicated or even lost notes in-between syncs. | Continue reading


@preslav.me | 1 year ago

Book Review: Moonshot by Albert Bourla

Albert Bourla’s book, “Moonshot: Inside Pfizer’s Nine-Month Race to Make the Impossible Possible” provides readers with a behind-the-scenes look at the race to develop and deliver a COVID-19 vaccine. As the CEO of Pfizer, Bourla’s perspective provides a unique and interesting ang … | Continue reading


@preslav.me | 1 year ago

A Spooky Murmel Halloween Deal

I usually avoid running direct promos on this blog, but this one involves my product Murmel, so I hope you’ll forgive me. | Continue reading


@preslav.me | 1 year ago

feedle - It’s a World of Feeds!

I have recently helped a team bring a new side project to the world - feedle. feedle is a dedicated search engine for blogs and podcasts - anything with a public RSS feed. What makes it unique is that every search on feedle is also its own RSS feed. This allows visitors to subscr … | Continue reading


@preslav.me | 1 year ago

Information Overload Day

It’s Information Overload Day today, a day to take a break from the constant flow of information. It symbolizes everything I have been fighting for - creating tools and solutions that help people spend less time processing information online. | Continue reading


@preslav.me | 1 year ago

Do You Use One Or Multiple Obsidian Vaults?

Most people using Obsidian prefer using a single vault for all their notes, according to a quick poll. This gives users more flexibility and fine-grained control in organizing their notes. A single vault also contains all of one’s notes in one place - this is especially useful fo … | Continue reading


@preslav.me | 1 year ago

Switch Between Multiple Obsidian Configurations With Ease

The solution to having separate Obsidian configurations for each device is to use different settings folders for each device. This way, you can keep your settings separate and synchronized across devices. | Continue reading


@preslav.me | 1 year ago

Book Review: Zero To Production In Rust

Luca Palmieri’s book, Zero To Production in Rust is a great guide for those looking to learn Rust by building an email newsletter-sending Web service from scratch. The book is full of first-hand developer tips on how to set up one’s environment or what tools to use, and goes beyo … | Continue reading


@preslav.me | 1 year ago

Doubling Down on RSS

Yesterday, I gave our side project BARE a bit of a facelift. Most of The changes are tiny and cosmetic, but one is something I should have done from the very beginning… | Continue reading


@preslav.me | 1 year ago

Imposter Syndrome - A Trillion-Dollar Opportunity?

There is a trillion-dollar opportunity hidden in imposter syndrome. Every time you think that “everyone else but me knows how to do this,” you’re looking at a market niche waiting to be served. | Continue reading


@preslav.me | 1 year ago

First Encounter (A Free Wallpaper)

First Encounter is a wallpaper I created in collaboration with Stable Diffusion’s AI model. When working with generational AI, it is hard to say who should be credited for the creation of the work. Was it me who came up with the idea and thought of an appropriate prompt, or was i … | Continue reading


@preslav.me | 1 year ago

Not all algorithms are evil

The algorithms that are currently being used by the social media platforms that dominate our attention are designed to keep us engaged with content for as long as possible. But that’s not all they can do. | Continue reading


@preslav.me | 1 year ago

Happy Birthday (To Me)!

Today, I’m going to cherish the time with my family and friends and make memories that will last a lifetime. | Continue reading


@preslav.me | 1 year ago

2:01:09

Eliud Kipchoge just ran a marathon in 2:01:09, breaking his own world record by 30 seconds. This is an incredible accomplishment, and a testament to Kipchoge’s dedication to his sport. | Continue reading


@preslav.me | 1 year ago

Interrupting vs Attracting

The problem with most marketing is that it’s based on interrupting people. We interrupt them with our ads, our emails, and our pop-ups. And we do it over and over and over again until, eventually, people tune us out. | Continue reading


@preslav.me | 1 year ago

Being an Introvert

Being an introvert isn’t about being shy, or lacking communication skills. It’s about a different way of managing your energy. Being an introvert simply means that you function better when you have time to yourself to internalize and reflect. | Continue reading


@preslav.me | 1 year ago

Just Get Moving

Moving is hard because it’s judged. | Continue reading


@preslav.me | 1 year ago

Java 19

The wait is over! | Continue reading


@preslav.me | 1 year ago

Why Do We Keep Building Murmel?

TL;DR: it’s the people 🤫 | Continue reading


@preslav.me | 1 year ago

You cannot own a Multiverse.

Whatever virtual land you “own”, my next favorite one is one seed away in a neighboring universe. | Continue reading


@preslav.me | 1 year ago

Self-host your website. Always.

Always self-host your website because your URL, your own private domain, is the most valuable thing you can own. | Continue reading


@preslav.me | 1 year ago

Come for the graph, stay for the journal.

A description that will appear inside the meta tags | Continue reading


@preslav.me | 1 year ago

Come for the graph, stay for the journal.

This should become Logseq’s official slogan: | Continue reading


@preslav.me | 1 year ago

I Don’t Like Go’s Default HTTP Handlers

Explicit > Implicit | Continue reading


@preslav.me | 1 year ago

Will Carbon Kill Go's Momentum?

Will it, really? | Continue reading


@preslav.me | 1 year ago

The Show Will Continue After a Short COVID Interruption

Stay tuned - we will be back after the break | Continue reading


@preslav.me | 1 year ago

How to Fix Stuck iCloud Syncing on macOS

What to do when your Mac won’t sync important files to iCloud. | Continue reading


@preslav.me | 1 year ago

Is Swift Playgrounds the Future of Apple App Development?

Is this the beginning of the end of Xcode? | Continue reading


@preslav.me | 1 year ago

Omnisearch - The Hidden Gem for Discoveing Content in Obsidian

Omnisearch is a full-text search engine extension for Obsidian, providing results relevant to the search query. | Continue reading


@preslav.me | 1 year ago

Context Is Everything

Idiomatic is what works for you and your team at the end of the day | Continue reading


@preslav.me | 1 year ago

30-Day Grayscale Screen Challenge

I am going colorless for 30 days to combat distraction. | Continue reading


@preslav.me | 1 year ago

Creating Link Aliases in Logseq

Here is how to do it. | Continue reading


@preslav.me | 2 years ago

Effective Immediately, I Cancelled My Medium Partner Program Participation

As most of you writing or reading Medium articles are aware of, Medium has this thing called its Partner Program. It allows people to earn a few cents each time their articles have been read by others. However, it also presents a serious paywall to those who are not able | Continue reading


@preslav.me | 2 years ago

Go Templates: Use Methods and Struct Fields Interchangeably

Here is a tip about Go's default templating engine that not everyone may know about. It treats simple parameter-less methods as fields. This allows us to expose tiny "computed" properties to our template without explicitly telling the template that they need to be treated as func … | Continue reading


@preslav.me | 2 years ago

Go Generics: The Bottom Line

To give you a bit of context, I have been running a version of generic type parameters in Go in production for a few months. I have had a chance to try a few things and see what works and what doesn’t. Prior to that, I’d spent a | Continue reading


@preslav.me | 2 years ago

Obsidian's Weakest Point - Its Search

There are many good reasons to use Obsidian for your note-taking. However, if you plan to bet the future of your research or knowledge management on it, I think you should be aware of something. Obsidian's search is far from sufficient.I think it is its weakest point. Take my | Continue reading


@preslav.me | 2 years ago

How to Sync Your Existing Logseq Database Between Mobile and Desktop

In the last days of December, Logseq announced beta invites for its long-anticipated iOS version. If you haven't applied for one, you can do so here. Happy holidays everyone!! If you’d like to sign up for the mobile app beta (we still have a few more seats), sign up | Continue reading


@preslav.me | 2 years ago

Enable Dark Mode for iOS Apps That Don’t Have It

One of my favorite handwriting apps on the iPad is called Nebo. ‎Nebo: Notes & PDF Annotations‎Meet Nebo, the award-winning digital notebook! Create beautiful notes, handwrite professional reports, sketch ideas on an infinite canvas and annotate existing documents. With its … | Continue reading


@preslav.me | 2 years ago

Generic Go Optionals

Disclaimer: The code that follows is neither an attempt at establishing post-generics best practices, neither am I am encouraging anyone to use it in their Go applications. It's simply a thought experiment at applying a pattern known as Option or Optional in other programming lan … | Continue reading


@preslav.me | 2 years ago

Interpreting "expectations for generics in Go 1.18"

Sometimes, I feel like I don't quite understand the core Go team's writings. I don't mean this in a bad way, though. We are computer scientists by nature, not craftsmen of prose. And yet, I have this feeling that we could strive to do a better job at communicating our | Continue reading


@preslav.me | 2 years ago