Читать «Bash IT Happens Истории ## 5301 – 5400» онлайн - страница 16
Bash.org.ru IT
#5335: Гладко было на бумаге
19:45 31.01.2011, IT happens
Все говорят, что писать надо быстро, качественно и так, чтобы работало. С этим все согласны, но когда начинаешь выяснять, что такое «чтобы работало», обнаруживаются такие нюансы, что только диву даёшься.
Я не программист, я математик. И 25-летнего стажа у меня нет — мне всего 27. Тем не менее, на моём счету нахождение ошибки в вычислительной программе по телефону (неправильное соотношение шагов в сеточном методе для уравнения теплопроводности — в итоге деталь охлаждалась до ?3000 градусов) и ещё пара подвигов в этом духе, но рассказ не об этом.
Недавно меня попросили реализовать один алгоритм (если кому интересно, Savitzky-Golay smoothing). Ерунда вопрос. Два дня, чтобы прочитать, что же это за зверь, два дня, чтобы вспомнить синтаксис C, два дня, чтобы не торопясь написать и протестировать консольную программу (напоминаю, я не программист). И вот в процессе тестирования вылезает глюк: в результате сглаживания у положительной функции появляются отрицательные участки. Понятно, что на такой функции и с такими параметрами метод не работает, но как понять, где его можно применять, а где нет? И вот я погружаюсь в глубины интернета в поисках оценок погрешности метода, но их нигде нет. Самому оценки вывести не получается — метод сформулирован в таких терминах, что непонятно, с какой стороны к нему подходить. Алгоритм опубликован в 1964 году, но за сорок лет никто не удосужился его протестировать и обосновать?! Невероятно, но факт. В принципе, после этого можно было бы сдать работу и сказать, что оно сорок лет у всех работало и у нас поработает, но совесть не позволила. На реализацию ушла неделя, на поиск альтернативных решений или обоснований — два месяца. Вот такое вот «чтобы работало». Решайте сами, как бы вы поступили в такой ситуации.
Кстати, у этой истории счастливый конец. Когда я перерыл все книжки, решил плюнуть на всё и придумать свой алгоритм с шахматами и поэтессами. Сказано — сделано: придумал и сильно удивился тому, что вычислительная часть посимвольно совпала с тем алгоритмом, с которого я начинал, но у меня были оценки погрешности. Оставался, правда, ещё вопрос, как заставить их работать, но это совсем другая история.
#5336: Писк воображаемого спикера
12:00 01.02.2011, IT happens
Нижний Новгород, доблестный Политех, ФИСТ (факультет информационных систем технологий), первое занятие по языкам высокого уровня, десять лет назад.
Задача: сделать, чтобы комп пищал системной пищалкой три раза. О том, что в С надо подключать библиотеки, вся группа (кроме тех, кто был в курсе заранее) узнала из логов ошибок. Какие именно и как — из встроенных мануалов (это при живом преподе в аудитории). 9 из 10 компов таки запищали; за десятым не повезло сидеть мне. «Не зачтено». Все призывы посмотреть код и сравнить его побуквенно с творением соседей игнорировались. В итоге я достал отвёртку и под гневные вопли препода вскрыл комп. Оказалось, что пищать ему нечем: спикера в корпусе не было.