bash.im ithappens.me zadolba.li
12966

Стыдно, когда баги видно

5 января 2015, 08:00

Эх… Несколько часов жизни потрачено на отладку куска кода. Несколько часов копипасты инициализаций вперёд-назад, прописывания дополнительных проверок, контрольных выводов, на скорую руку переписаны циклы. И ничего.

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

Ещё раз вздыхаешь и начинаешь делать красиво. Строчку за строчкой. Рефлекторно сохраняешь проект и запускаешь на исполнение. И эта поделка стартует и работает идеально.

Мягким кликом мыши закрываешь вкладку с форумом. Кофеин, никотин, философский взгляд. Воистину — красота спасёт мир.

12965

Кручусь как могу

4 января 2015, 08:12

В моём первом персональном компьютере был установлен жесткий диск Fujitsu на 1039 мегабайт. В 1996 году это было достаточно круто, и при покупке продавец мне сказал: «Я не знаю, чем его, такой большой, забить».

Увы, как раз годом ранее вышла Windows 95. Через три года места стало не хватать просто катастрофически, и пришлось покупать ещё один жёсткий диск, но это уже совсем другая история.

А нынешняя такова: вышеупомянутый жёсткий диск отпахал 80 тысяч часов, 50 тысяч циклов старт-стоп (по S.M.A.R.T.) без единого бэд-блока и с идеально ровным графиком чтения.

Современные жёсткие диски из-за высоких требований к плотности записи имеют, во-первых, адаптивное форматирование (это когда количество секторов на дорожку задано не строго, а «насколько тут хорошая поверхность»). Как следствие — прощайте, ровные графики чтения! С завода не завезли.

Во-вторых, гораздо более жёсткие требования к вибрации и температуре. Если старый жёсткий диск без проблем и сильных ошибок перекалибруется хоть от 0 до +40 градусов Цельсия (плавно, само собой), то современный посыплет пару бэдов как минимум (без особых, впрочем, проблем восстановив их из резервной области при помощи избыточного кодирования). Температурный режим современного жёсткого диска — +15…+35 °C. И то, +35 — это уже на грани фола. Выше +32 лучше не задирать, особенно под нагрузкой.

Жёсткий диск на ноутбуке — это или бедность, или анахронизм. Если вы ставите механический жёсткий диск в ноутбук — будьте готовы обращаться с ноутом крайне аккуратно, вплоть до нежных нажатий на клавиатуру и тачпад. Не хотите заморачиваться — ставьте SSD и не лохматьте бабушку. Заодно и скорость работы возрастёт.

В-третьих, ещё производители жёстких дисков придумали очень хитрый ход. Раньше контакты, которые соединяли гермоблок и плату контроллера, хорошо защищались от окисла специальными покрытиями, да и даже обыкновенным лужением контактных площадок. Теперь они на этом экономят, и у жёстких дисков окисляются контакты. Да, чтобы покупали чаще. Как лечить? По временной схеме: берём обычный канцелярский ластик, этиловый спирт, отстёгиваем контроллер, протираем окислившиеся контакты сначала ластиком, потом спиртом, ждём, пока высохнет, и собираем обратно. Через полгода-год (по условиям относительной влажности) процедуру повторить. Хочется навзничь? Паяльник в руки, удобный флюс (после ластика и спирта обычного спиртоканифольного хватит), припой ПОС-61 — и залуживаем контакты. Гарантии, конечно, придётся сказать «до свидания».

Имею в эксплуатации около десятка жёстких дисков суммарно (мой собственный компьютер, машины родственников, внешние переносные, NAS). Ни единого бэда ни случившегося, ни pending по S.M.A.R.T.

На графики чтения любуйтесь сами. На стену их вешайте, что ли.

Бэкапы? Куда же без них. Делаю на всякий случай. А вдруг вирус, наводнение или пожар?

12964

EULA и варенье вприкуску

4 января 2015, 08:00

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

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

…В течение 90 дней с момента получения чека о покупке электрического чайника его функционирование будет в основном соответствовать внутренней конструкторской документации завода-изготовителя (на китайском языке, гриф «для служебного пользования»)…

…В максимальной степени, допускаемой применимым законодательством, завод-изготовитель отказывается от предоставления каких-либо гарантий в отношении чайника электрического, о пригодности его для конкретной цели пользователя…

…Производитель не несёт ответственности за какие-либо убытки и/или ущерб от электрического чайника (даже при его взрыве в руках пользователя; даже если пользователь уведомил производителя о заложенной производителем в электрическом чайнике взрывчатке)…

…В любом случае ответственность за электрический чайник ограничивается ценой чайника…

…Настоящее лицензионное соглашение регулируется законодательством штата Несуществующий Несуществующих Соединённых Штатов…

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

12963

Воспитанные струйниками

3 января 2015, 08:12

Оверинжиниринг встречается не только во сне, но и наяву.

Комфорт, создаваемый комнатными растениями, невозможно передать словами. Только они — что тамагочи. Забыл полить — кирдык.

Что делать забывчивым? Внезапно проснулся один стартап и выпустил приборчик. Вставляешь батарейки и кассету, содержащую землю с семенами и ПЗУ с индивидуальной программой полива. Заливаешь воду. Теперь остаётся раз в две недели доливать воду и раз в полгода менять батарейки.

Приборчик дорогой. Растения однолетние, поэтому кассеты требуют периодической покупки. Батарейки тоже не из воздуха появляются. А ещё из отзывов следует, что растения болеют, а лечить их приборчик не умеет. Приходится всё равно ухаживать самому, как за тамагочи.

Эти разработчики точно воспитаны струйными принтерами. Поэтому мы, самодельщики, не спим, а придумываем более доступные альтернативы. Устройствами автоматического полива комнатных растений мы занимаемся уже несколько десятилетий. Но…

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

А нам, самодельщикам, всё равно непаханое поле деятельности остаётся. Подсветку для сандеры этой организовать, например.

12962

Мощь винта уже не та

3 января 2015, 08:00

За последнюю неделю пришлось прогнать несколько жёстких дисков на бэд-блоки с помощью софтинки, которая заодно замеряет скорость чтения. Результаты меня изрядно озадачили…

Ноутбучный Seagate на 320 гигов. Три года работы в почти тепличных условиях. Десяток битых секторов, около тысячи предсмертных, график скорости считывания больше напоминает ИК-спектр (плато с резкими провалами). При попытке обращения к диску система с вероятностью 35% зависает намертво.

Ноутбучный Hitachi на 60 гигов 2003 года выпуска (ещё под IDE). Битых нет, десяток предсмертных, график — ломаная с чётко заметной осью.

WD на 1,5 терабайта — два с половиной года работы в стационарном ПК без особых нагрузок. Битых секторов нет, штук шестьсот предсмертных разной степени тяжести, график — кардиограмма аритмика.

80-гиговый IDE-шный Samsung, переживший с 2004-го два компьютера, а затем стоявший в составе сетевого хранилища. Один битый сектор, рядом с ним один предсмертный, график — идеальная прямая с одним провалом (как раз на месте битого сектора). Но при этом никто не жаловался…

Выводы сделайте сами. А я пойду чесать репу и настраивать бэкапы.

12961

Две тыщи ватт непреодолимой силы

2 января 2015, 15:36

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

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

Может быть, при покупке пылесоса что-то иначе? И снова нет. Никакой ответственности за вред, причинённый пылесосом, в договоре купли-продажи не прописан. Паразиты, однозначно!

Кстати, производители авто тоже не несут ответственности за действия, совершенные на их автомобилях — они даже не отвечают за сбитых насмерть из-за отказа тормозной системы, даже если это известная проблема для конкретной марки. И никаких гарантий поворота автомобиля направо при повороте руля вправо не даёт вообще никто и никогда — мало ли, всегда найдётся идиот, который банально попробует повернуть, даже не заведя автомобиль, и побежит жаловаться.

В целом техника соответствует требованиям и стандартам. Но и программы обычно соответствуют требованиям и стандартам (не берём СПО — его можно сравнить со свободным творчеством в автомастерской). В целом техника работает согласно инструкции и описанию: машины ездят и поворачивают, холодильники холодят. Но и программы, в общем-то, тоже работают.

А если кто-то хочет, чтобы в ПО была круглосуточная поддержка продукта, выезд сервисных инженеров на место, максимальные гарантии и даже материальная ответственность — не проблема, есть и такое. Но очень дорого.

12960

Уходя, закрой сеанс

Наткнулся недавно на историю про борьбу со злостными неблокировщиками. Поделюсь опытом софтверных компаний (по словам друзей, не только я работаю с весёлыми людьми).

Итак, популярные способы дать человеку понять, что машину нужно блокировать:

  • замена фона рабочего стола (Чёрный Властелин, Альф — кто во что горазд);

  • «переворачивание» экрана;

  • изменение настроек мыши;

  • скрипт в Хроме/GreaseMonkey, меняющий все изображения (например, на странице социальной сети) на особо удачное фото начальника;

  • запуск shutdown на «через несколько минут» и уведомление пациента;

  • мелкое изменение в коде, которое будет заметно сразу (вызовет критическое падение с остроумным логом). Стоит заметить, что код — это святое, так что здесь — очень осторожно.

Была даже такая весёлая история: сотрудница приехала на неделю к нам в командировку из другого города. Работала она с нашей машины, но по RDP подключалась к своей (той, что в родном городе). Уже во время замены фоновой картинки на Альфа с котятками мы поняли, что делаем всё это внутри RDP-сессии. Это добавило ситуации пикантности, но нас не остановило.

Всем удачи в новом году — и дружите с безопасниками.

12959

На чужой порток не разевай роток

1 января 2015, 08:12

Иду как-то домой уже поздно вечером, вымотанный совершенно. В мыслях только доковылять до дивана и замереть до утра. Подхожу к подъезду, прикладываю таблетку… Фиг! User not authenticated. Хмм, ещё раз — тот же результат. Ну ладно, может быть, таблетка сдохла, с кем не бывает. Набираю код с клавиатуры — не-а, говорит. Не знаем такого. Пробуем, как в том анекдоте, ме-е-едленно и два раза. Нет, не пускает. Ага, значит, демоны сменили замок и контроллер, тоже бывает. Пришлось вызвонить уже повзрослевшую кроху. Что-то долго идёт, ну да понятно: пока оденется, пока накрасится…

Звонит на телефон с паникой в голосе: «Папа, я спустилась, открыла дверь, а тебя там нет! Ты где?»

Всё. Приехали. Жизнь специалиста технической поддержки начинает пролетать перед внутренним взором: задолбавшие юзеры, которые весь день сегодня со сгенерённым токеном лезут на «чужой» порт на сервере и орут, что токен не подходит: нет, мол, такого тут, и не приставайте…

Стоп! Ну конечно же, чужой порт! То-то скамейка перед подъездом показалось подозрительной: она покрашена в белый, а у нас перед подъездом красная стояла… Понятно: ломлюсь не в свой подъезд, а в соседний.

Так и живём.

12958

Ну, от болта!

1 января 2015, 08:00

Читал тут разные истории про сеть и кабели, но недавно мне напомнили про мой первый опыт.

Был лохматый 2004-й, я только получил диплом о среднем гуманитарном образовании и начал трудиться по специальности. Офис организации был маленьким, всего три комнаты, компы стояли средненькие, интернеты по дайлапу, а сеть на коаксиале. Захотелось директору, чтобы всё было хорошо, а так как я проявил некоторые познания, задание вручили молодому юристу. Бухта есть, пакет фишек есть, карточки есть, свитч есть, а обжимника, как и интернетов, нету. Почесав извилины и не получив нужного результата, я начал делать. Отмерив длину проводов, стал думать, как обжать. На глаза попался большой, сантиметров пять в поперечнике, болт. Достал из кармана маленькую отвёртку и, взяв в руку болт, начал обжимать. Процесс был таким: в коннектор вставлялся кабель, а контакты забивались болтом по отвёртке, она была как раз по ширине контакта. Вечером всё было подключено и работало, довольное начальство выдало премию, а сеть работала без сбоев, пока я не уволился.

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