Svetainės pokyčiai

Šią naktį padariau šiek tiek pakeitimų svetainėje. Kai kurie
pastebimi, o kai kurie ir ne ;)

Pirmiausia, šoniniame meniu įdėjau lietuviškų dienoraščių nuorodas.
Šoninės nuorodos dabar imamos iš bendro šablono naudojant
HTML::Template modulio <TMPL_INCLUDE>
direktyvą.

Taipogi pakeičiau ir CSS bylą, padarydamas kad nuorodų pabraukimai
būtų daromi ne per text-decoration, o per
border-bottom. Kam? O šiaip sau…
eksperimentuodamas. Dabar su nuorodomis susijusi CSS dalis atrodo
taip:

.blogtext a {
        color: #005990; 
        background-color:inherit;
        text-decoration: none;
        border-bottom: #005990 1px dotted;
}
.blogtext a:hover {
        text-decoration: none;
        color: blue;
        background-color: #eff;
        border-bottom: blue 1px solid;
}

Tačiau patys didžiausi pakeitimai buvo padaryti skripte, kuris
apdoroja elektroniniu paštu gautus prašymus įdėti naujieną. Dabar jis
sudėjęs viską į duombazę dar sugeneruoja RSS naujienas, kurios vėliau
statiškai pateikiamos visiems. Tai kaip ir savotiškas kešavimas. Kitas
svarbus dalykas, kurį daro mailblog.pl yra weblogs.com pinginimas per
XMLRPC. Tai daroma labai paprastai su XMLRPC::Lite moduliu:

use XMLRPC::Lite;
XMLRPC::Lite -> proxy('http://rpc.weblogs.com/RPC2')
             -> call('weblogUpdates.ping',
                     'Moxliuko pasaulis',
                     'http://lietuvoje.lt/~moxliukas/');

Tolimesnės mintys dėl el.pašto sąsajos

Va DzHiBaS papostino aprašymą, kaip jis
padarė savo dienoraščio pildymo el.paštu galimybę. Viskas pas jį
padaryta su PHP, tad dėl įdomumo pateiksiu ir savo perlinę versiją:

#!/usr/bin/perl
open F, ">>/tpm/bloglogas.txt";  # atsidarom bylą, kur saugosim gautą paštą
print F localtime;               # įrašom į bylą laiką
while(<STDIN>) {                 # kol gaunam duomenų....
        print F $_;              # ...tol rašom juos į bylą
}
close F;                         # uždarom bylą.

Kitas dalykas, kurį turbūt darysiu su šituo dalyku, tai vienkartinis
RSS generavimas. Šiuo metu RSS generuojama kiekvieną kartą iš duombazės,
bet RSS juk dažnai nesikeičia, tad čia galima kešuoti jau suformuotą
XML. Darant įrašą į dienoraštį per elektroninį paštą kaip tik ir galima
atnaujinti RSS versiją. Taipogi reikėtų tuo metu ir papinginti weblogs.com. O gal reikėtų visiškai naujos
lietuviškų weblogų sekimo sistemos?

mod_perl vs mod_php

Perlmonks turi dar vieną įdomų
threadą apie mod_perl vs
mod_php
. Faktiškai ten neblogai viskas paaiškinta: mod_php
netgi negalima lyginti su mod_perl, nes tai skirtingi dalykai.
mod_php būtų geriau lyginti su HTML::Embperl
arba su Apache::Template.
Viską galima apibendrinti šiais sakiniais:

mod_perl is raw access to every phase of the Apache request and service
cycle. mod_php is an
Apache::Template-like
access to the content phase only and thus far more limited.

So to get “mod_perl” to act like PHP, you have to restrict it
severely.

Elektroninio pašto sąsaja – plačiau

Tai vat, kaip jau ir minėjau, pakūriau elektroninio pašto sąsają,
ir dabar naujienas galiu rašyt per jį. Bandysiu dabar čia aprašyti
kaip visa tai veikia (beje visą šitą taipogi rašau elektroniniu
paštu).

Viso šito dalyko esmė yra paprasta: elektroninio pašto serveris
sugeba automatiškai perduoti gautą laišką nurodytai programai, tad
specialiu adresu nusiųstas laiškas perduodamas perliniam skriptui,
kuris jį perskaito, atsirenka kas yra kas ir sumeta ką reikia į
duombazę.

Pirmas etapas (el.pašto perdavimas skriptui) yra padaromas labai
paprastai. Užtenka į /etc/aliases (arba
atitikmenį) įdėti šią eilutę:

chia.emailo.adresas: |/home/moxliukas/mailblog.pl

Taip elektroninis paštas atėjęs adresu
chia.emailo.adresas@domenas.lt perduodamas skriptui
/home/moxliukas/mailblog.pl

Pats mailblog.pl pirma patikrina ar tai tikrai prašymas
įdėti naujieną (patikrina ar atitinka slaptažodis, kuris nurodomas
elektroniniame pašte). Po to yra nuskaitomos naujienos dalys –
pirma eilutė yra naujienos tema, antra – potemė (tas kas su
brūkšniukais po pavadinimu) o visa kita – pačios naujienos
tekstas. Po šio etapo yra padaromas PHP funkcijos
addslashes() atitikmuo, kad nebūtų problemų dedant
tesktą į duombazę, bei pakeičiama keletas HTML entities (mat
jei rašysiu iš mobilaus, tai bus problemos su lietuviškom raidėm,
todėl lietuviškas raides galiu įvesti per savo sugalvotus HTML
entities stiliumi &ltee; bei &ltdzh;). Kaip ir viskas. Idėja
paprasta. Šio dalyko kodą papostinu gal ryt, nes reik dar išsitestuot
ir persižiūrėt viską.

Nauji lietuviški interneto dienoraščiai

Šiandieną DzHiBaS paleido naują savo dienoraščio versiją. Tas pats dienoraščių variklis naudojamas ir pas Shivą, bei bus naudojamas ateityje ir pas aubergine. Taipogi atradau ir dar vieną lietuvišką interneto dienoraštį rašantį kompiuterastiškais klausimais. Be to ir pukomuko padarė pirmąjį savo kompiuterastinį įrašą.

Ryškiai jau bręsta reikalas šone susirašyt lietuviškų kompiuterastiškų dienoraščių nuorodas.

Internetinis dienoraštis elektroniniu paštu

DzHiBaS pasidalino keletu idėjų su manimi dėl galimybių elektroniniu paštu pildyti savo internetinį dienoraštį. Idėja tame, kad pasiuntus laišką tam tikru adresu, būtų nuskaitomas laškas, padaromi atitinkami pakeitimai (BBkodas, automatinis URL atpažinimas ir panašiai) ir sukišama į duombazę. Štai mano idėjos ir mintys apie tai.

Pirmiausia kam to reikia? Man asmeniškai tai būtų labai patogu pildyti dienoraštį per mobilųjį telefoną. Parašai, išsiunti, naujiena atsiranda. Net nereikia prie kompiuterio sėstis (na aišku teksto įvedimas per mobilųjį telefoną nėra pats lengviausias dalykas). Pats realizavimas yra labai paprastas: tiesiog /etc/aliases sukuri atskirą adresą, kuriuo atėję laiškai perduodami kokiai nors programėlei, kuri jau toliau ir tvarkosi. DzHiBuI susirūpinimą kėlė saugumo klausimas. Mano nuomone, galima kiekviename elektroniniame laiške įdėti ir slaptažodį, kurį ir patikrintų programa, prieš įtraukdama įrašą į duomenų bazę. Aišku pats geriausias (ir labai elegantiškas) variantas turbūt būtų naudoti PGP parašus – jei parašas verifikuojamas, tada galima dėti į duombazę. Tačiau su PGP yra problemų – juk negeneruosi PGP parašo rašydamas laišką mobiliame telefone.

Kita šiokia tokia problema yra koduotės. Vat mano EricssonT65 neįstengia sugeneruoti lietuviškų raidžių. Mano sprendimas būtų naudoti specialius simbolius, panašius į HTML entities ir juos paskui versti į normalius simbolius (o gal netgi neversti, bet reiktų atskiro DTD – kaip ten su vartotojų DTD palaikymu našyklėse?). Tad tarkim raidę „Š“ būtų galima koduoti kaip &ltdsh;, o „ę“ kaip &ltee; ir panašiai.

Dar vienas dalykas yra BBkodas. Standartiškai jis naudojamas su [] simboliais. Aš siūlyčiau naudoti standartinius < ir > HTML simbolius. Taip galima laikytis standartų ir turėti normalų XML, kurį paskui galima netgi trasformuoti pasinaudojus XSL. Be to vėlgi tai sutinka su ta specialaus DTD mintim.

Tiesa, kad nereiktų visko perdarinėti vėl iš naujo, jei kiltų kokia kita nauja idėja dienoraščių pildymui, matyt reikėtų nusistatyti ir pasirašyti XML-RPC sąsają, kad dienoraštis eletroniniu paštu būtų tik šios sąsajos vienas iš pritaikymų.

Nedlib ir vartotojų pagausėjimas

Šiandien ir vakar pastebėjau labai didelį vartotojų padidėjimą (na, tarkim užvakar buvo 48 unikalūs lankytojai, o šiandien iki pietų jų jau yra 165). Ech, galvojau kad tapaus nerealiai populiarus. Tačiau visgi peržiūrėjau savo Apache logus (na, gal kokį labai naudingą referrer’į rasiu) ir radau krūvas tokių pranešimų:

193.219.130.9 - - [12/May/2003:11:55:48 +0200] \
"GET /~moxliukas/browse/index.pl?id=78 HTTP/1.1" 200 4802 "-" "Nedlib"

Hmm… kas per velnias tas Nedlib, ir kodėl manimi domisi Lietuvos nacionalinė biblioteka? Žodžiu einu googlintis. Štai ką radau čia:

LIBIS Elektroninių išteklių modulio projektas parengtas tarptautinės NEDLIB programos dokumentų pagrindu. Šis projektas padės užtikrinti posistemio suderinamumą šalies ir tarptautiniu mastu naudojant bendrą OAIS koncepciją bei vienodus tarptautinius standartus, informacijos apie deponuotus šalies elektroninius išteklius pateikimą, prieigą prie deponuotų elektroninių išteklių.

Bla bla bla, nieko nesuprantu tarp tų baisių santrumpų. Ech, tai čia pasirodo labai rimta? Pats to nepastebėdamas tampu LIBIS Elektroninių išteklių modulio projekto dalimi?

Na po kai kurių įvykių tampu vis labiau paranojiškas (na, čia tai nėra ko bijoti, tik man nepatinka kai nei iš šio nei iš to atsiranda 220 sesijų daugiau nei realiai jų reikia), tad kol kas ramiai Nedlib bus ignoruojamas. Bent jau kol išsiaiškinsiu kas tai per velnias ;)