вторник, 31 августа 2010 г.

ДДТ - Война бывает детская

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


Душа, брат, не оправится, исключена гармония.
Не мало видел я ребят на этой церемонии.
Не мало видел я ребят на этой церемонии.

Смотрю в его глазах тоску я как по телевизору,
А мирный дым, накрыв окно, плывет дорогой сизою.

И как не свежая роса, в стаканах водка мается,
И я молчу, и он молчит, а память не ломается.
И я молчу, и он молчит, а память не ломается.

Война бывает голая, веселая, ужасная,
Война бывает точная, в разгуле рукопашная.

Хожу-брожу проспектами, фонарики качаются.
Война бывает первая, a больше не кончается.
Война бывает первая, а больше не кончается.

Война кипит победная до первого сражения,
А после, брат, как и везде, сплошные умножения.

Бывает справедливая, бывает языкастая,
Для нас не очень длинная, паркетно-безопасная.
Для нас порой не длинная, паркетно-безопасная.

Стеной соседской лается жизнь старая и новая
А наша не меняется - все та же, брат, бедовая.

Сидим на кухне, празднуем. Жена придет сердитая
Война умрет под плитами последнего зарытого
Война умрет под плитами последнего убитого.

Вопрос: "Зачем и почему?" оставим без внимания,
Мудрец сказал: "Господь дает по силам испытания".

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

суббота, 14 августа 2010 г.

Смерть Цоя

Сегодня годовщина смерти Цоя.

среда, 28 июля 2010 г.

Генетическое программирование на C#

Для изучения C# написал библиотеку работы с генетическим программированием. Это базовая реализация. На счет пополнения функционалом нечего не знаю. Пока оно умеет аппроксимировать табличные данные. Пример табличных данных имеется.

github

Также провел сравнение с .Net Framework с Windows 7.
Какая именно версия там, точно сказать не могу, поскольку запуск проводил не я, а запускающий не знает где это глянуть (как и я). Версия mono 2.6.3.
Результаты такие:
На тесте abs_cos.csv алгоритм делал 100 шагов. Время от 10 запусков засекалось и бралось среднее.  mono оказался в 2 с копейками раза медленней. что не так плохо, как мне казалось.

пятница, 16 июля 2010 г.

Вызываем C код из C#

Не найдя устраивающей меня библиотеки для C# для работы с матрицами (уровня libgsl) нашел простой способ вызова C кода из C#. Делается все элементарно.  Есть такая штука, как System.Runtime.InteropServices. А в ней объявлен атрибут DllImport. Вот, что пишет MSDN:

"Атрибут DllImportAttribute предоставляет сведения, необходимые для вызова функции, экспортированной из неуправляемой динамической библиотеки (DLL).Минимальным требованием является указание имени динамической библиотеки (DLL), содержащей точку входа."

А вот и пример привязки к gsl. Класс Matrix. Умеет только создаваться и метод для доступа к матрице.

using System;
using System.Runtime.InteropServices;
namespace test
{
   
    class GslMatrix
    {
        [DllImport("libgsl.dll")]
        static extern IntPtr gsl_matrix_alloc(int n1,int n2);
        [DllImport("libgsl.dll")]
        static extern double gsl_matrix_get(IntPtr m,int i,int j);
        [DllImport("libgsl.dll")]
        static extern double gsl_matrix_set(IntPtr m,int i,int j,double v);
       
        private IntPtr data;
        public  int Rows {get;set;}
        public  int Cols {get;set;}
        public GslMatrix(int rows,int cols){
            data=gsl_matrix_alloc(rows,cols);
            Cols=cols;
            Rows=rows;
        }
        public double this[int i,int j]{
            get{
                return gsl_matrix_get(data,i,j);
            }
            set{
                gsl_matrix_set(data,i,j,value);
            }
        }
        public override string ToString ()
        {
            string result="";
            for(int i=0;i
                for(int j=0;j
                    result+=string.Format("{0} ",this[i,j]);
                result+="\n";
            }
            return result;
        }
    }
    class MainClass
    {       
        public static void Main (string[] args)
        {
            var mtr=new GslMatrix(2,2);
            mtr[0,0]=1;mtr[0,1]=1;
            mtr[1,0]=2;mtr[0,0]=2;
            Console.WriteLine(mtr.ToString());
        }
    }
}

среда, 14 июля 2010 г.

Bugs Everywhere

собственно subj. Это системы хранения заметок-ошибок. Ошибки она может хранить в репе систем контроля версий (держит Arch, Bazaar, Darcs, Git, Mercurial, Monotone). Поддерживает комментирование ошибок. Интерфейс у нее cli. Умеет dump в виде html. Написана на python.


Оф. сайт.

понедельник, 12 июля 2010 г.

Todo в Mercurial репозитории.

Нашел интересное расширение для hg. Позволяет вести ToDo листы прямо в hg репозитории. Позволяет их передавать в родительский реп при комманде push --all-tasks или передавать только завершенные --completed-tasks.

updated
Есть такая же штуковина но для git. Умеет тоже самое

четверг, 8 июля 2010 г.

Ubuntu 10.04 и Monodevelop 2.4

Последняя доступная версия для Ubuntu это 2.2. ДЛя установки новой версии (2.4) можно сделать следующее: