«Виселица»: правлю баги

Игрушка «Виселица» для «Флиппера Зеро», которую мы как-то написали с дочкой, давно перешла из стадии весёлой разработки в стадию унылой поддержки — пользователи потихоньку находят баги, я правлю. Не самая моя любимая стадия, но один баг повеселил.

Один из пользователей пожаловался, что слова с русской буквой «Р» отображаются иногда как-то неадекватно — крайние буквы как будто «срезаются». Выкинув из словаря всё, кроме слов, начинающихся или кончающихся на эту букву, я и сам убедился в наличии этого странного эффекта.

Проблема оказалось в сочетании того как я кодирую символы русских слов и следующей строки кода:

furi_string_trim(line);

Для экономии места и производительности словарь у меня хранится в кодировке UCS-2 с выкинутыми кодами 0x04, из-за чего русская буква «Р» (с кодом 0x0420) записывается как 0x20, а это код пробела.

Вызов furi_string_trim мне нужен, чтобы срезать перевод строки, после её считывания. Только я не учёл, что срезаются там все пробельные символы, включая урезанную до одного байта букву «Р».

В общем, создал себе проблем на ровном месте. Надо было хранить буквы как есть и не выпендриваться. Впрочем, баг правится просто:

furi_string_trim(line, "\n");

6 комментариев

Печать вольной почты

Уникальная вещь попала в руки — печать главной конторы вольных почт Казанско-Екатеринбургского тракта.

По размеру небольшая, — примерно пять на пять сантиметров, из какого-то цветного металла, с ржавчиной в четырёх отверстиях по углам. Видимо там она крепилась к основанию чем-то железным, может быть гво́здиками.

Печать в плохом состоянии, и, чтобы прочитать текст, пришлось сильно заморочиться — подкрасить фон и буквы маркерами, плюс вывернуть цвета на фотографии. Поэтому она так «по-газетному» смотрится.

Чёрно-белая печать с текстом «ПЕЧАТЬ ГЛАВНОЙ КОНТОРЫ ВОЛЬНЫХ ПОЧТ» и надписью по кругу «С.-ПЕТЕРБУРГЪ», выполненная в стиле старого документа.
Печать главной конторы вольныхъ почтъ Казанско-екатеринбургскаго тракта (фото отзеркалено)

Прежде я никогда не слышал, чтобы наш участок Сибирского тракта называли Казанско-Екатеринбургским, поэтому этот кусочек было особенно сложно прочитать на печати, а он, как можете видеть, сильно пострадал. Долго подбирал по буквам подходящий город, прежде чем понял, что написано.

Я даже сомневался в правильности прочтения, но если поискать, такое наименование вполне себе встречается. Например оно есть в книге «Материалы по истории связи в России. XVIII — начало XX в.» 1966 года.

Контракт 1847 г. о вольных почтах Екатеринбург–Тюмень–Тобольск между Почтовым департаментом и товариществом Врангеля и Быкова с ведомостями станций.
«Материалы по истории связи в России. XVIII — начало XX в.», Ленинград, 1966

Но у читателя наверняка на языке вертится совсем другой вопрос — что такое «вольная почта»? Я его намеренно оставил на потом, так как тут придётся немного погрузиться в историю.

Каждый, кто читал русскую классику, мог заметить там необычный сейчас способ передвижения — «на переменных», «на перекладных» или «по почте».

Слово «почта» в те времена обозначало станции, располагающиеся на определённом расстоянии, между которыми ездили ямщики, доставляющие почтовые посылки и людей. Посылки или багаж перекладывали на станциях следующую повозку (отсюда, по всей видимости, «перекладные»), пока не будет достигнута точка назначения.

Это чем-то похоже на современное метро, где иногда приходится выходить из одного поезда и садиться в другой на станциях пересадки.

Почта находилась в руках государства и, как любая монополия, работала из рук вон плохо — повозки и лошади были часто в плохом состоянии, а цена за перевозку очень высокой.

Вероятно это было одной из причин почему 22 марта 1770 года государство, в целях обустройства Нарвской дороги, учредило «вольные почты», то есть передало право извоза «вольным всякого звания надежным людям».

Когда термин вновь появился в 1831 году в Полном собрании законов Российской империи, там он стал означать передачу содержания почтовых станций, лошадей, перевозки почты и пассажиров в частые руки. Вероятно в это время произошло распространение «вольных почт» по всей России, в том числе и по Сибирскому тракту.

9 комментариев