2017-03-21 18:00:44
Ceph Days Warszawa - 25 kwietnia 2017 (Ceph Day Warsaw)

Nareszcie - po raz pierwszy w Polsce - dzień Cepha odbędzie się 25 kwietnia w Warszawie! Na terenie Międzynarodowego Instytutu Biologii Molekularnej i Komórkowej (Księcia Trojdena 4) organizowany jest całodniowy event poświęcony Cephowi. Na razie wielu szczegółów nie zdradzam (a te zdradzone są i/lub będą umieszczone tutaj - razem z linkami do darmowej rejestracji), ale na pewno będzie można posłuchać jak wygląda praca z i nad Cephem, powymieniać się doświadczeniami z innymi użytkownikami oraz poznać ludzi którzy siedzą w cyberkałamarnicach po uszy osobiście. Ja na pewno będę i wszystkich fanów Cepha, Linuksa i technologii storage'owych gorąco zapraszam w imieniu swoim, polskiego oddziału OVH oraz firmy Red Hat.

Do zobaczenia w Warszawie!

2016-10-13 20:26:00
TAcroPDF nie wyświetla dokumentu za pierwszym razem

Jeśli ktoś używa kontrolki TAcroPDF (jako otoczki do oryginalnej kontrolki OCX) i tworzy ją dynamicznie, treść wskazanego dokumentu może się nie wyświetlać jeśli to będzie PIERWSZA instancja kontrolki w danej instancji programu-hosta. Rozwiązanie jest BANALNIE proste: po ustawieniu właściwości "src" należy wywołać metodę SetFocus.

2016-07-31 20:46:25
Continuity Engine 1.0

Yaaay, oficjalnie 1.0! :P nobody cares

2016-07-26 20:17:27
Sleep considered harmful

Funkcji Sleep() powinni zabronić. Powinna być zamieniona na coś dużo bardziej skomplikowanego tak, by programiści nauczyli się wreszcie programowania asynchronicznego/zdarzeniowego i nie korzystali ze sleepów bez sensu. Sama funkcja nic nie szkodzi - wstrzymuje pracę wątka na ileś czasu rzeczywistego, w niektórych implementacjach pozwala oddać procesor innemu wątkowi. Przydatne. Ale niektórym się wydaje, że to idealna metoda synchronizacji międzykomponentowej...

2015-09-06 19:52:23
Ceph Hackathon - Hillsboro, OR

W pierwszej połowie sierpnia wsiadłem w samolot i poleciałem sobie do USA na Ceph Hackathon, z jednej strony by reprezentować pracodawcę, z drugiej, by zobaczyć na żywo Stany Zjednoczone, a z trzeciej, by poznać bliżej ludzi odpowiedzialnych za Cepha. Główny architekt projektu, Sage Weil, nie mógł się zjawić fizycznie, ale mieliśmy okazję z nim pogadać i tak. Ogółem jestem zadowolony, aczkolwiek to nie był taki "prawdziwy" hackaton - relatywnie mało brakowało, by skończyło się na marketingowym pianiu z zachwytu nad sprzętem Intela (który sponsorował imprezę), na szczęście do tego nie doszło. Poza tym, teraz oficjalnie Intel mnie nie lubi. ;)

2015-05-17 15:55:46
A taki tam stary bug...

CreateFile with OPEN_ALWAYS Sets Last Error Incorrectly

Testuję coś w maszynie wirtualnej, dane mam na wspóldzielonym katalogu (po SMB). No i dzieją się rzeczy dziwne - dane mi giną. Po dłuższej analizie dotarło do mnie, że wywoływałem funkcję CreateFile z parametrem OPEN_ALWAYS i od wartości zwróconej przez GetLastError uzależniałem albo normalne otwarcie, albo regenerację pliku - wygodne, bo nie musiałem ręcznie wykonywać operacji I/O by sprawdzić, czy plik wcześniej istniał, czy nie. A tu nagle taki wał... Nagle dowiaduję się, że plik nie istniał, kiedy istniał. :)
Już zacząłem grzmieć na Vboxa, ale okazało się, że to stary bug w Windows... No cóż, to na tyle w kwestii wygody.

2015-03-23 24:56:53
VIA popsuła swoje API! :P

Taki szybki protip dla wszystkich, którzy chcą z tego skorzystać i utknęli - VIA Padlock SDK jest popsute. Konkretnie, to funkcja padlock_phe_partial_available() wewnętrznie wywołuje funkcję asm_is_nano(), która wygląda tak:

cglobal asm_is_nano
asm_is_nano:
    xor eax, eax                ;get vendor ID
    cpuid   
    ;cmp ebx, 0x746e6543        ;means "tneC"
    ;jne NO_VIA
    ;cmp edx, 0x48727561        ;means "Hrua"
    ;jne NO_VIA
    ;cmp ecx, 0x736c7561        ;means "slna"
    ;jne NO_VIA
    
    ;verdor ID cannot got now, since our board has errata.
    mov     eax,  0xC0000000
    cpuid
    cmp     eax, 0xC0000001
    jb      NO_VIA
    mov     eax,  0xC0000001;
    cpuid
    and     edx, 0x0C00;        PHE_MASK,CPUID EDX code for PHE
    cmp     edx, 0x0C00;        PHE_MASK,CPUID EDX code for PHE
    jne     NO_VIA
    
    mov eax, 1              ;get model
    cpuid
    or  eax, 0x000f
    cmp eax, 0x06ff         ;3rd bit is F, then nano.
    jne NO_VIA
    
    mov eax, 1              ;return 1
    ret
    
NO_VIA:
    xor eax,eax
    ret;

... No właśnie. Instrukcja CPUID zamazuje wartości rejestrów EAX, EBX, ECX i EDX, i nic nie przywraca ich wartości, wobec czego po wywołaniu padlock_phe_partial_available() program przestaje zachowywać się przewidywalnie. Rozwiązanie? Przepisać sobie ręcznie asm_is_nano(), dodając pushe i popy odpowiednich rejestrów w odpowiednich miejscach.

2015-02-20 00:40:22
Ograniczenie liczby MIBów w sub-agentach Net-SNMP

Szybki protip dla tych, którzy tworzą własne sub-agenty dla Net-SNMP, a dla których problemem może być duża liczba trzymanych w systemie MIBów i wynikające z tego zwiększone użycie pamięci przez sub-agentów.

2014-12-16 12:49:39
Wizualizacja ważna sprawa :)

Zastanawiałem się, czemu nowy kod dla dużych bloków działa rewelacyjnie, a dla mniejszych dużo gorzej od starego. Odpowiedź:


Kliknij aby powiększyć

Zielona linia to nowy kod, czerwona - stary, niebieska i fioletowa - nowy z poprawkami, prosta pod nimi symbolizuje przyrost ilości danych. W poziomie - ilość danych, w pionie - czas w milisekundach.

Well, to wiele tłumaczy. ;-) Wniosek - warto czasem zwizualizować suche dane. Taki wykres daje więcej informacji niż 500 liczb w czterech słupkach.

2014-06-02 21:30:56
HrCrc32c

Kolejny wpis z serii "Jak dostałem Haswella". W poprzednim odcinku - Popcnt, więc tym razem pora na crc32c, czyli CRC32 z wielomianem 0x11EDC6F41. Do czego to można wykorzystać? Oczywiście do liczenia sumy kontrolnej, ale i do hashowania (np. w hashmapach).

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: