Разбираясь вчера с PWA, задумался, что надо бы сделать какое-нибудь достаточно простое приложение, на котором отработать подход locale first. Пришла в голову мысль сделать аналог Obsidian — приложение для заметок с древовидной структурой, поддержкой Markdown и хранением данных в обычных текстовых файлах. Причём делать с использованием Svelte Kit, чтобы лучше освоить его в процессе. Ну и конечно же, по итогу выложить код в свободный доступ.
Но потом в очередной раз вернулся к мысли, которая не даёт мне покоя уже много месяцев: нужны ли в наше время вообще self-hosted приложения кому-то, кроме узкой прослойки энтузиастов вроде меня самого и такой же прослойки privacy-озабоченных? Вот даже я сам, вместо того, чтобы поднять NextCloud, предпочитаю пользоваться Яндекс.Диском из соображения «так надёжнее: с данными на Диске ничего не случится, тогда как если я по каким-то причинам не проплачу свой сервер, они очень скоро исчезнут» (причём если раньше провайдер хранил данные месяц, то теперь ужесточили правила и удаляют уже через несколько дней). Да и впечатлить кого-то наличием своего аналога Диска в наше время тоже не получится (причём совершенно неважно, сделанным на готовом софте или написанным с нуля): технически не продвинутые просто не поймут, о чём я, люди со штампованным Хабр-мышлением (или обладатели ценностной ЧЛ, выражаясь языком соционики) скажут «очередной изобретатель велосипедов», а остальным просто будет пофиг…
И тут возникает очень неприятный вопрос: а для чего мне вообще тогда что-то делать? Если той прослойки людей, на которую я ориентируюсь, либо почти не осталось, либо они настолько разобщены, что просто не могут найти друг друга в среде Интернет-обывателей, которым ничего не надо… Конечно, можно было бы попытаться сделать массовый сервис для всех желающих. (Предположим даже, что он будет настолько хорош, что «взлетит» без рекламы.) Но тут всё упирается в вопрос масштабирования. Сколько пользователей выдержит приложение заметок на обычном дешёвом VDS ценой в 300 руб/мес? Максимум — несколько десятков тысяч в день. А дальше возникает неприятный выбор: нужно либо ограничивать регистрацию, либо арендовать более дорогой сервер (а потом и вовсе думать о горизонтальном масштабировании на несколько). Но если VDS за 300 руб/мес я могу себе как-то позволить, то dedicated server за 30000 руб/мес — уже нет (и даже за 10 тыс — тоже нет), плюс ещё нужно место под backupы. И тогда придётся становиться на скользкий путь коммерциализации (хотя бы вешать ту же рекламу). Но это уже на грани предательства своих идей о том, чтобы быть творцом во благо Сетевого сообщества. Я буду мало чем отличаться от всё тех же людей с Хабра…

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

Разбираюсь с PWA-приложениями

Вернулся к изучению PWA-приложений. Разобрался с тем, как работать с кешем, делать синхронизацию и отправлять push-уведомления. Сложного там особо ничего нет, но приходится запоминать кучу объектов и методов с длиннющими названиями типа pushManager.getSubscriptions. Причём push-уведомления оказались устроены совсем иначе, чем я себе представлял, но в целом даже проще. Но вот на этапе перехода от теории к практике вчера застрял на весь день: почему-то после запроса подписки pushManager всё равно возвращал null. Потом скачал полностью готовый пример, тот как-то заработал, хотя тоже не сразу. Так что возможно, через какое-то время преобразую этот сайт в PWA — приделаю оффлайн-режим, в котором можно будет перечитывать уже посещённые темы, и push-уведомления.
День переезда и информационной разгрузки

Сегодня (вернее, уже вчера) собирался снова ехать в Область. Но встал очень поздно (зато вперые с конца октября отоспался как следует, без дробного сна или самопроизвольных пробуждений), и от понимания, что не успею собраться и выхать засветло, возникло желание отложить поездку на завтра, а вместо этого остаться в Городе и поиграть либо в The Council, либо в Ведьмака, либо вообще в World of Tanks. Впрочем, у меня всегда так перед любым переездом: очень не хочется менять уже сложившееся... Плюс ещё мешала мысль о том,что вечером в электричках слишком много народа.
Но потом всё же себя пересилил, и теперь совершенно не жалею. Скорее, наоборот, недоумеваю, как можно было не хотеть, ведь тут на самом деле гораздо лучше. Тем более, поездка прошла на редкость благополучно: и на трамвай и автобус очень удачно попал, и электрички новые и более комфортные. Сначала, правда, реально народа было очень много, что даже ехать пришлось в тамбуре. Потом я вспомнил, что сразу вслед за электричкой, на которую я попал, идёт ещё одна, до Электрогорска. В итоге решил выйти на Никольском, прождал пять минут, и сел на следующую. В ней и правда оказалось куда свободнее (впрочем, для электрогорских это типично), и уже через пару остановок освободилось сидячее место.
Сама поездка вызвала иррациональное чувство выпадения из реальности. Во время поездки я обнаружил, что в приложении Huawei Health есть сведение данных о качестве сна, и часть пути занимался тем, что сопоставлял данные разных месяцев, пытаясь понять, влияет ли то, что летом засыпаю засветло, на показатели или нет. Из-за этого не следил, где мы едем, к тому же за окнами было совсем темно, а пересадка сбила возможность ориентироваться по времени в пути. В какой-то момент даже начал опасаться, что проеду Посад. Но нет, всё прошло нормально!
А приехав на новую квартиру, как-то внезапно решил устроить себе день информационной разгрузки. За компьютер не стал садиться вообще, даже для синхронизации. Да и это сообщение пишу с планшета. Зато наконец-то чувствую, как меня перестают разрывать на части противоречивые устремления типа «надо делать то»или «нет, вот то» или «ни то, ни другое, а вообще вот это». Вместо этого, наоборот, пришло ощущение будто я восстанавливаю целостность, буквально собираю себя по кускам на нематериальном плане Бытия. Потом ещё посидел в медитации, прошёл очередную тренировку на NeuroNation, и вообще пришло чувство удовлетворённости прожитым днём. Похоже, начинается третий этап параноидного цикла: отказ от попыток что-то сделать, а вместо этого --просто созерцательное отношение к жизни...
Вообще, всё больше и больше понимаю, что для выживания в условиях современного Интернета с его избытком возможностей и отвлекающих факторов умение отказываться от всего остального ради одной-двух целей (или направлений, так как я мыслю именно направлениями, а не целями) просто критически важно. Но увы, выражаясь языком соционики, это путь ЧС-ников, а не чёрных интуитов.
Злоключения с флешкой или Мы не ищем лёгких путей

Недавно пришло в голову сделать переносное рабочее место пентестера — флешку с соответствующим дистрибутивом Linux. Стереотипно считается, что пентестер должен пользоваться Kali, но я нашёл другой вариант — Parrot Linux, который хорош тем, что кроме «хакерских» программ содержит софт и для повседневных нужд Web-программиста: VSCodium, Libre Office, сервера MySQL и Postgres, Apache, nginx. Только вот Filezilla и Putty не хватает. Да и к «железу» он весьма нетребователен.
Казалось бы, что может пойти не так: нужно просто скачать ISO, записать на одну флешку, загрузиться с неё и провести полную установку на другую. Но я не был бы собой, если бы просто взял и сделал.
Начнём с того, что флешек у меня две. Одна, старая, но очень хорошая Transcend на 32 Гб, вторая — более новая на 16 Гб неизвестного производителя. Первая использовалась раньше для синхронизации данных с дачным компьютером, и на ней же стоял Ventoy и хранились образы нескольких OS. Сразу возник вопрос: а на какую устанавливать Parrot Linux, чтобы работало быстрее. Решил провести benchmarking. После беглого поиска, чем это можно сделать, решил поставить KDiskMark. Но в этот момент я уже сидел за старым ноутбуком (взял его, чтобы ставить Parrot, не перезагружая основной компьютер), и ставить KDiskMark решил на него.
Система там не обновлялась довольно давно, поэтому чтобы KDiskMark установился, нужно сделать apt update && apt upgrade. Запускаю, но тут вылезает та же проблема, о которой я уже писал: кривое обновление, которое сносит часть установленных программ, в том числе и Network Manager. После чего, конечно же, отваливается Интернет.
Проводная сетевая карта в том ноутбуке сгорела ещё в 2013 году. Поэтому пришлось вспоминать, как писать файл конфигурации для wpa_supplicant. Сначала пытался по мануалу, но не работало. Потом запросил пример у ChatGPT, тот написал, и оказалось, что одну строку (на которую и ругался wpa_supplicant) указывать и вовсе было не обязательно, а достаточно только SSID и пароль.
Подключился, переустановил Network Manager и plugins для него, поставил KDiskMark. Провёл измерения. Оказалось, что флешка на 16 Гб даёт чуть более высокую линейную скорость чтения, но проигрывает Transcendовской по всем остальным параметрам. Решил сделать так: вынести Ventoy и ISO образы на вторую флешку, а первую разбить на два раздела по 16 Гб. Один сформатировать в exfat (чтобы можно было писать файлы и под Windows), второй — в f2fs и установить туда систему. Перенёс ISO образы на вторую флешку (заодно навёл порядок: кое-что удалил, кое-что обновил), временно сохранил прочие данные на диск, и запустил установку. Вроде всё шло хорошо, пока не возникла ошибка «нет места на устройстве». Оказалось, что хотя ISO-образ занимает всего 5.3 Гб, данные в нём очень сильно сжаты, и на официальном сайте утверждается, что для нормальной установки нужно целых 40 Гб! То есть флешки просто не хватит.
В итоге решил сделать то, что называется persistent live, когда на флешку пишется ISO-образ, а в дополнительный раздел сохраняются изменения. Создал EFI-раздел, сделал grub-install, решил попробовать загрузиться с флешки. Но дальше всё пошло не так: при загрузке через EFI меня выбрасывало в grub rescue, а через BIOS — в командную строку обычного grub без меню и с непонятно откуда берущимся кривым префиксом пути.
Дальше три дня ушло на попытки разобраться, что не так. И только сегодня причина нашлась. Оказывается, важен порядок разделов! А у меня EFI-раздел шёл третьим, после раздела, куда я записал ISO. Загрузчик видел на ISO-разделе каталог EFI с урезанным grub и пытался загружаться с него! (Кстати, оказалось, что это легко чинится обычным fdiskом, где есть специальная команда fix в expert mode, т.е. последовательность команд такая: x f r w q). Потом я это выяснил, но к тому времени в ходе своих экспериментов создал другую проблему: удалил файл /EFI/BOOT/BOOTX64.EFI (так как думал, что туда что-то глючное пишется). И только когда сообразил его восстановить (привет ещё две перезагрузки), всё заработало. А загрузка BIOS искала GRUB вовсе не на том разделе, где он должен быть, так как BIOS-версия загрузчика оставалась вообще от Ventoy. Почему-то я не сообразил, что для того, чтобы его обновить, нужно сделать отдельный запуск grub-install с --target=i386-pc.
В общем, потерял кучу времени, зато куда более детально разобрался с устройством GRUB и UEFI. Вопрос только, пригодятся ли мне эти знания когда-нибудь ещё…
А ещё пришла в голову мысль сделать форум (или раздел на этом) специально для подобных историй, где каждый желающий мог бы с техническими подробностями рассказать, как он наглухо завалил прод делал глупые ошибки.
Сон и неожиданное осознание

Сегодня приснился очень неприятный сон. Как будто мы с Tellой пошли в какой-то музей военной техники (не тот, что в Кубинке, а какой-то поменьше). Причём инициатива была её, а я как-то желания идти туда не испытывал (в реальности такое очень маловероятно: Tellе не интересны как музеи вообще, так и военная техника в частности).
Там стали ходить, смотреть экспозицию. Tella спросила меня что-то о тактике применения БТРов. В военном деле я, как известно, не разбираюсь от слова совсем, но что-то ей ответил из общих соображений. Потом ушёл смотреть какую-то другую часть музея, а когда вернулся, обнаружил, что она разговорилась с каким-то другим посетителем. Он был одет в гражданское, но по манере держаться и говорить было видно, что это опытный кадровый военный, судя по всему, с реальным боевым опытом.
Tella пересказывает ему то, что я ей рассказал (причём с точностью чуть ли не слово в слово, как она умеет). А тот спокойно и аргументированно громит все мои умопостроения и подробно рассказывает, что и как в реальных условиях. И в конце добавляет «ваш „друг“ показал себя человеком абсолютно некомпетентным, у нас с такими разговор короткий», и дальше в характерных для военных выражениях объясняет, что дали бы пару раз в рыло, чтобы не воображал о себе слишком много, потом держались бы подальше. И что вообще, из таких обычно получаются политработники, а из-за таких командиров множество людей гибнет напрасно.
После этого меня выкинуло из сна с чувством жуткого стыда, таким всепоглощающим, какого я, наверное, не испытывал с подросткового возраста.
Но немного успокоившись, я вдруг задался неожиданным вопросом: ведь если это мой сон, то все персонажи в нём — это порождения моей психики. А значит, где-то в её глубине есть часть, которая знает, как надо на самом деле (если не рассматривать вариант установления во сне канала с ЕИВП), и умеет излагать это убедительно, связно и аргументированно, как тот военный. Но почему-то в сознательном состоянии я доступа к её ресурсам не имею, а вынужден взаимодействовать с миром из роли некомпетентного пустобрёха. И этот сон отразил мой бессознательный страх, что как только сказанное мной попадётся на глаза компетентному специалисту, я буду разоблачен и осмеян. И именно этот страх сковывает меня и не даёт развиваться.
Опять выбросило из потока жизни

Проблемы со сном наконец-то позади! Более того, в последние дни даже режим наладился, стал вставать по своим меркам очень рано. И сразу дни стали казаться гораздо длиннее! Но всё равно ничего не успеваю. И опять произошло то, что я теперь называю «выбросило из потока жизни». То есть пропал настрой на прежние задачи, в частности, изучение Svelte Kit. Сегодня попытался вернуться, но дело не идёт... Эх, научиться бы этими потоками управлять, запрыгивая в нужный, когда требуется, чтобы всё время несло в одном направлении.
А вчера весь день провёл в полузаболевшем состоянии. Сегодня, правда, чувствую себя вполне приемлемо. Но всё равно, отложил возвращение в квартиру в Области как минимум до вторника, а то и четверга.
Ещё шаг в самопознании и жуткий сон

Вчера опять словил приступ бессонницы. Зато под влиянием очередного видео с канала О. Демчук про «идеальное я» сделал одно важное дело в плане самопознания: составил список того, где я чувствую себя в жизни уязвимым. Получилось пять пунктов, после чего в голове сложилась более-менее целостная картина, что не так с моей жизнью. Правда, выкладывать их на данный момент не готов.
А ещё повторно приснился совершенно жуткий сон про остров, жители которого (причём сильно напоминающие какую-то мафию как по внешнему виду, так и по взаимодействию между собой) хотели меня похитить просто за то, что я знал о существовании этого острова. Есть предположение, что этот сон как-то связан с теми самыми ночными осознаниями.
Не получается уместить в жизнь всё

Вчера опять получилась бессонная ночь. В результате таки и не пошёл на настолки (в лучшем случае бы просто тупил, в худшем — выбесился бы на кого-то нибудь из-за проигрыша), зато выбрался на прогулку в Терлецкий парк в малореальное для меня время — 9 утра. И правильно сделал — поймал ещё один солнечный день! А вечером наконец-то вернулся на CodeBy. Взялся за один сложный квест, в котором сначала вроде бы неплохо двигался, но потом застрял.
Сегодня режим более-менее начал налаживаться. Постепенно прихожу в себя и занимаюсь тем, что называется «догоняю жизнь». И размышляю над тем, что уместить в один день даже половину того, что я хотел бы успеть, не получается, а всё, что я ни делаю, занимает в разы больше времени, чем ожидаю изначально. Даже просто медитация + простые упражнения + Клавогонки + тренировки на NeuroNation + замеры и внесение данных в файл для методики самовосстановления съедают очень много времени.
А ещё снова кручу в голове мысль о возвращении к написанию своего движка сообщества. Причём отказался от идеи, что информацию нужно структурировать только хеш-тегами, пришёл к выводу, что предусмотреть возможность деления её на каналы тоже нужно, более того, сделать набор каналов по умолчанию по типам контента: статьи, заметки (аналог gists), фото, ссылки, места (и, возможно, встречи с привязкой ко времени), проекты/портфолио, а также канал для вопросов/ответов (возможно, анонимных). Только вот не могу определиться, то ли Svelte Kit изучать дальше (попробовал пару дней назад, весьма понравилось, да и по ресурсам относительно приемлемо) или же возвращаться к MLFW, только переделать в нём систему шаблонизации (а то я прихожу к выводу, что всё же с ней перемудрил в 2022 году).
Переход на XFCE и размышления о цене красоты

Всё же признал эксперимент с KDE неудачным. В итоге перешёл на XFCE. С начальной настройкой пришлось повозиться: слишком многое по умолчанию не так, как я привык. Зато теперь всё полностью устраивает! Даже кнопку главного меню можно назвать «Пуск», как в старые добрые времена. Наконец-то избавился от двойного ввода пароля при выводе компьютера из блокировки, когда его сначала запрашивает lightdm, а потом — xscreensaver, причём последний ещё почему-то часто пытается поставить русский язык при вводе пароля. И ещё теперь корректно работают команды типа «открыть в файл-менеджере» (PcManFm в таких случаях каталог открывал, но требуемый файл не выделял, приходилось искать его вручную, что неудобно, когда в каталоге много фотографий.) В общем, теперь наконец-то воспринимаю систему как что-то цельное, а не кое-как собранное из кусков, скрепленных синей изолентой, что периодически бывало источником фонового раздражения.
Правда, оперативной памяти XFCE потребляет довольно много (если просуммировать RSS всех процессов, получается что-то порядка 350 Мб). LXDE в этом плане компактнее, в основном за счёт того, что апплеты не висят в отдельных процессах, а подгружаются как .so (аналог DLL в Windows) прямо в lxpanel. С другой, возможно, это и становится причиной мелких глюков панели, из-за которых я и задумался о смене DE.
Ещё хотел было оставить sddm в качестве display manager, очень уж понравился его интерфейс. Но когда сносил KDE, заодно удалил и тему breeze, после чего внешний вид окна приветствия стал совсем другим. Попытался было поставить обратно, но увидел, что она тянет почти 700 Мб зависимостей (включая даже зачем-то KDE Connect), и решил, что это — слишком. В итоге вернул lightdm, как было изначально.
Вообще, все эти эксперименты заставили меня вновь задуматься о «цене красоты», если так можно выразиться. Раньше у меня позиция была предельно жёсткая: «Никаких украшательств! Все эти картинки на фоне, плавная анимация интерфейсов и т.п. — напрасная трата ресурсов!» Но это было во времена медленных жёстких дисков и памяти, исчислявшейся десятками мегабайт. А ещё в те времена у меня не было проблем с моей собственной производительностью. А уже в 2011 году, после Великого Выгорания, вспомнил слова одного одногруппника, что отвлечение на красивый фон рабочего стола помогает разгрузить мозг и в целом способствует большей производительности, и решил попробовать. В целом идея себя оправдала! Зато с тех пор не даёт покоя вопрос, какую часть ресурсов компьютера можно потратить на красоту и удобство интерфейса, а что будет перебором. Хотя, по идее, ответ прост — ту, которая не требует дополнительных денежных вложений в «железо», а на скорость начальной загрузки влияет на уровне статистической погрешности.
О дыхании, напряжённости и эффективности

Обнаружил, что на показатели Welltory очень сильно влияет дыхание. Когда я напряжён от того, что делаю что-то сложное и требующее концентрации или просто перегружаюсь слишком большим количеством параллельных задач, дыхание становится менее глубоким. А если же это осознать и целенаправленно расслабить тело перед замером и подышать более глубоко, то результаты замера оказываются лучше на 10-15% (я про показатель энергии). Собственно, этим и объясняется то, что в бескомпьютерные дни результаты почти всегда получаются лучше.
В общем, всё упирается в вопрос, как поймать то самое состояние сосредоточенной расслабленности, о котором я уже не раз упоминал, и заниматься программированием или написанием статей, находясь в нём, а не в состоянии сильной зажатости, как сейчас… Тогда, может быть, и проблемы с тем, чтобы себя заставлять, уйдут.
- 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