2017-05-08 18:45:18
Greylisting czyli znowu żyjemy w średniowieczu

tl;dr - coraz częściej spotykam się z efektami ciężkiej pracy umysłowej admina-debila, który nie umie skonfigurować serwera/farmy zgodnie z protokołem SMTP.

2017-05-03 17:11:09
I po pierwszym polskim Ceph Day

tl;dr: Było fajnie, mogło być lepiej, myślałem że będzie dużo gorzej.

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-07-26 13:54:07
Dolina krzemowa

Podobno każdy liczący się programista powinien choć raz odwiedzić Dolinę Krzemową, czyli z angielska "Silicon Valley". Tak się zdarzyło, że z okazji kolejnego (i dla mnie na razie ostatniego) zjazdu "Cephoklikaczy" znowu wsadzono mnie do samolotu i posłano w pizdu, czyli do Stanów Zjednoczonych - i tym razem jeszcze dalej niż poprzednio, bo aż do San Jose, w Kalifornii. Czyli centrum Doliny krzemowej! :)

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...

2016-01-16 19:01:49
Marketingowego bełkotu c. d.

Pewnie niektórym z was się obiło o uszy, że nowa generacja procesorów Intela nie będzie obsługiwana w Windows 7 i 8, jedynie 10. I co z tego wynika? Absolutnie nic. To marketingowy chwyt polegający na zastosowaniu "oczywistej oczywistości" do wymuszenia na kliencie zakupu. Windows 95 nie obsługuje instrukcji SSE i na procesorach z nimi, aplikacje korzystające z SSE najzwyczajniej w świecie ulegają różnorakim awariom (zwisy, segfaultgopodobne błędy, etc), co wynika z tego, że podczas przełączania wątku rejestry XMM (używane w SSE) nie są zachowywane i odtwarzane i wątek 1 nagle zaczyna mieć dane wątku 2, co raczej nie jest pożądanym działaniem. I co z tego? Nic, świat się nie zawalił, a część programistów po prostu wyłącza obsługę SSE na Win95 i program, cudownym zrządzeniem losu, nagle pracuje poprawnie, nawet jeśli wolniej.

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-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).

2014-05-18 20:07:58
Czy dysk się kręci?

Zaskakujące jest, że mimo wszechobecności laptopów, tak mało aplikacji działa na nich poprawnie. Koronnym przykładem owej niepoprawności jest świadome ignorowanie stanu zasilania poszczególnych komponentów, co (czasami bardzo) negatywnie odbija się na czasie pracy laptopa na baterii, np. gdy jakaś aplikacja nagle uznaje, że akurat 5 sekund po zatrzymaniu (talerzowego) dysku bezwzględnie potrzebuje wysrać pół tony plików tymczasowych albo zrobić pusty autozapis (tj. zapisać plik auozapisu w sytuacji, gdy tak naprawdę od ostatniego zapisu nic się nie zmieniło). Windows 2000 i nowsze dają możliwość określenia w jakim stanie zasilania jest dane urządzenie, m. in. do określenia czy dysk się kręci, można użyć funkcji GetDevicePowerState, która wcale nie jest trywialna, jeśli chodzi o poprawne używanie.

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: