От переводчика: Мне неизвестно, написали ли этот пост на серьезных щах. Если нет, то это серьезный перевод юмористического контента. Если да, то это исключительно юмористический перевод смехотворной, абсолютно безграмотной работы.

Переведено с попыткой сохранить весь абсурдный стиль оригинала. Откройте оригинальный пост, если сами не верите


Все началось в ленивый вечер воскресенья. Знаешь дни, когда ты просто бездумно листаешь Твиттер, а твой браузер начинает сходить с ума? Да, такой день. В тот день мой 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 на Гитхабе

Комментарии (6)


  1. morett1m
    09.11.2024 07:23

    Как будто мат в заголовке выглядит несуразно


  1. ednersky
    09.11.2024 07:23

    пагинатор в списке процессов - и правда, занахрена он там нужен?


  1. Grey83
    09.11.2024 07:23

    Он сегодня выкатил версию 1.0.8 с версией под винду x64.

    Я бы межстрочное расстояние уменьшил и для статуса процесса сделал цветовую индикацию (как в том же Process Explorer).


  1. baldr
    09.11.2024 07:23

    Спасибо переводчику. Почитав оригинал, я понял, что это было непросто.

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

    Но лично мне интерфейс на скриншотах не оч. Я люблю btop в консоли.


    1. monoiddd Автор
      09.11.2024 07:23

      Целую вас в лобик.


  1. zabanen2
    09.11.2024 07:23

    where their terminal looks cooler than most people’s entire desktop setup
    "один терминал выглядит круче чем все рабочее окружение"
    using more resources to monitor resources
    "используем еще больше ресурсов мониторя ресурсы."
    couldn’t come up with a good reason why NOT to add it
    "не было хорошей причины НЕ добавлять ее"
    в голове крутились эти мысли, а автор сказал это словами