Archive for 2007

Tebūnie aplinkosauga – mūsų gyvenimo dalis

Monday, October 15th, 2007

Kažkada seniai seniai per televizorių rodydavo animacines socialines reklamas, skatinančias užsukt varvančius vandens čiaupus, išjungt šviesą, paliekant kambarį, ir pan. Pasigendu to gėrio šiuolaikinėse komercinėse televizijose. Betgi suprantama – eterio laikas yra brangus malonumas, jau geriau pakartos skalbimo miltelių ar vaistų reklamą penktą kartą valandos bėgyje ir užsidirbs pinigo. Taigi atleidžiu televizijai ir truputį propagandos Blog Action Day proga primesiu savo bloge.

SOS Baltija

Kodėl Pasaulio sveikata turi kažkam rūpėti? Visų pirma, kad patys galėtume džiaugtis gyvenimu ilgiau. O antra, kad gyvenimo džiaugsmą turėtų progos patirti ir mūsų gimę bei dar negimę vaikai. Tikiu, kad gamtos katastrofas sukėlė pats žmogus iš savo nežinojimo ar neapsiskaičiavimo. Įvairūs išsigimimai ir vėžiai irgi dažnai būna sąlygoti aplinkos veiksnių (pvz., radiacija), kuriuos sukėlė pats žmogus.

Žinoma, mes asmeniškai po vieną niekada nepriteršiame tiek, kiek įvairūs fabrikai. Tačiau sudėjus visus mūsų kenkėjiškus (nebūtinai tiesiogiai) įpročius į vieną krūvą, sukeliame sau nemažą grėsmę. Lašas po lašo, kaip sakant, akmenį pratašo. Na užteks svaičioti apie mūsų gražiąją mėlynąją Žemę ir jos tausojimą. Pažvelkim į viską asmeniškai.

Kaip aš prisidedu prie tavo gerovės?

Rūšiuoju šiukšles, tarą priduodu į taros supirktuves. Tai kas pūva, sunaikinama sąvartynuose specialiais chemikalais. Tai ką įmanoma perdirbti, perdirbama ir sutaupoma žaliavų. Taigi dėl to spauda, tualetinis popierius, buteliai ir kitkas tau yra pigesni negu kainuotų gaminant iš pirminių žaliavų.

Nerūkau ir skatinu nerūkymą. Negana to, kad saugau savo sveikatą ir tavo sveikatą, sumažinu tikimybę, kad nieko nedėti mūsų vaikaičiai turės įgimtų kvėpavimo sutrikimų.

Naudoju kuo mažiau celofaninių maišelių. Plastikas yra viena iš ilgiausiai dūlinčių medžiagų, jo naikinimas pats savaime teršia aplinką. Ir gali pakenkti tavo sveikatai. Todėl vengiu vartoti plastiką vienkartiniais tikslais. Vietoj to, kad supermarkete kiekvieną kartą pirkčiau po celofaninį maišelį, pirkinius deduosi į kuprinę arba medžiaginį maišelį, kurį nešiojuos su savimi.

Vengiu purškiamų dezodorantų. Nes juose yra medžiagų, kurios kaupiasi ozono sluoksnyje ir taip skatina globalinį atšilimą. Vaikystėj dažnai sapnuodavau, kad Klaipėda patvinus ir po gatves reikia plaukioti valtimis. Nebūtų taip jau labai smagu, jei tai atsitiktų realybėje.

Tikrai nemanau, kad dabar visi turėtume pradėt kalbėti apie visus globalinius atšilimus, aplinkosaugą ir sveikatą, dalyvaut protesto akcijose ar siuntinėt grandininius laiškus. Tiesiog turėtume pakeisti kai kuriuos savo įpročius ir priimt naujus, kaip savaime suprantamus. O kad apie tuos pokyčius apskritai ateitų mintis į galvą, šitas idėjas reikia tiesiogiai arba netiesiogiai perteikti per įvairią mediją.

Jaučiu didelę pagarbą kompanijoms ir individams, kurios socialinių ar globalinių pokyčių sveiko Pasaulio link, imasi siūlydami edukacinius žaidimus. Ne visada tie žaidimai būna pavykę ir suteikia pakankamai džiaugsmo, kad būtų įdomūs, tačiau kartais vis dėlto tokių pasitaiko. Šiaip manyčiau, kad geriausi edukaciniai žaidimai būtų tie, kurie diegtų aplinkosauginius įpročius ne per suteiktos informacijos atkartojimą, bet per humorą; ir ne visiškai tiesiogiai, pvz., pirmojo asmens šaudyklėje vienam iš lygių:
– Matei, jis numetė saldainio popierėlį ant žemės? Sušaudykim niekšą!

Pabaigai australo Sheldon Lieberman nuotaikingas filmukas, apie kurį buvau jau užsiminęs anksčiau.

Ir atviras klausimas: Ką tu gero darai dėl manęs?

Webcuts 2007

Saturday, October 13th, 2007

Praėjusią savaitę eidamas į cepelinų balių pas Arūną, visai netikėtai Ostkreuz (tariasi „ostkroic“) traukinių stoty pamačiau plakatą, kviečiantį į interneto kino festivalį „Webcuts 2007“ lygiai po savaitės Cinestar Sony Center kino teatre1. Tokių renginių stengiuosi nepraleisti ir – jei tik turiu progą – sudalyvauti bent jau kaip žiūrovas. Taigi įsirašiau priminimą telefono kalendoriuje.

Kino teatre neplanuotai susitikau Laurą su savo rusų tautybės draugeliu, kuris ten ją pasikvietė. Šis, sakyčiau, žmogus prie meno. Rastumėm bendros kalbos. Bet nenusivažiuojant į lankas, trumpai peržvelgsiu man labiausiai patikusius filmukus, kurių dauguma buvo animaciniai.

Vokiečių „Didžiojo brolio padėtis“ (angl. “Big Brother State”) kalbėjo apie tai, kaip informacijos sekimas iš vienos pusės užtikrina valstybių saugumą, o iš kitos – pažeidžia individų asmenines teises ir laisves.

Kažkoks žalias australų nupieštas ir įdainuotas kleckas su gitara filme „Globalinis atšilimas“ (angl. “Global Warming”) nuotaikingai ir sarkastiškai tikino žiūrovą, kad globalinio atšilimo nėra: “I don’t believe in global warming, come and sing it now! I don’t believe in global warming come and sing with me!”2

Ispanų tėvo ir sūnaus istorija „Aš gyvenau mėnulyje“ (angl. “I Lived on the Moon”) sužavėjo savo atlikimu ir jausminga, protarpiais netikėta istorija.

Serbų nejudančios kameros ir turtingo turinio ranka piešta animacija su siurprizais „Liekanos“ (angl. “Leftovers”) taip pat susilaukė mano dėmesio. Šiek tiek priminė seniau matytą čekų filmuką „Buto gyvenimas“ (angl. “Flat Life”).

Britų „Akivaizdi grėsmė“ (angl. “the obvious threat”) futuristiniame Pasaulyje perkeltine prasme perteikia, kad žiniasklaidos pagalba programuojami „robotukai“, turintys žiniasklaidos nuomonę, bet ne savo. Graži trimatė animacija su įtikinančia fizika ir įtikinančiom veidų išraiškom. Gerai perteikta baimė.

Kanadiečių „Tipografija“ (angl. “Typographics”) vien iš raidžių sudėliotame trimačiame filmuke per porą minučių supažindina su pagrindiniais mokslo apie šriftus terminais.

Man asmeniniškai labiausiai patikęs, kuriam skiriu pirmą vietą – „Dvilypiškumas“ (angl. “Duelity”; filmui žiūrėti reikės QuickTime grotuvo), sukurtas kanadiečių Marcos Ceravolo ir Ryan Uhrich. Filmas rodomas dviejuose ekranuose vienu metu ir jame pasakojamos dvi Pasaulio sukūrimo teorijos – krikščioniškoji ir evoliucinė. Labai nerealiai viskas supinta – teorija, kad Pasaulį sukūrė Dievas, pasakojama moksliškai ir iliustruojama schematiškai, o teorija, kad žmogus išsivystė kaip vienas iš gyvūnų, pasakojama kaip legenda ir iliustruojama gotikinio stiliaus motyvais.

Šiųmetinės animacijos mados (sėkmės formulės komponentai), mano nuomone, būtų tokios:

  • Dvimačių ir trimačių piešimo stilių derinimas viename filme.
  • Netikėtai nukrypstanti siužetinė linija.
  • Globalinės arba socialinės temos.

Kai tuo tarpu iš prieš metus Interfilm Festival žiūrėtos animacijos tuomet išskyriau tokias madas:

  • Pabaigoje pagrindiniai veikėjai sunaikinami.
  • Metamorfozės: vieni daiktai virsta kitais.
  • Realybė supinama su vaizduote.

Turiu paminėti, kad ano festivalio mados atsikartojo ir kai kuriuose šio festivalio filmuose.

Po „Webcuts 2007“ apdovanojimų dar įsigijau DVD su visais 23 į didįjį ekraną patekusiais filmais. Susidomėjusiems svečiams galėsiu parodyt. :cool: O dabar belieka laukti šiųmetinio Interfilm Festival arba gal dar koks netikėtas pasirodys. Tai tiek kultūrinių naujienų iš Berlyno.

1Tai vienas iš nedaugelio Berlyno kino teatrų, kur filmai rodomi originalo kalba (nedubliuoti vokiškai).
2angl. „Aš netikiu globaliniu atšilimu, ateik ir padainuok dabar! Aš netikiu globaliniu atšilimu, ateik ir padainuok kartu!“

Control Your Code with Subversion

Saturday, October 6th, 2007

I can’t imagine professional IT project development without source control. No matter whether you’re working on a small personal project or on a large commercial application, source control is something that helps you to manage bunches of constantly changing code among multiple developers. It is so-to-say UNDO functionality in the programming process.

How to manage a project among multiple developers?
Source control has a repository where it holds the developed files and the data of your development process. Each developer works with her own copy of the repository. The basic work under source control looks like this:

  1. You get the files from the repository to your local copy. This process is called “check-out” (for the first time) or “update” (for the next times).
  2. You edit files.
  3. You check the status, what files you’ve changed. If some new files were created, you might add them to the source control as well, or you can set them in the ignore list not to show them in the status report anymore.
  4. Then you send the changes from your copy to the repository. This process is called “commit” or “check-in”.

With each committing, source control creates new versions of your files. The commit generates a new revision which has an incremental number. If you make some mistake, you can always rollback to a previous state of your development by the number of revision or by date the committing was made. With each committing you can (and should) write comments, what was changed for that revision, so it’s much easier to find out to which revision to rollback. Also source control usually can show the changes of the same file between two different revisions.

The repository might be set up either on the same computer or on the distant server. Files can be controlled for one person as well as for a large network of developers.

When a couple of developers modify the same file, the source control tries to merge the changes in the file. If it’s not obvious, how to do that, a conflict is thrown, and developers have to solve it manually. Source control doesn’t accept any conflicts to the repository. They have to be fixed on the local copies before being able to commit.

When the project is developed by multiple people, it is possible to check what changes were done by whom. There are some other functionalities of source control as tagging all the files of the current revision with some string (i.e. release number); creating different branches of the same project, or merging two different branches into one.

From a bunch of source control systems, I prefer Subversion (SVN), as it is full-featured, convenient, stable, and last but not least – it’s free of charge.

At the studio, where I work, we use SVN for CreativeCityBerlin and other Django-based projects. The repository is in a secured server requiring authentication for each user. We use a wide range of SVN clients on different platforms. I usually use the standard command-line SVN client for my own development environment (it’s on Mac OS X) and for the public server (running on Linux) where the websites are hosted. Some of us use ZigVersion SVN client for Mac. Some are using TortoiseSVN for Windows.
Multiple Developers Using Subversion

As a small step towards continuing developing my Halma game and other personal projects, I installed TortoiseSVN on my personal laptop as well. I am not the only person to approve that TortoiseSVN is the most user-friendly SVN client on the Earth at this moment.

It is fully integrated into Windows Explorer and it is very intuitive. All the source-control functions are accessible on the right-click menu. The statuses of the files are marked with indicators attached to the file icons.

Tortoise SVN

After installing TortoiseSVN onto my PC, I created a repository for my Halma game locally. And also as a test I created a public repository on Google code for my Klãva project.

If you haven’t started using any source control, I encourage you to do that ASAP. Version control can be successfully used not only by IT developers, but also by writers, digital artists, or composers.

Valdyk savo kodą su Subversion

Saturday, October 6th, 2007

Neįsivaizduoju profesionalaus IT projektų vystymo be kodo kontrolės priemonių. Nesvarbu, ar dirbi prie mažo asmeninio projektėlio, ar didelės komercinės taikomosios programos, kodo kontrolė yra tai, kas tau padės suvaldyti krūvas nuolat besikeičiančio kodo tarp daugelio kūrėjų. Tai yra, taip sakant, ATŠAUKTI funkcionalumas programavimo procese.

Kaip suvaldyti projektą tarp daugelio kūrėjų?
Kodo kontrolė turi talpyklę (angl. repository), kur laikomi kuriami failai ir kūrimo proceso duomenys. Kiekvienas kūrėjas dirba su tos talpyklės kopija. Standartiškai darbas kontroliuojant kodą vyksta taip:

  1. Pasigriebi failus iš talpyklės į savo vietinę kopiją. Šis procesas vadinamas “check-out” (pirmą kartą) arba “update” (kitus kartus).
  2. Redaguoji failus.
  3. Pasitikrini statusą, kokius failus pakeitei. Jei buvo sukurta naujų failų, juos gali pridėti į kodo kontrolę arba įrašyti į ignoruojamų failų sąrašą, kad statuso raporte jie daugiau nebepasirodytų.
  4. Tuomet tu patvirtini pasikeitimus ir jie iš tavo kopijos nusiunčiami į talpyklę. Šis procesas vadinamas “commit” arba “check-in”.

Sulig kiekvienu patvirtinimu, kodo kontrolė sukuria naujas redaguotų failų versijas. Pakeitimų patvirtinimas sugeneruoja naują reviziją (angl. revision) su automatiškai didėjančiu numeriu. Jei padarai klaidą, tu visada gali sugrįžti (angl. rollback) į buvusią kūrimo būseną pagal revizijos numerį arba datą, kada patvirtinimas buvo padarytas. Su kiekvienu patvirtinimu tu gali (ir turėtum) parašyti komentarus, kas buvo pakeista tai revizijai, tam kad vėliau būtų kur kas lengviau surasti reviziją į kurią galėtum sugrįžti. Taip pat kodo kontrolė dažniausiai leidžia pažiūrėti to paties failo pakeitimus tarp dviejų revizijų.

Talpyklė gali būti sukonfigūruota arba tame pačiame kompiuteryje arba nutolusiame serveryje. Failai gali būti kontroliuojami tiek vienam žmogui, tiek dideliam kūrėjų tinklui.

Kai pora kūrėjų modifikuoja tą patį failą, kodo kontrolė bando apjungti (angl. merge) pakeitimus faile. Jei tai nėra akivaizdu, parodomas konfliktas ir kūrėjai turi jį išspręsti savo galva. Kodo kontrolė nepriima jokių konfliktų į talpyklę. Jie turi būti ištaisyti lokaliose kopijose prieš galimybę patvirtinti pakeitimus.

Kai projektas kuriamas daugelio žmonių, yra galimybė patikrinti, kas padarė kokius pakeitimus. Taip pat yra kitų kodo kontrolės funkcionalumų, kaip kad visų failų dabartinėje revizijoje žymėjimas (angl. tagging) tam tikra simbolių eilute (pvz., laidos numeriu); skirtingų to paties projekto atšakų (angl. branch) kūrimas, arba dviejų skirtingų atšakų apjungimas (angl. merging) į vieną.

Tarp galybės kodo kontrolės sistemų aš mėgstu Subversion (SVN), kadangi ji pilnai atidirbta, patogi, stabili, o taip pat – nemokama.

Studijoje, kur dirbu, SVN naudojam CreativeCityBerlin ir kitiems projektams su Django. Talpyklė yra apsaugotam ir kiekvieno naudotojo autentikacijos prašančiame serveryje. Naudojam įvairius SVN klientus skirtingoms platformoms. Aš dažniausiai dirbu su standartiniu komandinės eilutės SVN klientu mano kūrimo aplinkoj (ant Mac OS X) ir viešame serveryje (ant Linux), kuriame laikomos svetainės. Kai kurie iš mūsų naudoja ZigVersion SVN klientą Mac’ui. Kai kurie – TortoiseSVN Windows’ams.
Daugelis, naudojantys SVN

Kaip mažą žingsnelį tolimesnio Halmos žaidimo ir kitų projektų kūrimo link, susidiegiau TortoiseSVN ir savo asmeniniame laptope. Nesu vienintelis asmuo, kuris gali patvirtinti, kad TortoiseSVN yra pats patogiausias SVN klientas žemėje šiuo metu.

Jis yra pilnai integruotas į Windows Explorer ir yra labai intuityvus. Visos kodo kontrolės funkcijos yra pasiekiamos per dešiniojo mygtuko meniu. Failų statusai yra pažymėti specialiais indikatoriais, prikabintais prie failų piktogramų (ikonėlių).

Tortoise SVN

Įdiegęs TortoiseSVN savo kompiuteryje, susikūriau talpyklę savo Halmos žaidimui lokaliai. O taip pat prasitestavimui susikūriau viešą talpyklę Google kode savo Klãvos projektui.

Jei dar nepradėjai naudoti jokio kodo kontrolės įrankio, primygtinai siūlau tai padaryt kuo anksčiau. Versijų kontrolę taip pat sėkmingai gali naudoti ne tik IT kūrėjai, bet ir rašytojai, skaitmeninio meno atstovai ar kompozitoriai.

Poetry Compiled from Stolen Thoughts

Friday, October 5th, 2007

I imagine creations which are impossible in the real life,
But the uniqueness of game media form lets people
Experience the world in my head.
Pink princesses on pink horses in a field of roses
Grow up into stylish consumers who take adulteries of their husbands into hearts.
That’s a stereotypical girly game, which development,
As always, consists of design, programming, other parts, and art…
The art is noticeable when it’s remarkably good or remarkably shitty.
Details are very important.
A small mistake can turn the erotics of a body into ridiculous comic.
Paradox. Avatar is an extention of a player. It is the metaphor of a body.
That’s a facade for the interaction with the virtual world.
Avatar is a machine for the input/output processes.
But it doesn’t give the player nor touches, nor warmth, nor senses.
Input/output are the bunches of code.
The optimization has low quality if you don’t understand the inner side of the computer.
Projects will be of higher quality
If everybody will be allowed to express her opinion inside the company.
I experience the world in your head.

Vogtų minčių sukompiliuotos eilės

Friday, October 5th, 2007

Įsivaizduoju kūrinius, kurie realiai neįmanomi,
Bet žaidimų medijos formos unikalumas leidžia žmonėms
Patirti pasaulį mano galvoje.
Rožinės princesės ant rožinių žirgų rožinėj pievoj
Išauga į stilingas konsiumeres, kurios pergyvena dėl vyrų neištikimybių.
Tai stereotipinis mergaitiškas žaidimas, kurio vystymas
Kaip visada – iš projektavimo, programavimo, kitų dalių ir meno…
Menas pastebimas, kai nepaprastai geras arba nepaprastai šūdinas.
Be galo svarbu – detalės.
Nuo mažytės klaidelės kūno erotiškumas gali virsti apgailėtinu komiškumu.
Paradoksas. Avataras yra žaidėjo papildymas – kūno metafora.
Tai fasadas interakcijai su virtualiu pasauliu.
Avataras – mašina įvesties/išvesties procesui.
Bet žaidėjui neperduoda nei prisilietimų, nei šilumos, nei jausmų.
Įvestis/išvestis – kodo klodai.
Nekokybiška optimizacija, neišmanant kompo vidurių.
Projektai bus kokybiškesni, kai kompanijos viduje
Kiekvienam bus leidžiama pareikšti savo nuomonę.
Patiriu pasaulį tavo galvoje.

Simple JavaScript Console

Tuesday, October 2nd, 2007

What I miss while debugging JavaScript in different browsers is a simple FireBug-like JavaScript Console, where you could execute statements for any current page on the fly and get the results immediately.

JavaScript Console

For example:
>>> document.body.innerHTML
"<div class=\"navi\">..."
will return the computed HTML of the current page which might be different than the source of the page, as some JavaScript functions might have modified it.
And
>>> document.cookie="testcookie=testvalue"
will set a test cookie for a document.

As a very simple alternative to JavaScript Console, I wrote a Bookmarklet/Favelet which executes the entered JavaScript statement and returns the result: Simple JavaScript Console. To install it, just add the link to your Bookmarks/Favorites.

If you have some time, wanna practice JavaScript, and make the world a better place to live, I have a task namely for you! Create an open-source cross-browser JavaScript console which could be included into any page by a favelet/bookmarklet. Or create a favelet/bookmarklet which loads and inserts the existing Ext Debug Console into any page on the web.
As a hint how to load a JavaScript file from a bookmarklet/favelet, check the accessible printouts which I created before. The console should return all results in a readable format. All objects should tell what kind of properties they have and all collections and arrays should list their content in a format [item1,item2,item3].

Your code will be reviewed and evaluated. Improvements will be suggested. You’ll be interviewed and proudly blogged. :D

UPDATE! This is my own solution for the task I gave to you: Load Firebug Lite. It works for modern browsers which have no Firebug installed.

Paprasta JavaScript’o konsolė

Tuesday, October 2nd, 2007

Ko pasigendu debugindamas JavaScript skirtingose naršyklėse – tai paprasta į FireBug panaši JavaScript’o konsolė, kur galėtum vykdyti komandas tiesiogiai bet kuriam atverstam puslapiui ir iškart gauti rezultatus.

JavaScript'o konsolė

Pavyzdžiui:
>>> document.body.innerHTML
"<div class=\"navi\">..."
parodys sugeneruotą atverto puslapio HTML kuris gali skirtis nuo puslapio išeities tekstų, nes koks JavaScript’as jau gali būti juos modifikavęs.
O
>>> document.cookie="testinis_kukis=testine_reiksme"
nustatys dokumentui testinį sausainėlį.

Kaip ypač paprastą alternatyvą JavaScript’o konsolei, parašiau Bukmarkletą/Feivletą, kuris vykdo įvestą JavaScript’o komandą ir parodo rezultatą: Paprasta JavaScript’o konsolė. Diegimas paprastas – tiesiog pridėk nuorodą prie savo Bookmarks/Favorites.

Jei turi šiek tiek laiko, nori pasipraktikuoti JavaScript’ą ir padaryti Pasaulį geresne vieta gyventi, turiu užduotį būtent tau! Sukurk atvirojo kodo visose moderniose naršyklėse veikiančią JavaScript’o konsolę, kuri galėtų būti įterpta į bet kurį puslapį feivleto/bukmarkleto pagalba. Arba sukurk feivletą/bukmarkletą, kuris pakrauna ir įterpia egzistuojančią Ext Debug Console į bet kurį žiniatinklio puslapį.
Pagalbai, kaip pakrauti JavaScript failą iš bukmarkleto/feivleto, pasinaudok pasiekiamais spausdiniais, kuriuos sukūriau anksčiau. Konsolė turėtų visus rezultatus parodyti skaitomo formato. Visi objektai turėtų pasakyti, kokius jie turi atributus, visos kolekcijos ir masyvai turėtų išdėstyti savo turinį [narys1,narys2,narys3] formate.

Tavo kodas bus peržiūrėtas ir įvertintas. Pasiūlysiu patobulinimų. Tada paimsiu interviu ir išdidžiai pabloginsiu. :D

ATNAUJINTA! Čia mano paties anksčiau tau iškeltos užduoties sprendimas: Pakrauk Firebug Lite. Veikia moderniose naršyklėse, kuriose nėra įdiegtas Firebug.

AAiddennium » TV « G|C. Play. It’s Your Nature

Friday, September 14th, 2007

Realybė yra bevertė. Nėra nieko gero. Nėra nieko blogo. Tik faktai. O realybės vertinimas yra požiūris, kuris, nors ir įtakojamas aplinkos, tačiau priklauso nuo paties vertintojo.

Bet kokia pastangų reikalaujanti veikla gali būti priimta arba kaip problema, arba kaip iššūkis. Bet kokia pastangų nereikalaujanti veikla gali būti priimta arba kaip poilsis, arba kaip nuobodybė.

Mąstyk negatyviai.

Mąstyk pozityviai.

Pasirink savo natūrą. Žaisk.

Daugiau renginio vaizdų oficialios svetainės nuotraukų galerijoje ir video talpykloje.

Pitonas: kepam kiaušinienę be keptuvės

Monday, September 10th, 2007

Dauguma trečių šalių Python programavimo kalbos modulių sudiegiami iš modulio išeities tekstų katalogo konsolėje vykdant:
python setup.py install
Tačiau Python programavimo kalba pradedant nuo 2.3 versijos turi ir kitokį modulio pernešimo formatą nei išeities tekstų katalogas. Išdidžiai pristatau – Pitono kiaušinis.

Pitono kiaušiniai

Pitono kiaušinis (Egg) – tai specialiai naudojimui paruoštas zip archyvas, analogija Javos stiklainiams (Jar) arba Rubio brangakmeniams (Gem). Nors kiaušiniai laikomi nulinės instaliacijos platinimo formatu, tačiau jųjų diegimui rekomenduojama susidiegti PEAK Setup Tools su easy_install moduliu. Tada kiekvieną kiaušinį diegt konsolėje vykdant:
easy_install kelias/iki/naujas_modulis-1.0-py2.4.egg.
Windows sistemoje galima dar pakoreguot registrą, kad kiaušiniai diegtųsi dukart spustelėjus ant jų.

Tačiau yra galimybė Pitono kiaušinį susidiegt ir be tų papildomų pastangų. Greičiausia tai padaryt, tiesiog nukeliant parsisiųstą *.egg failiuką į python site-packages katalogą ir failo pavadinime nutrinant versijos numerius, pvz. pervardinant naujas_modulis-1.0-py2.4.egg į naujas_modulis.egg. Blogybė ta, kad praradę tuos skaičiukus, vėliau galim nebežinot, ar turim šviežiausią versiją. Taigi mano rekomenduojamas kiaušinio diegimas būtų toks:

  1. Nukopijuoti modulį į site-packages katalogą. Taigi pavyzdžiui tame kataloge turėsim:
    naujas_modulis-1.0-py2.4.egg
  2. Tame pačiame kataloge sukurti tekstinį failą tokiu pat pavadinimu tik be skaičiukų ir plėtiniu .pth. Šiame faile įrašyti kiaušinio vardą (reliatyvų kelią iki kiaušinio failo pradedant nuo esamo katalogo). Pavyzdžiui:
    naujas_modulis.pth, kurio turinys:
    naujas_modulis-1.0-py2.4.egg

Kaip patikrinti, kad modulis įdiegtas ir veikia? Pasileidžiam Python komandinę eilutę ir vykdom:
>>> import naujas_modulis
Jei tyliai ir ramiai siūloma vesti kitą komandą ir nerodomi jokie klaidų pranešimai, tuomet diegimas pavykęs.

Sukurt kiaušinį be Setup Tools per keliolika minučių nepavyko. Tai tarkim, kiaušinių kūrimui, mielas programeri, tuos papildomus įrankius jau susidiek.

Tai tiek trumpai apie kiaušinukus.
Birutė, sakė, kiaušinius labai mėgsta. :)