metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-11-14 12:30 pm

Нас спрашивают

...

>ээээ... а чо, результат программы должен быть вероятностно-правильным?
Конечно. Если программа для 90% целевой аудитории пользователей работает ожидаемо, а от оставшихся 10% требует каких-то дополнительных действий - это лучше, чем от 100% требовать дополнительных действий.


Это к вопросу о стандартах. Конечно, хорошо писать программы для идеального мира, где стандарты соблюдены, кодировки все UTF, пользователи все знают что нужно читать маны и гугл, а компьютеры не глючат и TCP соединения работают корректно.

Но на практике - практически гарантированно, что хоть что-нибудь но будет сделано неправильно, или не будет работать, как нужно. Поэтому софт должен допускать некоторые вариации входных данных, и или обрабатывать их корректно, или как минимум, ругаться понятными словами (а не виснуть, как audacious на cue-файлах).

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

[identity profile] theiced.livejournal.com 2009-11-14 12:51 pm (UTC)(link)
>У меня есть в разном софте, как минимум, два модуля, в которых пришлось сделать натурально подгон под желаемый результат, потому что иначе пользователям пришлось бы сидеть на порядок больше времени, занимаясь исправлениями первичных данных, чем мне понадобилось для встраиваения относительно интеллектуального алгоритма кошеризации результата.

Неправильный подход. Надо было сделать утилитку которая бы привела данные в кошерный вид. И прога бы работала только с кошерными, годными данными.

В итоге бы соблюдался KISS, прога была бы меньше, легче в поддержке итд итп.

[identity profile] metaclass.livejournal.com 2009-11-14 01:06 pm (UTC)(link)
Невозможно. Исходные данные берутся из другой системы, в которую нет доступа на запись, и в которой встроенный язык программирования чрезвычайно убог. Проще у меня при обработке все исправить.
И, кроме того, первичные данные вообще изменять нельзя, на то они и первичные.

[identity profile] guamoka.livejournal.com 2009-11-14 01:44 pm (UTC)(link)
Ненавижу такую херню еще по первой работе. Там тоже был мрак и гоморра. Парсинг выходных данных одной подсистемы- это был один сплошной ад-хок с каждым встреченным граничным случаем и вторыми производными. А данные всего-то были простым геометрическим описанием контуров:-)

[identity profile] jarud-bra0n.livejournal.com 2009-11-14 03:32 pm (UTC)(link)
при чём тут другая система. должен быть отдельный шаг (слой), преобразующие тупые входные данные к стандарту. главное ядро должно работать со стандартными входными данными.

[identity profile] metaclass.livejournal.com 2009-11-14 03:55 pm (UTC)(link)
А потом мне будут звонить и спрашивать, "почему у нас в системе одно, а в вашей другое, и все не так".
Там суть примерно такая: работа модуля зависит от распределения сумм по аналитическим кодам, причем взятых из двух разных экземпляров старой системы. В итоговой сумме и там и там должно быть одинаково, и только это пользователи и проверяют, потому что второго экземпляра не видно пользователям первого и наоборот.

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

[identity profile] jarud-bra0n.livejournal.com 2009-11-15 09:47 am (UTC)(link)
зачем звонить? какое "одно-другое"? слой-преобразователь должен быть во всех версиях.
я не против того, чтобы "чуть-чуть" неправильные входные данные корректировать. я против того, чтобы если по стандарту дебет должен быть равен кредиту (или чему-то там), то ломать этот стандарт из-за прихоти единственного юзера ("хачу штоб у меня не сходился а ошибок не было!") - нельзя.

[identity profile] aamonster.livejournal.com 2009-11-14 01:22 pm (UTC)(link)
Есть старый принцип построения протоколов - будь снисходителен к тому, что получаешь, будь строг к тому, что отправляешь. Ergo, работать только со 100% кошерными данными - не лучший вариант.
(deleted comment)

[identity profile] metaclass.livejournal.com 2009-11-14 01:36 pm (UTC)(link)
Прога, которая не используется, идеальна в развитии и поддержке - никто не дергает, никого новыми фичами или изменением старых не напугаешь :)

[identity profile] ex-biespart.livejournal.com 2009-11-14 01:50 pm (UTC)(link)
Разработчики свободного софта могут себе позволить действовать так, как того велит разум, а не потворствовать тысячам красноглазиков с туевой хучей "местячковых данных".

[identity profile] max-aka-mad.livejournal.com 2009-11-14 02:18 pm (UTC)(link)
да-да, и который год мечтать выйти из 2% рынка.
мир, и особенно его первичные данные, далеко не идеальны и стандартны, и игнорировать это нельзя, прикрываясь стандартами

[identity profile] theiced.livejournal.com 2009-11-14 02:48 pm (UTC)(link)
Мечтать? Понимаете - нам ПОХУЙ. У нас есть система которая нас устраивает, которая не заставляет нас купаться в говне - нам СРАТЬ на проценты рынка и прочие такие вещи.

[identity profile] max-aka-mad.livejournal.com 2009-11-14 03:31 pm (UTC)(link)
подход понятен в целом :)
удачи в его реализации.

[identity profile] jarud-bra0n.livejournal.com 2009-11-14 03:37 pm (UTC)(link)
представьте, что ваша задача - написать модуль авторизации пользователя по логину/паролю. допустим, что программа написана. ваша служба поддержки раздает ключи (пароли). через день ваша СП получает звонок от полуграмотного пользователя (которых у вас 90%), который не отличает русские буквы от английских со сходным начертанием (А,Е,Н итд), либо ноль от "О", либо "О" от "Q".
что, сделаете так, чтобы введенные пароли допускали авторизацию, даже если пароль неверный (а чо, сафсем чуть-чуть отличается)?

[identity profile] inhate.livejournal.com 2009-11-14 04:51 pm (UTC)(link)
Ну так бляць это же Windows-way. Обрезать пароль, привести в один регистр и "зашифровать" их чем-то типа xor. Результаты анализа LANMAN-хэшей показывают, что даже вполне "хорошие" по меркам нормальных систем пароли в домене "вдруг" ломаются в ходе штатного секьюрити-аудита. Просто не повезло, да...

[identity profile] metaclass.livejournal.com 2009-11-14 05:05 pm (UTC)(link)
Строгое соответствие паролей это как раз нормальное поведение. И то винда предупреждает при вводе, если Caps Lock нажат.
Для паролей строгая проверка является неотменяемым требованием предметной области, как например, сходящийся баланс в бухгалтерии.

[identity profile] jarud-bra0n.livejournal.com 2009-11-14 05:46 pm (UTC)(link)
так вот соответствие стандарту - тоже нормальное поведение.

согласитесь, что вся ситуация - это чисто субъективное "нихачу-нибуду конвертировать таги". никаких объективных причин не следовать стандарту нет.

[identity profile] jarud-bra0n.livejournal.com 2009-11-14 03:43 pm (UTC)(link)
общий вопрос - вот вы всё время сваливаетесь на обсуждение линупса итд.
а что, под венду написали что-либо "по просьбам трудящихся" заведомо вне стандарта? и вы этим довольны? и все счастливы? и нет проблем?

[identity profile] metaclass.livejournal.com 2009-11-14 03:57 pm (UTC)(link)
Ну, под виндой у меня с первого открытия аудиофайлов не возникает необходимости копаться в баг-трекерах софта, в отличие от.

[identity profile] theiced.livejournal.com 2009-11-14 04:04 pm (UTC)(link)
А у меня под линуксом всё работает? Может потому что я стараюсь не гопаться в лужах с говном?

[identity profile] kkirsanov.livejournal.com 2009-11-14 04:46 pm (UTC)(link)
--Может потому что я стараюсь не гопаться в лужах с говном?
Это "всё" - команда ls?

[identity profile] theiced.livejournal.com 2009-11-14 09:12 pm (UTC)(link)
Всё == совсем всё, кроме игрушек, последние 8 лет примерно. ЧЯДНТ?

[identity profile] kkirsanov.livejournal.com 2009-11-14 09:17 pm (UTC)(link)
Вот я обновил убунту и у меня сдох звук.

Другой раз обновил - умер scipy.wave т.е. в очередном gcc оптимизировали инклуды.

А ещё vi пипикает и всё портит.

[identity profile] jarud-bra0n.livejournal.com 2009-11-15 09:49 am (UTC)(link)
"я ковырялся гвоздем в ухе и вдруг у телевизора пропал звук"

[identity profile] kkirsanov.livejournal.com 2009-11-15 11:23 am (UTC)(link)
Ничего себе "гвоздь". Вполне себе стандартная кнопка, которую предлагают нажать разработчики. "обновить"

Я понял. Линукс для тех, кто вместо работы хочет заниматься настройками. От хаскелья хоть какая то польза есть, а от линукса вред сплошной, и разочарование.

[identity profile] metaclass.livejournal.com 2009-11-15 11:27 am (UTC)(link)
Насчет "вместо работы - настройками" так и есть. Сел настраивать, и все, начальству можно отчитываться "вот, работаем, инструмент полируем". И занятие менее напряжное для мозга, и вроде работа идет :)

[identity profile] jarud-bra0n.livejournal.com 2009-11-16 03:52 am (UTC)(link)
вот обновлять работающее на новое, неизвестное - это и есть "заниматься настройками" на свою голову. обновитесь с ХП до висты. на сбливе звук пропадёт. и попричитайте аналогичным образом.

[identity profile] kkirsanov.livejournal.com 2009-11-15 02:49 am (UTC)(link)
Только что столкнулся.

Если в свежей генту без гуи поставить в use-flags "doc" - то она перестанет эмерджить и умрет в страшных корчах.

Надо сначала гуи зафигачить, а уж потом можно и документацию ставить.

[identity profile] aamonster.livejournal.com 2009-11-14 04:11 pm (UTC)(link)
На практике - надо соблюдать стандарты самому, но по возможности воспринимать и то, что вылезает за их пределы.

[identity profile] metaclass.livejournal.com 2009-11-14 04:17 pm (UTC)(link)
Да, именно так.

[identity profile] cp-poster.livejournal.com 2009-11-14 05:23 pm (UTC)(link)
Проблемы с переходом с одной системы на другую не стоит списывать на вторую систему, а скорее на сам процесс (т.е. на свою привычку к старой системе). Были б вы все были линукс пользователями всю свою жизнь геморра с виндой в количественном и качественном смысле было бы не меньше.

[identity profile] cp-poster.livejournal.com 2009-11-14 09:27 pm (UTC)(link)
Вот пример: ставлю винду 7 (прямо сейчас). Она отказалась ставиться на не системный партишн, находящийся на disk 1 (в инсталяторе так он назван). Что вот мне делать сейчас? И почему виндоус не умеет грузиться с не первого диска? (в грубе вот даже хак-опции наделали типа swap, чтобы таки грузилось).

Почему в линуксе работает, а винде нет?

Мыши плакали, кололись но продолжали жрать кактус

[identity profile] l0gin.livejournal.com 2009-11-15 08:06 am (UTC)(link)
Ребе metaclass совершает классическую ошибку - в чужой монастырь со своим уставом. А когда что-то работает не так, ребе упирается рогами в землю со словами "у меня в винде всё работало...", "а линукс гавно...", "а я сделал бы так", "а так нельзя делать ни в коем случае" и т.п. и т.д. Причём, эти "вбросы на вентилятор" уже стали какими-то постоянно-банальными и напоминают Аншлаг из зомбо-ящика. Там пытаются шутить, но ничего не выходит, а ребе пытается заговнять, но тоже ничего не выходит.

Re: Мыши плакали, кололись но продолжали жрать кактус

[identity profile] metaclass.livejournal.com 2009-11-15 08:57 am (UTC)(link)
Я не пытаюсь заговнять, я бесплатно даю советы "как сделать правильно". Кто ж линуксоидам виноват, что они вообще понятие "GUI и конечные пользователи" осилить не в состоянии.

Re: Мыши плакали, кололись но продолжали жрать кактус

[identity profile] jarud-bra0n.livejournal.com 2009-11-15 09:53 am (UTC)(link)
на обратной совместимости со старыми ошибками можно и выиграть, и проиграть. выиграть - это история об эмуляция ошибки в SimCity в новой 95 винде; проиграть - это заставлять сломать уже работающий правильно код. представьте, если бы эмуляция этой ошибки была бы принудительно внедрена во все остальные программы.