-
Posts
21,635 -
Joined
-
Last visited
-
Days Won
784
Content Type
Profiles
Forums
Events
Everything posted by gaby
-
Salut don, si bun venit pe forum. Sper sa iti placa pe aici !
-
O iluzie interesanta ce poate fi reprodusa chiar la noi acasa :
-
Cu o mica intarziere, va prezint animatia haioasa din aceasta saptamana, intitulata: Billets S'il Vous Plaît. Vizionare placuta:
-
Cei de la Bethesda au publicat catva noi screenshots noi din Prey 2, FPS cu ambit, ce va diferi total de primul episod, in Prey 2 veti juca cu un serif pe nume Killian Samuels, ajuns pe o planeta unde isi va exercita minunata meserie de vanator de recompense: Numai bine !
-
Tropico 4 urmeaza sa apara in aceasta luna pe PC si Xbox 360, iar de astazi puteti verifica daca sistemul dvs. este compatibil cu acest joc: Minimum Required: Operating System: Windows XP SP3 (32-bit), Vista / 7 (32 or 64-bit) Processor: 2 GHz Dual Core CPU Memory: 1 GB RAM HDD: 5 GB free hard disk space Graphics: Shader Model 3.0 (Geforce 6600 or higher, Radeon X1600-Series), 256 MB, DirectX 9.0c Recommended: Operating System: Windows Vista / 7 (32 or 64-bit) Processor: 2 GHz Quad Core CPU Memory: 2 GB RAM HDD: 5 GB free hard disk space Graphics: Shader Model 3.0 (Geforce 8800 or higher, Radeon HD4000-Series or higher), 512 MB, DirectX 9.0c Succes !
-
Cei de la Valve au anuntat ca se lucreaza la un urmator titlu din seria Counter Strike, Global Offense, joc ce va fi disponibil pe PC, PlayStation 3 si Xbox 360. Counter Strike: Global Offense va fi dezvoltat de Hidden Path Entertainment si va fi lansat la inceputul anului 2012. Numai bine !
-
In urma cu cateva luni un grup de modderi s-au pus cu burta pe un proiect destul de "nebunesc": sa porteze Grand Theft Auto: San Andreas pe engine-ul lui Grand Theft Auto 4. Dupa ce au muncit din greu, pe data de 9 august acestia au lansat beta-ul acestui mod. Aceasta versiune contine nici mai mult nici mai putin decat intreaga harta a jocului, pe care va puteti plimba in voie. Pachetelul cantareste putin peste 1 GB si poate fi descarcat de aici: (instructiunile putand fi gasite aici: http://www.gtaforums.com/index.php?showtopic=465636&st=6140&#entry1060657212).
-
Eticheta !
-
Cei de la Blizzard Entertainment au lansat un nou trailer de gameplay din Diablo III, unul dintre cele mai asteptate jocuri ale anului.
-
Nota: Articolul a fost scris de Roland Szabo pe blogul personal. Sa incepem cu primirea de date de la browser. Vom face asta cu un simplu XMLHttpRequest. Sa modificam pagina SSE.html sa contina urmatoarele elemente: <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> </head> <body><input type='text' id='message'/> <button value='Send' id='send'>Send</button> <script> document.getElementById('send').addEventListener('click', sendmessage); document.getElementById('message').addEventListener('keydown', function(event) { if (event.keyCode == 13) { sendmessage(); } }); function sendmessage() { var req = new XMLHttpRequest(); req.open('POST', '/xhr'); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send(document.getElementById('message').value); req.onreadystatechange = function (e) { if (req.readyState == 4) { if (req.status == 200) ;//console.log(req.responseText); else console.log("Error loading page\n"); } }; }; </script> </body> </html>[/code] [b]Ce avem aici?[/b] Un tag input si un button. Codul Javascript contine o functie si doua event listeners care cheama acea functie: una cand facem click pe butonul Submit, iar cealalta cand apasam Enter in casuta de "[i]chat[/i]". Functia nu face altceva decat sa trimita prin POST continutul inputului la [b]/xhr[/b]. Cum arata acum fisierul [b][color="#FF0000"]chat.js[/color][/b]? [code]var http = require('http'); var fs = require('fs'); http.createServer(function(req, res) { if (req.method == "POST" && req.url == '/xhr') { var data = ''; req.addListener('data', function(chunk) { data += chunk; }); req.addListener('end', function() { res.writeHead(200, {'Content-Type': 'text/html'}); res.write(data); res.end(); console.log(data); }); } else { res.writeHead(200, {'Content-Type': 'text/html'}); res.write(fs.readFileSync(__dirname + '/sse.html')); res.end(); } }).listen(8000); Daca cererea este prin POST si la adresa /xhr, atunci ne pregatim sa primim continutul prin POST. Mai intai initializam variabila data cu un sir de caractere gol. Apoi atasam functii la doua evenimente specifice requesturilor HTTP: data si end. Eventul data se trimite atunci cand se primeste o bucata noua de date, iar cel de end se primeste la … sfarsitul trimiterii. La fiecare "data" adaugam ce s-a primit la acel event la ce am primit mai inainte, iar cand s-a terminat transmisia, atunci prelucram. in acest caz trimitem inapoi ce am primit si scriem la consola continutul mesajului primit. Daca este orice alt tip de cerere, atunci afisam pagina sse.html. Ok, acum e timpul sa combinam ce am invatat data trecuta (trimiterea de mesaje de la server la browser) cu ce am invatat azi (prelucrarea datelor primite de server). <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <ul> </ul> <input type='text' id='message' /> <button value='Send' id='send'>Send</button> <script> var source = new EventSource('/events'); source.addEventListener('message', function(e) { var ul = document.getElementsByTagName('ul')[0]; var li = document.createElement('li'); var data = e.data.split('\n') li.innerHTML = '<strong>'+data[0]+'</strong>:'+data[1]; ul.appendChild(li); console.log(e); }, false); source.addEventListener('open', function(e) { console.log('open'); }, false); source.addEventListener('error', function(e) { if (e.eventPhase == EventSource.CLOSED) { console.log('close'); } }, false); document.getElementById('send').addEventListener('click',sendmessage); document.body.addEventListener('keydown',function(event) { if (event.keyCode == 13) { sendmessage(); } }); function sendmessage() { var req = new XMLHttpRequest(); req.open('POST', '/xhr'); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send(document.getElementById('message').value); req.onreadystatechange = function (e) { if (req.readyState == 4) { if (req.status == 200) ;//console.log(req.responseText); else console.log("Error loading page\n"); } }; }; </script> </body> </html>[/code] Asta e aproape perfect combinatia celor doua fisiere de dinainte, cu exceptia faptului ca avem o lista in care o sa inseram mesajele de chat, iar cand primim un mesaj de la server, il despartim la ‘\n’. Datele de la server vor veni astfel incat pe un rand va fi numele celui care a trimis mesajul, iar pe al doilea rand va fi mesajul propriu-zis. [code]var http = require('http'); var fs = require('fs'); //Array to contain active resources var resources = new Array(); http.createServer(function(req, res) { if (req.headers.accept && req.headers.accept == 'text/event-stream') { if (req.url == '/events') { res.writeHead(200, { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive' }); //Create a random ID for each guest in the chatroom res.chatID = 'guest'+Math.floor(Math.random()*1000); resources.push(res); //Remove from active chat resources if connection is closed req.addListener('close',function (event) { console.log('A connection was closed'); var index = resources.indexOf(res); if (index != -1) { resources.splice(index,1); } }); } else{ res.writeHead(404); res.end(); } } else { if(req.method == "POST" && req.url =='/xhr') { var data = ''; req.addListener('data',function(chunk) { data+=chunk; }); req.addListener('end',function() { res.writeHead(200, {'Content-Type': 'text/html'}); res.write(data); res.end(); //send the data to all the active chat resources for (var i=0; i<resources.length; i++) { constructSSE(resources[i],2,[resources[i].chatID,data]); } }); } else { res.writeHead(200, {'Content-Type': 'text/html'}); res.write(fs.readFileSync(__dirname + '/sse-node.html')); res.end(); } } }).listen(8000); function constructSSE(res, id, data) { res.write('id: ' + id + '\n'); //Adds the capability to send multiple lines of data if they are in an array if (data.constructor != Array) data = [data]; for (var i = 0; i<data.length; i++) res.write("data: " + data[i] + '\n'); res.write('\n'); } Ce facem aici? Pai in primul rand, facem ceva ce nu putem face in PHP: stocam intr-un array fiecare response ca sa stim la cine trebuie sa trimitem informatii inapoi. Cand cineva se conecteza la event source, il adaugam la acest array, iar daca se intrerupe conexiunea, il eliminam. Deasemenea, fiecarui response ii asociem un ID, ca sa putem identifica fiecare utilizator care chatuieste. Cand primim un mesaj prin XHR, il trimitem mai departe la fiecare abonat din arrayul nostru. !!! Fisierele pot fi descarcate de aici: Numai bine !
-
Atunci pune pur si simplu folderul descarcat de aici in locatia corespunzatoare; treci peste logare.
-
Japonezii de la Akiba PC Online au gasit un set de memorii RAM DDR3 sub brandul AMD Radeon, excelente pentru pasionatii de calculatoare ce obisnuiesc sa-si tina sistemul deschis (la propriu) pentru a usura vizualizarea radiatoarelor deosebite sau etichetele colorate, modulele fiind disponibile in 3 variante diferite ca performanta. Primele, fac parte din categoria "Entertainment" sunt distribuite cu frecvente de 1333 MHz, memoriile la 1666 MHz sunt denumite "Ultra pro", iar cele mai performante "Enterprise". Un modul de 2 GB costa in jur de 20 $.
-
S-ar parea ca cel mai rapid ar fi ultimul Firefox, urmat de IE 9, apoi de Chrome .
-
Inregistrare Utilizatori Ciudati
gaby replied to +Biencutza25's topic in Bug-uri, sugestii & feedback
reCaptcha era cea mai sigura... -
Inregistrare Utilizatori Ciudati
gaby replied to +Biencutza25's topic in Bug-uri, sugestii & feedback
Reparat bug-ul din sistemul reCaptcha (nu ma pot ocupa eu de asta, ci creatorii lui), sau, "impanzirea" forumului cu sisteme de protectie (de asta ma pot ocupa eu ) care ar impiedica botii sa se mai poata inregistra, dar, cu siguranta va impiedica si anumiti utilizatori mai neexperimentati sa se inregistreze... -
Cerinte Sistem World In Conflict Soviet Assault
gaby replied to +PAUL-XX's topic in Cerinte de sistem
Jocul in sine nu cred ca are ceva, probabil e vorba ori de o eroare din partea sistemului tau de operare, ori vreo eroare determinata de partea hardware a sistemului tau. Te incadrezi in cerintele de sistem ? -
Frets On Fire - Alternativa La Guitar Hero
gaby replied to +alex008's topic in Driving / Simulatoare / Sports
Hehe, chiar arata interesant jocul. P.S: Scuze, in loc sa iti dau reputatie pozitiva, am apasat pe reputatia negativa . -
Sigur ai respectat ce scrie mai jos ?
-
De obicei nu au virusi, dar, nu strica sa ai un antivirus instalat si sa efectuezi o scanare pe fisierele descarcate. Totusi, unele programe antivirus detecteaza ca fiind virusi anumite trainere, asa cum spune si mesajul de pe AbsolutCheats: Da, salvarile sunt complete.
-
Inregistrare Utilizatori Ciudati
gaby replied to +Biencutza25's topic in Bug-uri, sugestii & feedback
Intr-adevar, boti spammeri, inregistrarea lor fiind posibila datorita vulnerabilitatilor descoperite in sistemul reCaptcha, despre care am scris aici: -
Hmm, in momentul postarii nu erau... Pe site-ul autorului, http://www.emarian.net/ cred ca le vei pute viziona (a trecut pe Vimeo).
-
Ce fel de catalog online, ai si un exemplu ?
