Svetainės bugai

Kaip ir sakiau, taip ir įvyko. Komentaruose dar pilna bugų ;)

Pirmiausia noriu padėkoti godzhirra_da_mc už tai, kad atrado problemą postinantdidelius komentarus (pasirodo problema  buvo ne tame, bet tai padėjo išaiškinti teisybę). Problema standartinė — neteisingai eskeipinamos viengubos kabutės (dėl to pradeda strigti MySQL kodas, ir labai lengva padaryti “SQL injection“). Atrodo sutvarkiau šį klausimą.

Kitas dalykas, kurį pastebėjau — blogas komentarų formatavimas, kai jame yra didelių žodžių be tarpų (tarkim pora šimtų ‘a’ raidžių). Ateityje padarysiu, kad žodžius skaidys jei jie bus per didelio ilgio (nebent tai URL… čia dar reikės pakrapštyt galvą).

Viena diena pas Google

wired.com turi puikų puikų straipsnį apie Google. Pasirodo Google gauna apie 260 milijonų užklausų per dieną. Tai čia išeitų po 3000 užklausų per sekundę.

Vienas įdomiausių dalykų — pasirodo internete stipriai galima jausti paros metą. Vienu metu Amerikos studentai ieško informacijos mokslo klausimais, o kitu metu…

Idėja svetainės kodo pateikimui

scooox pasiūlė idėją, kad šios svetainės kodas būtų automatiškai generuojamas ir pateikiamas parsisiuntimui. Manau kad tai gera idėja. Turbūt reikės pasirašyti perlinį skriptą ir pakabinti jį ant cron kad kas kokias 6 valandas subuildintų ir supakuotų naują versiją. Na bet pradžioj reikia sutvarkyt tą komentarinę košę ;)

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.