second gate studio blog

Autorem tego bloga jest zx. Na stronie zajmuję się szeroko pojętym user-experience i takoż pojętym designem. Piszę o technologii, pokazuję rzeczy zaprojektowane z wyczuciem, dbałością o szczegóły i szukam inspiracji w każdej możliwej dziedzinie. Kontakt.

O czym pamiętać tworząc formularze

Ostatnio miałem styczność z generatorem wniosków o dofinansowanie w ramach jednego z projektów Unii Europejskiej. Całość z założenia ma za zadanie ułatwić pracę zarówno składającym taki wniosek, jak i tym, którzy całość potem muszą przeanalizować. Wiadomo - sztywne ramy, to mniej zastanawiania się nad duperelami.

Przyszło mi spędzić długie godziny przy wypełnianiu kolejnych elementów formularza i jednocześnie, przy każdym przeładowaniu strony, wieszałem psy na twórcach - firmie S&T, która to niby wie co robi.

Dobra, przesadzam. Formularz faktycznie nie jest najgorszy. Pomoc mówi, że całość działa tylko na IE. Bzdura. Wszystko jest tak bajecznie proste, że działa bez problemów na najnowszej Operze. Nie przyszło mi nawet do głowy sprawdzać strony na innych przeglądarkach, skoro pomoc mówi wyraźnie, że trzeba mieć IE. Więc - jeśli strona działa na innych przeglądarkach, nie pisz, że działa tylko na jednej. Nie muszę mówić o ile wygodniej pracuje mi się z formularzami na Operze, gdzie wszystkie skróty klawiszowe skonfigurowałem pod własne wymagania, dzięki czemu bez problemów mogę nawigować, nawet skomplikowanymi stronami, intuicyjnie. Całe szczęście, że w którymś momencie przypadek zadecydował, że formularz załadował się w mojej ulubionej przeglądarce.

Wciąż nie mogę rozgryźć, ile autor formularza faktycznie potrafi. Z jednej strony mamy naprawdę przystępnie napisaną pomoc (tzn. Jak skonfigurować IE), mamy pola, które rozszerzają się automatycznie, jeśli wymagają tego dane. Z drugiej strony - i to właśnie główny wątek tego postu - brakuje prostego JavaScriptu.

Odpowiedź na pytanie zadane w tytule - przy formularzach używaj JavaScript! Nie każę wam zapoznawać się z samym generatorem, powiem więc ogólnie. Załóżmy, że formularz ma opcję dodawania nowych pól. Załóżmy też, że potrzebujemy takich pól około 50. Każdy, logicznie myślący webmaster, już wie, że trzeba do tego użyć właśnie JS, jednak twórca logiczne myślenie zostawił najwyraźniej w domu. Wyobraźcie sobie, że przy dodawaniu nowego pola, przeładowuje się cała strona (te wstawiane są najwyraźniej przy użyciu języka server-side). Wyobraźcie sobie, że serwer działa paskudnie wolno. W praktyce to wyglądało tak: wpisuję dane w jedno pole; naciskam przycisk dodający kolejne pole; strona się przeładowuje; szukam miejsca w którym ostatnio byłem (bo w końcu po przeładowaniu wróciłem na początek). Ludzie! Ratujcie! Tych dodatkowych pól musiałem wstawić na prawdę dużo. A przecież wystarczyłby prosty skrypt.

Do tego brakuje takich opcji jak aktywne podliczanie sum (całość również dopiero po przeładowaniu, liczone przez server-side), czy walidacja. Więc, twórcy formularzy webowych, pamiętajcie - JavaScript to obowiązkowe udogodnienie!

Informacje o stowarzyszeniu freelancerów i rozpoczęcie rekrutacji najprawdopodobniej zaraz po długim weekendzie.

Prawdziwe stacks w Windows

stacks na Windows Vista

OSX Leopard wzbogacił się o ciekawą funkcję stacks, dzięki której zyskujemy szybki dostęp do dowolnego katalogu prosto z docka. Po wielu prośbach i próbach powstał w końcu całkiem przyjemy odpowiednik tegoż przeznaczony dla systemów Windows.

Na początek potrzebujemy jakiegoś docka, bo w końcu ów funkcjonalność jest rozszerzeniem właśnie tego elementu interfejsu. Swego czasu powstało kilka dobrych projektów mających udostępnić dock dla użytkowników systemu Microsoftu. Z tego co zdołałem się dowiedzieć, stacksy da się uruchomić na Rocket Dock, RKLauncher, Object Dock i Y'z Dock (myślę jednak, że i spora część pozostałych sobie poradzi). Sam używam tego pierwszego, choć bez wyraźnego powodu. Bawiłem się również z pozostałymi i nie dopatrzyłem się znaczących różnic (może poza Object Dock, który wydaje mi się zbyt kobylasty). ;)

Gdy już wybraliśmy i zainstalowaliśmy któryś z wymienionych programów, pora poszerzyć jego możliwości za pomocą pluginu Stacks Docklet. Pobieramy archiwum z plikiem i jego zawartość wypakowujemy do odpowiedniego katalogu. Z tego co pamiętam większość docków przyjęła za standard katalog nazwany Docklets (znajduje się w folderze z programem) i tam właśnie pliki z archiwum trzeba umieścić.

Dalsze kroki są już uzależnione od wybranego programu, więc skupię się tutaj na Rocket Dock, jako, że mam go pod ręką. Klikamy gdzieś na dock prawym przyciskiem myszy i z menu Add Item wybieramy Stack Docklet. Pojawi się domyślna ikona dla pustego stack. Prawoklik na nią i z menu wybieramy Icon Settings. W zakładce Current docklet znajdują się ustawienia dla konkretnej ikony - tutaj wybieramy folder, który ma być wyświetlany i ustawiamy ikonę. Mamy również możliwość zdecydowania jak będą sortowane pliki i wybrania typu wyświetlania samego stack. Ten może przybrać formę siatki (grid), lub listy (fan). Ewentualnie można zdecydować się na typ automatyczny, który - na podstawie ilości plików do wyświetlenia - ustawi odpowiednią opcję. Zakładka Global settings to ustawienia dotyczące wszystkich stack jakie utworzymy. Kilka opcji powiązanych z wyświetlanymi tekstami i czcionkami.

Całość nie jest tak prosta w ustawieniu, jak to ma miejsce w systemie Apple, jednak stanowi miły (i funkcjonalny) dodatek do windowsowego interfejsu. Wszystkim posiadaczom Leoparda zazdroszczę, więc od czasu do czasu chętnie sobie coś z OSX przenoszę do mojego systemu. ;)

Użyteczne dźwięki powiadamiania

Swego czasu wszystkie dźwięki systemowe miałem wyłączone. Nic tylko przeszkadzały - bo w końcu po co mi dźwiękowy alert o błędzie, skoro na środek ekranu i tak wyskakuje okienko z komunikatem? Trzeba przyznać, że spora część windowsowych dźwięków bardziej denerwuje niż pomaga.

Co innego dźwięki programów dodatkowych. Lubię wiedzieć, kiedy Opera skończy pobieranie pliku, kiedy µTorrent ściągnie film, czy usłyszeć, że nadchodzi nowa wiadomość przez IM. O ile w przypadku tego ostatniego wystarczy mi zwykłe piknięcie (które znalazłem na stronie dodaktów do Miranda-IM), o tyle jeśli chodzi o pierwsze dwa programy, pikanie to za mało. W końcu ile rodzajów piknięć i stuknięć można zapamiętać i kojarzyć je z daną akcją?

Dlatego też potrzebowałem czegoś innego. Czegoś, co powie mi co właśnie się stało. Na początku myślałem, żeby nagrać siebie (coś w stylu pobieranie zakończone), jednak szybko okazało się, że całość nie brzmi dość dobrze. Dopiero potem przypomniałem sobie, że istnieje coś takiego jak syntezatory mowy. Oczywiście chciałem wybrać najlepszy, a że niezbyt mi się podobają te metalowo-techniczne rodem z filmów SF, zdecydowałem się na IVONĘ. Całość brzmi przyjemnie i naturalnie. Do wyboru dwa głosy polskie (męski i żeński), po jednym angielskim i rumuńskim.

Posiadam system w języku angielskim, więc zdecydowałem się na Jennifer (głos angielski). Całość sprowadza się do wpisania żądanego tekstu i zapisania gotowego pliku .mp3 na dysk. Potem trzeba tylko przydzielić go do konkretnej akcji w programie (czasami ewentualnie przekonwertować na WAV, bo nie wszystkie programy trawią empetrójki).

Teraz, gdy Opera zakończy pobieranie słyszę Opera download complete, a gdy µTorrent zapisze plik na dysku słyszę komunikat torrent downloaded. Proste, przyjemne i - co najważniejsze - użyteczne. Co prawda gdy dźwięki nałożą się na siebie (przyjdzie nowy e-mail, Opera coś pobierze i ściągnie się torrent) nie brzmi to już tak dobrze, ale póki co zdarzyło mi się to raz, więc jestem w stanie przeboleć.