Archive for 2006

The Actualities of Lithuanian Community in Berlin

Monday, December 18th, 2006

The children were good, so Santa brought presents to everybody. Soon the boys crawled pushing around “Polizei” car and the girls bragged to each other about their teddy bears.

This year four-years-old boy Max has got a magical fairy Betty. She was with a shiny rosy dress and silver wings. Max’s eyes glinted as soon as his grandpa uncovered the packing paper. Max took the box with the doll to his bosom and went to the crowd of adults. On and off he took a glance to the fairy through the plastic window at the box, admired about her, and pressed the box back to his breast. It was so hard to believe that he really got this beautiful present. His eyes glittered because of amazement.

Then some girl, who was a little higher, came to him asking to show what he had gotten. “Get of my back!” — Max put his tongue out, pressed the doll even harder to his bosom, turned around, and strode out with pride.

This is how mashers grow.

Berlyno lietuvių bendruomenės aktualijos

Monday, December 18th, 2006

Vaikai buvo geri, todėl Kalėdų senelis visiems atnešė dovanų. Netrukus berniukai šliaužiojo bestumdydami „Polizei“ automobilį, mergaitės gyrėsi savo pliušiniais meškučiais.

Keturmetis Maksas šiemet dovanų gavo stebuklingą fėją Betty. Su blizgančia rožine suknele ir sidabriniais sparnais. Vai sužibo Maksui akys, seneliui nuvyniojus dovanų popierių! Pasiima Maksas dėžutę su lėle, prisiglaudžia prie krūtinės. Vaikšto tarp suaugusių žmonių, pasižiūri retkarčiais pro pakuotės langelį į fėją, pasigroži, vėl prisispaudžia prie krūtinės. Niekaip negali atsistebėti, tokią gražią dovaną gavęs. Akys iš nuostabos blizga.

Prieina prie jo kiek aukštesnė mergaitė ir paprašo parodyt, ką jis gavęs. „Pasvajok ir praeis“ — Maksas iškiša liežuvį, prisispaudžia lėlę stipriau prie krūtinės, nusisuka ir pasididžiuodamas nužingsniuoja.

Taip ir auga donžuanai.

An Egg in Cola

Tuesday, December 12th, 2006

“It is like paradise to me here. I can drink Coke every day!” – says Silvia from my job. Whereas Cathrine tells that by a hearsay a tooth dropped into a glass of this wonderful drink melts in a day without any trace. And that reminds me some toothpaste commercial from my childhood. A serious man with a costume of a doctor takes an egg, covers half of it with the toothpaste, and then dips it into some chemical which tend to match the environment of human mouth. In twelve hours the uncovered half of the egg gets elastic like rubber, whereas the covered half stays hard and rigid as before the experiment. What would there be if we dipped an egg into cola?

For this exclusive experiment we’ll need one egg of the highest class, one bottle of cola, and one more-or-less clean jar, where the egg fits in.
An Egg in Cola: Ingredients

At first, ladies and gentlemen, we pour cola into the jar. Then we dip the egg into it. Lastly we cap the jar hermeticly. After fixing the time we can wait for the changes.
An Egg in Cola: Workflow

The experiment started at half past three in the afternoon, on Saturday. The bubbles of dioxide force their way up in the jar. The egg squats at the bottom. The clock is tickin’.

After the first half an hour the bubbles still keep rising. The egg doesn’t move. The time hasn’t stopped as well. So it’s enough to waste it. It’s party time!
An Egg in Cola: after Half an Hour

Berlin City Games

In twelve hours since the beginning of the experiment we can see dregs separated in cola. Already a half of the egg is fissured. Shameless Aidas, why have you passed over that you struck the blunt end of the egg, while measuring if it fits the jar!? Ah. Let’s go to the bed.
An Egg in Cola: after 12 Hours

In twenty four hours since the beginning of the experiment the egg crouches still at the bottom of the jar. The insides are protruded out of its belly. All the body is chapped. The time is still going. Enough torturing the poor eggy. Let’s get it out of the jar.
An Egg in Cola: after 24 Hours
An Egg in Cola: Outside

Hey look! It’s not so bad. One side of it looks like of a new unbroken egg! And the shell is hard as of a real man.
An Egg in Cola: the Healthy Side

To sum up: don’t forget to clean your teeth both in the morning and in the evening.

So what!? Naturprodukt. Let’s take it.
An Egg in Cola: Final

Kiaušinis koloje

Monday, December 11th, 2006

– Aš čia jaučiuosi kaip rojuj: galiu gert kolą kiekvieną dieną, — sako Silvija iš mano darbo. O Katerina apie kolą yra pasakojusi gandą, kad jei stiklinėj šito nuostabaus gėrimo įmestum dantį, tai jis per parą ištirptų — nieko nebeliktų. Aš tuo tarpu prisimenu dantų pastos reklamą iš vaikystės. Rimtas dėdė gydytojo kostiumu paima kiaušinį, pusę padengia dantų pasta, tada panardina kiaušinį į chemikalus, kurie atseit atitinka burnos ertmės terpę. Po dvylikos valandų nepadengta pusė kiaušinio tampa elastinga kaip guma, o padengtoji pusė lieka kieta ir tvirta kaip prieš eksperimentą. O kas būtų, jei kiaušinį panardintumėm į kolą?

Nepakartojamam bandymui reikės vieno aukščiausios klasės kiaušinio, vieno buteliuko kolos, vieno apyšvario stiklainio, į kurį tilptų kiaušinis.
Kiaušinis koloje: ingredientai

Pirmiausia, ponios ir ponai, į stiklainį įpilame kolos. Tada įmerkiame kiaušinį. Galiausiai sandariai užsukame dangtelį. Fiksuojame laiką ir žiūrime, kas bus toliau.
Kiaušinis koloje: darbo eiga

Eksperimento pradžia – pusė keturių vakaro, šeštadienis. Stiklainyje anglies dvideginio burbuliukai veržiasi į viršų. Kiaušinis tupi dugne. Laikrodis tiksi.

Praėjus pirmam pusvalandžiui burbuliukai vis dar nenustoja kilt. Kiaušinis nekeičia savo padėties. Laikas irgi nesustojo. Užteks jį gaišt. Einam linksmintis.
Kiaušinis koloje: po pusvalandžio

Berlin City Games

Po dvylikos valandų nuo eksperimento pradžios koloj atsiskyrusios drumzlės. Kiaušinis skilęs iki pusės. Begėdi Aidai, kodėl nutylėjai, kad eksperimento pradžioje bematuodamas, ar kiaušinis tilps į stiklainį, įskėlei kiaušinio bukąjį galą!? Ai. Einam miegot.
Kiaušinis koloje: po 12 valandų

Po dvimketurių valandų nuo eksperimento pradžios kiaušinis susigūžęs tarp drumzlių vis dar stiklainio dugne, iš pilvo iššokę viduriai, o visas kūnas sutrūkinėjęs. Laikas vis dar eina. Užteks vargšą kiaušiuką kankint. Ištraukiam iš stiklainio.
Kiaušinis koloje: po 24 valandų
Kiaušinis koloje: ištraukus

Štai pažiūrėkit — ne taip jau blogai — viena jo pusė kaip naujo sveiko kiaušinio! O ir lukštas kietas kaip tikro vyro.
Kiaušinis koloje: sveikoji pusė

Išvada: nepamirškime išsivalyti dantų ryte ir vakare.

Na ką!? Naturprodukt. Suvartojam.
Kiaušinis koloje: finalas

Buriam Apačės naudotojo autentikaciją per SSL

Tuesday, November 28th, 2006

Kai esi vienintelis kompiuteristas kompanijoje, tenka ne tik programuot ar projektuot, bet ir paadministratoriaut. Specifinės programinės įrangos derinimas, diegimas ir konfigūravimas dažniausiai būna daug skausmingesnis nei tikiesi prieš pradėdamas darbą. Todėl labai naudinga dokumentuot savo žingsnius, kad palengvintum ateities užduočių atlikimą. Šito įrašo tikslas — atmintinė sau ir kitam, kaip nustatyti Apache serverio naudotojo autentikaciją per SSL.

Šiuo metu dažniausiai naudojamas žiniatinklio serveris Apache turi modulį apsaugoti katalogo turinį nuo pašalinių akių. Tai naudotojo autentikacijos modulis mod_auth. Kai internautas suveda puslapio adresą, kuris reikalauja autentikacijos, naršyklė atidaro jam dialogo langą, prašantį įvesti naudotojo vardą ir slaptažodį. Kitas būdas patekti į autentikacijos reikalaujantį puslapį yra naudotojo vardą ir slaptažodį, atskirtus dvitaškiu, bei su internetine eta gale, įrašyti į adreso eilutę tarp protokolo ir domeno vardo:

protokolas://naudotojas:slaptazodis@www.domenas.com/ka↵
talogas/failas.pletinys

Lankytojui įvedus teisingus prisijungimo duomenis, jam parodomas adresuotas informacinis puslapis, kuris gali būti tiek paprastas dokumentas (html, txt, pdf), tiek skripto (php, perl, python) sugeneruotas turinys, tiek parsiųstinas vykdomasis failas, tiek kitas biesas.

Reikia paminėti, kad naudotojo vardą ir slaptažodį, atskirtus dvitaškiu, naršyklė prieš siųsdama į serverį, užkoduoja base64 algoritmu, kuris serveryje atkoduojamas į grynąjį tekstą ir sulyginamas su užregistruotom prisijungimo sąskaitom. Deja gan lengvai naudotojo vardas ir slaptažodis gali būti nuskaitytas ir atsikoduotas tau nežinant kažkur pakelėj link serverio. Dėl šios priežasties saugumo vardan kartu su naudotojo autentikacija naudinga naudot SSL.

Kas yra SSL? Tai papildomas kompiuterių tinklo sluoksnis, užtikrinantis, kad persiunčiami duomenys bus užkoduoti ir tarpinės grandys, kaip DNS (domenų vardų serverių) administratoriai, negalės jų tiesiogiai perskaityti. Kaskart kai jungiamės prie internetinių banko sąskaitų ar kitų ypatingo saugumo reikalaujančių svetainių, dažniausiai suvedame “https://”, kur “s” nurodo saugų SSL jungimąsi, kurio perduodamo turinio smalsieji hakeriai nesupras. Komunikacijos saugumo sluoksnį įgyvendina Apačės modulis mod_ssl.

Jeigu abu moduliai jau yra Apache/modules kataloge, tuomet gali džiaugtis ir varom toliau. Priešingu atveju dar teks gerokai paprakaituot, kol juos susikompiliuosi.

Toliau užtikrink, kad moduliai mod_auth ir mod_ssl pakraunami kartu su Apache. Apache/conf/httpd.conf faile turi būti įrašytos (ir neužkomentuotos “#” ženklu) šios eilutės:


LoadModule auth_module modules/mod_auth.so
LoadModule ssl_module modules/mod_ssl.so

Jei serveryje naudoji PHP, gali pasitikrint, ar moduliai tikrai pasikrovė testinio failo su phpinfo(); funkcija išvesty susiradęs “mod_auth” ir “mod_ssl” prie “Loaded Modules” skilties.

Apache/conf/httpd.conf faile taip pat turi būti SSL konfigūracijos įterpimas:


<IfModule mod_ssl.c>
    Include conf/ssl.conf
</IfModule>

Faile Apache/conf/ssl.conf reiktų standartiškai patalpint Alias ir Directory, arba Location, arba VirtualHost direktyvas. Detalių pasieškok kitur, nes pačiam dažniausiai tenka naudoti gudrią serverio administravimo programą, valdomą per naršyklę, kas leidžia kai kurias užduotis atlikti greičiau ir per daug nesigilinant į konfigūracines smulkmenas.

Norėsim nustatyti skirtingas naudotojų teises skirtingiems katalogams, o ne visam domenui. Todėl autentikacijos nustatymus rašysim į .htaccess failus atitinkamuose kataloguose, o ne į bendrą Apache/conf/httpd.conf nustatymų failą (ir ne į jo įtraukiamus konfigūracijos failus, kaip kad conf/ssl.conf). Taigi mums dar reikės aktyvuoti .htaccess failų dalyvavimą konfigūracijoje. Tai padaroma Apache/conf/ssl.conf nurodant

AllowOverride AuthConfig

arba, jei nori pasišvaistyti kompo atmintimi ir savo administravimo laisve:

AllowOverride all

Toliau naudotojo autentikacijos nustatymas. Jis susideda iš dviejų dalių: naudotojo sąskaitos sukūrimo ir katalogo teisių priskyrimo sukurtam naudotojui. Naudojų sąskaitos specialia komanda (pagalbine programa) htpasswd, sukuriamos administratoriaus pasirinktame faile, kuris privalo būti nepasiekiamas per žiniatinklį. Tarkim, naudotojus surašysim Apache/users/naudotojai. Rašom:

htpasswd -c /kelias/iki/Apache/users/naudotojai jonukas

Mūsų paklaus, kokį slaptažodį norime nustatyti Jonukui, po to paprašys pakartoti. Štai ir Jonuko sąskaita sukurta. Parametras -c komandoje reiškia, kad failas “naudotojai” dar neegzistuoja ir jį reikia sukurti. Kitų naudotojų sąskaitas sukuriame analogiškai, tik be parametro -c:


htpasswd /kelias/iki/Apache/users/naudotojai petriukas
htpasswd /kelias/iki/Apache/users/naudotojai maryte
htpasswd /kelias/iki/Apache/users/naudotojai onute

Jei atidarytume sąskaitų failą “naudotojai”, pamatytume skirtingose eilutėse išsaugotas naudotojų vardų ir md5 algortimu užkoduotų slaptažodžių poras, maždaug taip:


jonukas:p0wTkpxYnO/9YZYfTlAM..
petriukas:skfow[9kp25ppxa33goz
maryte:h7gmtUxbG.4w3QKkCzCBs0
onute:IsLgWauXXnx9BYTT0Mchm1

Kas nežino, md5 algoritmas koduoja tik į vieną pusę — užkoduoto slaptažodžio atkoduoti praktiškai nebeįmanoma. Kai asmuo jungiasi savo naudotojo vardu bei slaptažodžiu prie apsaugoto katalogo, jo slaptažodis užkoduojamas ir sulyginamas su esančiu sąskaitų faile. Bet kodėl gi tuomet naudotojų sąskaitų failą reikia laikyti nuošaliai nuo internautų akių ir pirštų? Gudrieji hakeriai dažniausiai turi duomenų bazes su dažniausiai pasitaikančių slaptažodžių/angliškų žodžių ir jų md5 kodų porom. Jiems tereikia paleisti paiešką, ieškant md5 kodo “IsLgWauXXnx9BYTT0Mchm1″, ir štai vos per kelias sekundes jiems prieš akis Onutės slaptažodis. Taigi būkime budrūs ir gudrūs.

Dabar bandysim nustatyti katalogų teises skirtingiems naudotojams. Tarkim, kad Apačė nustatyta taip, kad Apache/httpsdocs kataloge visi duomenys pasiekiami per SSL. Apache/httpsdocs kataloge susikuriame pakatalogį “slapta”, kuriame kavosim slaptus failus, o jo viduje pakatalogius “tik-mergaitems”, “tik-berniukams” ir “visiems-pabiruciams”. Kataloge Apache/httpsdocs/slapta susikuriame failą .htaccess ir jo viduje parašom:


AuthName "Kas paslepta -- to nerasi"
AuthType Basic
AuthUserFile /kelias/iki/Apache/users/naudotojai
require valid-user

Kas čia kur ir kaip? AuthName apibūdina apribojimų karalystę. Naudotojo vardo ir slaptažodžio reikalaujantis dialogo langas, bandant pasiekti failus iš katalogo “slapta” arba jo pakatalogių, bus pavadintas “Kas paslepta — to nerasi”. AuthType apibūdina autentikacijos tipą. Jų yra du, bet tik “Basic” yra šiuo metu standartizuotas, tai apie kitą gali nė nekvaršint galvos. AuthUserFile nurodo failą, iš kurio nuskaitomos naudotojų sąskaitos. Skirtingiems domenams ir netgi katalogams gali naudoti skirtingus naudotojų sąskaitų failus. Paskutinė eilutė reiškia, kad katalogo turinį gali pasiekti bet kuris naudotojas, užregistruotas naudotojų sąskaitų faile.

Einam toliau. Kataloge Apache/httpsdocs/slapta/tik-berniukams sukuriame failą .htaccess ir jame įrašome:


AuthName "Reikejo berniukams beribio dangaus..."
AuthType Basic
AuthUserFile /kelias/iki/Apache/users/naudotojai
require user jonukas petriukas

Analogiškai kataloge Apache/httpsdocs/slapta/tik-mergaitems sukuriame failą .htaccess ir jame įrašome:


AuthName "Tarp musu mergaiciu (ir Petriuko nepamirskit)"
AuthType Basic
AuthUserFile /kelias/iki/Apache/users/naudotojai
require user maryte onute petriukas

Direktyva require user su toliau išvardintais naudotojų vardais, atskirtais tarpais, nurodo, kas turės teisę pasiekti apriboto priėjimo katalogą.

O kaip su teisių paveldėjimu pakatalogiuose? Į apribojimo karalystę patenka visi pakatalogiai, kurie neturi nurodytos savo karalystės. Pavyzdžiui, Apache/httpsdocs/slapta/visiems-pabiruciams taikomos lygiai tokios pat priėjimo teisės, kaip ir tėvukui Apache/httpsdocs/slapta, t.y. tuose kataloguose esančius failus pasiekia visi prisijungę registruoti naudotojai. Tuo tarpu, katalogo Apache/httpsdocs/slapta/tik-mergaitems ir jo pakatalogių, nors tu ką, neprieina Jonukas (bei, žinoma, neturintys naudotojo sąskaitos); analogiškai katalogo Apache/httpsdocs/slapta/tik-berniukams pornuškės nemato Marytė ir Onutė.

Pats įdomumas prasideda, kai pradedi žaisti su žiniatinklio tarnybom (ach ta lietuvybė – webservisais). Kai socket’ais užmezgi autentikuotą ir apsaugotą prisijungimą, nusiunti klausimų ir gauni atsakymų. Bet tai ne šiam kartui. Beje, nenustebk, kad tavo skirtingi Apačės komponentai (konfigūracija, httpsdocs, moduliai, vykdomieji failai) bus patalpinti skirtinguose failų sistemos kataloguose, nebent naudoji ką nors iš *AMP srities (WAMP, LAMP ir MAMP yra konfigūraciniai paketai interneto svetainių kūrimui konkrečioje operacinėje sistemoje, susidedantys iš Apache žiniatinklio tarnybinės stoties, MySQL duomenų bazės ir PHP programavimo kalbos). Gal visa šita nuobodybė pravers ne tik man? Pastabos ir kritika – prašom!

SVG: Hello World!

Monday, November 27th, 2006

Recently I have provided myself with technical literature. For self-education as well as for reference while programming, for personal projects as well as for job-related ones, I purchased books about Flash ActionScript, Unified Modeling Language (UML), and Scalable Vector Graphics (SVG). The O’Reilly’s publishing house rulez.

Here is my first experimental SVG file. Find an Easter Egg 1.


1 Easter Egg is a hidden functionality in a software product, usually created for fun by common programmers without the knowledge of the heads.

SVG: Labas Pasauli!

Monday, November 27th, 2006

Pastaruoju metu apsirūpinau technine literatūra. Savišvietai ir pasirėmimui programuojant, asmeniniams ir darbiniams projektams, įsigijau knygų apie Flash ActionScript’ą, suvienytą modeliavimo kalbą (UML) ir keičiamo mastelio vektorinę grafiką (SVG). O’Reilio leidykla valdo.

Štai mano pirmasis eksperimentinis SVG failiukas. Surask margutį 1.


1 Margutis (angl. Easter Egg) yra užslėptas programinės įrangos funkcionalumas, dažniausiai sukurtas dėl smagumo eilinių programuotojų be vadovybės žinios.

Everything’s Gonna Be Alright

Monday, November 27th, 2006

Your darling’s heart is torn apart.
Get banned and damned till smallest cells!
Express yourself again by art
Just for yourself and noone else.

Destruct the house and build a bridge.
Unravel nodes and tie some bows.
Run high from railroad to the ridge.
What’s next? Nobody knows.

Viskas bus gerai…

Wednesday, November 8th, 2006

Suplėšyti brangiam žmogučiui širdį,
Būt pasmerktam ir prakeiktam…
Ir vėl saviraišką patirti,
Šį kartą sau, o ne kitam.

Nugriauti namą — pastatyti tiltą.
Išnarplioti mazgus — surišti raištelius.
Nuo geležinkelio pakilti.
O kas toliau? Kas bus, tas bus…

Paprastieji žaidimai

Sunday, October 29th, 2006

„Ne ne, baik juokus, koks aš tau žaidėjas. Aš tik retkarčiais porą minučių pagrajinu Solitairį, Minų lauką ar Tetrį“. Jei iš šios frazės kaip pirštu į akį atpažinai save, tai patenki į atsitiktinių žaidėjų tipą.

Atsitiktiniai žaidėjai niekada nepirks naujausios vaizdo ar garso plokštės vien tam, kad pasileistų nekantriai lauktą žaidimą. Jie, apskritai, nelaukia naujų žaidimų versijų. Atsitiktiniai žaidėjai praktikuoja paprastus žaidimukus, kuriuos lengva išmokti, nors gan sunku įvaldyti. Paprastieji žaidimai žaidžiami per darbo pertraukėles, trulike ar tulike. Dažniausiai pasižymi dvimate grafika, abstrakcijomis, neilgu žaidžiamumo laiku.

Štai keletas rinktinių paprastųjų žaidimų, kurie pastaruoju metu buvo pritraukę mano dėmesį:

Smagaus laiko gaišimo!