Pereiti prie turinio

TomasAchmedovas

Patvirtinti nariai
  • Pranešimai

    153
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    100%

Reputacijos išklotinė

  1. Patinka
    TomasAchmedovas sureagavo į HOST321 Coin'ų kasimo aparatūra   
    VIskas čia yra gerai, jei nesupranti apie scrypt ir sha-256 skirtumą - geriau nekomentuok.
     
    1,8MH yra pakankamai greitas aparatas scrypt mainingui. Jo kaina jei būtų video kortos, savikaina ~2600lt. Pabrėšiu JEI BŪTŲ kortos (jų nėra pirkime niekur kurios atitiktų kainą/iškasimo santyki).
  2. Patinka
    TomasAchmedovas sureagavo į dziu-mAn-dzy Programų mobiliems prietaisams kūrėjai uždirba 90 000USD per dieną.   
    Ne piniguose laimė. Žmogus turėdamas 5 milijonus, tikrai nėra laimingesnis tas kuris turi tik 3 milijonus :D
  3. Patinka
    TomasAchmedovas sureagavo į Lime Reikalingas programuotojas   
    Ieškok durnelių
  4. Patinka
    TomasAchmedovas sureagavo į s3cr3t Skubiai reikia patarimo   
    That's what she said
  5. Patinka
    TomasAchmedovas sureagavo į 49volro Web.Development.Digest #1   
    http://s15.postimg.org/b80s375ef/Gear.png Web Development
     


     
    Bento - Learn how to code
    Getting Started With Web Components and polymer.js
    Developing for mobile web [Presentation]
    Hiding Native HTML5 Video Controls in Full-Screen Mode

    A whirlwind tour of Web Components with Polymer [Video]
    Responsive scrollable tables
    Write Your CSS with JavaScript
    Mobile First With Bootstrap 3
    An Insider’s View of Mobile-First Design: Don’t Make These Mistakes
    7 Habits of Highly Effective Media Queries
    Hyper useful, ready to use HTML5 snippets
    Responsive Image Container: A Way Forward For Responsive Images?
    Powerful WordPress Tips And Tricks
    Hiding Native HTML5 Video Controls in Full-Screen Mode
    Media Capture in mobile browsers
    The HTML5 Scorecard: The Good, The Bad and the Ugly in iOS 7
    Tools for image optimization

     
    http://s15.postimg.org/v1hh9n85z/css.png CSS
     


     
    How to style range sliders in Webkit
    iOS 7 Blurred Header
    CSS Regions and Edge Tooling

    CSS Selectors
    Some Interesting Possibilities with CSS4
    Custom scrollbars for IE, Chrome and Firefox using CSS
    Cleaner, hack-free CSS
    Design next generation responsive designs for iOS7 with Edge Reflow CC
    Targeting Menu Elements with Submenus in a Navigation Bar

  6. Patinka
    TomasAchmedovas sureagavo į Paulius. DELFI rašo apie dar vieną uždarbietį   
    Labai dviprasmiskai i viska galima ziureti:)
     
    Super vaikiai kuria imones, daro versla, samdo darbuotojus. Kai vieni ant tevu sprando sedi ir dar 4 metus nieko nemasto nes zino, kad po mokyklos studijuos, o sie sau uzdirba gal ir uz dali musu daugiau :))
     
    Is kitos puses nezinia kaip ten kas...Koks tevu indelis, kaip ten visgi tas senelis isipainiojes i visa sita verslo istorija.
     
    Ant tevu, giminiu negalima pikti, kad jie padeda savo vaikams/anukams, bet tada ir nereiketu taip garsiai sukauti, kad as sukuriau, padariau, idarbinau :)
     
     
    Dabar bandau atsiminti meeta Kaune, tony B, Dhoviuz, Simonas ir dar kazkas vienas jus kartais visi ne klasiokai???
     
    P.S Zinau vaikinuka kuris turi labai mandra buta senamiestyje, jo tevai jam nupirko ta buta, gera automobili, padeda issilaikyti.
    O jis dirbdamas fabrike vaizduoja savo Elitu, nes gali sau leisti viska. :)
    Is sono taip jis turtingas, gali sau leisti daugiau nei kiti, bet tai ne jo nuopelnas.
  7. Patinka
    TomasAchmedovas sureagavo į Panvezys DELFI rašo apie dar vieną uždarbietį   
    DELFI komentaras:
  8. Patinka
  9. Patinka
    TomasAchmedovas sureagavo į Bentski Pasidalinkite patirtimi [ Studijos ]   
    Kiek pamenu iš kitų, ankstenių, temų, tai ne kiek nestojai, o kiek neįstojai :)
  10. Patinka
    TomasAchmedovas sureagavo į infectiosa Pasidalinkite patirtimi [ Studijos ]   
    Darbas pas pažįstamus, verslinyke, yra dar didesnė auka. Kodėl? Ogi todėl, kad gavęs tokią vietą, tapsi visišku nuliu: priklausysi nuo pažįstamų, giminių ar dar ko nors, bet ne nuo savęs. Tai va, šiuo atveju tie 40% nereikalingų žinių + 60% reikalingų žinių lemia nepriklausomybę - jeigu moki ir tai parodai, gausi vietą ir būsi nepriklausomu. Čia, žinoma, kalbu apie gerus specialistus, kurių neatleidinėja ir, žinoma, kurie yra reikalingi.
     
    Paskatinėjus šiame forume temas apie jūsų verslumus, nesupykit, virai, bet darosi labai juokinga. Atrodytų, lyg kiekvienas gali tapti verslininku (nu, jeigu taip būtų, tai vadinčiau juos verslinykais). Žinoma, pasitaiko gerų idėjų ir matosi, jog pats žmogus veikia. Tačiau noriu pasakyti, jog reikia ne tauzyti niekus kalenant pirštais klaviatūrą ir tuščiai rodyti savo aroganciją, o veikti. Suprantama, kad verslininkai turi tos arogancijos, bet šitaip dergdamasis žemini tuos, be kurių paslaugų kol kas, deja, gyventi negalėtum.
  11. Patinka
    TomasAchmedovas sureagavo į Satisfaction UždarbisPlius - papildiniai uždarbis.lt portalo naudojimui   
    Nuoroda: http://0xff.lt/uzdarbisplius
     
    Kol kas, puslapyje laikau porą projektukų, bet gali būti, kad iš nuobodulio pridėsiu ir daugiau. Kol kas buvo "privačiam" naudojimui, bet kodėl gi nepasidalinus? Gal dar idėjų kokių duosite, tad tikrai verta :)
     
    Temų kėliklis
    http://0xff.lt/common/UTB.png
     
    Šiek tiek jQuery koduko, sukurto per vieną dieną. Iš principo, skirtas savų temų pridėjimui, kad būtų galima sužinoti, kada jas galima pakelti į viršų. Iš bėdos, galima naudoti ir temų pažymėjimui bei stebėjimui (gal kiek vėliau ir ši funkcija bus pridėta).
    Rezultatai už'cache'inami trumpam laikui, kad nelaužytume forumo :)
     
    Narių žymėtojas
    http://0xff.lt/common/UT.png
     
    Jau buvau kiek anksčiau rašęs apie šį skriptą pasiūlymų skiltyje.
    Skirtas vartotojų žymėjimui bet kokiu tekstu, spalva. Gerai pasižymėti nemėgstamus narius :huh:
     
    Taip pat, pridėta ir uždarbis.lt portalo vartotojų, žinučių statistika, kam labai įdomu :)
     
     
    Tikrai norėčiau išgirsti, ką galėčiau naujo sukurti, patobulinti ^_^
  12. Patinka
    TomasAchmedovas sureagavo į ronner Individuali veikla. Kaip įregistruoti individualią veiklą?   
    https://dpsdr.vlk.lt/PublicSearch.aspx pasitrink ar esi draustas. Jei esi - mokėt kas mėnesį nereikia.
  13. Patinka
    TomasAchmedovas sureagavo į ReikiaPuslapio Puslapių kūrimo vertė Lietuvoje - peraugus?   
    Turiu bent kelias teorijas šiuo klausimu, pabandysiu išdėstyti:
     
    1. Kaip tu pateikei pirminę užduotį - labai svarbu, kiek detaliai aprašei ko reikalaujama, ar tiesiog davei nuorodas ir pasakei "padarykite panašiai kaip čia". Nes pažiūrėjus į tinklalapį, amerikiečiams tai gali pasirodyti "another one classified ads website", kuriam galima naudoti vieną iš nemokamų TVS, kad ir OS Class ar gal net ir tą patį Wordpress, o lietuviai, žinodami tuos projektus, įsivaizduoja geriau, kiek ten knisliavos, ir darytų unikalų produktą nuo nulio.
     
    2. Ieskok.lt 1200 dolerių. Sakykim. Padarykim matematinius skaičiavimus - per kiek laiko manai galima sukurti tokį produktą? Na kokį mėnesį, ar ne? (realiai manau daug daugiau) Tai reiškia 168 darbo valandas. Daliname ir gauname 7.14 dolerio per valandą. JAV *minimalus* darbo užmokestis į rankas kiek žinau yra 7.25 dolerio per valandą. Ir tai čia imame variantą, kad tik vienas žmogus dirba - ir su dizainu, ir su programavimu. Tu tikrai tiki, kad jie neoutsourcina į Indiją? :)
    Gyvenu Londone ir čia rodo per TV tokią laidą "Fake Britain", tai neįsivaizdavau, ant kiek žmonės kartais įsigudrina padirbti ištisas kompanijas ir visus jos dokumentus, kad tik verslą prasuktų pigiau.
     
    3. Kokybė dar matuojama ir kodo kokybė, kiek tas parašytas kodas bus vėliau suprantamas ir kokios bus galimybės jį palaikyti, plėsti ir kt. Nesakau, kad lietuviai tuo požiūriu dirba geriau, bet kaina daug kur gali skirtis vien nuo darbo kokybės - vizualiai visos funkcijos gali veikti, bet vienu atveju gauni ir pilnai palaikomą gražų kodą ateities programuotojams, o kitu atveju "belekaip, svarbu greičiau padarom kad veiktų, paimam pinigus ir judam prie kito projekto".
     
    Dar kažkiek į temą - siūlau pasiskaityti mano neseniai parašytą straipsnį: Apie "varguolius" verslininkus ir programuotojų atlyginimus
     
    Ir dar šita tema irgi turi neblogą diskusiją apie beveik tą patį.
  14. Patinka
    TomasAchmedovas sureagavo į ReikiaPuslapio Kodėl svetainė už 100 Lt per brangu?   
    Postas kvepia knygos reklama. Bet tai pateisinama - pakelta įdomi diskusija.
    Web-kūrime egzistuoja tie patys rinkos dėsniai, ir čia galima lygiai taip pat permokėti ar pataikyti ant ko pigesnio, kaip kirpykloje ar parduotuvėje. Vieno atsakymo nėra, kiekviena istorija unikali.
     
    Bet skiriasi požiūris - jeigu manęs kaip programuotojo užsakovas pirmiausia klausia "kiek kainuoja", tai jau reiškia, kad žmogus labiau vertina pinigus, o ne kokybę. O kai kreipiasi su išsamiu paklausimu, detaliai aprašęs užduotį ir pirmiausiai klausdamas "ar įmanoma ir per kiek laiko", tai jau ir dirbti daug maloniau.
  15. Patinka
    TomasAchmedovas sureagavo į daryZ Prigerti samagono tik tam, kad kitą rytą verkti, jog skaudą galvą?   
    Atsakymai į tavo klausimus vaizdžiai, nepatingėk pažiūrėti, nors ir tik su lietuviškais subtitrais. ;)
     
     

     
    O jeigu perki 100% sultis ne iš koncentrato ir dar su gabaliukais, tai ten irgi 20%?
    Jeigu ant pakuotės parašyta ne SULTYS, o SULČIŲ GĖRIMAS ir dar žiūri į pigiausius, tada tikiu, kad nėra nei tų 20%, ir tai iš koncentrato.
     
    Ties alkoholiu visi ekspertai, o sulčių tikrų nusipirkti nemoka... :D
  16. Patinka
    TomasAchmedovas sureagavo į Leader Prigerti samagono tik tam, kad kitą rytą verkti, jog skaudą galvą?   
    Ar tarakonai perka diklafosa? Ne. Tarakonas suvokia kad nuodytis nevalia, o žmogus ne..
  17. Patinka
    TomasAchmedovas sureagavo į enjoy Prigerti samagono tik tam, kad kitą rytą verkti, jog skaudą galvą?   
    Iš tiesų visiškai nesuprantu žmonių kurie dirba, gauna alga, didžiają dalį prageria, o paskui verkia, jog neturi pinigu.
  18. Patinka
    TomasAchmedovas sureagavo į masinistas5 Prigerti samagono tik tam, kad kitą rytą verkti, jog skaudą galvą?   
    Ši tema - iš idėjos. Idėja kilo žiūrint į bendraamžius, ~20inį jaunimą, nors tai galima pritaikyti turbūt daugeliui, mėgstančių išgerti. Iš karto įspėju, jog degradavusių alkoholikų nuomonė, kokia ši tema bloga, neįdomi.
    Taigi, daugelis iš mūsų esame ne kartą girdėję. NEBEGERSIU. Tačiau neilgai trukus tik šapt - štai žmogus "išgėrė". Man į galvą "pyškina" mintys. Viena iš jų: ar žmonės tiesiog tokie kvaili, jog prigeria ir kitą dieną skundžiasi, kaip jiems blogai? Tokių frazių, kurios ypatingai mane erzina, išgirstu po daugelio balių.
     
    Galbūt galėtume sukirsti kardus ties klausimu: kodėl apskritai žmonės tą alkoholį vartoja? Juk nei skanu (nekalbu apie kokį alų, kuris daug kam skanus), nei sveika, nei apskritai - padoru. Pažįstu ne vieną žmogų, kurie nevartoja ir yra laimingesni už tuos, kurie vartoja. Žmones nebemoka gyventi be alkoholio? Puikiai suprantu, kad nedidelės alkoholio dozės gėdos nedaro, tačiau prisilakti iki debesų bučiavimo, argi ne kvaila? Temoje traktuoju tik BALIUS, PASILINKSMINIMUS. Kuomet žmogus klimpsta į alkoholizmą, tarkime, netekus artimo žmogaus, praradus kažką, tai jau visai kas kita, sakyčiau, net pateisinama (nors ir neleistina) veikla.
     
    Galiausiai, ar koks jūsų pačių alkoholio apsukų dažnis? Ir nerašykit, kad negeriat, nes menkas čia abstinentizmas, kai pusę metų negeri, o prieš pusę metų pylei. Jeigu negeriate kur kas ilgesnį laiką, tai jau pagarba. Bet kokiu atveju šios temos tikslas atsakyti į temos klausimą, o visi kiti klausimai skirti tik tam, kad nebūtų "sausos" jūsų mintys.
  19. Patinka
    TomasAchmedovas sureagavo į liudnasveidelis II etapo rezultatu paskelbimas   
    parašyk į pm, pasakysiu sąskaitos nr, šiaip neskubinu, gali ir ryt
  20. Patinka
    TomasAchmedovas sureagavo į unrixas1 II etapo rezultatu paskelbimas   
    Sveikinu! Aš ten pat įstojau :D
  21. Patinka
    TomasAchmedovas gavo reakciją nuo Dmitrijus II etapo rezultatu paskelbimas   
    Studijų programa: programų sistemos (duomenų bazių sistemos; internetinės technologijos), I
    Aukštoji mokykla: Vilniaus kolegija
    Finansavimo pobūdis: vf
    Pageidavimo numeris: 1
     
    Sėdi!!!
  22. Patinka
    TomasAchmedovas sureagavo į Tekstai Androidas iki 450-500 litų   
    NEPIRK BIUDŽETINIO ANDROIDO. Kaip buvęs telefonų apžvalgininkas žinau ką sakau - pigūs androidai bėgant laikui pasidaro labai didelis galvos skausmas ir apgailėstavimas.
    Jei reikalingi appsai, tai turbūt vienintelė tavo išeitis būtų iPhone 4/WP platforma. Lumia 800,720(?)
  23. Patinka
    TomasAchmedovas 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'Ą
  24. Patinka
    TomasAchmedovas sureagavo į Galantion II etapo rezultatu paskelbimas   
    21:20, liko vos kelios įtemptos valandos iki nežinomybės skraistės atvėrimo. Tai tarsi lietuviškoji eurovizija, mes sėdime ir laukiame. Nedidelė giminės delegacija išsinuomavusi prabangų restoraną, likusi giminės dalis tenkinasi tiesiogine transliacija iš mūsų vietos, kur vos už kelių valandų paaiškės, ar pavyks Galantion įstoti į VF ar nepavyks! Tai grandiozinis konkursas, tai daugiau nei konkursas! Tai aukščiausiojo lygio pompastinis spektaklis, po kurio bus aiškus jauno sūvalko Galantion likimas. Ar pavyks Galantion įstoti į VF? Sužinote jau greitai!
  25. Patinka
    TomasAchmedovas sureagavo į daryZ Sąrašas tinklalapių, siūlančių nemokamą išsilavinimą   
    Atnaujinta: 2021 Kovo 21
     
     
    Alison
    https://www.alison.com/
     
    IT, Verslo ir verslumo įgūdžiai, Finansai ir ekonomika, Sveikata ir saugumas, Asmeninis tobulėjimas, Užsienio kalbos, Diplominiai kursai (Verslas, Programavimas, Multimedia, Marketingas, Statistikos, Web dizainas, Tikslieji mokslai, kita).
     
     
    Coursera
    https://www.coursera.org/
     
    IT, Dizainas, Verslas ir vadyba, Ekonomika ir finansai, Teisė, Sistemos ir saugumas, Dailė ir menai, Media, Biologija ir gamtos mokslai, Inžinerija, Maistas ir mityba, Sveikata ir visuomenė, Humanitariniai mokslai, Tikslieji mokslai, Medicina, Socialiniai mokslai, kita.
     
     
    edX
    https://www.edx.org/
     
    IT, Verslas ir vadyba, Statistikos ir duomenų analizavimas, Teisė, Energetika, Inžinerija, Mityba, Sveikata, Istorija, Humanitariniai mokslai, Tikslieji mokslai, Medicina, Filosofija, kita.
     
     
    Udacity
    https://www.udacity.com/
     
    IT, Verslas, Matematika, Fizika, Psichologija.
     
     
    Saylor
    https://www.saylor.org/
     
    IT, Verslo administravimas, Ekonomika, Karjeros pažanga, Susisiekimas, Dailės istorija, Gamtos mokslai, Tikslieji mokslai, Anglų kalba, Darbo paieškos įgūdžiai, Filosofija, Politika, kita.
     
     
    OpenLearning
    https://www.openlearning.com/
     
    IT, Web dizainas, Marketingas, Verslumas, Sporto analizavimas, Chemija, Wordpress pagrindai, kita.
     
     
    University of the People
    https://www.uopeople.edu/
     
    IT, Verslo administravimas, Dailė, Tikslieji mokslai, Psichologija, kita.
     
     
    Khan Academy
    https://www.khanacademy.org/
     
    IT, Ekonomika, Tikslieji mokslai, Humanitariniai mokslai, kita.
     
     
    Open Culture
    https://www.openculture.com/freeonlinecourses
     
    IT, Dizainas, Media, Ekonomika, Teisė, Gamtos mokslai, Tikslieji mokslai, Inžinerija, Užsienio kalbos, kita.
     
     
    Codecademy
    https://www.codecademy.com/
     
    Programavimas - Web pagrindai, Javascript, PHP, Python, Ruby, kita.
     
     
    __________
     
    Žinai gerą tinklalapį?
    Dalinkis šioje temoje!
×
×
  • Pasirinkite naujai kuriamo turinio tipą...