Potrzebowałem malutki mp3 player, który wyświetlał by jedynie ikonkę z przyciskiem play i odgrywał wskazany dźwięk mp3. Poszukiwania w googlu dały kilka rezultatów, ale każdy z nich albo był “za bardzo”, albo miał złą licencję. Zamiast tracić dalej czas napisałem te kilkanaście linijek kodu i stworzyłem swój własny FemtoPlayer - Femto to brzmi dumnie ;)
Parametry:
file = pathToMP3 //ścieżka do pliku mp3
autoplay = true|false //czy automatycznie odgrywać dźwięk po wczytaniu
Moja przygoda z programowaniem rozpoczęła się na początku lat 90, kiedy to istniała tzw. demoscena. Na owej scenie koderzy (programiści) w pocie czoła tworzyli tzw. dema czyli wg współczesnej nomenklatury programy multimedialne, obrazujące możliwości sprzętu, a przede wszystkim umiejętności tychże koderów. Ja sam, kodowałem wpierw na komputerze Commodore 64 z procesorem motorola 6502 oraz całkowitą pamięcią 64kB, a następnie na komputerach Amiga (500, 1200).
Ówczesne produkty demosceny, dzisiaj budzą albo niezrozumienie albo litość. Pamiętajmy jednak, że najlepsze komputery miały wtedy procesory z zegarem 4MHz i 1MB pamięci RAM (po rozszerzeniu), a sprzętowe wspomaganie 3D to był tylko sen wariata. Wszystkie te programy pisało się w assemblerze i optymalizowało dosłownie każdy cykl procesora. Wiele efektów powstawało w wyniku obchodzenia ograniczeń sprzętowych(SIC!) - czyli de facto wykorzystywania sprzętu w sposób, który nie został przewidziany przez jego projektantów. To były czasy!
Andy Zupko, współautor Papervision3D, napisał klasę dzięki której dostajemy możliwość rzucania cieni przez dowolne obiekty na naszej scenie 3D. Muszę przyznać, że działa to znakomicie - oraz dużo szybciej od pierwszej wersji, którą zaprezentował w ubiegłym roku. Klasa ShadowCaster nie została na razie dodana do pakietu z Papervision3D, ale można pobrać jej źródło bezpośrednio ze strony Andiego - tam też znajdziecie demo i przykład wykorzystania.
Pragmatyczny programista - od czeladnika do mistrza - to obowiązkowa pozycja każdego programisty. Autorzy, Andrew Hunt i David Thomas, w przyjaznej formie przekazują zdrowe, a jednocześnie nadwyraz skuteczne podejście do programowania. W książce, oprócz powszechnie znanym pojęć jak hermetyczność czy programowanie asertywne, poznamy również takie jak zasada KISS (Keep It Simple, Stupid) czy też sposób wykorzystania Pocisków Smugowych.
Pomimo tego, że książkę przeczytałem już spory czas temu, wiem że nadal mogę ją śmiało polecać programistom na dowolnym etapie ich rozwoju :). Naprawdę - jako jedna z nielicznych trafi ona do tych początkujących jak i całkiem zaawansowanych, a język jakim jest napisana sprawi, że większość przeczyta ją od deski do deski z największą przyjemnością.
Pragmatyczny programista, Wydawnictwo Naukowo Techniczne, 2002.
Problem: Plik swf utworzony w actionscript2 będzie osadzony w innym pliku swf utworzonym w actionscript3. W jaki sposób z jednego pliku swf wywołać metodę w drugim?
Rozwiązaniem jest użycie klasy LocalConnection. Oto przykładowy kod:
Rozwój PHP zatrzymał się w miejscu. Wersja 5 języka stanęła okrakiem między językami silnie typowanymi, a językami dynamicznymi, wprowadzając na dodatek kilka swoich udziwnień i ciągnąc bagaż wad z poprzednich wersji.
Wydawało by się, że skoro model języka wyraźnie bazuje na Javie (i C++), a Zend wydając wersję 5 powiedział “A”, to powinien powiedzieć “B”, i dokończyć kilka spraw:
Wprowadzić możliwość pełnego typowania parametrów - obecnie parametry mogą być typowane, tylko jeżeli typem jest klasa albo array.
Umożliwić tworzenie setterów i getterów - magiczne metody nie są wystarczającym rozwiązaniem, gdyż nie komunikują jasno jakie właściwości są obsługiwane.
Wprowadzić przeciążanie metod.
Poza tym należałoby się odciąć kreską od poprzednich wersji lub przynajmniej posprzątać, to co posprzątane nie zostało, a więc przede wszystkim:
niespójne nazewnictwo funkcji i sposób przekazywania parametrów
rozdzielić metody na przestrzenie nazw (podobno w PHP6)
wprowadzić pełną obsługę dla UTF
Niestety, PHP 6 nad którym prace podobno trwają od dwóch lat, przyniesie jedynie kosmetyczne poprawki. A więc język ten pozostanie językiem do niczego, cieszącym się popularnością jedynie z siły rozpędu.
W drugim parametrze przekazujemy id pola tekstowego, do którego chcemy wstawić wybraną przez użytkownika datę. Paczuszkę ze skryptem, stylami i przykładowym użyciem można pobrać tutaj. Jak zajrzycie do kodu źródłowego, to odkryjecie wiele dodatkowych możliwości (ok, zdradzę trochę: można zmienić język w jakim kalendarz jest wyświetlany, albo format zwracanej daty).
Zainspirowany pewny młodym startupem (hmm, czyżby pleonazm?) ze Szczecina - a precyzyjniej słowami jego założyciela - w jeden wieczór uruchomiłem w internecie nowy sewis.
Czy pomysł ma taki potencjał, by warto było go stworzyć? No cóż, uznałem, że [...] stworzenie takiej strony jest tańsze niż zastanawianie się nad tym czy warto.
Tak bardzo mnie tym natchnął, że również nie zastanawiając się wiele wykonałem i uruchomiłem niewielki serwis. No cóż, faktyczne koszty jakie poniosłem to kilka godzin pracy oraz 1zł+VAT za rejestrację domeny.
Że co, że takie serwisy już istnieją? No ba, ale mój ma fajną domenę ;)