Standardowe Biometric API w Windows 7

Nie jest jeszcze bardzo rozgłaśniane nadejście Windows 7, ale już znalazłem dobry powód do niecierpliwego oczekiwania na jego nadejście.
W trakcie poszukiwań związanych z próbami wykorzystania standardowych mechanizmów dostępu do Kart Inteligentnych w Windows ku mojemu radosnemu zaskoczeniu odnalazłem w MSDN’ie kategorię Biometric API. Po lekturze wstępu do tego interface’u okazało się, że jest on dostępny dopiero w Windows 7. Ostudziło to trochę mój pierwszy wybuch radości, jednakże fakt że Microsoft zdecydował się na wprowadzenie nowego API świadczy zarówno o aprobacie tej metody autentykacji która przez wielu uważana jest za jedynie niepotrzebne i szkodliwe złudzenie bezpieczeństwa. I w pewnym sensie można się zgodzić co do tego, że do tej pory oprogramowanie obsługujące przede wszystkim czytniki odcisków palca, które zaczęły być masowo montowane w Notebookach, było i jest bardzo ubogie i obarczone błędami – zarówno w obszarze integracji z Systemem Operacyjnym, jak i w dziedzinie samej obsługi danych nadesłanych z czytnika. Prostym przykładem jest produkt wypuszczony przez Lenovo, który po uruchomieniu autoryzacji poprzez Finger Print przestaje w jakikolwiek sposób odpowiadać na włożenie do czytnika karty inteligentnej.

Mam szczerą nadzieję, że ta biblioteka umożliwi szersze i łatwiejsze wykorzystanie czytników biometrycznych w codziennym życiu.

Chrońmy subtelny klimat KAŻDEGO języka! Czyli pragmatyka vs. Matematyka

Tyle się mówi o czystości języka, zapobieganiu kalkom, czy uzdatnianiu słów i fraz na potrzeby języka polskiego.
Tyle się mówi o konieczności czytelnego i wyraźnego kodowania w językach wysokiego poziomu, tak mocne są starcia pomiędzy programistami różnych języków o konwencję.
I bardzo słusznie. Każde działanie mające na celu utrzymanie pewnego specyficznego klimatu języka którym się w pewnych sytuacjach posługujemy jest rzeczą dobrą, i wartą poparcia.
Jednakże nie widzę absolutnie żadnych podstaw do nawracania na jedynie słuszną drogę ludzi reprezentujących trochę odmienne przekonania i dążenia, które wyrażają w innym, posiadającym WŁASNY klimat, języku.

Dlatego mówię NIE takim ogólnym hasłom jak to:

Wyrażenie występujące na tym sloganie wzięte jest żywcem z mojego programu z MatLab’a.
A matlab jak wiadomo jest językiem matematycznym. Więc dlaczego pozbawiać go subtelnego uroku wyrażenia matematycznego.

Wiem z doświadczenia, że w dużych projektach w językach obiektowych jednoliterowe zmienne nie tylko drażnią, ale i powodują błędy. Natomiast jakby nie spojrzeć, opisywanie zmiennych matematycznych za pomocą nazw w stylu „czestotliwosc_probkowania” jest niszczeniem klimatu matematyki i sztucznym wydłużaniem skomplikowanych wyrażeń które stają się przez to, paradoksalnie, jeszcze bardziej nieczytelne ze względu na rozwlekłość zapisu.

Rozważmy więc, czy jest sens sobie utrudniać życie.

Windows SFU 3.5 NFS, czyli Okna przyjazne Pingwinowi

Ostatnio udało mi się okiełznać składnik systemu Windows o którym głośno jest od dawna. Są to Services For Unix, element mający na celu dostosowanie Okien spod igły Microsoftu do wymanagań standardu POSIX.
O ile wersja umieszczona na płytach instalacyjnych jest praktycznie nie do użytku ze względu na ubogi zasób narzędzi oraz totalny brak mechanizmów zarządzających, o tyle najnowsza edycja robi wrażenie. Zarządzanie z poziomu MMC, składniki WMI oraz prawie pełne odwzorowanie API znane z Linux/Unix’ów umożliwia praktycznie pozbycie się z dysku Cygwina. Do obszernych możliwości tego podsystemu, bo całość architektury jest bardzo podobna do bardzo dobrze znanych mechanizmów emulacji systemów 16bitowych, jeszcze powrócę. Dzisiaj chciałbym zwrócić szczególną uwagę na jeden ważny element tego pakietu, mianowicie na Klienta NFS.
Ma on dwie bardzo ważne zalety – ogólnodostępność oraz podobieństwo zarówno do narzędzi znanych z linuxa (wykorzystanie polecienia mount) jak i windowsa (możliwość operowania na ścieżkach przypominających NetBios). A więc do rzeczy.

Instalacja wszystkich składników jest bardzo przydatna, uważam że nie ma sensu oszczędzać niczego z tych 450MiB jakie zajmuje pakiet. Z całą pewnością będzie to dobrze spożytkowana powierzchnia dysku. Dlatego nie rozwodzę się zbyt długo nad samą instalacją.
Następnym krokiem jest konfiguracja mapowania użytkowników, jednak w najbardziej podstawowym zastosowaniu, gdy możemy sobie pozwolić na autoryzację jedynie za pomocą adresu IP (podstawowa metoda identyfikacji klienta przez serwer NFS) można to pominąć. Więcej szczegółów na ten temat w doskonały sposób opisał Ashish.Tak więc teraz powinniśmy się zająć konfiguracją naszego serwera nfs. Piszę o tym, ponieważ jednym z częstszych zastosowań tego mechanizmu są sytuacje przejściowe – wszelkiego typu migracje, przenosiny, i inne podobne im operacje. A w ferworze walki często można coś zapomnieć, czy przeoczyć, czego jestem najlepszym przykładem.
Tak więc, po pierwsze należy zwrócić uwagę na plik /etc/exports (lokalizacja na pewno sprawdzona na systemie Gentoo, w innych powinna być podobna), w którym zapisujemy wszystkie katalogi które chcemy udostępnić przez nfs. Koniecznie upewnijmy się, że stacja kliencka należy do podsieci uwzględnionej we wpisach share’ów! W tym momencie możemy ustanowić faktyczne połączenie do serwera:

1
mount \\<em>servername</em>\<em>sharename</em> Z:

gdzie servername – nazwa naszego serwera nfs, sharename – jeden z udostępnionych katalogów (widniejący w /etc/exports), a Z: – litera dysku pod którą chcemy ujrzeć podmontowany zasób. Od tego momentu powinniśmy ujrzeć drzewo katalogów podmontowane pod określoną literę dysku. Powinniśmy, ponieważ to nie koniec.
Jeśli to się nie powiedzie, należy spojrzeć do konfiguracji SFU w mmc. Potrzebujemy zmodyfikować opcję „Prevent use of low port numbers”. Chodzi w tym o to, iż klient windowsowy domyślnie operuje na dowolnych wolnych portach powyżej 1024, co często jest przyczyną konfliktu ze starszymi wersjami serwerów nfs, które oczekują połączeń na „klasycznych” portach.
Trzecim, wcale nie oczywistym problemem jest kwestia praw dostępu. Jak pamiętamy, dla prostoty pominęliśmy konfigurację mapowania nazw użytkowników. Zagadnienie które pochłonęło mi dużo czasu brzmiało „to w takim razie z jakimi poświadczeniami uzyskuję dostęp do plików” ? Jak się okazało, z pomocą przyszły dobrodziejstwa unixowego systemu plików. Wystarczy jedynie nadać uprawnienia w trzeciem „triplecie” rwxrwxrwx odpowiednie dla naszych potrzeb. Kwestię bezpieczeństwa i fakt że większość adminów unixowych podniosła by wielkie larum widząc coś w stylu rw-r–rw- pozostawiam na boku, jako że w zamierzeniu było szybkie skopiowanie danych i nic więcej. Ta sztuczka pozwala przestać się przejmować jakimikolwiek poświadczeniami. Wykorzystujemy triplet „others”.

Te trzy proste ustawienia nie wyglądają groźnie. Ale wiedziony doświadczeniem, podpowiadam, że najciemniej jest zawsze pod latarnią.

O innych dobrodziejstwach SFU już wkrótce.