30 Июнь 2008 г.

"Бродский котёл"

Итак, вчера вечером я вернулся со страйкбольной игры, проходившей в Тернополе. Привёз с собой кучу впечатлений. Как хороших, так и не очень. Отдельно хочется вспомнить:

1. 30 человек (из нескольких сотен) забыли привезти с полигона на базу. В их числе оказалась и наша комманда. Не буду гадать, по чьей вине это произошло, но факт есть факт. Сначала мы долго ждали эвакуации, потом пошли в город пешком. В камуфляже, с разгрузочными системами на теле, касками на головах и автоматами в руках. Те редкие представители аборигенов-гражданских были поражены до глубины души. На половине пути нас подобрали таки товарищи на машинах, которые вспомнили про нас. Результат: метания во тьме, пропущеный ужин и заполуночная приточка ништяков на капоте машины посреди лагеря.

2. В процессе игры одной из наших комманд в лесу был найден настоящий труп, ощутимо подгнивший и повешенный на дереве. Лично я его не видел, но мимо меня протаскивали его в пластиковом пакете граждане милицианты. Труп оказался предметом многих шуток. Особенно, когда мы тщетно ждали автобуса. Поступали предложения напроситься к охранникам закона в прицеп с трупами. От скуки был выдвинут сценарий ещё одной миссии: одна комманда должна охранять труп, вторая - отбить его и повесить обратно на дерево в лесу. Ну, и так далее.

3. Страйкол был, понравился. Не смотря на всю мою нелюбовь к лесным побоищам. Я точно завалил нескольких чуваков, правда меня убивали в каждой из 4-х миссий. Однако в общем итоге, наша коалиция выиграла. Кстати, о коалициях. Я играл за вермахтовскую дивизию СС "Галичина", против Красной Армии. Где-то в лесу бегали бойцы УПА, которые основное время были врагами обоих сторон, но в конце присоединились таки к доблестным солдатам Рейха. На собственной шкуре прочувствовал захват в клещи - был зажат в яме (которая, судя по всему, во время настоящей Второй Мировой была землянкой) и при попытке отступить к следующей линии нашей обороны, был расстрелян со всех сторон. Ещё был инцидент, при котором мне довелось получить пачку пуль в грудь от своих же в результате плохой координации разных групп Вермахта. А ещё я по-настоящему ходил в разведку, в процессе которой мы должны были найти наших в лесу.

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

После всех этих приключений, разъездов (5-6 часов в одну сторону между Киевом и Тернополем), после пива и пеших прогулок в полной выкладке, я изрядно подустал. Но при этом некисло расслабился. Одним словом, MISSION COMPLETED!

Ярлыки:

24 Июнь 2008 г.

Немного профессионального треша

Товарищ по корпорации скинул мне ссылку на сайт замечательной студии веб-дизайна: http://www.sb-studio.com.ua. Так же можно ознакомиться с личной страницей автора.

Я бы обязательно добавил в избранное, если бы собирал в нём (избранном) что-то кроме справочной информации!

Ярлыки: , ,

Немного фетишизма

Милитари-маскарад как следствие покупки каски.

Ярлыки: ,

16 Июнь 2008 г.

XML, XSLT и ядро

Я некоторое время работал с несколькими разными движками сайтов. Но рано или поздно возникала необходимость что-то доделать/переделать. Поэтому приходилось копаться в структуре, пытаясь понять чужой некомментированый код. Это было сложно. И я пришёл к выводу, что лучше написать свой собственный фреймворк. Кроме того, я решил, что сам фреймворк должен быть максимально компактным и простым, а большую часть кода, который может потребовать изменений лучше перенести подальше от ядра.

Испробовав несколько вариантов, я решил взяться за связку XML+XSLT. То есть, все данные сайта должны храниться в XML-файлах, а все шаблоны для страниц - представлять из себя XSL-документы. Ядро движка, собственно, занимается связыванием этих двух элементов.

Возможности XSLT позволяют перенести львиную долю механики страниц в сами XSL-шаблоны. То есть, чтобы отстортировать ту таблицу или вывести данные из другого объекта, мне не нужно менять код - только модифицировать шаблоны.

Написать движок, который занимается скрещиванием XSL-шаблонов и XML-данных - довольно просто. Но такой движок никому не нужен, если мы не обеспечим пользователю возможность управлять содержимым сайта. То есть, нужна CMS. Это уже сложнее.

Однако, у backend-систем есть одно преимущество - не нужно морочить себе голову обеспечением корректной индексации страниц поисковыми системами. В конце концов, они закрыты от посторонних. Поэтому я принял решение использовать в CMS элементы Ajax как основное средство управления.

Поэтому в ядро движка нужно добавить интерфейс для работы с запросами скриптов Ajax. По сути, со стороны сервера, это тот же XSL-трансформатор, который применяется при генерировании страниц. Так что его можно совместить с тем, что уже написано, всего лишь дописав несколько рутинных процедур для обработки POST и GET запросов. Остаётся только написать Javascript-код, отвечающий за обмен данными с интерфейсом на сервере.

Таким образом, весь алгоритм работы ядра движка сводится к получению запроса от клиента, выбора нужных XML- и XSL-документов, трансформации и отправке клиенту результата. Конечно, нужно предусмотреть выполнение ряда действий касательно данных в процессе обработки запроса, но этот функционал лучше вынести из ядра в отдельный набор функций или классов. Кроме этого нужно будет обеспечить инфраструктуру рутинных процедур (например, разборка GET-запроса или сохранение файлов из POST-сообщений).

Конечно же, такая архитектура не совсем подходит для сайтов с большими базами данных. В таких случаях лучше воспользоваться классическими SQL-решениями (хотя, что нам мешает интегрировать SQL-интерфейс в ядро?). Однако для большинства сайтов, как оказалось, будет достаточно вышеописанной схемы.

Преимуществом архитектуры является её простота - эффект автомата Калашникова :). Обучить постороннего человека работать с этой архитектурой - довольно просто, однако от него требуется знание XSLT. И по собственному опыту я знаю, что после длительной работы с классическими языками программирования, XSL будет не слишком простым для усваивания.

Ярлыки: , , ,

14 Июнь 2008 г.

Другая жизнь

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

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

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

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

Ярлыки: , , ,

13 Июнь 2008 г.

Полёты во сне и на яву

Первым делом мне хочется запостить ссылку на это видео. Истребители в небе под хорошую музыку. Чертовски созерцательно, на мой вкус.

Ярлыки: , ,

Создание блога

Ну вот, наконец-то я решил сделать себе отдельный блог. LJ мне давно надоел. К тому же в офисе закрыт к нему доступ. Не то, чтобы я не мог на него зайти, конечно... И всё же, учитывая моё доверие к продукции Google, я решил воспользоваться сервисом blogger.com.

Ярлыки: , ,