Читать в телеге. Когда-то там были посты не только от меня.
Как выстрелить себе в ногу с Rust (и Python)
Не все то безопасно, что без unsafe :)
https://github.com/Speykious/cve-rs
UPD: то же самое для питона.
Мертвый поиск для мертвого интернета
Поисковая выдача компании по продаже рекламы (Google) ощутимо стала хуже — мочи нет. Яндекс не лучше.
Факторов дофига — отток контента в соц-сети и телегу, SEO-оптимизация, копирайтинг (“издревле люди варили макароны…”) data-driven говнизация, алгоритмизация, SPA, “умные” исправления поисковика, смерть RSS, сайты-помойки (копии StackOverflow в том числе), сгенерированные нейронками тексты и отзывы, paywall’ы и т.д.
Все как в мемчике про теорию мертвого интернета — в 2007 это хиханьки-хаханьки, а вот сегодня…
Иногда кажется, что интернет и поисковики тебя газлайтят — какие-то очень элементарные вещи иногда невозможно найти, при этом свидетельства об их существовании в наличии.
Народ изобретает разные костыли для борьбы со всем этим (и некоторыми я иногда пользовался): добавлять reddit
к запросу, чтобы был ± жизненный опыт людей, а не реклама и прочий мусор, добавлять before:2022
, чтобы снизить количество сгенерированного мусора в выдаче, uBlock-фильтры, чтобы отсеять сайты-помойки и т.п.. Иногда это даже работает!
Попробовал сменить поисковик на DuckDuckGo — не выдержал через пару дней, там все еще хуже. ChatGPT/Gemini по некоторым темам дают хоть какие-то результаты и не надо их искать в стоге говна, но это никак не отменяет галлюцинации и то что они иногда тупые как пробка.
Недавно открыл для себя Perplexity.ai — тоже GPT, но его киллер-фича — показ источников, на основе которых сгенерировалась информация. С ним вроде жить можно.
Мой уровень в ИБ :)
О важности ориентиров
Годная статья про то, что хотя иметь много возможностей у языка — это круто, но должен быть “официальный стиль”, основа, на которую ориентируются по умолчанию.
Бинарная совместимость API Java
Гайд по бинарной совместимости API для Java. Некоторые идеи по эволюции API (особенно из приемчиков, как поступать в трудных ситуациях) применимы и для других API (например, REST).
Сборка мусора в git, GitHub и GitLab
Как удалить коммит, который не принадлежит ни одной ветке, из git? Выполнить на сервере git gc
.
Как удалить такой же коммит с GitHub? Похоже, что никак [1, 2], ну или через поддержку или удаление всего репозитория. В GitLab такая функция есть.
Разумеется, сборка мусора — очень непростая задача.
Ответственность разработчиков за бесплатный код
В недавней истории с xz
примечательны не только технические детали, но и социальный аспект. Вкратце, от основного мейнтейнера довольно токсично требовали улучшений и ответственности перед сообществом. Такая история не очень нова: например, несколько лет назад создатель actix, одного из самых быстрых тогда веб-серверов на Rust, был на грани удаления репозитория, но в итоге все закончилось нормально (хотя там и к самому разработчику были вопросы).
“Знаете, я и сам своего рода opensource-разработчик”. Одна из зон моей ответственности — первичная фильтрация поступающих запросов от пользователей (за год с небольшим прокомментировал больше чем на 1000 тикетов 🤯). И сначала я довольно дотошно отстаивал позицию “пользователь всегда прав, если он не даун”, да и тяжело было с некоторыми не соглашаться, когда они критиковали продукт. Но через год мое отношение к пользователям немного сместилось.
Увы, есть люди, отношение которых напоминает поведение стереотипных теток с барахолок, которые будут требовать от тебя доставку на дом вещи, которую отдаешь бесплатно, а потом еще навалят говна, что она неидеального качества. У нас есть “любимчики”, которые могут вылить поток сознания перемешанный с несвязной критикой продукта или добавить в заголовок текст ошибки и приложить проект на 10 000 строк, на котором она воспроизводится. До ядерных угроз пока не дошло, но некоторые ходят прям по грани Code Of Conduct. Разумеется, это не означает, что все такие, нормальных и адекватных — большинство. Но хорошо оформлять тикеты, заботясь о продукте, сообществе и разрабах, а не только своей проблеме, мало кто умеет.
До меня наконец дошло просветление, что в данном случае с большой силой не приходит “большая ответственность”. Продукт с открытым исходным кодом, в лицензии четко написано, что гарантий никаких не даем, предоставляется бесплатно. Если что-то не нравится — либо помоги (хорошим тикетом или PR), либо форкни, либо найди что-то другое. Говорить “нет” и закрывать мусорные тикеты — это нормально. Мысли вроде очевидные, но за год мне стала гораздо ближе и понятнее позиция “старожилов”, которым проще закрыть мутный тикет и подождать нормальный, если проблема действительно существует, чем пытаться найти в нем что-то полезное.
Угадайка RGB
Хорошая мини-игрулька, в которой можно потренироваться не только в цветовосприятии, но и с бинарным поиском.
А отдельный лайк — за то, что это простая веб-страничка на 300 строк, без зависимостей, с CSS и ванильным JS прямо внутри HTML.
Сравнение протоколов для событий от бека к фронту
Неплохая статья, в которой сравниваются лонг-поллинг, веб-сокеты, server-side events и новый стандарт, WebTransport. Сравнение немного поверхностное, но хорошо рассказывает об основных плюсах и минусах этих технологий.
Подарок от Git для Windows
Делать что-то на винде в консоли — это пытка, особенно после долгих лет на Linux. Стольких базовых вещей нет, просто жуть. Самое отстойное, что нет даже простенького текстового редактора, а это было бы удобно в случае, если что-то заставили надо сделать по ssh
. Однако если на машине стоит git
, то в нем есть подарок — nano
и vim
. Т.е. можно редактировать файлы через
> "C:\Program Files\Git\usr\bin\nano.exe" filename.txt
В той же папке еще навалом линуксового добра: bash
, cat
, cp
, grep
, openssl
, tar
и т.п.