Prezentacja o X11

26 Mar 2009 18:37

Dzisiaj wygłosiłem w ramach Seminarium Informatycznego u mnie na wydziale referat o X11. Prezentacja, która była tłem mojej wypowiedzi zamieściłem w serwisie SlideShare. Zapraszam do obejrzenia!

Comments: 1

Koncert Opetha W Warszawie

24 Mar 2009 15:01

21 marca 2009 byłem z moją narzeczoną na koncercie skandynawskiej progresywno-ciężko-metalowej formacji Opeth. Opiszę tutaj moje wrażenia z koncertu.

Opeth — zespół popisywał się ciekawymi solówkami, choć nie zawsze zgodnymi z wersjami "oryginalnymi". Wokal — zarówno czysty jak i growl — w porządku. Frontman rozmawiał z publicznością, cieszył się, że jesteśmy świetną publicznością (śpiewaliśmy Sto Lat, Happy Birthday i skandowaliśmy "Opeth, Opeth").

Te wszystkie sprawy niestety nie są w stanie zatuszować niemiłego wrażenia po tym jak zespół skończył. Granie poniżej 2 godzin chyba nie należy do miłego tonu, prawda?

Miejsce — warszawski klub studencki Stodoła. To chyba nie najlepszy wybór dla tego koncertu. Chętnych do posłuchania było sporo — o wiele więcej niż miejsca. Wynikiem była niesłychana ciasnota, która nie sprzyja miłym wrażeniom wizualnym, czy zapachowym. Dość powiedzieć, że niektórzy przysłuchiwali się koncertowi spoza głównej sali.

Oprawa świetlna — dające po oczach stroboskopy nie należą do moich ulubionych "przypraw" koncertów. Poza kilkoma światełkami w różnych kolorach nic ciekawego się nie działo.

Dźwięk — podejrzewam, że jak na klub studencki, jakość odbioru dźwięku była całkiem niezła. Można jednak było oczekiwać dużo więcej.

Cena — wszystkie mankamenty, które wymieniłem były całkowicie do zaakceptowania, w przypadku zwykłego lokalnego koncertu takiej czy innej grupy muzycznej związanego z wykorzystywaniem dostępnych zasobów (takich jak sala, sprzęt) bez szukania szczególnych warunków.

Jednak przy cenie 125 złotych za osobę, spodziewać by się można większego przyłożenia organizatorów. Za pomysł sprzedawania większej ilości biletów niż dostępnych miejsc mam serdeczną ochotę nakopać do dupy tym, którzy są za to odpowiedzialni.

Podsumowując zatem, uważam pieniądze wydane na koncert za stracone.

Ile mógłbym zatem wydać na koncert takiego pokroju? 25, 40 złotych, noo, 50 złotych powiedzmy, może 55. Przy czym przy tej ostatniej cenie bym się bardzo mocno zastanawiał.

Całe szczęście, że poza koncertem, wyjazd do Warszawy obejmował również spotkanie Narliego, wizytę w parku Wilanowskim, a również w centrum handlowym. Tam widzieliśmy superaśną sukienkę.

Comments: 3

Ewolucja przeglądarek, czyli o tabach

14 Mar 2009 10:30

Nie będzie dzisiaj o żadnych standardach, wsparciach dla CSS-ów i innych bzdurach, tylko o rzeczy najważniejszej dla użytkownika. Czyli o interfejsie użytkownika. Konkretnie o kartach (tabach). W reszcie posta będę używać słowa tab.

Historia

Kiedyś nie było kart. Przeglądarki miały swoje okno, w którym wyświetlały jedną stronę. Jeśli chciałeś otworzyć dwie strony, musiałeś otworzyć dwie przeglądarki. (Nie będę się zagłębiał w różnice pomiędzy dwoma oknami przeglądarki, a dwoma przeglądarkami.)

Miało to swoje plusy. Można było otworzyć sobie dwie strony "side by side", czyli jedna obok drugiej i np. porównywać dwa teksty.

Potem, pewnego magicznego dnia, pojawiła się przeglądarka, która otwierała strony w tabach! Zaraz pod wszystkimi paskami narzędziowymi, a nad wyrenderowaną treścią strony pojawił się (czasami znikający) pasek tabów. Niczym klon paska okienek z systemu okienkowego, pokazywał otworzone w przeglądarce strony, pomiędzy którymi można się przełączać.

Technologia wnosi takie ciekawe i ważne opcje jak:

  • otwieranie linków w nowym tabie zamiast w nowym oknie
  • otwieranie nowych tabów w tle — niech się załadują, zanim skończę czytać aktualną stronę — bardzo sprytne i przydatne
  • minimalizuje chaos na pasku zadań — po co osobny kwadracik dla każdej otworzonej strony

Teraźniejszość

Każda ważna przeglądarka posiada taby. Nawet Internet Explorer w wersji 7 ma taby. Ale ewolucja tabów idzie krok naprzód. Przeglądarki Chrome i Safari 4 posiadają taby na samej górze okna:

google-chrome-tabs.png

Czy powinno to kogoś dziwić? Według mnie nie, ponieważ taby zmieniają nie tylko wyświetlaną stronę, ale również adres wyświetlany w pasku adresu (URL) oraz znaczenie przycisków wstecz i dalej (bo cofamy się tylko w danym tabie). Oznacza to, że taby przełączają nam kontekst prawie całej przeglądarki.

Przyszłość

Skoro taby przełączają kontekst całej przeglądarki, to co byśmy powiedzieli na wyodrębnienie tabów do osobnych okien?

Ups! Przecież od tego wyszliśmy i myśleliśmy, że taby to krok naprzód, więc dlaczego mielibyśmy się cofać?

Taby odegrały ważną (jeśli nie bardzo ważną) rolę w systemach operacyjnych. Dziś znajdujemy je nie tylko w przeglądarkach, ale również w edytorach tekstu (GEdit, Kate), narzędziach developerskich (Eclipse), terminalach (Konsole, Gnome Terminal) oraz w innych programach.

Czy rola tabów w różnych aplikacjach jest inna? Według mnie nie. Zawsze chodzi o to, żeby (podobnie jak w przeglądarkach):

  • grupować podobne zadania
  • oszczędzić chaosu na pasku aplikacji
  • pozwolić na szybkie przełączanie pomiędzy tabami (w odróżnieniu od przełączania między aplikacjami)
  • pozwolić na otwieranie czegoś w tle (bez otwierania wkurzających okienek)

Tylko dlaczego w każdej z wymienionych przeze mnie aplikacji taby realizowane są inaczej? Firefox ma taby nad stroną, Chrome zupełnie na górze, Safari jako fragment paska tytułowego aplikacji, Konsole na dole strony, Kate jako listę plików po lewej stronie…

Proponuję, aby istotnie przenieść ideę taba na poziom zarządzania okienkami, a nie poszczególnych aplikacji.

Moje postulaty dla menedżerów okien:

  • wyróżnienie aplikacji (czyli to, co teraz jest oknem) i jej okien (czyli to co teraz jest tabem)
  • mechanizm otwierania nowego okna w tle
  • możliwość prostego przełączania się między oknami jednej aplikacji w odróżnieniu od przełączania się między aplikacjami

W tym miejscu przychodzi mi do głowy jeszcze jedna funkcjonalność tabów, która bywa różnie implementowana w różnych aplikacjach: możliwość odrywania tabów do osobnych okien i późniejszego ich łączenia.

W Firefoksie jeśli dobrze się rozeznałem takiej możliwości nie ma, w Konsole możemy odrywać taby, ale nie możemy ich z powrotem łączyć, czyli nie ma pełnego mechanizmu przenoszenia tabów pomiędzy oknami danego typu.

Zamiast kazać się wysilać twórcom aplikacji, zróbmy to raz a dobrze! Dodajmy do listy postulatów dla menedżerów okien następujący punkt:

  • swobodne przenoszenie okien pomiędzy aplikacjami tego samego typu

Implementacja

Z ciekawością obserwowałem możliwość grupowania okien i późniejszego przełączania się między nimi na zasadzie tabów w Compizie.

Brakuje natomiast jednej bardzo istotnej rzeczy, która pozwala zastąpić poszczególne mechanizmy tabów w aplikacjach jednym mechanizmem z Compiza wyjętym.

Otworzenie nowego okna przez okno z danej grupy okien powinno powodować automatyczne przejęcie tego okna przez tę grupę. Musimy sami "doklejać" nowo-otwarte okna do grupy. I to jest główny ból tego rozwiązania. Ciekaw jestem jak z punktu widzenia protokołów i bibliotek można zaimplementować moje postulaty oraz jak daleko posunięte zmiany musiałyby nastąpić, żeby to dało się zrealizować.

Czy warto?

No i pozostaje pytanie, czy warto. Zacznę od wad:

  • prawdopodobnie potrzeba przebudowy (lub rozbudowy) kilku elementów systemu okienkowego (takich jak menedżery okien i API do nich)
  • konieczność aktualizacji aplikacji, żeby korzystały z natywnych tabów, zamiast ze swoich implementacji
  • być może utrata pewnych możliwości (takich jak "podczepienie" swojego menu do zakładek) przez aplikacje

Zalety:

  • zunifikowanie tabów w całym systemie (!)
  • możliwość przebudowy mechanizmu "grupowania podobnych zadań" na pasku zadań — teraz wiemy dokładnie jakie zadania są powiązane — być może będzie ktoś odważny, kto wprowadzi dwupoziomowy pasek aplikacji
  • znaczne uproszczenie kodu aplikacji
  • łatwiejsze pisanie nowych aplikacji (mechanizm tabów mamy od razu za darmo, nie musimy się tym przejmować, ani zastanawiać się czy będzie kiedyś potrzebny)
  • możliwość połączenia zmiany okien danej aplikacji z pewnym efektem graficznym
  • możliwość prezentowania wszystkich okien danej aplikacji naraz tak jak to robi Safari dla tabów (tylko, że u nas to będzie za friko i dla każdej aplikacji):

safari4.png

Czekam na Wasze opinie!

Comments: 5

O Zend Framework

11 Mar 2009 19:34

Pewien czas temu, mówiłem ciepłe słowa o Zend Framework. Okazuje się, że nie jest tak różowo jak się wydaje. A wyrażeniem kluczowym jest tutaj:

64 bit

Na 64 bitowym systemie, z Zend Framework jest wiele problemów. Wymienię ich kilka:

Zend_Search_Lucene

Już taki prosty kod, uruchamiany na 64-bitowym systemie powoduje nieskończone pętle i przekraczanie limitu pamięci:

<?php
 
require_once("Zend/Search/Lucene.php");
$index = Zend_Search_Lucene::open('/path/to/index');

Oczywiście pierwsze co robimy, żeby korzystać z indeksu, to go otwieramy, więc ten moduł (Zend_Search_Lucene) staje się zupełnie niezdatny do użytku.

Co ciekawe, problem jest zgłoszony na bug-trackerze ZF. Doszedłem co trzeba zrobić, żeby rozwiązać problem, wrzuciłem na bug-trackera gotowego (mniej lub bardziej) diffa, ale nikt się nie przejął ani błędem, ani rozwiązaniem.

Zend_Db

Jednym z ważniejszych elementów zawartych w Zend Framework, jest warstwa dostępu do bazy danych. Niestety na 64 bitowym systemie, framework ma jakieś problemy z ograniczaniem wyników przy użyciu metody limit. Nakazanie wyświetlenia rekordów począwszy od rekordu 0, wygenerowało mi zapytanie, które kończyło się na:

LIMIT 98382101, 20;

Powinno być:

LIMIT 0, 20;

Głupia sprawa. Może to poprawili w nowszej wersji, może nie. Nie zgłębiałem tego.

Zend_XmlRpc_Server

Ostatnio pracując nad Wikidot API natrafiłem na paskudny i ukryty błąd w komponencie serwera XML-RPC Zend Framework.

Wszystko niby działa, ale wołanie przez klienta XML-RPC funkcji system.methodHelp, czy system.methodSignature kończy się błędem niedopasowania rządanej metody to sygnatur znanych metod. Na 32 bitach wszystko działa.

Podsumowanie

Zend Framework może się wydawać fajny (mi się wydawał), ale uważajcie mocno przy przenoszeniu kodu z 32 bitów (np. na laptopie) na 64 bity (np. na serwer). Jest SPORO bugów w tym naprawdę dokuczliwe, związane z Zend_Db.

Comments: 1

page 1 of 3123next »
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License