- 1
IT Оффтоп #111
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IT Оффтоп #111
#81: https://govnokod.ru/27280 https://govnokod.xyz/_27280
#82: https://govnokod.ru/27284 https://govnokod.xyz/_27284
#83: https://govnokod.ru/27296 https://govnokod.xyz/_27296
#84: https://govnokod.ru/27336 https://govnokod.xyz/_27336
#85: https://govnokod.ru/27381 https://govnokod.xyz/_27381
#86: https://govnokod.ru/27405 https://govnokod.xyz/_27405
#87: https://govnokod.ru/27429 https://govnokod.xyz/_27429
#88: https://govnokod.ru/27432 https://govnokod.xyz/_27432
#89: https://govnokod.ru/27435 https://govnokod.xyz/_27435
#90: https://govnokod.ru/27439 https://govnokod.xyz/_27439
#91: https://govnokod.ru/27449 https://govnokod.xyz/_27449
#92: https://govnokod.ru/27460 https://govnokod.xyz/_27460
#93: https://govnokod.ru/27463 https://govnokod.xyz/_27463
#94: https://govnokod.ru/27466 https://govnokod.xyz/_27466
#95: https://govnokod.ru/27473 https://govnokod.xyz/_27473
#96: https://govnokod.ru/27478 https://govnokod.xyz/_27478
#97: https://govnokod.ru/27484 https://govnokod.xyz/_27484
#98: https://govnokod.ru/27495 https://govnokod.xyz/_27495
#99: https://govnokod.ru/27504 https://govnokod.xyz/_27504
#100: https://govnokod.ru/27508 https://govnokod.xyz/_27508
#101: https://govnokod.ru/27511 https://govnokod.xyz/_27511
#102: https://govnokod.ru/27518 https://govnokod.xyz/_27518
#103: https://govnokod.ru/27526 https://govnokod.xyz/_27526
#104: https://govnokod.ru/27534 https://govnokod.xyz/_27534
#105: https://govnokod.ru/27544 https://govnokod.xyz/_27544
#106: https://govnokod.ru/27552 https://govnokod.xyz/_27552
#107: https://govnokod.ru/27554 https://govnokod.xyz/_27554
#108: https://govnokod.ru/27557 https://govnokod.xyz/_27557
#109: https://govnokod.ru/27581 https://govnokod.xyz/_27581
#110: https://govnokod.ru/27610 https://govnokod.xyz/_27610
Этот оффтоп сгенерирован автоматически.
Индекс оффтопов: https://index.gcode.space/.
Зеркала Говнокода и полезные ресурсы:
* https://govnokod.xyz/ (альтернативный Говнокод)
* https://gcode.space/ (read-only зеркало Говнокода)
* https://t.me/GovnokodBot (Говнокод-бот в «Telegram»)
* https://t.me/GovnokodChannel (Тематический канал в «Telegram»)
* https://vorec.space/ (глоссарий Говнокода)
* https://app.element.io/#/room/#govnokod:matrix.org (резервный чат)
Примечание: автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx.
Остерегайтесь подделок. Берегите себя и своих близких. Кок!
https://govnokod.xyz/_27610/#comment-656560
> а пользователям на это глубоко похуй: какая тебе разница, через что твой жёсткий диск скорраптит криптовымогатель — через дыру в «SMB» или через «Shellshock»?
MS может отказаться чинить дыру в SMB в Windows XP, сославшись на неподдерживаемость старой винды. А если некий старый дистрибутив Linux, BSD или еще чего, у тебя есть возможности, чтобы что-то там починить, несмотря на.
> В отличие от попен-сорсных поделок, за уязвимости в коммерческих приложениях компания расплачивается прибылью и репутацией
Для опенсорсных поделок компания тоже расплачивается прибылью и репутацией, если она оказывает коммерческую поддержку к этим опен-сорсным поделкам
> В «closed source» несколько другая культура: там для улучшения качества продукта принято не самому править код, а отправлять баг-репорты, краш-репорты и телеметрию.
Багрепорты и крашрепорты (иногда и телеметрию) я и в опенсорс отправлял, если что.
> Только в реальности от этой простоты нет ни малейшего толка: никто не занимается аудитом опен-сорсных проектов, за исключением редких исключений (в большинстве случаев — когда юзвери скинулись на профессионального аудитора).
Неправда.
Поиском уязвимостей занимаются многие крупные корпорации, которые используют данный опенсорсный софт.
Придётся запускать каждому из них по кефиру чтобы они друг к другу не лезли в окна да буфер обмена? Но тогда получится ёбаная матрёшка или у окон от одного домена безопасности не будет работать буфер ;(
Какой-то тлен и безысходность.
Это называется «Sandboxing», я узнал это из Gentoo-wiki.
Это здесь вообще не при делах. Если ты от разных юзеров на одном Х-сервере наделаешь окошек, то они все будут лазить друг к другу.
А остальные права (кроме иксов) можно и для одного юзера разрулить (или вообще в контейнер/виртуалку загнать).
а вот как миксовать аутпут надо подумать, может придется иметь разные мониторы.
А вообще какой session 0 isolation ))
З.Ы. У хромиума даже без wm всё работает.
Струит эфир
Бежит, шумит
Гвадалквивир
https://zaborona.help/
vpn ради того, чтобы раз в месяц посмотреть смехуёчки от фсб??
Каждому сокету для связи с X11 права отдельного юзера, или каждому в домашнюю папку свою .Xauthority и всё.
Находил статью как петух сделал мультисит из одной машины.
DISPLAY это совокупность скрина (монитор+видеокарта), клавы и мыши.
У него несколько карт, и куча мышей и клав.
Он собрал такие диспели (прописав их в xorg.conf), и получил реально разные рабочие места
http://www.linuxtoys.org/multiseat/multiseat.html
Например можно поставить несколько серверов приложений, на каждом запустить DM.
Можно в каждом DM прописать другие, чтобы они умели форвадить клиентов
Один из DM настроить на ответы на BroadcatQuery.
Потом включаешь бездисковую станцию с иксами (по сути X терминал), он бродкастом находит DM, и рисует окошко входа и список серверов
Пользователь выбирает сервер, и логинится туда.
Получается как RDS ферма с брокером, для какого-нить класса вообще збс
– у них что-то не то с social distancing
А у вас на работе у каждого личный кабинетчтоли?
личного кабинета у меня пока не было, но и нюхать чужие подмышки таким образом тоже не приходилось, слава богу
– которые берут джунов и пилят госзаказы?
кстати, вот по этому поводу начальника транспортного цеха было бы интересно послушать
Я просто вспомнил как в моей молодости во всяких "бизнес центрах класса F", переделанных из старых советских НИИ, сидели такие вот маленькеи веб студии из двух человек, и делали сайты прачечным, и хостили их на valuehost, и вот у них обычно с санитарными нормами был швах
Хорошо хоть не на http://govnohost.info/. Хотя разница, конечно, невелика…
> делали сайты прачечным
> с санитарными нормами был швах
какая постирония )))
`xdm(1)` либо сам запусакет Xorg (local display) либо цепляется к удаленному (remote display) либо принимает запрос по протоколу XDMCP и рисует на нем окошко
https://www.x.org/releases/X11R7.6/doc/man/man1/xdm.1.xhtml
xdm offers display management two different ways. It can manage X servers running on the local machine and specified in Xservers, and it can manage remote X servers (typically X terminals) using XDMCP (the XDM Control Protocol) as specified in the Xaccess file.
Он еще может направить тебя на другой xdm (XDMCP Indirect)
http://www.chiark.greenend.org.uk/~peterb/uxsup/project/xdm-socket/
>временные
а зачем временные?
systemd стартует dm
dm запускает иксы и пускает в них сессию
при выходе из сессии иксы завершаются, dm их перезапускает
не?
> сессию
Я же правильно понимаю, что "сессия" -- это просто батник, который поднимает оконный менеджер, всякие панельки и прочее говно?
Ясно.
Пацан сидит с женским ником и женским аватаром, не?
Дай определение женскому нику.
> и женским аватаром
Вот блин, совсем забыл, что настоящий мужик ставит на аватарку только другого настоящего мужика, и потом весь форум любуется на жопу/хуй этого самого настоящего мужика. Другие (менее мужские картинки, т.е. те, на которые не возбуждается guest6), как и любое проявление симпатии к слабым мужчинам без членов (женщинам) – это проявление слабости, а настоящий мужик должен не иметь слабостей. Всё правильно говорю, или я упустил какие-то нюансы?
Во первых — нет.
Во вторых, вообще-то это не «аниме», а какой-то милый и прикольный рисунок из интернета (статичная картинка, не анимация). При чём тут вообще аниме?
Сегодня в зерно забыли таблеток насыпать?
именно по этому я за "rotoeb"
> жопохуй
seems legit
Как ты со спины определил?
То есть я видел его в пакетах у слаки, но никогда не задумывался, что это за язык
А в генте портадж на питоне
Решил погуглить про питон там, и нашел смешное
https://www.cyberforum.ru/python-beginners/thread2346140.html
``xdm`` имеет ресурс DisplayManager*session
−session session_program
Specifies the value for the DisplayManager*session resource. This indicates the program to run as the session after the user has logged in.
А что туда записать -- дело твое
На дебиане там прописан
https://manpages.debian.org/bullseye/x11-common/Xsession.5.en.html
Можно прописать туда session manager (удобно выбирать окружение):
https://www.x.org/releases/X11R7.6/doc/man/man1/xsm.1.xhtml
Какие-то DM в каких-то DE могут вообще иметь свою собственную машинерию
Лол. Единственный реально используемый вклад Canonical в open-source.
Всё остальное (mir, unity, upstart) сдохло. Или я что-то забыл?
apparmor?
З.Ы. Его не они начинали пилить, но до космонавта он вроде никому особо не интересен был.
Вообще чем это всё лучше xdma? Круглыми уголками?
Это же удобный, многофункциональный, консистентный и унифицированный инструмент, который позволяет эффективно решать распространённые проблемы.
Понятно, конечно, что утёнок душит выкидывать тонны ущербных говноскриптов из «/etc/rc0.d», но взрослеть-то нужно.
Разговоры про «философию Unix» и «Unix way» лучше оставить прыщавым подросткам: это им приличествует разводить срачи о том, чьи скрипты православные, а чьи — ересь. Взрослым людям ОС нужна для эффективного решения задач, а не для споров про философию и подход.
Лично мне – нет, именно поэтому я за «OpenRC».
Ну а утверждение о том, что его код никто не проверяет вообще смешно: это относится вообще практически к любому опен-сорсному ПО.
Если никакой, то поставь Винду, ведь...
> он выполняет то, что мне нужно от системы
И не выёбывайся.
> и делает это хорошо
Не хорошо, а хуёво и неэффективно.
> это относится вообще практически к любому опен-сорсному ПО
В портянке говнокода на 500 строчек кода найти уязвимость заметно проще, чем в портянке говнокода на 500000 строк кода.
А теперь хрюкни и обнови шиндошс, или что ты там делаешь обычно.
Ну почему же? Я за «GNU/Linux», когда он эффективно решает мои задачи.
Критикую я иррациональную религиозную ненависть к хорошим, в общем-то, инструментам.
Т.е. когда в нём отсутствуют поделия сумрачного гения Поттеринга? А какой у тебя DE стоит? GNOME? Если не гном, то причины, по которым люди не ставят системзду, тебе знакомы. А если всё-таки гном, то это многое объясняет.
Зачем мне DE на серверах? Управлять сервером мне гораздо быстрее и удобнее через консоль. Прописать «systemctl start service_foo» эффективнее, чем рыться в менюшках.
Правильно ли я понимаю, что ты считаешь хорошим инструментом "Microsoft Visual Studio"? Моя ненависть к этому инструменту несет не религиозный характер, и не связана с тем, что это продукт от "Microsoft". Я ненавижу поделки от "JetBrains" примерно так же сильно, и примерно по тем же причинам.
Вообще инструмент может быть "хорошим" только для какой-то задачи.
Молоток хорош для забивания гвоздей, а для зачистки проводов не очень.
Для разработки на C# или VC++ под винду Visual Studio вполне хорош, а для LISP вероятно нет. А для программирование на "си" под микроконтроллеры -- совсем нет.
Точно также Intellij Idea отличный IDE именно для Kotlin, а вот нужно ли писать на Ruby в RubyMine -- вопрос открытый и весьма спорный
> несет не религиозный характер
ой, ну ладно)) Кажется что бы MS ни сделал, обитатели ЛОРа это обосрут
Ну вот Microsoft Research пилит Haskell и на ЛОРе его что-то не особо обсирают, скорее хвалят.
А рационально ли делать такую IDE, чтобы ей хорошо было разрабатывать только под винду? Т.е. вот надо отдельную IDE под винду, отдельную IDE под FreeBSD, отдельную под NetBSD, отдельную под QNX, отдельную под Haiku, и намертво их прибивать к соотв. операционке, это норм, да?
И мои претензии касаются не только заточенности под винду, но еще и общей тяжеловесности и тормознутости этой студии.
– какова целесообразность постройки моста через реку с точки зрения щуки? ©
Доебка не ясна. Перефразируйте
мс уже минимум четверть века делает ide под винду и пока полёт нормальный
правда, я вот пользуюсь ide от ms под мак время от времени и тоже пока не умер
Находи. Я лично не нахожу.
> мс уже минимум четверть века делает ide под винду и пока полёт нормальный
Люди более чем две тыщи лет верят во всякие "религии" и поклоняются всяким "богам" и пока полет нормальный.
мс делает студию много лет и зарабатывает на ней деньги, прямо и косвенно
а чувак, у которого в контроллерах ничего нет, вдруг задаётся вопросом "а рационально ли это?"
за что уважаю, так это за отсутствие страха выглядеть нелепо
То же самое касается религий. Религиозные деятели рубят бабло на верующих. Означает ли, что религии сами по себе рациональны?
а мнение мимокрокодила их как бы и не чешет
Т.е. правильно ли я понимаю, что над рациональностью того, что наша IDE работает только в винде, незачем думать, если эта IDE приносит бабло при таком подходе?
> а мнение мимокрокодила их как бы и не чешет
Может конкретно их и нет
Это т.н. "закрытый вопрос", на который можно ответить "Да" или "Нет". У тебя есть ответ?
можешь его переадресовать в редмонд и ждать ответного гудка
Я не считаю этот вопрос бессмысленным.
Именно поэтому для ответа на вопрос о рациональности в первую очередь следует указать субъекта, с точки зрения которого мы рассматриваем факты.
Рациональность (от лат. ratio — разум) — термин, в самом широком смысле означающий разумность, осмысленность, противоположность иррациональности. В более специальном смысле — характеристика знания с точки зрения его соответствия некоторым принципам мышления. Использование этого термина часто связано с вниманием к различиям в таких принципах, поэтому принято говорить о различных типах рациональности.
> а так же уточни, для кого факт работы «Visual Studio» в винде должен быть рациональным или нерациональным.
Для того, кто захочет ее использовать не в винде. Привязка «Visual Studio» к винде может быть нерациональна и для самой «Microsoft», например чтобы продавать ее под какие-нибудь маки. Вполне может так оказаться, что через 10-20 лет никаких IBM-совместимых персональных компьютеров с процессорами x86-64 не будет, а будет какая-нибудь хрень на ARM и RISC-V с какими-то не-майкрософтовскими операционками (IOS, Android или еще какая-то хрень, про которую мы пока не знаем), и там вполне может быть полезна эта IDE.
A: Для того, кто захочет ее использовать не в винде.
Dixi.
> Привязка «Visual Studio» к винде может быть нерациональна и для самой «Microsoft»
Иногда выгоднее продавать свою ОС с бесплатной IDE, чем делать кросс-платформенную IDE.
MS давно уже дает бесплатную версию Студии (так было не всегда)
XCode за пределами Mac OS тоже не очень распостранен.
Яблоко свою ОС не продает (так было не всегда) но требует железа.
Хочешь писать под ios? Купи мак.
а форматы вижуалки давным давно умели открывать ещё несколько ide
Безопаснее хранить cmake проект, и из него уже генерить cproj и sln кмк
– я сильно глубоко не копал, но солюшен вроде открывается всегда, может не открываться конкретный проект, он просто будет неактивным на конкретной платформе
> cmake
– та ну, для шарпа имхо излишний пердолинг
Интересно перенести шарп проект со студии в Rider например. Откроет ли?
я как-то давно делал одну маленькую фигню в вижуалке
а лет через 5 этот солюшн открыл в VS for Mac
скачало нужные проекты с нагета, собралось, запустилось
конечно, уверен, что есть какие-то специфические ситуации, но в целом производится такое впечатление, что это работает
А иногда и не выгоднее. А может это выгодно в краткосрочной перспективе, но не выгодно в долгосрочной. Зачем-то ж MS сделали эту свою "Visual Studio Code".
> MS давно уже дает бесплатную версию Студии (так было не всегда)
Ха. Это мне напомнило одну статью Джоэла Сполски за 2004 год
> Логическое заключение состоит в том, что если вы пытаетесь продавать операционную систему, то вам необходимо сделать так, чтобы разработчики программного обеспечения захотели писать программы для вашей операционной системы. Поэтому Стив Баллмер прыгал по сцене и кричал: «Разработчики, разработчики, разработчики, разработчики». Это так важно для Microsoft, что единственная причина, из-за которой средства разработки программного обеспечения не раздаются бесплатно, заключается в том, что они не хотят случайно перерезать кислород разработчикам конкурирующих инструментов разработки (хорошо, тем, которые остались), так как разнообразие инструментов разработки, доступных для их платформы, делает ее куда более привлекательной для разработчиков. Но на самом деле они хотят раздавать. Благодаря их программе Empower ISV вы можете получить пять наборов MSDN Universal (иначе известных как «практически все продукты Microsoft, исключая Flight Simulator») всего за 375$. Компиляторы командной строки для языков .NET включены с бесплатными библиотеками .NET … тоже бесплатно. Компилятор С++ теперь бесплатен. Что угодно для поощрения разработчиков работать под .NET и ликвидации таких компаний как Borland.
Может быть да, может быть нет.
>Зачем-то ж MS сделали эту свою "Visual Studio Code".
Существует мнение, что для продвижения Azure.
MS вкладывает бабло в облако (может быть думает, что продажа ОС и всяких Exchange уже не будет приносить сказочной прибыли через 10-15 лет) и старается сделать инструмент плотно с ним интегрированный, чтобы каждый PHPшник мог на своей Убунте в VSCode написать сайт, и загрузить его им на Azure.
> старается сделать инструмент плотно с ним интегрированный, чтобы каждый PHPшник мог на своей Убунте в VSCode написать сайт, и загрузить его им на Azure.
Ди-вер-сифи-ка-ция.
И правильно делают.
Большая контора с кучей денег никогда не положит все яйца в одну корзину, и 8 из 10 проектов могут оказаться и окажутся тупиковыми, малоприбыльными. Но зато 1-2 выстреливших позволят отбить затраты и продолжать держаться на плаву.
> поэтому принято говорить о различных типах рациональности.
Ещё лучше.
Ну ладно.
> Для того, кто захочет ее использовать не в винде.
Да, для него это однозначно иррационально, потому что это попытка решения проблем неподходящим для этого инструментом.
> может быть нерациональна и для самой «Microsoft»
С точки зрения «Microsoft» у разработки «Visual Studio» имеется единственная задача: получение прибыли (прямой или косвенной). Над решением этой задачи в «Microsoft» работают опытные специалисты, и нет никаких оснований полагать, что они разбираются в подсчёте прибыли лучше, чем питухи с «Говнокода». Если бы портирование «Visual Studio» под другие системы было экономически выгодно (то есть потенциальная прибыль от этого действия превышала бы потенциальные затраты) — мы бы сейчас могли сделать «apt-get install visual-studio».
Таким образом, создание и поддержка «Visual Studio» компанией «Microsoft» соответствует целям и задачам компании, и, следовательно, является рациональным.
Можешь еще спросить "что такое разумно", и "что такое иррационально". Если очень долго спрашивать определения слов в определениях слов, в конечном итоге получится зацикливание т.к. множество корректных (допустимых) слов счетно и конечно.
> Да, для него это однозначно иррационально, потому что это попытка решения проблем неподходящим для этого инструментом.
Неподходящим т.к. его сделали неподходящим.
> Над решением этой задачи в «Microsoft» работают опытные специалисты, и нет никаких оснований полагать, что они разбираются в подсчёте прибыли лучше, чем питухи с «Говнокода».
Очень интересно. Почему тогда Windows Phone провалилась? Мне очень давно (почти сразу) было очевидно, что это провальная инициатива, но MS упорно вливала туда бабло, не получая никакой прибыли, и они даже купили под это дело Nokia и все там прогондонили
– потому что Сатья ажурщик лол?
нет, я знаю, что wp в принципе стоила балмеру поста, но подковёрные игры никто не отменял
Тогда был Баллмер. Он еще в запотевщей рубашке прыгал и выкрикивал developers, developers, developers
wp + nokia вполне могла на каких-то рынках потягаться с ведром
почему её слили, это вопрос хороший. а её именно слили.
А если не спрашивать — в конце концов придём к тому, что каждый будет говорить о своём.
Так что вот моё определение для конкретного случая: создание продукта является рациональным тогда и только тогда, как созданный продукт выполняет задачи, которые предполагается решать при помощи этого продукта. В самом простом случае такой задачей может быть получение прямой прибыли: тогда создание продукта рационально (для создателя!) тогда, когда эту прибыль продукт приносит.
> Неподходящим т.к. его сделали неподходящим.
Неверно. Его не сделали неподходящим, его попросту не портировали. Это совершенно разные вещи.
Разработка кросс-платформенного приложения (особенно на всяких сишках с крестами) стоит гораздо дороже, чем разработка приложения для конкретной платформы. Чтобы «Visual Studio» запускалась на линуксах — её авторы должны были потратить очень много дополнительного времени (и, следовательно, денег) на поддержку зоопарка этих самых линухов, зоопарка DE, X-сервера, вялого (в будущем) и прочего прыщеговна.
Поэтому нет, никто специально не рушил (со злодейским хохотом) совместимость «Visual Studio» с линуксами. Её просто не делали.
> Почему тогда Windows Phone провалилась?
Потому что все совершают ошибки.
> Мне очень давно (почти сразу) было очевидно
Задним умом все крепки. Это эффект позитивного подкрепления: человеческому мозгу приятно чувствовать себя умным, поэтому моменты «я же говорил!» запоминаются гораздо лучше, чем несбывшиеся прогнозы.
> Поэтому нет, никто специально не рушил (со злодейским хохотом) совместимость «Visual Studio» с линуксами. Её просто не делали.
Правильнее тогда говорить "его не делали портируемым" а не "не портировали".
> Разработка кросс-платформенного приложения (особенно на всяких сишках с крестами) стоит гораздо дороже, чем разработка приложения для конкретной платформы.
It depends. И сейчас с кросс-платформой на сишке/крестах стало на порядок проще.
> на поддержку зоопарка этих самых линухов, зоопарка DE, X-сервера, вялого (в будущем) и прочего прыщеговна.
Можно было взять Qt, проблему с гуйней бы это решило.
> Задним умом все крепки. Это эффект позитивного подкрепления: человеческому мозгу приятно чувствовать себя умным
Я очень четко помню, как это было. Сначала я действительно полагал, что у MS есть какие-то шансы продвинуть свою принципиально новую ОС на мобильный рынок. Через некоторое время это выглядело со стороны как явно бессмысленное сжигание бабла, и было достаточно очевидно(и не только мне), что пора бы уже остановиться, но желание MS втулить свою ОС на мобильный рынок было слишком сильно...
Хорошо.
> It depends. И сейчас с кросс-платформой на сишке/крестах стало на порядок проще.
Если под «проще» ты имеешь в виду «Qt» — то, наверное, да.
> Можно было взять Qt, проблему с гуйней бы это решило.
Напоминаю, что первый выпуск «Visual Studio» произошёл в 1997-м году.
Взять вышедшую два года назад и никому не известную либу для разработки IDE, изначально планировавшейся как основной инструмент для разработки под «Windows»? Увольте. Даже сейчас, спустя полтора десятка лет после выпуска, «Qt» — всё ещё кривое и тормозящее говно; каким же он был сразу после релиза?
> Я очень четко помню, как это было. Сначала я действительно полагал, что у MS есть какие-то шансы продвинуть свою принципиально новую ОС на мобильный рынок.
О чём и речь.
> Через некоторое время это выглядело со стороны
Ключевой момент — «со стороны». Мы не знаем и не можем знать, какие процессы происходили в это время внутри «Майкрософта», и чем эти затраты были оправданы. Можно, конечно, порассуждать о тупых менеджерах, но смысла в этом никакого нет.
А винапи-гуйня является образцом скорости и прямоты?
Я вообще-то про всякую MFC-питушню, OLE, COM, ActiveX и проч. сопутствующие говна. В архитектурном, так сказать, плане
Когда я для интереса попробовал в этом разобраться, было ощущение что я окунулся в чан с дерьмом
В Linux в это время у половины людей вообще гуй не работал, потому что xfree modlines не могли прописать
Которое будет работать только с такой-то версией excel, который еще купить надо. Охуенно, да.
Извините. А нахуя портировать для конкурирующей платформы удобное средство разработки?
Это не просто нерационально, это глупость стратегического масштаба.
> на поддержку зоопарка этих самых линухов, зоопарка DE, X-сервера, вялого (в будущем) и прочего прыщеговна
И ещё пердолиться с этим сраным неоднородным говном.
M$ нужна система разработки софта под свою ОСь.
Потому что нужен софт, голая операционная система никому особо не интересна.
Это правда, да.
> Извините. А нахуя портировать для конкурирующей платформы удобное средство разработки?
Справедливости ради это можно оправдать стратегиями вида EEE. Ну или просто банальным переманиванием: мол, приходите, девелоперсы, к нам на венду, у нас вон какая классная IDE есть!
Но, конечно, в давние времена первых выпусков «Студии» «Майки» были гораздо более агрессивны в плане конкуренции («своей земли не отдадим ни пяди» vs «культурная ассимиляция»).
А сейчас вон даже «VS Code» есть — вроде как рекламный флаер «Visual Studio».
Хахаха.
Так это нерентабельно.
90% линуксоидов даже бесплатно не поставят это говно, ибо для них само слово Майкрософт это как красная тряпка для быка, или как «Cатана» для православного человека.
> мол, приходите, девелоперсы, к нам на венду, у нас вон какая классная IDE есть
Так уже сделали WSL: «Приходите, к нам на венду».
Кмк, это гораздо более логичная стратегия: расширять возможности своего продукта, а пилить IDE для чужого. Причём поддержать весь зоопарк кобенаций разных DE и X11/Wayland/Mir/etc нетривиальная задача даже для M$.
С другой стороны, чем чёрт не шутит. Браузер же портанули.
– а НЕ пилить имелось в виду?
> Браузер же портанули.
– какой браузер?
«Microsoft Edge»
https://blogs.windows.com/msedgedev/2020/10/20/microsoft-edge-dev-linux/
Конечно невелика честь сбилдить форк кроссплатформенного Cнгoмiима под Луних, но сам факт.
Такое ощущение, что «MS» хочет плавно отойти от разработки и в будущем только чужой софт упаковывать.
последняя более-менее девелоперская контора
Батюшка esr выдвинул интересную гейпотезу. Кстати его блог хоть кто-то тут читает?
Её суть в том что Mелко$офту просто нерентабельно держать армию кодеров и саппортить это всё говно (браузеры, операционку). Причём винду нужно ещё портировать на арм.
Потому они со временем планируют перейти на linux-kernel, оставив легковесную обёртку вроде wine которая проксирует winapi system call в ядро луникса.
У них же сейчас большая часть профитов идёт от Azure. А так можно перекинуть головняк по поддержке зоопарка x86 и arm на коммьюнити.
Короче «Microsoft loves Linux»
Потому что его использовали в основном только чтобы скачать другой браузер.
И с каких это пор ISO уверовал в бредни сектантов жопен-сороса?
> "Embrace, extend, and extinguish" (EEE),[1] also known as "embrace, extend, and exterminate",[2] is a phrase that the U.S. Department of Justice found[3] that was used internally by Microsoft[4] to describe its strategy for entering product categories involving widely used standards, extending those standards with proprietary capabilities, and then using those differences in order to strongly disadvantage its competitors.
``vim`` прекрасный редактор для всего, но на C# удобнее писать в студии с R#.
Именно заточка VS под нужны Windows разработчика (поддержка ресурсов, например) позволила сделать её более удобной.
> тяжеловесности и тормознутости
Это плата за функционал и тяжелое наследие, к сожалению.
Notepad++ не тормозит, но и переименовать namespace в С++ в нем сложнее
Совершенно верно, я считаю «Microsoft Visual Studio» прекрасным инструментом для своей задачи.
Собственно говоря, в мире больше не существует настолько же продвинутых IDE для «C++». Как самый банальный пример — «IntelliSense» умеет вычислять значение constexpr-переменных до компиляции, что весьма помогает при разработке метушни. Насколько я знаю, никакие другие средства разработки так не умеют.
https://i.postimg.cc/Hs2fYRrZ/image.png
Угадай редактор
https://youtrack.jetbrains.com/issue/CPP-5064
Однако же истинность выражения он смог проверить, так что он чото там считает, просто не осилил это вывести, как в студии
> Ability to evaluate and show on mouse hover expressions known at compile time
Created by Anna Filippova 6 years ago Updated by Maxim Banaev 5 days ago
Что и требовалось доказать.
Ну ок, факт отсоса силайна у студии зафиксирован ))
Странно, что они этого не сделали.
https://resources.jetbrains.com/help/img/rider/2021.2/debug_values_inline.png
Но она работает только при дебаге, хотя для большинства языков
*
https://www.jetbrains.com/help/idea/intention-actions.html
"Вижуалстудия" так умеет?
Оно нахуй не надо. Я бы отключил эту херню и не писал такое говно.
Когда в структуре 1 поле и так всё понятно.
А когда 3 и больше, лучше писать имена явно, чтобы:
а) самому не путаться где какое поле
б) при рефакторинге не перепутать порядок
в) при просмотре кода обычным редактором (дифф в гите, ревью коммита в html) другим было понятно что происходит.
Только таким макаром можно писать читаемый код.
А код, написанный в IDE, только в IDE под интерактивным дебагером и читаем
И самое смешное, если жавашки в интелижопе проебут, то хинты будут неправильные:
> только тут баг в этих хинтах, если что
В IDE пишут нечитаемое говно, код-пустышку, код-бюрократ, код-гной, код-пидор.
Ещё мудачьё говорит "просто купи компьютер помощнее" и хвастается своими печками с 32ГБ памяти, последними процессорами №9 и блоками питания на киловатты, и всё равно время от времени жалуется, что новая вкладка в IDE долго открывается.
Правильнее сказать "IDE позволяет писать крайне заебаный говнокод со всякой хуйней, и в них пишут такой код, и потом с таким кодом возможно нормально работать только в IDE"
Т.е. код, написанный в IDE, часто хуй разберешь без этих самых IDE, и другие тоже вынуждены покупать эти говноIDE и использовать. Такая вот цепная говнореакция
Я бы на месте заказчиков такой код в сортирах топил бы спецом, и в навозные ямы, где-нибудь там возле ферм, скотобоен всяких, где говнища побольше, вот очистные крупных городов ещё тоже очень хорошее место.
> то лучше переписать всё на «builder» и течь с «foo().withBar(10).withBaz("hello")....»
Подтверждаю. (я не гуру)
> Но поскольку писать билдеры абстрактных фабрик на каждый чих
Именно поэтому я за «Сишку»
Именованных инициализаторов в джаве тоже нету... Разве что создавать структуру и методично присваивать в неё по одному полю.
З.Ы. В итоге что-нибудь забудешь заполнить.
Есть хак через омонимные классы.
Но это под капотом замыкание, которое хватает контекст (привет утечки!).
Потому это наименьшее из говн:
Котя, серенький лобок,
Приди, котя, ночевать,
Нашу деточку качать.
Уж тебе я, коту,
За работу заплачу:
Дам кусок пирога
И кувшинчик молока.
Учитывая что значение constexpr-переменной вычисляется Тьюринг-полной питушней, подсказка для такой фигни может идти сколь угодно долго.
Допустим есть некая constexpr-метушня, которая раскрывается при компиляции минуту, допустим навел я мышкой на переменную, оно будет минуту мне в IDE считать? А потом оно будет мемоизировано, т.е. второй раз если навести, оно сразу ответ выдаст? А если я поменяю один символ в компилтайм-метушне, оно будет пересчитывать констэкспры в момент редактирования компилтайм-метушни, или в момент наведения на констэкспр для получения соотв. подсказки?
Тогда у тебя будет не всегда подсвечиваться подсказка к этим констэкспрам. А если не будет ограничения, подсказки могут зависнуть. Обычная ситуация с двумя стулами.
Можно еще навернуть какую-то сложную хуйню с мемоизацией результатов этих констэкспров и хранить некий кэш подсказок, лол
«Нельзя сделать идеально для всех случаев — не будем делать вовсе».
Казалось бы, буквально пару дней назад guest6 разъёбывал программистов за такой ущербный подход — и вот, пожалуйста, опять.
Другие люди спокойно пользуются удобной фичей — программисты-перфекционисты грустно пускают слезу о невозможности её создания.
Да, кстати, если ограничения в сервисе подсказок соответствуют ограничениям в компиляторе, то подсказки будут работать для любых компилирующихся программ. Чем не победа перфекционизма?
> Казалось бы, буквально пару дней назад guest6 разъёбывал программистов за такой ущербный подход — и вот, пожалуйста, опять.
В моем сообщении нигде нет утверждения "если задача не решается для всех случаев, ее не стоит решать вообще".
> Да, кстати, если ограничения в сервисе подсказок соответствуют ограничениям в компиляторе, то подсказки будут работать для любых компилирующихся программ. Чем не победа перфекционизма?
А где гарантии такого соответствия? Сам стандарт описывает эти ограничения? Кстати, что насчет вычислений с плавучими питухами, гарантируется ли воспроизводимость результатов? https://govnokod.ru/27285 - реальный пример зависимости рантайм FPU-вычислений от флагов оптимизации. Как с этим в компилтайме?
Разве не выжжено в головах программистов, что плавающий питух может клюнуть в любой момент, и всё кроме тривиальщины вида 1./4. или 2.+3. будет вычислено с примененением больной вычислительной фантазии, и любые конкретные результаты - мираж?
Просто предполагаю, что программист должен скептически относиться к плавтухам, и тогда никаких проблем нет. Программист знает, что плавтухи - мудаки, и это знание - его оружие.
А как же твои саркастические кавычки вокруг слова «решена»?
> А где гарантии такого соответствия?
Мне на них похуй.
> Сам стандарт описывает эти ограничения?
Конечно: https://eel.is/c++draft/implimits#2.39.
> Кстати, что насчет вычислений с плавучими питухами, гарантируется ли воспроизводимость результатов?
Мне похуй.
И что тебе не нравится в моих саркастических кавычках?
> Мне похуй.
Т.е. тебе похуй, что IDE может подсказывать хуйню? Ну ок.
Их саркастичность.
> Т.е. тебе похуй, что IDE может подсказывать хуйню? Ну ок.
А почему мне должно быть не похуй на унылые корнер-кейсы, с которыми в реальности я никогда не столкнусь? Ты можешь придумать хоть сотню питушни, которой в микроконтроллерах нет, — от этого подсказки с вычислением константных выражений менее удобным и полезным инструментом не станут.
Эта проблема не может быть решена, она может быть только "решена".
Clangd умеет. Его можно использовать и в VSCodium например. Реальный пример https://i.imgur.com/8KEPLX8.png (это я взял свою компилтайм-сортировку пузырьком https://govnokod.ru/25130#comment458282 и решил реально проверить)
Используемый плагин "llvm-vs-code-extensions.vscode-clangd". Но этот "clangd" можно и к GNU Emacs присобачить наверняка.
Например, чтобы веб-браузер можно было собрать только из нужных компонентов: хочу — беру оболочку от «Хрома», не хочу её — беру от «Симанки»; хочу — беру парсер на «Webkit», не хочу его — беру на «Gecko»; хочу — беру интерпретатор «Йажасцрипта» на «V8», не хочу его — беру «Splidermonkey». И так далее.
http://jeder.ru/?p=280
Это было бы смешно, но «Archive.org» посчитал этот проект настолько важным, что снял копию:
https://archive.org/details/advancedchromev54.20.6530.0
И тут васясофт выкатывает свой монолитный браузер и заявляет «вы все анскилябры, у меня не тормозит». Проверяют, и действительно, не тормозит. Окрыленные этим фактом, питухи летят в репозиторий, чтобы распилить этот браузер на модули и подключить к своему. И охуевают.
Оказывается, его интерпретатор ЙАЖАскрипта, вместо того, чтобы вежливо попросить модуль, отвечающий за DOM, поменять что-то в таком-то элементе, для каких-то часто используемых операций просто лезет в кишки и меняет что ему надо прямо там, благо внутреннее представление оптимизированно для таких вещей. Ещё его браузер при простое дёргает все эвенты, интерпретируя скрипт (не меняя фактическое состояние страницы), подгружая ресурсы, которые потребуется и пререндеря части страницы которые могут понадобиться.
Чтобы это говно прикрутить к охуенно модульному браузеру, понадобится распидорасить весь охуенно стройный АПИ взаимодействия между модулями, и заставить модули либо имплементировать всю хуйню, даже которую они не юзают, либо модулям придётся договариваться о том, какие виды АПИ они могут использовать.
> Начинают лагать пункты меню (потому что там ЙАЖАскрипта на странице больше чем кода управления в МБР
А зачем посещать такие сцайты?
Тебе лень из дома выйти? Фу, неженка.
> банков
Зачем тебе банки? Ты что, кредиты берёшь?
> государственных учреждений
Настоящий айтишник должен быть против Системы, а не потакать ей!
Весной 2020-го вынудили пользоваться этой ерундой.
Поддержал.
Причём с возможностью вообще выкинуть какой-то компонент. Допустим браузер без интерпретатора «Йажасцрипта» или реализующий ограниченное его подмножество.
А что насчёт, например, подсказок с полностью раскрытыми директивами препроцессора? Незаменимая фича для отладки препроцессороговна. А что насчёт встроенных дебаггеров: кто ещё может, например, делать снапшоты кучи с возможностью навигации по объектам и коду, который эти объекты создал? Или вот, к примеру, где ещё можно тыкнуть на шаблон, указать реальные примеры типов и наслаждаться его полным анализом до компиляции (https://devblogs.microsoft.com/cppblog/template-intellisense/)?
Так можно долго продолжать набрасывать. Факт остаётся фактом: для разработки крестоговна «Visual Studio» является наиболее мощной (e.g. насыщенной полезными фичами) IDE на рынке. Именно поэтому…
> И в целом я за то, чтобы подобные фичи были не намертво прибиты к какой-то работающей только в одной ОС тормозной проприетарной IDE, а были отделяемыми модулями, которые можно было бы цеплять к любой хуите при желании.
Я против (использования такого). Как показывает практика, модульный и универсальный инструмент решает свои задачи существенно хуже специализированного. В частности, работает банальный факт: специализированный инструмент системно тестируется целиком, в то время как конкретно твою сборную солянку из разных мудулей от разных питухов никто больше в мире не видел.
И да, реальная практика у меня есть: я программирую на «Python» в «VS Code» с расширениями. И какое же это говно… Вкладка «Pytest» отваливается, тесты молча не запускаются, процессы этой вкладки виснут и жрут по целому ядру, языковой сервер тоже иногда отваливается и перестаёт отвечать, а когда отвечает — гордо демонстрирует мне в подсказках полезную информацию, повторённую джва раза, причём изменение случайных настроек иногда отключает это двойное говно на день-другой, чтобы потом оно всё равно вернулось… Пиздец нахуй, я за монолиты.
Это Eclipse умеет. Clangd тоже препроцессорное говно умеет раскрывать https://i.imgur.com/voCsgCU.png (пример из https://govnokod.ru/27240 если что)
Нет, я про другое. «IntelliSense» умеет раскрывать любое макроговно в любой позиции, а не только считать константы: https://i.imgur.com/mhGpxld.png.
> надо делать другие IDE, в которых эти фичи будут. А микрософтовскую вин-онли отрыжку слать нахуй
Флаг в руки. А я и дальше буду использовать удобный и эффективный инструмент.
Eclipse: https://i.imgur.com/CCQQsh1.png
... надо делать другие IDE, в которых эти фичи будут. А микрософтовскую вин-онли отрыжку слать нахуй
Правда, монстроподобные айсберги вроде «Visual Studio» к таким супероптимизированным программам не относятся. В «Студии» фреймворк на фреймворке и фреймворком погоняет.
Если речь идет о т.н. "Language Server" ( https://langserver.org/ ), который занимается подсказыванием-подсвечиванием всякой такой хуйни, то я не очень понимаю, каким образом прибивание "Language Server" к API конкретной OS сделает его быстрее.
им теперь придётся три раза ядро пересобрать, чтобы остыло
извини, забыл, что ты ещё не работал никогда
ну тебя наебали
теперь можешь пойти что-нибудь пересобрать, а то солнце само по себе не зайдёт
Лучше напомни ему про алгоритм Дейкстры, который он наверняка еще не написал.
Борманд в соседнем треде уже собирает )))
imake знашеь?:)
Qt из той же весовой категории, я думаю (там внутри вебкит).
Поэтому, когда фанбой мелкомягких открывает рот — он спамит своими иррациональными конформистскими предубеждениями.
А вот когда линукс-хакер выдаёт взвешенную реплику — он делает public service announcement, доносит важную информацию до общества.
Точно так же: есть ли смысл расхваливать направо и налево последний голливудский блокбастер? Только если вы хотите сигнализировать свою принадлежность к интеллектуальному большинству. А вот рассказывать каждому встречному про арт-хаус режиссёра Ларпа фон Тридара — долг любого интеллигента.
Нет, обсуждать популярную питушню нужно.
1. Если кто-то в вузе использовал условную MSVS2005, то это не значит, что он в курсе того, что в ней изменилось за 10-20 лет.
2. Не все следят за тенденциями. Человек может использовать свою редкую IDE по какой-то причине (её использовали в конторе, куда он пошёл работать), а про остальные знать только названия. Ему может пригодиться информация о MSVS.
3. Среди голосов фанбоев должны звучать голоса пользователей. И нет ничего такого, если пользователь хвалит хороший продукт. Мозг фильтрует маркетинговый шум вместе с голосами фанбоев. Без обсуждения и хвалебных речей пользователей о "MSVS" известно столько же, сколько про "acme под plan9".
То же с блокбастерами. Про анскильную питушню Лиспа фон Тридара я слышал кучу завываний альтернативно одарённых фанбоев-хипстеров, а про голливудские блокбастеры - только маркетинговый шум.
На моей рабочей станции у меня «Windows», да. Она мои задачи выполняет достаточно хорошо.
> Не хорошо, а хуёво и неэффективно.
Так вот в том-то вопрос и стоит: что в «systemd» хуёвого и неэффективного? Неэффективно хранить все юниты в одном месте? Неэффективно управлять системой через единый и унифицированный CL интерфейс, а не кучу говноутилит с разными наименованиями, аргументами и способами вызова? Хуёво иметь удобный интерфейс доступа к логам, который позволяет не рыться по всем директориям /var/logs как голодная собака в помойке? Жду конкретики.
> В портянке говнокода на 500 строчек кода найти уязвимость заметно проще, чем в портянке говнокода на 500000 строк кода.
Ergo, ядро «Линукса» не нужно.
> А теперь хрюкни и обнови шиндошс, или что ты там делаешь обычно.
По делу есть что сказать?
Зачем тебе тогда «Linux»? Сидел бы и дальше на виндуозе, раз он выполняет твои задачи. Машина без ремней безопасности тоже выполняет свои задачи, но я, пожалуй, на такой кататься не буду.
> Так вот в том-то вопрос и стоит: что в «systemd» хуёвого и неэффективного
Всё. Мистер глиномес погнался за всеми зайцами сразу и ни одного не догнал.
У почти любой питушни из SystemD есть нормальный специализированный аналог, например для управления контейнерами лучше взять НЕ системДэ.
> унифицированный
Мифы про какую-то унификацию в системдэ просто смешны.
> Ergo, ядро «Линукса» не нужно.
Тебе же похуй на «ядро Линукса» и его чувства, раз ты оскверняешь его системдой, так что да, тебе оно не нужно.
Есть некоторая система, известная своей простотой. Простота позволяет легко понять систему, а значит и легко устранить возникшие проблемы.
Эта система привлекает поборников простоты, которые изучают её устройство (инвестируя в это изучение некоторое количество времени) и потом там прекрасно живут.
У большинства из них проблем никаких нет.
И вот в эту систему вводят Абстракцию.
Абстракция сильно усложняет систему (сравни запуск шел скрипта с обращением к демону по dbus, например), делает её более сложной для понимания и отладки, и что самое противное -- заменяет собой куски старой (простой) системы в практически случайном порядке.
Но старые куски-то остаются.
В итоге получается Франкенштейн, где часть сделана по-старому, часть по новому (как если бы ты делал ``WriteConsole`` и std::cout << одновременно).
Поборникам простоты говорят, что Абстракция решает массу проблем.
Но этих проблем у них не было. Вот не было в сервере с одной картой проблемы с непредсказуемостью имен интерфейсов, которую решают ``.link`` файлы.
Зато им ввели новую Абстракцию, сильно усложнив их систему, да параллельно еще и обнулив часть знаний.
Это вызвало ожидаемую реакцию.
Вот если бы Линукс изначально был как AIX*, то всё было бы ок
* https://ru.wikipedia.org/wiki/AIX
> Поборникам простоты говорят, что Абстракция решает массу проблем.
> Но этих проблем у них не было.
Подтверждаю.
Реальный пример: https://govnokod.ru/26671#comment549703
Это же удобный, многофункциональный, консистентный и унифицированный инструмент, который позволяет эффективно решать распространённые проблемы.
Понятно, конечно, что утёнок душит выкидывать тонны ущербных "представлений о правильных архитектурах" из головы, но взрослеть-то нужно.
Разговоры про «красоту кода» и «мартинов фаулеров» лучше оставить прыщавым подросткам: это им приличествует разводить срачи о том, чьи скрипты православные, а чьи — ересь. Взрослым людям язык нужен для эффективного решения задач, а не для споров про философию и подход.
Только что на debian рассылке
---------
Hi,
Suddenly I can no longer reboot or poweroff my up-to-date
bullseye system:
# reboot
/usr/sbin/reboot: disabled in systemd-nspawn container
Linux container share the kernel of the host system they are running on,
there is no need to reboot just the container.
However, please contact your system administrator to reboot this
container from the host system.
# poweroff
/usr/sbin/poweroff: disabled in systemd-nspawn container
---------
как на виндуосе ))
Вангую, что какой-нибудь говноскрипт из интернета не читая исполнил на хосте вместо контейнера, а теперь делает вид, что всё так и было...
systemd-nspawn is like the chroot command, but it is a chroot on steroids.
systemd-nspawn limits access to various kernel interfaces in the container to read-only, such as /sys, /proc/sys or /sys/fs/selinux
но сама ситуация какая, лол
Наверняка это потому что какие-то петухи постоянно открывают огромные посты. Найти бы их…
Да, надо перекатываться, там уже тормозит. Отправил комментарий на хузе, а на госте он появился минуты через две.
Хотя, я спать пойду. С учётом того, что меня забанили на ГК, я всё ещё сижу на нём до 4 утра. Какой багор )))
#MinGW #MSYS #MSYS2 #WSL2 #MD5 #OpenSSL #виндопердолинг #пердолинг
А чем нарисованы эти таблички?
Хотя, наверно в npm есть модуль для питушения статистики, но тут надо было посчитать пару чисел, одно из которых никто не будет смотреть, а второе - никто не будет смотреть.
pandas например использует:
https://pypi.org/project/tabulate
Там даже стили можно выбирать. pretty/psql очень похожи на таблицу выше
https://github.com/intel/isa-l_crypto
Тут есть и SSE, и AVX.
Для сборки нужно уметь обращаться с autotools (autoconf, automake).
Надо запомнить: подсовывать «nasm», а не «yasm». Текущая версия «yasm» некоторых инструкций не знает (об этом есть issue в хранилище «yasm» в «Гитхабе»).
Ассемблерный код в библиотеке только 64-битный.
configure надо генерить что ли? О_о
Первый раз такую кривую либу вижу. Хотя может просто dev сборку выложили.
А, это ж мастер на гитхабе а не готовый пакет, тьфу. Тогда логично, что надо самому генерить конфигур.
Так вот gcc и yasm у меня пролетели. Вроде clang+nasm — рабочая кобенация.
sudo apt-get install autoconf libtool nasm
А дальше по мануалу из README:
make check выдал 25 из 25.
Это ещё её устанавливать надо. Гигабайтам питушни на диске, купленном за свои кровные, скажем НЕТ!
Как там с materialized views в майсцыкуэлях? Как с adaptive joins?
Долбоёбы и слов-то таких не знают, зато кукарекают постоянно "зачем нам ваши мсскули и ораклы, кококо, у нас на php+mysql всё прекрасно работает"
Это говно.
> materialized views
Это хуйня.
> Долбоёбы и слов-то таких не знают
А он прав)
> Это хуйня.
Почему?
Мелкомягкие говорят: вот этот алгоритм будет эффективнее на таком вот количестве говна, а вот этот уже на более другом количестве говна!!!!!!
И я сразу же вспоминаю про КОНТРОЛЛЕРЫ, битоёбство и прочее питушение. Так вот, это – оверинжиниринг и говно. Такая даза банных не нужна.
> Это хуйня.
Я передумал уже, это не хуйня.
их уже не нужно вручную обновлять>?
Действительно. Про adaptive joins даже не слышал.
Вроде тут понятно объясняют: http://www.queryprocessor.ru/adaptive-query-processing/
Это же космические технологии: алгоритм на ходу сам себя переписывает. Я джва года ждал такую фичу.
Я использую СУБД не для того, чтобы думать о физическом представлении данных. Если я захочу побайтоёбить, я возьму няшную или что-нибудь типа того.
Индекс по пустому множеству, чтобы нанякать оптимизатор запросов.
Какое говно )))
Ну наверное это типично для пользователя MySQL
Intel(R) Intelligent Storage Acceleration Library Crypto Version
ISA-L_crypto is a collection of optimized low-level functions targeting storage applications. ISA-L_crypto includes:
• Multi-buffer hashes - run multiple hash jobs together on one core for much better throughput than single-buffer versions.
• • SHA1, SHA256, SHA512, MD5, SM3
• Multi-hash - Get the performance of multi-buffer hashing with a single-buffer interface. Specification ref : Multi-Hash white paper
• Multi-hash + murmur - run both together.
• AES - block ciphers
• • XTS, GCM, CBC
• Rolling hash - Hash input in a window which moves through the input
Тест пирфоманса: sha1 и sha256 в 2 раза быстрее, чем в OpenSSL, md5 — в 3 раза быстрее. Для sha512 разгон не получился. 1:1 с OpenSSL.
Итого: с этой библиотекой есть шанс разогнать md5 в 3 раза. Не гигахэши, конечно.
З.Ы. Ты же multi-buffer режим юзаешь, как они и предлагают? Насколько помню, эти хеши не очень хорошо ложатся на SSE, зато можно параллельно несколько блоков считать чтобы свободные куски регистров забить. Или я туплю и это только про AES было...
На одном буфере она работает медленнее, чем OpenSSL, на двух скорости сравниваются, дальше при увеличении количества буферов скорость растёт, а после 16 параллельных буферов прирост по сравнению с 16 незаметен. Разницу между реализацией на SSE и на AVX я не заметил.
На моём железе на входных данных, равных по длине емейлам, получил прирост в два раза с копейками. Похоже, что больший прирост можно выжать только на больших данных (в интеловских тестах мегабайты, а типичный емейл весит байтов 20).
Итого: ускорение раза в два на таких крошечных блоках выжать можно.
Не знаю, может быть, на AVX-512 результат получше будет, но пока проверить не на чем.
Какой анскилл )))
Но опять же на таких крошечных данных, как адреса почты, это не поможет.
И профита от передачи кусками вообще не будет, имхо. Оно тупо забуферизует первый кусок и ничего не будет считать пока ты остаток не передашь.
1. Алгоритм перебора. Не использовать конкатенацию, а писать поверх.
2. Алгоритм поиска вычисленного хэша в базе юзеров. Существует масса реализаций ассоциативных массивов. Для базы в 68к юзеров и ключа в 128 батов особой разницы между разными мапами не будет?
Кстати, у тебя же ключи уже отлично прохешированы через md5. Поэтому можешь смело упрощать хеширующую функцию в мапе до минимума (тупо взять первые 4 байта?)
Может быть вообще свои какие-то массивы вместо мапы попробовать стоит. База же фиксированная, можно один раз подготовить.
Что интересно, такой код дал прирост по сравнению с использвоанием std::map. Я загнала хэши в такое хранилище, вставила лукап после подсчёта хэша и только при наличии совпадения (это 60к случаев из практически бесконечности) уже искала в настоящей std::map.
std::map: 1.4Мх/с
царский set: 3.6Мх/с
Что интересно, если использовать memcmp для реализации operator < для хэша, тоже начинает тормозить.
std::map + memcmp: 1.2Мх/с
std::map + наивный алгоритм сравнения: 1.4Мх/с
Однако, operator == для хэша, совмещённый с царским лукапом, преимуществ по сравнению с велосипедным сравнением не дал.
Генерация вореций просело сильнее. Раньше это было 5%, а теперь - уже 15% слива:
вореции: 3.0Мх/с
прямой подбор: 3.6Мх/с
> pitux[0] << CHAR_BIT | pitux[1]
Отлично!
Осталось intrinsic с sse4/avx2 напетушить, чтобы пачками по 8-16 штук обрабатывало.
За Царя и Воречество! Ура!
Из-за блядских auto и выкинутых кусков не совсем понятен тип.
Для 128-бит md5 можно по джва сразу сравнивать.
https://godbolt.org/z/865E8PeYf
В регистрах оно было бы, если бы мы передавали структуру, а так будет копироваться из адреса в памяти.
А в комментарии с царским лукапом в некоторых местах псевдокод.
Заголовки про SSE не прошли из-за __m64, после их выключения с включённым только последним сравнение скомпилировалось под винубунтой (мингв не компилирует). Но заметный прирост или тормоза не наблюдаются.
Это надо как-то прикрутить ту царскую библиотеку для хэширования и оптимизировать генерацию нового слова, чтобы царское сравнение дало прирост. Ну либо откатиться на std::map, где куча сравнений.
> решила
И ты туда же?
1024-- бы не додумался до царского лукапа. Он сначала бездумно написал прототип под Node.js, а потом на крестах бездумно впердолил std::map.
Заменил std::map на std::unordered_map. Итоговое ускорение 3 раза.
В setttings добавить #define TSAR_LOOKUP
В struct digest_t - operator ==, например, как
После fi.close() добавить
Перед auto it = unknown_users.find
Перед if (n == N)
Можно писать "[email protected]" вместо "@mail.ru".
И ещё есть потенциал с Царским лукапом.
Я попробовала вставить unordered_map с return *reinterpret_cast<const size_t*>(d.data); в теле std::hash<digest_t>::operator(). Варианты вида return d.data[0] << CHAR_BIT*3 | ... дают похожее значение, но на единицы процентов меньше.
В итоге Царский лукап побеждает с отрывом:
Если он с "медленным" OpenSSL накинул 50% пирфоманса, то что будет с Царской библиотекой, где доля времени лукапа увеличится.
Звёздочка означает, что на некоторых наборах данных программа падает (пока не изучал, почему).
Похоже, что разгон зависит от процессора. У тебя будет быстрее.
Каждый тред берёт себе достаточно большой кусок пространства имён и работает над ним не общаясь с другими?
З.Ы. Можно ещё попробовать убрать лишние аллокации, работу со строками и т.п. если они есть. По-хорошему все горячие данные должны влезать в L1.
Надо алгоритм перебора емейлов доработать. В нём есть лишние операции.
https://govnokod.ru/27644#comment669384
Доступ случайный, в L1 не входит,поэтому чем меньше обращений к L2 триггернет на каждую проверку -- тем лучше.
flat_map оказался быстрее std::map, но медленнее std::unordered_map.
Пока что std слил хвалёный flat_map.
К слову на подобных задачах мне небольшой давал буст ручной префетч следующих адресов.
Edit: KOKOKOS )))
https://github.com/kokkos/kokkos/blob/master/containers/src/Kokkos_UnorderedMap.hpp
Так это просто потому что был нарушен главный принцип крестов: не плати за то, что не используешь. «flat_map» обеспечивает упорядоченность элементов, а это стоит процессорных денег. «std::map», обеспечивающий такой же набор услуг, «flat_map»-у сливает (за счёт того, что «flat_map» хранит всё дерево в одном массиве, а «std::map» — в разбросанных по всей памяти бакетах).
Логично.
Читаю за robin_hood — очень интересно.
Мне всегда нравились простые таблички с открытой индексацией (изящность и простота массива, локальность поиска, оцуцтвие оверхеда, нинужность питушарских указателей и дополнительных аллокаций).
И я неоднократно сам их велосипедил. Но всегда раздражала необходимость при удалении закладывать т.н. tombstone.
В robin-hood интересно придумали: хранить сдвиг от оптимального хеша.
А при удалении не ложить пустого скипуха, а сдвигать элементы назад — ближе к исходной точке.
Не надо. Мне просто название очень понравилось.
Я бы предложил попробовать google::dense_hash_map (но меня не нужно слушать — я не настоящий крестоблядь, у меня даже анимешной девочки на аватаре нету.)
Ещё у 1024-- таблица юзеров полностью в мапе. Я вынес таблицу юзеров в статический массив (в нём же всего 68к записей), а в мапе оставил только отображение md5 в индекс в этом массиве. С 2,7 Mh/s скорость поднялась до 2,9 MH/s. Как-то не очень заметно оказалось.
А зачем тут мап, кстати? Предлагаю в горячем цикле оставить set, а мапать md5 в юзера уже в холодном коде, когда торопиться некуда.
Кстати, а попробуй вот такой вариант ещё.
Строим битмапу по первым 20 битам от хеша (она займёт где-то 130КБ, как раз должна поместиться в L1D) и по ней делаем быструю предварительную проверку стоит ли вообще заморачиваться с текущим хешем.
По идее 95% обращений к основной мапе должно срезать (т.е. только 60к битов из миллиона выставлены).
Возможно, есть смысл потюнинговать количество битов.
О! Ну тогда есть ещё смысл поиграться с фильтрами Блума, которые ISO ниже советует.
Особенных изменений не видно.
Видимо, всё таки крутить нужно алгоритм перебора исходных слов.
Интеловская библиотека с программой перебора помимо gcc собрались в MSVC и в clang. В MSVC профайлер ничего интересного не показал. Слишком большой main, придётся его рефакторить.
В clang профилировать я пока не умею. А у gcc в новых mingw, как я уже говорил, профайлер сломали. Он выводит пустую таблицу.
М-м-м-м, bitset царская вещь.
> есть смысл потюнинговать количество битов.
Я бы бобробывал очевидные размеры: 16 и 24. И один неочевидный 16+3 =19 бит.
2²⁴ бит = 2 Mb, в кеш поместится.
Не знаю что у борманда за ЦПУ, но 128KB L1D это очень нетипично.(только новые Apple)
А 2¹⁹=64 KB (старые АМД). Типичный размер L1D — это 32KB.
Да самый обычный 8700k...
L1d cache: 192 KiB
L1i cache: 192 KiB
L2 cache: 1.5 MiB
L3 cache: 12 MiB
З.Ы. Тьфу блядь, я дура. Это 192 на 6 ядер. У каждого по 32. Ёбаные маркетологи.
https://www.cpu-world.com/CPUs/Core_i7/Intel-Core i7 i7-8700K.html
> Level 1 cache size 6 x 32 KB 8-way set associative data caches
Да, я уже поняла ;(
Ёбаные маркетологи. В чём смысл писать суммарный L1, а не на каждое ядро. Он же не расшаренный...
Второй тред нужен просто чтобы поюзать остатки железа, которые не потратил первый.
Каждый "процессор" имеет свой набор регистров (ну на самом деле их много, мы же помним про станции резервирования Томасуло?) и свой APIC.
Для ОС это как-бы отдельный процессор.
Но всё остальное у них общее.
Потому пока один процессор ждёт пока ему данные придут из памяти, другой может чото считать.
Если писать "развязанный код" без зависимостей, то наверное будет профит. Но он и на обычном современном процессоре будет
И тут мы добавляем микро-шедулер и умудряемся исполнить на том же железе команды от джвух тредов. Пока один тред ждёт ответа от памяти, мы второму что-нибудь считаем и т.п.
В общем-то у видюх примерно такая же схема, только там вместо двух гипертредов тысячи и большая часть ждёт ответа от памяти (насколько помню, там всегда high-latency, high-bandwidth).
З.Ы. А идеальный код без лишних зависимостей сожрёт все ресурсы ядра сам, там соседям только крошки останутся.
У Штеуда всю дорогу было по 32Kb L1D на ядро (только в Sunny Cove они решились увеличить до 48Kb).
У Амд со времён старых Атлонов по 64Кб кеша (не инклюзивного), но низкая ассоциативность.
В Zen они понизили L1D до 32Кб, увеличив ассоциативность.
Единственные ЦПУ где очень-очень-очень много L1 это свежие Яббл. Они со времён А12 просто с ума сошли.
Ну вот я и слилась как анскилльная лалка, даже не в курсе сколько кеша у проца (((
Видимо, при более мелких размерах много ложных срабатываний, потому и медленнее.
По сравнению с неприкрытой robin_hash::unordered_flat_map прирост невелик.
Бля, вот как вы помните все эти умные названия?
Я идею то помню, а нагуглить ссылку на неё не смогла, пришлось своими словами описывать в комменте выше. А, у меня вырожденный случай с одним хешем получился.
https://www.postgresql.org/docs/current/bloom.html
Что-то в духе if (filter[md5[0]] | filter[md5[1]] | filter[md5[2]] | filter[md5[3]]) { ... }
> А зачем тут мап
Если задефайнить Царский Лукап, у Настеньки сначала смотрится в Царском сете, а потом, если вдруг нашлось - в std::map.
И отдельно ничего ставить и компилировать не надо. Просто инклюдишь "robin_hood.h".
Кстати, а замерял профайлером какой участок кода сейчас боттл-неко? Подготовка буферов, хеширование или поиск в мапе?
https://stackoverflow.com/questions/67240792/gprof-producing-no-output-for-a-program-that-takes-reasonable-time-to-execute
Придётся переходить на «Линукс» или откапывать из архивов старую версию «MinGW».
Или пересобрать под «MSVC» всё, включая царскую библиотеку для «md5».
https://cs3.pikabu.ru/post_img/big/2014/03/18/5/1395125808_833463532.jpg
https://github.com/greg7mdp/parallel-hashmap/blob/master/README.md
https://tessil.github.io/robin-map/
https://github.com/skarupke/flat_hash_map
Первая лучше на std::string, а две последних на сырых интах.
Так в этой мапе, местный Царь разбил её на Группы по 16 элементов.
К каждому элементу приаттачен 1 бат метаданных (7 бит хеша + 1 бит свободно/удолено) .
Соответственно для группы из 16 элементов это 128 бит, которые он матчит одной SSE инструкцией.
Что сродни тому что я предлагал выше.
Изучаю дальше.
Один .h файл без зависимостей — это плюс. Возможность работать как в режиме flat (без перепитушни) так и linked list нод (как в std) — ещё плюс.
Кастомный царский аллокатор однотипных нод на массиве это ещё плюс.
// Allocates bulks of memory for objects of type T. This deallocates the memory in the destructor,
// and keeps a linked list of the allocated memory around.
Ну и даже конкуренты подтверждают, что действительно сливает в хламину.
> unordered_map is an associative container that contains key-value pairs with unique keys. Search, insertion, and removal of elements have average constant-time complexity.
> Internally, the elements are not sorted in any particular order, but organized into buckets. Which bucket an element is placed into depends entirely on the hash of its key.
Хеш-мапа быстрее красно-чёрного дерева на алгоритме где выпадают практически рандомные хеши и не нужна сортировка. Логично.
Проще пройти по прямому адресу в массив (пусть даже в рандомное место), чем делать десяток сравнений/ветвлений (branch predictor не обрадуется).
Сначала почистил базу от дублей (которые я показывал).
На хэше, обрезанном до 32 бит (четырёх байтов), коллизий нет. Причём можно брать как старшие 32 бита, так и младшие.
На хэше, обрезанном до 16 бит (двух байтов), есть коллизии. И тут самое интересное. Лидеры по количеству коллизий — нумерные петухи и антибагры (до семи юзеров на хэш). Можно искать файки, тупо отсортировав базу по хэшу. Работает и со старшими 16 битами, и со младшими. А говорили, что криптографические хэш-функции обеспечивают конфиденциальность...
Если хэш обрезать до 24 бит (трёх байтов), то получается не более двух юзеров на хэш, причём второй чаще всего — нумерной петух.
С учётом того, что нумерные петухи составляют чуть меньше джвух третьих всей пользовательской базы «ГК» — это не очень удивляет.
Дык убери их из базы, раз они твои...
Будет. STL-говно точно отсосёт по пирфомансу из-за большого количества индирекций, рекомендую смотреть в сторону boost::flatmap или даже кастомных (бит-)массивов*.
https://www.benibela.de/fpc-map-benchmark_en.html
https://i.imgur.com/vpJsUTD.jpg
https://m.vk.com/video50524211_170438716
Не, я не Стертор.
В оригинале, правда, был тест Роршаха.
Хорошо, что bormand подсказала, теперь-то жизнь заиграет новыми красками!
Видимо, придётся прикрутить «w3m» к «Emacs».
Скоро «Emacs» поглотит мою систему целиком...
Сравнение total throughput для ./isal_multithread_perf -m pituz{,_mb}? Или какая-то другая питушня?
grep, zgrep, bzgrep, xzgrep
more, zmore, bzmore, xzmore
less, zless, bzless, xzless
Какой юникс вей )))
А zstdcat и zstdgrep бывают?
В цфлагсах одной из линуксячьих утилит.
В один прекрасный день ты возвращаешься домой, а там systemd-homed.
Вместо этого дёргаешь за рычаг и проваливаешься в подземелье, идёшь по тёмным коридорам часами, щёлкая нужные рубильники по памяти, затем, доходя до самого нижнего этажа, переключаешь последний тумблер и разгадываешь судоку 100х100 квадратиков, чётные числа закрашиваешь чёрным, а нечётные – белым, чтобы получился куар-код для открытия двери.
Только вот незадача, на двери нет камеры для считывания куар-кода: камера находится в другом подземелье...
Пузырёк с надписью "install me"
Teapottering
З.Ы. Ну кстати, чистый systemd выглядит намного разумнее, чем ёбаный кентавр из systemd и старых тулов, в который превратились остальные дистрибы.
* Один мой бывший коллега убеждал меня, что это просто и легко: он просто создаёт на диске ``C'' кучу файлов, набитых нулями (с помощью msys, что характерно), оставляя там всего пару гигабайт, и постепенно их удаляет. До удаления пользовательских данных ради апгрейда МС пока не допёр.
... а апдейтер сразу же пожирает это место.
> До удаления пользовательских данных ради апгрейда МС пока не допёр.
Да даже до автоматического зожатия нулей или создания sparse files.
В новой версии винды я бы удалял или преобразовывал в случайный поток (вроде симлинка на слайс из /dev/urandom) даже случайно сгенерированную питушню, если её ни разу не читали и не копировали, ведь всё равно хозяин компьютера при таких условиях никогда не заметит разницы.
> оставляя там всего пару гигабайт
Надо спросить, что по этому поводу думает его SSD. Догадался ли контроллер до зожатия, или он всё ещё пердолится с игрой в пятнашки в этих последних гигабайтах.
А вот фиг знает, кто победит -- кеш вандрайва или кеш апдейтера. Если кеш апдейтера окажется важнее, то локальную копию вандрайва выжмет в облако.
https://www.windowscentral.com/how-set-ethernet-connection-metered-windows-10
Не... она через несколько месяцев один фиг скажет: чувак, мне конечно жаль твой трафик, но что-то я давно не обновлялась.
Нахуя кстати? Я ведь всё равно не смогу удалить какой-нибудь патч из середины.
у тебя остаются предыдущие версии файлов, и если ты на них не откатываешься, то там через какое-то время они удаляются
Но это всё какие-то апокрифические знания, потому что официальной документации нет.
И правда, офигеть. Дома у меня буквально метров 100, хотя винде уже несколько лет.
Почему тогда на работе там десятки гигабайт? Из-за визуал студий и прочих офисов поди?
Dism.exe /online /Cleanup-Image /StartComponentCleanup
зы: о, нашел доку
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/clean-up-the-winsxs-folder
the task will wait at least 30 days after an updated component has been installed before uninstalling the previous versions of the component.
включаешь виндуос, а там крутится кружочек, и написано "Пожалуйста, подождите"
https://www.dualshockers.com/songs-removed-grand-theft-auto-iv-todays-update/
Там всего-то надо отключить службу апдейтов, службу WaaSMedicSvc, от рута удалить их и почистить несколько тасков из планировщика заданий, которые эти службы восстанавливают (тоже от рута).
Вроде бы ещё была какая-то служба, которая эти две восстанавливает, но я уже не помню.
Какой анскилл )))
Почему бы просто на уровне ядра не защитить эти ветки и файлы от всех программ, не подписанных майкрософтом?
Емнип, уже сейчас админ в винде не может трогать файлы в некоторых системных директориях.
ну тоесть сначала take ownership, а потом write
иначе к ним доступ будет только у каких-нить TrunstedInstaller например
Пока всё работает правильно, там можно не придолица вообще.
А когда оно не работает -- тебя ждёт ад
Ты потихоньку въехжаешь в это говно, читаешь документацию, читаешь скриптики, и в итоге чувствуешь себя довольно уверенно. Все как-бы просто и понятно.
У винды ты можешь десять лет быть крутым админом, запускающим dcpromo, а потом у тебя хуяк -- и всё упало. И ничего не понятно, потому что нет ни кода, но документации по конкретно этой проблеме.
Потом в технете появляется заклинание про замену одного гуида в реестре на другой, и ты его выполняешь, и тогда всё работает
Кто-нибудь смотрит системные журналы? Или лог ngen?
Свежепоставленная винда уже будет иметь с десяток варнингов в логах, всем похуй
А то потом будет неизвестная ошибка 0xABC123 при попытке удалить SDK, и даже sfc /scannow не поможет
Рута в NT никогда и не было. Админ, насколько я понимаю, это самый обычный юзер, которому дали чуть больше привилегий.
Но если ты хотел ставить w95, то у тебя скорее всего был multimedia компутер с CD-ROMмом
Правда флопик тебе всё равно бы понадобился, ведь грузиться с сидирома биосы не умели: el torro тогда еще не было
https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc767941(v=technet.10)
Microsoft Office 97 Standard edition is provided on a total of 45 diskettes. Microsoft Office 97 Professional edition is provided on a total of 55 diskettes. Depending on the options selected during Setup, you may not be prompted for every diskette.
я когда-то даже картонную коробку видел от старого офиса
реально здоровая картонная коробка для софта
А до него был Office 95 а еще Word 6.0.
Угадаешь зачем оно было?
его можно было закрыть, и всё
ну креды для CHAP и PAP тоже, но я не про них
Грубо говоря make знает, что из лекса получается .c, из .c -- .o итд
Так вот там есть правило и для SCCS
прыщебляди соснули
зато есть для сборки веба из tex
на ней работает far, total commander, и хром. Что еще на ней работает я не знаю, но по идее можно заменить ей десктопную винду
https://www.windowscentral.com/windows-core-os
я имел ввиду Windows Server Core
Итак, что такое Windows Server Core?
Многие люди интересуются, что такое Windows Server Core. В сети многие сайты пестрят статьями про Windows Server Core, но можно ли им доверять? Чтобы понять про Windows Server Core лучше, прочтите нашу статью об Windows Server Core.
1. Windows Server Core
Познакомимся с Windows Server Core. Вас заинтересовал Windows Server Core и вы решили получить опыт с Windows Server Core. С чего лучше всего начать в случае с Windows Server Core?
Об этом и расскажет наша статья про Windows Server Core.
2. Где почитать про Windows Server Core
В интернете по запросу "Windows Server Core" можно встретить множество мошенников, которые предлагают лёгкие знания по Windows Server Core. Однако мы советуем обращаться за информацией про Windows Server Core только на проверенные узлы мировой сети, иначе опыт использования Windows Server Core может быть негативным и оттолкнуть от дальнейшего использования Windows Server Core.
3. Windows Server Core. Выводы
Надеемся, вам помогла наша статья про Windows Server Core и вы сможете использовать Windows Server Core более продуктивно и эффективно. Если у вас остались вопросы по Windows Server Core, не стесняйтесь задавать нам их на электронную почту с пометкой "Windows Server Core"!
Всего наилучшего и удачного использования Windows Server Core.
Карта C++17
> systemd-oomd(8) — A userspace out-of-memory (OOM) killer
А ну-ка прыщебляди, расскажите что вне systemd обеспечит мне такой функционал?
Где привычные прыщеблядские рассказы: «вот у нас всё и так было», «systemd это просто нинужная обёртка», «у нас никаких проблем не было».
Годами существует проблема: Луникс при OOM намертво подвисает и минут на 10-20 уходит в себя.
Причём даже при отключенном свопе.
расскажи про это, кстати
Я только OOMKillerов видел
Формально это ещё не OOM, но системе уже пизда.
З.Ы. Или у меня лапки, а гуру умеют настраивать так, чтобы своп работал нормально?
ram < working set < swap + ram
Это по идее не оверкоммит ещё, так что должно с любыми настройками выделить...
начнется активный свопинг и всё станет рачком?
Ну ключевое слово "working set", т.е. надо активно эту память перезаписывать, а не просто выделить и молчать.
З.Ы. while (1) memset(p, 0, size) вроде тоже прокатит.
Так бы всё зависло сильнее и тупило гораздо дольше...
О, спасибо! Пойду передёрну свап, а то как-то неприятно когда там не 0 байт.
Реальность: try_to_unuse() is of quadratic complexity, with a lot of wasted effort. It unuses swap entries one by one, potentially iterating over all the page tables for all the processes in the system for each one.
А если аллокнуть swap + ram - 4096, то тупит, но быстро OOMится
Кстати, ты в курсе что до последнего времени в луниксе своп освобождался за O(N²).
Из-за этого был ОЧЕНЬ долгий resume from hibernate и парадоксы что проще убить процесс и запустить его заново чем ждать пока он вернётся из свопа в память. Наблюдалось и на сверхбыстрых SSD.
Если честно, никогда не пробовала... Это вообще работает? У меня и на винде то не получалось в своё время.
Да, сейчас даже получше (в смысле быстрее). Раньше resume был ооочень долгий.
Для сравнения: на XP на HDD (!) было почти мгновенно, а на линуксе и SSD минут 5.
Но с нюансами. Реальные примеры: сидел на штеуде, 4.13 всё отлично. Обновился до 4.15: не резюмится и даже suspend не работает.
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1774950
https://ubuntu-mate.community/t/hibernation-broken-in-kernel-4-13-0-25/15736
Сейчас амд нормально работает.
Для ноутбука must-have.
Оказалось что при наличии такого раздела в системе hibernate сделать невозможно, т.к. btrfs не дружит со свопом.
Btrfs has not allowed swap files since commit 35054394c4b3 ("Btrfs: stop
providing a bmap operation to avoid swapfile corruptions"). However, now
that the proper restrictions are in place, Btrfs can support swap files
through the swap file a_ops, similar to iomap in commit 67482129cdab
("iomap: add a swapfile activation function").
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ed46ff3d423780fa5173b38a844bf0fdb210 a2a7
hibernate в принципе невозможен при наличии активного btrfs-раздела (на котором у меня был /home)
Иными словами есть btrfs partition и есть swap partition. И btrfs драйвер не давал делать hibernate на swap partition.
Ага. Дикое Говнище )))
Но видимо они не смогли только этот кейс запретить и отрубили вообще всё нахуй на всякий случай?
И пока не удолил btrfs-tools — оно не работало.
Напомнило про драйвер амудэ, который по имени игры воркэраунды для проца применяет.
Или там в этом пакете заодно активация драйвера сносится?
там драйвер что ли?
Хотя ext4 тоже бесился по молодости (поломали классическую идиому write + rename).
Любишь сортировать файлы из lost & found?
Если soft updates (как в старых bsd), то скорее всего всё и починится нормально
Ахаха! Исполнение кода с подкачкой каждой функции с диска, потому что выгрузить больше нечего? Не, немножко то свопа надо оставить.
А когда был hdd пришось часов через шесть после изнасилования диска просто сделать reset.
Чтобы не терять результаты работы.
> Windows has no OOM killer - it will just keep swapping memory to disk and back until you get bored and kill the offending process yourself or reboot the machine. It's very easy to bring a Windows machine to its knees this way - just allocate more virtual address space than there is physical RAM and cycle through it, modifying each page as rapidly as possible. Everything else quickly gets swapped out, meaning that even bringing up the task manager to kill the program takes forever.
Винда (когда она у меня была) не лагала с отключенным свопом.
Она обычно крашила группу вкладок хрома.
> just allocate more virtual address space than there is physical RAM and cycle through it
> Everything else quickly gets swapped out
Есть одна проблемка: на винде у меня будет отключён своп и эта анскильная программа просто не заработает.
Текущая реализация OOM Killer в Linux стремится выбрать наименее важный процесс. Он выбирается среди всех процессов, кроме init и kernel threads, на основе подсчета для всех процессов очков и тот, что набрал больше всех очков - убивается. Алгоритм анализа достаточно сложен и я не буду его приводить здесь.
Systemd-oomd это уже часть ядра, или это просто какая-то нахуй не нужная переделка того, что уже есть в ядре? Я только закончил ебаться с «Gentoo», поэтому мог не правильно понять портянку, которую притащил (я очень устал).
Реально система даже без свопа останавливается на очень долгое время.
https://github.com/rfjakob/earlyoom/
А вообще-то мне было похуй на «SystemD», но я вас тут наслушался и решил стать не «инцелом», не «геймером», а «врагом SystemD», почему теперь здесь все за «SystemD»? Вы меня флеймите троллом?
АХАХАХА
> electron
Ну-ну.
We find that oomd can respond faster, is less rigid, and is more reliable than the traditional Linux kernel OOM killer. In practice, we have seen 30-minute livelocks completely disappear. We wish to contribute oomd to the open source community to help others find a more flexible solution for OOM situations.
Ночь - хоть выколи глаза.
Слышны крики попугаев
И мартышек голоса.
Над цветущею долиной,
Где не меркнет синева,
Этой песенки старинной
Мне припомнились слова.
Я иду по Уругваю,
Где так жарко в январе,
Про бомбёжки вспоминаю,
Про сугробы на дворе.
Мне над мутною Ла-Платой
Вспоминаются дрова,
Год далёкий сорок пятый,
Наш отважный пятый "А".
Малолетки и верзилы
Пели песню наравне.
Побывать нам не светило
В этой сказочной стране.
Я иду по Уругваю,
В субтропическом раю,
Головой седой киваю,
Сам с собою говорю.
Попугаев пёстрых перья,
Океана мерный гул...
Но линкор немецкий "Шпее"
Здесь на рейде затонул.
И напомнит, так же страшен,
Бывшей мачты чёрный крест,
Что на шарике на нашем
Не бывает дальних мест.
Я иду по Уругваю
В годы прошлые, назад,
Вспоминаю, вспоминаю,
Вспоминаю Ленинград...
Я иду по Уругваю,
Ночь - хоть выколи глаза.
Слышны крики попугаев
И мартышек голоса.
Там высокий уровень жизни, много потомков беглых нацистов, дешевая и качественная при этом говядина, и пиво хорошее
Парагвай беднее, и там больше индейцев
PunkSpider успешно работал с 2014 по 2018 годы. Потом его пришлось закрыть из-за множества жалоб от компаний, чьи сайты становились лёгкими мишенями для взлома. Но сейчас разработчики разобрались с юридическими проблемами и готовы возобновить проект.
На данную минуту PunkSpider ещё не запустили, на сайте висит заглушка, опубликована только ссылка на расширение для Chrome.
Как вы думаете, это круто или не очень? Теперь даже какой-нибудь ламер-виндузятник (арендатор своей OS) сможет взломать любой, даже самый популярный, сайт.
... которое будет сообщать твои пароли всему интернету.
Кстати, а в хромовский магазин до сих пор можно заливать проприетарную зашифрованную парашу? Мозилла вроде нечитаемые расширения сразу блочит теперь.
Ого, Макака с Мартышкой свой пароль не только для говнокода используют
https://www.shodan.io/host/213.227.38.134
Alwon E20 Telnet
Input password (defaul 1234):
> Telnet
Подобная индустрия, единственной целью которой является производство уязвимостей, должна быть ликвидирована.
Даже если завтра NSO Group и всех представителей этой индустрии внезапно сотрёт с лица земли вулканом общественного возмущения, это не изменит того факта, что мы в разгаре величайшего кризиса компьютерной безопасности в истории. И разработчики Apple, Google, Microsoft, которые хотят продавать продукт, а не доводить его до совершества, и их полная противоположность — благонамеренные разработчики Linux, которые хотят доводить продукт до совершенства, а не продавать его — все они спокойно пишут код на небезопасных языках, потому что… ну, потому что так привыкли, а модернизация требует значительных усилий, не говоря уже о расходах. Подавляющее большинство уязвимостей, которые потом эксплуатируются индустрией небезопасности, появляются по техническим причинам, связанным с управлением памятью. Поэтому выбор более безопасного языка — критически важная мера защиты… но мало кто об этом думает.
На этом моменте сразу понял, что статью писал дrustня-сектант. Открыл источник — и правда, сектант!
Именно по этому я за "PHP"
то-то я смотрю в линуксе всё доведено до свершенства: особенно конечно документация (к ss, ip, tc итд)
>> -Werror
>> introduce Q3 2021
https://govnokod.ru/27648
https://govnokod.xyz/_27648/
давайте течь от "UNIX way"
Я знаю, ты сможешь
Мне аргумент sed'а проще понять.
%.d: %.c это pattern rule, говорящая, что например petuh.d зависит от petuh.c.
https://www.gnu.org/software/make/manual/html_node/Pattern-Rules.html
$@ это алиас для таргета (например для petuh.d)
https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html
"set -e" это падать при ошибке (См "help set")
-M у gcc это генерация депенденсов по сишным файлам.
$< это список всех зависимостей
Ну а sed c нетипичным разделителем -- запятой -- ты наверное и сам расшифруешь
"An OGNL injection vulnerability exists that would allow an authenticated user, and in some instances unauthenticated user, to execute arbitrary code on a Confluence Server or Data Center instance.
https://www.zdnet.com/article/us-cybercom-says-mass-exploitation-of-atlassian-confluence-vulnerability-ongoing-and-expected-to-accelerate/
Знаете, что такое OGNL?
Это жабий XPATH, его пидарасы во всякие шаблоны пихают
https://struts.apache.org/tag-developers/ognl-basics