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

PHP 5.3 ujrzało światło dzienne

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

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

Live events w jQuery 1.3

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

Import użytkowników z hasłami w md5 do sfDoctrineGuardPlugin

Import użytkowników z zewnętrznej tabeli do pluginu sfDoctrineGuardPlugin dla Symofny, nie jest taki prosty na jaki wygląda na pierwszy rzut oka. Wydawałoby się, że wystarczy w pętli tworzyć obiekt klassy sfGuardUSer, ustawiać username i password dla niego oraz wywoływać metodę save(). Nic bardziej mylnego. SfDoctrineGuardPlugin do przechowywania haseł używa hasha tworzonego na podstawie soli (salt), dzięki temu zwiększa się bezpieczeństwo. Dodatkowo domyślnie używanym algorytmem jest sha1, a nie popularny md5, stosowany z zapałem przez wielu programistów PHP. Cały problem polega na tym, że plugin przy tworzeniu nowego obiektu, generuje sól (chyba, że podamy własną) i nie przyjmuje do informacji, że ustaliliśmy jej wartość NULL. Małym pocieszeniem jest fakt, że możemy własnoręcznie ustawić dla rekordu algorithm na md5, ale mimo wszystko po ustawieniu hasha do atrybutu password, zostanie on połączony z solą i ponownie zahashowany, co rozwali wszystkie nasze hasła.

Aby temu zapobiec, należy stworzyć klasę ImportsfGuardUser i umieścić ją w lib/ (nie zapomnij wyczyścić cache symfony):

Read more

Porządek w SVN, część 2, czyli jak łatwo użyć svn:ignore

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

Symfony admin generator – optymalizacja zapytań do bazy dla Doctrine

Ostatnio w projekcie Symfony 1.1 z użyciem Doctrine, dzięki webdebug toolbarowi, dostrzegłem czegoś, co mnie przeraziło. Otóż, jeśli w wygenerowanym przez Symfony adminie mamy klucze obce na liście, to wywoła on tyle zapytań ile elementów * ilość kluczy obcych.

Read more

Prefix w URLach Symfony

Jeśli z jakiegoś powodu potrzebujesz prefixu w url’u generowanym przez routing Symfony (lub w szczególności go tam nie potrzebujesz a pojawia się z powodu nietypowej konfiguracji serwera), można to osiągnąć w bardzo prosty sposób. Wystarczy w pliku apps/nazwa_aplikacji/config/factories.yml w sekcji all wpisać:

all:
  request:
    class: sfWebRequest
    param:
      relative_url_root: -

Powyższy kod usunie zbędny prefix. Zamiast myślnika można wpisać dowolny ciąg znaków, będzię się on pojawiał w postaci: http://twojserwer.pl/twoj_prefix/nazwa_aplikacji.php/modul/akcja. Ten trick może być też potrzebny jeśli symfony jest zainstalowane w podkatalogu wirtualnego hosta.

Read more
older
newer