Продолжаю заниматься доработками IntB. С Quill дело встало наглухо, поэтому переключился на другие задачи. В частности, сегодня хотел было переделать экспорт сообщений в ЖЖ, чтобы шли не через почту (там приходится резать строки, чтобы уложиться в ограничения почтового сервера, из-за чего в ЖЖ сообщения выглядят криво), а через API. Но вчера обновил систему на основном компьютере, и теперь у меня PHP 8.4, где внезапно перестала работать очистка HTML. Оказалось, что опять всё переделали: теперь вместо DOMDocument нужно использовать Dom\HTMLDocument. Где-то час ушёл на то, чтобы это выяснить, и примерно столько же, чтобы протестировать всё снова и выявить ещё один баг — из-за того, что HTMLDocument все названия тегов пишет заглавными буквами, некорректно работала моя система очистки атрибутов и пропускала теги типа onclick или onmouseover. Эх, опять приходится тратить лишнее время, чтобы просто не отставать от происходящих изменений! Но зато написал обо всём этом совершенно незапланированное сообщение в профблог.
И только уже совсем вечером вроде бы доделал экспорт. Если всё будет хорошо, это будет первое сообщение, которое уйдёт в ЖЖ с непорезанными строками.

- Перово, Москва, Россия
- me@4xpro.ru
- x4_pro
- XXXXPro
Новости сайта в Telegram
t.me/4x_proЛог жизни
Лог моей жизни, где я фиксирую наиболее эмоционально значимые для меня события и текущее настроение. Является продолжением блога, который я вел в ЖЖ с ноября 2004 по апрель 2018 года.
Опять приходится тратить время, чтобы просто не отстать

Пустые дни

В последние дни как-то нет ни сил, ни желания писать в блог. В субботу выбирался в Кусково, что собирался сделать уже больше года, а в понедельник съездили с Tellой в Марьино, а ещё недавно посмотрел игру Luanti с подачи Julia, но даже об этом писать как-то нет ни сил, ни желания. И вообще, дни кажутся какими-то пустыми. Вроде весь день занят, и делаю довольно много, но в конце дня остаётся чувство неудовлетворённости и того, что день прошёл куда-то мимо. С доработкой IntB дело тоже идёт плохо: никак не могу выбрать между редакторами Quill и Trix. Quill, в отличие от Trix, нужно гораздо больше под свои нужды доделывать. Плюс сверстал отдельно страницу создания новой темы в блоге, а в мобильной версии (если использовать Quill) там получается аж четыре ряда кнопок, что явно не соответствует облегчению интерфейса, ради которого всё затевалось.
Единственное, что удалось сделать — это наконец-то решить проблемы со сном: и спать стал достаточно, и глубокого сна стало больше. Видимо, помогло то, что снова начал принимать магний и, по совету сэра Мика, ГАМК (она же GABA). Правда, то ли из-за этого, то ли из-за ощутимого сокращения светового дня я всё время пребываю в каком-то слегка заторможенном состоянии, и «включиться» не помогают даже Клавогонки.
Первые шаги по переделке IntB

Вчера начал заниматься рефакторингом IntB. Прикрутил очистку HTML-кода с оставлением тегов по белому списку, которую когда-то делал для MLFW. В процессе переноса и тестирования обнаружил один глупый баг, который мог бы стать дырой в безопасности…
Сейчас пытаюсь определиться с WISYWIG-редактором. Изначально хотел прикрутить Quill и сделать такой же интерфейс написания статьи, как на Teletype.in, но оказалось, что там он очень сильно кастомизирован по сравнению с дистрибутивом. Поэтому стал смотреть другие варианты — Pell (понравился минимализмом и простотой добавления своих кнопок) и Trix, в котором из коробки есть почти всё, что я хочу, но интерфейс хуже чем у Quill. Так что пока не могу определиться.
А вообще, сравниваю свой код, написанный в 2013 году (IntB) и в 2022 (MLFW), и удивляюсь, насколько же многое зависит от привычек. В 2013 для именования методов я использовал snake_case по привычке, оставшейся ещё с до-ООП времён и IntB 2.x, а в 2022 перешёл на camelCase в соответствии с рекомендациями из PSR-2. Тогда использование camelCase казалось чем-то странным и даже противоестественным. (Хотя потом оценил преимущество в скорости набора — всё же символ _ слишком далеко и сбивает с темпа.) А теперь же всё наоборот: когда вижу в автодополнении VSCode имена с прочерками, это кажется чем-то необычным (именно в автодополнениях, в именах функций воспринимается спокойно).
Личностный кризис преодолён

Кажется, личностный кризис преодолён! Ночью как-то в голове сложилось в единое целое многое из того, что я узнал за последние полтора года. И произошло то, что я называю «опрокидыванием триггера» в плане отношения к вопросам интерфейсов и юзабилити. Я, наконец-то не просто понял умом, а именно прочувствовал, что интерфейс должен помогать экономить когнитивные ресурсы, а не требовать дополнительных их затрат (в то время как раньше я считал это нормой). Пришло понимание, как именно это делать, по крайней мере, применительно к Web. И самое главное, я избавился от противопоставления «удобство пользователя или экономия ресурсов компьютера», поняв, что зачастую, проявив немного ЧИ, можно находить такие решения, которые и жизнь пользователю упрощают, и не требуют кучи лишнего кода или оперативки.
А потом на основании этого сложилось понимание, что делать и с этим сайтом. Вдруг выстроился целый план, как объединить тот дизайн, который сгенерировала нейросеть Lovable, со столь понравившимся мне интерфейсом Zulip, но при этом оставить сайт работать на IntB, постепенно дорабатывая последний в лучших традициях кайдзен. Это позволит и не отказываться от принципа «на моём сайте — мой код», и не забрасывать IntB, в который вложено всё же много сил, и не тратить время на написание нового движка (хотя жаль бросать некоторые идеи, которые я закладывал в MLFW когда-то), и по-минимуму менять структуру этого сайта. Хотя изменения всё же будут: вместо небольшого количества крупных разделов я решил сделать больше мелких, как это было во времена openproj.ru (про который мне недавно напомнил кто-то из анонимов на Типаче). А также понял, как можно решить проблему «новое или важное» с выдачей информации на главной: сделать аналог views из всё того же Zulip.
Сейчас составил список того, что надо доделать. Получился аж 21 пункт. Но, как это ни странно, это не вызывает уныние, а скорее некую внутреннюю готовность. И вообще, впервые за последнее время чувствую себя заряженным и целеустремлённым, почти как в Истинные времена. Правда, и неотвеченных вопросов всё же хватает. Но и тут решение нашлось: я просто выписываю их в ту же заметку в Obsidian, в которой держу план переделок, чтобы разгрузить голову.
Да и с жизнью стало тоже как-то понятно всё: сделать все эти переделки, сделать скрипт личного архива, потом снова идти в инфобезопасность и багхантинг. Ну и параллельно в фоновом режиме проповедовать slow life и делать каталог бесплатностей.
Продолжаю искать софт для каталога

Сегодня нашёл отличный софт под названием KaraKeep, который можно было бы использовать для моей давней задумки — каталога бесплатностей, так как в Karakeep есть почти всё, что нужно, и даже немного больше (типа интеллектуальной подборки тегов с помощью ChatGPT при наличии API key и генерации preview страницы онлайн), и вполне приятный интерфейс без client side rendering. Но увы, у него оказался один фатальный недостаток: нет публичного режима, чтобы на главной выводились все заметки, добавленные участниками. Точнее, отдельные списки можно сделать публично доступными, но с главной их видно не будет, нужно знать точные ссылки с адресами типа public/lists/куча-символов. Плюс нет возможности редактировать списки коллективно. Эх, прямо хоть fork делай и дописывай всё необходимое самостоятельно… Правда, он на React+NextJS сделан, который я недолюбливаю.
Кстати, интереса ради глянул, сколько времени у автора заняло написание этого проекта. Оказалось, что не так уж и много: с самого первого релиза прошло всего полтора года. И это с Web-приложением для мобильных и расширением для броузеров.
Попытка пробросить видеокарту в QEMU

Когда сидел на даче, вспомнил рассказы Dzin Dzin о том, как он пробрасывал видеокарту в Windows в Proxmoxе, и решил попробовать то же самое в обычном QEMU под Debian, когда вернусь в Москву. И вот вчера вечером выдалась возможность приступить. С самого начала всё шло криво. Сначала оказалось, что недостаточно просто переключить HDMI-кабель в порт встроенной видеокарты, нужно залезть в BIOS и поменять порядок их инициализации. Причём чтобы залезть в BIOS, нужно снова переключить кабель. Потом никак не запускалась виртуальная машина через virt-manager. Пытался запустить напрямую через qemu-system-x86_64, но поймал ошибку, что нет доступа к какому-то файлу, которого на самом деле даже в системе не было.
Сегодня попытался ещё раз. Нашёл подходящую статью (правда, для NVidia карт, но не важно), а с правами решил вопрос так, как по-хорошему делать не надо: запустил virt-manager через sudo, а потом на нужные файлы просто поставил 0666. В итоге виртуальная машина вроде запустилась, и Windows даже показал, что видит видеокарту. Но когда я переключил кабель, на экране так ничего и не появилось.
Потом решил поставить в Windows официальный драйвер от AMD, но и тут вылезла проблема: я под диск с Windows выделил всего 30 Гб места. И оказалось, что свободного осталось всего 4 Гб, и для установки драйвера и приложения Adrenaline этого не хватает! Пришлось увеличивать диск (кстати, только сейчас узнал, что в qemu это вообще возможно). Под Windows это место, естественно, появилось как неразмеченное, пришлось делать отдельный раздел и выносить туда swap и временные файлы. После этого драйвер установился. И тут я сообразил, что ничего не видно может быть ещё потому, что Windows видит эту видеокарту как вторую. И когда включил режим «расширить» рабочий стол, наконец-то изображение появилось!
Но увы, на этом всё и закончилось. Один раз как-то у меня получилось завести туда курсор мыши, но он сильно тормозил, и я толком на этом рабочем столе ничего не смог сделать. В итоге пришёл к выводу, что без монитора, у которого есть и DP и HDMI-входы (или два HDMI), чтобы можно было подключить обе видеокарты сразу, дальнейшие эксперименты не имеют смысла, хотя до этого я надеялся найти вариант с пробросом изображения через какой-нибудь RustDesk или Parsec, как это был в те времена, когда я экспериментировал с облачным геймингом.
В общем, потратил на все эти эксперименты почти целый день, и теперь сижу очень недовольный и задаюсь вопросом: почему вместо того, чтобы спокойно заниматься либо движком для личного архива, либо доделками этого сайта, либо ещё чем-то подобным, меня периодически тянет на подобные «приключения»?
Замечательный день, в который уместилось многое

Вчера получился замечательный день. Сначала наконец-то провёл давно задуманный эксперимент с анализом своих желаний с помощью нейросетей. Правда, ничего особо нового это не дало: да, у меня есть интересы к оптимизации, улучшению «железа», уединению, познанию, комфорту и внутренней гармонии, но я это и так знал. Да и предложенные виды деятельности я тоже прежде уже сам рассматривал. Пожалуй, самым интересным оказалась попытка использовать этот анализ для соционического типирования. Обе нейросети поставили правильную версию на второе место. И я написал об этом статью на socionics.me, а заодно кинул ссылки в свои соционические группы ВК. Ещё Keynol обнаружил, что на socionics.me жёстко заспамили раздел для анонимных вопросов (о котором я и забыл давно), пришлось этот раздел удалять. Эх, ещё раз убеждаюсь, что не уделять внимание чему-то регулярно, всё очень быстро может начать деградировать совершенно неожиданным образом. Только вот внимания на всё не хватает!
Потом стал искать рассказы о прогулках в парках в ЖЖ и наткнулся на интересные материалы о полузаброшенных железнодорожных ветках в промзонах Москвы, в частности, Симоновскую, Электрозаводскую и ветку к заводу «Прожектор» у нас в Перово. Когда читал последнее, очень удивился, что кому-то может нравиться район 2-ого проезда Перова Поля, мне всегда казалось, что там ОЧЕНЬ мрачно.
Вечером поставил наконец-то VS Code Server в виртуальную машину WSL на ноутбуке. Теперь на нём заниматься разработкой можно так же комфортно, как и на основном компе с Linux.
Возвращение в Перово

Сегодня ранним утром вернулся с Пресни в Перово. Так и не смог там жить постоянно, а после перерыва, связанного с отъездом на дачу, желание сбежать оттуда стало просто всепоглощающим! В итоге уехал на первом же утреннем автобусе, не даже не дожидаясь открытия метро, и добирался весьма кривым путём — через Семеновскую. (На самом деле можно было выйти возле Китай-Города, к тому времени метро уже открылось, но не стал.) Зато ещё раз посмотрел город на рассвете...
Теперь, сидя в Перово, чувствую себя как персонаж компьютерной игры, который возвращается на руины какой-то прежней жизни, бродит по ним и чувствует, что предстоит возрождать всё из пепла. Из-за недосыпа, правда, толком ничего и не пытался делать, просто сидел, радовался жизни и разгружал мозги. И наконец-то почувствовал то самое состояние Внутреннего Безмолвия, которого так не хватало в последнее время!
Неожиданно оказался на даче

И опять жизнь выдала непредсказуемый поворот. Вчера утром неожиданно даже для себя уехал на дачу. И жизнь стала налаживаться: чувствую внутреннюю гармонию, и всё не кажется таким мрачным и беспросветным. А сегодня ненадолго съездил на квартиру в Области, и оттуда сходил в лес — хотел поискать малины, но безрезультатно. Зато побывал возле лесного озера! (Вот уж не думал этим летом до него добраться.) А вечером вышел и долго смотрел на звёзды. Небо около полуночи уже достаточно тёмное, ночи тёплые, в общем, созерцать их одно удовольствие! В общем, как будто вернулся в прошлый год. И вроде даже сон начал нормализовываться! Жаль только, что из-за столь редких приездов на дачу теряется ощущение хода времени, постепенного изменения природы…
Нашёл причину своей неэффективности

Вчера попытался было продолжить работу над движком личного архива, но дело шло очень тяжело. По сути, только начал делать класс для импорта данных из Instagram на основе кода для IntB, но так и не доделал. Ну и попросил DeepSeek сгенерировать класс для VK.
Зато понял, почему я гораздо быстрее и эффективнее писал код в Истинные Времена. Оказалось, что это самый обычный эффект Даннинга-Крюгера: тогда во многих случаях я просто не видел различных вариантов, как реализовать что-то, а знал один-единственный. Поэтому и не было мучительных раздумий «сделать так или этак, а вдруг потом окажется, что я чего-то не учёл и не предусмотрел». В общем, всё опять упирается в моё неумение принять решение и дальше исполнять его, не сомневаясь. Да ещё в очень болезненную ещё с младшей школы тему «ты должен был это предусмотреть».
А пока что я придумал следующее: создал в Obsidian файл, в который стал просто выписывать вопросы, по которым я не готов принять решение, чтобы разгрузить мозг. И вроде помогает!
Вечером создал дизайн для архива. Как обычно, с помощью нейросети Lovable. Она сама подобрала цветовую гамму: тёплые коричневые цвета, отсылающие к каталогам и картотекам старых оффлайновых библиотек. И, на мой взгляд, получилось очень годно. Жаль только, что Lovable умеет генерировать только компоненты для React, вёрстку придётся вручную переделывать. (Хотя сейчас пришла в голову мысль DeepSeek попросить, возможно, он как-нибудь справится).
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153