Pereiti prie turinio

forgy

Patvirtinti nariai
  • Pranešimai

    385
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    100%

Reputacijos išklotinė

  1. Patinka
    forgy gavo reakciją nuo Splatt Automobiliu plovykla   
    manau jis juokavo :lol:
  2. Patinka
    forgy sureagavo į Mykolas Padėjusiam sugalvoti muzikos tinklapiui domeno pavadinimą - 10 litų   
    Jis užregistravo šį domeną ;) Na bet ir taip yra grįžęs išmestas narys, tai išmečiau lauk :)
  3. Patinka
    forgy gavo reakciją nuo wytas008 WebNuoroda.LT   
    WebNuoroda.LT
     
    www.webnuoroda.lt - tai projektas skirtas populiarinti kitus sukurtus projektus. Įdėdami savo puslapio reklamą Jūs padidinate šansus tapti internete žinomesniais. Projekte yra galimybė įdėtą reklamą redaguoti, pakelti bei ištrinti.
     
    Įdomi bet kokia nuomonė :)
  4. Patinka
    forgy sureagavo į madafakas e-prekyba   
    Matai, nesubrendęs idiotas visą informaciją sugebėjo susirasti pats: yra įstatymai, yra informaciniai bukletai, yra forumai, galų gale yra telefonas. Bet žmogų, kuris nori daryti verslą, tačiau negali elementarių dalykų susižinoti savo jėgomis, nes nesugeba ar tingi, tikrai verta vadinti kelmu. Kai man tos informacijos reikėjo, aš tikrai negalėjau pagalvoti, kad lauksiu dieną-dvi-tris, kol kas nors atsakys - juk įdomu, aktualu, tai ir skaitaisi. Tu klausi, kokios rūšies individualios veiklos tau reikia - reiškia absolučiai nieko nerauki, nes net nesugebi atskirti verslo liudijimo nuo IV. Tai ką jau kalbėti apie tarifus ir panašius dalykus.
     
    Ateityje reiklės sukurti temą "IV ir Verslo liudijimai Kelmai Edition", nes atsibodo nuolat matyti tos informacijos prašančius tinginius. Dar tokius galima vadinti parazitais, nes jie minta kitų sukauptomis žiniomis, naudojasi kitų darbu ir pastangomis sakydami "bet aš gi tik klausiu :'((((((~~~~~~"... Va ir atsakymo vis nesulauki, nes vius jau užkniso tas pats per tą patį.
     
    Sėkmės versle, užkelk daug litų.
  5. Patinka
    forgy sureagavo į AlgirdasD Turistinis Londonas   
    deleted
  6. Patinka
    forgy sureagavo į Diplomatas Per telefoną apgavo ir pavoge pinigus iš banko   
    Daugelis rašote teisingai, bet pastebėjau, kad nemažai diskutuojančių akcentuoja pinigų pervedimo į kitą banko sąskaitą nustatymą, kaip galimą problemos sprendimą. Tačiau, kaip jau kai kurie minėjo, banko sąskaitos, į kurias pervedami apgaulės būdu išvilioti pinigai, dažnai priklauso asocialiems asmenims (pvz., gyvenantiems gatvėje) arba asmenims įkalinimo įstaigose. Be to, kai kuriais atvejaisi dalyvauja tarpininkas (tarpinės banko sąskaitos savininkas), kuris teisme tvirtina, kad nieko nežinojo apie pinigų kilmę ir tiesiog leido pasinaudoti savo banko sąskaita.
     
    Dėl šioje diskusijoje matyto teiginio, kad „įrodyti neturėtų būti sunku, nes Lietuvos teisėsauga įrašinėja visus žmonių pokalbius ir juos saugo pusę metų“, norėčiau pasakyti, kad taip tikrai nėra. Jei taip būtų, įrašas teisme vis tiek nebūtų laikomas teisėtu įrodymu ir jokios juridinės galios neturėtų. Pokalbių klausymasis yra aiškiai apibrėžtas įstatymuose – tam būtina turėti teismo leidimą (priešingu atveju taikomos LR BK numatytos sankcijos), o leidimo klausytis pokalbių gavimo procedūra taip pat nėra paprasta. Todėl dar kartą pasikartosiu, kad šiuo atveju apie jokius pokalbių įrašus negali būti ir kalbos (pokalbio įrašo apskritai nėra).
     
    Kalbant toliau apie pinigų pervedimą į kito asmens banko sąskaitą, teismų praktikoje pasitaiko atvejų, kai nusikaltimą padarę ir įkalinimo įstaigose kalintys asmenys yra išteisinami, nes byloje trūksta įrodymų, pagrindžiančių, kad kaltinamasis, pasinaudojęs aukos duomenimis, atliko finansines operacijas. Kaltinamieji taiko įvairias schemas ir sugalvoja įvairiausių pretekstų.
     
    Žinoma, reikia tikėtis, kad jūsų atvejis bus išspręstas tinkamai ir sėkmingai.
  7. Patinka
    forgy sureagavo į Varle Sveiki, aš Varlė   
    Pasižiūrėjau ankstesnes temas, niekas nuotraukų nekėlė, todėl ir aš neįkėliau. Nenorėjau pasirodyti savimyla... :) http://2.bp.blogspot.com/-T0V5lGp2Flk/UeRQLdhqDeI/AAAAAAAAAFo/89rtOSh2ykI/s1600/5.jpg
  8. Patinka
    forgy gavo reakciją nuo Frozzy Baigta. Doavanoju BoylePoker kortu kalade.   
    Kiškis nusipirko plokštelę kurios vienoje pusėje kaip pasigamti pusryčius o kitoje kaip daryti rytinę mankštą.
    Eidamas namo kiškis krito o plokštelė skilo per pusę. Parėjęs namo blogai suklijavo. Kitą rytą atsikelia ir paleidžia plokštelę:
    - Atsisėskite ant žemės, praskėskite kojas ir plakite kiaušinius kol susidarys putos...
     
    Japonai išrado robotą, kuris gaudo vagis. Japonijoje per 5 min. jis pagavo 100 vagių. JAV per 5 min. jis pagavo 200 vagių. Lietuvoje per 5 min. pavogė robotą.
     
    Chuckas Norrisas susitinka David Guetta ir klausia:
    - Ką tu turėjai galvoje sakydamas: "The world is mine"?
     
    Pasimatymas. Sėdi mergina ir vaikinas. Staiga mergina "pabezda" ir sako:
    - Norėčiau, kad tai liktų tik tarp mūsų...
    - O aš norėčiau, kad išsisklaidytų, - atsako vaikinas.
  9. Patinka
    forgy gavo reakciją nuo Frozzy Baigta. Doavanoju BoylePoker kortu kalade.   
    Kiškis nusipirko plokštelę kurios vienoje pusėje kaip pasigamti pusryčius o kitoje kaip daryti rytinę mankštą.
    Eidamas namo kiškis krito o plokštelė skilo per pusę. Parėjęs namo blogai suklijavo. Kitą rytą atsikelia ir paleidžia plokštelę:
    - Atsisėskite ant žemės, praskėskite kojas ir plakite kiaušinius kol susidarys putos...
     
    Japonai išrado robotą, kuris gaudo vagis. Japonijoje per 5 min. jis pagavo 100 vagių. JAV per 5 min. jis pagavo 200 vagių. Lietuvoje per 5 min. pavogė robotą.
     
    Chuckas Norrisas susitinka David Guetta ir klausia:
    - Ką tu turėjai galvoje sakydamas: "The world is mine"?
     
    Pasimatymas. Sėdi mergina ir vaikinas. Staiga mergina "pabezda" ir sako:
    - Norėčiau, kad tai liktų tik tarp mūsų...
    - O aš norėčiau, kad išsisklaidytų, - atsako vaikinas.
  10. Patinka
    forgy sureagavo į Jackass Baigta. Doavanoju BoylePoker kortu kalade.   
    Geria degtinę zuikis, vilkas, ir vėžlys. Nu ir baigiasi jiems ta degtinė, duoda vėžliui pinigų, ir liepia parnešti dar degtinės. Nu ir laukia valandą, laukia dvi, tris. Zuikis prabyla :
     
    - Nu bl*, pasiuntėm vėžlį degtinės, dabar lauksim savaitę.
     
    Iš už kampo vėžlio balsas :
     
    - bl*, vyrai jei pyzdavositės išvis neisiu
  11. Patinka
    forgy sureagavo į ReikiaPuslapio Mano keturios e-knygos apie web-projektus - nuo šiol NEMOKAMAI   
    Nuo 2008 metų turiu tokį tinklaraštį skaitykit.lt, į kurį jau senokai neberašau ir nebeplanuoju - pasikeitė prioritetai.
     
    Jo platformoje buvau parašęs keturias elektronines knygas, kurias bandžiau ten pardavinėti, ir nuo šiandien nusprendžiau tiesiog dalinti jas nemokamai. Visiems. Be jokių registracijų ar mokėjimų. Tiesiog.
     
    Knygos yra:

    "Kaip kurti web-projektus"
    Knyga tiems, kurie nori kurti savo projektą internete – ar tai butu web-verslas, ar tiesiog bendruomenės svetainė, ar savo sumanytas laisvalaikio portalas. 50 patarimų iš realios 10 metų patirties – po vieną A4 formato lapą kiekvienam patarimui.
    "Pusę metų dirbu sau"
    Nori išsivaduoti iš darbo ofise ir turėti laisvės? Ar vilioja žodis “freelanceris”? Tada paskaityk, kaip sekėsi man šiame kelyje – knygoje papasakosiu įspūdžius iš pirmojo pusmečio.
    "CodeIgniter: nuo ABC iki pirmo web-projekto"
    CodeIgniter yra vienas iš populiariausių framework’ų PHP programavimo kalbai. Jis gali padėti programuotojams greičiau sudėlioti projekto griaučius ir struktūrizuoti kodą, o taip pat turi labai daug pagalbinių bibliotekų ir funkcijų. Apie visa tai – šioje knygoje, kurios pabaigoje bus sukurtas realus web-projektas.
    "PHP Pamokos Pradedantiesiems"
    Ši knyga skirta tiems, kas nori pradėti kurti tinklalapius ir tam panaudoti PHP programavimo kalbą. Pasakojama viskas nuo pagrindų – kokioje programoje rašyti PHP programinį kodą, kas yra kintamieji, sąlygos sakiniai, ciklai, masyvai ir t.t. Iš viso yra 16 skyrių, po kurių perskaitymo galėsite sukurti savo pirmąjį PHP projektą.

     
    Kur parsisiųsti: šiuo adresu http://www.skaitykit.lt/knygos
     
    Kaip man sekėsi jas pardavinėti:
     
    Įdomumo dėlei, papasakosiu apie skaičius. Pirmą e-knygą išleidau dar 2010 metais, ir uždėjau simbolinę kainą - 2 Lt. Vėliau už panašią kainą išėjo antra ir trečia knyga, vėliau ir ketvirta. Vėliau pakėliau kainą iki 5 Lt (kas vis tiek yra simboliška). Tikslas buvo ne užsidirbti pinigų, bet uždėti bent kažkokį mokėjimą - neatiduoti savo "žinių" nemokamai.
     
    Pardavimų rezultatai - iš visų knygų kartu sudėjus ir atskaičiavus įvairius mokesčius, uždirbau apie 500 Lt. Tai nė iš tolo neatperka laiko, skirto jų parašymui, bet už tai jų pagalba radau ne vieną rimtą klientą web-programavimo darbams, taip pat ir galėjau lengviau patarti kitiems - tiesiog pacituodavau skyrelį iš savo knygos.
     
    Kodėl dabar nusprendžiau dalinti nemokamai - kelios priežastys: visų pirma, įsitikinau, kad Lietuvoje e-knygos yra mažai perkamos ir mažai skaitomos (na, ir popierinėms knygoms irgi sunkūs laikai). Kitas dalykas - principas "be expensive or be free": geriau tegul knygos būna nemokamos, tada daugiau žmonių perskaitys, ir teoriškai net jei ir vienas iš jų norės su manimi bendradarbiauti (ar kartu daryti kokį projektą, ar užsakyti mano paslaugas), tai apsimokės labiau nei tie keli litai "ant alaus".
     
    Tai jei kas iš jūsų turi idėją rašyti e-knygą ir ją pardavinėti dėl pinigų - patariu persigalvoti ir nuveikti kažką naudingiau.
    Anyway, gero skaitymo!
  12. Patinka
    forgy gavo reakciją nuo ModestasV Renkuosi plansetini kompiuteri.   
    nieks ten nelagina, viskas tvarkoj, pats tokį turiu :)
  13. Patinka
    forgy gavo reakciją nuo Depy El. paslaugų verslas - ar reikia mokėti mokesčius?   
    tai aišku, kad reikia :)
  14. Patinka
    forgy sureagavo į Gugiss Norite susikurti chat'ą?   
    Node.js yra įrankis, kurio pagalba galima sukurti serverius įvairiom web aplikacijoms ar žaidimams naudojant JavaScript programavimo kalbą.
    Viskas vyksta realiu laiku t.y. atnaujinimus siunčiamus iš serverio vartotojas gauna akimirksniu. Ir čia Ajax'as ne prie ko - Node.js veikia per WebSocket'us. Todėl norint testuoti serverį reikalinga moderni naršyklė palaikanti WebSocket'us. WebSocket'us palaiko ir dauguma mobilių įrenginių, todėl dėl to nereikia jaudintis.
    Supažindinsiu jus su Node.js pamokydamas kaip galima sukurti paprastą web chat'ą (tiek iš serverio tiek iš vartotojo pusės) Windows aplinkoje.
     
    Pasiruošimas
    Pirmiausia jums reikės iš čia http://nodejs.org/ parsisiųsti ir įsidiegti patį Node.JS įrankį.
    Node.js instaliacijos kataloge rasite programą (.bat failą) pavadinimu npm ji skirta papildomų bibliotekų parsiuntimui ir instaliavimui, tačiau ją paleisti galima tik per komandinę eilutę.
    Taigi jums reikės papildomos bibliotekos (labai naudingos ir palengvinančios darbą) Socket.IO.
     
    Socket.io instaliavimas:
    1. Atsidarius Node.js instaliacijos aplanką į adreso lauką įrašyti "cmd" ir spausti ENTER
    2. Atsidariusioje konsolėje įrašykite "npm install socket.io" (be kabučių)
    3. Kai instaliacija baigsis galite uždaryti konsolę
    http://www.part.lt/img/b9964fdb4cd608ccc83999880a2c2bd3692.jpg
    http://www.part.lt/img/2acd782f1dfd0f7c47717dc2dda03761115.jpg
     
    Darbas su Node.js ir Socket.IO
    Testas
    Dabar, kai jau įdiegėte reikiamus įrankius galite ištestuoti kaip jie veikia.
    Tam pačiame kataloge sukurkite betkokį failą su .js galūne pvz. "chat.js". Atidarykite sukurtą failą ir yrašykite pirmąją kodo eilutę:

    var io = require('socket.io').listen(8000);
    Ši eilutė liepia sukurti serverį 8000 porte.
    Ar viskas tvarkoje galite ištestuoti sukurtą .js failą tiesiog "užvilkę" an node programos.
    http://www.part.lt/img/d959e80a53a652d583cb1fae2d038d89139.jpg
    Atsivers konsolė, jeigu ji iš karto neišsijungs, reiškias viskas gerai. Naršyklės lange suvedę "http://localhost:8000/" galėsite išvysti pasveikinimą:
     
    Įvykiai ir prižiūrėtojai
    O dabar pradėsime sunkiąją dalį.
    Pirmą norėčiau paaiškinti terminologiją. Kas yra socket'ai nepasakosiu (galite pasiskaityti čia http://en.wikipedia.org/wiki/Network_socket).
    Papasakosiu apie event'us (įvykius). Na trumpai tariant įvykiai yra įvykiai :D t.y. tai kas įvyksta programoje (pvz. serveris iš vartotojo gauna komandą "labas"). Programa turi ką nors atsakyti į įvykį, todėl jiems (įvykiams) reikia priskirti prižiūrėtoją (event listener/handler).
    Įvykio prižiūrėtojas yra paprasčiausia funkcija (o jeigu nežinot kas yra funkcijos, tai ne ten papuolėt). Prižiūrėtoją įvykiui priskirti galima dviem būdais.
     

    socket.on('labas', function(){ console.log("LABAS"); });
    arba
     

    function labasFunkcija(){ console.log("LABAS"); } socket.on('labas', labasFunkcija);
    Šis prižiūrėtojas iš vartotojo gavęs komandą "labas" konsolės lange parašys "LABAS". Tačiau šio įvykio mes nenaudosim.
     
    Serveris
    Kadangi papasakojau apie įvykius galima judėti toliau. Kol kas kode turime tik vieną eilutę, kurioje aprašytas kintamasis "io". Šis kintamasis laukia kokių nors įvykių (tiksliau ne kintamasis, o jam priskirtas objektas), todėl mes turime jiems priskirti prižiūrėtojus.
    Pirmasis įvykis kurį aprašysime tai kai vartotojas bando prisijungti prie serverio. Šio įvykio prižiūrėtoją galime vadinti bosu, nes jis priskirs prižiūrėtojus kitiems įvykiams.

    io.sockets.on('connection', function (socket) { // kitas įvykis // dar vienas įvykis });
    Šiame pratime naudosime dar du įvykius t.y. "login" ir "message". Beje įvykius galite pavadinti kaip norite, čia pasirinkimo laisvė.
     
    Taigi antrasis prižiūrėtojas atsakys už vartotojo vardo pasirinkimą. Vartotojui sėkmingai prisijungus prie serverio jis turės įrašyti savo vardą. Pasirinkus vardą serveriui siunčiama komanda "login" kartu su pasirinktu vardu.
    O tuo tarpu serveryje priskirtas prižiūrėtojas laukia šio įvykio:

    socket.on('login', function(data){ // Kai serveris priima komandą "login" iš vartotojo (kintamasis "data" yra gauti duomenys iš vartotjo) var status = 0; // Kintamasis status bus siunčiamas vartotojui po to kai serveris patikrins jo atsiųstus duomenis if(data.name.length == 0){ // Jeigu vartotojas neįvedė prisijungimo vardo status = 1; } else { var clients = io.sockets.clients(); // Gaunamas prisijungusių vartotojų sąrašas for(var i = 0; i < clients.length; i++){ // Tikrinami visi prisijungė vartotojai if(clients[i].user && clients[i].user.toLowerCase() == data.name.toLowerCase()){ // Tikrinama ar pasirinktas vartotojo vardas yra užimtas status = 2; break; } } } if(status == 0) socket.user = data.name; // Jeigu pasirinktas vartotojo vardas yra prieinamas socket'ui priskiriamas "user" kintamasis socket.emit('login', {status: status}); // Vartotojui siunčiama komanda "login" su kintamuoju "status" });
    Kaip pastebėjote (tikiuosi) šis prižiūrėtojas turi argumentą "data" t.y. kartu su įvykiu iš vartotojo gauti duomenys, šiuo atveju vartotojo vardas. Duomenys pateikiami json formatu, tai reiškia, kad:

    data = {name: <vardas>}
    Tikiuosi kad pastebėjot ir šią eilutę:

    socket.emit('login', {status: status});
    Ši eilutė sukuria įvykį vartotojui. Tai reiškia, kad vartotojo (naršyklės) pusėje taip pat laukiama įvykių. Taigi siunčiama komanda "login", o ją priims vartotojo pusėje esantis prižiūrėtojas, bet apie tai vėliau.
    Ir trečiasis, paskutinysis prižiūrėtojas - atsakingas už vartotojo siunčiamų žinučių priėmimą:

    socket.on('message', function(data){ // Kai vartotojas parašo žinutę var clients = io.sockets.clients(); for(var i = 0; i < clients.length; i++){ // Tikrinami visi prisijungė vartotojai if(clients[i].user){ // Tikrinama ar vartotojas turi prisijungimo vardą clients[i].emit('message', {user: socket.user, message: data.message}); // Siunčiama žinutė vartotojui } } });
    Jeigu nesupratot ką daro šis prižiūrėtojas pasakysiu trumpai. Jis visas gaunamas žinutes iš vieno vartotojo persiunčia visiems kitiems.
    Dabar jūsų kodas turėtų atrodyti taip:

    var io = require('socket.io').listen(8000); // Sukuriamas serveris console.log(io.version); io.sockets.on('connection', function (socket) { // Kai vartotojas prisijungia prie serverio socket.on('login', function(data){ // Kai serveris priima komandą "login" iš vartotojo (kintamasis "data" yra gauti duomenys iš vartotjo) var status = 0; // Kintamasis status bus siunčiamas vartotojui po to kai serveris patikrins jo atsiųstus duomenis if(data.name.length == 0){ // Jeigu vartotojas neįvedė prisijungimo vardo status = 1; } else { var clients = io.sockets.clients(); // Gaunamas prisijungusių vartotojų sąrašas for(var i = 0; i < clients.length; i++){ // Tikrinami visi prisijungė vartotojai if(clients[i].user && clients[i].user.toLowerCase() == data.name.toLowerCase()){ // Tikrinama ar pasirinktas vartotojo vardas yra užimtas status = 2; break; } } } if(status == 0) socket.user = data.name; // Jeigu pasirinktas vartotojo vardas yra prieinamas socket'ui priskiriamas "user" kintamasis socket.emit('login', {status: status}); // Vartotojui siunčiama komanda "login" su kintamuoju "status" }); socket.on('message', function(data){ // Kai vartotojas parašo žinutę var clients = io.sockets.clients(); for(var i = 0; i < clients.length; i++){ // Tikrinami visi prisijungė vartotojai if(clients[i].user){ // Tikrinama ar vartotojas turi prisijungimo vardą clients[i].emit('message', {user: socket.user, message: data.message}); // Siunčiama žinutė vartotojui } } }); });
    Serverio kodas baigtas, todėl jau galite jį paleisti kaip mokiau.
     
    Pabaiga
    Pagaliau priėjome vartotojo pusę. Pabaiga labai arti, nes aš tiesiog jums pateiksiu "gatavą" kodą. Jame nieko ko nežinote nėra.
    Kaip ir serverio pusėje yra priskirti prižiūrėtojai ir paprastos jQuery funkcijos skirtos gautiems duomenims manipuliuoti. Kad jums būtų lengviau suprasti JavaScript faile pakomentavau beveik kiekvieną eilutę.
    Taigi klientą sudaro 3 failai (html, css ir js):
    index.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Įspudingas chatas</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> <script src="script.js"></script> <script src="http://78.62.160.169:8000/socket.io/socket.io.js"></script> <link href="styles.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> </head> <body> <div class="modal">Jungiamasi prie serverio...</div> <div class="overlay"></div> <table width="100%" border="1" cellspacing="5" cellpadding="0"> <tr> <td id="output"></td> </tr> <tr height="20"> <td><input name="message" type="text" id="input"/></td> </tr> </table> </body> </html>
     
    styles.css

    @charset "utf-8"; html, body{ font-family: Verdana, Geneva, sans-serif; font-size: 14px; margin:0; height: 100%; /* real browsers */ } table{ display: none; height:100%; } table td{ vertical-align: top; } p{ margin: 0; } #input{ height:20px; margin:0; border:0; width:100%; } #input:focus{ background:#E1F5A9; outline: none; } #output{ height:100%; overflow-y:scroll; } .overlay{ width: 100%; height: 100%; display: block; position:absolute; top: 0; background:#ccc; opacity: 0.5; z-index: 1; } .modal{ text-align: center; line-height: 100px; height: 100px; width: 250px; display: block; position: absolute; background: #fff; border: 1px solid #ccc; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; z-index: 2; top:0; bottom: 0; left: 0; right: 0; margin: auto; } .modal input{ margin-top: 40px; }
     
    script.js

    var socket; $(document).ready(function(e) { socket = io.connect("http://78.62.160.169:8000/"); // Jungiasi prie serverio // Priskiriami įvykių prižiūrėtojai socket.on("connect", connected); // Įvykis "connect" įvyksta kai vartotojas prisijungia prie serverio socket.on("login", login); socket.on("disconnect", disconnect); // Įvykis "connected" įvyksta kai nutrūksta vartotojo ryšys su serveriu }); //Įvykio "connected" prižiūrėtojas function connected(){ var text = $("<input>", {type: "text", placeholder: "Vardas"}); // Sukuriamas teksto laukas var button = $("<input>", {type: "submit", value: "Tęsti"}); // Sukuriamas mygtukas $(".modal").html([text, button]); // Sukurti elementai priskiriami "modal" klasę turinčiam elementui button.on("click", function(){ // Priskiariamas mygtuko paspaudimo įvykio prižiūrėtojas socket.emit("login", {name: text.val()}); // Nuspaudus mygtuka į serverį siunčiama komanda kurioje nurodytas vartotojo įvestas vardas }); } // Įvykio "login" prižiūrėtojas function login(data){ switch(data.status){ // Tikrinami duomenys iš serverio, kurie gaunami po bandymo prisijungti su pasirinktu vartotojo vardu case 0: // Jeigu data.status = 0 init(); // Vykdoma "init" funkcija break; case 1: // Jeigu data.status = 1 alert("Įvesk vardą!"); // Iššoka "alert" lentelė break; case 2: // Jeigu data.status = 2 alert("Šis vardas yra užimtas"); // Iššoka "alert" lentelė break; } } // Funkcija kuri vykdoma jeigu pavyko prisijungti su pasirinktu vartotojo vardu function init(){ $(".modal, .overlay").remove(); // Sunaikinami elementai kurie turi "modal" arba "overlay" klasę (prisijungimo lentelė) $("table").show(); // Atslepiama lentelė (chato template'as) socket.on("message", message); // Priskiriamas įvykio prižiūrėtojas apdorojantis duomenis, kurie gaunami iš serverio, kai kas nors parašo žinutę chat'e $("#input").on("keypress", function(e){ // Priskiriamas klaviatūros klavišo paspaudimo įvykio prižiūrėtojas if(e.keyCode == 13 && $(this).val().length != 0){ // Jeigu nuspausto mygtuko kodas yra 13 (kodas 13 yra ENTER mygtukas) bei žinutės įvedimo laukas nėra tuščias socket.emit("message", {message: $(this).val()}); // Žinutė išsiunčiama į serverį $(this).val(""); // Išvalomas žinutės įvedimo laukas } }); } // Įvykio "message" prižiūrėtojas function message(data){ $("#output").append("<p><b>"+data.user+":</b> "+data.message+"</p>"); // Žinutę atspausdina "output" elemente (pirmoje lentelės eilutėje) } // Įvykio "disconnect" prižiūrėtojas function disconnect(){ socket.removeListener("message", message); // Sunaikina įvykio "message" prižiūrėtoją $("table").hide(); // Paslepia lentelę $("#output").empty(); // Išvalo chat'ą; $("#input").val(""); // Išvalo žinutės įvedimo lauką var modal = $("<div>", {class: "modal", html: "Jungiamasi prie serverio..."}); // Sukuria "modal" elementą var overlay = $("<div>", {class: "overlay"}); // Sukuria "overlay" elementą $("body").append([overlay, modal]); // Sukurtus elementus priskiria "body" elementui }
     

    Šiuos failus sudėkite į vieną katalogą
    Paleiskite serverį
    Atsidarykite index.html failą
    Susitepkit sumuštinį
    Atimkit močiutės pensiją
    Iškirskit kentą

     
    ČIA GALIMA IŠBANDYTI VEIKIANTĮ CHAT'Ą
  15. Patinka
    forgy sureagavo į adexas „Darbiečiai“ pripažinti kaltais: V. Uspaskichas 4 m. sės į kalėjimą   
    grynai politinis susidorojimas. bande zmogus is idejos kazka daryti bet isisaknijusi sutve sutrype su zememis. reikia buti aklais ar durnais jei nematyti kas per zaidimai cia vyksta. na bet aisku ka cia su jumis delfio apsiskaiciusiais bepasigyncysi, jei delfis parase tai tiesiai dievui i ausi, w/e prasmirkit ;)
  16. Patinka
    forgy gavo reakciją nuo qutwala sveiki   
    pasimetęs aplinkoje ir pasaulyje :lol:
  17. Patinka
    forgy gavo reakciją nuo KyCaS Ką manot apie šį planšetinį   
    Neseniai irgi nusipirkau prestigio kaip minėjai tokį patį. Na ką galiu pasakyti, kaip už tokią kainą tai man atrodo geras variantas. Kolkas viskas sklandžiai veikia, nelagina. Tik nesugalvok atsinaujinti į 4.1 versiją, nes užsilaginsi negyvai. Gali pasižiūrėti kaip lagina: http://www.youtube.com/watch?v=djG33r2WCg8 :)
  18. Patinka
    forgy gavo reakciją nuo KyCaS Ką manot apie šį planšetinį   
    Neseniai irgi nusipirkau prestigio kaip minėjai tokį patį. Na ką galiu pasakyti, kaip už tokią kainą tai man atrodo geras variantas. Kolkas viskas sklandžiai veikia, nelagina. Tik nesugalvok atsinaujinti į 4.1 versiją, nes užsilaginsi negyvai. Gali pasižiūrėti kaip lagina: http://www.youtube.com/watch?v=djG33r2WCg8 :)
  19. Patinka
    forgy sureagavo į Programmer Įdomios tų paauglių mintys   
    Čia kažkada mano panai rašytas eilėraštis, tiesa, nepilnas, nes išsitrynė :D
     
    Aš tavo hard diskas,
    Tu mano esmė,
    Aš tau firewall'as,
    Jei kyla grėsmė.
     
    Tu mano vaizduškė,
    Ryškiau už anas,
    Kai prisiconnectini,
    Rodo šviesas.
     
    Tu kaip ramų kaulas,
    Papildai mane,
    Iš karto ryškėja
    Šviesa ekrane.
     
    Užpildai mintis man,
    Kaip system32,
    Be taves aš niekas,
    Tu kaip CPU.
     
    Toliau nebėra :D
  20. Patinka
    forgy sureagavo į Arnas PHP MVC, kaip tai veikia?   
    Sveiki, manau daug kam bus aktualu sužinoti kas tas MVC ir kaip jis veikia, kadangi dar dauguma programuoja naudojant PLAIN PHP , tai siūlau perbėgti ant MVC principo ir palengvinti darbą visiems programuotojams, kurie dirbs su Jūsų kodu :)
     
    darbą apžvelgsiu su CodeIgniter framework, tai paprasčiausias framework kiek žinau ir gana lengva jį išmokti, dėkoju Karoliui, kad mane išmokė :D
     
    Pirmiausia, tai kas yra tas MVC?
     
    Taip vadinasi principas, kuriuo paremta CodeIgniter sistema, kaip ir dauguma kitų
    profesionalių framework’ų. Esmė yra tokia, kad visas projekto veikimas išskiriamas į tris
    skiltis:
    Models – failai, kuriuose sudėta visa web-projekto logika ir darbas su duomenimis;
    Views – failai, kurie atsakingi už galutinio HTML teksto atvaizdavimą į naršyklę;
    Controllers – failai, kurie kreipiasi į Model, paima duomenis ir perduoda į View, kad
    atvaizduotų tekstą.
     
    Kaip veikia MVC sistema?
     
    ● Models – failai, kuriuose sudėta visa web-projekto logika ir darbas su
    duomenimis;
    ● Views – failai, kurie atsakingi už galutinio HTML teksto atvaizdavimą į naršyklę;
    ● Controllers – failai, kurie kreipiasi į Model, paima duomenis ir perduoda į View,
    kad atvaizduotų tekstą.
     
     
    Kaip išlaikyti struktūrą ir kodėl reikia ją išlaikyti?
     
    Views:
    1. Nedarykite jokių veiksmų su duomenų baze
    2. Nenaudokite sudėtingų konstrukcijų – tik IF sąlygos sakinius ir ciklus
     
    Controllers:
    1. Neturi būti HTML kodo
    2. Neturi būti jokių tiesioginių veiksmų su duomenų baze.
     
    Models:
    1. Neturi būti HTML kodo
     
    Bet čia yra ir gerų savybių:
     
    Views:
    1. Galima skaidyti HTML kodą į kelis skirtingus Views
    2. Galima naudoti IF sąlygos sakinius ir ciklus
     
    Controllers:
    1. Tai yra tarpinė grandis tarp DB duomenų ir jų išvedimo į View
    2. Čia reikia pritaikyti logiką visiems duomenims ir atlikti veiksmus su jais
    3. Iš čia iškviečiami Models metodai duomenų ištraukimui/išsaugojimui
    4. Čia apdorojamos klaidos ir klaidų pranešimai
     
    Models:
    1. Apdoroja gautus duomenis iš DB, bet sudėtingesnius veiksmus geriau palikti
    Controlleriui
    2. “Pagauna” klaidas ir persiunčia jas į Controller
    3. Duomenų įvedimo patikrinimas vyksta būtent čia
     
     
    Mažytis pavyzdys, tai paprastas skaičiavimas, kuris parodys rezultatą:
     
    pirmiausia tai susikuriam Models (šio framework viduje jį rasit: application/models/) failą ir pavadinam jį skaiciavimai_model.php
     

    class Skaiciavimai_model extends CI_Model { function __construct() { parent::__construct(); } function Veiksmas($a, $b) { $data['veiksmas'] = $a + $b; $data['masyvas'] = array( "true" => "Atsakymas daugiau nei 10", "false" => "Atsakymas mažiau nei 10"); if($data['veiksmas'] >= 10) $result['atsakymas'] = $data['masyvas']['true']; else $result['atsakymas'] = $data['masyvas']['false']; return $result; } }
     
    Kadangi jau turime modelį, kuris atlieka loginę užduotį, laikas susikurti controller'į, kuris tai apdoros ir perduos informaciją į views atvaizdavimui. Susikuriam skaiciavimai.php kataloge controllers (application/controllers):
     

    class Skaiciavimai extends CI_Controller { public function index() { $this->load->model('Skaiciavimai_model'); $array['rezultatas'] = $this->Skaiciavimai_model->Veiksmas(5, 4); $this->load->view('main_view', $array); } }
     
    Na ir paskutinė dalis tai views, čia turim išsivesti mūsų fją. Pas mane pagrindinis views failas yra main_view.php, kaip matėt į jį ir perdaviau controllerio užklausą.
     

    <html> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <head><title>Skaičiuojam</title></head> <body> <?=$rezultatas['atsakymas'];?> </body></html>
     
    šiuo atveju mums atspausdins: Atsakymas mažiau nei 10.
     
    Tai tik mažytė dalis viso framework, bet esmę galima suprast, jeigu kas nežinot kaip susikurti views kataloge failą, kad einant jūsų adresu jį nuskaitytų kaip pagrindinį išvedimo failą, tai eikite į config/routes.php , susiraskit tokią eilutę ir ją pakeiskite:
     

    $route['default_controller'] = "welcome"; // tai dažniausiai būna default nustatyta $route['default_controller'] = "skaiciavimai"; // į tai reikia pasikeisti ir nepamirškit, kad jūsų controlleris turi vadintis "skaiciavimai.php"
     
    čia kaip ir viskas, esmę galima suprasti iš šių pavyzdžių. Rėmiausi medžiagą, kurią sudarė Povilas Širvinskas, pavyzdžiai mano, tad jei pamatėt klaidą, pasakykit :) galit ir papildyti jei kas ne taip, arba klauskit, pabandysiu parašyti kažką :D dar vėliau tikriausiai pridėsiu pvz kaip dirbti su duomenų baze. Atsisiųsti šį framework galite čia: http://ellislab.com/codeigniter
     
    Prisegsiu knygą, pirktą iš šio forumo nario "programmer007" jei neklystu, nes ne aš pirkau ją, bet ten abstu informacijos, kaip susikurti svetainę naudojant CI framework, tikiuosi nesupyks labai :D
     
    codeigniter-knyga.zip
     
    Ačiū už komentarus
     
    P.s: kas nežino, yra toks tinklapis 3dev.lt tai ten buvo kažkada visa reikiama info apie MVC, bet kažkodėl užsidarė, o youtube įrašai dingo. Žinau, kad įrašų savininkas buvo šio forumo narys, tad jei yra galimybė ir TU dabar skaitai šį postą, atsiųsk man tuos video, aš juos vėl sukelsiu į youtube ir tai tikrai bus geros pamokos pradedantiesiems ir ne tik
  21. Patinka
    forgy sureagavo į Mergytee Sveiki, esu Laima.:)   
    Čia užsiregistravau norėdama sužinoti jūsų nuomone.:) Ir gauti patarimų. Esu 10-tokė, Dabar paskutinis mokslo metų mėnesis. Kitais metais planuoju stoti į profesine mokykla . Į siuvėjas- dizaineres. Gal galite patarti ar verta?:)
  22. Patinka
    forgy sureagavo į EdvinasJ [PHP][Class]Kaip veikia klasės?   
    Pasistengsiu supažindinti su PHP Class, supažindinsiu su pagrindiniais dalykais.
     
    1. Šiek tiek apie struktūra
     
    __construct - Ši funkcija iškviečiama, kai, tik paleidžiama klasė.
    __destruct - Funkcija paleidžiama kai klasė yra užbaigiama.
     
    Pavyzdys:

    <?php class labadiena{ function __construct(){ echo 'Laba'; } function __destruct(){ echo 'diena'; } } $labadiena = new labadiena(); ?>
     
    Paleidus matysime - Labadiena
     
     
    Public - Prieinama už klasės ribų
    Private - Prieinama tik klasėje
    Protected - Prieinama tik klasėse
    Pavyzdys:
     

    <?php class privpub{ private function privatu(){ echo 'Private naudojama tik pačioje klasėje!'; } public function sveiki_visi(){ echo 'Public galima naudoti bet kur'; } public function rodom_private(){ $this->privatu(); } } $privpub = new privpub(); $privpub->privatu(); $privpub->sveiki_visi(); $privpub->rodom_private(); ?>
     
    $privpub->privatu(); Gausime klaidą - Call to private method privpub::privatu() from context
     
    $privpub->sveiki_visi(); Gausime tekstą - Public galima naudoti bet kur
     
    $privpub->rodom_private(); Parodys tai, kas yra mūsų Private funkcijoje, kurią galime paleisti tik klasėje. Gausime tekstą - Private naudojama tik pačioje klasėje!
     
     
    Dviejų klasių sujungimas.
    Extends - Sujungiamos dvi klasės
    Pavyzdys:
    Turime failus:
    vienas.php
    du.php
     
    Vienas.php failas turi tokią klasę:

    <?php class vienas{ function kitas_failas(){ echo 'Šis tekstas gautas iš kito failo!'; } } ?>
     
    du.php failas turi tokią klasę:

    <?php include 'vienas.php'; class du extends vienas{ function kitas_failas(){ $this->kitas_failas(); } } new du(); ?>
    Paleidus du.php failą, gausime tokį tekstą: Šis tekstas gautas iš kito failo!
     
    Kadangi aukščiau su protected pavyzdžio nepateikiau, pateikiu dabar, kadangi jis naudojamas su extends
    Naudojama kai yra sujungiamos klasės, tokiu atveju jis atstoja Private.
    Pavyzdys:
    Turime failus:
    vienas.php
    du.php
     
    Vienas.php failas turi tokią klasę:

    <?php class vienas{ protected function kitas_failas(){ echo 'Šis tekstas gautas iš kito failo!'; } } ?>
     
    du.php failas turi tokią klasę:

    <?php include 'vienas.php'; class du extends vienas{ function kitas_failas(){ $this->kitas_failas(); } } new du(); ?>
    Paleidus du.php failą, gausime tokį tekstą: Šis tekstas gautas iš kito failo!
    Šią vietą "protected function kitas_failas(){ " pakeitus į " private function kitas_failas(){ " ir paleidus gausime klaidą - Call to private method du::kitas_failas() from context
     
     
    Pamoka vis papildysiu, atsiprašau jeigu kai kur suklydau, vakare rašiau.
  23. Patinka
    forgy gavo reakciją nuo slamas MakeApps - nemokamos lietuviškos android pamokos   
    Sveiki, tikiuosi, kad kita pamoka bus apie taip kaip apdoroti html kodą gautą 5-oje pamokoje :)
  24. Patinka
    forgy sureagavo į Morlicando MakeApps - nemokamos lietuviškos android pamokos   
    http://makeapps.eu/wp-content/uploads/2013/02/cropped-makeapps4.png

    Sveiki! Pristatau jums nesenai atsidariusį puslapį: MakeApps. Tai - visiškai nemokamos lietuviškos android programėlių kūrimo pamokos. Gal svajojote sukurti savo puikią programėlę? Tuomet ši svetainė skirta būtent jums! Joje bus mokoma android aplikacijų kūrimo, naudojant java programavimo kalbą, pagrindų. Visus kviečiu apsilankyti!
     
    Svetainę galite rasti čia.
    Artimiausiu metu ruošiamės pridėti dar pamokų.
     
    Ačiū už dėmėsį ;)
  25. Patinka
    forgy gavo reakciją nuo Voidas Kokių programėlių trūksta?   
    Sveiki, taigi klausių tų kurie naudojasi android: kokių programėlių jūs vis dar pasigendate? O gal jau viskas ko reikia sukurta ir nieko nebereikia? Ačiū už atsakymus. :)
×
×
  • Pasirinkite naujai kuriamo turinio tipą...