Архивы по Категориям: Без рубрики

Ghost in the Shell: Standalone Complex

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

До мувиков (и особенно первого) — сериал безусловно не дотягивает, но и проходным назвать его нельзя. Если кто-то будет смотреть в ожидании того, что это приквел/сиквел — то нет. Это альтернативная вселенная. Для того чтобы прочувствовать полноту альтернативности, достаточно упомянуть, что Бато здесь просто хохмач и периодически смеётся. Философских размышлений, за которые в том числе любим оригинал — здесь тоже не очень много (если вообще есть).

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

Единственное, что омрачает ситуацию — огромное количество филлеров (примерно половина эпизодов). Без них действие было бы во много раз более динамичным и напряжённым. От последних серий, когда их перестали разбавлять, я просто не мог оторваться.

Anomaly Warzone Earth HD

Завершил прохождение сюжетной линии в Anomaly Warzone Earth HD для Android.

Сами авторы называю игру «tower offence», т.е. это такой «tower defence» наоборот. У противника есть куча башенок, нам же надо прорубить сквозь них дорогу к цели. Для этого используется техника и набор умений, которые можно применять в произвольном месте уровня. Лечение, например, дымовая завеса и т.п.

Затягивает. Уровней, правда, в сюжетной линии маловато: всего лишь 15, поэтому сложность лучше сразу ставить «Hardcore», иначе все они пролетят просто за 2-3 часа. Чекпоинтов много, так что вполне можно играть сессиями по 10-15 минут.

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

Игра есть на почти всех платформах. Сейчас идут распродажи, так что советую приобрести.

Кодовые имена моих домашних компьютеров

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

У меня пока нет линеек продуктов, которым имело бы смысл давать кодовые имена, но есть принцип в их назначении домашним компьютерам. Называются они по именам персокомов из Chobits.

Chi — главный компьютер, Kotoko — ноутбук, Sumomo — мобильное устройство, Zima — домашний сервер. Даже немного имён есть в запасе. Если что — можно переключиться на Angelic Layer. :)

Впечатления от «Схизматрицы»

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

Поэтому, просто скажу, что она мне не понравилась совершенно.

Не знаю, честно говоря, зачем я её дочитывал, может быть надеялся что ближе к середине она раскочегарится. Такие позывы были, но исчезли так же быстро как и появились. Единственное что осталось в осадке — ощущение скомканности.

Знаете ведь как бывает во время просмотра современных американских фильмов. Вроде бы и мир неплохой, история тоже, но повествование так построено, что на выходе получается сумбур (привет, Джон Паркер). Так же и здесь.

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

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

Итог аутсорсинга в Египет

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

Неладное я заподозрил когда парень из Египта убеждал меня что надо заменить библиотеки во Flex SDK, иначе, ничего не получится. Видимо он не добрался до настроек проекта, ну да ладно.

Затем он по неизвестной мне причине отключил в проекте RSL и теперь на выходе это была здоровенная флеха под 2 мегабайта.

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

А теперь зацените реализацию паттерна «фабрика» по-египетски. В оригинале этой функции не было вообще. Класс инстанциировался, выполнял вызов к серверу и умирал.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class DataService extends BaseService {
    private static var _instance :Array;
       
    public static function getInstance(number:String,showBusyCursor :Boolean = false, resultHandler :Function = null, faultHandler :Function = null) :DataService {
        if (_instance == null) {
            _instance = new Array();
        }
        if(_instance[number]==null)
        {
            _instance[number]=new DataService(showBusyCursor,resultHandler,faultHandler);
        }
        else
        {
            _instance[number]._resultHandler=resultHandler;
            _instance[number]._faultHandler=faultHandler;
        }
        return _instance[number];
    }
}

Теперь, внимание, использование класса:

1
2
3
4
5
6
try{
    DataService.getInstance("ffq0r4",true, function(value:Boolean):void {
        checkBox_disvideo.selected = !value;
    }).getVideo();
}
catch(e:Error){Alert.show((e.message)+"53trfg");}

«ffq0r4» это просто случайный набор букв. Ручной хеш так сказать. Также, внимания заслуживает способ отлова ошибок в коде. Это где к сообщению об ошибке добавляется тот же хенд-мейд хеш, наверное, для удобства поиска.

А ещё main обёрнут в try/catch.

Ну и самое интересное нас поджидает в коде сервера. В PHP есть переменная $_SESSION, которая хранит данные текущей сессии. Там у меня хранились некоторые данные вроде id текущей комнаты. Выглядело это примерно так:

1
$_SESSION['currentRoomId'] = 12345;

А стало выглядеть вот так:

1
$_SESSION['currentRoomId'.$clientLogin] = 12345;

т.е. к каждому ключу в этом массиве египтянин зачем-то добавляет логин пользователя. Может он не подозревает, что сессии уникальны?

Imran Nazar: Эмуляция GameBoy на JavaScript: Ввод

Перевод шестой статьи про эмуляцию GameBoy на JavaScript. Оригинал здесь. Далее авторский текст.

Это шестая часть серии статей об эмуляции в JavaScript. Десять частей уже доступно, позже будут ещё.

Читать далее »

Imran Nazar: Эмуляция GameBoy на JavaScript: Интеграция

Перевод пятой статьи про эмуляцию GameBoy на JavaScript. Оригинал здесь. Далее авторский текст.

Это пятая часть серии статей об эмуляции в JavaScript. Десять частей уже доступно, позже будут ещё.

Читать далее »

А вот и Джонни

Привет.

Закончилось моё двухнедельное заключение в больнице и вот я с вами.

За прошедшее время прочитал “Войну и мир”, которую с удовольствием пропустил в школе. Теперь я не боюсь книг любых размеров. И ещё дочитал “Хроники Дюны” до половины “Бог-император Дюны”. Теперь я не боюсь никаких книг вдвойне.

С новым годом!

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