<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="https://dmitryfrank.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://dmitryfrank.com/feed.php">
        <title>Dmitry Frank projects</title>
        <description></description>
        <link>https://dmitryfrank.com/</link>
        <image rdf:resource="https://dmitryfrank.com/lib/tpl/arctic/images/favicon.ico" />
       <dc:date>2026-05-07T02:14:18+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://dmitryfrank.com/projects/bmp-writer?rev=1441788122&amp;do=diff"/>
                <rdf:li rdf:resource="https://dmitryfrank.com/projects/bterm?rev=1482664779&amp;do=diff"/>
                <rdf:li rdf:resource="https://dmitryfrank.com/projects/connectfour-3d?rev=1708283751&amp;do=diff"/>
                <rdf:li rdf:resource="https://dmitryfrank.com/projects/dftrig?rev=1441788135&amp;do=diff"/>
                <rdf:li rdf:resource="https://dmitryfrank.com/projects/docker-quick-ref?rev=1587974127&amp;do=diff"/>
                <rdf:li rdf:resource="https://dmitryfrank.com/projects/my-udev-notify?rev=1678350985&amp;do=diff"/>
                <rdf:li rdf:resource="https://dmitryfrank.com/projects/tneo?rev=1653122764&amp;do=diff"/>
                <rdf:li rdf:resource="https://dmitryfrank.com/projects/vim-indexer?rev=1444574599&amp;do=diff"/>
                <rdf:li rdf:resource="https://dmitryfrank.com/projects/vim-quit-another-window?rev=1441788364&amp;do=diff"/>
                <rdf:li rdf:resource="https://dmitryfrank.com/projects/vimprj?rev=1444574620&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://dmitryfrank.com/lib/tpl/arctic/images/favicon.ico">
        <title>Dmitry Frank</title>
        <link>https://dmitryfrank.com/</link>
        <url>https://dmitryfrank.com/lib/tpl/arctic/images/favicon.ico</url>
    </image>
    <item rdf:about="https://dmitryfrank.com/projects/bmp-writer?rev=1441788122&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-09-09T08:42:02+00:00</dc:date>
        <title>Bmp writer</title>
        <link>https://dmitryfrank.com/projects/bmp-writer?rev=1441788122&amp;do=diff</link>
        <description>Bmp writer

The module written in C, primarily for embedded usage. Bmp-writer helps you to create bmp screenshots from your device to put them into the user's manual booklet.

Introduction

During development of various devices with MCU (i.e. embedded systems), I faced the same typical problem many times: when it's time to write user's manual, we need to take screenshots from device's screen.</description>
    </item>
    <item rdf:about="https://dmitryfrank.com/projects/bterm?rev=1482664779&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-12-25T11:19:39+00:00</dc:date>
        <title>Bot Terminal</title>
        <link>https://dmitryfrank.com/projects/bterm?rev=1482664779&amp;do=diff</link>
        <description>Bot Terminal

Bot Terminal is a crossplatform utility that performs binary data exchange via serial port. It allows one to set up flexible rules about how to reply to different requests. So, it listens for data, parses it, and replies as necessary.</description>
    </item>
    <item rdf:about="https://dmitryfrank.com/projects/connectfour-3d?rev=1708283751&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-18T19:15:51+00:00</dc:date>
        <title>Connect Four 3D</title>
        <link>https://dmitryfrank.com/projects/connectfour-3d?rev=1708283751&amp;do=diff</link>
        <description>Connect Four 3D

There is a board game called “Connect Four 3D”, in real life it looks like this:



And as part of my efforts to learn Rust in 2023, I implemented a virtual version of it.



Note that 3D here has a double meaning: first of all, the board game itself has</description>
    </item>
    <item rdf:about="https://dmitryfrank.com/projects/dftrig?rev=1441788135&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-09-09T08:42:15+00:00</dc:date>
        <title>DFTrig</title>
        <link>https://dmitryfrank.com/projects/dftrig?rev=1441788135&amp;do=diff</link>
        <description>DFTrig

DFTrig is a simple C library for efficient calculation of basic trigonometric functions (sine/cosine) by lookup table, table generator included.

Description

Some time ago, I needed to draw a watch dial on the small display of car trip computer. I decided to calculate sine / cosine values by lookup table, and I was very surprised when I failed to find a ready-made universal tool for that. So I had to write such tool myself.</description>
    </item>
    <item rdf:about="https://dmitryfrank.com/projects/docker-quick-ref?rev=1587974127&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-27T07:55:27+00:00</dc:date>
        <title>Docker: Printable Quick Reference (Cheat Sheet)</title>
        <link>https://dmitryfrank.com/projects/docker-quick-ref?rev=1587974127&amp;do=diff</link>
        <description>Docker: Printable Quick Reference (Cheat Sheet)

I use Docker, but not often enough to memorize even basic Dockerfile instructions and CLI commands. After all I got so annoyed by being unable to quickly sketch some Dockerfile or to do something with the existing containers occasionally, so I decided to write a concise cheat sheet which I can print once and constantly keep on my desktop:</description>
    </item>
    <item rdf:about="https://dmitryfrank.com/projects/my-udev-notify?rev=1678350985&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-03-09T08:36:25+00:00</dc:date>
        <title>My Udev Notify</title>
        <link>https://dmitryfrank.com/projects/my-udev-notify?rev=1678350985&amp;do=diff</link>
        <description>My Udev Notify

This is a little yet useful bash script that shows notifications when any USB device is plugged/unplugged.



Honestly, I don't quite understand why this essential feature is not implemented in major Linux distributions by default. There are notifications about removable storage, but not much more than that: e.g. no notifications about usb-to-com converters, etc. I really want to know when my devices get recognized by the system, or disconnected for whatever reason (be it a bad U…</description>
    </item>
    <item rdf:about="https://dmitryfrank.com/projects/tneo?rev=1653122764&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-21T08:46:04+00:00</dc:date>
        <title>TNeo RTOS</title>
        <link>https://dmitryfrank.com/projects/tneo?rev=1653122764&amp;do=diff</link>
        <description>TNeo RTOS

TNeo is a well-formed and carefully tested preemptive real-time kernel for 16- and 32-bits MCUs. It is compact and fast.

TNeo was born as a thorough review and re-implementation of TNKernel v2.7. The new kernel has well-formed code, inherited bugs are fixed as well as new features being added, it is well documented and tested carefully with unit-tests.</description>
    </item>
    <item rdf:about="https://dmitryfrank.com/projects/vim-indexer?rev=1444574599&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-10-11T14:43:19+00:00</dc:date>
        <title>Vim-Indexer</title>
        <link>https://dmitryfrank.com/projects/vim-indexer?rev=1444574599&amp;do=diff</link>
        <description>Vim-Indexer

Indexer is a Vim plugin that provides painless transparent tags generation and keeps tags up-to date. Tags are generated in background, so you don't have to wait while your tags are being generated.

Consider reading the article Vim: convenient code navigation for your projects, which explains the topic on Indexer + Vimprj usage very thoroughly.</description>
    </item>
    <item rdf:about="https://dmitryfrank.com/projects/vim-quit-another-window?rev=1441788364&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-09-09T08:46:04+00:00</dc:date>
        <title>vim-quit-another-window</title>
        <link>https://dmitryfrank.com/projects/vim-quit-another-window?rev=1441788364&amp;do=diff</link>
        <description>vim-quit-another-window

Vim plugin that offers a way to close arbitrary window without bothering to leave current window.

Rationale

During my daily vimming, I often need to close some another window and keep working in the current window. And I want to do it without bothering to leave my current window.</description>
    </item>
    <item rdf:about="https://dmitryfrank.com/projects/vimprj?rev=1444574620&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-10-11T14:43:40+00:00</dc:date>
        <title>Vimprj</title>
        <link>https://dmitryfrank.com/projects/vimprj?rev=1444574620&amp;do=diff</link>
        <description>Vimprj

Vimprj is a Vim plugin that helps you manage options for multiple projects.

Consider reading the article Vim: convenient code navigation for your projects, which explains the topic on Indexer + Vimprj usage very thoroughly.

Overview

Many times I faced a problem. That's the story:

I'd like to use 3-space indent in my projects. No tabs, exactly three spaces. One day I need to work on another project written by someone else, and there's 4-space indent. Or maybe tabs.</description>
    </item>
</rdf:RDF>
