2014-05-05 01:23:17
HrPopCnt, czyli dostałem Haswella

Dopiero teraz dociera do mnie, ile fajnych bajerów tkwi w moim lunchboxie, a jednym z nich jest instrukcja POPCNT obsługiwana przez Core i3-4130T. A co robi ta instrukcja? Zlicza ilość zapalonych bitów w danym argumencie.

2011-11-20 19:53:28
Zaktualizowany BPFStat

Zmiany w wersji 1.1:

  • Podanie prawidłowej nazwy pliku jako pierwszy parametr automatycznie analizuje ten plik po uruchomieniu (co umożliwia skojarzenie programu z plikami bądź dodanie do listy "wyślij do")
  • Usunięte błędy Invalid floating point operation bądź Access Violation które mogły się pojawić czasem po przeanalizowaniu (odświeżeniu) pliku
  • Obok wartości pod kursorem dziesiętnie i heksadecymalnie, wyświetlany jest także znak ASCII/ANSI o tym kodzie
  • Analizowanie pliku dla elementów o szerokości 8 i 16-bit jest o 3-5% mniej cpużerne.

Tego pierwszego nagle zabrakło, więc siadłem, doklikałem, a reszta przy okazji. ;-) Do zaciągnięcia z Branchware.

2011-11-08 21:03:39
BPFStat

BPFStat to mały program do generowania histogramu zawartości pliku. W sieci można znaleźć kilka programów które to potrafią, ale nie spotkałem się z takim, który potrafi podać przy okazji wartości skrajne, ilość unikalnych wartości, ukryć słupki dla wartości które nie wystąpiły, ukryć maksimum, no i chyba najważniejsze - pracować z 16-to i 32-bitowymi wartościami - więc napisałem swój.

Screenshot BPFStat
2011-08-09 18:04:07
Poprawione MboxProxy i The Bat! Proxy

Przy okazji likwidowania buga w HCMie polegającego na ściąganiu po raz kolejny wiadomości, które filtrami oznaczyło się jako do pozostawienia na serwerze, wyszła na jaw dziwna anomalia, mianowicie po poprawkach HCM zaczął... pobierać UIDLe losowych wiadomości i równie losowych wiadomości decydował się nie pobierać, co nie przeszkadzało mu wcale w pobieraniu wiadomości, których drugi raz nie powinien pobierać i do tego ciągnąć jeszcze ich UIDLe po raz kolejny. Po powstawianiu loggerów w krytyczne miejsca okazało się, że to nie wina HCMa, a serwera, który przysyłał inne UIDLe hurtem, a inne detalicznie. A o którym serwerze mowa? MboxProxy.

2010-10-15 00:30:49
TGrayForm

This article is also available in english language

Skoro już zacząłem na Torry'ego wrzucać swoje szpargały (moja strona, jakby ktoś szukał), pomyślałem sobie rozwinąć stary pomysł - GrayForm - i dodać kilka bajerów. Pierwszy to konwersja kolorów w formach na sepię - wygląda to ciekawie. Potem doszły jeszcze konwersje na same odcienie czerwieni, zieleni i błękitu, a potem, tak zupełnie "for teh lulz", dodałem odcienie różowego i złotego. :) Co dalej? Konwersja na kontrolkę. Wrzuca się komponent na formę, woła metodę bez parametrów, działa. :)

I to właściwie wszystko co można napisać na ten temat. Jak to działa, itd. itp. - doczytać można we wpisie dot. modułu GrayForm. Sam komponent można pobrać z BranchWare.

2010-10-02 21:32:25
JPEGFast - szybkie wczytywanie JPEGów w Delphi

This article is also available in English language

Jak pisałem apropos moich "badań", dostępna jest biblioteka szybko dekompresująca JPEGi (w oparciu o instrukcje SSE/SSE2). Ponieważ dopiero od Delphi 7 wbudowany asembler zna instrukcje SSE/SSE2, opakowałem pierwotny kod w bibliotekę DLL i upubliczniłem dwie funkcje, dzięki czemu skorzystać można nie tylko mając Delphi 7 lub nowsze. I w zasadzie nie tylko Delphi, bo różne VC++ i inne cuda też mogą z biblioteki skorzystać.

Na marginesie, to na Branchware pojawiły się zaktualizowane wersje komponentu TSysIcon i klasy TPixelTransformer.

2010-09-28 12:23:42
Risercz okołograficzny

Z okazji padniętej grafiki w giercpudle, wieczorami nie mam specjalnie co robić - a co wieczór zamęczać znajomych to ja jednak nie umiem. Zatęskniwszy straszliwie za czasami, gdy szedłem spać nad ranem (lub wręcz rano) po nocy spędzonej na szeroko pojętym rozwijaniu swojej wiedzy, wróciłem do tego, co mnie zawsze rajcowało, czyli przetwarzania obrazów 2D w Delphi -- z naciskiem na dużą wydajność. W tym odcinku - skalowanie z wygładzaniem oraz szybkie (powered by SSE) ładowanie JPEGów.

2010-09-01 19:07:17
MboxProxy NG

Trochę późno, ale lepiej teraz niż wcale (tym bardziej, że wkrótce znowu będzie mniej wolnego czasu). MboxProxy NG to następna generacja MboxProxy, czyli programu, który pomoże przy importowaniu poczty w formacie Uniksowych skrzynek MBOX (formatu tego używa np. Mozilla Thunderbird) do dowolnego klienta obsługującego protokół POP3 (czyli właściwie każdego, z przebrzydłym Zezulcem na czele). Następna generacja, bo zmieniony został wewnętrzny silnik realizujący właściwy dostęp do poszczególnych wiadomości - teraz nie ma już problemów z Mboxami o wielkościach dochodzących lub przekraczających 1GB. Ba, 15GB nie będzie problemem. ;-) W praktyce radzi sobie również z mboxami zawierającymi miliony wiadomości. A w pakiecie - kod źródłowy, z którego można się nauczyć, jak obsługiwać 64-robitowe liczby w Delphi, nie mając typu Int64.

2009-11-17 07:52:03
DualCoreSort

Nie jest to żaden nowy algorytm ani nowe informatyczne odkrycie, a jedynie przykład, jak, mając dwa logiczne procesory i dwa proste algorytmy sprawić, by zajmująca najwięcej czasu operacja wykonywała się szybciej. O ile prezentuję tu przykład sortowania dwoma rdzeniami, to spokojnie można to rozbić na większą liczbę rdzeni. Motywacją do tego wpisu (i kodu) było to, że "uwielordzeniowanie" programów - nawet, a może raczej: głównie - w środowiskach RAD jest uznawane za jakąś alchemię. Wiele osób po prostu nie wie "co to jest" i "jak to się robi" (swoją drogą, to rozbawiła mnie prośba jednego kodera, by twórcy jakiejś biblioteki zoptymalizowali jedną, maluteńką - kilkadziesiąt instrukcji x86 - funkcyjkę do korzystania z wielu rdzeni). Może po tym wpisie niektórym się rozjaśni.

2009-11-02 10:12:30
GrayForm

This article is also available in english language

Kiedyś na pl.comp.lang.delphi pojawił się wątek, w którym pytacz chciał wyróżnić niedostępne okienka poprzez wyszarzenie ich. Padło m. in. rozwiązanie z Alpha Blendingiem - jeśli ma się Delphi 7, to nawet da się to szybko zaimplementować, ale jest to szalenie nieefektywne. Teraz, dla odmiany, napisałem to po swojemu - i działa szybko, nie wymaga dużo pamięci, Windows 2000 ani Delphi 7 (lub nowszych). Działąjący moduł GrayForm.pas wrzuciłem na BranchWare, kod jest na licencji BSD. W module zademonstrowałem w jaki sposób szybko przetwarzać bitmapy - GrayForm potrzebuje ~55ms na samą konwersję bitmapy 24bpp o wymiarach 1920x1200 na odcienie szarości (bez stosowania assemblera) - i to na Atomie 330. Dla bitmap spaletyzowanych wykonuje to samo w czasie prawie że rzeczywistym (modyfikowanie samej palety).

Wcześniejsze wpisy »

Powered by:
Hellcore Mailer - polski program pocztowyOpera Web BrowserFreeBSD - The Power to Serve!Slackware
RSSy:
Sidekick:
Projekty:
O autorze:
Zobacz:
Kategorie:
Archiwum:
Szukaj: