Sphinx, czyli szybkie i skuteczne wyszukiwanie

Sphinx to open source’owy silnik wyszukiwarki SQL. Sphinx jest dostępny na licencji GPL 2 i jest całkowicie darmowy do zastosowań webowych. Sphinx został stworzony przez rosyjskich programistów, aplikacja jest cały czas rozbudowywana i rozwijana, posiada płatny support. Zasada działania Sphinxa Sphinx jest aplikacją stand-alone, musi zostać skompilowany i zainstalowany na serwerze. Działa na zadadzie deamon-client. … Czytaj dalej „Sphinx, czyli szybkie i skuteczne wyszukiwanie”

Wyrażenia regularne unicode

Problem Mamy formularz z polami, które musimy zwalidować pod kątem poprawności danych. Pole może zawierać jedynie litery (duże, małe – wszystko jedno). Jakim wyrażeniem regualarnym realizujemy sprawdzanie? Pierwsza myśl to [a-zA-Z]… niestety walidacja nie zadziała poprawnie, gdyż w zakres [a-z] uwzględnia jedynie 26 liter alfabetu łacińskiego natomiast nie uwzględnia znaków diakrytycznych czyli litery [ą, ć, … Czytaj dalej „Wyrażenia regularne unicode”

Jak w XSLT usunąć puste węzły XML’a?

Problem: Mamy XML: <root> <category>Biznes</category> <category> </category> <category></category> <category>Hobby</category> </root> Poprzez transformacje XSLT, chcemy usunąć puste węzły kategorii. Rozwiązanie: <xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”> <xsl:template match=”/”> <root> <xsl:for-each select=”category”> <xsl:if test=”normalize-space(.)=””> <category> <![CDATA[<xsl:value-of disable-output-escaping=”yes” select=”normalize-space(.)” />]]> </category> </xsl:if> </xsl:for-each> </root> </xsl:template> </xsl:stylesheet> Wyjaśnienie: Instrukcja match=”/” wybiera wszystkie węzły XML’a Instrukcja for-each iteruje po wszystkich węzłach o nazwie … Czytaj dalej „Jak w XSLT usunąć puste węzły XML’a?”

Sortowanie względem pola nie będącego w DISTINCT ON

Problem: Chcemy wyświetlić jedynie unikalne rekordy względem konkretnego pola/pól i posortować innym polu. W naszym przykładzie chcemy otrzymać zestawienie id_user – ostatnie logowanie Posiadane dane: Tabela z datami logowań użytkowników aplikacji w tabeli postaci: CREATE TABLE logs( id SERIAL PRIMARY KEY, — unikalny klucz główny id_user INTEGER, — klucz obcy tabeli użytkowników date TIMESTAMP — … Czytaj dalej „Sortowanie względem pola nie będącego w DISTINCT ON”

Automatyczne przeglądanie kont na naszej klasie

Ostatnio zapragnąłem trochę posurfować po największym portalu społecznościowym w Polsce jakim jest Nasza-Klasa. Poniżej prościutki kod odwiedzający losowe konta. Deklarujemy zmienne do logowania, plik przetrzymujący ciasteczka i nazwę przeglądarki z jaką będzie się przedstawiał nasz automat. $cookie = 'cookie.txt’; $loginUrl = 'http://nasza-klasa.pl/login’; $login = 'login’; $password = 'pass’; $useragent = 'Mozilla/5.0 (X11; U; Linux i686; … Czytaj dalej „Automatyczne przeglądanie kont na naszej klasie”