Posts

Showing posts with the label python

Pobieranie słów z The Free Dictionary

Image
Do nauki języka i nie tylko, korzystam z programu  Anki . Przy okazji bardzo go polecam. Problem na jaki dzisiaj natrafiłem był taki, iż w większości decków stworzonych przez userów nie ma dźwięków i obrazków. O ile brak obrazka jeszcze przejdzie, to brak przykładu wymowy danego słowa już nie za bardzo. Jak się domyślasz znudziło mnie ciągłe przełączanie się między Anki i Google Translate czy The Free Dictionary w celu usłyszenia poprawnej wymowy danego słowa, więc postanowiłem napisać skrypt, który będzie za mnie szukał danego słowa, pobierał go w formacie mp3 i zapisywał do katalogu sounds, po czym ręcznie będę go mógł dodać gdzie zechcę, np. do Anki ;) Skrypt wrzuciłem na githuba: TDFPronunciation . Jak z niego korzystać znajdziesz w pliku README.md . Po pobraniu słowa, skrypt zapisze go w katalogu TDFPronunciation/sounds/ . Możesz sam utworzyć katalog sounds  po sklonowaniu repo, jednak nic się nie stanie gdy go nie będziesz miał, skrypt to wykryje i sam go stworzy. Przed ka

Ultra szybki JSON, czyli ujson

Image
Kilkanaście godzin temu natknąłem się na moduł  ujson , który jest napisany w czystym C i może pochwalić się niebywałą szybkością :) Mimo, iż na stronie modułu są przedstawione testy z trzema innymi popularnymi modułami, sam również postanowiłem to sprawdzić. Moduł  ujson porównałem ze standardowym modułem w pythonie, czyli  json . Dane testowe Pierwsze dane to obiekt, z którym możemy się najczęściej spotkać przy codziennej pracy z różnego rodzaju api, natomiast do drugich danych wpisałem po prostu to co przyszło mi do głowy ;) test_data1 = {'status': True, 'msg': 'Message'} test_data2 = [{'name': 'tomislater', 'age': 24, 'sex': 'male'}, 8461, True, False, 8923, 7162, 1, 6, 7, None, [[True, False], ['!', '?']], 'yeah'] Serializacja do formatu JSON Do porównania obu bibliotek stworzyłem cztery funkcję. Po dwie do każdej. def test_json_data1(): return json.dumps(test_data1) def test_u

Kill Spiders 0.2.1

Miałem trochę wolnego czasu więc dodałem kilka rzeczy do repo. Dodałem bonusy polegające na tym, że gracz rzuca nie jedną, a dwiema lub trzema czaszkami jednocześnie. Im silniejszego pająka zabijesz tym większe prawdopodobieństwo, że otrzymasz bonus ;) Poprawiłem zapisywanie highscore, nie wiedzieć czemu gdy program wychodził z głównej pętli nie wykonywał zapisu do pliku :/ Zwiększyłem liczbę "specjalnych" pająków oraz zmieniłem liczbę czarnych czaszek które gracz otrzymuje za kolejny poziom z jednej na pięć. Na końcu jak zawsze lekka refaktoryzacja kodu ;) Chętnych zapraszam tutaj: kill_spiders Grę odpalasz komendą: python start_game.py

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,  t

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 .

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ć :)

Kill Spiders 0.1.9

Image
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 ;)

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.

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.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 .

RandomWords

Ostatnio potrzebne było mi wypełnić bazę testowymi danymi. Byle jakimi. Oczywiście pierwsze co to wszedłem na pierwszą lepszą stronę generującą lorem ipsum i jazda z ctrl+c, ctrl+v. Można, owszem, ale tylko wtedy gdy masz do wypełnienia mało komórek w bazie. Problem jest gdy tych komórek musisz wypełnić 100-1000. Metoda ctrl+c, ctrl+v nie jest wtedy fajna ;) Oczywiście od razu poszperałem po sieci w celu znalezienia jakiegoś ciekawego generatora słów, zdań, etc. Ale nic co spełniałoby moje oczekiwania nie znalazłem. No trudno, to zrobię swoje narzędzie. Główne założenia były takie: losowanie słowa z jakiegoś zakresu losowanie słowa zaczynającego się na pewną literę losowanie pewnej ilości słów i zwracanie ich w postaci listy losowanie pewnej ilości słów rozpoczynających się od pewnej litery Z racji tego, że chcę to wykorzystywać w różnych projektach stworzyłem paczkę  oraz udostępniłem to na githubie . Instalowanie: pip install RandomWords lub: git clone https://gi

Kill Spiders 0.1.8

Nie nie, dzisiaj bez żadnych funkcjonalności. Dokonałem tylko refaktoryzacji kodu. W najbliższym czasie pobawię się bibliotekami typu py2exe i zobaczymy jak to działa z pygame i czy serio śmiga pod windowsem ;) A póki co, grę (a właściwie to prototyp) odpala się za pomocą komendy: python start_game.py Repo: kill_spiders  

Kill Spiders 0.1.7

Pushnąłem właśnie nową wersję . Zmieniłem domyślną broń, którą była kość na białą czaszkę która ma "power 1", czyli pająk dostający taką czaszką straci 1hp. Dodałem dodatkową broń w postaci czarnej czaszki ("power 5", czyli pająk traci 5hp ;)). Na początku każdego poziomu gracz dostaje jedną czarną czaszkę. Czaszki się sumują, oprócz białych, których jest nieskończenie wiele. Dodałem również sprity dla hitowanych? spiderów. Po prostu lekko tryskają krwią. Zmieniło się również lekko sterowanie. Rzucanie białymi czaszkami znajduje się pod lewym ctrl , a rzucanie czarnymi czaszkami pod spacją . TODO: skakanie góra/dół menu highscore jakaś kolejna dodatkowa broń

Kill Spiders 0.1.6

Image
Pushnąłem właśnie nową wersję Kill Spiders na githuba. Dodałem sprity dla martwych pająków oraz polepszyłem troszkę GAME OVER. Teraz po zabiciu pająka widać, że pająk jest martwy :) Dodatkowo spada w dół, aby oczyścić ekran. Jeżeli gracz dojdzie do momentu GAME OVER, zostanie zapytany czy chce zacząć grę od nowa czy woli skończyć. W kolejnych wersjach widziałbym dodatkowe bronie, efekty (tzw. hity spiderów) oraz jakieś proste menu i wybór od którego poziomu gracz chce zacząć ;) Albo zrobię jakiś prosty MD5 z liczb i gracz będzie mógł sobie coś takiego wkleić. Dla mniej ogarniętych zawsze jakieś utrudnienie ;>

Kill spiders! (pygame)

Postanowiłem poznać trochę bardziej bibliotekę pygame . Pierwsze efekty można zobaczyć tutaj: kill_spiders . Póki co, nie skupiałem się na rzeczach typu ładne menu, efekty etc. Na dniach powinienem coś dorobić. P.S. Głos pod czarownicę zaoferowała już moja dziewczyna :)

Pamięć 0.5

Opublikowałem nową wersję skryptu Pamięć . Dostępna jest nowa metoda "Zakładki alfabetyczne". Dodałem kilkadziesiąt nowych słów oraz przeprowadziłem refaktoryzację kodu. Zapraszam do korzystania.

Mała poprawka w projekcie Pamiec 0.4.2

Wprawdzie nie musiałem o tym robić jakiegokolwiek wpisu bo nie wprowadziłem, żadnej nowej funkcjonalności (mała poprawka przy odczytywaniu/zapisywaniu pliku ze słowami), lecz od kilku dni studiuję framework Tornado i napisałem prostą aplikację wyświetlająca randomowe liczby o zadanej przez użytkownika długości (to samo jest w projekcie Pamiec) lecz poprzez Google App Engine. Więc nie trzeba nic ściągać. Wystarczy, że wejdziesz na stronę aplikacji i wybierzesz za pomocą formularza to co chcesz uzyskać. Ćwicz pamięć krótkotrwałą! Link do nowej wersji projektu Pamiec tutaj . A ten link poprowadzi Cię do strony gdzie testuję skrypty we framework'u Tornado . Wybacz za brak jakiejkolwiek oprawy graficznej na stronie, lecz nie mam na to czasu. Najważniejsze, że działa.

Pamięć 0.4! Na nowy rok.

Image
Dodałem małą aczkolwiek przydatną funkcjonalność do programu. Za pomocą komendy python pamiec.py <liczbaIlosc> <liczbaDlugosc>  program generuje podaną ilość liczb o zadanej długości. Przykładowo po wykonaniu komendy python pamiec.py 10 7  program wyświetli 10 liczb z których każda będzie 7 cyfrowa. Ustaliłem, iż zakres cyfr w liczbie będzie wynosił od 3 do 9 cyfr. Tyle najczęściej wystarcza do trenowania pamięci krótkotrwałej. Nowa wersja dostępna oczywiście pod tym adresem. Screen jak to wygląda poniżej:

Pamięć 0.3!

Image
Cześć, wydałem dzisiaj nową wersję projektu Pamieć . Zmieniłem lekko podejście co do odpalania programu. Zaimplementowałem dodatkową metodę ŁMS (Łańcuchowe metody skojarzeń), więc z racji tego na daną chwilę możesz wykorzystać trzy metody do nauki pamięci: Łańcuchowa metoda skojarzeń Zakładki obrazkowe Rymowanki liczbowe Więcej informacji znajdziesz wpisując python pamiec.py POMOC . Dwa screeny z programu: PS Wyjeżdżam dzisiaj do Francji i wracam za tydzień, więc wątpię, abym w tym czasie wypuścił jakieś aktualizacje dotyczące programu. Mam nadzieję, że podczas jeżdżenia na snowboardzie wpadną mi pomysły na kolejne wersje programu :) Życzę miłej nauki.

Mój projekt "Pamięć"

Od dłuższego czasu uczę się różnych technik, aby lepiej zapamiętywać pewne informacje. O samych technikach nie będę się rozpisywał, bo powstało dużo ciekawych książek na ten temat. Na przykład ta z której ja się uczyłem: "Tony Buzan - Pamięć na zawołanie". Polecam. Co jednak z tym projektem? Otóż, jest pewna technika zapamiętywania, która w przyjemny sposób pomaga przy zapamiętywaniu listy zakupów, jakiś punktów, etc. Przeczytaj tę książkę to dowiesz się o co chodzi. Z racji tego, iż musiałem w tej metodzie sam szukać jakiś słów, zapisywać je na kartce, a później sprawdzać czy wszystko jest ok, wpadłem na pomysł, aby napisać program, który pobierałby losowo słowa z pliku i wyświetlał je wraz z liczbą. I tak taż postąpiłem. Idea programu jest bardzo prosta. Użytkownik może wyświetlać oraz dodawać słowa. Głównie umieściłem w pliku slowa.txt rzeczowniki. Nie jest ich jakoś dużo, ale jak tylko mam chwilę to dodaje nowe. Przykładowe użycia: python pamiec.py -l 30 wylosuje