spletnik

spletnik

  • Oglasna sporocila

  • Oglasna sporocila

  • Degrafa in Flex

    Objavil kserks dne 11.01.2009

    http://www.vizualis.si/blog/?p=27

    Objavljeno v Multimediji | Brez komentarjev »

    sneg

    Objavil kserks dne 24.03.2008

    Človeka skoraj kap, ko se zbudi v tole… Circa 15 - 20 cm ga je nasulo.

    Objavljeno v miks | 4 komentarjev »

    tv-nm

    Objavil kserks dne 16.10.2007

    Po nekaj neprespanih nočeh, ko ni bila varna nobena skodelica kave, smo končno naredili “release”.

    http://www.tv-nm.si

    Objavljeno v miks | Brez komentarjev »

    Flex, PHP & JSON

    Objavil kserks dne 26.08.2007

    Izbira Flex tehnologije na client strani je zelo privlačna. To ni edina možnost, je pa vsekakor zelo zanimiva. Predvsem zaradi velike podpore Flash tehnologiji v brskalnikih in zaradi bogate uporabniške izkušnje. V Sloveniji gre ta proces verjetno precej počasneje kot drugje, ampak čas dela tistim v prid, ki se za Flex odločijo. Sun z Javo in Microsoft z Silverlight-om sta malo zaspala, ampak bomo videli… Seveda ne smemo pozabit AJAX-a, katerega lastnik ni nihče in kjer imamo poplavo produktov - komercialnih in zastonjskih - v resnici ugotoviš, da je pravi kaos, ko se poskušaš odločit kaj izbrati.

    Kakorkoli že… tukaj je primer preproste Flex aplikacije… pravzaprav gre za prijavno formo, ki na server strani uporablja PHP. Med sabo pa se ti dve tehnologiji pogovarjata preko JSON-a.

    Torej, kaj hočemo naredit? Končni cilje je prijavni vmesnik, ki od nas zahteva uporabniško ime in geslo, in preveri, če uporabnik obstaja.

    Da to naredimo, najprej potrebujemo seznam uporabnikov, ki se lahko prijavijo. Uporabnike bomo zapisali kar v MySQL tabelo, ki jo preberemo s PHP skripto. Najprej pa je seveda treba narediti tabelo. To naredimo takole:CREATE TABLE `uporabnik` (
    `UPOR_ID` smallint(5) unsigned NOT NULL auto_increment,
    `UPOR_UPORABNIK` varchar(15) NOT NULL default ”,
    `UPOR_GESLO` varchar(15) NOT NULL default ”,
    `UPOR_IME` varchar(30) NOT NULL default ”,
    `UPOR_PRIIMEK` varchar(30) NOT NULL default ”,
    PRIMARY KEY (`UPOR_ID`),
    UNIQUE KEY `UPOR_UPORABNIK` (`UPOR_UPORABNIK`,`UPOR_GESLO`)
    )

    Sedaj lahko vnesem uporabnike (V tem primeru samo enega):

    INSERT INTO uporabnik VALUES (1,’demo’,'demo’,Janez’,'Novak’);

    Ok, sedaj imamo podatke pripravljene in lahko začnemo z razvojem. Najprej se lotimo logike na server strani (PHP).
    PHP skripta bo skrbela za več stvari. Najprej mora dekodirati podatke, ki jih pošljemo o uporabniku (username & pass). Kot rečeno, jih bomo pošiljali v JSON formatu. Nato mora preveriti ali uporabnik obstaja v MySQL tabeli in na podlagi tega, ustrezno javiti uporabniku o uspešni / neuspešni prijavi.

    Torej PHP skripta:

    $user = ”; //MySQL uporabniško ime.
    $pwd = ”; // geslo
    $db = ”; // in ime baze.

    if(isset($_GET['data'])){

    $json = urldecode($_GET['data']);
    $json = str_replace(”\\”,”",$json);
    $data = json_decode($json,true);

    $userName = $data[1];
    $password = $data[0];

    mysql_connect(’localhost’,$user,$pwd);
    mysql_select_db($db) or die(”can not connect!”);

    $query = “SELECT UPOR_ID FROM UPORABNIK WHERE UPOR_UPORABNIK =’” . $userName .
    “‘ AND UPOR_GESLO = ‘” . $password . “‘”;

    $r = mysql_query($query);
    $row = mysql_fetch_assoc($r);

    mysql_close();

    if($row['UPOR_ID'] == null)
    $row = array(”isLogged” => “false”);
    else
    $row = array(”isLogged” => “true”);

    $out_string = trim(json_encode($row));
    $out_string = urlencode($out_string);

    echo $out_string;
    }

    Logika je preprosta: Dekodiramo JSON string, ki ga dobimo iz Flex-a z json_decode metodo (ta metoda je na voljo z PHP 5.2.0 ali več). Z dekodiranega objekta dobimo ven upor. ime in geslo. Priklopimo se na bazo in preverimo ali zahtevani uporabnik obstaja. Kot rezultat prijave, znova sestavimo JSON objekt, ki vsebuje podatek ali je bila prijava uspešna ali ne (”isLogged”) in ga vrnemo Flex-u za nadaljno obdelavo.

    Na client strani (Flex) pa je treba primarno narediti dve stvari. 1. Uporabniški vmesnik in 2. Logiko ki pošilja JSON string na server in ki tudi zna prebrati JSON string iz serverja.

    Flex uporabniški vmesnik:

    <mx:Canvas width=”300″ height=”160″ borderStyle=”none” cornerRadius=”0″ horizontalCenter=”-140″ verticalCenter=”-82″>
    <mx:Panel width=”100%” height=”100%” layout=”absolute” horizontalCenter=”0″ verticalCenter=”0″ title=”Prijava” backgroundColor=”#d4d4d4″ cornerRadius=”8″>
    <mx:Form id=”loginForm” width=”100%”>
    <mx:FormItem label=”Upor. ime:”>
    <mx:TextInput width=”150″ id=”user” />
    </mx:FormItem>
    <mx:FormItem label=”Geslo:”>
    <mx:TextInput displayAsPassword=”true” width=”150″ id=”pwd” />
    </mx:FormItem>
    </mx:Form>
    <mx:ControlBar horizontalAlign=”right”>
    <mx:Label width=”209″ enabled=”true” id=”loginStatus” color=”#804000″/>
    <mx:Button label=”Prijavi” click=”{login()}”>
    </mx:Button>
    </mx:ControlBar>
    </mx:Panel>
    </mx:Canvas>

    … in logika / pamet, napisana v ActionScript-u:

    Najprej je potrebno definirati http service, ki kliče naš PHP skript (login.php).

    <mx:HTTPService useProxy=”false”
    url=”login.php”
    resultFormat=”text”
    result=”getPHPResponse(event)” id=”sendLogin”>
    </mx:HTTPService>

    var dataString:String = JSON.encode(userData);
    dataString = escape(dataString);

    var objSend:Object = new Object();
    objSend.data = dataString;

    sendLogin.send(objSend);

    }

    private function login():void{

    var userData:Array = [user.text,pwd.text];
    var dataString:String = JSON.encode(userData);
    dataString = escape(dataString);

    var objSend:Object = new Object();
    objSend.data = dataString;

    sendLogin.send(objSend);
    }

    private function getPHPResponse(event:ResultEvent):void{

    var responseString:String = String(event.result);
    responseString = unescape(responseString);
    var x:String = “”;
    for(var i:int=0; i < responseString.length; i++){
    if(responseString.charCodeAt(i) == 10 || responseString.charCodeAt(i) == 13){
    responseString.replace(responseString.charAt(i),”");
    }else{
    x += responseString.charAt(i);
    }
    }
    try{
    if(JSON.decode(x).isLogged == ‘true’){
    loginStatus.text = “Prijava uspešna.”;
    }
    else{
    loginStatus.text = “Uporabnik ne obstaja!”;
    }

    }catch(e:Error){
    mx.controls.Alert.show(e.message);
    }

    }
    ]]>
    login funkcija sestavi JSON string in ga pošlje na server PHP skripti. getPHPResponse pa prejme JSON string iz serverja in ima info. ali uporabnik obstaja, t.j. ali je bila prijava uspešna. Celotna Flex aplikacija torej zgleda tako

    Delujoč primer pa je dosegljiv na tem linku: vizualis-demo

    Uporabniško ime : demo
    Geslo : demo

    Objavljeno v miks | 2 komentarjev »

    Če bi bil bog programer

    Objavil kserks dne 11.08.2007

    http://celobox.googlepages.com/god.html

    Powered by ScribeFire.

    Objavljeno v miks | Brez komentarjev »

    UI

    Objavil kserks dne 10.08.2007

    Desktop aplikacije, gledano zgodovinsko, so vedno imele veliko prednost pred spletnimi aplikacijami zaradi bogatih, kompleksnih uporabniških komponent. Desktop aplikacija se tudi nikoli ne “reload-a”, tako kot web aplikacija in upor. takoj dobi željeno informacijo brez čakanja - visoka odzivnost. Nasprotno pa, pri web app. mora uporabnik počakati nalaganje celotne spletne strani ob izvedeni akciji. Zahteva se pošlje na strežnik, ki vrne kompletno novo stran z informacijami ki jih želiš, to pa brskalnik ponovno prikaže. Torej, tukaj se po nepotrebnem pretakajo informacije, ki so že tako in tako na klientu (brskalnik). Bolj učinkovito je, da se zamenja samo tisti del, ki se mora - to pa omogoča XHR (XMLHttpRequestObject) ali AJAX.

    Glavni namen AJAX ali Web 2.0 aplikacij je izboljšana uporabniška izkušnja. Web 2.0 aplikacija mora vsebovati UI kontrole (interface components), ki so enako uporabne in odzivne tistim v desktop okolju. In ne da so samo enake, ampak morajo še razširit uporabnost in funkcionalnost. Tako aplikacija in UI izboljšata interakcijo uporabnika, da postane neprekinjena in intuitivna. To pa na trgu dela produkt, storitev veliko bolj konkurenčen.

    Powered by ScribeFire.

    Objavljeno v Internet, miks | 1 komentar »

    Google car

    Objavil kserks dne 31.07.2007

    StreetView storitev od Google-a na zemljevidu je res fenomenalna. Sprehajaš se lahko po ulicah večjih ameriških mest, kar preko zaslona od doma.
    Pred kratkim pa je bilo na parkirišču, pred Googleplex stavbo, opažena cela armada avtomobilov (Chevy Cobalt), ki imajo na strehi nameščeno nekakšno stojalo za 360° kamero.


    Zgleda, da imajo namen prevozit vsa mesta ali pa jih celo razposlat na druge kontinente (?)

    Powered by ScribeFire.

    Objavljeno v miks | Brez komentarjev »

    Sun

    Objavil kserks dne 29.07.2007

    Kje trenutno sije sonce?

    http://www.daylightmap.com/

    Powered by ScribeFire.

    Objavljeno v miks | Brez komentarjev »

    GWT za NetBeans

    Objavil kserks dne 25.07.2007

    GWT (Google web toolkit) je OpenSource JAVA framework s katerim je enostavno pisati AJAX aplikacije. Uporabljamo lahko poljuben editor v katerem pišemo JAVA kodo in tako gradimo poslovno logiko ter uporabniški vmesnik. Da je vse skupaj še bolj enostavno, nekatera podjetja ponujajo komercialne produkte za vizualno gradnjo uporabniškega vmesnika - kot plugin za Eclipse IDE. No, glede podpore v NetBeans IDE-ju se tudi nekaj dogaja.
    Beta verzija plugin-a in “guide” je na voljo tu: https://gwt4nb.dev.java.net/
    Na NetBeans update centrih sem tudi zasledil beta verzije JavaFX plugin-ov. JavaFX je deklarativni skriptni jezik, ki uporablja Java API in Swing GUI komponente.

    Powered by ScribeFire.

    Objavljeno v miks | Brez komentarjev »

    ISV

    Objavil kserks dne 22.07.2007

    ISV - Independent Software Vendor. Nekdo, ki sam producira programsko opremo in jo tudi trži, prodaja - ISV. Ali je prostor na trgu za kaj takega? Namreč, roko na srce, kakršen koli software že človek / podjetje potrebuje, ga je že nekdo napisal. Verjetno obstaja že za vsako neumnost kak program. Nazadnje sem slišal za takega, ki premika miško, če je ne uporabljaš, zato da se desktop ne zakleni. S tem so ti prikrajšane muke, ponovnega tipkanja gesla, ki je sestavljeno iz takega pravila, da ga moraš zamenjati ravno ko si se ga navadil. In spet smo tam. Buljenje v tipkovnico, kot da jo prvič vidiš, ko se poskušaš prijaviti v sistem. Res. Najraje bi imel eno geslo, za vse!
    Torej, glede ISV-jev. Mislim, da je danes veliko priložnosti in da obstaja prostor. Tehnologija se spreminja. Stare stvari se počnejo na nov način in nastajajo nove storitve, produkti. Dogaja se granulacija.

    Powered by ScribeFire.

    Objavljeno v miks | Brez komentarjev »