Archive

Archive for April, 2006

Kopiowanie plików z uszkodzonego CD/DVD

April 27th, 2006 2 comments

Wczoraj chciałem skopiować pliki z DVD. Niestety plików nie dało się odczytać normalnie – CRC Error. Uszkodzone pliki są filmami avi, więc mogę sobie pozwolić na utratę pewnych danych. Istnieją dwa rozwiązania problemów tego typu. Pierwsze – niepoprawne – poszukać oprogramowania pod Windows. Drugie – pomyśleć Linux. Ja niestety wybrałem pierwsze. Odnalazłem w necie program BadCopy, zainstalowałem, uruchomiłem, po 6 godzinach pracy programu okazało się, że odzyskane pliki są zaszyfrowane do czasu aż nie kupię licencji. Zdenerwowałem się. Dziś ponownie uruchomiłem BadCopy, ale program sprytnie usunął moje odzyskane pliki. GRR. Prawidłowym rozwiązaniem tego problemu jest Linux, FreeBSD, CygWin. Wydajemy polecenie:

dd if=/cygdrive/e/film.avi of=/cygdrive/c/temp/film.avi conv=notrunc,noerror,sync bs=4096

I po sprawie. Niech żyje wolne oprogramowanie!!!

Categories: Linux Tags:

Pożegnanie z PHP

April 20th, 2006 19 comments
Jakieś 6 lat temu zacząłem programować w PHP. Język ten uważałem wtedy za technologie przyszłości, (przynajmniej mojej przyszłości), gdyż:
  • technologia PHP jest za darmo
  • programiści PHP są tanią siłą roboczą
  • programowanie w PHP jest szybkie i tanie
Dziś moja ocena środowiska PHP jest negatywna. Gdy zaczynałem programować nie uwzględniłem niestety kilku ważnych aspektów tworzenia aplikacji. Patrząc dalekowzrocznie (10 lat) PHP jest bardzo złą technologią, otóż:
  • brak kompatybilności wstecz
  • utrudnione łączenie aplikacji
  • konkurencja jest z przodu
Za najważniejszy problem związany z PHP uważam brak kompatybilności wstecz pomiędzy wersjami PHP4 i PHP5. Ten jeden czynnik dyskwalifikuje PHP w każdym projekcie, o którym myślimy dalekowzrocznie. Pisanie oprogramowanie w PHP5 wymusza ponowną analizę kodu stworzonego dla języka PHP4. W informatyce możemy łatwo policzyć czas potrzebny na napisanie nowej funkcji. Praktycznie nie możliwe jest określenie czasu potrzebnego na usunięcie błędu. Koszt portowania aplikacji do PHP5 jest bardzo trudny do wyceny. Obawiam się, że kolejne wersje tego języka także będą cierpieć na problemy wstecznej kompatybilności. Programowanie w PHP jest szybkie i tanie, ale tylko w krótkiej perspektywie. Dokładnie tak, jak w dowcipie o roztargnionym malarzu: Malarz dostał zadanie pomalowanie pasu na jezdni. Położył wiaderko na poboczu i pierwszego dnia pomalował 100 metrów, drugiego 50 a trzeciego 10. Gdy szef spytał co jest grane odpowiedział: wiaderko z farbą jest coraz dalej. Powtórzę to jeszcze raz. PHP jest tanie na krótką metę. Jestem pewny, że pisząc za 10 lat aplikacje w PHP7 nie będziemy mogli wykorzystać kodu napisanego 5 lat temu dla PHP4. Jeżeli ktoś może pozwolić sobie na takie marnotrawstwo, to proszę bardzo. Kolejnym problemem w pisaniu aplikacji w PHP jest to, że nie da się zrobić naprawdę dużego zintegrowanego systemu. Nie da się łączyć aplikacji. Powodem jest wiele: Najważniejsze to: brak jasno określonych standardów kodowania, brak specyfikacji dla bibliotek, brak przestrzeni nazw. Dla przykładu weźmy dwie aplikacje: czytnik poczty i forum. Chcemy je połączyć w jedną większą całość. Prawie na pewno napotkamy na następujące problemy: osobne i różnorakie bazy danych z kontami użytkowników, różne i niekompatybilne systemy szablonów (smarty,phplib), konflikty w nazwach obiektów i funkcji, a być może nawet to, że aplikacje będą oczekiwały sprzecznych ustawień dla zmiennych środowiskowych (magic_quotes_gpc). Po przeanalizowaniu tych problemów okaże się, że taniej będzie napisać aplikacje od nowa zamiast próbować łączy dwie już istniejące. Problem łączenia aplikacji jest dużo szerszy. Ciężko jest mi połączyć własne aplikacje napisane na przestrzeni kilku lat. Znacznie trudniej będzie połączy aplikacje napisane przez różne zespoły. Tworzenie dużych aplikacji w PHP jest po prostu nie możliwe. Gdy zaczynałem programowanie w PHP konkurencja w zasadzie nie istniała. Nie było takich technologii jak: .net, rubby-on-rails, zope (lub ich nie znałem). Inne dopiero raczkowały: J2EE. Od tego czasu technologia J2EE zrobiła ogromny postęp zakończony specyfikacją EJB3. Kodowanie dla platformy J2EE 6 lat temu wymagało 5 razy więcej kodu niż teraz i 10 razy więcej pracy niż w PHP. Dziś różnice się zatarły. Nadkład kodu w Javie rekompensują znakomite IDE. Przez ostatnie lata PHP wprowadziło wersje PHP5. PHP5 jest znakomity leksykalnie językiem, o możliwościach przekraczających Javę i zbliżonych do Pythona. Aczkolwiek z powodu braku wstecznej kompatybilności mało kto chce tego języka używać. Java swoją słabość składniową nadrobiła specyfikacjami Bean, EJB, JSR-*. Narodziło się programowanie aspektowe. PHP zrobiło duży krok w bok. Java olbrzymi krok do przodu. Dziś zdecydowanie odradzam pisania aplikacji w PHP. W ciągu 6 lat zmieniłem moją opinię na temat tego środowiska. PHP tak jak roztargniony malarz działa dobrze pierwszego dnia.
Categories: PHP Tags:

Festival po polsku

April 13th, 2006 No comments

Na tropie wszystkiego co związane z komputerową syntezą mowy natrafiłem na parę fajnych rzeczy. Najbardziej znanym programem do przetwarzania tekstu na dźwięk jest festival. Obsługuje on wiele języków. Udało mi się odnaleźć słowniki w języku Polskim. Na stronie stronie autora: Marcina Truszla udostępnione jest archiwum zawierające słownik w języku polskim. Archiwum należy rozpakować do odpowiedniego katalogu.

http://www.artegence.pl/[...]/festival_polish_voice.tgz

Można też skorzystać z płatnego softu:

http://www.ivo.pl/?page=syntezator_mowy_ivona

Categories: Linux Tags:

Sphinx – speech recognition engine

April 13th, 2006 No comments
Przetestowałem dziś darmową aplikację do rozpoznawania mowy. Niestety wynik był bardzo nie zadawalający.
Moim celem było znalezienie programu, który potrafił by rozpoznawać kilka słów angielskich: "next", "previous", "home".
Sphinx potrafi rozpoznawać text względem słownika. Niestety jakość rozpoznawanie była drastycznie niska.
Jestem tym zasmucony, może powrócę jeszcze kiedyś do tematu.

http://www.speech.cs.cmu.edu/sphinx/

Być może, po prostu moja wymowa jest słaba.


Categories: Recenzje Tags:

Kasowanie plików w bardzo dużym katalogu

April 13th, 2006 3 comments

Moim zadaniem było uporządkować katalog z około 250’000 plików. Miało zostać tylko 40 tysięcy określonych na liście.

Można to rozwiązać takim skryptem:

for i in $( cat pliki_do_usuniecia ); do echo $i; rm $i; done

Jednak dla takiego olbrzymiego katalogu trwało by to bardzo długo.

Moje rozwiązanie wykonywało się w czasie poniżej 1 godziny:

mkdir tmp for i in $( cat pliki_do_pozostawienia ); do echo $i; cp src/$i ./tmp/; done mv src src.0 mv tmp src

i podmiana nazwy katalogów.

Categories: Linux Tags:

Zeznania programisty

April 13th, 2006 No comments

Witam i zapraszam do mojego bloga.

Bloga piszę przede wszystkim dla siebie. Forma bloga wydaje mi się bardzo dobrym pomysłem na gromadzenie wszelkiego rodzaju notatek. Rośnie ilość wiedzy, którą muszę operować, żeby rozwiązywać codzienne problemy. Właśnie to wiedzę i pomysły chcę archiwizować w blogu. Być może komuś jeszcze się to przyda. Sam jestem ciekaw co z tego wyjdzie?

Więc do dzieła!

Categories: Zupełnie inne Tags: