После выхода Linux 3.8-rc1 стали поступать жалобы (https://lkml.org/lkml/2012/12/23/48) пользователей о зависании PulseAudio при использовании нового тестового выпуска ядра. Проблема стала появляться из-за использования в ioctl uvc_* кода ошибки "-ENOENT", вместо "-EINVAL". Mauro Carvalho Chehab, мэйнтейнер подсистемы V4L2, указал (https://lkml.org/lkml/2012/12/23/53) на то, что проблема скорее всего является следствием ошибки в PulseAudio, так как программа не поддерживает обработку кодов ошибок, отличных от "-EINVAL". Mauro также упомянул, что непонятно зачем звуковой сервер пытается использовать V4L2 функции uvc_ctrl (USB video device), которые предназначены для иных целей (управление видеоустройством, таким как web-камера). Поэтому, по мнению Mauro, данную проблему следует решать в PulseAudio и она не является регрессивным изменением в ядре.В ответ на подобные заявления, Линус Торвальдс в достаточно грубой форме устроил (https://lkml.org/lkml/2012/12/23/75) мэйнтейнеру показательную "порку", подчеркнув, что главным правилом разработки ядра является недопустимость (http://www.opennet.me/opennews/art.shtml?num=34738) нарушения (http://www.opennet.me/opennews/art.shtml?num=34729) работы компонентов на стороне пользователя. Линус упомянул, что ему отдельно поступила жалоба на нарушение работы мультимедийных компонентов KDE при использовании ядра 3.8-rc1 и он страшно недоволен тем, что патч с решением проблемы был отправлен сторонним разработчиком и он сам был вынужден внести его ядро, в то время как ответственный за проблемный код мэйнтейнер пустился в дискуссии о том, что это не проблема ядра.
По словам Линуса, если какое-то изменение в ядре приводит к нарушению работы пользовательских приложений, то это сразу следует воспринимать как ошибку в ядре. По поводу изменения кода возврата Линус указал на то, что ошибка в коде ядра налицо, так как код ENOENT неприменим в ioctl для управления уже открытыми файлами, он ассоциируется только с манипуляцией с путями и всегда означал отсутствие искомого файла или директории.
URL: http://developers.slashdot.org/story/12/12/29/018234/linus-c...
Новость: http://www.opennet.me/opennews/art.shtml?num=35719
>что непонятно зачем звуковой сервер пытается использовать V4L2 функции uvc_ctrl (USB video device), которые предназначены для иных целей (управление видеоустройством, таким как web-камера).Что непонятного? Поттеринг же.
Представляю сколько костылей забили в ядро что бы работала SystemD
> Представляю сколько костылей забили в ядро что бы работала SystemDВ данном случае костыль забил именно майнтайнер. Он упоролся, с чего ради ENOENT после открытия файла вообще? Где логика???
> В данном случае костыль забил именно майнтайнер. Он упоролся, с чего ради ENOENT после открытия файла вообще? Где логика???Когда костыль забивейт мейнтейнер - виноват все равно поттеринг.
И это не шутка.
> И это не шутка....да, это не шутка - это уже поттерингофобия, это лечить надо :)
> Когда костыль забивейт мейнтейнер - виноват все равно поттеринг.В данном случае виноват другой шляпник -- тот, который ядро ломать полез.
Впрочем, хрен редьки не слаще :(
> Представляю сколько костылей забили в ядро что бы работала SystemDАга. cgroups, autofs, timerfd, почти вся логика работы с устройствами, даже планировщик процессов - без всего этого SystemD не заработает.
>> Представляю сколько костылей забили в ядро что бы работала SystemD
> Ага. cgroups, autofs, timerfd, почти вся логика работы с устройствами, даже планировщик
> процессов - без всего этого SystemD не заработает.И главное - все это никому не нужно. Ну, если под "всеми" подразумевать доблестных борцунов с SystemD. Из-под винды хорошо проповедовать о ненужности фич линукса.
> И главное - все это никому не нужно.это не нужно только аналитикам опеннета. Для справки, все эти фичи в ядре уже очень давно и ими пользуются.
> И главное — все это никому не нужно. Ну, если под «всеми»
> подразумевать доблестных борцунов с SystemD. Из-под винды хорошо проповедовать о ненужности
> фич линукса.и только фанбои системд твёрдо уверены, что без системд эти фичи использовать никак невозможно. и была пустота, и духи юзеров парили в ней. но тут пришёл Портеринг — и создал мир, и сказал: «живите и размножайтесь, дети мои, ибо из пустоты небытия создал я этот мир для вас.» да-да, всё так и было.
Вообще-то существуют вебкамеры с дебильно присобаченным микрофоном прямо внутри. Рекомендую, например, ознакомиться с ассортиментом Logitech... Хотя лучше не стоит, они убогие.
А на мой взгляд наоборот они хороши. По крайней мере пачка тех, что с надписями driver free. Никаких установок драйверов и плясок с бубном. По крайней мере в linux, хотя говорят что и в венде всё работает. Картинка нормальная, звук нормальный, насколько это может быть нормальным для вебкамеры.
В отличие от какого нибудь genius который работает только со своим драйвером который написан только под winXP. В таком случае там хоть какая качественная картинка и оптика — оно не работает.
Вам бы к преподавателю русского языка заскочить на переменке.
> Вам бы к преподавателю русского языка заскочить на переменке.Укажите на его ошибки конкретно, будьте добры.
Прошу прощения, что влезаю в дискуссию, но мне тоже немного глаз резануло.Не обособлены вводные слова и выражения («на мой взгляд», «по крайней мере» и других); нет запятых вокруг придаточных предложений («говорят, что…», «драйвером, который написан…»).
С запятыми удобнее; без них иногда приходится парсить предложение пару раз, чтобы понять. Правда, тут проблем не возникло
> set grammar nazi mode off
> Вообще-то существуют вебкамеры с дебильно присобаченным микрофоном прямо внутри.вообще-то для них драйвер находится в ALSA - USB sound devices
>> Вообще-то существуют вебкамеры с дебильно присобаченным микрофоном прямо внутри.
> вообще-то для них драйвер находится в ALSA - USB sound devicesА это - USB video devices. Разница понятна?
>>> Вообще-то существуют вебкамеры с дебильно присобаченным микрофоном прямо внутри.
>> вообще-то для них драйвер находится в ALSA - USB sound devices
> А это - USB video devices. Разница понятна?И самое веселое, что в ядре работа с некоторыми аудиодевайсами реализована через интерфейс для видеодевайсов. А виноват в этом, конечно же, гарри поттер.
> И самое веселое, что в ядре работа с некоторыми аудиодевайсами реализована через
> интерфейс для видеодевайсов.Причем тут сферические видеодевайсы ? речь конкретно про uvc - майнтайнер тонко послал потца искать в другом месте через ENOENT :)
У самого такая, A4Tec, считается за usb-шную звуковую карту. Но v4l2 её микрофону совершенно без надобности и все его настройки — в alsamixer, а не в v4l2ucp.
> У самого такая, A4Tec, считается за usb-шную звуковую карту.Это вам еще повезло.
Поттер как истинный тролль просто обязан поправить ошибку в пульсе и раскритиковать Линуса. =)
Ждём показательную порку Поттерингу от Линуса.
> Ждём показательную порку Поттерингу от Линуса.Стань Линусом и раскритикуй Поттеринга сам, никто за тебя этого не сделает.
> Ждём показательную порку Поттерингу от Линуса.В данном случае Линус раскритиковал как раз борцунов с Поттерингом, есличо.
>> Ждём показательную порку Поттерингу от Линуса.
> В данном случае Линус раскритиковал как раз борцунов с Поттерингом, есличо.Маинтейнер не с Поттерингом боролся а его кривым кодом.
При разборе полетов и сам маинтейнер получил по ушам, потому что из-за косяка в ядре Поттеринг смог написать этот кривой, но работоспособный код.
Но троллям как обычно пофигу, главное высрать из себя камент.
косяки в ядре? это что-то новое..
> косяка в ядре Поттеринг смог написать этот кривой, но работоспособный код.Пардон? Гражданин починил то что не сломано, возвращая какой-то левак. Гарри Поттер конечно чудак, но в данном случае он мало чем виноват. В конце концов, апликуха не может предусмотреть вообще все мыслимые закидоны системы.
> Ждём показательную порку Поттерингу от Линуса.За что? Поттеринг все правильно сделал. Обрабатывались все ошибки, допустимы для ioctl.
если maintainer не знает как работает ядро - чего ж от пользователей ждать?
Так проблема же не в Pulseaudio, а в том, что ядро сломали. На что Линус и указал.
Как же достали ненавистники Поттеринга. Сами ничего не делают, лишь критикуют.
> Так проблема же не в Pulseaudio, а в том, что ядро сломали.
> На что Линус и указал.
> Как же достали ненавистники Поттеринга. Сами ничего не делают, лишь критикуют.А что делать, надо же себя как-то проявить.
Охренел штоли?
Ведро то как раз работает.
На пальцах — ошибочные ситуации обрабатывает корректно и выдаёт различные коды при различных ошибках (что и должно делать, прикинь?).
Но тут вдруг оказывается, что а) пульса обрабатывает не всевозможные ошибки а только одну и б) за каким-то хером пульса (звуковой!!! сервер между прочим) лезет в usb-камеру, где звука в) априори вообще то нет и г) даже если бы и был, то он бы всё равно ушёл бы на эльзу, а уж потом с эльзы попал в пульс.зыж
Не, Торвальс всегда орал, чтобы любые изменения во внешнем АПИ не роняли юзерспейс. И всегда жёстко.
Но в данном, конкретно этом, случае… ну это опа же в пульсе.
с ВОТ ТАКЕННОЙ «О» в центре.
> в usb-камеру, где звука в) априори вообще то нетВсе USB камеры для skype со встроеным микрофоном :)
см. пункт г) :D
> см. пункт г) :DНе аргумент.
> см. пункт г) :DДавай лучше посмотрим на пункт в). Ты не сечешь матчасть, успокойся уже.
Т.е. отдельного устройства "микрофон" нет?
Звук идет тошько с картинкой?
И не через эльзу?Давай посмотрим, давай.
а да, uvc_ — это сокращение от USB Video Class, если чО.
> а да, uvc_ — это сокращение от USB Video Class, если чО.Привет от индусов-мейнтейнеров V4L, у которых работа со звуком идет через video class.
да, мэнтейнер ошибся, но только в одной строчке (см. диф с ENOENT), в первом рк(!!!) 3.8, который быстро поправили,…
а потериниг мало того что ошибки выборочно обрабатывает (типа если не -EINVAL, то нифига за ошибку не считается), так ещё и микрофонами через камеру… не, назовём своими именами, через Опу рулит.[сообщение отредактировано модератором]
Ты действительно веришь что, оскорбляя разработчиков, удасться привлечь и мотивировать квалифицированных специалистов?
а вы действительно верите в сантаклаусов?зыж
к чему вы задали этот вопрос?
речь шла а) не об этом, б) оба представителя сабжа работают в красной шапке, в) если «привлечённый» разработчик, как и нвидиа, только дискредитируют платформу, то их нужно привлекать не к себе, а к конкурентам.
Линус никого не оскорблял. Красочные выражения типа: "SHUT THE FUCK UP!", "Fix your f*cking "compliance tool", IHMO показывают только то как сильно майнтейнер достал Линуса.
Есть установленные правила разработки ("WE DO NOT BREAK USERSPACE!"), мантейнер в данном случае нарушил их и вместо того что бы исправить полез в дискуссии.
Ниже я как раз общаюсь как раз по поводу того, почему в обработчике ошибки возникла критическая ошибка. Читайте с 4.43.
Ошибка в ядре. Она исправлена. Читайте что угодно, фактов это не изменит.
> Ошибка в ядре. Она исправлена. Читайте что угодно, фактов это не изменит.Всем пофиг на факты. Надо срочно обоcpать поттера!
> Ниже я как раз общаюсь как раз по поводу того, почему в
> обработчике ошибки возникла критическая ошибка. Читайте с 4.43.Да причем здесь обработчик ошибки? Вы сейчас ведете себя как Мауро. Есть установленные правила, которые ДОЛЖНЫ соблюдать разработчики.
"If a change results in user programs breaking, it's a bug in the
kernel. We never EVER blame the user programs. How hard can this be to
understand?"
Какое из этих слов вам не понятно?
да при том!Мауро облажался в RC1 и исправился.
а похтеринг облажался во всех релизах pulseaudio (уже 3.0 вроде?) и не собирается исправляться.
вот о чём речь. как обрабатывал ошибки индокодом, так и будет, как управлял микрофоном через камеру, так и будет.в ядре линус всех муаров то построит.
а пульса как заикалась на четырёхядерниках, так и будет.
>Мауро облажался в RC1 и исправился.Нет он не исправился. Его завтавили это сделать со скандалом. И это просто жуть, ибо сколько еще ошибок этот Мауро прокатил таким же образом ранее?
да нисколько. это очевидно для любого с iq >=80.всё просто, если бы их было много, то овнокод аля пульс отваливался бы давным-давно и постоянно.
формально, с точки зрения ядра, это и не ошибка. ядро стабильно работает и не падает.
а вот то, что овнокод похтеринга не умеет обрабатывать не известные ему ошибки и виснет, вот это КОСЯК.
> да нисколько. это очевидно для любого с iq >=80.Для любого с iq >=80 очевидно, что его подсистема более чем на 90% состоит из гoвнокода.
Ну не может он по вторникам быть индусом, а по остальным дням недели - пряморуким.
> всё просто, если бы их было много, то овнокод аля пульс отваливался
> бы давным-давно и постоянно.С формальной точки зрения даже очень прямой код не обязан как-то внятно реагировать на ENOENT после того как все нужные файлы уже открыты. Потому что противоречит элементарному здравому смыслу.
Функция возвратила ошибку. PulseAudio ошибку игнорирует. Какие ещё ошибки, кроме ENOENT, вы ошибками не считаете?
> Функция возвратила ошибку. PulseAudio ошибку игнорирует. Какие ещё ошибки, кроме ENOENT,
> вы ошибками не считаете?Нет, я согласен что формально к этому можно придраться, но идиотского поведения "исправленного" кода это не извиняет.
> С формальной точки зрения даже очень прямой код не обязан как-то внятно
> реагировать на ENOENT после того как все нужные файлы уже открыты.
> Потому что противоречит элементарному здравому смыслу.с формальной точки зрения *хорошо написаный* код должен спокойно переносить неизвестные ему ошибки, особым образом реагируя только на те, на которые надо реагировать особым образом. какая *тут* разница, что за ошибку вернул ioctl(), если очевидно, что ioctl() не отработал верно? ну, вернул загадку: ок, запомнили, больше вообще данное устройство не трогаем, оно явно не в своём уме. заодно можно в лог сказать, что устройство с ума взбесилось.
это что, так сложно написать? это rocket science? или это просто общий неряшливый стиль написания: «такой ошибки не будет, потому что не будет никогда, и поэтому не надо ничего обрабатывать»? вот за такое портеринга и не любят.
> да при том!
> Мауро облажался в RC1 и исправился.Нихрена он не исправлялся. Баг за него исправляли другие люди, патч к ядру накатывал уже сам Линус. В то время когда Мауро рассуждал что это ошибка в пулсеуадуио.
> а похтеринг облажался во всех релизах pulseaudio (уже 3.0 вроде?) и не
> собирается исправляться. вот о чём речь.Речь в данном топике идет об мантейнере Мауро и Линусе. И о том что Мауро не соблюдал правила.
> в ядре линус всех муаров то построит.
Линус на то и Линус что бы руководить развитием ядра.
> а пульса как заикалась на четырёхядерниках, так и будет.
Это отдельная тема, к данному топику она отношения не имеет.
>Речь в данном топике идет об мантейнере Мауро и Линусе.ага, счаз ты мне будешь указывать о чём мне речь вести.
в сабже есть похтеринг? есть.
в его поделке есть два крупных косяка, один из которых ещё и позорный. и это не офтопик.
так что со своими «желаниями» можешь идти на хутор.
> ага, счаз ты мне будешь указывать о чём мне речь вести.
> в сабже есть похтеринг? есть.
> в его поделке есть два крупных косяка, один из которых ещё и позорный. и это не офтопик.
> так что со своими «желаниями» можешь идти на хутор.Да, я буду ТЕБЕ указывать. Если в топике есть похтеринг это еще не означает что топик был написан про него.
Если ты посмотришь в начало страницы то увидишь сабж "Линус Торвальдс жёстко раскритиковал мэйнтейнера ядра, допустившего появление проблем в пользовательском ПО", а не "из-за двух крупных косяков похтеринга его софт перестал работать в новом ядре".
> Если ты посмотришь в начало страницы то увидишь сабж "Линус Торвальдс жёстко
> раскритиковал мэйнтейнера ядра, допустившего появление проблем в пользовательском ПО",
> а не "из-за двух крупных косяков похтеринга его софт перестал
> работать в новом ядре".ананим точно знает, кто виноват! Не слушайте идиота Торвальдса, слушайте умного ананима!
Так не пользуйся пульсом и все. Чего кричать то?
> Так не пользуйся пульсом и все. Чего кричать то?Пульс здесь как бы не причем. Есть только личная ненависть одного человека к другому, не имеющая рациональных обоснований.
> Так не пользуйся пульсом и все. Чего кричать то?а того, что кое-где дурацкий пульс прибит гвоздями намертво. сюрпрайз, да?
p.s. да-да, я в курсе про «пересобери без пульсы». продемонстрируй, пожалуйста, пересборку системы для N900. там есть немножечко закрытых компонентов, но, думаю, это не помеха для Настоящего Пацана.
> Ниже я как раз общаюсь как раз по поводу того, почему в
> обработчике ошибки возникла критическая ошибка. Читайте с 4.43.Простите, но это безграмотная пропаганда, ориентированная на тех, кто никогда ничего не программировал.
Всегда и везде обрабатываются не все ошибки, а только те, которые возможны.
> Всегда и везде обрабатываются не все ошибки, а только те, которые возможны.Нет, в принципе отреагировать на неизвестную ошибку адекватно - это хорошо. Но для начала, совершенно левых ошибок быть просто не должно.
If(OpenFile(filename)==NOERR)
{
}
else?
Вам нужен репетитор по программированию на языке С++?err_code=FileOpen(filename);
if(err!=NOERR){}
else {return error_handling(err_code);}int error_handling(err_code)
{
writelog(GetErrorText(err_code));
return err_code;
}
> Простите, но это безграмотная пропаганда, ориентированная на тех, кто никогда ничего не
> программировал.
> Всегда и везде обрабатываются не все ошибки, а только те, которые возможны.Как Вы определяете возможность конкретной ошибки?
Простите, но это ...
if (foo() < 0)
{
// error happened
}
> Простите, но это безграмотная пропаганда, ориентированная на тех, кто никогда ничего не
> программировал.
> Всегда и везде обрабатываются не все ошибки, а только те, которые возможны.
int fd = open("mycoolfile.dat", O_RDONLY);
if (fd < 0) {
fd = open("mycoolfile.dat.old", O_RDONLY);
if (fd < 0) perror("WHERE IS MY DATA?!");
}
«всегда и везде», говоришь?
В последних новостях про тенденцию разработки ядра, а какая-то новость гласила, что с каждым годом новых разработчиков все мало, и у руля только старые....вашему Торвальдсу следовало бы молчать в тряпочку, а то всех разгонит, и останутся коммиты очередных ненужных файловых систем.
со своими советами можете проследовать к своему лысому, потному, толстому.
уж с ним и покричишь девелоперс 4-е раза.
> В последних новостях про тенденцию разработки ядра, а какая-то новость гласила, что
> с каждым годом новых разработчиков все мало, и у руля только
> старые....вашему Торвальдсу следовало бы молчать в тряпочку, а то всех разгонит,
> и останутся коммиты очередных ненужных файловых систем.Таких, как Мауро - действительно стоит разогнать.
> В последних новостях про тенденцию разработки ядра, а какая-то новость гласила, что
> с каждым годом новых разработчиков все мало, и у руля только
> старые....вашему Торвальдсу следовало бы молчать в тряпочку, а то всех разгонит,
> и останутся коммиты очередных ненужных файловых систем.Вообще то, Линус тут прав на все 100%. И если он будет молчать, что ядро превратится в УГ, которое ломает хрен знает что с каждым релизом.
> Ты действительно веришь что, оскорбляя разработчиков, удасться привлечь и мотивировать
> квалифицированных специалистов?Если оскорблять исключительно криворуких индусов - квалифицированным специалистам ничего не грозит :)
читай внимательнее.Код возврата был изменен с того, который обрабатывался, на другой, причем неверный. И навернулась не только Пульса. Кедовский фонон тоже навернулся, о чем поступили жалобы лично Линусу.
[сообщение отредактировано модератором]
читай внимательно ещё раз.
а) не важно, что код возврата был изменён (и это не просто код возврата, это ошибка! чувствуешь ? не?
б) я это и не(!!!) обсуждал.а обсуждал я как а) потеринг обрабатывает ошибки вообще и эту в частности и б) лезет с этой ошибкой туда, куда ему лесть вообще не надо было.
пульсу я обсуждал, пульсу. :D[сообщение отредактировано модератором]
> пульсу я обсуждал, пульсу, бэби. :D...которая тут совершенно не при чем. =)
да-а-а-а? т.е. вы тут собрались обсуждать только фалосы Торвальдса? :Dа я вот обсуждаю плохую обработку ошибок в пульсе и за каким уем он лезет в uvc.
при этом пульс потеринг преподносит чёртезнает сколько как стабильный (не смотря на все его заикания), а сабж всего-лишь в сpаном 3.8.0rc1.
[сообщение отредактировано модератором]
повторяю то, что сказал ниже: http://www.opennet.me/openforum/vsluhforumID3/88002.html#71
>не бывает (не должно быть в принципе) обработчика ошибКИ.
>должен быть обработчик ошибОК.
>нельзя на одну ошибку реагировать, а на остальные нет.
>если ошибка не предвиденная логикой, то должна быть обработка по умолчанию.
>нельзя маскировать ошибки, их нужно либо обрабатывать на месте, либо передавать дальше по стэку.
>иначе будет как у потеринга — «стали поступать жалобы пользователей о зависании PulseAudio».объясню на пальцах — если бы у потеринга был бы нормальный обработчик ошибок, то пульс бы не вис, а падал бы с ошибкой.
типа «а кто его знает почему камера не захотела работать микрофоном и выдала мне -ENOENT, а я не знаю что это такое».
вот тогда бы к СТАБИЛЬНОМУ пульсу претензий бы НЕ было.
а претензий к 3.8.0.рк1 и так нет. во первых рк, во-вторых ядро не вешалось.
отсюда вывод — рк стабильнее пульсы[сообщение отредактировано модератором]
в кой веки соглашусь с ананимом :-)Список конкретных кодов ошибок может быть очень разный в зависимости от драйвера.
Завтра новый драйвер вернет ENOENT куда нить - и опять пульс сломается..
Будим чинить ядро?
ioctl не может. не имеет права. man ioctl чётко говорит об этом.
за что Мауро и получил пистон.Но!
Из-за это не особо крупной ошибки (пионерской. не достойной мэнтейнера ядра) в рк1 выявились аж ДВА крупных косяка в пульсе, которые кочуют из релиза в релиз.
похтеринг достоин уже фалоса размером с мачту.
подозреваю что systemd тоже будет вечной бэтой. уже из опыта, если прогмист лажает постоянно, то он и будет лажать постоянно.
Вообще-то список возможных ошибок (да, кодов ошибок, получаемых из errno) конкретного сисколла (будь то ioctl или другой вызов) описан в документации к. Если список соответствует заявленному - вопросы к авторам юзерспейс-софта. Не соответствует - вопрос к ядру.Драйвер - это другой уровень изоляции (в широком, архитектурном смысле). Прикладную программу, вообще-то, этот уровень должен волновать лишь в той степени, в которой ядро даёт программе доступ к функциональности драйвера. В нормальном, штатном случае прикладная программа должна пользоваться сервисами, предоставляемыми ядром, а не какими-то драйверами, которые сегодня есть а завтра нет.
Понятное дело, что эта ситуация идеальная, и на практике приходится жертвовать чётким разделением на независящие модули в угоду производительности, полнофункциональности (когда драйвер способен выдать больше, чем поддерживают стандартные ядерные механизмы итп).
> Вообще-то список возможных ошибок (да, кодов ошибок, получаемых из errno) конкретного сисколла
> (будь то ioctl или другой вызов) описан в документации к. Если
> список соответствует заявленному - вопросы к авторам юзерспейс-софта. Не соответствует
> - вопрос к ядру.На практике невозможно всегда и во всём соблюдать этот список, и весь софт, который общается с ядром, должен быть готов к возврату ошибки с недокументированным кодом.
Если он это не отрабатывает как следует, это бага userland.
> На практике невозможно всегда и во всём соблюдать этот список,Это возможно всегда и во всём.
> и весь софт, который общается с ядром, должен быть готов к возврату ошибки
> с недокументированным кодом.То есть, масштабируя: софт, который общается с ядром, должен обрабатывать все возможные ошибки. А теперь, внимание, вопрос: как он должен реагировать на ошибки, не описанные в man'е? Выражаясь неформально, это abort, retry или fail?
Валентин, попытка отойти от стандарта (POSIX -- стандарт, между прочим) должна караться апстеной. И только ей.
> А теперь, внимание, вопрос: как он должен реагировать на ошибки,
> не описанные в man'е? Выражаясь неформально, это abort, retry или fail?fail. с записью кода ошибки в лог.
upd: чёрт. abort, конечно. извиняюсь.
>> А теперь, внимание, вопрос: как он должен реагировать на ошибки,
>> не описанные в man'е? Выражаясь неформально, это abort, retry или fail?
> fail. с записью кода ошибки в лог.
> upd: чёрт. abort, конечно. извиняюсь.Совершенно не обязательно. Например, неизвестная ошибка при открытии необязательного файла, отсутствие которого допускает альтернативный вариант работы - является причиной только для записи в лог, и продолжения работы (то есть, ignore, в тех же терминах).
таки «неизвестная ошибка» является поводом для аборта. на всякий случай.
> таки «неизвестная ошибка» является поводом для аборта. на всякий случай.Только в сферическом софте в вакууме.
в любом нормальном софте. «неизвестная ошибка» — это ЧП. при ЧП лучше всего рухнуть с воплями, потому что неизвестно, какие могут быть последствия у такой ошибки.
> в любом нормальном софте.Простите, но Вы, очевидно, никогда не писали софт серьёзнее, чем /usr/bin/sort.
> «неизвестная ошибка» — это ЧП. при ЧП лучше
> всего рухнуть с воплями, потому что неизвестно, какие могут быть последствия
> у такой ошибки.Во-первых, любому программисту с опытом известно, что какая бы ни была ошибка, её обработка может и очень часто *должна* включать меры по аккуратному свёртыванию работы, включая освобождение тех ресурсов, которые сами не освобождаются, дерегистрацию, сброс логов и т.д. - в общем, всё, что необходимо для того, чтобы программа могла потом стартовать заново. И никакая "неизвестная ошибка" не является причиной не делать этого.
Во-вторых, если неизвестная ошибка произошла при каком-то действии, то её последствия ограничиваются пределом именно этого действия. Более серьёзные ошибки в Unix-системах вызывают сигналы и прочие асинхронные нотификации о нерешаемых проблемах. Этот принцип не специфицирован в явном виде (по крайней мере, я такого не видел), но практически все системы следуют ему. Поэтому, отказ в каком-то действии с неизвестной ошибкой следует рассматривать только как отказ этого действия с соответствующими последствиями (а вот они уже зависят от задачи - где-то это rollback транзакции, а где-то надо просто повторять до получения результата).
Если язык кодирования целевой задачи включает систему исключений, то неизвестная ошибка из целевого обработчика должна кодироваться в особое исключение в месте, ближайшем к получению ошибки от другого слоя, ну а далее зависит от спецификаций, что с этим делать.
Например, для контрольного и отладочного логгирования любая ошибка - повод увеличить счётчик странностей логгирования, послать сигнал наверх, но не останавливать работу.
> Валентин, попытка отойти от стандарта (POSIX -- стандарт, между прочим) должна караться
> апстеной. И только ей.Что ж, если разговор пошёл в таком ключе, то давай пройдём по стандартам и в предельно официальном варианте. Прошу встречных обоснований этому тезису, а именно:
1. Где именно в POSIX сказано, что для некоторой функции допускаются только те ошибки, которые упомянуты в соответствующем описании в POSIX?
Я пока что вижу явное разрешение противоположного, а именно (в functions/V2_chap02.html):
<blockquote>Implementations may support additional errors not included in this list, may generate errors included in this list under circumstances other than those described here, or may contain extensions or limitations that prevent some errors from occurring.</blockquote>
2. Где и когда Linux специфицировал официальную совместимость с POSIX?
Я уверен, что ты по обоим пунктам не сможешь дать обоснования, а значит, ссылка на POSIX как стандарт, который не допускает появления других ошибок, чем документированы, не есть работающим аргументом.
>> На практике невозможно всегда и во всём соблюдать этот список,
> Это возможно всегда и во всём.Я не увидел никакого обоснования этого тезиса, и цитатой выше обосновал обратное.
>> и весь софт, который общается с ядром, должен быть готов к возврату ошибки
>> с недокументированным кодом.
> То есть, масштабируя: софт, который общается с ядром, должен обрабатывать все возможные
> ошибки. А теперь, внимание, вопрос: как он должен реагировать на ошибки,
> не описанные в man'е? Выражаясь неформально, это abort, retry или fail?"Внимание, ответ": здесь не может быть общего ответа. В каждом конкретном случае надо смотреть по обстановке - не по коду ошибки (он-то неизвестен), а по тому, что является оптимальной реакцией в этом месте на ошибки неизвестного содержания.
В основном, я думаю, это fail, в твоих неформальных терминах. Достаточно часто - abort.
Где-то - retry, но ограниченное количество раз.Я как-то рассказывал, как у нас под серьёзной нагрузкой (innfeed) что-то лажалось в солярке и она начинала выдавать совершенно неподходящую ошибку на попытку создания файла на диске, обходили циклом вокруг этой операции создания. Да, и такое бывает. Увы.
> Список конкретных кодов ошибок может быть очень разный в зависимости от драйвера.
> Завтра новый драйвер вернет ENOENT куда нить - и опять пульс сломается..
> Будим чинить ядро?Если ENOENT будет описан в документации драйвера - пульс не сломается.
Если не будет описан - сломается не только пульс.
Черт, я вас рано плюсанул.Прочитал тред и в коем-то веке, при всей моей ярой нелюбви к Поттерингу и компании, вынужден признать, что разработчики Пульсы - о чудо - в этот раз дейсивительно не виноваты.
Как можно понять, Мауро изменил код ошибки на очевидно неверный, после чего все и накрылось. Он сам уже это признал, полностью согласившись в последнем письме с критикой Линуса:
Yes, I'm upset. Very upset. Why was the error value changed in the
first place? There was no reason given, and it was changed to a
completely idiotic value. And when applications - understandably -
broke, you start asking "why?"
А не подскажите, почему код ошибки вызывает критическую ошибку? Мауро - козёл отпущения, его ошибка не оправдывает истинного виновника проблемы.
Неправильный код ошибки является причиной вызова неправильного обработчика этой ошибки. Результаты тут непредсказуемы.
Здесь два вопроса:
1. в чём, по вашему мнению, заключается роль обработчика ошибки?
2. обработчик ошибки написан без контроля ошибок?Для меня является очевидным что обработчик ошибок должен выполнить ровно столько, сколько от него требуется - обработать ошибку (занести событие в журнал ошибок, сформировать текст ошибки на естесственном языке и т.п.), а не выполнять многоуровневые вычисления.
Ну, просто занести ошибку в журнал может быть мало.
Вполне возможна ситуация, когда для того, чтобы продолжить работу, программе нужно произвести какие-либо действия, связанные с ошибкой.Вот рассмотрим пример:
Есть программа А, которая проверяет доступность сервера по сети (допустим Ethernet, USB-модем или Dial-Up).
Есть программа Б, которая работает с сервером удаленно.
По умолчанию программа Б работает с сервером по Ethernet.В какой-то момент времени программа А подает программе Б ошибку с кодом, соответствующем ситуации "Ethernet-кабель сгрызла крыса".
Чтобы продолжить работу программа Б должна обработать эту ошибку:
1) занести информацию о ней в журнал,
2) переключиться на один из резервных каналов (USB-модем или Dial-Up)Если же на ситуацию "Ethernet-кабель сгрызла крыса" программа А будет отдавать код ошибки, соответствующий ситуации "Монтажник перерезал телефонные провода за неуплату", то программа Б будет считать, что никаких действий для продолжения работы производить не требуется, и будет пытаться продолжить работать с сервером по Ethernet, что ей, разумеется, не удастся.
Коды ошибок - штука очень важная.
Коды ошибок - это коды ошибок. Они задумывались и используются исключительно для анализа поведения программы.Приведённые вами примеры абстрактны, но даже они показывают тотальную незащищённость программы Б от действий злоумышленника, что позволяет использовать их для написания вредоносного и мошеннического ПО. Это ошибка проектирования системы, которой там быть не должно. И Мауро определённо в ней не виновен.
В данном случае была замена "EINVAL" (no value) на "ENOENT" (no entry). PulseAudio не поддерживает обработку других кодов, кроме "EINVAL", но ошибку вызывает. Парадокс?
Ваши доводы не лишены смысла. Но я не понимаю, откуда берется вот это:
> PulseAudio не поддерживает обработку других кодов, кроме "EINVAL", но ошибку вызывает.Я, наверное, читал не очень внимательно. Что значет "не поддерживает обработку других кодов"? Я не видел пруфа этому утверждению.
Я понял так: получив ENOENT, и не найдя обработчика для этой ошибки, Pulse заканчивает работу - в принципе не лишенное смысла действие по умолчанию.
А обработчика для ENOENT не было реализовано, потому что этот код вообще не должен был возникнуть (глубже я уже вдаваться не буду, и так уже слишком много времени на этот тред ушло). А возник он потому, что мейнтейнер ядра, к сожалению, допустил несколько ошибок. И, кстати, не в одной строчке. Кто там утверждал, что в одной? Это неправда:
Linus Torvalds <torvalds@linux-foundation.org> escreveu:
I'm angry, because your whole email
was so _horribly_ wrong, and the patch that broke things was so
obviously crap. The whole patch is incredibly broken shit. It adds an
insane error code (ENOENT), and then because it's so insane, it adds a
few places to fix it up ("ret == -ENOENT ? -EINVAL : ret").
> Что означет "не поддерживает обработку других кодов"?В тексте статьи: "Мауро ... указал на то, что проблема скорее всего является следствием ошибки в PulseAudio, так как программа не поддерживает обработку кодов ошибок, отличных от "-EINVAL"."
Я достаточно часто сталкиваюсь с ситуацией, когда перед лицом заказчиков, проектировщики и руководство перекладывает ответственность за допущенные ошибки на рядовых разработчиков, заставляя их признаваться во всех смертных грехах.
> Я понял так: получив ENOENT, и не найдя обработчика для этой ошибки, Pulse заканчивает работу
"стали поступать жалобы пользователей о зависании PulseAudio при использовании нового тестового выпуска ядра"
Он не завершает работу, а зависает.
>> Я понял так: получив ENOENT, и не найдя обработчика для этой ошибки, Pulse заканчивает работу.
> "стали поступать жалобы пользователей о зависании PulseAudio при использовании нового
> тестового выпуска ядра"
> Он не завершает работу, а зависает.А, точно. Перечитал исходное сообщение Мауро - действительно речь о цикле.
Ну тогда да, у Пульсы очевидная проблема. Надо в таких ситуациях не зависать, а именно что завершаться с ошибкой.Но давайте не отходить от первоисточника. Проблема в том, что ядро сгенерировало неправильный код. Из-за этого накрылись пульса и фонон. И какой бы глючной пульса не была - данная ситуация к ее глючности имеет лишь косвенное отношение.
> Ну тогда да, у Пульсы очевидная проблема.Да я бы не стал так жёстко.
Программное обеспечение, работающее в User Space, _не обязано_ обрабатывать ВСЕ возможные ошибки, которые теоретически может возвратить ядро -- существует Kernel API, в котором коды ошибок, возвращаемые тем или иным syscall'ом, задокументированы.
Так вот, ioctl() возвращать ENOENT _не имеет права_. Вообще никогда.
>Программное обеспечение, работающее в User Space, _не обязано_ обрабатывать ВСЕ возможные ошибки1. оно их вообще не обязано обрабатывать.
2. это просто правила хорошего тона и образования, если обрабатывается хотя бы одна ошибка, то обрабатывать и все остальные возможные ошибки хотя бы в секции по-умолчанию.
3.
>Так вот, ioctl() возвращать ENOENT _не имеет права_. Вообще никогда.исключительные ситуации возможны ВСЕГДА.
особенно в io, где банально может быть выход устройства из строя и сбои. и, man ioctl
>Нет единого стандарта. Аргументы, возвращаемые значения и семантика ioctl() варьируются в соответствии с драйвером устройства (вызов, используемый как всеохватывающий, не полностью соответствует потоковой модели ввода/вывода в Unix).поэтому возводить разработчиков в роль безгрешного идола — это банально оправдывать свой поуизм и безалаберность.
тем более что пульсу мало того, что НЕЧЕГО делать в uvc ВООБЩЕ, так для него уже существуют более высокоуровневые функции.
>>ENOENT
> исключительные ситуации возможны ВСЕГДА.
> особенно в io, где банально может быть выход устройства из строя и
> сбои. и, man ioctlв военное время значение синуса достигает четырех, ага.
и не только в синусах, и не только в военное.
http://www.tomshardware.co.uk/forum/55655-10-errors-intel-co...
>FPU errors on both Intel and AMD - have AMD copiedhttp://gcc.gnu.org/bugzilla/show_bug.cgi?id=35194
>Bug 35194 - floating point truncation error on intel platformблажен неведающий.
а если кратко — быдлокодер.
поясните, пожалуйста, как из приведенных ссылок вытекает существование ситуаций, в которых ioctl может вернуть ENOENT.
>Так вот, ioctl() возвращать ENOENT _не имеет права_. Вообще никогда.Что с того? Завтра появится какой нибудь ENOFUCK и ядро его оправданно вернет - а поделка поттеринга опять зависнет!
>>Так вот, ioctl() возвращать ENOENT _не имеет права_. Вообще никогда.
> Что с того? Завтра появится какой нибудь ENOFUCK и ядро его оправданно
> вернет - а поделка поттеринга опять зависнет!У вас не верное представление. Не появляются коды ошибок вдруг ни от куда. Весь список уже устоявшийся. Причем у каждой ошибки есть общепринятая семантика. В этом есть плюсы - поведение всегда детерминировано и минусы - когда разработчик драйвера не знает какую ошибку вернуть, потому, что нет подходящей.
В данной ситуации оба не правы. Поттеринг не обработал ошибку правильно и маинтейнер закоммитил не хороший код.
>маинтейнер закоммитил не хороший кодТы ничего не понял.
Нехороший код можно коммитить. Нежелательно, но фалосами тебя за это не обложат. Ошибся? Бывает. Тут же ситуация другая - мэйнтейнера попросили ошибку ядра исправить, он ответил "ололопоцтеринглол". Баг ядра смогли исправить только после личного участия Линуса. Неадекват мэйнтейнер обзавелся 3 старлетками на опеннете, которые весь форум зафлудили бредом, противоречащим фактам.
>У вас не верное представление. Не появляются коды ошибок вдруг ни от куда. Весь список уже устоявшийся.Да что вы? Вы man ioctl то читали?!
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Обычно в случае успеха возвращается ноль. Некоторые ioctl используют
возвращаемое значение как выходной параметр и возвращают в случае
успеха неотрицательное значение. В случае ошибки возвращается -1 и
значение errno устанавливается соответствующим образом.
возвращаемое значение != код ошибки. В случае ошибки возвращается всегда -1, а список возможных кодов ошибок есть в мане:
RETURN VALUE
Usually, on success zero is returned. A few ioctl() requests use the
return value as an output parameter and return a nonnegative value on
success. On error, -1 is returned, and errno is set appropriately.ERRORS
EBADF d is not a valid descriptor.EFAULT argp references an inaccessible memory area.
EINVAL Request or argp is not valid.
ENOTTY d is not associated with a character special device.
ENOTTY The specified request does not apply to the kind of object that
the descriptor d references.
> Что с того? Завтра появится какой нибудь ENOFUCK и ядро его оправданно
> вернет - а поделка поттеринга опять зависнет!Чувак, это совместная игра. Не предполагается что кернелмод будет жульничать.
> Завтра появится какой нибудь ENOFUCK и ядро его оправданно вернетДа ведь в том-то и дело, что вот так вот "завтра" не появится.
Разработка операционных систем традиционно ведётся в соответствии с некоторыми неписаными правилами. И огромным количеством писаных правил. Например, POSIX. А в POSIX никаких ENOFUCK нет. И ENOENT у ioctl() тоже нет.
Разумеется, это не остановит ухарей-разработчиков ядра от того, чтобы начать что-то такое возвращать. Но на то и щука, чтобы карась не дремал -- на то и Турвалдс, чтобы разработчики окончательно белены не объелись. :)
> Разработка операционных систем традиционно ведётся в соответствии с некоторыми неписаными
> правилами. И огромным количеством писаных правил. Например, POSIX. А в POSIX
> никаких ENOFUCK нет. И ENOENT у ioctl() тоже нет.вы же понимаете, что это не остановит младопеттерингов. нет, значит, надо придумать. патамушта прогресс. должен же драйвер двддрайва попустим обрабатывать путь к файлу. это модно аяксово и вебдванольно.
> Программное обеспечение, работающее в User Space, _не обязано_ обрабатывать ВСЕ возможные
> ошибки, которые теоретически может возвратить ядро — существует Kernel API, в
> котором коды ошибок, возвращаемые тем или иным syscall'ом, задокументированы.
> Так вот, ioctl() возвращать ENOENT _не имеет права_. Вообще никогда.а ещё юзеры, например, не имеют права подбирать чужие пароли. а программисты не имеют права делать ошибок. но shit happens, знаешь ли. и если писать не быстрософтинку для себя лично, а — на минуточку — звуковой сервер, который используется на сотнях тысяч машин, то надо по возможности предусматривать и ситуации, которых «не может быть, потому что не может быть никогда». в данном случае такое возможно — но не сделано.
на всякий случай: я не защищаю возврат неверного кода ошибки из ioctl(). я говорю, что пульса — поломана от самого рождения и навсегда. потому что её автор — полупрозрачный изобретатель.
>Я понял так: получив ENOENT, и не найдя обработчика для этой ошибки, Pulse заканчивает работувы программист?
если нет обработчика, то ошибка маскируется.
т.е. выйдя за пределы области видимости (например из функции) программа уже вообще НЕ догадывается, что была какая-либо ошибка и продолжает работать как ни в чём не бывало.
(а раз ошибка всё же была, но программа не отреагировала, то имеем сабж с заисанием этой программы)
вот если бы обработчик по умолчанию был, то (возможно передовая по стэку) тогда бы пульс не вис бы, а падал с ошибкой.
возможно со своей. с логом типа — ошибка 100500, неопознанная ошибка в модуле суперпульс (ioctl вернул ошибку -2, хотя не должен был)
>если нет обработчика, то ошибка маскируется.так нужно писать не
int rc = ioctl(...)
if (rc == EINVAL)а
int rc = ioctl(...)
if (rc == -1)а поттеринг этот походу man ioctl не читал
rc = ioctl(…)
err = errno; // может и изменится, например в другом потоке. см. например http://elektro-megaportal.ru/kak-sdelat-odnopotochnuyu-progr.../
if (rc == -1)
switch( err )
{
case -EINVAL:
…
default :
…
}
Фигасе! А чё такое default?
:D
> Фигасе! А чё такое default?"Ой, а что, так можно?"
errno для каждого потока свой, присвоение лишнее
> rc = ioctl(…)
> err = errno; // может и изменится, например в другом потоке. см.
> например http://elektro-megaportal.ru/kak-sdelat-odnopotochnuyu-progr.../какой потрясающий быдлокод! скажи, о юный падаван, а что будет, если контекст исполнения переключится на другой поток после возврата из ioctl(), но перед «сохранением» errno, и этот самый другой поток тоже вызовет ioctl(), который тоже вернёт ошибку?
этот «фикс для многопоточности» напоминает мне «фикс» в php, где на переполнение проверяли при помощи «int i; …; if (i > MAX_INT) …».
Ребята не надо тупить)))
Читайте man errno:errno is thread-local; setting it in one thread does not affect its value in any other thread.
э… я-то в курсе, что errno — это thread local. отчасти потому и восхищался быдлокодом. а отчасти — тем, как быдлокодер «защищает» глобальное значение, если бы оно было глобальным. два в одном, красота.
Вы описали один из возможных вариантов поведения, но есть и другой: ошибка напр. функция выделения памяти возвращает ошибку системной функции, которая возвращает ошибку пользовательскому приложению. В теории, на каждом уровне должна быть обработка ошибок. В данном случае PulseAudio этого не делает - ошибка в PulseAudio. Вторая ошибка - у Мауро в неверном коде возврата. Но исходя из тона г-на Торвальдса у меня сложилось впечатление что Мауро сделали ответственным за ошибку в PulseAudio, сделав из него козла отпущения.Логика высказывания Торвальдса: если бы вы не возвратили неверный код - в PulseAudio не возникла бы ошибка. Это неверный логический вывод.
> Вы описали один из возможных вариантов поведения, но есть и другой: ошибка
> напр. функция выделения памяти возвращает ошибку системной функции, которая возвращает
> ошибку пользовательскому приложению. В теории, на каждом уровне должна быть обработка
> ошибок. В данном случае PulseAudio этого не делает - ошибка в
> PulseAudio. Вторая ошибка - у Мауро в неверном коде возврата. Но
> исходя из тона г-на Торвальдса у меня сложилось впечатление что Мауро
> сделали ответственным за ошибку в PulseAudio, сделав из него козла отпущения.
> Логика высказывания Торвальдса: если бы вы не возвратили неверный код - в
> PulseAudio не возникла бы ошибка. Это неверный логический вывод.У Линуса совсем не такой логический вывод. "Мы не ломаем userspace" - вот его позиция. И она верна.
Что вы знаете про модульность?
В такой формулировке она не просто неверна, она невозможна. Если бы он сказал хотя бы "мы не ломаем ABI"...А то был, например, файл в sysfs, в следующем релизе исчез. А его кто-то читал. Всё, возвращайте назад.
> В такой формулировке она не просто неверна, она невозможна.lkml подразумевает, что людям не надо пояснять, как пользоваться туалетной бумагой. потому слова «без достаточных на то обоснований» подразумеваются.
и, кстати, действительно изо всех сил не ломают. например, древние функции int 80h до сих пор поддерживаются.
и да: если наличие «файла в sysfs» было документировано, и не было указано, что он может отсутствовать — то он обязан там быть. а если он пропал — то это должно быть *очень* хорошо обосновано.
> и, кстати, действительно изо всех сил не ломают. например, древние функции int
> 80h до сих пор поддерживаются.Про ABI я как раз уточнил. Хотя 80h 80h-ем, но i386 вон поддерживать перестали. Какой-то юзерспейс сломался? Несомненно. И что.
Это критика не выкидывания ненужного, а формулировок к процессу разработки типа вышецитированных, если что.
> слова «без достаточных на то обоснований» подразумеваются.
> если наличие «файла в sysfs» было документировано
> если он пропал — то это должно быть *очень* хорошо
> обосновано.А вы за Торвальдса не расписывайтесь, он лучше знает что хотел сказать. И что lkml подразумевает это еще вопрос, общение там, понятно, скиллов требует, но читать кто угодно может же. И это хорошо — но впечатление будет имхо такое, как описал.
> Хотя 80h 80h-ем, но i386 вон
> поддерживать перестали. Какой-то юзерспейс сломался? Несомненно. И что.нет, никакой не сломался. в данном случае это неважно, но: представляешь, софт от i386 отлично работает на x86 повыше. неудачный ты пример подобрал.
> А вы за Торвальдса не расписывайтесь, он лучше знает что хотел сказать.
и ты, конечно, тоже — потому что только что заявил, что моё понимание неверное. значит, ты лучше меня знаешь, что хотел сказать линус. бывает.
а вообще-то — я не просто так дал развёрнутое толкование. но забыл, что это опеннет.
> И что lkml подразумевает это еще вопрос, общение там, понятно, скиллов
> требует, но читать кто угодно может же.и поэтому в списке рассылки разработчиков ядра надо писать так, чтобы было понятно запойному алкашу васе с тремя классами образования. понял-понял.
> нет, никакой не сломался. в данном случае это неважно, но: представляешь, софт
> от i386 отлично работает на x86 повыше. неудачный ты пример подобрал.А на не повыше? Точно не сломался?
> и ты, конечно, тоже — потому что только что заявил, что моё
> понимание неверное. значит, ты лучше меня знаешь, что хотел сказать линус.
> бывает.Я его словам ничего не дописывал. В отличие от.
> чтобы было понятно запойному алкашу васе с тремя классами образования
> это опеннетЭто точно. Аналогии впечатляют.
> А на не повыше? Точно не сломался?нет, не сломался. ядро можно запустить, под ним старый софт можно запустить. обеспечение этого именно на архитектуре i386 никто не гарантировал, бери x86 поновее. и всё будет работать. ничего не сломано, прикинь.
>> чтобы было понятно запойному алкашу васе с тремя классами образования
>> это опеннет
> Это точно. Аналогии впечатляют.я стараюсь использовать аналогии, которые будут понятны оппонентам. а то научен горьким опытом: чуть упустишь очевидное звено рассуждений или аналогию поумнее используешь — всё, оппонент потерян, у него мозговой коллапс.
> нет, не сломался. ядро можно запустить, под ним старый софт можно запустить.
> обеспечение этого именно на архитектуре i386 никто не гарантировал, бери x86
> поновее. и всё будет работать. ничего не сломано, прикинь.Ой, я не поняла. Так работу всего-всего на i386 сломали или нет? (хлопая ресницами)
> я стараюсь использовать аналогии, которые будут понятны оппонентам. а то научен горьким
> опытом: чуть упустишь очевидное звено рассуждений или аналогию поумнее используешь —
> всё, оппонент потерян, у него мозговой коллапс.На заметку: иногда коллапс наступает как раз от аналогий и "очевидных" логических цепочек. Серьезно.
> а ты продолжай дезинформировать людей: буквы всё стерпят.
Спасибо. Продолжу обязательно. Не мешайте только.
> Ой, я не поняла. Так работу всего-всего на i386 сломали или нет?
> (хлопая ресницами)*новых* ядер — да. userland — нет. и то — не сломали: ты можешь портануть назад.
> На заметку: иногда коллапс наступает как раз от аналогий и «очевидных» логических
> цепочек. Серьезно.я пока не очень хорошо различаю, у кого проблемы с пониманием очевидного. поэтому ориентируюсь на нижний уровень. ты — извини — показал примерно такой.
>> а ты продолжай дезинформировать людей: буквы всё стерпят.
> Спасибо. Продолжу обязательно. Не мешайте только.на других ресурсах — не буду, я за тобой не охочусь. а здесь — я буду на «дезу» отвечать издевательствами.
> исходя из тона г-на Торвальдса у меня сложилось впечатление что Мауро
> сделали ответственным за ошибку в PulseAudio, сделав из него козла отпущения.нет. пульса — одно, странное поведение ядра — другое. в данном случае странное поведение ядра было неоправданым и — в том числе — поломало userland. за что Мауро и получил: вместо чтобы вернуть «как было» и не выпендриваться, он начал рассказывать, что «это userland кривой». может, и кривой — но косяка самого Мауро сие никак не оправдывает. вот именно это и написал торвальдс.
> передовая по стэку«передовая бригада по стэку», лол.
судя по количеству ошибок в твоём сообщении, одного в лучшем случае «непрограммиста» (а скорее — code monkey) я детектирую вполне определённо.
впрочем, после «если нет обработчика, то ошибка маскируется» — и так всё ясно. запомни, молодой падаван: в приличных местах за «ошибка маскируется, если явно не обработана» принято бить бамбуковой палкой по пяткам. пока написавший такое не достигнет просветления.
> Я понял так: получив ENOENT, и не найдя обработчика для этой ошибки,
> Pulse заканчивает работу — в принципе не лишенное смысла действие по
> умолчанию.ага. для звукового сервера. действительно, да ну его нафиг — пытаться не падать. подумаешь, звук отвалится: не критично, юзер перезапустит. это же всего лишь какой-то там звуковой сервер, который используется кучей софта в системе.
очень, очень верный подход к написанию широкоиспользуемых демонов. надо и себе на вооружение взять: писать можно меньше, да и обвинять кого угодно, только не себя.
и вот это вот чудо пишет *систему инициализации*. крах которой намного более фатален, нежели крах звукового сервера. а поттерингофаны (я не про тебя сейчас, а в общем) всё ещё не понимают, почему люди не в восторге от системд и от его основного автора-идеолога.
p.s. в данном случае совершенно не важно, рухнула ли пульса или зациклилась. так же, как не особо важно, рухнул ли init или ушёл в медитативное состояние.
>> Я понял так: получив ENOENT, и не найдя обработчика для этой ошибки,
>> Pulse заканчивает работу — в принципе не лишенное смысла действие по
>> умолчанию.
> ага. для звукового сервера. действительно, да ну его нафиг — пытаться не
> падать. подумаешь, звук отвалится: не критично, юзер перезапустит. это же всего
> лишь какой-то там звуковой сервер, который используется кучей софта в системе.Да что там для звукового сервера. Для ядра тоже вполне приемлемо. Чуть что - Kernel Panic. Какая там обработка ошибок. =)
> и вот это вот чудо пишет *систему инициализации*. крах которой намного более
> фатален, нежели крах звукового сервера. а поттерингофаны (я не про тебя
> сейчас, а в общем) всё ещё не понимают, почему люди не
> в восторге от системд и от его основного автора-идеолога.К сожалению, эта тема не иллюстрирует этих его качеств. Она вообще непонятно о чем. Ну ошибся мейнтейнер. Ну с кем не бывает? А что касается Поттеринга - udev гентушники форкнули, так что надежда на светлое будущее еще есть. А все остальное его творчество лично в моей системе отсутствует - я и доволен. )
> Да что там для звукового сервера. Для ядра тоже вполне приемлемо. Чуть
> что — Kernel Panic. Какая там обработка ошибок. =)(печально) а вот и есть. у меня когда винт сыпался — бедное ядро пыхтело, кряхтело, но в панику кидаться отказывалось. недоработочка-с.
> К сожалению, эта тема не иллюстрирует этих его качеств.
каких «этих»? что портеринг — косорукий пионэр? да, не иллюстрирует, просто лишний раз подтверждает.
> Ну ошибся мейнтейнер. Ну с кем не бывает?
ошибаются все. только некоторые свои ошибки правят, а некоторые начинают утверждать, что ошибаются все остальные. примерно об этом и тема.
ах, да: ещё о том, что портеринг — косорукий пионэр.
> что касается Поттеринга — udev гентушники форкнули … все остальное его творчество
удев — не его творчество. это GK-H, кажется, и ещё несколько соратников.
>> Да что там для звукового сервера. Для ядра тоже вполне приемлемо. Чуть
>> что — Kernel Panic. Какая там обработка ошибок. =)
> (печально) а вот и есть. у меня когда винт сыпался — бедное
> ядро пыхтело, кряхтело, но в панику кидаться отказывалось. недоработочка-с.Вы вели речь об ошибках, не предусмотренных программой.
>> что касается Поттеринга — udev гентушники форкнули … все остальное его творчество
> удев — не его творчество. это GK-H, кажется, и ещё несколько соратников.Вы серьезно не понимаете, о чем речь? Вам бы новости почитать - особенно те, что о systemd и udev.
> Вы вели речь об ошибках, не предусмотренных программой.что значит «не предусмотреных»? ну, кроме того, что «я — автор, и я — косорукий пионэр, который верит в санта-клауса и то, что то, чего никогда не должно быть, никогда и не произойдёт»?
> Вы серьезно не понимаете, о чем речь?
нет, я не понимаю, как можно не протрезветь к третьему января. потому что иначе, как алкогольной интоксикацией пояснить приписывание авторства udev портерингу я не могу.
то, что некий проект слился с неким другим проектом не обозначает автоматически, что один из них становится произведением авторов второго. что тут неясного-то?
Что ты тугой такой, Мауро облажался и исправился, вопрос решен, ошибка ядра исправлена. Кто он тебе, родственник? Родственник, дай рупь, он мне рупь должен был! Юлишь словесами как адвокат наркобарона.
>2. обработчик ошибки написан без контроля ошибок?
>Для меня является очевидным что обработчик ошибок должен выполнить ровно столько, сколько от него требуется - обработать ошибкуне бывает (не должно быть в принципе) обработчика ошибКИ.
должен быть обработчик ошибОК.
нельзя на одну ошибку реагировать, а на остальные нет.
если ошибка не предвиденная логикой, то должна быть обработка по умолчанию.
нельзя маскировать ошибки, их нужно либо обрабатывать на месте, либо передавать дальше по стэку.
иначе будет как у похтеринга — «стали поступать жалобы пользователей о зависании PulseAudio».
На этот же пункт обратил внимание Мауро: программа PulseAudio обрабатывала только код EINVAL, и выдавала ошибку при обработке других кодов. Мауро предложил что это ошибка в PulseAudio, которую требуется устранить. "В ответ на подобные заявления, Линус Торвальдс в достаточно грубой форме устроил мэйнтейнеру показательную "порку", подчеркнув, что главным правилом разработки ядра является недопустимость нарушения работы компонентов на стороне пользователя." Иными словами, г-н Торвальдс прямо заявил что ошибки в ядре он ошибками не считает, по причине того что любая и любая ошибка ядра вызвана ППО. Думаю не нужно объяснять что функции ядра всегда вызываются ППО.
Поздняк метаться, настрочил портянок на весь опеннет, ошибка ядра уже исправлена. Юзерспейс работает как и прежде, до внесения этой ошибки в ядро.
во-во, а быдло-код похтеринга так таким и остался.
а тут вальве со стимом всякие грядут и тд, и тп.
во народ матюгатЪся то будет!
и ведь именно на линуса. это его линух квакает, гавкает и течёт, а не похтеринга.
а кто такой похтеринг? не, не знаю.
вот так вот и будет.
например тут:
http://steamcommunity.com/app/221410/discussions/0/882966057.../
>На этот же пункт обратил внимание Мауро: программа PulseAudio обрабатывала только код EINVAL, и выдавала ошибку при обработке других кодов.вот по этому я и шокирован стабильностью пульса. это раз.
второй раз шокирован его попытками лезть за каким-то в uvc.
ну напуркуа, мля?!! есть эльза, нафиг через опу то. поэтому они (эльза с пульсом) видимо так и работают. у кого да, у кого нет.а сабж с 3.8.0.рк1 на то и рк, чтобы такие мелочи выскакивали.
>"В ответ на подобные заявления, Линус Торвальдс…да это пусть их. они в одном котле варятся. подерутся, выпьют, помирятся. х/з
а вот похтеринг тут сбоку, из юзерспейса. но fалоиметатор заслужил больше всех из них.
хотя,… может из-за его быдлo-кода и не заметили бы, что номер ошибки изменился :D
> На этот же пункт обратил внимание Мауро: программа PulseAudio обрабатывала только код
> EINVAL, и выдавала ошибку при обработке других кодов.Нет. Между "зависала" и "выдавала ошибку" огромная разница.
> Мауро предложил что
> это ошибка в PulseAudio, которую требуется устранить. "В ответ на подобные
> заявления, Линус Торвальдс в достаточно грубой форме устроил мэйнтейнеру показательную
> "порку", подчеркнув, что главным правилом разработки ядра является недопустимость нарушения
> работы компонентов на стороне пользователя."Судя по всему, Линуса проблема сильно затронула. Далее он полез в код и обнаружил там откровенный кавардак, о чем он не применул покричать.
> Иными словами, г-н Торвальдс прямо заявил
> что ошибки в ядре он ошибками не считает, по причине того
> что любая и любая ошибка ядра вызвана ППО. Думаю не нужно
> объяснять что функции ядра всегда вызываются ППО.А не наоборот ли?
Без анализа кода, твои мысли о правильности использований функций не представляют ценности. На олимпиаде по программированию была поставлена задача определить попадает ли точка с заданными координатами (только целые числа) в геометрическую фигуру высокой сложности. Одним из самых быстрых решений было нарисовать эту фигуру цветом на контрастном фоне и проверить цвет искомой точки. Рисование производилось системными функциями GUI, что обеспечило решению высокую скорость и минимальное количество дописанного кода. Яркий пример разумного использования функций не по назначению.
> за каким-то хером пульса (звуковой!!! сервер между прочим) лезет в usb-камеру, где звука в) априори вообще то нет/me задумчиво посмотрел на USB-камеру со встроенным микрофоном. пойти выбросить, что ли?
UPD: хм, микрофон вроде работает. Но анониму виднее, конечно.
> /me задумчиво посмотрел на USB-камеру со встроенным микрофоном. пойти выбросить, что ли?
> UPD: хм, микрофон вроде работает. Но анониму виднее, конечно.и? в видеокартах тоже звуковые чипы распаяны, пусть пульса в DRI лазит!
>> /me задумчиво посмотрел на USB-камеру со встроенным микрофоном. пойти выбросить, что ли?
>> UPD: хм, микрофон вроде работает. Но анониму виднее, конечно.
> и? в видеокартах тоже звуковые чипы распаяны, пусть пульса в DRI лазит!Если из-за Мауро и ему подобных работа с этими чипами будет сделана через функции DRI - придется лазить.
> Если из-за Мауро и ему подобных работа с этими чипами будет сделана
> через функции DRI - придется лазить.если заменить Мауро на Линуса, то всё верно
> На пальцах — ошибочные ситуации обрабатывает корректноКак раз некорректно, тебе же в конце новости на пальцах разъяснили - для уже открытого файла, с которым уже идет работа, такой ошибки ядро выдавать не должно. Эта ошибка должна возникать в других ситуациях. Он бы еще при попытке открытия несуществующего файла выдавал ошибку записи в видеопамять или сбой звуковой подсистемы.
> если maintainer не знает как работает ядро - чего ж от пользователей
> ждать?Если пользователь Поттеринг пишет системный софт - что-то не так в этом мире. ;)
То есть, это не Поцтеринг со своими г.вноподелиями должен подстраиваться под ядро, а ядро под Поцтеринга? Мило, очень мило.
"WE DO NOT BREAK USERSPACE!"
> "WE DO NOT BREAK USERSPACE!"Если юзерспейс написан поттерингом - ломать можно и нужно. Ведь виноват-то всегда будет он! Хехе.
Any time you have "one overriding idea", and push your idea as a superior ideology, you're going to be wrong.
> То есть, это не Поцтеринг со своими г.вноподелиями должен подстраиваться под ядро, а ядро под Поцтеринга? Мило, очень мило.Ошибка-то стала появляться в новой версии ядра, Поцтеринг тут не при чем. Какой нафиг линукс десктоп, если ядро будет ломать совместимость с пользовательским софтом.
> Ошибка-то стала появляться в новой версии ядра, Поцтеринг тут не при чем.
> Какой нафиг линукс десктоп, если ядро будет ломать совместимость с пользовательским
> софтом.Поттеринг тут при том, что на него всегда можно свалить любую ошибку, и ананимы радостно это подхватят.
> Поттеринг тут при том, что на него всегда можно свалить любую ошибку,
> и ананимы радостно это подхватят.Дооо, особенно в ошибки в grep, который он не писал. Только это ты радостно начал вопить, а не кто-то другой.
> То есть, это не Поцтеринг со своими г.вноподелиями должен подстраиваться под ядро,
> а ядро под Поцтеринга? Мило, очень мило.Лжец, вы все такие на службе Балмера?
> По поводу изменения кода возврата Линус указал на то, что ошибка в коде ядра налицо, так как код ENOENT неприменим в ioctl для управления уже открытыми файлами, он ассоциируется только с манипуляцией с путями и всегда означал отсутствие искомого файла или директории.
> Лжец, вы все такие на службе Балмера?Да. Поттеринг - это один из локомотивов линукса. Его надо завалить. Это хорошо понимают в Microsoft.
> Да. Поттеринг - это один из локомотивов линукса. Его надо завалить. Это
> хорошо понимают в Microsoft.Ик! Огласите весь список, пожалуйста!
> Да. Поттеринг — это один из локомотивов линукса. Его надо завалить. Это
> хорошо понимают в Microsoft.немного не так. надо добавить ещё несколько таких же «локомотивов», и всё завалится само. очень удобно.
а чего ожидалось? потеринг это сотрудник RedHat, у Линукса акции этой компании..
> а чего ожидалось? потеринг это сотрудник RedHat, у Линукса акции этой компании..Не знаю что такое потеринг, а Поттеринг дело полезное делает и не одно, в отличие от вашего коричневого властелина космоса.
>> а чего ожидалось? потеринг это сотрудник RedHat, у Линукса акции этой компании..
> Не знаю что такое потеринг, а Поттеринг дело полезное делает и не
> одно, в отличие от вашего коричневого властелина космоса.Полезное? напомнить его заявления о том что писать портируемый код - это тормозить развитие?
Ну да ЧСВ потешить и показать что линукс пуп земли.
Напомнить его заявления - что пульаудио без ошибок - только долго приходилось отключать из-за багов в эмуляции OSS/Alsa. и тп..Добрых дел за ним не замечно. Может приведете чуть чуть?
> Полезное? напомнить его заявления о том что писать портируемый код - это тормозить развитие?Системные компоненты имеют все основания чтобы не быть портабельными. Это ж не апликухи общего назначения а обвязка вполне конкретной системы.
"портабельный" != "портируемый"
> Полезное? напомнить его заявления о том что писать портируемый код - это
> тормозить развитие?Ну покажи мне какой-нибудь драйвер из ядра FreeBSD, который без модификации можно запустить в линуксе.
>> Полезное? напомнить его заявления о том что писать портируемый код - это
>> тормозить развитие?
> Ну покажи мне какой-нибудь драйвер из ядра FreeBSD, который без модификации можно
> запустить в линуксе.Толсто! Сначала покажи мне какой-нибудь драйвер из RedHat, который заработает в Slackware без модификации.
"Драйвер из Red Hat" - разве Red Hat не занимает первое место по вкладу в ядро Linux, а все райверы не находятся в ядре?
> Толсто! Сначала покажи мне какой-нибудь драйвер из RedHat, который заработает в Slackware
> без модификации.Да вон редхатовский David Arilie вкалывает, а результатами почему-то пользуются все. Ы?
Линус прав только в одном - ENOENT недопустим для ioctl, ибо если посмотреть в man ioctl там его нет.Другое дело, что костылестроение ради совместимости с говнософтом - тоже не вариант
>Другое дело, что костылестроение ради совместимости с говHософтом - тоже не вариантВ свое время Майкрософтавцем пришлось писать хак для того что бы DUNE 2 работала на NT в полноэкранном режиме. Этот хак так и тянется. И в новейших планшетах на Вindows 8 pro он так же присутсвует.
Вот с кого нужно брать пример по мнению Линуса.
Пруфлинк?
Google?
> Google?Пруфлинки должны давать авторы комментария, а не читающие его.
>Пруфлинки должны давать авторы комментария, а не читающие его.Пруфлинк?
>>Пруфлинки должны давать авторы комментария, а не читающие его.
> Пруфлинк?Google?
Google должны давать авторы Гугла, а не пруфлинки, читающие их.
> Google должны давать авторы Гугла, а не пруфлинки, читающие их.Пруфлинк?
>Пруфлинк?Я лично про Dune 2 никогда не слышал, но вот про хак для какого-то древнего SimCity — это известная история. Вот, например, Ян Мёрдок, основатель Debian, рассказывает про это, цитируя Спольски:
http://ianmurdock.com/platforms/on-the-importance-of-backwar.../
Вывод Мёрдока примерно таков: все поломать и сказать, что это кто-то другой виноват, каждый может, а вот хорошие инженеры должны развивать платформу, стараясь не ломать обратную совместимость, что бы ни говорили всякие фанатики.
Иан (с ударением на «и»), а не Ян.
>Этот хак так и тянется.Не хак, а весьма гибкий уровень/слой/API для обеспечения совместимости.
Которым могут воспользоваться все желающие - например что бы починить отображение цветов в старых DirectX игрухах под Windows 7.Учите матчасть. Хак... хе хе.
> гибкий уровень/слой/API для обеспечения совместимостиЭто цитата из материалов MS?
Вот еще по теме гибких слоев, из первых рук (Реймонд Чен):
http://habrahabr.ru/post/103598/
> из первых рук
> Реймонд Чен
> habrahabr.ruобалдеть. Чен стал писать по-русски, да ещё и на хабре! breaking news!
>> из первых рук
>> Реймонд Чен
>> habrahabr.ru
> обалдеть. Чен стал писать по-русски, да ещё и на хабре! breaking news!Не ерничайте. Кому удобнее — перевод, кому нет — там есть ссылка на первоисточник. Оптимальный вариант.
> Не ерничайте.не буду. как только перевод перестанут называть «информацией из первых рук». из вторых, как минимум.
> не буду. как только перевод перестанут называть «информацией из первых рук».
> из вторых, как минимум.Ну тогда ерничайте. Интернет большой...
>> не буду. как только перевод перестанут называть «информацией из первых рук».
>> из вторых, как минимум.
> Ну тогда ерничайте. Интернет большой…а ты продолжай дезинформировать людей: буквы всё стерпят.
> Линус прав только в одном - ENOENT недопустим для ioctl, ибо если
> посмотреть в man ioctl там его нет.
> Другое дело, что костылестроение ради совместимости с гoвнософтом - тоже не вариантENOENT в момент когда это противоречит любому здравому смыслу - это хана здравому смыслу. А если майнтайнер дурак и еще и спорит с очевидным - кто ему доктор? Ну вот Торвальдсу и приходится пролечивать ушибшего мозг индивида.
"Mauro, SHUT THE FUCK UP!"Линус, такой няшечка. Давно в челюсть не получал. :)
Рискни, у него жена кратистка.
каратиска
и еще там мастер с даном, номера не помню
> каратиска
> и еще там мастер с даном, номера не помнюВан Дамм тоже крут как вареные яйца, а толку?
Какой-то пьяный байкер без всякого дана набил в баре морду.
> Рискни, у него жена кратистка.Да, с ней он поди вежливый :)
> Рискни, у него жена кратистка.во, кукоразе - сразу задротов видно,
как в детском саду: "а у меня брат есть, он в 4 классе учится!!!111одын"
Давно под автобус не попадал
> Давно под автобус не попадалДавно по УК за угрозы не проходили.
>> Давно под автобус не попадал
> Давно по УК за угрозы не проходили.О-ло-ло. Это ви никуда таки не проходили. Напишите заявление для проформы. Вам быстро объяснят что пока трупа нет, никому не интересно заниматься угрозами вашего убийству.
> быстро объяснят что пока трупа нет, никому не интересно заниматься угрозами вашего убийству.В сша законы имеют такое интересное свойство: они там еще и реально работают. К законам относятся с уважением. Одна из причин по которой они живут лучше. Потому что есть некая предсказуемость хотя-бы. А когда все происходит через разборки по понятиям, как у нас (вплоть до прецедентов типа http://www.lenta.ru/articles/2012/12/28/pozner/) - да, конечно, ж@па будет. У нас "по понятиям" привнесоли даже в законотворчество. Абзац!
ололо! умнег в треде
жить в долг и не отдавать его - это да, "уважать законы и жить лучше" :D
>> Давно под автобус не попадал
> Давно по УК за угрозы не проходили.Курим первоисточник:
"Статья 119. Угроза убийством или причинением тяжкого вреда здоровью
1. Угроза убийством или причинением тяжкого вреда здоровью, если имелись основания опасаться осуществления этой угрозы"
Докажите (напомню - у нас презумция невиновности, доказывать должны Вы), что, во-первых, в моих словах вообще есть угроза (а я скажу, что, когда он на красный свет переходить собрался, я его за рукав схватил, и сказал "ты чо, давно под автобус не попадал?"), а во-вторых, докажите, что есть реальные основания опасаться, что я устрою наезд автобуса на Линуса или толкну его под проходящий автобус.
8 лет тебе? Вот ты убил человека. Тебя судят. Говорят - ты убил, вот статья убийство, будешь сидеть. А ты такой умный, "народ, я его не убил а транклюкировал, а за транклюкацию статьи нет". Тут вздох облегчения в зале, судья отпускает тебя в звле суда и все расходятся подомам.Текст закона это просто туфта, некоторый морально этический ориентир. Конкретное решение прнимает конкретный человек (для уменьшения хаоса, сделан механизм подталкивающий этого человека не к скопропалительным эмоциональным выводам, а более менее спокойному выбору)
То есть текст закона и закон всего лишь ориентиры.
Сходите в ближайший районный суд на любое открытое заседание и разъясните там собравшимся, что закон - это туфта. Потом поделитесь ощущениями.
Резко он его отчехвостил, такими словами... Мой начальник никогда так грубо меня не ругает в случае каких-либо моих косяков.
Видать, хорошо Рождество встречал, а теперь - голова бо-бо, во рту ка-ка, с носа кап-кап. И так жить противно, тут ещё этот против патча возникает... =)
ваш начальник слоупок
> ваш начальник слоупокА ваш фастпок и поэтому попка не успевает закрываться?
Вы позволяете начальнику оскорблять вас нецензурными выражениями?
Это, кстати, уголовная статья.
Смотрите что бы он вас не "опустил".
> Вы позволяете начальнику оскорблять вас нецензурными выражениями?
> Это, кстати, уголовная статья.
> Смотрите что бы он вас не "опустил".зачем ему его ругать, сразу порка
> зачем ему его ругать, сразу поркаВо, как истинный макинтошник вы в курсе как надо.
Мэйнтейнер однозначно неправ по сути, но форма -- тихий ужас.Вот на такое посмотришь -- и подумаешь: как же всё-таки хорошо, что никогда с таким хамством начальства я на работе не сталкивался. Довольно грустно читать такие безобразные пассажи в исполнении человека, результаты труда которого весьма уважаешь.
> Мэйнтейнер однозначно неправ по сути, но форма -- тихий ужас.
> Вот на такое посмотришь -- и подумаешь: как же всё-таки хорошо, что
> никогда с таким хамством начальства я на работе не сталкивался. Довольно
> грустно читать такие безобразные пассажи в исполнении человека, результаты труда которого
> весьма уважаешь.судите по себе,
У Линукса накипело.
накипело - так пусть прокипятит с лимонной кислотой и не позорится
он считает что такая форма общения это круто - это видно из различных интервью с ним - типа это юмор такой у него
> накипело - так пусть прокипятит с лимонной кислотой и не позоритсяА чего такого позорного в том чтобы сказать баклану что он баклан? Если до него не доходит вежливо - значит надо усилить, чтобы дошло наконец. Гражданин сам неправ, криво поюзав код возврата и после этого - неправ в квадрате когда полез права качать и дискутировать.
> А чего такого позорного в том чтобы сказать баклану что он баклан?Ничего. Сказать можно. И жёстко сказать можно, так, чтобы ни у кого непонимания не осталось. Но это достаточно легко и просто сделать корректно, без публичных нецензурных оскорблений.
И, кстати, наверное, мэйнтейнер тоже не такой уж баклан, даже если в этом случае сотворил глупость. Иначе какого чёрта он вообще мэйнтейнер?
> А чего такого позорного в том чтобы сказать баклану что он баклан?
> Если до него не доходит вежливо - значит надо усилить, чтобы
> дошло наконец. Гражданин сам неправ, криво поюзав код возврата и после
> этого - неправ в квадрате когда полез права качать и дискутировать.Тебе в 15 лет может это непонятно, но адекватные начальники хвалят на людях, а ругают тет-а-тет. Оно для работы так лучше.
> Тебе в 15 лет может это непонятно, но адекватные начальники хвалят на
> людях, а ругают тет-а-тет. Оно для работы так лучше.Отругать на людях - не в пример эффективнее. Особенно когда вам публично намекнут на квалификацию и понимание вами процессов. Сразу появится лютый стимул подтянуть скиллы. Кому же нравится выглядеть набитым дураком на публике, да еще и обоснованно к тому же? :)
>> А чего такого позорного в том чтобы сказать баклану что он баклан?
>> Если до него не доходит вежливо - значит надо усилить, чтобы
>> дошло наконец. Гражданин сам неправ, криво поюзав код возврата и после
>> этого - неправ в квадрате когда полез права качать и дискутировать.
> Тебе в 15 лет может это непонятно, но адекватные начальники хвалят на
> людях, а ругают тет-а-тет. Оно для работы так лучше.Это была озвучена мечта любого быдлокодера
Лучше с адипинкой :)
> Мэйнтейнер однозначно неправ по сути, но форма -- тихий ужас.
> Вот на такое посмотришь -- и подумаешь: как же всё-таки хорошо, что
> никогда с таким хамством начальства я на работе не сталкивался. Довольно
> грустно читать такие безобразные пассажи в исполнении человека, результаты труда которого
> весьма уважаешь.Заканчивали институт благородных девиц с кисейными барышнями?
> результаты труда КОТОРОГО весьма уважаешьНе так давно уже приводил тест-лакмус: "Кто написал Линукс? Давайте ответим хором все вместе!!" А вот и не угадали.
>> результаты труда КОТОРОГО весьма уважаешь
> Не так давно уже приводил тест-лакмус: "Кто написал Линукс? Давайте ответим хором
> все вместе!!" А вот и не угадали.негры, бомжы, силиконщики, андро-рабы и другие отчаявшиеся мелко-ненавистники
Мммм... А где и у кого Вы узрели утверждение, что упомянутый господин "написал Линукс"?Его заслуга в другом, в том, что без него Линукса, возможно, не было бы. И в том, что он вкладывает массу усилий в дальнейшее существование Линукса.
Знаете, я вообще не уверен, можно ли писать здесь такой пост, но я не очень понимаю, почему именно вокруг этого поста Линуса столько разговоров. Разве выражения, используемые Линусом, являются сильно нецензурными? У нас в России разработчики куда крепче выражаются.Ладно, давайте приступим к нормальному переводу.
Если я хочу сказать, чтоб человек заканчивал тратить время впустую, я могу сказать 'Stop to fuck off' или же 'Stop to waste your time'. С этим понятно, второй вариант цензурнее, как я понимаю.
Но если я хочу сказать, что человек опять облажался, и что я хочу, чтобы он этого не делал - как мне это нормально сказать? Кроме 'Shut the fuck up' мне ничего лаконичнее в голову не приходит.И да, я заранее извиняюсь за этот оффтопик.
Одно дело когда ругаются в компании и на одном уровне подчинённости, другое когда это выносится в паблик, и между начальником и подчинённым.
Один чувак, увольняясь из Микрософт в Гугл выслушал трёхэтажный мат от Балмера, и написал об этом пост в своём блоге. Если бы он не написал, то никто бы не узнал как орёт и матерится Балмер.Разработка Linux идет в открытом виде, эту кухню не скроешь от сообщества. Но не надо думать, что во всех остальных компаниях все такие вежливые и на "Вы" всегда разговаривают.
Linux - очень серьезный, глобальный, международный проект. Это даже не какая-то ссаная Шындоус, закрытая проприетарная поделка. Ответственность огромная. Поэтому эмоции управляющего проектом Linux можно понять. У всех бывает, он тоже человек.
> Ответственность огромная. Поэтому эмоции управляющего
> проектом Linux можно понять. У всех бывает, он тоже человек.Если ответственность огромная, то тем более нужно засунуть свои личные эмоции поглубже и взвешивать каждое слово.
либерализм хорош в политике. да и то только во время приватизации.
а для разработки — нет. будешь по головке гладить за косяки, они увеличатся в геометрической прогрессии.
накосячил? получи пистон.
а не умеешь не косячить и не нравятся пистоны за них получать? увольняйся и перестань строить из себя разработчика ядра.
народу хватает, не сорок пятый.
вот кто бы ещё похтеринга так построил.
В данном случае речь не о разработке, Мауро не отрицал ошибку и не отказывался её исправлять. Речь именно о публичной (!) критике. Проблема не настолько серьёзная чтобы в такой форме и такими словами публично оскорблять разработчика.Мауро - не подчинённый Торвальдса.
Если пример Майкрософт ближе, то аналогом будет Балмер, публично оскорбляющий одного из рядовых разработчиков nVidia. Цель? Смысл?
Если Вы полагаете, что так можно разговаривать со стоящим ниже в иерархии (фирмы, проекта или чего бы то ни было ещё), то Вы, вероятно, работали в очень скверных фирмах и скверных проектах.
> Если Вы полагаете, что так можно разговаривать со стоящим ниже в иерархии
> (фирмы, проекта или чего бы то ни было ещё), то Вы,
> вероятно, работали в очень скверных фирмах и скверных проектах.И это, кстати, не удивительно, у нас в стране крайне распространен стресс-менеджмент.
Поработав в неэффективной компании где сотрудники пребывают в состоянии перманентного стресса люди почему-то перекидывают свой опыт на другие компании. И что самое занятное - даже на другие страны.
> Если Вы полагаете, что так можно разговаривать со стоящим ниже в иерархииа с чего ты решил, что Мауро — «ниже в иерархии»? соратник напорол косяков. соратник отказывается их признавать. соратник получил разнос от соратника. если соратник недоволен — он может уйти. и взять с собой копию проекта. и управлять новым проектом так, как считает нужным. где здесь «ниже в иерархии»?
> а с чего ты решил, что Мауро — «ниже в иерархии»?Ваша (сорри, твоя) мысль странна: считать, что BDFL ( http://en.wikipedia.org/wiki/Benevolent_Dictator_for_Life ) не выше. Мауро, конечно, может уйти, форкнуть ядро и попытаться собрать вокруг нового ядра сообщество. Но неужели Вы (да-да, ты) всерьёз полагаете, что это реально?
К слову, программист, работающий в любой фирме -- не раб и не крепостной, он тоже может уйти и даже попробовать заняться тем же бизнесом, которым занимается фирма. Но это не так просто, и почему-то массового характера это явление не имеет.
Форк, на мой взгляд, жизнеспособен только в следующих случаях:
1. Проект крохотный (2-3 разработчика). Один поругался с остальными, форкнул, сам развивает в соответствии со своими представлениями. Вполне реально, но это не случай ядра Linux.
2. В проекте и вокруг есть серьёзные разногласия и масса недовольных (причины могут быть разные), которых можно привлечь на свою сторону (расколов, кстати, проект). Тут можно вспомнить историю OpenOffice/LibreOffice. Но это опять не случай ядра.
3. Планируется не полноценный форк, а поддержка набора своих патчей к основной ветке. Это, к слову сказать, практикуется. Но менять внешнее поведение (те же коды ошибок) в наборе патчей? Вряд ли это реально, потому что под изменённое поведение никто подстраиваться не будет.
В итоге имеем: если господин Мауро хочет всерьёз заниматься ядром, ему надо держаться в той структуре, в которой он находится, и никого не волнует, что формально ему Торвальдс не начальник. Достаточно того, что в иерархии сообщества Торвальдс выше. А уйти Мауро, конечно, может, не раб. Но хочет ли?
> Ваша (сорри, твоя) мысль странна: считать, что BDFL ( http://en.wikipedia.org/wiki/Benevolent_Dictator_for_Life
> ) не выше.не выше. ну невозможно быть «выше» в структуре, где есть возможность не просто самому уйти, а ещё и вполне легально утащить (для пуристов: да, скопировать) с собой код.
> Мауро, конечно, может уйти, форкнуть ядро и попытаться
> собрать вокруг нового ядра сообщество. Но неужели Вы (да-да, ты) всерьёз
> полагаете, что это реально?конечно, нет. так же нереально, как и мощная ОС с открытыми исходниками.
> Но это не так просто, и почему-то массового характера это явление не имеет.
танцевать тоже могут научиться почти все. однако массово в танцоры не идут. разжёвывать надо?
> Форк, на мой взгляд, жизнеспособен только в следующих случаях…
и? спокойно можно продолжать брать нужный код из родительского проекта, развивая свою часть отдельно. если получается годно — есть шанс, что или родительский проект интегрирует наработки, или форк станет новым «основным». собственно, с egcs примерно так произошло. а XEmacs живёт отдельно и тоже не особо по этому поводу парится.
> В итоге имеем: если господин Мауро хочет всерьёз заниматься ядром, ему надо
> держаться в той структуре, в которой он находитсявот это и есть иллюстрация к тезису «почему не все идут в танцоры».
> А уйти Мауро, конечно, может, не раб. Но хочет ли?
это уже его личное дело.
>> Мауро, конечно, может уйти, форкнуть ядро и попытаться
>> собрать вокруг нового ядра сообщество. Но неужели Вы (да-да, ты) всерьёз
>> полагаете, что это реально?
>конечно, нет. так же нереально, как и мощная ОС с открытыми исходниками.Всё реально, если есть объективные предпосылки. Форк ядра тоже будет реален, если таковые возникнут. Если Торвальдс вдруг совершенно потеряет адекватность и начнёт действительно систематически зарываться, проблема эта решится. Или если возникнут большие противоборствующие лагеря с разным видением направлений развития.
Но то, что одного человека оскорбили, -- не слишком веская причина для жизнеспособного форка (не временного, а постоянного, конечно) огромного проекта, требующего непрерывных развития и поддержки.
> Но то, что одного человека оскорбили, -- не слишком веская причина для
> жизнеспособного форкаво-первых, кому как. во-вторых, отчитали-то по делу. но разговор наш изначально был совсем о другом.
> во-первых, кому как. во-вторых, отчитали-то по делу. но разговор наш изначально был
> совсем о другом.Про "по делу" -- понятно, это мы вроде даже и не обсуждали.
А разговор был о том, что, при всех внешних различиях, есть общее между положением программиста в большом открытом проекте и в большой фирме, где он работает, получая зарплату. И это общее выражается следующими словами: анархии нет, всё равно есть кто-то над тобой, и, если уж хочешь оставаться в структуре, соблюдай правила и подчиняйся вышестоящим. И то, что можно уйти на необитаемый остров и там в гордом одиночестве форкнуть проект -- обычно не утешение (если, как я сказал, нет других веских причин для форка).
Так что, имхо, Мауро -- как раз подчинённый Торвальдса, хотя их отношения и не связаны с зарплатой. Подчинение же разное бывает. Например, обычная практика (в частности, у нас в фирме принятая): у людей есть начальники, но попав, даже на краткое время, в тот или иной проект, ты (правда, только в этом проекте) подчиняешься ещё и руководителю этого проекта, хотя тот и не является в обычном понимании твоим непосредственным начальником, даже по должности может быть заметно ниже, чем ты. Вот и тут подчинение похожее.
Вот, кстати, лишнее подтверждение.https://www.linux.com/news/special-feature/linux-developers/...
Тут суть в том, что Мауро вдобавок работает над своей подсистемой отнюдь не в свободное от основной работы время. По сути, это та самая ситуация, которую я описал: есть непосредственное начальство в RedHat и есть проект ядра Linux, над которым Мауро трудится, получая за это зарплату в RedHat. Всё очень похоже на описанное мной подчинение в матричной структуре предприятия, и тот факт, что сам проект является внешним и не подчиняется RedHat, мало меняет ситуацию. Будет он нужен своему работодателю, если, вместо работы над существующим ядром, форкнет его? Да никогда в жизни.
> Тут суть в том, что Мауро вдобавок работает над своей подсистемой отнюдь
> не в свободное от основной работы время.ещё раз: ему линус деньги платит?
> ещё раз: ему линус деньги платит?А почитайте, почитайте по ссылке. RedHat ему платит.
(вздыхает ещё сильней) это у тебя в честь какого-то праздника, который, вроде, был тут, понимание простого вопроса вызывает такие сложности?
> есть общее между положением программиста в большом открытом проекте и в большой фирме,
> где он работает, получая зарплату.да-да, из фирмы таки в большинстве случаев можно уйти, легально забрав с собой код проекта и продолжив проект развивать. хочу жить на такой планете.
> да-да, из фирмы таки в большинстве случаев можно уйти, легально забрав с
> собой код проекта и продолжив проект развивать. хочу жить на такой
> планете.Уже похоже на троллинг. Общее, конечно, не это. До свидания.
> Уже похоже на троллинг.«троллинг» — это очень удобное название неудобного вопроса. как только оппонент приближается к месту, где есть опасность, или если оппонент настойчиво требует ответа на очень неудобный вопрос — всё, это «троллинг». стоит только прилепить такую бирку — и дискуссия автоматически выиграна: оппонента больше никто не будет слушать, и даже самые крепкие и чёткие его доказательства не произведут никакого эффекта.
хозяйке на заметку: если этот вариант не прошёл, есть запасной. он не такой изящный, но всё же позволяет не потерять лицо, проиграв: можно заявить, что «ох лол, я с тобой ваще не спорил, я тебя тролил!» при грамотном применении оппонент выглядит полным дураком, не разглядевшим, что над ним «издеваются». итог примерно такой же, как и у первого метода.
побед вам в спорах, юные пушистые друзья!
>> Уже похоже на троллинг.
> «троллинг» — это очень удобное название неудобного вопроса.IMHO он всё-таки присутствовал в форме некоторого передёргивания, но давайте не превращать обсуждение в обсуждение обсуждения -- хотя бы по случаю Рождества, с коим и поздравляю.
> IMHO он всё-таки присутствовал в форме некоторого передёргиванияэто ты про «ответы» типа: «линус платит деньги Мауро?» — «Мауро платит деньги RH!»? это не «троллинг», это просто попытка уйти от неудобного ответа, сменив тему дискуссии.
или про утверждение «в обычной фирме программист так же свободен», уточняющий вопрос к которому я и задал, просто не совсем в конвенциальной форме?
повторюсь всё-таки: «троллинг» — это очень удобное название неудобного вопроса.
>> IMHO он всё-таки присутствовал в форме некоторого передёргивания
> это ты про «ответы» типа:..."нет никакой иерархии, взял и форкнул". Даже без работы в шляпе над linux kernel подобное предложение остаётся даже не сомнительным, а издевательским.
Линус действительно старший в этой стае, потому как взялся отвечать за сделанное и до сих пор справляется.
> …"нет никакой иерархии, взял и форкнул". Даже без работы в шляпе
> над linux kernel подобное предложение остаётся даже не сомнительным, а издевательским.O_O
взял — и форкнул. берёшь из официальной ветки весь нужный код, свою подсистему пишешь как нравится.
> Если ответственность огромная, то тем более нужно засунуть свои личные эмоции поглубже
> и взвешивать каждое слово.ты вполне можешь форкануть ядро, завести свой lkml и вести там беседы так, как считаешь верным. ну, или просто уволить тех, кто не выполняет твоё «надо». можешь уволить линуса хоть завтра, и поставить на его место того, который выполняет твои «надо». в чём проблема-то?
> Но не надо думать, что во всех остальных компаниях все такие
> вежливые и на "Вы" всегда разговаривают.В типовой ITшной компании обычно мат-перемат стоит вообще постоянно. ITшники не ругаются матом. Они им разговаривают. Профессия такая.
Мат заменяет внутренние документы, в случае их отсутствия. Когда ответственность за ошибку определяется лишь тем кто громче кричит - тогда и появляются эмоциональные высказывания Торвальдса про Мауро, который авторитетом, грубостью и матом утверждает свою правоту, которую вообще то нужно утверждать аргументами, которых у Торвальдса нет.
> Мат заменяет внутренние документы, в случае их отсутствия.Если вообще все делать через внутренние документы, работа встанет. Знаете что такое "итальянская забастовка"? :)
>> Мат заменяет внутренние документы, в случае их отсутствия.
> Если вообще все делать через внутренние документы, работа встанет. Знаете что такое
> "итальянская забастовка"? :)Мда. Типичный ИТ-шных ход - довести любую обсуждаемую идею до абсурда.
>> Но не надо думать, что во всех остальных компаниях все такие
>> вежливые и на "Вы" всегда разговаривают.
> В типовой ITшной компании обычно мат-перемат стоит вообще постоянно. ITшники не ругаются
> матом. Они им разговаривают. Профессия такая.Ты просто слишком долго работаешь в техподдержке. Пора расти.
> когда это выносится в паблик, и между начальником и подчинённым.э… линус платит Мауро деньги, и Мауро работает в компании линуса? а lkml является официальным списком рассылки компании линуса? когда это мир успел так поменяться, как я успел это пропустить?
> я не очень понимаю, почему именно вокруг этого поста Линуса столько разговоров.потому что у людей стойкий стереотип, что «fuck» — это Очень Страшный Мат. многоэтажный — чем больше раз употребил «fuck», тем больше этажей. а то, что это иногда может быть всего лишь вполне допустимое в разговоре «заткнись и перестань пороть херню» — не доходит. им кажется, что линус ругается, как толпа пьяных извозчиков.
Мауро наверное поттерингофоб, хотел того потроллить в стиле местных красноглазиков -- да последствий не просчитал
> Мауро наверное поттерингофоб, хотел того потроллить в стиле местных красноглазиков -- да
> последствий не просчиталХотел свалить свой косяк на ненавидимого хомячками леннарта, но линус внезапно оказался не хомячком и не повелся. Облом-с.
А какое отношение разработчик ядра имеет к разработчику ППО? Судя по всему, г-н Торвальдс неверно понимает своё место в проекте, или же его неверно понимают все остальные разработчики.Так если г-н Торвальдс имеет право критиковать всех разработчиков, то он не разработчик ядра, а руководитель проекта "Линукс и всё ППО", а все разработчики обязаны отчитываться перед ним, в т.ч. за допущенные ошибки.
И не стоит говорить о его "сугубо личном мнении", он человек публичный и деликтоспособный, должен понимать последствия своих действий и ответственность.
критика это ерунда, вот если он факью покажет !!!!
Он допустил ошибку в ядре, потом еще кобенился не хотел исправлять. Да, он обязан был ее исправить.
Не с этим. Обсуждение с 4.43.
Всё правильно Линус Торвальдс делает, а вот если бы это была винда, то вину свалили бы на пользователей у которых не правильное железо
А то что они имена вызовов в ядре меняют и для новой версии каждый раз драйвера патчить приходиться - это нормально?
Переработанный код, Новый API
Старый код принято выкидывать и делать постоянный рефрактинг
Вот и тут рефакторинг почему его этот так взбесило вдруг?
> Вот и тут рефакторинг почему его этот так взбесило вдруг?причем даже не релизная версия, а всего лишь кандидат в релизы
Взбесило неадекватное поведение мэйнтейнера, облажавшегося с ядром и публично сваливаюшим саою ошибку на юзерспейс. НА таком уровне как тот мэйнтейнер не бывает случайностей, слишком сложная цепочка. Значит тот напмеренно именно так и поступил, что означает лютый пипец с любой точки зрения. Какие еще ошибки он не исправлял ранее, по той же причине?
> Взбесило неадекватное поведение мэйнтейнера, облажавшегося с ядром и публично сваливаюшим
> саою ошибку на юзерспейс. НА таком уровне как тот мэйнтейнер не
> бывает случайностей, слишком сложная цепочка. Значит тот напмеренно именно так и
> поступил, что означает лютый пипец с любой точки зрения. Какие еще
> ошибки он не исправлял ранее, по той же причине?какой писец он сделал? Вернул код ошибки другой? Но ситуация все равно ошибочная и проблем быть не должно. Ан нет - в одной удивительной программе - забыли обработать все остальные ошибки (кроме EINVAL) - и она повисла считая что ошибки не произошло.
Так что не прав - тот кто вернул другой код ошибки оставив флаг ошибки на месте, или тот кто не учел возможного развития, игнорировал флаг ошибки и пошел делать какие-то странные действия ?
>Так что не прав - тот кто вернул другой код ошибки оставив флаг ошибки на месте, или тот кто не учел возможного развитияне правы оба.
но, другой номер ошибки, да ещё в рк1 — это мелочь, хоть и позорная.
но обрабатывать ошибки в стиле поттеринга — вообще детская.а линусу видимо наплевать что там в пульсе. но не наплевать что в ядре.
вот такой вот асимметричный ответ.
> Вот и тут рефакторинг почему его этот так взбесило вдруг?Потому что
1) Поюзан код возврата который ну вообще не в тему.
2) Это поломало софт.
Внутренности менять можно как угодно. Ломать внешнее ABI - нет.
> А то что они имена вызовов в ядре меняют и для новой
> версии каждый раз драйвера патчить приходиться — это нормально?да. с какой стороны драйвера являются userland'ом, и где хоть раз было заявлено, что «API для драйверов начертано на скрижалях»?
Для тех, кто не ходит по ссылкам, нарезка "красноречия" Линуса. Очевидно, что в этот раз он зарвался.Mauro, SHUT THE FUCK UP!
...
We never EVER blame the user programs. How hard can this be to
understand?
...
To make matters worse, commit f0ed2ce840b3 is clearly total and utter
CRAP even if it didn't break applications.
...
Shut up, Mauro. And I don't _ever_ want to hear that kind of obvious
garbage and idiocy from a kernel maintainer again.
...
And you've shown yourself to not be competent in this issue,
...
We particularly don't
break user space with TOTAL CRAP. I'm angry, because your whole email
was so _horribly_ wrong, and the patch that broke things was so
obviously crap. The whole patch is incredibly broken shit.
...
Fix your f*cking "compliance tool", because it is obviously broken.ps. всё моё уважение потерял. В человеческом плане по факту просто ещё одна айти-обезьяна.
Ну то, что Линус позволил себе пару раз выразитьсяи, вообще, не совсем пушистый вы продемонстрировали, но:
1) Без фраз Мауро не очень понятно, может он в конец достал;
2) Я рад, что проект возглавляет Линус, а не Мауро. Судя по тому, что для Линуса ошибка была очевидна, он в ядре шарит получше;
2.5) Раз он может показать ФАКт инвидии, то можно предположить, что и в отношении некоторых других не очень корректен;
3) Мне кажется Вы сами приписали Линусу какие-то черты и, когда реальность перестала отвечать Вашим представлениям, тяжело это переживаете. Линус не духовный лидер (хотя и у них есть свои недостатки).
> нарезка "красноречия" Линуса. Очевидно, что в этот раз он зарвался.Вы так говорите, будто подобных перлов за ним не водится с незапамятных времен.
> ps. всё моё уважение потерял.Ну почитайте для контрасту вежливенькие письмишки вот здесь: http://ftp.linux.kiev.ua/pub/mirrors/iowaconsumercase.org/
> В человеческом плане по факту просто ещё одна айти-обезьяна.
Да нет, просто виндостудент. Но не переживайте, уши у вас таких торчат не хуже.
> ps. всё моё уважение потерял.не забудь линусу об этом написать. он покается и публично перед тобой извинится. три раза.
Вcе прaвильнo сдeлал! Пoчaще бы такие показатeльные пopки провoдились, ибo когда заканчивается дисциплина - начинается хaос. А хaос никому не нужeн. Ни в таком критически важном месте, как ядро системы. Вот это пaссивнoе поведение больше всего добивает: "Ну понимаешь, ну чет сломалось, ну это наверно где-то "там", пнятнeнько?".
> Вcе прaвильнo сдeлал! Пoчaще бы такие показатeльные пopки провoдились, ибo когда заканчивается
> дисциплина - начинается хaос. А хaос никому не нужeн. Ни в
> таком критически важном месте, как ядро системы. Вот это пaссивнoе поведение
> больше всего добивает: "Ну понимаешь, ну чет сломалось, ну это наверно
> где-то "там", пнятнeнько?".Ответ вам и тем, кто отчаянно плюсует этому посту:
Возьмите вырезку "крылатых фраз" выше. Замените слово "Мауро" на "мама/жена/подружка". Замените "code/patch" на "суп/котлеты". И потом повторите этот клоунский номер у себя дома, используюя письмо Линука как шаблон для выражения своего мнения.Потом поделитесь опытом как хамство улучшает отношения и качество продукта.
> жена/подружкавы им льстите
>> жена/подружка
> вы им льститея уже это понял :)
> Возьмите вырезку "крылатых фраз" выше. Замените слово "Мауро" на "мама/жена/подружка".Айтишники - не благородные девицы. Они между собой как правило матом просто разговаривают, шутят, общаются. Это в целом достаточно нормально по отрасли. Бывает и хуже, у американских вояк термины типа SNAFU - вообще чуть ли не официальный жаргонарий. А уж услышать от типового янки STFU (да, то самое) - да это вообще обычное явление.
Как правило матом разговаривают старшеклассники и слесари. Ну и другие люди со слабой способностью ёмко передавать смои мысли и эмоции с помощью десятков тысяч слов родного языка.
Вот я тоже смотрю: можно подумать, что половина окружающих живёт в каком-то параллельном мире, где программисты говорят исключительно матом, а в случае, если мат сразу не доходит, видимо, сразу бьют друг друга по голове чем-нибудь тяжёлым. Кто все эти люди? :-DНо почему-то мой опыт совсем другой. 95% окружающих меня разработчиков вполне понимают нормальные человеческие доводы и нормальное человеческое общение. Мат почти не используется, а если используется, то в основном для рассказывания анекдотов, из которых его не выкинешь. Никогда ещё ни один мой начальник за 20 лет работы не позволял себе в мой адрес ничего подобного, хотя мне неоднократно сообщали, где и в чём я был неправ, иногда даже жёстко. И точно так же ни одному из своих подчинённых за те уже долгие годы, что они у меня есть, мне тоже не пришлось подобным образом хамить.
а наш прапорщик говорил "Всегда мечтал иметь столько идиотов!"
> Как правило матом разговаривают старшеклассники и слесари. Ну и другие люди со
> слабой способностью ёмко передавать смои мысли и эмоции с помощью десятков
> тысяч слов родного языка.довелось мне как-то плотно «вращаться» в среде филологов… ну, кто в курсе — тот уже всё понял. а кто не в курсе — всё равно не поверит.
вы бы про хаос Поттерингу написали, да
> и пошёл бы искать другую работу с нормальными начальниками.ой, линус таки платит Мауро? круто. а можно пруфлинк? очень смелое заявление.
Это очень показательный момент!
Линус - практик. Ему насрать на всякие абстрактные "улучшения" в вакууме, которые приводят к проблемам пользователя. Поэтому ядро linux и взлетело, в отличие от всяких "идеальных" ядер.Я придерживаюсь точно такого же правила:
СОФТ СУЩЕСТВУЕТ ДЛЯ ПОЛЬЗОВАТЕЛЯ, и должен служить ему.Если кулхацкер зарвался и начал костылять "вещь в себе", то ему нужно сначала вежливо об этом сказать. Если он не понял, то жёстко и привсенародно вы%бать.
Именно так Линус и поступил.
Не кулхацкер, а мейнтейнер подсистемы ядра.
Не сначала вежливо объяснить, а сразу прилюдно нахамить.Линусу надо на терапию по бедным кварталам гулять ходить, если воспитания недостаточно, чтобы объясняться цивилизованно.
> Не кулхацкер, а мейнтейнер подсистемы ядра.Тем более. Мейнтейнер подсистемы, а вы%бывается как школьник с лора: "УМВР ЧЯДНТ".
> Не сначала вежливо объяснить, а сразу прилюдно нахамить.
Ему несколько уважаемых человек вежливо объяснили. А Линус уже потом встрял. Ты почитай ветки дискуссий.
> Линусу надо на терапию по бедным кварталам гулять ходить, если воспитания недостаточно,
> чтобы объясняться цивилизованно.У него жена каратистка, он знает цену словам :)
Дальше почитай ответ Мауро - он полностью признал свою неправоту:> Линус: "Мы не нарушаем пользовательское пространство!"
> Мауро: "Я знаю, и я делаю все возможное чтобы отклоненить исправления,
> которые потенциально могут нарушить пользовательское заранее.
> Иногда дерьмо случается. Извините за это.
> Всех благ,
> Мауро"После чего Линус уже в спокойном дружелюбном тоне обменялся с ним ещё двумя сообщениями.
> Ему несколько уважаемых человек вежливо объяснили. А Линус уже потом встрял. Ты
> почитай ветки дискуссий.Я ветку "Linux 3.8-rc1" смотрел. Ровно один человек написал по поводу этого бага и Мауро ровно один раз ответил ему перед тем как Линуса прорвало.
А вы сами то ветку смотрели?
> А вы сами то ветку смотрели?Смотрел. Там до Линуса два человека говорят о проблемах и их решении.
Стивен, ссылаясь на длинное рассуждение Фредерика, говорит о его патче для повышения производительности, и что патч не приняли.
Рафаэль тоже жалуется что его патч, к-й исправляет ошибку со звуком в линуксе, отбросили.Тут появляется троль Мауро и выдает: "УМВР. Потерринг - лох и мнит о себе мирового кумира."
Вместо конструктивного предложения, Линус видит троллинг. Сомневаюсь, что Туве опрокинула на Линуса тарелку с борщом в этот момент. Полагаю (а ниже это подтверждают), что Мауро давно хамит. Не думаю, что Линус ни с того, ни с сего спустил собак. Явно, этот перец нарвался. Получил. И извинился.
Теперь копирасты из этого сделают "Скандал. Интригу. Расследование", чтобы сказать нам: "Смотрите! Вот видите какая там швабодка! Не ходите к Линусу!..".
А ты им подпеваешь. Обидили видите ли бедного Мауро.
>копирасты из этого сделаютвы совсем упоротый? новость из списка рассылки пошла в твиттер, потом уже в слэшдот, какие копирасты.
> Дальше почитай ответ Мауро - он полностью признал свою неправоту:Увы, некоторые начинают конструктивно взаимодействовать лишь после того как их крепко обругали. Вон нвидии даже среднего пальца толком не хватило еще - ограничились полумерами.
> Не кулхацкер, а мейнтейнер подсистемы ядра.
> Не сначала вежливо объяснить, а сразу прилюдно нахамить.
> Линусу надо на терапию по бедным кварталам гулять ходить, если воспитания недостаточно,
> чтобы объясняться цивилизованно.тащемта ему уже неоднократно объясняли, последний раз пару месяцев назад, когда они там очередной кластерфак с юдевом устроили. даже виро с грегом не выдержали, сказали гнать из мейнтейнеров к такой-то матери.
Странно вообще это обсуждать, баг ядра исправлен. Нахрен нужны мэйнтейнеры которые не желдают исправлять баг ядра, и еще в баге ядра обвиняют юзерспейс?
> Странно вообще это обсуждать, баг ядра исправлен. Нахрен нужны мэйнтейнеры которые не
> желдают исправлять баг ядра, и еще в баге ядра обвиняют юзерспейс?Откуда вы это взяли "мейнтейнеры не желают исправлять баг", "обвиняют юзерспейс"? Кроме хэлловорлда баги не фиксили никогда что-ли?
Обычное рабочее обсуждение. Возник баг, стороны выражают мнение, если взгляды различаются. И всё решается в итоге. Тот же Линус мог корректно вступить в переписку не с шат фак ап энд фикс ёр крап, а со спокойным указанием на некорректность использования нового кода ошибки в данном контексте и со строгим напоминанием об основных принципах разработки ядра.
> итоге. Тот же Линус мог корректно вступить в переписку не с шат фак ап энд фикс ёр крап,Мог. И еще месяц индивид отпускал бы ручник пытаясь качать свою правоту. А вот так - очень быстро признал что лоханулся. Что ж поделать, не все индивиды склонны к самокритике и самокопаниям. Некоторым для этого требуется большой пинок кованным сапогом по их ЧСВ.
>> итоге. Тот же Линус мог корректно вступить в переписку не с шат фак ап энд фикс ёр крап,
> Мог. И еще месяц индивид отпускал бы ручник пытаясь качать свою правоту.
> А вот так - очень быстро признал что лоханулся. Что ж
> поделать, не все индивиды склонны к самокритике и самокопаниям. Некоторым для
> этого требуется большой пинок кованным сапогом по их ЧСВ.Очень интересно послушать аналитическое мнение на тему что будет дальше с Мауро и Торвальдсом.
> Что ж поделать, не все индивиды склонны к самокритике и самокопаниям. Некоторым для этого требуется большой пинок кованным сапогом по их ЧСВ.А некоторые от такого пинка могут молча развернуться и уйти. Тут их назовут кисейными барышнями, но вряд ли заменят.
ггг за что люблю инженеров - иногда бывают резкими, как острый понос.по делу - тут народы, которые морщат носик, не помнят, наверное, что Мауро уже не в первый раз прилетает за такие штуки. видимо, Линусу поднадоело уже.
походу на опеннете надо заводить новый тег "Линус опять кого-то послал"
> по делу - тут народы, которые морщат носик, не помнят, наверное, что
> Мауро уже не в первый раз прилетает за такие штуки. видимо,
> Линусу поднадоело уже.И что, если оскорбить человека, то сразу всё решится? Он всё осознает и станет лучше работать?
>> по делу - тут народы, которые морщат носик, не помнят, наверное, что
>> Мауро уже не в первый раз прилетает за такие штуки. видимо,
>> Линусу поднадоело уже.
> И что, если оскорбить человека, то сразу всё решится? Он всё осознает
> и станет лучше работать?Если причина плохой работы звездная болезнь, то очевидно ответ - "да, осознает и станет лучше работать"
Это вряд ли!... уж скорее залу###ся и наср#т в карман при первом удобном случае.
>> по делу - тут народы, которые морщат носик, не помнят, наверное, что
>> Мауро уже не в первый раз прилетает за такие штуки. видимо,
>> Линусу поднадоело уже.
> И что, если оскорбить человека, то сразу всё решится? Он всё осознает
> и станет лучше работать?hr теоретики в треде
> hr теоретики в тредеНу ты бы сразу написал что практикуешь более 10 лет в HR. И расписал в деталях что к чему и что будет дальше. Все бы тебя с интересом прочитали, как специалиста. Но ты этого не сделал, поэтому твои потуги выглядеть умным на фоне других несколько неуместны. А если ты не специалист HR, то твое мнение вообще никому не интересно.
> И что, если оскорбить человека, то сразу всё решится? Он всё осознает
> и станет лучше работать?Как ни странно, да. Если это не сделать - индивид может еще месяц мозг канифолить, пытаясь откачать права хоть и явно не прав.
Как часто вы, не стесняясь в выражениях, оскорбляете людей, которые, как вам кажется, медлительнее, чем вы?
> Как часто вы, не стесняясь в выражениях, оскорбляете людей, которые, как вам кажется, медлительнее, чем вы?Здесь речь не об инвалидах, а о майнтейнерах подсистем ядра. Если Вы из первой категории, я промолчу, а если из второй, и совершили неприемлемый косяк, тут, млин, слов мало будет...
Как много майнтейнеров подсистем ядра случайно не в курсе что не стоит ломать юзерспейс? В связи с такой реакцией Линуса, я надеюсь их количество стремится к нулю, что и было целью данной педагогической акции...
Не хотите выслушивать "оскорбления" от Линуса - вперед, ждем Ваше собственное ядро... Если бы это был мой косяк, я бы воспринял это как вполне понятную даже если и сверх-эмоциональную критику, абсолютно никаких претензий, меня бы наоборот совесть мучила что пропустил такую хрень и не смог оперативно пофиксить - это просто был бы признак моей несостоятельности как программиста... Если Вы не в состоянии это терпеть/контролировать - это работа не для Вас, займитесь выращиванием гладиолусов, в конце концов, они Вас не обругают... Кстати, насколько я понял из оригинала треда, никаких претензий у майнтейнера и нет, это просто рабочий момент... Хотя в целом вся проблема - результат непонимания, но если Вы думаете что умнее и все знаете лучше, почему не Вы упомянуты в этой новости вместо Линуса или Мауро? Что касается упоминающих Поттеринга, здесь опять же все просто, хоть позиция "сперва добейся" высмеивается лурком и т.д., но это позиция имеет смысл тем не менее, даже если Вы его не видите... Хотите чтобы кто-то уважал Ваше мнение не меньше чем мнение Линуса - сделайте хоть что-то заметное...
>По словам Линуса, если какое-то изменение в ядре приводит к нарушению работы пользовательских приложений, то это сразу следует воспринимать как ошибку в ядре.Имхо, очень сомнительное утверждение.
Такие утверждения заставляют ядростроителей подписываться за качество ПО на стороне пользователя. А это очень опасная позиция. Думается мне, что Линус в данном случае не совсем прав.
А хамство по отношению к коллегам - дело вообще непозволительное... в конце-концов существует масса способов решить траблы без перехода на личности.
> Такие утверждения заставляют ядростроителей подписываться за качество ПО на стороне пользователя.
> А это очень опасная позиция. Думается мне, что Линус в данном
> случае не совсем прав.вот за это вас линуксоидов простые люди и не любят
> вот за это вас линуксоидов простые люди и не любятКстати, из этого следует еще один интересный вывод:
Линус - не "линуксоид". Поэтому ядро линукс и живёт :)
>> Такие утверждения заставляют ядростроителей подписываться за качество ПО на стороне пользователя.
>> А это очень опасная позиция. Думается мне, что Линус в данном
>> случае не совсем прав.
> вот за это вас линуксоидов простые люди и не любятГюльчитай, открой личико! Чем же ты пользуешься, простой человек?
>>> Такие утверждения заставляют ядростроителей подписываться за качество ПО на стороне пользователя.
>>> А это очень опасная позиция. Думается мне, что Линус в данном
>>> случае не совсем прав.
>> вот за это вас линуксоидов простые люди и не любят
> Гюльчитай, открой личико! Чем же ты пользуешься, простой человек?не совсем понял этот московой выплеск. в настоящий момент я пользуюсь портвейном и мороженым придя с улицы.
> в настоящий момент я пользуюсь портвейномпользоваться != злоупотреблять
> вот за это вас линуксоидов простые люди и не любяткак хорошо, что ядро пишут в основном не «линуксоиды». «линуксоиды» только в форумах трындеть горазды.
>Mauro, SHUT THE FUCK UP!
>We never EVER blame the user programs.Оказывается, Линус он такой же как все.
Линус правильно говорит, представьте себе момент когда в ядро вносятся множество изменений и для того чтобы зависимое от ядра ПО работало в него надо внести изменения. Значит, каждому разработчику чье ПО зависит от ядра, должны своевременно выпускать новые версии с учетом изменений ядра. Это не логично, так как это приведет к торможению работы, как над ядром, так и над ПО которое с ним взаимодействует, точнее, зависит от него. В итоге интерес к такому взывал бы нежелание работать с таким ПО, и популярность такого По была бы минимальна, если вообще была бы.
не логично менять интерфейсы в уже зарелизенных версиях ядра и для относительно широко используемых компонент. v4l(2) не является, с одной стороны, настолько широко используемой (как, например, сетевой стек) и с другой - активно развиваемая подсистема, где и без этого пилят много плюшек и разработчикам софта приходится время от времени переписывать своё юзерспейсное ПО.
Хорошая история, спасибо за перевод. Но вот только одно напрягает, что это произошло с PulseAudio.
> произошло с PulseAudio.И тем не менее, в данном случае виновата именно подсистема ядра.
Хехе. Линуса что-то последнее время слишком часто прорывает. Уверовал в магические свойства слова fuck? :)
Ну и если бы он точно так же потерринга обматерил, было бы справедливо, а так, получается политика двойных стандартов. Когда в винде начинаються разговоры о поддержке пользовательского софта, написанного с учетом неправильного поведения API, то винда плохая и кривая, а когда тоже самое требует Линус, то Линукс - хороший? Смешно.
> Ну и если бы он точно так же потерринга обматерил, было бы...Ну Вы выдали. Линус отвечает за ядро и разбирается в нём лучше всех (официально), а Поттеринг пальцует свои проекты, к которым Линус не имеет никакого отношения. С таким же успехом вы могли предложить обматерить заодно Касперского, Нортона и Гейба Ньюэла, просто так, чтобы Мауро не сильно обижался.
как это не имеет отношения? произошедшее и есть наглядный пример взаимоотношений
Самое неприятное в этом - прецедент. Конечно ошибки в ядре надо исправлять, но когда работаешь с представителями гномосферы типа Поттеринга делать это нужно очень внимательно, с постоянным акцентом на их собственные ошибки.У них давно развилась идея фикс что это Линукс надо делать под них, а не наоборот. В действиях Линуса (которые в принципе корректны) они способны увидеть лишь то, что руководство низший инстанции понимает и защищает их священную правоту. А это очень плохо, так как требования Поттеринга к ядру довольно часто часто являются неосновательными или нежелательными.
Согласен с вами. Плюсую.
Как раз резкость Линуса позволяет надеяться, что Потеррингу будет вставлен пистон также в случае чего. Хотя и не считаю, что она (резкость) полезна в целом.
Будет вставлен? Ему уже сейчас нужно их целую коробку навставлять! Неверный код ошибки - фигня, необработка кода ошибки - грубейшее нарушение, которое в данном случае стало вызывать зависание системы.
> Будет вставлен? Ему уже сейчас нужно их целую коробку навставлять! Неверный код
> ошибки - фигня, необработка кода ошибки - грубейшее нарушение, которое в
> данном случае стало вызывать зависание системы.Не хочу вас огорчать, но нельзя обрабатывать _все_ коды ошибок после _всех_ операций.
Иначе код на 90% будет состоять из обработки ошибок. Которые никогда не произойдут, если индусы в ядре не накосячат.
Не хочу вас огорчать, но обработка ошибок - одна из вещей, которая отличает квалифицированного специалиста от того, кто себя таким считает. Если функция может вернуть ошибку - она её рано или поздно вернёт. Если возвращается число от 0 до 4 млрд., то обрабатываться (заглушкой) должны все 4 млрд. вариантов, даже если сейчас используется только один (EINVAL).
Примеры #305 или #355 по-вашему не употребляются?
Я имел ввиду, что пистон будет вставлен, когда/если Поттеринг будет требовать внедрения в ядро мегакривых костылей в пользу своих продуктов. До тех пор пока он этого не делает он может писать сколь угодно кривой софт. Линуса это не касается. Точнее касается, но не как лидера проекта по разработке ядра, а только как частное лицо. ИМХО, как частное лицо он вполне может выражать своё мнение, но не приказывать Поттерингу.
Если вспомнить пример с ЭнВидией, то он ведь их послал, потому что они хуже всех железячников сотрудничают с ядром. А был бы полным неадекватом мог бы показать фак Автовазу просто, потому что машины у них отстой. Но Линус адекватен, а Автоваз не мешает работе над ядром, поэтому Линус им ФАК не показывает.
Я очень надеюсь, что вам никогда не придётся работать с таким "адекватным" контрагентом или руководителем.
> Но Линус адекватен, а Автоваз не мешает
> работе над ядром, поэтому Линус им ФАК не показывает.Под столом. Вот оно чо, Михалыч! Вот почему Линус не показывает ФАК автовазу!!
Ни причин, ни смысла в оскобрлении Мауро г-ном Торвальдсом я не вижу. Действия г-на Торвальдса корректны лишь в идее, что ошибки нужно исправлять, с чем Мауро и не спорил. Шло обычное рабочее обсуждение, пока не прибежал "авторитет" и не начал всех "строить". Появление подобных "авторитетов" в компаниях часто заканчиваются тем, что из компании уходят все квалифицированные специалисты, которые знают себе цену, а остаются "Поттеринги"...
> Ни причин, ни смысла в оскобрлении Мауро г-ном Торвальдсом я не вижу.
> Действия г-на Торвальдса корректны лишь в идее, что ошибки нужно исправлять,
> с чем Мауро и не спорил. Шло обычное рабочее обсуждение, пока
> не прибежал "авторитет" и не начал всех "строить". Появление подобных "авторитетов"
> в компаниях часто заканчиваются тем, что из компании уходят все квалифицированные
> специалисты, которые знают себе цену, а остаются "Поттеринги"...Мауро - квалифицированный специалист? Да он даже на фоне поттера дважды индус.
Ломать юзерленд нехорошо. Но закладывать в ядро костыли по обходу проблем юзерленда еще хуже.
А хамить коллегам вообще мудачество.
> Ломать юзерленд нехорошо. Но закладывать в ядро костыли по обходу проблем юзерленда
> еще хуже.
> А хамить коллегам вообще мудачество.Какие костыли? В юзерленде все правильно.
Нет такой практики, чтобы перехватывать абсолютно все ошибки - перехватывают только те, которые возможны.
А если какой-то индус в ядре сделает невозможное возможным - это уже его личные проблемы.
Ога, сделать подобное
switch (errno) {
case EINVAL:
//обработка ошибки
....
default: assert(errno); //падаем от неизвестной нам ошибки
}
конечно же очень трудно.
Я вообще не понимаю тех, кто кричит что всех ошибок не обработать. Ну так обрабатывайте известные вам, а для всех остальных общий обработчик сделать можно.
> Нет такой практики, чтобы перехватывать абсолютно все ошибкиестественно. «перехватывать» надо только те, которые можешь обработать. а для остальных — или падать, или жаловаться в лог и пытаться как-то жить дальше, смотря по обстоятельствам. но *перехватывать* — конечно, нет: за это канделябром бьют.
Если Мауро примет решение об уходе, все его поймут. Но если бы г-н Торвальдс отправил сообщение лично Мауро или они лично общались и Мауро регулярно выслушивал подобное по поводу каждой ошибки...Недавно была новость что из проекта GNU уходят ряд ведущих разработчиков. Некоторые недоумевали почему нет конкретики что их неустроило, лишь несогласие с личностью г-на Столмана.
Теперь вопросы сняты?
> Если Мауро примет решение об уходе, все его поймут. Но если бы
> г-н Торвальдс отправил сообщение лично Мауро или они лично общались и
> Мауро регулярно выслушивал подобное по поводу каждой ошибки...Правильно, нафиг из ядра криворуких индусов.
Скорее всего Торвальдс был раздражен и просто сорвал злость. За ним такое водится. Но радует, что он взрослеет в плане характера и начинает требовать дисциплину и порядок. Извините, но значение ядра очень и очень важно. А людям работать надо, а не принимать внутрь души академическую культуру хакеров. Вот если бы он еще так про Поттеринга с его скоростью и ошибками и RedHat с его попытками сэкономить на разработке, продвигая стандартизированные решения в ядро и навязывая выбор компонентов всем подряд, так прикрикнул, было бы совсем хорошо. Инвидиа вроде одумалась и стала на путь истинный. И радует, что на место джаст фо фана и анархии приходит ответственность и порядок. А коллег и в самом деле оскорблять не стоит.
> RedHat с его попытками сэкономить на разработке, продвигая стандартизированные решения в ядроЭээ.. Это плохо? В смысле, нестандартизированные лучше?
А Торвальдс и Столлманн правильно делают. Если опенсорц для разработчика - это просто хобби в свободное от основной работы время, то это не разработчик, а балласт. А балласт как известно за борт, т.е. долой из проекта.
Угу, лучше без вообще без разработчика, чем хоть с каким-то, да.
> Угу, лучше без вообще без разработчика, чем хоть с каким-то, да.да, лучше. я сейчас приведу несколько некорректную, но очень наглядную аналогию: «лучше совсем без водителя, чем хоть с каким-то». и ведь лучше: в крайнем случае можно дойти пешком или вызвать такси. а вот «хоть какой-то водитель» имеет весьма высокие шансы довезти только до морга, потому что он «хоть какой-то».
Да вполне нормально пообщались ) Все зависит от контекста. Надо просто представлять себе не партсобрание при галстуках, а два чела в баре за столиком трындят "по работе". Ничего обидного и в помине нет. У нас в команде точно так же, а обижающимся на слово "дурак" и т.п. нечего мантейнерствовать (имхо), поседеешь раньше времени )))
Да уж. С одной стороны согласен, что иногда надо быть жестким, а с другой, всё-таки грубо. Можно было и помягче. Если бы я составлял заголовок, то начал бы как-нибудь типа "Линус Торвальдс сорвался..."
... В очередной раз за месяц сорвался ...
ИМХО, между Линусом и Мауро гораздо более глубокие трения (мы же не знаем, что там между разработчиками происходит), иначе бы Линус так его не отчитывал.
Мауро фашист
"По словам Линуса, если какое-то изменение в ядре приводит к нарушению работы пользовательских приложений, то это сразу следует воспринимать как ошибку в ядре."Читать такое в нашем быстро меняющемся мире очень приятно. Стабильность и предсказуемость - вот главная цель в улучшении ПО.
не очень жестоко, наш шеф допустим предлагает делать кизмы с горячей водой, или паяльник сувать в одно место из-за логических ошибок в коде, дескать на что вы заканчивали прикладную математику если не можете избавить код от этих ошибок,,,,,
Уголовный тон Линуса не допустим. Позор для него.
Торвальдс слишком остер на язык (как обычно), но в этом - "WE DO NOT BREAK USERSPACE!" - он точно прав. Но и мейнтейнер правильно привлек внимание к косякам пульса, разрабам этого софта хорошо бы их поправить
Порка, в грубой форме указал - да это же закат Линуха. Наверное к версии 4.5 окончательно всех выпорят и обругают - и ядро рассепится.
> Порка, в грубой форме указал - да это же закат Линуха. Наверное
> к версии 4.5 окончательно всех выпорят и обругают - и ядро
> рассепится.Быдлокодерам в ядре делать нечего и патчи пульсов засовывать не нужно
мдя, услышать слова "Mauro, SHUT THE FUCK UP!" и не ударить по лицу может только интелегент. Это не просто жестко, это по хамски и по быдлятнически. Линус болен на голову. Все радовались когда ушел Билл Гейтс - в итеге вин 7 стала черезвычайно хорошей. Если уйдет Линус - может сообщество выграет? "Слепой сказал посмотрим".
Согласен. Линус конечно авторитетный мужик и во многом прав, но по-моему он охамел. Все таки с человеком разговаривает. Мог бы быть повежливей.
а ты уверен что его пароли не угнали и не тролят заместо него (:
> мдя, услышать слова "Mauro, SHUT THE FUCK UP!" и не ударить по
> лицу может только интелегент. Это не просто жестко, это по хамски
> и по быдлятнически.Скорее всего, это продолжение какой-то переписки в почте.
Если бы Линус так вел себя всегда - с ним бы никто не стал работать. А вот если "интелегент" регулярно косячит, и его приходится поправлять - то в какой-то момент возникает мысль приложить пожестче: может, хоть так дойдет, если уж увещевания не помогают... Все-таки использование не предназначенного для данного сисколла кода ошибки - это серьезный косяк, и аргументация в духе "а они сами дураки" - ничем не лучше. За такое надо бить сразу и серьезно, чтобы впредь неповадно было.Лидер проекта не может быть добреньким - иначе этот проект загнется оч-чень быстро.
> Линус болен на голову. Все радовались когда ушел
> Билл Гейтс - в итеге вин 7 стала черезвычайно хорошей. Если
> уйдет Линус - может сообщество выграет? "Слепой сказал посмотрим".Ну чтож, "здоровый на голову" герой, форкай проект ядра Linux и покажи как надо правильно мейнтейнерить!
СПО - это тебе не проприетарщина, тут пиаром и конференциями не отделаешься, здесь надо РАБОТАТЬ, а не розовые сопли распускать.Еще раз: форкай linux и зови к себе Мауро.
"Здесь я хочу рассказать о своих золотых правилах. Первое: обращайся с другими так, как ты хочешь, чтобы они обращались с тобой..."
(с) Линус Торвальдс
> "Здесь я хочу рассказать о своих золотых правилах. Первое: обращайся с другими
> так, как ты хочешь, чтобы они обращались с тобой..."
> (с) Линус ТорвальдсЭто фильтр против тормозов (овцы в стаде, которые не индивидуальны).
Хотел бы я посмотреть на стадо без овец. :DВообще, мне немного жаль Линуса.
Это вполне ожидаемое и очевидное событие, так как очевидно, что сложно одному человеку урегулировать систему и поэтому необходимо будет предусмотреть новый тип участи глава проекта, который избирается среди разработчиков и самое главное избирается ТОЛЬКО разработчиками данного элемента. Этот представитель несет ответственность за работоспособность элемента ядра.
Это что же, стабильный API больше не нонсенс?
> Это что же, стабильный API больше не нонсенс?Вы путаете. Но столь же возможно, что передёргиваете и тролите.
> стабильный API больше не нонсенс?Внутриядерный всё так же не фиксируется, внешний -- всё так же не должен ломаться. Ничего нового.
>> стабильный API больше не нонсенс?
> Внутриядерный всё так жеБедная заблужшая душа! Он же не читал того, на что вешает ярлык.
"The kernel to userspace interface is the one that application programs use, the syscall interface. That interface is _very_ stable over time, and will not break." -- ...Documentation/stable_api_nonsense.txt
> Ничего нового.