Produktywność przy 30°
kategoria: Ogólne

Gdy jest „deczko” gorąco i nie bardzo się cokolwiek chce można przykładowo:
- Iść na zakupy do sklepu z klimatyzacją (bo zakupy i tak trzeba zrobić, prawda?).
- Wykąpać się w niezbyt ciepłej wodzie.
- Zrobić nadgodziny w pracy (jeśli jest klimatyzacja ;)).
I tyle. Nic więcej mi do głowy nie przychodzi, a nie chciałbym zmarnować czasu siedząc jak warzywo w oczekiwaniu na ochłodzenie… Co innego, w miarę produktywnego, można zrobić jak jest ponad 30°?
KDE 4: co potrafi alt+F2 (KRunner)
kategoria: Arch Linux, KDE i okolice, Techblog |

Jak widać na powyższym obrazku, dzięki Krunnerowi możemy uruchamiać programy (pełne zaskoczenie ;-)). Jednak w KDE 4 i kolejnych jego aktualizacjach, twórcy dodali parę ciekawych bajerów. Co ważne, nie powodują one ociężałości tegoż startera. Oto kilka z tych bajerów.
Zarządzanie komputerem
lock— blokuje ekranrebootrestartshutdownlogout
Kalkulator

Obliczeń możemy dokonywać, gdy zaczniemy lub skończymy wpisywaną frazę znakiem równości. Wygodniej jest jednak zaczynać, bo Krunner od razu rozumie co chcemy osiągnąć i podaje wynik na bieżąco. Działające przykłady:
=2+22*3=(1+2)*3==sin(60)+sqrt(1/2)
Otwieranie menadżera plików
Wystarczy wpisać ścieżkę:
~(trochę szybszy sposób niż wpisaniedolphin)/var/log
Przeliczanie jednostek (miar i wag)
Działające przykłady (nie trzeba wpisywać całości):
1 inch in centimeter3 square meters in square miles1 gallon in liters
Przeliczanie walut

Przeliczanie walut (podobnie zresztą jak i inne opcje) jest o tyle fajne, że działa dla różnych zapisów: nie ma różnicy czy napiszemy pln, PLN, zloty, zlotys czy zl, ale uwaga, tylko z prawej strony „równania”. Z lewej trzeba już dokładniej wpisać (np. pln działa z prawej, ale z lewej nie).
100000 euro in PLN2 $ in euros
Jeśli chcemy wiedzieć skąd KDE bierze kursy walut — wystarczy kliknąć link pod wynikiem.
Sprawdzanie pisowni

spell jakieś-słowo
Podsumowując
Oczywiście KRunner potrafi trochę więcej (m.in. przeszukiwanie kontatków, bookmarków, otwieranie adresów internetowych, zarządzanie energią), wystarczy tylko przeklikać jego interfejs, żeby odpowiednie rzeczy pow(y)łączać (ikonka „kluczyk”) oraz sprawdzić jak się z nich korzysta (ikonka „znak zapytania”). Niektóre mogą być przydatne tylko w specyficznych przypadkach, inne mogą być kompletnie bezużyteczne. Ja na razie korzystam z wyżej przedstawionych, które i tak już mocno ułatwiają życie.
Aktualizacja Arch Linuksa — tym razem chyba się poddam
kategoria: Arch Linux, KDE i okolice, Techblog |
Raz na jakiś czas, wykonując magiczne pacman -Syu w Archu musi się coś popsuć, inaczej Arch nie byłby Archem. Jednak ja jestem teraz stary, zrzędliwy i leniwy i wcale mi się nie chce go kolejny raz naprawiać.
Co tym razem padło? Nawet dokładnie nie wiem. Jedyny trop to zmiany w sterownikach Intela. Aktualne objawy: czarny ekran, wcześniejsze: niedziałające klawiatura i touchpad. Grzebiąc na forum doszukałem się paru podpowiedzi (związanych z włączaniem KMS), ale nic nie pomogło. Podobno jest jakiś bug, który będzie poprawiony w następny podobno kernelu. Mnie się czekać nie chce i chociaż jestem sentymentalnie do mojego starego notebooka (i 4-5 letniego Archowania na nim) przywiązany to chyba wymienię system na Ubuntu. Ma toto swoje plusy i minusy, ale przynajmniej bez grzebania się prawie nie psuje, a ja coraz mniej grzebię.
Tak naprawdę, to napisałem to, bo liczę, że ktoś napisze „ty baranie, zapomniałeś o xxx i yyy” co pozwoli ożywić mojego staruszka. Ale jak nie to litości nie będzie…
Jeszcze dla formalności: inna (stacjonarna) maszyna przeżyła ostatnie aktualizacje (KDE 4.4) prawie bezproblemowo. Tylko stabilny RawTherapee coś zaniemógł, ale wersja 3.0 alpha za to chodzi dobrze.
Vim: dopełnianie dowolnego tekstu (np. słów kluczowych PHP)
kategoria: Techblog, Vim |
Vim posiada dwa bardzo przydatne skróty klawiszowe: ctrl-n oraz ctrl-p. Obydwa służą do dopełniania słów, pierwszy zaczyna szukać za kursorem, drugi przed nim. Domyślnie Vim korzysta ze słów z bieżącego pliku oraz z wszystkich otwartych buforów.

Można jednak tę funkcjonalność rozszerzyć dodając własny słownik. Sam słownik, to zwykły plik tekstowy, w którym słowa są oddzielone białymi znakami. Posiada on jednak dość dziwne ograniczenie — czyta tylko 511 znaków w jednej linii, dlatego nie wolno przesadzać z ich długością.
Słownik może być np. takiej postaci:
dzięciowodoronaftalen dziewięciodoronaftalen antypolonazsiderywizacjaimigtenwadsioptaweertyytna fluorochlorowęglanowodoroazotanocydy konstantynopolitańczykowianeczka cześć
Aby skorzystać ze słownika należy dodać 2 linijki (właściwie może być jedna) do ~/.vimrc:
set dictionary+=~/sciezka/do/slownika set complete+=k
Pierwsza komenda ładuje słownik, druga sprawia, że możemy go przeszukiwać za pomocą wcześniej wspomnianych skrótów (domyślnie trzeba byłoby wciskać ctrl-x-k). Słowników może być wiele.
Słownik możemy sobie utworzyć na bazie plików Vima ze składnią do języków programowania (pod Archem i debianopodobnymi w katalogu /usr/share/vim/vim72/syntax/). Należy tutaj jednak pamiętać o ograniczeniu długości linii. Dlatego dla samego PHP udostępniam gotowy słownik słów kluczowych.
Wpis ukazał się również na blogu Code42, gdzie także się udzielam.
LaTeX: dla kogo i czy warto?
kategoria: LaTeX, Techblog |
Dla tych, którzy nie znają — LaTeX (wymowa „latech”) to system i język do składania tekstu. Ok, tylko tekst można pisać w Microsoft Word czy OpenOffice Writer — więc po co mi to cudo?
Otóż, jeśli twoje dzieła ograniczają do kilku stron lub też kompletnie nie zależy Ci na wyglądzie typograficznym to prawdopodobnie nauka LaTeX-a będzie tylko stratą czasu. Sprawa ma się zupełnie inaczej gdy chcesz napisać pracę inżynierską/licencjacką/magisterską albo jakąś książkę. Chociaż jest też dużo innych, bardziej specyficznych zastosowań, jak wzory matematyczne, prezentacje czy nuty.
Idea
LaTeX (czy właściwie sam TeX) opiera się na idei oddzielenia treści od prezentacji. Powstał po to, aby autorzy mogli skupić się na pisaniu kolejnych paragrafów, umieszczania ich w rozdziałach i sekcjach, dodawaniu tabel, list, wzorów czy figur jednoczenie nie przejmując się za bardzo ostatecznym wyglądem tych elementów.
Jak się w tym pisze
Od strony technicznej LaTeX przypomina język programowania, jednak nie należy się tego faktu bać. Podstawy są bardzo proste i wystarczą one do większości zastosowań.
Bardzo prosty przykład. Plik źródłowy.
Sprawa robi się bardziej skomplikowana przy bardziej specyficznych sprawach, np. wzorach matematycznych. Jednak nie wszystkim to potrzebne.
Przykład wzoru matematycznego. Plik źródłowy.
Żeby nie było za różowo: LaTeX jest jednak stosunkowo trudny w nauce, przynajmniej na początku. Zwykle jednak poświęcony czas się później zwraca, gdyż nie występują tam problemy znane edytorów typu Word takie jak rozwalenie całego układu po wstawieniu czegoś w środku czy zgubienie formatowania w niezbyt wiadomym momencie (i pewnie wiele innych, o których już na szczęście zapomniałem).
Plusy i minusy
Do niewątpliwych zalet należą:
- LaTeX jest darmowy i ma otwarte źródła.
- Pisać możemy w dowolnym edytorze tekstu. Dodatkowo istnieje wiele narzędzi dostosowanych specjalnie do tego języka.
- LaTeX dba za nas o wiele podstawowych rzeczy związanych z wyglądem, a także bardzo ułatwia tworzenie ładnych spisów tabel, bibliografii, przypisów czy spisów treści.
- Źródło dokumentu jest w formacie tekstowym, więc może być objęte systemem kontroli wersji, co jest bardzo przydatne, gdy tworzymy dokument w kilka osób.
- Można łatwo utworzyć dokument w formacie PDF, który przecież jest standardem.
- I na koniec najważniejsze: z łatwością tworzymy dokumenty, które są po prostu piękne!
Oczywiście nie ma róży bez kolców. LaTeX rozwiązuje za nas tysiąc problemów, wprowadza kilkadziesiąt nowych, jedank ostatecznie i tak jesteśmy na dużym plusie. Najbardziej oczywiste wady:
- Sporym problemem są dość zakręcone komunikaty błędów. Trzeba do nich po prostu przywyknąć, żeby wiedzieć o co może chodzić.
- Problem, który przerabiał chyba każdy „latexowiec”: wstawianie grafik tam gdzie chcemy. Standardowo pojawiają się one tam, gdzie pasuje to do układu stron, co czasami może oznaczać, że grafiki wystąpią przed tekstem po którym się znajdują. Oczywiście można z tym walczyć.
Jednak mimo tych (i innych) wad warto zainteresować sie LaTeX-em, gdyż po opanowaniu podstaw na pewno proces tworzenia dokumentów będzie sprawniejszy, a efekty dużo lepsze i ładniejsze.
Więcej informacji / bilbliografia
Wypróbuj online
Działanie LaTeX-a można wypróbować online np. na stronie: http://sciencesoft.at/latex/. Można użyć jednego z załączonych plików źródłowych. Link zasugerował Zal, dzięki!
Przydatność notatek w Operze
kategoria: Opera, Techblog |
Dla jasności: mowa o notatkach, które można włączyć w panelu (domyślnie ustawionym z lewej strony pod klawiszem F4). Wydawałoby się, że taka pierdółka mało komu potrzebna. I sumie takiego zdania się przez dłuższy czas trzymałem… aż do momentu, gdy zacząłem korzystać jednocześnie z kilku komputerów (najprostszy przykład: 1 w pracy, 1 w domu).

Tak, chodzi tutaj przede wszystkim o synchronizację przez Opera Link. Nagle okazało się, że nie potrzebuję korzystać z jakichś serwisów webowych, trzymać często przydatnych zapisków na mailu, przenosić ich na pendrive'ach, szukać po dyskach ani nic z tych rzeczy. Wystarczy naklikać notatkę w pracy, a w domu już będzie na nas czekała (no chyba, że kot odgryzie kabel od netu ;-)). W pewnym stopniu, można też notatkami zastąpić listy ToDo, ale raczej tylko w prostszych przypadkach.
Sam modułek funkcjonalnie jest totalnie podstawowy, ale mimo to się bardzo dobrze sprawdza. Oczywiście fajniej byłoby korzystać z programu pokroju BasKet Note Pads, no ale musiałbym go, póki co, ręcznie synchronizować, wszędzie osobno instalować, konfigurować i tak dalej. A Opera i tak wszędzie mam.
Do działania wymagana jest Opera, konto na my.opera.com oraz aktywowanie synchronizacji w przeglądarce.
KDE, Gnome, LXDE — co za różnica?
kategoria: Arch Linux, KDE i okolice |
- Przestałem używać wielu pulpitów. Zamiast 4-6, teraz jeden w porywach do dwóch.
- Przestałem używać różnych frykasów na taskbarze.
- Nie używam już wyskakujących paneli, które zawierały koleją porcję zabawek i usprawniaczy.
- Nie mam już żadnych monitorów systemu.
- Regulacji głośności.
- Taskbara i kombinacji alt+tab do przełączania się pomiędzy programami.
- Alt+F2 do uruchamiania programów.
- Dobrego menadżera pakietów.
- Łatwego w obsłudze autostartu.
- Automatycznego montowania urządzeń na USB.
mplayer *.
Ale najciekawsze jest to, że bez tych wszystkich rzeczy, które teoretycznie przyspieszały mi pracę nie czuję żadnego spowolnienia. No i nie tracę czasu na konfigurowanie tych wszystkich cudeniek.
Zastosowania Opery Unite
kategoria: Opera, Techblog |
W sieci często można spotkać się z opiniami na temat niedawno wydanej Opery Unite w stylu „no całkiem fajne, ale właściwie po co to komu?”. Częściowo mógłbym się zgodzić — na zasadzie, że raczej mało kto mógłby wykorzystywać ten mechanizm na co dzień. Unite wydaje się być jak Bluetooth w telefonie — niby nie bardzo potrzebny, ale w pewnych sytuacjach bardzo ułatwiający życie.
A zastosowania widzę takie (wydają się oczywiste, ale mam wrażenie, że jednak nie są):
- Wysyłanie większych plików znajomym. Wiadomo, mniejsze pliki można łatwo pchnąć przez e-mail, gdy nie siedzimy za NAT-ami można użyć jabbera, można też się męczyć z jakimiś RapidShare'ami. W przypadku Unite te problemy znikają: ślemy ile chcemy, komu chcemy, jesteśmy kompatybilni ze wszystkimi, bo przeglądarkę ma raczej każdy a klienta XMPP czy GG już nie. Sprawa staje się szczególnie prosta, gdy wykonujemy tę czynność regularnie: znajomi mają link, my tylko wrzucamy pliki do katalogu.
- Tworzenie backupu na innym komputerze. Zamiast wyciągać kable, logować się po ssh czy przepinać pendrive'y można po prostu backup udostępnić po http. Ma to oczywiście tę wadę, że musi być spakowany do niewielu plików, żeby można było je pobrać małą liczbą klików.
- Kopiowanie plików na telefon. Sam niedawno znalazłem się w sytuacji, gdy chciałem zgrać pliki na nowy telefon, ale nie dostałem do niego kabelka. Na szczęście telefon obsługuje Wi-Fi, więc zgranie pliku dzięki File Sharing to bułka z masłem. Jednak tutaj Unite przydałby się również w Operze Mobile, żeby zachować komunikację w obydwie strony.
- Otrzymywanie dużych plików. Gdy jakiś „zwykły użytkownik” (mało znający się na komputerach™) ma nam wysłać, powiedzmy, 200MB archiwum to wydaje mi się, że stosunkowo łatwiej będzie mu wytłumaczyć jak skorzystać z Unite (szczególnie jeśli w ogóle używa Opery) niż np. jak odpalić klienta FTP (no i trzeba też mieć ten serwer FTP). Chociaż tutaj może być dobra alternatywa pod postacią serwisów umożliwiających przesyłanie plików „na e-mail”, ale nawet żadnej nazwy nie pamiętam, nie wiem też czy mają jakieś ograniczenia, no i na pewno trzeba udostępnić swój adres co może się różnie skończyć.
- Konsultowanie wyglądu pociętej strony. Korzystając z aplikacji Web Server, można sobie ułatwić pracę przy przygotowywaniu wyglądu strony w HTML/CSS/JS. Bez potrzeby instalowania Apache'a, można łatwo innym pokazywać zmiany na bieżąco.
- Szybka pogadanka pomiędzy niekompatybilnym ludźmi. Dla Messengera widzę tylko jedno zastosowanie. Są sytuacje, gdy musi pogadać ze sobą kilka osób: dwie mają skype'a, trzy jabbera, jakaś zbłąkana owca używa GG, a cztery inne nie wiedzą co to komunikator. Stawiamy w Operze „chatróm”, rozsyłamy link dowolnym kanałem i problem rozwiązany. Właściwie to może być również przydatne, w przypadku np. samych jabberowców — pytanie tylko czy szybciej się „postawi” Messengera czy MUC-a?
- Szybkie udostępnianie muzyki. Tutaj niby oczywista oczywistość, chcemy komuś pokazać jakiś utwór z własnej kolekcji — wysyłamy link i po sprawie. Pytanie czy są szybsze sposoby?
- Szybkie pokazanie kilku fotek. W tym przypadku podobnie sprawa się wydaje oczywista, bo przecież aplikacja Photo Sharing właśnie do tego służy. Jednak czy nie jest to najszybszy sposób, gdy mówimy o 5-20 zdjęciach (więcej lepiej podesłać komuś w paczce) a nie chce nam się kombinować?
Natomiast Lodówka wydaje się być faktycznie bezużyteczna. ;-)
Oczywiście cały mechanizm ma kilka wad. Podstawowa to to, że trzeba mieć komputer włączony, żeby działało. Druga to średnia prędkość uploadu łączy w Polsce (nie wiem jaka jest, ale na pewno żałosna). Wiadomo też, że jakiś power user, może za pomocą kilku skryptów wysłać zdjęcia czy pliki na super szybki serwer, wygenerować galerię, uruchomić radio i, przynajmniej w niektórych przypadkach, to rozwiązanie będzie lepsze. Tylko chyba nie każdy ma takie możliwości, prawda?
Profilowanie aplikacji w Symfony z wykorzystaniem Xdebug
kategoria: Symfony, Propel i PHP, Techblog |
Xdebug to rozszerzenie do PHP umożliwiające m.in debugowanie i profilowanie aplikacji napisanych właśnie w tym języku. O samej jego instalacji nie ma się co rozpisywać (użytkownikom Arch Linuksa tylko podpowiem, że znajduje się on w AUR).
Po zainstalowaniu, jeśli nasz system tego nie zrobi za nas, trzeba rozszerzenie wstępnie skonfigurować. Na przykładzie wspomnianego Archa zostaniemy dokładnie poinstruowani co trzeba zrobić:
==> Please add the following lines to your /etc/php/conf.d/xdebug.ini zend_extension=/usr/lib/php/xdebug.so xdebug.remote_enable=on xdebug.remote_host=<ip address> xdebug.remote_port=<port> xdebug.remote_handler=dbgp
Jednakże dla nas ważna jest tylko pierwsza linia tych ustawień, ponieważ pozostałe służą do komunikacji z osobnym klientem. Dlatego też można te linie zakomentować, bądź usunąć. Interesuje nas natomiast włączenie profilowania, co można uskutecznić poprzez dopisanie następujących linii do pliku konfiguracyjnego:
xdebug.profiler_enable=1 xdebug.profiler_output_dir=/tmp
Katalog docelowy jest domyślnie ustawiony na /tmp, więc ta linia tak naprawdę nic nie wnosi, poza tym, że jasno widać jak można ten katalog zmienić.
Następnie restartujemy serwer i włączamy stronę www. Może to potrwać trochę dłużej niż zwykle. Teraz już w katalogu docelowym powinny znajdować się już raporty o nazwach w rodzaju: cachegrind.out.<PID>.
Raporty takie można otworzyć za pomocą programów KCacheGrind, WinCacheGrind czy MacCallGrind i wyglądają mniej więcej tak:

Na koniec ostateczny wygląd xdebug.ini:
zend_extension=/usr/lib/php/xdebug.so xdebug.profiler_enable=1 xdebug.profiler_output_dir=/tmp
Wpis ukazał się również na blogu Code42, gdzie również się udzielam.
Krótko — Propel: lazyLoad
kategoria: Symfony, Propel i PHP, Techblog |
Użycie LazyLoadingu w Propelu (domyślny ORM w Symfony) jest bardzo proste, jednak słabo udokumentowane. Polega ono na dodaniu lazyLoad: true w schemacie bazy danych (dla wybranych kolumn). Przykładowy fragment schematu (schema.yml):
images:
_attributes: { phpName: Image }
id: { type: serial }
data_large: { type: blob, lazyLoad: true }
data_small: { type: blob, required: true, lazyLoad: true }
title: { type: varchar(128) }
…
Czym jest LazyLoad?
Dla nieznających tego mechanizmu wyjaśnienie. LazyLoad to technika stosowana w warstwie modelu dla wybranych kolumn tabeli. Atrybuty oznaczone do LazdyLoadingu pobierane są tylko i wyłączenie, gdy nastąpi jawne zapytanie o nie. Przykładowo (bazując na powyższym kawałku schematu), podczas wyszukiwania zdjęć, chcemy dostać tylko ich nazwy — jednak bez tego mechanizmu pobrane byłyby również binarne reprezentacje tych obiektów, które w aktualnym widoku nie są potrzebne, a to może bardzo spowolnić wygenerowanie strony.
Wpis ukazał się również na blogu Code42, gdzie także się udzielam.
Symfony: Paginacja przy własnych/nietypowych warunkach SQL
kategoria: Symfony, Propel i PHP, Techblog |
Pobieranie obiektów bez wykorzystywania obiektu klasy Criteria jest dość proste. Jednak standardowy paginator w Symfony ma taką właściwość, że jako parametr przyjmuje obiekt tejże klasy. Stwarza to trochę problemów, gdy odpytujemy bazę w niezbyt typowy sposób, a chcemy podzielić wyniki na strony. Przykład: w wyszukiwarce sprawdzamy czy połączone kolumny pasują do podanej frazy.
Prawdę mówiąc nie wiem jak to zrobić w Propelu 1.2 (tym samym Symfony < 1.2), jednak w wersji 1.3 jest już na to sposób dzięki Criteria::CUSTOM. Przykładowo:
$c = new Criteria();
$c->add (CarPeer::BRAND,
CarPeer::BRAND."||' '||".CarPeer::MODEL.' ILIKE \'%'.$phrase.'%\'',
Criteria::CUSTOM);
…
$pager->setCriteria ($c);
Rzeczą, na którą koniecznie trzeba zwrócić uwagę, jest podanie dowolnej kolumny (pierwszy parametr), mimo że nie będzie ona wykorzystywana. Jako drugi parametr podajemy już dokładnie to co ciężko było normalnie zbudować wykorzystując propelowe kryteria (może to być fragment czystego SQL występującego po klauzuli WHERE). Ostatni parametr jest narzucony i służy do aktywowania całej magii.
Wpis ukazał się również na blogu Code42, gdzie także się udzielam.
Vim: powolna edycja plików PHP
kategoria: Symfony, Propel i PHP, Techblog, Vim |
Vim potafi bardzo spowolnić (szczególnie poruszanie kursorem) podczas edycji plików PHP, co jest spowodowane najprawdopodobniej dopasoywaniem nawiasów (aby podświetlić parę). Jeśli ten ficzer nie jest dla krytyczny do pracy, warto go wyłączyć dodając w swoim .vimrc linię:
let loaded_matchparen = 1
Oczywiście wciąż można używać kombinacji shift-5, aby „ręcznie” odnaleźć nawias do pary.
Wpis ukazał się również na blogu Code42, gdzie także się udzielam.