<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ --><feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:_adept_</id>
  <title>dump -0f - /dev/mind</title>
  <subtitle>Баечки о мобильной связи (GSM, CDMA) и IT индустрии</subtitle>
  <author>
    <name>Dmitry Astapov</name>
  </author>
  <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/" />
  
  <updated>2008-12-21T20:24:59Z</updated>
  <lj:journal userid="649412" username="_adept_" type="personal" />
  <link rel="service.feed" type="application/x.atom+xml" href="http://users.livejournal.com/_adept_/data/atom" title="dump -0f - /dev/mind" />
  <link rel="self" href="http://feeds.feedburner.com/adept-stories" type="application/atom+xml" /><entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:89730</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/89730.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=89730" />
    <title>Кто жалобы читал - тот в цирке не смеется</title>
    <published>2008-12-21T20:24:59Z</published>
    <updated>2008-12-21T20:24:59Z</updated>
    <category term="работа" />
    <category term="баечки" />
    <content type="html">Все знают, что воины и офицеры запаса ходят в цирк исключительно для того, чтобы сидеть в первом ряду и нервировать клоунов каменным выражением своего лица.&lt;br /&gt;&lt;br /&gt;Можно ли раскачать такой полезный skill, не посвящая два года своей жизни строевой и боевой подготовке? Отказывается можно - достаточно пойти поработать в отдел "По работе с обращениям абонентов" в любую более-менее крупную телекоммуникационную компанию. &lt;a name="cutid1"&gt;&lt;/a&gt;Например, в компанию Z.&lt;br /&gt;&lt;br /&gt;В нежные руки сотрудниц (сотрудников там не бывает - грубая мужская психика не выдерживает) этого отдела ежедневно попадает до десятка шедевров эпистолярного жанра, каждый из которых с гордостью возглавил бы top на bash.org.ru. Но работницам не до увеселения масс, и недрогнувшей рукой сокровища письменной культуры отправляются в шредер.&lt;br /&gt;&lt;br /&gt;Такая же судьба чуть была не постигла письмо гражданина Н. Сотрудница, в чьи руки оно попало - назовем ее Маша - прочла его, мысленно отнесла его к категории "спам" и привычной рукой отправила его в папку "В шредер", но тут из конверта выпала ксерокопия документа на официальном бланке Компании.&lt;br /&gt;&lt;br /&gt;В голове Маши начала мерцать тревожная красная лампочка - ксерокопии документов обозначают, что автор письма знает, как общаться с Бюрократическими Организмами, и представляет собой потенциальную опасность. Письмо следовало перечитать внимательнее:&lt;br /&gt;&lt;br /&gt;"&lt;i&gt;Уважаемая Компания!&lt;br /&gt;&lt;br /&gt;Я признаю, что за прошедший месяц на моем счету действительно образовалась задолженность в 500 грн, однако я отказываюсь признавать, что эта задолженность (пусть даже с учетом пени) составила спустя месяц сумму, значительно превышающую валовый национальный продукт Украины за прошлый год. Если вы, как указано в письменной претензии (см. копию) действительно собираетесь передавать дело в суд, я, со своей стороны &amp;lt;дальше уже не важно&amp;gt;...&lt;br /&gt;&lt;br /&gt;С уважением, Н.&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;Маша развернула ксерокопию. На стандартном бланке претензии, высылаемой неплательщикам, было написано: "&lt;em&gt;Просим вас в течении 15 дней погасить задолженность, которая, с учетом пени, составляет: триста восемьдесят миллиардов .... миллионов двести тридцать четыре тысячи пятьсот шестьдесят семь гривен&lt;/em&gt;"&lt;br /&gt;&lt;br /&gt;Маша пошла к своей начальнице, начальница пошла в отдел, рассылающий претензии. А там уже сидели представители бухгалтерии, которых заинтересовало, почему сумма невзысканной дебиторской задолженности за прошлый месяц составляет астрономическую сумму в несколько сот миллиардов гривен.&lt;br /&gt;&lt;br /&gt;Довольно быстро выяснилось, что процесс выставления претензий включает в себя этап, на котором сумма задолженности может быть вручную скорректирована отвественным сотрудником Компании на основании сложной экспертной оценки. А поле для ввода окончательной суммы задолженности было расположено рядом с полем поиска данных абонента по номеру телефона. И при обработке долгов абонента Н вместо окончательной суммы ему по ошибке вбили номер следующего должника. В международном формате (12 цифр).&lt;br /&gt;&lt;br /&gt;После этого ручную коррекцию долга отменили, и письма-претензии стали рассылать всем, чей долг составляет более X гривен, где X задавалось вручную. Естественно, и это "ружье на стене" тоже в свое время выстрелило, но это уже совсем другая баечка.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:85350</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/85350.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=85350" />
    <title>Безопасность для всех и каждого, и пусть никто не уйдет</title>
    <published>2008-07-22T18:36:15Z</published>
    <updated>2008-07-22T18:36:15Z</updated>
    <category term="работа" />
    <category term="баечки" />
    <content type="html">"&lt;i&gt;- Вы останетесь в доме! - приказал робот.&lt;br /&gt;   С удивительной  быстротой  двигаясь  на  своих  гусеницах,  он  пересек комнату, загородил собой дверной проем и протянул руки к пульту у потолка, чтобы включить защитное поле вокруг дома. В  ужасе  Кармайкл  увидел,  как быстро перебирая пальцами, робот перенастроил установку.&lt;br /&gt;   - Я изменил полярность охранного поля, - объявил Бисмарк.  -  Поскольку выяснилось, что вам нельзя доверять соблюдение предписанной мной диеты,  я не вправе позволить вам  покинуть  дом.  Вы  останетесь  внутри  и  будете подчиняться моим благотворным советам.&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;Я участвовал в проекте, заказчик которого настаивал на строгом соблюдении ряда своих внутренних процедур и правил. &lt;a name="cutid1"&gt;&lt;/a&gt; Одно из правил гласило, что все сотрудники компании, а также партнеры (партнеры партнеров и т.п.) должны заключить с компанией договор о неразглашении коммерческих и всяких прочих тайн. Второе правило гласило, что все работы на благо компании ведутся исключительно на оборудовании компании и инструментами, предоставленными компанией. Как вы уже поняли, к вопросам информационной безопасности компания относилась более чем серьезно.&lt;br /&gt;&lt;br /&gt;В результате я стал (на время) обладателем предоставленного компанией ноутбука, который был защищен на всех уровнях: диск его был зашифрован SafeDisk-ом, и для загрузки требовалось указать пароль. Учетная запись Windows была сильно урезана в правах, и ни о каком локальном администрировании и речи быть не могло. Все коммуникации с компанией поддерживались при помощи VPN в их штаб-квартиру - почта через их exchange-сервер, интернет через их прокси, и т.д. и т.п.&lt;br /&gt;&lt;br /&gt;Компьютер был далеко не самым современным, и тормозил, как только мог. SafeDisk тормозил, расшифровывая и зашифровывая секторы при доступе к диску. Windows XP тормозил, загружаясь с зашифрованного диска и робко пряча тело жирное в 512Мб памяти. Своп, как вы понимаете, тоже был на зашифрованном диске. Добавьте к этому антивирус, проверяющий все и вся, не шибко быстрый VPN, нестандартную раскладку клавиатуры, мою искреннюю "любовь" к работе в win-окружении - и в поймете, что работать на этом чуде враждебной техники было одно удовольствие.&lt;br /&gt;&lt;br /&gt;Загружался ноутбук минут 10, соответственно, я старался никогда его не shutdown-ить. а вместо этого опускать в hibernate. Тогда он просыпался быстрее, минуты за 3.&lt;br /&gt;&lt;br /&gt;И вот однажды мне потребовалось БЫСТРО написать заказчику очень важное письмо, и ехать на деловую встречу. Время поджимало, письмо было объемным, я спешил, как только возможно, и, казалось, едва-едва успевал до назначенного срока. Памятуя о том, что VPN тут - штука не быстрая, я загодя запустил VPN-клиента и сказал "connect!". Соединение было установлено, я отправился дописывать письмо. &lt;br /&gt;&lt;br /&gt;В это время на компьютере оживилась всякая нечисть и, учуяв VPN, стала качать себе всякие апдейты. Outlook обновлял реплику адресной книги, VPN-клиент - правила firewall-а, антивирус - антивирусные базы и какие-то свои модули (не забывая попутно проверять все, что качалось параллельно другими программами). Ноутбук весело затрещал свопом, слова в outlooke стали набираться не по буквам, а минимум по слогам. Я, чертыхаясь, пытался успеть дописать письмо за оставшиеся несколько минут.&lt;br /&gt;&lt;br /&gt;Тут антивирус закончил качать свои базы и обновления и вывесил в трее уведомление: "Я накачал критических апдейтов. Меня надо перезапустить. Перезапускаюсь". Уведомление скрылось, появилось окошко: "Для завершения обновления антивируса, компьютер надо перезапустить. Ok?". Поверх него открылось еще одно окно от VPN-клиента: "Ахтунг! Мы остались без антивируса! Защищенное VPN-соединение в trusted сеть не может быть использовано в таких условиях. VPN-соединение будет закрыто.". Поверх него открылось еще одно: "Outlook остался без связи с Exchange-сервером, вы не сможете получать и отправлять письма".&lt;br /&gt;&lt;br /&gt;Матерясь, на чем свет стоит, я понял, что проще отдаться, чем объяснить, что мне осталось писать пару предложений. Спустя 10 томительных минут ожидания я (уже опаздывающий сверх всяких пределов) запустил Outlook и ... увидел, что папка Outbox пуста. &lt;br /&gt;&lt;br /&gt;Последний раз подобное ощущение потери овладевало мной году эдак в 94-м, когда у меня враз накрылся винчестер на 80 мб, и все, что на нем было, потерялось безвозвратно. Желание кинуть ноутбук в стену преодолевалось с трудом. Я решил, что, по крайней мере, уведомлю клиента о том, что по техническим причинам отвечу ему позже. В поисках адреса какого-то начальника, которого надо было ставить в "CC:", я пошел рыться в папке Sent и ... увидел там свое недописанное письмо. Якобы уже отправленное.&lt;br /&gt;&lt;br /&gt;Вскрытие показало, что письмо реально никуда не уходило, никто его не получал, а Outlook не захотел сознаваться, по каким причинам оно было перенесено в Sent. С тех пор я дожидался завершения процесса обновления антивируса, и лишь потом начинал писать важные письма по этому проекту. На всякий случай - мало ли, может у него в запасе есть какие-то еще благие намерения.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:83868</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/83868.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=83868" />
    <title>Пацан, есть кредитка? Дай поносить!</title>
    <published>2008-06-11T18:01:38Z</published>
    <updated>2008-06-11T18:05:24Z</updated>
    <category term="хохмочки" />
    <category term="баечки" />
    <content type="html">Представьте, что к вам приходят малознакомые люди и предлагают примерно следующее: "Давайте все ваши банковские карточки, мы их аккуратно сфотографируем для журнальной статьи, будет клёво".  Что отвечает на это здравомыслящий человек? Правильно, он посылает таких фотографов лесом. Скажете, это очевидно? &lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Номер глянцевого журнала Story, вышедший на прошлой неделе, содержит в себе статью с интригующим заголовком "Что носит в сумке певец Alex Luna?". Статья украшена коллажем из вещей, взятых из этой самой сумки. Центральное место композиции занимает карточка "Укрсиббанка", принадлежащая, надо полагать, самому певцу.&lt;br /&gt;&lt;br /&gt;Качество съемки таково, что серийный номер, expiry date и имя-фамилия певца читаются без особых проблем. Карточка действующая, валидна до 04/09. А что CVV не видно - так это не проблема. В Штатах еще полно магазинов, которые позволяют сделать покупку без CVV.&lt;br /&gt;&lt;br /&gt;Ну, ладно певец - он человек искусства, витает в облаках, мог не знать. Ну, ладно фотограф - он мог видеть в карточке прикольный объект для съемки и больше ни о чем не думать. Но этот материал - он же прошел еще через добрый десяток людей. Неужели ни у кого в голове не шевельнулась мысль, что они делают фигню? Впрочем, это вопросы риторические.&lt;br /&gt;&lt;br /&gt;Мне гораздо интереснее было бы узнать вот что:&lt;br /&gt;1)Успел ли уже кто-то что-то купить по этой карточке?&lt;br /&gt;2)Заблокировал ли ее после этого певец?&lt;br /&gt;3)Получил ли кто-то за это по шапке?&lt;br /&gt;&lt;br /&gt;А теперь - пруфпик:&lt;br /&gt;&lt;img src="http://pics.livejournal.com/_adept_/pic/0000xr47"&gt; &lt;img src="http://pics.livejournal.com/_adept_/pic/0000y7rc"&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:83282</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/83282.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=83282" />
    <title>Ха-ха</title>
    <published>2008-06-06T17:58:35Z</published>
    <updated>2008-06-08T11:08:29Z</updated>
    <category term="работа" />
    <category term="баечки" />
    <content type="html">Сегодня в разговоре всплыла одна старая история конца XX века, которой я решил поделиться. Благодаря капитану Врунгелю мы знаем, что как вы яхту назовете, так она и поплывет. А справедливо ли это по отношению к программам и скриптам?&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;В некой компании Z жила-была биллинговая система. Функциональность биллинговой системы была велика, но все-таки имела свои границы. Кроме того, разрабатывали ее люди, далекие от украинских реалий в области финансового и бухгалтерского учета, и некоторые жизненно важные вещи не были реализованы в системе вообще.&lt;br /&gt;&lt;br /&gt;С течением времени система обросла множеством узкоспецифичных доделок - частично сделанных поставщиком, частично - силами сотрудников компании Z. Вместо сердца биллинговой системы был отнюдь не пламенный мотор, а БД Oracle, поэтому большинство доделок имели вид скриптов на SQL и PL/SQL или хранимых процедур. Поставщик был не в восторге от того, что в базе делаются какие-то изменения "по живому", но в конце-концов смирился, так как не всегда успевал выкатывать красивые решения в сроки, которые устраивали бы компанию Z.&lt;br /&gt;&lt;br /&gt;В один прекрасный момент встал ребром вопрос о том, а не пора ли обновить версию биллинговой системы? По всему получалось, что пора. Представители поставщика приехали оценить обстановку на месте и сказали: "Опа! А в новой версии в структуре базы многое будет по-другому. И похоже, что большая часть скриптиков от этого скуксится. Надо бы делать анализ ...". Ну, надо - значит надо. Представителям поставщика были выданы все скриптики и процедурки и они убрались восвояси делать анализ.&lt;br /&gt;&lt;br /&gt;Не прошло и пол-года, как производитель выдал на-гора анализ существующего положения. Все скриптики были поделены на группы: "не нужны в новой системе; нужны с такими-то модификациями; код понятен, но непонятно, что делает скрипт; вообще нифига не понятно". В последнюю группу попали буквально три скрипта, и один из них был снабжен отдельным комментарием: "Обычно мы могли догадаться о функциональности скрипта по его названию, но файл hh.sql поставил нас в тупик. Мы понимаем, что это аббревиатура, но - от каких слов? По коду видно, что вы что-то делаете с суммами счета, но что и зачем - непонятно. Просвятите нас."&lt;br /&gt;&lt;br /&gt;Человек, к которому попало это письмо с требованием "разобраться", был в компании Z новичком (назовем его "Н"). Он пошел к разработчикам спрашивать о том, что делает скрипт "ха-ха эс-кью-эл", но натолкнулся на стену непонимания. Разработчики утверждали, что скрипта с именем "ха-ха" никто не писал, что его кто-то разыграл, и - если что - скриптов "гы-гы", "бугага" и "lol" они тоже не писали ...&lt;br /&gt;&lt;br /&gt;На шум пришел старый и опытный сотрудник, который выслушал Н и назидательно сказал: "во-первых, в системе Unix имена файлов пишутся с учетом регистра. Во-вторых, определенные буквы латинского и русского алфавита имеют одинаковый вид. Именно поэтому какой-то шутник в незапамятные времена назвал скрипт, который считает корректировки Налоговых Накладных, вот так:"HH.sql". Иди, пиши ответ поставщику."</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:82708</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/82708.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=82708" />
    <title>Принцип ПВО</title>
    <published>2008-06-04T14:47:08Z</published>
    <updated>2008-06-04T18:23:08Z</updated>
    <category term="работа" />
    <category term="баечки" />
    <content type="html">&lt;i&gt;Сегодняшний рассказ навеян разговором с &lt;span class='ljuser' lj:user='dottedmag' style='white-space: nowrap;'&gt;&lt;a href='http://dottedmag.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://dottedmag.livejournal.com/'&gt;&lt;b&gt;dottedmag&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Есть такая порода людей, которая обладает необъяснимым пиететом перед печатным словом и &lt;i&gt;официальным документом&lt;/i&gt;. Они уверены, что любые изменения -- даже глупые и непопулярные -- могут быть претворены в жизнь очень простым способом: "Мы напишем &lt;i&gt;процедуру&lt;/i&gt;, ознакомим людей - и люди будут исполнять, куда же они денутся". Если же изменения не настолько глобальные, чтобы требовать создания &lt;i&gt;процедуры&lt;/i&gt; - не беда, можно обойтись чем-то попроще. Например, написать e-mail. &lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Чтобы получатель сразу понял, что это очень важный e-mail, надо написать соответствующий subject: "СРОЧНО!!!!!! БИЗНЕС КОМПАНИИ ПОД УГРОЗОЙ!!!!". Или: "ВНИМАНИЕ!!!!". Или: "ВЫПОЛНИТЬ КАК МОЖНО СКОРЕЕ!". Если ничего соответствующего моменту не придумывается, можно написать просто: "!!!!!!!!!!"&lt;br /&gt;&lt;br /&gt;Но это только начало. Чтобы e-mail не потерялся в потоке информации, надо в самом письме еще раз пять или пятнадцать подчеркнуть, что дело срочно и не терпит отлагательств. Не надо экономить слова "СРОЧНО", "КРИТИЧЕСКИ ВАЖНО", "ASAP" и "ВНИМАНИЕ". Количество восклицательных знаков должно превышать число предложений минимум в четыре раза. Иначе есть риск, что &lt;i&gt;месседж&lt;/i&gt; не будет донесён.&lt;br /&gt;&lt;br /&gt;После отправления e-mail можно несколько расслабиться и передохнуть перед написанием следующего e-mail-а. Наивный читатель может сказать: "а еще надо записать в TODO напоминание - через какое-то время проверить результаты работы". Это распространенное заблуждение, которое стоило многим начинающим менеджерам сотен нервных клеток. На самом деле, контролировать результат совершенно необязательно. Если работу сделали - зачем лишний раз изводить людей проверками? А если не сделали - так кто тут виноват? Уж точно не тот, кто вовремя написал &lt;i&gt;e-mail&lt;/i&gt; и обратил всеобщее внимание на проблему. Именно всеобщее - в поле "To:" должно быть минимум 10 человек. Сам получатель, его коллеги, начальники, начальники начальников, начальник автора и т.д. и т.п. Вот они пусть и контролируют - они ж начальники или кто?&lt;br /&gt;&lt;br /&gt;Это была преамбула. Переходим к амбуле :)&lt;br /&gt;&lt;br /&gt;Где-то в 2003-м году я установил у себя SpamAssassin - утилиту для фильтрации спама при помощи Байесовской классификации и кучи дополнительных эвристик. Установил, проверил на содержимом inbox-а, увидел, что ложных срабатываний вроде как нет, и успокоился.&lt;br /&gt;&lt;br /&gt;По прошествии пары месяцев я решил заглянуть в "карантинную папку" и проверить, не набежало ли там false positives, с которым надо что-то делать. Папка была не такой уже и толстой, но я с ужасом увидел, что она наполовину состоит из писем от моих коллег, в основном из бизнес-подразделений. Предполагая, что произошла какая-то ошибка в классификации, которую можно будет исправить настройками, я стал просматривать эти письма. На фоне крутилась мысль: "главное, чтобы я из-за спаморезки не пропустил что-то нужное и важное, а то стыда не оберешься".&lt;br /&gt;&lt;br /&gt;Проверка показала, что типичное письмо, попавшее "под нож", выходило из лап SpamAssassin с таким диагнозом: "Subject is all capitals; too many '!' in the subject; too many '!' in the body; body is more than 30% capitals; too many repetitions in the body; recepient list is too large".  То есть, по виду чистой воды спам, никак и не отличишь без вникания в смысл.&lt;br /&gt;&lt;br /&gt;Запоздало вписал рабочий домен в whitelist и удивился тому, что за два месяца никто не звонил и не интересовался судьбой просьб и указаний из "пропавших" писем, большинство из которых было адресовано непосредственно мне.&lt;br /&gt;&lt;br /&gt;Мораль придумайте сами.&lt;br /&gt;&lt;br /&gt;PS&lt;br /&gt;Мало ли, вдруг вы не в курсе. Принцип ПВО - это "погоди выполнять, отменят".</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:77283</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/77283.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=77283" />
    <title>"Письма ненависти" в абон. отдел</title>
    <published>2008-01-13T16:00:19Z</published>
    <updated>2008-01-13T16:08:21Z</updated>
    <category term="работа" />
    <category term="баечки" />
    <content type="html">А вот посмотрите, что я у себя нашел в процессе раскопок старой рабочей почты. Это почти на уровне известного "письма запорожцев турецкому султану".&lt;br /&gt;&lt;br /&gt;В свое время было прислано знакомыми из дружественного оператора, публикуется с вырезанием всей персональной информации, но сохранением стиля и слога.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="right"&gt;&lt;br /&gt;За нашу Советскую Родину!&lt;br /&gt;&lt;br /&gt;Иванову И.И.&lt;br /&gt;Руководителю департамента&lt;br /&gt;по расчетам с абонентами&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;«Пан» Иванов!&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Получил адресованное мне письмо №  9.99999999 / 88 (DD/MM/20YY) за Вашей подписью и очень обрадовался, потому что так давно не встречал столь ярких случаев административного идиотизма, представляющих интерес для моих друзей - журналистов.&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;Столь яркую оценку Ваше послание заслужило по следующим соображениям (см. текст письма № 9.99999999):&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Во - первых, я не могу быть должником «FoobarTelecom», потому что с сентября 20YY года не получаю услуг мобильной связи от данного оператора.&lt;br /&gt;&lt;li&gt;Во - вторых, угрожать мне отключением номера не имеет смысла, потому что я по своей инициативе прекращаю действие контракта № 6666666 по причинам, изложенным ниже.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Что касается «примусового стягнення заборгованності» в 17.11 грн, то я с удовольствием дам объяснения в ходе судебного разбирательства, хотя считаю суд буржуазным предрассудком и привык разрешать конфликты “по понятиям”, как истинный сын криминального Донбасса.&lt;br /&gt;&lt;br /&gt;Для Вашего сведения сообщаю причины моего решения по отказу от услуг FoobarTelecom, хотя эту информацию Вы легко могли бы получить от Ваших подчиненных.&lt;br /&gt;&lt;br /&gt;Итак, я являлся контрактным абонентом FoobarTelecom с DD.MM.20(YY-2)г. и регулярно осуществлял платежи по счетам FoobarTelecom, хотя качество предоставляемых услуг было крайне неудовлетворительным. Так, постоянно уровень сигнала базовой станции в месте моего проживания (юго-восточный район г. Кукуево) составляет исчезающе малую величину (~1% от номинального значения), что вообще исключает возможность осуществления связи. Неоднократные обращения в техническую службу FoobarTelecom как мои, так и соседей успеха не имели. В результате большинство  жителей поселка отказались от услуг FoobarTelecom, как недобросовестного «предоставителя услуг» и перешли в лоно «ZapZapTelecom» - у них «покрытие» великолепное. Кроме того, в периоды, когда связь крайне необходима, например во время катастрофических снегопадов прошлого года, сеть FoobarTelecom оказывалась перегруженной, что исключало возможность связи, так что даже аварийные звонки в милицию и «скорую медицинскую помощь»  были невозможны - а это ставило под угрозу мою жизнь и здоровье, поскольку проводная связь в моем поселке отсутствует.&lt;br /&gt;&lt;br /&gt;Но, надеясь на лучшее и лелея мечту о доступе в INTERNET, я принял предложение FoobarTelecom и приобрел по дополнительному договору №7777777 новый телефон Motorola C380 IMEI №12345678901234. Случилось это DD.MM.20YYг., будь проклят этот день и час и поразит Аллах гонореей и неудержимым поносом весь персонал FoobarTelecom, а особенно сотрудников Луганского сервисного центра.&lt;br /&gt;&lt;br /&gt;Приобретенный мной телефон, это ублюдочное порождение фирмы Motorola, отказался работать (и даже включаться) к концу сентября 20YY года и был принят в гарантийный ремонт Луганским сервисным центром через продавца - дилера FoobarTelecom - ЧП Сидоров С.С. (визитка прилагается). Временной замены моему “телефону” никто не предложил и на просьбы об этом не откликнулся. Из гарантийного ремонта С380 вернулся с добрым заверением в совершенной исправности и опять сдох не отработав и одного часа. Повторный ремонт не ликвидировал дефект. И снова через час С380 отказался включаться и радовать меня «услугами» FoobarTelecom.&lt;br /&gt;&lt;br /&gt;В третий раз, уже с легким негодованием, дефектный аппарат был через ЧП Сидорова препровожден в Луганский сервисный центр. Совсем недолго, месяц с небольшим, с надеждой на замену аппарата я ожидал ответа из сервисного центра. Долгожданный ответ поразил даже видавшего виды ЧП Сидорова - «дефект не підтверджується...!» Возмущенный до полного ступора, я отказался принять, таким чудесным образом «выздоровевший» аппарат и посоветовав сотрудникам Луганского сервисного центра использовать его в качестве анального вибратора, удалился.&lt;br /&gt;&lt;br /&gt;С тех пор (середина декабря 20YYг.) я поклялся не иметь никаких мирных отношений с FoobarTelecom. Я не знаю как у Вас на Украине, пан Иванов, а у нас в Донбассе за такие штуки подвергают «легкому остракизму с тяжелыми телесными повреждениями».&lt;br /&gt;&lt;br /&gt;Учитывая вышеизложенное, предлагаю FoobarTelecom в Вашем лице следующее:&lt;br /&gt;&lt;br /&gt;Вариант А.&lt;br /&gt;1. FoobarTelecom приносит мне свои извинения и возвращает деньги (200грн.), уплаченные мною за злополучный телефон С380 и компенсирует причиненный мне моральный ущерб и транспортные расходы понесенные мною на поездки по делам гарантийного ремонта (еще 2000грн.).&lt;br /&gt;2. Я принимаю извинения и оговоренные выше суммы, а так же оплачиваю Ваш последний счет (17.11 грн.) - в качестве жеста доброй воли.&lt;br /&gt;3. FoobarTelecom и я взаимно забываем о существовании друг друга.&lt;br /&gt;&lt;br /&gt;Вариант В&lt;br /&gt;1. FoobarTelecom игнорирует мои предложения и полагая, что имеет дело с лохом, возбуждает судебное преследование в отношении меня.&lt;br /&gt;2. Я, в качестве адекватного ответа, организовываю и провожу антирекламную акцию против FoobarTelecom в печати и INTERNET, которая несомненно встретит понимание и сочувствие среди жителей Донбасса.&lt;br /&gt;3. Всеми доступными мне законными способами наношу FoobarTelecom финансовый ущерб, превышающий на три (3) порядка понесенные мной потери.&lt;br /&gt;&lt;br /&gt;Примечание: Случаи уничтожения антенно-фидерных систем базовых станций мощными электромагнитными импульсами СВЧ - диапазона (1,2-1.8ГГц), особенно в грозовые периоды прошу моими акциями не считать, хотя я и считаюсь признанным специалистом в области методов и систем радиоэлектронной борьбы (РЭБ) военного назначения.&lt;br /&gt;&lt;br /&gt;Вариант С&lt;br /&gt;1. FoobarTelecom вообще игнорирует мое существование далее см. п.2 и 3 варианта В.&lt;br /&gt;&lt;br /&gt;Заканчивая мое послание FoobarTelecom, остается пожелать всему коллективу FoobarTelecom и подчиненных ей структур скорейшего разорения, стихийных бедствий, эпидемий венерических заболеваний, хакерских атак на сети и т.п.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Лютый ВРАГ FoobarTelecom&lt;br /&gt;Бывший контрактный абонент Петров П.П.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;P.S. В ходе дальнейшей переписки предлагаю Вам использовать русский литературный язык, а не «українську мову» (галицийско-канадское наречие) к которому у меня идиосинкразия.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:76719</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/76719.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=76719" />
    <title>Сказ про то, как девушка Катя робота покупала</title>
    <published>2008-01-08T18:59:19Z</published>
    <updated>2008-01-09T08:40:47Z</updated>
    <category term="хохмочки" />
    <category term="баечки" />
    <category term="jabber" />
    <content type="html">Вы думаете, лучшие друзья девушек - это бриллианты? Нееет, лучшие друзья девушек - это &lt;strong&gt;роботы&lt;/strong&gt;!&lt;br /&gt;&lt;br /&gt;Сначала предыстория. В моем &lt;a href="http://ru.wikipedia.org/wiki/Jabber"&gt;jabber&lt;/a&gt;-клиенте настроен auto join в несколько конференций. Сами конференции я в последнее время практически не просматриваю, но и auto join не отключаю. В двух конференциях я даже модератор :), и ко мне периодически обращаются "в приват" с самыми странными просьбами. &lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Например, сегодня меня контачит "в привате" пользователь &lt;font color="red"&gt;Катя&lt;/font&gt; из конференции ... впрочем, неважно, из какой именно. Дальше следует такой диалог (стилистика, орфография и т.п. сохранены, особо злачные фразы выделены):&lt;br /&gt;&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Только тут стоит бот ?&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; нет&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Че нет ?&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; не только тут&lt;br /&gt;&lt;u&gt;&lt;strong&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Не поняла &lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; не только тут стоит бот&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Можеш написать комнаты где можно бота дешево купить ?&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; а зачем его покупать?&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; А че есть бесплатные ?&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Кокупать чтоб был &lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; А че есть бесплатные ?&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; есть&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; В этой комнате есть ?&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; есть&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Какой ник ?&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; вон, зайди в haskell@conference.jabber.ru, пообщайся с ботом :)&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; а тут - спроси "кто тут, бля, бот?". Тебе сразу и расскажут :) &lt;small&gt;(лирическое отступление номер 1: в этой конференции "сидит" бот, который выкидывает за употребление мата)&lt;/small&gt;&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; А там есть бот ? бесплатный&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;Тут &lt;font color="red"&gt;Катя&lt;/font&gt; подключается к haskell@c.j.r. Там ее встречает бот с вопросом "напиши код на Haskell, находящий минимальный нечетный элемент списка, и получи member-а". Катя, похоже, офигевает и даже не пытается с ним общаться. Проходит пару минут.&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;img src="http://secuoyas.com/blog/wp-content/uploads/2007/05/futurama_bender.jpg" alt="Слава роботам!" align="right" hspace="10" /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Мне нужен бот &lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; Да, бот - это хорошо&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Мне нужен бот &lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; Чтобы поговорить?&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Можно принесли мне в комнату ? Только бесплатных ?&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; да легко. &lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; А это платон будет ? &lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; Платон давно умер&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; См. &lt;a href="http://ru.wikipedia.org/wiki/%D0%9F%D0%BB%D0%B0%D1%82%D0%BE%D0%BD"&gt;http://ru.wikipedia.org/wiki/%D0%9F%D0%BB%D0%B0%D1%82%D0%BE%D0%BD&lt;/a&gt;&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; А это за деньги будет ? &lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; За деньги можно практически всё&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Короче ты можеш привести бота aleksey  чтоб не за деньги ?&lt;small&gt;(лирическое отсутпление номер 2: известного в около-jabber-ных кругах aleksey, человека многих талантов,почему-то периодически принимают за бота :)&lt;/small&gt;&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Короче ты можеш привести бота aleksey  чтоб не за деньги ?&lt;br /&gt;&lt;u&gt;&lt;b&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; а чего ты фразы повторяешь? Ты, часом, не бот?&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Нет я не бот я катя &lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Приведи мне пожалуйста не за деньги этого бота lambdabot  на дня 4 ладно ?&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; легко&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; куда?&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; В комнату Frends&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; получай&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;Тут надо сделать лирическое отступление номер 3. Lambdabot - это такой jabber bot, написанный на &lt;a href="http://www.haskell.org"&gt;Haskell&lt;/a&gt;, который может делать много интересных вещей, связанных с Haskell, но который совершенно бесполезен в контексте обычной "трепологической" комнаты. Зачем он девочке Кате - малопонятно.&lt;br /&gt;&lt;br /&gt;Я кидаю всю переписку &lt;span class='ljuser' lj:user='dottedmag' style='white-space: nowrap;'&gt;&lt;a href='http://dottedmag.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://dottedmag.livejournal.com/'&gt;&lt;b&gt;dottedmag&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;-у (на VPS которого крутится lambdabot). Мы заходим во Frends посмотреть, что будет. Там - человек 5 народу, и уже сидят два бота(!), &lt;strong&gt;в том числе и тот, который выкидывает за мат.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Я join-ю lambdabot-а в Frends@c.j.r. &lt;font color="red"&gt;Катя&lt;/font&gt; пытается с ним общатся (посылая сообщения "Привет!", "Ты бот?"). Lambdabot молчит. Диалог в привате продолжается:&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Ты тут ?&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; тут&lt;br /&gt;&lt;b&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Спосибо а кто это Mikhail Gusarov  ?&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; не знаю. Может быть, еще один бот?&lt;br /&gt;&lt;/b&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; А можеш мне бота милан привести не за деньги ?&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; Милан - это в Италии, это далеко. Не могу&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; А можеш бота выбухоль не за деньги ?&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; Я думаю, бота с таким именем сразу забанят&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; По чему ?&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; В этой комнате за бан ?&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Ну приведешь ?&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; Нет, я не пью&lt;br /&gt;&amp;lt;&lt;font color="green"&gt;ADEpt&lt;/font&gt;&amp;gt; Вон, у тебя уже есть lambdabot. Мало?&lt;br /&gt;&lt;b&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Ага :-*  мне бы еще одного выбухоль ладно пожалуйстн котик ? &lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Привиди ладно ? &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;В это время во Frends@c.j.r происходит следующее&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; SulciBot: бот?&lt;br /&gt;&amp;lt;SulciBot&amp;gt; &lt;font color="red"&gt;Катя&lt;/font&gt;: Да&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; ПыХтачоГ: бот ?&lt;br /&gt;&amp;lt;ПыХтачоГ&amp;gt; [&lt;font color="red"&gt;Катя&lt;/font&gt;]: матом что&lt;br /&gt;&amp;lt;&lt;font color="red"&gt;Катя&lt;/font&gt;&amp;gt; Иди на хуй &lt;br /&gt;--- &lt;font color="red"&gt;Катя&lt;/font&gt; has been kicked: фильтруем базар&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;strong&gt;GAME OVER&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;PS&lt;br /&gt;Знающие люди подсказали мне, что в наше время развелась мода на создание jabber-конференций и их "обустройство" по последнему писку моды. Последний писк моды подразумевает, что в конференции есть разные полезные боты - следящие за порядком, организующие викторины и т.п. Однак вот беда - создать конференцию можно двумя кликами даже в том случае, если у тебя в голове одна извилина, и та - прямая, а чтобы "завести бота", надо потрудиться - найти хостинг, скачать (о ужас!) исходники, что-то там куда установить или даже скомпилировать ... Таки сложные действия создавателям конференции не под силу. А бота - хочеццо(tm). Вот они и ходят по другим конференциям и клянчат помощь таким вот образом.&lt;br /&gt;&lt;br /&gt;Соответственно, сейчас модно продавать ботов по цене от 50$/час эксплуатации + 100$ за настройку :)&lt;br /&gt;Получается, проворонил я свое счастье.&lt;br /&gt;&lt;br /&gt;PPS&lt;br /&gt;Платят или нет - не знаю, но не говорите, что я вас не предупреждал про business opportunity&lt;br /&gt;&lt;br /&gt;PPPS&lt;br /&gt;get-a-bot.com еще свободен ;)&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:75349</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/75349.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=75349" />
    <title>Про разную емкость и сексизм</title>
    <published>2007-10-16T17:58:59Z</published>
    <updated>2007-10-16T18:31:22Z</updated>
    <category term="работа" />
    <category term="баечки" />
    <content type="html">По долгу службы был в офисе интернет-провайдера X.&lt;br /&gt;&lt;br /&gt;А поскольку я находился там довольно-таки долго, и сидел у приоткрытой двери в коридор, то невольно стал свидетелем двух забавных сценок. &lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Сценка первая, про сексизм.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;По коридору ходит типичный "менеджер среднего звена" (М). Безупречная прическа, костюм-тройка, запонки, дорогой телефон, громкий командный голос. Он ведет Деловой Разговор по мобильнику, который слышно, наверное, по всему этажу.&lt;br /&gt;&lt;br /&gt;М (собеседнику): И вообще, этим занимался не я, а Наташа. Вот она придет - сам спросишь у нее, что да как. О! А вот и она! Момент.&lt;br /&gt;М (кричит через весь этаж): Наташа! НАТАША! Быстрее беги сюда, тут срочное дело, тебя Борис хочет!&lt;br /&gt;&lt;br /&gt;Из соседней двери выходит Типичный Айтишник (ТА) в футболке с надписью root и пустой кружкой в руке. &lt;br /&gt;&lt;br /&gt;ТА (себе под нос, но достаточно горомко, чтобы слышал М): Ха! Борис хочет! Да ее тут все хотят... Только бестолку это. &lt;br /&gt;&lt;br /&gt;ТА скрывается на кухне. Под цокот каблуков из-за угла коридора появляется Типичная Блондинка. Менеджер смотрит на нее оценивающим взгядом, как будто по-настоящему разглядел ее только сейчас ...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Сценка вторая, про ёмкость&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;По коридору идет Опытный Айтишник (А.) с кружкой в руке и выражением,  ему навстречу - Жизнерадостный Айтишник (Ж.) с блеском в глазах. Происходит следующий диалог:&lt;br /&gt;&lt;br /&gt;Ж(в нарочито вежливом тоне, сразу понятно, что с А. они на короткой ноге):  Желаю здравствовать,  А.! Как удачно, что я вас встретил! Мне позарез нужна ваша емкость.&lt;br /&gt;А недоуменно изгибает брови домиком и молча протягивает Ж. свою кружку.&lt;br /&gt;Ж берет кружку и так же недоуменно ее разглядывает. &lt;br /&gt;Ж(после паузы): Мне не нужна ваша кружка. Мне нужна ваша оптоволоконная емкость на Прагу!&lt;br /&gt;&lt;br /&gt;Оба смеются.&lt;br /&gt;&lt;br /&gt;&lt;small&gt;Тут и баечкам конец, а кто слушал - молодец&lt;/small&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:73439</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/73439.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=73439" />
    <title>Одну поломал, вторую - потерял...</title>
    <published>2007-09-25T18:24:39Z</published>
    <updated>2007-09-25T18:24:39Z</updated>
    <category term="баечки" />
    <content type="html">Листая логи ...&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"Добрый день&lt;br /&gt;&lt;br /&gt;Помогите, пожалуйста, нам получить свою папку с документами по проекту XYZ. Мы ее передавали Ивану Иванову два месяца назад для копирования. Папка толстая, подписанная. Цвет - не помню.&lt;br /&gt;&lt;br /&gt;дата, подпись"&lt;/i&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:73146</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/73146.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=73146" />
    <title>Еще про фамилии: охота пуще неволи</title>
    <published>2007-09-20T17:25:30Z</published>
    <updated>2007-09-20T17:25:30Z</updated>
    <category term="баечки" />
    <content type="html">В компании Z работала красивая и незамужняя девушка Ирина. Фамилия у Ирины была интересная и редкая - Охота. Произнесите: "Ирина Охота". Впечатляет, ага?&lt;br /&gt;&lt;br /&gt;А еще в компании Z работал некто К, красивый и женатый. Ирина как-то подшутила над ним на тему семейных отношений, или что-то в этом роде. Пошутила и забыла. А он - не забыл.&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;И в один прекрасный день решил разыграть Ирину в ответ.  С этой целью он выбрал из базы данных компании Z всех абонентов мужеского полу, от 25 до 35 лет, с суммой ежемесячного счета больше X грн, и еще несколько хитрых критериев.&lt;br /&gt;&lt;br /&gt;Дальше К распечатал список и пошел к Ирине. Хлопнув стопкой бумаги об стол, он заявил, что:&lt;br /&gt;а)негоже засиживаться в девках&lt;br /&gt;б)системный подход - это наше всё&lt;br /&gt;в)он сделал для нее список подходящих кандидатов в мужья&lt;br /&gt;г)в порыве беспрецедентного бескорыстия он готов самостоятельно обзвонить всех потенциальных претендентов и опросить их на предмет соответствия требованиям Ирины. Список вопросов/требований она должна составить и подать К в письменной форме.&lt;br /&gt;д)взамен К просит только одного - если затея увенчается успехом, и Ирина найдет свою "половинку", то в браке она должна взять двойную фамилию.&lt;br /&gt;&lt;br /&gt;После чего К ушел, оставив список на столе "изнанкой" вверх. Естественно, любопытство победило и Ирина решила посмотреть, кто же попал в список. Перевернув первую страницу, она сразу же заметила определенную закономерность в данных.&lt;br /&gt;&lt;br /&gt;Все кандидаты были с фамилией Рыбалко.&lt;br /&gt;&lt;br /&gt;&lt;small&gt;Все имена изменены, совпадения преднамеренны&lt;/small&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:72781</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/72781.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=72781" />
    <title>Убить генерального директора</title>
    <published>2007-09-19T18:42:29Z</published>
    <updated>2007-09-19T18:42:29Z</updated>
    <category term="баечки" />
    <content type="html">Много лет тому назад, в далекой-далекой галактике, жила-была компания Z. Деньги в компании были в основном "оттуда", и гендиректор тоже был приезжий. Звали его, допустим, Филипп.&lt;br /&gt;&lt;br /&gt;А еще в компании Z был отдел абонентского обслуживания, в просторечии - Call Center. Как известно, работа в нем тяжелая и изнуряющая, зато при приеме не просят образцово-показательного резюме и опыта работы в течении N лет. Другими словами - охотно берут студентов. Особенно - на работу в ночную смену. &lt;br /&gt;&lt;br /&gt;Иван вторую неделю работает в Call Center компании Z. Он уже не волнуется, произнося в гарнитуру "Компания Z, оператор 9876, Иван. Чем могу вам помочь?". Он уже почти разобрался в тонне новых терминов и понятий. Он почти освоил все установленные на его рабочем месте интерфейсы к различным системам компании.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;Среди этих интерфейсов есть один, особенный. Это dashboard, автоматически открывающийся на полный экран при приеме звонка от абонента. Специальный софт получает от мини-АТС номер, с которого звонят, и перед глазами оператора оказывается информация, необходимая для ответов на самые часто задаваемые вопросы: текущий баланс, последние звонки и события, история счетов и платежей, активные сервисы и т.п. В верхней части dashboard-а, на самом видном месте, находится ФИО позвонившего. &lt;br /&gt;&lt;br /&gt;Все это Иван уже выучил назубок. Но вот чего он еще не знает, так это того, что dashboard специальным образом показывает информацию о так называемых VIP-абонентах. Впрочем, скоро этот пробел в его образовании будет заполнен.&lt;br /&gt;&lt;br /&gt;Как раз в этот момент VIP-абонент компании Z, гражданка одного из европейских государств, находящаяся в Украине по долгу дипломатической службы, набирает номер Call Center. Вообще-то звонки VIP-абонентов должны маршрутизироваться на специальную группу опытных операторов, но сегодня особый день - идет плановое обслуживание и настройка мини-АТС Call Center-а, и звонок идет по обычному маршруту. И попадает на обслуживание к Ивану.&lt;br /&gt;&lt;br /&gt;Иван слышит сигнал вызова в наушнике своей гарнитуры и поднимает глаза на экран, готовясь произнести заученное приветствие. Dashboard мигает, обновляя данные, и вдруг на месте ФИО появляется красная надпись "Убей Филиппа!". Слова приветствия застревают у Ивана в горле, мысли путаются, ладони взмокают. Он не слышит, что говорит ему голос его собеседницы. Он смотрит на призыв к убийству директора, и голове его чередой проносятся мысли, одна другой глупее: "Вирус? Дурацкий розыгрыш? Кто-то затаил зуб на директора и пакостит, заменяя ФИО на провокационные надписи? Сказать кому? А вдруг подумают, что это я же и поменял?". &lt;br /&gt;&lt;br /&gt;Раздосадованная собеседница кладет трубку и dashboard очищается. Иван еще некоторое время сидит, уставившись в монитор, но затем стряхивает с себя оцепенение и идет к начальнику смены. Выслушав Ивана, начальник поднимает историю звонков, открывает данные абонента и на экране снова появляется крамольное "Убей Филиппа!".&lt;br /&gt;&lt;br /&gt;Иван ожидает разноса, но вместо этого начальник начинает смеяться в голос. Насмеявшись до икоты, начальник объясняет Ивану, что при звонке VIP-абонента его ФИО будет написано красным цветом, с восклицательным знаком (чтобы было заметнее). &lt;br /&gt;&lt;br /&gt;А что касается самой надписи - то Ивану просто повезло, что Philippa Oubey дозвонилась именно ему.&lt;br /&gt;&lt;br /&gt;Занавес.&lt;br /&gt;&lt;br /&gt;&lt;small&gt;Все события реальны, имена изменены, совпадения случайны.&lt;/small&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:70868</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/70868.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=70868" />
    <title>Правдивая (или нет) история про управление рисками</title>
    <published>2007-08-23T19:44:52Z</published>
    <updated>2007-08-28T07:53:18Z</updated>
    <category term="работа" />
    <category term="баечки" />
    <content type="html">Эту историю мне рассказали через &lt;a href="http://shmyg.livejournal.com/34299.html"&gt;третьи руки&lt;/a&gt;, но она слишком уж хороша, чтобы не изложить ее здесь. &lt;br /&gt;&lt;br /&gt;Однажды в некой компании Z решили бороться с рисками. А в компании Z слов на ветер не бросали. Сказано - значит "сделано". Были закуплены книжки, прочитаны курсы по управлению рисками и даже создан специальный отдел, в задачу которого входило "оценивать и уменьшать". Правда, после прочтения курсов отдел существенно пополнили новыми "зелеными" сотрудниками, но кто же сказал, что в новом начинании все обойдется без изъянов? &lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;Сотрудники этого отдела выступили с разумным рацпредложением - добавить к списку обязательно проектной документации документ под названием "Карта рисков", примерно такой:&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;
&lt;tr&gt;&lt;td&gt;Риск&lt;/td&gt;&lt;td&gt;Ушерб&lt;/td&gt;&lt;td&gt;Вероятность возникновения&lt;/td&gt;&lt;td&gt;Взвешенный ущерб&lt;/td&gt;&lt;tr&gt;
&lt;tr&gt;&lt;td&gt;Увольнение всех сотрудников в один день&lt;/td&gt;&lt;td&gt;1.000.000$&lt;/td&gt;&lt;td&gt;0.001%&lt;/td&gt;&lt;td&gt;10$&lt;/td&gt;&lt;tr&gt;
&lt;tr&gt;&lt;td&gt;Баги в 3rd-party библиотеках&lt;/td&gt;&lt;td&gt;10.000$&lt;/td&gt;&lt;td&gt;50%&lt;/td&gt;&lt;td&gt;5000$&lt;/td&gt;&lt;tr&gt;
&lt;tr&gt;&lt;td&gt;Не получиться изжить традицию пить пиво в офисе в пт вечером, а потом сообща править баги&lt;/td&gt;&lt;td&gt;1000$&lt;/td&gt;&lt;td&gt;100%&lt;/td&gt;&lt;td&gt;1000$&lt;/td&gt;&lt;tr&gt;
&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Ну, и так далее. Как видно, подход был выбран простой, но действенный. Бросив один взгляд на таблицу, можно было увидеть, что баги в сторонних библиотеках могут ударить по карману больнее, чем увольнение всех сотрудников (конечно, если нет ошибки в оценке ушерба и вероятности).&lt;br /&gt;&lt;br /&gt;А так как проекты в компании Z были более-менее похожие, то, понятное дело, и риски у них были почти одинаковые. Соответственно, в кратчайшие сроки была создана "Карта стандартных проектных рисков". В ней был не только перечень (названия) стандартных рисков, но и стандартная (ожидаемая) вероятность их реализации и стандартная оценка ущерба.&lt;br /&gt;&lt;br /&gt;Понятное дело, что добавление новых рисков в этот документ доводилось до сведений всех менеджеров, чтобы не было недопониманий и разночтений. &lt;br /&gt;&lt;br /&gt;И вот однажды, &lt;s&gt;когда ничто, казалось, не предвещало беды&lt;/s&gt; менеджеры компании Z получили приглашение на короткое, но чрезвычайно нужное собрание, посвященное Очередному Обновлению Карты Стандартных Рисков. &lt;br /&gt;&lt;br /&gt;В комнате, которой чудом удалось избежать превращения в очередной десяток "кубиков", сидели, стояли, ходили и ели дармовое печенье практически все менеджеры проектов компании Z. В комнате было так тесно, что сторонний наблюдатель очень удивился бы, не найдя в "Стандартной карте рисков" строчку "риск лишиться всех менеджеров вследствие теракта или банальной духоты в комнате для совещаний". Наконец, дверь открылась и в комнату впорхнуло воздушное создание, которое уместнее было бы встретить &lt;s&gt;на страницах гламурных журналов&lt;/s&gt; где-нибудь в коридоре Института культуры. &lt;br /&gt;&lt;br /&gt;"Добрый день, меня зовут ...., и сегодня я буду представлять вам последние изменения в Карте стандартных рисков". Разговоры прекратились, кто-то подавился печеньем, и в комнате воцарилась тишина. Ничуть не смутясь, девушка положила на стол стопку распечаток и продолжила: "Полный перечень вы найдете в распечатке, а самое главное изменение - это новый риск "в протестированном продукте тут же будут найдены ошибки". Денежная оценка - четверть бюджета проекта, а вероятность возникновения - 50%". Кто-то сдавлено закашлялся, ему предложили воды.  "Погодите, почему 50%? Откуда вы взяли эту цифру?", - спросил какой-то менеджер с галерки. Девушка посмотрела на него взглядом, в котором ясно читалось &lt;em&gt;не люблю идиотов и идиотских вопросов&lt;/em&gt;: "Это же очевидно! Вероятность 50%, т.к. ошибки или будут найдены, или нет".&lt;br /&gt;&lt;br /&gt;В этот момент одновременно произошло сразу несколько событий. Два менеджера точно решили, что с понедельника они идут в отпуск, т.к. больше нету сил. Один менеджер понял, что вопрос "увольняться или подождать следующего квартала" даже не стоит. Еще трое попробовали вспомнить, не первое ли сегодня апреля.&lt;br /&gt;&lt;br /&gt;"Простите, это что - глупая шутка?", - не унимался все тот же вопрошающий, - "Вы это серьезно? Вы что, не понимаете, что так считать нельзя?". В этот раз во взгляде девушки явственно читалось &lt;em&gt;убью гада!&lt;/em&gt;: "Мужчина! Если бы вы учили в школе математику, а не прогуливали уроки, то знали бы, что вероятность &lt;b&gt;именно так&lt;/b&gt; и считается. Впрочем, если вы все знаете лучше всех, то пожалуйста - выходите сюда и заканчивайте презентацию вместо меня".&lt;br /&gt;&lt;br /&gt;После чего раскрасневшаяся от возмущения девушка пулей вылетела в коридор, громко хлопнув дверью. Где ее тут же съел проходивший мимо &lt;a href="http://en.wikipedia.org/wiki/Tyrannosaurus"&gt;Tyrannosaurus Rex&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Мораль придумайте сами :)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:70149</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/70149.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=70149" />
    <title>Что в номере тебе моем?</title>
    <published>2007-08-17T19:45:22Z</published>
    <updated>2007-08-17T19:45:22Z</updated>
    <category term="работа" />
    <category term="баечки" />
    <content type="html">Однажды, в &lt;s&gt;студеную зимнюю&lt;/s&gt;горячую летнюю пору в компании Z назрела необходимость провести "маркетинговую акцию". Если термин вам незнаком, то вы &lt;s&gt;- счастливый человек&lt;/s&gt; можете составить какое-то впечатление о процессе, представив себе ловлю рыбы браконьерским способом.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;На выбранную "целевую группу пользователей" (рыбу в пруду) воздействуют разнообразными "маркетинговыми механизмами" (динамитом). В результате часть рыбы всплывает брюхом кверху. Посчитав снулую рыбу, можно определить, была ли акция успешной, достигнут ли запланированный процент отклика. Хороший маркетолог отличается от плохого тем, что плохого в принципе не волнует, переживет ли пользователь участие в акции. Если не переживет - то это уже дело тех, кто борется с оттоком абонентов, только и всего.&lt;br /&gt;&lt;br /&gt;Впрочем, ближе к теме. Итак, возникла необходимость провести маркетинговую акция, суть которой заключалась в том, что отдельных денежных клиентов необходимо было поставить перед неприятным фактом: в результате некоторых изменений в государственном законодательстве они должны были лишиться определенных  льготам и бонусов. Ответственные сотрудники написали листовку, в которой в максимально обтекаемой форме была обрисована сложившаяся ситуация, абонентов просили войти в положение и т.д. и т.п. В случае возникновения вопросов абонентам предлагалось позвонить в центр обслуживания абонентов по специальному выделенному номеру и получить ответ на все интересующие их вопросы.&lt;br /&gt;&lt;br /&gt;Текст листовки согласовывался и пересогласовывался, прошел через десяток правок и в конце-концов был утвержден. Листовка была распечатана, вложена в фирменные конверты и отправлена адресатам. Все участники процесса вздохнули с облегчением.&lt;br /&gt;&lt;br /&gt;На следующий день в отдел по работе с абонентами (по общему номеру) позвонил один из "попавших под акцию" абонентов и сказал примерно следующее: "Я, конечно, может чего-то не понимаю, но ... Короче, вам будет интересно узнать, что по номеру, указанному в листовке, какой-то мужчина посылает всех матом".  Конфуз! Скандал! Такого не может быть! Абоненту обещают во всем разобраться.&lt;br /&gt;&lt;br /&gt;И тут обнаруживается интересная деталь: номер телефона "для справок" указан с кодом сети. Сам номер - городской, и код, соответственно, должен быть (044). К сожалению, авторы текста "на автомате" вместо городского кода написали код мобильной сети компании Z. &lt;br /&gt;&lt;br /&gt;В результате все звонки с вопросами "кто посмел забрать мои льготы и бонусы?" попадают ... дедушке одного из сотрудников компании Z. Дедушка, судя по всему, оказался человеком с отнюдь не ангельским терпением и доступно объяснял всем звонящим, куда и как именно им следует пройти.&lt;br /&gt;&lt;br /&gt;История умалчивает о том, какой урон был нанесен имиджу компании Z, как именно был исправлен номер телефона, и ящик коньяка какой марки был выставлен дедушке сотрудниками компании Z ;)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:65489</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/65489.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=65489" />
    <title>Кого имеет Microsoft?</title>
    <published>2007-06-20T20:51:08Z</published>
    <updated>2007-06-21T17:15:23Z</updated>
    <category term="универ" />
    <category term="баечки" />
    <content type="html">Когда я учился в КГУ, в здании нашего факультета находился один из "офисов" издательства "Диалектика". &lt;br /&gt;&lt;br /&gt;Издательство охотно и постоянно набирало студентов со знанием английского для перевода технической литературы. Резюме и опыт работы не требовался - достаточно было нормально сделать тестовый перевод. Платили ниже среднего, но для студента второго-третьего курса это была реальная возможность зарабатывать в месяц $300-500 - деньги по тем временам совсем немаленькие.  &lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;С самого начала было понятно, что издательство на мне наживается, но я не был в обиде - получаемый взамен опыт с лихвой все компенсировал. Во-первых, я наконец-то начал набирать вслепую на русском со скоростью около 200 знаков в минуту. Потребность набирать по 20-30К текста в день сделала то, чего не смогли сделать разнообразные "тренажеры клавиатуры" - уже через неделю я переключился с "четырехпальцевого  полузрячего" на десятипальцевый слепой метод, которым уверенно пользуюсь до сих пор. В процессе обучения слепому набору указательные пальцы так и норовили "залезть" в зону противоположной руки, и тут мне пригодился вычитанный где-то совет - вставить в клавиатуру согнутую бумажку высотой 2 см так, чтобы она прошла между парами клавиш 5 и 6, Е и Н, и т.п. Нынешнее поколение покрутит пальцем у виска и покажет на клавиатуру "MS Natural", но в то время такие предметы IT-шной роскоши были простому студенту недоступны, и приходилось обходиться сложенной бумажкой :)&lt;br /&gt;&lt;br /&gt;Впрочем, я отвлекаюсь. Второй интересный опыт, имеющий отношение к этой работе, был связан с тем, что в ту пору я увлекался ФИДО, "держал ноду" (2:463/218) и всячески чувствовал себя на переднем крае модного движения. Каково же было мое удивление, когда выяснилось,  что назначенный мне технический редактор (солидный дядя с бородой вдвое меня старше) - тоже фидошник, и мы пересылали друг другу версии переводов direct attach-ем. После этого я окончательно убедился в том, что Киев - большая деревня, и для любого встреченного в около-IT-шных кругах человека обязательно существует какой-то ваш общий знакомый.&lt;br /&gt;&lt;br /&gt;Поностальгировали - и хватит. Пора уже переходить к интимной жизни софтверного гиганта, на которую я намекал в заголовке.&lt;br /&gt;&lt;br /&gt;Всего я успел поучаствовать в переводах около шести книжек, и книги попадались всякие - от "Borland C++ 4.5" и "OS/2 для чайников" до &lt;a href="http://www.dcp.kiev.ua/books/other/yp_www.html"&gt;"Желтых страниц World Wide Web"&lt;/a&gt;. Эти самые "желтые страницы" были квинтэссенцией серии "для чайников" - 90% книги состояло из screenshot-ов разнообразных internet-сайтов с короткими аннотациями на два-три абзаца. Примерно половина сайтов не могла представлять никакого интереса для людей, живущих за пределами США. но - из песни ж слова не выкинешь. Все, что было в оригинальной книге, тщательно перевели и издали.&lt;br /&gt;&lt;br /&gt;Справедливости ради стоит заметить, что оставшиеся 10% книги честно старались дать читателю какое-то поверхностное представление о том, что такое Интернет с технической, социальной и бизнесовой точек зрения. Читателю рассказывали о том, что такое модем, как его выбрать и настроить, чем отличаются браузеры Mosaic и Netscape 2.0, давали краткую историю развития интернет и описывали основных "игроков" в новой рыночной нише.&lt;br /&gt;&lt;br /&gt;Естественно, в этом разделе не могли не упомянуть Microsoft. Где-то в середине двухстраничного описания была фраза "The Internet market is fairly new, but Microsoft already has a lot of customers and tries to keep them all satisfied". Ничтоже сумяшеся я перевел это как ".... фирма Microsoft имеет множество пользователей, и старается их всех удовлетворять.", посмеялся, предвкушая реакцию технического редактора, попади ему в руки попал такой перевод, и лег спать. На следующий день это эпизод забылся, я закончил главу и переслал ее на редактуру вместе с этой фразой. &lt;br /&gt;&lt;br /&gt;Оказалось, что технический редактор тоже посмеялся, и решил ничего не менять. Литературный редактор тоже оценил шутку - все переводы, в том числе достаточно массивные, делались в Word 6.0, так что повод для веселья долго искать было не нужно. В результате, фраза ушла в печать без изменений.&lt;br /&gt;&lt;br /&gt;Понятное дело, что крупица истины затерялась среди 500 с гаком страниц совершенно бесполезной информации, но я до сих пор храню на книжной полке авторский экземпляр этой книги с первым сосбственноручно сделаным массовым easter egg-ом.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPD&lt;/b&gt;: уже после написания поста вспомнилось одна интересная деталь (под влиянием комментария &lt;span class='ljuser' lj:user='dreamiurg' style='white-space: nowrap;'&gt;&lt;a href='http://dreamiurg.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://dreamiurg.livejournal.com/'&gt;&lt;b&gt;dreamiurg&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;. В процессе перевода долго мучились вопросом, как переводить слово "browser". Делать кальку - вроде как неудобно, но многие так делают, переводить по смыслу - неуклюже ... Плюнули, и оставили "браузер". Набирал, и каждый раз как &lt;s&gt;серпом по я...&lt;/s&gt; коробило. А сейчас вон все говорят - и ничего :)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:62484</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/62484.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=62484" />
    <title>Как понять, что в коде много багов? - Это когда фиксишь их нечаянно ...</title>
    <published>2007-04-25T20:42:57Z</published>
    <updated>2007-04-25T20:42:57Z</updated>
    <category term="баечки" />
    <content type="html">Много лет тому назад, &lt;s&gt;в одной далекой галактике войска Императора собирали в космосе очередную Звезду Смерти&lt;/s&gt;. Нет, это из другой баечки. Начнем еще раз ...&lt;br /&gt;Много лет тому назад, в одно софтверной компании группа разработчиков работала над очередным Скучным Индустриальным Проектом, который к ним за-outsource-или из Индии(!).&lt;br /&gt;&lt;br /&gt;Основной задачей проекта было взять Большую Индустриальную Систему и заменить в ней "толстого клиента" на web GUI. Чтобы, так сказать, в духе времени обновить порядком устаревший интерфейс. С серверной стороны планировался код на яве, который при помощи самопального протокола общался с основными модулями системы, написанными на С++ под Solaris. Не смущайтесь, зевайте-зевайте. Я тоже всегда зеваю, когда мне интересно. &lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Чтобы можно было нормально тестироваться, на какой-то мелкий 1U сервер был подставлен Solaris под Intel, и на нем развернута основная часть системы. После чего началась работа над web GUI. Долго ли, коротко ли, дошло дело до того, что GUI можно было пытаться использовать и даже получать через него реальные данные от основных модулей системы. Всю новую функциональность разработчики, понятное дело, тут же проверяли в деле.&lt;br /&gt;&lt;br /&gt;Через какое-то время GUI вырос и начал ощутимо тормозить. Разработчики почесали репу и сказали: "Ага! Это у нас неэффективное внутренне представление данных на сервере!". И переписали его. Ура, GUI стал просто летать!&lt;br /&gt;&lt;br /&gt;Правда, добавили еще пять-десять фич, и GUI опять начал тормозить. Разработчики опять почесали репу и сказали: "Ага! Это у нас тормознутый persistent layer на сервере!". И оптимизировали его. Выжали процентов 20% производительности.&lt;br /&gt;&lt;br /&gt;Правда, дописали еще пару фич, и GUI опять начал тормозить. Разработчики почесали репу, почесали репу еще раз, скурили все сигареты и сказали: "Ага! Это у нас хреновая архитектура! Ну, ща мы ее за-refactor-им!". И сделали refactoring. Выжалось еще процентов 10%. А должно было сильно больше.&lt;br /&gt;&lt;br /&gt;Тут разработчики взяли в руки профайлер, и увидели, что самые большие тормоза - в тот момент, когда мы по самопальному протоколу поверх TCP/IP получаем данные из одного из основных модулей системы. Ага. Дальше разработчики взяли в руки telnet, соединились с этим модулем и убедились - действительно тормозит. Хотя по идее тормозить там было особенно нечему - в данном конкретном случае основной модуль должен был передать что-то очень простое, вроде локального времени на том сервере, где он работает.&lt;br /&gt;&lt;br /&gt;Тут разработчики взяли в руки &lt;a href="http://www.idevelopment.info/data/Unix/Solaris/SOLARIS_UsingthetrussCommandinSolaris.shtml"&gt;truss&lt;/a&gt;, и стали трассировать основной модуль системы (так как его исходников им не дали). И увидели, что тормоза происходят в момент вызова "&lt;a href="http://www.opengroup.org/onlinepubs/000095399/functions/fopen.html"&gt;fopen&lt;/a&gt;(tmpfile, "r")", где tmpfile - что-то вроде "/tmp/xyz.6787876"&lt;br /&gt;&lt;br /&gt;Разработчики удивились, и пошли в "/tmp". Там они сделали "touch somefile". Елки, натурально тормозит на создании пустого файла. И "rm somefile" (удаление, стало быть) тоже тормозит. В логах никаких ошибок нет, по S.M.A.R.T. выходит, что винт жив-здоров, файловая система тоже без ошибок. Мистика какая-то ...&lt;br /&gt;&lt;br /&gt;И тут кто-то случайно запустил "ls". И очень удивился, не увидев результата. То есть, вообще никакого результата. Даже более того - не увидев командного промпта. То есть, набираем ls, нажимаем ввод и тишина. Пять секунд тишина, десять - тишина, минута - тишина, 3 минуты - тишина ...&lt;br /&gt;&lt;br /&gt;По прошествии 5-10 минут ls стал выдавать результат... Оказалось, что индусские авторы основного модуля системы не имел привычки удалять за собой временные файлы. И их накопилось в /tmp совершенно неприличное количество. Настолько неприличное, что обновление директории при создании нового файла занимало от нескольких до десятка секунд.&lt;br /&gt;&lt;br /&gt;Разработчики запустили "xargs -i * | rm {}" и ушли с горя напиваться. С другой стороны - если бы не этот баг в чужом коде, фиг бы они нашли время для всех оптимизаций и рефакторинга.&lt;br /&gt;&lt;br /&gt;Остается только догадываться, как это умудрялось работать в Серьезных Индустриальных Инсталляциях.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:59533</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/59533.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=59533" />
    <title>Фигуреческие челобуры, которые доят Стром</title>
    <published>2007-03-20T20:44:59Z</published>
    <updated>2007-03-20T22:08:48Z</updated>
    <category term="работа" />
    <category term="баечки" />
    <content type="html">Как вы думаете, могли ли советские мультипликаторы семидесятых-восьмидесятых годов не только предвидеть тяжелую судьбу одного современного проекта по внедрению OSS-системы, но и показать его на всю страну в виде мультфильма? "Бредовые фантазии воспаленного мозга", скажете вы? Попробую вас переубедить...&lt;br /&gt;&lt;br /&gt;Жила-была одна телекоммуникационная компания, которой волею судеб пришлось иметь дело с некой софтверной компанией ... Впрочем, зачем длинные вступления?&lt;br /&gt;&lt;br /&gt;Сначала читаем &lt;a href="http://www.cboss.ru/press/article158793.html"&gt;вот это&lt;/a&gt;, а потом &lt;b&gt;внимательно&lt;/b&gt; смотрим и слушаем второй мультик из  &lt;a href="http://youtube.com/watch?v=UOtnr-8kdSA"&gt;сборника "Веселая Карусель #20"&lt;/a&gt;, обращая внимание на текст и надписи на транспарантах (там три мультика одним куском, наберитесь терпения или промотайте).&lt;br /&gt;&lt;br /&gt;Мультик в обязательном порядке показывался всем новым участникам проектной команды "Strom OSS" со стороны STROM. Не спрашивайте, где и как мы на него вышли :)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:57408</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/57408.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=57408" />
    <title>Уходя, гаси всех!</title>
    <published>2007-03-05T08:38:07Z</published>
    <updated>2007-03-05T08:38:07Z</updated>
    <category term="универ" />
    <category term="баечки" />
    <content type="html">На факультете кибернетики было несколько компьютерных классов. Один из них выделялся на общем фоне - вместо персоналок (уровня ЕС-1841) там стояли терминалы VT-420, подключенные к серверу MicroVAX, на котором работала настоящая всамделишная MicroVMS. Терминалы были круты и наворочены - умели Tektronix-овскую графику, несколько разных видеорежимов и т.п. (правда, мало кто этим пользовался). &lt;br /&gt;&lt;br /&gt;Сам же MicroVAX жил, если мне не изменяет склероз, в углу комнаты преподавателей. В этой комнате стояло еще несколько компьютеров, все - с доступом в интернет. Формально, компьютерами пользовались только преподаватели (читали/писали email-ы), фактически же доступ к ним имели и "особо доверенные" личности со старших курсов.  &lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;На двери этой комнаты изнутри висела бумажка А4, распечатанная на матричном принтере в чем-то типа `banner': "&lt;i&gt;Уходя - выключите свет. Ю.В. Коваль&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;Говорят, что однажды некто злонамеренный подобрал нужный шрифт, и заменил объявление другим: "&lt;i&gt;Уходя - выключите VAX. Ю. В. Коваль&lt;/i&gt;". Уходящие вечером студенты пожали плечами и выключили... &lt;br /&gt;&lt;br /&gt;Говорят, что грузился это VAX как-то нетривиально, чуть ли не с ленточек и при помощи двух бубнов (увы, сам не видел). Ю.В. Коваль шибко сильно ругался, доступ в заветную комнату был ужесточен, но со временем все вернулось в свою колею.&lt;br /&gt;&lt;br /&gt;PS&lt;br /&gt;Спелл-чекер предлагал заменить "бубнов" на "бабуинов"&lt;br /&gt;Думаю, надо было соглашаться :)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:56405</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/56405.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=56405" />
    <title>Где находится any key?</title>
    <published>2007-03-01T21:49:37Z</published>
    <updated>2007-03-04T09:31:49Z</updated>
    <category term="универ" />
    <category term="баечки" />
    <content type="html">А вот еще одну телегу задвину вам про универ.&lt;br /&gt;&lt;br /&gt;Когда мы там учились, был у нас на кафедре доцентом (или ассистентом?) некий Юрий Коваль (smith@l.n) (&lt;span class='ljuser' lj:user='netch' style='white-space: nowrap;'&gt;&lt;a href='http://netch.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://netch.livejournal.com/'&gt;&lt;b&gt;netch&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;, только не говори мне, что и у него тоже есть ЖЖ :). Он вел у нас практикум по программированию на втором курсе и спецкурс по операционным системам на четвертом. &lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Представьте себе студентов второго курса. Это уже не лопоухие абитуриенты "только из школы", нет - все уже умудренные опытом (целого одного курса!), втайне считающие себя способными сделать любую "лабу" по программированию за 15 минут. Все смотрят на задание и на препода несколько свысока.&lt;br /&gt;&lt;br /&gt;Уже на сдаче первой лабораторки ("калькулятор со скобочками") стало понятно, что шары не будет. Первому же сдающемуся в программу было вбито выражение "4+-+-+-5", и он ушел искать причину runtime error. Второму досталось "4---3", и он ушел следом за первым. Все остальные заторопились к свободным компьютерам (ЕС-1841) проверять, как себя поведет их код при попытке пережевать подобное полу-легальное выражение. Сдались, как я помню, буквально два человека.&lt;br /&gt;&lt;br /&gt;К следующей лабораторке (хоть убей, не помню, что это было) народ подошел со всем тщанием. Программы проверялись и перепроверялись, в качестве входных данных можно было сунуть любой мусор, на что программа с достоинством отвечала "error parsing data" и т.п.&lt;br /&gt;&lt;br /&gt;И вот приходит время сдавать. Первой сдается наша одногруппница. Ее программа с честью проходит все проверки, отплевывается от кривого ввода, и в конце концов на контрольных данных выдает правильный результат. Все замирают - что же будет дальше? Неужто - сдала? &lt;br /&gt;&lt;br /&gt;Под выведенными результатами программа написала "Press any key to continue". С каменным лицом Ю. Коваль нажимает на левый Shift. Естественно, программа не реагирует. Он нажимает на правый Shift. На Ctrl. На Alt. На NumLock. На ScrollLock. "Как же так?", - говорит он - "столько клавиш на клавиатуре, и буквально ни на одну никакой реакции ...". Немая сцена.&lt;br /&gt;&lt;br /&gt;Следующая версия программы была с надписью "Press space to continue".</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:56064</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/56064.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=56064" />
    <title>Виртуально-виртуально-виртуальная машина, да еще и Тьюринга</title>
    <published>2007-03-01T11:44:27Z</published>
    <updated>2007-03-01T13:45:08Z</updated>
    <category term="баечки" />
    <content type="html">Сегодняшняя байка - про конкретное использование абстрактной машины Тьюринга.&lt;br /&gt;&lt;br /&gt;Сегодня случайно попалась на глаза &lt;a href="http://bash.org.ru/quote.php?num=59325"&gt;старая шутка&lt;/a&gt; с bash.org.ru:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;i&gt;mordaha&lt;/i&gt;: Картинка: &lt;a href="http://mordaha.com/sc2l.jpg"&gt;http://mordaha.com/sc2l.jpg&lt;/a&gt;&lt;br /&gt;Это старкон2, запущенный в DosBox, под иксами в Дебиане, который запущен в VMWare, которая в WinXP&lt;br /&gt;Куда мне вопрос о неработающем звуке задавать? :)))))&lt;br /&gt;&lt;br /&gt;&lt;i&gt;gregory_777&lt;/i&gt;: Санитарам.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;На этой почве у меня &lt;s&gt;развилась&lt;/s&gt; возникло несколько ассоциаций, которыми я хочу &lt;a name="cutid1"&gt;&lt;/a&gt;поделиться.&lt;br /&gt;&lt;br /&gt;В &lt;a href="http://dragonbase.narod.ru/"&gt;цикле книг "Про Дракона"&lt;/a&gt; Павла Шумила в одной из побочных сюжетных линий был описан некий космический артефакт - гигантский компьютер размером с небольшую солнечную систему. Возраст компьютера насчитывал несколько миллионов лет, физические масштабы поражали воображение, его долго исследовали, но несмотря на все усилия, никому так и не удавалось понять, что же именно он считает и для чего/кого.&lt;br /&gt;&lt;br /&gt;По ходу пьесы выяснилось, что этот компьютер - творение рук ... одного из исследователей, который пытался взломать перебором пароль на компьютере своего коллеги, чтобы сунуть нос в результаты его исследований. Проблема была в том, что коллега был параноик, и вел свою работу внутри виртуальной машины, запущенной на своем компьютере, что сильно усложняло атаку перебором. В результате, когда первый исследователь случайно получил доступ к технологии перемещения во времени, он забросил в прошлое компьютер, который мог модифицировать и развивать самого себя. и занимался исключительно творческим взломом и подбором паролей к виртуальной машине второго исследователя. Правда, второй исследователь к этому времени уже что-то начал подозревать, и подсунул первому бэкап-копию якобы своего компьютера, которая на самом деле содержала в себе "матрешку" из десятка запущенных друг в друге виртуальных машин, последняя из которых содержала те самые ценные сведения ...&lt;br /&gt;&lt;br /&gt;Заброшенный в прошлое компьютер за пару миллионов лет "замодернизировал" себя до неузнаваемости, но "матрешку" из виртуальных машин так и не разобрал и пароль так и не подобрал ... Зато стал объектом исследования незадачливой парочки :)&lt;br /&gt;&lt;br /&gt;Да, к чему это я?&lt;br /&gt;&lt;br /&gt;Когда я был курсе на втором-третьем, нам читали курс лекций по теории вычислений, на котором, помимо прочего, познакомили нас с разнообразными &lt;a href="http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0"&gt;машинами Тьюринга&lt;/a&gt;. Если кто не знает, машина Тьюринга - это такая асбтрактная модель компьютера (состоящая из ленты в клеточку, карандаша, резинки и набора правил), на которой удобно исследовать вычисления и строить доказательства о свойствах процесса вычисления.&lt;br /&gt;&lt;br /&gt;Так вот, уже на этом достаточно абстрактном уровне можно заниматься виртуализацией: можно построить &lt;a href="http://ru.wikipedia.org/wiki/%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0"&gt;универсальную машину Тьюринга&lt;/a&gt;, которой на вход будет подаваться программа для обычной машины Тьюринга и исходные данные, после чего универсальная М.Т. проэмулирует работу обычной М.Т. с не более чем квадратичным замедлением и выдаст результат.&lt;br /&gt;&lt;br /&gt;Поскольку универсальная машина Тьюринга на базовом уровне является разновидностью обычной машины Тьюринга, для нее в свою очередь можно построить соотвествующую универсальную машину Тьюринга, и так далее, и тому подобное. &lt;br /&gt;&lt;br /&gt;А тут как раз в FIDO-шной эхоконференции RU.PERL зашел разговор о том, что на Perl-е, конечно, можно написать код любой степени нечитаемости, но за счет отладчика и отладочной печати любой такой можно распутать и в конце-концов понять.&lt;br /&gt;&lt;br /&gt;Прикола ради я написал на perl-е реализацию универсальной машины Тьюринга, которой на вход давалась программа для другой универсальной машины Тьюринга, которой на вход давалась программа для обычной машины Тьюринга, которой на вход давалось побитовое представление ASCII-строки, и эта последняя машина проверяла какое-то свойство этого бинарного представления - типа, что кол-во единиц в бинарном представлении больше кол-ва нулей в два раза, или что-то в этом роде. За счет двух (трех?) уровней эмуляции подобная проверка делалась примерно секунд 10.&lt;br /&gt;&lt;br /&gt;Написал, и закинул в RU.PERL. Без описания того, что делает программа, но с примером строки, которая проходит подобную проверку. И предложил найти еще одну подобную строку. Если мне не изменяет мой склероз, то желающие были, но положительного результата они так и не достигли :)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Мораль&lt;/b&gt;: никогда не знаешь, когда тебе придется применить на практике знания, которые в институте кажутся оторванными от реальности и никому не нужными.&lt;br /&gt;&lt;br /&gt;PS&lt;br /&gt;Just for fun, та самая программа на perl-е (найденная внутри devel.zip, который был внутри old_computer.zip, который был внутри backup_to_sort_later.tgz, который бы в old_notebook.tar.bz2 :)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
#!/usr/bin/perl -w

#
# Correct passwd: '3is&amp;gt;}.gK' (without '')
#

$data="Z043ZZZZZ111110ZZ0Z0ZZ0Z1102Z11110ZZ0ZZZZZ1110ZZ0Z102ZZZZ11111110Z110Z111111".
"111111110ZZ0Z1102ZZZZZ1111111110Z0ZZZZZ1111111110Z0Z1102ZZZZ111111110ZZ0ZZZZ".
"111111110Z0Z102Z111110ZZ0ZZZZZ1110ZZ0Z102ZZZZ11110Z10ZZZZ11110Z10Z102Z110ZZ0".
"ZZZZZ1110ZZ0Z102Z111110Z0Z1111110Z0Z1102ZZZZZ11111111110ZZ0ZZZZZ11110ZZ0Z102".
"ZZZZZ1111111110Z10ZZZZZ1111111110Z10Z1102ZZZZ11111110ZZ0ZZZZ11111110Z10Z102Z".
"ZZZ111111110Z110Z111111111111110ZZ0Z1102Z11111110Z10Z111111110Z10Z1102Z10Z10".
"Z110Z10Z1102Z111111110Z0Z1111111110Z0Z1102ZZZZZ1110Z10ZZZZZ1110Z10Z102ZZZZZ1".
"1110ZZ0Z0ZZ0Z1102ZZZZZ1110ZZ0ZZZZZ111111110ZZ0Z1102Z10Z0Z110Z0Z1102ZZZZ11111".
"0ZZZZ10ZZZZ1111110Z10Z102Z1110Z10Z11110Z10Z1102ZZZZ10Z0ZZZZ10Z0Z102ZZZZ1110Z".
"Z0ZZZZ1110Z10Z102ZZZZ1110Z10ZZZZ1110Z10Z102Z11111110ZZ0ZZZZZ1110ZZ0Z102Z1111".
"1110Z0Z111111110Z0Z1102ZZZZ11110Z110Z111111111111110ZZ0Z1102Z110Z0Z1110Z0Z11".
"02ZZZZ111111110ZZZZ10ZZZZ1111111110Z10Z102ZZZZZ1110ZZZZ10ZZZZZ111111110ZZZZ1".
"0Z1102Z1110Z0Z11110Z0Z1102Z1111111110ZZ0Z1111111110ZZ0Z102Z110Z10Z1110Z10Z11".
"02Z10ZZ0ZZZZZ1110ZZ0Z102ZZZZ11110ZZZZ10ZZZZ111110Z0Z102ZZZZZ11111111110Z10ZZ".
"ZZZ11111111110Z10Z1102ZZZZ111110Z110Z111111111111110ZZ0Z1102ZZZZ111110Z0ZZZZ".
"111110Z0Z102Z0ZZ0Z0ZZ0Z1102ZZZZ111110ZZ0ZZZZ111110Z10Z102ZZZZ10Z110Z11111111".
"1111110ZZ0Z1102ZZZZ11111110ZZZZ10ZZZZ111111110Z0Z102ZZZZZ111110Z0ZZZZZ1110ZZ".
"0Z102ZZZZZ11110Z10ZZZZZ1110ZZ0Z102ZZZZ110ZZ0ZZZZ110Z0Z102ZZZZZ11110Z0Z111111".
"111111110Z10Z1102ZZZZZ1110Z0ZZZZZ1110Z0Z102Z111111110Z10Z1111111110Z10Z1102Z".
"ZZZ1111111110ZZ0ZZZZ1111111110Z0Z102ZZZZZ111111110Z10ZZZZZ11111111110ZZ0Z110".
"2ZZZZ1111111110ZZZZ10ZZZZ10Z10Z102Z1111111110Z10ZZZZZ1110ZZZZ10Z102ZZZZZ1111".
"1111110Z0ZZZZZ11111111110Z0Z1102ZZZZ1111110ZZZZ10ZZZZ11111110Z0Z102ZZZZZ1111".
"111110ZZZZ10ZZZZZ111110ZZZZ10Z102Z111111110ZZ0ZZZZZ1110ZZ0Z102Z0Z110Z0Z110Z1".
"102Z0ZZZZ10Z10ZZZZ10Z1102Z1111111110Z0ZZZZZ1110ZZZZ10Z102Z0Z1110ZZZZ10Z1110Z".
"102ZZZZZ11111111110ZZZZ10ZZZZZ11110ZZZZ10Z102ZZZZ1111110Z110Z111111111111110".
"ZZ0Z1102ZZZZ1110Z110Z111111111111110ZZ0Z1102ZZZZ10ZZ0ZZZZ10Z10Z102ZZZZ110Z10".
"ZZZZ110Z10Z102Z11110Z10Z111110Z10Z1102ZZZZ110ZZZZ10ZZZZ1110Z10Z102ZZZZZ11111".
"1110ZZ0Z0ZZ0Z1102ZZZZ1111111110Z11011111111110ZZ0Z1102Z0Z0Z10ZZZZ10Z1102Z111".
"1110Z10Z11111110Z10Z1102ZZZZZ111111110Z0ZZZZZ1111111110ZZ0Z1102ZZZZZ11111111".
"10ZZ0ZZZZZ111110ZZ0Z102Z11110Z0Z111110Z0Z1102ZZZZ11110ZZ0ZZZZ11110Z0Z102Z111".
"110Z10Z1111110Z10Z1102ZZZZ110Z110Z111111111111110ZZ0Z1102Z1110ZZ0ZZZZZ1110ZZ".
"0Z102Z1111110Z0Z11111110Z0Z1102ZZZZ1110ZZZZ10ZZZZ11110Z0Z102ZZZZZ111110Z10Z1".
"11111111111110Z0Z1102Z1111110ZZ0ZZZZZ1110ZZ0Z102ZZZZ1111110ZZ0ZZZZ1111110Z0Z".
"102Z0Z10Z10ZZZZ10Z1102ZZZZ10ZZZZ10ZZZZ110Z0Z102";

sub crackme($) {
  my ($s,$c,$m,$r);
  $r="";
  foreach (split(//,"2\@".$_[0]."\@3")) {
    $s=("1" x (ord($_)))."0";
    $r.=$s;
  }
  $r=~s/1{32}0/0/g;
  $data=~s/Z/1111111111111111/g;
  $data=~s/4/4$r/;
  $data=~s/41/4\#/;

  $s="1111111111111110";
  while (not(341 % length($s) == 0)) {
    if ($data=~/^(1+0)4.*?\#(1+0).*?(?:3.+?[^1]|3)(\1)([1]\2)(1+0)(1+0)(1+0)2/) {
      $s=$5;$c=$6;$m=$7;
      if (length($m)&amp;gt;18) {
        $data=~s/\#1+01/$c\#/;
      } else {
        $data=~s/1(1+0)\#1+0/\#$1$c/;
      }
      $data=~s/^.*4/4/;
      $data=$s.$data;
    }
  }
  print "Password ";
  if ($s=~/1{15}/) {
    print "in";
  }
  print "correct\n";
}


crackme(unpack("B*",$ARGV[0]));
&lt;/pre&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:55781</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/55781.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=55781" />
    <title>Почему я не хожу к психологам.</title>
    <published>2007-02-25T20:41:28Z</published>
    <updated>2007-02-25T21:01:20Z</updated>
    <category term="хохмочки" />
    <category term="баечки" />
    <content type="html">Теперь у меня есть что показать людям, которые спросят, не хочу ли я пойти к психологу.&lt;br /&gt;&lt;br /&gt;Ниже - лог реального диалога по ICQ, который только что состоялся у меня с неизвестной собеседницей (ее UIN забит 'x'-ами). Что называется, "срочно в номер". Орфография и стилистика в точности сохранена :)&lt;br /&gt;&lt;br /&gt;&lt;verb&gt;&lt;br /&gt;[22:07]&amp;lt;34xxxxx06&amp;gt; АААА!&lt;br /&gt;3дравствуй!&lt;br /&gt;[22:07]&amp;lt;34xxxxx06&amp;gt; Дима&lt;br /&gt;[22:08]&amp;lt;34xxxxx06&amp;gt; :'(&lt;br /&gt;&lt;br /&gt;[22:17]&amp;lt;adept&amp;gt; да?&lt;br /&gt;&lt;br /&gt;[22:17]&amp;lt;34xxxxx06&amp;gt; ДАААААААААААА_ААААААААААААА!:'(&lt;br /&gt;&lt;br /&gt;[22:17]&amp;lt;adept&amp;gt; ?&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[22:20]&amp;lt;34xxxxx06&amp;gt; ХХныыыыыыыыыыыыыыыыыыыыккккккк!!!!!!!!аааааааааааа! нет.! нет сил!!!!!!!!!!!ааа!:'(&lt;br /&gt;Дерьмов же мир!!!!!!!!!!! хныыыкк!! (3ахлеб в соплях)&lt;br /&gt;&lt;br /&gt;а вообще, Друг, оветь, на каком факультете у4ился ТЫ??&lt;br /&gt;&lt;br /&gt;[22:20]&amp;lt;adept&amp;gt; начнем издалека&lt;br /&gt;[22:20]&amp;lt;adept&amp;gt; мы знакомы?&lt;br /&gt;&lt;br /&gt;[22:21]&amp;lt;34xxxxx06&amp;gt; ВОТ МЫ И РА3БЕРЁМСЯ!))&lt;br /&gt;ФАКУЛЬТЕТ???&lt;br /&gt;&lt;br /&gt;[22:21]&amp;lt;adept&amp;gt; значит, незнакомы.&lt;br /&gt;[22:22]&amp;lt;adept&amp;gt; допустим (для поддержания разговора), мы учились на одном факультете&lt;br /&gt;[22:22]&amp;lt;adept&amp;gt; что тогда?&lt;br /&gt;&lt;br /&gt;[22:22]&amp;lt;34xxxxx06&amp;gt; ВСЁ НЕ с факультета психологии...как я понимаю)))&lt;br /&gt;[22:22]&amp;lt;34xxxxx06&amp;gt; Я ПРАВА??&lt;br /&gt;&lt;br /&gt;[22:23]&amp;lt;adept&amp;gt; да. кибернетика&lt;br /&gt;[22:23]&amp;lt;adept&amp;gt; (неужели меня выдало то, что я не употребляю CapsLock?)&lt;br /&gt;&lt;br /&gt;[22:24]&amp;lt;34xxxxx06&amp;gt; НУУ...ПОНЯТНО, КИБЕРНЕТИК!...ВСЁ ТЕПЕРЬ , ПОНЯТНО!!:'(:'(:'(&lt;br /&gt;[22:24]&amp;lt;34xxxxx06&amp;gt; АА&lt;br /&gt;&lt;br /&gt;[22:25]&amp;lt;adept&amp;gt; АА?&lt;br /&gt;&lt;br /&gt;[22:27]&amp;lt;34xxxxx06&amp;gt; я просто не могла быть 3накома с Тобой, даже просто потому 4то, никогда не была на (в)  Украине!)))..и вообще, в столь восто4но расположеных странаХ))&lt;br /&gt;&lt;br /&gt;[22:28]&amp;lt;adept&amp;gt; к чему тогда вопрос про факультет?&lt;br /&gt;&lt;br /&gt;[22:29]&amp;lt;34xxxxx06&amp;gt; ищу отца своего ребенка!))&lt;br /&gt;&lt;br /&gt;[22:30]&amp;lt;adept&amp;gt; знак ГТО на груди у него, больше не знают о нем ничего?&lt;br /&gt;[22:31]&amp;lt;adept&amp;gt; ты, что-ли, всех Дим перебираешь по очереди?&lt;br /&gt;&lt;br /&gt;[22:33]&amp;lt;34xxxxx06&amp;gt; нет!нет!всё!))не переживай!шу4у!балуюсь!кланяюсь! 3доровья вам!)))&lt;br /&gt;&lt;br /&gt;[22:35]&amp;lt;adept&amp;gt; хм. спасибо&lt;br /&gt;&lt;/verb&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:53263</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/53263.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=53263" />
    <title>Что лучше: два кило по кило, и кило по пол-кило или просто три кило?</title>
    <published>2007-01-09T18:47:50Z</published>
    <updated>2007-01-09T19:53:04Z</updated>
    <category term="баечки" />
    <content type="html">Новый Год, вагон работы и подкравшийся от сотрудников простудифилис привели к тому, что я еще даже на прошлогодние комментарии не поотвечал. Как говориться "сколько всего не сделано, а ведь сколько еще предстоит не сделать!".&lt;br /&gt;&lt;br /&gt;Непорядок. Надо постепенно исправляются. Начну с баечки, которая давным-давно overdue. Итак, &lt;a name="cutid1"&gt;&lt;/a&gt;страшная история про "&amp;lt;&amp;lt;8&amp;lt;&amp;lt;8".&lt;br /&gt;&lt;br /&gt;Было это в далеком 19xx году, когда я учился не то в 11-ом классе, не то на первом курсе. Как-то совершенно неожиданно нам с &lt;span class='ljuser' lj:user='yvl' style='white-space: nowrap;'&gt;&lt;a href='http://yvl.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://yvl.livejournal.com/'&gt;&lt;b&gt;yvl&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; подвернулась халтура, в рамках которой надо было написать некий софт, способствующий написанию книжек и сценариев, в частности - позволяющий править базы данных, хранимые в каком-то безумном текстовом формате.&lt;br /&gt;&lt;br /&gt;Это сейчас можно провести пол-часа в обнимку с Гуглом и найти/честно стянуть готовое. А в то благословенное время компьютеры были большими, модемы - на 2400, интернета не было, а софт был на дискетках 5.25 (прочие душещипательные детали можно почерпнуть из &lt;a href="http://yvl.livejournal.com/4840.html"&gt;вот этого поста&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Я не буду рассказывать ужасы о том, как были сформулированы требования к софту и каким образом был были зафиксированы договорные отношения между Заказчиком и Исполнителями, т.к. это пошло и не ново. Просто представьте себе обычный project from hell, без требований, без обязательств, с непонятными сроками и с неопытными исполнителями, жизнерадостно лабающими в четыре руки на одном компьютере код на, кажется, Visual C++ 5.0. Представьте и попробуйте поставить себя на место студентов-исполнителей.&lt;br /&gt;&lt;br /&gt;Код пишется вечерами, почти без проектирования. Coding sessions прерываются распитием пива, игрой в "UFO: Enemy unknown" и выполнением лабораторных работ. Код или пишется со скоростью 20К в сутки, или не пишется вообще никак. И в один из таких "медленных" дней мы сталкиваемся с тем, что нам надо узнать, в каком конкретно месте в пределах List Control-а пользователь сдела щелчок мышкой. Зачем - я уже и не припомню. Но точно помню, что нужно было позарез. &lt;br /&gt;&lt;br /&gt;А вот фигушки! Стандартный MFC-ный ListCtrl обрабатывал событие "button click" и "button double click" внутри себя, не отдавая его дальше и не инкапсулируя мышиное событие в порождаемый event "list item selected". Битый час мы крутили ListCtrl и так и эдак - нет, не выходит каменный цветок. Постепенно приходит понимание того, что надо делать Костыль.&lt;br /&gt;&lt;br /&gt;Сказано - сделано. На свет появляется  widget с названием, стыдно сказать, FuckingListCtrl. Он отнаследован от стандартного ListCtrl и отличается от предка только методом "OnLButtonDown". Наша реализация уведомляет контейнер, в котором находится список, о нажатии на кнопку, причем делает это вот так:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;void CFuckingListCtrl::OnLButtonDown(UINT nFlags, CPoint point)&lt;br /&gt;{&lt;br /&gt;        GetParent()-&amp;gt;SendMessage(WM_LBUTTONDOWN, nFlags, (point.y&amp;lt;&amp;lt;16)+point.x);&lt;br /&gt;        CListCtrl::OnLButtonDown(nFlags, point);                                                                                                   &lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Т.е. берем координаты мышиного клика, "упаковываем" в один WORD, засовываем в событие WM_LBUTTONDOWN и вуаля! Казалось бы, костыль себе и костыль. Собираем, запускаем - не работает. Точнее, работает, но как-то странно - отладочная печать в контейнере показывает, что в событии WM_LBUTTONDOWN приезжают ... &lt;b&gt;отрицательные координаты&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;Запускаем несколько раз, стараясь не двигать мышку. Координаты отрицательные и &lt;b&gt;каждый раз разные&lt;/b&gt;. Хм. Запускаем под отладчиком, ставим breakpoint-ы. В CFuckingListCtrl координаты нормальные, адекватные, положительные. На следующем breakpoint-е (в контейнере) они неадекватные и отрицательные.&lt;br /&gt;&lt;br /&gt;Чешем репу, суем отладочный вывод куда угодно. Проходит два часа. Аномалия никуда не уходит.&lt;br /&gt;&lt;br /&gt;В какой-то момент запускаем код под отладчиком, проходим пошагово, вбив в watchlist значения "point.x" и "point.y". Аномалия по-прежнему имеет место. Добавляем в watchlist "(point.y&amp;lt;&amp;lt;16)+point.x" . Очень странно. Получается, что именно тут и вылазит фигня, так как значение этого выражения получается странным и отрицательным. Тут же вбиваем в "Debug-&amp;gt;Evaluate" это же выражение, в которое подставлены реальные значения координат. Все вычисляется правильно. &lt;br /&gt;&lt;br /&gt;Забавно. Получается, с константами "сдвиг влево" считается правильно, а с переменными - абы как. Да ну, фигня какая! Не может такого быть. Начинаем вбивать в evaluate выражения "point.x&amp;lt;&amp;lt;2", "point.x&amp;lt;&amp;lt;3" и т.п. Выясняется, что сдвиг на 2,3,4,5,6,7,8 - работает нормально, а дальше - фиг.&lt;br /&gt;&lt;br /&gt;Переписываем код вот так: "((point.y&amp;lt;&amp;lt;8)&amp;lt;&amp;lt;8)+point.x".&lt;br /&gt;&lt;br /&gt;Все работает. Немая сцена.&lt;br /&gt;&lt;br /&gt;Чтобы проверить, что проблема действительно была в этом, меняем обратно на "&amp;lt;&amp;lt;16" и пересобираем. Глючит. Меняем на "&amp;lt;&amp;lt;8&amp;lt;&amp;lt;8". Работает. &lt;br /&gt;&lt;br /&gt;Бл#! @#$%$#! @#$#@#%#! Все равно не верится. Еще раз меняем на "&amp;lt;&amp;lt;16" и случайно вместо "rebuild" давим на "clean rebuild". Все долго-долго пересобирается с нуля и ... работает.&lt;br /&gt;&lt;br /&gt;Причем работает под отладчиком, без отладчика, в сборке "Debug", в сборке "Release" - как угодно.&lt;br /&gt;&lt;br /&gt;Следующие пол-часа мы могли только материться, менять "&amp;lt;&amp;lt;16" на "&amp;lt;&amp;lt;8&amp;lt;&amp;lt;8" и обратно, пересобирать код в разных позах и пытаться сделать так, чтобы баг проявился еще раз. Ни-фи-га.&lt;br /&gt;&lt;br /&gt;В конце-концов мы оставили в коде "&amp;lt;&amp;lt;8&amp;lt;&amp;lt;8". Просто так, на всякий случай.&lt;br /&gt;&lt;br /&gt;С тех пор я стал с большим доверием относиться к любым, самым безумным историям про глюки софта.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Disclaimer&lt;/em&gt;: данный пост - не о том, как (не надо) писать программы с использованием MFC. Не судите строго :)&lt;br /&gt;&lt;br /&gt;&lt;small&gt;а теперь попробую ответить на 87 накопившихся комментариев&lt;/small&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:50456</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/50456.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=50456" />
    <title>Мы ашипки не совершаем, мы ими разговариваем</title>
    <published>2006-12-15T08:16:31Z</published>
    <updated>2006-12-15T08:19:20Z</updated>
    <category term="работа" />
    <category term="баечки" />
    <category term="паноптикум" />
    <content type="html">Я когда-то уже приводил образчик творчества &lt;a href="http://users.livejournal.com/_adept_/38549.html"&gt;"нормальных людей, неиспользующих спелчекер"&lt;/a&gt;. На днях сорока на хвосте принесла еще один шедевр того же автора, которым я не могу не поделиться:&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;table border="0"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://pics.livejournal.com/_adept_/pic/00002ypx/"&gt;&lt;img src="http://pics.livejournal.com/_adept_/pic/00002ypx/s640x480" alt="braindmg.jpg" border="0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:46871</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/46871.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=46871" />
    <title>Дурная голова WiFi покоя не дает</title>
    <published>2006-11-27T22:33:17Z</published>
    <updated>2006-11-27T22:33:17Z</updated>
    <category term="баечки" />
    <lj:music>Fear Factory - Invisible Wounds (Dark Bodies)</lj:music>
    <content type="html">В некотором царстве, в некотором государстве жили-были один Десктоп и три Ноутбука.&lt;br /&gt;&lt;br /&gt;Два ноутбука были нормальными, а &lt;a name="cutid1"&gt;&lt;/a&gt; на третьем стоял Linux.&lt;br /&gt;&lt;br /&gt;Сначала windows-ноутбуки были маленькими и несмышлеными, но потом выросли и обнаружили, что у них есть (не смейтесь!) WiFi. Поначалу ноутбуки не знали, что с ним делать, но потом природа взяла свое, и они стали жить друг с другом как придется (сиречь, ad-hoc). Ноутбук с Linux-ом тоже имел WiFi, но, будучи выходцем из конторских, был гордым - желал только долгосрочных и управляемых (managed) отношений, и как попало с другими ноутбуками жить не хотел.&lt;br /&gt;&lt;br /&gt;Как-то раз Десктоп застал windows-ноутбуки в процессе коннекта, и ему стало завидно. Он сделал себе операцию и вставил самый толстый WiFi (на 108 mbit) прямо в PCI, и пошел проситься жить ad-hoc с ноутбуками - глядишь, что нибудь как-нибудь и получится ad-hoc. &lt;br /&gt;&lt;br /&gt;Фиг там - сказали ноутбуки. У нас лишнего DHCP нет, да и вообще - не дело это ad-hoc втроем жить. Купи нам access point (AP), заодно подключим кабельный модем - у него WiFi нет, зато есть интернет.&lt;br /&gt;&lt;br /&gt;Сказано - сделано. Купили AP, подключили кабельный модем. Заодно пригласили к себе и ноутбук с Linux-ом - а то не по-товарищески как-то получается.&lt;br /&gt;&lt;br /&gt;И началась у них не жизнь, а сказка. Проснулся, из hibernate-а вылез, а тебе уже и WiFi, и DHCP, и IP-адрес на блюдечке несут, интернет из кабельного модема льется - только ведра подставляй.&lt;br /&gt;&lt;br /&gt;Впрочем, счастье длилось недолго. Прошел месяц, и windows-ноутбуки стали вести себя странно и подозрительно. То и дело они говорили - "не надо мне вашего IP и вашего DHCP, возму я себе IP из zeroconf (169.254.xxx.xxx) и буду тихо грустить в углу, а вы пытайтесь меня развесилить". &lt;br /&gt;&lt;br /&gt;Поют им песенку - грустят ноутбуки. Включают/выключают WiFi - грустят ноутбуки. Делают им "ipconfig /renew" - все бестолку. Чего ж вам надо-то? "А вот перезагрузите AP - мы и развеселимся".&lt;br /&gt;&lt;br /&gt;И точно - перегрузишь AP, тут ноутбуки и развеселятся. И IP у них появляется, и DHCP они кушают. Часа на два-три. А потом - опять грустят.&lt;br /&gt;&lt;br /&gt;Дурной пример заразителен - глядя на ноутбуки, стали периодически грустить даже linux-ноутбук и Десктоп.&lt;br /&gt;&lt;br /&gt;Пришла бабка-ворожка. "Все вижу, все знаю", - говорит. "Ясно вижу - беды ваши в firmware! Позолотите ручку - вылью вам firmware, а вместе с ним тоска выльется". Позолотили ручку, залила бабка-ворожка в AP новую firmware и ушла.&lt;br /&gt;&lt;br /&gt;Прошло три часа - снова грусть и смурь полезла из всех углов. Сидят Десктоп и ноутбуки, из zeroconf носа не кажут. в интернет не ходят, файлы друг другу не посылают. Мда, похоже, опять надо AP перезагружать. &lt;br /&gt;&lt;br /&gt;А у AP от перезагрузок уже календарь перед глазами плывет и учет DHCP leases сбивается - что кому давал, не помнит, все путает, вместо новых IP выдает юзанные. Вы получали когда-то вместо нового IP - юзаный? Если да, то вам и так все понятно, а остальным - словами не опишешь.&lt;br /&gt;&lt;br /&gt;Мда... Ну, делать нечего - пришлось обращаться к традиционной медицине. Позвали доктора. Пришел доктор, посмотрел и сказал: "Микстуры пить поздно. Только операция". И сделал ноутбукам с windows лоботомию.&lt;br /&gt;&lt;br /&gt;И тут грусть-тоску как рукой сняло. И стали они жить-поживать и гигазы вареза наживать.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Мораль сказки&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Маленькие дети!&lt;br /&gt;&lt;br /&gt;Ни за что на свете!&lt;br /&gt;&lt;br /&gt;Настроив на windows-машинах Ad-Hoc WiFi network с ESSID, допустим, "some network", не давайте такой же ESSID той Managed сети, которую вы строите на access point-е.&lt;br /&gt;&lt;br /&gt;А если уже даете тот же ESSID, так по крайней мере используйте в Ad-Hoc и Managed сетях разные WEP-ключи или сертификаты.&lt;br /&gt;&lt;br /&gt;А не то в большой и дружной семье начнутся беспорядочные связи, а от беспорядочных связей - проблемы.&lt;br /&gt;&lt;br /&gt;Ноутбуки с windows будут через раз коннектится либо в managed режиме к AP, либо в ad-hoc - друг к другу. Причем, поскольку это Windows, то понять, в каком режиме работает WiFi можно только по виду иконки в списке доступных безпроводных сетей, который запрятан в дебри настрое сетевого интерфейса.&lt;br /&gt;&lt;br /&gt;Ноутбук с linux-ом и десктоп про ad-hoc сеть не знают и пытаются работать только через AP, но им от этого не легче.&lt;br /&gt;&lt;br /&gt;А не легче им потому, что у AP, похоже, развивается шизофрения на почве наблюдения в эфире "своего" ESSID с правильным ключем, но - в ad-hoc режиме, и он медленно сходит с ума и уходит в себя до ребута.&lt;br /&gt;&lt;br /&gt;А самое обидное, что это бардак я развел своими руками, и он меня изводил месяц, прежде, чем я сел и подумал о причинах и следствиях.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:46399</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/46399.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=46399" />
    <title>Решите проблему с округлением!</title>
    <published>2006-11-26T16:54:32Z</published>
    <updated>2006-11-26T16:54:32Z</updated>
    <category term="работа" />
    <category term="баечки" />
    <content type="html">Как-то раз, когда я работал в компании Y, в наш отдел пришло письмо из бухгалтерии с темой: "СРОЧНО! Помогите решить проблему с округлением!".&lt;br /&gt;&lt;br /&gt;Письмо содержало полную историю примерно недельной переписки бухгалтерии и клиента, суть которой сводилась к следующему. &lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Бухгалтерия выслала клиенту счет вида (на самом деле, там было около 150 позиций):&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;
&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Цена без НДС&lt;/th&gt;&lt;th&gt;НДС&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Фиговины&lt;/td&gt;&lt;td&gt;1,02&lt;/td&gt;&lt;td&gt;0,27&lt;/td&gt;&lt;tr&gt;
&lt;tr&gt;&lt;td&gt;Хреновины&lt;/td&gt;&lt;td&gt;3,05&lt;/td&gt;&lt;td&gt;0,79&lt;/td&gt;&lt;tr&gt;
&lt;tr&gt;&lt;td&gt;Прочая ерунда&lt;/td&gt;&lt;td&gt;28,6&lt;/td&gt;&lt;td&gt;7,44&lt;/td&gt;&lt;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;Итого&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;32,67&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;8,49&lt;/b&gt;&lt;/td&gt;&lt;tr&gt;
&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;В этом счете итоговая сумма НДС была посчитана как (итого * НДС), а не как сумма НДС по отдельным позициям (поскольку, как я помню, детализация давалась, что называется, JFYI).&lt;br /&gt;&lt;br /&gt;Клиент попался дотошный и не поленился просуммировать НДС по всем позициям и сравнить его с итоговым. У него получился, отличающийся от "бухгалтерского" где-то на рубль. Клиент понял, что если его каждый раз дурят на рубль - так это ж всех остальных тоже, небось, дурят на рубль. Прикинув в уме кол-во клиентов, он получил таки суммы, от которых захватывало дух.&lt;br /&gt;&lt;br /&gt;Ну уж нет - решил клиент, я этого вам так не спущу. И пошел на бухгалтерию войной.&lt;br /&gt;&lt;br /&gt;Бухгалтерия какое-то время отпиралась, но потом решила уступить и спустила проблему "в IT". &lt;br /&gt;&lt;br /&gt;Задача IT-шникам была поставлена так: "принципы формирования сумм и рассчета НДС - незыблемы и неизменны. Но! Надо сделать так, чтобы клиент, просуммировав НДС по всем позициям, получал то же значение "итого", что и в нашем счете".&lt;br /&gt;&lt;br /&gt;- Ок, - сказали мы. Давайте увеличим точность НДС по позиции до четырех знаков после запятой. &lt;br /&gt;- Нельзя(TM).&lt;br /&gt;- Давайте будем считать "итого НДС", суммируя позиции &lt;br /&gt;- Нельзя(ТМ)&lt;br /&gt;- Давайте не будем показывать НДС по позициям&lt;br /&gt;- Нельзя(ТМ)&lt;br /&gt;- Но ведь Метро же так делает&lt;br /&gt;- А нам пофиг&lt;br /&gt;- Тогда давайте в некоторые позиции "добрасывать" копеечку на НДС&lt;br /&gt;- Вы что! Аудит нас схавает живьем!&lt;br /&gt;- Так а что вы хотите тогда от нас?&lt;br /&gt;- Как что?! Решите проблему с округлением!&lt;br /&gt;- Как?&lt;br /&gt;- Сделайте так, чтобы расхождений не было&lt;br /&gt;- Это невозможно&lt;br /&gt;- Как это невозможно? В счет эти данные попадают из вашей системы, значит - где-то у вас ошибка. Вот найдите ее и устраните!&lt;br /&gt;&lt;br /&gt;IT полезло в бутылку. Бухгалтерия пошла к начальству. Пришел чуть ли не генеральный директор интересоваться, "неужели так тяжело найти в программе ошибку?". &lt;br /&gt;&lt;br /&gt;Тут дискуссия перешла в плоскость незамутненного обмена эмоциями и обсуждения личностей (кто как учил математику в школе, и т.п.)&lt;br /&gt;&lt;br /&gt;К счастью, в том момент, когда конфликт близился к своему апогею и было понятно, что вот-вот, и прольется чья-то кровь, случилось чудо. Верховные Бухгалтерские Жрецы удачно принесли жертву не то Нацбанку, не то Минфину, не то какому-то другому языческому богу, и сказали, что можно НДС по отдельным позициям не писать.&lt;br /&gt;&lt;br /&gt;Между IT и бухгалтерией воцарился вооруженный до зубов нейтралитет, но на слово "округление" и те, и другие еще где-то год реагировали очень нервно.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_adept_:44364</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_adept_/44364.html" />
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_adept_/data/atom/?itemid=44364" />
    <title>Иногда проще отдаться, чем объяснить, почему нельзя ...</title>
    <published>2006-11-18T15:35:56Z</published>
    <updated>2006-11-18T15:35:56Z</updated>
    <category term="работа" />
    <category term="баечки" />
    <content type="html">Что-то сильно и плотно ударился в GSM. А ну-ка, сменим тему.&lt;br /&gt;&lt;br /&gt;Расскажу я вам удивительную историю про скрипт на С. &lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;В компании Х жил да был CVS. К нему был прикручен т.н. commit mailout - рассылка по почте уведомлений о коммитах в репозиторий, с указанием того, кто чего куда закоммитил, и каким комментарием сопроводил.&lt;br /&gt;&lt;br /&gt;Будучи человеком неленивым, я подписался на все-все-все изменения, которые делались в CVS, и периодически их просматривал. Чтобы, значит, быть в курсе происходящего и периодически наставлять на путь истинный новичков. &lt;br /&gt;&lt;br /&gt;И вот однаждые мои глаза цепляются за коммит, в метаданных которого указана версия 1.1 (т.е. самая-самая первая), а в комментарии которого написано "Скрипт на С".&lt;br /&gt;&lt;br /&gt;Открываю, читаю. Вижу код примерно такого содержания (чур за синтаксические ошибки не шпынять!):&lt;br /&gt;&lt;code&gt;&lt;br /&gt;void main(argc, argv) {&lt;br /&gt;  f=fopen(argv[1]);&lt;br /&gt;  while(fgets(l,15,f)!=NULL) {&lt;br /&gt;    printf("Some Long Multiline Template with %s inside\n", l);&lt;br /&gt;  }&lt;br /&gt;  fclose(f);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Т.е. мы вычитываем из указанного файла какие-то идентификаторы, и суем их в нужное место шаблона. Заполненный шаблон выдаем на stdout. &lt;br /&gt;&lt;br /&gt;В коде есть ссылка на документацию. Иду, читаю. Выясняется, что данное действие будет выполнятся единожды в процессе миграции с одной большой системы на другую, когда надо будет сгенерить файл с несколькими миллионами абсолютно однотипных команд.&lt;br /&gt;&lt;br /&gt;Странно. Автор этого творения вроде бы отличался умом и сообразительностью... Почему он не взял bash/sed/perl? Зачем С? Это ж на порядок больше работы - надо чтобы кто-то компилировал и deploy-ил это творение на production серверах, давал права на исполение, а потом его оттуда удалял.&lt;br /&gt;&lt;br /&gt;Иду к разработчику, около него уже стоит тестер, пришедший с тем же вопросом - "какого ...?"&lt;br /&gt;&lt;br /&gt;Высняется следующее - к разработчику пришел менеджер проекта по миграции с одной большой системы на другую, поставил задачу и остался смотреть через плечо. Разработчик сделал двухстрочник на перле. Менеджер возразил, что перл будет тормозить. Разработчик показал скорость выполнения. Менеджер возразил, что это, мол, тут, на локальной машине, перл быстро работает, а там, на Загруженном Сервере - явно будет тормозить. Разработчик убеждал. Разработчик вызвал к здравому смыслу. Разработчик сгененрировал входной файл из 10 млн строк и показал скорость работы.&lt;br /&gt;&lt;br /&gt;В конце-концов разработчик устал и спросил менеджера, что, по его мнению, надо делать. Менеджер сказал: "ну, вот я, например, решал бы такие критические задачи только на С ...". Не вопрос, - ответил разработчик. Перепишем на С. Только с тестерами, администраторами и сотрудниками поддержки будешь разбираться сам ... А менеджер возьми и согласись. Убить его не убили, но здоровье после этой истории у него уже было не то ...&lt;br /&gt;&lt;br /&gt;С тех пор "скрипт на С" показывают всем менеджерам, любящим микро-менеджмент. И знаете - помогает :)</content>
  </entry>
</feed>
