Biblioteka Pythona


Python jest interpretowanym, interaktywnym językiem programowania stworzonym przez Guido van Rossuma w 1990 roku. Mimo że Python jest czasem klasyfikowany jako język skryptowy, wykorzystuje się go do tworzenia dużych projektów jak serwer aplikacji Zope czy system wymiany plików Mojo Nation. Używany jest przez NASA czy Google, napędza grono.net (z pl.wikipedia.org).

Trochę ożywienia tu trzeba

Od pewnego czasu trochę cicho w Bibliotekach, ale obecnie pracuję w wolnym czasie nad aktualizacją i rozbudową Diamandy :) czyli tego na czym stoją Biblioteki. Jak wszystko zrobię z zaplanowanych ficzerów :) to korzystanie ze strony powinno być prostsze, a i współpraca społeczności też całkiem możliwa... a tematów na artykuły mam sporo :)
Dodane: 29.04.2008 | Czytaj | Komentarze | Księga: Podstawy Pythona

Google uruchamia AppEngine

Google uruchomiło (jak na razie testowo) usługę nazwaną AppEngine. Generalnie polega to na dostarczeniu API i hostingu aplikacji webowych. AppEngine daje nam obecnie djangopodobny framework/API do tworzenia aplikacji www, które w prosty sposób ładujemy na nasze konto i mamy hosting aplikacji (limit 500 MB powierzchni dyskowej, 10GB transferu do i z aplikacji). Zalecam obejrzenie prezentacji na youtube pokazującą całą koncepcję AppEngine w akcji.

Generalnie możemy używać każdego frameworka napisanego w pythonie wspierającego WSGI. Google daje nam Django 0.96.1, a przynajmniej jego części. Nie stosujemy ORMa Django, gdyż Google daje własną (nierelacyjną) bazę danych BigTable, z którą rozmawiamy w języku GQL (coś jak SQL). Nie mamy też formularzy i modeli Django, a także jego panelu admina, lecz AppEngine daje swoje rozwiązania, jak i w Django zapewne pojawi się wsparcie dla rozwiązań Googla. Jak na razie trzeba poczekać na konto :) I się pobawić.

Co da AppEngine? Na pewno popularyzację Pythona, Django, a także nowoczesnych metod tworzenia aplikacji webowych.

Dodane: 08.04.2008 | Czytaj | Komentarze | Księga: Programowanie Sieciowe

Diamanda 2008.04 Test1

Nowe, testowe wydanie prezentujące obecny stan Diamandy. Nowa wersja tworzona jest pod najnowsze Django-SVN i nie jest kompatybilna ze starszymi jego wersjami. Główne zmiany to zgodność z django-SVN ;) newforms na forum i w boxcomments, przepisanie userpanel tak by używał widoków auth Django, sporo zmian w interfejsie. Tłumaczenia nie zostały jeszcze zaktualizowane, jak i mam jeszcze parę rzeczy do zrobienia :) Tar.bz2 można pobrać z code.google.com, lub użyć SVNa:
svn checkout http://diamanda.googlecode.com/svn/trunk/ diamanda-read-only
Dodane: 07.04.2008 | Czytaj | Komentarze | Księga: Diamanda - Aplikacje Django

O boskości PILa słów kilka

W robocie pojawiło się zadanko określenia co szybciej zrobi miniatury z dużych JPEGów z aparatów. Serwis napisany jest w PHP i przechodzi obecnie przeobrażenia :) Miniatury robi w GD/PHP co jest bardzo wolne... Pod testy podszedł PIL, ImageMagick przez "convert" i MagicWand w PHP, GD... oraz EPEG. Wyniki robienia miniatur z 45MB fotek z aparatu (duża rozdzielczość i rozmiar):

  • ImageMagick convert Resize: 28,3s (zachowuje dane exif i inne śmieci)
  • ImageMagick convert Thumbnail: 15,3s (to należy stosować)
  • PIL: 3,2s
  • EPEG: 1,9s
ImageMagick convert Thumbnail jak i PIL z wyostrzaniem dają bardzo dobre miniatury. EPEG sam wyostrza co nieco, ale jakość jest nieco gorsza. EPEG to biblioteka napisana w C przez programistów e17. Ma jeden cel: szybko robić miniatury z JPEGów i jest najszybsza, lecz ma tą wadę że nie ma dodatkowych filtrów poprawiających jakoś miniatur. Tak więc PIL wygrał.

Jedyny problem jaki napotkałem to wyostrzanie, które jakby nie chciało zadziałać:

im = Image.open(source)
im.thumbnail((width, heigth), Image.ANTIALIAS)
im.filter(ImageFilter.SHARPEN)
im.save(thumb, "JPEG",quality=quality)

Dodane: 07.03.2008 | Czytaj | Komentarze | Księga: Podstawy Pythona

Diamanda ponownie w SVN

Kod Diamandy, czyli moich aplikacji Django ponownie jest w SVN. Na razie trochę przeczyściłem kod wyrzucając specyficzne dla Bibliotek elementy. Planuję zrobić jeszcze sporo więc o niezmienności kodu na razie można zapomnieć :) Dla zainteresowanych:
svn checkout http://diamanda.googlecode.com/svn/trunk/ diamanda
Wymaga Django-SVN (najlepiej najnowsze)
Dodane: 04.03.2008 | Czytaj | Komentarze | Księga: Diamanda - Aplikacje Django