Category Archives: WebDev

Installation of gem RMagick in Debian GNU/Linux

When installing RMagick gem you could step into some troubles with building this gem. Probably you are missing some development packages. In my case this was imagemagick itself plus some development headers:

Can't install RMagick 2.13.1. Can't find MagickWand.h.

apt-file search MagickWand.h showed that package libmagickwand-dev includes this file. So quick

apt-get install imagemagick libmagickwand-dev

solve this problem. After that gem install rmagick -v ‘2.13.1’  finished with success.

Number of Views :63169

Sphinx 2 w systemie Debian – budowanie paczki ze źródeł

Przy budowaniu niewielkich serwisów obsługujących niewielką ilość dokumentów(artykuły, wpisy, komentarze, etc) zaprzęganie dedykowanych serwerów do przeszukiwania mija się z celem. Swoje projekty w dużej mierze buduję w oparciu o świetny phpowy framework Zend, który posiada bibliotekę Zend_Search_Lucene bardzo łatwo przyswajalną do budowy własnego mechanizmu wyszukiwania opartego na dokumentach.

Jak się okazuje to zendowskie Lucene nie jest wcale takie dobre, kiedy liczba dokumentów zacznie przekraczać kilkadziesiąt tysięcy. Najgorsze i najbardziej skomplikowane zapytania do indeksu(zoptymalizowanego oczywiście) trwały mi po 4 – 6 sekund i więcej! Niestety takie rozwiązanie nie może zostać przyjęte przez żaden chcący nawet szanować się serwis. Szukając zatem jakiegoś lepszego rozwiązania trafiłem na otwarto źródłowy serwer przeszukiwania Sphinx.

Sphinx jest w całości napisany w C++ i posiada wygodne API, które jest dostępne w większości popularnych języków do tworzenia aplikacji internetowych(tylko takie mnie interesują na chwilę obecną 😉 ). W oficjalnym serwisie chwalą się twórcy osiągnięciami wydajnościowymi swojego produktu i muszę przyznać, że są one naprawdę imponujące. Sam po wstępnych testach serwera(a teraz już w produkcji) muszę przyznać, że tak piekielnie szybkiego rozwiązania do przeszukiwania to jeszcze nie miałem :-).

Chyba wystarczająco dużo już posmarowałem Sphinxowi, czyli teraz czas przejść do konkretów – instalacji. Po przejściu w podstronę pobierania serwera widzimy, że mamy dostępnych kilka wersji serwera. Od razu co przyszło mi na myśl to pominięcie tych archaicznych wersji 0.XX i skupienie się na najnowszej, chociaż ciągle w fazie beta, wersji 2.XX. Widząc, że nie ma tam paczki dla Debiana(ani w repozytoriach) z najnowszą wersją doszedłem do wniosku, że sam sobie ją zbuduję, a co?! 🙂 Proces produkcji takowej paczki jest bardzo prosty i sprowadza się do kilku ruchów klawiaturą w konsoli 😉

1. Pobieramy źródła ze strony producenta do katalogu /usr/src i tam je rozpakowujemy:

# cd /usr/src 
# wget http://sphinxsearch.com/files/sphinx-2.0.1-beta.tar.gz 
# tar zxvf sphinx-2.0.1-beta.tar.gz

2. Instalujemy wymagane paczki do budowania pakietów Debiana:

# apt-get install build-essential fakeroot dpkg-dev dh-make

Wchodzimy następnie do katalogu ze źródłami i przygotowujemy je do zbudowania pakietu:

# cd 
sphinx-2.0.1-beta
 

# dh_make -f /usr/src/ sphinx-2.0.1-beta.tar.gz

 

Tutaj na pytanie o tym paczki odpowiadamy “s”(single binary), przy następnym pytaniu wciskamy ENTER i powinien naszym oczom ukazać się komunikat, że przygotowanie źródeł oryginalnych do specyfiki źródeł debiana powiodły się.

Opcja “-f” w tym przypadku mówi aplikacji dh_make aby jako archiwum źródeł oryginalnych wykorzystać te, które ściągnęliśmy na początku procesu budowy paczki.

Po przygotowaniu źródeł do budowy pakietu Debiana możemy wyedytować plik debian/control i wstawić tam swoje dane. Po czym przechodzimy do budowy paczki:

# dpkg-buildpackage -rfakeroot

Jeśli budowanie pakietu jest przeprowadzane na maszynie wielordzeniowej lub wieloprocesorowej to można w tym miejscu użyć opcji -jX(np.: -j8), gdzie X to liczba rdzenie, wątków lub procesorów, które posiadamy. Opcja ta jest analogiczna do tej, którą można spotkać w programie make.

W ostatnim etapie budowania pakietu dostałem błąd z “uber testa”, kombinować za dużo mi się nie chciało i żeby się go w miarę szybko pozbyć edytowałem plik ubertest.php:

# vim text/ubertest.php

i na samym początku skryptu dałem wyjście ze statusem 0

1 <?php

2 exit(0);

 

3 //
4 // $Id: ubertest.php 2765 2011-04-08 13:07:32Z klirichek $
5 //
6
7 $sd_managed_searchd = false;
8 $sd_skip_indexer = false;
9 $g_ignore_weights = false;

Po czym odpaliłem ponownie budowanie pakietu i tym razem proces budowania paczki przeszedł bez żadnych problemów do samego końca. W katalogu wyżej od teraz dostępny mam teraz przed momentem zbudowany pakiet z rozszerzeniem .deb, który przy pomocy dpkg można zainstalować i przejść do konfiguracji swojego serwera wyszukiwania.

Przykładem takiej konfiguracji może podzielę się kolejnym razem 🙂

 

Number of Views :3499

Aktualizacja Google Chrome do wersji 6.0.472.11 dev

Pojawiła się aktualizacja do przeglądarki Google Chrome (wersja 6.0.472.11 dev), w której poprawionych zostało sporo błędów. Dla mnie najważniejsza poprawka to przywrócenia poprawnego działania narzędzia dla programistów. We wcześniejszej wersji nie działał podgląd elementów strony (zbadaj element).

Ciągle nie działa podgląd dokumentów PDF (w Linuksie i Macu) to jednak da się to obejść importując dokument do podglądu w Google Docs. Wystarczy dokleić adres dokumentu PDF do ciągu:

http://docs.google.com/viewer?url=

i żądany plik zostanie wyświetlony w narzędziu potentata z Mountain View.

Number of Views :2137

Słownik języka polskiego – wtyczka dla Google Chrome

Czy mówiłem już, że zrobiłem API do słownika synonimów spiętego z wtyczką dla Google Chrome? Chyba nie miałem czasu napisać kilku zdań na temat wtyczki Słownik języka polskiego, ale jak tylko uda mi się znaleźć chwilę opiszę sposób korzystania z przygotowanego API.
Jeśli ma ktoś jeszcze pomysł na inne słowniki, chętnie przyjmę je do siebie na serwer i udostępnię je w postaci prostego API oraz postaram się je sprytnie włożyć do swojej wtyczki 🙂
Number of Views :3666

Showcase Of Web Design In Poland

Vodka, pickled cucumbers and Pope John Paul II might spring to mind when someone mentions Poland. Obviously there’s more to Poland than that. On the world map of design, Poland is marked by creative agencies that produce high-level design and employ some of the best programmers in the world. There’s also a crowd of freelancers and visionaries who have received worldwide recognition.

Smashingmagazine.com wziął pod nóż polski web-rynek przygotowując podsumowanie kreatywności lokalnych webdesignerów. Trzeba przyznać, że nasi programiści i graficy stoją na wysokim poziomie i cieszy taka postać rzeczy i uznanie zagranicznych mediów. (czytaj dalej na smashingmagazine.com)

Number of Views :1005

Możliwości HTML5 według Apple

Po opublikowaniu przez CEO Apple Steve’a Jobs’a otwartego listu Thoughts on Flash firma kontynuuje swoje poczynania w popularyzacji technologii HTML5. Właśnie została stworzona galeria z możliwościami HTML5 podług implementacji Safari(??).

Oczywiście próba otworzenia któregokolwiek dema kończy się ujrzeniem ładnego komunikatu mówiącego o tym, że moja przeglądarka nie wspiera najnowszych web standardów (Chrome 6). Sprytne skopiowanie adresu również nie przynosi zamierzonego efektu.

Pomimo tych wszystkich utrudnień nic straconego, ponieważ po wejściu do centrum dla programistów Safari mamy możliwość obejrzenia prezentacji z galerii HTML5.

Mnie osobiście najmocniej urzekło demo Web Typography. Możliwości jakie dostaje webdeveloper są już na chwilę obecną bardzo duże. Cieszy mnie fakt, że korporacje mocno przykładają się do popularyzacji i rozwoju HTML5.

Number of Views :1156

Google idzie w stronę HTML5 odchodząc od GEARS

Na oficjalnym blogu Gears API pojawiła się informacja mówiąca, że przyczyną małej ilości uaktualnień do projektu jest zmiana nacisku potentata na rozwój standardu HTML5 kosztem Gearsów. Do póki nie będzie możliwe “bezbolesne” przejście na HTML5 Google będzie oferowało jeszcze wsparcie dla Gears. Już w styczniowym wydaniu przeglądarki Google Chrome uwzględniono między innymi database API, workers, local storage, Web Sockets. Wszystkie funkcjonalności są dostępne lub zbliżone do tych z gears. W kolejnych wydaniach przeglądarki Chrome zapewne będziemy mogli cieszyć się obsługą kolejnych udogodnień, które wprowadza specyfikacja HTML5

Gears umożliwiło deweloperom stworzenie wielu przydatnych funkcji w aplikacjach internetowych, dla przykładu tryb offline był możliwy do osiągnięcia właśnie dzięki pomocy Google Gears.

Number of Views :796

Google: ​Modern browsers for modern applications

Many other companies have already stopped supporting older browsers like Internet Explorer 6.0 as well as browsers that are not supported by their own manufacturers. We’re also going to begin phasing out our support, starting with Google Docs and Google Sites. As a result you may find that from March 1 key functionality within these products — as well as new Docs and Sites features — won’t work properly in older browsers.

Read more: Official Google enterprise blog

Number of Views :1092

Ukazał się Zend Framework 1.10.0

Programiści firmy Zend Technologies opublikowali stabilną wersję 1.10.0 frameworka Zend, który służy do tworzenia aplikacji w PHP. Oprócz kilku nowych funkcji programiści w aktualnym wydaniu Zend Framework opracowali na nowo dokumentację. Mówiąc ściślej, chodzi tu o zrestrukturyzowanie rozdziałów i nowe przewodniki. Dla każdej pomniejszej wersji, czyli np. 1.10, 1.9, 1.8 itd., przygotowano specjalnie dopasowane wprowadzenie i dokumentację API. Ma to ułatwić użytkownikom pracę ze starszymi wersjami frameworka.

Czytaj dalej: Ukazał się Zend Framework 1.10.0

Number of Views :779