2010-01-25
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
2009-12-31
Z okazji kończącego się roku, krótkie podsumowanie najchętniej czytanych przez was artykułów:
- O mnie – 15%
- TCPDF – polskie czcionki – 14%
- Symfony admin generator – optymalizacja zapytań do bazy dla Doctrine – 6%
- svn:externals – czyli jak utrzymać porządek w wersjonowanym kodzie – 3%
- Live events w jQuery 1.3 – 3%
Poza tym sporą oglądalność ma strona główna z oglądalnością rzedu 10%. Blog z miesiąca na miesiąc notuje coraz wyższą odwiedzalność. Jeśli jest jakiś temat, który poruszyłem, albo mogę poruszyć i jest warty rozwinięcia jako post na blogu, to proszę o sygnał w komentarzu, emailem do mnie lub poprzez twitter: twitter.com/sznapka.
Do siego roku!
Read more
2009-11-28
Everybody knows, that PostgreSQL is one of the best open-source RDBMS. The keyword here is „relational” database. For most purposes relational structure is okay, but sometimes we have to store highly complicated hierarchical data. Mapping such hierarchical structure to relational tables could be a real pain. A simple solution is to use a hierarchical markup language to present our data – XML. Luckily PostgreSQL provides a data type for storing XML documents. I was very optimistic about it, but it didn’t meet all my expectations.
Read more
2009-11-09
I just came back from the third edition of RuPy Conference, which take place in Poznań. As last year, it was very successful. There are my feelings about conference.
Read more
2009-10-28
Ostatnio zetknąłem się z problemem wspólnych partiali dla wszystkich aplikacji w projekcie Symfony (dokładnie frontend i backend). Dokładniej, to te partiale były templatkami mailowymi, wysyłanymi zarówno przy zdarzeniach wygenerowanych w frontendzie jak i w panelu administracyjnym. Jako, że ponad wszystko cenię zasadę DRY (Don’t Repeat Yourself, czyli Nie Powtarzaj Się), chciałem, aby moje templatki były napisane raz, a używane z każdego miejsca w projekcie. Pewnym rozwiązaniem byłoby zrobienie symlinka: apps/frontend/modules/mails -> apps/backend/modules/mails i to działa, ale nie jest zbyt eleganckie. Z pomocą przyszła analiza kodu Symfony (dzięki Bogu, że jest Open Source:-)).
Read more
2009-06-30
Dzisiaj światło dzienne ujrzała kolejna odsłona jednego z najpopularniejszych języków skryptowych – PHP oznaczone wersją 5.3. Wersja ta jest znacząca w rozwoju PHP, będąca swego rodzaju pośrednikiem pomiędzy wersją 5 a 6. Główne funkcjonalności wprowadzone w PHP 5.3 to:
Read more
2009-05-22
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
2009-03-15
14 stycznia została wydana wersja 1.3 jednego z najpopularniejszych frameworków javascriptowych – jQuery. Jak dobrą i wygodną biblioteką jest jQuery wszyscy czytający pewnie wiedzą. Jedną z ciekawszych nowości w jQuery 1.3 są live events.
Wyboraźmy sobie, że mamy do stworzenia kilka elementów i wstawienia ich w DOM. Jeśli te elementy mają mieć określone eventy, to przy każdym wstawieniu do drzewa DOM musimy im dodatkowo przypisać pożądane funkcje pod określone eventy. Bywa to momentami męczące i błędogenne i właśnie na tego typu operacje lekarstwem są live events.
Read more
2009-02-19
Często zdaża się, że w projekcie, który wersjonujemy w SVN mamy foldery, które chcemy wykluczyć z zarządzania wersjami. Takie foldery to przeważnie katalog na logi, cache, upload i tym podobne. W tej sytuacji rozwiązaniem są SVN Properties, a konkretnie svn:ignore.
Read more
2008-11-03
Pewnie nie jednemu programiście aplikacji webowych zdarzyło się, że po wystawieniu swojej księgi gości na świat, po paru dniach znajduje na niej kilkanaście spamowych wpisów. Ja również doświadczyłem tego ostatnio. Większość w takim przypadku decyduje się na zastosowanie CAPTCHA, czyli obrazka z zdeformowanym tekstem, który użytkownik musi podać przy dodawaniu posta. Jest to rozwiązanie średnio przyjemne, coraz mniej skuteczne i bardzo odstraszające potencjalnych gości, którzy są ludźmi. Postanowiłem więc napisać prosty filtr (w tym przypadku został on akurat wykorzystany jako validator w Symfony), który będzie wyszukiwał słowa, które na 99% znajdą się tylko w niechcianych wiadomościach.
Pewnie nie jednemu programiście aplikacji webowych zdarzyło się, że po wystawieniu swojej księgi gości na świat, po paru dniach znajduje na niej kilkanaście spamowych wpisów. Ja również doświadczyłem tego ostatnio. Większość w takim przypadku decyduje się na zastosowanie CAPTCHA, czyli obrazka z zdeformowanym tekstem, który użytkownik musi podać przy dodawaniu posta. Jest to rozwiązanie średnio przyjemne, coraz mniej skuteczne i bardzo odstraszające potencjalnych gości, którzy są ludźmi. Postanowiłem więc napisać prosty filtr (w tym przypadku został on akurat wykorzystany jako validator w Symfony), który będzie wyszukiwał słowa, które na 99% znajdą się tylko w niechcianych wiadomościach.
Read more