PHP naujienos

Vakar buvo išleista PHP 4.3.3RC1 versija. Tiesą sakant Changeloge tik riktų pataisymai ir nieko radikaliai naujo. Na, taip ir turėtų būti – tai tik rodo, kad pagaliau 4.3.x šaka tampa stabilia (prisiminus kaip 4.3.0 turėjo greit būti pakeista 4.3.1 dėl kažkokio didelio CGI rikto tai lyg ši 4.3.x šaka nėra labai sėkminga stabilumo požiūriu)

O štai pukomuko išleido 1.9 phemplate versiją. Aišku man labai malonu, kad mano teoriniai pamąstymai apie masyvų pririšimą prie šablonų įgijo realesnį egzistavimą (nors kaip ir sakiau, praktinio jų sugalvojimo kol kas nesugalvojau – nebent greičio padidėjimas, bet ir tai reikia patestuot).

Neblogas straipsnis apie kodo optimizavimą

Suradau labai neblogą straipsnįMSDN apie kodo optimizavimą. Tiesa, jis daugiausia pritaikytas .NET, bet yra ten neblogų paaiškinimų kaip veikia cache, RAM, kietas diskas ir panašiai. Tas straipsnis labiau gal skirtas ompiliuojamoms į mašininį kodą kalboms, bet pravartu pasiskaityt visiems. Net nekenčiantiems .NET ir Microsoft.

Na, aš tai visad dar manau, jog kodas pirma turi gerai veikt, ir tik po to kai nelieka riktų, reikia jį optimizuot. Vienas iš UNIX principų: „first, make it work, then, make it work fast“

Išleista Mozilla 1.4RC2

Išleista Mozilla
1.4RC2
. Tai lyg ir paskutinis release candidate prieš
galutinę 1.4 versiją. Savo ruožtu, 1.4 bus paskutinė Mozillos versija,
kuri išleidžiama kartu su pašto klientu, IRC klientu, ir krūva kitų
dalykų. Mozillos
planuose
ruošiamasi 1.5 ir 1.6 versijose įdėti daug
„pavojingesnių kodo stabilumui“ patobulinimų bei visą dėmesį
sutelkti į Firebird ir Thunderbird.

Sesija baigiasi, darbai tęsiasi

Tai lyg ir sesija eina link galo, šiandien laikiau paskutinį
egzaminą. Na, dar liko kursinio gynimas. Tačiau sesijos pabaiga
nereiškia darbų pabaigos, o jų prisikaupė sesijos metu nemažokai.

Šiandien vėl įsidiegiau XChat, bet kas keisčiausia, atrodo nesu
taip pasiilgęs IRC, kaip buvo galima tikėtis. O tai labai gerai, nes
kaip minėjau, darbų turiu sočiai.

Dar pastebėjau, jog esu ganėtinai atitrūkęs nuo pasaulio įvykių
– pražiopsojau visą tą reikalą su SCO ir Linux bei daugelį kitų
dalykų. Teks vytis ;)

Hakeriai puola VB?

Per security@konf.lt gavau nuorodą į tokią keistą svetainę http://timand.narod.ru/, kurioje rašoma, kad autorius gali laisvai pavogti priėjimą prie www.one.lt bei Vilniaus Banko. Kaip to įrodymas duodami keletas slaptažodžių bei ekrano nuotraukų.

Nežinau, ar tikėt tuo kas ten parašyta. Juolab, kad abejonių kelia labai daug dalykų:

  1. Baisiai laužyta ir prasta anglų kalba. Na, gal tai specialus apsimetinėjimas ir panašiai, bet sunkiai galiu patikėt, kad žmogus, pakankamai metų praleidęs prie kompiuterio nemokėtų normaliai rišliai angliškai rašyt (na blogiausiu atveju galėjo parašyt M3 0Wnz j00)
  2. Šantažas ir pinigų prašymas. Kiek suprantu visi tokius dalykus daro savo malonumui, norėdami tiesiog kažką daugiau sužinoti (arba aš esu per daug prisiskaitęs istorijų apie užsienio hakerius ir tai baisiai skiriasi nuo Lietuvos). O įsilaužę į sistemą arba tyko tyliai, arba praneša apie tai visiem atvirai su full
    disclosure
    .
  3. Keli slaptažodžiai nieko neįrodo. Krūvą bet kokių www.one.lt vartotojų slaptažodžių turbūt labai lengva gauti pasėdėjus kokioj interneto kavinėj ir stebint žmones. Arba tiesiog paklausus jų tokio sukto klausimo kaip „koks jūsų www.one.lt slaptažodis?“. Su Vilniaus Banku aišku sudėtingiau, bet gauti vienos neaiškios bendrovės prisijungimo duomenis irgi nėra neįmanoma.

Žodžiu, kol kas kyla įtarimai, kad ten blefas. Kol nėra viešo skylių aprašymo, nieko apie tai negalima pasakyt. Palauksim ir pamatysim. Jei jo greičiau neišaiškins nei spės ką nors dar papublikuot.

O, ir beje, lyg bandoma pasakyt, kad Vilniaus Banką jis laužo ne šiaip per kokį nors XSS riktą, o per SSL tunelį, kuris matyt kažkaip nesaugiai sukuriamas ar dar kažkokis velnias. Čia įtariu tam jo nuomone reikia gilių FreeBSD, kriptografijos ir Cisco žinių. Kaip ten bebūtų, lieku skeptiškas kol kas.

IE mirė, tegyvuoja Mozilla?

Nežinau ar tai tiesa, bet sklando gandai, jog Internet
Explorer
6-oji versija bus jau paskutinė. Nuo šiol Microsoft
nebegamins
naujų IE versijų Makintošams
bei atrodo kad
nebegamins atskiros naršylės versijos
. Žodžiu jei norėsit naudotis
naujesniu IE, teks atsinaujint visą operacinę sistemą. Iš vienos pusės
gal tai ir nieko tokio blogo – IE6.0 ilgam taps standartu,
kuriuo visi naudosis (na, juk dar yra žmonių besinaudojančių
Windows’98, tad negi jie greit dėsis naują operacinę sistemą tik
dėl naujos naršyklės?), o kai yra vienas standartas, tai lengviau
programuoti. Iš kitos pusės, IE6.0 yra tikra bjaurastis standartų
atžvilgiu. Nepalaiko nei PNG Alpha kanalų, nei normalios CSS (CSS2.0
standartas palaikomas taip vos vos. Dauguma CSS selektorių palaikomi
tik vienai kitai žymei). Aišku teks ilgai ir nuobodžiai laukti kol bus
palaikomas XHTML2.0, bei CSS 3.0, kurie jau kuriami.

Na nežinau, mano nuomone, tai labai geros žinios Mozillai. Galima
sakyt atrodo jog IE užleidžia savo pozicijas. Arba tai eilinis
Microsoft triukas, o Microsoft sugeba juos atlikt virtuoziškai.

Nepasiduok kompiuterio pagundoms

Po labai didelės pertraukos, į mano rankas pateko Kompiuterija. Vos tik atsivertus žurnalą perskaičiau labai juokingą Bronislavo Burgio straipsniuką „Nepasiduok kompiuterio pagundoms“. Idėja ten pagrindinė tame kad autorius bando išgelbėti visuomenę (ir kaip pats prisipažįsta, kartu ir save) nuo sukompiuterastėjimo ir bendravimo stokos. Na, man, kaip save gerbiančiam kompiuterastui, tai aišku sukėlė šypseną. Tokią didelę ir plačią.

Tame aprašyti 9 punktai, ko nereiktų daryti prisėdus prie kompiuterio. Štai jie, paeiliui:

  1. Neklaidžiok be tikslo po internetą. Kelionė patraukli, bet nėra labai naudinga. Ji primena bandymą sąvartyne rasti pinigų. Žinok, ko nori, ir imk tik tai ko reikia.

    Tai vat.. Ko čia spoksot į ekraną? Internetas bevertis, o ypač šis dienoraštis, eikit gert alaus ar dar ko naudingo veikt.

    Jei rimčiau, tai aš lyg ir be tikslo nevaikštau po internetą… Na, darugų minčių skaitymas arba dokumentacijos paieška nėra juk tokie bereikalingi? Be to jei jau internetas šiūkšlynas, tai labai jau turtingas ;)

  2. Tiesioginiai pokalbiai (online chat) turi būti išimtis, o ne įprotis. Paskambink, susitik ir kalbėk žiūrėdamas į akis.

    Hah… Aišku po truputį gydausi nuo IRC, bet kai baigsis sesija, vėl ten grįšiu. Ir nematau ten nieko blogo. Bendrauti tiesiogiai brangu ir užima per daug brangaus laiko (važiuot su kažkuo susitikt dėl kažkokio menkniekio?!). Be to, man kaip kompiuterastui sunkoka su merginomis, tad IRC bent vienintelis šansas pasikalbėt su kuo nors turinčiu moterišką pravardę ;)

  3. Neužsiimk kompiuterio tobulinimu. Karieta, prie kurios pritaisytas reaktyvinis variklis, niekada netaps lėktuvu. Tegu kiekvienas dirba savo darbą: kompiuterio tobulintojas – tobulina, naudotojas – naudojasi.

    Va čia ir išlenda pagrindinė mąstymo klaida: naudojimasis kompiuteriu nėra darbas. Kompiuterastams kaip aš tai yra didžiulis malonumas. Ir neleisiu kažkokiems mistiniams kompiuterio tobulintojams lįsti prie mano dėžės :)

  4. Savo kompiuterio techninei ir programinei įrangai tvarkyti skirk kuo mažiau laiko. Jei ryte nepasiklosi lovos, vakare anksčiau atsigulsi. Jei turi laivą, moterį ar kompiuterį, gali juos puošti be saiko, tačiau to nusipelno tik moteris.

    Pffft… Laiko tam daug neskiriu. apt-get update && apt-get upgrade daug laiko neužima. Su tuo lovos pasiklojimu tai nepagavau kampo. Čia siūlymas lovos neklot? Taigi betvarkė bus. O dėl tos moters… iš kur jos? Belieka kompiuteris (o geriausia keli kompiuteriai)

  5. Laiką programai, svetainei ar kitam kompiuterijos gaminiui kurti numatyk tik savaitėms ar mėnesiams, bet ne metams. Darbą baik laiku arba mesk. Programuotojai kenčia nuo gigantomanijos – daugybė nebaigtų projektų tūno kompiuteriuose. Jie niekada nebus baigti.

    Na ir…? Jei projektas nebuvo baigtas, reiškia jis buvo neįdomus. Reiškia idėja buvo nepakankamai gera. Reiškia jam nebuvo lemta gimti. Natūrali projektų atranka. Stipriausiųjų išlikimas. Aišku čia kalbant apie namuose laisvalaikiu gaminamus projektus. Darbe gi darai ką liepia. O kur čia gigantomanija? Niekas gi nesiruošia kas savaitgalį sukurti po operacinę sistemą arba po biuro programų paketą. O to „darb1 baik laiku arba mesk“ rezultatas būtų nei vienos nesukurtos programos ;)

  6. Nieko nėra amžina, išskyrus piramides. Geriausia tavo programa gyvuos porą metų, bet ne kelis dešimtmečius. Negaivink jos, jei matai, kad miršta. Verčiau stenkis išsaugoti idėjos gyvybę.

    Va apie šitą truputį ir aš galvojau. Kaip ir gaunasi, jog rašyti nesuskaitomą kodą nėra nuodėmė – vis tiek greit niekam tavo programa nebus įdomi ir niekas jos neskaitys. Tris kart valio Perlui.

  7. Rašyk taisyklingai. Kompiuteris daro rašto laikinumo įspūdį, tačiau nuomonę apie tave susidarys visi, perskaitę net mažą, nesvarbų tavo raštelį. Kur kas blogiau, kai toks rašo , abu nekritiškai skaito. Žmonija gali prarasti raštų kultūrą.

    Va čia beveik pilnai sutinku. Bjauru, kai rašo 31337 sKr1p7 k1dd13 stiliumi. Arba kad ir be lietuviškų rašmenų (na, dar IRC galima atleisti… ten nėra kaip nurodyt koduotės). Bet dėl tos raštų kultūros… Prieš porą dienų Slashdot’e buvo diskusija apie tai, kad amerikonų vaikai nebemoka normaliai rašyti. Man buvo atėjusi po šios diskusijos mintis „o kam reikia priverstinai išsaugoti rašto kultūrą? Tik tam kad ji nebūtų muziejuose? Dantiraščio kultūra irgi sunyko, ar nuo to mum labai blogai? Technologinės ir civilizacijos pažangos nesustabdysi, viskas vystosi taip kaip visiem patogiau“.

  8. Parašyk savo vardą, pavardę. Dokumentus, el. pašto laiškus, interneto svetaines turi kurti ne anonimai. Nepasirašyk vien vardu: tai ne informacija, o dekoracija, tad nesigėdyk savo pavardės. Neprisistatinėk Remiu, Jolka, užuojautos vertu Zukiu

    Ir kuo tas Zukis užkliuvo? :) Šiaip tai pilnai sutinku. Bet juk taip įprasta ir dabar visi taip daro: kas gi nežino, kad mano vardas Petras Kudaras, DzHibO – Nikolajus Krauklis, o pukomuko – Juozas Šalna?

  9. Nežaisk. Jei lengvai pasiduodi azartui, apskritai nežaisk kompiuterinių žaidimų. Netikėk, kad žaidimai moko, lavina. Moko ir lavina tik darbas.

    Dėl tokio kategoriško teiginio manau pasipriešintų visi pedagogai. Mokymasis neturi būti sunkus darbas. Galima išmokti žaidžiant (vat aš mokydamasi naują programavimo kalbą žaidžiuosi – rašausi Brainfuck interpretatorius, dar kitokias nesąmones. Darbu tai nepavadinsi.

Na užteks, išsiliejau ;) Einu konspektų toliau skaityt.

Kompiuterinė lietuvybė

Prieš kokią savaitę prisijungiau prie komp_lt konferencijos. Padariau tai dėl to, kad pastebėjau jog man visgi rūpi lietuvybė kompiuterastinėse erdvėse (jeigu dar prisimenat, pamatęs anglišką Edmundo Mišeikio interneto dienoraštį buvau šiek tiek nepatenkintas ;). Aišku iš manęs prastas lietuvininkas. Nemoku nei gražiai stilistiškai lietuviškai rašyt, nei per daug ten laikausi rašybos taisyklių (visi mano sakiniai, nors ir užrašyti, bet skamba kaip šnekamoji kalba – nebus iš manęs rašytojo :)

Bet visgi prie komp_lt prisijungiau. Kol kas įspūdis ganėtinai toks, kokio ir tikėjausi, gal būt netgi šiek tiek geresnis. Programų ir kompiuterinių terminų vertimas yra sunkus ir sudėtingas darbas, ir nesvarbu kaip išversti, vis tiek kokia pusė žmonių bus nepatenkinti. Bet tas skepticizmas naujadarams, kuris yra giliai į mus įaugęs nėra toks jau sunkiai nugalimas reiškinys. Man daug visokių lietuviškų terminų irgi labai keistai skamba, bet pakanka pasigilinti į žodžio kilmę, ir mano nuomonė dažniausiai pasikeičia. Vienas geriausių to pavyzdžių buvo terminas „riktas“, kurį pirmą kartą išgirdau būtent komp_lt konferencijoje. Jau matau kaip šios svetainės lankytojai krapšto galvą, suraukia kaktą, ir jų mintyse iškyla didelis spiegiantis klausimas „WTF is riktas?!“. O gi riktas yra bugas, arba kitaip tariant programuotojo klaida. Taip, aš irgi krapščiausi sau galvą, raukiausi ir niekaiip nesupratau iš kur čia ištraukė tokį žodį, kol kažkas nepaaiškino, kad tai kilę nuo žodžio „apsirikti“. Va tada mano nuomonė apie „riktą“ radikaliai pasikeitė. Kol kas jis man dar nėra visiškai draugiškas terminas, kuris savaime nusiristų nuo liežuvio galo, bet jau matau, kad tai visai neblogas terminas. Įtariu, kad dauguma kompiuterinių terminų iš pirmo žvilgsnio būna atgrasūs, o pasigilinus, jie nėra tokie ir blogi.

Na ką gi… Kad kuo mažiau riktų būtų jūsų programose, kolegos programuotojai!

Perlo objektai

Sesija labai užimtas metas. Bet kartu tuo pačiu metu vyksta ir šiaip daug dalykų ir netgi retokai būnu prie kompiuterio. Kaip matau kai kurie (o ypač Nightblade) jau sunerimę, kad aš dingęs arba perėjęs į PHP stovyklą. Tai vat: nė velnio.

Šiandien (tiksliau vakar, bet paskui taip išėjo, kad su viena mergina klaidžiojau po miškus, o paskui šiek tiek gėriau su mr2, perl ir Neska, tad Perlui neliko laiko) sumąsčiau, kad parašysiu apie Perlo objektus. Kiekvienas Perl programuotojas pereina atitinkamas stadijas, o jose iš pradžių susidomi objektais, paskui pradeda bjaurėtis jais (nes jie šiek tiek kitokie nei kitose kalbose) o paskui pradeda suprasti, kad Perlo objektai yra labai geri ir geresni nei bet kur kitur. Pagal šias programuotojo evoliucijos stadijas, aš esu toje „besižavinčių“ stovykloje.

Perlo objektai įdomūs ta prasme, kad jie iš tiesų nėra objektai. Tai dažniausiai būna asociatyvūs masyvai, kurie netyčia žino kokiai klasei jie priklauso. Toks genialus paprastumas. Objekto konstruktoriuje pagrindinį vaidmenį vaidina funkcija bless (Taip, palaiminti. Larry Wall labai religingas žmogus, o pasižiūrėjus į perlmonks irgi surasit krūvas Kristaus pasekėjų). Štai paprasčiausias konstruktorius, kuris grąžina tuščią objektą:

sub naujas { bless {}, $_[0] }

Perlo objekinėje sistemoje nėra tokių dalykų kaip privatūs ar vieši kintamieji (na kaip… iš tikrųjų viskas įmanoma. Žaidžiant su my ir referencais galima daryt stebuklus, o kodas vis tiek bus 10 kart trumpesnis už Java ;) Objektinio perlo principas yra toks: „programavimo kalba neturi nurodinėti programuotojui ar jis nori pasiekti privačius kintamuosius ar ne. Perlas tikisi kad programuotojas neis į objekto vidų todėl kad jis gerbia tą objektą, o ne todėl kad jei jis ten užsuks tai jį nušaus“. Su statiniais metodais ir kintamaisiais viskas Perle paprasta. Štai pilnas objektinio programavimo pavyzdukas Perlu, kuriame objektas yra Programeris, jame yra statinis metodas kiek, statinis kintamasis $kiekis, konstruktorius ir vienas paprastas metodas.

package Programeris;

sub naujas {
        $Programeris::kiekis++;
        bless $_[1], $_[0];
}
sub kiek   { $Programeris::kiekis    }
sub vardas { $_[0]->{vardas} }

package main;
my $moxlius = naujas Programeris({vardas => 'Petras', 'pravarde' => 'moxliukas'});
print "Sukurta objektu: " . Programeris::kiek . "\n";
my $pukis = naujas Programeris({vardas => 'Juozas', 'pravarde' => 'pukomuko'});
print "Sukurta objektu: " . Programeris::kiek . "\n";
print "Pukomuko vardas: " . $pukis->vardas;

Visa tai atspausdina:

Sukurta objektu: 1
Sukurta objektu: 2
Pukomuko vardas: Juozas

Vienintelis skirtumas tarp statinių ir paprastų dalykų yra tas, jog statiniams metodams ir kintamiesiems naudojamas ::, o paprastiems ->.