18. October 2010

Inštantný HTTP Server

Používatelia Macu a Linuxu možno ani netušia ako jednoducho môžu naštartovať vlastný HTTP server.

Linux aj Mac má často nainštalovaný Python. Používatelia Windows, si môžu Python hravo doinštalovať.

V adresári, ktorý chceme sprístupniť cez HTTP server jednoducho zadáme:

python -m SimpleHTTPServer 8080

Do web prehliadača potom zadáme: http://localhost:8080

Takýto server sa hodí na rýchle testovanie napríklad Flex aplikácií.

7. October 2010

Prechádzka po XML s namespace v Pythone

V predchádzajúcom príspevku “Jednoduchá prechádzka po XML v Pythone”, som ukázal, ako je možné parsovať XML pomocou Pythonu.

Čo ale v prípade, že potrebujeme použiť namespace?

Namespace sa expanduje do tvaru {namespace}element. Čo sa odrazí napríklad v príkaze find. Výsledný kód bude vyzerať nasledovne:

from xml.etree import ElementTree
xmlTest="""
 <s:xml xmlns:s="library://ns.adobe.com/flex">
  <s:person>
  <s:id>573280</s:id>
  <s:type>Supplier</s:type>
 </s:person>
 <s:person>
  <s:id>66172</s:id>
  <s:type>Customer</s:type>
 </s:person>
</s:xml>
"""

tree = ElementTree.fromstring(xmlTest)

namespace="library://ns.adobe.com/flex"
for person in tree:
  type = person.find('{%s}type' % namespace)
  id = person.find('{library://ns.adobe.com/flex}id')
  if type.text == 'Supplier':
    print "Supplier:",id.text

Všimnime si jednoduchý trik s %s na riadku s type = person.find.

22. June 2010

Ako zastaviť Google App Engine vo Windows na príkazovom riadku?

Testovací Google App engine server je možné naštartovať pomocou:

dev_appserver adresár

Ako ho ale zastaviť?

CTRL+C nefunguje, aplikácia zostane bežať.

Je potrebné použiť kombináciu CTRL+Break (Pause).

15. June 2010

Jednoduchá prechádzka po XML pomocou Pythonu

Taká užitočná vec, možno sa niekomu hodí. ElementTree pre Python obsahuje parser XML. V nasledujúcom príklade vyrobím zo stringu Element a následne nad ním spustím iteráciu cez for.

Je dôležité upozorniť, že find vracia prvky Element. Textový obsah z nich je možné vytiahnuť pomocou atribútu text.

Pokiaľ sa s tým chcete viac hrať, odporúčam použiť iPython shell, ktorý podporuje dopĺňnanie príkazov pomocou tabulátoru.

from xml.etree import ElementTree

xmlTest="""
<xml>
<person>
 <id>573280</id>
 <type>Supplier<type>
</person>
<person>
 <id>66172<id>
 <type>Customer</type>
</person>
</xml>
"""

tree = ElementTree.fromstring(xmlTest)

for person in tree:
    type = person.find('type')
    id = person.find('id')
    if type.text == 'Supplier':
        print "Supplier:",id.text

API k ElemenTree nájdete na python.org. Pre Debian je táto funkcionalita k dispozícii v balíčku python-elementtree.

12. April 2010

Matplotlib – profesionálne grafy v Pythone

Pokiaľ potrebujeme dynamicky vykresliť graf na webe, môžeme použiť napríklad Flot. Pokiaľ ale potrebujeme pracovať so zložitejšou grafikou a máme k dispozícii Python, tak je voľba jasná. Použijeme Matplotlib.

Funkcie sú veľmi príbuzné Matlabu, takže rozhodne sa netreba učiť príliš veľa nových vecí.

A výstupy z Matplotlibu sú proste kvalitné.

PS: Za odkaz ďakujem Michalovi Kaukičovi z FRI ŽU.


11. April 2010

Buildout – podpora virtuálneho prostredia nie len pre Python

Buildout pre Python je niečo ako Maven pre Javu. Buildoutu jednoducho predhodíte recept. Tento recept popisuje, ako má vaše prostredie vyzerať a Buildout za vás pohľadá všetky závislosti a nainštaluje ich. Pythonieristi si možno povedia: “Ale veď inštaláciu zvláda aj easy_install alebo pip“. To je pravda, ale Buildout posúva prácu s virtuálnym prostredím o level ďalej.

Predstavte si, že pracujete v tíme a teraz potrebujete, aby kolega mal rovnaké pracovné prostredie ako vy. Rovnaké balíky, rovnaké nastavenie služieb. Jednoducho napíšete recept pre buildout a ten mu pošlete. Buildout sa postará o vytvorenie virtuálneho prostredia, tak ako to poznáme z Virtualenv. Naviac nainštaluje potrebné balíky. Teraz pozor! Odinštaluje nepotrebné balíky. Nastaví adresáre a importy presne, tak ako je to potrebné. Buildout umožňuje zaviesť do projektu podstatný prvok: opakovateľnosť.

Buildout nie je nástroj výhradne len pre Python. Môžete s ním spracovávať, aj zdroje z Gitu alebo ZIP súborov. Pokiaľ pracujete extenzívnejšie s Pythonom a balíčkovaním aplikácii, určite mu venujte minutku na naučenie.

Príklad receptu na inštalovanie Tracu 0.12dev:

[buildout]
parts = babel genshi trac mypy

[babel]
recipe = zc.recipe.egg
eggs =
    Babel

[genshi]
recipe = infrae.subversion
as_eggs = true
urls = http://svn.edgewall.org/repos/genshi/trunk genshi

[trac]
recipe = infrae.subversion
urls = http://svn.edgewall.org/repos/trac/trunk trac
as_eggs = true

# Make eggs visible to mypy interpreter
[mypy]
recipe = zc.recipe.egg
eggs =
    ${trac:eggs}
    ${genshi:eggs}
    ${babel:eggs}
interpreter = mypy
scripts = mypy

Buildout potupne spracuje jednotlivé časti a podľa receptov uvedených za slovíčkom “recipe”, nainštaluje a upraví potrebné konfigurácie prostredia. Predtým, než sa vrhnete do písania vlastného receptu, odporúčam skontrolovať, či už rovnaký alebo veľmi podobný recept neexistuje.

Pokiaľ tápete v tom, ako funguje Python Eggs a virtuálne prostredie, odkážem vás na výbornú prezentáciu z PyConu 2009 – Eggs and Buildout deployment in Python:

7. April 2010

Konferencia: Otvorený softvér vo vzdelávaní, výskume a IT riešenia 2010

Na oficiálnych stránkach OSS 2010 nájdete organizačné informácie ku konferencii, ktorá sa bude konať 1.-4. 7. 2010 v Žiline.

Pokiaľ máte nejakú zaujímavú tému, prihláste sa so svojím príspevkom. V roku 2009 rozhodne nebola núdza o zaujímavé témy, ako napríklad OpenstreetMap, počítačová učebňa postavená na Linuxe, alebo programovanie hier v Pythone.

Konferenciu organizuje Spoločnosť pre otvorené informačné technológie (SOIT.sk).

23. March 2010

Správa softvérových projektov pomocou Tracu

Dnes si je už ťažké predstaviť softvérový projekt, kde by si vývojári vymieňali zdrojové kódoch na disketách. Správa zdrojových kódov sa presunula do systémov so skratkou SCM (Source Control Management). Z open source variánt je veľmi populárne Subversion a čoraz silnejšiu skupinu priaznivcov si získava aj Git.

Lenže nie len zdrojovým kódom je softvérový projekt živý. V projekte sa objavia rôzne chyby. Riešenie niektorých chýb si vyžaduje aj niekoľko týždňov. Na evidencie chýb a stavu ich riešenia, sú vhodné rôzne ticket systémy. Veľmi známa je napríklad Bugzilla, ktorá vznikala popri projekoch Mozilla Foundation. Tento softvér výrazne prispel k stabilizácii kódu Firefoxu, či Mozilly. Z komerčných si spomeňme napríklad JIRA, ktorú používa napríklad Adobe na bugs.adobe.com.

Dokumentácia je základnou súčasťou projektu. Rôzne poznámky a záznamy sa ukladajú do Wiki, ktorá obsahuje verzovanie. Aj keby niekto niečo omylom zmazal, vždy sa dá vťátiť k starému obsahu. Wiki sú jednoduché a rýchle. Z veľmi populárnych stojí za spomenutie MediaWiki, na ktorej je postavená napríklad Wikipédia.

To však akosi stále nie je úplne všetko, čo by človek potreboval na riadenie projektu. Ešte by to chcelo mať prehľad v tom, čo sa zmenilo v zdrojovom kóde a ktoré tickety boli uzatvorené. Tým pádom sa dajú ľahko sledovať zmeny a ich dopady. Z komerčného sveta má túto schopnosť najviac prepracovanú softvér Polarion.

Prečo použiť Trac, keď existuje toľko nástrojov? Autori Tracu si zvolili ako prioritu minimalistický prístup a to je veľmi podstatné. Zintegrovali dohromady Wiki, ticket systém, správu zdrojových kódov a sledovanie zmien. Trac je veľmi jednoduchý na používanie. Napojí sa na úložisko zdrojového kódu a vy máte okamžite prehľad o tom, čo sa v projekte deje. Pokiaľ vám nevyhovuje nejaká jeho vlastnosť, je ho možné ju odobrať. Trac sa dá jednoducho skonfigurovať, prípadne rozšíriť o nové vlastnosti pomocou pluginov. Trac je možné použiť aj na riadenie projektov, ktoré so softvérom nemusia mať vôbec nič spoločné, napríklad riadenie dodávok Hot Runner systémov na vstrekovanie plastov.

Pokiaľ potrebujete hostovať Trac, tak vám bežný PHP hosting stačiť nebude. Trac je napísaný v Pythone. Je možné ho spustiť ako samostatnú aplikáciu alebo pomocou Apache, tu odporúčam použiť WSGI. Ďalši informácie o možnostiach hostingu, školeniach a vývoji pluginov pre Trac, nájdete na stránkach SinusGear.com.

4. March 2010

Nová verzia Twisted 10 – sieťový engine v Pythone

A je to tu. Oficiálne bol oznámený nový release Twisted 10. Obsahuje množstvo bugfixov, lepšiu integráciu s GTK, rýchlejší perspective broker.

V článku Twisted – Python engine pre internet, nájde ďalšie informácie o Twisted. Pre softvérových fajnšmekrov som kedysi vyrendroval Code swarm – život projektu Twisted.

Pre záujemcov o Python sa objavili na trhu nové knižky: Beginning Python: Using Python 2.6 and Python 3.1, Python testing: Beginner’s guide

19. February 2010

Robot Revue – časopis o robotoch a aj o Pythone

Minulý rok sa dostal na pulty novinových stánkov nový časopis – Robot Revue. Takýto časopis zameraný na robotov a robotiku na trhu už dlho chýbal.

Na internete nájdete veľa materiálov o tom, ako si postaviť a naprogramovať robota. Jediný problém je, že väčšina týchto materiálov je v angličtine. Robot Revue hovorí zrozumiteľným jazykom. Okrem technických noviniek, návodov a zaujímavostí, tu nájdete aj seriály o programovaní. Momentálne v časopise beží seriál o programovaní robotov pomocou Javy a Pythonu. ;-)

Ešte nemáte časopis Robot Revue predplatený? Tak to napravte. Študenti môžu získať pomerne výraznú zľavu.

  • Babel fish

      Translate from:

      Translate to:

  • Where’s the fish?

  • Starfish

  • Fish for you

  • Further info

  • Badges

  • Video channel

  • Learning

    Grow your brain.
  • Tags

  • Topics

  •  

    May 2012
    M T W T F S S
    « Apr    
     123456
    78910111213
    14151617181920
    21222324252627
    28293031  
  • Comments