The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик видео VP8, opennews (??), 28-Сен-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


87. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  –1 +/
Сообщение от Аноним (-), 28-Сен-23, 23:47 
> На хаскеле же всякие монады, функторы и прочая комбинаторика
> Это же для академиков, а их тут не любят! (как и BSD))
> иж чего яйцеголовые навыдумывали:
> pattern matching, guardы, алгебраические типы и еще куча всего другого...

...так что взяв чужой проект ты полгодика будешь этот брейнфак осмыслять, что именно там тот кодер наворотил вообще, и как это на самом деле работает. Кодинг задуманного тем временем подождет.

Или, можно вместо этого брейнфака и проектов на нем взять другой ЯП и - просто решить свою задачу. А проекты на хаскеле - живут ровно до тех пор пока единственному автору не надоест в них комитить. После чего они безнадежно дохнут, остальным просто не хочется лезть в крутые абстракции. Вот так можно зайти на противоположный полюс относительно питона - и это настолько дикая инверсия что конвергирует в той же точке что и питонопроекты. Т.е. нечто с периодом полураспада пару лет. Хотя механизм распада радикально другой :)

> то ли дело в родном си: напрограмячил кода, кастанул к void*, вышел out-of-bounds
> массива (и попортил соседям память), а потом его два раза free'шнул

Зато задача решена за разумное время, в код худо-бедно могут другие въехать, вулны, вот, какой-нибудь автосканер выловил, и оно по крайней мере - работает.

Ответить | Правка | К родителю #63 | Наверх | Cообщить модератору

88. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  +1 +/
Сообщение от фнон (?), 29-Сен-23, 00:00 
о боже, у нас тут очередной адепт тяп-ляп и продакшен?
ладно если ты пишешь код для программы которая одевает ботинок, ну выстрелит она пару раз в ногу

а если это криптолиба типа openssl? на которой держится пол интернета?
примеры хартблида никого ничему не научили?

или мейлсервер который стоит на 0.5 млн серверов
wait, oh shi...

Ответить | Правка | Наверх | Cообщить модератору

105. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  +/
Сообщение от Аноним (-), 30-Сен-23, 03:01 
> о боже, у нас тут очередной адепт тяп-ляп и продакшен?
> ладно если ты пишешь код для программы которая одевает ботинок, ну выстрелит
> она пару раз в ногу

Ну ты в своем праве писать кодек на этом брейнфаке. Посмотрим много ли ты напишешь и сколько людей сможет и захочет майнтайнить твой код. Или сам собирай его под 9000 дистров с бэкпортом патчей на их полиси и чего там еще.

> а если это криптолиба типа openssl? на которой держится пол интернета?
> примеры хартблида никого ничему не научили?

Научили: хорошее крипто должно быть простым и мелким, а сколько TLS не окультуривай, безопасным ЭТО не станет в принципе. При том - на самом концептуальном уровне. Ты точно всей этой шайке CA - "доверяешь"? Половина интернета держится на snake oil crypto, внезапно.

> или мейлсервер который стоит на 0.5 млн серверов
> wait, oh shi...

По моему проблемы Exim это не новость. Но вы можете дать мастеркласс оным. А, погодите, писать программы и тем более их майнтайнить годами - это не языком в форуме о крути очередного фетиша трындеть?! :)

Ответить | Правка | Наверх | Cообщить модератору

95. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  +/
Сообщение от Аноньимъ (ok), 29-Сен-23, 11:09 
Лолчто? Какой нафиг Хаскель брейнфак? В нём стандартно всё в принципе.

> ...так что взяв чужой проект ты полгодика будешь этот брейнфак осмыслять

А чужой проекте на сишке с 5 тысячей строк ифдефов вы типо за пять минут осмыслите?

Что делает:
*void process_data(data *void)

Сразу поймёте?

Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

106. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  +/
Сообщение от Аноним (-), 30-Сен-23, 03:06 
> Лолчто? Какой нафиг Хаскель брейнфак? В нём стандартно всё в принципе.

Ну вот такой. Стандартное состояние проектов на хаскеле - 1 кодер, изначальный автор. Зачем это опенсорс выкладывать вообще хз, все равно желающих это изучать и патчить обычно 0 оказывается.

> А чужой проекте на сишке с 5 тысячей строк ифдефов вы типо
> за пять минут осмыслите?

Да нормально осмысливаю и патчу вот. Тем более что ряд фиксов не требует понимания общей глобальной логики. И это все в том числе и благодаря отсутствию крутых абстракций, ага. Можно просто посмотреть, увидеть баг и - пропатчить. А ваш высокопарный полет мысли раскуривать - нафиг нужно. Для этого половину вашего мозга надо вгрузить и начать думать как вы. Это слишком канительно. На эти грабли плюсеры то через раз встают, до опытных допирает что так делать не надо и у них потом начинает получаться что-то одупляемое. А хаскелисты - каждый первый буквально танцует на этих граблях по максимум. Пока не свалится с синим лбом. После чего проект бесславно дохнет.

> Что делает: *void process_data(data *void)
> Сразу поймёте?

Просит автору в тыкву дать за такой стиль кодинга :)

Ответить | Правка | Наверх | Cообщить модератору

109. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  +/
Сообщение от Аноньимъ (ok), 30-Сен-23, 11:47 
Да, Хаскель программистов примерно в тысячу, если не больше, раз меньше сишников.
Поэтому конечно и участников проектов меньше. А вовсе не потому, что в Хаскель коде как-то особенно тяжело разобраться.

Да, есть тысячи заброшенных сишкопроеетов.


> сложение абстракции я не понимаю ((( зато сишка простая ))11

Да без комментариев пожалуй.
Если строгая типизация для вас неосилимая абстракция, то понятно в общем от чего в сишкокоде выход за границу буфера юсе афтер фри погоняет.

Ответить | Правка | Наверх | Cообщить модератору

111. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  +/
Сообщение от Аноним (-), 30-Сен-23, 13:45 
> Да, Хаскель программистов примерно в тысячу, если не больше, раз меньше сишников.

И к тому есть предпосылки: очередной академязычок не от мира сего.

> Поэтому конечно и участников проектов меньше. А вовсе не потому, что в
> Хаскель коде как-то особенно тяжело разобраться.

Чем круче абстракции, тем дольше в них въехжать и выше риск понять намерения предыдущего кодера неверно. Если суммировать идею MISRA вкратце: код должен быть написан так прозрачно и просто чтобы в нем могли разобраться даже амебы в пробирке. Тогда в нем и багов не будет. Потому что двуногий может не выспаться сегодня, его могут отвлечь, или еще какая фигня. И если он потеряет глубокий контекст, фигня получится.

> Да, есть тысячи заброшенных сишкопроеетов.

Лично я не знаю ни 1 полезного и интересного мне проекта на этом. Вот просто за всю жизнь ничего интересного не попадалось. Какая-то хрень где отшибленные кодеры страдают фигней. В этом плане какой-нибудь хруст - явно прагматичнее, нацелен на реальные проблемы реальных проектов. Хоть и являет собой за это свалку костылей.

>> сложение абстракции я не понимаю ((( зато сишка простая ))11
> Да без комментариев пожалуй.

Оно и видно.

> Если строгая типизация для вас неосилимая абстракция, то понятно в общем от
> чего в сишкокоде выход за границу буфера юсе афтер фри погоняет.

Да вы знаете, иногда я оверрайдом типов еще и пользуюсь. Представляете, у DMA автомата и парсера пакетов могут быть немного разные идеи насчет одного и того же блока данных на предмет того чем он является. В DMA я могу хотеть его рассмотреть как допустим пачку u32 вон там, а чем оно там на самом деле было - такой отдельный вопрос. Си в этом плане весьма разумный баланс, когда с одной стороны type check можно, с другой - можно и заоверрайдить если вот именно системный фокус стало надо.

А так вот именно системный и низкоуровневый - это Zig какой. Там вон и packed struct сразу штатно есть, и положить нечто в конкретную секцию - вот, пожалста. А этот ващ хаскель совершенно точно не замена си и не конкурент ему даже в проекте.

И да, вы знаете - в кодеке иногда тоже надо низкоуровневый контроль над происходящим. Скажем у SIMD есть довольно эзотерические требования по выравниванию блоков данных. А без SIMD не интересно - там скорость вот тупо в разы ниже, кому такой кодек упрется и зачем?! Представляете, там вон шарпей какой-то вещает, а так то кодек даже и на гольном си то мало кому упал, представляете? Пока его asm или simd intrinsic не обвесят у него перфоманс такой что это мало кому вообще надо оказывается. На libvpx бочку катили за медленное кодирование. На libaom катят. Первого немного подразогнали.

Ответить | Правка | Наверх | Cообщить модератору

112. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  +/
Сообщение от Аноньимъ (ok), 30-Сен-23, 14:54 
> Чем круче абстракции, тем дольше в них въехжать и выше риск понять намерения предыдущего кодера неверно.

Крутые абстракции упрощают вещи, а не усложняют.
Вы наверное гуишные приложения пишите тоже на голой сишке без крутых абстракций графических библиотек операционных систем и драйверов?

> код должен быть написан так прозрачно и просто чтобы в нем могли разобраться даже амебы в пробирке.

Это хреновый подход.
Код должен быть понятен не амёбам, не неграм с улицы, не трансгендерным специалистам по равенству.
Код должен быть понятен специалистам работающим с этим ЯП.

> Тогда в нем и багов не будет.

Это не так работает.

> Лично я не знаю ни 1 полезного и интересного мне проекта на этом.

А АБСТРАКЦИИ тут причём?

Вы вообще себе отдаёте отчёт в том, что в питоне куда больше "крутых абстракций, нежели в Хаскеле?
Но смотрите, держитесь, на питоне миллионы проектов от сложных корпоративных монстров вроде PyTorch до утилит в пару строк. И именно тот факт что абстракции позволяют писать в пару строк сложные вещи и делает питон таким популярным.
Так может не в абстракциях дело? Может они полезны и нужны, а?

А С++ что?
Вы представляете себе, С++ В РАЗЫ СЛОЖНЕЕ Хаскеля. Весь Хаскель умещается в десятке страниц, в то время как абстракции С++, крутые и навороченные, описаны в талмуде в 2000 страниц и их никто не знает целиком.
И что? Скажите на С++ никто не пишет ИЗ ЗА ТОГО ЧТО В НЁМ СЛОЖНЫЕ АБСТРАКЦИИ? Хотя они там абсолютно безумные и отвратительные. Но пишут, жрут кактус и пишут.

Ответить | Правка | Наверх | Cообщить модератору

113. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  +/
Сообщение от Аноним (-), 02-Окт-23, 06:45 
> Крутые абстракции упрощают вещи, а не усложняют.

Я видел что может получиться, спасибо. Потом никто въезжать в это не может или не хочет. Так даже плюсер зарвавшийся может удружить, а хаскелисты все такие, других не видел. Моя проблема? Закладываться на программы которые заведомые трупы - чревато.

> Вы наверное гуишные приложения пишите тоже на голой сишке без крутых абстракций
> графических библиотек операционных систем и драйверов?

Графические приложения не кодеки и там соотношения иные. Но я и таких на хаскеле нужных кому-то тоже не знаю. Поэтому посчитаю что теория не доказана практикой. Абстракции ради абстракций никому не нужны кроме автора.

>> код должен быть написан так прозрачно и просто чтобы в нем могли
>> разобраться даже амебы в пробирке.

...
> Код должен быть понятен специалистам работающим с этим ЯП.

Чем больше посмотрят, тем больше шансов что въедут что я на самом деле хотел. Может кто не очень крутой спец в ЯП, зато крут как алгоритмист или архитект? Тогда дадут мастеркласс на другом уровне. Более важном как правило. А если им надо вгрузить половину моего мозга и декодировать крутые абстракции, они забьют, им есть чем заняться без этого. А спец по яп - пустышка сам по себе, "эксперт по применению молотка".

> Тогда в нем и багов не будет.

Сказ о серебряных пулях и отсутствии багов это круто но так не бывает. Некий олд из локхидмартина дал как-то мастеркласс нубью вопившему про contracts. Найдя баг прям в контракте. А годный алгоритмист или архитект понявший что я на самом деле хотел может придумать как это в 20 раз проще и лучше. Придет ему озарение и покажет мне что я все переусложнил и закостылил, а можно то вот так было вообще. Если алго в 10 раз проще, без костылей и лучше работает - там и багов сразу в разы меньше. Почему-то.

> Это не так работает.

И типа у вас огромный опыт как оно? И чем это подтверждено? Проекты на этом - где?!

>> Лично я не знаю ни 1 полезного и интересного мне проекта на этом.
> А АБСТРАКЦИИ тут причём?

Крутые и нестандартные абстрации - 1 из известных мне способов эффетивного факапа проектов, ведушего к их загибанию ибо "1 кодер в проекте".

> Вы вообще себе отдаёте отчёт в том, что в питоне куда больше "крутых абстракций,
> нежели в Хаскеле?

Я отдаю себе отчет что у 90% проектов на питоне период полураспада - 1-2 года. И мне от питоняш ничего не надо, уж спасибки.

> Но смотрите, держитесь, на питоне миллионы проектов от сложных корпоративных
> монстров вроде PyTorch до утилит в пару строк. И именно тот факт что абстракции
> позволяют писать в пару строк сложные вещи и делает питон таким популярным.

Мне похрен. Для меня то что софт написан на питоне это вообще отличный повод им не пользоваться. Потому что в результате он потом создаст много проблем. И вон то только все усугубит. Да, жирнокорп может бухать сотни ресурсов в поддержку легаси и даже оплатить фултайм кому-то. А я не жирнокорп, и рабом жирнокорпа делающим какую-то НЕХ быть тоже не хочу.

> Так может не в абстракциях дело? Может они полезны и нужны, а?

Все хорошо в меру. Хаскелисты эту меру совершенно точно профачили. Питоняшам то корпы при помощи о314ливания азы прожектменеджмента доносят и если там кто попробует с абстракциями чрезмерно разогнаться - его не то что не уволят, он собес на прием в корпу не пройдет. Его лид какой или архитект рубанут как участника команды, понимая что есть иные соображения типа майнтенанса. Эти господа, кстати, стоят как звездолет. И на вас такой благодати не хватит. Так даже и питон - яп. Но с большими оговорками и характерный корпоративный шитец все равно получается. Я такой софт просто не жалую, как категория.

> А С++ что? Вы представляете себе, С++ В РАЗЫ СЛОЖНЕЕ Хаскеля.
> Весь Хаскель умещается в десятке страниц, в то время как абстракции С++,
> крутые и навороченные, описаны в талмуде в 2000 страниц

C++ бывает очень разный. От отличного читаемого кода - до полностью неадекватного кода который никто не хочет трогать 3-метровой палкой и который мастеркласс любому питоняше по гамнокодингу даст. Хороший спец по плюсам виден сразу. В том числе и простым читабельным кодом. Где абстракций так то в меру и по делу. А у долбоклюев абстракйия на абстракции и абстракцией погоняет, ввинчены абсолютно все "клевые фичи" - из "последнего стандарта" под рассказы о легаси и чем там. И ни на что не годный код в котором только автор и понимает. Более менее крупные корпы кстати тоже в курсе - и шлют таких туда же куда и питоняш склонных к гону, по той же причине. Эти господа собесы тоже не проходят. Не нужны тимам проблемы.

>> и их никто не знает целиком.
> И что? Скажите на С++ никто не пишет ИЗ ЗА ТОГО ЧТО В НЁМ СЛОЖНЫЕ АБСТРАКЦИИ?
> Хотя они там абсолютно безумные и отвратительные. Но пишут, жрут кактус и пишут.

Вопрос не в абстракциях ЯП - а в том с чем я столкнусь в "этом проекте". Если это хаскел, 99% вероятности что там парад брейнфарта. Не, простите, мне реально не интересно вгружать ваш супер-кастомный стиль мышления чтобы изучать как вы можете левой пяткой, с заподвыподвердом, картину на стену повесить блин. И плюсы хороши в основном тем что есть мощные кодеры способные к teamwork и софт деланый ими. Да, далеко не все так могут. Но - они есть. В отличие от хаскелистов.

Ответить | Правка | Наверх | Cообщить модератору

115. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  +/
Сообщение от Аноньимъ (ok), 02-Окт-23, 10:35 
В каком этом проекте?
Вы же хаскеля не знаете, откуда вам знать брейнфарт там или не брейнфарт вообще?

> Все хорошо в меру. Хаскелисты эту меру совершенно точно профачили.

Ну например, где они перешли черту? Приведите пример той самой чрезмерно сложной и крутой абстракции хаскеля.

Ответить | Правка | Наверх | Cообщить модератору

116. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  +/
Сообщение от Аноним (-), 02-Окт-23, 12:05 
> В каком этом проекте?

Да в какой ни ткни - будет зубодробильный контринтуитивный код. Для меня это жирный минус ЯП. И даже если он очевиден какому-то хаскелисту - ну, круто, я рад за них, мне то с этого чего?

> Вы же хаскеля не знаете, откуда вам знать брейнфарт там или не
> брейнфарт вообще?

А я и не обязан учить бесплезный хлам на котором ни 1 убедительного проекта нет, с каким-то отшибленным синтаксисом и перекосом на парадигмах вместо решения задач. Мне вообще системное и относительно низкоуровневое программирование нравится. Хаскель совершенно точно не про это.

>> Все хорошо в меру. Хаскелисты эту меру совершенно точно профачили.
> Ну например, где они перешли черту? Приведите пример той самой чрезмерно сложной
> и крутой абстракции хаскеля.

Для меня критерий прост: если мне не очевидно что делает этот код - это хреновый код. Икслючение разве что крутые сложные алгоритмы, но там обычно у меня проблемы с пониманием именно самой математики, которая бывает весьма специализированная.

А так как пример: однажды меня сильно приперло. И я продирался сквозь довольно крутые и многоуровневые абстракции плюсера. В конечном итоге я загасил баг, потому что отступать было некуда. Но времени на это я убил в 50 раз больше чем я бы в проекте на сишке то же самое сделал бы. Поэтому по итогам я констатирую что такой код майнтенансу не подлежит. А в какой бы код на хаскеле я не совался - интуитивным и простым в понимании это не выглядело, там вот как раз те самые антипаттерны в ходу. Я вам не питоняша, и не испытываю никакого желания разгадывать ребусы с лямбдами, монадами и прочим добром.

И еще. Для меня самая забойная фича сишки это портабельность. Можно отладить алго на компе под тяжелой инструментацией типа профайлеров и ubsan/asan - а потом на мк с парой кило оперативы и несколько кил флеша 1 в 1 загнать. Это очень круто. Это позволяет масштабироваться. И взаимодействовать с своим кодом в разных ипостасях. И это точно не про хаскел. В эту нишу имеют шансы вписаться Rust, Zig, Hare может быть. Поэтому для Zig я даже смогу назвать несколько симпатичных мне фич, хоть я его и не практикую (пока?). А хаскель для вот лично меня - бесполезный артефакт не от мира сего. Если кто еще не понял, кодеки это довольно специализированный аспект с мощнум заходом в нижний уровень. Для оптимизации перфоманса, использования SIMD и проч. Это не ваша "очередная апликуха". И там другие соображения и соотношения ценятся. Если вы будете libaom кодировать в чисто сишном коде - ВЫ ОПУПЕЕТЕ. Вам никаких процов не хватит. И на первое место выходит мощная оптимизация, иначе возможности формата окажутся не раскрыты - и зачем тогда весь этот трах был в таком объеме с изобретением нового формата, его внедрением в железки и проч?! Надеюсь это отвечает на вопрос почему никто не будет писать кодеки на хаскеле. Если вы хотите высокие абстракции - вам вот этот топик явно не был важен. Иначе были бы иные идеи на этот счет.

Ответить | Правка | Наверх | Cообщить модератору

117. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  +/
Сообщение от Аноньимъ (ok), 02-Окт-23, 13:12 
>А я и не обязан учить

Нет конечно, но если вы не знаете Хаскеля, как вы можете делать выводы о крутости его абстракций и доступности кода для понимания?

>Для меня критерий прост: если мне не очевидно что делает этот код - это хреновый код.

Я уже понял это.
Китайский вы не знаете - значит это хреновый надмозго язык со сложными абстракциями?
А нотную грамоту вы знаете?
Системы записи химических формул? Язык электронной схемотехники?
Мне кажется, очень странным, определять хреновость чего-то его очевидностью для лично вас, особенно в свете того, что мир вообще-то невероятно сложная штука.

Но вы сделали 2 глобальных утверждения ранее.

1. В Хескеле очень сложные и недоступные пониманию среднего программиста в вакууме абстракции.
2. На Хаскеле никто не пишет из за этих сложных и недоступных абстракци.

По пункту 2. Я привёл вам при мер с С++ с сложными жуткими и безумными абстракциями, на котором пишут и очень много. То есть, ваше утверждение не подкрепляется практикой, которая мерило истины.

Вы привели контр аргумент заключающий в том, что эти абстракции можно не использовать, и "правильные" программисты их не использую. Но это апелляция к истинности - https://ru.wikipedia.org/wiki/Ни_один_истинный_шотландец
Я же утверждаю, что эти абстракции используются в стандартной библиотеке C++, и в общем случае использовать С++ без них невозможно, так как вся логика кода и шаблоны проектирования строятся вокруг этих абстракций.

По пункту 1. Я прошу вас привести пример сложной абстракции языка Хаскель, чтобы понять о чём вы вообще говорите, и что вы называете абстракцией в данном контексте.

Ответить | Правка | Наверх | Cообщить модератору

118. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  +/
Сообщение от Аноньимъ (ok), 02-Окт-23, 13:15 
> Для меня самая забойная фича сишки это портабельность.

Нет у сишки никакой портабельности. Типы инта могут быть какие угодно между платформами например. И всё. И это самое малое как бы из не портируемого.

> а потом на мк с парой кило оперативы и несколько кил флеша 1 в 1 загнать.

И на этом МК есть только int8. Удачи.

Ответить | Правка | К родителю #116 | Наверх | Cообщить модератору

119. "0-day уязвимость в Chrome и libvpx, затрагивающая кодировщик..."  +/
Сообщение от Аноньимъ (ok), 02-Окт-23, 13:24 
>разгадывать ребусы с лямбдами, монадами

Лямбды - концепт которому лет 50 минимум. ВСЕ программисты буквально и не только знают о нём, и успешно применяют. В некоторых спец областях это может быть лишним конечно, но тут нужно проводить исследования, это совсем не очевидно.

Монада:
https://en.cppreference.com/w/cpp/utility/optional
https://habr.com/ru/articles/372103/
Просвещайтесь.

Ответить | Правка | К родителю #116 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру