11/24/2012

Anki - zapamiętuj łatwiej!

Anki to program, oparty trochę na zasadzie fiszek. Czyli przykładowo, masz kartkę na której z jednej strony jest słowo w języku obcym, a z drugiej strony to samo słowo przetłumaczone na Twój ojczysty język.

Idea programu jest łatwa, częściej wyświetlane są słowa, które częściej zapominasz, a rzadziej wyświetlane te, które pamiętasz bardzo dobrze. Oczywiście to Ty decydujesz o tym z jaką częstotliwością program ma Ci przypominać o danej frazie.
Ciekawym dodatkiem jest możliwość umieszczania obrazków, dźwięków, wideo oraz coś jak LaTeX, dzięki czemu o wiele lepiej zapamiętasz dane zagadnienie.

Anki pozwala dodawać więcej niż tylko jedno słowo/zdanie ;) Można używać go do prze najróżniejszych celów. Kogo nie spytałem z osób, które go używają, to prawie każdy używał go jeszcze do kilku innych rzeczy oprócz zapamiętywania słówek, np.
  • nauka komend unixowych
  • nauka komend gita czy mercuriala
  • zapamiętywanie stolic/państw
  • przypominanie wzorów matematycznych :))
  • przypominanie haseł do różnych usług (ale z tym bezpiecznie oczywiście ;))
  • etc.
Anki dostępny jest na Linuxa/Mac OSX oraz Windowsa. Można go również zainstalować na iPhone i Android. Jest jeszcze AnkiWebs.

11/14/2012

tzf.pyramid_routing

Fizyk przygotował paczkę, za pomocą której w wygodny sposób można wczytywać ścieżki we frameworku Pyramid ;).

Instalacja przez pip:
pip install tzf.pyramid_routing

Github:
git clone https://github.com/fizyk/pyramid_routing.git
cd pyramid_routing
python setup.py install

Dodawanie ścieżek

Załóżmy, że tworzysz jakąś prostą appkę, gdzie za pomocą urla, chcesz zobaczyć profil jakiegoś użytkownika, statystyki (ogólne, jak i dla każdego usera z osobna) oraz prosty blog. Link do appki to: http://localhost:6543.

Struktura appki:
/my_app
  lib/
    routing/
      __init__.py
      blog.py
      user.py
  views/
    __init__.py
  __init__.py
development.ini

W pliku __init__.py aplikacji umieszczasz:
config.include('tzf.pyramid_routing')

W pliku konfiguracyjnym np. w development.ini  ustawiasz coś na wzór:
routing_package = my_app.lib.routing
gdzie my_app to nazwa aplikacji, a reszta to ścieżka do katalogu, gdzie będzie cały Twój routing.

W  katalogu routing, tworzysz 3 pliki: __init__.py, blog.py oraz user.py.

__init__.py
routes = [
    dict(name='index', pattern='/'),
    dict(name='statistics', pattern="/statistics"),
]

blog.py
routes = [
    dict(name='blog:index', pattern='/'),
    dict(name='blog:post', pattern="/post/{\d+}"),
]

user.py
routes = [
    dict(name='user:index', pattern='/{name}'),
    dict(name='user:statistics', pattern="/{name}/statistics"),
]

Co to tak właściwie robi? Nazwa modułu mówi o tym jak ma wyglądać pierwszy parametr ścieżki url. Np. dla modułu __init__.py będą to:
  • http://localhost:6543
  • http://localhost:6543/statistics
dla modułu blog.py:
  • http://localhost:6543/blog/
  • http://localhost:6543/blog/post/785
i dla modułu user.py:
  • http://localhost:6543/user/sromek
  • http://localhost:6543/user/sromek/statistics

Zmienna routes w modułach musi wskazywać na listę słowników, takich, która przyjmuje metoda pyramid.config.Configurator.add_route. Dokumentację paczki znajdziesz tutaj.

11/11/2012

RandomWords 0.1.6

Wprowadziłem nową funkcjonalność do paczki RandomWords. Można generować randomowe maile. Przydatne przy wypełnianiu testowej bazy danych ;)

Przykład użycia:
>>> from random_words import RandomEmails
>>> rand_mails = RandomEmails()

>>> rand_mails.randomMail()
'ernest@mail2java.com'

>>> rand_mails.randomMails()
['annmarie@mail2xox.com']

>>> rand_mails.randomMails(15)
['patrice@keko.com.ar', 'conor@mail2atom.com', 'vihan@mail2carolyn.com', 'felicia@looksmart.com.au', 'quinlan@accessgcc.com', 'aimee@china.net.vg', 'kate@mail2christmas.com', 'geoffrey@frommiami.com', 'lillie@comic.com', 'trinity@nagpal.net', 'bennett@webmail.co.za', 'jesse@chaiyomail.com', 'chase@iespana.es', 'mya@ijustdontcare.com', 'ramona@uole.com']

Paczka dostępna na githubie jak i na pypi.

11/09/2012

powerline-bash

(Uwaga, zmieniła się nazwa repo powerline-bash, po więcej zapraszam tutaj)

Używasz vima? A używasz w nim vim-powerline? Jeśli tak, to czemu nie wstawić sobie powerline do konsoli? Używam tego od pewnego czasu i muszę przyznać, że jest bardzo ciekawym dodatkiem.

powerline-bash

W czym mi to tak naprawdę pomaga oprócz tego, że widzę aktualną gałąź na której pracuję? Jeżeli zmienię coś w którymś z plików, zmieni się również kolor gałęzi:


To samo stanie się, jeżeli pójdzie coś nie tak przy wykonywanych operacjach na repo. Jeśli dodasz plik, który nie jest śledzony przez gita pojawi się "+":


Gdy ścieżka do katalogu robi się zbyt długa, powerline zostaje przycięty:


I jedna z ciekawszych rzeczy; jeśli lokalne repo różni się od "zdalnego" (nie wiem jak najodpowiedniej to przetłumaczyć na polski) to zostanę o tym poinformowany:


Co od razu mówi mi, że przy pull'u dostanę 5 commitów :)

Informacje o tym jak podpiąć skrypt pod konsolę znajdziesz tutaj: powerline-bash.
Ze swojej strony mogę dodać jeszcze tyle, że jak masz problem ze znakami to skorzystaj z którejś z tych czcionek albo używaj Source Code Pro, tak jak ja :P

11/08/2012

Pykonik, PyWaw, PyCircle, PySilesia

Tak się zdarzyło, że mieszkam w Szczecinie, gdzie jest mała społeczność Pythonowców, przynajmniej ja tak to widzę. Ale jak to jest z resztą Polski? Im dalej na południe tym lepiej. W Poznaniu działa grupa PyCircle; jeżeli jesteś z Warszawy to może Cię zaciekawić grupa PyWaw. Natomiast koledzy z Krakowa stworzyli Pykonika. Dodatkowo Kraków udostępnia stream swoich spotkań. Jest jeszcze Zabrze, które niedawno wystartowało z grupą PySilesia.

Czy Szczecin będzie miał swojego PyPrykarza? Będę musiał nad tym niedługo pomyśleć. Jak ktoś chciałby pomóc to pisać :)

11/06/2012

Kill Spiders 0.1.9

Wrzuciłem nową wersję kill_spiders. Dodałem menu i highscore. Highscore jest przechowywane w pliku highscore.dat jako int, więc bez problemu sobie go możesz podmienić! :D W menu dodałem możliwość, od którego poziomu chcesz zacząć. Poniżej kilka screenów ;)

Menu

Wybór poziomu

Kill Spiders 0.1.9 - poziom 25

Kill Spiders 0.1.9 - poziom 40


11/05/2012

Programista python

Hej, potrzebujemy do zespołu pythonowca. Czasami coś trzeba będzie również popisać w JavaScript. Nie musisz super ogarniać, my Cię nauczymy :) Po więcej info najlepiej napisać mi na maila. Na start z tego co pamiętam jest zatrudnienie na trzy miesiące (okres próbny), a później dostajesz umowę o pracę, etc. Acha, miejsce Szczecin.

11/04/2012

RandomWords 0.1.5

Jak wspomniałem we wcześniejszym wpisie, zapomniałem dodać generowanie przecinków do lorem ipsum. Dodałem to w tej poprawce i usunąłem możliwość wprowadzania maksymalnej ilości słów w zdaniu. Projekt i dokumentację znajdziesz jak zawsze na githubie lub na pypi.

RandomWords 0.1.4

Wrzuciłem właśnie nową wersję RandomWords. Dodałem generowanie lorem ipsum. Co prawda jest już w sieci moduł do pythona, który generuje lorem ipsum, ale w tym celu musi za każdym razem nawiązywać połączenie ze stroną lipsum, co może być nie wygodne w niektórych przypadkach.

Przykładowy sposób użycia:
>>> from random_words import LoremIpsum
>>> li = LoremIpsum()
>>> li.get_sentence()
'Commodo gubergren fringilla curabitur quam volutpatut.'

>>> li.get_sentence(max_words=22)  # random sample from 3 to 22 ;)
'Voluptua curae; facilisi mi auctormauris neque enim aliquam stet odio sedfusce porttitor magnis ultrices.'

>>> li.get_sentences(max_words=5, sentences=3)
'Tortor mazim nobis ex. Luptatum assum rhoncus labore. Nequeetiam montes nibh.'

>>> li.get_sentences_list(max_words=13, sentences=5)
['Torquent per duo aaenean accumsannulla magnapraesent sollicitudin eirmod duis lobortisetiam minim metusdonec.', 'Possim egestasmauris accumsannulla netus cubilia suspendisse qui facer enimsed nonummy.', 'Congue faucibusvestibulum conubia lectus laoreet dignissim tortorcurabitur natoque voluptua penatibus facilisinam.', 'Ante semper sociis leo.', 'Dignissim arcu sea metus sed ultriciespellentesque malesuadanullam wisi nullamauris.']

Instalujesz standardowo z githuba, albo przez pipa:
pip install RandomWords

Dokumentację znajdziesz tutaj:
P.S. Teraz zauważyłem, że nie dodałem generowania przecinków, ehhh. Później to naprawię :)

11/02/2012

Konwerter Pandoc

Pandoc służy do konwertowania jednego typu dokumentu na drugi. Kiedy jest to przydatne? Na przykład wtedy, gdy piszesz dokumenty w języku Markdown, a potrzebujesz takie pliki komuś przesłać czy wstawić na stronę lub po prostu najzwyczajniej na świecie postanowiłeś przejść na dokumentowanie swojej pracy w innym języku. Nie będziesz przecież teraz tego wszystkiego przerabiał ręcznie ;)
Pierwsze co należy zrobić to zainstalować Pandoc dla swojego systemu.  W fedorze zrobisz to komendą:
sudo yum install pandoc

Konwersja do pliku EPUB (ebook):
pandoc -f markdown -t epub README.md -o docs/readme.epub

Konwersja do pliku HTML:
pandoc README.md -o docs/readme.html

Konwersja do pliku HTML5:
pandoc -S -5 README.md -o docs/readme.html

Konwersja do pliku ODT:
pandoc README.md -o docs/readme.odt

Przy konwersji do pliku PDF trzeba użyć innego polecenia, przynajmniej ja tak musiałem zrobić na Fedorze 16. Próbowałem poprzez pandoc, ale ciągle generował mi plik HTML... Jeśli działa Ci konwersja do PDF przez pandoc to się ciesz :) Jeżeli nie, to musisz dociągnąć markdown2pdf. W fedorze wygląda to tak:
sudo yum install pandoc-markdown2pdf

Konwersja do pliku PDF:
markdown2pdf README.md -o docs/readme.pdf

I to wszystko. Z tego najczęściej korzystam. Dokumentację tych narzędzi znajdziesz tutaj, a więcej przykładów tu.
Mam nadzieję, że przyda Ci się to narzędzie :)

Przykładowe dokumenty: PDF, HTML5.

11/01/2012

RandomWords 0.1.3

Wrzuciłem przed chwilą nową wersję RandomWords. Dodałem generowanie imion. Póki co nie jest ich za wiele bo nie całe 1.8k, ale za jakiś czas pewnie coś dorzucę ;).

Przykład użycia:
>>> from random_words import RandomNicknames
>>> rn = RandomNicknames()

>>> rn.random_nick()
'Fredrick'

>>> rn.random_nick(letter='r', gender='f')
'Rene'

>>> rn.random_nicks(letter='u', gender='f', count=4)
['Una', 'Uma', 'Ursula', 'Ulrica']

>>> rn.random_nicks(count=10)
['Kristy', 'Imani', 'Delbert', 'Brevyn', 'Jasmin', 'Genevieve', 'Clodagh', 'Graham', 'Sondra', 'Ed']

Moduł znajdziesz na githubie i na pypi.