Prośba o krytykę graficzno-koderską
Drogi Joggerze!
Naskrobałem taki sobie kawałeczek strony i chciałem Was prosić o uwagi. Zależy mi na uwagach dotyczacych:
- przejrzystości i czytelności
- HTMLa i CSS
- użytych czcionek
Ten szablonik jest bardziej designem niż gotowym HTMLem ale założyłem sobie by nie dotykać Photoshopa tworząc to :)
Szablonik ostro używa cukierków z paczki CSS3 więc może być ciężkawy dla przeglądarki. Tworząc to pozwoliłem sobie na trochę eksperymentów.
W miarę możliwości proszę oglądać z Chrome'a (Safari pewnie też podoła).
Strona teoretycznie się otwiera pod ostatnim Firefoksem ale nie napisałem dla niego regułek od gradientów więc wygląd jest różny od zamierzonego.
Jeśli ten szablonik dobrze rokuje, to w najbliższej przyszłości chcę go gdzieś wykorzystać.
Skąd wziął się pomysł na logo Androida
Tymczasem polska firma LK Avalon wypuściła kiedyś na ośmiobitowce a później na pecety grę Robbo, której pudełko było ozdobione takim obrazkiem:

Podobne, nie?
Grę można jeszcze kupić tutaj: tanio.pl
Oprócz tego istnienie klon gry o nazwie Gnu Robbo ale to już nie jest ta sama gierka w którą się grało godzinami dziecięciem będąc :)
Ciekawe, czy designerzy z Ascender Corp, firmy która rysowała logo Droida, przyznają się że czerpali inspirację ze starej dobrej polskiej gierki :)
_mm_shuffle explained
Robiąc pierwsze kroki z SSE starłem się z instrukcją _mm_shuffle. Dokumentacja od microsoftu umiarkowanie rozjaśniła jak się tego używa, ale dalej nie wszystko rozumiałem. Naskrobałem więc prosty programik, którym można sprawdzić jak się zachowa _mm_shuffle dla zadanej maski:
FreeBSD nie nadaje się do podróży w czasie...
Serwerek z FBSD na pokładzie, stojący u mnie na szafie dostał nagle czkawki. Nie wiem, czy to późna godzina nocna go zmęczyła, czy się sprzęt wysłużył, ale zaniepokoiło mnie to. Próbuję wejść po ssh - dalej słyszę czkanie. Podłączyłem się, piszę dmesg a mym oczom się ukazuje:
calcru: runtime went backwards from 23247 usec to 19576 usec for pid 1630 (bash)
calcru: runtime went backwards from 6761 usec to 5693 usec for pid 1611 (winbindd)
calcru: runtime went backwards from 243784 usec to 222784 usec for pid 1516 (cron)
calcru: runtime went backwards from 1198450568 usec to 1015456432 usec for pid 1516 (cron) calcru: runtime went backwards from 44548 usec to 39613 usec for pid 1507 (sshd)
calcru: runtime went backwards from 5836647 usec to 4921532 usec for pid 1507 (sshd)
calcru: runtime went backwards from 2488434 usec to 2240055 usec for pid 1470 (httpd)
Google nie podpowiada nic sensownego w pierwszych wynikach. Najwięcej informacji znalazłem tu: http://forums.freebsd.org/showthread.php?t=2805. Niestety nie widzę tam bezpośredniej przyczyny owego czkania.
Pomijając czkawkę, która odzywa się co kilka minut i przeszkadza w spaniu, to czy mam jakieś powody do obaw? Dysk mojemu serwerkowi wypadnie? Wiatraczek odfrunie? Diabełkowi się sznurowadła poplączą? Jajko się nadtłucze? A bardziej na poważnie, co może powodować dźwięk czkawki? Coś zbliżonego do wyłączającego się dysku, ale to chyba raczej nie to. No i dlaczego nagle na pracującym spokojnie serwerze, który przez ostatnie kilka miesięcy nie sprawiał kłopotów dmesg jest zaćkany komunikatami jak wyżej?
Wydajność si szarpa to tragedia, czy tylko ja nie umiem go efektywnie wykorzystać?
Zadanie: Wskazać w którym miejscu obrazka koncentracja szczegółów jest duża, a w którym mała.
Pomysł na rozwiązanie: Zrobić lekki blur obrazka, a potem policzyć różnicę między oryginałem a rozmytą kopią. Jeszcze wszystko było fajnie, wstępny test na Photoshopie pokazuje, że da się uzyskać całkiem niezłe efekty. Jednak moja implementacja tego w C# jest KOSZMARNIE wolna!
Nie wiem, czy ja robię błąd, czy to po prostu c# jest mało wydajny, ale coś jest nie tak. Skalowanie i pozbawianie koloru obrazka idzie całkiem szybko, natomiast liczenie rozmycia - okropnie wolno.
Zacząłem od wersji takiej, że każdy piksel obrazka jest wczytywany osobno. Było tragicznie. Przepisałem obrazek do tablicy bajtów i na niej liczę wg przekształcenia:
[1,2,1, 2,4,2, 1,2,1]/16
i znów okropnie wolno. Dla wersji z macierzą 5x5 jeszcze gorzej. Zdaję sobie sprawę, że dla marnego obrazka 100x100 to jest 2 600 000 mnożeń i dzieleń oraz trochę przepisywania, ale na Teutatesa! Stary Photoshop na kiepskim sprzęcie liczy rozmycie Gaussa nieporównywalnie szybciej!
Próbowałem wykorzystać do zadania bajerek o nazwie Parallel.For ale zrezygnowałem po oberwaniu wyjątkiem... Pozwoliłoby to policzyć wynik teoretycznie krócej, ale nie szybciej...
Czy rzeczywiście muszę robić hacki typu przemycanie bajtów w longach lub pisać samemu kod wykorzystujący SSE żeby to zrobić szybko? A może zamienić .net na mono i użyć ichniego wsparcia dla SSE? Ostatecznie mógłbym uzyć zewnętrznych bibliotek działających szybko i sprawnie, ale to jest niewskazane, bo chcę się czegoś nauczyć, a nie tylko osiągnąć efekt.
Jeśli trzeba, to z bólem serca porzucę ce kratkę na rzecz ce pe pe, ale bardzo, bardzo niechętnie...
Da się to zrobić szybciej? JAK?
Trailer: Java 4-ever
Po prostu genialne!
Koniec z MS Office'm na komputerze! Teraz Office będzie dostępny z chmury.
Microsoft w końcu udostępnił światu swoją broń przeciwko Google Docs. Rychło w czas, można powiedzieć. Zainteresowani zdążyli już przyzwyczaić się do pakietu z Moutain View. Popatrzmy ten zapowiadany killer-app jest wart.
Ile może trwać backup bazy danych?!
God damn it! Zdążyłem przeczytać zaległości w greaderze, napisałem notkę o transformersach, a backup jak leciał tak leci dalej. Mam nadzieję, że ta baza nie ubije mi serwerka roboczego z Freebsd na Pentium 3 z 256MiB RAM. Tam się musi jeszcze jakiś apacz zmieścić...
Jak ukryć Skype'a z paska zadań w Windows 7
Update:
Zespół Skype'a udostępnił możliwość wyłączenia niechcianej funkcjonalności w jednej z ostatnich aktualizacji:
Narzędzia->Opcje->Zaawansowane->Pozostaw Skype w pasku zadań, gdy jestem zalogowany (odznaczyć).
Szkoda tylko, że taka możliwość pojawiła się dopiero pod wpływem miażdżącej krytyki użytkowników.
Skype ładnie się integruje z Windows 7. Jest kolorowy, udostępnia różne opcje pod prawoklikiem, po zamknięciu okna siedzi w pasku zadań. No właśnie... Z jednej strony jest pod ręką, nie da się też go przypadkiem zamknąć przerywając rozmowę. Ale ja nie chcę, aby siedział mi non stop w taskbarze i zajmował miejsce! Mój taskbar ma to, co używam najczęściej i dodatkowe ikonki, ja ta od Skype'a tylko zaśmiecają mi miejsce!
Autorzy niestety nie pomyśleli o tym, że komuś ikonka w pasku zadań może przeszkadzać. Nawet Microsoft wskazuje, że umieszczenie ikonki jednocześnie w tray'u i taskbarze jest złe.
Don't display programs in the taskbar that minimize to deskbands. Minimize to a taskbar button or a deskband, but not both.
źródło: MSDN, Windows Environment: Taskbar
Próba znalezienia odpowiedzi przy pomocy Google'a i oficjalnego forum komunikatora nie przyniosła nic. Dowiedziałem się jedynie, że takie zachowanie Skype'a wkurza ludzi.
Jest jednak proste obejście, pozwalające ukryć Skype'a do tacki systemowej i usunąć z paska zadań. Klikamy prawym przyciskiem na ikonkę programu, z jump listy wybieramy trzecią opcję, "Skype", tą tuż nad pinezką.
Dalej 'Właściwości', zakładka kompatybilności i ustawiamy aby program uruchamiał się w trybie kompatybilności z Windows Vista. Viola! Zamykamy nieszczęsny komunikator i po ponownym uruchomieniu ikonka białego S na niebieskim tle będzie znikać z taskbara po zamknięciu okna programu.
Za pomocą tego hacku pozbyliśmy się ikonki, ale też wyłączyliśmy jumplistę. Coś za coś. Pozostaje tylko mieć nadzieję, że osoby odpowiedzialne za interfejs programu wezmą sobie do serca krytykę użytkowników i uzupełnią nową wersję o tę funkcjonalność.
Licencja na soft a innowacja
Dyskutowałem z przyjaciółmi ze studiów na temat pewnego projektu, którego częścią ma być usługa zdalnego pobierania plików. Jednym z pomysłów na realizację, był program, który zainstalowany na komputerze klienta monitoruje schowek, lub siedzi w tray'u i dostawszy link, pobiera plik. Rozwiązanie proste i bezobsługowe. Lekkie, jeśli się dobrze zabierze za taki programik. Problem się pojawił, gdy kolega stwierdził, że to będzie zbyt duża ingerencja w prywatność użytkownika.
Ma trochę racji, program, który przygląda się aktywności w internecie, i część tej aktywności wysyła gdzieś w świat. To duży uszczerbek na prywatności. Gdyby mi ktoś coś takiego zaproponował, podziękowałbym. Ale z drugiej strony, ile osób ma konto na Facebooku czy oryginalnego klienta Gadu Gadu? Albo Windows, Gmail czy Chrome'a? :)
Aby udowodnić potencjalnym użytkownikom, że program nie powstał w niecnych celach, zaproponowałem uwolnienie źródeł. Na to usłyszałem, że ktoś nam ten program szybko ukradnie, zaadoptuje i podpisze się pod nim, zamykając przy tym źródło. Szczerze wątpię w taki scenariusz, ale z drugiej strony, to, pominąwszy fragment o ograniczeniu licencji, taka możliwość jest nieodłączną cechą wolnego oprogramowania, prawda? Każdy może wziąć mój kod, przerobić go i opublikować, ale na tej samej (w domyśle: GPL) licencji.

