От переводчика: Мне неизвестно, написали ли этот пост на серьезных щах. Если нет, то это серьезный перевод юмористического контента. Если да, то это исключительно юмористический перевод смехотворной, абсолютно безграмотной работы.
Переведено с попыткой сохранить весь абсурдный стиль оригинала. Откройте оригинальный пост, если сами не верите…
Все началось в ленивый вечер воскресенья. Знаешь дни, когда ты просто бездумно листаешь Твиттер, а твой браузер начинает сходить с ума? Да, такой день. В тот день мой ARC браузер был особенно драматичным, вероятно закатывая истерику из-за моих 47 открытых вкладок (не осуждай, мы все так делаем — мы же все поэтому перешли на ARC?)
И вот я теперь отчаянно пытался разобраться, почему моя оперативка пропадала быстрее чем пицца на бесплатной конференции. Я открыл Мониторинг Системы, но ребята, как так можно? Его интерфейс напоминал мне ту эру, когда люди еще срались по поводу табов и пробелов. В тот момент на меня нахлынула ностальгия, и я заскучал по былой чистой красоте терминального htop’а с моих времен на Лиунксе.
— Пора устанавливать htop (он у меня даже не стоял, типа серьезно? я в своей карьере 3 или 4 раза открывал проги для мониторинга по типу top или htop, типа нахуя они вообще мне сдались? 🤷♂️), потом я подумал стоп а есть ли красивая гуишная альтернатива для мака, — подумал я. Большая ошибка. Или может самая лучшая ошибка?
Полистав альтернативы, которые выглядели как будто были сделаны когда интернет еще был крутым 💾, у меня произошло то, что алкоголики называют «моментом ясности». — А я же как раз хотел выучить Раст, к тому же все говорят о своей параше на Таури… А я не хочу писать следующий туду лист за миллиард долларов 🤔
«Как тяжело может быть написать свой мониторинг системы? Там же просто циферки вверх и вниз, нет?»
Ох, наивное дитя.
Первая остановка: Книга Раста. Ну та самая, про которую говорят, что ее надо прочитать от корки до корки, перед тем как вздумаешь писать «Hello World!». Я дочитал до середины, чего хватило, чтобы понять владение и заимствование (чем-то похоже на отношения по рассказам терапевта — все крутится вокруг владения и заимствования чьих-то чувств), и что трейты это типа просто интерфейсы из Го в понятиях Раста. Затем настал мой второй момент ясности: «Стоп стоп стоп, Раст — это для системного программирования… тут ведь должен быть крейт для системной фигни?»
Оказывается, их было где-то 50. Но паралич принятия решений — наверное просто часть современного программирования.
Теперь о фронтенде. Таури не волнуют фреймворки, так что я мог использовать Реакт либо Ангуляр. Но давайте серьезно — выбирать Реакт это типа как притащить целый оркестр, когда тебе нужна только дудка. Плюс, у меня самого есть принципы, епта! Тогда я вспомнил о Свелт, том прекрасном компилируемом фреймворке, который Реактойды пытаются скопировать своей «компиляторной магией» (Это по-твоему инновация, Цукерберг?).
Первая итерация была… функциональная. Простые invoke’и из Таури уже работали (просто рассыпь везде invoke()
как будто это волшебная пыль ✨), но это выглядело не сильно интереснее какого-нибудь ping’а в терминале. А раз мы делаем GUI (а не поставляем весь Хромиум вместе с приложением, как делают другие электрон-ные фреймворки которые можно назвать — ага, мы за нативный вебвью ведь мы не монстры), то лучше сделать его красивым. Тут началось приключение с иконками…
Я потратил ТРИ ДНЯ просто разбираясь как доставать нужные иконки процессов. ТРИ. ДНЯ. Мое решение? Странное сочетание SimpleIcons с регекс-магией, которая возможно вызвала небольшого демона в процессе.
Произошла магия — интерфейс внезапно стал у меня складываться, и почему-то выглядел… хорошо? Темный режим не сжигал мою сетчатку (на тебя смотрю, htop), и метрика производительности плясала по экрану как на дискотеке.
Понимаете, я последнее время слишком много сидел на Реддите рассматривая те красочные скриншоты neofetch’а которые постят крутые пользователи (те — в которых один терминал выглядит круче чем все рабочее окружение у большинства людей). Оттуда и пошло вдохновение на название «NeoHtop» — небольшая отсылка на neofetch и его эстетичное коммьюнити. Но зачем останавливаться на красивых цветах?
Тут ко мне пришла еще одна идея — если разработчики могут часами кастомизировать свои редакторы кода 🎨, то почему бы не дать им сделать то же самое в мониторе системы? Возможность добавления тем была не только о красоте, а еще о том дофамине, который пользователи получают от кастомизации VS Code. (И давайте по-чесноку, мы все знаем хоть одного человека, который больше кастомизирует свой редактор, чем пишет код.)
Я добавил пару анимаций, ведь почему бы и нет? Если мы отслеживаем ресурсы системы, мы хотя бы сделаем это стильно. Я догонял иронию, что мы потенциально используем еще больше ресурсов мониторя ресурсы.
И я не останавливался! Потому что судя по всему, я просто не могу отпустить что-то неплохое. Я встроил поиск (потому что скроллинг это так по-2к23), фильтр по статусу (для тех, кому хочется знать какие процессы «спят» — типа как мы все сами бы хотели), и даже пагинацию (зачем мониторингу системы пагинация, вы спросите? Нууу… Я задал себе тот же вопрос, но у меня просто не было хорошей причины НЕ добавлять ее… 🤷♂️).
Я даже написал на Реддит и на dev.to, с небольшой помощью от ChatGPT (а у кого есть время писать связанные предложения когда ты занят ненужными фичами? 🤪). У этого был обратный эффект, когда какой-то мамкин комментатор на dev.to решил настучать на меня за ChatGPT — а я этого даже не отменял! Но карма работает таинственными способами: пост так взлетел, что dev.to наградил меня правами админа. Я просто скажу, что некоторые негативные комментарии как-то улетели в самый низ. А что, с большой властью приходит большая… возможность передвигать комментарии? 😈
Тут случился настоящий момент «о боже». По совету Маруана (моего друга и коллеги которого я никогда не прощу за это), я залил это на Гитхаб, думая «может пара человек это заценит». Ну как обычно: мама, собака и тот друг, который всегда все старрит.
Но похоже, я не был единственным, кто считал, что Мониторингу Системы нужен был глоу-ап ✨. За 24 часа уже начали приходить стары. На шестой день, у нас была 1000 старов 🌟. Мои уведомления разрывались, а у синдрома самозванца было лучшее время в его жизни…и я хотел знать что тут вообще происходит? что же я делаю со своей жизнью? Я до конца своей жизни буду отвечать на эти ишуи на Гитхабе? Да, я люблю опен-сорс, но у меня и своя жизнь была! и маленький ребенок! и жена! и дом! и ипотека! и кот! и собака! в какое же дерьмо я только что вляпался?.. это все равно ведь просто софт? я же не разрабатываю следующую большую вещь….немного натянуто, но ок.
А самое приятное? Люди реально этим пользовались! Настоящие люди! И они скидывали PR и открывали ишуи с предложениями.. тупыми предложениями но иногда и хорошими!
Вот так мы здесь и оказались, с полноценным монитором системы который образовался потому что Arс жрал много памяти впервые за несколько месяцев. Мораль истории такова: иногда самые лучшие проекты выходят из самых обыденных проблем. смысл даже не в проекте, а в самом процессе.. опыте.. пути.. уроках.. людях.. смехе.. воспоминаниях.. да что я вообще делаю со своей жизнью? какие воспоминания? какой смех? какие уроки? какой путь? какой процесс? какой проект?… шутка, учитесь на практике.
P.S. Если вам интересна наша история версий (спойлер: много коммитов типа «опечатка» были вшиты в другие коммиты типа «обновление зависимостей», «обновление иконок», «обновление ссылок», и т.д.):
Да, мы дошли до 1.0.5. Каждая новая версия представляет собой как минимум один момент «работает на моей машине» и несколько глотков кофе.
Помните ребята: Иногда можно научиться новым технологиям написав что-то нужное вам самим, даже если не рассчитаете собственные силы. Добавляйте больше анимаций — те заглушат боль в дебаге утечек памяти. А если хотите назвать свой проект в честь чего-то, то можно просто взять что-то у крутых пользователей Реддита! 😅
P.S.S. Если вам интересно как я это написал, вспомните что я пишу в этот раз без ChatGPT.. С большой силой приходит большая ответственность.
Попробуйте NeoHtop — он бесплатный и опен-сорс: NeoHtop на Гитхабе
ссылка на оригинал статьи https://habr.com/ru/articles/857226/
Добавить комментарий