среда, 17 сентября 2008 г.

Попытка номер шесть

Секретно. Срочно. В центр. По вашему запросу были проведены испытания релиза D2009 на предмет устройства новой версии секретной разработки под кодовым названием «Together». Предыдущее испытание прошло неудачно. По результатам нынешних тестов могу сообщить следующее: вечером, 12-ого сентября 2008 года находился на боевом дежурстве в офисе. Именно в этот вечер были прекращены безуспешные попытки поставить «невесть откуда взявшуюся копию» D2009 и получена пробная четырнадцатидневная версия в виде образа диска, именуемая в простонародии «исошкой». Продукт установился без происшествий, что подтверждается и многочисленными рапортами других наших агентов. После установки программа попросила ввести в специально подготовленную щель на экране специально подготовленный ключ. Сначала в действенности такого способа защиты у меня были сомнения, но если ключ не вставлять, или вставлять что-то другое, то программа не открывается! Мною были предприняты несколько попыток вставить TOPOR, BANAN и BATON, но они не смогли никак повлиять на работоспособность механизма замка. На основании вышесказанного считаю, что защита программы достаточно надежная.
После загрузки среды я предпринял попытки выполнить основную часть своего задания – создание UML модели и последующее преобразование её в код и обратно. Не смотря на некоторые трудности, мне этот процесс удался. Далее привожу полевые заметки, выполненные в боевых условиях:

Небольшая тестовая диаграмма была создана за несколько десятков минут.

Чтобы её откомпилировать, потребовалось ещё несколько минут, так как некоторые идентификаторы в коде находились не там, где привык находить их компилятор. Ручная перетасовка текста модуля изрядно утомила меня, но дело свое сделала.

Странное оформление кода при автоматической генерации несомненно связано с особой секретностью проекта. Всем заинтересованным лицам придется изучить тайнопись и специальные приемы форматирования, чтобы соответствовать жестким стандартам качества. Ещё одной особенностью UML редактора является то, что он может создавать свойства только с доступом через методы.



Любые изменения класса через инспектор объектов перемещают курсор на верхнюю строчку инспектора, где находится названия класса. Это специальное напоминание от разработчиков продукта, чтобы мы вдумчиво называли свои классы и постоянно переосмысливали содеянное. Я считаю - это новый виток развития UML редакторов.

В целом работа системы LiveSource выглядит удовлетворительно: идентификаторы, созданные в коде, появляются на модели и наоборот. Но не обошлось и без странностей. Ручное изменение класса на перечисляемый тип вызывает ступор UML редактора, и последний перестает перерисовывать квадратик «класса-типа» на диаграмме и всячески его игнорирует. Помогает только повторное открытее редактора.

Далее для теста в среде был открыт модуль, реализующий работу GPS эмулятора. Его D2009 обработала успешно, построив красивую диаграмму классов.



Хочу обратить внимание высшего руководства на то, что создатели продукта ружья кирпичом давно уже не чистят, а используют новые, современные технологии. На рисунке, представленном ниже хорошо видно зачатки искусственного интеллекта в системе аудита Delphi 2009: среда предсказывает разработчику потенциальную ошибку.


Далее у того же самого искусственного интеллекта срывает крышу:
Красный крест пробрался не только в Кению и Индонезию, но и в генерацию документации по модели. Думаю, что это связано с настройками безопасности браузера.



За все время работы был замечен один существенный и досадный недостаток - падение IDE при попытке выполнить аудит модуля. Воспроизвести ошибку повторно не удалось.

Подводя итог, хочу отметить, что продукт заматерел и стал заметно стабильнее, но всё ещё недотягивает до решений конкурентов. К недостаткам можно отнести общую неспешность, с которой выполняются все операции, небрежную реализацию интерфейса метрик и аудита, путаные шорткаты в дизайнере, «грязный» код, некоторые ограничения и недоделки, ряд откровенных глюков. В плюсе много чего: внятный лайаут, улучшенная стабильность, рефакторинг, интеллектуальный аудит, интерактивная документация и, конечно, паттерны проектирования. Если рассматривать его как решение «все в одном», то можно принять на вооружение в небольших проектах. Сам пока продолжаю наблюдения с безопасного расстояния.

пятница, 12 сентября 2008 г.

Шустрый пинг

Сегодня 256-ой день с начала года. В эту круглую дату некоторые люди празднуют День программиста. Как гласит легенда, в этот день старые бородатые программисты выбираются из своих берлог, собираются в кружок, надевают свои лучшие нестиранные футболки, берут в руку кружку пива и начинают рассказывать друг другу занимательные истории, которые случились с ними за всю их долгую и непростую жизнь. Со временем эти истории обрастают новыми фактами и превращаются в байки, передающиеся из уст в уста...
Все мы знакомы с историями про кенгуру, атакующих вертолеты, и самолет НАТО, сбоивший в районе Мертвого моря, а так же электронные письма, ходившие только в определенном радиусе от почтового сервера. Ну и я, будучи настоящим бородатым программистом, не буду нарушать эту старинную традицию и расскажу вас занимательную историю, которая случилась со мной и моими коллегами лет эдак 7 назад. Так как история занимательная, то я намеренно упущу технические подробности и нюансы, дабы не выглядеть занудой и не портить вам праздничное настроение. Итак…
Дело было в большой корпоративной сети, размахнувшей свои щупальца на целый регион России. В один прекрасный день удаленный филиал, подключенный по выделенной линии, в лице руководителя технического отдела начал жаловаться на то, что связь с его филиалом отсутствует – ни передача данных, ни IP телефония не работают. Занимающиеся скучной текучкой инженеры тут же активизировались и поспешили проверить высказывание удаленного коллеги самым простым и доступным для этого способом – пингом. Результаты, на удивление, оказались довольно разными – у одних канал работал замечательно, у других – напрочь отсутствовал. Щелкнув нижней челюстью и преодолев минутное замешательство, сотрудники принялись выяснять, что же на самом деле творится в их епархии. Проверив все возможные причины отсутствия связи и ещё добрый десяток пвсевдонаучных теорий, были получены следующие факты:
1) Физический канал работает.
2) Но связь в привычном для пользователя понимании этого слова отсутствует, т.е. передать файлы, почту и позвонить действительно невозможно.
3) Пинг из консоли Билла Гейтса прекрасно циркулирует в обоих направлениях.
4) Пинг из программы Whatsup gold не доходит до адресата.
Пытаясь объяснить такое поведение программ, специалисты развернули бурную дискуссию, в которой то и дело были слышны выкрики про космические лучи и геопатогенные зоны. Арбитром выступил самый главный и самый мудрый Администратор Всех Маршрутизаторов, заявивший, что с его устройств пинга так же нет. Тогда беснующаяся толпа заподозрила в обмане уже самого Била Гейтса, который написал свой пинг неправильно, как и многое другое на этой планете. Особо смелые выразили подозрение, что пинг старика Била просто притворяется, что получает ответ, в то время как связи-то нет! Чтобы проверить утверждение: "А был ли мальчик" - тут же был запущен снифер, который и разрешил все споры, заодно подтвердив полезность советского академического образования в целом, и предмета «Телемеханика» в частности. Дело было в том, что программа Whatsup решила использовать передаваемый пакет в качестве рекламного носителя, записывая внутрь кричащую строку: Whatsup Gold!, Whatsup Gold!. А вот старина Билл поскромничал и в качестве бесполезных данных решил использовать последовательность букв латинского алфавита. А она, как известно, существенно лучше восстанавливается помехоустойчивым кодированием. Следовательно, на канале есть какие-то незначительные помехи, которые портят среднестатистические данные, но не в силах испортить пакет Била Гейтса! Эмпирические исследования показали, что виновником был кабель между маршрутизатором и модемом. Вот так вот банально все и закончилось. Жаль только, что не сохранился тот кабель – было бы с чем приехать на поклон к дедушке Билли.

PS. Много не пейте.