Читаем Bash.org.ru IT Happens Истории ## 12101 – 12200 полностью

Выбор детерминанта на роль хеш-функции. У меня даже слов не хватает, чтобы выразить всю глупость этого. Во-первых, это очень дорогая в вычислительном плане функция, причём с неприятным ростом количества вычислений от размера матрицы. Лобовая реализация имеет факториальную зависимость, а через метод Гаусса «всего лишь» кубическую. Во-вторых, очень подвержена коллизиям, причём как раз на наиболее вероятных причинах модификации исходной матрицы. Например определитель транспонированной матрицы всегда равен определителю исходной.

Применение операции == для вещественных чисел. Новички, объяснять все причины долго, так что запомните как аксиому: операцию == можно применять только к целым числам, а вещественные всегда сравниваются путём вычисления их разницы и проверки, что она по модулю меньше определённого порога.

Незнание об автоматическом приведении типов в используемом языке (скорее всего, C). Функция det() может возвращать значение не double, а более ёмкого типа, который компилятор приводит в double при присвоении в double и, наоборот, до которого расширит double при сравнении. С учётом этого факта никаких странностей в приведённом коде нет вообще — всё вполне логично. Перед тем как кидаться с обвинениями в адрес разработчиков компилятора, стоило открыть определение функции det() и посмотреть на тип результата, потом внимательно почитать описание стандарта языка программирования и сравнить реализацию на соответствие; наконец, почитать описание компилятора на тему особенностей реализации на той или иной аппаратной платформе и возможных отклонений от стандартов.

Морали в этой истории две.

Первая: не выпендривайтесь с применением того, что вы толком не понимаете. Вместо ускорения вы можете получить торможение, а задачу при этом так и не решите.

Вторая: когда сталкиваетесь со странным поведением кода, всегда ищите проблему с мыслью «а не дурак ли я?». Это куда чаще оказывается правильным, чем поиск с мыслью «где-то налажали разработчики компилятора и ОС». Не то чтобы их пишут непогрешимые — это не так, ошибки в них действительно встречаются. Но это происходит значительно реже, чем ошибки начинающих и даже опытных программистов в их собственном коде.

<p>#12140: Сейчас станет горячо</p>

12:00 26.04.2014, IT happens

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

Материнка, уже лишённая покровов, лежит на столе. Плавно вставляю в слот двухгигабайтную палку DDR3. Аккуратно снимаю заглушку со слота процессора. Достаю из упаковки новенький Core i3, нежно ставлю его на место и уверенно защёлкиваю фиксатор: сейчас начнётся! Тюбик без опознавательных знаков тонким слоем размазывает по процессору поблёскивающую термопасту, излишки мажу на радиатор кулера. Аккуратно, но уверенно вставляю защёлки кулера в отверстия платы. Кулер закреплён, материнка готова. Я бережно помещаю её в корпус, подрагивающими от волнения руками закручиваю винты. Подключение питания и разъёмов — особое удовольствие. Их много, входят с небольшим усилием, но сидят прекрасно!

Винчестер нехотя позволил себя вкрутить и подключить. Сейчас станет горячо! Подключена периферия и загрузочная флешка. У кнопки питания фантастический звук щелчка.

Тихонько зашуршали кулеры… На мониторе пробежала серая полоска, вспыхнул «витраж», синенький диалог на синем фоне — о да! А пока дистриб распаковывается, можно и покурить… Как же приятно собирать новую машинку, пускай и офисную минималку!

Люди, я нормальный? Это лечится? Или стоит всё же нормальный прон сквозь отвращение смотреть?

<p>#12141: Последняя верста глубинки</p>

12:12 26.04.2014, IT happens

Кого-то задолбали провайдеры, навязывающие свои услуги, а я этим людям даже немного завидую.

Дело в том, что мой дом находится в недавно построенном коттеджном посёлке. Конечно, тут работает и 3G, и 4G, и мобильники — но всё-таки это не сравнить с быстрым интернетом по оптике или витой паре.

Уважаемые провайдеры! Может быть, вы перестанете задалбывать жителей многоэтажек, тратя миллионы на колл-центры, а вложитесь немного в прокладку «последней мили» в подобные посёлки, которых тут вокруг великое множество? До ближайшего города — прямая видимость и какие-то коммуникации. Наверняка можно либо договориться с энергетиками и кинуть оптику, либо повесить приличные радиомодемы.

Просто мне самому сейчас вспоминать былое, городить с нуля фирму, получать на неё лицензии, строить и сертифицировать узлы связи, заключать договоры с кучей организаций только ради того, чтобы ускорить интернет дома на ноутбуке — это как-то очень уж чересчур.

<p>#12142: Лучший антивирус — мухобойка</p>

16:00 26.04.2014, IT happens

Перейти на страницу:

Все книги серии Bash.org.ru IT Happens

Похожие книги