Теми от: Декември '10
Малко размисли
Няколко мисли ме осениха напоследък, тъй че ги изсипвам тука.
Докато рових из нета някаква юридическа информация (разни закони, членове, алинеи, кое в кой брой на държавен вестник е обнародвано и т.н.) изведнъж ми хрумна колко си приличат хората, които пишат и поддържат законите, сравнени с тези (ние), които пишат софтуер! Ами да... имаме еди-кой си закон (папка), който има някакви глави (файлове) с разни членове (класове), състоящи се от алинеи (методи). Всичко е подредено и номерирано (алинея 123 ≅ ред 504). Промените по тези файлове се правят чрез Държавен Вестник, който обяснява, че еди-кой си закон, тази и тази глава, членове този, онзи и т.н., който досега е гласял ХХХ, вече да се чете YYY. Сиреч, чист diff и нищо повече.
В духа на това сравнение — питам аз, кога най-сетне законотворците ще пуснат SVN достъп до законите и ще спрат да разпращат .patch-ове по Държавен Вестник?!?
Друго... бях се заровил малко в гледане на код по Linux ядрото, по-точно intel.c и amd.c... и вече тотално се убедих, че процесорите не са никакъв хардуер. Та те са пълни с бъгове! И всъщност, ти още ли си мислиш, че плащайки (да речем) 200 лева за новия 4-ядрен супер-дупер процесор, ти плащаш за силиция и хафния в кристала, или за златото по крачетата (за които си имат крачета, че Интелистите нямат)? Помисли отново.
И, между другото, ударих едно рамо на valgrind. Радвам се, когато (отново) пиша open source неща, които реално са ми полезни на работа. Обожавам работата си :p
Публикувано в категория Програмиране -- 6 Dec 2010, 02:25, 0 коментара -- View in English
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 -- 2 Dec 2010, 01:40, 0 коментара -- View in English