szarak@jabster.pl


Własny filrt w szablonie Django

Wpis na 1. poziomie, wysłany 01 kwietnia 2008 o 01:02:10

W szablonach Django dostępny jest spory zestaw filtrów. Używa się ich prosto:

{{ obiekt|filrt }} {{ obiekt|filtr:"parametr" }}

Dostępne filtry pokrywają większość popularnych sytuacji, ale może czasem przydać się zrobienie jakiegoś własnego.



Wejdź do katalogu swojej aplikacji w której chcesz używać filtru. Stwórz katalog templatetags, a w nim pliki init.py i twoja_nazwa.py.

 
mkdir templatetags
touch templatetags/__init__.py
touch templatetags/TWOJANAZWA.py
 

w pliku TWOJANAZWA.py:

 
from django import template
register = template.Library()
 
@register.filter("nazwa_naszego_filtra")
def nazwa_naszego_filtra(value):
    #tutaj jakies operacje.
    return cośtam
 

Jak pisałem wcześniej, filtr może przyjmować parametr:

 
def nazwa_naszego_filtra(value, argument):
    #tutaj jakies operacje.
    return value + argument
 

Przed użyciem naszego filtra w szablonie ładujemy go za pomocą:
{% load nazwa_filtra %}

i używamy:

{{ obiekt|filtr:"argument" }}


Mam nadzieję, że zbytnio nie namieszałem ;)

Dodaj komentarz | *nix django Internet Progamowanie Różne Techblog |

Vim / Gvim i kopiowanie

Wpis na 0. poziomie, wysłany 23 marca 2008 o 22:30:13

Z notatnika użytkownika vim’a… ;)

Kopiowanie do vima jest proste. Jeśli pracujemy w terminalu kopiujemy tak, jakbyśmy wklejali polecenie itp. Środkowy przycisk myszki, albo shift+insert. Warto zapamiętać, że gdy np. edytujemy kod i vim robi automatycznie wcięcia, po wklejeniu dostaniemy kod z wcięciami do wcięć – czyli papke nieczytelnego spaghetti. Pozbyć się problemu możemy uprzednio wpisując:
:set paste
Teraz wszystko powinno się ładnie wkleić.

Ale co z kopiowaniem i wklejaniem w drugą stronę? Skopiować z vim nie jest trudno. Gdy pracujemy w terminalu po prostu zaznaczamy tekst i już mamy go w schowku. Gorzej z Gvim. Samo zaznaczanie nie wystarcza.

Postępujemy następująco: Po wybraniu tekstu w trybie wizualnym (za pomocą v i kursory, shift+v i kursory, bądź zaznaczenie myszką wprowadzamy:
"+y
co skopiuje zaznaczenie do schowka systemowego. Finito.

Ot niby głupie, proste i dawno powinienem to znać, ale jakoś mnie ta wiedza ominęła (czyt. ja ominąłem spory kawał podręcznika).

3 komentarze | *nix Progamowanie Różne Techblog |

Komputer zdalnie sterowany

Wpis na 0. poziomie, wysłany 20 marca 2008 o 23:54:06

Dzisiaj znów o rzeczach związanych z bluetooth’owymi pierdołami.


Anyremote: oprogramowanie do sterowania komputerem przez telefon komórkowy za pomocą bluetooth. Opcja bluetooth nie jest jedyną, projekt chwali się możliwościa sterowania przez irdę, wifi, przez internet – oczywiscie tez przez aplikację w java, jeśli komputer jest widoczny z zewnątrz, oraz przez interfejs web…

Dostępne są graficzne nakładki, ganyremote i kanyremote które mocno ułatwiają sprawę – w końcu jesteśmy leniwi – przecież nie chce nam się nawet sięgnąć do komputera… ;p

Co w nim fajnego czego inne programy nie mają: z paczuszką, którą zainstalowałem (nie ma go w repo Debiana, ani Ubuntu, lecz są ładne paczuszki na stronie projektu) było już sporo napisanych configów dla różnego oprogramowania. Z tego co widzę, program nie wyświetla configów (pluginów? :P) do softu którego nie mamy zainstalowanego. Pluginy/configi są całkiem proste i lektura tych przykładowych pozwala na napisanie swojego bez sięgania po dokumentację, lecz prawdopodobnie to nie będzie konieczne.


Możliwości tego oprogramowania są całkiem spore. Po stronie komputera możliwa jest każda akcja, jeśli tylko da się ją przedstawić za pomocą polecenia systemowego, lub naciśnięcia klawisza ;) W konfigu możemy zdefiniować sobie ikonki jakie będą przypisane poszczególnym klawiszom w aplikacji javowej (postaram się pokazać to na zdjęciach). W tym samym miejscu definiujemy wszelkie akcje klawiszy.


ganyremote

Ok, mamy już skonfigurowany soft po stronie komputera (chociaż prawdopodobnie dołączone z nim konfigi będą działać ładnie). Teraz komórka. Wrzucamy plik .jar z aplikacją na telefon. Ja zainstalowałem plik .deb z odpowiednimi pliczkami (takie troche dziwne … pakiet z paroma plikami i to nawet nie na kompa… ;p).


ganyremote


Teraz, mając uprzednio włączony anyremote (uruchomiliśmy ganyremote) uruchamiamy aplikację w JAVA, wybieramy urządzenie z którym mamy się połączyć i dalejmy connect. Ach, byłbym zapomniał. Zakładamy, że komórka z komputerem jest już sparowana (innym programem). Powinien wyświetlić się nam ekran z niebieskimi, pustymi przyciskami odzwierciedlającymi odpowiednio klawisze [123456789*0#].


ganyremote

Jeśli widzisz wyjątek wyrzucony przez javę pod przyciskami, nie przejmuj się jeszcze :). Teraz w aplikacji graficzne odpalamy jeden z konfigów (zaznaczamy i wybieramy „run”). Po wczytaniu w naszej komórce powinny pojawić się ikonki klawiszy wyświetlanych na ekraniku (chyba, że ten konfig nie ma ich ustawionych, wtedy będzie ikonka domyślna). Obsługa jest prosta.


ganyremote

Wciskasz odpowiednio klawisze komórki, bądź wybierasz je joystick’iem na wirtualnej klawiaturze. Wszystko powinno działać szybko i bezboleśnie.

Ciekawą funkcją, która bije na głowe typowe piloty, jest możliwość nie tylko np. oglądania tytułu aktualnie odtwarzanego utworu na wyświetlaczu komórki, ale także np. wybranie filmu w telefonie!

Taka obsługa jest dobra nie tylko dla leniwców/do kina domowego. Można przecież podłączyć pod to dowolne aplikacje. Ja np. ciesze się, że na następnej imprezie będę mógł zmieniać i wybierać piosenki, ściszać itp. gdy komputer będzie zablokowany przed niepowołanym, pijanym dostępem ;) ba, mogę być nawet w innym pokoju, pijąc piwo u sąsiadów kontrolować muzykę :)

ganyremote
ganyremote

Dla projektu wbrew temu co wcześniej myślałem jest sporo alternatyw. Wymienię tylko krótko jedną z nich: Bluepad. Projekt ładne zobrazowany na ich stronie, więc nie będę się już rozpisywał. Z różnic: w bluepad możemy wybierać akcje/klawisze wykonywane na komputerze w menu aplikacji na telefonie! Niestety miałem spore problemy ze stabilnościa tej aplikacji. Dodatkowo na korzyść anyremote przekonała mnie możliwość szybkiej zmiany konfiguracji pod różne aplikacje, jakiej w bluepad nie było.

Dodaj komentarz | *nix Gadżet gnome Techblog |