Автор: Vlad Frost

О вреде разделения труда между программистами

Небольшая история в подтверждение «мифического человеко-месяца».

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

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

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

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

Почему эта идея не пришла в голову моему опытнейшему коллеге — ума не приложу.

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

CAPTCHA на службе охраны от роботов

<paranoiamode>
Мало кто заметил, но пиздец Skynet уже наступил. Роботы вокруг нас! Они срут в блоги никого особенно не спрашивая! Скоро они поработят весь мир!
</paranoiamode>

Нет, правда. Задолбался уже чистить Регистр от левых рекламных комментариев. Понятно, что кардинальным решением было бы вообще комменты отключить. Но мы не ищем легких путей. В общем, раз такое дело, пришлось призвать на помощь старину Тьюринга с его тестом, и прикрутить к регистру модуль с сайта http://captcha.ru/kcaptcha/

Простите, уважаемые, но комментировать меня теперь будет еще труднее. Да, да, мир никогда уже не будет таким как раньше.

Знакомое лицо на обложке

Миша Прибочий, мой однокашник, рассказал в интервью с CNews:

И еще о безопасности. Есть классическая фраза, которая меня всегда коробит: «безопасности много не бывает». На мой взгляд, она абсолютно неправильна – безопасности бывает слишком много! И она должна быть экономически оправданной. При построении системы защиты нужно соблюсти грань между безопасностью, стоимостью защищаемых сведений, удобством работы и ценой защиты. На самом деле, не сложно придумать и построить защиту на 100% надежную и даже без антивируса. Пример? Пожалуйста. На территории изолированного охраняемого объекта создать отрезанную от внешних сетей внутреннюю сеть, без дисководов, USB и прочих интерфейсов ввода. Все документы могут попасть на объект только в бумажном виде. После их учета при необходимости они вводятся заново машинистками. Понятно, что ни один «вирус», даже самый хитрый, ни одно коммерческое спамерское письмо никогда не засорят таким образом защищаемую сеть. Но сомневаюсь, что многие предприятия ухватятся за идею таким образом обеспечить себе 100% безопасность. Ее слишком много, она дорога и невыгодна.

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

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

И вот именно с этой точки зрения — да, безопасности никогда не бывает много.

http://www.cnews.ru/cgi-bin/oranews/get_news.cgi?tmpl=top_print&news_id=234218

Головупочесав, клавишейщелк, постингемахен

Фоменко пишет про инфлективы:

Опять же из интернета я узнал, что кроме первого выпуска «Micky Maus» был еще т.н. «нулевой», такое четырехполосное бесплатное издание, выпущенное за месяц до первого номера в рекламных целях. … Сам нулевой выпуск — большой раритет; сохранившиеся экземпляры сейчас стоят порядка 10 000 евро и лежат у фоннатов в непроницаемой упаковке (по крайней мере, когда я на одном немецком форуме попросил общественность отсканировать нужный мне стрип, один чувак так и сказал, что не будет ради этого доставать свой журнал из загерметизированной упаковки)). В общем, поиски в интернете и просьбы пока не дали результата, но выяснилось, что стрипы из нулевого выпуска были перепечатаны в одном журнале относительно недавно — в 2001 году.

Журнал комиксов. В герметичной упаковке. Действительно, фоннаты.

It’s Good to Be a Horde

Девушка рассказывает, как ехала домой на джипе своего жениха. На заднем стекле джипа был приклеен стикер с надписью «For The Horde!». Судя по всему, парень нехило увлекается небезызвестной игрушкой.

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

Полицейский проверил документы, осмотрел автомобиль и спросил, кем играет её жених. Девушка ответила, что он играет Тауреном и Нежитью и упомянула, что сама играет в World of Warcraft.

 — Наверное, — спрашивает полицейский, — играете каким нибудь мелким гномом, или что-то вроде этого?
 — Нет, — смеется девушка, — я люблю играть за Орду. И больше всего люблю Тауренов.

Девушка рассказала, что она офицер в женской гильдии, а полицейский поведал, что играет троллем-магом. Потом они немного поболтали про игру, и в итоге коп отвесил фразу:

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

И отпустил девушку без всякого штрафа.

http://community.livejournal.com/worldofwarcraft/4989699.html

OpenID vs Register

Коль скоро вокруг OpenID поднялся некий ажиотаж, решил к своему Регистру тоже эту штуку прикрутить. Да только никак не выходил каменный цветок, сколь не бился — ничего не получалось. Ни в какую не хотел меня Livejournal узнавать по этому самому OpenID: no_identity_server, говорит, и все тут. Но, обо всем по-порядку.

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

Но тут наткнулся на замечательную статью Симона Вилсона с обещающим названием «How to turn your blog in to an OpenID». Оказалось, все просто: заводишь себе учетную запись на каком-либо сервере OpenID и прописываешь две строчки в заголовок страницы своего блога.

Сказано — сделано. Завел себе аккаунт на pip.verisignlabs.com, добавил нужные строчки в index.html:
<link rel="openid.server" href="http://pip.verisignlabs.com/server">
<link rel="openid.delegate" href="http://vladfrost.pip.verisignlabs.com/">

Ура, вроде бы все. Пошел на Livejournal — тестировать. А Livejournal мне в ответ: нету, говорит, на твоей странице нужных строчек, no_identity_server и все тут. Как же, говорю, нету? Вот же они! Нет, не верит.

Ладно, думаю, может не нравится ему VerySign, давай попробуем свой сервер. Скачал и установил phpMyID, полез проверять на Livejournal — та же песня. Проверил на других некоторых сайтах — те же яйца, только сбоку. Никто не хочет меня узнавать.

Полез в код Регистра. Стал изучать внимательнее:
<html><head><title>Register | {$out["title"]}</title></head>
<link Rel="stylesheet" type="text/css" href="http://{$out['site']}/main.css">
<link Rel="shortcut icon" href="http://{$out['site']}/favicon.ico">
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://{$out['site']}/txt/export.xml"/>
<link rel="openid.server" href="http://blog.vladfrost.ru/phpMyID/MyID.php">
<link rel="openid.delegate" href="http://blog.vladfrost.ru/phpMyID/MyID.php"> <base Href="http://{$out['site']}/"> <meta name="Keywords" content="{$out["subj"]}"> <meta name="Description" content="Register | {$out["subj"]}"> ...

Ничего не замечаете? Вот и я не замечал, пока не обнаружил закрывающий </head> сразу перед строчками с <link blah-blah>. Перенес его вниз блока и все сразу заработало. Ура!

Не знаю, осилю ли теперь авторизацию других сайтов по этому самому OpenID

Новый эпический юзерпик

Да, да! Я люблю этого кошака, также, как он любит эту мышку 😀

Предновогоднее

Сижу на работе, дописываю поддержку автосалона на «Один Эс Восемь Ноль». Ловлю себя на мысли, что в прошлом году примерно в это же самое время занимался примерно тем же, но только с «Один Эс Семь Семь». Интересно, что будет в следующем году?

Город 312 — Останусь

Вот ведь черт. Я тяжело болен. Мне нравится одна песня. До такой степени, что когда включаю её — начинают сами собой закатываться глаза. Жена сбегает из дома, когда я включаю ее в две тысячи восемнадцатый раз. Что же делать?

P.S. Merry Christmas!

Nefarian is slain