It looks like DirectFlow has a CTO now. And you’ll never guess who it is. Back in 2012, when KazNet was going through a boom in blogging platforms, this person and I started building our own. A new one. From scratch. We had actually known each other for years before that, long before we ever started building anything together. Tumblr had a huge influence on me at the time, and our project was…
Welcome! If you received a notification about this post on Telegram, everything is working exactly as it should. I just got back from driving for Uber and Lyft. After taking care of all the important family stuff, I decided to write a quick message to the people who subscribed to my static website today. The site is built with 11ty. This fascinates me: the website is completely static, with…
A domain should not only open a website. That sentence sounds small, but it contains most of what I am trying to build. Today, when someone enters a domain into a browser, the expected result is simple: the browser opens the site. The domain resolves, the server responds, and index.html becomes the public face of whatever lives there. This is normal. This is useful. But it is also incomplete. A…
I honestly don’t remember exactly how many days have passed since the last time I wrote code for DirectFlow. For now, it is not my main job. As a newly arrived immigrant in the U.S., I currently make money driving for Uber/Lyft. And honestly, I wouldn’t be surprised if you happened to be one of my many passengers. There are a lot of ideas around DirectFlow now. They need to be not only discussed,…
Today, something important happened. ⊕ Direct Follow went live. For now, I'm the only user, but it works exactly the way I hoped it would. Before showing it to anyone else, I wanted to answer one simple question: "Would I actually use this myself?" Today, I did. Not as a developer. Not as a tester. As a user. The idea survived its first real-world test. That's a bigger milestone than it might…
A few weeks ago, I wrote that the Follow button on a website should perhaps behave not as an action, but as a signal. At the time, I described it like this: The button will become a live interface with its own signals and actions. I think I'm finally starting to understand what I meant. Most Follow buttons on the web work roughly the same way: Click the button. Leave the website. Open another…
I have accounts on almost every social media platform out there today. I originally signed up for them for all kinds of reasons, but mostly because of friends, coworkers, and family. Then I discovered there was something more there. People I had never met. Content I had never even thought about before. Sometimes I don't even remember how I ended up following someone in the first place. I came…
If I had heard about QRX for the first time on Podnews Weekly Review , I would probably have wondered why a simple RSS autodiscovery feature was being called "flow" or "DirectFlow". 'DirectFlow' is the name of the first application built on top of QRX (Quick Response Experience). The name 'QRX' came from QR codes. It was when I added QR code support to the DirectFlow app that I realized the idea…
The 'follow' button on the web probably should behave like a signal. Most buttons today work like this: click leave the website open another app/platform maybe subscribe there maybe come back But what if following worked more like a connection state? So I started experimenting with a DirectFlow button ⊕ on my Kazakh language podcast website . Right now the button is in its simplest form: After…
It all started when I saw this error in the df console: 622|direct | [DISCOVER HTML FAILED] [http://thesecularfoxhole.live/](http://thesecularfoxhole.live/) Request failed with status code 503 (Service Unavailable): GET [https://www.thesecularfoxhole.live/](https://www.thesecularfoxhole.live/) 622|direct | [DISCOVER HTML FAILED]…
After DirectFlow was mentioned in Podnews, I decided to explain in a bit more detail how podcast subscriptions can work now. Besides scanning a QR code or typing a website address manually, DirectFlow can already follow podcasts in several different ways. In DirectFlow, you can already follow a podcast by: scanning a QR code of the podcast website pasting the website link pasting a link to almost…
Yesterday, just for fun, I decided to write a regular Hello World program in C while sitting in my server console. It turned out like this: # include <stdio.h> int main ( ) { printf ( "%s" , "Hello, World! n" ) ; return 0 ; } And suddenly I discovered that Hello World seems like a very simple program, but it can be written in many different ways. For example, here is another version: # include…
Spent some time this week cleaning up the site. Added tags – but I think of them less as labels and more as flows. If you follow what I'm building with ProxyFeed, you probably don't care about my C programming notes. If you're into QRX, you want QRX updates. Tags let you follow just the thread that matters to you. Which is why each of the three main projects – ProxyFeed, DirectFlow, and QRX – now…
I’ve been experimenting with a small project called DirectFlow . Right now it looks like a simple podcast app, but the original idea behind it was actually much broader. At first, DirectFlow was an experiment around the idea that people should be able to follow websites directly , without depending so heavily on platforms, directories, or centralized systems in between. The idea was simple: paste…
Right now I’m working on the idea that people should be able to follow sources directly, without platforms or intermediaries in between. And this is already possible. You can already subscribe to podcasts through DirectFlow . Originally, I built DirectFlow so that a person could paste almost any website URL into a form, and DirectFlow would immediately discover the main flow of that site and…
Sometimes I think about writing a blog post and then suddenly it feels like: “this is so banal”, “who would even care about this, let alone find it useful.” But still, let me try to explain what I’m experiencing right now in my programming journey. It’s strange. I realized that even though I already built ProxyFeed (backend in TS), it feels like I’ve never actually programmed before. It turned out…
When you study at university, most things pass through you. Classes, notes, exams - and in the end, you’re left with a diploma that doesn’t show how you think. Now imagine recording your journey from the first year every week, honestly: what you learn, what confuses you, what starts to make sense. You can talk to classmates, ask questions, reach out to people in the field. You’re creating content…
When you first start learning C, you quickly find out that C is a compiled language. Compilation can feel like an extra step after writing the code, unlike, for example, JavaScript. In JS, you don’t need to compile anything manually - compilation happens under the hood, making the process feel automatic, so the language appears to simply interpret your code. Compared to that, compilation in C can…
I realized that while improving ProxyFeed I overloaded it so much that its original purpose began to suffer: providing a stable address for a feed. So I removed almost all feed modifications. Almost, because feeds have self-tags, and those must be rewritten so the feed reader has no doubts about the canonical source of the proxy feed. There is something interesting here: the less you interfere…
UPD. This post needs to udpate. For the past 10 years, I’ve been exploring podcasting — as a trend, as a business, and as something that has changed my life. This post — grew out of a desire to understand and explain what a podcast is, and what podcasting is. To understand — for myself. To explain — for anyone who one day asks the same question. What I do here is simple: I think out loud and write…
Important update: ProxyFeed has undergone significant architectural changes. Much of the old behavior and many earlier features have been removed or redesigned. For the latest and accurate information, please read the new post describing all recent changes: A deep cleanup of ProxyFeed . I submitted my application for the LinkedIn REACH Backend Apprenticeship and had to write three essays, so I…
All modern social networks are basically the same. You can post text, photos, videos. Some even support audio. But they’re all closed off from each other. Now imagine this: you can read TikTok from Mastodon. Or subscribe to a YouTube channel from Bluesky, like it’s just another account in your feed. Or read Substack posts inside Threads. The answer already exists. Most platforms already have RSS…
Important update: ProxyFeed has undergone significant architectural changes. Much of the old behavior and many earlier features have been removed or redesigned. For the latest and accurate information, please read the new post describing all recent changes: A deep cleanup of ProxyFeed . Note: This post was originally written in Kazakh. This is an expanded English translation. ProxyFeed.io is now…
Important update: ProxyFeed has undergone significant architectural changes. Much of the old behavior and many earlier features have been removed or redesigned. For the latest and accurate information, please read the new post describing all recent changes: A deep cleanup of ProxyFeed . TL;DR: I built ProxyFeed — a tool that gives your podcast (or any RSS feed) a permanent, stable URL, no matter…
I'm still reading K&R. As I’ve said before, I like the book — it’s concise, clear, but sometimes a bit dry and requires a thoughtful approach. Without context, some things are hard to grasp, especially if you're learning C from scratch. Sometimes I just want to discuss certain parts with someone. After we moved to Los Angeles, my conversations with my mentor became rare — and to some extent, AI…
When I’m writing posts in 11ty , I often need to create new posts by copying and pasting files into the same folder. While this isn't difficult, the repetitive nature of the task started to irritate me. I wanted to find a faster way. I discovered that while ⌘ + D works for duplicating files in macOS, but it doesn't work in VSCode. Than I found a way to streamline the process using the "File Utils"…
When I first came across pointers in C, I thought it was a pretty tricky topic. Even when I was just doing simple pointer exercises, like working with arrays, I didn't really understand what was going on under the hood. Today, I finally took the plunge and dived into chapter 5 of the C book , which explains in detail what pointers are and how to work with them. I found this example really helpful…
By diving into the world of C, I have encountered the concept of memory addresses and how they relate to variables and data storage. This topic intrigued me, and I decided to explore the question: Does every memory cell in a computer have its own address? Here’s what I discovered. In the simplest terms, a computer's memory is organized into a series of storage locations, known as memory cells.…
getchar() is a simple but powerful function from the C standard library that allows you to read characters from standard input. It is defined in the header file <stdio.h> and has the following prototype: int getchar ( void ) ; The int return type is used because getchar() returns a character from the input stream as an integer. This allows it to handle all possible character values, as well as…
As I dive into the world of programming with C, one of the fundamental concepts I've encountered is the #define preprocessor directive. Learning about #define from the classic book "The C Programming Language" by Brian Kernighan and Dennis Ritchie has been quite enlightening. Here’s what I’ve understood about it and why it’s an essential tool for writing efficient and readable code. #define is a…
Reading the book by Kernighan and Ritchie on the C language, I am beginning to realize how powerful and flexible this language is. One of its main goals was to provide maximum control over memory and program execution efficiency. While I understand this from the text, I am starting to grasp the concept more deeply as I read on. Today, I encountered an interesting point: it turns out that the…
When programming, a common task is to find the greatest of three numbers. There are several ways to achieve this in C. In this blog post, we will explore multiple methods to solve this problem, ranging from simple conditional statements to using standard library functions. Basic Approach Using Nested if Statements The most straightforward way to find the greatest number among three given numbers…
The asterisk * operator in the C programming language is a versatile symbol with multifaceted applications. Understanding its usage across different contexts is essential for proficient programming and efficient code development. Pointers: Pointers are fundamental in C programming, allowing manipulation of memory addresses and data. The asterisk * symbol is employed to dereference pointers,…
I would like to share my experience of overcoming the challenge of choosing a first programming language to learn. This is a hurdle that many of us face when embarking on our programming journey. I hope my experience can shed some light on this common dilemma. When I first started learning to program, I felt overwhelmed by the multitude of languages and paths to choose from. My initial attempt at…
In C programming, the functions scanf and printf serve different purposes when it comes to input and output operations. One thing that sets them apart is how they handle variable arguments, especially in regard to memory addresses. The scanf function is mainly used for input, where it reads data from the user and stores it in variables. So, to achieve this, scanf requires the memory addresses…
In the C programming language, the value 0 holds special significance and is interpreted differently depending on the context: In conditional statements (such as if , while , etc.), the value 0 is interpreted as "false," while any non-zero value is interpreted as "true." For example, if (0) will always evaluate to "false", and the code block inside this statement will not be executed. C lacks a…
The C programming language is renowned for its efficiency, flexibility and control. One of the key constructs that contributes to these characteristics is the while loop. But why does C have a while loop, and what makes it so important? In this article, we'll explore the various reasons and benefits of the while loop in C. while ( condition ) { // code to execute } One of the main reasons why C…