Блог*
В мобильной версии сайта Яндекс.Почты не работает кнопка "выход" 🤡
Починили. Не прошло и го... А не, прошло
💩3🤡1
Как будто для того, чтобы написать админу канала, нужна отдельная фича в приложении 😒
💯2🤔1
Чиновник по ошибке зачитал отказ нейросети в написании речи
Это Панорама
Сам государственный служащий сначала отказался давать комментарии, затем сделал заявление, в котором отрицал, что когда-либо пользовался искусственным или каким-либо другим интеллектом, а затем всё-таки признал допущенную ошибку и разместил на своей странице в социальной сети извинения из 10 пунктов, заканчивающиеся фразой: «Если вы хотите сгенерировать ещё какие-либо извинения, дайте знать!»
😁8❤2😭1
#prog #python #article
Новый лучший способ форматирования строк в Python
t-строки — новый вид строк в Python. Походит на format_args! в Rust в том смысле, что позволяет захватывать переменные по имени и создаёт просто шаблон со значениями переменных вместо уже форматированной строки. Как следствие, это позволяет одновременно ускорить форматирование и отделить собственно образование шаблона от его интерпретации. В статье приводится пример форматировщика SQL-запросов: он может при форматировании автоматически экранировать значения. Аналогично для шаблонизатора HTML.
Новый лучший способ форматирования строк в Python
t-строки — новый вид строк в Python. Походит на format_args! в Rust в том смысле, что позволяет захватывать переменные по имени и создаёт просто шаблон со значениями переменных вместо уже форматированной строки. Как следствие, это позволяет одновременно ускорить форматирование и отделить собственно образование шаблона от его интерпретации. В статье приводится пример форматировщика SQL-запросов: он может при форматировании автоматически экранировать значения. Аналогично для шаблонизатора HTML.
🤮13👍7🤔2❤1
#prog #go #article
[ On | No ] syntactic support for error handling (перевод)
this_is_fine.jpg
В статье приведены аргументы в пользу сохранения статуса-кво, но они почти все — полный мусор. Особенно доставляет следующая пара:
1. Один аргумент говорит о том, что IDE и LLM могут помочь с написанием бойлерплейта, а в IDE можно этот бойлерплейт потом скрывать.
2. Второй аргумент говорит о пользе печати отладкой и возможности поставить точки останова и о том, как специфичный синтаксис этому мешает — дескать, надо на if переписывать, а это затрудняет отладку (???) и может внести тонкие ошибки.
Автор тактично умалчивает о том, что инструменты, описанные в первом аргументе, могут помочь с проблемами во втором. Особенно дико это смотрится с учётом того, что в оригинальном тексте эти два аргумента идут подряд.
[ On | No ] syntactic support for error handling (перевод)
this_is_fine.jpg
For the foreseeable future, the Go team will stop pursuing syntactic language changes for error handling. We will also close all open and incoming proposals that concern themselves primarily with the syntax of error handling, without further investigation.
В статье приведены аргументы в пользу сохранения статуса-кво, но они почти все — полный мусор. Особенно доставляет следующая пара:
1. Один аргумент говорит о том, что IDE и LLM могут помочь с написанием бойлерплейта, а в IDE можно этот бойлерплейт потом скрывать.
2. Второй аргумент говорит о пользе печати отладкой и возможности поставить точки останова и о том, как специфичный синтаксис этому мешает — дескать, надо на if переписывать, а это затрудняет отладку (???) и может внести тонкие ошибки.
Автор тактично умалчивает о том, что инструменты, описанные в первом аргументе, могут помочь с проблемами во втором. Особенно дико это смотрится с учётом того, что в оригинальном тексте эти два аргумента идут подряд.
go.dev
[ On | No ] syntactic support for error handling - The Go Programming Language
Go team plans around error handling support
😁11🤡9👎2🤔2😭2
#prog #article
Зло живёт в функциях сравнения
В статье примеры на C++ и C#, но указанные ошибки, кмк, легко допустить в любом языке, который не позволяет синтезировать функции сравнения и равенства.
Зло живёт в функциях сравнения
Оказывается, программисты тяготеют к тому, чтобы допустить ошибку в функциях сравнения двух объектов. Такое утверждение выглядит неправдоподобным, однако, я покажу огромное количество примеров ошибок, которые шокируют читателя
В статье примеры на C++ и C#, но указанные ошибки, кмк, легко допустить в любом языке, который не позволяет синтезировать функции сравнения и равенства.
💯7🤔2❤1
Блог*
А вот теперь есть
Я думал, что мы — бомжи-убийцы. Теперь я вижу, что ошибался. Мы — просто бомжи
😁6😐4
#prog #rust #rustlib #article
Introducing facet: Reflection for Rust
Как сказано в facet.rs:
Сердце библиотеки — трейт Facet и derive-макрос для него. В отличие от других крейтов, которые ползают по определениям типов, facet генерирует не код обхода значений, а константы, которые описывают формы значений и потому могут быть утилизированы разными библиотеками разными способами. Из примеров: (де)сериализация, отладочная печать, ассерты с диффами (которые не полагаются на пост-обработку Debug-выхлопа). В силу того, что код не генерируется, эти реализации могут использовать нерекурсивные алгоритмы и таким образом избежать переполнение стека и легко регулировать глубину вложенности.
В статье рассказывается, зачем это создано и какие ещё преимущества даёт.
Introducing facet: Reflection for Rust
Как сказано в facet.rs:
the last proc macro / the last derive you’ll ever need
Сердце библиотеки — трейт Facet и derive-макрос для него. В отличие от других крейтов, которые ползают по определениям типов, facet генерирует не код обхода значений, а константы, которые описывают формы значений и потому могут быть утилизированы разными библиотеками разными способами. Из примеров: (де)сериализация, отладочная печать, ассерты с диффами (которые не полагаются на пост-обработку Debug-выхлопа). В силу того, что код не генерируется, эти реализации могут использовать нерекурсивные алгоритмы и таким образом избежать переполнение стека и легко регулировать глубину вложенности.
В статье рассказывается, зачем это создано и какие ещё преимущества даёт.
fasterthanli.me
Introducing facet: Reflection for Rust
I have long been at war against Rust compile times.
Part of the solution for me was to buy my way into Apple Silicon dreamland, where builds are, like… faster. I remember every time I SSH into an x...
Part of the solution for me was to buy my way into Apple Silicon dreamland, where builds are, like… faster. I remember every time I SSH into an x...
👍11❤4🔥2🤡1