Monthly Archive for April, 2009

Sky2fly

Новая русская MMO. Очень понравилось как запрограмлено и нарисовано. Даже плохого сказать нечего. Хотя нет, скажу — управление неудобное и слушаться престает если язык русский поставить )8 А так супер. Надо быдут поиграть дальше посмотреть.

Китайские бетатестеры

Сегодня с утреца открыл почтовый клиент, нажал “получить очередной утренний спам” и офигел. Пришла огромная толпа писем… нет, не спама, а уведомления о to-do с basecamp по известному проекту от неизвестного народа. !%$#^ #^^$#@* $^$^**)#@, – сказал я и громко выругался.

- wtf is this todos spam from people I don’t know?
- lol, chinese beta testers
- can I ignore that?
- mmm… yes… for now

Оказывается, чуваки наняли команду китайских тестеров, которые сразу нашли миллиард багов (каждый по одному, не иначе) и стали их слать кому попало…

SVN + Mac

Cornerstone — отличный SVN клиент на Mac.

Unit test

Я уверовал в Юнит Тесты, господа! Аминь.

Сколько раз тесты писались как оправдание ( ну вот, тест, он как всегда зелененький ). Даже сложные асинхронные взаимодействия каким-то магическим образом сходились в тестах с первого (исключая тупые ошибки) раза. Тут, я делаю простой хелпер, который возвращает название месяца по номеру номер месяца по названию. Вроде бы что может быть проще — пара строк кода. Ради прикола был сделан тест, который на все 12 месяцев проверял работоспособность двух строк…

И ОН ПРОВАЛИЛСЯ, Jesus!

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

Память

А кто-нибудь пользуется вот такими триками?

Конкурентов надо знать

… в лицо.

Мне лень читать. Как оно там, уже лучше чем флэш?

Номер месяца

UPDATE: Добавил пример с Dictionary, который оказался хоть и не на много, но быстрее.

Вроде бы тривиальная задача — есть трехбуквенное имя месяца ( Jan, Feb, Mar… ) и из него нужно получить номер месяца. Небольшой поиск готовых велосипедов под рукой ни к чему не привел, так что придется написать небольшой хелпер для дальнейшего использования. Самый простой вариант — Array.indexOf из массива названий в порядке следования месяцов. А можно еще искать вручную или индекс подстроки в строке. Так все же, как делать?

Пришлось составить небольшой бенчмарк.

var arr: Array = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"];
var str: String = "JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC";
var dic: Dictionary = new Dictionary();
dic["JAN"] = 0;
dic["FEB"] = 1;
dic["MAR"] = 2;
dic["APR"] = 3;
dic["MAY"] = 4;
dic["JUN"] = 5;
dic["JUL"] = 6;
dic["AUG"] = 7;
dic["SEP"] = 8;
dic["OCT"] = 9;
dic["NOV"] = 10;
dic["DEC"] = 11;

function testArr( s: String ): int
{
	return arr.indexOf( s.toUpperCase() );
}

function testArr2( s: String ): int
{
	var i: int = 0;
	s = s.toUpperCase();
	for ( i = 0; i < 12; i++ )
		if ( arr[i] == s ) return i;
	return -1;
}

function testStr( s: String ): int
{
	var i: int = str.indexOf( s.toUpperCase() );
	if ( i == -1 )
		return -1;
	return i >> 2;
}

function testDic( s: String ): int
{
	return dic[s.toUpperCase()];
}

Каждая функция вызывалась 10 раз по 100 000 раз для каждого месяца и полученное значение в ms усреднялось. В итоге получился следующий график.

graph1

Меньше — лучше. X — номер месяца. Y — время выполнения.

СИНИЙ — Array.indexOf
КРАСНЫЙ — Ручной поиск по массиву
ЗЕЛЕНЫЙ — Поиск в строке
ФИОЛЕТОВЫЙ — Dictionary

Из полученных результатов видно, что для поставленной задачи больше подходят примеры со строкой и словарем. Ручной поиск приближается по времени, а Array.indexOf, похоже, занимается каким-то избыточным сравнением (=== ?) и в данном случае работает слишком медленно.

wow

Опа, а Mike Chambers играет в WoW.

Ant

Т.к. в руфлэшнете последние дни происходит какой-то бум дискуссий по поводу Apache Ant, я решил разобраться все же как его применять в повседневной рутине. Сразу скажу, что как-то давно пытался прикрутить себе Ant, но чрезж#пная система компиляции с jsfl из Flash CS3 IDE никак работать не хотела и я забил.

Пока что странно, что никто не написал про существования Flex Ant Task, который я успешно вчера ночьюсегодня утром прикрутил к компиляции тестов своего фреймворка.

Теперь надо бы узнать как комитить в SVN не через одно место.

Alchemy tutorial

С виду неплохой Alchemy туториал. Я сам не проверял, но в закладки оставил на будущее. Тем более, что на алхимию у меня еще есть планы.