IT НИГИЛИЗМ | Всеволод Плетнев
Open in Telegram
🧑💻 IT-блог Всеволода Плетнева, ламповое болото цифрового пиздеца, где код встречается с экзистенциальным ужасом, а здравый смысл идёт нахуй. https://itng.blog
Show more949
Subscribers
No data24 hours
+127 days
+630 days
Posts Archive
Зачем все-таки нужен NodeJS? Какие полезные вещи он привносит?
Ну, во-первых, благодаря NodeJS можно добавить необходимый шаг компиляции TypeScript'а и сборки кода.
Я обожаю тратить время на конфигурацию, ожидание сборки, невозможность динамически импортировать .ts файлы и так далее.
С помощью NodeJS и NPM можно держать все необходимые зависимости прямо в директории проекта. Причем — каждого.
Таким образом, каждый проект на ноде будет занимать как можно больше места на жестком диске, что мы одобряем.
Офкорс, нахуй нормальную совместимость с браузерными API. Благодаря NodeJS иногда даже самый простой код может совершенно по-разному выглядеть на фронте и на бэке. Это разделение необходимо — зачем иметь общие API, пфф.
NodeJS не несет в себе почти никакого тулинга, и благодаря этому я сам могу заняться установкой и настройкой линтеров, форматтеров, всяких либ для тестирования и прочей лабуды, которая у всех всегда и везде работает немного по-разному. Ух, если бы нода имела всё это из коробки — я был бы страшно расстроен.
Я большой фанат способности кода на NodeJS лезть куда угодно и делать что угодно. Это вселяет в меня уверенность, ведь каждый NPM-пакет (коих в проекте может быть от нескольких сотен) может нести в себе какой-нибудь "сюрприз", а сюрпризы я люблю!
И самое главное: чем сложнее модифицировать код рантайма, расширять его своими модулями, динамически импортировать нативные библиотеки или просто куда-либо его встраивать — тем лучше. А если чего-то из этого нет или оно просто хуёво работает — вообще победа.
Все это бесконечно меня радует. Это вдохновляет, сподвигает меня использовать ноду каждый день.
Всем рекомендую!
Repost from N/a
DX со временем накапливает множество инструментов и команд. Хотя подробная справка по каждой из них — важная часть, бегать по всей документации, чтобы вспомнить, как именно что-то работает, может быть неудобно. Поэтому мы планируем добавить глобальный поиск, который позволит быстро находить нужный инструмент, его команды и подсказки по использованию.
Я всегда мечтал иметь возможность писать код — выражать и реализовывать свои творческие идеи — где угодно и когда угодно.
Да-да, я знаю, для этого существуют ноутбуки (в моем случае — MacBook Pro на M1), но его портативность — штука весьма условная
Посуди сам: ты можешь взять его куда угодно, разложить на любом столе или поставить на колени, если сидишь... А, ну и все. Стоя с ним работать неудобно, лежа — вообще боль (по крайней мере для меня), да и не на всяком стуле/кресле будет комфортно
А я хочу чего-то реально портативного. Попробую вообразить... Очки вроде XREAL есть, мини-компьютеры в форм-факторе неттопов есть, батареи — есть. Ну да, все уже есть, все легко помещается в рюкзак или небольшую сумку
Кроме клавиатуры и тачпада. Вот с ними начинается засада. Если это раскладной девайс (а среднего или очень убогого качества такие уже существуют), ему обязательно нужна нормальная поверхность. Мышь вообще не рассматриваю — допотопный кринж и максимально ситуативный девайс. Беда
Или... не беда. Погоди. Есть же другие устройства ввода — например, геймпад. С ним удобно сидеть, стоять, лежать, он не занимает много места и идеально ложится в руки без дополнительных приспособлений. Колени и стол ему не требуются вообще
И ведь геймпады сегодня не промах — куча кнопок, датчиков, сенсоров и прочей дребедени. Но при всем этом — полноценной заменой клавиатуре, мыши или тачпаду он пока не стал
И тут меня накрыло: а что если продумать и разработать систему ввода (аналогичную разным режимам в Vim), с поддержкой всех возможностей клавиатуры, платформозависимых хоткеев и жестов тачпада — но адаптированную под геймпад?
Ухх, ну и бредятина, конечно. Но мысль засела плотно
Если на секунду представить, что это реально и хоть сколько-то удобно — разъеб. Я возьму топовый неттоп вроде Mac Mini, очки типа XREAL Air Ultra — и буду писать код, сидя двойкой на байк-такси
Или просто стоя в пробке. Почем нет? На пляже, в магазине, в ожидании заказа в кафе, в туалете — да где угодно. Хоть лежа под одеялом в кровати
Давно не писал на Python — за это время успел основательно отстать
Честно говоря, особо и не тянуло. Все эти глобальные пакеты, ебля с venv и прочие странные костыли делают его не слишком удобным для повседневного использования.
Если есть возможность обойтись костылями и Deno + TypeScript — я так и сделаю, а к петухону не притронусь даже левой пяткой.
Но сегодня наткнулся на uv, и Python в моих глазах вдруг ожил.
Представьте себе инструмент, который объединяет менеджер пакетов, управление venv (под капотом), менеджер версий интерпретатора и еще кучу всего — все это в одном инструменте
Особенно зацепила возможность запускать скрипт, указывая зависимости прямо в заголовке файла. uv сам всё подтянет и выполнит на нужной версии петухона.
Удобно. Современно. Давным-давно пора.
Repost from Психология разработки | Сергей Андреев
Мой друг решил пересобрать свой блог и превратить его во что-то большее — теперь туда могут писать и другие авторы.
Поэтому я решил помочь и написать статью, но не просто так — а такую, которая бы соответствовала духу проекта.
IT Нигилизм — это «Чёрное зеркало» для программистов.
В некотором смысле у меня получилось художественное произведение, поэтому — приятного прочтения. Надеюсь, этот текст поможет вам легче доносить мысли в текущих реалиях.
Сегодня ради веселья и интереса решил прикинуться дурачком
И «навайбкодить» простенькое приложение — просто чтобы проверить, насколько быстро можно прототипировать что-то с помощью нейросетей.
Спойлер: получилось с трудом.
Давно хотелось скопировать что-то вроде Write or Die или того же Свечки (который, судя по всему, с концами почил). Взял в союзники GPT-4o и Claude 3.7. Потратил на всё солнечный день, и вот результат: наговновайбкодил nowrite.fun.
Под капотом: Deno + TypeScript, anime.js, xstate и canvas-confetti. Хостится, ясное дело, на Deno Deploy — как без этого.
В чём суть?
Ты выбираешь время, в течение которого нужно сфокусироваться и писать текст. Например, 5 минут, чтобы накатать пост в телегу. Время выставил — начинай писать. Пишешь без остановки всё отведённое время — красавчик, победа.
Но стоит тебе затупить, замешкаться или залипнуть — текст сгорает к чёртовой матери. Всё. Без шансов. Нехуй втыкать)
Конечно, я прикрутил крипто-типалку и залил всё это на Product Hunt (где такого треша хватает). Никогда с ним не работал, хочется понять, насколько это вообще полезная фигня. Так что не ленись, прожимай голос, апвойть.
Честно? Вайбкодинг — это какой-то кошмар. Серьёзно. Не представляю, каково быть человеком, который целенаправленно работает таким инструментом.
Я реально боролся с собой, чтобы не начать всё делать по уму и не включать голову. С одной стороны — вроде работает. С другой — чем дальше, тем больше багов, которые сами же себе возвращаются через пару итераций.
Процесс превратился в бесконечное «отпинывание» кода туда-сюда, с комментами типа «исправь то, но не сломай это». Ошибки — в основном детские.
Из всех нейросетей лучше всего справлялся Claude — респект, он чуть лучше, чем просто дерьмо. Чуть.
Кароче. Учите программирование. Пишите код, как нормальные люди. Не страдайте хуйней.
Хотя, накидать функции, структуры и устроить мозговой штурм с сетями — можно. Может даже нужно (если ты лох и у тебя нет друзей).
No Write можно и нужно тестить на ПК, голосовать — на чём угодно, типать — если ты не нищеброд.
Эксперимент получился интересным. Планирую повторять — и дальше засирать интернет бесполезным однотипным генеративным хламом.
Удачи! И не смей сука ставить клоунов
Ура! На блоге появился первый гость — Виктор Рябков (@ViktorRyabkovIT) опубликовал свой пост. Спасибо, Виктор! Это только начало. 🚀!
HH — поломанный и бесполезный кусок говна, LinkedIn — поломанный и бесполезный кусок говна. Средний HR вообще не отстреливает на какой планете и в каком веке он находится (вероятно, что переодически пускает слюну на клаву с тупым выражением лица, я хз)
Интернет мертв и нам всем пизда. Нейросетевые фильтры, нейросетевой контент, нейросетевые резюме и прочая генеративная залупь тотально разжижала и без того бракованный мозг интернет-пользователя.
Полагаю, что интернет сегодня — это самодостаточная система. Боты сами постят, сами читают и чет там анализируют. Биожир/груда костей с IQ как у хлебушка в 50см от монитора боле не требуются.
Серьезно, мой вонючий носок недельной выдержки справится с собеседованием кандидата лучше, чем почти (буду прогрессивным) любая HRка (мужики, простите, я вас в этой роли не наблюдал).
🥳🥳🥳 Доброе утро 🥳🥳🥳
Ну что, наш DevExp потихоньку начинает жить! Вчера я более или менее засетапил сайт и готов собирал ваши емейлы в вишлист!
Емейлы оставлять вот тут -> https://devexp.pro
@devexppro
Repost from Разрабы
Во-первых, у нас новый соведущий в Разрабы Подкасте. Всеволод Плетнев, умный толковый действующий разраб, и разговаривает что заслушаешься и код пишет, что не придерешься.
Во-вторых — новый выпуск. Пока вы отвлекались на все что там вокруг происходит — могли и проглядеть, как еще дальше ускакала инфраструктурная тема. Девопсерские дела стали еще запутаннее и непонятнее, тренды снова изменились, на рынке произошло много нового.
В гостях — Антон Юрищев — продуктовый архитектор в Yandex Cloud
Посмотрите выпуск, наверстайте упущенное
Youtube | VK-видео | Rutube | Аудиоверсия
Мне давно было интересно как работает Deno Deploy
В отличие от контейнеров, Deno Deploy запускает процессы с использованием, вероятно, cgroups или аналогичных механизмов. Поскольку сам рантайм позволяет гибко управлять правами доступа, каждый процесс изначально максимально ограничен. Например, он не может свободно взаимодействовать с файловой системой, сетью или переменными окружения — все это контролируется через встроенные в Deno permissions (подробнее об этом можно почитать в документации).
Однако этих встроенных механизмов недостаточно, чтобы точно контролировать, сколько времени код реально обрабатывал входящий запрос, а не просто ждал завершения промиса. Также с их помощью нельзя, например, запретить прослушивание определённых портов. Чтобы реализовать такой точечный контроль, приходится модифицировать сам код рантайма. И, скорее всего, на самом Deno Deploy работает проприетарная версия Deno с рядом подобных доработок.
На днях мы с другом решили покопаться в "кишках" Deno. Собрали его из исходников (обошлись без компиляции V8 — использовали уже готовый бинарник). Разобрались, как работает мост между функциями на Rust и пользовательским JavaScript-кодом, добавили свои методы, пересобрали — всё завелось, и это было довольно интересно. Я сам пока не пишу на Rust, и его обилие макросов поначалу немного пугает, но теперь стало понятнее, как происходит взаимодействие с V8 и какие там есть возможности.
Конечно, всё это даёт лишь поверхностное представление о том, как могли изменить Deno для нужд Deploy и Subhosting. Но, как оказалось, есть один открытый проект, который стоит рядом. Речь про Supabase — ты, возможно, уже слышал о нём. У них есть так называемые Edge Functions, и их рантайм выложен в открытый доступ. Вкратце: они взяли Deno 1.45, вырезали всё лишнее (например, REPL), пересобрали сервер и модифицировали Web Workers так, чтобы можно было строго ограничивать время выполнения кода и потребление памяти. Получилось красиво. Хотя код уже немного устарел (в версии 1.45 он, конечно, выглядел проще), идея и реализация достойны уважения.
Кстати, я буду очень буду рад, если кто-нибудь подключится к тестированию. Я тут пробую завести возможность редактирования и публикации постов в блог)
Вот тестовая версия: https://itng-dev.deno.dev
А обсуждать предлагаю тут: @itnigilizm_group
А кто-нибудь пользуется RSS сегодня? Стоит ли его поддерживать, насколько это вообще актуально? (Пофиг, добавил https://itng.blog/feed)
Вы уже видели охуенную новую анимацию эмодзи с огоньком? Проверяйте!
