Dynamic LAMP setup for localhost development

If you are developing PHP application on your own PC, you probably have some vhost based configuration of your Apache. With some tricks, you can turn your Linux box into powerful development server without configuring vhost for every app . In the minimum configuration effort, you need to pass those steps:

  1. checkout repository to disk
  2. create vhost configuration with some ServerName
  3. create entry in /etc/hosts which reflects server name used in vhost to 127.0.0.1

I’m pretty sure, that above path is used by many developers. We can ommit two lasts steps, limiting preparation of the environment only to place source code somewhere in filesystem. To achieve this we need mod_vhost_alias module for Apache2 and simple DNS server which will resolve local domain names for us.

Read more

Which convention is more common „static public function” or „public static function” (based on Symfony and Doctrine)

Few minutes ago Brent Shaffer asked on the Twitter

Which is more standard, „public static function” or „static public function”?

I was curious about it, so I’ve checked which convention is used in my favourite Symfony Project. Of course, I haven’t got enough time to check it manually, class by class, so I wrote simple bash script:

egrep "^[^\*/]*static.*function" /usr/share/php/symfony/ -rioh --include=*.php | sed 's/^\s*//g' | sort | uniq  -c | sort -r

The answer  for the Symfony 1.2 was:

685 public static function
181 static public function
27 static protected function
16 protected static function
16 private static function
11 static function
2 abstract public static function

I’ve done same thing for Doctrine ORM Project

egrep "^[^\*/]*static.*function" /usr/share/php/Doctrine/lib/ -rioh --include=*.php | sed 's/^\s*//g' | sort | uniq  -c | sort -r

and the result was:

78 public static function
6 static public function
6 static protected function

Now I can tell that „public static function” is more common, and by the way I use same convention in my classes 🙂

Read more

wigwam.sh – pobieranie notowań GPW w Linuksie oraz wyświetlanie ich w Conky

W ostatnim poście na temat monitora systemu Conky wspomniałem, że za niedługo pojawi się kolejny wpis na ten temat i słowa dotrzymałem 🙂 Dzisiaj pokażę jak prostym skryptem można pobrać notowania głównych indeksów Giełdy Papierów Wartościowych (WIG, WIG20, mWIG40, sWIG80) i jak ładnie wyświetlić je w wprost na pulpicie Linuksa za pośrednictwem Conky.

Read more

Conky – wielofunkcyjny monitor systemu

Conky jest darmowym, lekkim monitorem systemu dla X’ów, wyświetlającym informacje na Twoim pulpicie. Conky jest on na licencji GPL i działa na systemach Linux oraz BSD.

Nie odkrywam tutaj Ameryki, Conky jest dostępny od 2004 roku, a ja pierwszy raz zobaczyłem go w działaniu jakieś dwa lata temu. Jednak ostatnimi czasy zapragnąłem mieć trochę większy wgląd w to, co dzieje się w moim systemie. Poniżej wycinek mojego pulpitu, a także moja konfiguracja .conkyrc. Conky dodatkowo korzysta z skryptu pogodynka.sh oraz małego skryptu adsl-ip.sh, mojego autorstwa, który sprawdza IP i hosta dla łącz typu ADSL (ze zmiennym IP).

Read more

Zliczenie ilości commitów dla poszczególnych użytkowników SVN

Jeśli interesuje was ile poszczególni użytkownicy SVN’a wykonali commitów, to w głównym folderze repozytorium z poziomu linii komend Linuksa wystarczy wydać komendę:

svn log |grep "^r.*|.*" |awk '{print $3}' | sort |uniq -c

Powinniśmy otrzymać coś w tym stylu:

     83 janek
    177 franek
    221 heniek
      8 bolek
    485 marian

Dzięki temu, mamy pogląd na zaangażowanie naszych kolegów w rozwój repozytorium 🙂

Read more

Synchronizacja historii rozmów Pidgina pomiędzy różnymi komputerami

Pidgin jest moim ulubionym komunikatorem, jest prosty, funkcjonalny, stabilny i dostępny na windowsa i linuksa. Próbowalem już wielu programów (głównie pod windows) począwszy od standardowego klienta GG, który kiedyś był marnej jakości, poprzez Tlena, Kontakt, Pidgina na Windows, aż na Pidginie na Linuksa skończywszy. Jedyną bolączką był fakt, że nie miałem dostępu do historii rozmów prowadzonych w domu, z komputera w pracy i odwrotnie. Rozwiązanie tego problemu jest prostsze, niż myślałem 🙂

Read more

Sans-serif w CSS’owym font-family, czy to komuś potrzebne?

Odpowiedź na to pytanie brzmi: tak! Gdy używasz czcionek, które powinny być w każdym Windowsie, to Twoja strona ładnie się wyświetli w Windowsie, ale już raczej średnio w Linuksie, który może nie mieć czcionek windowsowych. W takim przypadku przy wyświetlaniu czcionki Tahoma, zamiast tego linuksiarze zobaczą domyślną czcionkę szeryfową (czyli coś pokroju windowsowego Times New Roman). Efekt jest naprawdę niepiękny. Rozwiązaniem tego jest prosty trick, który należy wykonać umieszczając definicje czcionek w CSSie (przeważnie jest to jedno miejsce, np body):

font-family: Tahoma, sans-serif;

Ten zabieg pozwoli zastępować niedostępne czcionki domyślną czcionką nieszeryfową dla systemu. Drobiazg, ale jak to mówią: diabeł tkwi w szczegółach.

Read more

Metody synchronizacji projektu z serwerem produkcyjnym

Większość z programistów aplikacji webowych wie, że transfer na serwer produkcyjny to często tzw. „pain-in-the-ass” (po polsku: źródło nieszczęścia). W tym poście opowiem trochę, o znanych mi sposobach przesyłania aplikacji na serwer produkcyjny.

Read more