Fedora 9 i nieznośny 'beep’

Osobiście lubię dźwięk systemowego 'beep’ przy np. automatycznym dopełnianiu komend po wciśnięciu TAB w konsoli. Niestety na moim laptopie Dell Inspiron 6400 beeper jest za głośno ustawiony, co np. przy wyłączaniu systemu o drugiej rano może obudzić nawet sąsiadów. Zatem po wielu namowach sąsiadów, współpracowników, ludzi przechodzących obok mojego okna… postanowiłem wyłączyć ten super dźwięk. Wystarczyło wpisać:

su -c '/sbin/modprobe -r pcspkr ; echo "install pcskpr :" >> /etc/modprobe.conf'

… i nie ma nieznośnego 'beep’ pod moją Fedorą 🙁

MacBook Air i super multitouch touchpad

Kiedyś, jeszcze na starej stronce pisałem o MacBook Air… Było to chyba 5 minut po premierze tego przecudownego lapopika. Wtedy już rzucały się w oczy takie minusy jak niewymienialna bateria, jeden port usb (więc podłączenie mojego zewnętrznego dysku który wymaga 2xUSB odrazu odpada), oraz przede wszystkim CENA! Wersja tańsza 5k złotych, a droższą w Polsce na razie nie ma co pytać, bo nikt nie sprowadza.

No, ale to było pół roku temu, a dzisiaj można już pójść do najbliższego MediaMarkt/Saturn aby samemu sprawdzić to cudeńko. Po pierwsze jest super cienki, to widać. Lekki też jest, pomimo tych super zabezpieczeń, które doczepili specjaliści ze sklepu.

Laptop był oczywiście wyłączony, bo nikt się nawet do niego nie zbliża (cena 5800zł, więc wiadomo). Uruchomienie… nie wiem, 5 sekund? Może 6… Pulpit bardzo mi przypomina Gnome pod Linucha, ale oczywiście to piękny MacOs. Pierwsze co racze sprawdzić to touchpad. Wystarczy otwrzyć jakiś obrazek, wykonać ruch palcami jednej ręki aby go zbliżyć lub oddalić. Zero smużeń, doczytywań, lagowania. Wszystko płynne i bez żadnych problemów.

Najlepsze że laptop jest gotowy do pracy od razu po wyjęciu z pudełka. Ale tak jest ze wszystkimi Macami. Nie potrzeba nic instalować. Odpalamy komputer i wszystko już jest. A nie, że Windows się instaluje, potem kodeki i takie tam… Tutaj wszystko jest gotowe out-of-box.

Oczywiście, pan w sklepie nawet nie wiedział od mutlitouch touchpadzie… ale teraz już wie. Może kogoś przekona do kupna najcieńszego na świecie laptopa.

CSS3 i szybkie formatowanie inputów

Wyobraźcie sobie taką sytuację. Macie oto stworzoną stronę, tfu 10 stron albo i 100. Wszędzie tabele, przyciski, formularze. Ten co to wszystko stworzył nie zadbał o style, zostawił to wam. Chcemy zmienić style we wszystkich przyciskach… no ale przycisk z type=”input” to nie to samo co przycisk z type=”submit”…



Pierwsza metoda to przelecenie tych stu stron i dodanie pola class do wszystkich inputów:



Ale przeciez CSS pozwala na łatwe załatwienie sprawy:

input[type="text"] {
font:bold 10px/12px verdana,arial,serif;
padding:3px;
}
input[type="button"],input[type="submit"] {
/* co tam chcesz */
}

Znalazłem także w necie ciekawe podejście do starszych przeglądarek. Zostosowanie javascriptów pozwala osiągnąć ten sam efekt, czyli modyfikacje wszystkich stylów za pomocą jednego css’a.

Nasza-klasa i te ukryte dane

Ostatnio gdy źle mi się znychronizowała komórka z listą kontaktów Google i zginęło mi kilka numerów telefonów (nigdy więcej nie zapomne zrobić backupa na gmailu), postanowiłem sprawdzić na naszej-klasie jaki to numer telefonu mają moi znajomi. Wpadłem więc do znajomego z klasy (czyli dodany do tej samej klasy plus znajomy poprzez to obustronne łączenie znajomych), no ale…

Więc o co chodzi? Po co wpisywać numer telefonu na takim portalu skoro nikt go nie przeczyta? Nie ma super-bliskich znajomych, czy opcji 'pokazuj numer telefonu tym a nie tamtym’ (np. tylko dla pań 🙂 ) itd. Nikt tego wpisanego numeru nie zobaczy!! Więc po co ktoś go wpisał? Zamiast tego mógł wpisać 'kotek’ i zostawić odkryte, albo nie wiem co…. Bez sensu.

Czy może jest w tym jakiś sens?

P.S. Synchronizacja odbyła się za pomocą OggSync w wersji pro, której nie radzę odpalać jeśli korzystamy z polskiej wersji poczty (i kontaktów) na Gmailu. Po prostu sobie nie radzi z obsługą pól 'Osobiste’, 'Praca’ (musi być 'Personal’, 'Work’). Trzeba trochę pokombinować i będzie dobrze. U mnie teraz już jest super, man 400 kontaktów na gmailu oraz te same kontakty w komórce. Nice… Ale o tym programie to później.

Mio A702 czy coś innego?

Po pierwsze dotykowy wyświetlacz! W tym momencie odpada Nokia N95 z konkursu, nawet ze swoim super fajnym 5Mb pikselowym aparatem.

Po drugie ma posiadać GPS. Więc parę smartfonów już odpada…

Ok więc mamy do wyboru np. Mio A702, Eten X800 lub M800, Asusy….

Czemu nie Eten? W końcu ma rozdziałkę 640×480 (VGA) a nie 320×240! No własnie dlatego! Jego plus jest też minusem. Mając taki sam procek jak inni ma dwa razy większą rozdzielczość (powierzchniowo 4x) i przez to chodzi 4 razy wolniej niż normalnie. Nie da się wykonać jakiejkolwiek operacji w sensownym czasie, np. poniżej dwóch sekund… Odpada. Zarówno X800 jak i M800 (oba w środku są takie same).

Heh o tym czemu nie Asus… nie mogę powiedzieć. Wiem że w wyniku ostatnich akcji marketingowych ma on dużo wielbicieli, więc nie będę się narażał. Po prostu Mio lepiej leży w ręku… a tak ma to samo.

A Mio daje w pudełku: zasilacz z 3ma różnymi końcówkami, uchwyt samochodowy, ładowarkę samochodową, jakąś folię na ekran, kabel USB (umożliwia ładowanie), etui. 2Gb kartę Micro SD z Automapą dali za złotówkę…

O wrażeniach z Windows Mobile 6, o tym jak toporny to system, w następnym odcinku. Muszę też opowiedzieć jak strasznie niefajnie się synchronizuje kontakty, kalendarze i takie rzeczy między smartfonem a usługami Google, gdy nie posiada się Outlooka, albo Windowsa!

Redukcja poziomów szarości

Redukcja poziomów szarości jest banalnie prosta dla wszelkich obrazów i ma złożoność w * h. Otóż bierzemy sobie
piksele z obrazka i….

// pixele to jedna dluga tablica wszystkich pikseli z obrazka
for (int i = 0; i < (w * h); i++) {
    tmp = ((pixele[i] >> 16) & 0xff) +
          ((pixele[i] >> 8) & 0xff) +
          (pixele[i] & 0xff))/3;
    tmp = ((int) (tmp / (256 / skala))) *
          (255 / (skala - 1));
    pixele[i] = (((255 & 0xff) << 24) |
                (((int) tmp & 0xff) << 16) |
                (((int) tmp & 0xff) << 8) |
                ((int) tmp & 0xff));
}

Zmienna skala może być równa od 2 do 256. Oczywiście najlepsze rezultaty otrzymamy jeśli wybierzemy 2, 4, 8, 16, 32, 64, 128 lub nawet 256. Wybranie 2 spowoduje że otrzymamy zbinaryzowany obrazek, zaś gdy wybierzemy 2 to z obrazka kolorowego powstanie obrazek w skali szarości. Proste, no nie?

A oto przykłady: