Perl požiūris į naujokus

Benaršydamas internetą atradau gana didelį fleimą apie Perl
bendruomenės požiūrį į naujokus. Su kai kuriais punktais gal ir galima sutikti, bet ne su visais.

Pirmiausia, Perl bendruomenė apkaltinama elitiškumu (Lietuvoje turbūt atvirkščiai – PHP bendruomenę kartais galima tuo apkaltinti). Tiesa, atsakymai į šį kaltinimą buvo įvairūs: nuo nuolankaus „bet juk jei neperskaitė naujokas dokumentacijos, tai negalima jam visko aiškint“ iki „ir labai gerai kad naujokų nėra, nes jie tik trukdo savo kvailais klausimais“.

Be to, iškeliama mintis, kad Perlo dokumentacija per sunki pradedančiajam. Va čia galbūt galima sutikti. Ir dar: tos dokumentacijos daug. Ir visi tingi skaityti ;)

Svetainės atnaujinimai

Atrodo sutvarkiau tą „F5“ klaidą, dėl kurios dažnai dubliuodavosi komentarai (tiesa, man pačiam visada Mozilla ir IE paklausdavo ar tikrai noriu antrą kartą submitint – gal galit patestuot ar pas jus reikalai pagerėjo?)

Pradėjau loginti vartotojų IP. Na iki šiol buvo kuriamos tik tuščios sesijos, tad bent jau IP dabar kartu išsaugos. Tiesa, su tom sesijom ten įdomiai… Viskas saugoma MySQL, bet binariniame formate (matyt taip greičiau) – teko truputį pasinervuot manant kad tos sesijos neveikia, nes pačiame MySQL kaip ir nieko nematydavau.

Kitas dalykas – puslapiavimas. Nutariau, kad būtų paprasčiau turėti tik tarkim 25 paskutinius įrašus pirmame puslapyje, ir visą pilną ilgą sąrašą kažkur kitur (o vat jau tą ilgą sąrašą bus galima puslapiuot po kokį 100 įrašų, mat ten bus pateikta tik pavadinimai ir data). Kol kas limitą 25 įrašams uždėjau, bet dar nepadariau pilno sąrašo. Šiandie padarysiu, jei viskas vyks pagal planą ;)

Sudie IRC, einu dirbt

Štai ką šiandie patyriau:

<-psyBNC> Tue Apr 22 21:47:25 :User JAPH () got disconnected (from irc.delfi.lt) 
Reason: Closing Link: 193.219.82.175 (SVSKilled: GHOST command used by perl_rulz)
--- [perl_rulz] (~mazafaka@81.7.111.254) : qrva
--- [perl_rulz] irc.takas.lt :Tue Apr 22 21:46:24 2003
--- perl_rulz :End of WHOWAS
-NickServ- List of entries matching *@81.7.111.254:
-NickServ-     moxliukas             [Hidden]
-NickServ-     vYtiZ                 [Hidden]
-NickServ-     Waidazz               [Hidden]
-NickServ- End of list - 3/3 matches shown.
--- [vYtiZ] (~vytis.v@81.7.111.254) : vYtiZ
--- [vYtiZ] @#db_rulez @#super-krepsinis @#krepsiukas @#lol @#lebron @#deadeye #Zalgiris #jablonskine #gentoo 

Trumpai drūtai – mane nusnifino. Nežinau, ar čia kuo dėtas vYtiZ, tačiau moxliukas nebeegzistuoja ir nereiktų pasitikėt juo. Meskit mane iš visų access listų ir panašiai ;)

Tiesą sakant, gal tai ir į gerą. Reikės mažiau laiko praleisti IRC ir daugiau laiko paskirti darbams, kurie jau spėjo susikaupt.

Teisinga tipografija svetainėms

Skaitinėjant savo mėgiamiausią svetainę apie interneto programavimą (aišku neskaitant PerlMonks :) aptikau senoką straipsnį apie teisingą tipografiją internete, kuris privertė šiek tiek susimąstyti. Brūkšnelių ilgis pasirodo labai svarbus.

Pačioje interneto pradžioje kompiuteriai buvo panašesni į rašomąsias mašinėles, ir tekstas konsolės ekrane tikrai buvo nepanašus į gražiai suformuotą tipografinį tekstą, kurį galima sutikti knygose ar kituose spausdintiniuose leidiniuose. Problema daugiausiai buvo tame, kad neįmanoma buvo pavaizduoti galybės simbolių, tad teko apsiriboti ASCII. Bet štai dabar jau Unikodo laikai ir turime galybes simbolių gražaus teksto formatavimui, ir galime atskirti „en-dash“ nuo „em-dash“ ir tiesias kabutes nuo riestų. Tad perskaitęs tą straipsnį ir aš užsinorėjau viską daryti gražiai ir pagal standartus.

Beje, lietuviškas „ISO-8859-13“ standartas kaip tik ir skiriasi nuo „Windows-1257“ koduotės tomis nelemtomis kabutėmis. Be to, kažkaip sunkoka jas reikiamai įvesti naudojantis Notepad. Kol kas pabandysiu naudot Unicode decimal entity notation, kur atsidaranti kabutė („) yra &#8222;, o užsidaranti (“) – &#8220;

Perl vs PHP (subjektyvus asmeninis požiūris)

Nemėgstu PHP. Ir turbūt jau pats laikas pasiaiškinti kodėl. Dauguma mane mato kaip Perl fanatiką, nors tas fanatizmas tikrai išpūstas. Mėgstu Perl, bet kartu mėgstu ir Python, ir Ruby, ir hmmm.. kartais netgi Java. Tiesiog Perl yra mano „language of choice“, nes ją geriausiai moku (PHP irgi moku neblogai, bet jos paprasčiausiai nemėgstu). Gerbiu žmones, mėgstančius Python ar Ruby, bet tie, kas skelbia jog PHP yra geriausia kalba nuo pat Kristaus gimimo man sukelia šiokią tokią šypseną. Mano įsitikinimu neišvengiamai toks programuotojas arba subręs ir atras geresnę kalbą, arba bus amžinai pasmerktas knistis didelėje HTML ir PHP kodo košėje, iš kurios nematyt nei gražaus kodo, nei naujausių technologijų.

Tad kuo tas PHP blogas? Galbūt ir niekuo. Visa tai, ką čia rašau yra mano subjektyvi nuomonė. Pirmiausia PHP man asocijuojasi su pradedančiaisiais programavime, kurie net nežino kas tai yra „kintamasis“. PHP lengva įdiegti. PHP lengva pradėti rašyti, mat paprasčiausios PHP programos nesiskiria nuo HTML. Tuo tarpu Perl sudėtingas. Sunku juo programuoti Windows platformoje, ypač pradedantiesiems. Vien norint paleisti Perl programą per CGI, reikia padaryti „chmod“, išvesti reikiamą HTTP headerį, o tai sudėtinga žmogui, niekada nesusidūrus netgi su komandine eilute. Perl gal būt ir atrodo per sudėtingas, bet mano nuomone, jis priverčia susimąstyti. Priverčia pagalvoti kodėl reikia spausdinti būtent tokį headerį, o ne kitokį, priverčia užduoti klausimą „kodėl?“. Tiesiog PHP laikau vaikišku žaidimiu, palyginus su Perl (tiesą sakant nebūtinai su Perl… su bet kuria rimtesne programavimo kalba)

PHP meturi savo filosofijos. Arba jo filosofija yra padaryti kalbą kuo paprastesnę naudojimui internete, bet tam reikia skolintis idėjas iš to paties Perl. Tik skolintas ir kopijuotas daiktas niekada neprilygsta originalui. PHP turi daug ką, ko turi ir Perl, bet tai padaryta taip negrabiai kad net nesinori to naudoti. Tarkim regexpai. Krūvos preg_* funkcijų tikrai nepalengvina gyvenimo. O kaip būtų paprasta, jei regexpai būtų pačios kalbos dalis, o ne „prihakintas“ dalykas per funkcijas.

PHP neturi bendros vieningos funkcijų pavadinimų sistemos. is_array(), is_numeric(), is_null() ir isset()… kur dingo brūkšniukas? Be to pats sprendimas absoliučiai viską daryti per funkcijas (o kad bent ta funkcijų iškvietimo sintaksė būtų lankstesnė!) yra tiesiog atgrąsus. Štai yra ir funkcija array_map() (beje, kam tas „array_“ prieš visas masyvų funkcijas? Kad ilgesnės programos būtų?) — Perle map yra mano mėgstamiausia funkcija — bet ar kada kas naudoja tą array_map()? Ne, nes parašyti kodą su visais callback‘ais užima pernelyg daug laiko ir pastangų. Visiškai priešingai nei Perle, kur map labai patogu naudoti vietoj for ciklo: @foo = map { $_ * 2 } @bar;

PHP neturi paprastų masyvų. Yra keisti asociatyvūs masyvai, bet su jų normaliai negalima nei shift’inti, nei pop’int. Galbūt aš per daug stengiuos kad PHP būtų Perlas, bet patys PHP kūrėjai pripažįsta, kad daug idėjų ėmė iš ten. Deja, kopija skiriasi nuo originalo.

O kas toliau? PHP5 labai keistai ir įtartinai panašus į Java. Kaip sau norit, bet tai ne mano svajonių kalba. Perl6 — visai kitas žvėris. Tai jau nebe kalba, o metakalba, suteikianti visišką laisvę programuotojui. Jei tik jis žino ką daro.

Columbia Shuttle tyrimas

Prieš porą dienų Columbia Accident Investigation
Board
išleido pirmąsias
rekomendacijas
būsimiesiems Shuttle skrydžiams. Nieko aiškaus apie pačios
katastrofos priežastį. Susidaro įspūdis, kad tos rekomendacijos tik tam
kad kitą kartą tokie tyrimai vyktų sklandžiau (rekomenduojama fotografuoti
Shuttle nusileidimą iš palydovų ir panašiai). Tiesa, taipogi rekomenduojama
peržiūrėti Shuttle anglies plokštelių struktūrą.

Pamąstymai apie #php tradicijas

Tiesa, važinėjantis dviračiais su Lakūnu šiek tiek pasikalbėjom apie
#php tradicijas ir apie jų atgimimo galimybes. Pereitą vasarą juk vos ne kiekvieną
pekntadienį būdavo tradicinis #php sugėrimas Rotušėlėje. Kartais ateidavo
keletas žmonių, kartais — kelios dešimtys. Įdomu, ar tokia tradicija atgimtų ir šią vasarą, nebūtinai
Rotušėlėj, nebūtinai penktadieniais, nebūtinai alaus gėrimas, tiesiog kažkas bendro ir tradiciško.

Naujos Microsoft buferio perpildymo klaidos

Microsoft įspėjo Windows NT, 2000 ir XP vartotojus apie buferio perpildymo
klaidas, kuriomis pasinaudojus galima užvaldyti kompiuterį, trinti bylas,
perkonfigūruoti sistemą, ir daryti viską administratoriaus teisėmis. Skylę galima užlopyti
atsisiunčiant lopą iš Windows Update svetainės.

Tai jau 14-a atrasta su sistemos saugumu susijusi klaida Windows
sistemose šiais metais. Daugiau apie pačią klaidą galima rasti
pačioje
Microsoft svetainėje