Rejestracja na Symfony Day Cologne 2010 jest już otwarta

Rejestracja na mający miejsce w niemieckiej Kolonii dzień symfony została wczoraj otwarta. Opublikowano także większość programu. Zeszłoroczne, pierwsze wydanie Symfony Day okazało się dużym sukcesem. W tym roku także nie zabraknie atrakcji.

Przegląd klas, metod i zmiennych w vimie z pluginem TagList

Plugin TagList dodaje do vima funkcjonalność przeglądania listy klas, metod, zmiennych i innych słów kluczowych indeksowanych przez ctags. TagList pokazuje tagi w kontekście edytowanych plików i grupuje je po typie. Do tagów możemy skakać, otwierać je w nowym oknie lub zakładkach.

Instalacja PostgreSQL w Ubuntu 10.04

PostgreSQL jest rozbudowanym i niezawodnym obiektowo-relacyjnym systemem baz danych. Stanowi doskonałą alternatywę dla popularnego MySQLa. PostgreSQL jest tak samo łatwy w obsłudze, sprawuje się lepiej i oferuje więcej.

Instalacja MySQL w Ubuntu 10.04

MySQL to jednen z popularniejszych relacyjnych systemów baz danych, który jest szeroko stosowany przy budowie aplikacji PHP. Jest dość łatwy w konfiguracji i obsłudze. Oto krótki opis instalacji MySQL w najnowszej wersji Ubuntu.

Graficzna ściągawka z vima

Oto graficzna ściągawka z vima, którą znalazłem na stronie ViEmu. Znajdziecie tam także tutorial. Naprawdę użyteczna rzecz. Nie tylko dla początkujących!

Skakanie do definicji klas, metod i zmiennych w vimie przy pomocy exuberant ctags

Dzięki exuberant ctags możemy skakać do definicji klas, metod, zmiennych i innych konstrukcji językowych w vimie. Narzędzie potrafi wygenerować plik z indeksem słów kluczowych (tagów) dla jednego spośród 41 wspieranych języków programowania. Indeks ten jest używany w edytorach typu vim do szybkiego odnajdywania powiązanych słów kluczowych.

Przeglądanie plików i katalogów w vimie z NERD tree

Przeglądanie, otwieranie, zmiana nazwy, czy przenoszenie plików i katalogów to czynności wykonywane podczas codziennego pisania kodu. W popularnych IDE odbywa się to zwykle przy pomocy eksploratora plików. W vimie lubię używać do tego celu pluginu NERD tree.

Ubuntu 10.04 Lucid Lynx

Stabilne Ubuntu 10.04 Lucid Lynx ujrzało światło dzienne dwa dni temu. Wczoraj zagościło na moim laptopie. Ponieważ wcześniej używałem wersji beta, wiedziałem czego się spodziewać. I nie zawiodłem się.

Konfiguracja środowiska deweloperskiego PHP z nginx w Ubuntu 10.04

Nginx to lekki serwer http i proxy. Potrafi także działać jako load balancer. Stanowi poważną alternatywę dla przeładowanego apache. W środowisku prodykcyjnym nginx zaskakuje wydajnością oraz małym zużyciem pamięci. W warunkach deweloperskich cenię jego prostą i elastyczną konfigurację. Oto opis jak szybko przygotować środowisko deweloperskie PHP z nginx w Ubuntu 10.04 (Lucid Lynx).

Sklep Muzyczny w Ubuntu - Ubuntu One Music Store

Piszę tego posta słuchając pierwszego utworu, który pobrałem kilka minut temu z Ubuntu One Music Store. Kosztował mnie 3zł (79 euro centów). Sklep muzyczny Ubuntu One został dzisiaj otwarty!

Vim i Textile - formatowanie wiki w plikach tekstowych

Textile to prosty język formatowania tekstu używany na wielu forach, CMSach, czy stronach wiki (np. w Redmine). Osobiście lubię go stosować w zwykłych plikach tekstowych do robienia notatek. Plugin Textile dodaje do vima podświetlanie składni oraz możliwość podglądu i konwersji do htmla.

Ubuntu 10.04 Lucid Lynx jest już tuż za rogiem

Wczoraj wydano pierwszą wersję beta Ubuntu 10.04 (Lucid Lynx). Postanowiłem ją przetestować i zaktualizowałem swój biurkowy komputer, na którym uchowało się jeszcze Ubuntu 9.04.

Automatyczne publikowanie aplikacji PHP

Aplikacje PHP publikowane są na serwery na wiele różnych sposobów (pisząc "publikacja" mam na myśli anglojęzyczne słowo "deploy"). Niektórzy używają w tym celu systemów kontroli wersji takich jak Subversion. Inni po prostu kopiują pliki przy pomocy FTP, SSH czy rsync. Jest tylko jeden problem ze wspomnianymi technikami. Wszystkie są podatne na błędy. Transfer plików to tylko niewielka część całego procesu publikacji, czy aktualizacji aplikacji PHP. Często potrzebna jest dodatkowa konfiguracja, czy uruchomienie skryptów migracyjnych.

Symfony 2 opublikowane (podczas Symfony Live 2010)

Podczas pierwszej międzynarodowej konferencji Symfony Live, Fabien Potencier upublicznił Symfony 2. Nowoczesne podejście i sprawdzone praktyki, podpatrzone w innych pierwszoligowych projektach Open Source, tworzą wybuchową miksturę, która ma szansę zrewolucjonizować świat PHP.

Symfony Live 2010

W dniach 16-17 lutego odbyła się pierwsza międzynarodowa konferencja Symfony Live. Była to nie lada gratka dla użytkowników frameworka symfony, w której miałem wielką przyjemność uczestniczyć. Wiele ciekawych rzeczy dzieje się obecnie wokół symfony (i Symfony (;). Oto skrót z tego co wydarzyło się na konferencji, a także przedsmak tego co nas czeka w niedalekiej przyszłości.

EpgDownloader przenosi się na gita

Niemal od początku EpgDownloader udostępniany był społeczności na SourceForge'u. Jak niedawno pisałem moje zainteresowanie programem zmalało niemal do zera. Jest za to kilka osób, które chętnie włączyłyby się w dalszy jego rozwój. Dlatego postanowiłem przenieść repozytorium do serwisu github.

EpgDownloader

EpgDownloader narodził się czerwcu 2005 roku jako prosty, perlowy skrypt. Parsował wtedy program telewizyjny wirtualnej polski i konwertował go do formatu akceptowanego przez VDR. Przyczyna jego powstania była bardzo prosta. Używałem VDR do oglądania telewizji satelitarnej, która w tamtym czasie nadawała EPG tylko na najbliższe dwie audycje. Nastawienie nagrywania w przyszłości stawało się uciążliwe, a zwykłe przejrzenie programu telewizyjnego niemożliwe. EpgDownloader pozwalał mi cieszyć się programem telewizyjnym w VDR na całe siedem dni naprzód.

Blogowanie w 2009

2009 to rok, w którym powróciłem do blogowania. Nie pisałem tak dużo jakbym mógł, czy chciał. Dlatego jednym z moich celów na rok 2010 jest pisać więcej i lepiej. Głównie po angielsku.

Kolorowe svn diff w edytorze vim

Jakiś czas temu tłumaczyłem jak pokolorować wynik svn diff. Możemy uzyskać podobny rezultat przy pomocy vima. Druga metoda okazuje się wygodniejsza, gdy mamy do zatwierdzenia dużą ilość kodu.

Frets on Fire, czyli Guitar Hero w Ubuntu 9.10 (Karmic Koala)

Właśnie grałem w Frets on Fire - na tyle świetną grę, aby wciągnąć mnie na chwilę i napisać wpis na blogu. Nie zdarza mi się to często. Frets on Fire to klon Guitar Hero na PC (działa na Linuksie, Macu i Windows).

Chromium, czyli Google Chrome w Ubuntu 9.10 (Karmic Koala)

Google Chrome nie jest jeszcze dostępny pod Linuksem. Jest za to Chromium, czyli przeglądarka Open Source na bazie której zbudowany jest Chrome. Właściwe to obie aplikacje odróżnia tylko logo.

Ubuntu 9.10 Karmic Koala już jest!

Ubuntu 9.10 Karmic Koala zostało dziś oficjalnie wydane na świat. Wersja jest przełomowa, bo nie zawiera tylko usprawnień, czy aktualizacji. Niektóre z komponentów zostały zastąpione nowymi, bardziej nowoczesnymi. Pełny opis zmian umieszczono na stronie Ubuntu. Przedstawię po krótce tylko te, na które czekałem.

Konferencja PHP North West 2009

Tydzień temu miałem okazję uczestniczyć w konferencji PHP North West w Manchester. Wszystko zaczęło się imprezą w pubie Lass O' Gowrie w piątkowy wieczór przed konferencją. Wielką przyjemnością było dla mnie poznać i rozmawiać z tyloma ludźmi zaangażowanych w społeczność PHP. Wszyscy, bez względu na doświadczenie, byli przyjaźni i chętni do wymiany punktu widzenia. Nieformalne spotkania przy piwie i grach wideo niewątpliwie sprzyjają poszerzaniu grona znajomych o wiele lepiej, niż krótkie rozmowy między konferencyjnymi prezentacjami.

Wyjątek 'The "default" context does not exist.' w linii poleceń symfony

Jeśli w taskach symfony spróbujemy użyć kontekstu poprzez wywołanie sfContext::getInstance(), otrzymamy wyjątek klasy sfException z komunikatem 'The "default" context does not exist'. Klasa sfContext reprezentuje kontekst aplikacji i dlatego nie jest on inicjowany w linii poleceń. Dobrą praktyką jest NIE używanie sfContext::getInstance(). Zdaża się niestety, że nie mamy innego wyboru (np. gdy korzystamy z obcego pluginu).

Jak nagrać makro w edytorze vim?

Makro to zestaw instrukcji wykonanych w jednym kroku. Podczas programowania makra pomagają nam na automatyzjację powtażalnych czynności, które stają się dzięki temu mniej nudne i podatne na błędy. Vim jako jeden z najpotężniejszych edytorów tekstu posiada tą funkcjonalność wbudowaną.

Symphony CMS na nginx

Zdecydowałem się przetetsować CMS o nazwie Symphony z dwóch powodów. Pierwszym były dokładnie określone fazy tworzenia stron internetowych, które wymusza sam CMS. Drugim powodem był oparty o XSLT system szablonów. Jak większość aplikacji PHP, Symphony zostało stworzone głównie z myślą o serwerze apache. Ponieważ od pewnego czasu preferuję używać nginx-a, napotkałem na małe problemy konfiguracyjne.

Cachowanie stron internetowych za pomocą skryptu bash i pliku .htaccess

Powierzono mi ostatnio zadanie uczynienia kompletnie niewydajnej strony www na tyle wydajną, aby dać zespołowi czas na jej naprawienie. Nie znałem kodu i technologii wspomnianej aplikacji, nie miałem też wystarczającej ilości czasu na jej poznanie.

PHP 5.3 zostało wydane

PHP 5.3 zostało wydane. Wersja była długo oczekiwana z uwagi na wiele usprawnień, nowych funkcjonalności i poprawionych błędów. PHP 5.3 to prawie 6, tylko bez wsparcia dla Unicode. Oto lista rzeczy, na które szczególnie czekałem lub wydały mi się interesujące.

Kolorowanie wyniku svn diff

Polecenie svn diff umożliwia obejrzenie zmian pomiędzy dwoma wersjami plików z repozytorium svn. Ponieważ jego wyjście nie zawsze jest czytelne, możemy nieco ułatwić sobie pracę przez instalację colordiff. Program opakowuje polecenie diff i zwraca taki sam rezultat, jednak pokolorowany.

CSS przodem, JavaScript tyłem

Załączanie arkuszy styli CSS na górze strony, a skryptów JavaScript jak najpóźniej to tylko dwie z 34 dobrych praktyk opisanych przez Yahoo w Best Practices for Speeding Up Your Website. Stosowanie się do nich pozwoli zmniejszyć wizualnie czas generowania strony w przeglądarce. Oto prosty przykład jak to osiągnąć w symfony.

Inicjatywa na rzecz standardów PHP (PHP Standards Initiative)

Podczas tegorocznej konferencji php|tek w Chicago spontanicznie zorganizowano spotkanie na temat standardów kodowania w PHP. Uczestniczyła w nim grupa ludzi pracujących nad kilkoma znaczącymi projektami PHP: Zend Framework, PEAR, Solar, Agavi, CakePHP, symfony i phing. Niestety nie było mi dane uczestniczyć w konferencji, ale znaleziona na blogu Left On The Web informacja o spotkaniu, bardzo mnie ucieszyła.

Chromium, czyli Google Chrome w Ubuntu 9.04

Chromium to projekt umożliwiający uruchomienie przeglądarki Google Chrome w Linuksie. W repozytoriach launchpad dostępne są źródła dla Ubuntu, dzięki czemu instalacja sprowadza się do rutynowych kroków: dodanie źródeł oprogramowania i klucza do autoryzacji, aktualizacja pakietów i zainstalowanie aplikacji.

Recenzja: php|architect's Guide to PHP Design Patterns

Wzorce projektowe sprawdzają się bez względu od użytej technologii, jednak sposób implementacji często różni się w zależności od tego co oferuje dany język programowania. Ksiązka "php|architect's Guide to PHP Design Patterns" autorstwa Jasona Sweat'a przedstawia kilkanaście wzorców projektowych przydatnych przy pisaniu aplikacji internetowych w PHP 4 i 5. Chociaż tematyką książki są wzorce, to stanowi ona także świetny przykład zastowania metodyki Test Driven Development (TDD).

Parsowanie stron internetowych z użyciem sfWebBrowser i SimpleXML

sfWebBrowser to klasa emulująca wywołania przeglądarki internetwej. Dzięki niej możemy zaprogramować nawigację po stronie www przy pomocy przyjemnego, obiektowego interfejsu. Odpowiedź może zostać zwrócona jako element SimpleXML, co umożliwia wykonywanie zapytań xpath na parsowanym dokumencie. Niestety strony www rzadko są poprawnymi dokumentami XML. W większości przypadków sfWebBrowser raczej wyrzuci wyjątek, niż zwróci coś interesującego. Jest jednak sposób, aby temu zaradzić.

Tworzenie szkiców interfejsu użytkownika (UI mockups)

Od dawna brakowało mi aplikacji, która pozwoliłaby w łatwy i przyjemny sposób stworzyć szkic interfejsu użytkownika podczas specyfikowania wymagań. Takie rysunki pozwalają znaleźć wspólny język z klientem, wzbogacić scenariusze użytkowników (User Stories), a po definicji wymagań obrazują programiście co ma właściwie zakodować ;) Wprawdzie natknąłem się na kilka programów tego typu, jednak albo nie były przyjemne w obsłudze, albo nie oferowały elementów interfejsu strony www, czy były po prostu przydkie ;) Moje poszukiwania dobiegły końca, dzięki nowemu adwentowemu tutorialowi Symfony - Jobeet, gdzie w drugim dniu zastosowano Balsamiq Mockups. Program jest dla mnie niemal idealny.

Instalacja Oracle 10g w Gentoo

Oracle wspiera instalację swojej bazy danych tylko na niektórych dystrybucjach (np RedHat, SUSE). Wystarczy jednak odpowiednio przygotować system, aby dział na praktycznie każdej nowoczesnej dystrybucji. Przedstawiam opis bazujący na Gentoo, ale w podobny sposób zrobiłem to w Fedorze.

Microsoft Surface

Nie jestem wielkim fanem firmy Microsoft (wręcz przeciwnie), jednak to co zobaczyłem w prezentacji na stronie on10.net zrobiło na mnie duże wrażenie. Microsoft Surface to komputer z Windows Vista, wciśnięty w stolik z IKEI ;) Preferuję stoliki z IKEI nad Windows Vistę, ale nie o to tutaj chodzi...

Nieprawidłowe wyświetlanie plików PNG w MS Internet Explorer

Nie jeden webmaster klął na Microsoft© za nieprawidłowe wyświetlanie przezroczystości plików PNG w przeglądarkach Internet Explorer - zamiast niej otrzymujemy szare tło. Jedyne co pozostaje to zastosować GIFa, który rzadko się do tego nadaje. Przezroczyste pliki GIF często są poszarpane, a ich jakość jest oczywiście niższa - to dlatego, że ich przezroczystość ma tylko 8 bitów. Myślałem, że tego nie da się obeść w inny sposób niż zaczekać aż IE będzie niszową, mało znaczącą przeglądarką, albo zostanie wypuszczona jego nowa, poprawiona wersja. A jednak...

Kodowane kanały telewizji satelitarnej w dowolnej aplikacji DVB

Sasc-ng jest programowym modułem warunkowego dostępu (SoftCAM) nowej generacji, przeznaczonym dla systemów linuksowych. Pozwala na oglądanie kodowanych kanałów za pomocą dowolnej aplikacji, posiadającej wsparcie dla DVB, bez modyfikacji jej kodu źródłowego. Dekrypcja odbywa się w tle i jest przezroczysta dla programu DVB, który traktuje wszystkie kanały jak FTA.

Zaciemnianie kodu

Zaciemnianie kodu (code obfuscation) to proces czyniący go trudnym do przeczytania i zrozumienia, jednak pozostawiający nadal wykonywalnym. Perl ze swoimi zwariowanymi możliwościami składniowymi idealnie nadaje się do takich zabaw.

Optymalizacja FFdecsa

FFdecsa to szybka implementacja algorytmu deszyfrującego CSA dla pakietów MPEG TS. Algorytm ten jest używany w telewizji cyfrowej DVB do szyfrowania obrazu video. Korzystą z niego między innymi posiadacze kart DVB bez sprzętowego dekodera, którzy używają VDR do oglądania telewizji satelitarnej.

Kompilacja programów QT4 w Windows

Kompilacja programu napisanego w Qt wymaga oczywiście instalacji tej biblioteki. Trzeba będzie także zainstalować MinGW (Minimalist GNU for Windows). Na stronie Trolltech dostępny jest instalator, który pobierze i zainstaluje od razu oba pakiety.

QVdrRemote

Steruję VDR za pomocą pilota PCMAK, podłączanego do portu COM. Musiałem poświęcić ten port dla programatora PHOENIX, aby legalnie korzystać z karty cyfry+. Pojawił się problem z dostępem do VDR. Jest on tak zaprojektowany, że umożliwia sterowanie z użyciem klawiatury, jednak nie jest to wygodne. Można oczywiście użyć xine, jednak nigdy nie lubiłem tego rozwiązania (przypisane VDR klawisze kłóciły się z tymi z xine). Na szczęście do VDR można wysyłać komendy z użyciem SVDRP (Simple Video Disk Recorder Protocol), dzięki czemu bardzo łatwo jest tworzyć aplikacje z nim współpracujące.

Cyfra+ na ekranie monitora

Cyfra+ jest obecnie jedyną platformą cyfrową umożliwiającą wykupienie abonamentu bez dodatkowych kosztów związanych z kupnem dekodera, czy anteny satelitarnej. O ile bez anteny się nie obejdziemy, to do oglądania tv-sat z użyciem komputera dekoder nie jest nam potrzebny. Wystarczy niskobudżetowa karta DVB-S (na przykład SkyStar2) i programator PHOENIX.

Aparat fotograficzny Canon PowerShot A610

Stałem się niedawno zadowolonym posiadaczem aparatu fotograficznego Canon PowerShot A610. Jak przed zakupem każdego sprzętu sprawdziłem w google na jakim poziomie jest on wspierany przez system Linux. Z wstępnego rozeznania wynikało, że nie obędzie się bez drobnych problemów, ale da się z niego korzystać. Było jednak inaczej...