#prog #go #article
Как в Go при помощи линтера решается проблема, которая в других языках решается проверкой типов.
blog.tomarrell.com/post/introducing_wrapcheck_linter_for_go
Как в Go при помощи линтера решается проблема, которая в других языках решается проверкой типов.
blog.tomarrell.com/post/introducing_wrapcheck_linter_for_go
Tomarrell
Introducing Wrapcheck: An error wrapping linter for Go
Tom Arrell's blog. Tom is a Software Engineer who writes about programming, embedded and electrical projects, and life.
Привет, я подсяду? Спасибо.
Почему у меня на рюкзаке шестерёнка? Ну, просто мне понравилась шестерёнка.
Поддерживаю ли я Rust? Да.
Да, я являюсь частью сообщества. А почему ты спрашиваешь?
В смысле навязываю тебе что-то? Так ты же сам спросил. Ладно.
Хочу ли я переписать всё на Rust? Боже, нет, конечно. Почему я должен это хотеть?
В смысле санитайзеры делают Rust ненужным? Нет, постой, это не так работает немножко. Тебе объяснить?
Не надо пропагандировать? Я не пропагандирую, ты просто сам спросил у меня… Ясно, я сумасшедший. Как и все. Ладно, извини, что потревожил. Я отсяду.
Почему у меня на рюкзаке шестерёнка? Ну, просто мне понравилась шестерёнка.
Поддерживаю ли я Rust? Да.
Да, я являюсь частью сообщества. А почему ты спрашиваешь?
В смысле навязываю тебе что-то? Так ты же сам спросил. Ладно.
Хочу ли я переписать всё на Rust? Боже, нет, конечно. Почему я должен это хотеть?
В смысле санитайзеры делают Rust ненужным? Нет, постой, это не так работает немножко. Тебе объяснить?
Не надо пропагандировать? Я не пропагандирую, ты просто сам спросил у меня… Ясно, я сумасшедший. Как и все. Ладно, извини, что потревожил. Я отсяду.
Блог*
#prog #rust #article Офигенная статья о заблуждениях касательно лайфтаймов. Очень хорошее подспорье новичкам. Как пишет автор в своём первом посте: While learning Rust I was struggling with certain concepts so I tried to organize my thoughts by writing them…
#prog #rust #article #моё
Как я и обещал, я... Так, погодите, я не писал об этом в блоге? Впрочем, ладно, напишу сейчас: я планировал написать перевод этой статьи и выложить его на Хабре. Собственно, сегодня я это и сделал.
Как я и обещал, я... Так, погодите, я не писал об этом в блоге? Впрочем, ладно, напишу сейчас: я планировал написать перевод этой статьи и выложить его на Хабре. Собственно, сегодня я это и сделал.
Хабр
Распространённые заблуждения о временах жизни в Rust
(прим. переводчика: времена жизни (lifetimes) — это одна из самых запутанных вещей в Rust, которая часто вызывает затруднение у новичков, даже несмотря на официа...
Блог*
#prog #cpp #article Доказательство того, что грамматика C++ неразрешима. В этот раз — полное, не подразумевающее наличие уже готовой машины Тьюринга на шаблонах. medium.com/@mujjingun_23509/full-proof-that-c-grammar-is-undecidable-34e22dd8b664
#prog
Я подозревал, что есть относительно общий метод для того, чтобы доказать, что имеющийся алгоритм решения задачи является оптимальным. Оказывается, такой метод действительно есть (до которого я бы сам не додумался): charging argument (нет, я не знаю, как это перевести)
Я подозревал, что есть относительно общий метод для того, чтобы доказать, что имеющийся алгоритм решения задачи является оптимальным. Оказывается, такой метод действительно есть (до которого я бы сам не додумался): charging argument (нет, я не знаю, как это перевести)
Wikipedia
Charging argument
In computer science, a charging argument is used to compare the output of an optimization algorithm to an optimal solution. It is typically used to show that an algorithm produces optimal results by proving the existence of a particular injective function.…
Forwarded from rusta::mann
В 2019 из компилятора Rust выпилили синтаксические плагины, и с тех пор в области интроспекции типчиков в мета-коде царит нищета: процедурные макросы, которые сейчас есть, мапят потоки токенов и имеют доступ только к маленькой части AST.
С тех пор никаких подвижек в стабилизации доступа к полноценному AST и compiler queries не было, что в целом понятно — утилиты, которые используют внутренние API rustc, периодически ломаются.
Но тем не менее, в ночниках доступен rustc_interface, с помощью которого можно наворачивать кастомные утилиты, которые используют компилятор для анализа кода (как, например, clippy или rustfmt).
И если на время проигнорировать нестабильность и ад поддержки совместимости таких штук с ночником, то
Когда-нибудь я может быть даже напишу прототип :))
#мысливслух #rustlang
С тех пор никаких подвижек в стабилизации доступа к полноценному AST и compiler queries не было, что в целом понятно — утилиты, которые используют внутренние API rustc, периодически ломаются.
Но тем не менее, в ночниках доступен rustc_interface, с помощью которого можно наворачивать кастомные утилиты, которые используют компилятор для анализа кода (как, например, clippy или rustfmt).
И если на время проигнорировать нестабильность и ад поддержки совместимости таких штук с ночником, то
rustc_interface
в частности, и доступ к приватным API компилятора в целом, дает возможность писать "гибридные" макросы в build.rs
.Когда-нибудь я может быть даже напишу прототип :))
#мысливслух #rustlang
Forwarded from dd if=/dev/stuff of=/dev/tg
Прекрасная статья (с упражнениями!) от Вероники Ромашкиной и Дмитрия Кованикова:
https://kowainik.github.io/posts/haskell-mini-patterns
https://kowainik.github.io/posts/haskell-mini-patterns
Kowainik
Kowainik - Haskell mini-patterns handbook
Collection of small Haskell patterns with detailed description, examples and exercises
#game #gamedev
Factorio вышла из раннего доступа и наконец дошла до версии 1.0, спустя восемь с половиной лет от начала разработки.
factorio.com/blog/post/fff-360
Factorio вышла из раннего доступа и наконец дошла до версии 1.0, спустя восемь с половиной лет от начала разработки.
factorio.com/blog/post/fff-360
Factorio
Friday Facts #360 - 1.0 is here! | Factorio
Hello, the atmosphere in the last week was kind of special. We experienced the feeling of the final release being on the horizon many times. And we were shown that it isn't the case time and time again. So it feels very special when it is actually becoming…
#prog #parsing #regex #article (строго говоря, не про разбор, а про распознавание, но всё же)
Можно ли подсчитать производную от регулярного выражения? Можно и нужно!
Статья рассказывает о изученной и эффективной, но почему-то мало известной на практике технике построения распознающих конечных автоматов непосредственно из регулярных выражений. К сожалению, в статье рассматривается лишь задача о соответствии регулярного тексту, в ней ничего не говорится о, скажем, захвате соответствующих частей текста.
"In this paper, we have presented RE derivatives, which are an old, but largely forgotten, technique for constructing DFAs directly from REs. Our experience has been that RE derivatives are a superior technique for generating scanners from REs and they should be in the toolkit of any programmer. Specifically, RE derivatives have the following advantages:
• They provide a direct RE to DFA translation that is well suited to implementation in functional languages.
• They support extended REs almost for free.
• The generated scanners are often optimal in the number of states and are uniformly better than those produced by previous tools.
In addition to presenting the basic RE to DFA algorithm, we have also discussed a number of practical issues related to implementing a scanner generator that is based on RE derivatives, including supporting large character sets"
www.ccs.neu.edu/home/turon/re-deriv.pdf
Можно ли подсчитать производную от регулярного выражения? Можно и нужно!
Статья рассказывает о изученной и эффективной, но почему-то мало известной на практике технике построения распознающих конечных автоматов непосредственно из регулярных выражений. К сожалению, в статье рассматривается лишь задача о соответствии регулярного тексту, в ней ничего не говорится о, скажем, захвате соответствующих частей текста.
"In this paper, we have presented RE derivatives, which are an old, but largely forgotten, technique for constructing DFAs directly from REs. Our experience has been that RE derivatives are a superior technique for generating scanners from REs and they should be in the toolkit of any programmer. Specifically, RE derivatives have the following advantages:
• They provide a direct RE to DFA translation that is well suited to implementation in functional languages.
• They support extended REs almost for free.
• The generated scanners are often optimal in the number of states and are uniformly better than those produced by previous tools.
In addition to presenting the basic RE to DFA algorithm, we have also discussed a number of practical issues related to implementing a scanner generator that is based on RE derivatives, including supporting large character sets"
www.ccs.neu.edu/home/turon/re-deriv.pdf
Блог*
#prog #ml Machine learning, который мы заслужили. thisdickpicdoesnotexist.com (если вы ещё не поняли, это NSFW)
#prog #ml #article
А тут решали обратную задачу: детектирование NSFW.
habr.com/ru/company/ru_mts/blog/515000/
А тут решали обратную задачу: детектирование NSFW.
habr.com/ru/company/ru_mts/blog/515000/
Хабр
Не те игрушки: как мы научили нейросеть бороться с порно в стримах
Всем привет, меня зовут Олег, я занимаюсь компьютерным зрением в команде Видеоаналитики МТС и сегодня расскажу вам, как мы защищаем от небезопасного контента стриминговую платформу WASD.tv, в...