<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Блоги: заметки с тегом Rust</title>
<link>https://blogengine.ru/blogs/tags/rust/</link>
<description>Автоматически собираемая лента заметок, написанных в блогах на Эгее</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.0 (v4079e)</generator>

<itunes:subtitle>Автоматически собираемая лента заметок, написанных в блогах на Эгее</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit>no</itunes:explicit>

<item>
<title>Brainfuck в шрифте</title>
<guid isPermaLink="false">130076</guid>
<link>https://bolknote.ru/all/brainfuck-v-shrifte/</link>
<pubDate>Tue, 13 Aug 2024 10:59:20 +0500</pubDate>
<author>Евгений Степанищев</author>
<comments>https://bolknote.ru/all/brainfuck-v-shrifte/</comments>
<description>
&lt;p&gt;&lt;a href="https://bolknote.ru/"&gt;Евгений Степанищев&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Я &lt;a href="https://bolknote.ru/all/wasm-v-shriftah/"&gt;писал уже&lt;/a&gt; про язык программирования в шрифтах. Там я, в качестве примера, написал программу, которая переводит вводимые буквы в азбуку Морзе. Внедрение всякой всячины в шрифт оказалось таким весёлым занятием, что вчера не удержался и &lt;a href="https://github.com/bolknote/harfbuzz-wasm-brainfuck/"&gt;воткнул в шрифт&lt;/a&gt; интерпретатор языка программирования &lt;i&gt;Brainfuck&lt;/i&gt;. Язык внутри языка внутри шрифта.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://bolknote.ru/pictures/2024.08.13@2x.png" width="1000" height="437" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Число «Пи», считаемое внутри шрифта программой на Брейнфаке&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Поскольку никакого ввода, кроме строки, которую нужно написать шрифтом, тут не предусмотрено, но некоторые программы требуют ввод (для этого в Брейнфаке есть конструкция «запятая»), пришлось выкручиваться.&lt;/p&gt;
&lt;p&gt;Я сделал так: программа и входные данные у меня записаны в одну строку и разделены слешем. Часть после слеша считается тем, что введено в программу с клавиатуры.&lt;/p&gt;
</description>
</item>

<item>
<title>Интернет-время «Своч»</title>
<guid isPermaLink="false">129702</guid>
<link>https://bolknote.ru/all/internet-vremya-svoch/</link>
<pubDate>Thu, 25 Jul 2024 10:59:47 +0500</pubDate>
<author>Евгений Степанищев</author>
<comments>https://bolknote.ru/all/internet-vremya-svoch/</comments>
<description>
&lt;p&gt;&lt;a href="https://bolknote.ru/"&gt;Евгений Степанищев&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Интересно насколько по-разному люди записывают время. Если я пишу от руки, предпочитаю писать минуты в верхнем индексе — «8³⁵». Более свежие люди так не делают, пишут «8:35» или, гораздо реже, «8.35».&lt;comment style="display:none"&gt;swatch internet time&lt;/comment&gt;&lt;/p&gt;
&lt;p&gt;Последняя форма записи подтолкнула мои размышления к тому, какой у нас, в сущности, странный способ измерения времени.&lt;/p&gt;
&lt;p&gt;«8.35» похоже на десятичную дробь, но на самом деле основание дробной части тут — 60, а у целой — 12 или 24, в зависимости от обстоятельств. Наверняка все об этом думают время от времени.&lt;/p&gt;
&lt;p&gt;Я знаю, что было несколько попыток предложить что-то взамен, и одна из них случилась на моей памяти — это так называемое «&lt;a href="https://ru.wikipedia.org/wiki/Интернет-время"&gt;интернет-время&lt;/a&gt;» компании «Своч».&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://bolknote.ru/pictures/2024.07.25@2x.jpg" width="1000" height="562" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Интернет-время на экране телефона &lt;i&gt;Ericsson T20e&lt;/i&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Швейцарская компания «Своч» (&lt;i&gt;Swatch&lt;/i&gt;) занимается наручными часами. Не знаю как у неё сейчас с известностью, а конце 90-х—начале 2000-х, у нас в стране она была очень узнаваемой, думаю, как и во всём мире.&lt;/p&gt;
&lt;p&gt;Видимо на волне этой популярности, в 1998-м году компания анонсировала так называемое интернет-время. Интернет тогда был крошечный и об этом писали многие, событие было широкоизвестное.&lt;/p&gt;
&lt;p&gt;Идея была в том, чтобы разделить сутки на тысячу «битов» — от нуля до 999, каждый «бит» (&lt;i&gt;beat&lt;/i&gt;) равнялся 86,4 секунды, при этом отсчёт начинался с часового пояса &lt;i&gt;UTC+01:00&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Время записывалось, начиная с символа «@» (он тогда прочно ассоциировался с интернетом) и добивалось нулями до трёх разрядов. Например: «@007», «@013» и так далее.&lt;/p&gt;
&lt;p&gt;Вот небольшая программа на «Расте» для вывода текущего времени в этом формате:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="rust"&gt;use chrono::{Utc, Timelike, Duration as D};
use std::thread;
use std::time::Duration;

fn main() {
    const SECS_IN_BEAT: f64 = 86.4;

    loop {
        let seconds = (Utc::now() + D::hours(1)).num_seconds_from_midnight() as f64;
        let beat = (seconds / SECS_IN_BEAT).floor();

        print!(&amp;quot;🕰️ @{}\n\x1b[A\x1b[G&amp;quot;, format!(&amp;quot;{:03}&amp;quot;, beat));

        let duration = (1. + beat) * SECS_IN_BEAT - seconds;
        thread::sleep(Duration::from_secs_f64(duration));
    }
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Идея свою минуту славы получила, — я помню, компания «Эрикссон» выпустила телефон, который умел отображать время в этом формате, в языке ПХП добавили поддержку этого формата в функции работы со временем, а «Своч» выпустила часы, где в первой строке было традиционное время, а ниже — время в интернет-формате.&lt;/p&gt;
&lt;p&gt;Не дожив даже до середины 2000-х, формат постепенно потерял популярность и был забыт. Идея была интересная, но в каком-то смысле опередившая своё время. Интернет был недостаточно распространён, чтобы было много поводов договариваться о чём-то в едином временном поле.&lt;/p&gt;
&lt;p&gt;Сейчас для видеосозвонов или онлайн-игр такое могло бы пригодиться. С заказчиками в других часовых поясах мне нередко приходится уточнять по какому времени мы договариваемся о созвоне, — московскому или местному.&lt;/p&gt;
&lt;p&gt;К настоящему моменту, я считаю, поезд интернет-времени уже ушёл. Когда интернет воспринимался что-то новое, что-то, диктующее свои законы, в нём могло появиться собственное время. Теперь вряд ли.&lt;/p&gt;
</description>
</item>

<item>
<title>WASM в шрифтах</title>
<guid isPermaLink="false">129489</guid>
<link>https://bolknote.ru/all/wasm-v-shriftah/</link>
<pubDate>Thu, 18 Jul 2024 10:59:26 +0500</pubDate>
<author>Евгений Степанищев</author>
<comments>https://bolknote.ru/all/wasm-v-shriftah/</comments>
<description>
&lt;p&gt;&lt;a href="https://bolknote.ru/"&gt;Евгений Степанищев&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Ну вот мы и дожили до момента, когда в шрифтах появился язык программирования. В &lt;i&gt;harfbuzz&lt;/i&gt;, лидирующей библиотеке для отрисовки шрифтов появилась встроенная поддержка &lt;i&gt;WASM&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;В принципе, ожидаемо — даже мне, далёкому от проблем шрифтовиков человеку, было очевидно, что сложности соединения символов, используемых на письме, не решить только декларативным образом. Более-менее очевидный пример — египетские иероглифы. Стоит немного с ними познакомиться и становится понятно, что описывать их декларативно безумно сложно.&lt;/p&gt;
&lt;p&gt;В общем, в шрифтах появился свой язык программирования.&lt;/p&gt;
&lt;p&gt;Естественно, все побежали делать на нём всякую весёлую дичь. Внутрь шрифтов уже засунули «Тетрис» и даже какую-то языковую модель.&lt;/p&gt;
&lt;p&gt;Я узнал об этом развлечении поздновато, но вчера вечером тоже немного развлёкся — &lt;a href="https://github.com/bolknote/harfbuzz-wasm-morse"&gt;сделал шрифт&lt;/a&gt;, который из букв «на лету» делает символы азбуки Морзе.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://bolknote.ru/pictures/2024.07.18@2x.png" width="775" height="500" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Азбука Морзе отрисовывается через ВебАссемблер (&lt;i&gt;WASM&lt;/i&gt;)&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;В принципе, что-нибудь своё написать несложно, уже есть &lt;a href="https://github.com/harfbuzz/harfbuzz-wasm-examples"&gt;репозиторий с готовыми примерами&lt;/a&gt;, можно начать прямо оттуда, даже без чтения документации. Единственное — пишется всё на Расте. Я его почти забыл, так что пришлось сначала немного освежить знания. Но в целом, если не стараться писать хороший код, что-нибудь навазюкать можно достаточно быстро.&lt;/p&gt;
</description>
</item>


</channel>
</rss>