@miga@hachyderm.io banner
@miga@hachyderm.io

@beebeeep

WEW ILL DIE

Lithuania Katılım Nisan 2009
173 Takip Edilen116 Takipçiler
лив ми элоун
лив ми элоун@chnsaw_gvtsfuck·
вагина звучит неестественно и холодно, влагалище будто название монстра из темного фэнтези, пизда - слишком грубо вот пиндоское слово пусси звучит идеально давно пора его окончательно присвоить себе прям на уровне толковых словарей
Русский
276
145
6.2K
258.2K
Kirill (hexlet.io)
Kirill (hexlet.io)@mokevnin·
Как я положил продакшен базу на выходных Вчера произошла эпическая история. После планового деплоя в субботу вечером (так было нужно), мне прилетело сообщение “кирилл, у нас почему-то не показываются заявки”. Наверное фильтры слетели, подумал я и пошел проверять. Фильтры не слетели. Я слегка напрягся и пошел в яндекс клауд посмотреть что там в базе. Как я и боялся, таблицы были пустыми. Причем не все, но многие. Самое интересное, что они были не просто пустыми, но у них сбросились счетчики. Увидел я это не сразу после деплоя, поэтому было не до конца понятно, это деплой привел к удалению данных или что-то другое. Я быстро восстановил снепшот на новом кластере, благо это делается одним кликом и выполнил туда деплой заново. Какого было мое удивление, когда после деплоя база очистилась. Какого хрена подумал я, прикидывая, что могло быть причиной. В этот момент ко мне присоединился второй разработчик проекта, с которым мы весело провели 3 часа за дебагом. Сам деплой был необычным, потому что мы выкатывали большое изменение для обработки заявок основного договора (до этого работало только раннее бронирование). Туда входило и много кода и около 40 миграций и обновления зависимостей и новая конфигурация. Но мы точно не добавляли код, который бы грохал половину базы (как нам тогда казалось, хаха). Дальше мы полезли изучать код на предмет подозрительных вещей: 1. Логи 2. Изменения в конфигурации 3. Ишьюсы в Laravel (основной фреймворк) 4. Миграции Ничего подозрительного не нашли, за исключением пары транкейтов в паре миграций. Но эти трункейты были на новые таблицы, в которых точно не было данных, их скорее делали даже для локального сброса, чтобы не фиксить данные в девелоперских базах после изменения структуры таблицы. В любом случае мы решили проверить миграции, поэтому сделали следующее. Настроили систему так, чтобы за один деплой выполнялась ровно одна миграция. Дальше мы начали выполнять последовательно деплои, попутно проверяя состояние базы в конце каждого деплоя. И, вдруг, где-то на двадцатой миграции база очистилась. Открываем миграцию, а там тот самый пресловутый транкейт, который хоть и выглядел подозрительно, но не касался других таблиц. Смотрю в логи и вижу что транкейт выполняется так: TRUNCATE marketing_discounts CASCADE. И тут я как понял. Не знаю как так получилось, но я даже не был в курсе, что у трункейта есть такая опция. CASCADE приводит к тому, что дропаются все связанные таблицы (рекурсивно) независимо от того, есть ли там данные или нет. Сказать что я был в шоке, ничего не сказать. Тут же нашелся issues в ларавеле, где выяснилось несколько интересных деталей. Мы не единственные кто грохнул базу таким образом. Собственно сам issue появился с целью того, чтобы защитить всех остальных, на что разработчики сказали сорян, обратная совместимость. Самое смешное, что подобное поведение реализовано только для драйвера постгреса, у остальных такого нет. > When you truncate tables using the laravel illuminate db builder it truncates the table as expected. However, postgresql is different because it changes the DEFAULT behavior of truncate from RESTRICT to CASCADE. This means that you can loose all your data in other "related" tables (something that doesn't happen with the other sql drivers) И ниже смешные комментарии в духе: > 3 years passed, Laravel users still truncates their entire databases... > We were also a victim of this behavior this morning, fortunately we were on a test database. Very dangerous! Ишью кстати закрыли с поинтами что мы не будем ломать обратную совместимость и транкейт должен сбрасывать данные, а не падать с ошибкой. В итоге мы все поправили и восстановили данные, но открыли в себе новый страх. Давно в моей жизни не было таких приключений) ишью: github.com/laravel/framew… Про такие истории я рассказываю у себя в канале t.me/orgprog/137
Русский
38
27
519
63.2K
@miga@hachyderm.io
@[email protected]@beebeeep·
@tvrain Stafilokokai, streptokokai? Литовский след определенно!
0
0
0
298
Дождь
Дождь@tvrain·
В курском суши-баре отравились 13 человек. Среди блюд — роллы с названиями «стафилококай» и «стрептококаи» Работу заведения приостановили. Причина отравления пока не выявлена
Дождь tweet media
Русский
69
56
1.8K
160.6K
@miga@hachyderm.io
@[email protected]@beebeeep·
@volganian Okay, probably I should admit it and agree that there are more stupid competitions other than programming. At least as a cook and programmer.
English
0
0
1
18
Tooli Judov
Tooli Judov@volganian·
@beebeeep Art is subjective. Programming competition is possible because you can measure the results. There're competitive cooking, wood cutting, construction works, and even bed making. So there's nothing special with programming here. It's just another activity you can master and compete
English
1
0
0
75
@miga@hachyderm.io
@[email protected]@beebeeep·
Why competitive programming is a thing, but competitive art creation (or bridge building, whatever your views on the subject are) isn’t? Right, because for latter two it’s immediately obvious for everyone that it’s a stupid thing to do. Yet programmers are still doing that.
English
2
0
1
82
@miga@hachyderm.io
@[email protected]@beebeeep·
And yes, before any smart ass appears - I know about Olympic art competitions, I can search shit in internet too. There is a reason all those attempts failed.
English
0
0
0
46
Tooli Judov
Tooli Judov@volganian·
А по-моему, Питер, Ленинград и Петербург - это три разных города, просто они расположены примерно на одном месте.
санта тампере@maria_azb

Родилась в Питере, жила 29 лет в Питере, люблю Питер каждой клеточкой своего тела, а еще Петербург люблю, и Санкт-Петербург, а вот когда мой Питер Ленинградом называют - не люблю

Русский
2
0
0
176
@miga@hachyderm.io
@[email protected]@beebeeep·
Why live amongst dogs if you don’t like barking?
English
0
0
0
29
@miga@hachyderm.io
@[email protected]@beebeeep·
Тесла нелепая, вишнево-красная, Истлевший паташник, чайник Рассела, Мешочки говна, созвездие мочевины – И это Роджера Вилко смены Только первая половина.
Русский
0
1
0
93
@miga@hachyderm.io
@[email protected]@beebeeep·
@volganian @fido_node Очень хорошее нововведение, чем выше оградки вокруг приложений в телефоне - тем лучше, это аксиома.
Русский
0
0
0
26
Tooli Judov
Tooli Judov@volganian·
@fido_node Я понимаю откуда происходит такое соображение, но в целом не думаю, что это теоретически правильно. Записная книжка принадлежит человеку, и только ему, и он должен нести ответственность за разглашение данных из неё, но тем не менее он вправе давать или не давать к ней доступ.
Русский
1
0
0
103
yurikrupenin.bsky.social
yurikrupenin.bsky.social@turbojedi·
@pumpkin_addict И -/= это белочка + J/K то есть может быть это не самая оптимальная раскладка для прогромирования, но пока недостаточно отвлекало чтобы я придумывал что-то другое
Русский
1
0
1
654
yurikrupenin.bsky.social
yurikrupenin.bsky.social@turbojedi·
В попытках вести разнообразную и насыщенную жизнь поменял свитчи в клавиатуре с микса Glorious Panda и Keychron Blue (для функциональных клавиш) на Akko Lavender Purple. Первый день было непривычно легко (там 40/55gf vs 49/60 у Panda), но сейчас тактильность начала нравиться.
yurikrupenin.bsky.social tweet media
Русский
8
2
48
5.4K
@miga@hachyderm.io
@[email protected]@beebeeep·
9 лет как уехал. Ноу регретс.
@miga@hachyderm.io tweet media
Русский
1
0
7
87
B.M.
B.M.@ireallyhateyou·
On the Lebanese border. WHAT THE ACTUAL FUCK?! What year is this?
English
1.4K
5.8K
45.9K
15.6M
@miga@hachyderm.io
@[email protected]@beebeeep·
@turbojedi О, у меня батя такую делал штуку (для самодельного же компа)
Русский
0
0
0
87
yurikrupenin.bsky.social
yurikrupenin.bsky.social@turbojedi·
Мне никогда кстати не приходило в голову, *как именно* можно было загнать в компьютер отротоскопированную анимацию в начале восьмидесятых. Оказывается — пантографом с двумя потенциометрами в плечах. Охуенно. (тут чуть подробнее написал: t.me/usilenie_plus/…)
yurikrupenin.bsky.social tweet media
GDC Festival of Gaming@Official_GDC

Before Prince of Persia, there was Karateka. In this Classic Game Postmortem, Jordan Mechner discusses how he pushed the limits of Apple II technology to create his breakthrough success. Watch on GDC YouTube! youtube.com/watch?v=mHc2iC…

Русский
2
4
32
5K
@miga@hachyderm.io
@[email protected]@beebeeep·
@luciascarlet Whatever, you still rely that code signing and servers running that stuff are working as described. It’s a good commitment tho, probably, the best one you can do rn.
English
0
0
0
39