Monthly Archives: December 2005

Магия в информационных технологиях

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

Основным признаком белой магии является её внутренняя логичность и упорядоченность. Каждый элемент заклинания или ритуала имеет свой собственный чётко понятный смысл. Например:

echo 2k rsh r16050 inetass stat | grep cash | awk -F'=' '{print $2}' 1000 / pq | dc

Команда echo выводит последовательно “2k”, результат выполнения команды “rsh r16050 inetass stat | grep cash | awk -F’=’ ‘{print $2}”, “1000”, “/” и “pq”.
Палка “|” передаёт вывод echo команде dc.
Команда dc – это калькулятор. На входе его имеем команды:
2k – установить количество знаков после десятичной запятой = 2.
Вывод команды “rsh …” 1000 / – поделить (/) вывод команды на 1000. Используется обратная польская запись (a b / вместо a / b).
pq – вывести результат вычислений (p) и закончить работу калькулятора (q).

Команда “rsh …”:
rsh r16050 inetass stat – выполнить команду inetass stat на компьютере r16050. Результат выглядит примерно так:
phase=2
keepalive=1
su1=312616
sd1=792833
mu1=11394429
md1=18829512
cash=37253
Теперь палка “|” передаёт это дело команде grep cash, которая оставит от этого хозяйства только строчку, содержащую слово “cash”:
cash=37253
Ещё одна палка передаёт это дело команде awk -F’=’ ‘{print $2}’, которая каждую (в данном случае – единственную) строчку делит на поля, разделяемые символом ‘=’ (для чего указано -F’=’) и выводит второе поле (‘{print $2}’):
37253

Как уже было сказано, результат этого всего делится на 1000 с точностью до второго знака и выводится:
37.25

То есть текущий баланс на одном из моих подключений к Интернету.

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

Чёрная магия, разумеется, является противоположностью: собирается заклинание из отдельных компонентов, смысл которых далеко не всегда понятен и, как правило, не должен быть понятен для успешности применения заклинания в целом. Например, настройка видеокарты в X-сервере раньше включала в себя написание строк вроде
Modeline “1280×1024” 157.50 1280 1344 1504 1728 1024 1025 1028 1072 +hsync +vsync
Из этого всего можно понять только первые два элемента, а далее идёт некая магическая последовательность чисел, задающих различные параметры видеосигнала, частоту тактового генератора видеокарты, полярность синхронизаций и другие малопонятные нормальному человеку вещи.
Разумеется, это всё можно понять. А любой специалист по видеожелезякам наверняка при этом даже не испытает никаких затруднений. Но “чёрность” данной магии не в том, что ни Хрена не понятно, а в том, что в общем-то и не должно быть понятно: если я просто хочу выбрать режим “1280×1024, 85 Гц” нафига мне все эти полярности и задержки?! И практика показывает, что вполне реально этот бред настроить, вообще не понимая сакрального смысла этих чисел.

С чёрной магией борются. Необходимость её применения затрудняет жизнь вообще и излишне запудривает мозги. Например, в современных X-серверах можно просто поудалять все строки “Modeline” и тогда X-сервер настроит всё сам автоматически, используя DDC (применительно к мониторам это то, что в общем случае называется Plug & Play). Но чёрная магия иногда бывает полезна. Например, когда я обнаружил, что видеорежимы “1280×1024” Windows и X сдвинуты по горизонтали, то, чтобы не настраивать монитор при каждой перезагрузке, я с помощью утилитки xvidtune сдвинул режим X, так чтобы он совпадал с режимом Windows, после чего тупо скопировал “Modeline” нового режима в конфигурационный файл, не понимая совершенно ничего из загадочных чисел.

И чёрная, и белая магия полезны. Заклинания и ритуалы их имеют чётко оформленное предназначение, пусть в чёрной магии и непонятна их природа. Также они не взаимоисключающи, а скорее напротив – обычно заклинания имеют многоуровневую природу, где на различных уровнях применяется различная магия. В конце-концов, чёрная магия в том или ином виде присутствует везде: в примере выше, скажем, совершенно непонятен принцип работы команды grep (то есть что она делает – ясно вполне, а вот как – для меня тёмный лес). Можно ещё вспомнить, что при этом используется железо компьютера, а уж как работает оно – это вообще мало кто понимает в малейших деталях. Аналогично с белой магией – упомянутая строчка “Modeline” включается в состав конфигурационного файла X-сервера, структура которого вполне ясна и понятна. И должна быть ясна, чтобы знать куда включать эту строчку! Итого, в целом магия выходит не белой или чёрной, и даже не серой, а скорее полосатой, как штрих-код.

Шаманская магия отличается от обеих цветных своей полной бессмысленностью. Шаманские ритуалы обычно имеют некую смутную цель (типа “сделать чего-нибудь, лишь бы заработало”), а их состав обычно в лучшем случае определяется интуицией, в худшем – вообще с помощью датчика случайных чисел или чего-нибудь ему подобного (например, монетки или женской логики). Классическим примером шаманского ритуала является установка и, во многих аспектах, использование ОС Windows 95. Например, припоминаю случай, когда эта замечательная ось намертво зависла при установке, а затем, спустя некое, довольно долгое время, развисла обратно. Если бы мы после её зависания не пошли бы пить чай, то, наверное, так никогда и не узнали бы, как с этим бороться.

Шаманская магия совершенно бесполезна с точки зрения здравого смысла, однако, она порой является единственным эффективным оружием против мирового зла и сатанизма, поэтому она будет существовать, вероятнее всего, вечно. К примеру, добиться, чтобы Windows 95 устанавливался на любое исправное железо с первого раза без необходимости “идти пить чай” или аналогичных действий – практически невозможно.

Windows XP на slave-диске

Попытался установить Windows XP на второй диск, чтобы поиграть в “Арканум”. Не, ну то, что без боя это не удастся, было ясно с самого начала. Так оно и оказалось: ХРень заявила, что на первом диске нет “разделов, совместимых с Windows XP” (ещё бы, у меня там FreeBSD весь диск занимает), а посему на второй диск оно ставиться тоже не будет.

Тогда я достал древний хард на 1 ГБ и создал на нём “раздел, совместимый с Windows XP”™. В результате всё равно получилась жопа, хотя я так и не понял почему (при загрузке выскакивало загадочное “disk read error”) – со второй попытки это дело прошло нормально. Тогда я попытался сделать её раздел загрузочным. Сразу это не получилось, я его только испортил. При этом винда мне зачем-то в отместку испортила и раздел DOS, который там был установлен – просто при попытке удалить испорченный виндовый раздел взяла да и удалила вообще все разделы с диска. Ну ладно, там мне терять было нечего, кроме первых двух уровней “Redneck Rampage Rides Again”, так что я плюнул на это дело и в который раз установив винду, наконец убедил её сделать её раздел загрузочным с помощью “fixboot e:”.

Тогда началось самое интересное, а именно – установив на первый диск FreeBSD, а под ней – GRUB, я попытался заставить его грузить Windows XP со второго диска. Сначала GRUB вообще не соглашался верить в существование винды на втором диске. Когда меня это разозлило, я взглянул на диск и долго ржал, обнаружив, что винда свой раздел почему-то сделала не primary, а logical – видимо, чтобы совсем устранить какие-либо шансы загрузки с него.

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

В конце-концов мне это надоело, и я взял её на таран: отключил вообще все диски, кроме виндового, сделал его primary master и поставил на него винду и только винду. В таких тепличных условиях она, разумеется, устанавливаться согласилась. Затем я снова сделал его slave, а грабу скомандовал перед загрузкой винды менять диски местами:

title XPEHb
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
makeactive
chainloader +1
boot

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

Типографика предвыборной компании

Принесли письмо от “Главного конструктора Центра Управления Полётами Валерия Алексеевича Удалого”™. Благодарит за поддержку своей кандидатуры в предвыборной компании (ну и Хрен с ним, пусть благодарит, голосовать-то я за него не собираюсь!).

С первого взгляда – выглядит красиво. Со второго взгляда – написано умеренно грамотно. С третьего взгляда – а почему абзацы без красной строки (при том, не разделены увеличенными интервалами)? С четвёртого – в конце одного предложения пропущена точка, одна строка почему-то написана сильно вразбивку (вероятно, чтобы компенсировать увеличенные пробелы, переносов-то нет). Ну, то что у нас город Королев, а не Королёв – это ладно, к этому все уже привыкли.

Далее. Внизу, мелкими буквами, надпись:
Изготовлено в ООО “ИдеяПринт”, 119019, Москва, пер. Сивцев Вражек, 45/26.
Авторские кавычки сохранены. Плюс, само название напоминает шизофренический бред программиста (like PrintAnything(), yes). Ну и сама идея писать название типографии… гм, хоть бы на обратной стороне что ли?

Ну, и чтобы даже те, кто совсем не знает правила, убедились, что в документе наличествуют ошибки, в подписи написано “Совета депутатов г. Королев”, а в “мелких буквах” – “Совета депутатов г. Королева“. Sugoi deshou?

Ну и напоследок ещё заметил – “Удалова В. А.”. Гм. И почему мне кажется, что должно быть “Удалого“? Если бы он был “Удалов”, тогда конечно…

Он бы хоть документы эти своим начальникам отделений показал… У них глаз намётан на отчётной документации, никогда бы в жизни такой документ не то что не подписали бы, а даже читать не стали бы. Один из них по крайней мере точно. Кавычки бы английские может и не заметили бы, но такие глупости, как точка в конце предложения…

А, ещё – “Оплачено из избирательного фонда кандидата в депутаты Совета…”. Жаль, не написано, в каком размере оплачено. Можно было бы подсчитать среднюю стоимость изготовления орфографической, пунктуационной и типографической ошибки в упомянутой конторе.

Ещё, в отрыве от русского языка, несколько смешит то, что в письме сказано “Я твердо убежден в том, что наше молодое поколение не должно уезжать в Москву и другие города в поисках престижной работы и жилья”, а бумажки в Москве заказаны. То есть работать люди должны тут (за местную зарплату), а ошибки – в Москве покупать (где цены наверняка выше). По мне так лучше наоборот, наверняка наши типографы не хуже московских ошибаться умеют…

Самое смешное, что подпись на всём этом вполне аутентичная, во всяком случае слишком качественно выглядящая для типографии и с лёгкими следами на обратной стороне от давления ручки. То есть, сам кандидат не поленился расписаться на всей этой чуши, которую для него изготовили московские типографы. Интересно, а текст он сам сочинял? Чушь конечно, но чушь достаточно грамотная – тут придраться не к чему.

TCP fight! HP-UX B.11.11 vs Microsoft Windows 2000 Server SP4

Две системы. Два компьютера. Один (srv2) – новенькая рабочая станция c8000 с HP-UX B.11.11, другой (srv4) – персоналка с 4-м пнём и Microsoft Windows 2000 Server SP4. С первого на второй передаётся поток телеметрии с РС МКС в реальном времени. Картина следующая:
Полный tcpdump