More...

abusing namespace std;

Категория: Open source


AGG 0.3.1

Преди 10-на дни пуснах новата версийка на галерийния генератор - 0.3.1.

Ето какво ново в него:



Освен това и няколко бъгфиксчета. При използване на Sort by exif date в 0.3.0 и създаване на нова галерия, обикновено програмата гърмеше. Освен това, ако входящите картинки са малки (не се налага преоразмеряване), понякога в резултат се получаваше празна галерия. В някои случаи, ако е включен Auto-save при създаване на нов проект, докато е отворен някой друг, можеше да се случи старият да се затрие. Оправих и един доста досаден бъг, който се проявяваше рядко (по време на генериране на галерията) и водеше до замръзване или гърмежи. Като цяло съм много доволен колко стабилна е новата версия :)

Сега бягайте да download-вате!


Публикувано в категория Open source -- clock 6 Nov 2012, 19:06, 2 коментара -- English View in English


thought

AGG 0.3.0

След година и половина мързел, най-после успях да пусна нова версия на програмката - 0.3.0 :)

Какво ново:



За финал, малко добри новинки: руснакът, който беше направил клонинга на AGG от предходния пост се оказа разбран. След като си разменихме малко мейли, се съгласи да не се съдим и публикува на сайта както съобщение, че продуктът му е базиран на AGG, така и оферта да даде сорс-кода на всеки желаещ (което и направи, когато аз му го поисках). This was a triumph! Победа на отворения код!


Публикувано в категория Open source -- clock 17 May 2012, 20:06, 0 коментара -- English View in English


thought

AGG и GPL

Както се оказа, на нечия умна глава й дошла идеята да си присвои кода на AGG-то, да му турне copy-protection код и да го продава по $30 парчето. GPL е за загубеняците, които си нямат друга работа. Дами и господа, представям ви: SoftOrbits's Html Web Gallery Creator.

За пример: Галерийка с моята програма, и с "техния" продукт.

Фирмата е изключително потайна, не пише никакви контакти и детайли къде се помещават и оперират. С помощта на един добър човек вече пратих Cease and Desist писмо на руснака, сега чакаме развитие.


Публикувано в категория Open source -- clock 7 Jan 2012, 01:05, 0 коментара -- English View in English


thought

Нещата напоследък...

... защото се случиха няколко яки работи.

Организирахме с фирмата първия семинар по фотореалистична графика в България. Такова събитие не се беше случвало никога, така че не знаехме какво да очакваме и организацията беше яко ad hoc. Мисля, че стана добре, но още не сме разгледали feedback формите (хехе) :)

После, леко надградих ucbench, като добавих поддръжка за XOP инструкции. Те се явяват нещо като допълнителна ортогонализация на SSE, и добавят някои способности от стандартните x86 инструкции, които много отдавна трябваше да са влезли в SSE - векторни целочислени хоризонтални събирания, побайтови пермутации, cmov, и — най-важното в случая — векторен вариант на ROR/ROL инструкциите. Централна част в кода на ucbench е SHA-1 алгоритъма, който, от своя страна, прави цели 3 побитови ротации на рунд, които досега в SSE варианта се "емулираха" чрез SHL, SHR и OR. Адски неефективно, отделно пък заемаха по един временен регистър! С добавянето на VPROTD (което прави векторно ROR или ROL според аргумента), производителността се подобри с цели 45-50%.
Интересен е моментът как се тества такъв код без да имаш необходимия процесор (Булдозерите все още не бяха излезли). Сблъсках се с това нещо, наречено AMD SimNow, което, освен, че е ужасно бавно, е и недобре документирано - смятам да напиша един кратък tutorial тази седмица (аз лично прекопах интернет в търсене на такъв - сега поне може да съм от полза някому :)).

Третото готино нещо е, че отново чета курса "3D графика и трасиране на лъчи" във ФМИ. Пак студенти, търчане за проектори, организационни неща - мазохизъм за ценители :)


Публикувано в категория Open source -- clock 16 Oct 2011, 23:13, 0 коментара


thought

Спортна полуседмица

Напоследък се получи нещо като benchmark седмица - разцъквах по два бенча едновременно :)

UCBench 2011


Най-сетне пуснах нова версия :) Сайтът е http://anrieff.net/ucbench2011.
Програмата продължава да симулира разбиване на парола на криптирано RAR-че, само че вече 8-12% по-бързо. И освен това има по-добра поддръжка на засичане на CPU скоростта. Изравнени са скоростите на Linux/OSX билдовете с Windows варианта. Има и една камара други малки фиксчета по сайта и програмката.


Fract Benchmark for Android


Бях набарал това въведение за подкарване на SDL върху Android устройства, но се оказа лош водач, загубих си няколко часа да следвам тази неподходяща насока:

1) Така компилираното SDL не работи на Android 2.2, липсват му /dev/tty0 и някои други устройства;
2) Не може да се генерира .apk, а трябва да се копира върху устройството и да се пуска ръчно от конзола (което на всичкото отгоре иска root-нат телефон);

Правилния подход е да си изтеглите последното SDL 1.3 от Mercurial-ското репозитори. Там има едно чудесно README.android, което описва всичко много добре. Не изисква писане на никаква Java :) - ползвате си добрите стари C/C++ сорсове, вкарвате ги в един "фалшив" Java+JNI проект, натраквате две команди и имате .apk. Лесно и просто.

Така първоначално fract-а тръгна на Android - ето една снимка:

Image

По някое време дизасемблирах малко object код и видях каква колосална глупост съм направил - компилаторът е бил настроен да генерира soft-float, понеже няма гаранция, че ARM-чето ще е оборудвано с FPU. Е, по-новите телефони имат (даже имат VFP, което е еквивалент на x87, и NEON, което е еквивалент на SSE1). За да компилирате NDK-частта на проекта (т.е. C/C++ кода) с FPU трябва да смените малко архитектурата - ползвате следната build команда:

ndk-build TARGET_ARCH_ABI=armeabi-v7a

Препоръчително е и да добавите едно V=1 накрая за да видите какво точно се подава към компилатора. -mfpu=vfp е съществената опцийка към GCC.

Двата билда (non-FPU и FPU), както и инструкции как да подкарате бенчмарка на своя android телефон (или таблет) можете да видите тука: http://anrieff.net/pocketfract.
За който не разбира английски, да цъкне тук.

Малко резултати: HTC Desire / Android 2.2 изкарва ~5.5 кадъра в секунда. За сравнение, Asus Еее PC 901, със същия фракт и --no-sse, --no-mmx, --no-mmx2, --xres=400 и --cpus=1 дава към 11.7 FPS. Засега x86 печели :)


Публикувано в категория Open source -- clock 19 Jan 2011, 10:11, 0 коментара -- English View in English


thought

AGG 0.2.5

Пуснах нова версия на AGG. Ето какво ново в нея:

* Има билдове за 64-битови OS (Win & Linux);
* Фикснат е един важен (но труднопостижим) бъг, при който програмката забива. Когато обработвате галерия на много нишки (примерно, два 4-ядрени Nehalem Xeon-а, сиреч 16 "ядра"), работната памет се фрагментира до безобразие, в следствие на което malloc() спира да работи (връща NULL) - не може да заеме големите непрекъснати региони от памет, необходими за картинките. В 0.2.5, AGG вече пази картинките на много отделни сегментчета;
* Разни оптимизации — за четене/писане на JPG-и вече ползвам libjpeg-turbo; ускорен е и Area resizer-а. Вижте по-долу за бенчмаркове;
* Оправени са няколко проблема в GUI-то за Mac OS X;
* По-мощен Batch Rename (поддържа Python-ски slice-ове и други благинки);
* Има Adjust exif date (фисква неверни часовници в EXIFите на колекция снимки);
* Добавен е един малък benchmark.

За скоростта - оптимизациите по libjpeg и ресайзера донякъде се унищожават от усложненото боравене с паметта на снимките (и по-голямата неразбория, следваща от фрагментацията на данните). Реално, на двуядрен лаптоп успях да замеря около 12% подобрение (галерия от 325 снимки по 8 MPix се "смачква" за 2m 11s - спрямо 2:28 при 0.2.4). На шестядрената машина подобрение нямаше, но там и без това bottleneck-ът е при харддиска ;)


Публикувано в категория Open source -- clock 2 Dec 2010, 01:40, 0 коментара -- English View in English

По-стари статии >>

Language:

bgБългарски
enEnglish


Категории:

Мета
Hardware
Технологии
Забава
Open source
Интересно
Наляво-надясно
Простотии
Програмиране
Музика
Картинки
Фотография
Всички


Архив:

+ 2008 (21)
Март '08 (3)
Април '08 (5)
Май '08 (5)
Юли '08 (2)
Септември '08 (1)
Октомври '08 (2)
Декември '08 (3)
+ 2009 (15)
Януари '09 (2)
Февруари '09 (1)
Март '09 (1)
Юни '09 (1)
Юли '09 (1)
Август '09 (3)
Септември '09 (1)
Октомври '09 (2)
Ноември '09 (1)
Декември '09 (2)
+ 2010 (11)
Януари '10 (1)
Април '10 (2)
Юни '10 (2)
Юли '10 (1)
Септември '10 (1)
Ноември '10 (2)
Декември '10 (2)
+ 2011 (11)
Януари '11 (3)
Февруари '11 (1)
Юли '11 (1)
Август '11 (2)
Септември '11 (1)
Октомври '11 (3)
+ 2012 (19)
Януари '12 (3)
Февруари '12 (1)
Март '12 (1)
Април '12 (2)
Май '12 (3)
Юни '12 (1)
Август '12 (2)
Септември '12 (1)
Ноември '12 (3)
Декември '12 (2)
+ 2013 (6)
Март '13 (3)
Юни '13 (1)
Август '13 (1)
Октомври '13 (1)
+ 2014 (7)
Март '14 (1)
Април '14 (1)
Юни '14 (1)
Септември '14 (3)
Декември '14 (1)
+ 2015 (5)
Януари '15 (1)
Март '15 (3)
Май '15 (1)
+ 2016 (5)
Юни '16 (1)
Юли '16 (1)
Септември '16 (1)
Ноември '16 (1)
Декември '16 (1)
+ 2017 (1)
Август '17 (1)


Последни коментари:

21 Jan 2020, 09:01 от anrieff
20 Jan 2020, 11:38 от Владо
30 May 2017, 02:02 от anrieff
26 May 2017, 01:00 от Mathew
30 Mar 2017, 13:59 от antfarmer
26 Dec 2016, 17:52 от Private


Valid XHTML 1.0 Strict

Blogroll:

linkТимур и неговите командоси
linkivanatora
linkБезброй математици...
linkJoel on Software
linkRidiculous Fish
linkXKCD blag