inicio mail me! sindicaci;ón

Tomasz Wysocki - dziennik internetowy

Otchłań mojego umysłu…

Archive for Informatyka

Prosty flashowy odtwarzacz muzyczny na stronie

Czasami powstaje potrzeba udostępnienia plików muzycznych użytkownikom naszej strony. Pierwszą myślą może być wtedy udostępnienie plików do ściągnięcia. Oczywiście jest to potrzebne, jednak można zrobić dodatkowy krok i umieścić muzykę do odsłuchania bezpośrednio na stronie. W takich sytuacjach przydają się darmowe odtwarzacze muzyczne we Flashu. Postaram się tutaj przybliżyć instalację jednego z nich (został on użyty mi. na Siedleckim Informatorze Kulturalnym).

Czego potrzebujesz

Warto by zrobić krótką listę rzeczy potrzebnych, aby w ogóle zabierać się do pracy. Będą to:

  • Darmowy odtwarzacz (za chwilę go ściągniemy)
  • Strona internetowa na której chcesz umieścić muzykę
  • Pliki muzyczne w formacie mp3
  • Podstawowa znajomość htmla
  • Dostęp do strony poprzez ftp

Ściąganie odtwarzacza

Odtwarzacz można ściągnąć za pomocą tego linka. Po ściągnięciu należy go rozpakować.

Wrzucanie potrzebnych plików na serwer

Teraz należy połączyć się z serwerem poprzez ftp i przejść do katalogu w którym znajduje się podstrona, do której chcesz dodać odtwarzacz. Gdy już znajdziesz się w tym katalogu, przekopiuj do niego utwory mp3, które chcesz umieścić w odtwarzaczu. Później w to samo miejsce skopiuj plik emff_0.5.6/skins/emff_standard.swf pochodzący z wcześniej ściągniętego archiwum.

Wstawianie kodu odtwarzacza

Aby wygenerować kod odtwarzacza musisz przejść do specjalnego generatora. Generator wymaga uzupełnienia pól na dotyczących ustawień naszego odtwarzacza:

  • listy plików mp3 (oddzielonych przecinkami)
  • wyboru wersji htmla (html lub xhtml)
  • opcji: startuj automatycznie, odtwarzaj w pętli, odtwarzaj losowo
  • koloru tła

Gdy wypełnisz wszystkie pola, na fioletowym tle poniżej pokaże się kod html, który musisz skopiować do odpowiedniego miejsca w kodzie html strony. Gdy już do zrobisz, odtwarzacz powinien pojawić się na stronie.

Muzyka do słuchania prosto ze strony

Wczoraj wpadłem na pomysł, aby umieścić na Siedleckim Informatorze Kulturalnym playery do bezpośredniego odtwarzania muzyki. Jak postanowiłem tak też zrobiłem. Obecnie można w sposób łatwy, prosty, szybki i przyjemny wysłuchać darmowych fragmentów lub całych utworów artystów, którzy mają wystąpić w Siedlcach. Na szczęście w Polsce jest zwyczaj umieszczania na stronie artysty chociaż kilku darmowych utworów, dzięki czemu przy większości artystów znajdują się pełne utwory, dające możliwość zapoznania się z muzyką grupy, przed pójściem na koncert.

Wydaje mi się, że taki model promocji koncertów jest bardzo skuteczny. Mam szczerą nadzieję, że zarówno polscy jak i zagraniczni artyści będą publikowali coraz większe ilości darmowej muzyki, którą będzie można wykorzystywać w ten sposób. Jestem przekonany, że współpraca takich stron jak moja z artystami spowoduje, że sale koncertowe będą pękać w szwach.

Serwer dedykowany w OVH

Przez długi okres korzystałem i nadal korzystam z serwera dedykowanego w OVH. Postanowiłem napisać krótką recenzję tego serwera, tak aby ułatwić wybór serwera osobom, które obecnie takowego poszukują.

Na początku swojej przygody z serwerami dedykowanymi miałem problemy z wyborem odpowiedniej usługi. Istnieje wiele firm oferujących rozwiązania dedykowane w Polsce, jednak są to serwery dużo droższe niż zagraniczne. Aby zaoszczędzić trochę gotówki postanowiłem wykupić serwer stojący w serwerowni zagranicznej. Wybór padł na OVH, a serwer stanął we Francji.

Sprzęt

Nie natknąłem się na żadne problemy ze sprzętem. Zarówno sieć OVH jak i serwer przez cały okres współpracy działały bez zarzutu. Jedynie raz zdarzyła się niewielka niedogodność. Został wyłączony serwer DNS do którego domyślnie skonfigurowany był mój serwer i nie zostałem o tym poinformowany. Udało mi się jednak szybko i bez problemu znaleźć inny serwer DNS i zmienić konfigurację w resolv.conf.

Łącze

Łącze w OVH to niewielki fenomen. Firma posiada na tyle silne połączenia, że udostępnia swoim klientom dostęp do sieci szkieletowej 100Mbps beż żadnych ograniczeń. Można by się spodziewać, że taki “dziki zachód” spowoduje walki między serwerami o transfer i sieć się zapcha. Tak się jednak nie dzieję. Sam robiłem niewielkie testy. Prędkości, które udało się osiągać, były dosyć znaczne (kilkadziesiąt Mbps).

Panel administracyjny

Zmian w panelu administracyjnym dokonywałem tylko dwa razy. Było to ustawienie revDNS i reinstalacja systemu operacyjnego. Obie operacje przebiegły bez najmniejszego zarzutu.

System operacyjny

OVH posiada szeroki wachlarz systemów operacyjnych do wyboru. Sam ze względu na przyzwyczajenia wybrałem Debian GNU/Linux. OVH używa w Debianie swoją kompilację jądra systemu. Jest to korzystne, gdyż zostały użyte w niej rozmaite pache związane z bezpieczeństwem. Niestety istnieje problem z przywróceniem domyślnego jądra systemu.

Obsługa techniczna

Do BOKu maila pisałem tylko raz. Nie był związany on z samym serwerem, tylko z procedurami, które stosowane są w związku z płatnościami. Kontakt przebiegł bez zarzutów.

Podsumowując

Serwery dedykowane w OVH są warte polecenia. Ze względu na niewielką cenę i wysoką jakość są idealnym rozwiązaniem dla osób, które są zainteresowane hostingiem poza granicami kraju. Korzystny jest również fakt, że firma OVH działa również na terytorium Polski, dlatego za serwer otrzymamy normalne Polskie faktury.

“Nieskończony” Jogger

Podłubałem trochę i napisałem User JavaScript, implementujący metodę “stronicowania”, zaprezentowaną na www.humanized.com/reader/, dedykowany dla serwisu jogger.pl.

Instalacja:
  1. Dodać ten link do bookmarku lub na toolbar swojej przeglądarki.
  2. Wejść na stronę jogger.pl
  3. Uruchomić zbookmarkowany link
  4. Czytać wpisy na joggerze do sameeeeeeeeeeeeeeeeeeeeego końca strony (-:
PS. Pozdrawiam wszystkich joggerowiczów.

Migające conky

Jeśli miga Ci conky, pomóc może dopisanie następującej linii do /etc/X11/xorg.conf:

        Load  "dbe"

Linię należy dopisać w sekcji Module.

Spam blogowy pokonany

Jakiś czas temu Emila na swoim blogu opublikowała notkę, w której narzekała na spam przychodzący na jej bloga. Biorąc pod uwagę, że ja też ostatnio dostaję go masę, postanowiłem coś z tym zrobić.

Kilka dni temu, zacząłem przerabiać swojego bloga oraz logować wszystkie zapytania POST na niego wysyłane. Po analizie danych wysyłanych przez boty postanowiłem wprowadzić dwa zabezpieczenia: zabezpieczenie zrobione specjalnie na boty spamujące wordpressy, oraz zabezpieczenie na “całą resztę”. Okazało się, że skuteczność rozwiązań, które wprowadziłem jest 100% (od kilku dni nie dostałem ani jednego spamu). Dodatkowo są one przezroczyste dla użytkownika i nie używają żadnych filtrów, które mogły by przypadkowo skasować “dobry” komentarz.

Zabezpieczenie na boty Wordpressowe

Okazało się, że większość botów wysyłających spam tylko na blogi “napędzane” skryptem Wordpress jest dość głupia. Wchodzą one na stronę komentarzy i wysyłają standardowe zapytanie POST dla wordpressa, nie patrząc nawet w jaki sposób formularz jest zbudowany. Dlatego aby pozbyć się tego robactwa wystarczyło zmienić nazwy pól w formularzu. Tym samym zapytanie POST wysyłane przez boty stało się niepoprawne i można je łatwo wyfiltrować.

Zabezpieczenie przeciwko “całej reszcie”

Całą resztę też dosyć łatwo oszukać. Ja zrobiłem to w następujący sposób: skopiowałem pole, w którym wpisuje się treść komentarza. Dałem mu atrybut display: none i opis (dla przeglądarek tekstowych): to pole pozostaw puste. W oryginalnym polu zmieniłem nazwę na “spam”. Jak to działa?

Większość botów wypełni wszystkie pola, łącznie z tym którego zwykły użytkownik nie wypełni, bo albo go nie zobaczy, albo przeczyta opis “tego nie wypełniaj”. Wszystkie te boty można z łatwością wyfiltrować. Co bardziej cwane boty mogą “nauczyć” się takie zabezpieczenie omijać. To właśnie dlatego pole, w którym trzeba wpisać treść komentarza ma prowokacyjną nazwę “spam”. Jeśli bot będzie miał jakieś pole ominąć, to być może ominie właśnie te i czeka go “muka”.

Życzę powodzenia w zabezpieczaniu własnych blogów. Możecie oczywiście zastosować filtry. Ja je jednak niezbyt lubię.

Uzupełnianie w bashu (bash completion)

Co to jest? Otóż jest to ta cała maszyneria, która uruchamia się gdy wciśniesz klawisz [tab]. Po co to? To chyba jasne jak słońce, aby odciążyć palce użytkownika od pisania ogromnych ilości tekstu. Ale zacznijmy od początku.

Większość ludzi, korzystających z komputera, można podzielić na dwie grupy: tych, którzy klepią w terminalu długie i niezrozumiałe komendy oraz tych, którzy nie wiedzą, dlaczego Ci drudzy nie użyją myszki. Lub inaczej: tych, którzy wiedzą jak używać shella oraz znają jego moc oraz tych, którzy są w tej kwestii jeszcze laikami.

Co takiego fajnego jest w pisaniu “długich niezrozumiałych komend”? Chyba to, że jedna taka komenda może Ci zaoszczędzić kilka minut lub nawet godzin klikania myszką, na pewno też to, że nie jest taka niezrozumiała gdy spróbujesz ją pojąć oraz to, że staje się o wiele krótsza gdy użyjesz do tego [tab]a!

Jak działa [tab]? Gdy piszesz jakąś komendę w shellu, możesz w wielu momentach wcisnąć [tab], wtedy komputer postara się dokończyć za ciebie komendę lub podpowiedzieć Ci jakie masz możliwości. Nie powinniśmy oczekiwać cudów, to tylko maszyna. Jednak gdy wiemy kiedy użyć [tab]a, może nam to zaoszczędzić zarówno czasu, jak i zbędnego tłuczenia w klawisze. Powszechne jest dopełnianie [tab]em nazw programów oraz plików, ale nie każdy wie, że [tab] ma o wiele większe możliwości. Poza tym możemy dodawać własne (o czym być może kiedyś napiszę). Ujarzmijmy więc te możliwości na Debianie (dystrybucja, z której w tym momencie piszę).

Najpierw sprawdzimy czy potrzebny nam skrypt jest już w systemie (w Debianie z tego co wiem jest domyślnie):

tomwys@tom:~$ whereis bash_completion
bash_completion: /etc/bash_completion.d /etc/bash_completion
tomwys@tom:~$

Skrypt, który nam jest potrzebny, to /etc/bash_completion. Dodajemy więc wczytywanie go do ~/.bash_profile:

tomwys@tom:~$ echo '. /etc/bash_completion' >> ~/.bash_profile

Odpalamy nowy terminal i już możemy się cieszyć z nowych możliwości. Podajmy przykład (listing pierwszy to wciskane klawisze, drugi to rezultat na ekranie):

apti[tab][tab][tab]i[tab]bas[tab][tab]h[enter]
tomwys@tom:~$ aptitude 
autoclean       forbid-version  purge           unhold
changelog       forget-new      reinstall       unmarkauto
clean           hold            remove          update
dist-upgrade    install         search          upgrade
download        markauto        show            
tomwys@tom:~$ aptitude install bas
base                    bash                    bash-minimal
base-config             bash-builtins           bash-static
base-config-skolelinux  bash-completion         basket
base-files              bashdb                  bastet
base-passwd             bash-doc                bastille
tomwys@tom:~$ aptitude install bash
Reading package lists... Done
Building dependency tree... Done
Reading extended state information       
Initializing package states... Done
Reading task descriptions... Done  
Building tag database... Done    
E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
tomwys@tom:~$ 

Gdyby nie [tab] musieli byśmy najpierw dowiedzieć się jaki program jest nam potrzebny, jakie ma parametry i jaki pakiet chcemy zainstalować. Poza tym musieli byśmy wcisnąć 22 klawisze. Tak mając szczątkowe informacje wprowadziliśmy naszą komendę i wcisnęliśmy tylko 16 klawiszy. Gdybyśmy wiedzieli od razu o co nam chodzi, wystarczyło by wcisnąć 12 klawiszy:

apti[tab]i[tab]bash[enter]

Zyskalibyśmy wtedy aż 10 klawiszy, to prawie połowa! A zyski będą się pojawiać przy wielu programach. Rozwiązanie to najlepiej jest wypróbować samemu. Życzę milej zabawy.

Eksperyment

Wraz z początkiem ferii trzeba zacząć robić coś pożytecznego i zabawnego. Więc dzisiaj ruszam z moim małym eksperymentem. Niestety nie mogę na razie zdradzić szczegółów. Jeśli wszystko się powiedzie to może kiedyś opublikuję tutaj wyniki (niestety całość jest dosyć długofalowa, więc nie prędko). A oto stronka eksperymentu: http://eksperyment.tomwys.info/

Adres strony będę umieszczał w różnych miejscach, bo jest to ważne podczas tego eksperymentu. Dlatego z góry przepraszam, że troszkę śmiecę. Mam jednak nadzieję, że nie zostanie mi to poczytane za złe, w końcu robię to dla “celów wyższych”.

Wymiana silnika bazodanowego

Przed chwilą wymieniłem w SIKu klasy odpowiedzialne za obsługę baz danych. Niby nic wielkiego, bo w interfejsie użytkownika nic się nie zmieniło, jednak jest to swego rodzaju postęp. Sprawa jest prosta: skoro zrobiłem już coś co było wcześniej zaplanowane i wręcz konieczne, teraz przyjdzie czas na ciekawsze rzeczy (czytaj: na dodawanie nowych funkcji do serwisu).

Zmiana odbyła się o wiele łagodniej niż się tego spodziewałem. Nie było żadnych dużych zgrzytów. Zmieniłem tylko te fragmenty kodu, gdzie zmieniło się API klas. Tak na marginesie to zarówno stare klasy do obsługi bazy danych, jak i nowe są mojego autorstwa (-: W serwisie mogły jednak pojawić się jakieś błędy, dlatego mam nadzieje, że użytkownicy ustosunkują się do nich przychylnie i pomogą mi je poprawić.

Pragnę również podziękować Plastusiowi, za wykrycie kilku poważnych błędów kilka dni temu.

Gadu-Gadu 2 Jabber - lista kontaktów

Napisałem ostatnio skrypt konwertujący listę kontaktów Gadu-Gadu na odpowiednie zapytanie do serwera Jabbera. Skrypt został przetestowany w praktyce - działa dobrze. Jedynym mankamentem jest to, że skrypt nie zajmuje się autoryzacją kontaktów z Gadu-Gadu. Trzeba to zrobić ręcznie. Zachęcam do korzystania zarówno z Jabbera, jak i mojego skryptu.

· Starsze wpisy »