{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Блоги: заметки с тегом Rust",
    "_rss_description": "Автоматически собираемая лента заметок, написанных в блогах на Эгее",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": false,
    "_itunes_explicit": "no",
    "home_page_url": "https:\/\/blogengine.ru\/blogs\/tags\/rust\/",
    "feed_url": "https:\/\/blogengine.ru\/blogs\/tags\/rust\/json\/",
    "icon": false,
    "authors": [
        {
            "name": "Илья Бирман",
            "url": "https:\/\/blogengine.ru\/blogs\/",
            "avatar": false
        }
    ],
    "items": [
        {
            "id": "130076",
            "url": "https:\/\/bolknote.ru\/all\/brainfuck-v-shrifte\/",
            "title": "Brainfuck в шрифте",
            "content_html": "<p>Я <a href=\"https:\/\/bolknote.ru\/all\/wasm-v-shriftah\/\">писал уже<\/a> про язык программирования в шрифтах. Там я, в качестве примера, написал программу, которая переводит вводимые буквы в азбуку Морзе. Внедрение всякой всячины в шрифт оказалось таким весёлым занятием, что вчера не удержался и <a href=\"https:\/\/github.com\/bolknote\/harfbuzz-wasm-brainfuck\/\">воткнул в шрифт<\/a> интерпретатор языка программирования <i>Brainfuck<\/i>. Язык внутри языка внутри шрифта.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/bolknote.ru\/pictures\/2024.08.13@2x.png\" width=\"1000\" height=\"437\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Число «Пи», считаемое внутри шрифта программой на Брейнфаке<\/div>\n<\/div>\n<p>Поскольку никакого ввода, кроме строки, которую нужно написать шрифтом, тут не предусмотрено, но некоторые программы требуют ввод (для этого в Брейнфаке есть конструкция «запятая»), пришлось выкручиваться.<\/p>\n<p>Я сделал так: программа и входные данные у меня записаны в одну строку и разделены слешем. Часть после слеша считается тем, что введено в программу с клавиатуры.<\/p>\n",
            "date_published": "2024-08-13T10:59:20+05:00",
            "date_modified": "2024-08-13T20:31:43+05:00",
            "tags": [
                "brainfuck",
                "Rust",
                "программирование"
            ],
            "author": {
                "name": "Евгений Степанищев",
                "url": "https:\/\/bolknote.ru\/",
                "avatar": "https:\/\/bolknote.ru\/pictures\/userpic\/userpic@2x.jpg?1760600028"
            },
            "_date_published_rfc2822": "Tue, 13 Aug 2024 10:59:20 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "130076",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": null,
                "og_images": []
            }
        },
        {
            "id": "129702",
            "url": "https:\/\/bolknote.ru\/all\/internet-vremya-svoch\/",
            "title": "Интернет-время «Своч»",
            "content_html": "<p>Интересно насколько по-разному люди записывают время. Если я пишу от руки, предпочитаю писать минуты в верхнем индексе — «8³⁵». Более свежие люди так не делают, пишут «8:35» или, гораздо реже, «8.35».<comment style=\"display:none\">swatch internet time<\/comment><\/p>\n<p>Последняя форма записи подтолкнула мои размышления к тому, какой у нас, в сущности, странный способ измерения времени.<\/p>\n<p>«8.35» похоже на десятичную дробь, но на самом деле основание дробной части тут — 60, а у целой — 12 или 24, в зависимости от обстоятельств. Наверняка все об этом думают время от времени.<\/p>\n<p>Я знаю, что было несколько попыток предложить что-то взамен, и одна из них случилась на моей памяти — это так называемое «<a href=\"https:\/\/ru.wikipedia.org\/wiki\/Интернет-время\">интернет-время<\/a>» компании «Своч».<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/bolknote.ru\/pictures\/2024.07.25@2x.jpg\" width=\"1000\" height=\"562\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Интернет-время на экране телефона <i>Ericsson T20e<\/i><\/div>\n<\/div>\n<p>Швейцарская компания «Своч» (<i>Swatch<\/i>) занимается наручными часами. Не знаю как у неё сейчас с известностью, а конце 90-х—начале 2000-х, у нас в стране она была очень узнаваемой, думаю, как и во всём мире.<\/p>\n<p>Видимо на волне этой популярности, в 1998-м году компания анонсировала так называемое интернет-время. Интернет тогда был крошечный и об этом писали многие, событие было широкоизвестное.<\/p>\n<p>Идея была в том, чтобы разделить сутки на тысячу «битов» — от нуля до 999, каждый «бит» (<i>beat<\/i>) равнялся 86,4 секунды, при этом отсчёт начинался с часового пояса <i>UTC+01:00<\/i>.<\/p>\n<p>Время записывалось, начиная с символа «@» (он тогда прочно ассоциировался с интернетом) и добивалось нулями до трёх разрядов. Например: «@007», «@013» и так далее.<\/p>\n<p>Вот небольшая программа на «Расте» для вывода текущего времени в этом формате:<\/p>\n<pre class=\"e2-text-code\"><code class=\"rust\">use chrono::{Utc, Timelike, Duration as D};\nuse std::thread;\nuse std::time::Duration;\n\nfn main() {\n    const SECS_IN_BEAT: f64 = 86.4;\n\n    loop {\n        let seconds = (Utc::now() + D::hours(1)).num_seconds_from_midnight() as f64;\n        let beat = (seconds \/ SECS_IN_BEAT).floor();\n\n        print!(&quot;🕰️ @{}\\n\\x1b[A\\x1b[G&quot;, format!(&quot;{:03}&quot;, beat));\n\n        let duration = (1. + beat) * SECS_IN_BEAT - seconds;\n        thread::sleep(Duration::from_secs_f64(duration));\n    }\n}<\/code><\/pre><p>Идея свою минуту славы получила, — я помню, компания «Эрикссон» выпустила телефон, который умел отображать время в этом формате, в языке ПХП добавили поддержку этого формата в функции работы со временем, а «Своч» выпустила часы, где в первой строке было традиционное время, а ниже — время в интернет-формате.<\/p>\n<p>Не дожив даже до середины 2000-х, формат постепенно потерял популярность и был забыт. Идея была интересная, но в каком-то смысле опередившая своё время. Интернет был недостаточно распространён, чтобы было много поводов договариваться о чём-то в едином временном поле.<\/p>\n<p>Сейчас для видеосозвонов или онлайн-игр такое могло бы пригодиться. С заказчиками в других часовых поясах мне нередко приходится уточнять по какому времени мы договариваемся о созвоне, — московскому или местному.<\/p>\n<p>К настоящему моменту, я считаю, поезд интернет-времени уже ушёл. Когда интернет воспринимался что-то новое, что-то, диктующее свои законы, в нём могло появиться собственное время. Теперь вряд ли.<\/p>\n",
            "date_published": "2024-07-25T10:59:47+05:00",
            "date_modified": "2024-07-25T12:55:31+05:00",
            "tags": [
                "Rust",
                "программирование"
            ],
            "author": {
                "name": "Евгений Степанищев",
                "url": "https:\/\/bolknote.ru\/",
                "avatar": "https:\/\/bolknote.ru\/pictures\/userpic\/userpic@2x.jpg?1760600028"
            },
            "_date_published_rfc2822": "Thu, 25 Jul 2024 10:59:47 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "129702",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": null,
                "og_images": []
            }
        },
        {
            "id": "129489",
            "url": "https:\/\/bolknote.ru\/all\/wasm-v-shriftah\/",
            "title": "WASM в шрифтах",
            "content_html": "<p>Ну вот мы и дожили до момента, когда в шрифтах появился язык программирования. В <i>harfbuzz<\/i>, лидирующей библиотеке для отрисовки шрифтов появилась встроенная поддержка <i>WASM<\/i>.<\/p>\n<p>В принципе, ожидаемо — даже мне, далёкому от проблем шрифтовиков человеку, было очевидно, что сложности соединения символов, используемых на письме, не решить только декларативным образом. Более-менее очевидный пример — египетские иероглифы. Стоит немного с ними познакомиться и становится понятно, что описывать их декларативно безумно сложно.<\/p>\n<p>В общем, в шрифтах появился свой язык программирования.<\/p>\n<p>Естественно, все побежали делать на нём всякую весёлую дичь. Внутрь шрифтов уже засунули «Тетрис» и даже какую-то языковую модель.<\/p>\n<p>Я узнал об этом развлечении поздновато, но вчера вечером тоже немного развлёкся — <a href=\"https:\/\/github.com\/bolknote\/harfbuzz-wasm-morse\">сделал шрифт<\/a>, который из букв «на лету» делает символы азбуки Морзе.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/bolknote.ru\/pictures\/2024.07.18@2x.png\" width=\"775\" height=\"500\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Азбука Морзе отрисовывается через ВебАссемблер (<i>WASM<\/i>)<\/div>\n<\/div>\n<p>В принципе, что-нибудь своё написать несложно, уже есть <a href=\"https:\/\/github.com\/harfbuzz\/harfbuzz-wasm-examples\">репозиторий с готовыми примерами<\/a>, можно начать прямо оттуда, даже без чтения документации. Единственное — пишется всё на Расте. Я его почти забыл, так что пришлось сначала немного освежить знания. Но в целом, если не стараться писать хороший код, что-нибудь навазюкать можно достаточно быстро.<\/p>\n",
            "date_published": "2024-07-18T10:59:26+05:00",
            "date_modified": "2024-07-18T11:01:38+05:00",
            "tags": [
                "Rust",
                "программирование"
            ],
            "author": {
                "name": "Евгений Степанищев",
                "url": "https:\/\/bolknote.ru\/",
                "avatar": "https:\/\/bolknote.ru\/pictures\/userpic\/userpic@2x.jpg?1760600028"
            },
            "_date_published_rfc2822": "Thu, 18 Jul 2024 10:59:26 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "129489",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": null,
                "og_images": []
            }
        }
    ],
    "_e2_version": 4079,
    "_e2_ua_string": "Aegea 11.0 (v4079e)"
}