Arhīvs | July, 2007

EuroPython 2007 iespaidi

16.07.2007

Īsos vārdos konferencē bija jauki — gana interesanti un arī noderīgi. Uzskaitīšu dažas lietas, kas vairāk vai mazāk palikušas atmiņā.

Zope pasaule

Daudz bija pārstāvēts Zope, jaunais Zope 3 kustās pareizā virzienā, kļūstot vieglāk programmējams (Grok ietvars), vieglāk uzstādāms un savietojams ar citām Python tīmekļa aplikācijām (WSGI standarta atbalsts, raksta autoru bija arī tas prieks satikt). Žēl, bet paies ilgs laiks līdz gala lietotājam uz Zope 3 platformas būs pieejama tāda satura vadības sistēma kā patlaban Plone uz Zope 2.

Interesanti bija klausīties stāstu par Zope izmantošanu sistēmā ar ļoti daudz pieprasījumiem (draugiem.lv drošvien gan ir nedaudz vairāk). Kā frontends tiek izmantots Nginx webserveris un gan lapu daļu (SSI ar Nginx), gan Zope objektu kešošanai tiek lietots memcached dēmons.

KSS - kinetic style sheets AJAX bibliotēka, teorētiski vispārīga, taču veidota Zope/Plone pasaulei. Neparasta pieeja, ajax darbības un efekti tiek aprakstīti, izmantojot līdzīgu pieeju CSS. Ar to gan vien nepietiek un, atgriežot datus AJAX atbildē, tiek padotas arī Javascript instrukcijas. Tas neatbilst labākajām programmēšanas tradīcijām — datu atdalei no koda. Tomēr, iespējams, nāksies izmantot šo bibliotēku nelielā Plone projektā, galu galā vieglāk izmantot jau integrētas lietas.

Storm

Nu jau kārtējā ORM bibliotēka Python pasaulē. Tika publiskota tieši EuroPython konferencē. Tapusi Canonical paspārnē, risinot problēmu ar vairāku datubāžu atbalstu vienam un tam pašam objektu tipam. Patīkami vienkārša sintakse un, izskatās, ļoti saprātīgi izstrādāts datubāžu pieprasījumu mehānisms.

Koda piemērs:

class Person(object):
    __storm_table__ = "person"
    id = Int(primary=True)
    name = Unicode()

database = create_database("scheme://u:p@host:port/db")
store = Store(database)
store.add(object)
store.get(Person, 1)

Secinājumi: ja sistēmu integrēšanai nav ērtāk lietot SQLAlchemy vai Django iebūvēto ORM, tad noteikti ieteicams papētīt.

Python straumēšanas sistēma ar Twisted un GStreamer

Izlaidu prezentāciju, jo nez kāpēc domāju, ka Python izmantošana Sharepoint piekļuvei varētu vairāk noderēt, taču ļoti paveicās un konferences oficiālo vakariņu laikā sēdēju pretī Thomas Vander Stichele, kas pastāstīja visu, ko gribēju zināt, un vēl vairāk par Fluendo pakalpojumiem, Twisted un GStreamer izmantošanu straumēšanai.

Puiši Spānijā un citur Eiropā izkonkurē Akamai straumēšanas pakalpojumu sniegšanā. Straumēšanai parasti tiek ņemti MPEG dati no satelīta plūsmas vai digitāli dati satura sniedzēja tehniskajā centrā, kas pēc vajadzības tiek pārveidoti ar GStreamer C bibliotēku un tiek straumēti ar asinhrono Twisted serveri lietotājiem.

Cik saprotams, galvenās priekšrocības pār konkurentiem ir lielā fleksibilitāte — straumēšanu var saplānot izmantojot iCal kalendāru, iespējams automātiski sākt vai beigt straumēšanu, ievietojot specifisku, TV skatītājiem neredzamu signālu datu plūsmā, un daudz citas specifiskas lietas, tās ātri izveidojot ar Python palīdzību.

Django, OpenID

Ieplānotas uzstāšanās par Django nebija, toties notika sanākšanas OpenSpace ietvaros, kur cilvēki atrādīja savus Django projektus. Noderīgākais dotajā mirklī noteikti bija MyEuroPython, kas izmanto oficiālās konferences lapas tēmu grafiku un savelk informāciju no Flickr un Technorati. Jāatzīmē arī Grono.net, kas ir poļu draugiem.lv un izmanto aizvēsturisku Django versiju.

Uzstājās arī viens no Django autoriem Simon Willison, bet runāja par OpenID tehnoloģiju. Bija interesanti ar viņu parunāt mazākā lokā par OpenID priekšrocībām un to, kad tad viņš beidzot pabeigs iespēju reģistrēties pilnvērtīga Django konta lietošanai ar OpenID palīdzību. Lielākā atskārsme man bija tā, ka var OpenID tīri praktiski izmantot korporatīvā vidē, ja tajā tiek izmantoti produkti, kas spēj autentificēties ar OpenID. Atlassian pat jau ir uztaisījusi OpenID sniedzēja integrāciju ar aktīvo direktoriju — Crowd.

Citas piezīmes

  • izrādās eiropieši brauc strādāt uz Ķīnu un pēc tam brauc atpakaļ uz konferencēm;
  • Windows šādos pasākumos ir izteiktā mazākumā, visvairāk redzams MacOS X, pēc tam — Ubuntu;
  • Google piesaista Python izstrādātāju uzmanību — uzsauc dzērienus sanākšanā krodziņā, izdāļā t-kreklus un citus sīkumus;
  • procesu novērošanai un startēšanai var papētīt supervisor2, munin;
  • ja ir vēlme redzēt skaistu web paneli testējot — lietojiet py.test;
  • asp.net aplikācijām ir jokaina uzbūve, labā ziņa — to bez īpašām problēmām var darbināt ar IronPython;
  • distribūtētajai versiju kontroles sistēmai Bazaar būs GUI rīki arī uz Windows.

P.S. Nākamgad EuroPython atkal Vilņā. Izmantojiet izdevību samērā lēti apmeklēt pasaules mēroga pasākumu (man kopā izmaksāja mazāk par Ls 150). Dīvaini, ka šogad no Latvijas tik trīs cilvēki bijām.

EuroPython 2007 tepat Viļņā

03.07.2007

Pēdējā brīdī pamanīju, ka EuroPython 2007, kas ir viena no ikgadējam Python konferencēm, notiek tikai 300 km attālumā no Rīgas.

Piereģistrējos un viesnīca ar rezervēta.

Nav tā, ka programmā būtu paredzēts, kaut kas tāds, bez kā absolūti nevarētu iztikt, bet iespēja taču jāizmanto, nekad nevar zināt, kas būs citus gadus.

Kā atšķirt labus Python atvērtā koda projektus no sliktiem

03.07.2007

Elementāri — labiem Python projektiem Google SVN repozitorijā (vai kādā citā versiju kontroles sistēmā) neatrodas *.pyc faili.

Tiešām nolaižas rokas, ieraugot kādu ne niecīga izmēra Python projektu, kur cilvēks ieguldījis pūles un laiku, bet nesaprot, ka kompilētiem failiem nav vieta versiju kontroles sistēmā. Tiem, kam vēl ir jautājumi, paskaidroju — uz dažādām datorsistēmām kompilētie faili savā starpā atšķiras arī tad, ja izejas failu kods ir tas pats, un šādus failus, kas faktiski attiecas tikai uz konkrēto datorsistēmu, nav ne jēgas, ne vajadzības publicēt. Tie tikai var traucēt palaist izejas kodu.