10/08/2008Cementownia Jaworzno

Powstała w 1885 roku. W latach swej świetności zatrudniała ok. 1800 osób i produkowała 380 tys. ton cementu rocznie. Przetrwała zmiany właścicieli, dwie wojny światowe… przestała produkować cement dopiero na początku lat osiemdziesiątych. W bezpośrednim sąsiedztwie tego, co z cementowni zostało, na osiedlu wybudowanym specjalnie na potrzeby fabryki, żyją do dziś byli pracownicy. Wyglądają przez okno i widzą jak niszczeje historia ich życia, życia ich ojców i dziadków.

09/07/2008Sierotki, czyli problem wiszących spójników we Flashu

Wiszący spójnik, zawieszka, sierota – nazwa błędu składu tekstu polegającego na pozostawieniu na końcu wersu osamotnionego jednoliterowego słowa (najczęściej spójnika lub przyimka, np. “a”, “i”, “o”, “u”, “w”, “z”). Reguła zabraniająca wiszących spójników dotyczy zarówno tekstów ciągłych, jak i pojedynczych napisów wielowierszowych (np. tytuły, podpisy). Zgodnie z Polską Normą pozostawianie wiszących spójników jest dopuszczalne tylko przy bardzo wąskim łamie (np. gazetowym). [..] (Wikipedia).

Problem sierotek przewija się przy pracy nad stronami internetowymi od bardzo dawna. Jest wiele rozwiązań tego problemu w php (skrypty, pluginy WordPress, itp.), natomiast nie spotkałem się jeszcze z rozwiązaniem dla ActionScript (3.0). Okazało się ono stosunkowo proste, jednak nie możliwe do zastosowania we wszystkich przypadkach. Podobnie jak w html, wstawiamy pomiędzy spójniki a następujące po nich wyrazy, znaki twardej spacji ( ) w miejsce spacji miękkich. Pole tekstowe musimy wypełniać jako pole html (htmlText), gdyż inaczej ciąg   nie zostanie potraktowany jako twarda spacja. Wystarczy do tego proste wyrażenie regularne w AS3:

poletekstowe.htmlText = str.replace(/\s+([aiouwzAIOUWZ])\s+/g, ” $1 ”);

Wszystko działa znakomicie w przypadku korzystania z fontów systemowych (use device fonts). Niestety Flash nie embeduje znaku twardej spacji w przypadku pól z antyaliasem. Być może dało by się ten problem jakoś rozwiązać, np. łamiąc automatycznie w odpowiednich miejscach wiersze znakiem końca linii, jednak uniemożliwiło by to justowanie tekstu. Tak więc jeżeli przewidujemy w naszej flashowej aplikacji problem wiszących spójników, od razu nastawiajmy się na korzystanie z fontów systemowych.

Aby uniknąć konieczności zapamiętywania czy też szukania powyższego wyrażenia regularnego, napisałem prostą klasę w AS3. Klasa przenosi do nowej linii litery a, i, o, u, w, z. Oto przykład uzycia.

import com.woszkowski.tools.StringTool;
poletekstowe.htmlText = StringTool.suppressSingleLetters(str);

Pliki do pobrania:
StringTool - klasa do usuwania wiszących spójników oraz przykład uzycia

Linki:
skaldy.com - pomoc w rozwiązaniu problemu
sierotki wordpress plugin - plugin do wordpressa autorstwa Artura Kępy

23/03/2008Flash Biuletyn II

Kolejna porcja wiadomości i ciekawostek ze świata Flasha. :)

Stereoskopia
Okulary do oglądania anaglifów A konkretnie anaglify, czyli wyświetlanie specjalnie przygotowanych obrazów i oglądanie ich za pomocą okularów, dających wrażenie przestrzeni trójwymiarowej. Efekt ten możemy bardzo łatwo uzyskać za pomocą Papervision3D lub innego engine’u 3D. Renderujemy obraz z dwóch przesuniętych względem siebie w poziomie kamer, kopiujemy kanał czerwony jednej z nich, kanały zielony i niebieski drugiej i powstałe obrazy nakładamy na siebie. Istnieją trzy rodzaje okularów: czerwono-niebieskie, czerwono-cyjankowe i czerwono-zielone. Nie wiem jeszcze które nadają się najlepiej do oglądania tworzonych w ten sposób obrazów, ale już zostały zamówione, więc wkrótce własne przykłady i wyniki eksperymentów. :)

Tymczasem przykłady innych:
http://mrdoob.com/#/56/
http://mrdoob.com/#/57/
http://lab.benstucki.net/archives/AnaglyphTest/anaglyphtest.swf

YouTube Flash API / filmy w wysokiej jakości
YouTube stworzył API dla Flasha oraz Javascriptu , pozwalające na zamieszczanie na swoich stronach filmów bez standardowego playera. Nawigację możemy teraz tworzyć we własnym zakresie. Najważniejsze, że “chromeless player” pobierany jest spod adresu gdata.youtube.com, gdzie znajduje się plik crossdomain.xml, zawierający upragniony wiersz <allow-access-from domain=”*”/>. :) Oto przykład, że to wszystko na prawdę działa:
http://woszkowski.com/ytapi/

Inną nowością od YouTube są filmy w lepszej jakości. W ustawieniach konta pod pozycją Jakość odtwarzania filmów wideo (http://pl.youtube.com/video_quality_settings) możemy włączyć opcję “Mam szybkie połączenie. Zawsze odtwarzaj film wideo z wyższą jakością, jeżeli jest dostępna.“. Od tego momentu filmy będą odtwarzane z większym biterate’em oraz z większą częstotliwością próbkowania dźwięku. Jednak nadal będzie to kodowanie Flash Video. YouTube oferuje również nieoficjalnie filmy w standardzie H.264. Do ich oglądanie potrzebujemy Flash Playera w wersji 9.0.115. Aby oglądać filmy w tym standardzie, wystarczy na końcu adresu dodać “&fmt=18″. Oto przykłady tego samego filmu w różnych jakościach:
Jakość standardowa: http://www.youtube.com/watch?v=RZYIfUdIyfs (pod warunkiem, że w ustawieniach YT nie ustawiliśmy domyślnie wysokiej jakości)
Jakość wysoka: http://www.youtube.com/watch?v=RZYIfUdIyfs&fmt=6
Kodek H.264: http://www.youtube.com/watch?v=RZYIfUdIyfs&fmt=18

Yahoo Maps Flash API
Tym razem komponent dla Flex Buildera. Yahoo wypuściło komponent oraz API do swoich map. Umożliwia on bardzo łatwe kontrolowanie mapy z poziomu AS3. Warto zwrócić uwagę na to, że Yahoo Maps są już bardzo dokładne dla naszego regionu i nic nie stoi na przeszkodzie, żeby częściej z nich korzystać.

Umap
We wcześniejszym biuletynie opisywałem komponent G Map, umożliwiający obsługę Google Maps z poziomu Flasha. Tym razem AFC zaprezentowało komponent UMap, umożliwiający kontrolę z opziomy AS3 map OpenStreetMap oraz Microsoft Virtual Earth. O ile OpenStreetMap jest bardzo niedokładny na obszarze Polski, to Microsoft Virtual Earth charakteryzuje się taką dokładnością , że komponent UMap staje się godny polecenia. :)

AIR 1.0Flex Builder 3
AIR Adobe wypuściło oficjalne wersje Adobe Integrated Runtime oraz Flex Buildera 3. Jeżeli chodzi o AIR, to mimo, że słyszymy o nim już od dłuższego czasu, jest to dopiero pierwsza oficjalna wersja. Flex również jest dosyć młodym narzędziem, jednak w tym przypadku doczekaliśmy się już wersji nr 3. Zmiany w porównaniu z dwójką nie są duże.


10/03/2008Jaskinia w Straszykowej Górze

W Jurze Krakowsko-Częstochowskiej, nieopodal Ryczowa, znajduje się jedna z najciekawszych jaskiń jurajskich. Jej penetracja dostarcza sporo wrażeń… zwłaszcza w nocy. ;) W takiej nocnej ekspedycji, poprzedzonej ponad godzinnymi poszukiwaniami wejścia do jaskini, przydatne bywają latarki, zapasowe baterie, zapasowe żarówki do latarki (!@$#@!$) oraz odbiornik GPS, pomagający po wszystkim wrócić do samochodu. :P Zupełnie nieprzydatne bywają natomiast klaustrofobia, chiroptofobia czy achluofobia.

Więcej o jaskini w Straszykowej Górze


Zdjęcia: Paweł


Zdjęcia: Tomek

Jaskinia w Straszykowej Górze

04/03/2008Progress Bar

Pracownicy naukowi z  Carnegie Mellon University, New York University oraz AT&T Labs-Research przeprowadzili eksperyment, mający na celu zbadanie wpływu nieliniowego zachowania paska postępu na ludzkie odczucie jego długości trwania. W tym celu wyodrębnili 8 algorytmów postępu i pokazywali po dwa (jeden po drugim) grupie badanych osób. Za każdym razem badający miał ocenić, który pasek postępu pokonywał dystans od 0 do 100% szybciej, czy też może oba czasy były równe. Oczywiście w rzeczywistości oba czasy były identyczne i trwały 5,5 sekundy. Okazało się, że badający ocenili jako krócej trwające paski postępu, zwalniające na początku i przyspieszające na końcu.

Zdecydowanymi liderami okazały się algorytmy:
- Power: f(x) = (x+(1-x)*0.03)^2
- Fast power: f(x) = (x+(1-x)/2)^8

Tak więc aby jak najbardziej zniwelować negatywne odczucia użytkownika wywołane oczekiwaniem na załadowanie gry, strony, prezentacji, zainstalowanie oprogramowania, etc., powinniśmy stosować tego typu nieliniowe algorytmy postępu.

Wizualizacja wszystkich algorytmów jednocześnie.

Kod źródlowy: src-single.zip [355kB]
Źródło: Rethinking the Progress Bar