#php susitikimas

Štai ką pavyko ištraukt i Palm’o užrašų:

19:00 Viskas ramu. Nėra alaus.

19:11 Gavom alaus.

19:27 Aptarinėjam duombazes

19:29 Atvyksta DzHiBaS ir kompanija

19:33 MrTenente pasakoja įspūdžius. Amsterdamas kaip Vilnius

19:43 Atvyksta dar krūva žmonių, tarp jų ir trenktaz

19:45 include vs include_once, xml iš PEAR, XSLT:šūdas ar ne, PHP5
tik vienas topikas, bus 3-iam ketvirty.

19:57 Dalyvauja apie 28 žmonės.

20:07 Pradėjom rašyt kolektyvinę programą

20:15 Eikit vaikai namo, ką? Kas mokės už alų?

20:50 Perl nėra gerai. Scooox =] Vyksta fotosesija.

21:23 ABLomas has left the buildintg

22:35 Žagsiu ble

Išleistas gcc3.3

Kaip rašo Slashdot, vakar buvo išleistas
gcc3.3
. Tai niekuo ypatingu neišsiskirianti populiariojo C
kompiliatoriaus gcc versija. Pagrindiniai pokyčiai yra geresnis kodo
profiliavimas, šiek tiek greitesnis kompiliavimas (trečios serijos
gcckenčia nuo per-ne-lyg lėto C++ kompiliavimo – gcc2.95 tai
daro 5-10% greičiau) ir geresnis C99 standarto palaikymas. Tiesa, su
naujuoju kompiliatoriumi kol kas nesusikompiliuoja nei Linux
branduolys, nei glibc2.3.2, mat yra kai kurių nedidelių pokyčių. Pats
didžiausias turbūt yra tas kas preprocesorius nebepalaiko simbolių
eilučių per kelias eilutes (string literals spanning multiple
lines
), bei šiokie tokie pokyčiai su variadinėmis funkcijomis
(lygtai reikia naudoti stdargs.h vietoj
varargs.h). 3.3 versija vis dar pereinamoji,
didesni pokyčiai numatyti 3.4 versijoje. Ten bus naudojamas vietinis
rekursinis parseris (yacc atitikmuo) bei bus
atsisakyta palaikyti intel 386 procesorių (i386). Vietoj jo bus
palaikomas tik i486 mašininis kodas.

CSS3 Color standartas

Va pradėjau skaityt tuos naujuosius CSS
standartus
. Pirmas, kurį griebiau už ragų, buvo CSS3 Color. Štai kokie jame
pakeitimai nuo CSS2 laikų…

Kaip ir seniau, spalvas galima nurodyti dviem būdais: įprastiniais
vardais, arba RGB reikšmėmis, pvz:

em { color: lime } /* Spalvos vardas */
em { color: rgb(0,255,0) } /* RGB 0-255 */
em { color: #ff0000 } /* #rrggbb */

Atsirado naujas labai naudingas dalykas kaip
opacity, kuris nurodo, kiek elementas turi būti
permatomas. Taip pat bus galima nurodyti
color-profile (Na, aš tiksliai nežinau kaip ji ten
aprašoma, ir kam iš to nauda, bet kiek pamenu čia dizainerių naudojamas
daiktas). opacity bus galima nurodyti ir prie
rgba() atributų:

em { color: rgba(255,0,0,1) /* spalva #ff0000 su opacity = 1 */
p { color: rgba(0,0,255,0.5) } /* pusiau permatoma mėlyna spalva */

Tuo viskas nesibaigia. Vietoj RGB galima naudoti ir HSL (hue,
saturation, lightness
):

p { color: hsl(0, 100%, 50%) } /* raudona */
em { color: hsla(0, 100%, 50%, 0.5) } /* tas pats tik pusiau permatomas 
*/

Kaip sakant dėl kitų detalių tai patys persiskaitykit patį standartą

CSS3: reikalai juda į priekį

Iki šiol buvo išleistos tik dvi kandidatinės CSS3 rekomendacijos:
Selectors (2001
Lapkričio 13)
ir Media Queries (2002
Liepos 8). Abi šios rekomendacijos aprašo papildomus būdus kaip galima
sujungti dokumento dalis su stiliaus aprašymu. O štai vakar W3C techininių leidinių skyriuje
atsirado krūva naujų CSS3 rekomendacijų, kurios jau liečia pačius
stiliaus aprašymus. Štai šios rekomendacijos: CSS3 Color
(opacity jau ne vien SVG bus naudojamas), CSS3 Text
(internacionalizacijos patobulinimai), CSS3 Ruby, CSS TV 1.0. Be to, paskelbti ir
du working drafts: CSS3 Generated and Replaced
Content Module
ir CSS3
Speech Module
. Uff.. daug techninio skaitymo.

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ą.