Home

Death is my deliverance from this damnation called life

Свежие записи
Name
thy_doom

Navigation

Реклама

Май, 23, 2008

Соревнования

в избранное рассказать другу
-

1 место в 82.5 :)
Метки:

Май, 19, 2008

Satyricon i Moskva

в избранное рассказать другу
Den episka bumpen.

Май, 15, 2008

(без темы)

в избранное рассказать другу
Hej alla!

Jag skriver inte i det blog nu, så jag tänker det är ganska ful.

Från nu ska skriva jag... kanske.

Hej då vänner (någon?), till nästa underbara gången.

Июль, 31, 2007

Музыка

в избранное рассказать другу
Новый Кинг Даймонд огорчил. Хотя когда вышла промка, народ и орал о возрождении Абигейл, этого не произошло. По субъективным ощущения альбом хуже Puppet Master'а 2003 года. В этом-же из запоминующихся моментов лишь 'Time is never ever standing still...' да 'Picures in Red.. Father is goind insaaayaayaane!'. Энди ЛяРок зажёг слабо, зачем-то на передним план поставили лесопилку, а знаменитые ЛяРоковские соло умируют, еле начавшись. Сам Кинг не сыграл ни одного соло, хотя в предыдущих брал в руки гитару. В общем не очень, но лучше чем Абигейл 2 и Хаус оф гад.

А вот второй опус Circus Maximus порадовал. Конечно отдаёт Pagan's Mind, Vanden Plas, но, тем не менее, один из лучших европрог опусов года.

Июнь, 19, 2007

18 июня посетили Москву, чем я и воспользовался.

Билеты взял с рук, вышло даже дешевле чем в кассе. Концерт состоялся в Точке, до этого я ни разу там не был, и, честно говоря, клуб отнюдь не свинарник, как его хаят, да и звуком был приятно удивлён.

Публика на концерт пришла довольно приличная, поэтому никакого слема *(. На кеннибал корп отыграемсо!

Разогревали Арида Вортекс. Группа настолько в доску своя для публики, что было похоже на концерт друзей на кухне :). По поводу музыки - говноповер. Ничего интересного.

И наконце сами Камелот. На сцену выскочил Кейси Грилло, стал примеряться к барабанам, пофоткал публику с мыльницы, вынес макбук. Сегодня пытался найти его блог, на майспейсе пусто :(. Сетлиста не помню, но это были лучшие их вещи. Лично я подпевал на Abandoned, Memento Mori, Forever, March of Mephisto, Center of the Universe. После Abondoned в зале устроили нехуёвые овации продаложавшиеся минуты 2, Хан схватился за сердце, пообещал вернуться.

Надо сказать мне повезло, ибо я очутился у самой сцены, около изгиба на который периодически выходили все члены группы, так что мне выдалась возможность находиться в 20-30 сантиметрах от звёзд xD. Больше тот, мне удалось всем им пожать руки, так что моя труаура теперь более тру xD.

Зал закипел на Forever. Потом ещё 2 энкора и всё... Последней была Ghost Opera где беквокалистка исполнила партию скрипки.

В плане звука всё было хорошо, почти отлично. Несколько переборщили с низами, но той каши что была на хаммерсаунде не наблюдалось. Зачот.
Метки: , ,

Июнь, 16, 2007

Музыка

в избранное рассказать другу
Неожиданностью дял меня стало известие о том что Чарли Доминичи, второй вокалист Dream Theater таки забросил свою манагерскую карьеру и вернулся в миру музыки.

Впервые выступив с товрищами из DT в 2005 на именинах альбома WDaDU, Чарли вспомнил былое и запсиал сольник. Мало того, концептуальный, в трёх частях. В концепцию не въезжал, ибо она про бравого американского секретного двойного агента в тылу таллибов, в общем бред.

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

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

Доминичи не использовал свои связки в теченеи 10+ лет, что заметно. Прежнего An Angel's Kiss... Now Falling... который крутился в голове после прослушивания ждать не стоит. Будем надеяться что у Чарли голосок как-нибудь самоналадится.

Новый альбом японцев Sigh удивил. В 2005 году они выпустили замечательный авангардный не-блековый альбом, который наверное будет самым слушаемым азиатским альбомом для меня, а в этом вернулись к корням, к чернухе.

На этот раз это сверхбрутальный, сверхинтенсивный, сверхсимфоничный, частичнопрограссинвый, но всё-же традиционный блек. По мне, уж лучше бы развивались в духе альбома 2005 года.
Метки: , ,

Май, 13, 2007

Пираты упёрли новый альбом раньше на месяц, чем я и воспользовался. Вообще DT - одна из моих самых любимых групп, наравне с Opeth, Death, Ayreon и Nevermore.

Итак, прослушал альбом уже раз 20, воэтому впечатление от него достаточно устойчивое. Альбом нельзя сравнивать с другими. Он мрачнее.

Когда вышел сингл Constant Motion я уж было подумал что DT взяли курс на металлику, и в чём-то я был прав. Весь альбом выдержан примерно в одном эмоциональном стиле с Constant Motion - он жёсткий, агрессивный.

Первая часть In the Presence of Enemies — напоминает Liquid Tension, дальше музыка переходит какую-то скорбную черту, которая частично отступает на Prophets of War, но затем снова появляется.

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

Апрель, 19, 2007

Музыка

в избранное рассказать другу
На прошло недели вышли сразу 2 замечательных прогрессивных альбома:

  • Devin Townsend - Ziltoid The Omniscient

    Концептуальный альбом, повсествующий о том как на Землю напал Зилтойд, потребовал лучшее кофе. Через 5 минут, он получил чашку, ему не понраилось, и он обратился с войной на землю. Что-то вроде Автостопом по галактике :). В конце оказывается что это сони работника заведения общепита, тогующего кофе.

  • Porcupine Tree - Fear of Blank Planet

    Гораздо депрессивнее предыдущего альбома. не знаю что случилось такого у Стива Виллсона, но музыка всё больше и больше напоминает Opeth (по настроению). очень зацепил трек anesthetize. Слышны нотки Meshuggah, а в середине песни мне показалось что я слушаю какое-то рубилово вроде саффокейшен. Второй Radioactive toy.

Март, 25, 2007

(без темы)

в избранное рассказать другу
Паренёк посередине почти правит миром. А кто бы мог подумать!

Февраль, 27, 2007

Сегодня прочитал у Джеффа Этвуда, что 199 из 200 людей имеющих Graduate по Computer Science не могу писать код. Он привёл простой прмиер: эти люди не могу написать простую прогу:

Для всех чисел от 0 до 100: вывести на экран Buzz если число делится на 3, Fizz - если на 5, и BuzzFizz если на 15. Во всех остальных случаях вывести само число.

Я немного охуел когда это прочитал. Неужели у них в штатах и правда настолько плохо с мозгами? Охуели и остальные читатели его блог, заспамили его комментами, после чего блог слёг. :(

Но я успел вытащить из комментов аццкую абасцаку.


Чел хорошо постебался:

public abstract class Factory
{
public string ToString(char[] chars)
{
return new string(chars);
}
}

public class FizzFactory : Factory
{
private const char F = 'F';
private const char i = 'i';
private const char z = 'z';

public bool isFizz(int input)
{
if (input == 3) return true;
else if (input == 6) return true;
else if (input == 9) return true;
else if (input == 12) return true;
else if (input == 15) return true;
else if (input == 1 return true;
else if (input == 21) return true;
else if (input == 24) return true;
else if (input == 2 return true;
else if (input == 30) return true;
else if (input == 33) return true;
else if (input == 36) return true;
else if (input == 39) return true;
else if (input == 42) return true;
else if (input == 45) return true;
else if (input == 4 return true;
else if (input == 51) return true;
else if (input == 54) return true;
else if (input == 57) return true;
else if (input == 60) return true;
else if (input == 63) return true;
else if (input == 66) return true;
else if (input == 69) return true;
else if (input == 72) return true;
else if (input == 75) return true;
else if (input == 7 return true;
else if (input == 81) return true;
else if (input == 84) return true;
else if (input == 87) return true;
else if (input == 90) return true;
else if (input == 93) return true;
else if (input == 96) return true;
else if (input == 99) return true;
else return false;
}

public string GetFizz()
{
return base.ToString(new char[4] { F, i, z, z });
}
}

public class BuzzFactory : Factory
{
private const char B = 'B';
private const char u = 'u';
private const char z = 'z';

public bool isBuzz(int input)
{
if (input == 5) return true;
else if (input == 10) return true;
else if (input == 15) return true;
else if (input == 20) return true;
else if (input == 25) return true;
else if (input == 30) return true;
else if (input == 35) return true;
else if (input == 40) return true;
else if (input == 45) return true;
else if (input == 50) return true;
else if (input == 55) return true;
else if (input == 60) return true;
else if (input == 65) return true;
else if (input == 70) return true;
else if (input == 75) return true;
else if (input == 80) return true;
else if (input == 85) return true;
else if (input == 90) return true;
else if (input == 95) return true;
else if (input == 100) return true;
else return false;
}

public string GetBuzz()
{
return base.ToString(new char[4] { B, u, z, z });
}
}

public delegate void FizzBuzzWriter(string input);
public class Looper
{
private FizzFactory Fizz;
private BuzzFactory Buzz;
public event FizzBuzzWriter OnFizzBuzz;

public Looper(Factory fizzFact, Factory buzzFact)
{
Fizz = (FizzFactory) fizzFact;
Buzz = (BuzzFactory) buzzFact;
}

public void execute(int start, int finish)
{
for(int i = start; i<=finish; i++)
{
string val = String.Empty;
if (Fizz.isFizz) val += Fizz.GetFizz();
if (Buzz.isBuzz) val += Buzz.GetBuzz();
if (val == String.Empty) val = i.ToString();

if (OnFizzBuzz != null) OnFizzBuzz(val);
}
}

}

public class TheFizzBuzzProgram
{
public static void main(string[] args)
{
Looper l = new Looper(new FizzFactory(), new BuzzFactory());
l.OnFizzBuzz += new FizzBuzzWriter(l_OnFizzBuzz);
l.execute(1,100);
}

static void l_OnFizzBuzz(string input)
{
Console.Write(input + Environment.NewLine);
}
}

Февраль, 24, 2007

Microsoft XNA Game Studio

в избранное рассказать другу
Сегодня немного повозился с Microsoft XNA Game Studio. Оно рулит!

Предыстория: решили майкрософт создать фреймворк специально для создания казуальных игрушек. И создали. Почему казуальных: фреймворк сей - надстройка на Managed Direct X(графическая его часть), но заточенно оно специально под игрушки: т.е. присутсвуют нативные классы для геймпадов и т.д. А теперь самое главное: оно позволяет создавать игрушки на 360 бокс, дебаггить их через комп. Короче домашний дев-кит. Sony пытались сделать что-то подобное: они просто добавили  возможность установки никсов на свою консоль. Но облажались. Во первых, из никсов нет прямого доступа к железке, а разрешение ограниченно 480p, во вторых они не создали никаких инструментов для девелоперов.

Короче говоря за тридцать с небольшим минут у меня вышел меганавороченный симулятор чёрного шарика на голубом фоне ;)

Это вместе со скачиванием документации, фреймворка и visual C# express (с полной студией оно не работает). Я написал не более 50(!) строк кода.

Это, я вам скажу, настоящий RAD. И ещё один плюс в копилку майкрософт. И наверное начало моего путеществия в самопальный гейм-дев :D.

Февраль, 17, 2007

Музыка

в избранное рассказать другу
Это наверное самая прогрессивная неделя за год. Целую неделю слушаю исключительно Threshold, Pagan's Mind, Dream Theater, Neal Morse и ещё кучку малоизвестных прог-исполнителей.

Neal_Morse-Sola_Scriptura-Promo-CD-2007-QTXMp3
Вот это шедевр с большой буквы Ш! До этого аотбома я что-то игнорировал Нила Морзе, но теперь... Этот релиз - лучшее что я слышал после Ayreon - The Human Equation. Правда тексты тут исключительно на христианско-библейскую тему. Никакой тебе фантастики ;).

Threshold-Dead_Reckoning-Promo-CD-2007-QTXMp3
Тоже порадовали. Мызыка не блещет мегасложностью, но цепляет. Такой прогрессив хард-рок я-бы сказал. Тоже классный релиз.

В остальные прог-новинки пока толком не втыкнул.
Метки: , ,

Февраль, 1, 2007

Rogue Galaxy

в избранное рассказать другу

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

Начинается игра с красивого cg ролика, где глав герой, Джеспер Роуг расхаживает на анимешном аналоге Татуина. Побазарив с батей, он бросается в бой с хрен-знает-откуда материлиазовашимися монстрами, наводнившими его вроде бы мирный городок. В лучших традициях Болливуда на помощь к Джесперу спешит мистический-дядя-в-сером-халате. Победив пару десятков монстрюков нам показывают сценку, где местный аналог Дройда-с-Татуина и Дядя-крысяя-морда-метр-с-кепкой обсуждают крутость мистического-дяди-в-сером-халате. Едва завидев дройда и крысеморда, дядя-в-халате дарует Джесперу Огроменный-Меч-с-Красными-полосками и космический фен, а сам скрывается в неизвестном направлении. И не по земле как обычные люди, а по крышам домов. Дройд-с-Татуина и Дядя-крысья-морда-метр-с-кепкой принимают Джеспера за Дядю-в-Халате и рекрутируют его в свою космическую бригаду пиратов. Джеспер покидает родные пинаты, но его останавливает батя и они вместе вспоминают дореволюционные годы. Оказывается, Джеспера подбросили, а в детстве он хотел в космос. Что он там забыл?

Покинув дом родной, Джеспер шастает по пустыне в поисках космического корабля, успешно находит его. И о чудо! Это не Татуин, это Дюна! Из песка выскакивает огромный змееподобный глист. Тут красивая экшн-сцена на 5 минут, в ходе которого Джеспера выручает Девка-с-Сиськами. Над последними старались, в cg ролике заметны колебания оных, а количество полигонов гораздо больше чем в in-game модели Джеспера, реалистично однако ;). Любят японцы такое ;).



На корабле Девка-с-Сиськами обнюхивает Джеспера, да и весь остальной экипаж удивляется что лже-Дядька-в-Халате такой молодой. И снова, в лучших традициях Болливуда, космический корабль терпит крушение и падает на планету-Джунгли. Видите-ли, масло закончилось.

Технически игра выглядит и бегает отлично: отсутствие подргузок, приятная cell-shading-овая графика, сюда даже fake-HRD приделали. Несмотря на идиотичность сюжета, он интересен. А самое главное - персонажи имеют харизму (в отличае от FFXII).
Метки: , , ,

Январь, 21, 2007

Бляди

в избранное рассказать другу

Январь, 20, 2007

Иллюстрацией метода. будет N-Queens Problem


The eight queens puzzle is the problem of putting eight chess queens on an 8×8 chessboard such that none of them is able to capture any other using the standard chess queen's moves. The colour of the queens is meaningless in this puzzle, and any queen is assumed to be able to attack any other. Thus, a solution requires that no two queens share the same row, column, or diagonal. The eight queens puzzle is an example of the more general n queens puzzle of placing n queens on an n×n chessboard.

В каждой колонке может располагаться лишь 1 фигура. Это облегчает задачу и существенно облегчает кодировку данных. Положение королев определяет одномерный массив размера n, каждый элемент которого может принимать значения от 1 до n. При этом все значения элементов массива уникальны, то есть сам массив размером n содержит n-1 натуральных чисел и 0 (так как код в сишарп, а первый элемент массива в языках семейства си имеет нулевой индекс).

memberType - класс представляющий положение королев на доске. Функция TweakSolution - та самая хрень, случайным образом расставляющая королев на доске.
class memberType
    {
        public int[] solution = new int[Program.MaxLength];
        public float energy;
       
        // Меняем положение коней из двух случаных столбцов местами.     
        public void TweakSolution()
        {
            int temp, x, y;
            Random rnd = new Random();

            x = rnd.Next(Program.MaxLength);

            do
            {
                y = rnd.Next(Program.MaxLength);
            }
            while (x == y);

            temp = this.solution[x];
            this.solution[x] = solution[y];
            this.solution[y] = temp;
        }
Конструктор заполняет главную диагональ, а затем случайным образом перемешивает королев.
       public memberType()
        {
            for (int i = 0; i < Program.MaxLength; i++)
            {
                solution[i] = i;
            }

            for (int i = 0; i < Program.MaxLength; i++)
            {
                TweakSolution();
            }
        }
Дальше - больше :D. Энергия решения считается как количество конфликтов между королевами.
        public void ComputeEnergy()
        {
            int i, j, x, y, tempx, tempy, conflicts;
            char [,]board = new char[Program.MaxLength,Program.MaxLength];

            int[] dx = { -1, 1, -1, 1 };
            int[] dy = { -1, 1, 1, -1 };

            for (i = 0; i < Program.MaxLength; i++)
            {
                board[i,solution[i]] = 'Q';
            }

            conflicts = 0;

            for ( i = 0; i < Program.MaxLength; i++)
            {
                x = i;
                y = solution[i];

                for ( j = 0; j < 4; j++)
                {
                    tempx = x; tempy = y;
                    while (true)
                    {
                        tempx += dx[j];
                        tempy += dy[j];
                        if ((tempx < 0) || (tempx >= Program.MaxLength) || (tempy < 0) || (tempy >= Program.MaxLength))
                            break;
                        if (board[tempx,tempy] == 'Q') conflicts++;
                    }
                }

            }
            energy = (float)conflicts;
        }
И последняя функция в классе решения просто выводит на экран оное.
        public void emit()
        {
            int MaxLength = Program.MaxLength;
            char[,] board = new char[MaxLength, MaxLength];
            int x, y;

            for (x = 0; x < MaxLength; x++)
            {
                board[x, this.solution[x]] = 'Q';
            }

            for (y = 0; y < MaxLength; y++)
            {
                for (x = 0; x < MaxLength; x++)
                {
                    if (board[x, y] != 'Q')
                        Console.Write(". ");
                    else
                        Console.Write("Q ");
                }
                Console.Write('\n');
            }
            Console.Write('\n');
        }

    }
Теперь кульминация балета :D.
    class Program
    {
        public static int MaxLength = 20; \\ размер доски
        public static float InitialTemperature = 30.0f; \\ начальная температура
        public static float FinalTemperature = 0.5f; \\ конечная температура
        public static float Alpha = 0.99f; \\ во сколько раз уменьшается температура
        public static int StepsPerChange = 100; \\ число итераций для каждого значения температуры
    

        static void Main(string[] args)
        {
            int timer = 0, step, solution = 0, useNew, accepted;
            float temperature = InitialTemperature;
            memberType current, working, best;

            StreamWriter Strw = new StreamWriter("strw");
            Random rnd = new Random();

            current = new memberType();
            current.ComputeEnergy();
            best = new memberType();

            best.energy = 100.0f;

            working = current;
До тех пор пока температура больше конечной выполняется алгоритм Metropolis Monte Carlo.
  • Если рабочее решение лучше данного (то есть энергия рабочего меньше) то он становится данным.
  • Если же нет, то вычисляется вероятность принятия решения. Вероятность сравнивается со случайной величиной, меньше единицы, и если вероятность принятия рабочего решения больше случайной величины, то рабочее решение копируется в данное. В обратном случае соответсвенно данное копируется в рабочее.
С каждым шагом главного цикла температура уменьшается по закону
T=Alpha*T
И в файл выводятся значения температуры, энергий и шага итерации.
            while (temperature > FinalTemperature)
            {
                Console.WriteLine("Temperature: " + temperature);

                accepted = 0;

                for (step = 0; step < StepsPerChange; step++)
                {
                    useNew = 0;
                    working.TweakSolution();
                    working.ComputeEnergy();

                    if (working.energy <= current.energy)
                    {
                        useNew = 1;
                    }
                    else
                    {
                        float test = (float)rnd.NextDouble();
                        float delta = working.energy - current.energy;
                        float calc = (float)Math.Exp(-delta / temperature);

                        if (calc > test)
                        {
                            accepted++;
                            useNew = 1;
                        }
                    }

                    if (useNew == 1)
                    {
                        useNew = 0;
                        current = working;

                        if (current.energy < best.energy)
                        {
                            best = current;
                            solution = 1;

                        }
                        else
                        {
                            working = current;
                        }
                    }
                }
                Strw.WriteLine("timer:" + timer++ + " Temperature:" + temperature +
                    " Best Energy: " + best.energy + " Accepted: " + accepted);

                temperature *= Alpha;
            }
В конце на экран выводится лучшее решение.
            Strw.Close();
            if (solution == 1)
                best.emit();

            return;
        }
    }
}
Метки: , ,

Январь, 15, 2007

Снова про Web 2.0

в избранное рассказать другу
С недавнего времени все посты я пишу в Google Docs (бывший Writely). Google Docs это:
  • Первый и лучший текстовый процессор, который работает в браузере.
  • Первый WebAPP массового использования написанный на C#/ASP.NET.

Что я люблю в Web 2.0, так это отсутвие необходимости ставить лишний софт. Не секрет, что 90% софта на глубоко-обожаемую всеми нами платформу Win32(64) - Malware. Пользователи Маков такой опции лишены. Это всё casual users. Всяких юниксойдов в расчёт не берём - это совсем другой контингент. *nix - платформа со своим собственным контингентом, и я сомневаюсь что никсы станую десктопными платформами. Да, есть пророчества насчёт доминирования Open Solaris в сегменте никсов в этом году. Да, некоторые знакомые переходят на Ubuntu. Но это люди искушённые, не домохозяйки и не бухгалтеры.

Более тго, понятие OS уже не так важно как раньше. Большинство корпоративного софта мультиплатформенно. Оставшийся-же прикладной софт становится Web 2.0. У меня на машине не установлен ни один офисный пакет, ни OpenOffice ни Microsoft Office. Его с успехом заменяет Google Docs. Графики чертит fooplot, уравнения решает calc5. Имею смелость предположить, что в ближайший год абсолютно все жизненно-важные софтины переедут в Web 2.0.

Мораль сей басни такова: мы живём в конце эпохи войн платформ. Windows Vista, с большой вероятностью может стать единственной версией Windows на лет 30. Софт становится независимым от платформы, а продавать новые оси за большие деньги становится не выгодно, ведь всё тоже самое можно получить бесплатно, или значительно дешевле. Microsoft это понимают, поэтому вводят дурацкие ограничения с DirectX 10, WPF, etc.

Метки: , ,

Январь, 13, 2007

(без темы)

в избранное рассказать другу
++i--; \\ операция подёгивания
Разработано LiveJournal.com