Telegram Web Link
Мы знаем, что вы любите слушать Подлодку. Но теперь мы решили узнать, а вдруг вам понравится еще ее и смотреть! В ближайшее время мы выпустим несколько экспериментальных выпусков на YouTube с качественным монтажом чтобы понять, а насколько вам зайдет такой формат (а нам самим уже очень понравился!). Накидывайте нам побольше фидбэка в комментарии к видео, ставьте лайки и подписывайтесь – а через полтора месяца мы подведем итоги эксперимента.

Первым экспериментальным выпуском стал сегодняшний выпуск. Ведь нет ничего лучше, чем не просто слушать холивар Егора и Алексея про простоту Go, а и смотреть на это своими глазами!

👀 Смотреть своими глазами тут: https://youtu.be/tISaO428aow
Нет защиты от троянов в исходниках, кроме нас самих: https://research.swtch.com/trojan
cmd/benchstat: new version of benchstat

This is a complete rewrite of benchstat. Basic usage remains the same,
as does the core idea of showing statistical benchmark summaries and
A/B comparisons in a table, but there are several major improvements.

Самое главное – теперь им можно будет пользоваться корректно без PhD.
Что вам кажется более очевидным?

assert.Equal(t, math.NaN(), math.NaN()) А потом проверьте свою любимую библиотеку.
Anonymous Poll
66%
Тест упадёт
34%
Тест не упадёт
Приехал новый MacBook Pro с M1 Pro / 32 гигами памяти. Время сборки Talos'а:

env GOOS=linux GOARCH=amd64 go clean -i -r -cache all
time env GOOS=linux GOARCH=amd64 go install all

Mac mini (2018) Intel Core i7 6 core 3,2 GHz / 32 GB, кулеры слышно:
50.98s 48.00s 47.71s

13" MacBook Pro (2020, 4-ports) 4 core Intel Core i5 2 GHz / 16 GB (самый последний с Intel), кулеры ревут как самолёт:
64.85s 63.88s 63.14s

14" MacBook Pro 10 core M1 Pro / 32 GB, кросс-компиляция с ARM на AMD, кулеры вообще не слышно:
23.89s 24.00s 24.11s

Сервер разработки в Equinix Metal c3.small.x86 (8 core Intel(R) Xeon(R) E-2278G CPU @ 3.40GHz, 32 GB), без кросс-компиляции:
27.86s 27.88s 28.64s

Этот лаптоп быстрее сервера 🤯 Дженерики в Go теперь не страшны!
Другие дети сосут молоко, наши дети кодят на Go!

https://www.instagram.com/p/CWs9hpPspml/
Сегодня был мой последний день в Sidero Labs (до недавнего времени — Talos Systems, я писал про них выше). Работа была очень интересной, с огромным диапазоном проблем на любой вкус — от «поправить документацию, чтобы пользователям было понятнее» до «после обновления чёрный экран, никаких логов нет, ничего не работает, надо разобраться». Писать ОС на Go очень интересно, отлично расширяет горизонт и углубляет понимание. Маленькая мотивированная команда, делающая фантастические вещи. Никакой бюрократии. Сообщество энтузиастов и платящие клиенты. Отличная зарплата, в конце концов.

Другими словами, подавайтесь на вакансию.

Почему же ушёл из такого прекрасного места? Напишу завтра. Комментарии пока отключу, гадайте поодиночке. (Хотя @oleg_log уже почти наверняка догадался)
Итак, куда же я ушёл? Что может быть лучше такого прекрасного стартапа?

Только свой (потенциально ещё более прекрасный) стартап.

Я тут писал выше про MangoDB. Так вот – это мы делаем. Реакция на анонс месяц назад была настолько большой и позитивной, что мы решили заняться этим более серьёзно и пошли делать проект фул-тайм, попутно пытаясь понять, как на этом заработать. Сегодня мы анонсировали новое имя и наши имена.

Когда вы прочитаете это сообщение, зайдите, пожалуйста, на https://news.ycombinator.com/newest, найдите там "MangoDB has a new name" (через More внизу, не поиском), и плюсаните.

P. S. И если вы ждали подвоха с Sidero Labs / Talos Systems – так его нет. 😃 Подавайтесь на вакансию.
Через 50 минут буду в Go Time рассказывать про GitHub Copilot.
Что про него рассказывать-то? Подскажите.
Не писал ничего про log4j, так как это не по теме канала, но мимо этого пройти не могу.

К И Б Е Р В А К Ц И Н А Ц И Я

https://github.com/Cybereason/Logout4Shell
Путём ручного удаления тысяч строк кода нашёл эпичный баг в Go. И задумался — а есть ли инструменты для автоматического уменьшения примеров, воспроизводящих проблему? Если нет, то как сложно такой сделать? Чтобы не просто упрощать код, а прямо удалять его, пока проблема воспроизводится.
Заменил

var dbFound bool
for _, d := range dbs {
if d == db {
dbFound = true
break
}
}

на

dbFound := slices.Contains(dbs, db)

и заплакал
2025/07/04 09:01:00
Back to Top
HTML Embed Code: