2007-10-30

HTML pradžiamokslis

Tema: Piece of code, Daily WTF — Emilis @ 22:41

Netyčia namie radau knygą tokią:

Balčytienė A., Leonavičius G., Stankevičius J., Valavičius E., Žilinskas A.
Informatika. I dalis. Vilnius: “Baltic ECO” leidybos centras, 1997.

“Paprasčiausio puslapio pavyzdys” iš knygos programuotojų džiaugsmui:

Paprasčiausio puslapio pavyzdys

:-)


2007-05-05

“IE bugas” sprendimas

Tema: Piece of code — Emilis @ 14:08

Anksčiau rašiau apie Internet Explorer klaidą su kuria susidūriau — kai dingsta tekstas elemente su background-color CSS stilium.

Radau sprendimą puslapyje: IE CSS bugs when using floats and background-color.

Kartais labai gerai organizacijoje turėti gerų testerių — padeda tiksliau lokalizuoti klaidą ;-) .


2007-04-18

Kaip išlupti lietuviškas raides iš sausainiukų su JavaScript

Tema: Piece of code — Emilis @ 13:02

Kas dar nesupratot, čia įrašas kolegoms programuotojams :-)

Turėjau tokią problemą: reikėjo su JS pasiimti lietuvišką windows-1257 koduotą tekstą iš cookie. Problema tame, kad nuskaitant informaciją iš kukio su JS, vietoj lietuviškų raidžių atsiranda encodinti stringai.

Pavyzdys: PHP kode padarome:

setcookie('kukis', 'ąčęėįšųūž');

Po kukio informacijos nuskaitymo su JavaScript (kurios dėl vietos stokos neaprašinėsiu), gauname:

"%E0%E8%E6%EB%E1%F0%F8%FB%FE"

bandom:

unescape("%E0%E8%E6%EB%E1%F0%F8%FB%FE")

gaunam:

àèæëáðøûþ

blogai, nes reikia:

ąčęėįšųūž

Pasukau galvą ir išsprendžiau:

function fix_lt_chars(str)
{
    var lt_from = Array('%E0', '%E8', '%E6', '%EB', '%E1', '%F0', '%F8', '%FB', '%FE', '%C0', '%C8', '%C6', '%CB', '%C1', '%D0', '%D8', '%DB', '%DE');
    var lt_to = Array('%u0105', '%u010D', '%u0119', '%u0117', '%u012F', '%u0161', '%u0173', '%u016B', '%u017E', '%u0104', '%u010C', '%u0118', '%u0116', '%u012E', '%u0160', '%u0172', '%u016A', '%u017D');

    l = lt_from.length;
    for (i=0;i < l; i++)
    {
        str = str.replace(lt_from[i], lt_to[i]);
    }

    return str;
}

gera_reiksme = unescape(fix_lt_chars("%E0%E8%E6%EB%E1%F0%F8%FB%FE"));

gaunam:

ąčęėįšųūž

Sprendimas bjaurus, bet ką daryti, kai tas kukis viena esminių sistemos dalių, kurios neišeina pakeisti ;) .


2007-03-09

IE bugas

Tema: Piece of code — Emilis @ 15:56

Išsisaugokit kaip HTML failą ir atsidarykit su IE6 (kitų versijų kolkas netikrinau):

<html><head><style type="text/css">

#body { background-color: red; }

</style></head><body>
<div id="body">
<p><h2>this text is not visible</h2></p>
<hr>
</div>
</body></html>

Nekreipkit dėmesio į blogai suformuotą HTML — bet ką išmetus bugas dingsta, o sistemoj kurioj pastebėjau kyla ne vien nuo <p><h2>...</h2></p>.


2006-05-14

Eilinė amerika (PHP)

Tema: Piece of code — Emilis @ 22:59

Paskutiniu metu man labai norėjosi multiple inheritance su PHP.

Tai tiek užkniso, kad prisėdau, pasibandžiau ir atradau, kad bent jau metodus skolintis (ko man iš esmės ir reikėjo) iš ne vienos klasės galima gana paprastai.

Skriptukas pasibandymui jei kam įdomu bus ir pravers:

<?php

class First
{
    var $first_var;

    function echoVar()
    {
        echo “$this->first_var<br>n”;
    }
}

class Second
{
    function echoItalicFirstVar()
    {
        echo “<em>$this->first_var</em><br>n”;
    }

    function echoBoldMyVar()
    {
        echo “<strong>$this->my_var</strong><br>n”;
    }
}

class MyClass extends First
{
    var $my_var;

    function echoMyVar()
    {
        echo “$this->my_var<br>n”;
    }

    // Methods that operate on MyClass    // object attributes from Second class:
    function echoItalicFirstVar() { Second::echoItalicFirstVar(); }
    function echoBoldMyVar() { Second::echoBoldMyVar(); }
}

$obj = &new MyClass();

$obj->first_var = “This is first var.”;
$obj->my_var = “This is my var.”;

$obj->echoVar();
$obj->echoItalicFirstVar();
$obj->echoMyVar();
$obj->echoBoldMyVar();

?>



2006-01-23

Kas tas yr CTLF

Tema: Piece of code — Emilis @ 01:24

Užstrigau su CTLF nauja (beta) versija… Kodas jau virš mėnesio kaip yra, reikia dokumentaciją baigt tvarkyt.

Dar gyvenimas rūpesčių prideda ir atrodo kuo toliau tuo daugiau jų bus… Šiaubaš!

Prasėdėjau kelias valandas, tai sutvarkiau vieną dokumentacijos puslapį (apie direktorijų struktūrą ir ją aprašančias konstantas) ir pusiau paruošiau grafikus puslapiui apie objektų load’inimą:

schema

Paišinuką gaminau su Inkscape, clipartas iš Tango Desktop Project. Kaip smagu opensourcinti :) .

Jei kasnors negalit tvert kaip įdomu tas CTLF, tai tempkitės iš CVS betos source.


2005-12-01

Dar magija su CTLF

Tema: Piece of code — Emilis @ 00:41
  1. Mano paskaitos "Objektų magija su CTLF" PHP konferencijoje 2005 skaidrės:

  2. 2005-11-26 supakavau kolkas naujausią CTLF versiją (alpha-2005-11-26). Siųskitės iš CTLF svetainės.

  3. Ruošiu CTLF beta versiją. "Beta" mano žodyne reiškia, kad nebetrūks featurų, bus ruošiami tik bugfixai iki tokios, kuri jau turi tik nežinomus trūkumus. Štai kas bus betoje:

    • visa konfigūracija bus perkelta į direktoriją system/conf
    • suvienodintas terminų naudojimas kode ir komentaruose: module, object, short object name, long object name, [object] instance name
    • pataisyti kaikurių globalių framework’o kintamųjų vardai, kad labiau atitiktų prasmę
    • TPL_DIR, PAGE_DIR, SCRIPT_DIR konstantos bus panaikintos, o svetainės šablonai, puslapiai ir skriptai perkelti į Site modulio vidų

    Visi šie pakeitimai turėtų patį sistemos veikimą įtakoti labai nežymiai.

Vakar (o gal jau ir užvakar). Sėdėdamas vienas namie supratau žmonių bendravimo naudą. Buvo gera. Dievui garbė.

Kol sėdi ir programini sau vienas, tol viskas gerai… kai pabandai su kuom nors pasišnekėti apie tai ką programini atsiranda daug daugiau minčių… netgi tokių kurios padeda suprasti kaip dar labiau galima pagerinti sistemos dizainą.


2005-05-24

CTLF update 05-23

Tema: Piece of code — Emilis @ 00:30

Sveiki, kolegos, vėl :) ,

Šiektiek aptvarkiau CTLF (CTL Framework) svetainę. Pridėjau daugiau dokumentacijos, logiškiau ją išdėsčiau. Daug ir trūksta, bet tai jau galima po truputį pildyti.

Dar šiektiek nemoku creatinti modulių su linux’iniais CVS klientais, tai kolkas į CVS failų nesukišau, nors iš esmės jie tam jau paruošti (t.y. failų struktūra jau neturėtų keistis, o tik pildytis).

Kadangi dar ankstoka daryti oficialią versiją su tais failais kurie yra (o ir CVS dar neužpildytas), tai kolkas atnaujintą freimworko versiją pasidėjau pas save. Xawiers pageidavimu, formatas zip ;) .

Parsisiuntę ir išsipakavę susikurkite duombazę, pasikonfigūruokite pagal ją ./system/config.inc.php failą. Jei norite pasibandyti shoutbox’ą tai susikelkite į duombazę SQL iš direktorijos ./system/modules/ctlfWeb/instal/ .


2005-05-17

Sukėliau CTLF į SourceForge

Tema: Piece of code — Emilis @ 00:26

CTLF logo

Kolegos PHP programuotojai,

Jūsų dėmesiui sukėliau savo naująjį PHP freimworką (CTLF) į SourceForge.

Labai daug trūksta tekstų puslapiuose kolkas. Visgi beveik visi klausimai jau išspręsti ir trūksta tik pridėti turinį. Taip pat kolkas nesukėliau kodo į CVS ir nesupakavau naujo release’o. Kiek spėjau šiandien — tiek :) .

Jei kas turėsite kokių pastabų, patarimų, norėsite prisidėti — būsiu labai dėkingas.


2005-04-28

CTL Framework

Tema: Piece of code — Emilis @ 23:18

Biškį vieną naktelę gavau keistą žinutę iš vieno kolegos PHP programeriaus… maždaug: “labas, geriu vienas gal nori prisijungt…”

Gerbiami kolegos! Nesiuntinėkite tokių žinučių pirmą valandą nakties silpnų nervų žmonėms :) ). Su liūdna Lietuvos savižudybių statistika ir asmenine depresūchine patirtim bileko gali prisigalvoti…

Visgi tas šiaip pasisėdėjimas naktį visai pravertė… Padiskutavom apie PHP CMS’us ir freimwork’us, asmeninę patirtį… Kaip kurčiau freimworką CMS’ui jei kurčiau jį dabar… Kilo viena kita tikrai gera mintis ir nuojauta, kad gali pavykti tų minčių pagrindu sukurti neblogą sistemėlę.

Po kelių savaičių ieškojimo, mastymo ir projektavimo sistemėlė pagaliau perlipo iš popieriaus į PHP failus. Ta proga siūlau besidomintiems kolegoms susipažinti su pradine versija, kurią patalpinau savo skriptų puslapyje.

Versija labai pradinė (nors pagrindiniai objektai nebeturėtų keistis). Žinoma klaida: turėtų rodyti 3 PHP notice’us, kurie užsiliko dėl mano tingumo redaguoti php.ini failą (apt-get yra labai patogus tinginių įrankis ;) ).

Labai prašau visus, kas tik susidomėsite ir parsisiųsite sistemėlę pabandymui, siųsti pastabas apie jos veikimą ir dokumentaciją man į el.paštą.

  — Sekantis puslapis »