What would Brian Boitano do?

Przesiadam się teraz dość regularnie z komputera z desktopem GNOME na Mac OS X 10.5 i mam kilka pomysłów, które mogłyby stać się killer-aplikacjami, gdyby tylko były. Innymi słowy, jest to lista tego, czego brakuje mi w GNOME lub w OS X (albo i w jednym i w drugim).

W GNOME najbardziej brakuje mi czegoś, co działa jak Spotlight w OS X. Celowo napisałem "co działa", bo podobne launchery i dodatki oczywiście istnieją, ale do działania Spotlighta im daleko (są wolne i żrą masę zasobów). Poproszę o coś takiego w najbliższym wydaniu.

I jest coś, czego nie ma ani GNOME, ani OS X — instalator tematów. Coś, co ma Firefox i Opera, ale sam desktop nie. Chciałbym móc otworzyć sobie okienko, przejrzeć listę tematów z gnome-look.org (albo z innego serwisu), nacisnąć guzik "install theme" i już.

OS X łże jak Windows

To tyle, jeżeli chodzi o tzw. żywotność baterii. Najpierw mówią, że baterii wystarczy na 4:57. Myślisz, oh, yeah, prawie 5 godzin!. Potem się okazuje, że te prawie 5 godzin stopniało do nieco ponad 4 godzin, ale jak MacBook wyłącza się z powodu wyczerpania baterii po 3:40, to już wiesz, że OS X łże jak Windows.

Środa, więc będzie o środowisku

Czas przyszedł, żeby pochwalić się środowiskiem developerskim. Na linuksie było różowo, na Macu już tak różowo nie jest, ale wydaje mi się, że doszedłem wreszcie do stanu, że infrastruktura nie przeszkadza mi w programowaniu, a środowisko z czasem mi się zintegrowało. Więc jak wygląda to środowisko programisty aplikacji webowych?

TextMate

The missing editor. Vim jest bardzo dobry jako edytor. Jest tak dobry, że nie ma lepszych, ale to tylko edytor. TextMate to coś po środku między Vimem a Eclipse — to jeszcze nie środowisko zintegrowane, ale już dużo więcej niż edytor, głównie za sprawą bundles, czyli dodatkowych funkcji związanych z trybem edycyjnym. Na linuksie kiedyś podobnie bogate w funkcje było Kate, ale już nie jest, odkąd jakaś mądra głowa postanowiła wyrzucić z niego funkcję projektu. Do podobnego poziomu obecnie próbuje doszlusować PIDA, ale idzie to bardzo opornie (z tego co wiem, to z powodu braku siły roboczej — taka mała podpowiedź dla tych, co chcieliby się wykazać w jakimś projekcie). Dla łyżki dziegciu — PIDA ma hook do wykonywania automatycznych akcji przy zapisie bufora, za to TextMate ma okno wyboru pliku do otwarcia z inteligentnym podpowiadaniem (pod Cmd+T).

Od For fun and profit
Od For fun and profit

Virtualenv

Nie zna życia, kto nie służył w marynarce, a nie zasmakował programowania w Pythonie ktoś, kto nie potrzebował kiedyś mieć zainstalowanych dwóch różnych wersji tej samej biblioteki. Lub wręcz z podwórka Django: 0.96.x, 1.0.x i trunk równolegle. Zamiast robić dziwne myki z PYTHONPATH, tworzy się izolowane środowisko z oddzielnym interpreterem i oddzielną biblioteką. Żyć, nie umierać i tworzyć izolowane środowiska. Wygoda polega przede wszystkim na tym, że utworzenie takiego środowiska jest szybkie i nie wymaga szczególnych zabiegów.

Firebug

Tylko dla niego trzymam Firefoksa na Macu. Debugger JavaScriptu jest wielki. Można go określić jako missing plugin for Safari.

SQLite/PySQLite

Nie ma aplikacji webowych bez baz danych, a dzięki ORM można nie babrać się z ustawianiem MySQL czy innego PostgreSQL tylko po to, żeby sobie podevelopować. Dopóki aplikacja porusza się w obrębie tego, na co pozwala ORM, to nie ma powodu, żeby używać innej bazy danych, bo po prostu od strony storage nie widać różnic. Niezwykle bardzo cenię sobie to, że start z aplikacją jest tak prosty i później naprawdę nie ma dla mnie różnicy, na jakiej bazie stoi moja aplikacja (tak długo, jak długo mogę zrobić django-admin.py dumpdata --format=xml). SQLite to fajna, bezobsługowa baza danych, która ma wszystko to, co jest potrzebne w momencie developmentu.

Rzeczy, których jeszcze nie używam, ale pewnie będę używał w niedalekiej przyszłości

Pozostałe rzeczy mają znaczenie drugorzędne (albo nawet trzeciorzędne), bo są albo specyficzne dla moich upodobań (subversion, MacPorts), albo specyficzne dla moich upodobań (Django), albo dla odmiany specyficzne dla moich upodobań (jQuery). Jestem w stanie robić programy w każdym środowisku, ale z moich ostatnich doświadczeń wynika, że jedyny warunek jest taki, żeby to było środowisko przynajmniej trochę uniksawe. :)

Jestem mały, głupi i nazywam się port

Chodzi mi o program port, ten od MacPorts. Jego działanie jest dla mnie źródłem załamywania rąk nad głupotą. A właściwie lepiej byłoby to nazwać badziewnością sączącą się z samego źródła.

Wyoraźmy sobie sytuację (nie całkiem hipotetyczną): w nowej wersji biblioteki libsqlite3 poprawiony zostaje bardzo denerwujący błąd, który miał wpływ na działanie wielu programów. Błąd był bardzo denerwujący i chciałbym się go pozbyć także z moich aplikacji w Pythonie, które działają z PySQLite. Wpisuję więc w terminalu sudo port -R upgrade sqlite3 i...

Ile razy zostanie przebudowane subversion? Ile razy zostanie przebudowany Vim? Ile razy zostanie przebudowane gnutls?

Przykro mi, ale na 2 pierwsze pytania nie umiem udzielić odpowiedzi. Liczenie ile razy budowało się subversion zakończyłem po 15 razie, ale ile razy budował się Vim po 25 razie. Łącznie ponad 40 razy zostały zbudowane 2 programy, które ze sqlite3 nie mają nic wspólnego.

Gnutls budowało się dokładnie raz. O jeden raz za dużo. Bo jedynym pakietem, który od sqlite3 zależy w moich portach jest py25-sqlite3.

Mac - software

W poprzednim odcinku było o hardware, a teraz będzie o software. Jako zatwardziały linuksiarz mam nieco inne podejście do oprogramowania, niż użytkownicy Windows® (wolność, wolność!), z kolei system operacyjny i aplikacje traktuję całościowo, jako jeden ekosystem — to w odróżnieniu od bździarzy. Ot i tak (nie mamy pańskiego płaszcza i co nam pan zrobi?).

Mac OS 10.5.4 (Leopard) wygląda ładnie. A nawet bardzo ładnie. Widywałem równie ładne dekstopy, ale jedynie na screenshootach, a tu proszę, sam mam taki piękny dekstop... Ale dość żartów. Patrzenie na OS X sprawia przyjemność i tyle wystarczy o wyglądzie tego systemu.

Jeżeli chodzi o funkcje samego systemu, to wszystko jest na miejscu, ale wszystko już gdzieś widziałem, może w trochę mniej wyczesanym wykonaniu. Inna rzecz, że to wszystko współgra ze sobą jak najlepiej. Pomijając dziwactwa (jak brak pliku /etc/hostname i paru innych w /etc, takie specyficzne pojmowanie dobrych obyczajów uniksowych), to OS X 10.5.4 to przyjemny system z uniksowymi korzeniami i ładną graficzną nakładką. Czasem mogą denerwować wynalazki Apple, jak np hierarche /Library i /Applications, ale można się do tego przyzwyczaić (o polubieniu nie ma mowy, jeżeli ktoś wcześniej miał system z prostą i czytelną hierarchią FHS). Oczywiście, po kilku latach używania jednego środowiska nabywa się nawyków, których trzeba się oduczyć przy przesiadce na inne, ale nawet na linuksie przesiadając się z Gnome na KDE (czy dowolne inne środowisko desktopowe) trzeba się pozbyć jednych przyzwyczajeń i wyrobić sobie następne. Nikt tego nie lubi, więc pewnie dlatego wyrobieni linuksiarze takich rzeczy nie robią — narzekają na swoje środowisko, ale na inne się nie przesiadają bez absolutnej potrzeby. ;)

Niestety, częścią środowiska są aplikacje spoza samego systemu i tu już mało rzeczy można pochwalić. W większości to kupa gówna, za którą w dodatku trzeba zapłacić. Ale użytkownicy Windows prawdopodobnie to znają i są do tego przyzwyczajeni, więc nie robi to na nich wielkiego wrażenia. Linuksiarz będzie psioczył. Na szczęście mam dość specyficzne (czytaj: małe) wymagania, więc udaje mi się je zaspokoić minimalnym zestawem (terminal, edytor, przeglądarka, komunikator i odtwarzacz muzyki).

I na zakończenie o tym, co się przydaje: MacPorts to przeniesiona z FreeBSD idea portów. Z portów mam Pythona, Vima 7.2, ImageMagick, Subversion, bazaar i całą masę innych przydatnych narzędzi typu command line. Trochę denerwujące jest to kompilowanie ze źródeł, ale w sumie da się wytrzymać, dopóki komuś nie wpadnie do głowy zainstalowanie sobie czegoś, co zależy od KDE lub Gnome, bo to wtedy nocka z głowy.

Pomimo narzekań i niesmaku, nie mogę powiedzieć, żeby pod względem softu było źle. Jest mniej-więcej tak, jak na Windows®. W porównaniu do różnych dystrybucji linuksa to jest po prostu gorzej — mało zamienników, kiepska jakość oprogramowania 3rd party i wszechobecna pazerność. I choćby z tego powodu prywatnie Maca bym sobie nie kupił.

Na doczepkę

Na koniec wspomnę krótko o tym, co daje największą przewagę linuksowi. OS X nie ma community. To system zrobiony dla indywidualistów, kultywujący indywidualizm i nie mający żadnego przesłania społecznościowego. Komuś, kto przesiadł się z systemu, wokół którego jest vibrant community, Mac OS X będzie się wydawał systemem bez zaplecza społecznego, napędzanym jedynie pieniędzmi Apple. Przynajmniej ja mam właśnie takie wrażenie. Nie odpowiada mi to, ale powoli się do tego przyzwyczajam.

Mac - hardware (MacBook)

Po miesiącu używania Maca dorobiłem się już niejakiej biegłości (już prawie tańczy jak zagram), więc mogę sobie pozwolić na spisanie wszystkich plusów i minusów, jakie według mnie ma ta platforma (hardware i software, oddzielnie). A ponieważ jestem linuksiarzem, to platformę rozpatruję jako hardware, system operacyjny i aplikacje razem (nie doznałem bździarskiego ukąszenia rozdzielającego system operacyjny od aplikacji). W dwóch częściach postaram się spisać moje zachwyty i uwagi nad sprzętem (MacBook 2.4GHz MB403/A) oraz oddzielnie nad platformą (Mac OS X 10.5.4 + iLife, porty i aplikacje od niezależnych dostawców — wszystko, czego używam).

Jeżeli będę robił jakieś porównania, to tylko z moim prywatnym laptopem, HP Compaq 6510b z Ubuntu 8.04 na pokładzie. W tym odcinku będzie jednak tylko o sprzęcie.

Oto, co ma do powiedzenia Profil Systemu na temat mojego urządzenia:

  • Nazwa modelu: MacBook
  • Identyfikator modelu: MacBook4,1
  • Nazwa procesora: Intel Core 2 Duo
  • Prędkość procesora: 2.4 GHz
  • Liczba procesorów: 1
  • Łączna liczba rdzeni: 2
  • Pamięć podręczna L2: 3 MB
  • Pamięć: 2 GB
  • Prędkość magistrali: 800 MHz
  • Wersja Boot ROM: MB41.00C1.B00
  • Wersja SMC: 1.31f0

To teraz pochwalimy:

  • klawiatura jest po prostu boska, pisanie na niej jest niewysłowioną przyjemnością, ma wszystko dokładnie takie, jak powinna mieć (skok, opór, profil klawiszy) — aż chce się na niej pisać, jak dla mnie absolutny numer jeden tej maszyny;
  • matryca daje obraz jak żyleta, nasycony kolorami tak, że aż czasem kłują w oczy;
  • gładzik (touchpad) jest duży i odpowiednio czuły, przyjemnie się go używa pomimo tego, że (jak wszystko od Apple) ma tylko jeden guzik;
  • maszyna waży 2.24kg, przez co łatwo daje się przenosić z miejsca na miejsce i nie męczy ramion aż tak bardzo podczas noszenia z domu do pracy i z pracy do domu;
  • poliwęglanowe tworzywo, z którego jest zrobiona obudowa, jest przyjemne w dotyku i nie klei się nawet wtedy, gdy dotyka się go spoconymi rękami.

Ogólnie można powiedzieć, że komputer jest dobrze zaplanowany i dobrze wykonany, z dobrych materiałów i z użyciem dobrej jakości komponentów. Przyjemnie się go używa. To teraz przejdźmy do mankamentów (część z nich na pewno jest przypadkiem jednostkowym, który nie występuje w innych egzemplarzach).

  • przycisk gładzika jest źle spasowany z resztą gładzika i z obudową, efekt: naciskanie w środkowej części powoduje nieprzyjemny zgrzyt i dobrze słyszalne skrzypienie;
  • wyjście MiniDVI zamiast standardowego VGA powoduje, że trzeba nosić ze sobą specjalną przejściówkę (podobno standardowa przypadłość wszystkich Maców);
  • szczelinowy napęd DVD wydaje nieprzyjemne dźwięki przy uruchamianiu i wybudzaniu komputera;
  • grzeje się jak szatan, nieważne czy stoi na biurku, czy też trzymam go na kolanach, lewa strona rozgrzewa się bardzo wyczuwalnie, nieco łagodniej jest ze spodem.

Porównując do 6510b, daje się zauważyć lepszą jakość wykonania i większą dbałość o ergonomię. Wyposażeniem ten MacBook nie dostaje do 6510b (2 x USB + FireFire + MiniDVI to sporo mniej niż 4 x USB + FireWire + VGA + S-Video), ale przeznaczenie tych komputerów jest trochę inne, więc nie można mieć mu tego za złe. Prawdopodobnie też mniejsza przestrzeń w obudowie (a przez to gorsza wentylacja) powoduje, że mój MacBook jest odczuwalnie cieplejszy od HP 6510b. Na szczęście to grzanie nie czyni go nieużywalnym.

Co do matrycy, to są one diametralnie różne (HP ma matową 14.1 cala, MacBook ma błyszczącą 13.3 cala), pomimo tej samej rozdzielczości standardowej. O ile ta w MacBooku lepiej odwzorowuje barwy, to ta w HP lepiej nadaje się do pracy w warunkach dobrego oświetlenia (biuro), bo nie widać na niej refleksów. Pod tym względem dałbym remis, bo naprawdę trudno mi się zdecydować, co ważniejsze (lubię zarówno dobre odwzorowanie barw, jak i komfort pracy w różnych warunkach).

HP Compaq 6510b waży więcej (2.4kg). Wydawało by się, że 200g to nie jest tak dużo, ale jest to wyczuwalna różnica. Dodatkowo zasilacz od HP jest cięższy, co w sumie daje całkowitą masę zestawu około 2.75kg. MacBook z zasilaczem MagSafe 60W waży wyczuwalnie mniej. To chyba zasługa mniejszej matrycy i mniejszej ilości komponentów, ale faktem jest, że HP potrafi przygiąć do ziemi, a noszenie torby z nim przez 2 godziny można nazwać torturą. Wybierając sobie na początku roku laptopa zastanawiałem się również nad MacBookiem oraz innymi laptopami z matrycą 13.3 cala, ale wybrałem takiego z większą. Mądrzejszy o dzisiejsze doświadczenia nie podjąłbym takiej decyzji, wybrałbym coś mniejszego.

W sumie nie dziwi mnie, czemu ludzie lubią MacBooki. Te komputery są sympatyczne, w takim rozumieniu, jakiego do komputerów raczej się nie stosuje — są sympatyczne podobnie do elementów wyposażenia wnętrza czy rzeczy mające trochę rozrywkowy charakter (trudno mi to opisać...). Mam wrażenie, że projektował to nie projektant komputerów, ale jakiś projektant sprzętu AGD. Od strony hardware można stwierdzić, że Apple zrobiło dobry komputer.

A o software (łącznie) napiszę niedługo...

TextMate jest niedorobione!

Kto używał Vima ten pewnie zna ten skrót: znak "gwiazdki" (*) wyszukuje słowo pod kursorem w dokumencie. I co powiecie? W TextMate, tak zajebistym skądinąd edytorze, nie ma czegoś takiego, jak "Find word at cursor".

Żenada.

Wsparcie dla iRiver H10Jr. na Macu

Oficjalnie nie ma. Nieoficjalnie jest, w postaci biblioteki pmplib, ale skompilowanie jej pod OSX to straszliwy ból tyłka. Jak się to robi:

  1. zainstaluj z portów pakiety libid3tag, libogg i libvorbis;
  2. ściągnij źródła ze strony pmplib i rozpakuj je gdzieś, od tej pory $ROOT będzie oznaczać wypakowany katalog ze źródłami pmplib;
  3. w pliku $ROOT/lib/pmp_iriverplus3/util.c zmień wpis #include <malloc.h> na #include <sys/malloc.h> (na początku pliku);
  4. skonfiguruj używając polecenia: ./configure --disable-js --with-libiconv-prefix=/opt/local --with-id3tag-header=/opt/local/include --with-id3tag-library=/opt/local/lib --with-ogg-prefix=/opt/local --with-vorbis-prefix=/opt/local;
  5. zbuduj i zainstaluj: make && sudo make install;
  6. sprawdź czy easypmp działa.

Mnie działa, choć nie bez problemów. Pomimo odmontowania H10 przez cały czas pokazuje, że jest busy, żeby go odzyskać trzeba kilkakrotnie wyciągać z niego wtyczkę i ją wkładać (co czasem powoduje ponowne zamontowanie).

Na szczęście mój śliczny nowy Samsung YP-T10 przyjedzie do mnie już za kilka dni.

Mac i Python, Python i Mac

Jak wiedzą wszyscy (albo wszyscy w mieście), Apple dostarcza jakiegoś Pythona ze swoim OSX. Mogłoby to wskazywać, że Python jest first class citizen, jeżeli chodzi o języki programowania na OSX, podobnie jak jest to w przypadku Ubuntu. A figę (chcialem napisać bardziej dosadnie, ale podobno nieletni czytają)!

Robienie aplikacji na Maka w Pythonie to droga przez mękę. Serio. PyObjC obecnie oficjalnie jest w wersji, która ledwo wspiera poprzednią wersję OSX (10.4), zresztą pisanie w tym czymś przypomina programowanie aplikacji na Win32 używając PyWin i MFC. A chyba nawet gorzej. Z normalnych ramówek GUI są oczywiście wszystkie, ale w takim przypadku bez Py2App nie ma co się do tego zabierać. Normalnie jak na Windows.

Która to konkluzja doprowadza mnie do szerzej ujmującej makowo-osxową rzeczywistość konstatacji — ogólnie Mac jest jak Windows, tylko trochę bardziej. Odczuwam taki sam brak wolności (w sensie free speech) i podobne podejście ludzi, którzy robią oprogramowanie na Maki — byle tylko zarobić i nic nie pokazać. Na linuksie może nie ma aż tak wyczesanych efektów wizualnych, może też nie wszystkie ficzery tak ładnie działają (zamknij klapę laptoka, a się uśpi, podnieś, a się obudzi — i WiFi przeżyje), ale pod względem aplikacji skierowanych na produktywność po prostu nie ma porównania. Instalujesz Ubuntu i masz dosłownie wszystko, czego potrzebujesz, a to, czego jeszcze nie masz, jest na odpalenie apt-get install.

Co doprowadza mnie do kolejnej konkluzji, że moim kolejnym prywatnym komputerem nie będzie Mac, tylko jakiś fajny normalny laptop z matrycą 13'4. Jak na przykład twoja Toshiba, Smoku...

Upierdliwości OSX

Lista tego, co mnie wpienia w OSX (i nie wiem, dlaczego te barany z Apple zrobiły to w ten sposób):

  • ustawienie nazwy hosta nie działa w sieciach z DNS, moja wybrana nazwa (owca), jest nadpisywana za każdym razem, gdy DHCP przydzieli mi nowy adres; rozwiązanie: dopisać HOSTNAME w pliku /etc/hostconfig;
  • w Finderze (i w innych aplikacjach z tego co zauważyłem), zarówno katalogi jak i pliki są sortowane identycznie (nie da się ustawić sortowania katalogów przed plikami); rozwiązanie: jakiś hack z nazwą typu obiektu, nie wiem, czy działa;
  • nie wiedzieć czemu, jasność matrycy nie zmniejsza się automatycznie przy odłączeniu zasilania sieciowego; rozwiązanie: brak;
  • ikony w menu aplikacji albo są, albo ich nie ma, nie można mieć czegoś takiego, jak działa PowerManager w Gnome (ikona pojawia się tylko podczas ładowania baterii lub pracy na baterii, a znika podczas pracy na zasilaniu sieciowym); rozwiązanie: brak.

Ale ogólnie nie mogę powiedzieć, żeby było źle. TextMate ratuje Maca przed kompletnym pogrążeniem. ;)

Ujarzmiam OSX

Mam już dobrego Pythona, mam działające Django, mam jakiś edytor, za jakiś czas przyzwyczaję się do klawisza japko i nieco innego ułożenia klawiszy... Zostało mi jeszcze przewalić trochę muzyki z mojego poprzedniego komputera i będzie można żyć.

Parę rzeczy zaczęło mi się nawet podobać: usypia i budzi się momentalnie (wifi przeżywa uśpienie), ładuje się szybko i bateria starcza na długo.

Pierwsze chwile z Mac OSX

Nie jestem zachwycony — tyle mogę powiedzieć po około godzinie z tym systemem. Działa, więc nie jest źle, ale nie rozumiem, czym się ludzie tak bardzo jarają.

Wizualnie całkiem ładny, ale nie powala na kolana (mój zwyczajowy ascetyczny desktop Gnome jest równie ładny, jeżeli nie ładniejszy). Efekty mogły wzbudzać emocje kilka lat temu, ale teraz takie rzeczy to ma nawet Vista, za przeproszeniem.

A na koniec to, co mnie doprowadza do białej gorączki — prawie wszystko trzeba kompilować ze źródeł, w efekcie zainstalowanie prostego Midnight Commandera trwało prawie 15 minut. Już się boję wpisać sudo port install subversion, bo do rana się nie doczekam.

Technikalia

  • XP-Dev.com: Free Subversion Hosting
  • A Django joint.
  • Python powered