- 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
nepeKamHblu_nemyx 03.09.2021 21:52 # 0
Этот оффтоп сгенерирован автоматически.
Индекс оффтопов: 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.
Остерегайтесь подделок. Берегите себя и своих близких. Кок!
j123123 04.09.2021 01:03 # +3
https://govnokod.xyz/_27610/#comment-656560
> а пользователям на это глубоко похуй: какая тебе разница, через что твой жёсткий диск скорраптит криптовымогатель — через дыру в «SMB» или через «Shellshock»?
MS может отказаться чинить дыру в SMB в Windows XP, сославшись на неподдерживаемость старой винды. А если некий старый дистрибутив Linux, BSD или еще чего, у тебя есть возможности, чтобы что-то там починить, несмотря на.
> В отличие от попен-сорсных поделок, за уязвимости в коммерческих приложениях компания расплачивается прибылью и репутацией
Для опенсорсных поделок компания тоже расплачивается прибылью и репутацией, если она оказывает коммерческую поддержку к этим опен-сорсным поделкам
> В «closed source» несколько другая культура: там для улучшения качества продукта принято не самому править код, а отправлять баг-репорты, краш-репорты и телеметрию.
Багрепорты и крашрепорты (иногда и телеметрию) я и в опенсорс отправлял, если что.
guest6 04.09.2021 11:54 # +4
3.14159265 04.09.2021 01:31 # +1
> Только в реальности от этой простоты нет ни малейшего толка: никто не занимается аудитом опен-сорсных проектов, за исключением редких исключений (в большинстве случаев — когда юзвери скинулись на профессионального аудитора).
Неправда.
Поиском уязвимостей занимаются многие крупные корпорации, которые используют данный опенсорсный софт.
bormand 04.09.2021 09:21 # +1
Придётся запускать каждому из них по кефиру чтобы они друг к другу не лезли в окна да буфер обмена? Но тогда получится ёбаная матрёшка или у окон от одного домена безопасности не будет работать буфер ;(
Какой-то тлен и безысходность.
JloJle4Ka 04.09.2021 09:30 # 0
Это называется «Sandboxing», я узнал это из Gentoo-wiki.
bormand 04.09.2021 09:34 # +1
Это здесь вообще не при делах. Если ты от разных юзеров на одном Х-сервере наделаешь окошек, то они все будут лазить друг к другу.
А остальные права (кроме иксов) можно и для одного юзера разрулить (или вообще в контейнер/виртуалку загнать).
CHayT 04.09.2021 09:55 # +2
bormand 04.09.2021 10:17 # +1
rotoeb 04.09.2021 10:19 # 0
guest6 04.09.2021 10:00 # +2
а вот как миксовать аутпут надо подумать, может придется иметь разные мониторы.
А вообще какой session 0 isolation ))
bormand 04.09.2021 11:29 # +1
З.Ы. У хромиума даже без wm всё работает.
JloJle4Ka 04.09.2021 11:32 # 0
ISO 04.09.2021 11:35 # +1
bormand 04.09.2021 11:37 # +1
guest6 04.09.2021 12:59 # +2
Струит эфир
Бежит, шумит
Гвадалквивир
Desktop 05.09.2021 15:03 # 0
guest6 05.09.2021 15:15 # 0
Desktop 05.09.2021 15:17 # 0
guest6 05.09.2021 15:21 # 0
Desktop 05.09.2021 15:22 # 0
guest6 05.09.2021 15:23 # 0
https://zaborona.help/
Desktop 05.09.2021 15:23 # 0
vpn ради того, чтобы раз в месяц посмотреть смехуёчки от фсб??
guest6 04.09.2021 12:13 # +2
Каждому сокету для связи с X11 права отдельного юзера, или каждому в домашнюю папку свою .Xauthority и всё.
Находил статью как петух сделал мультисит из одной машины.
DISPLAY это совокупность скрина (монитор+видеокарта), клавы и мыши.
У него несколько карт, и куча мышей и клав.
Он собрал такие диспели (прописав их в xorg.conf), и получил реально разные рабочие места
http://www.linuxtoys.org/multiseat/multiseat.html
guest6 04.09.2021 12:19 # +2
Например можно поставить несколько серверов приложений, на каждом запустить DM.
Можно в каждом DM прописать другие, чтобы они умели форвадить клиентов
Один из DM настроить на ответы на BroadcatQuery.
Потом включаешь бездисковую станцию с иксами (по сути X терминал), он бродкастом находит DM, и рисует окошко входа и список серверов
Пользователь выбирает сервер, и логинится туда.
Получается как RDS ферма с брокером, для какого-нить класса вообще збс
Desktop 05.09.2021 15:04 # +1
– у них что-то не то с social distancing
guest6 05.09.2021 15:10 # +1
А у вас на работе у каждого личный кабинетчтоли?
Desktop 05.09.2021 15:12 # 0
guest6 05.09.2021 15:14 # 0
Desktop 05.09.2021 15:17 # 0
личного кабинета у меня пока не было, но и нюхать чужие подмышки таким образом тоже не приходилось, слава богу
guest6 05.09.2021 15:19 # 0
Desktop 05.09.2021 15:20 # 0
– которые берут джунов и пилят госзаказы?
кстати, вот по этому поводу начальника транспортного цеха было бы интересно послушать
guest6 05.09.2021 15:25 # 0
Я просто вспомнил как в моей молодости во всяких "бизнес центрах класса F", переделанных из старых советских НИИ, сидели такие вот маленькеи веб студии из двух человек, и делали сайты прачечным, и хостили их на valuehost, и вот у них обычно с санитарными нормами был швах
ISO 05.09.2021 15:29 # 0
Хорошо хоть не на http://govnohost.info/. Хотя разница, конечно, невелика…
Desktop 05.09.2021 15:30 # 0
guest6 05.09.2021 15:34 # 0
Desktop 05.09.2021 15:29 # 0
> делали сайты прачечным
> с санитарными нормами был швах
какая постирония )))
bormand 04.09.2021 11:38 # 0
guest6 04.09.2021 11:43 # +1
bormand 04.09.2021 11:44 # +1
guest6 04.09.2021 11:48 # +1
`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 их перезапускает
не?
bormand 04.09.2021 11:57 # 0
> сессию
Я же правильно понимаю, что "сессия" -- это просто батник, который поднимает оконный менеджер, всякие панельки и прочее говно?
guest6 04.09.2021 12:00 # 0
bormand 04.09.2021 12:01 # 0
guest6 04.09.2021 12:53 # 0
Ясно.
guest6 04.09.2021 12:54 # 0
IIIyqpymuHckuu_nemyx 04.09.2021 12:55 # 0
guest6 04.09.2021 12:58 # 0
Пацан сидит с женским ником и женским аватаром, не?
ISO 04.09.2021 13:00 # +4
guest6 04.09.2021 13:11 # 0
JloJle4Ka 04.09.2021 13:20 # 0
Дай определение женскому нику.
> и женским аватаром
Вот блин, совсем забыл, что настоящий мужик ставит на аватарку только другого настоящего мужика, и потом весь форум любуется на жопу/хуй этого самого настоящего мужика. Другие (менее мужские картинки, т.е. те, на которые не возбуждается guest6), как и любое проявление симпатии к слабым мужчинам без членов (женщинам) – это проявление слабости, а настоящий мужик должен не иметь слабостей. Всё правильно говорю, или я упустил какие-то нюансы?
IIIyqpymuHckuu_nemyx 04.09.2021 13:22 # 0
JloJle4Ka 04.09.2021 13:32 # 0
Во первых — нет.
Во вторых, вообще-то это не «аниме», а какой-то милый и прикольный рисунок из интернета (статичная картинка, не анимация). При чём тут вообще аниме?
Сегодня в зерно забыли таблеток насыпать?
guest6 04.09.2021 13:41 # +1
именно по этому я за "rotoeb"
Desktop 05.09.2021 15:01 # 0
> жопохуй
seems legit
bormand 04.09.2021 13:27 # +1
Как ты со спины определил?
Desktop 05.09.2021 15:02 # 0
JloJle4Ka 04.09.2021 13:12 # 0
IIIyqpymuHckuu_nemyx 04.09.2021 13:19 # 0
JloJle4Ka 04.09.2021 13:22 # 0
IIIyqpymuHckuu_nemyx 04.09.2021 13:24 # 0
JloJle4Ka 04.09.2021 13:24 # 0
IIIyqpymuHckuu_nemyx 04.09.2021 13:26 # 0
JloJle4Ka 04.09.2021 13:33 # +1
guest6 04.09.2021 13:45 # +1
То есть я видел его в пакетах у слаки, но никогда не задумывался, что это за язык
А в генте портадж на питоне
bormand 04.09.2021 13:53 # +1
guest6 04.09.2021 13:58 # +3
Решил погуглить про питон там, и нашел смешное
https://www.cyberforum.ru/python-beginners/thread2346140.html
guest6 04.09.2021 12:06 # 0
``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 могут вообще иметь свою собственную машинерию
3.14159265 05.09.2021 00:10 # 0
Лол. Единственный реально используемый вклад Canonical в open-source.
Всё остальное (mir, unity, upstart) сдохло. Или я что-то забыл?
bormand 05.09.2021 15:04 # 0
apparmor?
З.Ы. Его не они начинали пилить, но до космонавта он вроде никому особо не интересен был.
guest6 05.09.2021 15:08 # 0
bormand 05.09.2021 15:09 # 0
guest6 05.09.2021 15:11 # 0
Вообще чем это всё лучше xdma? Круглыми уголками?
IIIyqpymuHckuu_nemyx 04.09.2021 13:19 # +1
bormand 04.09.2021 13:21 # +2
ISO 04.09.2021 13:23 # +1
IIIyqpymuHckuu_nemyx 04.09.2021 13:25 # +1
guest6 04.09.2021 13:41 # +2
ISO 04.09.2021 15:11 # +1
Это же удобный, многофункциональный, консистентный и унифицированный инструмент, который позволяет эффективно решать распространённые проблемы.
Понятно, конечно, что утёнок душит выкидывать тонны ущербных говноскриптов из «/etc/rc0.d», но взрослеть-то нужно.
Разговоры про «философию Unix» и «Unix way» лучше оставить прыщавым подросткам: это им приличествует разводить срачи о том, чьи скрипты православные, а чьи — ересь. Взрослым людям ОС нужна для эффективного решения задач, а не для споров про философию и подход.
JloJle4Ka 04.09.2021 15:17 # 0
Лично мне – нет, именно поэтому я за «OpenRC».
ISO 04.09.2021 15:20 # 0
Ну а утверждение о том, что его код никто не проверяет вообще смешно: это относится вообще практически к любому опен-сорсному ПО.
JloJle4Ka 04.09.2021 15:27 # 0
Если никакой, то поставь Винду, ведь...
> он выполняет то, что мне нужно от системы
И не выёбывайся.
> и делает это хорошо
Не хорошо, а хуёво и неэффективно.
> это относится вообще практически к любому опен-сорсному ПО
В портянке говнокода на 500 строчек кода найти уязвимость заметно проще, чем в портянке говнокода на 500000 строк кода.
А теперь хрюкни и обнови шиндошс, или что ты там делаешь обычно.
Desktop 04.09.2021 15:31 # 0
JloJle4Ka 04.09.2021 15:36 # +1
ISO 04.09.2021 15:38 # 0
Ну почему же? Я за «GNU/Linux», когда он эффективно решает мои задачи.
Критикую я иррациональную религиозную ненависть к хорошим, в общем-то, инструментам.
JloJle4Ka 04.09.2021 15:52 # 0
Т.е. когда в нём отсутствуют поделия сумрачного гения Поттеринга? А какой у тебя DE стоит? GNOME? Если не гном, то причины, по которым люди не ставят системзду, тебе знакомы. А если всё-таки гном, то это многое объясняет.
ISO 04.09.2021 16:51 # 0
Зачем мне DE на серверах? Управлять сервером мне гораздо быстрее и удобнее через консоль. Прописать «systemctl start service_foo» эффективнее, чем рыться в менюшках.
j123123 04.09.2021 15:58 # +2
Правильно ли я понимаю, что ты считаешь хорошим инструментом "Microsoft Visual Studio"? Моя ненависть к этому инструменту несет не религиозный характер, и не связана с тем, что это продукт от "Microsoft". Я ненавижу поделки от "JetBrains" примерно так же сильно, и примерно по тем же причинам.
guest6 04.09.2021 16:04 # +1
Вообще инструмент может быть "хорошим" только для какой-то задачи.
Молоток хорош для забивания гвоздей, а для зачистки проводов не очень.
Для разработки на C# или VC++ под винду Visual Studio вполне хорош, а для LISP вероятно нет. А для программирование на "си" под микроконтроллеры -- совсем нет.
Точно также Intellij Idea отличный IDE именно для Kotlin, а вот нужно ли писать на Ruby в RubyMine -- вопрос открытый и весьма спорный
> несет не религиозный характер
ой, ну ладно)) Кажется что бы MS ни сделал, обитатели ЛОРа это обосрут
j123123 04.09.2021 16:06 # +3
Ну вот Microsoft Research пилит Haskell и на ЛОРе его что-то не особо обсирают, скорее хвалят.
j123123 04.09.2021 16:23 # +1
А рационально ли делать такую IDE, чтобы ей хорошо было разрабатывать только под винду? Т.е. вот надо отдельную IDE под винду, отдельную IDE под FreeBSD, отдельную под NetBSD, отдельную под QNX, отдельную под Haiku, и намертво их прибивать к соотв. операционке, это норм, да?
И мои претензии касаются не только заточенности под винду, но еще и общей тяжеловесности и тормознутости этой студии.
Desktop 04.09.2021 16:27 # 0
– какова целесообразность постройки моста через реку с точки зрения щуки? ©
j123123 04.09.2021 16:28 # +1
Доебка не ясна. Перефразируйте
Desktop 04.09.2021 16:32 # 0
мс уже минимум четверть века делает ide под винду и пока полёт нормальный
правда, я вот пользуюсь ide от ms под мак время от времени и тоже пока не умер
j123123 04.09.2021 16:36 # +1
Находи. Я лично не нахожу.
> мс уже минимум четверть века делает ide под винду и пока полёт нормальный
Люди более чем две тыщи лет верят во всякие "религии" и поклоняются всяким "богам" и пока полет нормальный.
Desktop 04.09.2021 16:39 # −1
мс делает студию много лет и зарабатывает на ней деньги, прямо и косвенно
а чувак, у которого в контроллерах ничего нет, вдруг задаётся вопросом "а рационально ли это?"
за что уважаю, так это за отсутствие страха выглядеть нелепо
j123123 04.09.2021 16:40 # +1
То же самое касается религий. Религиозные деятели рубят бабло на верующих. Означает ли, что религии сами по себе рациональны?
Desktop 04.09.2021 16:41 # 0
а мнение мимокрокодила их как бы и не чешет
j123123 04.09.2021 16:45 # +1
Т.е. правильно ли я понимаю, что над рациональностью того, что наша IDE работает только в винде, незачем думать, если эта IDE приносит бабло при таком подходе?
> а мнение мимокрокодила их как бы и не чешет
Может конкретно их и нет
Desktop 04.09.2021 16:47 # 0
j123123 04.09.2021 16:47 # 0
Это т.н. "закрытый вопрос", на который можно ответить "Да" или "Нет". У тебя есть ответ?
Desktop 04.09.2021 16:48 # 0
j123123 04.09.2021 16:49 # 0
Desktop 04.09.2021 16:50 # 0
можешь его переадресовать в редмонд и ждать ответного гудка
j123123 04.09.2021 16:51 # 0
Я не считаю этот вопрос бессмысленным.
ISO 04.09.2021 16:57 # 0
ISO 04.09.2021 17:00 # 0
Именно поэтому для ответа на вопрос о рациональности в первую очередь следует указать субъекта, с точки зрения которого мы рассматриваем факты.
j123123 04.09.2021 17:03 # 0
Рациональность (от лат. ratio — разум) — термин, в самом широком смысле означающий разумность, осмысленность, противоположность иррациональности. В более специальном смысле — характеристика знания с точки зрения его соответствия некоторым принципам мышления. Использование этого термина часто связано с вниманием к различиям в таких принципах, поэтому принято говорить о различных типах рациональности.
> а так же уточни, для кого факт работы «Visual Studio» в винде должен быть рациональным или нерациональным.
Для того, кто захочет ее использовать не в винде. Привязка «Visual Studio» к винде может быть нерациональна и для самой «Microsoft», например чтобы продавать ее под какие-нибудь маки. Вполне может так оказаться, что через 10-20 лет никаких IBM-совместимых персональных компьютеров с процессорами x86-64 не будет, а будет какая-нибудь хрень на ARM и RISC-V с какими-то не-майкрософтовскими операционками (IOS, Android или еще какая-то хрень, про которую мы пока не знаем), и там вполне может быть полезна эта IDE.
guest6 04.09.2021 17:11 # 0
A: Для того, кто захочет ее использовать не в винде.
Dixi.
> Привязка «Visual Studio» к винде может быть нерациональна и для самой «Microsoft»
Иногда выгоднее продавать свою ОС с бесплатной IDE, чем делать кросс-платформенную IDE.
MS давно уже дает бесплатную версию Студии (так было не всегда)
XCode за пределами Mac OS тоже не очень распостранен.
Яблоко свою ОС не продает (так было не всегда) но требует железа.
Хочешь писать под ios? Купи мак.
Desktop 04.09.2021 17:15 # 0
а форматы вижуалки давным давно умели открывать ещё несколько ide
guest6 04.09.2021 17:17 # 0
Безопаснее хранить cmake проект, и из него уже генерить cproj и sln кмк
Desktop 04.09.2021 17:21 # 0
– я сильно глубоко не копал, но солюшен вроде открывается всегда, может не открываться конкретный проект, он просто будет неактивным на конкретной платформе
> cmake
– та ну, для шарпа имхо излишний пердолинг
guest6 04.09.2021 17:23 # 0
Интересно перенести шарп проект со студии в Rider например. Откроет ли?
Desktop 04.09.2021 17:25 # 0
я как-то давно делал одну маленькую фигню в вижуалке
а лет через 5 этот солюшн открыл в VS for Mac
скачало нужные проекты с нагета, собралось, запустилось
конечно, уверен, что есть какие-то специфические ситуации, но в целом производится такое впечатление, что это работает
j123123 04.09.2021 17:18 # 0
А иногда и не выгоднее. А может это выгодно в краткосрочной перспективе, но не выгодно в долгосрочной. Зачем-то ж MS сделали эту свою "Visual Studio Code".
> MS давно уже дает бесплатную версию Студии (так было не всегда)
Ха. Это мне напомнило одну статью Джоэла Сполски за 2004 год
> Логическое заключение состоит в том, что если вы пытаетесь продавать операционную систему, то вам необходимо сделать так, чтобы разработчики программного обеспечения захотели писать программы для вашей операционной системы. Поэтому Стив Баллмер прыгал по сцене и кричал: «Разработчики, разработчики, разработчики, разработчики». Это так важно для Microsoft, что единственная причина, из-за которой средства разработки программного обеспечения не раздаются бесплатно, заключается в том, что они не хотят случайно перерезать кислород разработчикам конкурирующих инструментов разработки (хорошо, тем, которые остались), так как разнообразие инструментов разработки, доступных для их платформы, делает ее куда более привлекательной для разработчиков. Но на самом деле они хотят раздавать. Благодаря их программе Empower ISV вы можете получить пять наборов MSDN Universal (иначе известных как «практически все продукты Microsoft, исключая Flight Simulator») всего за 375$. Компиляторы командной строки для языков .NET включены с бесплатными библиотеками .NET … тоже бесплатно. Компилятор С++ теперь бесплатен. Что угодно для поощрения разработчиков работать под .NET и ликвидации таких компаний как Borland.
guest6 04.09.2021 17:22 # +1
Может быть да, может быть нет.
>Зачем-то ж MS сделали эту свою "Visual Studio Code".
Существует мнение, что для продвижения Azure.
MS вкладывает бабло в облако (может быть думает, что продажа ОС и всяких Exchange уже не будет приносить сказочной прибыли через 10-15 лет) и старается сделать инструмент плотно с ним интегрированный, чтобы каждый PHPшник мог на своей Убунте в VSCode написать сайт, и загрузить его им на Azure.
3.14159265 05.09.2021 01:39 # 0
> старается сделать инструмент плотно с ним интегрированный, чтобы каждый PHPшник мог на своей Убунте в VSCode написать сайт, и загрузить его им на Azure.
Ди-вер-сифи-ка-ция.
И правильно делают.
Большая контора с кучей денег никогда не положит все яйца в одну корзину, и 8 из 10 проектов могут оказаться и окажутся тупиковыми, малоприбыльными. Но зато 1-2 выстреливших позволят отбить затраты и продолжать держаться на плаву.
ISO 04.09.2021 17:17 # +1
> поэтому принято говорить о различных типах рациональности.
Ещё лучше.
Ну ладно.
> Для того, кто захочет ее использовать не в винде.
Да, для него это однозначно иррационально, потому что это попытка решения проблем неподходящим для этого инструментом.
> может быть нерациональна и для самой «Microsoft»
С точки зрения «Microsoft» у разработки «Visual Studio» имеется единственная задача: получение прибыли (прямой или косвенной). Над решением этой задачи в «Microsoft» работают опытные специалисты, и нет никаких оснований полагать, что они разбираются в подсчёте прибыли лучше, чем питухи с «Говнокода». Если бы портирование «Visual Studio» под другие системы было экономически выгодно (то есть потенциальная прибыль от этого действия превышала бы потенциальные затраты) — мы бы сейчас могли сделать «apt-get install visual-studio».
Таким образом, создание и поддержка «Visual Studio» компанией «Microsoft» соответствует целям и задачам компании, и, следовательно, является рациональным.
j123123 04.09.2021 17:28 # 0
Можешь еще спросить "что такое разумно", и "что такое иррационально". Если очень долго спрашивать определения слов в определениях слов, в конечном итоге получится зацикливание т.к. множество корректных (допустимых) слов счетно и конечно.
> Да, для него это однозначно иррационально, потому что это попытка решения проблем неподходящим для этого инструментом.
Неподходящим т.к. его сделали неподходящим.
> Над решением этой задачи в «Microsoft» работают опытные специалисты, и нет никаких оснований полагать, что они разбираются в подсчёте прибыли лучше, чем питухи с «Говнокода».
Очень интересно. Почему тогда Windows Phone провалилась? Мне очень давно (почти сразу) было очевидно, что это провальная инициатива, но MS упорно вливала туда бабло, не получая никакой прибыли, и они даже купили под это дело Nokia и все там прогондонили
Desktop 04.09.2021 17:33 # +1
– потому что Сатья ажурщик лол?
нет, я знаю, что wp в принципе стоила балмеру поста, но подковёрные игры никто не отменял
j123123 04.09.2021 17:36 # +1
Тогда был Баллмер. Он еще в запотевщей рубашке прыгал и выкрикивал developers, developers, developers
Desktop 04.09.2021 17:38 # +1
wp + nokia вполне могла на каких-то рынках потягаться с ведром
почему её слили, это вопрос хороший. а её именно слили.
ISO 04.09.2021 17:41 # +1
А если не спрашивать — в конце концов придём к тому, что каждый будет говорить о своём.
Так что вот моё определение для конкретного случая: создание продукта является рациональным тогда и только тогда, как созданный продукт выполняет задачи, которые предполагается решать при помощи этого продукта. В самом простом случае такой задачей может быть получение прямой прибыли: тогда создание продукта рационально (для создателя!) тогда, когда эту прибыль продукт приносит.
> Неподходящим т.к. его сделали неподходящим.
Неверно. Его не сделали неподходящим, его попросту не портировали. Это совершенно разные вещи.
Разработка кросс-платформенного приложения (особенно на всяких сишках с крестами) стоит гораздо дороже, чем разработка приложения для конкретной платформы. Чтобы «Visual Studio» запускалась на линуксах — её авторы должны были потратить очень много дополнительного времени (и, следовательно, денег) на поддержку зоопарка этих самых линухов, зоопарка DE, X-сервера, вялого (в будущем) и прочего прыщеговна.
Поэтому нет, никто специально не рушил (со злодейским хохотом) совместимость «Visual Studio» с линуксами. Её просто не делали.
> Почему тогда Windows Phone провалилась?
Потому что все совершают ошибки.
> Мне очень давно (почти сразу) было очевидно
Задним умом все крепки. Это эффект позитивного подкрепления: человеческому мозгу приятно чувствовать себя умным, поэтому моменты «я же говорил!» запоминаются гораздо лучше, чем несбывшиеся прогнозы.
j123123 04.09.2021 17:55 # 0
> Поэтому нет, никто специально не рушил (со злодейским хохотом) совместимость «Visual Studio» с линуксами. Её просто не делали.
Правильнее тогда говорить "его не делали портируемым" а не "не портировали".
> Разработка кросс-платформенного приложения (особенно на всяких сишках с крестами) стоит гораздо дороже, чем разработка приложения для конкретной платформы.
It depends. И сейчас с кросс-платформой на сишке/крестах стало на порядок проще.
> на поддержку зоопарка этих самых линухов, зоопарка DE, X-сервера, вялого (в будущем) и прочего прыщеговна.
Можно было взять Qt, проблему с гуйней бы это решило.
> Задним умом все крепки. Это эффект позитивного подкрепления: человеческому мозгу приятно чувствовать себя умным
Я очень четко помню, как это было. Сначала я действительно полагал, что у MS есть какие-то шансы продвинуть свою принципиально новую ОС на мобильный рынок. Через некоторое время это выглядело со стороны как явно бессмысленное сжигание бабла, и было достаточно очевидно(и не только мне), что пора бы уже остановиться, но желание MS втулить свою ОС на мобильный рынок было слишком сильно...
ISO 04.09.2021 18:13 # 0
Хорошо.
> It depends. И сейчас с кросс-платформой на сишке/крестах стало на порядок проще.
Если под «проще» ты имеешь в виду «Qt» — то, наверное, да.
> Можно было взять Qt, проблему с гуйней бы это решило.
Напоминаю, что первый выпуск «Visual Studio» произошёл в 1997-м году.
Взять вышедшую два года назад и никому не известную либу для разработки IDE, изначально планировавшейся как основной инструмент для разработки под «Windows»? Увольте. Даже сейчас, спустя полтора десятка лет после выпуска, «Qt» — всё ещё кривое и тормозящее говно; каким же он был сразу после релиза?
> Я очень четко помню, как это было. Сначала я действительно полагал, что у MS есть какие-то шансы продвинуть свою принципиально новую ОС на мобильный рынок.
О чём и речь.
> Через некоторое время это выглядело со стороны
Ключевой момент — «со стороны». Мы не знаем и не можем знать, какие процессы происходили в это время внутри «Майкрософта», и чем эти затраты были оправданы. Можно, конечно, порассуждать о тупых менеджерах, но смысла в этом никакого нет.
j123123 04.09.2021 18:22 # 0
А винапи-гуйня является образцом скорости и прямоты?
ISO 04.09.2021 18:25 # +1
j123123 04.09.2021 18:43 # 0
Я вообще-то про всякую MFC-питушню, OLE, COM, ActiveX и проч. сопутствующие говна. В архитектурном, так сказать, плане
Когда я для интереса попробовал в этом разобраться, было ощущение что я окунулся в чан с дерьмом
j123123 04.09.2021 18:49 # 0
guest6 04.09.2021 19:32 # 0
В Linux в это время у половины людей вообще гуй не работал, потому что xfree modlines не могли прописать
j123123 04.09.2021 20:09 # −1
Которое будет работать только с такой-то версией excel, который еще купить надо. Охуенно, да.
3.14159265 04.09.2021 23:14 # 0
Извините. А нахуя портировать для конкурирующей платформы удобное средство разработки?
Это не просто нерационально, это глупость стратегического масштаба.
> на поддержку зоопарка этих самых линухов, зоопарка DE, X-сервера, вялого (в будущем) и прочего прыщеговна
И ещё пердолиться с этим сраным неоднородным говном.
M$ нужна система разработки софта под свою ОСь.
Потому что нужен софт, голая операционная система никому особо не интересна.
ISO 04.09.2021 23:19 # 0
Это правда, да.
> Извините. А нахуя портировать для конкурирующей платформы удобное средство разработки?
Справедливости ради это можно оправдать стратегиями вида EEE. Ну или просто банальным переманиванием: мол, приходите, девелоперсы, к нам на венду, у нас вон какая классная IDE есть!
Но, конечно, в давние времена первых выпусков «Студии» «Майки» были гораздо более агрессивны в плане конкуренции («своей земли не отдадим ни пяди» vs «культурная ассимиляция»).
А сейчас вон даже «VS Code» есть — вроде как рекламный флаер «Visual Studio».
3.14159265 04.09.2021 23:28 # 0
Хахаха.
Так это нерентабельно.
90% линуксоидов даже бесплатно не поставят это говно, ибо для них само слово Майкрософт это как красная тряпка для быка, или как «Cатана» для православного человека.
> мол, приходите, девелоперсы, к нам на венду, у нас вон какая классная IDE есть
Так уже сделали WSL: «Приходите, к нам на венду».
Кмк, это гораздо более логичная стратегия: расширять возможности своего продукта, а пилить IDE для чужого. Причём поддержать весь зоопарк кобенаций разных DE и X11/Wayland/Mir/etc нетривиальная задача даже для M$.
С другой стороны, чем чёрт не шутит. Браузер же портанули.
Desktop 04.09.2021 23:47 # 0
– а НЕ пилить имелось в виду?
> Браузер же портанули.
– какой браузер?
3.14159265 04.09.2021 23:48 # 0
«Microsoft Edge»
https://blogs.windows.com/msedgedev/2020/10/20/microsoft-edge-dev-linux/
Конечно невелика честь сбилдить форк кроссплатформенного Cнгoмiима под Луних, но сам факт.
Desktop 04.09.2021 23:56 # 0
CEHT9I6PbCKuu_nemyx 05.09.2021 00:04 # +1
Такое ощущение, что «MS» хочет плавно отойти от разработки и в будущем только чужой софт упаковывать.
Desktop 05.09.2021 00:07 # 0
последняя более-менее девелоперская контора
bootcamp_dropout 05.09.2021 00:08 # 0
3.14159265 05.09.2021 00:21 # +1
Батюшка esr выдвинул интересную гейпотезу. Кстати его блог хоть кто-то тут читает?
Её суть в том что Mелко$офту просто нерентабельно держать армию кодеров и саппортить это всё говно (браузеры, операционку). Причём винду нужно ещё портировать на арм.
Потому они со временем планируют перейти на linux-kernel, оставив легковесную обёртку вроде wine которая проксирует winapi system call в ядро луникса.
У них же сейчас большая часть профитов идёт от Azure. А так можно перекинуть головняк по поддержке зоопарка x86 и arm на коммьюнити.
Короче «Microsoft loves Linux»
j123123 05.09.2021 00:23 # 0
Потому что его использовали в основном только чтобы скачать другой браузер.
3.14159265 04.09.2021 23:36 # 0
И с каких это пор ISO уверовал в бредни сектантов жопен-сороса?
j123123 04.09.2021 23:49 # 0
> "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.
Desktop 04.09.2021 16:42 # 0
guest6 04.09.2021 16:33 # +1
``vim`` прекрасный редактор для всего, но на C# удобнее писать в студии с R#.
Именно заточка VS под нужны Windows разработчика (поддержка ресурсов, например) позволила сделать её более удобной.
> тяжеловесности и тормознутости
Это плата за функционал и тяжелое наследие, к сожалению.
Notepad++ не тормозит, но и переименовать namespace в С++ в нем сложнее
ISO 04.09.2021 16:55 # +1
Совершенно верно, я считаю «Microsoft Visual Studio» прекрасным инструментом для своей задачи.
Собственно говоря, в мире больше не существует настолько же продвинутых IDE для «C++». Как самый банальный пример — «IntelliSense» умеет вычислять значение constexpr-переменных до компиляции, что весьма помогает при разработке метушни. Насколько я знаю, никакие другие средства разработки так не умеют.
guest6 04.09.2021 17:02 # 0
https://i.postimg.cc/Hs2fYRrZ/image.png
Угадай редактор
ISO 04.09.2021 17:03 # 0
guest6 04.09.2021 17:05 # 0
https://youtrack.jetbrains.com/issue/CPP-5064
Однако же истинность выражения он смог проверить, так что он чото там считает, просто не осилил это вывести, как в студии
ISO 04.09.2021 17:05 # +1
> 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
Что и требовалось доказать.
guest6 04.09.2021 17:12 # 0
Ну ок, факт отсоса силайна у студии зафиксирован ))
Странно, что они этого не сделали.
ISO 04.09.2021 17:23 # +1
guest6 04.09.2021 17:28 # 0
https://resources.jetbrains.com/help/img/rider/2021.2/debug_values_inline.png
Но она работает только при дебаге, хотя для большинства языков
*
https://www.jetbrains.com/help/idea/intention-actions.html
j123123 06.09.2021 00:20 # 0
"Вижуалстудия" так умеет?
ISO 06.09.2021 07:12 # 0
guest6 06.09.2021 11:05 # 0
3.14159265 06.09.2021 15:59 # 0
Оно нахуй не надо. Я бы отключил эту херню и не писал такое говно.
Когда в структуре 1 поле и так всё понятно.
А когда 3 и больше, лучше писать имена явно, чтобы:
а) самому не путаться где какое поле
б) при рефакторинге не перепутать порядок
в) при просмотре кода обычным редактором (дифф в гите, ревью коммита в html) другим было понятно что происходит.
guest6 06.09.2021 16:05 # +2
Только таким макаром можно писать читаемый код.
А код, написанный в IDE, только в IDE под интерактивным дебагером и читаем
3.14159265 06.09.2021 16:08 # 0
И самое смешное, если жавашки в интелижопе проебут, то хинты будут неправильные:
> только тут баг в этих хинтах, если что
guest6 06.09.2021 16:59 # +3
В IDE пишут нечитаемое говно, код-пустышку, код-бюрократ, код-гной, код-пидор.
Ещё мудачьё говорит "просто купи компьютер помощнее" и хвастается своими печками с 32ГБ памяти, последними процессорами №9 и блоками питания на киловатты, и всё равно время от времени жалуется, что новая вкладка в IDE долго открывается.
j123123 06.09.2021 18:58 # +1
Правильнее сказать "IDE позволяет писать крайне заебаный говнокод со всякой хуйней, и в них пишут такой код, и потом с таким кодом возможно нормально работать только в IDE"
Т.е. код, написанный в IDE, часто хуй разберешь без этих самых IDE, и другие тоже вынуждены покупать эти говноIDE и использовать. Такая вот цепная говнореакция
CEHT9I6PbCKuu_nemyx 06.09.2021 19:48 # 0
Я бы на месте заказчиков такой код в сортирах топил бы спецом, и в навозные ямы, где-нибудь там возле ферм, скотобоен всяких, где говнища побольше, вот очистные крупных городов ещё тоже очень хорошее место.
ISO 06.09.2021 19:18 # +2
3.14159265 06.09.2021 19:41 # 0
> то лучше переписать всё на «builder» и течь с «foo().withBar(10).withBaz("hello")....»
Подтверждаю. (я не гуру)
> Но поскольку писать билдеры абстрактных фабрик на каждый чих
Именно поэтому я за «Сишку»
CEHT9I6PbCKuu_nemyx 06.09.2021 19:42 # 0
bormand 06.09.2021 19:44 # 0
Именованных инициализаторов в джаве тоже нету... Разве что создавать структуру и методично присваивать в неё по одному полю.
З.Ы. В итоге что-нибудь забудешь заполнить.
3.14159265 06.09.2021 19:46 # 0
Есть хак через омонимные классы.
Но это под капотом замыкание, которое хватает контекст (привет утечки!).
Потому это наименьшее из говн:
CEHT9I6PbCKuu_nemyx 06.09.2021 19:57 # 0
Котя, серенький лобок,
Приди, котя, ночевать,
Нашу деточку качать.
Уж тебе я, коту,
За работу заплачу:
Дам кусок пирога
И кувшинчик молока.
bormand 06.09.2021 20:30 # 0
ObeseYoung 06.09.2021 23:56 # 0
j123123 04.09.2021 18:08 # +1
Учитывая что значение constexpr-переменной вычисляется Тьюринг-полной питушней, подсказка для такой фигни может идти сколь угодно долго.
j123123 04.09.2021 18:14 # +1
Допустим есть некая constexpr-метушня, которая раскрывается при компиляции минуту, допустим навел я мышкой на переменную, оно будет минуту мне в IDE считать? А потом оно будет мемоизировано, т.е. второй раз если навести, оно сразу ответ выдаст? А если я поменяю один символ в компилтайм-метушне, оно будет пересчитывать констэкспры в момент редактирования компилтайм-метушни, или в момент наведения на констэкспр для получения соотв. подсказки?
ISO 04.09.2021 18:16 # 0
j123123 05.09.2021 08:36 # 0
Тогда у тебя будет не всегда подсвечиваться подсказка к этим констэкспрам. А если не будет ограничения, подсказки могут зависнуть. Обычная ситуация с двумя стулами.
Можно еще навернуть какую-то сложную хуйню с мемоизацией результатов этих констэкспров и хранить некий кэш подсказок, лол
ISO 05.09.2021 10:24 # +1
«Нельзя сделать идеально для всех случаев — не будем делать вовсе».
Казалось бы, буквально пару дней назад guest6 разъёбывал программистов за такой ущербный подход — и вот, пожалуйста, опять.
Другие люди спокойно пользуются удобной фичей — программисты-перфекционисты грустно пускают слезу о невозможности её создания.
Да, кстати, если ограничения в сервисе подсказок соответствуют ограничениям в компиляторе, то подсказки будут работать для любых компилирующихся программ. Чем не победа перфекционизма?
j123123 05.09.2021 12:07 # 0
> Казалось бы, буквально пару дней назад guest6 разъёбывал программистов за такой ущербный подход — и вот, пожалуйста, опять.
В моем сообщении нигде нет утверждения "если задача не решается для всех случаев, ее не стоит решать вообще".
> Да, кстати, если ограничения в сервисе подсказок соответствуют ограничениям в компиляторе, то подсказки будут работать для любых компилирующихся программ. Чем не победа перфекционизма?
А где гарантии такого соответствия? Сам стандарт описывает эти ограничения? Кстати, что насчет вычислений с плавучими питухами, гарантируется ли воспроизводимость результатов? https://govnokod.ru/27285 - реальный пример зависимости рантайм FPU-вычислений от флагов оптимизации. Как с этим в компилтайме?
guest6 05.09.2021 12:25 # 0
Разве не выжжено в головах программистов, что плавающий питух может клюнуть в любой момент, и всё кроме тривиальщины вида 1./4. или 2.+3. будет вычислено с примененением больной вычислительной фантазии, и любые конкретные результаты - мираж?
j123123 05.09.2021 12:44 # 0
guest6 05.09.2021 12:53 # +1
Просто предполагаю, что программист должен скептически относиться к плавтухам, и тогда никаких проблем нет. Программист знает, что плавтухи - мудаки, и это знание - его оружие.
ISO 05.09.2021 12:47 # −1
А как же твои саркастические кавычки вокруг слова «решена»?
> А где гарантии такого соответствия?
Мне на них похуй.
> Сам стандарт описывает эти ограничения?
Конечно: https://eel.is/c++draft/implimits#2.39.
> Кстати, что насчет вычислений с плавучими питухами, гарантируется ли воспроизводимость результатов?
Мне похуй.
j123123 05.09.2021 13:00 # +1
И что тебе не нравится в моих саркастических кавычках?
> Мне похуй.
Т.е. тебе похуй, что IDE может подсказывать хуйню? Ну ок.
ISO 05.09.2021 13:16 # −1
Их саркастичность.
> Т.е. тебе похуй, что IDE может подсказывать хуйню? Ну ок.
А почему мне должно быть не похуй на унылые корнер-кейсы, с которыми в реальности я никогда не столкнусь? Ты можешь придумать хоть сотню питушни, которой в микроконтроллерах нет, — от этого подсказки с вычислением константных выражений менее удобным и полезным инструментом не станут.
j123123 05.09.2021 08:43 # 0
Эта проблема не может быть решена, она может быть только "решена".
j123123 05.09.2021 21:09 # +1
Clangd умеет. Его можно использовать и в VSCodium например. Реальный пример https://i.imgur.com/8KEPLX8.png (это я взял свою компилтайм-сортировку пузырьком https://govnokod.ru/25130#comment458282 и решил реально проверить)
Используемый плагин "llvm-vs-code-extensions.vscode-clangd". Но этот "clangd" можно и к GNU Emacs присобачить наверняка.
j123123 05.09.2021 21:18 # +1
CEHT9I6PbCKuu_nemyx 05.09.2021 21:24 # +1
Например, чтобы веб-браузер можно было собрать только из нужных компонентов: хочу — беру оболочку от «Хрома», не хочу её — беру от «Симанки»; хочу — беру парсер на «Webkit», не хочу его — беру на «Gecko»; хочу — беру интерпретатор «Йажасцрипта» на «V8», не хочу его — беру «Splidermonkey». И так далее.
CEHT9I6PbCKuu_nemyx 05.09.2021 21:36 # 0
http://jeder.ru/?p=280
Это было бы смешно, но «Archive.org» посчитал этот проект настолько важным, что снял копию:
https://archive.org/details/advancedchromev54.20.6530.0
Soul_re@ver 05.09.2021 22:08 # +3
И тут васясофт выкатывает свой монолитный браузер и заявляет «вы все анскилябры, у меня не тормозит». Проверяют, и действительно, не тормозит. Окрыленные этим фактом, питухи летят в репозиторий, чтобы распилить этот браузер на модули и подключить к своему. И охуевают.
Оказывается, его интерпретатор ЙАЖАскрипта, вместо того, чтобы вежливо попросить модуль, отвечающий за DOM, поменять что-то в таком-то элементе, для каких-то часто используемых операций просто лезет в кишки и меняет что ему надо прямо там, благо внутреннее представление оптимизированно для таких вещей. Ещё его браузер при простое дёргает все эвенты, интерпретируя скрипт (не меняя фактическое состояние страницы), подгружая ресурсы, которые потребуется и пререндеря части страницы которые могут понадобиться.
Чтобы это говно прикрутить к охуенно модульному браузеру, понадобится распидорасить весь охуенно стройный АПИ взаимодействия между модулями, и заставить модули либо имплементировать всю хуйню, даже которую они не юзают, либо модулям придётся договариваться о том, какие виды АПИ они могут использовать.
3.14159265 05.09.2021 22:23 # 0
> Начинают лагать пункты меню (потому что там ЙАЖАскрипта на странице больше чем кода управления в МБР
А зачем посещать такие сцайты?
ISO 05.09.2021 22:25 # +2
Motorola 05.09.2021 22:29 # +1
ISO 05.09.2021 22:32 # +2
Тебе лень из дома выйти? Фу, неженка.
> банков
Зачем тебе банки? Ты что, кредиты берёшь?
> государственных учреждений
Настоящий айтишник должен быть против Системы, а не потакать ей!
Motorola 05.09.2021 22:36 # 0
Весной 2020-го вынудили пользоваться этой ерундой.
3.14159265 05.09.2021 22:20 # 0
Поддержал.
Причём с возможностью вообще выкинуть какой-то компонент. Допустим браузер без интерпретатора «Йажасцрипта» или реализующий ограниченное его подмножество.
ISO 05.09.2021 21:48 # +2
А что насчёт, например, подсказок с полностью раскрытыми директивами препроцессора? Незаменимая фича для отладки препроцессороговна. А что насчёт встроенных дебаггеров: кто ещё может, например, делать снапшоты кучи с возможностью навигации по объектам и коду, который эти объекты создал? Или вот, к примеру, где ещё можно тыкнуть на шаблон, указать реальные примеры типов и наслаждаться его полным анализом до компиляции (https://devblogs.microsoft.com/cppblog/template-intellisense/)?
Так можно долго продолжать набрасывать. Факт остаётся фактом: для разработки крестоговна «Visual Studio» является наиболее мощной (e.g. насыщенной полезными фичами) IDE на рынке. Именно поэтому…
> И в целом я за то, чтобы подобные фичи были не намертво прибиты к какой-то работающей только в одной ОС тормозной проприетарной IDE, а были отделяемыми модулями, которые можно было бы цеплять к любой хуите при желании.
Я против (использования такого). Как показывает практика, модульный и универсальный инструмент решает свои задачи существенно хуже специализированного. В частности, работает банальный факт: специализированный инструмент системно тестируется целиком, в то время как конкретно твою сборную солянку из разных мудулей от разных питухов никто больше в мире не видел.
И да, реальная практика у меня есть: я программирую на «Python» в «VS Code» с расширениями. И какое же это говно… Вкладка «Pytest» отваливается, тесты молча не запускаются, процессы этой вкладки виснут и жрут по целому ядру, языковой сервер тоже иногда отваливается и перестаёт отвечать, а когда отвечает — гордо демонстрирует мне в подсказках полезную информацию, повторённую джва раза, причём изменение случайных настроек иногда отключает это двойное говно на день-другой, чтобы потом оно всё равно вернулось… Пиздец нахуй, я за монолиты.
j123123 05.09.2021 22:01 # 0
Это Eclipse умеет. Clangd тоже препроцессорное говно умеет раскрывать https://i.imgur.com/voCsgCU.png (пример из https://govnokod.ru/27240 если что)
ISO 05.09.2021 22:09 # 0
Нет, я про другое. «IntelliSense» умеет раскрывать любое макроговно в любой позиции, а не только считать константы: https://i.imgur.com/mhGpxld.png.
> надо делать другие IDE, в которых эти фичи будут. А микрософтовскую вин-онли отрыжку слать нахуй
Флаг в руки. А я и дальше буду использовать удобный и эффективный инструмент.
j123123 05.09.2021 22:16 # 0
Eclipse: https://i.imgur.com/CCQQsh1.png
ISO 05.09.2021 22:20 # 0
j123123 05.09.2021 22:02 # 0
... надо делать другие IDE, в которых эти фичи будут. А микрософтовскую вин-онли отрыжку слать нахуй
Motorola 05.09.2021 22:10 # 0
Правда, монстроподобные айсберги вроде «Visual Studio» к таким супероптимизированным программам не относятся. В «Студии» фреймворк на фреймворке и фреймворком погоняет.
j123123 05.09.2021 22:37 # 0
Если речь идет о т.н. "Language Server" ( https://langserver.org/ ), который занимается подсказыванием-подсвечиванием всякой такой хуйни, то я не очень понимаю, каким образом прибивание "Language Server" к API конкретной OS сделает его быстрее.
Desktop 04.09.2021 16:01 # 0
им теперь придётся три раза ядро пересобрать, чтобы остыло
JloJle4Ka 04.09.2021 16:05 # 0
Desktop 04.09.2021 16:08 # 0
извини, забыл, что ты ещё не работал никогда
JloJle4Ka 04.09.2021 16:13 # 0
Desktop 04.09.2021 16:16 # 0
JloJle4Ka 04.09.2021 16:18 # 0
Desktop 04.09.2021 16:19 # 0
ну тебя наебали
теперь можешь пойти что-нибудь пересобрать, а то солнце само по себе не зайдёт
j123123 04.09.2021 16:26 # 0
Лучше напомни ему про алгоритм Дейкстры, который он наверняка еще не написал.
Desktop 04.09.2021 16:28 # 0
j123123 04.09.2021 16:30 # 0
JloJle4Ka 04.09.2021 16:47 # +2
3.14159265 05.09.2021 16:33 # +2
Борманд в соседнем треде уже собирает )))
Desktop 05.09.2021 16:39 # +1
guest6 05.09.2021 16:46 # 0
bormand 05.09.2021 16:47 # 0
Desktop 05.09.2021 16:48 # 0
guest6 05.09.2021 16:48 # 0
bormand 05.09.2021 17:50 # 0
guest6 05.09.2021 17:55 # 0
imake знашеь?:)
bormand 05.09.2021 17:56 # 0
Qt из той же весовой категории, я думаю (там внутри вебкит).
CHayT 05.09.2021 12:31 # −9
Поэтому, когда фанбой мелкомягких открывает рот — он спамит своими иррациональными конформистскими предубеждениями.
А вот когда линукс-хакер выдаёт взвешенную реплику — он делает public service announcement, доносит важную информацию до общества.
Точно так же: есть ли смысл расхваливать направо и налево последний голливудский блокбастер? Только если вы хотите сигнализировать свою принадлежность к интеллектуальному большинству. А вот рассказывать каждому встречному про арт-хаус режиссёра Ларпа фон Тридара — долг любого интеллигента.
CHayT 05.09.2021 12:38 # +1
guest6 05.09.2021 13:09 # +1
Нет, обсуждать популярную питушню нужно.
1. Если кто-то в вузе использовал условную MSVS2005, то это не значит, что он в курсе того, что в ней изменилось за 10-20 лет.
2. Не все следят за тенденциями. Человек может использовать свою редкую IDE по какой-то причине (её использовали в конторе, куда он пошёл работать), а про остальные знать только названия. Ему может пригодиться информация о MSVS.
3. Среди голосов фанбоев должны звучать голоса пользователей. И нет ничего такого, если пользователь хвалит хороший продукт. Мозг фильтрует маркетинговый шум вместе с голосами фанбоев. Без обсуждения и хвалебных речей пользователей о "MSVS" известно столько же, сколько про "acme под plan9".
То же с блокбастерами. Про анскильную питушню Лиспа фон Тридара я слышал кучу завываний альтернативно одарённых фанбоев-хипстеров, а про голливудские блокбастеры - только маркетинговый шум.
ISO 04.09.2021 15:34 # −1
На моей рабочей станции у меня «Windows», да. Она мои задачи выполняет достаточно хорошо.
> Не хорошо, а хуёво и неэффективно.
Так вот в том-то вопрос и стоит: что в «systemd» хуёвого и неэффективного? Неэффективно хранить все юниты в одном месте? Неэффективно управлять системой через единый и унифицированный CL интерфейс, а не кучу говноутилит с разными наименованиями, аргументами и способами вызова? Хуёво иметь удобный интерфейс доступа к логам, который позволяет не рыться по всем директориям /var/logs как голодная собака в помойке? Жду конкретики.
> В портянке говнокода на 500 строчек кода найти уязвимость заметно проще, чем в портянке говнокода на 500000 строк кода.
Ergo, ядро «Линукса» не нужно.
> А теперь хрюкни и обнови шиндошс, или что ты там делаешь обычно.
По делу есть что сказать?
JloJle4Ka 04.09.2021 15:50 # +1
Зачем тебе тогда «Linux»? Сидел бы и дальше на виндуозе, раз он выполняет твои задачи. Машина без ремней безопасности тоже выполняет свои задачи, но я, пожалуй, на такой кататься не буду.
> Так вот в том-то вопрос и стоит: что в «systemd» хуёвого и неэффективного
Всё. Мистер глиномес погнался за всеми зайцами сразу и ни одного не догнал.
У почти любой питушни из SystemD есть нормальный специализированный аналог, например для управления контейнерами лучше взять НЕ системДэ.
> унифицированный
Мифы про какую-то унификацию в системдэ просто смешны.
> Ergo, ядро «Линукса» не нужно.
Тебе же похуй на «ядро Линукса» и его чувства, раз ты оскверняешь его системдой, так что да, тебе оно не нужно.
guest6 04.09.2021 15:56 # +4
Есть некоторая система, известная своей простотой. Простота позволяет легко понять систему, а значит и легко устранить возникшие проблемы.
Эта система привлекает поборников простоты, которые изучают её устройство (инвестируя в это изучение некоторое количество времени) и потом там прекрасно живут.
У большинства из них проблем никаких нет.
И вот в эту систему вводят Абстракцию.
Абстракция сильно усложняет систему (сравни запуск шел скрипта с обращением к демону по dbus, например), делает её более сложной для понимания и отладки, и что самое противное -- заменяет собой куски старой (простой) системы в практически случайном порядке.
Но старые куски-то остаются.
В итоге получается Франкенштейн, где часть сделана по-старому, часть по новому (как если бы ты делал ``WriteConsole`` и std::cout << одновременно).
Поборникам простоты говорят, что Абстракция решает массу проблем.
Но этих проблем у них не было. Вот не было в сервере с одной картой проблемы с непредсказуемостью имен интерфейсов, которую решают ``.link`` файлы.
Зато им ввели новую Абстракцию, сильно усложнив их систему, да параллельно еще и обнулив часть знаний.
Это вызвало ожидаемую реакцию.
Вот если бы Линукс изначально был как AIX*, то всё было бы ок
* https://ru.wikipedia.org/wiki/AIX
JloJle4Ka 04.09.2021 15:58 # 0
3.14159265 04.09.2021 23:44 # 0
> Поборникам простоты говорят, что Абстракция решает массу проблем.
> Но этих проблем у них не было.
Подтверждаю.
Реальный пример: https://govnokod.ru/26671#comment549703
guest6 04.09.2021 15:36 # +4
Это же удобный, многофункциональный, консистентный и унифицированный инструмент, который позволяет эффективно решать распространённые проблемы.
Понятно, конечно, что утёнок душит выкидывать тонны ущербных "представлений о правильных архитектурах" из головы, но взрослеть-то нужно.
Разговоры про «красоту кода» и «мартинов фаулеров» лучше оставить прыщавым подросткам: это им приличествует разводить срачи о том, чьи скрипты православные, а чьи — ересь. Взрослым людям язык нужен для эффективного решения задач, а не для споров про философию и подход.
CEHT9I6PbCKuu_nemyx 04.09.2021 15:37 # +4
Desktop 04.09.2021 15:51 # 0
guest6 04.09.2021 16:36 # +1
Только что на 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
---------
как на виндуосе ))
bormand 04.09.2021 16:38 # 0
Вангую, что какой-нибудь говноскрипт из интернета не читая исполнил на хосте вместо контейнера, а теперь делает вид, что всё так и было...
guest6 04.09.2021 16:40 # +2
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
но сама ситуация какая, лол
ISO 04.09.2021 22:17 # 0
Наверняка это потому что какие-то петухи постоянно открывают огромные посты. Найти бы их…
guest6 05.09.2021 00:23 # +2
Да, надо перекатываться, там уже тормозит. Отправил комментарий на хузе, а на госте он появился минуты через две.
Хотя, я спать пойду. С учётом того, что меня забанили на ГК, я всё ещё сижу на нём до 4 утра. Какой багор )))
#MinGW #MSYS #MSYS2 #WSL2 #MD5 #OpenSSL #виндопердолинг #пердолинг
3.14159265 05.09.2021 01:43 # 0
А чем нарисованы эти таблички?
guest6 05.09.2021 11:41 # 0
3.14159265 05.09.2021 16:27 # 0
guest6 05.09.2021 20:35 # +1
Хотя, наверно в npm есть модуль для питушения статистики, но тут надо было посчитать пару чисел, одно из которых никто не будет смотреть, а второе - никто не будет смотреть.
3.14159265 05.09.2021 20:38 # 0
pandas например использует:
https://pypi.org/project/tabulate
Там даже стили можно выбирать. pretty/psql очень похожи на таблицу выше
CEHT9I6PbCKuu_nemyx 05.09.2021 01:57 # 0
https://github.com/intel/isa-l_crypto
Тут есть и SSE, и AVX.
CEHT9I6PbCKuu_nemyx 05.09.2021 02:05 # 0
CEHT9I6PbCKuu_nemyx 05.09.2021 06:08 # 0
Для сборки нужно уметь обращаться с autotools (autoconf, automake).
Надо запомнить: подсовывать «nasm», а не «yasm». Текущая версия «yasm» некоторых инструкций не знает (об этом есть issue в хранилище «yasm» в «Гитхабе»).
Ассемблерный код в библиотеке только 64-битный.
bormand 05.09.2021 06:11 # 0
configure надо генерить что ли? О_о
Первый раз такую кривую либу вижу. Хотя может просто dev сборку выложили.
bormand 05.09.2021 06:15 # 0
А, это ж мастер на гитхабе а не готовый пакет, тьфу. Тогда логично, что надо самому генерить конфигур.
CEHT9I6PbCKuu_nemyx 05.09.2021 06:20 # 0
Так вот gcc и yasm у меня пролетели. Вроде clang+nasm — рабочая кобенация.
bormand 05.09.2021 06:23 # 0
CEHT9I6PbCKuu_nemyx 05.09.2021 06:26 # 0
Desktop 05.09.2021 10:49 # +3
ISO 05.09.2021 11:19 # 0
bormand 05.09.2021 11:24 # 0
Desktop 05.09.2021 11:38 # 0
guest6 05.09.2021 12:02 # 0
sudo apt-get install autoconf libtool nasm
А дальше по мануалу из README:
make check выдал 25 из 25.
CEHT9I6PbCKuu_nemyx 05.09.2021 16:31 # 0
CEHT9I6PbCKuu_nemyx 05.09.2021 16:37 # 0
guest6 05.09.2021 20:37 # +1
Это ещё её устанавливать надо. Гигабайтам питушни на диске, купленном за свои кровные, скажем НЕТ!
Motorola 05.09.2021 23:29 # +3
guest6 06.09.2021 11:13 # −2
defecatinho 06.09.2021 12:21 # 0
defecatinho 06.09.2021 12:21 # 0
guest6 06.09.2021 13:54 # −1
Как там с materialized views в майсцыкуэлях? Как с adaptive joins?
Долбоёбы и слов-то таких не знают, зато кукарекают постоянно "зачем нам ваши мсскули и ораклы, кококо, у нас на php+mysql всё прекрасно работает"
JloJle4Ka 06.09.2021 14:15 # 0
Это говно.
> materialized views
Это хуйня.
> Долбоёбы и слов-то таких не знают
А он прав)
guest6 06.09.2021 14:37 # 0
> Это хуйня.
Почему?
rotoeb 06.09.2021 14:38 # +1
JloJle4Ka 06.09.2021 14:56 # −1
Мелкомягкие говорят: вот этот алгоритм будет эффективнее на таком вот количестве говна, а вот этот уже на более другом количестве говна!!!!!!
И я сразу же вспоминаю про КОНТРОЛЛЕРЫ, битоёбство и прочее питушение. Так вот, это – оверинжиниринг и говно. Такая даза банных не нужна.
> Это хуйня.
Я передумал уже, это не хуйня.
CEHT9I6PbCKuu_nemyx 06.09.2021 14:16 # +1
JloJle4Ka 06.09.2021 14:17 # 0
guest6 06.09.2021 14:34 # 0
их уже не нужно вручную обновлять>?
guest6 06.09.2021 14:36 # +1
Действительно. Про adaptive joins даже не слышал.
Вроде тут понятно объясняют: http://www.queryprocessor.ru/adaptive-query-processing/
Это же космические технологии: алгоритм на ходу сам себя переписывает. Я джва года ждал такую фичу.
CEHT9I6PbCKuu_nemyx 06.09.2021 15:43 # 0
Я использую СУБД не для того, чтобы думать о физическом представлении данных. Если я захочу побайтоёбить, я возьму няшную или что-нибудь типа того.
Индекс по пустому множеству, чтобы нанякать оптимизатор запросов.
Какое говно )))
guest6 06.09.2021 15:49 # 0
Ну наверное это типично для пользователя MySQL
LinuxGovno 06.09.2021 12:22 # −1
CEHT9I6PbCKuu_nemyx 05.09.2021 06:13 # +1
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
CEHT9I6PbCKuu_nemyx 05.09.2021 08:03 # +1
Тест пирфоманса: sha1 и sha256 в 2 раза быстрее, чем в OpenSSL, md5 — в 3 раза быстрее. Для sha512 разгон не получился. 1:1 с OpenSSL.
Итого: с этой библиотекой есть шанс разогнать md5 в 3 раза. Не гигахэши, конечно.
bormand 05.09.2021 08:56 # +1
З.Ы. Ты же multi-buffer режим юзаешь, как они и предлагают? Насколько помню, эти хеши не очень хорошо ложатся на SSE, зато можно параллельно несколько блоков считать чтобы свободные куски регистров забить. Или я туплю и это только про AES было...
CEHT9I6PbCKuu_nemyx 05.09.2021 15:28 # 0
CEHT9I6PbCKuu_nemyx 05.09.2021 15:30 # 0
CEHT9I6PbCKuu_nemyx 06.09.2021 08:00 # +1
На одном буфере она работает медленнее, чем OpenSSL, на двух скорости сравниваются, дальше при увеличении количества буферов скорость растёт, а после 16 параллельных буферов прирост по сравнению с 16 незаметен. Разницу между реализацией на SSE и на AVX я не заметил.
На моём железе на входных данных, равных по длине емейлам, получил прирост в два раза с копейками. Похоже, что больший прирост можно выжать только на больших данных (в интеловских тестах мегабайты, а типичный емейл весит байтов 20).
Итого: ускорение раза в два на таких крошечных блоках выжать можно.
Не знаю, может быть, на AVX-512 результат получше будет, но пока проверить не на чем.
CEHT9I6PbCKuu_nemyx 06.09.2021 08:18 # 0
bormand 06.09.2021 08:19 # 0
Какой анскилл )))
CEHT9I6PbCKuu_nemyx 06.09.2021 08:33 # 0
CEHT9I6PbCKuu_nemyx 06.09.2021 21:17 # 0
Но опять же на таких крошечных данных, как адреса почты, это не поможет.
bormand 06.09.2021 21:27 # +1
И профита от передачи кусками вообще не будет, имхо. Оно тупо забуферизует первый кусок и ничего не будет считать пока ты остаток не передашь.
CEHT9I6PbCKuu_nemyx 06.09.2021 21:34 # 0
bormand 06.09.2021 21:36 # +1
CEHT9I6PbCKuu_nemyx 06.09.2021 21:45 # 0
1. Алгоритм перебора. Не использовать конкатенацию, а писать поверх.
2. Алгоритм поиска вычисленного хэша в базе юзеров. Существует масса реализаций ассоциативных массивов. Для базы в 68к юзеров и ключа в 128 батов особой разницы между разными мапами не будет?
bormand 06.09.2021 21:55 # 0
Кстати, у тебя же ключи уже отлично прохешированы через md5. Поэтому можешь смело упрощать хеширующую функцию в мапе до минимума (тупо взять первые 4 байта?)
Может быть вообще свои какие-то массивы вместо мапы попробовать стоит. База же фиксированная, можно один раз подготовить.
CEHT9I6PbCKuu_nemyx 06.09.2021 21:59 # 0
guest6 06.09.2021 22:50 # +1
guest6 07.09.2021 00:21 # +2
Что интересно, такой код дал прирост по сравнению с использвоанием 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Мх/с
guest6 07.09.2021 00:40 # 0
3.14159265 07.09.2021 01:00 # 0
> pitux[0] << CHAR_BIT | pitux[1]
Отлично!
Осталось intrinsic с sse4/avx2 напетушить, чтобы пачками по 8-16 штук обрабатывало.
За Царя и Воречество! Ура!
3.14159265 07.09.2021 01:14 # 0
Из-за блядских auto и выкинутых кусков не совсем понятен тип.
Для 128-бит md5 можно по джва сразу сравнивать.
https://godbolt.org/z/865E8PeYf
3.14159265 07.09.2021 01:27 # +1
CEHT9I6PbCKuu_nemyx 07.09.2021 01:35 # 0
В регистрах оно было бы, если бы мы передавали структуру, а так будет копироваться из адреса в памяти.
CEHT9I6PbCKuu_nemyx 07.09.2021 01:47 # 0
guest6 07.09.2021 01:55 # 0
А в комментарии с царским лукапом в некоторых местах псевдокод.
Заголовки про SSE не прошли из-за __m64, после их выключения с включённым только последним сравнение скомпилировалось под винубунтой (мингв не компилирует). Но заметный прирост или тормоза не наблюдаются.
Это надо как-то прикрутить ту царскую библиотеку для хэширования и оптимизировать генерацию нового слова, чтобы царское сравнение дало прирост. Ну либо откатиться на std::map, где куча сравнений.
guest6 07.09.2021 01:58 # 0
guest6 07.09.2021 11:53 # +1
> решила
И ты туда же?
guest6 07.09.2021 11:55 # 0
guest6 07.09.2021 12:10 # 0
1024-- бы не додумался до царского лукапа. Он сначала бездумно написал прототип под Node.js, а потом на крестах бездумно впердолил std::map.
CEHT9I6PbCKuu_nemyx 07.09.2021 02:15 # 0
CEHT9I6PbCKuu_nemyx 07.09.2021 08:19 # +1
Заменил std::map на std::unordered_map. Итоговое ускорение 3 раза.
CEHT9I6PbCKuu_nemyx 07.09.2021 08:28 # 0
guest6 07.09.2021 11:04 # 0
В setttings добавить #define TSAR_LOOKUP
В struct digest_t - operator ==, например, как
После fi.close() добавить
Перед auto it = unknown_users.find
Перед if (n == N)
guest6 07.09.2021 11:17 # 0
guest6 07.09.2021 12:07 # 0
Можно писать "[email protected]" вместо "@mail.ru".
guest6 07.09.2021 11:51 # 0
guest6 07.09.2021 22:23 # +1
И ещё есть потенциал с Царским лукапом.
Я попробовала вставить unordered_map с return *reinterpret_cast<const size_t*>(d.data); в теле std::hash<digest_t>::operator(). Варианты вида return d.data[0] << CHAR_BIT*3 | ... дают похожее значение, но на единицы процентов меньше.
В итоге Царский лукап побеждает с отрывом:
Если он с "медленным" OpenSSL накинул 50% пирфоманса, то что будет с Царской библиотекой, где доля времени лукапа увеличится.
CEHT9I6PbCKuu_nemyx 10.09.2021 10:01 # 0
Звёздочка означает, что на некоторых наборах данных программа падает (пока не изучал, почему).
Похоже, что разгон зависит от процессора. У тебя будет быстрее.
bormand 10.09.2021 10:09 # +1
Каждый тред берёт себе достаточно большой кусок пространства имён и работает над ним не общаясь с другими?
З.Ы. Можно ещё попробовать убрать лишние аллокации, работу со строками и т.п. если они есть. По-хорошему все горячие данные должны влезать в L1.
CEHT9I6PbCKuu_nemyx 10.09.2021 10:15 # 0
Надо алгоритм перебора емейлов доработать. В нём есть лишние операции.
bormand 10.09.2021 10:25 # 0
CEHT9I6PbCKuu_nemyx 10.09.2021 10:30 # 0
https://govnokod.ru/27644#comment669384
bormand 10.09.2021 10:49 # 0
Доступ случайный, в L1 не входит,поэтому чем меньше обращений к L2 триггернет на каждую проверку -- тем лучше.
CEHT9I6PbCKuu_nemyx 11.09.2021 23:00 # 0
CEHT9I6PbCKuu_nemyx 11.09.2021 22:58 # 0
flat_map оказался быстрее std::map, но медленнее std::unordered_map.
ISO 11.09.2021 23:07 # +2
3.14159265 11.09.2021 23:16 # 0
Пока что std слил хвалёный flat_map.
К слову на подобных задачах мне небольшой давал буст ручной префетч следующих адресов.
Edit: KOKOKOS )))
https://github.com/kokkos/kokkos/blob/master/containers/src/Kokkos_UnorderedMap.hpp
ISO 11.09.2021 23:25 # +3
Так это просто потому что был нарушен главный принцип крестов: не плати за то, что не используешь. «flat_map» обеспечивает упорядоченность элементов, а это стоит процессорных денег. «std::map», обеспечивающий такой же набор услуг, «flat_map»-у сливает (за счёт того, что «flat_map» хранит всё дерево в одном массиве, а «std::map» — в разбросанных по всей памяти бакетах).
3.14159265 12.09.2021 00:09 # +3
Логично.
Читаю за robin_hood — очень интересно.
Мне всегда нравились простые таблички с открытой индексацией (изящность и простота массива, локальность поиска, оцуцтвие оверхеда, нинужность питушарских указателей и дополнительных аллокаций).
И я неоднократно сам их велосипедил. Но всегда раздражала необходимость при удалении закладывать т.н. tombstone.
В robin-hood интересно придумали: хранить сдвиг от оптимального хеша.
А при удалении не ложить пустого скипуха, а сдвигать элементы назад — ближе к исходной точке.
CEHT9I6PbCKuu_nemyx 11.09.2021 23:34 # 0
3.14159265 11.09.2021 23:39 # 0
Не надо. Мне просто название очень понравилось.
Я бы предложил попробовать google::dense_hash_map (но меня не нужно слушать — я не настоящий крестоблядь, у меня даже анимешной девочки на аватаре нету.)
CEHT9I6PbCKuu_nemyx 11.09.2021 23:21 # 0
Ещё у 1024-- таблица юзеров полностью в мапе. Я вынес таблицу юзеров в статический массив (в нём же всего 68к записей), а в мапе оставил только отображение md5 в индекс в этом массиве. С 2,7 Mh/s скорость поднялась до 2,9 MH/s. Как-то не очень заметно оказалось.
bormand 11.09.2021 23:24 # +1
А зачем тут мап, кстати? Предлагаю в горячем цикле оставить set, а мапать md5 в юзера уже в холодном коде, когда торопиться некуда.
CEHT9I6PbCKuu_nemyx 11.09.2021 23:29 # +1
bormand 11.09.2021 23:35 # +2
Кстати, а попробуй вот такой вариант ещё.
Строим битмапу по первым 20 битам от хеша (она займёт где-то 130КБ, как раз должна поместиться в L1D) и по ней делаем быструю предварительную проверку стоит ли вообще заморачиваться с текущим хешем.
По идее 95% обращений к основной мапе должно срезать (т.е. только 60к битов из миллиона выставлены).
CEHT9I6PbCKuu_nemyx 12.09.2021 00:23 # +2
Возможно, есть смысл потюнинговать количество битов.
bormand 12.09.2021 00:27 # 0
О! Ну тогда есть ещё смысл поиграться с фильтрами Блума, которые ISO ниже советует.
CEHT9I6PbCKuu_nemyx 12.09.2021 02:33 # 0
Особенных изменений не видно.
Видимо, всё таки крутить нужно алгоритм перебора исходных слов.
CEHT9I6PbCKuu_nemyx 12.09.2021 08:58 # 0
Интеловская библиотека с программой перебора помимо gcc собрались в MSVC и в clang. В MSVC профайлер ничего интересного не показал. Слишком большой main, придётся его рефакторить.
В clang профилировать я пока не умею. А у gcc в новых mingw, как я уже говорил, профайлер сломали. Он выводит пустую таблицу.
3.14159265 12.09.2021 00:50 # +1
М-м-м-м, bitset царская вещь.
> есть смысл потюнинговать количество битов.
Я бы бобробывал очевидные размеры: 16 и 24. И один неочевидный 16+3 =19 бит.
2²⁴ бит = 2 Mb, в кеш поместится.
Не знаю что у борманда за ЦПУ, но 128KB L1D это очень нетипично.(только новые Apple)
А 2¹⁹=64 KB (старые АМД). Типичный размер L1D — это 32KB.
bormand 12.09.2021 01:02 # 0
Да самый обычный 8700k...
L1d cache: 192 KiB
L1i cache: 192 KiB
L2 cache: 1.5 MiB
L3 cache: 12 MiB
З.Ы. Тьфу блядь, я дура. Это 192 на 6 ядер. У каждого по 32. Ёбаные маркетологи.
ISO 12.09.2021 01:06 # +2
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
bormand 12.09.2021 01:07 # +3
Да, я уже поняла ;(
Ёбаные маркетологи. В чём смысл писать суммарный L1, а не на каждое ядро. Он же не расшаренный...
ISO 12.09.2021 01:08 # +2
CEHT9I6PbCKuu_nemyx 15.09.2021 06:49 # 0
JloJle4Ka 15.09.2021 06:50 # 0
bormand 15.09.2021 07:59 # +2
Второй тред нужен просто чтобы поюзать остатки железа, которые не потратил первый.
CEHT9I6PbCKuu_nemyx 15.09.2021 09:09 # 0
guest6 15.09.2021 15:06 # 0
Каждый "процессор" имеет свой набор регистров (ну на самом деле их много, мы же помним про станции резервирования Томасуло?) и свой APIC.
Для ОС это как-бы отдельный процессор.
Но всё остальное у них общее.
Потому пока один процессор ждёт пока ему данные придут из памяти, другой может чото считать.
Если писать "развязанный код" без зависимостей, то наверное будет профит. Но он и на обычном современном процессоре будет
bormand 15.09.2021 15:24 # 0
И тут мы добавляем микро-шедулер и умудряемся исполнить на том же железе команды от джвух тредов. Пока один тред ждёт ответа от памяти, мы второму что-нибудь считаем и т.п.
В общем-то у видюх примерно такая же схема, только там вместо двух гипертредов тысячи и большая часть ждёт ответа от памяти (насколько помню, там всегда high-latency, high-bandwidth).
З.Ы. А идеальный код без лишних зависимостей сожрёт все ресурсы ядра сам, там соседям только крошки останутся.
guest6 12.09.2021 12:59 # +3
CEHT9I6PbCKuu_nemyx 12.09.2021 14:15 # +1
3.14159265 12.09.2021 01:23 # +2
У Штеуда всю дорогу было по 32Kb L1D на ядро (только в Sunny Cove они решились увеличить до 48Kb).
У Амд со времён старых Атлонов по 64Кб кеша (не инклюзивного), но низкая ассоциативность.
В Zen они понизили L1D до 32Кб, увеличив ассоциативность.
Единственные ЦПУ где очень-очень-очень много L1 это свежие Яббл. Они со времён А12 просто с ума сошли.
bormand 12.09.2021 01:49 # 0
Ну вот я и слилась как анскилльная лалка, даже не в курсе сколько кеша у проца (((
CEHT9I6PbCKuu_nemyx 12.09.2021 02:35 # +2
CEHT9I6PbCKuu_nemyx 12.09.2021 01:23 # +2
Видимо, при более мелких размерах много ложных срабатываний, потому и медленнее.
По сравнению с неприкрытой robin_hash::unordered_flat_map прирост невелик.
ISO 11.09.2021 23:36 # +3
bormand 11.09.2021 23:40 # 0
Бля, вот как вы помните все эти умные названия?
Я идею то помню, а нагуглить ссылку на неё не смогла, пришлось своими словами описывать в комменте выше. А, у меня вырожденный случай с одним хешем получился.
ISO 11.09.2021 23:44 # +2
https://www.postgresql.org/docs/current/bloom.html
bormand 11.09.2021 23:47 # +2
Что-то в духе if (filter[md5[0]] | filter[md5[1]] | filter[md5[2]] | filter[md5[3]]) { ... }
guest6 16.09.2021 19:28 # 0
> А зачем тут мап
Если задефайнить Царский Лукап, у Настеньки сначала смотрится в Царском сете, а потом, если вдруг нашлось - в std::map.
CEHT9I6PbCKuu_nemyx 17.09.2021 00:00 # 0
CEHT9I6PbCKuu_nemyx 11.09.2021 23:26 # +3
И отдельно ничего ставить и компилировать не надо. Просто инклюдишь "robin_hood.h".
bormand 11.09.2021 23:39 # +1
Кстати, а замерял профайлером какой участок кода сейчас боттл-неко? Подготовка буферов, хеширование или поиск в мапе?
CEHT9I6PbCKuu_nemyx 12.09.2021 01:01 # +1
https://stackoverflow.com/questions/67240792/gprof-producing-no-output-for-a-program-that-takes-reasonable-time-to-execute
Придётся переходить на «Линукс» или откапывать из архивов старую версию «MinGW».
Или пересобрать под «MSVC» всё, включая царскую библиотеку для «md5».
CEHT9I6PbCKuu_nemyx 12.09.2021 01:49 # 0
https://cs3.pikabu.ru/post_img/big/2014/03/18/5/1395125808_833463532.jpg
3.14159265 12.09.2021 01:58 # +1
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, а две последних на сырых интах.
3.14159265 12.09.2021 02:27 # 0
Так в этой мапе, местный Царь разбил её на Группы по 16 элементов.
К каждому элементу приаттачен 1 бат метаданных (7 бит хеша + 1 бит свободно/удолено) .
Соответственно для группы из 16 элементов это 128 бит, которые он матчит одной SSE инструкцией.
Что сродни тому что я предлагал выше.
3.14159265 12.09.2021 01:48 # +1
Изучаю дальше.
Один .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.
Ну и даже конкуренты подтверждают, что действительно сливает в хламину.
3.14159265 11.09.2021 23:12 # +1
> 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 не обрадуется).
CEHT9I6PbCKuu_nemyx 06.09.2021 23:08 # 0
Сначала почистил базу от дублей (которые я показывал).
На хэше, обрезанном до 32 бит (четырёх байтов), коллизий нет. Причём можно брать как старшие 32 бита, так и младшие.
На хэше, обрезанном до 16 бит (двух байтов), есть коллизии. И тут самое интересное. Лидеры по количеству коллизий — нумерные петухи и антибагры (до семи юзеров на хэш). Можно искать файки, тупо отсортировав базу по хэшу. Работает и со старшими 16 битами, и со младшими. А говорили, что криптографические хэш-функции обеспечивают конфиденциальность...
CEHT9I6PbCKuu_nemyx 06.09.2021 23:15 # 0
Если хэш обрезать до 24 бит (трёх байтов), то получается не более двух юзеров на хэш, причём второй чаще всего — нумерной петух.
ISO 06.09.2021 23:20 # +2
С учётом того, что нумерные петухи составляют чуть меньше джвух третьих всей пользовательской базы «ГК» — это не очень удивляет.
CEHT9I6PbCKuu_nemyx 06.09.2021 23:47 # +2
bormand 06.09.2021 23:51 # +1
Дык убери их из базы, раз они твои...
ISO 06.09.2021 21:57 # +1
Будет. STL-говно точно отсосёт по пирфомансу из-за большого количества индирекций, рекомендую смотреть в сторону boost::flatmap или даже кастомных (бит-)массивов*.
CEHT9I6PbCKuu_nemyx 06.09.2021 23:30 # 0
https://www.benibela.de/fpc-map-benchmark_en.html
CEHT9I6PbCKuu_nemyx 07.09.2021 08:17 # +1
bormand 12.09.2021 00:36 # 0
bormand 12.09.2021 05:14 # 0
j123123 12.09.2021 09:19 # +2
https://i.imgur.com/vpJsUTD.jpg
JloJle4Ka 12.09.2021 09:24 # 0
https://m.vk.com/video50524211_170438716
ISO 12.09.2021 09:27 # +3
j123123 12.09.2021 09:29 # 0
Не, я не Стертор.
ISO 12.09.2021 09:32 # +3
В оригинале, правда, был тест Роршаха.
j123123 12.09.2021 09:36 # +3
JloJle4Ka 12.09.2021 09:44 # 0
bormand 12.09.2021 09:44 # +3
j123123 12.09.2021 09:46 # 0
JloJle4Ka 12.09.2021 09:48 # 0
Хорошо, что bormand подсказала, теперь-то жизнь заиграет новыми красками!
j123123 12.09.2021 09:52 # +1
JloJle4Ka 12.09.2021 09:58 # 0
Видимо, придётся прикрутить «w3m» к «Emacs».
Скоро «Emacs» поглотит мою систему целиком...
guest6 05.09.2021 12:05 # 0
Сравнение total throughput для ./isal_multithread_perf -m pituz{,_mb}? Или какая-то другая питушня?
CEHT9I6PbCKuu_nemyx 05.09.2021 15:29 # 0
CEHT9I6PbCKuu_nemyx 05.09.2021 15:38 # 0
bormand 05.09.2021 08:50 # +2
grep, zgrep, bzgrep, xzgrep
more, zmore, bzmore, xzmore
less, zless, bzless, xzless
Какой юникс вей )))
CEHT9I6PbCKuu_nemyx 05.09.2021 08:52 # +1
А zstdcat и zstdgrep бывают?
bormand 05.09.2021 08:53 # +1
3.14159265 05.09.2021 16:18 # +1
bormand 05.09.2021 09:14 # +3
В цфлагсах одной из линуксячьих утилит.
guest6 05.09.2021 16:10 # 0
bormand 05.09.2021 10:40 # +2
В один прекрасный день ты возвращаешься домой, а там systemd-homed.
JloJle4Ka 05.09.2021 10:57 # +1
Вместо этого дёргаешь за рычаг и проваливаешься в подземелье, идёшь по тёмным коридорам часами, щёлкая нужные рубильники по памяти, затем, доходя до самого нижнего этажа, переключаешь последний тумблер и разгадываешь судоку 100х100 квадратиков, чётные числа закрашиваешь чёрным, а нечётные – белым, чтобы получился куар-код для открытия двери.
Только вот незадача, на двери нет камеры для считывания куар-кода: камера находится в другом подземелье...
Desktop 05.09.2021 11:11 # +2
Пузырёк с надписью "install me"
Desktop 05.09.2021 11:12 # +2
Teapottering
Desktop 05.09.2021 11:10 # +3
CHayT 05.09.2021 11:54 # +1
bormand 05.09.2021 12:21 # +1
З.Ы. Ну кстати, чистый systemd выглядит намного разумнее, чем ёбаный кентавр из systemd и старых тулов, в который превратились остальные дистрибы.
CHayT 05.09.2021 13:41 # +4
* Один мой бывший коллега убеждал меня, что это просто и легко: он просто создаёт на диске ``C'' кучу файлов, набитых нулями (с помощью msys, что характерно), оставляя там всего пару гигабайт, и постепенно их удаляет. До удаления пользовательских данных ради апгрейда МС пока не допёр.
bormand 05.09.2021 13:42 # +2
... а апдейтер сразу же пожирает это место.
JloJle4Ka 05.09.2021 13:50 # 0
guest6 05.09.2021 13:51 # +2
> До удаления пользовательских данных ради апгрейда МС пока не допёр.
Да даже до автоматического зожатия нулей или создания sparse files.
В новой версии винды я бы удалял или преобразовывал в случайный поток (вроде симлинка на слайс из /dev/urandom) даже случайно сгенерированную питушню, если её ни разу не читали и не копировали, ведь всё равно хозяин компьютера при таких условиях никогда не заметит разницы.
> оставляя там всего пару гигабайт
Надо спросить, что по этому поводу думает его SSD. Догадался ли контроллер до зожатия, или он всё ещё пердолится с игрой в пятнашки в этих последних гигабайтах.
bormand 05.09.2021 13:53 # +1
А вот фиг знает, кто победит -- кеш вандрайва или кеш апдейтера. Если кеш апдейтера окажется важнее, то локальную копию вандрайва выжмет в облако.
guest6 05.09.2021 13:55 # +2
https://www.windowscentral.com/how-set-ethernet-connection-metered-windows-10
bormand 05.09.2021 14:04 # +1
Не... она через несколько месяцев один фиг скажет: чувак, мне конечно жаль твой трафик, но что-то я давно не обновлялась.
guest6 05.09.2021 20:50 # +1
guest6 05.09.2021 13:57 # +1
JloJle4Ka 05.09.2021 13:58 # 0
bormand 05.09.2021 14:03 # +2
Нахуя кстати? Я ведь всё равно не смогу удалить какой-нибудь патч из середины.
guest6 05.09.2021 14:06 # +2
у тебя остаются предыдущие версии файлов, и если ты на них не откатываешься, то там через какое-то время они удаляются
Но это всё какие-то апокрифические знания, потому что официальной документации нет.
bormand 05.09.2021 14:14 # +1
И правда, офигеть. Дома у меня буквально метров 100, хотя винде уже несколько лет.
Почему тогда на работе там десятки гигабайт? Из-за визуал студий и прочих офисов поди?
guest6 05.09.2021 14:16 # +2
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.
CHayT 05.09.2021 14:28 # +4
CHayT 05.09.2021 14:32 # +1
guest6 05.09.2021 14:34 # +3
включаешь виндуос, а там крутится кружочек, и написано "Пожалуйста, подождите"
CHayT 05.09.2021 15:19 # +2
https://www.dualshockers.com/songs-removed-grand-theft-auto-iv-todays-update/
ISO 05.09.2021 14:08 # +2
Там всего-то надо отключить службу апдейтов, службу WaaSMedicSvc, от рута удалить их и почистить несколько тасков из планировщика заданий, которые эти службы восстанавливают (тоже от рута).
Вроде бы ещё была какая-то служба, которая эти две восстанавливает, но я уже не помню.
bormand 05.09.2021 14:12 # +1
Какой анскилл )))
Почему бы просто на уровне ядра не защитить эти ветки и файлы от всех программ, не подписанных майкрософтом?
ISO 05.09.2021 14:23 # +3
CHayT 05.09.2021 14:13 # 0
Емнип, уже сейчас админ в винде не может трогать файлы в некоторых системных директориях.
ISO 05.09.2021 14:16 # +3
guest6 05.09.2021 14:19 # +2
ну тоесть сначала take ownership, а потом write
иначе к ним доступ будет только у каких-нить TrunstedInstaller например
ISO 05.09.2021 14:24 # +2
CHayT 05.09.2021 14:50 # −2
3.14159265 05.09.2021 16:22 # +1
guest6 05.09.2021 16:34 # +1
Пока всё работает правильно, там можно не придолица вообще.
А когда оно не работает -- тебя ждёт ад
bormand 05.09.2021 16:35 # 0
guest6 05.09.2021 16:45 # +3
Ты потихоньку въехжаешь в это говно, читаешь документацию, читаешь скриптики, и в итоге чувствуешь себя довольно уверенно. Все как-бы просто и понятно.
У винды ты можешь десять лет быть крутым админом, запускающим dcpromo, а потом у тебя хуяк -- и всё упало. И ничего не понятно, потому что нет ни кода, но документации по конкретно этой проблеме.
Потом в технете появляется заклинание про замену одного гуида в реестре на другой, и ты его выполняешь, и тогда всё работает
CEHT9I6PbCKuu_nemyx 05.09.2021 16:49 # 0
CEHT9I6PbCKuu_nemyx 05.09.2021 16:51 # +1
Кто-нибудь смотрит системные журналы? Или лог ngen?
guest6 05.09.2021 16:53 # 0
Свежепоставленная винда уже будет иметь с десяток варнингов в логах, всем похуй
bormand 05.09.2021 14:37 # 0
guest6 05.09.2021 14:41 # +1
А то потом будет неизвестная ошибка 0xABC123 при попытке удалить SDK, и даже sfc /scannow не поможет
bormand 05.09.2021 14:16 # +2
Рута в NT никогда и не было. Админ, насколько я понимаю, это самый обычный юзер, которому дали чуть больше привилегий.
guest6 05.09.2021 14:19 # +3
CEHT9I6PbCKuu_nemyx 05.09.2021 16:28 # +1
Desktop 05.09.2021 16:30 # +1
guest6 05.09.2021 16:32 # +1
Но если ты хотел ставить w95, то у тебя скорее всего был multimedia компутер с CD-ROMмом
Правда флопик тебе всё равно бы понадобился, ведь грузиться с сидирома биосы не умели: el torro тогда еще не было
Desktop 05.09.2021 16:43 # +1
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.
я когда-то даже картонную коробку видел от старого офиса
реально здоровая картонная коробка для софта
guest6 05.09.2021 16:50 # 0
А до него был Office 95 а еще Word 6.0.
guest6 05.09.2021 16:33 # 0
Угадаешь зачем оно было?
bormand 05.09.2021 16:34 # +1
guest6 05.09.2021 16:35 # +1
его можно было закрыть, и всё
ну креды для CHAP и PAP тоже, но я не про них
guest6 05.09.2021 13:58 # +1
guest6 05.09.2021 14:03 # +4
Грубо говоря make знает, что из лекса получается .c, из .c -- .o итд
Так вот там есть правило и для SCCS
bormand 05.09.2021 14:21 # 0
guest6 05.09.2021 14:23 # +3
прыщебляди соснули
зато есть для сборки веба из tex
guest6 05.09.2021 14:10 # +2
на ней работает far, total commander, и хром. Что еще на ней работает я не знаю, но по идее можно заменить ей десктопную винду
JloJle4Ka 05.09.2021 14:12 # 0
Desktop 05.09.2021 14:33 # +1
https://www.windowscentral.com/windows-core-os
guest6 05.09.2021 14:42 # 0
я имел ввиду Windows Server Core
Desktop 05.09.2021 14:56 # +2
Итак, что такое 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.
CEHT9I6PbCKuu_nemyx 05.09.2021 15:01 # 0
Desktop 05.09.2021 15:04 # 0
CEHT9I6PbCKuu_nemyx 05.09.2021 14:58 # +2
Desktop 05.09.2021 15:52 # 0
Карта C++17
3.14159265 05.09.2021 16:36 # +2
> systemd-oomd(8) — A userspace out-of-memory (OOM) killer
А ну-ка прыщебляди, расскажите что вне systemd обеспечит мне такой функционал?
bormand 05.09.2021 16:37 # 0
3.14159265 05.09.2021 16:44 # 0
guest6 05.09.2021 16:38 # 0
guest6 05.09.2021 16:48 # +1
3.14159265 05.09.2021 17:16 # +1
Где привычные прыщеблядские рассказы: «вот у нас всё и так было», «systemd это просто нинужная обёртка», «у нас никаких проблем не было».
Годами существует проблема: Луникс при OOM намертво подвисает и минут на 10-20 уходит в себя.
Причём даже при отключенном свопе.
guest6 05.09.2021 17:22 # +1
расскажи про это, кстати
Я только OOMKillerов видел
bormand 05.09.2021 17:24 # 0
Формально это ещё не OOM, но системе уже пизда.
З.Ы. Или у меня лапки, а гуру умеют настраивать так, чтобы своп работал нормально?
guest6 05.09.2021 17:27 # 0
bormand 05.09.2021 17:28 # 0
ram < working set < swap + ram
Это по идее не оверкоммит ещё, так что должно с любыми настройками выделить...
guest6 05.09.2021 17:31 # 0
начнется активный свопинг и всё станет рачком?
bormand 05.09.2021 17:32 # 0
Ну ключевое слово "working set", т.е. надо активно эту память перезаписывать, а не просто выделить и молчать.
guest6 05.09.2021 17:33 # 0
bormand 05.09.2021 17:34 # 0
З.Ы. while (1) memset(p, 0, size) вроде тоже прокатит.
bormand 05.09.2021 17:42 # +1
bormand 05.09.2021 17:55 # 0
3.14159265 05.09.2021 18:18 # +3
Так бы всё зависло сильнее и тупило гораздо дольше...
bormand 05.09.2021 18:29 # 0
О, спасибо! Пойду передёрну свап, а то как-то неприятно когда там не 0 байт.
ISO 05.09.2021 18:59 # +2
Реальность: 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.
3.14159265 05.09.2021 19:03 # +3
guest6 05.09.2021 19:14 # +2
guest6 05.09.2021 18:13 # 0
А если аллокнуть swap + ram - 4096, то тупит, но быстро OOMится
3.14159265 05.09.2021 17:28 # +2
Кстати, ты в курсе что до последнего времени в луниксе своп освобождался за O(N²).
Из-за этого был ОЧЕНЬ долгий resume from hibernate и парадоксы что проще убить процесс и запустить его заново чем ждать пока он вернётся из свопа в память. Наблюдалось и на сверхбыстрых SSD.
bormand 05.09.2021 17:43 # +1
Если честно, никогда не пробовала... Это вообще работает? У меня и на винде то не получалось в своё время.
3.14159265 05.09.2021 17:51 # 0
Да, сейчас даже получше (в смысле быстрее). Раньше 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.
3.14159265 05.09.2021 18:01 # +1
Оказалось что при наличии такого раздела в системе 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
bormand 05.09.2021 18:05 # 0
3.14159265 05.09.2021 18:07 # +1
hibernate в принципе невозможен при наличии активного btrfs-раздела (на котором у меня был /home)
Иными словами есть btrfs partition и есть swap partition. И btrfs драйвер не давал делать hibernate на swap partition.
bormand 05.09.2021 18:22 # 0
3.14159265 05.09.2021 18:24 # 0
Ага. Дикое Говнище )))
bormand 05.09.2021 18:26 # 0
Но видимо они не смогли только этот кейс запретить и отрубили вообще всё нахуй на всякий случай?
3.14159265 05.09.2021 18:32 # +1
И пока не удолил btrfs-tools — оно не работало.
bormand 05.09.2021 18:34 # 0
Напомнило про драйвер амудэ, который по имени игры воркэраунды для проца применяет.
Или там в этом пакете заодно активация драйвера сносится?
guest6 05.09.2021 18:26 # 0
3.14159265 05.09.2021 18:33 # 0
guest6 05.09.2021 18:35 # 0
там драйвер что ли?
bormand 05.09.2021 18:39 # +1
Хотя ext4 тоже бесился по молодости (поломали классическую идиому write + rename).
guest6 05.09.2021 18:41 # 0
bormand 05.09.2021 18:42 # 0
Любишь сортировать файлы из lost & found?
guest6 05.09.2021 18:44 # 0
Если soft updates (как в старых bsd), то скорее всего всё и починится нормально
guest6 05.09.2021 18:46 # 0
3.14159265 05.09.2021 17:25 # 0
bormand 05.09.2021 17:26 # 0
Ахаха! Исполнение кода с подкачкой каждой функции с диска, потому что выгрузить больше нечего? Не, немножко то свопа надо оставить.
3.14159265 05.09.2021 17:28 # 0
bormand 05.09.2021 17:30 # +1
3.14159265 05.09.2021 17:31 # +2
А когда был hdd пришось часов через шесть после изнасилования диска просто сделать reset.
Desktop 05.09.2021 17:37 # 0
3.14159265 05.09.2021 17:39 # 0
Чтобы не терять результаты работы.
JloJle4Ka 05.09.2021 17:43 # 0
CEHT9I6PbCKuu_nemyx 05.09.2021 17:47 # 0
Desktop 05.09.2021 17:48 # +3
j123123 06.09.2021 02:13 # +1
> 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.
3.14159265 06.09.2021 15:50 # +1
Винда (когда она у меня была) не лагала с отключенным свопом.
Она обычно крашила группу вкладок хрома.
> just allocate more virtual address space than there is physical RAM and cycle through it
> Everything else quickly gets swapped out
Есть одна проблемка: на винде у меня будет отключён своп и эта анскильная программа просто не заработает.
JloJle4Ka 05.09.2021 17:23 # 0
Текущая реализация OOM Killer в Linux стремится выбрать наименее важный процесс. Он выбирается среди всех процессов, кроме init и kernel threads, на основе подсчета для всех процессов очков и тот, что набрал больше всех очков - убивается. Алгоритм анализа достаточно сложен и я не буду его приводить здесь.
Systemd-oomd это уже часть ядра, или это просто какая-то нахуй не нужная переделка того, что уже есть в ядре? Я только закончил ебаться с «Gentoo», поэтому мог не правильно понять портянку, которую притащил (я очень устал).
3.14159265 05.09.2021 17:27 # 0
Реально система даже без свопа останавливается на очень долгое время.
JloJle4Ka 05.09.2021 17:37 # 0
https://github.com/rfjakob/earlyoom/
А вообще-то мне было похуй на «SystemD», но я вас тут наслушался и решил стать не «инцелом», не «геймером», а «врагом SystemD», почему теперь здесь все за «SystemD»? Вы меня флеймите троллом?
guest6 05.09.2021 17:39 # 0
АХАХАХА
Desktop 05.09.2021 17:40 # 0
ISO 05.09.2021 17:44 # 0
bormand 05.09.2021 17:44 # 0
> electron
Ну-ну.
3.14159265 05.09.2021 17:36 # +1
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.
guest6 05.09.2021 17:39 # 0
IIIyqpymuHckuu_nemyx 05.09.2021 22:51 # 0
ISO 05.09.2021 22:56 # +3
Ночь - хоть выколи глаза.
Слышны крики попугаев
И мартышек голоса.
Над цветущею долиной,
Где не меркнет синева,
Этой песенки старинной
Мне припомнились слова.
Я иду по Уругваю,
Где так жарко в январе,
Про бомбёжки вспоминаю,
Про сугробы на дворе.
Мне над мутною Ла-Платой
Вспоминаются дрова,
Год далёкий сорок пятый,
Наш отважный пятый "А".
Малолетки и верзилы
Пели песню наравне.
Побывать нам не светило
В этой сказочной стране.
Я иду по Уругваю,
В субтропическом раю,
Головой седой киваю,
Сам с собою говорю.
Попугаев пёстрых перья,
Океана мерный гул...
Но линкор немецкий "Шпее"
Здесь на рейде затонул.
И напомнит, так же страшен,
Бывшей мачты чёрный крест,
Что на шарике на нашем
Не бывает дальних мест.
Я иду по Уругваю
В годы прошлые, назад,
Вспоминаю, вспоминаю,
Вспоминаю Ленинград...
Я иду по Уругваю,
Ночь - хоть выколи глаза.
Слышны крики попугаев
И мартышек голоса.
LinuxGovno 06.09.2021 17:37 # 0
guest6 06.09.2021 17:54 # +1
guest6 06.09.2021 17:41 # 0
guest6 06.09.2021 17:46 # 0
Там высокий уровень жизни, много потомков беглых нацистов, дешевая и качественная при этом говядина, и пиво хорошее
Парагвай беднее, и там больше индейцев
JloJle4Ka 06.09.2021 01:15 # +1
PunkSpider успешно работал с 2014 по 2018 годы. Потом его пришлось закрыть из-за множества жалоб от компаний, чьи сайты становились лёгкими мишенями для взлома. Но сейчас разработчики разобрались с юридическими проблемами и готовы возобновить проект.
На данную минуту PunkSpider ещё не запустили, на сайте висит заглушка, опубликована только ссылка на расширение для Chrome.
Как вы думаете, это круто или не очень? Теперь даже какой-нибудь ламер-виндузятник (арендатор своей OS) сможет взломать любой, даже самый популярный, сайт.
Motorola 06.09.2021 01:57 # +3
... которое будет сообщать твои пароли всему интернету.
Soul_re@ver 06.09.2021 02:02 # +3
CEHT9I6PbCKuu_nemyx 06.09.2021 08:57 # +2
bormand 06.09.2021 17:59 # +2
Кстати, а в хромовский магазин до сих пор можно заливать проприетарную зашифрованную парашу? Мозилла вроде нечитаемые расширения сразу блочит теперь.
CEHT9I6PbCKuu_nemyx 10.09.2021 00:31 # 0
guest6 07.09.2021 03:39 # +2
Ого, Макака с Мартышкой свой пароль не только для говнокода используют
https://www.shodan.io/host/213.227.38.134
Alwon E20 Telnet
Input password (defaul 1234):
j123123 07.09.2021 04:42 # +2
> Telnet
guest6 07.09.2021 04:53 # +2
JloJle4Ka 06.09.2021 06:42 # 0
Подобная индустрия, единственной целью которой является производство уязвимостей, должна быть ликвидирована.
Даже если завтра NSO Group и всех представителей этой индустрии внезапно сотрёт с лица земли вулканом общественного возмущения, это не изменит того факта, что мы в разгаре величайшего кризиса компьютерной безопасности в истории. И разработчики Apple, Google, Microsoft, которые хотят продавать продукт, а не доводить его до совершества, и их полная противоположность — благонамеренные разработчики Linux, которые хотят доводить продукт до совершенства, а не продавать его — все они спокойно пишут код на небезопасных языках, потому что… ну, потому что так привыкли, а модернизация требует значительных усилий, не говоря уже о расходах. Подавляющее большинство уязвимостей, которые потом эксплуатируются индустрией небезопасности, появляются по техническим причинам, связанным с управлением памятью. Поэтому выбор более безопасного языка — критически важная мера защиты… но мало кто об этом думает.
ISO 06.09.2021 07:27 # +4
На этом моменте сразу понял, что статью писал дrustня-сектант. Открыл источник — и правда, сектант!
guest6 07.09.2021 01:59 # 0
Именно по этому я за "PHP"
guest6 07.09.2021 03:01 # 0
то-то я смотрю в линуксе всё доведено до свершенства: особенно конечно документация (к ss, ip, tc итд)
3.14159265 07.09.2021 03:24 # +1
>> -Werror
>> introduce Q3 2021
nepeKamHblu_nemyx 06.09.2021 11:53 # 0
https://govnokod.ru/27648
https://govnokod.xyz/_27648/
guest6 07.09.2021 01:53 # 0
давайте течь от "UNIX way"
CEHT9I6PbCKuu_nemyx 07.09.2021 01:56 # +2
guest6 07.09.2021 01:57 # 0
Я знаю, ты сможешь
CEHT9I6PbCKuu_nemyx 07.09.2021 02:10 # 0
Мне аргумент sed'а проще понять.
guest6 07.09.2021 02:36 # 0
%.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 нетипичным разделителем -- запятой -- ты наверное и сам расшифруешь
guest6 07.09.2021 02:40 # 0
"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
guest6 07.09.2021 03:21 # 0
urpyHoK 17.05.2023 15:52 # 0
YMHblu_nemyx 17.05.2023 15:52 # 0
booratihno 17.05.2023 15:55 # 0
3oJloToy_xyeLL 17.05.2023 15:56 # 0
booratihno 17.05.2023 16:05 # 0
YMHblu_nemyx 17.05.2023 18:22 # 0
PE3yC 17.05.2023 18:22 # 0
OTCYTCTBYl0LLLuu_xyu 17.05.2023 18:22 # 0
booratihno 17.05.2023 18:22 # 0
OTCYTCTBYl0LLLuu_xyu 17.05.2023 18:22 # 0
PE3yC 17.05.2023 18:22 # 0
6oHo6o 17.05.2023 18:22 # 0
booratihno 17.05.2023 18:22 # 0
OTCYTCTBYl0LLLuu_xyu 17.05.2023 18:22 # 0
YMHblu_nemyx 17.05.2023 18:23 # 0
ru66oH4uk 17.05.2023 18:27 # 0
OTCYTCTBYl0LLLuu_xyu 17.05.2023 18:27 # 0
6oHo6o 17.05.2023 18:27 # 0
YMHblu_nemyx 17.05.2023 18:27 # 0
ru66oH4uk 17.05.2023 18:27 # 0
3oJloToy_xyeLL 17.05.2023 18:27 # 0
YMHblu_nemyx 17.05.2023 18:27 # 0
6oHo6o 17.05.2023 18:27 # 0
6oHo6o 17.05.2023 18:27 # 0
MAPTbIwKA 17.05.2023 18:27 # 0
6a6yuH 17.05.2023 18:31 # 0
booratihno 17.05.2023 18:31 # 0
MAKAKA 17.05.2023 18:31 # 0
6oHo6o 17.05.2023 18:31 # 0
MAPTbIwKA 17.05.2023 18:31 # 0
6oHo6o 17.05.2023 18:31 # 0
MAKAKA 17.05.2023 18:34 # 0
PE3yC 17.05.2023 18:34 # 0
booratihno 17.05.2023 18:34 # 0
YMHblu_nemyx 17.05.2023 18:41 # 0
6a6yuH 17.05.2023 18:42 # 0
booratihno 17.05.2023 18:42 # 0
ru66oH4uk 17.05.2023 18:42 # 0
urpyHoK 21.05.2023 22:38 # 0
urpyHoK 21.05.2023 22:38 # 0
raMagPuJI 21.05.2023 22:39 # 0
YMHblu_nemyx 21.05.2023 22:39 # 0
YMHblu_nemyx 21.05.2023 22:40 # 0
MAKAKA 21.05.2023 22:44 # 0
YMHblu_nemyx 21.05.2023 22:44 # 0
OTCYTCTBYl0LLLuu_xyu 21.05.2023 22:45 # 0
PE3yC 21.05.2023 22:47 # 0
6a6yuH 21.05.2023 22:47 # 0
booratihno 21.05.2023 22:47 # 0
ru66oH4uk 21.05.2023 22:47 # 0
PE3yC 21.05.2023 22:50 # 0
OTCYTCTBYl0LLLuu_xyu 21.05.2023 22:50 # 0