Вы мне напомнили историю. Когда Больцман написал кинетическое уравнение Больцмана с интегралом столкновений, была семейная пара физиков, не помню фамилии, которые публиковали статьи, в которых придумывали извращённые примеры систем, где уравнения Больцмана не будут работать. Больцман в конечном итоге совершил самоубийство, не выдержав критики. Я это не к тому, что я собираюсь совершить самоубийство, а к тому, что вы зачем-то кинулись придумывать какие-то примеры, где можно заметить разницу и упорно игнорируете ту мысль, которую я пытался донести (может просто не поняли её?): если работа программы зависит от проверки
if (fabs (mult - 1.) > std::numeric_limits::epsilon ())
то где-то в программе есть ошибка либо в данных, либо в другом месте программы. Потому что для правильно написанного кода с правильными входными данными эта проверка бессмысленна и не может влиять на результат. Точка.
Согласен с поиском специфичной области, сам пришёл к этому выводу буквально пару лет назад. Сейчас работаю в навигации, тут ошибка в микросекунду даёт ошибку в дальности в 300 метров, поэтому долбанько тут сложнее)
я бы считал этот рассказ достижением, ибо вы вскрыли ошибки в говнокоде и для себя сделал бы вывод, что люди, которые это делают молодцы, потому что когда все закрывают глаза на вскрытие говнокода, то получается то, что получается сейчас: иногда правильного кодера уже трудно отличить от говнокодера. а если сохранять говнокод, то он будет накапливаться, и в какой-то момент рванёт гораздо сильнее. нет, если принцип вашей работы - это держать зад прикрытым и получать зарплату, то конечно да, забудьте мои слова. но если человек относится к своему софту так, как будто его поставят на космический корабль, летящий к марсу, тогда чем быстрее вскроешь говнокод, тем больше вероятность, что экспедиция к марсу не закончится провалом.
Написал в чат отказ, перезвонила сотрудница Юля, провела допрос с целью подтверждения личности, сказала, что я сам согласился в ноябре 2023 года, спросила почему я хочу отказаться, вежливо попросил её не срать мне в мозг, Юля проявила понимание и убрала меня из системы сбора. Ещё раз огромное спасибо автору.
Как правильно заметили выше, это уже никакой не Тинькофф, это Потанькофф. И из фантастического банка, созданного человеком, нацеленным на результат, он, под управлением "эффективного менеджера" Потанина, будет потихоньку превращаться в говно. В любом случае спасибо за интересное расследование и полезную информацию. Схожу в МФЦ, напишу заяву.
Обратите внимание, я сейчас ещё и страдаю за свою объективность к оппонентам)) Вам плюсуют, а мне уже кто-то заминусовал сообщение о том, что я допустил Ваш комментарий.
Я вообще очень опечален, что, судя по комментариям, никто не понял, что я хотел донести. Но я отвечу на Ваш вопрос. Принцип не трогать работающий код обычно является следствием непонимания того, как что-то работает. Именно поэтому я считаю такой принцип дерьмом. Если компания работает по этому принципу, значит она движется вперёд просто по инерции. В какой-то момент количество точек непонимания превысит критическую отметку и всё посыпется как карточный домик. На том же месте работы у меня был опыт, когда доказать необходимость изменения кода логическими объяснениями того, что движок написан неправильно, ни к чему не привели. Тогда я написал модель и добавил её в список тестов. Моя прекрасная модель рушила движок просто фантастически. На каких-то машинах программа просто валилась, на каких-то намертво вешала систему. Было приятно смотреть, как все забегали. После этого необходимые изменения прошли на ура. Так что я надеюсь, что если и когда я стану руководителем, я буду слушать вменяемых людей, а не жить по принципу "давайте не раскачивать лодку".
Хабр меня спросил, одобрить Ваш комментарий или нет. Я одобрил, чтобы Вам полайкали люди, поддерживающие идею, что неправых нет, все немножко правы, и что в соревновании все немножко победители. Помните, как в фильме "Парни со стволами"? "Они вручили трофеи всем, чтобы никто не обиделся. Даже жирному тупице Роби Фридману дали." p.s. Программирование, как и точные науки, раньше отличалось от уроков литературы тем, что была чёткая грань между правыми и неправыми. Сейчас она размывается всё сильнее.
Вы отличный пример того, о чём я писал. Написали фантастическую чушь и получили уже 4 лайка, причём не от девочек комсомолок, а от людей на техническом ресурсе. Никогда, слышите, никогда, не вставляйте в программы это говно! Если вам нужно сравнить два числа, просто пишите if (x == y). Арифметика чисел с плавающей запятой сама правильно проверит, равны они или нет. Ваш же говнокод будет давать результат, что один нанофарад равен одному пикофараду. Людям, расчитывающим паразитные ёмкости процессора в вашем компьютере, такой результат очень не понравится!
Судя по статье есть люди, которые не понимают, что в эволюции ситуации мы находимся где-то посередине между полной свободой 90-х и шаражками для инженеров 30-х. Но уверенно движемся в сторону шаражек)
Сижу и пытаюсь понять, как автор получил, что пароль из 7 символов a-z,A-Z,0-9 ломается за 7 секунд. Это $62^7 = 3.5 * 10^{12}$ вариантов. Если система позволяет попытки раз в секунду, то это 111 тысяч лет. Откуда взялись 7 секунд?
Давайте организуем сеанс быстрых знакомств для Алисы. Все захабренные будут отправлять свои анкеты, после этого рассылаем приглашение 50 счастливчикам. Там уже в обычном формате, 5 минут на общение. После этого общение пришедших друг с другом, налаживание профессиональных связей, выпивка, танцы.
Ужасно хочется что-то написать, но не хочется писать банальности типа "ну вот, всё развалили, особнячок на Тверской отожмут". Но ведь среди читателей Хабра наверняка есть люди, которые либо работали там, либо знают тех, кто работал, и могут рассказать немножко настоящей правды. Поделитесь с коллегами информацией, расскажите кто-нибудь, что там произошло?
Да, я уже разобрался. Выше написал, что я хотел сказать, что тут индексы бегут в одну сторону при суммировании, а не в разные, как при свёртке, и написал глупость. Вечером исправлю. Это, так скажем, немножко кривая свёртка, которая не даст результат, что фурье образ от такой свёртки будет равен произведению Фурье образов.
Чёрт, да, теперь доехало. Я пытался сказать, что у обоих матриц индексы при суммировании бегут в одну сторону, а не в разные как при свёртке, и написал глупость) Спасибо. Исправлю вечером.
Спасибо за комментарии. Там есть какие-то опечатки, которые мне не давали исправить пока статья была в песочнице. Я вечером подробно ещё раз всё просмотрю и отпишусь или исправлю.
Дифференциал в начале является более удобным обозначением в тех случаях, когда у разных переменных разные границы интегрирования. В этом случая понятно, какая переменная интегрируется по какому интервалу. Когда все дифференциалы в конце это совершенно непонятно. Спасибо за замечание по квадрату, исправил.
Свёртка, это когда индексы одной величины увеличиваются, а второй уменьшаются, например $\sum_i A_i B_{N-i}$. Когда оба индекса идут в одну сторону, это умножение. Можете посмотреть любую статью по свёрткам в википедии. Возможно я недостаточно подробно это пояснил.
Насчёт конечных разностей согласен.
Насчёт 'эквивалентна sample в центре пиксела' не согласен. Sample в центре - это когда ты точно знаешь, что было в точке (если я правильно Вас понял). А матрица камеры собирает интенсивности света с конечной области и конечно никогда не скажет, что было в точке.
Вы мне напомнили историю. Когда Больцман написал кинетическое уравнение Больцмана с интегралом столкновений, была семейная пара физиков, не помню фамилии, которые публиковали статьи, в которых придумывали извращённые примеры систем, где уравнения Больцмана не будут работать. Больцман в конечном итоге совершил самоубийство, не выдержав критики. Я это не к тому, что я собираюсь совершить самоубийство, а к тому, что вы зачем-то кинулись придумывать какие-то примеры, где можно заметить разницу и упорно игнорируете ту мысль, которую я пытался донести (может просто не поняли её?): если работа программы зависит от проверки
то где-то в программе есть ошибка либо в данных, либо в другом месте программы. Потому что для правильно написанного кода с правильными входными данными эта проверка бессмысленна и не может влиять на результат. Точка.
Согласен с поиском специфичной области, сам пришёл к этому выводу буквально пару лет назад. Сейчас работаю в навигации, тут ошибка в микросекунду даёт ошибку в дальности в 300 метров, поэтому долбанько тут сложнее)
я бы считал этот рассказ достижением, ибо вы вскрыли ошибки в говнокоде и для себя сделал бы вывод, что люди, которые это делают молодцы, потому что когда все закрывают глаза на вскрытие говнокода, то получается то, что получается сейчас: иногда правильного кодера уже трудно отличить от говнокодера. а если сохранять говнокод, то он будет накапливаться, и в какой-то момент рванёт гораздо сильнее. нет, если принцип вашей работы - это держать зад прикрытым и получать зарплату, то конечно да, забудьте мои слова. но если человек относится к своему софту так, как будто его поставят на космический корабль, летящий к марсу, тогда чем быстрее вскроешь говнокод, тем больше вероятность, что экспедиция к марсу не закончится провалом.
Написал в чат отказ, перезвонила сотрудница Юля, провела допрос с целью подтверждения личности, сказала, что я сам согласился в ноябре 2023 года, спросила почему я хочу отказаться, вежливо попросил её не срать мне в мозг, Юля проявила понимание и убрала меня из системы сбора. Ещё раз огромное спасибо автору.
Как правильно заметили выше, это уже никакой не Тинькофф, это Потанькофф. И из фантастического банка, созданного человеком, нацеленным на результат, он, под управлением "эффективного менеджера" Потанина, будет потихоньку превращаться в говно. В любом случае спасибо за интересное расследование и полезную информацию. Схожу в МФЦ, напишу заяву.
Обратите внимание, я сейчас ещё и страдаю за свою объективность к оппонентам)) Вам плюсуют, а мне уже кто-то заминусовал сообщение о том, что я допустил Ваш комментарий.
Я вообще очень опечален, что, судя по комментариям, никто не понял, что я хотел донести. Но я отвечу на Ваш вопрос. Принцип не трогать работающий код обычно является следствием непонимания того, как что-то работает. Именно поэтому я считаю такой принцип дерьмом. Если компания работает по этому принципу, значит она движется вперёд просто по инерции. В какой-то момент количество точек непонимания превысит критическую отметку и всё посыпется как карточный домик. На том же месте работы у меня был опыт, когда доказать необходимость изменения кода логическими объяснениями того, что движок написан неправильно, ни к чему не привели. Тогда я написал модель и добавил её в список тестов. Моя прекрасная модель рушила движок просто фантастически. На каких-то машинах программа просто валилась, на каких-то намертво вешала систему. Было приятно смотреть, как все забегали. После этого необходимые изменения прошли на ура. Так что я надеюсь, что если и когда я стану руководителем, я буду слушать вменяемых людей, а не жить по принципу "давайте не раскачивать лодку".
Хабр меня спросил, одобрить Ваш комментарий или нет. Я одобрил, чтобы Вам полайкали люди, поддерживающие идею, что неправых нет, все немножко правы, и что в соревновании все немножко победители. Помните, как в фильме "Парни со стволами"? "Они вручили трофеи всем, чтобы никто не обиделся. Даже жирному тупице Роби Фридману дали." p.s. Программирование, как и точные науки, раньше отличалось от уроков литературы тем, что была чёткая грань между правыми и неправыми. Сейчас она размывается всё сильнее.
Вы отличный пример того, о чём я писал. Написали фантастическую чушь и получили уже 4 лайка, причём не от девочек комсомолок, а от людей на техническом ресурсе. Никогда, слышите, никогда, не вставляйте в программы это говно! Если вам нужно сравнить два числа, просто пишите
if (x == y)
. Арифметика чисел с плавающей запятой сама правильно проверит, равны они или нет. Ваш же говнокод будет давать результат, что один нанофарад равен одному пикофараду. Людям, расчитывающим паразитные ёмкости процессора в вашем компьютере, такой результат очень не понравится!Судя по статье есть люди, которые не понимают, что в эволюции ситуации мы находимся где-то посередине между полной свободой 90-х и шаражками для инженеров 30-х. Но уверенно движемся в сторону шаражек)
Сижу и пытаюсь понять, как автор получил, что пароль из 7 символов a-z,A-Z,0-9 ломается за 7 секунд. Это $62^7 = 3.5 * 10^{12}$ вариантов. Если система позволяет попытки раз в секунду, то это 111 тысяч лет. Откуда взялись 7 секунд?
Алгоритмическая секция до 5 минут общения)
Давайте организуем сеанс быстрых знакомств для Алисы. Все захабренные будут отправлять свои анкеты, после этого рассылаем приглашение 50 счастливчикам. Там уже в обычном формате, 5 минут на общение. После этого общение пришедших друг с другом, налаживание профессиональных связей, выпивка, танцы.
Ужасно хочется что-то написать, но не хочется писать банальности типа "ну вот, всё развалили, особнячок на Тверской отожмут". Но ведь среди читателей Хабра наверняка есть люди, которые либо работали там, либо знают тех, кто работал, и могут рассказать немножко настоящей правды. Поделитесь с коллегами информацией, расскажите кто-нибудь, что там произошло?
Да, я уже разобрался. Выше написал, что я хотел сказать, что тут индексы бегут в одну сторону при суммировании, а не в разные, как при свёртке, и написал глупость. Вечером исправлю. Это, так скажем, немножко кривая свёртка, которая не даст результат, что фурье образ от такой свёртки будет равен произведению Фурье образов.
Чёрт, да, теперь доехало. Я пытался сказать, что у обоих матриц индексы при суммировании бегут в одну сторону, а не в разные как при свёртке, и написал глупость) Спасибо. Исправлю вечером.
Спасибо за комментарии. Там есть какие-то опечатки, которые мне не давали исправить пока статья была в песочнице. Я вечером подробно ещё раз всё просмотрю и отпишусь или исправлю.
Дифференциал в начале является более удобным обозначением в тех случаях, когда у разных переменных разные границы интегрирования. В этом случая понятно, какая переменная интегрируется по какому интервалу. Когда все дифференциалы в конце это совершенно непонятно. Спасибо за замечание по квадрату, исправил.
Свёртка, это когда индексы одной величины увеличиваются, а второй уменьшаются, например $\sum_i A_i B_{N-i}$. Когда оба индекса идут в одну сторону, это умножение. Можете посмотреть любую статью по свёрткам в википедии. Возможно я недостаточно подробно это пояснил.
Насчёт конечных разностей согласен.
Насчёт 'эквивалентна sample в центре пиксела' не согласен. Sample в центре - это когда ты точно знаешь, что было в точке (если я правильно Вас понял). А матрица камеры собирает интенсивности света с конечной области и конечно никогда не скажет, что было в точке.