Страницы
вторник, 22 февраля 2011 г.
Последняя версия Mono для Ubuntu
воскресенье, 13 февраля 2011 г.
LibreOffice в OpenSuSe
Вот так ставится libreoffice в opensuse:
zypper ar -f http://download.opensuse.org/repositories/LibreOffice:/Stable/openSUSE_11.3/ LibreOffice
zypper ref
zypper in --from LibreOffice libreoffice
пятница, 11 февраля 2011 г.
Выделение участков кожи на изображении
Нашел (студенты принесли) статью "Алгоритмы биометрической идентификации личности человека на основе инвариантных признаков профильного изображения лица" автор Мумтозали Тухтасинов. В ней приведен предикат для выделения на изображении участков, которые соответствуют цвету человеческой кожи. Вот и сам предикат:
R>95 and G>40 and B>20 and max(R,G,B)-min(R,G,B)>15 and |R-G|>15 and R>G and R>B and [(R*100)/(R+G+B)]<57 and [(G*100)/(R+G+B)]<35 and [(B*100)/(R+G+B)]<35
где R,G,B - количество красного, зеленого и синего соответственно.
Судя по тестам, эта штука работает достаточно неплохо.
воскресенье, 6 февраля 2011 г.
TexLive 2010 и OpenSuSe 11
суббота, 5 февраля 2011 г.
Вкусности mono-2.10
- csharp - интерактивный repl/shell. Можно будет писать скрипты на C# с #!/usr/bin/csharp в первой строке. Или писать так: csharp -e 'from l in System.IO.Directory.GetFiles ("/bin") where l.Length > 18 select l;' или так csharp -e 'Math.Sin(0.1);'
- Интерпретаторы языков f#, ironpython.
-"Новый" (он появился еще 2.8) сборщик мусора SGen ускорил (на некоторых задачах) скорость на 35-40%.
понедельник, 24 января 2011 г.
Рекомендуемые репозитории для fedora
texlive -
fedorapeople
RussianFedoraRemix -
Список дополнительных репов есть тут
Установка google-chrome тут
понедельник, 10 января 2011 г.
C# DirIterator
using System; using System.IO; using System.Collections.Generic; namespace Program { class MainClass { public delegate void PathDelegate(FileInfo di); ////// Вызывает pd для каждого файла во всех поддиректориях в rd /// /// /// root directory /// static void dirMap(DirectoryInfo rd,MainClass.PathDelegate pd) { FileInfo[] files= null; DirectoryInfo[] subdirs=null; try { files=rd.GetFiles("*"); } catch(Exception ex) { Console.WriteLine("error on "+rd.FullName+": "+ex.ToString()); } if (files!=null) { foreach (FileInfo file in files) { pd(file); } } subdirs=rd.GetDirectories("*"); foreach (DirectoryInfo d in subdirs) { dirMap(d,pd); } } public static void Main (string[] args) { if(args.Length<1){ Console.WriteLine("usage: yatsrobot path"); } Console.WriteLine("scaning "+args[0]); if(Directory.Exists(args[0])){ Console.WriteLine("directory extists"); var di=new DirectoryInfo(args[0]); dirMap(di,x=> Console.WriteLine(x.FullName)); } else{ Console.WriteLine("directory not extists"); return; } } } }