2016-08-11 24:56:09
A jednak będą obsługiwać Skylake'i!

Nie tak dawno jak w styczniu pisałem, że "Windows 7 i 8(.1) nie będą obsługiwać nowoczesnych procesorów". To samo w sobie było niezłym FUDem mającym nakręcić klientelę Windows 10 i większość owiec się na to nabrała. W międzyczasie złożyłem blaszaka z Core i7-6700, władowałem do niego Windows 8.1, do dzisiaj nie narzekam. I nagle bam - krótko po upływie czasu gdy można było się za darmo zaktualizować do Win10, Microsoft obwieszcza, że support jednak będzie. Oczywiście dalej bredzą coś o "Kaby Lake" i "Bristol Ridge" którymi na razie nikt się nie przejmuje (bo są na papierze), więc w sumie niewiele się zmieniło. Skylake'i wcale nie oferują jakichś cudów (z punktu widzenia systemu operacyjnego), więc... było jak jest, tylko MS wycofał się z pierwotnego FUDu i znowu odśpiewuje starą, marketingową śpiewkę. Miejmy nadzieję, że chociaż teraz ludzie zrozumieją, co tak naprawdę chce powiedzieć MS.

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-02-02 22:30:39
DailyHCM wznowione - HCM 0.9

Dementuję ploty po raz kolejny - projekt nie umarł i dzisiaj wrzuciłem nową wersję swojego programu pocztowego :)

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-12-19 12:49:07
A tak się bawię w pracy

Tak wygląda kompilowanie Cepha na 128 logicznych CPU:

Szkoda tylko że te 4 serwery żrą tyle prądu i tak hałasują... Do domu nie zabiorę ;)

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.

« Późniejsze wpisy | 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: