А спонсор сегодняшнего поста — атеистическая алгебра.
Атеистическая алгебра: не приведи Господь.
Атеистическая алгебра: не приведи Господь.
#prog #db
Ревяко пишет про ошибки при работе с СУБД. Полезный материал, готов поспорить, многих тонкостей вы не знали
t.iss.one/nosingularity/737
t.iss.one/nosingularity/738
t.iss.one/nosingularity/739
Ревяко пишет про ошибки при работе с СУБД. Полезный материал, готов поспорить, многих тонкостей вы не знали
t.iss.one/nosingularity/737
t.iss.one/nosingularity/738
t.iss.one/nosingularity/739
Telegram
Сингулярности не будет (18+)
Переходим к поиску проблем в схеме БД.
Первый документ, который стоит изучить: https://wiki.postgresql.org/wiki/Don't_Do_This
Там вы найдете небольшое количество правил, которые легко учесть при разработке, если вы не используете ORM.
Но на что еще нам стоит…
Первый документ, который стоит изучить: https://wiki.postgresql.org/wiki/Don't_Do_This
Там вы найдете небольшое количество правил, которые легко учесть при разработке, если вы не используете ORM.
Но на что еще нам стоит…
Forwarded from Жалкие низкочастотники
This media is not supported in your browser
VIEW IN TELEGRAM
Лет 10 назад я купил на несуществующем бложике прототип Lightpack: странной штуки для задней подсветки монитора, визуально расширяющей экран контекстными цветами. Прототип был в виде платы с кучей хвостов с LED-дами, в собранном виде напоминал ксеноморфа в стадии лицехвата и лепился на монитор сзади на изоленту.
Штука мне понравилась, года три я ей пользовался, а потом при очередном переезде она потерялась. Недавно я откопал её в ящике, приклеил на монитор и полез искать в сети софт для управления подсветкой. Нашёл на гитхабе, скачал, ну и сразу поставил лайк репозиторию. И тут мне в телеграм написал один из авторов проекта, Миша Санников, который, оказывается, читает мой канал. Мы вспомнили проект, и Миша рассказал, какие с ним дальше были приключения: успешный кикстартер, производство в Китае, куча клонов, смена команды, провал второго кикстартера и закрытие всего проекта.
Купить его уже нигде нельзя, но сама история проекта показалась мне очень интересной, почитать её подробнее можно в серии постов Миши.
Штука мне понравилась, года три я ей пользовался, а потом при очередном переезде она потерялась. Недавно я откопал её в ящике, приклеил на монитор и полез искать в сети софт для управления подсветкой. Нашёл на гитхабе, скачал, ну и сразу поставил лайк репозиторию. И тут мне в телеграм написал один из авторов проекта, Миша Санников, который, оказывается, читает мой канал. Мы вспомнили проект, и Миша рассказал, какие с ним дальше были приключения: успешный кикстартер, производство в Китае, куча клонов, смена команды, провал второго кикстартера и закрытие всего проекта.
Купить его уже нигде нельзя, но сама история проекта показалась мне очень интересной, почитать её подробнее можно в серии постов Миши.
xxx: API РЖД тексты ошибок присылает капсом. При переводе в нижний регистр все возможные буквы оказываются латиницей.
yyy: в русскоязычных сообщениях об ошибках?)
xxx: Да, сообщения типа "ПО ЗАДАННЫМ ТРЕБОВАНИЯМ НЕТ СВОБОДНЫХ МЕСТ". Делаешь lower case, получаешь
"по задаhhыm tpeбobahияm het cboбoдhыx mect"
yyy: o_O
xxx: Когда мы это нашли, то рабочий день тут же закончился, и мы всей командой пошли в бар.
#prog #suckassstory с баша
yyy: в русскоязычных сообщениях об ошибках?)
xxx: Да, сообщения типа "ПО ЗАДАННЫМ ТРЕБОВАНИЯМ НЕТ СВОБОДНЫХ МЕСТ". Делаешь lower case, получаешь
"по задаhhыm tpeбobahияm het cboбoдhыx mect"
yyy: o_O
xxx: Когда мы это нашли, то рабочий день тут же закончился, и мы всей командой пошли в бар.
#prog #suckassstory с баша
Блог*
xxx: API РЖД тексты ошибок присылает капсом. При переводе в нижний регистр все возможные буквы оказываются латиницей. yyy: в русскоязычных сообщениях об ошибках?) xxx: Да, сообщения типа "ПО ЗАДАННЫМ ТРЕБОВАНИЯМ НЕТ СВОБОДНЫХ МЕСТ". Делаешь lower case, получаешь…
Хабр
Билет без некоторых русских букв
Не так давно на Баше промелькнуло занятное открытие: в недрах системы бронирования ж/д билетов, оказывается, есть не все русские буквы. История вызвала массу домыслов в Тви, причём выдвинуты самые...
Forwarded from XYZ
Как вы считаете, что должно быть в DLC? Вот разработчики The Sims 4 уверены, что можно спокойно выпустить дополнение с обычной пылью. За 399 рублей.
Видимо, создатели The Sims 4 либо гении, либо безумцы.
Видимо, создатели The Sims 4 либо гении, либо безумцы.
XYZ Media
В The Sims 4 есть DLC, добавляющее буквально пыль за 5 долларов
Если вы интересовались, как там дела у The Sims 4, то у игры всё прекрасно. Причём настолько, что её разработчики не стесняются продавать дополнение с пылью. За 4.99 долларов (или 399 рублей).
Forwarded from Типа про IT
Dolt is a SQL database that you can fork, clone, branch, merge, push and pull just like a git repository. Connect to Dolt just like any MySQL database to run queries or update the data using SQL commands. Use the command line interface to import CSV files, commit your changes, push them to a remote, or merge your teammate’s changes.
All the commands you know for Git work exactly the same for Dolt. Git versions files, Dolt versions tables. It’s like Git and MySQL had a baby!
We also built DoltHub, a place to share Dolt databases. We host public data for free!
Пользоваться я этим, конечно, не буду, но мне нравится сама идея.
All the commands you know for Git work exactly the same for Dolt. Git versions files, Dolt versions tables. It’s like Git and MySQL had a baby!
We also built DoltHub, a place to share Dolt databases. We host public data for free!
Пользоваться я этим, конечно, не буду, но мне нравится сама идея.
GitHub
GitHub - dolthub/dolt: Dolt – Git for Data
Dolt – Git for Data. Contribute to dolthub/dolt development by creating an account on GitHub.
— А у нас API — как Венера Милосская
— Такое же красивое?
— Ага. И ручки не работают
— Такое же красивое?
— Ага. И ручки не работают
Forwarded from мне не нравится реальность (вафель 🧇🍓)
Вот знаете, шутки шутками, но... На известный вопрос «каким файлообменником ты пользуешься?» я действительно могу неиронично ответить «Телегой».
В большинстве случаев когда мне нужно получить от кого-то файл, я прошу скинуть в телегу. Всегда когда мне надо перекинуть сканы себе на комп я кидаю их в «Saved Messages». Дз учительнице я скидываю здесь же...
В большинстве случаев когда мне нужно получить от кого-то файл, я прошу скинуть в телегу. Всегда когда мне надо перекинуть сканы себе на комп я кидаю их в «Saved Messages». Дз учительнице я скидываю здесь же...
Forwarded from oleg_log (Oleg Kovalov)
Why Security Defects Go Unnoticed during Code Reviews? A Case-Control Study of the Chromium OS Project
ТЛДР не сделаю ибо забил читать, но вещь крутая, действительно люди заморочились.
https://amiangshu.com/papers/paul-ICSE-2021.pdf
ТЛДР не сделаю ибо забил читать, но вещь крутая, действительно люди заморочились.
https://amiangshu.com/papers/paul-ICSE-2021.pdf
#prog #regex #rust #rustlib #amazingopensource
Библиотека (и утилита для командой строки) для генерации по нескольким входным строкам регулярного выражения, которое сопоставляется со всеми входными строками.
github.com/pemistahl/grex
(thanks @nosingularity)
Библиотека (и утилита для командой строки) для генерации по нескольким входным строкам регулярного выражения, которое сопоставляется со всеми входными строками.
github.com/pemistahl/grex
(thanks @nosingularity)
GitHub
GitHub - pemistahl/grex: A command-line tool and Rust library with Python bindings for generating regular expressions from user…
A command-line tool and Rust library with Python bindings for generating regular expressions from user-provided test cases - pemistahl/grex
Forwarded from Lil Functor
Лонгрид Профессора об экспериментальном механизме контроля исключений в Scala 3
Пока закрыто экспериментальным флагом компилятора. Выглядеть будет так:
Чем мотивируется? Асинхронный код на Scala пишется с использованием какой-то монадки, в которую контроль ошибок так или иначе встроен. Но для синхронного кода надо или жить с unchecked эксепшенами, либо втаскивать монадку
Джавовые checked эксепшены неудобны и требует дыры в виде
Для примера выше компилятор сгенерирует код
Механика позволит отказаться от лишних монадок в некотором коде. Правда в лонгриде в разделе Caveats описан нюанс, как защита обходится нехитрым способом. Возможно, потом это исправят.
Чтобы
Про исключения: https://github.com/dotty-staging/dotty/blob/add-safe-throws-2/docs/docs/reference/experimental/canthrow.md
Про erased: https://github.com/dotty-staging/dotty/blob/master/docs/docs/reference/metaprogramming/erased-terms.md
Пока закрыто экспериментальным флагом компилятора. Выглядеть будет так:
def f(x: Double): Double canThrow LimitExceeded =
if x < limit then x * x else throw LimitExceeded()
@main def test(xs: Double*) =
try println(xs.map(f).sum)
catch case ex: LimitExceeded => println("too large")
Чем мотивируется? Асинхронный код на Scala пишется с использованием какой-то монадки, в которую контроль ошибок так или иначе встроен. Но для синхронного кода надо или жить с unchecked эксепшенами, либо втаскивать монадку
Either
только чтобы зафиксировать ошибку в сигнатуре.Джавовые checked эксепшены неудобны и требует дыры в виде
RuntimeException
. Поэтому Одерски придумал новую механику. Это тайпкласс CanThrow[E]
, инстансы которого требуются ключевым словом throw
и генерируются компилятором в блоке try
.Для примера выше компилятор сгенерирует код
@main def test(xs: Double*) =
try
erased given ctl: CanThrow[LimitExceeded] = ???
println(xs.map(x => f(x)(using ctl)).sum)
catch case ex: LimitExceeded => println("too large")
Механика позволит отказаться от лишних монадок в некотором коде. Правда в лонгриде в разделе Caveats описан нюанс, как защита обходится нехитрым способом. Возможно, потом это исправят.
Чтобы
canThrow
не создавал оверхеда в рантайме, для него используется новое ключевое слово erased. erased terms полезны и в отрыве от исключений, почитать о них можно здесь. Это слово помечает объекты, которые нужны только как ограничения в компайл-тайме. Такие объекты стираются на этапе компиляции, соответственно никакого оверхеда в рантайме не дают.Про исключения: https://github.com/dotty-staging/dotty/blob/add-safe-throws-2/docs/docs/reference/experimental/canthrow.md
Про erased: https://github.com/dotty-staging/dotty/blob/master/docs/docs/reference/metaprogramming/erased-terms.md