- 1
IT Оффтоп #235
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IT Оффтоп #235
#205: https://govnokod.ru/28986 https://govnokod.xyz/_28986
#206: https://govnokod.ru/28991 https://govnokod.xyz/_28991
#207: https://govnokod.ru/29002 https://govnokod.xyz/_29002
#208: https://govnokod.ru/29060 https://govnokod.xyz/_29060
#209: https://govnokod.ru/29070 https://govnokod.xyz/_29070
#210: https://govnokod.ru/29079 https://govnokod.xyz/_29079
#211: https://govnokod.ru/29092 https://govnokod.xyz/_29092
#212: https://govnokod.ru/29093 https://govnokod.xyz/_29093
#213: https://govnokod.ru/29104 https://govnokod.xyz/_29104
#214: https://govnokod.ru/29114 https://govnokod.xyz/_29114
#215: https://govnokod.ru/29125 https://govnokod.xyz/_29125
#216: https://govnokod.ru/29132 https://govnokod.xyz/_29132
#217: https://govnokod.ru/29147 https://govnokod.xyz/_29147
#218: https://govnokod.ru/29156 https://govnokod.xyz/_29156
#219: https://govnokod.ru/29166 https://govnokod.xyz/_29166
#220: https://govnokod.ru/29181 https://govnokod.xyz/_29181
#221: https://govnokod.ru/29185 https://govnokod.xyz/_29185
#222: https://govnokod.ru/29190 https://govnokod.xyz/_29190
#223: https://govnokod.ru/29203 https://govnokod.xyz/_29203
#224: https://govnokod.ru/29211 https://govnokod.xyz/_29211
#225: https://govnokod.ru/29212 https://govnokod.xyz/_29212
#226: https://govnokod.ru/29218 https://govnokod.xyz/_29218
#227: https://govnokod.ru/29220 https://govnokod.xyz/_29220
#228: https://govnokod.ru/29230 https://govnokod.xyz/_29230
#229: https://govnokod.ru/29235 https://govnokod.xyz/_29235
#230: https://govnokod.ru/29241 https://govnokod.xyz/_29241
#231: https://govnokod.ru/29246 https://govnokod.xyz/_29246
#232: https://govnokod.ru/29249 https://govnokod.xyz/_29249
#233: https://govnokod.ru/29253 https://govnokod.xyz/_29253
#234: https://govnokod.ru/29259 https://govnokod.xyz/_29259
Этот оффтоп сгенерирован автоматически.
Индекс оффтопов: https://index.gcode.space/.
Зеркала Говнокода и полезные ресурсы:
* https://govnokod.xyz/ (альтернативный Говнокод)
* https://gcode.space/ (read-only зеркало Говнокода)
* https://t.me/GovnokodBot (Говнокод-бот в «Telegram»)
* https://t.me/GovnokodChannel (Тематический канал в «Telegram»)
* https://app.element.io/#/room/#govnokod:matrix.org (резервный чат)
Примечание: автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx.
Остерегайтесь подделок. Берегите себя и своих близких. Кок!
— Вы бы ещё насрали столько же!
Пациент (скидывая рюкзак с плеч):
— Ну как знал, как знал!
https://github.com/nival/Silent-Storm/tree/main/Data/mysql
У InhoDB по умолчанию все таблицы в одном файле (но настройками можно сделать и раздельно).
Один объект (например, таблица) может иметь несколько файликов (один с данными, один с картой видимости и один с картой свободного места -- тн "слои"). Сам файлик занимает минимум одну страничку (8к) но может конечно расти, если ты насрешь туда больше. Он потом станет 16, итд, но кажется при размере в 1 гиг появится второй файлик.
> So, the only full source code package for the game is located in Soft\Andy\Jan03\a5dll. But it's very apparent that none of the game.exe's present in this repo were built with these sources.
Take, for example, Soft\Andy\RussianGold version. It has a .pdb file so you can easily find the LUA functions table (NScript::Script::pRegList) and see that it has 215 registered function, while the "sources" only have 115.
Another example - Complete/game.db refers to the class with typeid=0xa1843130. Again, you can look into RussianGold version to see that it maps to the class named CDBTableDataStorage. The "sources" don't even have a mention of this class, so it's obvious that even if you build them, you wouldn't be able to load that game.db.
> P.S. bin\Game.exe can't run because it can't find the _FSOUND_Stream_AddSynchPoint@12 entry point. Looks like .exe was linked with FMOD 3.6, but bin\fmod.dll is 3.7?..
> Based on the modification dates of the source files, the repository already contains the latest available version of the source code that we have. In other words, these are the most up-to-date sources that were preserved.
Во-первых, неротоёбы-программисты пользуют API винды для хранения паролей, а она иной раз заботится чтоб странички с ними на диск не выгружались (или чтобы пароли ширфровали ключом из TPM) и всякое такое, что наверняка давно уже сломали, но хотя-бы выглядит круто
Во-вторых неротоёбы-админы включают групповую политику, коея ОЧИЩАЕТ пейджфайл перед выключением (но конечно это плохо работает, если выдернуть штекер и вынуть батарейку).
Но к сожалению, нас окружает такое количество ротоёбов, что если они на гитхаб приватный ключ плейн-текстом не залили, то уже можно шампанское открывать.
А у тебя одинаковые?
ахаха
https://github.com/nival/Silent-Storm/tree/main/Soft/Andy
хорошая папка, версионирование времён SVN
в подпапке KRI (это ж выставка такая вроде была?) уютно расположилась, судя по всему, маркетинговая презентация
местами можно встретить прекрасное
ну и ещё в репе зачем-то ковырялся нейродурак.
Когда деревья шатаются -- дует ветер
Лапти гнутся.
https://govnokod.ru/26750#comment555588 Ура, пи вернулся!
> Лапти гнутся.
gcode.space/#!/27027#comment653834 Ура, EbooksGovno (кто это, кстати?) вернулся!
Спасибо за объяснение, guest6!
О, я люблю, там Гость Шестой
Гость Шестой — народный герой
Гость Шестой — он всегда готов
Гость Шестой — покоритель, хой!
Он великий, он герой
Он повсюду, он везде
Он толпою, он горой
В каждом оффтопе и в каждой пизде
Он Гость Шестой
Гость Шестой
Гость Шестой
Гость Шестой, хой!
[Гитарное соло]
О, я тащусь, там Гость Шестой
Гость Шестой — он Гость Шестой
Мы Гость Шестой — ты Гость Шестой
И все они тоже Гость Шестой
Он великий, он герой
Он повсюду, он везде
Он толпою, он горой
В каждом оффтопе и в каждой пизде
Он Гость Шестой
Гость Шестой
Мы Гость Шестой
Ты Гость Шестой
Гость Шестой
Гость Шестой
Browser Working
Aktobe
Cloudflare Working
govnokod.ru
Host Error
У Клаудфлёра реально есть сервер в Казахстане?
MAKAKA, мы это обсуждали или пока нет?
* Версии являются выдуманными примерами, все совпадения с реальными примерами случайны.
JA3 = MD5(SSLVersion, Ciphers, Extensions, EllipticCurves, EllipticCurvePointFormats)
JA3 — это просто md5 от конкатенации расширений TLS, поддерживаемых браузером. В новых версиях Снгоме случился багор: они стали перетасовывать список расширений в случайном порядке, так что сумма md5 стала меняться до неузнаваемости, и Клаудфлёр начал заёбывать пользователей капчей.
Тогда в JA4 решили не вычислять криптосумму, а хранить исходную конкатенацию до хэширования, а списки расширений TLS принудительно сортировать.
К слову, почему я против Клаудфлёра, DDOS-Guard и прочей хуеты. Заебало доказывать, что ты не бот. У ботов-то с отпечатками всё хорошо, а реальным пользователям приходится угадывать, какая версия браузера нужна сайту.
Разве это не к лучшему при наличии тспу на пути запросов?
Если у тебя нету Keep-Alive, то Hello будет отправляться довольно часто.
Большое Keep-Alive тоже плохо, потому что ТСПУ тогда заподозрит постоянное соединение. А на что оно похоже?
Как раз одно долгоживущее соединение.
Проще бы сделали белые списки уже, еманаврот.
VLESS мой кстати не работает с мобилки в РФ (с проводного -- работает)
Попробуем AWG, но кажется надо через виртуалку в Яндексе делать, иначе отсос.
В Reality же до такого не дошли, но взяли пресеты TLS Hello от разных браузеров, даже от китайского мессенджера QQ (видимо, в Китае это работало).
А ещё ты помнишь, X3-KTO рекламировал всякие «транспорты». Есть XHTTP, он разбивает одно долгоживущее соединение на кучу короткоживущих запросов. Есть маскировка под WebSocket (в WebSocket пробовали заворачивать MTProto, и это сработало). Есть маскировка под gRPC (Protobuf поверх HTTP/2). Есть маскировка под QUIC (у нас сейчас бесполезна, сам понимаешь почему).
К слову, маскировка именно под Хром перестала работать 25 мая, приходится маскироваться под другие браузеры, хотя с сайтами настоящий Хром работает.
а из-за толстоевского и соевых оппозиционеров: "бе-ме, детишек жалко, бе-ме подожгу трансформаторную будку"
не было бы сои, рашка жила бы как в цивилизованных странах вроде США и Израиля
у нас тут никто с террористами и их живым щитом не яшкается, не рефлексирует
доктор сказал в гроб, значит в гроб
и поэтому у нас есть Нетфликс и Youtube открывается и свобода слова есть
Отличный пример! Страна, которая не воюет с соседями.
> США
Нетфликс и Youtube открываются. Это примерно как сказать, что в России Кинопоиск и Rutube открываются.
Тем временем в штате Юта уже начали охоту на КВН.
соя, плиз
не с соседями, а с хезболлой и хамасом
а борманд со своей циклоняшкой лежит под завалами от ракеты, которую я тебе продал
а я зоонаблюдаю из-за двух океанов
это и есть America First, капкейк
одним махом двух сойциалистов побивахам
иди лучше на турничке повиси, твоему коммунистическому евро soy usey скоро мою жопу прикрывать
в домике площадью 5 миллионов квадратных километров
на отдалении тысяч километров от ближайшей соевой помойки
с лояльным населением
гомогенной культурой
а вот тебе придётся малость деколонизироваться
будешь у нас стокгольмскую республику от гётенбургских угнетателей защищать
калаш дадим
Toyota Hilux дадим
электрическую, всё как вы любите
можешь цвет выбрать
белый и зелёный заняты, рекомендую розовый
> километров
Нять, а тред так хорошо начинался.
У них всё в имперской системе.
1. Цельсий изначально сделал свою шкалу наоборот, 0° — точка кипения, 100° — точка замерзания. А власти скрывают!
2. Градусы Реомюра до сих пор используют некоторые упоротые сыровары
3. Есть шкала с базой в абсолютном нуле, но с шагом как у Фаренгейта
4. Шкала Ведвуда основана на измерении диаметра спёкшихся глиняных колбасок
Про Ренкина (база от абс. нуля, шаг Фаренгейта) слышал.
У температурных шкал есть ещё засада. А вдруг они нелинейные и их кривые не совпадают? Короче, их после изобретения ещё рихтовали, чтобы они одинаково точно показывали энергию идеального газа.
ото обдолбятся своими глиняными колбасками и айда человека от абизян производить
или тренируйся стометровку бегать, кек
> Я кстати стал планковать от нехуй делать
Начал Планковать, чтобы туннелировать через дверь подъезда?
https://preview.redd.it/seals-are-the-comedians-of-the-animal-world-they-make-new-v0-065xwc9amb161.jpg?width=640&crop=smart&a uto=webp&s=9884508f1026b903def57aa632d49 cf7df343c7d
> "Израиля"
Святая жырнота!
https://www.mintpressnews.com/wp-content/uploads/2019/10/AP_19279604320511_edited.jpg
Voodoo Chosen People
https://files.mastodon.social/media_attachments/files/116/651/885/738/129/736/original/fc67c2c3dd11bf12.mp4
https://en.wikipedia.org/wiki/Bale_Messenger
Жители Ирана даже через него смогли прокинуть туннель.
И это не единственная реализация. Я ещё видел.
https://github.com/evokelektrique/BaleChatTunnel
https://github.com/aminsaedi/qr-tunnel
https://github.com/armin-malek/TCP-over-Bale
К слову, «бале» с персидского переводится как «да».
Правда J0PA?
это ещё лучше, конечно
Петухи взяли ВПСку в Яндексе (он в белом списке), будут её тоже пробовать
С хождением в лес непонятная фигня творится. Ты же знаешь, что у него куча расширений (Reality, транспорты), и вот у разных операторов они по-разному работают.
Попробуйте ещё Hysteria2 или Trojan+Reality.
Ну и для науки попробуйте DNSTT (если домен есть):
https://github.com/anonvector/slipgate
https://kiwix.org/en/
Да, в коллекцию можно добавлять zim файлы путём некоторого пирдолинга с kiwix-manage.
Началось с того, что Вика опубликовала инструкцию как поднять её локальное зеркало:
https://ru.wikipedia.org/w/?oldid=86021571
Потом кто-то изобрёл офлайн-ридеры вроде Kiwix.
Инструкцию по созданию зеркала википидоры удалили, но осталась инструкция по скачиванию дампов:
https://en.wikipedia.org/wiki/Wikipedia:Database_download
К слову, у кого ещё есть публичные дампы, кроме Википедии и gcode.space?
Download it now and save articles to read offline
https://i.postimg.cc/XJkYLGsz/IMG-20260531-224016.jpg
...
At least seven nonprofits that have been critical of OpenAI have received subpoenas in recent months, which they say are overly broad and appear to be a form of legal intimidation. All of the subpoenas are part of a legal battle between OpenAI and tech titan Elon Musk, with OpenAI suggesting that the subpoenaed nonprofits are somehow connected to Musk.
Ну и как я это пропустил тогда?
Я ещё понимаю стикеры компаний лепить на лэптопы, но позволять им себя клеймить?!
Суть игры: угадайте компанию, если ещё не видели новость.
Именно поэтому я за «Murglar», которым можно спиздить любой трек из «Deezer», «Яндекс-Музыки», «Сберзвука», «Вконтакте», «Youtube Music» и проигрывать его как я хочу, а не как мне навязал владелец сервиса. Жаль, что поддержки других сервисов пока нету, но разработчик грозится добавить «Tidal» и «Qobuz».
> Русскоязычный автор
Всё сошлось
К тому же сервисы берут деньги за чужие треки. Какую часть получит автор?
Так-то пиздить лучше с торрентов, там хотя бы качество
> Какую часть получит автор?
– Ну только не говори, что тебя это реально беспокоит)
Альтернативный клиент? Ну так пиши свой. У меня лежит на всякий случай скрипт для скачивания треков с «Яндекс-Музыки». Я этот скрипт ещё патчил, когда непубличный API менялся. Вроде для каких-то ещё сервисов видел подобное.
А то начинается, тут реклама, там удолили, тут ограничили, а там никогда и не было. Я когда-то тытруп мьюзик слушал, пока подпиську не прикрыли. Да и тогда какие-то треки (не мйнстрим) приходилось качать, потому что их там не было. В яндексе с контентом и раньше было грустно, а сейчас даже смешно, судя по новостям
за 80 рублей
диск назывался "реаниматор 2000"
И веб неправильно устроен. Как случилось так, что йажасцрипта триста метров грузят текста триста байт, что вырвиглазный дизайн жрёт больше ресурсов, чем полезная информация? То ли дело NNTP, где передаётся текст, а оформление делает клиент, как хочет.
в gitea видимость опубликованного пакета зависит от не от видимости репозитория, а от видимости пользователя, который его опубликовал. а пользователи по умолчанию публичные
Можно спокойно туда стать строками и они будут храниться
ps: пыхеры такие смешные пафосные мартышки конечно, пародия на яжу
блядь хуевая пародия на хуевую пародию
https://github.com/addiks/phpsql/blob/master/src/Addiks/PHPSQL/Job/Part.php
> addiks/phpsql/blob/master/src/Addiks/PHPSQL/
Лол, я фигурально выразился а там уже php-js подвезли. Оно вроде как written in sea
красота. Это LL или LR parser?
Ещё и результат разбора ни во что не компилируется, запрос парсится каждый раз.
Поясняет Балабоба:
SQLite использует концепцию типизации по аффилиации (type affinity), которая определяет предпочтительный класс хранения для данных в колонке, но не ограничивает строго их тип. Это обеспечивает гибкость, позволяя хранить любые данные в любых колонках, при этом SQLite пытается автоматически преобразовывать значения к предпочтительному типу при вставке или сравнении.
Аффилиация колонки определяется по её объявленному типу (названию) на основе следующих правил в порядке приоритета:
....
Для сравнения значений SQLite может применять аффилиацию для преобразования операндов (например, строки в числа), если это не приводит к потере данных. Однако, если преобразование невозможно или потеряно, значение сохраняется в своем исходном классе хранения.
Такая domain integrity куда лучше скрипта на ЗРЗ
hiddlers
Именно поэтому я против «ООП».
Это две совершенно разные вещи:
1. Обычная структура, которая известна программисту. У неё есть поля, и он с ними работает. Нахуя тут сеттеры геттеры?
2. Какой-то объект где-то там, которому он шлет какие-то сообющения. Это неебически высокоуровневая абстракция, которая впринципе нужна иногда для API с левыми чуваками, но нахуя она в алгоритме сортировки?
А оопидары любую структуру обмазывают сеттером и геттером, советую сразу структуру Point(x,y) в микросервис уносить и REST методы сделать для установки и чтения x и y
хз, макбук про какие нить, может еще асусы...
Но у TUF Gaming по крайней мере клава не сыпется в первую неделю. Ты думаешь его все для игор покупают?
> зато клава отгнила в первую неделю, как и полагается деллу
Лол, у меня на одной работе был Делл, и у него случилось то же самое. Талант, как говорится, не пропьёшь.
Thinkpad, поди, которые наследие IBM?
Разбирается он через жопу. Чтобы почистить забившийся вентилятор, нужно всю начинку перепердолить.
Подтверждаю. Тогда компоновку делали настоящие шизы. У меня на древнефинкпаде примерно того же периода есть такие-то дверцы для доступа к RAM (зачем? зачем?), но вот до проца добраться, чтобы сменить пасту — это, блин, надо быть хирургом.
> Ну и пластмасса рядом с петлями сгнила, пришлось просверливать корпус насквозь и вставлять винты с гайками, чтобы петли не выпадали. Короче, техника для труъ-панков.
Одобряю такой пердолинг. Нужно было петли от рояля поставить. У меня одно время был ноут от говноделов из Clevo; сколько эпоксидки я на него потратил — не описать. В конце концов JBWeld-ить петли стало не к чему, лол. Пришлось сделать из него NAS.
Правда, всё другое у «Асера» было таким же, как у конкурентов, например, те же петли. Я ещё подсветку у «Асера» чинил. Она была люминесцентной, на лампу подавалось 600 вольт. Криворукие сборщики между одним выводом лампы и рамкой экрана оставили крошечный зазор, из-за чего пробивался воздух, сыпались искры, подсветка иногда моргала и пахло сваркой. Зашибись, да? Гарантийный ремонт не исправил ситуацию. В итоге я отпилил уголок рамки, чтобы от вывода лампы до металла было приличное расстояние. Пробивать воздух перестало.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
В чём сложность? В том, что в итерациях придётся некоторых обратно возвращать в список незанятых?
Из-за них Россию покидают талантливые разработчики, которые, кроме прочего, могли бы создать отечественную операционную систему. Без нее все приложения смартфонах остаются уязвимыми для «точечной слежки и цензуры со стороны США через бэкдоры и магазины приложений iOS и Android», утверждает Дуров.
Я не против российских магазинов приложений, даже за, но вот Рустор реализовали максимально хуёво для пользователя.
Всмысле https://govnokod.xyz/_29262/#comment-1352912 ?
> b) Zero time wasted with compiling and fighting JVM (like PHP)
Всмысле ошибки в браузер пользователю а не на время компиляции?
> c) A style that is so readable that even non-coders can read it.
Выбор non-coders, понятно
Слушайте, это какой-то тухлый булщит из 2001-го года, такое говно уже не продается, ау
Правильно гость написал -- Parser
им это объясни
https://careers.bunq.com/positions/backend-engineer-5
Our PHP-based backend is intuitive, so no prior PHP experience is needed while experience in any object-oriented language will do.
это, напомню, не "икра от стерлядыча", а целый банк
> You're able to tinker and test your own projects.
понятно, QA нету
Мне мама sowieso не велит на ПХП писать
какое говнище )))
надо объяснять почему?
https://github.com/bunq/phava_spec/blob/10521d1ee92f2baaaa9b9aca5a14d7f05ded1c75/Code/Example/Bank/util/PaymentUtil.php#L48
Women In Technology
Stop Memorizing Design Patterns: Use This Decision Tree Instead
вот https://rxjs.dev/operator-decision-tree
или вот https://flowmarbles.com/
Где-то может и не проебались, но где?
upd в твите ещё больше мякотки
https://x.com/lifeof_jer/status/2048103471019434248
The volume was deleted. Because Railway stores volume-level backups in the same volume — a fact buried in their own documentation that says "wiping a volume deletes all backups" — those went with it. Our most recent recoverable backup was three months old.
Within 10 minutes I had notified Railway's CEO, Jake Cooper (@JustJake), and their head of solutions, Mahmoud (@thisismahmoud), publicly on X. Jake replied: "Oh my. That 1000% shouldn't be possible. We have evals for this."
> Для выполнения удаления агент начал искать API-токен. Он нашёл его в файле, совершенно не связанном с задачей. Этот токен был создан для одной цели: добавлять и удалять кастомные домены через Railway CLI. Мы не знали — и интерфейс создания токена нас никак не предупредил, — что тот же токен имеет полные права на всё Railway GraphQL API, включая деструктивные операции вроде volumeDelete. Если бы мы знали, что CLI-токен для работы с доменами может удалять продакшн-тома, мы бы никогда его не хранили.
Какой багор )))
Хорошо что у меня в контроллерах ничего такого нет
современные вкатуны не умеют в 3-2-1, ок
Комбо какое-то. Chief Data Scientist против LLM, Principal Engineer рекомендует Software Architect ознакомиться с такой штукой, как «компьютер», ну и наконец
Every AI advocate needs to be put on a list, like sex offenders, and completely shunned from ever working with computers again once the bubble bursts. They're traitors to humanity and deserve far worse.
Release the aistein files!
кто-то лойер
я Software Architect
IT превратился из способа "сделать" в процесс "делания". Крупная компания нанимает спецов, чтобы те что-то делали, что-то писали, что-то переписывали, занимались бесконечными обновлениями, и всё это работало на инфраструктуре, необходимой для того чтобы всё это работало.
И созвоны с совещаниями.
Там можно сутки напролет писать абстрактные фабрики адаптеров, и течь
ну братишку я вижу, а где пахом?
https://www.opennet.ru/opennews/art.shtml?num=65641
https://github.com/ioccc-src/winner/tree/master/2025
У нас был такой случай: создали простой хук под конкретную задачу. Вполне хороший, читаемый и без излишеств. Потом появилась похожая задача и мы его «чуть-чуть» обобщили. Потом ещё одна и мы добавили параметр. Потом «а давайте он будет уметь и вот это». И через пару месяцев это был хук с шестью параметрами и условной логикой, в которую нельзя зайти без каски.
А дальше обязательно наступает тот самый момент, когда этот хук уже никто не хочет трогать. Потому что, чтобы его менять, нужно быть уверенным, что не сломаешь три других сценария, о которых ты даже не знаешь. А если соберешься такой код рефакторить, то придется закладывать время на ретест всего приложения.
А самое подлое то, что каждый шаг был разумным. Никто не делал фигню. Но в итоге мы получили сложность, которую уже невозможно откатить потому что «от него всё зависит».
А еще не был разумным тот шаг, когда не написали тестов
Любое российское коммьюнити со временем начинает косплеить съезд директоров колхозов
Корутины -- да, конечно (кроме хотспотов: они нехило так тормозят)
*ий тоже бывает еврей, если на момент получения фамилии жил в Польше. В США, например, окончание фамилии "sky" почти всегда ассоциируется с евреями: Шила Брофловски из Южного Парка, например.
Судебный вердикт фактически разрушает многолетнюю отраслевую традицию обеспечения моряков свежими морепродуктами во время длительных плаваний. Теперь рыболовецким компаниям предстоит полностью перестроить логистику снабжения своих судов продовольствием, чтобы избежать санкций. В противном случае отрасли придется добиваться внесения поправок в федеральное законодательство для легализации привычного морского рациона. По действующим правилам, одному человеку в сутки положено лишь девяносто граммов неразделанной рыбы с небольшой порцией соли, сметаны и дрожжей.
https://habr.com/ru/articles/1044396/
Gaming should be a matter of Pride. Build your own custom Pride controller with XBOX Design Lab and show your Pride right on your console with the new dynamic backgrounds.
друзья с праздником!
> At 2,000 Tokens: 262 MB shrinks to 33 MB (87.2% Reduction). At 100,000 Tokens: 13.1 GB shrinks to 33 MB (99.7% Reduction). At 1,000,000 Tokens: 131 GB (OOM on consumer GPUs) shrinks to 33 MB (99.97% Reduction).
Ура! Вореции живы! Дзенский Мастер Питушня теперь зожимаем вореции токенов.
Ридми у репозитория очень внушительное: https://github.com/sneed-and-feed/adelic-spectral-zeta/tree/main. Очень хороший пример, как зойчатки шизофрении в мозгу поциента радостно подхватываются кланкером и разбухают в невероятных размеров психозу.
Именно поэтому я за ``Coq''.
> https://web.archive.org/web/20260602132513/https://www.reddit.com/r/LocalLLaMA/comments/1tuidav/adelicllama318binstruct_breakthrough_res earch/
Ссылка, кстати, 404. Именно поэтому я за archive.today, там меньше трут.
If we have a volatile variable, it cannot be cached into the computer's(microprocessor) cache memory by any thread. Access always happened from main memory.
и ведь знал же, что нагуглю, но всё равно пошёл
https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.3.1.4
Если лениво есть стандарт в сухомятку, то есть книжка с двумя поездами. Читал её?
A write to a volatile variable v (§8.3.1.4) synchronizes-with all subsequent reads of v by any thread (where "subsequent" is defined according to the synchronization order).
Где S-W это установка H-B между интер-тред операциями
А гуглить я пошёл целенаправленно пиздец для вытекания глаз
> А гуглить я пошёл целенаправленно пиздец для вытекания глаз
Энтерпрайзные жабаёбы часто не могут в многопоточку и мемори модель, потому что им не надо.
Шипилёша когда-то на это жаловался.
А вот даже ее умудряются не знать
CAS-операции, насколько я могу судить по диагонали, этой моделью вообще не описываются.
Всё так, только ты про это знать не должен. Для тебя, холоп, писание в лонг один хуй не атомарное в соответствии с JMM, разве не?
https://docs.oracle.com/javase/specs/jls/se8/html/jls-17.html#jls-17.7
> CAS-операции,
AtominIntegerы всякие? Ну их правда нет в JMM. Джава называет их lock-free, кстати.
* подразумевается, что любой тред может быть вытеснен, но для живого подмножества правило должно сохраняться. В случае вытеснения с локом стоять будут все, в случае с CAS никакого влияния на прогресс оказано не будет, но в отсутствие wait-free произвольный тред может крутиться в попытках апдейта неограниченное количество времени.
Ну вот ты норм шаришь, как для джависта.
Теперь можешь рассказать про то, как CAS реализовывают в железе, или локи реализовывают в шедулере
Заэксклюзивил линию, делай с ней что хочешь
С шедулером помню нихуя, там какие-то striped lock были, чтобы нельзя было суспенд и вейкап треду одновременно делать.
Не понял юмора. Спинлок — это частный случай лока, просто примитивный и кривой. Соответственно, дедлочится он точно так же и точно в тех же случаях, что и какой-нибудь futex. Более того, он с большой вероятностью пустит тебе по пизде и latency и CPU usage:
> I repeat: do not use spinlocks in user space, unless you actually know what you're doing. And be aware that the likelihood that you know what you are doing is basically nil.
tl;dr: Проблема со спинлоками в том, что для скедулера ведра ОС они выглядят как если бы программа что-то усиленно считала, в то время как на самом деле она просто ждёт. В простейшем случае, если у тебя одно CPU ядро и несколько тредов, соревнующихся за спинлок, то скедулер ОС не заскедулит процесс, держащий спинлок, пока не кончатся кванты времени тредов, ждущих его.
Лок, поставленный через API ядра, выкидывает твою задачу из шедулинга, пока условия для снятия лока не выполнятся, потому она не тратит CPU.
Cпинлок (он же бизивейт в данном случае) из шедулинга задачу не выкидывает, и она продолжает крутиться.
Другой вопрос, что в юзермоде спинлоки почти никогда не нужны, а в ядре нужны (в случае многоядерности конечно: в одноядерных системах из можно заменить на отключение прерываний), так что я пока не очень понял, с чем ты споришь
А какое отношение это всё имеет к дедлокам? Имплементация влияет только на то, сколько тепла ты будешь выделять в режиме дедлока.
Если же считать всё это деталями реализации, и говорить то процесс1 не может взять лок1 не взяв лок2, а процесс2 ждет лок2 взяв лок1, то действительно совершенно не важно, как именно процесс взятия и удержания лока реализован (тогда ты прав)(
Где ты нашёл такое определение? Я никогда такого не видел.
Под дедлоком обычно понимается ситуация, когда процесс P₁ захватил лок L₁ и ждёт лок L₂, в то время как P₂ захватил лок L₂ и ждёт лок L₁, или любая более сложная подобная кобенация, сводящаяся к этому. К примеру, может быть больше локов или больше потоков.
От того, выделяет скедулер в ней кванты или не выделяет, ничего не изменится, кроме CPU load.
Эм, что? Как тред может ``захватить регистр''? Тред владеет всеми регистрами, когда ОС его вытесняет, она сохраняет все регистры и потом их восстанавливает, когда треду даётся следующий квант.
Лочки хранятся в RAM, а не в регистрах.
https://en.wikipedia.org/wiki/Shared_register
Ядра вполне себе распределённая система кстати, мы вообще в принципе сейчас обсуждаем ситуацию, аналогичную проблеме умершего узла.
Ясно.
> мы вообще в принципе сейчас обсуждаем ситуацию, аналогичную проблеме умершего узла.
Часто ядра CPU независимо друг от друга отваливаются так, что нельзя понять, отвалились они или продолжают работать независимо? Это на какой рахитектуре так?
А суть такова: дедлок и проблема умершего узла никак не связаны: оба треда в дедлоке живы, правда не совсем здоровы. И дедлок со скедулером ОС тоже никак не связан, это проблема бизнес-логики; он у тебя случится и со спинлоками, и с мьютексами, да хоть с акторами и чёртом лысым. И многопоточность с распределённостью, на мой взгляд, тоже никак не связаны, т.к. ряда проблем, характерных именно для процессов, взаимодействующих посредством ненадёжной сети, там нет. Такие дела.
Проблемы распределённых сетей это не сеть и её надежность, это синхронизация состояния. Можно построить надёжную сеть и обосраться на часах. Сеть и часы это уже вторичные истории, которые могут вмешаться в синхронизацию, но обычно они просто усиливают и без того существующие эффекты.
- А суть такова: дедлок и проблема умершего узла никак не связаны:
Ну, дедлок вылез как вторая проблема терминологии. Изначально там вопрос эксклюзивного владения узлом некоторого юнита, и этот узел пропадает.
Ну и умерший узел ничем функционально не отличается от того, до которого не достучаться (можем для простоты назвать вытесненный тред зависшим processor)
Проблемы распределённых систем
Ещё раз, где ты нашёл это определение? Ссылку.
> Проблемы распределённых сетей это не сеть и её надежность
Разница в проблематике многопоточных и распределённых систем (на мой взгляд) в следующем:
1. В многопоточной системе ты не имеешь тотального порядка операций
2. В распределённой системе ты, к тому же, ещё фундаментально не имеешь и гарантии выполнения операций
Это разный класс проблем, требующий принципиально разных решений.
> это синхронизация состояния.
Распределённые алгоритмы не обязаны синхронизировать никакое состояние. К примеру, банальный vector clock никакого состояния в себе не несёт, он просто устанавливает причинность. Так что давай опять ссылку на книжку/статью/википедию, где ты вычитал про синхронизацию состояния.
Дедлока? Я его вообще не использовал, я могу только сослаться на оригинальную проблему, до того, как дедлок всплыл
https://govnokod.xyz/_29262/#comment-1353469
Там не про дедлок, там про наличие или отсутствие прогресса, пример включает в себя только один лок
- Это разный класс проблем, требующий принципиально разных решений.
Подмножество, нет?
Ну я про оригинальную проблему ничего и не говорил, я влез в тред, когда в нём появилось слово дедлок в странном (как оказалось неправильном) понимании. Менять определение на основе поста на govnokod.ru — это сильно, конечно, но давайте так не будем.
> Подмножество, нет?
Какая ма-те-ма-тика ))) Проблема в том, что если ты будешь использовать методы распределённых систем в многопоточных (подмножество же), то очень сильно соснёшь по производительности. Если будешь использовать методы многопоточки в распределёнке, то просто соснёшь. Поэтому многопоточные алгоритмы отдельно, а распределённые отдельно.
Это где «Корчеватель: Алгоритм типичной унификации точек доступа и избыточности»?
могли ли мы не дойти до "автор статей, текстов и постов"
там ребята из самого первого комментария (у которых можно мимо кэша цпу что-то писать и читать) тоже джавой на жизнь зарабатывают
Так кеш отключается же, а в 386 у меня никакого кеша нет
И я бы тоже покурил, но у меня нету кеш
В 486 кэш интегрировали в кристалл, да, поэтому кэш на материнке стал L2.
А у каких-то Пентиумов и К6 даже L2 интегрировали, поэтому кэш материнки стал L3.
Серьёзно, помнишь про MTRR (и теперь это PAT наверное), там вроде можно заказать анкешд
Можно написать, что твой акк взломали.
Можно написать, что ты троллил.
Можно написать, что ты бухал.
Но в любом случае тебя назовут какадемиком, вне зависимости от того, публиковался ли ты в реальности в какадемических журналах.
Меня очень интересовало, какие это у Шарика ученые труды. Но это так и осталось неизвестным. Марина говорит, что он родился с пером в руках, но больше никаких подробностей об его ученой деятельности не сообщает. Я стал допытываться и, наконец, узнал, что он больше по сапожной части.
— Дато!
— Да...
— Хуй на! Встань, когда с тобой учитель разговаривает. Расскажи, как ты решил задачу из домашнего задания.
— Я не сделал.
— Садись, два. Бесо!
— Да...
— Хуй на! Встань, когда с тобой учитель разговаривает. А ты сделал домашнее задание?
— Нет.
— Садись, два. Резо!
— Да...
— Хуй на! Встань, когда с тобой учитель разговаривает. А ты сделал?
— Я сделал. Могу показать.
— Ну ты прям профессор!
— Учитель!
— Да...
— Хуй на! Встань, когда с тобой профессор разговаривает.
Иканус, ты знаешь же кто такой бухал у болгар?
У ACM с января все публикации в открытом доступе. Кто-то с большим количеством свободного времени может устроить поиск, деанон, травлю.
Там шизов, подпадающих под требования, десятки тысяч будет
Таких там явно меньше
https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTCUSR9EzZqtcUKHMLUocP T4d-0NIoqQpkMKsel07UQeP3lXm7eJsTSUxo&s=10
Мне пофиг конечно и я под пивом
ЛА ЛА ЛА ЛА
¡Hasta la vista, baby!
2) y = f(g(x)) \/ y = g(f(x)) \/ y = f(x) \/ y = g(x) \/ y = x
Всегда ли можно применить метод, гарантирующий валидность `y' в случае 1 к случаю 2? (Множество y₁ является подмножеством y₂)
Допустим, f(x) = x + 1, а g(x) = x + 2.
В первом случае я могу доказать, что y = x + 3. Во втором — только что x ≤ y ≤ x + 3. Класс задач, который можно решить в обеих случаях, один и тот же или нет? Это какую-нибудь разницу во всякие там алгоритмы и методы привносит или нет?
Я ``защищаюсь'' от костяна, который успел обосраться и с дедлоками и со спинлоками, и теперь пытается вывезти на сёмантике вопросов ``да или нет'' в неоднозначном контексте и определениях, взятых из постов на гк? Пчел, ты...
Ты Костя Шестов, на сколько там личностей расщеплено твоё сознание — этим пусть санитары занимаются.
Про
> Ядра вполне себе распределённая система
тоже не ты писал? Ну вот тот, кто это писал, пусть читнёт хотя бы википедию, которая пишет следующее:
Distributed computing is a field of computer science that studies distributed systems, defined as computer systems whose inter-communicating components are located on different networked computers.
Или ядра у тебя тоже по-особенному определены?
Про
> Ну и умерший узел ничем функционально не отличается от того, до которого не достучаться
ты или не ты? Так это тоже галлюцинация. Из той же беспристрастной царицы наук, википедии:
The components of a distributed system communicate and coordinate their actions by passing messages to one another in order to achieve a common goal. Three challenges of distributed systems are: maintaining concurrency of components, overcoming the lack of a global clock, and managing the independent failure of components.
В распределённой системе ты не можешь знать, произошло у тебя independent failure of a component или сеть отвалилась, а в многопоточной — можешь. В распределённой системе у тебя есть clock skew, а в многопоточной нет. И т.д. и т.п.
За несколько часов мог бы просто найти во всемирной сети ``Интернет'' определения вместо того, чтобы играть в ма-те-ма-тика с множествами и подмножествами.
Так правильно я тебя понял, или нет?
Если в домене A есть три челленджа 1 / 2 / 3, то означает ли отсутствие челленджей 2 / (3) в домене Б непересечение доменов? Тот же вопрос про полное включение одного домена в другой?
Если я сделаю систему без каких-либо часов - она физически не сможет быть распределённой?
Кстати, если я подниму на локалхосте постгре и клиент к нему, это будет распределенной системой, сохранит проблематику?
Нет.
Многопоточка сабсет распределёнки.
Следовательно в распределёнке проблематика шире, чем в многопоточке, а доступные возможности уже.
В распределёнке появляется дополнительная сложность, которая инвалидирует некоторые решения, доступные в многопоточке.
Спасибо. Как тебе такая идея: изучение сабсета распределённых алгоритмов, которые являются многопоточными, но не взаимодействуют по сети, мы назовём многопоточным программированием. А сабсета взаимодействующих — распределённым. Мне это почему-то кажется разумным.
> В распределёнке появляется дополнительная сложность, которая инвалидирует некоторые решения, доступные в многопоточке.
Кстати, сегодня меня впервые меня победили в споре, просто повторив мой собственный тейк. Как это крыть?!
Ты: "Если я сделаю систему без каких-либо часов"
То, что есть "пересечение множеств", это не опровергает тезис "не любую задачу". К примеру, можно придумать распределённую систему, где ноды вообще друг с другом не общаются. И?
На горе А протянуты канаты, поэтому можно пройтись, держась за них. На Эвересте канатов нет и не будет. Перестает ли от этого восхождение на А быть горным восхождением?
Плохие аналогии — они как звёзды.
1. На Эвересте канаты есть: https://explorersweb.com/newcomers-guide-fixed-ropes-in-himalayan-climbing/
2. Даже если определённое множество решаемых задач в мп. и р. системах пересекается, то каждая дисциплина всё равно использует кардинально разные методы решения этих задач. В р. тупо недоступны большинство стандартных инструментов мп.: shared memory, atomic operations, barriers, etc. Решение задач мп. программирования методами р. — это, внезапно, что-то вроде Erlang. Но большинство ЯП не являются Erlang, и на то есть причины (a.k.a соснёшь по пирфомансу).
3. Но в "пересекающемся подмножестве" есть ещё одно подмножество вырожденных случаев распределённых систем с количеством нод = 1. Чисто технически, можно сказать что тут-то точно всё одно и то же, и ты привёл неоспоримый аргумент. Однако, если это твой аргумент, то ты теряешь время, получая 100$/ч программистом, и тебе нужно немедленно валить в адвокаты, и получать 10000$/ч: "ваша честь, говно клиента коснулось трусов, но осталось в штанах, значит, согласно $1.22.4 кодекса о срачах, он не обосрался"
Но есть же тренд на "Don't communicate by sharing memory; share memory by communicating".
Это главный подход в говнорутинах, например (разве что крэш они не пережиывают)
Но это вообще не главное. Предвидя закономерный уход костяна в частные случаи и то, что он начнёт доставать определения р.с. из широких штанин, статей на хабре и постов на уютненьком, я заранее расставил столбики:
> И многопоточность с распределённостью, на мой взгляд, тоже никак не связаны, т.к. ряда проблем, характерных именно для процессов, взаимодействующих посредством ненадёжной сети, там нет.
> Разница в проблематике многопоточных и распределённых систем (на мой взгляд) в следующем:
> 1. В многопоточной системе ты не имеешь тотального порядка операций
> 2. В распределённой системе ты, к тому же, ещё фундаментально не имеешь и гарантии выполнения операций
Т.е. из всех возможных шизоопределений распределённых систем, которые можно найти в интернете в любом количестве и на любой вкус, я (перефразируя) выбрал следующее: р.с. — это система, охарактеризованная случайной потерей эффектов. Оно эксплицитно исключает "подмножество программ, где эффекты не теряются" ^___~
Это была моя bad faith ловушка.
А то, что я потом писал про методологию и инструменты — это было в рамках good faith дискуссии. Я бы, конечно, предпочёл, чтобы дискуссия продолжилась в рамках good faith, конструктивной дискуссии, т.е. без попыток подловить на слове, но тут так не принято, и я к этому был готов.
Есть три стула
+ Consistency
+ Availability
+ Partition tolerance
Выбери любые два.
Внутри одной машины у тебя нет необходимости автономной работы двух систем: они всегда могут расчиывать на оперативку, как на source of truth.
Интернет между узлами может порваться, и каждый останется в своем мире.
А UPI (или как оно там у интела называется сейчас) и HyperTransport на материнке порваться не могут.
Но дело-то вообще в другом - если у тебя отсутствует подкласс проблем, то это не значит, что система не подходит под описание.
К примеру, я пишу в память A и B, ставлю полный забор, алгоритм когерентности кеша раскатывает это по всей системе, но ядро в другом гнезде видит только B, потому что пакетик с "A" ты раздавил гвоздем, но твой алгоритм ловко обрабатывает эту ситуацию, так?
Проблемы сети вторичны, они как правило просто усиливают те же феномены, что присутствуют и при здоровой сети. Пример первичной проблемы - одновременное обновление регистра из двух мест и разрешение такого конфликта. Ты можешь упороться надёжной сетью и монотонными часами, но конфликт это избежать не поможет.
> а алгоритмы для многопоточного программирования конечно же учитывают ковыряние гвоздём QPI.
Они просто не принимают проблемы хардвара в расчёт как failure mode, вот и всё. То, что они туда не смотрят, не убирает той же проблемы синхронизации обновлений, что и написана выше.
> К примеру, я пишу в память A и B, ставлю полный забор, алгоритм когерентности кеша раскатывает это по всей системе, но ядро в другом гнезде видит только B, потому что пакетик с "A" ты раздавил гвоздем, но твой алгоритм ловко обрабатывает эту ситуацию, так?
Нет, мой алгоритм просто не учитывает подобные ситуации. Это никоим образом не характеризует систему, внутри которой он работает. Если я пишу однопоточное приложение, то оно же не обязательно запускается на одноядерной системе и не шедулится на одно и то же ядро, так?
Разумеется. Ты можешь получить пакет с опозданием в час. Формально сеть будет работать, просто очень медленно.
> Они просто не принимают проблемы хардвара в расчёт как failure mode, вот и всё.
Да, они пишутся против абстрактной машины, которая удовлетворяет некоторым условиям.
Скажем, для сортировки пузырьком нужно, чтобы эта машина могла сравнивать числа.
Если у нас будет пролетать нейтрино, и результаты сравнения каждый раз будут разными, пузырёк работать не будет.
В рамках одной машины я могу игнорировать нейтрино, а в рамках распределенной системы, увы, игнорировать разрыв подводного кабеля не могу.
> Если я пишу однопоточное приложение, то оно же не обязательно запускается на одноядерной системе и не шедулится на одно и то же ядро, так?
Нет, но и компилятор, и процессор, и операционная система гарантируют тебе, что поведение будет такое, словно бы оно шедулится на одном ядре.
Если у тебя в коде написано:
10 B$ = INPUT
20 PRINT B$
то на строчке 20 ты всегда увидишь то, что туда написали на строчке 10, даже если нелёгкая перенесет тебя на другое ядро со своим кешем и своими регистрами (хотя шедулер от нехуй делать так делать не станет, чтоб не проебывать кеш)
Нет, задержки я не считаю за здоровую сеть.
> а в рамках распределенной системы, увы, игнорировать разрыв подводного кабеля не могу.
Почему? Редис же так делает. Просто система будет неустойчива к разрывам, таких миллион. То, что какой-то возможный факап игнорируется, ещё не отменяет разнесение процессов по земному шару, неработающая система в семи датацентрах по-прежнему будет распределённой (ну, пока все узлы действительно принадлежат к одной системе и пытаются коммуницировать).
> Нет, но и компилятор, и процессор, и операционная система гарантируют тебе, что поведение будет такое, словно бы оно шедулится на одном ядре.
Но это же не отменит, скажем, нумы? Программа будет страдать от перформанса, но при этом всё равно попадать в класс программ, работающих на неоднородном хардваре.
hm, define "задержки"
1ms это задержка?
100ms?
> Но это же не отменит, скажем, нумы? Программа будет страдать от перформанса
Это зависит от кривости рук тебя (как программиста) и твоего админа.
Если админ правильно распределил DIMMы, то скорее всего каждое ядро получит по половинке
Пока твой WorkingSet/RSS не стал больше половины оперативки ты, скорее всего, в безопасности (диспетчер виртуальной памяти вероятно будет стараться выделять тебе страницы из одного узла)
Для гурманов есть API, но поскольку ты однопоточен -- тебе оно не поможет
Там нет четкого барьера. Час это задержка. Десять миллисекунд при RTT в пятьдесят - вряд ли, но если например приложение самоконфигурируется, подсчитывая что-то по недавнему окну замеров, то оно может схлопнуться. В реальности всё будет зависеть от конкретного приложения и где и какие таймауты оно использует.
Я привык к моделированию возможной плохой сети как к квартету delay, duplicate, drop, reorder - задержка это один из четырех обязательных всадников, которые надо тестировать.
В model checker-ах любой конечный таймаут в коде делит путь исполнения надвое, так что ``барьер'' там один: бесконечность, т.е. его нет. Если вам было недостаточно весело, то задержки могут происходить не только от сети, но и от OS, нужно учитывать случаи, когда система зависла в сисколле или случаи SIGSTOP/SIGCONT, при которых TCP keepalive может продолжить keep alive.
Раз речь шла про множества и подмножества, определим парочку:
y₁ = {f(g(x)), g(f(x))}
y₂ = {f(g(x)), g(f(x)), f(x), g(x)}
Моё изначальное определение, если сделать его ещё более формальным: распределённые системы — это область знаний, изучающая свойства алгоритмов с областью определения на y₂. Многопоточка — с областью определения на y₁.
Твой тезис, если я его правильно распарсил: y₁ ⊂ y₂, значит многопоточные алгоритмы являются распределёнными. Области определения работают совершенно не так. Если Dom(f) = y₁ и y₁ ⊂ y₂, нельзя сказать, что Dom(f) = y₂. Обратное тоже не верно, НО для любой f c Dom(f) = y₂ можно определить f' c доменом обрезанным до y₁ (https://en.wikipedia.org/wiki/Restriction_%28mathematics%29). f' — это совершенно новая функция, но её по крайней мере всегда можно сконструировать. Т.е. верно скорее обратное: из всего множества валидных распределённых алгоритмов можно составить сабсет валидных многопоточных.
Ещё один максимально неформальный пруф, иллюстрирущий это. Допустим, мы рассматриваем конечные множества известных валидных алгоритмов (сознательно ограничиваю рассуждения до известных, чтобы работать с конечными множествами и избежать багра uncountable numbers). Известных валидных многопоточных алгоритмов существует больше, чем валидных распределённых. Конечное множество с бóльшим количеством элементов не может быть подмножеством меньшего.
be viewed as a distributed system in which the central
control unit, the memory units, and the input-output
channels are separate processes.
Какой багор! Оказывается, в интернете можно размахивать любыми авторитетными источниками, пока они подходят под ту сторону, которую ты занимаешь в споре - их будет столько, что подходящие найдутся всегда.
Это Лампорт, если что. Но ещё смешнее следующее:
A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.
Потому что это тоже Лампорт!
https://gcode.space/#!/27544#comment653146
> Система с числом нод == 1 — это частный случай распределённой системы.
Там ты, ЕМНИП, с этим спорил ещё.
даша пишет
@Tihiipiket
·
9 jun.
МОЙ МУЖ КУКОЛД
Неопубликованная колонка
Муж не в первый раз помогает мне собраться на свидание с другим мужчиной.
- Как я выгляжу?
- Очень хорошо, тебе вообще идут такие платья.
Да и заглавные буквы мне лень писать. А переключение языков лень в двойне. Пока что с этим справляется punto-switcher. Прога которая это всё делает автоматически. И да лень не потому что ленивый - просто есть вещи программинг - который забирает все силы. Чем больше сэкономлю везде где можно, тем больше потрачу на полезное. Которое я считаю полезным. А то щас прицепятся - что моё полезное не совпадает с полезным общественным.
Именно поэтому я против NixOS. Блог, кстати, полон драмы, скандалов, интриг и расследований. Вчера целый вечер читал.
ай блядь
https://bumsrake.de/
> The kernel's software AES-GCM
всегда
Угадайте как я
это ж-куиик?
https://github.com/jqwik-team/jqwik/blob/53164f745be8d4e904d6a96998cc481f6672b9a7/engine/src/main/java/net/jqwik/engine/facades/CombinatorsFacadeImpl.java#L59
Подстава в новых версиях Андроида. Иногда жрёт аккумулятор, иногда не даёт выбрать некоторые файлы. Короче, работает случайным образом. Удалять нельзя, иначе файлы с /sdcard ты вообще не выберешь. Полная жопа.
Похоже, десятый Андроид был последней нормальной версией.
всё правильно vorec делал
— Пашка, если ты настоящий, напиши в статусе во Вконтакте какую-нибудь бессмысленную, но уникальную фразу. Например, «subvert the paradigm».
— Сделал!
А вы знаете, что НЕ?
А вы знаете, что БЕ?
Что на небе вместо солнца
Скоро будет колесо?
Скоро будет золотое -
Не тарелка, не лепешка, -
А большое колесо!
https://pbs.twimg.com/media/HKW5N37WwAA49CL?format=jpg&name=medium
Сейчас синтаксически правильный код может создавать ИИ помошник, а человеку надо фокусироваться на задачах более высокого уровня — "что сделать", а не "как написать".
Там у авторов что-то с головой странное. Они называют чистыми функции, которые выполняют операции I/O. Они утверждают, что не нужен сборщик мусора, но тут же поясняют что autofree не работает и поэтому везде нужен сборщик мусора.
У них hello world на момент анонса языка в котором уже делались громкие заявления о том, как он всех победил - падал с segmentation fault.
Авторы языка выставили себя на посмешище и с тех пор заметно лучше не стало.
> Я бы даже сказал vlang -- это Rust здорового человека.
Да, где-то там в мире фантазий, в котором vlang - работает. В реальном мире просто он, в отличие от раста, не работает. Плюс см. что-то странное с головой у авторов.
Какой багор )))
Для этого даже не надо писать плохой компилятор. Достаточно поднасрать в стандартную библиотеку.
о, ещё одни поцы, которые путают optional и result
густо запахало ротоебьим PHP:
https://github.com/vlang/vorum/blob/5535940165c145bca0f5025ac1d1772b7ab28a7c/oauth.v#L38
Ну там хотя бы подготовленные запросы!
> 41: user_id := app.db.q_int('select id from users where name=\'${login}\' ')
...ок.
https://govnokod.ru/29267
https://govnokod.xyz/_29267/