- 1
IT Оффтоп #65
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IT Оффтоп #65
#37: https://govnokod.ru/26524 https://govnokod.xyz/_26524
#38: https://govnokod.ru/26539 https://govnokod.xyz/_26539
#39: https://govnokod.ru/26556 https://govnokod.xyz/_26556
#40: https://govnokod.ru/26568 https://govnokod.xyz/_26568
#41: https://govnokod.ru/26589 https://govnokod.xyz/_26589
#42: https://govnokod.ru/26600 https://govnokod.xyz/_26600
#43: https://govnokod.ru/26604 https://govnokod.xyz/_26604
#44: https://govnokod.ru/26627 https://govnokod.xyz/_26627
#45: https://govnokod.ru/26635 https://govnokod.xyz/_26635
#46: (vanished) https://govnokod.xyz/_26646
#46: (vanished) https://govnokod.xyz/_26654
#47: https://govnokod.ru/26671 https://govnokod.xyz/_26671
#48: https://govnokod.ru/26707 https://govnokod.xyz/_26707
#49: https://govnokod.ru/26750 https://govnokod.xyz/_26750
#49: https://govnokod.ru/26776 https://govnokod.xyz/_26776
#50: https://govnokod.ru/26804 https://govnokod.xyz/_26804
#51: https://govnokod.ru/26809 https://govnokod.xyz/_26809
#52: https://govnokod.ru/26817 https://govnokod.xyz/_26817
#53: https://govnokod.ru/26833 https://govnokod.xyz/_26833
#54: https://govnokod.ru/26840 https://govnokod.xyz/_26840
#55: https://govnokod.ru/26844 https://govnokod.xyz/_26844
#56: https://govnokod.ru/26862 https://govnokod.xyz/_26862
#57: https://govnokod.ru/26890 https://govnokod.xyz/_26890
#58: https://govnokod.ru/26916 https://govnokod.xyz/_26916
#59: https://govnokod.ru/26934 https://govnokod.xyz/_26934
#60: https://govnokod.ru/26949 https://govnokod.xyz/_26949
#61: https://govnokod.ru/26980 https://govnokod.xyz/_26980
#62: https://govnokod.ru/26999 https://govnokod.xyz/_26999
#63: https://govnokod.ru/27004 https://govnokod.xyz/_27004
#64: https://govnokod.ru/27020 https://govnokod.xyz/_27020
Этот оффтоп сгенерирован автоматически.
Индекс оффтопов: https://index.gcode.space/.
Зеркала Говнокода и полезные ресурсы:
* https://govnokod.xyz/ (альтернативный Говнокод)
* https://gcode.space/ (read-only зеркало Говнокода)
* @GovnokodBot в «Telegram»
* https://vorec.space/ (глоссарий Говнокода)
что будет, если поставить куку без разрешения?
или ты хочешь нативный через PInvoke?
но, если .a только для статической, тогда получается, что не выйдет
> красиво сообщить пользователю
Нехуй, пусть правильно код пишет.
в винде я могу загрузить .dll через LoadLibrary, вызвав его через PInvoke.
на юниксах это делает dlopen()
Можешь ли ты дернуть его через pinvoke -- не знаю, попробуй. Вероятно, можешь.
Но можешь ли ты dlopenом .a файл?
Не знаю, думаю нет: .a файл это просто пачка .o файлов, может и без ELF заглловка.
В .a упакованы (без зожатия) .o-файлы. А вот .o-файлы могут быть в разных форматах (ELF, COFF, OMF, XCOFF, a.out, RDOFF — тысячи их), главное, что в .o-файлах таблица символов не такая, как в экзешниках и в .dll/.so/.dyld.
Начиная с какой-то студии, стали использовать тот же !<arch>, который в никсах, а obj-файлы стали не OMF, а COFF.
Кажется, смена формата произошла, когда стала популярна Windows NT.
В общем, в 16-битном коде никсовый формат ещё не использовался; в 32-битном коде некоторые компиляторы перешли на никсовый формат, некоторые остались на старом; в 64-битном коде повсеместно уже никсовый формат.
А вот в «Windows» для экзешников и DLL используется «PE», а для объектных файлов используется другой формат («MSVC» использует «COFF», но не в точности тот «COFF», который был в «SYSV», а с некоторыми изменёнными полями). Сам «PE» основан на «COFF» (после сигнатуры "PE\0\0" следует заголовок COFF-файла), но это не тот «COFF», который используется для объектных файлов, а снова модифицированный (некоторые поля отличаются).
Итого: бывает «COFF» из «SYSV» (его умеет генерировать «gcc»), бывает «COFF» из «MSVC», бывает огрызок «COFF», сидящий внутри «PE».
А некоторые компиляторы под «Windows» в качестве объектного файла используют вовсе не «COFF» (я уже приводил «Borland C» в качестве реального примера).
В эльфийских вроде точно такая же, не?
Зачем программисту знать о какой-то прыщепредолинговой чуши?
Инструменты программиста -- язык и фреймоврки, а не прыщеговно
Всегда ржу с дебилов, которые обсуждают какой-то "деплоймент", когда вот же он, прямо перед ними
Потому что серьезный человек работает, деньги зарабатывает, и вполне нормально делигировать глупую пирдушню техническому персоналу
Пусть коммивояжёр сам выбирает себе путь в приложении. Не успел - его проблема, вычтем из премии.
Есть два города, нужно обойти их оптимальным способом.
Разорил все малые города и перекопал дороги, проверь.
В России есть регионы (в Якутии, например), куда Почта России не отправляет посылки весной и осенью, потому что через реки отсутствуют мосты: летом работает паром, зимой — переправа по льду, а весной и осенью (когда начинается ледоход или ледостав) наземным транспортом реку пересечь невозможно. А аэродром есть не в каждом городе...
Ещё «Ан-2» умеет взлетать с поля.
Между прочим. К тому же, их не надо импортировать в начале скрипта (в отличие от маргинальных "Go" и "Python") - просто прописываешь в коде имена соответствующих функций и течёшь.
Всегда ржу с "джава" с этим ее
com.bat.batjana.mysuperapp.integraiton.l ogic.SecurityManagerImplementationProvid erImpl
проще взять какой-то IronScheme или что-то, на чём дотнетчики обычно скриптуются (я не знаю, шо, если честно)
там спец атрибут есть, который сам всё загрузит. Но нужно иметь .so. В чем проблема ее сликновать?
Ты хочешь скриптовать именно на схеме? Так-то под .net овердохуя языков, но без острой необходимости я бы не связывался с нативщиной (.h файлы будешь руками переписывать в структуры же).
Выбирай язык: https://en.wikipedia.org/wiki/List_of_CLI_languages
Microsoft на PowerShell скриптуется, и всем советует
https://channel9.msdn.com/Blogs/bruceky/How-to-Embedding-PowerShell-Within-a-C-Application
ну вообще я бы всё таки взял повершел. У него нативная поддержка .NET объектов: ты просто вызываешь из скрипта проперти и методы своих классов, и течешь
1) ffi из коробки
2) возможность взять только те вещи, которые нужны (я обошёлся вообще racket/base), я уже писал как-то об этом
скрипт на повершеле немного звучит как бесплатный доступ к промежности
ну тут у тебя нету коробки, как я понимаю: предлагается ебаться самому
>бесплатный доступ к промежности
Хум хау. PS вполне себе скриптоговно, там много чего можно.
Но вообще IronSchemeCore судя по гитхабу жива (а не как айрон пайтон), так что можешь и ее попробовать
System.Management.Automation упорно не появляется в списке using
некоторые типы проектов (Cocoa App) вообще не позволяют зареференсить даже обычный System.Management, его нет в списке
в интернете мало инфы, хотя можно встретить типа саксес стори, но похоже, что штука очень специфическая
так шо рэкет пока удачливее)
вероятно, PS нужно поставить как-то через нугет вот такую каккшу
https://powershell.myget.org/feed/powershell-core/package/nuget/System.Management.Automation
https://github.com/PowerShell/PowerShell/issues/3417
ишшу я эту видел. то ли в ней, то ли где-то ещё понравилась фраза: кто-то залил пакет в нагет, но это были не мы
в общем, у меня не завелось в трёх разных проектах, хотя в списке их пакетов SMA есть. хотя dotnet add package грит на некоторые из них, что мол The project does not support adding package references through the add package command, чудовище
КОМа у Десктопа нет (бо не виндуос), а насколько это легко сделать через pIvoke, я не знаю.
Может оказаться, что это больно
- лень)
мне не так важно, схема там или нет, просто я сделал такое для Swift+Racket; благодаря objc ffi я могу срать из рэкета прямо в обжси/свифт колбеками, если нужно
ps это звучит интересно, спасибо, не подумал сразу про него почему-то
библиотеки с самим интерпретатором с приложением линкуются статически
на основе нужных либ самого рэкета генерится здоровенный сишный файл + хедер, добавляется в проект
получается, интерпретатор вшит
К сожалению, статически слинковаться с .NET нельзя. Ну или я не знаю как (хотя он же опенсурс теперь, в теории верно как-то можно)
Скриптуйся Erlang'ом. Запусти свою дотнешню через open_port и шли ей письма. /color
*переехав на тцп
зачем какие-то сишарпы?
По возможности избегайте этого.
https://bugs.openjdk.java.net/browse/JDK-6795562
А ведь 11 лет назад нас было двое...
Гитхаб прислал такую хуету мне.
Попробуй:
1) $action1
2) $action2
3) $action3
Он пробует только $action2, и пишет: "к сожалению, не помогло".
Ты ему пишешь опять:
А тогда $action1 или $action3?
Он пробует только $action3, и пишет: "к сожалению, и это не помогло"
Хотя, когда у меня начал вайфай барахлить на ноуте, я его ни к заводским настройкам не возвращал, ни провайдеру не звонил, как в интернете советовали делать какие-то умники.
Я воткнул адаптер покруче и потёк )))
То есть когда у тебя пинги дальше провайдероской сети не идут, ты перезагружаешь свою убунту в режиме защиты от сбоев и отключаешь антивирус?
Я уже как-то жаловался на ёблю с доксис:
-- В морде модема я вижу, что на одном канале SNR сильно ниже стандарта, и там много ошибок, и скорость у меня 1 мегабит в секунду. А вот днем у меня SNR номральный, ошибок нет, и скорость нормальная. Можно мне поговорить с инжерером?
--Так, попробуйте включить комптютер в модем напрямую, мимо роутера.
Собственно я так и делал этим летом. Чувак через 5 секунд сказал "а, у вас потерь дофига, когда лучше техников прислать?"
Подтверждаю. Чем меньше выёбываешься умными словами перед заскриптованными девочками на первой линии — тем быстрее и спокойнее переключат на техника.
Бугуртить про «SNR» на первой линии — это как пытаться ругаться с роботом, который про «нажмите один чтобы попасть в "Спортлото"» бухтит.
- мне однажды помогло, лол
Но если у тебя SNR на модеме хуевый, то виноват, очевидено, не роутер
Мне, кстати, это напомнило сьому. Я бы такого пристыдил за неуважительное отношение к чужому времени.
То есть, если я подставлю её, например в find_if, то конпелятор сольет две функции в одну?
Или она inline только для использования на том же фрейме стека?
Вижу что тут цикл, в котором вызов только одной функции - оптимизирую.
То есть, видит, что между меткой A и условным переходом на нее F есть прыжок на другую метку B, берет всё, что в B и заменяет прыжок на содержимое метки B до ret.
Ну можно еще топорней: Скомпилить оба варианта, сделать на них тестовый запуск и выбрать тот, который быстрее.
Ты только что изобрёл profile-guided optimization.
Проблема — это сгенерировать набор тестовых данных, на которых нужно прогнать отладочный экзешник, чтобы он сгенерировал хорошую таблицу.
Хотя бы самые горячие ветки от холодных отделятся и то уже норм.
хорошо завезли возможность роллбекнуть обновления кроме обновлений безопасности
Нехорошо это как-то. Надо чтобы роллбекнуть можно было только после обращения в техподдержку с подробным описанием, какие проблемы у тебя это обновление создаёт (и если они не слишком серьёзные — заявка отклоняется). Ну и чтобы через неделю оно обратно ставилось.
>Ну и чтобы через неделю оно обратно ставилось.
что-то мне подсказывает что так и произойдет
На следующем мажорном апдейте всяко вкатят.
если можешь скзаать где их смотреть я скину
к сожалению я не уверенный пользователь пк
кнопка filter показывает окно и там все контролы заблокированы
еще у меня вайфай сука вырубается при спящем режиме
и еще есть логи за distributedCOM и клиент впна
все логи выше встречаются по несколько раз
всё же написино
Закрыть вручную в конце все скобочки не получится?
А вот то, что кто-то пытался перевести бабло и кому - инфа полезная.
Норм, спеку json'а же написали на салфетке.
Ну логгировать-то конечно можно и нужно. А вот использовать в дальнейшей автоматической обработке — ну хуй знает.
Пусть кто-нибудь другой реальный пример приведёт.
Хотя конечно ничто не мешает написать конченый автомат, который будет колбечить на каждый атрибут
Ребёнок не оставляет свободного времени на всякую ерунду, поэтому к работе начинаешь относиться совсем по-другому. Я после рождения ребёнка уволился с хорошей, но не очень интересной работы чтобы заниматься тем, что действительно по душе. Просадки в "перформансе" не заметил: чем меньше у тебя ресурсов (времени), тем более рационально ты их используешь. Я стал меньше страдать фигнёй и лучше, глубже работать.
К слову, у SPJ не менее шести детей. Мы все тут перформим гораздо хуже него.
Также горячо рекомендую книгу Deep Work, она действительно изменила мою жизнь к лучшему.
https://habr.com/ru/company/vdsina/blog/520478/#comment_22105878
> чтобы заниматься тем, что действительно по душе
полгода назад:
> С прошлого июля я пишу на Rust full-time, скучаю по C++
Роман совсем сломался
я-то думал это сайт для ма-те-ма-ти-ков
вообще горький 17 это вроде классическая рпг, а не jRPG, но я в неё не играл, если чо
https://youtu.be/fTdlzqhSdt8
пруфоф не будет
а группа товарищей изначально нигде не фигурировала
Сколько туплов в скале? Это классика! Это знать надо!
Какой багор )))
«Some programming languages, such as ML, Python and Haskell, have built-in tuple constructs. Unfortunately C++ does not. To compensate for this "deficiency", the Boost Tuple Library implements a tuple construct using templates... The current version supports tuples with 0-10 elements. If necessary, the upper limit can be increased up to, say, a few dozen elements»
Либа на крестах обогнала УБОГИЙ (если качество языка ставить в соответсвие качеству реализации туплов) хаскель.
Я не понимаю, как создателям стандартной либы было не в лом все это делать:
https://www.scala-lang.org/api/current/scala/Function$.html
...
https://www.scala-lang.org/api/current/scala/Function22.html
Такой же багор с Product22. Видимо, у того, кто это придумал, не было ситуации «Ого как вы быстро написали лабу... А теперь поменяйте код так, чтобы в массиве было не 10, а 21 элементов, а в векторе было не 3, а 4 координаты!»
> Let’s all get together and kill C++ with a deadly combination of re-write and neglect…
Ну пиздец )))
Let’s all get together and kill Java with a deadly combination of re-write and neglect…
Everyone should definitely stop coding in Rust, an ugly and unfriendly language that is often surprisingly inefficient in its code generation.
Let’s all get together and kill Rust with a deadly combination of re-write and neglect…
Everyone should definitely stop coding in PHP, an ugly and unfriendly language that is often surprisingly inefficient in its code generation.
Let’s all get together and kill PHP with a deadly combination of re-write and neglect…
Everyone should definitely stop coding in Brainfuck, an ugly and unfriendly language that is often surprisingly inefficient in its code generation.
Let’s all get together and kill Brainfuck with a deadly combination of re-write and neglect…
New Wave tried to destroy The Metal
But The Metal had its way
Grunge then tried to dethrone The Metal
But Metal was in the way
Punk Rock tried to destroy The Metal
But Metal was much too strong
Techno tried to defile The Metal
But Techno was proven wrong
Yeah
Егор Псковыкин, открыт 4 часа назад
Нужна ли web-программисту высшая математика?
Я в полном тупике... Не знаю куда поступать, на менеджера по продажам, или на web-программиста. Боюсь поступать на программиста, т. к. там нужна математика, а я ПОЛНЫЙ НОЛЬ в ней.
Кажется, Сёма погрузился в «Ответы Mail.ru».
На дваче был пост типа "как стать программистом за пять лет", и там сразу говорилось, что если вы хотите делать сайты на "PHP", то пост не нужно читать, а нужно сразу идти смотреть веб-уроки.
другие поступили на физмат и их там интегралами ебали 4 года
и нахуй нужна такая вышка?
Вполне можно проучиться пять лет, и узнать ничего. Дурное дело не хитрое.
Но вообще я не самый правильный отвечатель на такие вопросы, можешь спросить кого нить из местных гуру что они из вышки вынесли
Из химии мы магний выносили. А из вышки вынести было нечего, там только книжки да мел.
а к чему вам магний? для сердца?
Неправильная у вас вышка. Мы из неё вакуум выносили.
Хм, это чувак, который терминатора играл?
ок
Это каждый питух знает
фыввввввв ввввввввввввввв, открыт 7 часов назад
Стоит ли начинать изучать php?
Без хорошего знания в html css js ?
Хорошо знаю Python, теперь решил php начать учить.
https://github.com/cespare/reflex
https://www.diary.ru/~oreweK/p186830228.htm
1. При той же кириллической раскладке в системе на внешней клавиатуре не набирается буква ё
2. При смене раскладки на другую кириллическую, где есть буква ё, невозможно набрать обратную одинарную кавычку, которая по умолчанию используется в комбинации для переключения между окнами одного приложения. Вместо кавычки здесь получается § (знак параграфа), который невозможно использовать в комбинациях на родной клаве ноута!
Допустим, тут можно намаппить на что-то, что удовлетворит всех.
3. Для CAPS LOCK есть глобальная настройка, чтобы по нему быстро переключаться на английский и обратно. Только для одной кириллической раскладки настройка работает, а для другой игнорируется (и хули толку, что она глобальная) и капс работает как классический капс.
При этом капс в принципе работает только на внешней клавиатуре. На родной он делает непонятно что: я его какой-то тулой замаппил на какую-то хрень, но не помню, на что, когда и зачем лол )))
4. В Винде можно в настройках драйвера видюхи указать, нужно ли масштабировать графические приложения до актуального разрешения. В Макоси никаких настроек драйвера толком нет (эппл лучше знает, что тебе делать с ноутбуком, вообще отойди, чудовище, а то ещё что-то сломаешь), а потому как решить проблему на уровне ОСи, да ещё и для приложения, запущенного через вайн, мне пока непонятно. Но есть изящный солюшн: оказалось, что aspect ratio можно задавать на самом мониторе!
Сука, и это не какие-то прыщи 99-го года
Там же кретина, а игры от, например, парадокса от неё рыгают
на случай кретины
Прыщебляди соснули!
если в винде панель инструментов и прочего рисуется на всех доступных мониторах, то в маке док будет только на неком главном
больше туннельного синдрома богу туннельного синдрома
полагаю, это всё это твикается
альт таб все окна насквозь
альт тильда окна этого приложения
вин таб приложения насквозь
но это всё можно поремапить
а в чём вообще удобство?
альт таб окна текущего воркспейса
спейсы-десктопы есть, но переключение глобальное и настройки никакой по этому поводу не вижу
Super-1 Emacs
Super-2 Browser
Super-3 Консольки для локальных фоновых процессов, типа компиляции
Super-4 Файловый менеджер
Super-5 Консольки с SSH сессиями
Super-6-7 Прочая питушня
Super-8 Консольки, приаттаченные к инстансам симулятора какой-нибудь распределённой опердени в докере
Super-9 Мыло, чатики
Один аккорд моментально и, главное, детерминированно приводит меня к нужным окошкам. Alt-tab'ом или маковскими недодесктопами такой же скорости переключения окошек достигнуть невозможно.
Super-1 Emacs
Super-2 Emacs Browser
Super-3 Emacs Консольки для локальных фоновых процессов, типа компиляции
Super-4 Emacs dired
Super-5 Emacs Консольки с SSH сессиями
Super-6-7 Прочая питушня Emacs
Super-8 Emacs Консольки, приаттаченные к инстансам симулятора какой-нибудь распределённой опердени в докере
Super-9 Emacs Мыло, чатики
https://www.ixbt.com/news/2020/10/18/windows-10-linux.html
Я давно говорю, что гуйный десктоп плюс 100500 разных UI это просто адский даунгрейд и проеб времени
Воркспейсы - вообще неведомая хуйня какая-то. Почему-то только на главном монике переключается набор окон. А на втором всё как лежало так и лежит.
З.Ы. А, пишут что это твикается.
> иконки приложений
Ну таскбар, который с макоси спиздили. Странно, у меня он на обоих мониках, видимо я уже что-то накрутил.
просто опять-таки, например, CK2 на ретине отрисовывается с середины экрана и я в итоге даже не могу настройки поменять, потому что гении из Парадокса умеют только в мышку. EUIV вроде нормально отображалась, но на ретине UI очень мелкий.
В итоге или надо переключаться на меньшее разрешение, грубо говоря, 1x, тогда всё выглядит как говно из-за мыла. Или искать патчи, которые в конкретной игре скейлят UI.
Щас в крусайдерах есть настройка из коробки, но оно там просто увеличивает подложки с тем же жутким мылом по итогу, спасибо, я так могу сделать и без вас
Эм, а чем ретина в 1х отличается от обычного фуллхд?
приложение запускается в 1440x900
или разрешение ретины вообще не поддерживается, или рисуется с артефактами и т.п.
если бы всякое юнити не позволяло экспорт в один клик, то не только лишь все вообще стали бы заморачиваться
винда сама себя не поставит
ну или прыщи
ck2 на прыщах почти не тормозит, и имеет ту самую экспериментальную галку (вроде, ползунок), чтобы скейлить УИ на хайдпи
просто мой вендопека всё же помер, судя по всему, потому пока так
он скейлит интерфейс (иначе пипки и тексты в окошках слишком малы), а текстуры нормально выгледят, не как хуй
просто при движении карты видны артефакты божественной нвидии
но это даже в браузере такие проблемы, и в проигрывании видео с большим битрейтом, не только в игорах такое
их надо спецом рисовать для наибольшего разрешения и потом даунскейлить, а не, наоборот, маленькое непоймичто растягивать
даже на 1.05 там кровь из глаз. можно ещё поиграться, конечно, но смысл, всё равно гранд стратеджи на экране ноутбука это ё-моё
чот смогли же для KotOR 2 запилить поддержку HDPI, а там игра вообще 2005-го года
ты промахнулся
ну впрочем как и во всём остальном
Ну не правда... Там есть и проприетарная сборка под окаменелый редхат (не то чтобы это что-то меняло).
На свежих осях какие-то либы слишком свежие и несовместимые.
Такое говно конечно лучше в докере гонять
Из системного хардкора там разве что доступ к usb, а остальное - чистейшая прикладнуха. Пакет для синтеза, их ide для верилога, эклипс для сишки, симулятор для отладки и т.п.
потому что докера тогда не было?
на винде старые программы тоже часто хотели кучу сторонних либ (от nvidia, CRT, итд)
В целом вроде как уже понятно, что лучше всех делает го: вот тебе бинарник на 200 мегабайт, и работать он будет вечно (на линксе и винде конечно, про бзди не уверен)
Дистриб то не старый, они его обновляют регулярно. Просто тестируют только на окаменелом редхате, а на остальное им похуй.
у редхата время жизни безумное совершенно для опенсурса, по десять лет у них дистрибы поддерживаются, так что можно один раз написать, и не париться.
Это, кстати, одна из причин, по которой их иногда любит коммерческий софт.
Но в отличие от докера оно всё-таки более юзерфрендли, там не надо быть девочкой-собачкой чтобы образ развернуть.
Давайте форсить CoreOS?
а там же открытый апи, я могу свой стор поднять?
Не можешь
На гитхабе валяется полудохлый проджект альтернативного снапстора, ненужный.
Снап пока слишком не отторгаемо от каноникал
ну, это полная хуйня, конечно. Останусь пока с deb
Но всю ночь, напролёт, до зари,
Я читаю стихи проституткам
И с бандюгами жарю спирт.
Но всю ночь, напролёт, до зари,
Я читаю Стандарт проституткам
И с бандюгами жру boost::spirit.
https://govnokod.ru/27031#comment585019
https://govnokod.xyz/_27031/#comment-569749
https://youtu.be/VEGGkImOeyY
Профессор Хачикян это я
«@@ Пишу питон
@@ так что же делает index наверное что-то связанное с индексацией как в массивах
@@ ой»
С другой стороны, стертор мог знать, что я это замечу, а потому специально так отформатировать будагор, чтобы посеять во мне некие сомнения...
Но я больше склоняюсь к версии, что он просто не смог придумать что-то своё и спиздил такой формат
Лет десять назад несколько пользователей пытались использовать @ для обращения, как в «Твиттере», но не прижилось.
Ещё собачка тут использовалась для фраз типа «ВОРУЙ @ УБИВАЙ» (google: advice dog).
тупой пездюк
кто-нить что-нить понял?
Пер Сэр -> героический админ этого сайта
Что тут не понять?
>he described how a POC migration of his company’s API layer from Linux-based servers to an AWS Lambda/API Gateway architecture resulted in 15% slower performance and eight times the cost.
Какой serverless )))
Вопрос был в том что сервер или без сервера
aws вроде в хард лимит бюджета не умеет, максимум отправит письмо что ты проебался
жаль что теперь не могу найти, может мне это приснилось
http://www.seoded.ru/articles/hosting.html
Специалист описывает, кто и как может высосать у тебя все деньги через сервер:
«3. Фермы троллей. Забавно наблюдать, как тысячи живых людей (анализ их поведения говорит о том, что это не боты), словно по команде, прибегают на сайт с российских IP и начинают активно обсуждать президента США или губернатора Калифорнии. И это было бы смешно, если бы не осознание того, что на такие вот «проказы» в России тратятся миллиарды бюджетных денег. Вместо постройки больниц, дорог и школ»
«1. Парсеры. Какие-то школьники постоянно пытаются спарсить с твоего сайта какую-нибудь информацию и сделать свою поделку, чтобы заработать 3 цента на тизерной рекламе. Поскольку эти парсеры, обычно, работают достаточно топорно, то подобный сбор данных с сайта может моментально его «перегрузить» (так как программа-парсер начнёт открывать по 1000 страниц в секунду). По факту, получается полноценная DDoS-атака»
И ещё там что-то про майнеры, не влезло в 2000 символов.
Обожаю такой аутентичный стиль изложения мыслей.
«Десятки злоумышленников ежедневно пытаются урвать от вас кусочек и получается ситуация, когда вы, внезапно, можете получить счёт в 10 или даже 50 раз выше привычного. Мне известны случаи, когда людям даже приходилось банкротить компании, после того, как с ними происходила подобная «неожиданность». Забавно, что системы защиты от «ддоса», троллей и прочего — тоже «облачные». И тоже рассчитывают стоимость по факту потребления трафика, который пришёл к вам на сайт за месяц. Так что, даже система защиты может точно так же обанкротить вас или вашу компанию»
Какой багор )))
Ну а что, казино всегда в выигрыше!
А на говнокоде его нет (((
Нужно пригласить, чтобы он из добродушного SEO-деда превратился в SEO-Царя
Именно поэтому я за «VPS», «iptables» и «fail2ban». Купил фиксированное количество ресурсов — и за последствия кривого администрирования отвечаешь исключительно доступностью сервиса, а не десятками тысяч долларов. В облака стоит улетать только тогда, когда убытки от пары часов простоя сервиса будут приближаться к этим самым десяткам тысяч долларов.
P. S. Вспоминается занимательная история о том, как в «Гугл.Документах» можно было создать таблицу 100500*100500, в каждую ячейку записать что-то вроде «=url(example.com/green_elephand_4K_HD.avi)» и наблюдать за охулионом гугл-ботов, старательно скачивающих заданный файл. Какой-то наивный лох неразобравшийся гражданин так влетел на десяток тысяч долларов от «AWS».
А зато вот есть у тебя такой сайт, на котором обычно 40 человек, но после распродажи четыреста тысяч в течение дня, а потом снова сорок
как ты это решишь vpsом?
Более того, если архитектура магазина изначально не заточена под горизонтальное масштабирование а-ля «AWS» (а как ты понимаешь, 95% мелких магазинов написаны ротоёбами в файле magazin.php и горизонтально масштабироваться не могут в принципе), то покупка сервера помощнее™ становится вообще единственным вореантом.
А про архитектуру я согласен: нужно отдельно деплоить стейтлесс фронты, и тогда их можно плодить пачками, и так же быстро убивать
Я просто жал кнопочку "временно добавить ресурсов" и тёк. По сути на vps только увеличение диска необратимо.
Ну а рост с 40 на 400кк - это какая-то фантастика из рекламного буклета облакоёбов, имхо.
у тебя это в рамках одной ОС не проскейлится, раком станут все процессы и порты кончатся же
>фантастика
ну 3к в 30к на моих глазах превращалось
З.Ы. И в случае с aws ты скорее всего останешься без магазина, а не без клиентов.
Дык самый обычный DO. Надо было что-то скомпилить или обработать - тупо добавлял проца и оперативки в один клик.
Ну это даунтайм на пару минут, конечно, пока миграция работает. Облако в этом отношении лучше.
А тут надо ОС госить, добавлять проца, и опять таки у мосштабирования "вверх" есть лимит, а у масштабирования в бок -- нету
fxd
При переходе с 3к до 30к? Сомнительно, разве что приложение написано анскильными макаками (но тогда «AWS» тебе никак не поможет). Порты так точно не кончатся — они на сервере вообще кончиться не могут, если ты исходящие соединения не делаешь.
Но и без портов один процесс заебеца обслуживать кучу людей: каждому клиенту придется ждать весьма долго, пока до него дойдет очередь
Именно поэтому я за «микросервисы» и «юникс-сокеты».
> каждому клиенту придется ждать весьма долго, пока до него дойдет очередь
Купи ротоёбский сервер на 100500 процессоров — и не придётся.
я тоже, но питухи в них не могут.
Посмотри туториалы. Питухи ходят через "TCP" даже в postgres на своей машине, даже в postfix ходит в OpenDKIM через TCP.
>ротоёбский
Это правда.
Но Ротоеб за нее все время платит, а не тока во время распродаж
Ну это проблемы питухов. «NGK» тоже по «TCP» к локальной базе подключается 🙁
> Но Ротоеб за нее все время платит, а не тока во время распродаж
Оптимизация Ротоёба!
Просрали все полимеры! У меня через юникс сокет было (вроде).
Подтверждаю, кстати. Если в магазин, который рассчитан на сорок посетителей в день, внезапно свалится четыреста тысяч — боттлнек будет далеко не в сайте.
Это не посетители в день и не реальные заказы, это просто бешеная толпа ботов, ждущая начала распродажи и нетерпеливо рефрешащая сайт, чтобы урвать себе что-то по скидке.
Т.е. это именно резкий всплеск на несколько минут, который ложит сервер.
З.Ы. На твиче одно время банили за F5, лол.
А, ну так это вообще решается грамотным кэшированием. Статику кэшировать вечно, динамику совать в какой-нибудь «memcache» или что там сейчас популярно с протуханием в минуту — и вуаля, миллионы хомяков могут хоть обжаться своими F5, «nginx» их спокойно обработает даже на днищемашине.
Какой O(n) багор ))))
https://medium.com/madhash/how-not-to-get-a-30k-bill-from-firebase-37a6cb3abaca
Именно поэтому я против автоматического масштабирования. Ну хоть какие-то лимиты на запросы в секунду (или что там оценивается в этих ваших облаках) можно выставить?
Если ты покупаешь запровиженные ресурсы то имеешь фикс прайс за час или неделю или месяц(впрочем они тоже могут самоапгрейдиться)
Если serverless то там обычно во всяких тугриках считают потому что подразумевается что скейлиться можно бесконечно
Лимиты какие-то есть но везде по-разному а одной кнопки "ничо не делать если билл больше Х" нет
чем ты анскильнее -- тем у тебя всё медленее и дороже
если ты настолько анскилен, что вообще не хочешь даже виртуалку трогать, то соси тунца
Приходится платить или деньгами, или временем
Плюс ещё облачная хуйня защищена от самых дебильных атак по дефолту
> влетел на десяток тысяч долларов
> пришел счет на $25k
> что обанкротило его стартап
Какая защита дефолтом ))) Нет стартапа - нет атак.
Они и разрабам наверное мало платят
Но неужели там весь топик залипает и пересчитывает кому раздать партишены когда консюмеры приходят и уходят?
> одна consumer group
Ну это не так фатально. Только их говнище и трешилось, по сути. Мне почему-то после беглого чтения казалось, что весь топик колом стоит во время ребаланса.
дорго, медленно, зависишь от админов и для тупых анскилябров
Ну так. Я всегда говорил, что serverless — это миллениалы открыли shared hosting.
> Ну это не так фатально.
Выборы лидера группы и распределение ролей идёт через особый служебный топик в кафке, его засирать не очень рекомендуется.
Про эту часть я не в курсе.
Хм, я правильно понимаю, что оффсет хранится либо где-то у самого потребителя либо в специальном топике для уже обработанных оффсетов?
Скорее нет, чем да. В теории compacted topic очень похож на key-value storage, но использовать его для чего-то серьёзного — вряд ли хорошая идея.
> Или она больше для временных данных?
Как лог ивентов/транзакций хорошо подходит, ну и как pub/sub, в зависимости от того, нужен ли строгий порядок событий.
> More than 80% of all Fortune 100 companies trust, and use Kafka.
- все в мире знают пашу дурова и кафку
(или вообще никакие не хранит)
"It's java, give it enough heap", как у них в доке написано? Или ещё какие-то проблемы есть?
Мой коллега парсер/кодогенератор написал, но это тяжко, конечно.
> Не ожидал такое увидеть в 2020.
Доки протокола версии 0.9: "ну у нас же не 100 типов сообщений, зачем с какой-то схемой заморачиваться, всё ж и так понятно". Протокол версии 2.0: "у нас 100 типов сообщений".
как раз сейчас видел как йажапитух написал класс чтобы замапить в него json
Ну кстати норм тема. Зашёл в приватной вкладке - получи всю историю с нуля.
Какой event sourcing )))
Потому если все петухи кукаречат, что FOO устарел, а теперь нужно использовать BAR, то это совсем не значит, что действительно нужно.
Вполне может быть, что свинья хрюкнула на какой-то конфе, и все обезъяны повторили, как попугаи
Именно поэтому я за «Cloudflare».
аналогия не работает
у тебя открытое readonly апи и каждый может получить всё, что хочет. чего тогда бояться MitM?
- какие-то циферки
> что ты искал
- там же гет-запрос с квери. чем тут поможет https?
Request method:GET
м?
Ты же не думаешь, что шифруется только тело запроса?
как говорится, учиться никогда не поздно))
Потому что в HTTPS поддержка шифрования неявная: клиент сразу начинает говорить на TLS, а сервер сразу это знает, и им не нужно явно друг у друга это просить.
В некоторых других протоколах поддержка шифроваия опортунистская: нужно подцепиться по plain text, убедиться, что другая сторона поддерживает такое шифрование, и сказать STARTTLS.
SMTP*, IMAP, FTP, POP to name few
*правда, у него есть и неявная тоже, на спец порту, но это только для mua
Очень странный язык. Может быть унылым шаблоназитором, джаваскриптом или лиспом?
Сочитание шаблонной ипостаси с линком меня испугало.
Не хотел бы я увидеть в коде
В целом же завоз JS, шаблонизатора и linq в .net это хорошо
но лишп-то!
можно ограничивать типы, с которыми может работать движок скриптования
интегрируется элементарно
умеет вроде даже в базу лазить
Интересно, почему именно лисп?
ну и они взяли вроде уже готовый движок
Советую шифровать одноразовым блокнотом: его точно никто не расшифрует
Список, разумеется, не исчерпывающий, а только самый базовый.
md5 от аргументов запроса и секретного ключа, лол. Я сейчас серьёзно.
Закопайте.
https://github.com/corkami/collisions
>>> TL;DR getting an MD5 collision of these two images is now(*) trivial and instant.
Вот pre-image завезут - тогда начнут закапывать. Collision в данном контексте погоды не делает.
Т. е. подбирать файл под готовый файл (под готовую сумму) ещё не научились. Научились только генерировать пары с одинаковой суммой (т. е. шаманить нужно с обоими файлами).
там вычислялся секрет от ключа и какого-то хедера, который типа неизвестен хакиру))
Если на сайте «SNI» (как у «Cloudflare», например — да и вообще у любых сайтов, где на одном IP несколько хостов есть), то «COPM» залоггирует, что ты в такое-то время подключался к домену allahu.akbar.smert.nevernym.example.com.
Но и даже без «SNI» «COPM» может логгировать, что клиент X во время t подключился к сайту с IP 1.2.3.4. Если этот IP принадлежит российским конторам — дальше можно тривиально спросить их, что такой-то клиент в такое-то время у них делал.
это была черезжопная замена апикею
Тут всё равно нет закрытых тем, нет лички, все обсуждения доступны поисковикам.
Поисковые запросы — это капля в океане информации, которая погоды не делает.
Защита пользовательской информации — это принципиальный вопрос, а не частный. Шифроваться должна вся информация пользователей, вне зависимости от того, насколько ценной она видится лично тебе. Получаешь запрос от пользователя — он должен быть зашифрованным. Всё.
Придет на говнокод, например, миллиардер, и использует в качестве ника фамилию своей любовницы.
Сотрудник провайдера это дело просечет, и будет его шантажировать, обещая рассказать всё его жене.
А виноват будет гост
чудак раскрыл sensitive data по незащищённому каналу
купи сейф без задней стенки и обвини продавца в том, что у тебя деньги спиздили
> чудак раскрыл sensitive data по незащищённому каналу
В том, что гост не обеспечил защищённый канал, конечно же.
если ты не писал в буклете, что у тебя защищённое соединение, а на деле его не было, то нет никакой вины
в данном случае это ничем не отличается от политики крупного IT-бизнеса, который уже настолько привык "думать за пользователя", что не представляет, как может быть по-другому
В том-то и дело, что если я не держу своих пользователей за говно, то именно что должен. Банальное уважение же.
и не просто реализовывать, а реализовывать до того, как хотелка будет озвучена, ведь ты же лучше знаешь
"это всё ради вашей безопасности" аргумент от которого тошнит(
Законы моей страны позволяют мне без предупреждения записывать мои телефонные разговоры и свободно публиковать их, если в них не содержится ПД/коммерческой тайны собеседника. Поэтому я могу полностью легально выкладывать свои разговоры куда-нибудь на «Ютуб», и мне за это ничего не будет. Но с точки зрения собеседников, разумеется, я буду выглядеть тем ещё пидором.
С «HTTPS» — та же самая ситуация: ты совершенно не обязан обеспечивать конфиденциальность пользовательских данных (если они не ПД, правда), но если ты этого делать не будешь — тебя будут считать пидором.
когда там будет полноценный w/r, у меня появится хотелка по поводу приватности
а пока ты получается подумал за меня, причём несколько раз
развитые общества уже запретили HTTP? если нет, то когда ждать?
> развитые общества уже запретили HTTP?
Ты удивишься, но да, подвижки в этом направлении есть. «GDPR» требует, чтобы ПД пользователей передавались исключительно в зашифрованном виде (https://ico.org.uk/for-organisations/guide-to-data-protection/guide-to-the-general-data-protection-regulation-gdpr/security/encryption/#transfer). Если где-то видишь, что твою почту послали HTTP-запросом — можешь смело жаловаться в «DPA».
Передачи всей информации по «HTTPS», к сожалению, пока не требует.
не, ну я в чём-то согласен: зачем давать какому-то уёбку читать нашу переписку беспрепятственно, если можно её передать защищенным способом и потом продать тому же уёбку уже за деньги? вот где она оказывается, недополученная прибыль-то
> GDPR
- шо мне тот лдпр, я не гражданин священной римской империи
> шо мне тот лдпр, я не гражданин священной римской империи
Ну а я о чём? В России до сих пор не могут определиться, является ли номер телефона ПД, а ты про какие-то хттпсы.
Недавно ж хохма была, когда мэрия Москвы заявила, что «телефон + номер машины + номера всяческих карт» — это не ПД, а юристы говорили, что ПД. Или как какой-то магазинчик, кажется, «Роскомнадзор» оштрафовал за то, что IP-адреса посетителей (только IP-адреса) не в России хранились.
> В России
- дело ж не в России. емнип gdpr касается только граждан Евросоюза. то есть наши с тобой данные никто никак дополнительно защищать не обязан, потому что мы эти самые дикари
Именно! Наши данные защищать обязаны законы России, но пока что, к сожалению, выходят только пакеты Яровой, Роскомнадзоры и вот так: https://habr.com/post/461011/.
> Роскомнадзор не считает утечку сотен тысяч учетных записей клиентов Ozon нарушением прав пользователей
> Представители Роскомнадзора заявили, что компрометация около 30 тысяч аккаунтов клиентов онлайн-магазина Ozon не привела к нарушению прав пользователей. Об этом заявил Вадим Ампелонский: «Поскольку потока обращений клиентов Ozon в уполномоченный орган мы не зафиксировали, Роскомнадзор считает, что факт компрометации 30 тыс. клиентских аккаунтов не привел к фактическому нарушению прав субъектов персональных данных».
Правила криптографии помнишь?
* невозможность изменить данные
* невозможность прочитать данные
* невозможность отказаться от факта посылки
ничто из этого не выполдняет base64, следовательно криптографией не является
Если я вместо ключа «ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm nopqrstuvwxyz0123456789+/», который написан на каждом заборе, буду использовать другой, я смогу это считать криптографией?
ясно-понятно
security: livejournal.com did not encrypt this message Learn more
Куда, говоришь, писать?
https тут, правда, не причем
Ну, это если ты житель страны первого мира, конечно. В России можешь написать в «Спортлото».
И запретили сайты с HTTP?
Вот если бы развитые общества ввели обязательный школьный предмет "безопасность в Интернете" на которых бы рассказали всем, что как только ты вводишь что либо в сайт, ты передаешь сайту эти данные, и он может их спиздить, то было бы хорошо.
Так же было бы хорошо, если бы на этом уроке объснили что такое HTTPS (без технических подробностей), и что не стоит доверять пидарам, которые настолько ленивы, что даже не могут включить HTTPS, то это тоже было бы классно.
А обязывать всех писать про куку это фигня какая-то кмк.
Хотя штрафовать, серьезно штрафовать за утечку данных тоже нужно.
Потому что если ты не в состоянии нанять нормальных программистов, а нанимаешь дебилов с SQL инъекциями и плейнтекстовыми паролями, то тебя надо нахуй из бизнеса гнать
Уважение приватности пользователя, к счастью, потихоньку становится нормой (см. «GDPR», например — охуенная инициатива, хоть и с кривой реализацией), глупо его игнорировать.
Имхо, с точностью до наоборот.
GDPR примерно такое же имеет отношение к уважению к пользователю, как конституция к реальным правам граждан.
Самые популярные сервисы пиздят твои данные, продают их налево вместе с телефоном, который они от тебя требуют, да еще и сообщают всем о твоем статусе.
А если у тебя возникает подозрение, что владелец сервера сливает твои данные (есть, например, хорошая практика — выделять для каждого сервиса отдельный почтовый алиас и смотреть, какой пидор тебя сдал в спам-базы; у «Гугла» это делается простейшим плюсиком) — ты можешь этими подозрениями поделиться с дядями из «Data Protection Authority» твоей страны.
Ну или не можешь, если твоей стране поебать на твои данные.
У пользователя ничего не должно тормозить. А ебучая «GDPR» (ебал в рот мамашу того, кто её придумал) заёбывает своими ебучими баннерами.
А иллюзия безопасности хуже отсутствия безопасности.
«HTTPS» тормозил разве что лет двадцать назад. В настоящее время, к счастью, миллисекунды оверхеда от «HTTPS» заметить способны только роботы.
> заёбывает своими ебучими баннерами
Это проблемы реализации, а не идеи. Если бы, например, заголовок «DNT» обязывал пидорасов уважаемых рекламщиков молча всё выключать в этих баннерах — было бы заебись. Но увы, на такое требование они слишком сильно верещали.
>> Самые популярные сервисы пиздят твои данные, продают их налево вместе с телефоном
Заеби их: , пусть платят миллионы штрафов.
они заплатят 20 лимонов штрафа, а продадут данных налево на 100 и ещё отполируют поднятием тарифов, чтобы "покрыть издержки"
Цель штрафов — создать условия, когда затраты на обеспечение приватности (в том числе недополученные доходы за продажу данных налево) будут меньше, чем объём штрафов, прилетающих за нарушения.
штраф отобьёт желание компании торговать данными? нет, если он не приведёт к её банкротству
в чём цимес?
Желание, может, и не отобьёт, а вот обнулить экономическую целесообразность он может запросто. Как и вообще любой вид штрафа.
>> Цель штрафов — создать условия, когда затраты на обеспечение приватности (в том числе недополученные доходы за продажу данных налево) будут меньше, чем объём штрафов, прилетающих за нарушения.
и всё равно это ничего не даст: для большинства фирм продажа ПД это не основной вид доходов, а приятный бонус. сегодня не прокатило, завтра прокатит, штош
Мне всего лишь понадобится хороший адвокат и десять лет жизни.
В нашем грешном мире телефоны по паспорту, а все сервисы от твиитера до порнхаба или по соцсети или по телефону (то есть опять таки по паспорту), и все борятся с куками при этом. Заебись адское нарушение прайваси: куки
Но это всё не повод отказываться от HTTPS, иначе кроме гуглов мой траффик будет студент-суппортер из провайдера читать, и нахуй оно, тащемто
Хороший адвокат и десять лет жизни тебе понадобятся только тогда, когда ты захочешь отсудить хрустящие зелёные бумажки себе лично.
Например:
У компании ПитухХуйваре украли 10 миллионов пользователей, и продали в даркнете
А потом с них ссудили один миллиард долларов
И или так: мне позвонили назвав ФИО якобы из сбербанка, а потом тех, кто слил мой телефон с фио, оштрафовали.
Публичные решения есть на https://www.enforcementtracker.com, там восемь штрафов больше десяти миллионов евро (а у неких «Marriott International, Inc» вообще отсудили больше ста десяти, как раз за «Insufficient technical and organisational measures to ensure information security»).
> И или так: мне позвонили назвав ФИО якобы из сбербанка, а потом тех, кто слил мой телефон с фио, оштрафовали.
Увы, законы о ПД, как и вообще культура приватности (как нам показывает этот тред), в России находятся в зайчаточном состоянии (ЕМНИП, даже чёткого определения «персональных данных» в законе до сих пор нет, лол), поэтому ты можешь только попытаться.
> в России нах
Напомните, в какой стране сидит "Телеграм", который бродкастит твой статус левым людям очевидно в рамках высокой степени приватности?
> Телеграм
Ну да, закон не совершенен. Взъёбнуть «Телеграм» бы не помешало.
- этот паттерн называется "делай добро и бросай его в воду"
Браузер схавает
например, что я за "ПХП"
И мое реноме будет испорчено
он про то, что его фронт палит не спиздилилилилии ли его домен
Команда SEND вместо MAIL: письмо отображалось прямо на экране терминала пользователя
Source routing: в адресе можно было указать точный путь до машины получателя:
@relay1,@relay2,user@final_dest
Двухзначные годы в датах
Использование номеров машин вместо доменов: user@#4
https://tools.ietf.org/html/rfc1
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года.
ЭВМ сами по себе никому больше не понадобятся, да и купить их никто не в состоянии. ЭВМ невероятно сложны в использовании и их нельзя доверить никому, кроме ученых-математиков.
Нет причин, по которым люди захотели бы иметь персональный компьютер у себя дома.
Я считаю, что OS/2 суждено стать важнейшей операционной системой и, возможно, лучшей программой всех времен.
Мы никогда не выпустим 32-битную операционную систему.
Если у тебя любой чих и пых вроде IP и дров ehci будет крутиться в юзерспейсе, то распухнет переключатель контекста от частого использования.
Идея бесконечно прекрасная, но совершенно нереализуемая на современном железе, как и всё прекрасное.
Есть конечно гибриды вроде XNU и WinNT, но это же наебка: "верхние" части этих пирожков (BSD и Executive соответственно) работают на том же самом кольце, не говоря уже о совершенно безумной хуйне тип терминалов в *nix и GDI в винде.
А вообще большой вопрос насколько это реально надо.
Адепты говорят, что ошибка и даже отвал реализации IP или драйвера видеокарты не приведет к падению системы и бсоду/кпанику, но нафига мне система, где не работает IP?
Реально надо, дрова же кривые. У меня вот сраный amd на винде регулярно рестартился, каждый раз из-за этого тыкать в reset было бы неудобно.
А падение и рестарт сетевухи ты вообще не почувствуешь.
З.Ы. Падение IP, конечно, посерьёзней будет. Остальные сетевые сервисы попадают и ребутнутся. Но тоже как бы не фатально.
Так то вон даже у видеокарт огромный кусок драйвера в юзермоде. И я бы не назвал их "медленными".
Железо нужно делать умнее, и прямо его программировать так, как ты своими шейдерами программируешь GPU.
В той статье про взлет и падение ОС тоже высказывалась такая мысль. Дескать, сейчас не 1981-й год, не нужно драйверу управлять головкой флопаря.
Вспомнил, как в древнем FreeBSD в юзермоде делали nat.
https://www.freebsd.org/cgi/man.cgi?natd
Пиздец быстро работало
Да почему... В ядре тебе надо быстро разобраться чей это кадр. А дальше всю реализацию дефрагментации пакетов, сокетов и т.п. можно уже внутри нужного процесса сделать. Самая тяжёлая и сложная часть вполне реализуема в юзермоде, имхо.
Просто никому не хочется этим заниматься. Отлажено и десятилетиями работает - не трогай.
Ну а ту же проверку CRC лучше на саму сетевуху сгрузить, да.
угу, а еще отфильтровать его если есть ebtables.
На самом деле сетевухи давно умеют даже вот такую питушню:
https://en.wikipedia.org/wiki/TCP_offload_engine
Кстати, о выносе.
Я же верно помню, что в самой процедуре прерывания стараются делать как можно меньше, а остальное запускают в DPC в винде, в Soft irq в прыще, итд?
То есть в теории вот эту вот "верхнюю часть" можно было бы и унести?
Вроде да, работа под высоким IRQL отзывчивость портит. Поэтому по-быстрому в регистры что-нибудь записать да в нужную очередь переместить.
Буфера для пакетов выделить прямо в адресном пространстве "IP драйвера". Пусть сетевуха и обработчик irq работают прямо с ними и взводят какой-нибудь ивент, когда что-то пришло или ушло.
Этот "IP драйвер" проснувшись разгребает буфера и составляет команды для ядра в духе "этот буфер отправь через eth0", "этот буфер отдай хозяину сокета 200", "это пустой буфер для получения пакетов из eth0" и т.п. Ну и дёргает какой-нибудь syscall чтобы ядро исполнило эти команды (либо через shared memory добавляет их в кольцевой буфер чтобы не дрочить syscall лишний раз).
Сразу станет можно писать хелперы на С++ с std и boost, лол.
>либо через shared memory добавляет их в кольцевой буфер
и ошибка в нашем хелпере все равно приведет к поломке ядра, охуевшего от мусора в памяти, да?
зы: поттеринг вроде предлагал выпилить из ядра подсистему tty в прыщах даже
Да не должно. Ядро же не должно совсем уж слепо доверять всему что там написано...
Тем, что сискол еще и копирует всё туда-сюда?
Или сама по себе инструкция для CPU доргая?
И кто будет эту шаред мемори читать? Специальный кернел воркер -- ядреный тред?
И вроде как читал, что проблема syscall именно в том, что он страшно боится упасть, и потому всё проверяет аккуратно, а иногда и себе копирует (видимо чтобы ты из другого треда не засрал там данные)
Ну кстати, винда с линухом, емнип, весьма экстремально работают, сохранив только минимум регистров, которые по сишному соглашению требуются. Поэтому никаких FPU или SSE по-умолчанию в драйвере юзать нельзя.
Проверки и копирования - да. Для больших буферов ещё маппинг со стороны ядра иногда нужен чтобы ты не отмапал.
Я представлял, что её будут читать другие ядра когда им нечем заняться. Ну и например увидев там команду "отдать хозяину сокета 200" сразу пойти исполнять тред, который спал на чтении из сокета 200.
Х.з. конечно как это технически сделать чтобы оно не трешилось от одновременной работы кучи ядер.
Или ip_helper сразу сиранет ему через shared_memory и пнет шедулера, чтобы его разбудили?
Как-то так, да. По сути tcp window расшарить между клиентом и драйвером tcp/ip стека.
Совсем zero-copy в недоверенной среде, наверное, не получится запилить.
Ну разве что микроядро. Ты ебанёшься всю ось пруфать)
А я вот только хотел тебе написать, чтобы ты бы форкнул ядро, и сделал бы свою реализацию tcp/ip в юзерленде например. Вдруг у тебя получится в итоге настоящее микроядро, и ты взорвешь мир?
Пламенем своей горящей жопы, разве что. Я думаю другие микроядра всё-таки не дураки пилили и они о чём-то таком тоже задумывались.
Кстати, Кирилл просил передать, что уж всякие mass-storge и прочие говноклассы в user-mode можно отлично реализовать, и вроде бы Windows даже умеет в UMDF для этого
Вирус `Mirai', кстати, имел свою небольшую юзерленд реализацию tcp поверх raw-сокетов. Это не микроведро, конечно, но тем не менее забавно.
на никсах вроде можно, но только руту
Ну да. С юзермодом же основная проблема не в том, что он сам по себе медленнее. Просто переключения адресного пространства и регистров между юзермодными тредами дорогие. Если ты за одно переключение контекста раскидаешь тыщу пакетов и разложишь их в очереди для других процессов, то никто на тебя не обидится.
Вообще как кристалы могут быть жидкими, когда кристаллы это такие блестящие прозрачные многогранные хуйни?
он жид кок ристалический
Они там за счёт поверхностного натяжения вроде держатся между стекляшками.
и защитный фильтр еще
А пятидюймовый гнеца
Угу, и вообще квадратный.
Ну вот, опять экономия на спичках. Почему просто не заплатить за нормальную память?
1) статическая
2) динамическая
3) нормальная
доведем шизу до совершенства
иначе в ад
???
Однажды я был на некой олимпиаде в офисе штеуда в Нижнем Говнороде. Было довольно мило, и как бонус тамошние сотрудники устроили Q&A. Один чел рассказывал про моделирование миграции дефектов в полупроводниках. Среди соревнующихся оказался чел с какого-то кораблестроительного или чего-то подобного, который поведал, что ему эта проблема знакома, т.к. он проходил дефекты гребных винтов, вызванные кавитацией. И спросил, как интел борется с кавитацией в процессорах.
Плавающей точки?
чтоб оседлать плавающего питуха, нам нужен корабел
теория корабля, вот это всё
Какие электронно-облачные технологии )))
У некоторых операционных систем процессы могут легко оторваться и улететь на третье кольцо соседнего компьютера.. транспортное кольцо Москвы
и из Степашек
Кстати, их когда-то называли "косые".
Поэтому последовательных было два, а параллельный - один.
В последовательном порту скорость данных будет одинаковая у всех, а в параллельном нет.
Скоолько данных втекло в дисекту, столько из нее и вытечет (или это Архимед сказал?)
а узкие штуки типа мыщки и модема включми в последовательный
а флегшки вообще мелкие, потому для них пришлось изобрести USB, потому что другие порты для них были крупноваты
выберите любой другой язык
Архимед
Поэтому она и называется "SRAM"?
И это позволило редхату наложить на гипервизор очень строгие политики. Чтобы даже при компрометации виртуалки из неё ничего не вылезло.
Есть еще всякие лулзы типа выделения памяти в неподкачиваемом пуле в винде, которую можно тагировать четырьмя буквами, чтобы потом понять чья она, лол
а сколько компьютеров лично ты продал?
Ковбой говорит другому ковбою: спорим, я за сто баксов съем дерьмо?
Ну поспорили, съел, получил сто баксов.
Второму охота вернуть свои деньги, и он говорит: спорим, я за сто баксов съем дерьмо?
Ну поспорили, съел, получил сто баксов обратно.
Первый говорит: Кажется, мы дерьма бесплатно поели.
А второй отвечает: зато ВВП страны увеличился на 200 долларов
ещё налог заплатите с доходов
физлицо получило доход, 13% заплати
причин принимать расход физлица к налоговому вычету я тут не вижу
А если я скажу, что я его для обучения и лечения юзаю?
да страйкер озолотится
--Видите ли, у нас и навоз -- говно.
что бы это не значило
Паскаль терпел и вам велел
https://govnokod.ru/27040
https://govnokod.xyz/_27040/
напомнило
https://vk.com/video161808586_168954311