Выбрать главу

#10929: Sleep Processing Language

12:15 03.05.2013, IT happens

Как-то раз во сне (видимо, случайно) моя благоверная достаточно плотно прижала локтем наволочку моей подушки, оставив накрытым лишь маленький краешек. Я в тот момент занимался во сне какими-то другими делами, но поняв, что спать всё-таки неудобно, в полусне пытался наволочку поправить, причём почему-то решил, что наволочка написана на Emacs Lisp. Выглядело это так: частично просыпаюсь, дёргаю злосчастную наволочку, не получается, засыпаю. Во сне отлаживаю код, снова просыпаюсь, дёргаю наволочку, ругаюсь про себя, вновь засыпаю отлаживать — и так всю ночь.

В итоге проснулся я злой, уставший, с головной болью и чётким пониманием того, что Emacs Lisp — очень неудобный для отладки язык, хотя кода на нём я до этого в глаза не видел.

#10930: Камни не трогать

12:15 04.05.2013, IT happens

Как быстро люди забывают прошлое! «Разве тяжело купить тройку флешек по четыре гига? — вопрошает человек. — Они ж в тыщу рублей выйдут».

Открываю прайс не таких давних времён (и десяти лет не прошло) и пытаюсь скалькулировать требования к эникейщику от «мастера на все руки».

Появившиеся лет шесть назад четырёхгиговые флешки стоили по сто баксов за штуку. Про 32 ГБ скромно помолчим. Клещи, тестер и коннекторы — соточка. Винт — 250 за двести. Остальное даже считать не буду. 600 баксов по ценам 2006–2007 годов. А в эникейщики, наверное, тогда шли разуверившиеся в будущем бизнесмены.

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

1. Набор CD и DVD с системами — загрузка с USB массово появилась в 2006 году, и до сих пор компы без неё встречаются достаточно массово.

2. Ноутбук или хотя бы нетбук, иначе ты можешь до опупения терзать комп клиента, не имея возможности проверить, что на самом деле поломка — дело рук админов провайдера.

3. Плоскогубцы, нож, ещё некоторые инструменты.

4. Клавиатура и мышь USB, но с переходниками под PS/2 — не все материнки позволяют войти в биос с USB-клавиатур.

5. Наборы разных кабелей (питание, VGA, DVI, USB и т. д.) и переходников.

6. Пара зарядок, а ещё лучше вдобавок и аккумулятор — не всегда можно подзарядить телефон, а он — рабочий инструмент.

7. Весьма не помешают переходники SATA/IDE в USB для вытягивания инфы с винтов.

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

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

Прежде чем возмущаться установленной «говносборкой» (снобизм по отношению к сборкам — отдельная тема для разговора) за сто баксов, вспомните клиентов, которые часами морочат голову и гнут пальцы.

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

В общем, как в какой-то фантастике было: «Пусть бросит в меня камень тот… Ай… Ой… Да я же ещё даже не договорил!»

Вспомните свои молодые годы и не нудите.

#10931: Проблема 2004

12:15 04.05.2013, IT happens

В один прекрасный зимний день 2004 года разработчик получает просьбу о техподдержке: в случае работы не с локальными файлами, а с файлами, лежащими на сервере, программа упорно отказывается открывать файл. Неважно какой. Локальные открывает на ура, а с сервера — нет. Вообще их не видит.

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