MongoDB – baza danych zorientowana dokumentowo. Czy ruch NoSQL ma sens?
Napisane przez wowo | Kategorie: webdev
Ostatnio miałem przyjemność poprowadzić w mojej firmie ”Piątek z XSolve” prezentując temat “MongoDB – baza danych zorientowana dokumentowo. Czy ruch NoSQL ma sens?”.
MongoDB jest bazą nowej generacji, która jest zorientowana na przechowywanie dokumentów JSON, o dowolnej strukturze. Nie mamy w tym przypadku problemów z schamatami bazy, czy migracjami na nowsze wersje jej struktur. MongoDB, jak i inne rozwiązania nurtu NoSQL, jest stworzona z myślą o pracy w dużych obciążeniach oraz posiada wbudowane mechanizmy skalowania i replikacji. Baza ta posiada bardzo przyjemne API dostępu do danych, które jest podobne do niektórych bibliotek ORM.
Podczas prezentacji i dyskusji jaka się rozwinęła, staraliśmy się odpowiedzieć na pytanie “Czy ruch NoSQL ma sens?”. Odpowiedź, zarówno moja, jak i kolegów była jednoznaczna: tak, ale tylko gdy NoSQL, będziemy rozwijać jak Not only SQL. Bazy nierelacyjne mogą być doskonałym uzupełnieniem dla baz SQL, ale raczej mało prawdopodobne, żeby w całości zastąpiły bazy relacyjne w złożonych aplikacjach i systemach.
Zapraszam do obejrzenia slajdów z prezentacji (podczas prelekcji był jeszcze pokaz “na żywo” możliwości bazy, którego w slajdach niestety nie ma).
Symfony sfWidgetFormSelect with disabled options
Napisane przez wowo | Kategorie: Symfony, php, webdev
The sfWidgetFormSelect doesn’t provide ability to render disabled options. It’s rarely used feature of a HTML select element, but sometimes it could save your life :-) In fact, we can achieve this feature by creating our own widget, like one listed below, which inherits from sfWidgetFormSelect. This solution is inspired by problem posted on Symfony Experts. Czytaj resztę wpisu »
Tagi: php, sfWidgetFormSelect, Symfony, widget
NK Feed – widget nasza-klasa.pl do netvibes.com oraz iGoogle
Napisane przez wowo | Kategorie: webdev
Mam przyjemność zaprezentować widget mojego autorstwa: NKFeed, dzięki któremu na waszej stronie startowej netvibes.com możecie oglądać ostatnio dodane zdjęcia przez waszych znajomych z nasza-klasa.pl. Widget ten jest dostępny w ecosystemie netvibes pod linkiem: http://eco.netvibes.com/widgets/378267/nk-feed Widgetu można używać również w czytniku iGoogle.com
Zapraszam do używania oraz dzielenia się wrażeniami oraz ewentualnymi napotkanymi problemami.
Tagi: nasza-klasa.pl, netvibes, widget
Symfony Mixins – how to extend symfony core classes without inheritance
Napisane przez wowo | Kategorie: Symfony, php
Symfony is very powerful PHP framework, one of the most popular in the PHP world. In big projects you should probably noticed, that there isn’t easy way to extend core classes, which aren’t returned by factories, for example actions classes. Every generated module has actions.class.php, which inherits from sfActions. What, if we want to have same method in few actions, let’s call it getCurrentDay to achieve effect listed bellow?
class defaultActions extends sfActions
{
public function executeIndex(sfWebRequest $request)
{
$year = $request->getParameter('year', date('Y'));
$this->day = $this->getCurrentDay($year);
$this->month = $this->getCurrentMonth($year);
}
}
Current day is <strong>Monday 2010</strong> The month is <strong>February</strong>
Tagi: events, extending, mixins, Symfony
Which convention is more common “static public function” or “public static function” (based on Symfony and Doctrine)
Napisane przez wowo | Kategorie: Linux, Symfony, php, webdev
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 :-)
Tagi: bash, Doctrine, php, scripting, Symfony
Podsumowanie 2009 roku
Napisane przez wowo | Kategorie: Ogólne
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!
I’m on Twitter
Napisane przez wowo | Kategorie: Ogólne
As you probably noticed, I’m on Twitter for some time. You can follow me with this link: @sznapka. I’m tweeting mostly on webdev topics. You can see my latest tweets on the right sidebar :-)
Using XML and XPath in PostgreSQL database
Napisane przez wowo | Kategorie: webdev
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. 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 meets all my expectations.
Tagi: postgres, postgresql, xml, xpath
My feelings about RuPy 2009
Napisane przez wowo | Kategorie: Python, webdev
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. Czytaj resztę wpisu »
Tagi: conference, git, poznań, Python, rails, ruby, rupy
Cross-application partial w symfony
Napisane przez wowo | Kategorie: Symfony, php, webdev
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:-)).



