Вчера вышел релиз #go 1.23 - самый спорный релиз на моей памяти https://go.dev/doc/go1.23
В нём стали доступны функции-итераторы https://go.dev/doc/go1.23#language, добавление которых вызвало довольно много негативной реакции в сообществе https://www.gingerbill.org/article/2024/06/17/go-iterator-design/
Помимо пакета нового пакета
Так же в этом релизе добавлена функциональность сбора телеметрии тулчейна Go. Телеметрия отключена по умолчанию и собирает анонимную информацию о параметрах go и gopls (https://go.dev/doc/telemetry). Одно время обсуждения самой возможности были довольно бурными https://www.reddit.com/r/golang/comments/10z5ig1/googles_go_may_add_telemetry_reporting_thats_on/ . Телеметрия не затрагивает результат сборки.
Посмотреть на статистические выкладки телеметрии и скачать собранный датасет можно вот тут https://telemetry.go.dev/
Список багов, пойманных телеметрией https://github.com/golang/go/issues?q=label%3Agopls%2Ftelemetry-wins
Из менее противоречивых изменений мне приглянулись
⁃ Новый флаг
⁃ Новый флаг
⁃ Упрощена работа с
⁃ Новый пакет
⁃ Новый пакет
⁃ В go.mod корневых модулей (не зависимостей) можно использовать директиву
⁃ В
⁃ Новая функция
⁃ Максимальная глубина стека для
⁃ Новые функции
Интерактивные заметки к релизу https://antonz.org/go-1-23/
В нём стали доступны функции-итераторы https://go.dev/doc/go1.23#language, добавление которых вызвало довольно много негативной реакции в сообществе https://www.gingerbill.org/article/2024/06/17/go-iterator-design/
Помимо пакета нового пакета
iter
в пакеты slices
и maps
много новых функций типа Backward
, Chunk
, Values
, Keys
и Collect
Так же в этом релизе добавлена функциональность сбора телеметрии тулчейна Go. Телеметрия отключена по умолчанию и собирает анонимную информацию о параметрах go и gopls (https://go.dev/doc/telemetry). Одно время обсуждения самой возможности были довольно бурными https://www.reddit.com/r/golang/comments/10z5ig1/googles_go_may_add_telemetry_reporting_thats_on/ . Телеметрия не затрагивает результат сборки.
Посмотреть на статистические выкладки телеметрии и скачать собранный датасет можно вот тут https://telemetry.go.dev/
Список багов, пойманных телеметрией https://github.com/golang/go/issues?q=label%3Agopls%2Ftelemetry-wins
Из менее противоречивых изменений мне приглянулись
⁃ Новый флаг
go mod tidy -diff
- печатает изменения, которые произойдут при go mod tidy
и возвращает exit_code=1
если такие изменения есть. Сильно упрощает проверки в CI⁃ Новый флаг
go env -changed
- печатает изменения в go env
, сделанные с помощью -w
⁃ Упрощена работа с
time.Timer
и time.Ticker
- теперь вызовов .Reset
и .Stop
достаточно для корректного сброса и остановки - не надо вытаскивать stale значения из каналов⁃ Новый пакет
unique
, который позволяет интернировать comparable
значения⁃ Новый пакет
structs
с маркерным типом structs.HostLayout
для контроля memory layout структур⁃ В go.mod корневых модулей (не зависимостей) можно использовать директиву
godebug
(https://go.dev/doc/godebug), которая позволяет включать старое runtime поведение некоторых частей стандартной библиотеки. Например, новое поведение таймеров можно отключить вот такgodebug(
asynctimerchan=1
)
⁃ В
net/http
добавили много утилит для работы с cookie и поле Request.Pattern
, которое содержит паттерн роута из http.Mux. Ждём когда chi
будет выставлять его тоже⁃ Новая функция
os.CopyFS
, которая копирует содержимое fs.FS
в локальную директорию. Писать распаковщики zip никогда не было так просто!⁃ Максимальная глубина стека для
runwww.tg-me.com/pprof
увеличина до 128 фреймов (да, я упирался в глубину стека на трейсах 😔)⁃ Новые функции
atomic.And
и atomic.Or
(и комплиментарные методы), которые позволяют атомарно применять битовые маскиИнтерактивные заметки к релизу https://antonz.org/go-1-23/
go.dev
Go 1.23 Release Notes - The Go Programming Language
Самое худшее в бессонице - тебе одновременно и очень скучно, но у тебя буквально не хватает мозгов заняться чем-то интересным
☕️ Мерлин заваривает τσάι 🐌
Самое худшее в бессонице - тебе одновременно и очень скучно, но у тебя буквально не хватает мозгов заняться чем-то интересным
А самое обидное - насколько ты тупее становишься со временем, если постоянно недосыпать
Forwarded from tropical saint petersburg
"St. Petersburg mathematicians and their discoveries", окончательная версия, в цвете, на английском языке. Читайте, распространяйте, критикуйте, посылайте коллегам! Ч/б версия в высоком разрешении для домашней печати лежит на сайте.
Кстати для следующей версии pgx можно будет использовать
sql.ErrNoRows
вместо pgx.ErrNoRows
Вообще в долгих сюжетных онгоингах есть что-то хтоничное
Особенно меня веб-комиксы впечатляют
Я сейчас читаю Freefall - он идёт с 1998 и только недавно закончилась главная арка и началась следующая
Прочитал до текущего выпуска Unsounded - он идёт с 2010 и главная арка только входит в кульминацию
И на очереди Schlock Mercenary - это сюжетный комикс, который выходил каждый день с 2000 по 2020-ый
Силы конечно у некоторых авторов вообще нифига не слабые
Особенно меня веб-комиксы впечатляют
Я сейчас читаю Freefall - он идёт с 1998 и только недавно закончилась главная арка и началась следующая
Прочитал до текущего выпуска Unsounded - он идёт с 2010 и главная арка только входит в кульминацию
И на очереди Schlock Mercenary - это сюжетный комикс, который выходил каждый день с 2000 по 2020-ый
Силы конечно у некоторых авторов вообще нифига не слабые
Если эссе написано не с помощью GPT, то Альтман сам не верит в то, что пишет. Так что эссе в /dev/null
Если написано GPT, то всерьёз это воспринимать нельзя
https://www.tg-me.com/denissexy/8769
Если написано GPT, то всерьёз это воспринимать нельзя
https://www.tg-me.com/denissexy/8769
Telegram
Denis Sexy IT 🤖
Сэм Альтман написал эссе которое все обсуждают – там довольного много воды, вот конкретно по таймлайну что можно предположить из его поста:
1. Ближайшее будущее (следующие несколько лет):
- ИИ начнёт действовать как персональный ассистент, выполняя конкретные…
1. Ближайшее будущее (следующие несколько лет):
- ИИ начнёт действовать как персональный ассистент, выполняя конкретные…
#TIL о заголовках
⁃
⁃ Если в заголовках есть
List-Unsubscribe
и List-Unsubscribe-Post
для электронной почты. Именно они позволяют почтовым клиентам показать кнопочку “Unsubscribe” ⁃
List-Unsubscribe
перечисляет почтовые адреса или URL. Для отписки можно послать письмо на почтовый адрес отсюда или перейти на страницу по URL, чтобы отписаться там⁃ Если в заголовках есть
List-Unsubscribe-Post: List-Unsubscribe=One-Click
, то отписаться можно просто послав POST запрос на HTTPS URL из List-Unsubscribe
Интересно, насколько эффективна такая специализация в плане соотношения «ускорение приложений» к «багоплотность кода»
У меня сложилось впечатление, что именно вот такие оптимизации под специальные случаи частенько становятся источником проблем
https://www.tg-me.com/HowToGoWrong/204
У меня сложилось впечатление, что именно вот такие оптимизации под специальные случаи частенько становятся источником проблем
https://www.tg-me.com/HowToGoWrong/204
Telegram
How to Go wrong
Иногда в стандартной библиотеке можно найти любопытные оптимизации, казалось бы, тривиальных вещей. Например, написал я тут strings.Repeat(" ", n) в коде форматирования значения. Это ведь просто чтобы цикл не писать руками, да? Но нет: https://github.co…
Поисковик Kagi, платной версией которой я пользуюсь, добавил фильтрацию AI-generated изображений: можно убрать из выдачи или оставить только их.
Так же по умолчанию поисковик теперь такие картинки пессимизирует в выдаче. Есть заметное глазу количество ложно-положительных срабатываний, но в целом кажется работает
Фича забавная, интересно, сколько месяцев она продержится
https://help.kagi.com/kagi/features/exclude-ai-images.html
Так же по умолчанию поисковик теперь такие картинки пессимизирует в выдаче. Есть заметное глазу количество ложно-положительных срабатываний, но в целом кажется работает
Фича забавная, интересно, сколько месяцев она продержится
https://help.kagi.com/kagi/features/exclude-ai-images.html
Kagi
AI Image Filter for Search Results | Kagi's Docs
Kagi Search Help
Очень радует, что практика влияет
Решил проверить, насколько для меня сложно запилить миниатюрный лисп подобный язык
- с нуля
- используя threaded байткод
- с минимом кода
и оказалось, что для этого мне нужно чуть более часа, в который я утоптал 456 строчек (без учёта тестов) лексера, парсера, компилятора и виртуальной машины
При этом лексер потоковый, работает только с двумя unicode points в памяти из сорца
Решил проверить, насколько для меня сложно запилить миниатюрный лисп подобный язык
- с нуля
- используя threaded байткод
- с минимом кода
и оказалось, что для этого мне нужно чуть более часа, в который я утоптал 456 строчек (без учёта тестов) лексера, парсера, компилятора и виртуальной машины
При этом лексер потоковый, работает только с двумя unicode points в памяти из сорца
1
Если надо было бы придумать три желания добронамеренному джинну, то я бы первым попросил бы сделать меня очень умным и самоосознанным, но в тоже время сохранить мои ценности, этику и привязанности.
В таком случае я смогу выжать максимум из оставшихся двух желаний.
Скорее всего выразить улучшение мира просто в одной фразе типа "мир во всём мире" не получится. Для описания моих ценностей (и ценностей большинства людей) хотя бы с 90% умалчиваемых, но необходимых нюансов, пришлось бы разработать отдельный раздел аналитической философии.
Это если допустить, что такая штука вообще выразима как-то иначе, как кусок вектора состояния моего мозга
В таком случае я смогу выжать максимум из оставшихся двух желаний.
Скорее всего выразить улучшение мира просто в одной фразе типа "мир во всём мире" не получится. Для описания моих ценностей (и ценностей большинства людей) хотя бы с 90% умалчиваемых, но необходимых нюансов, пришлось бы разработать отдельный раздел аналитической философии.
Это если допустить, что такая штука вообще выразима как-то иначе, как кусок вектора состояния моего мозга
Ура, релизнулся терминал ghostty https://ghostty.org/
Он был в закрытой бете уже долгое время
Написан на zig, список фич на скриншоте
Он был в закрытой бете уже долгое время
Написан на zig, список фич на скриншоте
1
☕️ Мерлин заваривает τσάι 🐌
Оказывается мою любимую командную оболочку fish переписывают с C++ на #rust https://github.com/fish-shell/fish-shell/pull/9512 Любопытный момент: код переписывают не сразу и целиком, а кусками - отдельные команды и операторы Кое-что уже вмержено в мастер…
Fish полностью портировали на rust
переписывали почти 14 месяцев, релиз 4.0 пока в бете
Из новых интересных мне фичей
- fish наконец-то можно распространять как статический бинарник (rust сильно упростил встраивание ассетов)
- убрали зависимость от ncurses
- улучшили взаимодействие с XTerm и Kitty
На самом деле там куча всего, читайте заметки к релизу
По ссылке более-менее подробный рассказ о переписывании
https://fishshell.com/blog/rustport/
https://www.tg-me.com/teamerlin/7407
переписывали почти 14 месяцев, релиз 4.0 пока в бете
Из новых интересных мне фичей
- fish наконец-то можно распространять как статический бинарник (rust сильно упростил встраивание ассетов)
- убрали зависимость от ncurses
- улучшили взаимодействие с XTerm и Kitty
На самом деле там куча всего, читайте заметки к релизу
По ссылке более-менее подробный рассказ о переписывании
https://fishshell.com/blog/rustport/
https://www.tg-me.com/teamerlin/7407
52
☕️ Мерлин заваривает τσάι 🐌
После выхода brew 4.0.0 вместо пачки ruby скриптов в качестве базы данных пакетов используется один json файл массой 20 Мб Субъективно - стало быстрее https://brew.sh/2023/02/16/homebrew-4.0.0/
Кстати переехал на macports и ни о чём не жалею
Может когда-нибудь попробую nix
Может когда-нибудь попробую nix