en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels 👉 If you want to see the tag, subscribe

defer panic

defer panic

Open in Telegram

Канал про айти в целом и про Go в частности. YouTube → youtube.com/@deferpanic Все вопросы в личку канала Поддержать канал: ETH — tomakado.eth TON — tomakado.ton BTC — 19xwFstmVQsVYqZP64iMVg1StLNSah6Smo

Show more
The country is not specifiedTechnologies & Applications25 865
2 988
Subscribers
-124 hours
-147 days
-3830 days
Posts Archive

Repost from Go Update
⚠️ CVE-2026-111943 или почему вам нужно обновиться до Go 1.27.3/1.26.10 ⚠️ В отличие от прошлого раза, в этот всё гораздо проще: eMudhra (индийская компания, занимающаяся цифровыми подписями и имеющая корневой сертификат) выпустила 8 (!!!) промежуточных сертификатов, у которых соответствующие закрытые ключи < 256. Для понимания, современная криптография оперирует числами, у которых десятки или даже сотни знаков. То есть для подбора приватных ключей не нужен суперкомпьютер или даже просто современный компьютер — хватит калькулятора 🤦‍♂️. С их помощью можно подписать сертификат для любого сайта и большинство утилит приложений примут его как корректный. При этом сами сертификаты промежуточные, поэтому их нельзя «отозвать» просто удалив из локального хранилища сертификатов, по аналогии с корневыми. С учётом того, что один из сертификатов имеет приватный ключ 4 (не 4 знака, а просто 4) то и выпустить рабочий сертификат для google.com может любой кулхацкер. Конечно сами сертификаты уже отозваны, а Chrome/Firefox/Safari уже ругаются на сайты, подписанные ими и не пускают пользователя дальше. Однако утилиты типа curl и wget и многих других по умолчанию не имеют системы проверки списка отозванных сертификатов (CRL — Cert Revocation List), из-за сложности механизма и огромного размера самого списка отзыва (именно поэтому Firefox и Chrome используют свои инструменты). В эти утилиты также попадают и наши бинарники на Go (issue 77143 об этом). Быстрого и полного решения нет, поэтому в качестве фикса Go Team на уровне стандартной библиотеки (а именно пакета x509) заблокировали эти 8 сертификататов и оперативно выпустили новый релиз. Если ваши приложения ходят в сеть, как можно скорее обновите Go компилятор на локальных машинах и CI-сервере и начинайте деплой пересобранных образов и бинарей. П.С. Больше инфы вот тут.

Мои друзья из DevCrowd снова проводят опрос среди русскоязычных гоферов. Я уже прошел, и призываю вас тоже. Очень полезно бывает порефлексировать о своем опыте и ощущениях, а затем сравнить их с сообществом, чтобы не оставаться в своём пузыре 😉 https://t.me/devcrowd_official/57

🦄 Опубликовал платформу для гайдов и первую статью https://golang.guide/ Надеюсь, вам понравится, я очень старался ☀️ Там всего один единственный гайд — первая часть серии статей про Планировщик. Даже если вы читали оригинальную статью, или смотрели ролик, всё равно советую перечитать — тут полный ремастер и режисёрская версия с интерактивом 👍 Остальные статьи уже в работе. Буду выпускать их по мере сил. Советую читать с десктопа — там пока больше фич, чем на мобилке. Если заметите какие-то баги или проблемы — пишите, поправлю.

Новость из немного другого мира: Эрин Катто, автор легендарного* физического движка Box2D, какое-то время назад очнулся и объявил, что пилит новый движок. Собственно, на днях вышла первая версия Box3D — в каком-то смысле то же самое, но для 3D-игр и приложений. Как только вышел первый релиз, люди сразу побежали портировать его под разные таргеты. Классический порт — на JS. Но есть, например, и интеграция Box3D с Unity. Последний для трехмерной физики по умолчанию использует Nvidia PhysX, на который все жалуются, в том числе из-за производительности. С Fable 5 реализация интеграции заняла около 20 минут вместо недель, по словам автора. Есть еще версия от Апанасика. Рассказ Эрина о новом движке: youtu.be/jr_Fzl2XwKU С чего вдруг я решил про это написать? Моё начало карьеры было тесно связано с геймдевом, поэтому для меня это довольно знаковое событие. *На Box2D работают такие игры золотой эпохи инди, как Angry Birds, Limbo, Crayon Physics Deluxe, Happy Wheels, Shovel Knight и многие другие. Примечательно, что главные механики почти всех этих игр как раз строятся вокруг физики. Также Box2D отвечает за двухмерную физику в Unity и во многих других игровых движках.

Я решил провести эксперимент и написать что-то на абсолютно незнакомом языке для абсолютно незнакомой (с точки зрения разработки) платформы. Критерии такие: • Это что-то полезное как минимум лично для меня • Можно будет выложить публично • Сложнее чем менеджер тудушек, но не слишком • Не враппер для LLM • Не требует затрат на инфраструктуру В итоге посмотрел в сторону проблемы разделения рабочего и нерабочего контекстов. Собственно, для работы и для личных дел я использую либо разные профили в браузерах, либо разные браузеры. Особенно в сервисах, где у меня есть как рабочая, так и личная учётка. В определенной степени проблема уже решена за меня. Какое-то время я пользовался Multi-Account Containers в Фаерфоксе. Но всё-таки часть сервисов, особенно рабочих, работает в Фаерфоксе ну прям раздражающе плохо и сильно хуже, чем в Хромиуме. В Арке очень круто реализованы профили и переключение между ними, а также фича под названием Air Traffic Control — когда по правилам на основе доменов браузер сам открывает ссылку в нужном профиле. Это было почти идеальным решением. Но... не буду напоминать вам, в каком состоянии сейчас Арк и The Browser Company. К тому же концептуально кажется, что подобная штука должна существовать снаружи конкретного браузера: вдруг я хочу все личное в Сафари, рабочее в Фаерфоксе, а Гугл Мит, так уж и быть, в Хроме, потому что он нигде больше нормально не работает? Если выйдем на такой уровень, то сразу увидим, что вообще-то приложения для такого шизофренического и аутистичного гранулярного роутинга ссылок между браузерами уже существуют, причем как платные, так и полностью бесплатные и опенсорсные. Но, во-первых, почему это должно нас останавливать? В условии эксперимента ничего не сказано про уникальность и оригинальность 😉 Во-вторых, я хотел запилить что-то, что сделано вот прям под меня. Так родилось приложение TrafficWand для Мака. По сути я взял за основу идею Air Traffic Control из Арка, вынес в отдельное приложение и дал ей некоторое развитие. Например, TrafficWand умеет не просто раскидывать ссылки на основе правил, но еще и как бы обучаться: есть режим, в котором программа спрашивает, где открыть ссылку и запоминает это в виде правила. Кроме этого есть мета-профили/прокси-профили или алиасы — возможность один раз создать сущности типа Personal и Work, в них определить браузер и профиль браузера, а уже в правилах ссылаться на алиасы, а не конкретный браузер или профиль. Приложение, кстати, нативное и навайблено написано на Свифте. Никаких гарантий, что вам будет удобно, не будет багов, я не заброшу проект и т.п. нет — как я уже сказал, делалось всё для себя (да-да, именно поэтому я целый лендос запилил), но идеи по развитию так или иначе есть. Поэтому если вы вдруг попользовались и у вас есть фидбек, то буду рад его принять.

🥂Большой выпуск про PaaS — как Avito и Plata строят платформу для разработки / GoGetPodcast - Видео - Ссылки на аудио-площадки Когда-то давно я часто ходил на IT конференции, и один из немногих запомнившихся мне докладов был про PaaS Авито. Очень впечатлило, как у них там по нажатию одной кнопочки происходят сложные автоматизации процессов. К сожалению, поработать у них и пощупать это руками мне так и не довелось, поэтому я решил пообщаться с лидом команды DevSupport их платформы — Владом. А чтобы было ещё интересней, мы с моим бывших коллегой Ильдаром сравнили всё это с начинаниями в Plata, которая тоже активно строит свою платформу. Участники: - Владислав Сикач, тимлид команды DevSupport в Авито - Ильдар Карымов  , инженер команды Developer Experience в Plata 🟢Все ссылки, упомянутые в выпуске, и разборы сложных понятий есть на сайте подкаста #gogetpodcast

⚙️ Лучшие практики в Go: разбираем на Podlodka Go Crew Пишете на Go и хотите узнать, как закладывать надёжную основу для свои
⚙️ Лучшие практики в Go: разбираем на Podlodka Go Crew Пишете на Go и хотите узнать, как закладывать надёжную основу для своих проектов? С 1 по 5 июня Podlodka Go Crew вместе с 2ГИС проведут сезон «Лучшие практики в Go». Организаторы собрали сильную программу с акцентом на живой опыт и прикладные кейсы. Вот несколько сессий, на которые советуем обратить внимание: 🚀 «Практика Go оптимизаций: растем вместе с нагрузкой», Алексей Акулович — про то, как сервис растёт до миллионов RPS, оптимизацию CPU, grpc и protobuf, а также про собственный GC поверх гошного. 🏗 «Эволюция структуры Go-проекта: как 30 человек пушат в один репозиторий», Кирилл Возжеников — как развивается продуктовый монорепозиторий и строятся хорошие архитектурные практики. 🧩 «Как и зачем писать свой CDC на Go», Юра Саргсян — когда приходится выходить за стандартные решения: Postgres, Kafka, гарантии доставки и подводные камни логической репликации. В конце сезона участников ждёт «Битва кейсов: 50 оттенков межсервисного взаимодействия» — разбор архитектурных задач с метриками, схемами и поиском решений в реальном времени. 🎟 И это ещё не всё — смотрите полную программу на сайте и забирайте билет! Для подписчиков скидка 500 р по промокоду: deferpanic_7 #партнерскийпост

Вышел Zed 1.0 Не обращайте внимания на версию — Зедом можно было пользоваться уже очень давно. Зед был моим «вторым» редактором последние несколько лет, периодически меняясь с Вимом. Где-то с начала этого года или конца предыдущего это мой единственный редактор. В том смысле, что я в этом году ни разу не запустил ни GoLand, ни Visual Studio Code. Зед одновременно невероятно быстрый и отзывчивый (по ощущениям примерно как Саблайм) и фичастый, как Visual Studio Code. И это не форк последнего, а буквально написанный с нуля редактор. Авторами Атома, кстати. И так как он написан с нуля, это позволило разработчикам перепридумать UX в некоторых местах в лучшую сторону. Я могу долго рассказывать, почему если вы поставите Зед, и вам больше не нужен будет никакой другой редактор или IDE. Но лучше поставьте и попробуйте сами.

Есть блог Not a Number, в котором автор не просто пишет туториалы, а делает их интерактивными. Посты там в основном про фронт
Есть блог Not a Number, в котором автор не просто пишет туториалы, а делает их интерактивными. Посты там в основном про фронтенд, но есть, например, и про написание собственной key-value базы данных. Меня всегда цепляют авторы, которые подходят к каждому блог-посту как к отдельному спецпроекту. Это подкупает, я сильнее вовлекаюсь в статью, а интерактивные части только усиливают эффект.

Эмулятор x86-процессора на CSS. Без джаваскрипта вообще. Можно запускать свои программы. Ждем doom.css? https://lyra.horse/x8
Эмулятор x86-процессора на CSS. Без джаваскрипта вообще. Можно запускать свои программы. Ждем doom.css? https://lyra.horse/x86css/

🧬 Proposal: Generic Methods для Go Robert Griesemer (один из авторов языка) открыл proposal, который многие считали невозмож
🧬 Proposal: Generic Methods для Go Robert Griesemer (один из авторов языка) открыл proposal, который многие считали невозможным. Go FAQ буквально говорил: > We do not anticipate that Go will ever add generic methods Но теперь — возможно, добавят 👍 Суть в том, что раньше дженерик-методы блокировались по цепочке: если методы могут принимать параметры типов, значит и методы интерфейсов тоже должны. А это не знали как реализовать эффективно — в Go тип реализует интерфейс неявно, поэтому компилятор не может знать заранее, для каких конкретных типов нужно будет скомпилировать метод. Ключевой сдвиг в мышлении: метод — это не только способ реализовать интерфейс. Метод — это функция, привязанная к типу, удобная для организации кода и читаемая слева направо. Эти две вещи ортогональны. Поэтому компромисс такой: методы могут быть generic, но не могут реализовывать интерфейсы с generic методами — их просто не будет. Вот как это выглядит:
type Reader struct{ … }
func (*Reader) Read[E any]([]E) (int, error) { … }
Reader не реализует io.Reader — и это нормально. Зато метод полезен сам по себе. При этом изменение полностью обратно совместимо и не закрывает возможность добавить такое в будущем, если придумают как. ———— Дискуссия горячая — 156 комментариев. Кто-то радуется, кто-то боится усложнения языка, классика. За то и люблю наше сообщество ✨ Я сам редко работаю с дженериками, но при этом даже я не раз сталкивался с этим ограничением. Приходится делать standalone функции вместо методов — цепочки вызовов ломаются, читаемость страдает. За я или против? Честно, не знаю — вопрос действительно непростой, если вникать глубоко в проблематику и доводы обоих сторон. Поэтмоу я предпочитаю делегировать столь сложные вопросы бородатым мужчинам — я в них верю! ❤️ Посмотрим, примут ли. Но сам факт, что Griesemer это открыл — уже хороший сигнал. 🟢Кстати, тема дженериков довольно забористая, и понимаю что не все поймут, что тут вообще имеется в виду. Если хотите, я напишу пост с более простым объяснением и разбором этой темы. #proposal #generics

Пару недель назад собрал на коленке штуку, которая обходит rss-фиды сайтов с новостями индустрии развлечений, выбирает по разным признакам самые интересные статьи и постит мне в отдельный канал. Мне было в первую очередь интересно поиграться с новым инструментом, но в какой-то момент обнаружил, что я реально читаю канал, и это теперь мой основной источник новостей про игры и технологии про игры. Все что угодно может пойти не так или сломаться, но если интересно, заходите в @glashatai_feed

Я использую девконтейнеры в...
Anonymous voting

Я использую девконтейнеры в...
Anonymous voting

Для ясности: речь про https://containers.dev

Девконтейнеры
Anonymous voting