Война бывает детская, до первого убитого,
Потом не склеишь целого из вдребезги разбитого.
Душа, брат, не оправится, исключена гармония.
Не мало видел я ребят на этой церемонии.
Не мало видел я ребят на этой церемонии.
Смотрю в его глазах тоску я как по телевизору,
А мирный дым, накрыв окно, плывет дорогой сизою.
И как не свежая роса, в стаканах водка мается,
И я молчу, и он молчит, а память не ломается.
И я молчу, и он молчит, а память не ломается.
Война бывает голая, веселая, ужасная,
Война бывает точная, в разгуле рукопашная.
Хожу-брожу проспектами, фонарики качаются.
Война бывает первая, a больше не кончается.
Война бывает первая, а больше не кончается.
Война кипит победная до первого сражения,
А после, брат, как и везде, сплошные умножения.
Бывает справедливая, бывает языкастая,
Для нас не очень длинная, паркетно-безопасная.
Для нас порой не длинная, паркетно-безопасная.
Стеной соседской лается жизнь старая и новая
А наша не меняется - все та же, брат, бедовая.
Сидим на кухне, празднуем. Жена придет сердитая
Война умрет под плитами последнего зарытого
Война умрет под плитами последнего убитого.
Вопрос: "Зачем и почему?" оставим без внимания,
Мудрец сказал: "Господь дает по силам испытания".
Пускай мы стали пьющими моральными калеками,
А все же, брат, не гнидами, а все же человеками.
А все же негниющими большими имяре-ка-ми
Страницы
вторник, 31 августа 2010 г.
суббота, 14 августа 2010 г.
среда, 28 июля 2010 г.
Генетическое программирование на C#
Для изучения C# написал библиотеку работы с генетическим программированием. Это базовая реализация. На счет пополнения функционалом нечего не знаю. Пока оно умеет аппроксимировать табличные данные. Пример табличных данных имеется.
github
Также провел сравнение с .Net Framework с Windows 7.
Какая именно версия там, точно сказать не могу, поскольку запуск проводил не я, а запускающий не знает где это глянуть (как и я). Версия mono 2.6.3.
Результаты такие:
На тесте abs_cos.csv алгоритм делал 100 шагов. Время от 10 запусков засекалось и бралось среднее. mono оказался в 2 с копейками раза медленней. что не так плохо, как мне казалось.
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());
}
}
}
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
четверг, 8 июля 2010 г.
Ubuntu 10.04 и Monodevelop 2.4
Последняя доступная версия для Ubuntu это 2.2. ДЛя установки новой версии (2.4) можно сделать следующее:
Подписаться на:
Сообщения (Atom)