Translate to:

 

Marec 2010
P U S Š P S N
« Feb    
1234567
891011121314
15161718192021
22232425262728
293031  

Odznaky

Pixmac pictures
Opencaching.cz - Statistika - georgik


Add to Technorati Favorites

PageRank - hodnotenie tejto webstranky
  • 04Mar

    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

    Tags: , ,

  • 19Feb

    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.

    Tags: , , , , ,

  • 10Feb

    Konferencia EuroPython 2010 sa bude konať 19.-22. 7. v Birminghame (UK). Call for papers bude otvorený v priebehu ferbruára.

    Pre zaujímavosť uvediem, že keynote v roku 2009 prezentoval Bruce Eckel. Bruce je autorom mnohých kníh, ktoré určujú smer vývoja IT. Napríklad Learn Flex Fast! alebo  Python 3 Patterns, Recipes and Idioms.

    Archív minulých konferencií nie je momentálne k dispozícii vzhľadom na postupujúce prípravné práce. Ak sa náhodou chystáte na túto konferenciu, dajte vedieť ;-)

    Tags: , , ,

  • 25Jan

    Ani to nie je tak dávno, čo som tu písal o dôležitosti počítačových hier pre developerov a čuduj sa svete. Na internete je k dispozícii plná verzia elektronickej knihy Invent Your Own Computer Game with Python.

    Kniha vás prevedie rôznymi oblasťami, ako napríklad detekcia kolízie objektov, sonar, grafika, animácia a zvuky. Je prehľadne spracovaná a zrozumiteľná pre laika. Je publikovaná pod licenciou Creative Commons.

    Prajem príjemnú zábavu. Ak vytvoríte nejakú hru, nezabudnite poslať na ňu odkaz ;)

    Tags: , , ,

  • 21Jan

    V dňoch 1.-4. 7. 2010 sa bude konať druhý ročník konferencie OSS – Otvorený softvér vo vzdelávaní, výskume a v IT riešeniach. Toto podujatie na pôde Žilinskej univerzity sa minulý rok stretlo s veľmi pozitívnym ohlasom.

    V roku 2009 som prednášal o projekte Maptiler.org na spracovanie máp.

    Tému prednášky na tento rok ešte nemám, ale určite to bude zábava a asi aj nejaký ten Python :-)

    Ďalšie informácie o konferencii nájdete na stránkach Spoločnosti pre Otvorené Informačné Technológie (SOIT.sk).

    Spoločnosť pre Otvorené Informačné TechnológieS

    Tags: , , , ,

  • 06Jan

    Plone 4 bol spustený do testovacej fáze. Technologicky došlo k posunu z pôvodného Python 2.4 na efektívnejší a výkonnejší Python 2.6.

    Veľmi dôležitou zmenou je pridanie podpory pre ZODB BLOB, teda ukladanie binárnych objektov priamo na filesystém. Toto bolo veľmi dlho úzke miesto Zope/Plone. Binárne objekty ako fotky, boli udržiavané priamo v ZODB, čo nebolo príliš efektívne. Uloženie objektov mimo ZODB znižuje pamäťovú stopu Plone.

    Grafické rozhranie bolo vizuálne zjednodušené a rozšírené o Ajaxové prvky.

    Plone 4 si môžete vyskúšať priamo na svojom počítači. Prípadne vám môžem dať k dispozícii testovaciu inštanciu.

    Tags: , ,

  • 22Nov

    PyGTK je výborné rozšírenie Pythonu, ktoré umožňuje pracovať s GTK GUI. Pekne to funguje aj pod Windows. Dôkazom je napríklad aplikácia Srobick.

    No, všetko by bolo dobré, keby som si v jednej rozmarnej chvíli nebol zmyslel, že chcem preložené GUI. Zobral som GUI designér Glade. Prepísal som GUI do angličtiny. Vygeneroval som si prekladové súbory. Pomocou PoEditu som ich preložil. Podľa návodu som pridal set_translation_domain. Pod Linuxom to pekne chodilo. Spustím pod Windows a ajhľa. How do you jodlajdú. Všetko v angličtine.

    Prebrázdil som celý internet. Od jedného konca, po druhý. Nič. Skúsil som dokonca nastavovanie systémových premenných pomocou kernel balíku a nič. Proste zúfalstvo.

    Väčšina návodov je zastaralých a počíta s gtk.glade, ktorý sa už v nových verziách nenachádza. Tu je drobná finta, ako dostať preklad do chodu. Jednoducho preiterujete všetky objekty a spustíte na nich prekladovú funkciu.

    Príklad na preklad tooltipov:

    class GuiBuilder(gtk.Builder):
       """
       Fix for GTK builder and translation.
       Inspired by: http://old.nabble.com/gtk.Builder-and-translation-directory-td22351164.html
       """
       def translate(self):
         for obj in self.get_objects():
           # Translate tooltips
           try:
             if obj.get_has_tooltip():
              obj.set_tooltip_markup(_(obj.get_tooltip_markup()))
           except:
             pass

    V kóde potom načítavanie GUI vyzerá nasledovne:

    import GuiBuilder
    wt = GuiBuilder()
    #wt.set_translation_domain(domain = AppName)
    wt.add_from_file(gui)
    wt.connect_signals(self)
    wt.translate()

    A dôležitá informácia na záver. Na stránkach PyGTK nájdete len verziu 2.12 pre Windows, pričom pre Linux sa používa 2.16. Novší build pre Windows je tu: OptionExplicit.be

    Tags: , , , , ,

  • 28Okt

    Jaj. To som zase mal veľkú radosť, keď som zistil, že TurboMail má problémy s odosielaním mailov s diakritikou. Ja chápem, že ľudí v anglofónnych krajinách príliš netrápia nejaké tie srandovné veci nad písmenkami. Bez diakritiky je aplikácia pre Európu bezcenná.

    Tak, dosť lamentu. Ako poslať z Pythonu mail v UTF-8?

    Tu je kód, ktorý som prevzal od Mariusa Gedminasa a rozšíril som ho o pár riadkov, aby bol priamo spustiteľný.

    # -*- coding: utf-8 -*-
    from smtplib import SMTP
    from email.MIMEText import MIMEText
    from email.Header import Header
    from email.Utils import parseaddr, formataddr
    
    def send_email(sender, recipient, subject, body):
        """Send an email.
    
        All arguments should be Unicode strings (plain ASCII works as well).
    
        Only the real name part of sender and recipient addresses may contain
        non-ASCII characters.
    
        The email will be properly MIME encoded and delivered though SMTP to
        localhost port 25.  This is easy to change if you want something different.
    
        The charset of the email will be the first one out of US-ASCII, ISO-8859-1
        and UTF-8 that can represent all the characters occurring in the email.
        """
    
        # Header class is smart enough to try US-ASCII, then the charset we
        # provide, then fall back to UTF-8.
        header_charset = 'ISO-8859-1'
    
        # We must choose the body charset manually
        for body_charset in 'US-ASCII', 'ISO-8859-1', 'UTF-8':
            try:
                body.encode(body_charset)
            except UnicodeError:
                pass
            else:
                break
    
        # Split real name (which is optional) and email address parts
        sender_name, sender_addr = parseaddr(sender)
        recipient_name, recipient_addr = parseaddr(recipient)
    
        # We must always pass Unicode strings to Header, otherwise it will
        # use RFC 2047 encoding even on plain ASCII strings.
        sender_name = str(Header(unicode(sender_name), header_charset))
        recipient_name = str(Header(unicode(recipient_name), header_charset))
    
        # Make sure email addresses do not contain non-ASCII characters
        sender_addr = sender_addr.encode('ascii')
        recipient_addr = recipient_addr.encode('ascii')
    
        # Create the message ('plain' stands for Content-Type: text/plain)
        msg = MIMEText(body.encode(body_charset), 'plain', body_charset)
        msg['From'] = formataddr((sender_name, sender_addr))
        msg['To'] = formataddr((recipient_name, recipient_addr))
        msg['Subject'] = Header(unicode(subject), header_charset)
    
        # Send the message via SMTP to localhost:25
        smtp = SMTP("localhost")
        smtp.sendmail(sender, recipient, msg.as_string())
        smtp.quit()
    
    send_email('odosielatel@sinusgear.com',
     'prijemca@sinusgear.com',
     u'Guľôčka v jamôčke',
     u"""Lečo, haruľa, šašlík.
    A ako dopadne odosielanie ďalšieho riadku? Bude na novom riadku.
    A čo tak odoslať trošku dlhší reťazec znakov, než obyčajných 80, aby sme videli, ako si s tým mailer programy poradia. """)

    Všetko. Stačí uložiť do send.py a zavolať: python send.py

    Tisíce ďakovných listov od spokojných Pythonierov a neskonalá vďaka Mariusovi.

    Tags: , , , ,

  • 25Okt

    Facebook ponúka API pre rôzne jazyky a technológie. Poďme sa pozrieť, ako je možné vytvoriť jednoduchú dekstopovú aplikáciu v Pythone, ktorá zaktualizuje stav požívateľa.

    Najskôr si stiahnime PyFacebook pomocou Gitu

    git clone git://github.com/sciyoshi/pyfacebook.git

    Potom nainštalujeme PyFacebook:

    cd pyfacebook
    python setup.py install

    Ďalej je nutné zaregistrovať aplikáciu na Facebooku, čím získame API Key a Secret. Pri konfigurkácii zvolíme v záložke Advanced položku Application Type – Desktop.

    facebook-desktop-appKým sa vyreplikuje zmena nastavenia aplikácie, zostavíme jednoduchý program v Pythone, ktorý bude vedieť zaktualizovať status na Facebooku. API_KEY a SECRET si nahraďte svojimi hodnotami.

    import facebook
    fb = facebook.Facebook(API_KEY, SECRET)
    fb.auth.createToken()
    fb.login()

    V tomto mieste, už máme vytvorenú inštanciu triedy Facebook a môžeme veselo volať jej metódy, napríklad v konzole pomocou iPython. Na to, aby sme mohli aktualizovať status na Facebooku, budeme musieť používateľa požiadať o právo na aktualízáciu.

    fb.request_extended_permission('status_update')

    A môžeme aktualizovať.

    fb.status.set('Uspesny update statusu pomocou PyFacebook a iPython')

    Ako to vyzerá v praxi? Ukážka v iPython konzole:

    facebook-ipython-updateVýsledok na Facebooku:

    facebook-vysledokEšte doplním odkaz, pre vývojárov v Adobe Flex/AIR. Dobrý zdroj nájdete na adrese: http://www.adobe.com/devnet/facebook/

    Tags: , , , ,

  • 22Okt

    Ako som už písal, WSGI posúva možnosti hostovania Python aplikácii o míľové kroky dopredu. U WSGI je však jedna zrada, ktorá môže spôsobiť, že vaša aplikácia má namiesto dramaticky vysokého výkonu, výkon dramaticky mizerný.

    Problém je v tom, že väčšina tutoriálov vám odporúča nainštalovať WSGI a spraviť drobnú konfigurácie. Tradá a aplikácia funguje.

    Lenže!

    Ide relatívne rýchlo a ešte rýchlejšie vám zožiera pamäť. Pri vysokej záťaži odvarí server na load 55 a podobné radosti. V čom je problém? Neprečítali ste si manuál.

    Autori WSGI už asi boli znechutený tým, ako na nich ľudia neustále frflú a  upozornenie pre používateľa dali na prvú stránku projektu. Niečo na štýl: nesušte zápalky v mikrovlnke.

    Problém je v tom, že v základnom móde beží WSGI ako embeded aplikácia. Čo je tak dobré na malé jednoduché aplikácie typu Ahoj Mexiko. Pokiaľ teda nie ste expertom na tunenie Apacha, je pre vás vhodnejší mód, kedy beží aplikácia v démon procese.

    Čo na to treba? Vlastne pridať len dva riadky do konfigurácie VirtualHostu:

    WSGIDaemonProcess georgik.sinusgear.com threads=15 maximum-requests=10000
    WSGIProcessGroup georgik.sinusgear.com

    Úžasné! Rozdiel, ktorý vidíte, aj cítite :)

    Update: Rozhodne si prečítajte komentár od Messa. Veľmi dobre vysvetľuje princíp fungovania Apache/Python.

    http://georgik.sinusgear.com/2009/10/22/wsgi-mizerny-vykon-co-tak-precitat-manual/#comment-303

    Tags: , , ,

« Previous Entries