Zespół programistyczny Columbusa w składzie ja i hmm… ja
zdecydował, że Columbusa napisze w Pythonie a nie w PHP. Pisałem coś w Pythonie i pomyślałem „Całkiem przyjemny język, czemu by nie napisać w nim Columbusa”. Potem zrobiłem małe rozeznanie w ORM’ach i frameworkach. Po wielu godzinach spędzonych na forach i w dokumentacji, wybrałem Django. Zainstalowałem w mojej piaskownicy i po paru godzinach zabawy stwierdziłem, że to jest to czego szukam. Następną czynnością było oczywiście zainstalowanie go na serwerze Columbusa. Na chwilę obecną pracuję nad rejestracją i logowaniem graczy, a Django bardzo mi w tym pomaga
Category Archives: Programowanie
Moja mała piaskownica ;)
Kilka dni temu pomyślałem, że postawie sobie jakiegoś apache’a, MySql’a na laptopie, ale doszedłem do wniosku, że nie będę sobie śmiecił w systemie. Z pomocą przyszedł mi VirtualBox. VirtualBoxa miałem juz w systemie, więc pozostało tylko ściągnąć obraz z Debianem. Wybrałem Debiana Lenny bo używam go na serwerach i dość dobrze go znam. Instalacja z obrazu netinstall poszła bezproblemowo. W kilka minut miałem postawiony system. Oczywiście zrezygnowałem z X’ów i środowiska graficznego bo po co mi one na serwerze
Teraz jak mam już swoją małą piaskownicę nie pozostaje nic innego tylko zacząć się w niej bawić
. W planach mam zabawę z Pythonem, Django i Pylons. Do tego dojdzie pewnie SqlAlchemy i kilka innych rzeczy. Do moich zabawek dołączy jeszcze SVN.
Dobra koniec tego, idę się bawić…
Browsershots.org
Jakiś czas temu przeczytałem na blogu Michała o stronie WebResourcesDepot.com. Pomyślałem, że też napiszę o stronie która wielokrotnie mi pomogła. Browsershots.org to strona na której możemy zobaczyć jak nasza strona wygląda pod różnymi przeglądarkami. Do wyboru mamy m.in. Dillo, Firefoxa, Galeona, Opere, Konquerora, Internet Explorera, SeaMonkey i Navigatora na platformie Windows oraz Linux. Możemy również ustawić Rozdzielczość ekranu, Głębię kolorów, Javascript, Java, Flash. Zasada działania jest bardzo prosta, wpisujemy adres, czekamy i mamy zrzuty ekranu. Czas oczekiwania zwykle nie przekracza 30 minut, choć jest to uzależnione od przeglądarki i systemu. Do IE są zwykle największe kolejki, hmm ciekawe czemu? xD
Konwersja i łączenie plików MP3 z poziomu PHP
Jakiś czas temu zaszła potrzeba sklejenia kilku plików mp3 w jeden. Pierwsze co przyszło mi do głowy to połączenie tych plików za pomocą linuxowego cat’a. Okazało się, że np. Totem odtwarza taki plik normalnie, ale flashowy Flowplayer zatrzymuje się na końcu pierwszego pliku. Zacząłem więc szukać innego rozwiązania. I znalazłem… LAME. Poniżej kilka przykładów jak to zrobić za pomocą PHP i LAME.
<?
$input_file_1='/home/maciek99/public_html/file1.mp3';
$input_file_2='/home/maciek99/public_html/file2.mp3';
$input_file_3='/home/maciek99/public_html/file3.mp3';
$output_file='/home/maciek99/public_html/output_file.mp3';
$cmd="cat $input_file_1 $input_file_2 $input_file_3| lame -b 128 -m m --mp3input - - > $output_file";
passthru($cmd,$return);
if($return==0){
echo 'Konwersja przebiegła poprawnie';
}else{
echo 'Błąd!!!';
}
?>
Ten kawałek kodu łączy pliki „file1.mp3, file2.mp3, file3.mp3″ w jeden plik „output_file.mp3″ i enkoduje do mp3 mono z bitrate’m 128kbps. LAME i cat jest uruchamiany przez funkcję passthru, dane wyjściowe z cat’a są przekazywane potokiem do LAME, a LAME zapisuje gotowy plik mp3.
Opcja -b odpowiada za bitrate pliku wynikowego. Dostępne opcje:
32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320
Opcja -m odpowiada za typ pliku wynikowego. Dostępne opcje:
-m m mono -m s stereo -m j joint stereo -m f forced mid/side stereo -m d dual (independent) channels -m i intensity stereo -m a auto
Tryb higher quality i low quality. Gdy uruchomimy konwersję z parametrem -h kosztem czasu konwersji otrzymamy plik lepszej jakości. Natomiast stosując parametr -f zyskamy na czasie kosztem jakości.
Co się stanie jeśli spróbujemy połączyć plik mono z plikiem stereo?
cat mono.mp3 stereo.mp3 |lame -b 128 --mp3input - ->aa.mp3 LAME 3.98 (beta 7, May 6 2008) 32bits (http://www.mp3dev.org/) Using polyphase lowpass filter, transition band: 20094 Hz - 20627 Hz Encoding to Encoding as 44.1 kHz 128 kbps single-ch MPEG-1 Layer III (5.5x) qval=3 bitstream problem: resyncing... big_values too large! 409 bitstream problem: resyncing... Error: number of channels has changed in MP3 file - not supported
No właśnie, mamy problem. Należy pamiętać o tym żeby pliki były jednolite. Jeśli nie są to za pomocą LAME możemy je skonwertować do odpowiedniego formatu. Przykład poniżej.
maciek99@s19:~/public_html$ lame file1.mp3 -m s stereo.mp3 #konwersja do stereo maciek99@s19:~/public_html$ lame file1.mp3 -m m mono.mp3 # tu konwersja do mono maciek99@s19:~/public_html$ lame file1.mp3 -b 320 -m m mono.mp3 #a tu konwersja do mono z bitrate 320kbps maciek99@s19:~/public_html$ lame file1.wav -b 256 -m s stereo.mp3 #konwersja pliku wave do mp3 stereo z bitrate 256kbps
Więcej o LAME na jego stronie domowej lame.sourceforge.net.
Warunkiem zadziałania powyższego przykładu w php, jest LAME zainstalowany na serwerze na którym uruchamiamy ten kod i konfiguracja PHP pozwalająca użyć funkcji passthru. Jeśli mamy do dyspozycji dedyka to nie ma problemu z instalacją, na hostingu kupionym w linuxpl.com LAME jest dostępny. Jak jest na innych hostingach tego nie wiem bo nie testowałem.