пятница, 5 июня 2009 г.

SimpleXML, добавление CDATA

Так уж получилось что при помощи SimpleXML нельзя ни добавить, ни пересохранить поле типа CDATA. Как вариант можно конвертнуть объект в DOM-модель и уже оттуда обработать, но об этом уже достаточно много написано, не буду повторяться, а предложу более простой буть сохранения данных в виде HTML-кода. Вся проблема сохранения заключается всего лишь в знаках "меньше чем" и "больше чем". Ее очень легко обойти используя функцию htmlspecialchars() при сохранении и htmlspecialchars_decode() при получении данных. Скорость конечно не фонтан, но если требуется хранить небольшое описание с форматированием или что-то в этом духе - вполне сгодится.

понедельник, 4 мая 2009 г.

Lost - Остаться в живых

Порекомендую еще один сериал, если кто вдруг не смотрит - Lost, ниже изложен краткий сюжет. Летит себе самолетик из Австралии в Штаты да и терпит крушение над каким-то островком, весьма солидных, надо сказать, размеров. Ну, естественно, есть выжившие :) Около 50 человек. Проблемка в том, что самолет сбился с курса да и передатчик у них почти сразу после вылета забарахлил, то есть спасателям их найти не светит.

Народ среди выживших подобрался еще тот, все сплошь "сложные личности": аферист, депресушный доктор, убийца в бегах, бывший иракский дознователь, наркоман и так далее. Ну вот они и организуются и планируют кое-как выживать, что у них получается тоже кое-как. Первый сезон посмотреть точно стоит, а там уж как захочется. Почему рекомендую только первый? А потому, как в нем мало соплей и много действия, а дальше динамика сильно меняется от серии к серии - расширяют аудиторию, дают домохозякам возможность порыдать :=)

Как на мой взгляд, нормально ведет себя там только один человек - Соер, прибрал к рукам побольше всего и во всем ищет выгоду лично для себя. Остальные по разному, кто-то сидит нихуя не делает, у кого-то депрессия, а кто-то вяло пытается шивелиться. Маленький спойлер - нигера с малым (самого малого - опционально) и дедулю-инвалида стоило бы убить сразу. Почему? Узнаете к концу третьего сезона, если досмотрите. Я как-то с первых серий так решил и оказался прав )))

P.S. Качать рекомендую все с того же lostfilm.tv - нормальное качество и классный перевод.

Определение ТИЦ в Delphi

Решил немного заняться программированием в разрезе SEO. Поскольку интерфейсов для этого нужно прилично был выбран собственно Delphi. Ну вот делюсь одной приятной функцией =) Она поможет определить ТИЦ сайта. Для этого нам понадобится всего один стандартный компонент из палитры Internet - XMLDocument. Запрашивать ТИЦ будем точно таким же способом, как это делает Яндекс-Бар: запросим XML и извлечем из него нужную нам строку.

function GetTIC(sDomain: String): String;
begin
XMLDocument.LoadFromFile('http://bar-navig.yandex.ru/u?ver=2&show=32&url=' + sDomain);
XMLDocument.Active := True;
Result := VarToStr(XMLDocument.DocumentElement.ChildNodes['tcy'].Attributes['value']);
if Result = '' then Result := '0';
end;

Действительно просто ))) В ближайших сообщениях напишу про whois и каталог Яндекса. Думаю получится написать более-менее приличный инструмент для анализа выдачи.

среда, 22 апреля 2009 г.

Генератор названий

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

Кратенько о возможностях:
- генерация заголовков на основе четырех преопределенных частей
- неограниченнная длинна строк
- автоматический подсчет числа нагенеренного
- легкая и понятная фильтрация длины заголовка

Если кого заинтересовало: скачать.

среда, 25 марта 2009 г.

Простой firewall

Давненько не писал, исправляюсь )) Недавно возникла необходимость поставить таки себе фаервол. Требование было фактически одно - чтоб ресурсы не жрал. Практически все современные стенки, как, например, Аутпост или Комодо, дают много возможностей, но и ресурсов жрут так... много, в общем. Контролировать траффик на уровне приложений мне нет необходимости и сам справляюсь, а вот блокировать внешние соединения на определенные порты и по заданными IP - то, что нужно.
Было решено искать именно firewall в классическом его понимании, такой чтоб и бесплатный, и маленький, и к ресурсам не требовательный. Перебрал много всего разного и в конце-концов остановился на таком решении как - GhostWall. Скриншот ниже:



Весит всего чуть больше 600 кб, бесплатный и есть все необходимое: блокировка по используемому протоколу, направлению, IP, порту. Правила выполняются сверху вниз и по-умолчанию более-менее нормально настроены. Разрешив ICMP и входящий траффик по TCP/IP на 80й порт (для utorrent) я остался весьма доволен.

Эх, был бы AtGuard под WinXP SP3 =) Счастью не было бы предела ))

воскресенье, 22 февраля 2009 г.

Бесплатные компиляторы C++

Решил начать один небольшой проектик (как-нибудь в следующих постах расскажу) и понял, что у меня нет ни одного установленного компилятора С++. Ну, стало быть, надо искать что и где скачать =) Решил повыпендриваться и отказаться от варезных средств разработки, то бишь искал исключительно фриварное.

Бесплатных компиляторов Си два креста не так уж и много, а уж более-менее распространенных (чтоб с комунити), соответствующих стандартам и не совсем уж тормозных всего три: MS Visual C++ 2008 Express, MinGW, Borland 5.5.

Сначала решил потестить компилятор и среду от мелкомягких, т.к. раньше (версия 2003) успешно ей пользовался и был доволен. Инсталятор только онлайновый, целиком весь дистрибутив закачать не дали. Ну стянула эта падло 120 Мб и поставилась вместе с NetFramework 3.5, которого я не просил и не хотел, дальше попросились регнуться. Ну компилятор командной строки в path самостоятельно не добавило, потом туда еще одну папочку добавить пришлось чтобы он смог запустится. Короче, геморой с первых минут. На моем, весьма не слабом компе, IDE местами ощутимо притормаживала. Собрал примитивный тестовый проектик, посмотрел на его размер в 100кб и мне вдруг стало лень вникать и я принялся искать дальше.

Компилятор от Борланда весит всего 8 Мб, требует минимальной настройки, не имеет IDE - как средство разработки был отклонен ввиду древности и отсутствии целого ряда библиотек собранных под него. Дело в том что lib от MS и lib от Borland - два абсолятно разных формата. Собирать самостоятельно было влом да и не ко всему исходники были. Едем дальше =)

MinGw я решил сразу подбирать с IDE и чтоб поудобнее, ну и нашел что надо - Code::Blocks =) Работает с кучей компиляторов, позволяет легко между ними переключаться, бегает шустро и без особо заметных глюков. С сайта можно стянуть сборку сразу с MinGw в комплекте, но версия старовата. На этой связке я и остановился: файлы генерит приемлимого размера, работает шустро, оптимизация кода приемлимая и, самое главное, практически все опен сорс проекты прекрасно собираются. На сим обзор завершен.

вторник, 17 февраля 2009 г.

Панк по калифорнийски - Bad Religion

О музыке я еще не писал, сиправлюсь :-) Вообще-то панк мне как-то не очень, 90% панк-сцены я считаю безголосой, без какого-либо музыкального слуха и вцелом бессмысленной. Но есть и исключения, вот недавном, разгребая завалы дисков натолкнулся на Bad Religion, а конкретно на альбомы "No Substance" и "The New America", где на вокале выступил Брайан Бекер. Их, собственно и рекомендую.

Как для панка - очень приятная на слух музыка, но стиль сохранен, голос хриплый, пропеваемый, а не тупо орущий в микрофон. И, самое главное, просто на удивление вменяемые тексты. Сейчас с удовольствием ставлю фоном, когда работаю ))) Так что с Bad Religion советую ознакомится в обязательно порядке даже тем, кто по панку особо не "прется".

In so many ways we live to follow the sun
In so many ways we exalt and fail as one
In so many ways we want so bad to be done
In so many ways we show our pain in unison

OGame, космическая стратегия

Сегодня небольшой рассказ про еще одну онлайн-игру, на этот раз - космическую стратегию. Называется она, нетрудно догадаться, OGame. Однажды, в одной далекой-далекой галактике... а не, это не оттуда =)

После регистрации вы получаете себе личную планету, на ней можно строить разные здания для добычи ресурсов, проводить исследования, строить флот и планетарную оборону. А еще можно построить 8 дополнительных колоний и делать на них все то же, что и на главной планете. За каждое строение, ислледование, еденицу флота (в общем за все, на что потрачены ресурсы) вы получаете определенное количество очков. Разбиваете флот чужого игрока, он теряет очки, вы собираете обломки его флота в виде ресурсов, на них строите что-нибудь и получаете очки.

Основных стилей игры два - мирный и не очень. Мирный заключается в том, что развитие происходит только за свой счет с защитой от нападок конкурентов, агрессивный - самому нападать на других игроков и отбирать у них ресурсы.

Игра происходит в реальном времени, но весьма неспешно. Например, на определенном уровне развития постройка одного здания будет занимать сутки реального времени (в игре быть необязательно :) и чем дальше тем дольше. Флоты тоже строются и летают не мгновенно. Мирный стиль игры много времени не отнимет, а если хотите воевать, то и реального времени потратите больше. Учитывая, что не обязательно заниматься чем-то одним, вполне можно подобрать удобный по времени вариант игры.

P.S. Когда-то я уже игра в OGame почти два года, потом бросил, сейчас вот опять решил полетать. Захватывает, однако.

среда, 4 февраля 2009 г.

Since I found Serenity

Take my love, take my land
Take me where I cannot stand
I don't care, I'm still free
You can't take the sky from me

Take me out to the black
Tell them I ain't comin' back
Burn the land and boil the sea
You can't take the sky from me

There's no place I can be
Since I found Serenity
But you can't take the sky from me...

Возвращаемся к теме сериалов =)  Есть такая шняжка как Firefly - сериал на космическую тематику. Я, в целом, с подозрением отношусь к научно-фантастическому жанру, уж больно много ширпотреба на этой тематике,  но этот сериал меня захватил. Всего 14 великолепных серий и один полнометражный фильм - есть что посмотреть. Скачать можно с уже упоменавшегося трэкера http://lostfilm.tv.

Кратко по сюжету... Далекое будущее, капитан небольшого судна занимается контрабандой и прочими "грязными делишками", девочка со сверхспособностями (случайная пассажирка) и ее брат доктор, священник, который на самом деле далеко не священник и всякое такое. Настоятельно рекомендуется к просмотру всем поклонникам sci-fi, это вам не попсовый Стар Трек :-) Кстати, роль мега-крутой девочки, как в сериале так и в фильме, исполняет Саммер Глау, известная также по сериалам Терминатор и 4400.

пятница, 30 января 2009 г.

Тестирование скорости соединения

Сегодня перешел на новый тарифный план, теперь пол мегабита - возникло желание немедленно затестить скорость. Можно было бы просто что-нибудь на закачку кинуть, но ведь так не тру :)  О сайтах, которые специализируются именно на тестировании скорости соединения я, конечно, знал и принялся их искать в русскоязычном сегменте интернета. Нашел только полную фигню, которая реальной скорости и близко не показывала и была привязана к одному-двум конкретным серверам. Скорость на закачке файлов с премиума depositfiles я к тому времени уже протестировал, да и торрент оказался весьма показателен. Но так не интересно!

Перешел в англоязычный сегмент сети и практически сразу нашел отличный сервис - http://www.speedtest.net/. Все красиво, на флэше и, что самое главное - куча серверов по всему миру. Тыкаешь на карте в желаемый город, а их дофига, и запускается тест на download и upload с сервером в этом городе. Скорость показывает немного заниженную, но весьма близкую к реальности. Плюс ко всему можно посмотреть результаты тестов других пользователей по странам и городам. В общем, то что нужно =)

P.S. Перенос на новую платформу завершен, теперь у сообщений будут реальные даты.

House M.D.

Я просто обожаю присаживать людей на, то что нравится мне. Сегодня есть такой повод - на трэкере http://lostfilm.tv/ вышел 12й эпизод 5го сезона мега-сериала House M.D. (Доктор Хаус). Это просто мега-ахуенно ))) Пытаюсь присадить кого только можно на этот сериал, и пока что мне это успешно удается.

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

Попробую заинтересовать читателей сабжем, то бишь сериалом "Доктор Хаус"... Есть врач, больной врач, зависящий от болеутоляющего (наркоты, попросту говоря), он груб, циничен, ведет себя как полная сволочь, врет пациентам, запугивает их, бесцеремонно влезает в личную жизнь своих подчиненных, НО он гениален и спасает жизни, он одержим идеей спасения жизней. Хауса, главного героя сериала, играет английский актер Хью Лори, который также известен комедийным сериалом "Дживс и Вустер", а так же много чем еще =)

К медицине сериал имеет отношение весьма и весьма посредственное, хотя он и про медицину, но это особо не важно. Играет Хаус мега-круто, острит адски и смотреть очень прикольно - роль удалась полностью. Ладно, хорош расхваливать :-) На русском рекомендую смотреть в переводе ЛостФильм, ссылка выше и смотреть в обязательном порядке.

P.S. Я много сериалов смотрю, вообще-то, и, думаю, скоро здесь появятся заметки и о других достойных представителях жанра.

Age of Conan, часть 2

Теперь про раскачку персонажа. Единственное, что вы можете распределить по получению уровня - Skills, и так до 20го. Потом добавляются еще и Feats, но об этом позже.

Есть кое что, что нужно знать о скилах: Climbing - качать до 300, больше не понадобится; Endurance - меганужно, качать по максимуму. Дальше все зависит от стиля игры =) Намекну только что выбирать нужно из Hiding, Perception (только для pvp), Bandaging и Recovery. Все остальное, имхо, полная туфта и существенных бонусов не дает.

Фиты начинают пояляются с 20го уроня, по одному за левелап. Есть три ветки разития: General (общая для всех подклассов), Berserker (для двуручника) и Reaver (для дуалов). Если что не так прокачали, то потом можно будет сбросить за деньги, причем сумма увеличивается с каждой попыткой. Я б посоветовал сначала развиваться исключительно в берсерк. С дуалами я побегал, но на моем уровне не впечатлило, рерольнулся обратно. Двуручник крут тем, что бьет сразу толпу врагов, плюс есть комбы оглушений и кнока. Что конкретно брать смотрите сами, слишком много писать, возможно потом отдельным постом...

Продолжим =) Рассмотрим где можно экспиться до 45+ уровня (дальше пока сам не знаю). Раскачка в игре, кстати, досаточно простая, по уровню задроства с Линейкой и близко не лежит.

1-20 lvl
Тут все элементарно до нельзя - Тортаж (стартовый остров) и прилегающие к нему локации, до 20го уровня выбраться все равно не светит. Тут два типа квестов: обычные и ночные. Переключиться на ночные квесты можно в таверне и выполянются они (локация создается специально для вас и других игроков в ней нет) - это что-то вроде сюжетной линии. Я сначала выполнил все обычные квесты и успешно апнул на них 21й уровень, а потом по быстрому пробежал ночные, получив весьма неплохой шмот.

20-40 lvl
Для начала можно размяться на подай-принеси квестах Old Tarantia, а потом смело отправляйтесь в Wild Lands of Zelata. Там элементарно квестится 30й уровень, после чего можно продолжить сюжетный квест. Лично я дальше полез в Khopshef Province - > Pyramid of the Ancients. Варвару 34го вполне реально разбираться с мобами 38го вытягивая их по одному/по два. Можно еще забежать в Border Ranges, там мобы около 35, насколько помню, и пошарится по немедийскому рагерю в той же Wild Lands of Zelata, там 38+.

40-45 lvl
Идем в Tarantia Noble District и смело принимаем все подряд квесты - 45й уровень обеспечен. Для начала можно взять простенькие у капитана стражи (прямо и направо от входа в локацию).

Age of Conan

Сабж - это, если кто не знает, это такая онлайн-игра, MMORPG. Начал я недавно в нее играть и буду время от времени писать небольшие гайды по ней, аввось кому помогут начать. Игра довольно таки навороченная, клиент весит 28 Гб, требования тоже нехилые - без видяшки с поддержкой 2х шейдеров даже не запустится. Абонка 16 евриков.

Геймплей ничего так, пока нравится. Процесс экспинга не такой занудный как в Lineage 2, в которую я раньше играл, полно квестов и все они дают неплохую прибавку к экспе. Докачался пока до 40го уровня и практически все время квестил, что дало больше половины экспы и кучу неплохих вещей. Так что если только начинаете играть - обязательно берите все квесты, что встречаете. Я делал так: нахватал штук 20 заданий и топаю в какую-нибудь локацию их выполнять, зделал все квеста в данной локе - в город, здаю и дальше.

В игре два основных типа серверов: PVP и PVE. Догадываетесь в чем отличия? Именно, на PVP-серверах практически везде разрешено убийство игроков, а на PVE - только в специально отведенных зонах. Спама необоснованных нападений лично я не замечал, да и хайлевелам на новичках счетчик накручивать не получится - есть ограничения по разнице в уровнях.

Играю за милишника Barbarian и писать буду именно про этот класс. Внешний вид AoC (Age of Conan) можно глянуть на скринах ниже. Настройки ниже среднего стоят.



В первом посте об игре расскажу только об одной ключевой для варвара (да и любого милишника) вещи - комбах. Гляньте на любой скрин, там на панельке внизу есть изображения со стрелочками, красными (забиндены на 1, 2, 3, Q, E) - это обычные удары. Урон от них посредственный, но они являются состовляющими combo. А вот кнопки 4-8 на панели и есть комбы. При вызове любого из них рядом с персонажем появляется соответствующая иконка и стрелочками чуть ниже показано какие удары в него входят. Как только стрелочка подсветилась - пора нанести соответствующий простой удар. Завершается комба finishing blow, который наносит максимальный урон.

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

Тестирование упаковщиков EXE-файлов

Собственно первая запись в блоге по теме, с чем я вас и поздравляю. 
Попробую провести небольшой сравнительный тест архиваторов для EXE. На истину в последней инстанции не претендую, но может кому и будет полезно, а мне будет интересно, т.к. по роду моей деятельности (программист, если кто не понял) частенько приходится паковать разную ерунду от крохотных утилит, до весьма прилично весящих программных комплексов. 

Для теста я закачал шесть наиболее распространенных, на мой взгляд, упаковщиков. Версии, вроде, везде последние на сегодняшний день, но обещать этого со 100% уверенностью не стану. Итак, вот наш список: 
  • AsPack 2,12 
  • FSG 2,0 
  • Mew11 SE 1,12 
  • NsPack 3,7 
  • PECompact 2,98 
  • UPX 3,03w
Тестирование я буду проводить на трех разных программах: winword.exe из пакета MS Office 2007, dmaster.exe версии какой-то не самой свежей, и wtv.exe (тулза для просмотра DDS-текстур). Все тестовые образцы имеют сильно отличающийся размер и созданы с использованием разных компиляторов: VC++ 7, Delphi 6/7, VC++ 6 Debug соответственно. 
Задачей теста ставится сравнение эффективности упаковщиков в зависимости от исходного размера файлов, их компилятора и наличия отладочной информации в EXE. Для тестов будет использован максимальный уровень компрессии, но везде, где есть возможность, будут проставлены опции совместимости. Таким образом добитваться преимущества в сжатии путем, скажем, неработоспособности на Windows 98/Me я не буду. Думаю, можно приступать к тестированию. 

winword.exedmaster.exewtv.exe
Начальный размер12,037,6883,280,896102,400
AsPack5,551,6721,127,93655,296
FSG6,619,0091,411,09751,853
Mew115,181,1681,078,89449,096
NsPack4,991,4881,010,68850,176
PECompact4,827,1921,017,85650,176
UPX5,760,0561,120,25650,688

Итак, результаты есть, можно наслаждаться. Размеры файлов в таблице приведенны, ессно, в байтах. Лидеров у нас три: Mew11, NsPack и PECompact. Они значительно оторвались от своих конкурентов вцелом и каждый из них победил на упаковке определенного файла. Явный аутсайдер сравнительного теста - FSG, что и не удивительно, пакер не обновлялся с 2004 года. 

Дальнейшие выводы читатели могут сделать самостоятельно, но есть одно "но". Упаковщик с самым высоким уровнем компрессии далеко не обязательно самый "крутой". Для сжатия EXE-файлов очень важен еще один параметр - скорость распаковки, ведь конечный пользователь не будет особо рад программе, которая стартует пол часа. А победители на настройках максимальной компрессии как раз и не могут особой скоростью похвастать. 
Следует отметить, что файл winword.exe размером в 12Мб был взят для теста, вообще, исключительно в образовательных целях. Сжимать программу такого размера - сущий маразм, она и так не очень то быстро стартанет на многих машинах. В общем таблица перед вами, пробуйте, тестируйте, выбирайте.

Первая запись

Попробовал до Гугла платформу blog.ru - пиздец бажная, не ходите туда. А еще шаблонов мало и доступа к HTML + CSS нет.  Сдесь хоть и длинный основной домен, но зато не глючит и нормально работает под большинством браузеров.

Несколько слов о будущем содержании блога. Тут будет все подряд, что мне интересно, от программирования до музыки с сериалами. Буду писать про то что я знаю, в чем разбираюсь и что может быть интересно другим. У меня, кстати, есть еще и сайт с весьма ограниченной тематикой - читалки электронных книг, если кому интересно, то велкам на http://readers.cwx.ru/. Но я им сейчас не особо занимаюсь, хотя и не забросил, влом. 

Что-то я дохуя для первого то поста написал, пора заканчивать. Дальше пойдут посты с тэгами.