Krūva nuorodų

Vėlgi prisikaupė visokių nuorodų, kurios gal kam ir pravers.

Išleistas Perl5.8.1

Viskas. Prieš porą minučių išleistas Perl 5.8.1. Kol kas dar nėra
oficialaus pranešimo, Jarkko Hietaniemi pranešė tik į
perl5-porters sąrašą. Štai ką jis parašė:

Grab it:


http://www.iki.fi/jhi/perl-5.8.1.tar.bz2


http://www.iki.fi/jhi/perl-5.8.1.tar.gz

(or rsync -avz --delete ftp.linux.activestate.com::perl-5.8.x perl-5.8.x)

Or in a while:


http://www.cpan.org/authors/id/J/JH/JHI/perl-5.8.1.tar.gz

perldelta:


http://www.hut.fi/~jhi/perldelta-5.8.1.html

Thank you to you all. Hopefully the 5.8.1 is better than the 5.8.0 was.
Since the release is now out there propagating, there’s precious little
I can do anymore, so I will now have a vacation. Quite a long one,
I think. I will write up An Official Announcement later when the CPAN
mirrors get updated.

Moblogo patobulinimai

Atradau beeksperimentuodamas, kad galima nuotraukas siųsti iš
mobilaus ne per MMS, o
per paprastą elektroninį paštą (na kaip paprastą… per GPRS tiesiai iš
telefono). Tai reiškia, kad nereikės mokėti viso 1,50 Lt už vieną MMS žinutę (nuo spalio
pabaigos berods) ir bus galima apsiriboti paprastu GPRS. Kadangi viena
nuotrauka užima apie 15KB (su base64 kodavimu matyt apie 20KB), tai
vienos nuotraukos siuntimas į moblogą kainuoja apie 0,15 Lt (huh, 10
kart pigiau nei MMS)
dienos metu, o naktimis nemokamai. Plius dar yra berods 4 ar 5 MB
nemokami per mėnesį, tad mobloginimas nėra toks brangus
užsiėmimas.

Dar vienas geras dalykas – kai siunti per paprastą GPRS tai
gaunasi normalesnė el.pašto žinutė (neprideda keistų
application/smil (nors ten šiaip XML) priedų). Be to užsieniečiai kalba, kad per
MMS siunčiami
paveiksliukai serveryje dar kartą kompresinami ir dar labiau
nukenčia kokybė. Nežinau, to lyg ir nepastebėjau.

Padariau dar taip, kad su el.paštu siunčiama text/plain
dalis matytųsi mobloge kaip nuotraukos pavadinimas.

Tad technologinių kliūčių kaip ir nebeliko. why2liz čia labai krykštavo, kad
dėl šito moblogo lyg ir gerėja lietuviškų weblogų kokybė. Aš kaip tik
esu linkęs manyti priešingai. Dar kai rašai tekstą, tai turi pamąstyt ką
rašysi, apgalvot. O čia tik spusteli mygtuką ir viskas. Per daug lengva,
per maža pastangų, tad neabejotinai ir turinio kokybė mažesnė (be to aš
iš vis sunkiai įsivaizduoju ką kasdien galima kompiuterastiško pasakyti
nuotraukomis – per didelė pagunda daryti niekam neįdomias picų ar
sriubos nuotraukas su užrašu „noriu valgyt“). Tad jei ir
fotografuosiu bei taip pildysiu savo moblogą, kažkaip abejoju ar jis bus
naudingas ir manau kad jis bus labiau asmeniškesnis nei
kompiuterastinis. Na turbūt jei mano nuomone dėmesio vertų
kompiuterastinių vaizdelių atsiras mobloge tai turbūt reikės juos
plačiau pakomentuoti ir paprastame webloge. Žiūrėsim kaip
čia… tik per daug rimtai į tą moblogą nereiktų žiūrėt.

Perlo modulių įdiegimas

Čia pateikiu dar vieno PerlMonks straipsnio santrauką lietuvių kalba. Šį kartą apie tai kaip įdiegti Perlo modulius.

Paprasti dalykai

Daugumą modulių galima rasti CPAN. Jie būna pateikiami taip vadinamuose tarballuosetar bylose, suarchyvuotose gzip programa. Modulio kodas būna atskiroje direktorijoje, tad tar šią direktoriją sutraukia į vieną bylą, o gzip šią bylą suarchyvuoja. tar sukurtos bylos turi plėtinį .tar, o gzip.gz, tad dažniausiai modulio bylos pavadinimas atrodys kažkaip taip:

Kazkoks-Modulis-0.01.tar.gz

Pirmoji bylos vardo dalis yra modulio pavadinimas, po to eina modulio versijos numeris ir plėtinys .tar.gz. Išarchyvuoti šį modulį galima konsolės komanda:

tar -zxvf Kazkoks-Modulis-0.01.tar.gz

Visos *nix sistemos turi programą tar. Windows‘uose galite naudoti CYGWIN (unix aplinka Windowsams), tačiau standartinės archyvavimo programos kaip WinZip irgi turėtų susitvarkyti su šia užduotimi.

Jei jau išarchyvavote Perlo modulį jums reikės jį paruošti ir įdiegti. Nueikite į direktoriją, į kurią išarchyvavote modulį ir ieškokite bylos Makefile.PL. Ją suradę suveskite konsolėje šias komandas:

perl Makefile.PL
make
make test
make install

Viskas turėtų praeiti gražiai ir be klaidų, jeigu ne, tai skaitykite žemiau. Windows sistemoje jums reikės programėlės pavadinimu nmake. Ją galima parsisiųsti iš Microsoft per FTP arba per HTTP. Parsisiuntus ją reikia irgi įdiegti. Įsitikinkite kad nmake yra programų kelyje ir yra pasiekiamas.

Kai jau įdiegėte nmake, įdiekite ir perlo modulį DOS lange rašydami:

perl Makefile.PL
nmake
nmake test
nmake install

Jeigu viskas gerai, tai sveikinu. Jei ne, tai skaitykite toliau.

Dažniausios problemos

Gaunu klaidos pranešimą Warning: prerequisite Foo::Bar failed to load: Can't locate foo/bar.pm in @INC

Kai kuriems moduliams reikia kitų modulių. Jie yra priklauomi nuo kitų modulių funkcionalumo. Šios priklausomybės yra aprašomos Makefile.PL eilutėje:

'PREREQ_PM' => { Foo::Bar => 1.5 }

Tai nurodo kad šiam moduliui reikia ne senesnės kaip 1.5 modulio Foo::Bar versijos. Prieš įdiegdami modulį, įdiekite modulius kurių reikės naujajam moduliui.

Gaunu klaidą Can't find make

Gali būti kad make nėra jūsų sistemoje. Įdiekite make (arba Windowsuosenmake).

make/nmake neranda kai kurių bylų

Kai paleidžiate make/nmake, jis ieško bylos pavadinimu MANIFEST, kurioje surašytos visos bylos kurios turėtų būti modulyje. Jei kurios nors iš jų nėra, gausite panašią klaidą:

$ make
Checking if your kit is complete...
Warning: the following files are missing in your kit:
Foo.bar
Please inform the author.

Turbūt dėl to reiktų kaltint modulio autorius.

make test gražina klaidas

Perlo moduliai turėtų veikti vienodai visose operacinėse sistemose, bet kartais taip neatsitinka. Modulių autoriai dažnai prideda visokių testų, kad įsitikinti jog modulis veiks tiap kaip turėtų. Kai kurios klaidos kurias grąžina make test yra nežymios, tačiau jos gali rodyti kad su šiuo moduliu gali būti daug problemų. Jei gaunate tikrai daug klaidų, tai turbūt nereiktų įdiegti šio modulio.

Sako, kad neturiu pakankamai teisių įdiegti šį modulį

Jeigu neturite root teisių, tai jums nepavyks įdiegti modulių standartinėse įdiegimo vietose. Dažniausiai gausite tokias klaidas:

$ make install
Warning: You do not have permissions to install into 
/usr/local/lib/perl5/site_perl/5.005/i386-freebsd at 
/usr/libdata/perl/5.00503/ExtUtils/Install.pm line 62.
mkdir /usr/local/lib/perl5/site_perl/5.005/CGI/Simple: 
Permission denied at /usr/libdata/perl/5.00503/ExtUtils/Install.pm line 120
*** Error code 2

Nesunku išspręsti šią problemą. Įdiekite modulius į savo vietinę namų direktoriją. Tam tikslui pasidarykite direktoriją ~/lib

# pirma nueikite į savo namų direktoriją
$ cd ~
# dabar sukurkite katalogą lib
$ mkdir lib

Dabar paleisdami perl Makefile.PL nurodykite kur įdiegti modulį:

perl Makefile.PL LIB=~/lib

tam kad galėtumėte naudotis taip įdiegtu moduliu jums teks savo programose pridėti ~/lib prie @INC. Štai paprasčiausias vartojimo būdas:

#!/usr/bin/perl -w
use strict;
# pridedam ~/lib direktoriją prie @INC
use lib '/usr/home/jusu_namu_direktorija/lib/';
# toliau kaip įprasta
use Kazkoks::Modulis;

Įrankiai palengvinantys Perlo modulių įdiegimą

Yra keletas įrankių, palengvinančių Perlo modulių įdiegimo procesą. Tiesa, gali būti sudėtinga priversti juos veikti, jei naudojatės proksiais ar ugniasienėmis.

CPAN.pm

Tai Perlo modulis, skirtas įdiegti kitiems Perlo moduliams. Lengviausia jį naudoti štai taip:

perl -MCPAN -e "shell"

tai paleidžia interaktyvų apvalkalą. Sekite instrukcijas.

PPM

PPM yra ActieState programa, kuri įdiegia specialias CPAN modulių versijas aprašytas XML formalu PPD bylose. Tiesiog parašykite DOSo lange ppm jei turite įdiegtą ActivePerl. Toliau parašykite help ir skaitykite instrukcijas.

Perlo modulių su C kodu įdiegimas

Sudėtingiausia yra įdiegti modulius, kurie yra rašyti C kalba. Tam reikia turėti kompiliatorių – geriausia gcc. Dažniausiai UNIX sistemose šis kompiliatorius jau būna pagal nutylėjimą, o Windowsams jį geriausia parsisiųsti tiesiai iš http://www.gnu.org/software/gcc/gcc.html. Kompiliuoti modulius Windowsuose yra sudėtinga. Dažnai tik cygwin ir gcc tam neužtenka. Lengviausia yra rasti jau sukompiliuotus modulius (per PPM arba pas modulio autorių). Tiesa, jei naudojatės Windows ir klausiate autoriaus patarimo kompiuojant jo modulius galite kartais tikėtis ir atsakymo „įsigyk normalią operacinę sistemą“…

Naujas mobilus – nauji džiaugsmai

Na štai nusipirkau naują mobilų – tikrą kompiuterasto svajonę.
Yra visos javos, GPRS, infrared, Bluetooth ir panašiai. Tai Ericsson T610. O kad
jei jau yra infraraudonųjų spindulių galimybė, ta galima išsibandyti ir
priversti Palmą dirbti su internetu. Na, daug privertinėt nereikėjo,
viskas veikia puikiai ir gražiai. Tai yra pats susijungimas veikia
puikiai ir gražiai, o vat su internetinėmis programomis tai šiek tiek
skurdžiau.

Pradžiai ieškojausi IRC
klientų. Radau jų keletą, bet visi jie shareware. Na,
pasibandymui užtenka. Tik labai jau nepatogu piešti visas raides kai
nori kalbėtis IRC – jau
galvojau nespėsiu identifikuotis su NickServ.

Toliau bandžiau ieškotis normalaus pašto kliento. Radau daiktą
pavadinimu GNU GotMai. Tai paprastas SMTP/POP3 klientas, kuris pats net negali skaityti laiškų
– tam reikia dirbti su (mano nuomone) itin nepatogia programa
Mail. Reikės giliau pasiknaisiot. Bet iš esmės savo funkcijas
GNU GotMail atlieka puikiai.

Su web naršyklėmis atrodo yra sudėtingiau (o aš labai daug ko
tikėjausi pamatęs offline naršyklę Plucker). Bet
šiandien tik pirmoji diena, reikės interneto platybėse pasižvalgyt
atidžiau.

Hmm, beje, šitame mobiliame yra ir fotoaparatas. Niekaip nerandu kaip
iš jo iškrapštyt nuotraukas nesiunčiant jų per MMS – čia konspiracija ar mano žioplumas?

Nokia Plugin

Visgi reikėjo pasidaryti telefono backupus. Po vakarykščio apsilankymo Forum Palace vykusiame Nokia Plugin kažkur pradanginau savo mobilų (Pavogė? Pamečiau? Mobilus įgijo
sielą ir žaviai mirksėdamas savo diodu išėjo ieškoti merginų?). Kad ir kaip ten bebūtų, mano mobiliam tai
turbūt patinka, nes bandant su juo susisiekti atsiliepia mergina vardu „balso paštas

Vis dar nevalingai siekiu kelnių kišenės, nes vis kyla noras įsijungti WAP ir pasižiūrėti ar šioje svetainėje padaugėjo komentarų ar bent jau pažvelgti į jo logotipą. Dar labiau suspaudžia širdį kai pagalvoji kad kartu dingo
visi telefono numeriai. Nors yra ir privalumų – niekas neskambina ir neklausia ar padarei tą ir aną. Be to
bus dabar proga įsigyti naują aparatą, kuris suprastų kas yra infraraudonieji spinduliai (Palmas jau seniai laukia
interneto).

Dabar kai žvelgiu į ant rankos mėlynuojantį apsitrynusį antspaudą „Nokia plugin“ manau, kad renginys
buvo puikus. Tik reikėjo pasidaryti backupus.

Myliu vim

Teko praleisti praeitą naktį prie kompiuterio stengiantis parašyti
kuo daugiau veikiančio PHP kodo. Apie kokią antrą valandą nakties
sėdejau su vim ir pamaniau kad turbūt nieko į jį
nekeisčiau. Yra tekę bandyt ir visokius GUI redaktorius ir
mcedit ir nano, ir pico, bet
niekas negali prilygti vim (nebent emacs
– reiktų tą irgi išbandyt normaliai).

Tiesa, vim yra gana baisus naujokams. Prisimenu aš pats
nemokėjau iš jo išeit kai pirmą kartą jį paleidau ;) Bet dabar sau
ramiai žongliruoju iki dešimties langų ir kokia 30 buferių, naudodamasis
įpraiškomis darau pakeitimus tekste ir pan. Štai keletas
vim komandų, kurias gal ne visi žino:

:w [byla]   įrašo buferį į bylą
:q          išeina iš dabartinio lango
:q!         išeina iš dabartinio lango, nesišsaugant buferio
:r [byla]   įterpia bylą į buferį
:![shell]   įvykdo shell komadą
:r ![shell] įvykdo shell komandą ir įterpia rezultatą į buferį
:ls         parodo buferių sąrašą
:bd [nr]    ištrina buferį nr [nr]
:sp [byla]  atidaro bylą redagavimui naujame lange
:clo        uždaro langą
:set nu!    įjungią eilučių numerių rodymą
:set ts=4   nustato tabstop = 4
:syn on     įjungia "Syntax highlighting"
ctrl+w o    padidina langą per visą ekraną
ctrl+w [rodykle] perkelia kursorių į kitą langą
/[zodis]    žodžio paieška buferyje
:%s/foo/bar/g pakeičia 'foo' visoje byloje į 'bar'

PLP: Perliškas PHP

Šiandien man akis užkliuvo už projekto pavadinimu PLP. Tai labai papratsas Perlo modulis,
kuris leidžia naudoti Perlą taip kaip PHP – be jokių chmod ir headerių
formavimų bei tiesiai HTML kode. Privalumų yra keletas: labai lengvas
įdiegimas (ypač jei mod_perl jau įdiegtas), greitis (2-5
kart greičiau nei PHP) ir aišku pats Perlas ;)

Tiesa, galimybėmis PLP vis dar stipriai nusileidžia
tokiems projektams kaip HTML::Mason
ar embperl, bet kartu jis
žymiai paprastesnis ir lengvesnis naudoti. Štai PLP pavyzdys:

<html>
<head>
<title>Test</title>
</head>
<body>
<: print "hey, veikia!<br>" for 1..10; :>
</body>
</html>

Patogus Perlo įpraiškų naudojimas

Tarkim jums reikia, kad pritaikyti įpraišką simbolių eilutei ir
rezultatus sudėti į masyvą. Perle tai labai lengva:

@masyvas = $eilute =~ m/(kazkas)/g;

Šitas kodo gabaliukas veikia, nes =~ turi didesnę
reikšmę nei = ir todėl įpraiška yra pritaikoma anksčiau.

Jeigu reikia sužinoti tik kiek kartų įpraiška atitiko eilutę galima
daryti taip:

$kiek_kartu = $eilute =~ m/(kazkas)/g;

Viskas labai paprasta: jeigu rezultatą priskiriame masyvui, tai
gauname atitikmenų masyvą, jeigu rezultatą priskiriame paprastam
skaliarui, tai gauname atitikmenų skaičių. Viską galima padaryti ir
vienu ypu:

$kiek_kartu = @masyvas = $eilute =~ m/(kazkas)/g;

Tad šituo pasinaudojant galima tarkim išsitraukti visas nuorodas iš
HTML:

@nuorodos = $html =~ m/<a[^>]+href\s*=\s*["']?([^"'> ]+)/ig;

Nors tokiai užduočiai gal ir geriau naudoti HTML::LinkExtor
modulį.

Įdomūs rytiniai virusai

Šiandieną ryte gavau porą labai įdomaus viruso kopijų. Štai kaip
atrodo headeriai:

From - Tue Sep 16 08:37:52 2003
X-UIDL: Y&5!!dV,!!P*V!!?l^!!
X-Mozilla-Status: 0001
X-Mozilla-Status2: 10000000
Return-path: <admin@duma.gov.ru>
Envelope-to: petras@lietuvoje.lt
Received: from [81.7.106.87] (helo=localhost)
	by www.lietuvoje.lt with smtp (Exim 3.35 #1 (Debian))
	id 19z0nf-0003vz-00
	for <petras@lietuvoje.lt>; Mon, 15 Sep 2003 23:22:23 +0200
From: "Microsoft" <security@microsoft.com>
To: <petras@lietuvoje.lt>
Subject: Use this patch immediately !
MIME-Version: 1.0
Content-Type: multipart/mixed;boundary="xxxx"
Message-Id: <E19z0nf-0003vz-00@www.lietuvoje.lt>
Date: Mon, 15 Sep 2003 23:22:23 +0200
X-UIDL: Y&5!!dV,!!P*V!!?l^!!
Status: U

--xxxx
Content-Type: text/plain;
Content-Transfer-Encoding: 7bit

Dear friend , use this Internet Explorer patch now!
There are dangerous virus in the Internet now!
More than 500.000 already infected!

--xxxx

Labai įdomus socialinės inžinerijos pavyzdys. From lauke nurodyta security@microsoft.com,
pačiame laiške prašoma atsinaujinti ir užsilopyti savo programinę įrangą. Tiesa, galėtų šiek tiek oficialesniu
tonu rašyt o ne „Dear friend…“, nors nežinau, gal Microsoft marketingistai ir bendrauja tokiu tonu?

Kitas įdomus dalykas yra tas, kad Return-path yra admin@duma.gov.ru. Įdomu čia tikrai rusai susiję
ar tiesiog mėtomos pėdos ir bandoma jiems suversti kaltę ar norima užfludinti rusų dūmos vargšą adminą?