- 1
IT Оффтоп #194
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IT Оффтоп #194
#164: https://govnokod.ru/28527 https://govnokod.xyz/_28527
#165: https://govnokod.ru/28557 https://govnokod.xyz/_28557
#166: https://govnokod.ru/28574 https://govnokod.xyz/_28574
#167: https://govnokod.ru/28588 https://govnokod.xyz/_28588
#168: https://govnokod.ru/28607 https://govnokod.xyz/_28607
#169: https://govnokod.ru/28628 https://govnokod.xyz/_28628
#170: https://govnokod.ru/28653 https://govnokod.xyz/_28653
#171: (vanished) https://govnokod.xyz/_28665
#172: https://govnokod.ru/28675 https://govnokod.xyz/_28675
#173: https://govnokod.ru/28681 https://govnokod.xyz/_28681
#174: https://govnokod.ru/28689 https://govnokod.xyz/_28689
#175: https://govnokod.ru/28696 https://govnokod.xyz/_28696
#176: https://govnokod.ru/28703 https://govnokod.xyz/_28703
#177: https://govnokod.ru/28709 https://govnokod.xyz/_28709
#178: https://govnokod.ru/28716 https://govnokod.xyz/_28716
#179: https://govnokod.ru/28726 https://govnokod.xyz/_28726
#180: https://govnokod.ru/28734 https://govnokod.xyz/_28734
#181: https://govnokod.ru/28739 https://govnokod.xyz/_28739
#182: https://govnokod.ru/28749 https://govnokod.xyz/_28749
#183: https://govnokod.ru/28777 https://govnokod.xyz/_28777
#184: https://govnokod.ru/28790 https://govnokod.xyz/_28790
#185: https://govnokod.ru/28794 https://govnokod.xyz/_28794
#186: https://govnokod.ru/28815 https://govnokod.xyz/_28815
#187: https://govnokod.ru/28833 https://govnokod.xyz/_28833
#188: https://govnokod.ru/28837 https://govnokod.xyz/_28837
#189: https://govnokod.ru/28840 https://govnokod.xyz/_28840
#190: https://govnokod.ru/28875 https://govnokod.xyz/_28875
#191: https://govnokod.ru/28878 https://govnokod.xyz/_28878
#192: https://govnokod.ru/28886 https://govnokod.xyz/_28886
#193: https://govnokod.ru/28911 https://govnokod.xyz/_28911
Этот оффтоп сгенерирован автоматически.
Индекс оффтопов: 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.
Остерегайтесь подделок. Берегите себя и своих близких. Кок!
nepeKamHblu_nemyx
https://www.americanas.com.br/produto/3380477070/leite-po-ninho-integral-380g-nestle
You don't have permission to access "http://www.americanas.com.br/produto/3380477070/leite-po-ninho-integral-380g-nestle" on this server.
А самое смешное где?
https://youtube.com/shorts/AnB7P8rkrxg?si=M10KW2XjIbyR4cL2
https://gist.github.com/snipe/5159667/revisions
> Forks 1
ахаах
Утром на рассвете.
Я очень сильный, потому что ем шпигат
охуясе, ты морской волк!
https://pbs.twimg.com/media/GE8SDBPWwAAnlSP.jpg
https://youtu.be/fDXfeXzJvmU
> featured Orange in a hat
Только сейчас заметил.
Ze zijn erg leuk, grappig (soms) en goed om Nederlands te leren
je moet proberen ze kijken! je zal hen wel leuk vinden
иди штурвал крути, полиглот
А я думал -- сова..
Ich will in vier Wochen A1 bekommen
https://ru.m.wikipedia.org/wiki/Серый_Волк_энд_Красная_Шапочка
https://www.youtube.com/watch?v=jqCGzCnanTY
https://www.youtube.com/watch?v=V8IJktvS0Tg
Всем хуедах, короче
https://pbs.twimg.com/media/D37mofsUwAAlNL3?format=jpg&name=4096x409 6
https://www.youtube.com/watch?v=6vbq1rpyt_A
Глянь сюда:
https://de.m.wiktionary.org/wiki/wiederkommen
В нидерландском такое же бывает, насколько я понял.
Реальные примеры:
wiederholen - приносить снова
⠀
Das Kind holt den Ball wieder = Ребёнок снова приносит мяч
wiederholen - повторять
Er wiederholt meine Worte = Он повторяет мои слова
Ещё знаменитый пример — übersetzen. Этот глагол при спряжении пишется слитно, когда переводят на «PHP» с языка для калькуляторов, и раздельно, когда кого-нибудь переводят через майдан, через родное торжище людское.
ыыыыыыыыыыыыыыыы
оппа!
всё!
проверй
https://context.reverso.net/перевод/немецкий-русский/wiederkommt
https://context.reverso.net/перевод/немецкий-русский/kommt+wieder
Похоже, дело не в распространённости предложения. Слитно пишут в придаточном.
Есть глагол, ну например uitleggen (дословно "выложить". Перевод -- объяснить).
Приставка может стоять в жопе
Ik leg het uit: я объясню
А может слиться в глаголом
ik kan alles uitleggen.
А может между ними быть te
Moeilijk uit te leggen
наконец, в перфетке туда могут запиздюлить ge
ik heb al alles uitgelegd
Я всё время представляю, как это было бы в русском
"Я могу всё об, нахуй, яснить тебе!"
https://de.m.wiktionary.org/wiki/Flexion:wiederkommen
Обожаю немецкий Викисловарь
за раздел Flexion.
Как бы объяснить не знающим немецкий? Вы видели future-in-the-past perfect continuous? А теперь представьте, что это ещё в сослагательном наклонении и в страдательном залоге.
Ебать я так никогда не говорю, конечно.
* настоящее время tegenwoord: ik drink
* прошедшее незавершенное ik dronk (это неправильный глагол, ну и похуй)
* прошедшее завершенное: gisteravoond heb gedronken
* будущее: zal ik/ gan ik drinken (это просто модальные глаголы)
* континиус nu ben ik aan het drinken
* еще какое-то суперпрошедшее время (забыл) ik had gedronken
вроде все?
инью, помогай
иканус, у немцев тоже само?
PS: Есть еще супервежливая форма, напоминающая английское would you.
Zou je met mij iets willen drinken.
zou это прошедшее от zullen (как would прошедшее от will)
Дословно: "не желал-бы ты чего-то со мной выпить"
- настоящее
- прошедшее
- перфект
- плюперфект
- будущее
- будущее перфект
- условное
- условное перфект
Континуос почему-то не особо попадает в этот список, хуй знает почему
* настоящее: ich trinke
* прошедшее повествовательное (незавершённое): ich trank
* прошедшее разговорное (завершённое): ich habe getrunken
* давнопрошедшее (только в сложных предложениях): ich hatte getrunken
* будущее: ich werde trinken
* предбудущее (только в сложных предложениях): ich werde getrunken haben
Континууса нету. Есть два страдательных залога (обычный и результативный) и два сослагательных наклонения (конъюнктив и кондиционалис).
Супервежливая форма образуется от сослагательного наклонения глагола mögen (в нидерландском есть похожий глагол, но у него другое лексическое значение): ich möchte mit dir trinken (да, это неправильный глагол, как все модальные). Однако, «давай выпьем» будет «wollen wir zusammen trinken?»
https://govnokod.xyz/_28298/#comment-818491
Вроде одни и те же, а семантика не совпадает.
Как я сказал, континууса нету, но есть причастие настоящего времени и деепричастные обороты.
Bellend geht der Hund durch die Straße = Лая идёт по улице собака.
Der bellende Hund geht durch die Straße = лающая собака идёт по улице.
Тут мы описали сразу два действия (собака лает и идёт) и сразу видно, что действие продолжается.
haha. Dit woord betekent "звонить" in net Nederlands
У англов тоже впринципе оно понимаемо
https://github.com/jckarter/clay
компирятол ЯПа клэй
Можно слать
А существует анимешный гологуб, топящий да политику Путина, живущий в России?
Может, это стеганография? Невозможно же на серьёзных щах публиковать такое.
Nachrückplatz.
https://context.reverso.net/перевод/немецкий-русский/nachrücken
https://ru.m.wiktionary.org/wiki/nachrücken
В данном случае «нахрюкплатц» означает стоянку такси.
Helaas, spreek it geen duits, dus kan ik je niet begrijpen.
Maar ik ben veertig jaar oud. Ik ben zo oud net zoals de shit van de mammoet. Te oud om een andere taal te leren.
PS: In de school leerde ik Engels, dus ik kan Engels goed begrijpen, spreken en schrijeven (ik heb ongeveer B2 neveau denk ik) maar Nederland is erg moeilijk:(
Мне мьютекс не нужно копировать. Писать обёртку вокруг мьютекса и в конструкторе копирования его игнорить? Или сделать shared_ptr?
А как ты собирался его игноррировать при копировании? Новый мютекс создавать что-ли? Кажется, что это сломает семантику, и лучше бы тогда структура не копировалась вовсе
PS: У нас в друстне ты физически не можешь мютекс никуда скопировать (только мувнуть с известными последствиями), потому если ты хочешь его юзать -- ты обязан боксануть его в кучу, и завернуть в Arc.
Arc это как reference counter, но потокобезопасный (он реализует нужный трейт, без него вдругой поток не попадеш)
Если кто-то скопировал структуру, то у неё должен быть свой мьютекс.
Тогда ты можешь сделать копирующий констурктор, который копирует мьютекс, и в доке описать семантику.
PS: А какой sizeof у гигантской структуры? Если там сто метров, то может и не надо её копировать никогда? Лучше пусть она всегда в куче живет и умным укозателем управляется?
Я джава ебал
Кстати, шаред стейт я тоже ебал в большинстве случаев. Я за акторов, сообшающихся через каналы, если что
Но может быть тебе это нужно для пифоманса
Если же хочется продолжать ебать осла — сделай явный конструктор копирования, который будет инициализировать новый мьютекс (в member initializer list, например), потом брать оригинальный мьютекс, копировать все поля, и отпускать оригинальный мьютекс (через std::lock_guard, разумеется).
Рустня, к пимеру, умеет так.
`lock` возвращает RAII обёртку (типа вашего :lock_guard,) которая при выходе из скоупа уменьшает мьютекс, но кроме того он реализует `deref`, который вощвращает сам объект.
так что мьютекс не нужно хранить вструкутре
Тут
напиши мне класс-шаблон, параметризуемый питухом, который содержит петуха и мютекс, и дерефернсится беря мютекс, и возвращая указателя на питуха, чтобы было как в примере с растишкой
а то я сам напишу
https://gcc.godbolt.org/z/1T9W9nT89
Делать безопасно (чтобы нельзя было дёргать питуха напрямую, или, например, сохранять результат unwrap()) лень, да и не особо нужно.
Зачем ESC открывает рекламу хрома -- я не знаю
До тридцати девяти лет я работал баристой, и компбютерами не интересовался, но потом решил вкатиться в айтишечку, прошел месячные курсы, и вот я уже фронт-энд разработчик!
https://pbs.twimg.com/media/GGuAPi4XIAI9kkN?format=jpg&name=900x900
Здесь 64x64 — размер курсора, +13+14 — его смещение от левого верхнего угла скриншота.
Даже запускать графический редактор не надо.
Я предлагаю с другого компа подцепица по VNC/RAdmin и заскриншотить
https://i.imgur.com/I9uRDC7.jpeg
> Даже запускать графический редактор не надо.
У тебя оперативы мало для него?
Можешь ещё погуглить cur-файлы от Винды (подсказка: cur — это от слова «курсор»).
> У тебя оперативы мало для него?
Я показал, как наложить картинку на картинку, не делая 100500 кликов, а тебе не нравится.
да поторапливайся, мне к вечеру надо
https://learn.microsoft.com/ru-ru/windows/win32/menurc/images/idc_arrow.png
Вот тут ещё несколько:
https://learn.microsoft.com/ru-ru/windows/win32/menurc/about-cursors
Короче, нужно разбираться с драйверами и GDI.
https://learn.microsoft.com/en-us/windows/win32/gdi/device-dependent-bitmaps
# Заключает аргумент в кавычки.
#@ Заключает аргумент в одинарные кавычки.
https://ani.cursors-4u.net/symbols/sym-9/sym812.cur
СЁМА ХУЙЛО
аахахаа
наложил тебе в штаны, проверь
Minimum supported client Windows 2000 Professional
А как же деды делали?
> CURSORINFO
CURSOR_SUPPRESSED
0x00000002
Windows 8: The cursor is suppressed. This flag indicates that the system is not drawing the cursor because the user is providing input through touch or pen instead of the mouse.
Начиная с восьмёрки, курсор можно скрывать, оказывается.
Да также
Это просто минимамльная версия, которую там пишут
ниразу не видел там NT 3.1
CD-ROM с MSDN от Visual Studio 6.0?
https://sourceforge.net/projects/win32-help-chm/files/
Ваще я бы на старую версию struct CURSORINFO посмотрел если был бы CD-ROM
иди нхй
Посмотри внимательнее на енум
Я кстати не знаю, что такое suppressed, но майкам явно повезло с BOOL
> Windows 2000
Забыл, что еще тень нарисовать
А насчет дидов хуй знает, надо репу чесать
Так-то поле Flags, а в нем вместо флагов енум намекает нам, что раньше было BOOL lVisible или как-то так.
А suppressed это видимо "скрывать при вводе с клавиатуры" из мышеопций и т.д.
https://pbs.twimg.com/media/GGsfuJDX0AAcrFh?format=jpg&name=large
https://youtu.be/mqgJ0BDHBCY
Покекал с тряпкоголовых и ослов
https://twitter.com/lgj170/status/1758387667883225404
https://pbs.twimg.com/media/GGsNKU3XIAEAQQm?format=jpg&name=medium
Не очень понятно
Но сейчас стало не особо актуально, потому что файлы, которые я накачал с веб, оказались все длиной 8 байт.
В статье есть ссылки на исходники конь-вертеров:
https://en.m.wikipedia.org/wiki/Apple_Icon_Image_format
В Андроиде с Google Services Framework такая же питушня. Нужно удалять GSF или хотя бы заменять его на microG, чтобы не смогли удалённо вайпнуть.
> Apple appears to say that there is a back door in MacOS for automatically updating some (all?) apps.
К слову, в Windows 10-11 отключить автообновление стало не так просто, как в предыдущих версиях.
https://i.postimg.cc/hjD1G9gc/1.png
В обычных шрифтах композиты просто добавляли надстрочные знаки (ударения, умляуты). В цветных шрифтах композиты стали использоваться для флагов (типа буква R плюс буква U — это флаг РФ) и для изменения цвета кожи смайликов (diversity) или для выбора пола смайлика.
С изменением характеристик смайликов всё плохо: разные рендерилки поддерживают разные сочетания, при неподдерживаемом сочетании композит развалится на два знакоместа.
Ну вот яблоёбы зачем-то добавили смену цвета мячей...
Хотеть флаг Черноруссии!
Внимание вопрос: был-ли туалет женский или мужской?
Даже в скрепной есть:
https://twitter.com/SKaverzina/status/1600088923182702592
#gologub
в них ебли анжелу девис
Девис жива, кстати. Работает профессором каких-то гарбидж стадис. Учит молодых американцев любви к хамасу и ненависти к белым капиталистам. Гологубу зайдет
как что-то плохуе
арабы имеют право на самозащиту
Зато понятно на каких сиденьях одноклассники
И он заблевал нам пол коридора
Oklahoma’s medical examiner on Wednesday ruled that nonbinary teenager Nex Benedict died by suicide in a death that friends and family said came one day after a beating at school that culminated a pattern of bullying due to their gender identity.
The summary report released by Oklahoma’s chief medical examiner on Wednesday found antidepressants and antihistamines in Benedict’s system in addition to blood about the nose and mouth.
The summary also cited, “Other significant conditions contributing to death (but not resulting in the underlying cause given).”
Я тогда меняю освежитель воздуха в толчке
смегма первого отжима свободного выгула
- США
- России
- Ниггер-ландах
- Германии
?
дето 8 евро наверноре
hij draait aan mijn stuur: он вращает мой штурвал
Bormand en Stertors zijn samen het stuur aan het draaien: Борманд и Стертор вместе вращают штурвал прямо сейчас
's Nachts draai ze aan een mooi stuur: ночами крутят они красивый штурвал
Toens draaide ik aan het stuur: тогда крутил я штурвал
Ze draaiden aan het stuur: они крутили штурвал
Gisteravond heb een stuur gedraaid: прошлой ночью покрутил я штурвал
Laten we iests draien? Давайте что-то покрутим
Zou u mijn stuur een beetje kunnen draaien?: Не могли бы вы пожалуйста немного покрутить мой штурвал?
Скорее всего там 30см стоить будет в районе 6-7 эвро. То скорее всего будем рассчитывать значит пицца за 40см будет стоит в районе 10-12 евро. И это будет вкусная пицца а не уебанская.
Берем Итальянскую, ту хотябы см есть: https://www.pizza-vl.ru/ раньше топ были, ща пиздец уебанство стало но не суть цена за уебанство не снизелась. Какая нибудь сливочная 40 см тоже будет стоит в районе 10-12 евро за 40см.
Берем оприори узбек уебанскую пиццу:
https://pizzalarenzo.ru/
https://pizzariko.ru/
Тут уже цена за 30см идет 5-6 евро. Не велика разница.
Берем пиццу для хипстеров: https://zazacafe.ru/
Цена аналогична.
В итоге среднем в златохуйске пицца будет стоит в районе 11 евро за 40 см.
Я как-то интереса ради шукал луашников на работе.
Парочка старых крестоблядей с гейдевкиным бекграундом умела в луа, а большинство скриптушков и джавушков даже слова такого не знали
россияская культура запрещается на западе вот это всё
у тебя может быть еще и видак JVC был???
https://www.youtube.com/watch?v=YEXV6C4pZEo
Некоторые даже говорили: «Встретимся у Голдстара». Все понимали, где это.
Когда «Goldstar» развалили, рекламку сменили на «LG». Количество световых эффектов сократилось до двух: синхронное мигание и мигание в противофазе.
Рядом с этой рекламой висели электронные часы. Иногда их глючило, и они вместо 12:34 могли показать 43:21 или ещё какую-нибудь хуету, не укладывающуюся в формат времени. Ума не приложу, как можно было так глючно запрограммировать часы.
Кстати, у меня была видеокамера «JVC», только она довольно поздно появилась, я на неё толком ничего не снял, а потом она стала не нужна в связи с появлением других устройств.
Когда-то JVC было много, к примеру огромные буквы JVC на улицах Минска можно наблюдать в клипе группы "сьцяна", повествующем о тн "минской весне" -- серии антилукашенковских протестов в 1997-м году.
https://www.youtube.com/watch?v=SUR4pnWMcQk (1:49)
Такойц вот:
это был "пишущий плеер"
сколько ампер 12V?
а у пищушего плеера запись только с НЧ и только по нажатию кнопки
https://pbs.twimg.com/media/GErXgN4XcAA9gx-?format=jpg&name=900x900
https://pbs.twimg.com/media/GGzTNgbXAAAqWHT?format=jpg&name=medium
https://www.kursivom.ru/wp-content/uploads/2021/07/priklucheniya_murzilki_1988_01.jpg
https://www.kursivom.ru/семёнов-приключения-мурзилки-1/
https://www.kursivom.ru/wp-content/uploads/2021/07/priklucheniya_murzilki_1988_07.jpg
В какой момент паскаль стал языком де-факто для обучения?
Во второй половине 90-х он уже им прочно был, а скажем в 80-е детей учили байсику
Если Паскаль, то под названием Борманд, была только седьмая версия, а именно полный комплект: под реальный режим ДОС + под DPMI + под Windows.
Была также седьмая версия под названием Турбо, там было два отдельных комплекта: один с библиотеками и средой под ДОС, другой с библиотеками и средой под Windows.
Предыдущие версии были только под названием Турбо.
Если про Си, то с названием Турбо были только старые версии (до 3.0 вроде), потом сишка стала выходить под названием Борманд. Точный порог не помню. 4.5 и 5.0 уже были под названием Борманд. И 32-битный вариант вроде в районе четвёртой версии появился.
куууик
С тех пор так и повелось: нормальные языки у Борманда, а у Майкрософта -- барсик
а что лучше -- турбо амеблер или макроасемблер?
Кстати, был ещё Турбо Пролог. Где-то его даже пытались преподавать.
Зато он поставлялся с GORILLAS.BAS. Куууик!
Кууик они сделали, потому что всё остальное у них в то время было кууууик, включая ЙгшслРудз
Никакого function level linking не было.
С радостью наблюдаю, как выкинули на мороз куски ООП в Ржавом и Говне
В Рустне можно, конечно.
В C# забавно сделано: там struct это value тайп с соответстующей семантикой копирования, а class это ref тайп, который сразу идет на кучу (если джит не решит иначе) и ты с ним работаешь по ссылке
там вроде сделали эскейп анализ для скаляризации, и выяснили, что все перф-уебки и так делали всё, что им нужно, на структурах. то есть оно есть, но для конечного пользователя практически бесполезно. мораль: не копируйте у жвм фичи, которые созданы специально для затыкания дыр джавы, которые она не может заткнуть сама
Беда в том, что разницу чувствуют только очень скилловые питухи, а 90% говнокодеров в ней плавает.
Куча-хуюча тоже относительное понятие.
К примеру, value type может боксануться вполне, а может оказаться в куче в качестве поля структуры
Эск анализ может перенести его в кучу потому, что он занимает овердохуя места (в го может)
Реф-тип о двух полях тоже может оказаться в стеке волею джита
https://www.kursivom.ru/wp-content/uploads/2021/07/priklucheniya_murzilki_1988_05.jpg
https://www.kursivom.ru/wp-content/uploads/2021/07/priklucheniya_murzilki_1988_06.jpg
https://www.kursivom.ru/wp-content/uploads/2021/07/priklucheniya_murzilki_1988_12.jpg
https://www.kursivom.ru/wp-content/uploads/2021/07/priklucheniya_murzilki_1988_09.jpg
https://www.kursivom.ru/wp-content/uploads/2021/07/priklucheniya_murzilki_1988_03.jpg
https://ru.fishki.net/picsw/092007/28/fortran/fortran_005.jpg
«Память домашних компьютеров обычно меньше мегабайта».
Это устарело уже в начале 90-х.
А в «Мурзилке» нет устаревшей информации, она более абстрактна и упорота, чем профессор Фортран.
Но потом ИСО не понравилось, что для физических величин кило = 1000, а для байтов — 1024. Тогда в ИСО решили переименовать старый килобайт (1024 байта) в кибибайт, а приставку кило всегда использовать для тысячи. Таким же образом появились приставки меби, гиби, теби...
Впрочем, у продавцов жёстких дисков уже давно «кило» означает тысячу.
К слову, кто-нибудь сейчас реально использует приставки киби, меби, гиби, теби, как рекомендует ИСО?
https://www.kursivom.ru/wp-content/uploads/2021/07/priklucheniya_murzilki_1989_03.jpg
https://store.steampowered.com/app/2731330/TROLEU/
посмотрел видео?
https://upload.wikimedia.org/wikipedia/commons/7/78/Pedrino.jpg
https://www.youtube.com/watch?v=iBS63txsYyU
из всех протоколов я слышал только про HDLC и X.25 (спринт)
https://www.youtube.com/watch?v=7MlRCkzLvkg
https://habr.com/ru/articles/406299/
В знакогенераторе нет никаких «пикселей», только наклонные отрезки.
https://dekatronpc.com/index.php/DekatronPC
Он ебанутый?
Теперь надо скачать локально, и только потом даст открыть
Только к тому времени pdf.js становится уже не нужен
Когда у меня глючит Windows, я просто звоню в Microsoft, и прошу исправить.
> Почему "код открытый" имеет исключительно значение "не нравится - не жри", "иди нахуй", т.е. откровенное хамство и больше ничего другое? На которое надо отвечать хамством и никак по-другому?
Когда тебе говорят "код открытый" это не приглашение к сотрудничеству, а скрытое хамство.
А в ООПу вас есть только объекты, которым вы можете посылать сообщения, и получать результат. Больше никаких структур у вас нету: только интерфейсы для сообщений.
Хорошо-ли это?
Это зависит. Кажется, что круные API лучше выражать в виде объектов, а внутри всё равно могут быть структуры, но в целом есть разные мнения.
Но объект должен отвечать за свое состояние, а структура никому ничего не должна.
И потому когда у жабаёба есть бин с аксессорами и мутаторами это никакой не объект, а просто структура, которой тупая жаба-макака ради карго-культа зачем-то нахуячила методов, и сидит довольная, уверенная что у ней не "устаревшее процедурное" а "современное объектно-ориентированное" программирование, а особо бесит когда чатсь объекта следит за состоянием, а часть тупо геттеры и сеттеры потому что жабаёбы тупые мудаки думают что программиисты а они хуисты а не программисты я всю общзественность подниму я их гадов срал-ебал я их ебал гадов срал могал тогал агала аага агаигфва гша
агва гыва
ыва гыва
ыва гшываа
цуанпангываппппппппппппппппывагшпыва
Patch reliability is unclear. Unless you have an immediate, pressing need to install a specific patch, don’t do it.
https://preshing.com/20120930/weak-vs-strong-memory-models/
?
Это и правда хорошая статья.
Я понимаю, что можно сделать такой сервер, но мне интересны реальные примеры.
https://datatracker.ietf.org/doc/html/rfc3875#section-4.1.7
я ведь сейчас проверю
Вот так вижу "asd"
А так вижу пустую страницу
Получаешь звание опотной веб-мартышки
А ты думал почему Юрик не может содержать?
uric не может сожержать "?", потому что ево нужно искейпить, типа `%3F`
>Какой probe contract )))
зато я написал настоящее веб-приложение на bashе, пусть и небольшое
или это педагогичность?
вечно путаю
а это не одно и то же?
педофил любит детей
Acqure/Release
https://preshing.com/20120913/acquire-and-release-semantics/
Sequental
https://preshing.com/20120612/an-introduction-to-lock-free-programming/#sequential-consistency
Есть понятие "happens-before". Если ты сделал операции "A" и "B" на одном треде, то другой тред видит сначала "A" а потом "B". Он не может увидеть только "B".
Это значит, что "A" happens before "B".
Без синхронизации таких гарантий нет (поменять порядок могут компилятор, процессор, "A" может застрять в буфере ядра и не показаться другому ядру и пр).
Работа с атомиками может пораждать happens-before.
memory_order_seq_cst: если thread2 видит тронутый первым тредом атомик, то он видит и ВСЁ что до этого было.
memory_order_relaxed: таких гарантий нет
memory_order_acquire: только для зависимых перемененых
итд.
Вот с этим знанием можно нырнуть в
Туториал GCC
https://gcc.gnu.org/wiki/Atomic/GCCMM/AtomicSync
Скучный референс
https://en.cppreference.com/w/cpp/atomic/memory_order
Happens before в JABA (очень простой: он там либо есть, либо нет, без всяких ордеров)
https://docs.oracle.com/javase/specs/jls/se8/html/jls-17.html#jls-17.4.5
> If the load of 'x' in thread 2 gets the results of the store that happened in thread 1, it must all see all operations that happened before the store in thread 1, even unrelated ones.
пока понятнее не стало
1) кто в итоге должен "видеть"? функции load/store или сам тред?
2) что значит "видеть" в принципе? как это выражается в данных и в инструкциях процессора?
я так понимаю, что внутри load/store просто есть какие-то инструкции, которые собственно и являются основой lock-free примитивов? то есть, по сути локи, только максимально низкоуровневые? а как оно знает, на что ему лочиться? из контекста компилятор выводит?
Thread1 (псевдо-асемблер)
Thread2 (псевдо-асемблер)
Thread2 считал по адресу 43 и увидел там значение "0xFA".
Вопрос: означает-ли это, что он обязательно увидит "0xFF" считав значение из 42?
Тот же вопрос на высокоуровневном пседовязыке
Thread1
Thread2
В общем случае ответ на оба вопроса отрицательный.
Это пока понятно?
давай более практический пример
>1) кто в итоге должен "видеть"? функции load/store или сам тред?
Любые операции обращения к данным, вызванные в этом треде.
>2) что значит "видеть" в принципе? как это выражается в данных и в инструкциях процессора?
Это значит, что при чтении данных из памяти исполняющий этот т ред процессор считывает данные, которые записал другой тред.
>есть какие-то инструкции, которые собственно и являются основой lock-free примитивов?
Обычно физически это происходит через compare-and-swap инструкции, но это деталь реализации (где-то может и шина лочнуться наверное)
Для нас важно, что запись в атомарные переменные имеет такой эффект: другие треды не могут увидеть процесс записи посередине (скажем, пишешь ты туда 8 байт, а они считывают, и видят только первые 4).
memory_order влияет на то, увидят-ли другие треды значение других пермеенных, когда они увидят эту.
how memory accesses, including regular, non-atomic memory accesses, are to be ordered around an atomic operation
примеры есть по ссылке в GCC, я может тоже попробую пример дать
– вот в это я и пытаюсь въехать) давай возьмём документацию яббла
https://swiftinit.org/docs/swift-atomics/atomics/atomicupdateordering
> static var acquiring: AtomicUpdateOrdering
An acquiring update synchronizes with a releasing operation whose value its reads. It ensures that the releasing and acquiring threads agree that all subsequent variable accesses on the acquring thread happen after the atomic operation itself.
> static var releasing: AtomicUpdateOrdering
A releasing update synchronizes with acquiring operations that read the value it stores. It ensures that the releasing and acquiring threads agree that all preceding variable accesses on the releasing thread happen before the atomic operation itself.
поясни выделенное жирным, если не сложно
> all subsequent variable accesses on the acquring thread happen after the atomic operation itself.
Все записи*, шедшие после атомарной операции в програм ордер, не будут выполнены / видны при обнаружении другим тредом результата самой атомарной операции. Другим словами, если ты ставишь флаг атомарной операции, и другой тред видит его в фолс - это гарантирует, что другой тред не будет видеть и последующие записи в памяти. Здесь важно отметить, что запрет на протекание идет только с одной стороны - реордеринг с предшествующими операциями без полного барьера разрешен.
> all preceding variable accesses on the releasing thread happen before the atomic operation itself.
То же самое, только про чтения. Они будут выполнены до атомарной операции, что предоставляет некоторые гарантии консистентности данных.
В целом acquire-release можно восприниммать как критическую секцию внутри лока - с учтом того, что снаружи в секцию могут протекать внешние операции (но не наоборот)
помеченное * - то, как я помню из объяснений прешинга, может быть неверно, но я специально не хочу сейчас перепроверять
теперь стало интересно, а как это вяжется с атомарными переменными, захваченными в замыкания
если через ссылку, то они ничего не отличаются от шареных переменных
Когда ты делаешь load это ты его aqure
Когда store -- ты его release.
Когда ты load с memory_order_acquire (в свифте acquiring)
а в другом треде store с memory_order_release (releasing)
ты говоришь:
"Все, что записал в память Thread1, должно быть видно в Thread2".
Иными словами, ты запрещаешь компилятору и процуу делать reordering.
https://en.cppreference.com/w/cpp/atomic/memory_order#Release-Acquire_ordering
Немного тупо, что это всё один enum, и можно случайно сделать store(memory_order_acquire) (это UB в С++).
Both of these asserts can pass since there is no ordering imposed between the stores in thread 1 and thread 2.
ы
БЛЯТЬ
штотакое flushed through the system
На уровне хардвара всё упирается в кэш ядра процессора. По умолчанию там есть очередь, которая разбирается в том темпе, в котором успевает. Барьер же приостанавливает выполнение и флашит записи в очереди, выполняя тем самым то самое свойство "все рпедшествующие в program order записи будут видны до атомарной операции"
На самом деле это всё деталь реализации
MUL [mem]
Плюс VarHandle позволяют более гранулярный доступ.
Один коммент -- один ордер.
Relaxed
Что выведет код?
На ARM он может вывести 0, потому что `lock` и `data` никак не связаны, и могут попасть в память в разном порядке.
Это такой CHAOS/READ UNCOMMITED
"release" это как-бы пушание сделанных изменений, а "aquire" это получение.
Этот код может вывести 4242, а может 255255, но точно не 0.
Потому что если`memory_order_acquire` операция видит результат `memory_order_release` на переменной, то она видит и все предыдущие изменения.
Но прикол в том, что он может вывести 42255, потому что r1 увидит вполне консистентный мир, созданный t1, а r2 -- созданный t2.
Наверное, это такой READ COMMITED
И вот тут мы приходим к самому жесткому ordering (по умолчанию). Его можно сранвить с SERIALIZED уровнем изоляции транзакицей.
Если все order убрать или явно установить в `memory_order_seq_cst`, то r1 и r2 всегда увидят одинаковую картинку, и будет или
255255 или 4242.
В 99% случаев нужно юзать именно этот уровень (не даром он по умолчанию) и не ебать себе мозги.
Только если вы реально упёрлись в перформанс, и хоти побайтоебить -- можете понизить уровень на release/aqure.
Только не мешайте ордеры, а то совсем запутаетесь
PS: годный швед
https://www.youtube.com/watch?v=OyNG4qiWnmU
Но во-первых бывают еще всякяие армы/M1/хуе-мое, а во-вторых там есть еще компилятор, который тоже может насрать, потому программировать всенда надо против абстрактной мемори модел, а не против конкретной реализации в проце
Некоторые могут сделать доступными данные только для части ядер, и вот тут у нас разница между rel/aq и seq может быть заметна
То есть по-царски программировать нельзя?
И компилятор лучше не обновлять. И микрокод CPU тоже не всякий случай не стоит
The tech company said it would stop its Gemini model generating images of people after social media users posted examples of images generated by the tool that depicted some historical figures – including popes and the founding fathers of the US – in a variety of ethnicities and genders.
Какие интересные отношения между соседями!
https://www.instagram.com/p/C3aQlCvi3UG/
БЕРИ СКОРЕЕ ПОКА НЕ ЗАКРЫЛИ!!!
https://habr.com/ru/articles/795885/
Ебать ты олд!
----
Нарушения экспрессии, придающие облику больных черты
странности, чудаковатости, эксцентричности; пренебрежение
правилами личной гигиены, «запущенность», неряшливость
одежды;
манерность, парамимия с характерным, избегающим собеседника
взглядом;
угловатость, толчкообразность, «шарнирность» движений;
напыщенность, многозначительность речи при бедности,
неадекватности интонаций
сделать морду к интернет-форму (или той же самой блядской соцсети) поврех SMTP вполне можно
Сливаешь? Не будь чмом,обоснуй... :)
Я, как долбанный урод, пишу полезные статьи, чтобы эту долбанную карму в 5 баллов перешагнуть... чтобы иметь возможность минусовать всяких ничтожеств.
И тут приходят каие-то неназванные содомиты, негодяи практически. И всё мне портят...
Спасибо вам, люди добрые. Чтоб вы были так здоровы, как я живу. :).
Спорим, вам слабо сказать мне что-то в лицо??
Вот пидоры.
http://web.archive.org/web/20240223234804/habr.com/ru/articles/795885/
Не успел сделать снимок перед самим удалением, поэтому комментариев мало.
Сверстать мултиселект в готовом проекте. СЛОЖНЫЙ заказ
5000 руб./за проект · 7 откликов · 64 просмотра
Там же бугагашечки-покатушечки, мы лежали всей маршруткой
Естественно не понимают. Это же маркетинговая разводка.
> Сумма такая... исторически так сложилось у производителя роутеров.
Исторически сложилось :D
Как перестать «ходить на дырку» на даче и не надышаться миазмами / Хабр
https://habr.com/ru/articles/795929/
Wi-Fi следит за тобой, или Wi-Fi как система мониторинга / Habr
https://habr.com/en/articles/399149/
«Наслаждаясь тишиной»: какие плюсы и минусы есть у самых тихих мест на планете / Хабр
https://habr.com/ru/companies/audiomania/articles/411065/
Все полезные материалы по Wi-Fi в одном месте / Хабр
https://habr.com/ru/companies/comptek/articles/467587/
Wi-Fi: неочевидные нюансы (на примере домашней сети) / Хабр
https://habr.com/ru/articles/149447/
Почему Wi-Fi не будет работать, как планировалось, и зачем знать, каким телефоном пользуется сотрудник / Хабр
https://habr.com/ru/companies/comptek/articles/427575/
https://arxiv.org/abs/2309.03492
девять месяцев
Язык нужен проще, деталей нужно меньше,
Чётче нужно описывать "вредное" и "полезное".
На ваших статьях - домохозяйки засыпают. Это не правильно, непростительно.практически.
>
Но он абсолютно прав.
Серьезно? Схуяли они должны твоё говно изучать? Или чтобы купить рутер домой нужен сертификат циски?
- ноутбук: WI-FI 6 (802.11ax)
- телефон: WI-FI 4 (802.11n), WI-FI 5 (802.11ac), WI-FI 6 (802.11ax)
- компьютер: WI-FI 6E (802.11ax)»
Кстати, есть лёгкий способ узнать, какие разновидности Wi-Fi поддерживает данное устройство?
В документации по роутеру ещё можно найти. А как про смартфон и ноутбук узнать?
Думаете, легко набирать текст??
https://govnokod.ru/28917
https://govnokod.xyz/_28917/
Hoe kan ik allemal hun leren?
https://youtu.be/HAwNIlOkTb4?t=192
(вообще, годная тян. Я бы с ней язык прокачал бы)
https://www.youtube.com/watch?v=wVO94eFk0S4
1. bleiben — blieb — geblieben
2. verlieren — verlor — verloren
3. binden — band — gebunden
4. beginnen — begann — begonnen
5. geben — gab — gegeben
6. brechen — brach — gebrochen
7. bewegen — bewog — bewogen
8. fahren — fuhr — gegahren
9. fallen — fiel — gefallen
Плюс ещё три группы:
1. С нешаблонным чередованием гласных, «вне групп» (liegen — lag — gelegen)
2. Смешанного спряжения (с -t в причастии, как у слабых): brennen — brannte — gebrannt
3. Неправильные (а сильные глаголы до этого типа были правильными, ага): haben — hatte — gehabt
Роальд Григорьевич Синёв выделяет семь групп:
1. bleiben — blieb — geblieben
greifen — griff — gegriffen
2.verlieren — verlor — verloren
bewegen — bewog — bewogen
lügen — log — gelogen
3. finden — fand — gefunden
beginnen — begann — begonnen
helfen — half — geholfen (в настоящем времени hilft)
4. nehmen — nahm — genohmen (в настоящем времени niehmt)
kommen — kam — gekommen
5. geben — gab — gegeben (в настоящем времени giebt)
liegen — lag — gelegen
6. fahren — fuhr — gefahren (в наст. времени fährt)
7. fallen — fiel — gefallen (в наст. времени fällt)
laufen — lief — gelaufen
Дополнительно он выделяет:
1. Смешанное: brennen — brannte — gebrannt
2. Неправильные: bringen — brachte — gebracht
Сюда же относит gehen и stehen
3. Претеритно-презентные: шесть модальных + wissen — wußte — gewußt (в наст. времени weiß).
Таким образом, у Синёва на две группы меньше, зато меньше глаголов вне групп, поскольку критерии групп более широкие.
У нас отличается.
Правильные глаголы в имперфекте имеют "корень+[t|d]" (в звисимости от последней согласной тн парвило SoftKetchup), а во множественном добавлыется "en".
В перфекте же по числам не отличаются, но спереду пригандошивается "ge", кроме глаголов с уже приставкой (ver, ont, be и пр).
инфинитив werken.
Ik werk: я работаю
Ik werte: я работал
we werkten: мы работали
Ik heb gewerkt: я работал в перфкетке
Сам перфект обычно используется примерно всегда для прошедшего времени. Имперфект используется в рассказах, стихах и песнях.
Разумеется, неправильные глаголы могут быть сколь угодно всратыми
we verlizen: мы потеряли
ik verloor: я потерял в имперфекте
ik heb verloren: я потерял в перфекте
Примеры неправильных глаголов в имперфекте
Is het lang geleden, is het lang geleden
Dat mijn hartje riep met z'n ding dinge dong
Is het lang geleden, is het lang geleden
In de zomerzon ging het bim bam bom
Tikketak gingen uren, hoelang zou het duren
Tikketikketak en dan bim bam bom
Tikketak al die nachten bleef ik op je wachten
Tikketikketak en toen bim bam bom
de tijd was om
Ich werkte.
Du werktest.
Er (Sie) werkte.
Wir werkten.
Ihr werktet.
Sie werkten.
ik kom te laat
gisteren kwam ik te laat
ik heb vorige jaar naar Nederland gekomen
Есть и еще глаголы, где пердолит не по децки имперфект, а перфект более-ли-менее цивилен.
komen -> kwam[en] -> gekomen это только один пример.
geven -> gaf/gaven -> gegeven
eten -> at[en] -> gegeten
ну и мое любимое
zeggen -> zei/zeiden -> gezeggen -> говорить
zien -> zag/zagen -> gezien -> видеть
За пределами говнокода бывают настоящие тян. Не трапы. Ты просто таких не встречал никогда, потому что на говнокоде сидишь
Оче смешной язык.
Первое je это ты
второе это часть рефлексивного глагола
А третье это "твою"
Третье можно заменитьо на jouw, будет не так еблански
https://github.com/rust-lang/rust/issues/41756
Он битвами, слезами, смехом дышит...
перекладчица юна пинхусовна мориц еще более живая, и еще более дрочит на сво
Коротич вообще прекрасный пример государственного жополиза.
До начала перестройки он был ярым коммунистом, и писал стихи про Ленина.
Потом ему дали журнал "огонёк", и сказали: "у нас гластность, шельмуй пороки", и он начал шельмовать.
После 1991-го года он стал ярым антикоммунистом, и проклял совок (вместе с другими членами кпсс, которые все внезапно стали демократами).
Теперь он живет в Москве и любит хуйло.
Если вдруг он переживет хуйло (жополизы по сто лет живут обычно) то наверняка будет хуйло ругать, и сво тоже ругать.
а так разницы в общем-то нету, не боги кресты обжимают
ещё смешное: https://govnokod.ru/27522#comment647899
вообще почти любой говнокод от снаута пригодится
тут Полинка была, кстати, и насрала крестами
Кажется он начитает что-то подозревать...
https://users.rust-lang.org/t/why-does-char-is-ascii-uppercase-self-take-self-while-char-is-uppercase-self-takes-self/108391
С одной стороны у тебя есть аксессор, который есть функция от объекта, причем ей не нужно ничего кешировать. Ну логично же ей получать константую ссылку, разве нет?
С другой -- ссылка может быть больше, чем char, ну и как-бы очевидно, что чар по ссылке только пидорок передает, да может еще плюсовый шаблон.
Вот и запутались ребята
баян, наверное