Forwarded from How to Go wrong (Alexey Palazhchenko)
Выступал недавно на митапе Armenia PostgreSQL (который и соорганизовывал – никуда не деться от старых привычек) про использование FerretDB (написанного, напомню, на Go с горутинами/потоками) внутри PostgreSQL (написанного на C с форками). Если фразы в скобках не вызвали у вас ужаса, то вы просто не форкали процессы с тредами 🙂

Видео – тут, слайды – тут, реальный код – вот тут.
☕️ Мерлин заваривает τσάι 🐌
Релизнулся golangci-lint 1.18.0 с пофикшеной поддержкой go1.13 и новыми линтерами! https://github.com/golangci/golangci-lint/releases/tag/v1.18.0
Релизнулась версия v2 лучшего #Go линтера #golangci-lint

Заметки к релизу можно прочесть тут https://ldez.github.io/blog/2025/03/23/golangci-lint-v2/

Изменения прежде всего в UX конфига – некоторые места упростили, сделали исключения из проверок более человекочитаемыми, подчистили селекторы линтеров.

Меня больше радует не изменения конфига, а новая команда golangci-lint fmt, которая поддерживает все основные форматтеры – gci, gofmt, gofumpt, goimports, golines – и позволяет накручивать на них кастомную конфигурацию.

Старые конфиги не нужно будет переписывать руками – golangci-lint migrate должна преобразовать конфиг в большинстве случаев автомагически
🤝3
Да не умер я в конце спринта
14🤝4
Если кому-то нужно быстро потыкать unix-lile консольку, то есть busybox, собранный для браузера
https://busybox.net/live_bbox/live_bbox.html
🤝3
Вышел #go 1.25

Новинок в самом языке нет — релиз про рантайм и библиотеки.

Больше всего хайпую насчёт:

- нового greentea GC (эксперимент, включается `GOEXPERIMENT=greenteagc`): на реальных мусорящих сервисах обещает заметно срезать GC-оверхед;

- container-aware GOMAXPROCS: теперь по умолчанию учитывает лимиты cgroup и может динамически обновляться;

- testing/synctest — вышел из эксперимента, можно писать детерминированные тесты конкуррентщины.


Ещё из прикольного — runwww.tg-me.com/trace.FlightRecorder: по сути кольцевой буфер трейса, который держит последние N секунд и по .WriteTo даёт снапшот. Можно держать включённым постоянно (хотя бы на части инстансов) и дампать трейсы при серьёзных ошибках или SLA-триггерах.

Жаль, я всё ещё не вижу готовой открытой системы для централизованного сбора/хранения/просмотра .trace объектов. Вьюверы есть (`go tool trace`, отличный `gotraceui`), а вот «трейс-сторандж» под FlightRecorder — прям идея для совместного OSS-пета.

По мелочи:

- net/http.CrossOriginProtection — мидлварь для CSRF-защиты с конфигурируемыми правилами и deny-handler. Похоже, похоронит зоопарк самописных решений;

- Больше методов у os.Root (`Chmod/Chown/Chtimes/Link/MkdirAll/ReadFile/Readlink/RemoveAll/Rename/Symlink/WriteFile` и т. д.) — почти полноценная файловая песочница;

- testing.T|B|F.Attr — атрибуты в лог теста; `testing.T|B|F.Output()` — даёт io.Writer в тот же поток (больше не нужны адаптеры логгеров под `testing`);

- Новый экспериментальный encoding/json/v2 (`GOEXPERIMENT=jsonv2`): заметно быстрее на декодинге и с кучей приятных опций.


Интерактивный тур по релизу:
https://antonz.org/go-1-25/

Заметки к релизу:
https://go.dev/doc/go1.25
🤝21
Чтение комментариев на opennet как форма селфхарма
2🤝213
Humpherys, Jarvis and Evans, Foundations of Applied Mathematics, vol. 1
🥰71❤‍🔥1🤝1
Forwarded from bruhcollective. (iTaysonLab)
the following content will be interesting for Russian-speaking only:

тут начали закупать в ТГ рекламу некого мессенджера "Telega", общающего золотые горы стабильную работу ТГ на территории РФ

но в чем подвох? а в том, что эта "Telega" (которая https://telega.me) - является проектом VK.
но как об этом узнать? а все просто - берем APK и открываем декомпилятор

идем в ru.dahl.messenger.Extra и видим:
-> PROXY_ADDRESS = "dal.mvk.com", прокси-адрес, запишем
-> MYTRACKER_SDK_KEY = "*", SDK-ключ от трекера MyTracker, который принадлежит Mai VK Group
-> CALLS_BASE_URL = "https://calls.okcdn.ru/" - те самые рабочие звонки, которые на самом деле являются звонками через инфраструктуру Одноклассников (на которых работает еще MAX и VK Звонки, ага)

а теперь берем dal.mvk.com:
-> неймсервера mvk.com идут на малоизвестный домен VKONTAKTE.RU
-> в декомпиляции официального клиента VK для Android можно найти референсы на "https://jira.mvk.com"

(и вся реклама этого клиента в ТГ ведет на трекинг-домен trk.mail.ru)

но кому не пофиг? вдруг ВК просто по приколу решили сделать форк ТГ, прикрывшись прокладкой из Татарстана?

а вот тут уже обнаруживается прикольная вещь: в клиенте есть "черный список" нежелательных ТГ-каналов, ботов и пользователей! при нажатии на которых выводится ТГ-шная "заглушка" с своим текстом:

<string name="ContentIsUnavailable">Материалы недоступны</string>
<string name="ContentUnavailableInfo">Этот %1$s недоступен в связи \n с нарушениями правил платформы</string>


какие правила платформы? Telegram? но таких строчек нет в официальном клиенте Telegram :)

и да - черный список включается по флагу из сервера, то есть они могут включить это в любой момент

///

а кроме этого, в клиенте есть замена иконок на ВКшные. все бы ничего, но весь код замены был взят из такого малоизвестного клиента как Catogram (https://github.com/Catogram/Catogram/blob/a34ddfb42f50b86eb7cd83fb68ea24fa041084a9/TMessagesProj/src/main/java/ua/itaysonlab/catogram/vkui/ReplaceKtx.kt)
BaseIconReplace -> ru.dahl.messenger.icons.BaseIconReplacement
No/VkIconReplace -> ru.dahl.messenger.icons.AltIconReplacement/IconReplacementNone
ReplaceKtx.newSparseInt -> ru.dahl.messenger.icons.BaseIconReplacementKt

причем взяли все подчистую - те же названия переменных, методов, параметров и даже код тот же (даже тот же sparseInt сделали root-level функцией Kotlin)

а забавный факт в том, что основной разработкой Catogram занимался... я

как-то так....
😱125🥰1
2025/10/21 12:37:06
Back to Top
HTML Embed Code: