Dar vieno analitiko svetainė

Petras Kudaras

Programavimas

Ar šiuolaikinis dirbtinis intelektas jau padarė proveržį?

1726 metais Džonatanas Swiftas išleido savo populiariausią knygą „Guliverio kelionės“, kurioje buvo aprašoma ir kelionė į skraidančią salą Laputą. Salos gyventojai – labai protingi, bet nelabai tikrame gyvenime besigaudantys mokslininkai, kurie vis prigalvoja visokiausių keistenybių, turinčių visiems palengvinti gyvenimą. Vienas toks išradimas yra milžiniška mašina su daugybe ratų ant kurių pritvirtintos lentelės su įvairiausiais žodžiais, paimtais iš išradėjo jaunystės užrašų: patempus virvelę tie ratai sukasi ir žodžiai susidėlioja daug maž atsitiktine tvarka į sakinius. Skaityti toliau…

Mūrininkų vertybės duomenų sistemoms

Skaitant Diana Darke knygos skyrių apie viduramžių mūrininkų gildijas man įstrigo jų deklaruojamos vertybės, kuriomis turėtų būti vadovaujamasi statyboje. Geras statinys turi būti gražus, tvirtas ir patogus. Kaip suprantu, šias vertybes perėmė ir vėlesnieji laisvieji mūrininkai, kurie fizinių akmenų jau nebetašė. Šių raštuose teisingas gyvenimas irgi stovi ant trijų kolonų: grožio, stiprybės ir išminties. Dirbu su įvairiausiomis duomenų sistemomis, duomenų bazėmis ir jų analize. Tai ganėtinai toli iki viduramžių katedrų statybos, bet kažkiek panašumo stipriai prisimerkus įžiūrėti galima: tai sudėtingos sistemos, kurias ne vienerius metus kuria ištisos komandos žmonių, ir nebūtinai pagal vieną aiškų nekintamai patvirtintą detalųjį planą. Skaityti toliau…

James Cortada IBM istorija

James Cortada dirbo IBM berods 45-erius metus ir, išėjęs į pensiją, parašė virš septynių šimtų puslapių knygą apie šios kompanijos istoriją. Nemanau, kad „IBM: The Rise and Fall and Reinvention of a Global Icon“ pretenduoja būti labai objektyvi – tai žvilgsnis į IBM ilgamečio darbuotojo akimis, be didelės kritikos, daugiausia tik su nuomonėmis „iš vidaus“. Tad nereikia stebėtis, jog kompanija piešiama beveik vien tik teigiamomis spalvomis: inovacijų lyderė, technologijų etalonas ir panašiai. Skaityti toliau…

Kur Lietuvoje tolimiausia iki ežero?

Kartais būna taip, kad kažkur netyčia nugirsti kokią minties nuotrupą ir po to ji vis tavęs nepalieka. Taip ir man nutiko: prieš kokį pusmetį ar net metus kažkas kažkur paklausė, kaip būtų galima sužinoti, kur yra artimiausias ežeras. Pagalvojau, kad atsakymą nesunku surasti šiek tiek pakračius atvirus geografinius ežerų duomenis. Bet tada pradėjo kirbėti nauja mintis: o kuri Lietuvos vieta yra toliausiai iki bet kokio ežero? Aišku, bėgo mėnesiai, programuoti nesiėmiau, bet klausimas vis tiek niežtėjo. Skaityti toliau…

Ką rinkčiausi duomenų ūkyje

Kuo didesnis klientas, tuo mažiau laisvės technologijų pasirinkimui – dažniausiai dirbi tais įrankiais, kurie jau naudojami organizacijos viduje. Naujų programavimo kalbų, operacinių sistemų ar duomenų bazių klientams nesinori, nes kažkam organizacijos viduje tas naujas technologijas reikės prižiūrėti. Jei visas tavo lėktuvų parkas sudarytas iš Airbusų, įsigyti vieną Boeingą „pažaidimui“ nelabai protinga. Tačiau kartais sveika pagalvoti, kokias technologijas rinktumeisi, jeigu viską darytum nuo nulio. Duomenų bazė Anksčiau buvau pratęs dirbti su MySQL – greita, paprasta, lengva administruoti. Skaityti toliau…

Duomenų bazių testavimas

Prieš keletą dienų užtikau patikusį straipsnį apie automatizuotus duomenų bazių testus. Programiniam kodui jau senokai tapo įprastinė praktika rašyti testus, bet duomenų bazių struktūra testuojama ne visada. Tiesa, gerai sutvarkytoje duomenų bazėje įmanoma sudėti daug saugiklių: stulpeliams uždėti apribojimus, išorinius raktus ir panašiai, tačiau bendras požiūris į duomenų teisingumą bei validumą vis tiek reikalingas. Autorius siūlo duomenis testuoti trijose vietose: pirminių šaltinių lygyje, tik juos sukėlus į duomenų bazę ir jau po verslo logikos transformacijų. Skaityti toliau…

Rožės monitoringas su Raspberry

Noriu pasigirti: žmonos paskatintas pirmą kartą su Raspberry Pi nuveikiau kažką sudėtingesnio nei vien tik pajungiau prie jo kamerą. Jai paklausus, ar nebūtų įmanoma sukonstruoti kokio nors prietaiso, stebinčio rožės dirvos temperatūrą, suėmė savotiškas azartas, ir jau kitą dieną stovėjau prie visiškai neaiškių daiktų kupinos vitrinos elektronikos komponentų parduotuvėje. Kažkokie sensoriai, laidukai, mikroschemos, montažinės dėžutės, rezistoriai ir kiti ten parduodami dalykai – nieko nesuprantu, nieko nežinau. Ar čia man reikia to, ar kito, ar skiriasi kuo DHT-22 nuo DHT-11, kokių ir kiek man reikia rezistorių (o jų iš vis pasirodo reikia? Skaityti toliau…

Nick Bostrom: „Superintelligence“

Kai perskaičiau Max Tegmark’o „Life 3.0“, buvau piktas – tema įdomi ir aktuali, bet skaitai ir supranti, kad autoriui kompetencijos dirbtinio intelekto klausimais mažokai. Tad ėmiausi Nick Bostromo knygos „Superintelligence“, nes ją dauguma laiko žymiai rimtesne. Šioje knygoje esminiai skyriai yra patys pirmieji, kuriuose diskutuojama apie tai, kada (ir ar iš vis) įmanoma pasiekti dirbtinio intelekto sprogimą: kada jau turėsime tokį dirbtinį intelektą, kuris pats besimokydamas mus aplenks savo protu. Visi kalbinti ekspertai teigė, jog arba po kokio šimtmečio, arba niekada. Skaityti toliau…

Lietuvos miestų gatvės pagal pasaulio šalis

Neseniai užtikau įdomią JAV bei kitų pasaulio didmiesčių gatvių orientacijos analizę, darytą vienu mano mėgstamiausių python modulių osmnx. Kadangi kodas viešas, tai buvo nesunku tą patį padaryti ir Lietuvos miestams. Kaunas ir Vilnius – gana chaotiški, o kitur vyrauja aiški kvartalinė sistema Kuo senesnis miestas, tuo didesnis senamiestis, o šie dažniausiai būna chaotiški. Naujesniuose miestuose daugiau vyrauja aiški kvadratinė kvartalinė sistema. Buvo įdomu tai, kad dažniausiai ji ne tiksliai šiaurės-pietų bei rytų-vakarų krypties, o apie 20 laipsnių pasukta pagal laikrodžio rodyklę (Alytus, Gargždai, Kretinga, Kėdainiai, Marijampolė, Mažeikiai, Neringa, Palanga, Telšiai – ypač Žemaitijoje). Skaityti toliau…

Robotas irgi žmogus

Iš pažiūros duomenų analizė yra labai nešališkas ir objektyvus reikalas: paimi krūvą duomenų, perleidi per sudėtingą statistinių algoritmų mėsmalę ir gauni kažkokias įžvalgas. Mūsų produktą labiau mėgsta Marijampolėje, brangesnius produktus moterys perka savaitgaliais, socialiniuose tinkluose sekantys veikėją X skaito portalą Y, bent tris kartus gavę labai didelę mėnesinę sąskaitą yra linkę perbėgti pas konkurentus. Su regresijomis (ar sudėtingesnėmis analizėmis) ginčytis sunku, nes duomenys lyg ir kalba už save. Nebereikia spėlioti ir remtis dažnai mus pavedančia intuicija. Skaityti toliau…

Zylių stebykla

Man patinka vis ką nors naujo išmokti, o mokytis geriausia ką nors darant. Taip visai netyčia užgimė Rube Goldbergiško stiliaus zylių stebėjimo projektas, kuris savyje sujungė norą išsibandyti python kalbos bibliotekas konvoliuciniams neuroniniams tinklams su idėja viską padaryti Amazon AWS debesies infrastruktūroje be jokių dedikuotų serverių vien tik su Lambda funkcijomis. Suprantu, kad tiems, kas su tokiais dalykais nesusiduria tai skamba lygiai tiek pat įdomiai kiek man skambėtų nauja variklio vožtuvo modifikacija paskutiniame BMW modelyje (tikiuosi nesuklydau, kad vožtuvai kažkaip susiję su varikliais, non? Skaityti toliau…

Vilniaus viešojo transporto duomenys

Niekada iki šiol nenaudojau dplyr R paketo, tad norėjau pasižiūrėti, kaip jis veikia (o veikia jis tikrai patogiai!). Kadangi neseniai buvo paviešinti Vilniaus Viešojo Transporto vėlavimų duomenys, tai kaip tik šis duomenų rinkinys pasirodė tinkamas pasižaidimui. Kadangi tai labiau techninis galimybių bandymas, tai didelių įžvalgų ir neieškojau, nors visgi radau, kad privatūs vežėjai vėluoja žymiai rečiau nei VVT, troleibusai yra patikimesni nei autobusai, o savaitgaliais viešasis transportas yra punktualesnis (kuo nereiktų stebėtis – juk eismo mažiau). Skaityti toliau…

Telefonas žino, kada tu nuėjai miegoti

Iš anksto įspėju: tai techniškas įrašas, kuris bus įdomus tik stiprokai užkietėjusiems duomenų analitikams, kurių negąsdina R ar Ruby. Jei šie dalykai jus nelabai domina, štai trumpa įrašo santrauka: jūsų telefonas gali kaupti daug įdomios informacijos apie jūsų judėjimą, mat jis moka būti ir žingsniamačiu. Tuos duomenis galima išsitraukti ir pribraižyti visokių gudrių grafikų, kurie parodo, kad kažkodėl antradieniais ir ketvirtadieniais jūs keliatės valandą anksčiau nei įprastai, 2015 metų gegužę kelias savaites praleidote kitoje Atlanto pusėje ar bent jau panašioje laiko zonoje, o tų pačių metų rugsėjo pradžioje buvote vakarėlyje, iš kurio grįžote apie 2 valandą ryto. Skaityti toliau…

Ką išmokau, būdamas duomenų analitiku

Praėję metai buvo įdomūs tuo, kad beveik visus juos praleidau dirbdamas kiek kitokį, nei man įprastą darbą – ne knaisiojausi po finansinius įmonių modelius, bandydamas suprasti, kas galėtų būti geros bendrovės investicijoms, o analizavau nemažus duomenų kiekius daugiausiai investicijų pritraukusiame lietuviškame startuolyje (ar tai iš vis yra teisingas žodis?) Vinted. Patirtis buvo labai įdomi, juolab, kad visada norėjau padirbėti ne vien su finansiniais modeliais, bet ir pamatyti kaip viskas atrodo iš realaus verslo pusės. Skaityti toliau…

Ar veikia slankieji vidurkiai? Bandymas pasiknaisioti su programavimo kalba R

Įspėjimas: tai labai techniškas ir programiškas dienoraščio įrašas, toks, kokio jau nebuvo gerus septynetą metų. Bet net ir programuotojams jo vertė ribota, nes dar tik mokausi susigyventi su programavimo kalba R, bet jau jaučiu, kad mano programavimo įgūdžiai ganėtinai atšipę ir užrūdiję. Jeigu ir toliau esate pasiryžę imti ir gaišti laiką skaitant ką prirašiau, nesiskųskite, jog nebuvote įspėti.

Skaityti toliau…

CNN: Lietuviai turi daugiausiai laisvų dienų pasaulyje

Nežinau, kaip čia tiksliai CNN paskaičiavo, bet jie teigia, jog lietuviai ir brazilai turi daugiausiai laisvų dienų pasaulyje. Jei brazilai man iš tiesų asocijuojasi su saule, samba ir gyvenimu per daug sau nesukant galvos, tai lietuviai šioje kompanijoje gana sunkiai pritampa. Matyt čia tų laisvadienių Lietuvoje tiek daug dėl jau nebegaliojančio įstatymo, kuriuo būdavo perkėlinėjamos savaitgalį išpuolančios šventės į kitas darbo dienas. Visgi, mano nuomone, šis faktas apie lietuvių „darbštumą“ iškalbingas: kai tiek daug atostogaujama, vertė nekuriama – lietuvių darbo produktyvumas yra vienas mažiausių Europos Sąjungoje. Skaityti toliau…

Programavimo kalba ruby

Kaip gerai, kad yra toks dalykas kaip Interneto archyvas! Jo dėka išgelbėjau jau senokai prarastą svetainę apie programavimo kalbą Ruby, kurią dabar patalpinau adresu http://moxliukas.esu.as/ruby/. Mintį atgaivinti tai, kas prarasta, neseniai pietaujant pakišo EnC. Nežinau, kiek iš tos svetainės naudos, bet kam nors gal pravers keletas Ruby programų pavyzdžių bei pora (gana išsamių) straipsnių.

PHP programuotojų susitikimas

Vakar dalyvavau PHP prijaučiančių susibėgime. Sakau, jog prijaučiančių, nes tarp programuotojų šmėstelėjo keletas merginų, o ir šiaip nemažai senųjų PHP programuotojų užsiima jau visai kitais reikalais, nelabai susijusiais su PHP ir netgi programavimu. Kalbų buvo nemažai – geru žodžiu neminėjom smartweb, taipogi pakeiksnojom PHP vystymą (dėl to, kad ištaisytos klaidos PHP5 nebackportinamos į PHP4, o kartu ir dėl to, jog vystymą kontroliuoja Zend‘as). Buvo sugalvota idėja duoti visiems pasukti smegenis ir pabandyti optimizuoti vieną SQL užklausą, ties kuria ABLomas jau ilgokai užstrigęs. Skaityti toliau…

Kokia jūsų didžiausia programavimo klaida?

Andy Lester, vienas iš pasaulinio lygio Perl programuotojų užduoda klausimą „kokia buvo tavo didžiausia su programavimu ar sistemų administravimu susijusi klaida?“ ir svarbiausia, ko ji tavęs išmokė? Nors jau pats nebeužsiimu programavimais ir administravimais, bet vis dar pamenu vieną pamoką, kurią išmokau kažką ne taip pakeitęs serverio konfigūracijoje: po to teko praleisti vos ne pusę nakties atstatinėjant duomenis ir taisant klaidą. Dabar prieš lendant prie serverio ar tvarkant kokį nors seniai matytą kodą visada užduodu sau klausimą, kas bus, jeigu mano pertvarkymai ką nors sugadins – ar turiu atsargines duomenų kopijas, ar sugebėsiu jas greitai ir efektyviai atstatyti ir ar iš viso esu įsitikinęs, jog žinau ką darau. Skaityti toliau…

JavaScript shell

Šiek tiek grįžtant prie kompiuterastzmų, užtikau UNIX stiliaus JavaScriptinę aplikaciją JS/UIX. Turint laiko galima suprogramuot su JS labai įdomių dalykų, netgi beveik operacinę sistemą ;)

Čekai vs. slovakai

Vakar buvo užvažiavę mūsų partneriai ir kolegos iš Čekijos, su kuriais po pokalbių darbe apie Čekijos akcijas ir makroekonominę situaciją praleidome ir vakarą vienoje Vilniaus užeigoje. Pokalbis dažnai sukosi apie įmones, apie verslą, apie visa tai, kas iš esmės mus ir sieja. Bekalbant su jais prisiminiau, jog esu susidaręs tokią nuomonę, jog Slovakija yra itin agrarinė, neišsivysčiusi, o žmonės ten labiau išlaikę tradicijas, labiau „kaimietiški“ ir „nuo dūšios“ nei Čekijoje. Nežinau, ar tai tik Kunderos knygų sudarytas įspūdis, tačiau kiek teko bendrauti su slovakais, šis mano požiūris lyg ir pasitvirtina (štai Bratislavos birža likvidumu tikrai nepasižymi). Skaityti toliau…

Perliška vartotojų sistema

Skaičiausi čia neseniai apie Perlo modulį Class::DBI ir šiandieną sumaniau jį šiek tiek išbandyti. Šis modulis yra duomenų bazės objektinė abstrakcija, ir viską daro tokiame aukštame lygyje (t.y. taip toli nuo pačios duomenų bazės), kad norint ja naudotis net nereikia mokėti SQL (OK, OK, SQL visada pravartu mokėti, bet labai paprastiems dalykams gali to ir neprireikti). Taigi išbandymui sugalvojau pasirašyti vartotojų prisijungimo sistemą. Class::DBI priverčia viską apgalvoti ir išdėlioti objektiškai, į atskirus modulius, tad atsiranda krūvos mažų failiukų, kuriuos reikia dėti kažkur į atskirą lib direktoriją. Skaityti toliau…

Sitepoint apie PHP::Strings

Harry Fuecks, PHPPatterns kūrėjas ir sitepoint PHP weblogo savininkas, pastebėjo minėtame webloge mano dabar palaikomą Perlo modulį PHP::Strings. Harry klaidingai mano, jog perlininkai priešiškai nusiteikę prieš PHP dėl to, kad pavydi jam sėkmės. Kiek teko bendrauti su viso pasaulio perlininkais, tai požiūris į PHP visada būdavo neigiamas ne dėl pavydo, o dėl to, kad PHP nelaikoma rimta kalba (dėl tokio įsitikinimo teisingumo, aišku, galima ginčytis, bet enterprise lygyje PHP vis dar neturi tokių stiprių pozicijų kaip Perl, Java ir panašiai). Skaityti toliau…

Santrumpų automatizavimas

Atsibodo kiekvieną kartą darant įrašą visoms santrumpoms <abbr> žymas dėlioti rankomis. Tad pasirašiau Perlinį skriptuką, kuris visą tai atlikea automatiškai. Visą skriptą rašiau troleibuse važiuodamas namo ant Psiono – vat dėl Perlo jį galima mylėti ;-) Šitam automatizavimui išrinkau visas santrumpas, kurios buvo naudotos mano dienoraštyje. Visos jos čia – gal kam pravers. API Application Programmer’s Interface ASCII American Standard Code for Information Interchange CGI Common Gateway Interface CMS Content Management System CPAN Comprehensive Perl Archive Network CSS Cascading Style Sheets CVS Concurrent Version System DDOS Distributed Denial of Service DOS Denial of Service DRM Digital Rights Management DTD Document Type Definition FOAF Friend Of A Friend GPL GNU Public Licence GPS Global Positioning System HTML HyperText Markup Language IP Internet Protocol IRC Internet Relay Chat JAPH Just Another Perl Hacker LCD Liquid Crystal Display LWP Lib-Www Perl MIT Massachusetts Institute of Technology MMS Multimedia Messaging Service PEAR PHP Extension and Application Repository PECL PHP Extension Community Library PHP PHP: Hypertext Preprocessor PMC Perl Magic Cookie POP3 Post Office Protocol version 3 PPM Perl Package Manager RC Release Candidate RDF Resource Description Framework RSS Really Simple Syndication SMTP Simple Mail Transfer Protocol SQL Sequential Query Language TCO Total Cost of Ownership TVS Turinio Valdymo Sistema URL Universal Resource Location W3C World Wide Web Consortium WAP Wireless Application Protocol WML Wireless Markup Language XFN XHTML Friends Network XHTML eXtensible HyperText Markup Language XML eXtensible Markup Language XSS Cross Site Scripting ssh Secure SHell yacc yet another compiler compiler

Sesija baigias, grįžtu internetan

Vakar pagaliau baigėsi kai kurie deadlainai, o šios savaitės pradžioje baigėsi ir sesija, tad galima šiek tiek ramiau grįžti į internetinį pasaulį. Ta proga krūva nuorodų: CSS hacks and filters – daugelio CSS gudrybių rinkinys vienoje vietoje (su labai naudinga lentele, rodančia kokiose naršyklėse jos (ne)veikia) Mezzoblue – wanted: CMS – Dave ieško geros turinio valdymo sistemos, ir gauna daug labai naudingų atsakymų. Web Services Project roles – IBM mano, jog web servisams sukurti reikia viso kaimo darbuotojų. Skaityti toliau…

perl583delta.pod

Kadangi jau turbūt ryt ar poryt bus išleistas pirmas Perl 5.8.3 Release Candidate, tai išverčiau pokyčių sąrašą, kurį galima pamatyti adresu http://moxliukas.esu.as/download/doc/perl583delta.pod

Asmens::Kodas

The URL http://moxliukas.esu.as/download/src/Perl/Asmens-Kodas-0.01.tar.gz has entered CPAN as file: $CPAN/authors/id/K/KU/KUDARASP/Asmens-Kodas-0.01.tar.gz size: 1859 bytes md5: 14269ea9efca41e0559951ac20152858 No action is required on your part Request entered by: KUDARASP (Petras Kudaras) Request entered on: Mon, 29 Dec 2003 09:07:23 GMT Request completed: Mon, 29 Dec 2003 09:09:13 GMT Thanks, -- paused, v460 Reikės dar padaryt normalesnį datų tikrinimą Asmens kodui :/

2003 metų svetainių dizaino klaidos

Jakob Nielsen, kaip ir kiekvienais metais, išleido 10 dažniausių interneto svetainių dizaino klaidų šiais metais. Įdomūs skaitiniai.

Perlo gimtadienis

Pagal perldoc perlhist šiandien yra 16-asis perlo gimtadienis. Šia gimtadienio proga Richard Clamp nubraukė dulkes nuo senojo perlo ir išleido 1.0_16 versiją (su pataisymais, kad kompiliuotųsi ant gcc 3.3)

Perthon

Va ką šiandien užtikau: Posted today on PerlMonks was an interesting tool. Eventually, I hope you Python monkeys will come to your senses and turn to Perl for sanity. To ease such transition, see the Perthon project: /http://perthon.sourceforge.net Now, your Python code can be reborn as the Perl it always should have been. Komentarų turbūt nereikia ;-) Šiaip įdomus projektukas (bet kaip ir dauguma kalbų vertėjų turbūt nelabai pritaikomas praktikoje)

Perlo objektai: antra dalis

Pagalvojimai apie ateitį: geresni konstruktoriai Nors šiuo metu dar gal ir nežinote kas yra paveldimumas, bet kažkada ateityje matyt teks su tuo susidurti. Tam, kad paveldimumas veiktų kaip turėtų, reikia naudoti bless() sudviem argumentais. Antruoju argumentu yra perduodama klasė, į kurią bus „palaiminama“. Tuo pačiu padarysime konstruktorių lankstesnį, kad būtų jį galima iškviesti tiek kaip klasės, tiek kaip ir objekto metodą. T.y. kad būtų galima rašyti: $as = Asmuo->naujas(); $ji = $as->naujas(); Viskas ką mums reikia padaryti, tai patikrinti ar į konstruktorių buvo perduota nuoroda (reference) ar ne. Skaityti toliau…

Perlo Advento kalendorius

Kaip ir pernai metais, Mark Fowler sudarė perlinį advento kaledorių, kuris kiekvieną dieną iki Kalėdų pasakos apie vis naują Perlo modulį ir aiškins kaip jsuo naudotis. Kalendorių galima rasti adresu http://www.perladvent.org/2003/

Perlo objektų pradžiamokslis: pirmoji dalis

Objekto vaizdavimas Dažniausiai Perle Paskalio įrašas arba C struktūra, arba C+ klasė yra saugoma anoniminio asociatyvaus masyvo (hešo) pavidalu. Taip saugoti yra patogu, nes heše galima saugoti neribotą kiekį elementų, kuriuos galima pasiekti per unikalų hešo raktą. Jeigu tik norite kažko panašaus į C struktūrą, tai galima daryti taip: $irasas = { vardas => "Petras", amzius => 21, kolegos => [ "Juozas", "Nikolajus", "Vaidas"], }; Jeigu norite lengviau perskaitomo kodo, galite hešo raktus Skaityti toliau…

Perlinio modulio pavyzdys

Vakar IRC buvau paklaustas, kaip yra daromi objektiniai Perlo moduliai. Parašiau ir paprastą moduliuką, kuris parodo kaip veikia visas Perlo objektiškumas. Štai modulis Modulis.pm: package Modulis; use strict; use warnings; sub naujas { bless {}; } sub vardas { my $self = shift; $_[0] ? $self->{'vardas'} = $_[0] : $self->{'vardas'}; } 1; Modulis prasideda paketo apibrėžimu (package Modulis;) bei aprašo dvi funkcijas (tiksliau vieną funkciją ir vieną metodą). Funkcija naujas sukuria ir grąžina naują objektą Modulis. Skaityti toliau…

Moblogas

Vakar naktį pasidariau moblogą. Tai turbūt vienas iš tų projektų kur dariau nes galiu padaryt, o ne todėl kad reikia. Faktiškai Perlo kodo rašymas visada malonus, net jei ir nepildysiu to moblogo ateityje – iš manęs fotografas tai kaip iš mano bobulės perlininkė. Visam šitam daiktui tiesiog persikopijavau savo svetainės kodą į kitą direktoriją, šiek tiek pataisiau šablonus (bet ne iki galo, nes vakar jau labai norėjosi miego), sukūriau porą SQL lentelių, pataisiau kodą, kad dirbtų su tomis naujomis lentelėmis ir parašiau el. Skaityti toliau…

Įdomūs lingvistiniai pastebėjimai

Pastarosiomis dienomis internete sklando šis tekstas: Aoccdrnig to a rscheearch at an Elingsh uinervtisy, it deosn’t mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht frist and lsat ltteer is at the rghit pclae. The rset can be a toatl mses and you can sitll raed it wouthit a porbelm. Tihs is bcuseae we do not raed ervey lteter by it slef but the wrod as a wlohe. Skaityti toliau…

Kas svarbiausia šablonų varikliams

Nuskaičiau šiandien PHP forume įdomią diskusiją apie tai kas svarbiausia PHP šablonų varikliuose (ačiū scooox už nuorodą). Labiausiai prieštaringų minčių man sukėlė citata O jei template nera svarbiausia greitis… tai kas tada svarbu? Navarotai? Jei taip – tada tu grybas. Tiesą sakant „navarotai“ yra labai svarbu. Ir turbūt svarbiausia (na, jei greitis nėra visiškai šliaužiantis). Gyvename tokiais laikais kai kompiuterio laikas yra pigus, o programuotojų laikas kainuoja brangiai, tad aš geriau rinkčiausi lėtesnę šablonų sistemą (na, ne tris kart lėtesnę, bet tarkim iki 50% lėtesnę) jei su ja man būtų žymiai lengviau programuoti. Skaityti toliau…

Perlo „range“ operatorius

EnC manęs PHP forume paprašė paaiškint, kaip veikia Perlo „range“ operatorius. Nesinori PHP forumą teršti perliniais dalykais, tad bandysiu tai paaiškinti čia. Beje, visa tai ką čia rašau galima rasti Perlo dokumentacijoje (konsolėje tereikia surinkt perldoc perlop). Perlo „range“ operatorius žymimas dviem taškais, ir reiškia faktiškai du dalykus. Pirmoji reikšmė yra labai paprasta – parašius 1..10 gausime reikšmių nuo 1 iki 10 sąrašą (list). Būtent ši operatoriaus reikšmė naudojama masyvų kontekste (list context – kai reikia jog išraiška grąžintų masyvą, o ne skaliarą). Skaityti toliau…

Apache::DBI

Hmm… aišku bėdos su MySQL nesibaigia. To $dbh ||= triuko nepakako, teko skripto gale nutraukinėt ryšį su MySQL naudojant $dbh->disconnect; — tai veikia gerai, bet niekas nebekešuojama. Ir čia į pagalbą atėjo Apache::DBI. Pasirodo užtenka jį užkrauti httpd.conf failiuke ir magiškai visos jungtys su MySQL tampa ‘persistant‘. Smagu ;)

Kas bus po objektinio programavimo?

Žmonės kalba, kad objektinis programavimas pradeda atgyventi. Tai jau praeito dešimtmečio technologija (hm… PHP5 tuo tarpu iš naujo atradinėja objektiškumą), ir reikia ieškoti jai pakaitalų. Na bent jau taip mano American Scientist. Jų straipsnyje sakoma, kad ateitis slypi keistuose dalykuose kaip ‘Pattern oriented programming’, ‘qualities without a name’ ir ‘extreme programming’. Šiaip idėja įdomi. Parašai keletą tų ‘patterns’, ir jie patys susilipdo į programą. Programuotojų rojus? Galbūt. Pažiūrėsim. Tuo tarpu aš einu toliau rašyt makaroniško kodo. Skaityti toliau…

Kodo stiliai

Vat priėjom šiokį tokį ideologinį karą apie teisingą kodo stilių. Aš visad kodą formatavau pagal K&R stilių, nes pats mokiausi programavimo iš jų puikios knygos apie C. Kažkaip kitiem labiau patinka Allman’o stilius, nors man jis per daug vertikaliai išsidėsto. Na ir man reikia 8 tarpų tabo. Čia labai subjektyvu, bet man taip geriausia.

Įprastinių išraiškų straipsnio papildymai

Taip, žinau. Vis neprisiruošiu pabaigti normaliai to straipsnio apie RegExpus. Iki šiol jis buvo labai nepilnas. Šiandien bent jau pabandžiau labai labai (na tikrai jau labai) trumpai sudėti informaciją apie tai, ko dar neminėjau jame. Ten faktiškai gale tik krūva pavyzdžių (netgi ne krūva… tiesiog keletas) dabar. Reikėtų juos aprašyt normaliai. Na o po to reiktų ir antrą dalį parašyt, apie ‘extended’ sintaksę. Ir pritaikyt viską Perlui ;).