Apache::DBI

Hmm.. aišku bėdos su MySQL nesibaigia. to $dbh ||= triuko nepakako, teko skripto gale nutraukinėt ryšį su MySQL naudojant $dbh->disconnect; — tai veikia gerai, bet niekas nebekešuojama.

Ir čia į pagalbą atėjo Apache::DBI. Pasirodo užtenka jį užkrauti httpd.conf failiuke ir magiškai visos jungtys su MySQL tampa ‘persistant‘. Smagu ;)

Šios dienos svetainės pakeitimai

Šiandien čia padariau nemažai pakeitimų, bet ne viskas taip gerai ėjosi, kaip būtų galima pagalvoti.

Pirmiausia tai ką tik baigiau tvarkyti (atrodo lyg sutvarkiau) MySQL serverio problemą, mat jis ėmė ir užlinko. Na, čia aišku yra mano programavimo klaida, nes pirmą kartą Perlu darau webinę aplikaciją, kuri nėra rašyta CGI. Ši svetainė naudoja mod_perl, o tai reikškia, kad automatiškai visas Perl kodas (ir ne tik kodas) yra kešuojamas. Svetainės kodą aišku rašiau kaip CGI aplikaciją, nekreipdamas jokio dėmesio į tai kad viskas kešuojama. Vat to rezultatas — MySQL serveris pasakė ‘Too many connections’ ir pakratė kojas. Dabar atitinkamą prisijungimo prie serverio kodą $dbh = DBI->connect(... pakeičiau į $dbh ||= DBI->connect(... Programuoji ir mokaisi.

Kitas dalykas, kurį šiandien įdėjau — komentarai. Tiesa, jų neplanavau paleisti anksčiau nei dar po poros dienų, bet taip jau gavosi. To pasekmė — kodas pradėjo atrodyti tikrai Perliškai, t.y. visai neįskaitomai. Be to keletas dalykų pačiame kode man kol kas kelia nerimą, tad bent jau porą dienų, kol viską sutvarkysiu, nereiktų stebėtis jei čia atsiras klaidų. Nors pirmą svetainės kodo versiją ir galite atsisiųsti, bet nepatarčiau naudoti dėl tos MySQL problemos (na arba jei labai labai norit naudot, tai pakeiskit tą prisijungimo eilutę, arba naudokit tik CGI aplinkoje. Kai tik pats būsiu šiek tiek labiau patenkintas komentarų kodo kokybe, įdėsiu viską kad būtų galima parsisiųsti.

Įprastinių išraiškų straipsnio papildymai

Taip, žinau. Vis neprisiruošiu pabaigti normaliai to straipsnio apie RegExpus. Iki šiol jis buvo labai nepilnas. Šiandien bent jau pabandžiau labai labai (na tikrai jau labai) trumpai sudėti informaciją apie tai, ko dar neminėjau jame. Ten faktiškai gale tik krūva pavyzdžių (netgi ne krūva… tiesiog keletas) dabar. Reikėtų juos aprašyt normaliai. Na o po to reiktų ir antrą dalį parašyt, apie ‘extended’ sintaksę. Ir pritaikyt viską Perlui ;).

PHP kodo tvarkyklė Perlu

Molotov davė man nuorodą į PHP kodo tvarkymo programą, rašytą Perlu (kažkas panašaus į visiems programuotojams žinomas lint programas). Ši programa gana gražiai parodo Damian Conway rašyto Parse::RecDescent modulio galimybes. Yra tik vienas trūkumas. Ji lėėėėta. Pasak kūrėjų “several hours for one of our 800 line examples on a gHz CPU“. Manau galima ta programėlę dar rimtai paoptimizuoti, nes pora valandų 800 eilučių kodui iš tikrųjų daugoka. Ech, jei tik turėčiau laisvo laiko…

Beje, tokioms užduotims labai tiktų naujai kuriamas Perl6, mat jame bus galima tiesiogiai manipuliuoti Perlo parseriu bei lekseriu ir patiems perrašinėti kalbos gramatiką. Tad gal ir bus galima padaryti patį PHP Perlu :)

Perlas vis tiek atgis

Pastarieji metai Lietuvos Perlo programuotojams turbūt buvo apsnūdimo metai (Na, aišku aš galiu kalbėti tik apie IRC bei konferencijose dalyvaujančius žmones). Interneto programavime stipriose pozicijose įsitvirtino PHP, ir tam didelės reikšmės turėjo ir stipri Lietuvos PHP bendruomenė. Daugelis pripažįsta, kad PHP lengvai išmokstama kalba, labai tinkanti pradedantiesiems, bet dideliems projektams ji netinka. Tuo tarpu Perlas – galinga, bet sudėtinga kalba.

Norint išpopuliarinti Perlą reikia bent paprastos lietuviškos jo dokumentacijos bei straipsnių pradedantiesiems – Perlas ir taip sudėtinga, vos ne „write-only“ kalba. Idėjų Perlininkams lyg ir netrūksta: artimiausiuose planuose ir lietuviška svetainė apie Perlą, ir Perlo marškinėliai, ir dokumentacijos vertimas… Kad tik būtų laisvo laiko toms idėjoms įgyvendint, o tada, PHP, laikykis! ;)