Про OutWiker и Rust

Про OutWiker и Rust

Я тут себе придумал новую проблему задачку. Когда-то я вскользь упоминал, что в OutWiker для ускорения хочу загрузку дерева заметок реализовать на Rust с использованием многопоточности. Очень неспешно в свободное время взялся за это дело, но сначала решил просто написать загрузку дерева заметок на без привязки к исходникам OutWiker, а заодно вспомнить Rust, который я уже давно не трогал.

Потом я немного увлекся и решил попробовать написать на Rust самую базовую часть OutWiker, которая отвечает за загрузку дерева заметок, их хранение и обработку внутренних событий. Почти неделю я занимался тем, что перекладывал ссылки из одного контейнера в другой, чтобы borrow checker был доволен, и при этом архитектура была более-менее сносная. Пока процесс выстраивания архитектуры продолжается.

Скорее всего этот код никуда не пойдет, я к этой задумке отношусь как прокачке скилла, но в фоне держу в уме возможность того, что все получится настолько удачно, что когда-нибудь я начну постепенно переписывать OutWiker на Rust.

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

OutWiker 4.0.0.972 beta 7. Почти релиз

OutWiker 4.0.0.972 beta 7. Почти релиз

Лишний выходной по поводу первого мая — хороший повод выложить новую бета-версию OutWiker. Я надеюсь, что это будет последняя бета перед релизом, если я не наткнусь на какой-нибудь страшный баг, который заставит переписывать половину программы, и что у меня не возникнет внезапного желания добавить какую-нибудь крупную новую возможность в ближайшие две недели (спойлер: не возникнет). Перед релизом единственное, что хочется сделать — это нарисовать еще несколько новых векторных значков на замену старых растровых.

А пока расскажу, что я сделал в этой версии.

Читать далее…

OutWiker 4.0.0.970 beta 6. Начал обновлять документацию

OutWiker 4.0.0.970 beta 6. Начал обновлять документацию

Выложил следующую бета-версию OutWiker под номером 4.0.0.970. Вообще-то я думал, она станет последней бета-версией перед релизом, но даже несмотря на то, что выход этой версии немного задержался, я не успел сделать все, что планировал, поэтому релиз отложим еще как минимум на одну бету. Самое крупное изменение в этот раз связано с тем, что я начал обновлять справку по программе и погряз в этом деле.

Читать далее…

Коротко о прочитанных недавно книгах

Дочитал на днях две книжки, которые читал параллельно.

Первая — художественная. Книга Эдуарда Веркина «Сорока на виселице» — это хорошая твердая научная фантастика. Читается как что-то сюрреалистическое с ненадежными рассказчиками, у которых свои взгляды на происходящее, но иногда нет даже уверенности, что это самое происходящее происходило. Книга о том, насколько далеко можно зайти в научных экспериментах без ожидаемых результатов, и где заканчивается наука и начинается что-то другое. По книге разбросано много интересных НФ-идей, которые иногда упоминаются вскользь. Книга странная, но мне понравилась.

Про книгу «Глубокое обучение» надеюсь как-нибудь напишу отдельный пост. Если коротко, это скорее теоретическая книга про разные архитектуры нейронных сетей: обычные многослойные, сверточные, рекуррентные, порождающие. Описываются различные методы их обучения. При этом в книге достаточно много математики, которую иногда при поверхностном чтении можно пропустить, авторы все равно объяснят идею каждой архитектуры сети. В книге есть несколько примеров кода с использованием TensorFlow и Keras, но это не учебник по этим библиотекам. Идеи описаны достаточно тяжелые, но при этом язык написания книги — замечательный с добавлением шуток и цитат из художественных или не очень книг, которые можно прицепить к рассматриваемой теме. Книга писалась в 2017 году, еще до появления ChatGPT, и это надо учитывать. Даже сами авторы пишут, что по нейронным сетям появляется огромное количество научных публикаций, предлагающие новые подходы к построению различных архитектур сетей. В конце книги приводятся ссылки на чуть меньше 600 публикаций.

Про книгу Влада Хононова «Изучаем DDD — предметно-ориентированное проектирование»

Книгу Влада Хононова «Изучаем DDD — предметно-ориентированное проектирование» в первый раз я прочитал уже относительно давно — осенью прошлого года. Тогда же я собирался написать этот пост, и даже начал писать черновик, но что-то пошло не так и я переключился на другие посты и проекты. Через пару месяцев я решил все-таки дописать обзор этой книги, но предварительно решил еще раз освежить прочитанное и написать немного заметок в свою базу заметок. В итоге слишком увлекся, заметок понаписал много, книгу по сути перечитал еще раз, а пост написал только сейчас. Зато он получился более подробный, и надеюсь более понятный, потому что тема, о которой в книге идет речь, достаточно тяжелая и без привязки к конкретным задачам может показаться слишком абстрактной.

Про технику проектирования программных систем DDD (Domain-Driven Design) я слышал давно и разное, но не было хорошего понимания того, что это такое. Поэтому захотелось почитать какую-нибудь книжку, где были бы последовательно описаны основные идеи этого подхода, чтобы можно было бы понять, имеет ли смысл такой подход использовать в своих задачах.

Читать далее…

Про тайловые оконные менеджеры в Linux

Про тайловые оконные менеджеры в Linux

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

В общем, уже третий день в свободное время вместо того, чтобы делать что-то полезное, ковыряюсь в конфигах, настраиваю внешний вид панелей, экрана блокировки, думаю, как лучше раскидывать используемые приложения по рабочим пространствам. Это очень залипательное занятие, когда думаешь, что вот сейчас подкрутишь вот эту вот мелкую финтифлюшку, а в итоге через полтора часа возишься уже с совсем другим разделом конфига и понимаешь, что пора уже идти спать. Когда в обычном оконном менеджере какую-то настройку через интерфейс воспринимаешь как данность, а здесь все собираешь под себя сам и нужно каждую особенность прописывать в конфиге. И при этом нужно выучить новые пару десятков горячих клавиш для управления окнами и переключения между ними. В этом очень помогает ИИ, хотя периодически он советует нерабочие решения, но по крайней мере понятно, куда копать.

Кстати, именно тайлинг, когда окна группируются на экране в виде плиток, я не использую, у меня обычно окна развернуты на весь экран. Вот и сейчас пока писал эту заметку, понял, что я хочу вкладки окон перенести вниз, а панель с рабочими пространствами и информацией о текущем состоянии системы — наоборот наверх. Сейчас пойду копать, что для этого надо поменять в конфигах (сначала спрошу у ИИ), просто так перетащить мышкой их не получится.

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

OutWiker 4.0.0.968 beta 5. Ускорение отрисовки интерфейса

OutWiker 4.0.0.968 beta 5. Ускорение отрисовки интерфейса

Продолжаю готовить OutWiker к новому релизу и исправлять всякие, в основном не критичные, шероховатости. Сегодня выложил очередную бета-версию под номером 4.0.0.968 beta 5. В этой версии я сосредоточился на оптимизации рисования элементов интерфейса: дерева заметок, облака меток и вкладок.

Читать далее…

OutWiker 4.0.0.966 beta 4. В основном исправление ошибок

OutWiker 4.0.0.966 beta 4. В основном исправление ошибок

Выложил новую бета-версию OutWiker в номером 4.0.0.966. В этой версии сначала я сосредоточился на исправлении ошибок и добавлении новых настроек внешнего вида, а затем внезапно для себя самого ввязался в большой рефакторинг кода (изменение структуры без изменения функциональности). Ну и продолжаю обновлять значки для заметок, переводя их в векторный формат.

Читать далее…

Книга Алексея Семихатова «Сто лет недосказанности»

Алексей Семихатов — известный популяризатор (надеюсь, за это слово сейчас по морде не бьют) физики, особенно квантовой физики. Его интервью и лекции мне периодически подсовывает Youtube на различных каналах, и я их с огромным удовольствием смотрю (и недавно Семихатов завел свой канал). Это надо уметь — с такой иронией объяснять физику, причем квантовую физику. Поэтому, когда я узнал, что у него вышла новая книга (каюсь, предыдущую его книгу я не читал), то сразу побежал ее заказывать. И вот недавно я ее прочитал. Это оказалось очень необычное описание квантовой физики, но чуть более серьезное, чем обычно он рассказывает в многочисленных интервью.

В этой книге Алексей Семихатов пытается объяснить идеи квантовой физики без формул на пальцах, кошках и других подручных предметах, причем не ограничиваясь темами, о которых говорят на уроках в школе или первом курсе института, а углубляясь в более тонкие следствия из различных теорий.

Читать далее…

Способы организации заметок: папки и теги

Способы организации заметок: папки и теги

Продолжим тему ведения заметок. Давайте теперь поговорим про организацию заметок с помощью тегов и папок: зачем нужно и то, и другое, или, может быть, достаточно чего-то одного.

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

Читать далее…