7694

Закрутилось-завертелось

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

— А это, — получил он ответ, — наша система бесперебойного питания. Если накроются внешние сети, мы всё равно при электричестве останемся.

— А как работает?

— Пойдём, покажу.

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

И ведь реально действует. Поди эти три тонны останови, когда они раскрутились!

7693

Затухающие колебания вязкого кода

Давно это было. Наехал на меня начальник: мол, вы что-то делаете-делаете, а ни хрена не видно. Ну, я в сердцах слил статистику из репозитория, построил графики и всякие аппроксимации методом наименьших квадратов и малость охренел сам.

Написание проекта можно рассматривать как переходный процесс из состояния 0 (ничего нет) в состояние 1 (проект готов). Из курса ТАУ я ещё помнил дифуры второго порядка для затухающих колебаний, но увидеть такой график, разглядывая динамику количества строк в проекте, не ожидал. Шутки ради по той же схеме проанализировал коммиты всех подчинённых — картина та же, хоть и менее явная. Потом поднял статистику фиксации багов и нашёл аналог длины свободного пробега молекулы в газе.

В общем, так.

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

2. Коэффициент затухания («вязкость», сопротивление изменениям) у всего софтверного проекта больше, чем у любой его подсистемы или у отдельного программиста. Период колебаний у программера практически всегда равен двум суткам: залил — все потестили — залил фикс. Как минимум 20% строк первоначального коммита будут поправлены — тоже интересная константа.

3. Совместно работающие программисты подчиняются правилу сложения источников белого шума: суммарная эффективность равна корню из их числа.

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

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

7692

WHERE bpm = 130

Открываю Query Analyzer, пишу запрос «SELECT * FROM …», втыкаю наушники, тыркаю на зелёную стрелочку Execute query и возмущаюсь:

— @#$, чё не играет?!

7691

Я не могу на вашем суржике

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

[HKEY_LOCAL_MACHINE\SOFTWARE\%company_name%\%product_name%]

"Version"="a.b.c.d"

"InstallDir"="d:\\games\\%product_name%"

"InstallPath"="d:\\games\\%product_name%"

"Dir"="d:\\games\\%product_name%"

"Path"="d:\\games\\%product_name%"

"language"="English"

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

7690

Божественно-пингвинье вмешательство

Нашёл на антресолях свой старый смартфон. Работает нормально, но при попытке сохранить что-то глючит неимоверно. Тест памяти показал, что флешка забита чем-то под завязку.

При подключении к компьютеру выяснилось, что на флешке внезапно откуда-то появилась Ubuntu 9.04. Что это за самозарождение жизни, я не могу понять до сих пор. Если учесть, что на момент использования смартфона у меня не было компа, история вдвойне мистическая.

7689

Отнеситесь с теплотой

Лето 95-го, жарища. Подгоняю что-то в TMail. Заглядывают в офис соседки по зданию, девушки из бухгалтерии одной из компаний. Плачутся: беда у них, не работает «программа-бухгалтер».

Иду смотреть. Комп нормальный, но с одной особенностью: один из двух винтов — переносной TEAC, торчащий из 5,25" слота. Программой оказался «Турбо-Бухгалтер». Запускаю. Пишет сообщение об ошибке в системе защиты от несанкционированного копирования и вываливается. Тыкаю ещё раз — тот же результат. Проверив autoexec.bat и config.sys, перезагружаю — не лечится. Смотрю размещение — точно, на переносном винте лежит.

— А вообще работал хоть когда-нибудь?

— Да, он работает, но надо с полчасика посидеть, Enter понажимать, потом он запустится и будет нормально работать. Но нам жалко по полчаса терять…

У меня времени тоже не вагон, но эффект любопытный. Остаюсь, болтаю с девчонками, периодически нажимая Enter. Через полчаса после перезагрузки вместо NC вдруг выскакивает рабочее окно «ТБ».

Системы защиты я лечу только одним способом, но предварительно звоню представителю «ТБ» и обрисовываю симптомы. На челюсть пришлось ставить холодный компресс:

— Да, мы знаем, есть такой эффект: для нормальной работы системы «Турбо-Бухгалтер» компьютер должен быть хорошо прогрет.

7688

Софтина второй свежести

Вот вечно ругают программеров: дескать, руки кривые, не знают ни черта…

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

— Качество софта обеспечивают не разработчики (это глубочайшее заблуждение), а процесс его производства. Уровень качества продукта — это одно из требований к нему, которое влияет на его стоимость, и не более того.

7687

Любите админов, интернет приносящих

Некоторое время назад я работала в энском филиале ОАО «Укртелеком», имеющего здоровенную сеть размером с нашу незалежную Украину. Админы энского филиала оказались людьми весёлыми и очень толковыми, честно хотели работать на благо компании, но филиал, видимо, хотел обратного. Бедных админов задалбывали дурные тётки из отдела планирования, пользуясь несовершенством IT-структуры.

При мне тётка орёт по телефону:

— У меня компьютер не работает! Мне отчёт в Киев отправлять, а ваш компьютер не грузится!

Дура, компьютер не админский — это раз. Заглянув ей через плечо, вижу требование ввести пароль для продолжения загрузки — это два. Говорю:

— Ефросинья Дормидонтовна, введите же свой пароль!

И эта нестарая сука отвечает, скорчив рожу (видали мы тут таких советчиков):

— В мои должностные обязанности не входит ввод паролей!

И такие вещи в этом филиале не в мешочке лежат, а по дорожке бежат. Надо ли удивляться, что админы и прочие спецы из группы поддержки делают ноги из этого филиала сразу же, как только научатся отличать трафик от графика и пинг от понга? Я к IT не имею отношения, я пользователь, искренне благодарный админам за помощь, поддержку и понимание. Спасибо вам, ребята! Я честно поила вас офигительным кофе и прикрывала ваши косяки (мне нетрудно), а вы взамен не отключали меня от интернета, хотя моя начальница кипятком писала по этому поводу. И концов не нашли по сей день.

Народ, любите админов, они все умнички!

7686

Клизма с патефонными иголками

Как известно, армейская мудрость «у солдата праздник, как у лошади свадьба: голова в цветах, а жопа в мыле» верна и на гражданке.

В нашей госконторе ожидается торжественное мероприятие с приездом руководства чуть ли не с самого верху. Ничего не понимающий в компьютерах директор уже выел мозг всем, а в особенности единственному в конторе «специалисту широкого профиля» по компьютерам. Для демонстрации через проектор презентации о том, как у нас было плохо, стало хорошо и будет ещё лучше, если денег дадут, был задействован старый ноутбук, на который, помимо предустановленной Windows XP, я поставил Ubuntu. Увы, на стандартных драйверах настроить отображение на проекторе только нужной информации в классово правильной операционной системе так и не получилось, посему пришлось работать в «форточках», которые в день «X» подложили мне большую свинью.

Незадолго до начала генеральной репетиции стоящий без дела Windows решил уйти в спящий режим, а Linux после включения не смог примонтировать виндовый раздел с Windows, поскольку тот имел статус hibernate. А потом внезапно куда-то пропал каталог /boot, из-за чего ноутбук вообще отказался загружаться. И вот в присутствии директора и местных гостей я начинаю процесс реанимации, а, как известно, присутствие начальства преизрядно усложняет концентрацию на работе.

Поскольку опыта по восстановлению «форточек» у меня было побольше (Linux сам по себе всё-таки гораздо устойчивей), решил с восстановлением GRUB не заморачиваться. Установочный диск, консоль восстановления, fixmbr, fixboot C: — и я получаю ещё одно сообщение о невозможности загрузки операционной системы. В общем, как ни пытался, запустить Windows не удалось. В результате получил от начальства мощную клизму с патефонными иголками.

Только вернувшись в свой кабинет, ощутил озарение: ведь я, когда ставил Linux на единственный диск, указал загрузочным не первый, а четвёртый раздел! Разумеется, восстановленный загрузчик Windows XP не понимал, что это за ext4 ему подсовывают. Проверяю таблицу разбиения — всё верно. Правлю, перезагружаю и убеждаюсь, что всё работает.

А самое обидное, что творение Гейтса оказалось умнее меня. Ведь команда fixboot без параметров с самого начала предлагала обработать «диск F:». В общем, скрепя сердце, пингвина пришлось пока удалить.

Граждане, не повторяйте моих ошибок и пожелайте мне удачи: похоже, мне кто-то серьёзно испортил карму.

7685

Самые красивые дампы в мире

Архивы и бэкапы в автоматическом режиме? От лукавого всё это.

После института я устроился по специальности инженером-электроником на завод. Обслуживаю приличный участок цеха, чтоб он всегда работал в автоматическом режиме. Вся информация и управление завязаны на два сервера под Win2003, установленные на Главном Пульте. Начальство жлобится на нормальный антивирус, но это в порядке вещей («Кроме вас, к нему никто не подходит, вот вы и ставьте»). Поразил меня процесс создания архива.

Каждую ночь (работаем посменно) приходит специально обученный человек и делает архив температурных режимов. Открывает программу, вызывает график температуры заготовок и делает его скриншот, сохраняя это добро в Пейнте. Файлов таких в день — не менее тридцати. Раз в неделю начальник участка просит скинуть эти файлы ему на флешку (серваки не в сети) и отправляет их заказчику: «Режим выдержан!»

И всё бы хорошо, но скриншоты делают в BMP-формате, и полтора гига за неделю легко набирается. Сейчас на сервере только под архив занято уже более 45 ГБ. Вот я и думаю, когда система рухнет от недостатка места? На мои робкие попытки посоветовать сохранять в JPG или PNG был ответ: «Надо делать так, как учили».

Ах да: на серверах стоит база данных под SQL, куда автоматом пишутся режимы, но что их можно оттуда достать и отправить заказчику, кроме меня, боюсь, никто и не знает.