Category: IT

10 invitatii Google Wave

Acum cateva zile am primit invitatie de la Google sa testez noul produs Google Wave.

Prezentare nu ar mai fi nevoie sa facem. Cei in domeniu stiu ca se lucreaza la acest produs de ceva vreme acum fiind in perioada de proba.

Este o combinatie intre Instant Messenger si E-mail pus pe o platforma ce permite sincronizarea permanenta prin cea ce ei numesc “waves”. Practic ceea ce editam se trasforma intr-un stream care se transmite instant la toti care pot vedea conversatia. Astfel se poate purta o discutie mai aproape de realitate decat ceea ce ofera IM-urile. Poate fi folosit  in organizarea evenimentelor, proiecte de grup, brainstorming, photo-sharing. Puteti chiar juca jocuri impreuna. Obisnuitele discutiile purtate pe mail se pot transforma intr-un mesaj wave mult mai eficient.

Faptul ca intreaga discutie este vazuta ca un sir de “valuri” care adauga, modifica sau sterg alte mesaje anterioare a permis o optiune foarte utila si anume derularea unui Wave. Astfel putem vedea cand si unde s-a modificat ceva intr-un wave.

Sistemul in acest moment nu permite inregistrarea utilizatorilor noi si se poate intra doar prin invitatii. Puteti incerca si voi noul sistem pentru ca  va punem la dispozitie 10 invitatii. Ele vor fi date primilor 10 care vor face un comentariu si vor cere acest lucru. Pentru a ne asigura ca folositi google de mai mult timp vom da invitatii doar celor care folosesc un email @gmail.com.

Va reamintesc ca sistemul este inca in versiunea de test. De exemplu in acest moment nu puteti elimina un participant dintr-un wave.

Pentru mai multe detalii, urmariti prezentarea video – 8 min sau prezentarea lunga 80 min. Deasemenea informatii utile puteti gasi si aici(Wiki).

Invitatiile se trimit cu intarziere de cateva zile, citant din Wave: “Invitations will not be sent immediately. We have a lot of stamps to lick.”


Editare:

S-au terminat invitatiile.

Daca mai doriti alte invitatii veti gasi sigur in primele linkuri din acest search.

Joaca Sah pe Yahoo Games cu Chess engine

O scurta descriere tehnica

In ultimii ani au fost dezvoltate o multitudine de engine-uri pentur sah, unele cu versiuni gratuite dar cele mai complexe cu versiuni ce pot fi cumparate( sau gasite). Un engine de sah este o aplicatie care poate analiza o anumita pozitie pe tabla de sah si poate indica cea mai buna mutare. Exista o interfata de comunicare care este de obicei CLI (cu input pe STDIN si  output pe STDOUT) si ca protocol sunt doua optiuni principale, Xboard si UCI, majoritatea engine-urilor importante suportandu-le pe ambele.

Cel de-al doilea protocol, “Universal Chess Interface” fiind dezvoltat mai recent, are suport mai bun pentru multithreading, setarea memoriei alocate si altele si pe el il vom alege mai departe pentru implementare.

Ca engine vom alege Rybka considerat cel mai bun sau printre cele mai bune in diferite clasamente. Versiunea curenta este 3 si se asteapta sa apara versiunea 4 dar are si o versiune gratuita, mai veche care poate fi descarcata de pe site-ul rybka: Rybka 2.2n2. Aceasta este evident mai slaba dar prezinta functionalitatile de baza similare cu toate celelalte versiuni. Din nou, va reamintesc ca versiune 3 poate fi “gasita”.

Ce ne-am propus sa facem

Ne-am hotarat sa creem un programel care sa ne ajute sa trisam la jocul de sah de pe games.yahoo.com. De ce games.yahoo.com? Pentru ca este mare, stabil si cu multi utilizatori. In plus cu 1-2 ani in urma si-au schimbat interfata de joc si folosesc in momentul asta Flash. Pachetele se pot intercepta si in cazul flash-ului dupa decodarea swf-urilor ne putem da seama ce se foloseste si unde. Astfel descoperim ca foloseste un anumit limbaj de comunicare si printr-un modul de decriptare putem intelege cand se efectuaza mutari si putem folosi engine-ul de sah pentru calculul viitoarelor mutari posible. Termenul “a trisa” este corect deoarece in 15 secunde se pot prevede 7-10 mutari in avans, iar acest numar de mutari poate ajunge pana la 12-14 in cazul folosirii unui procesor quad core puternic dar si cu un engine performant care are mutithreading.

Sa trecem la treaba:

Pentru aplicatia principala – Visual Basic .NET. Pentru capturarea pachetelor – WinPcap. Pentru integrarea WinPcap cu VB – SharpPcap.

Este nevoie de crearea catorva clase pe care le vezi putea gasi mai jos in codul sursa:

  • “sah.vb” – pentru lucrul cu Engine.exe
  • “TcpManage.vb” pentru reordonarea pachetelor TCP. Pachetele sunt capturate cu WinPcap care lucreaza la Layer 2 – Link Layer si pachetele TCP au un sistem de verificare (de exemplu pachete sunt retrimise daca nu ajung cu bine la destinatie) si nu ajung intotdeauna in ordinea in care au fost trimise.
  • “comunicatie.vb” pentru decodarea informatiilor din pachete in instructiuni de joc cum ar fi mutarile.

Dupa o analiza amanuntita a protocolului de comunicatie cu serverul de joc s-a dezvoltat versiunea 1.0: YahooChessHelper.v1.0.0.0. Cu aceasta se pot detecta mutarile noi. Fiecare mutare este transmisa engine-ului care are la dispozitie 15 secunde sa gasesca cea mai buna mutare pe care o afiseaza pe ecran in mod text si grafic.

Cerintele sunt .NET Framework 2.0 si WinPcap. Fisierele SharpPcap.dll si Engine.exe sunt incluse in arhiva. Engine.exe este de fapt Rybka versiunea gratuita 2.2n2. Daca doriti sa folositi alte engine-uri inlocuiti acest fisier. Momentan functioneaza doar daca jucati cu piesele albe.

Utilizare:

Dupa pornire se selecteaza din lista placa de retea pe care se afla conexiunea la internet, se intra la Yahoo Games Chess pe o camera, se face un joc la o masa si se da Start inainte de a incepe un jocul. Daca doriti sa incepeti alt joc dati Stop si din nou Start.

Codul sursa poate fi downloadat aici: YahooChessHelper.proj cu scuze de rigoare daca va fi indescifrabil pe alocuri.

Multiple conexiuni terminal services (remote desktop) fara windows server

Astazi va vom prezenta o solutie alternativa la Terminal Services/Citrix.

In aproape toate softurile de gestiune/contabilitate/logistica, atunci cand este nevoie de folosirea softului de la distanta exista posiblitatea utilizarii unei conexiuni remote catre serverul cu aplicatii. Aceste nevoi sunt cauzate de multipli factori si solutia are avantajele si dezavantajele ei.

Avantaje:

Nu este nevoie de instalarea unui client al softului local si de latentele de conexiune ce ar aparea daca acest lucru s-ar intampla. Daca un soft este facut pentru lucrul in retea, atunci anumite proceduri care au nevoie de timp de raspuns mic(0.5ms) vor fi intarziate in cazul folosirii unei conexiuni prin internet unde latenta incepe de la 2-3ms pana la 30-50ms in tara si 50-100 in afara (luand cazurile medii actuale).

Ar mai exista posibilitatea instalarii unui client local cu un server de baza de date mai mic (o replica partiala a bazei de date principala). In cazul acesta trebuie sa existe si un modul de sincronizare intre cele doua baze de date care ar fi din nou eliminat.

Dezavantaje:

Conexiunea la internet trebuie sa functioneze pentru a se putea lucra in comparatie cu instalarea locala cu server de baza de date.

Maparea anumitor resurse din calculatorul aflat la distanta se poate face greoi. Cu imprimantele este ok din testele de pana acum dar anumite porturi (serial, usb) pot prezenta latente care sa aiba impact asupra aplicatiilor care le folosesc.

Cum functioneaza aceasta conectarea de la distanta. Utilizatorul remote se autentifica pe server si primeste un desktop (sau doar anumite aplicatii) pe care il poate vedea intr-o fereastra si cu care poate interactiona cu ajutorul mousului si a tastaturii. Aplicatii rulate remote sunt procese care ruleaza pe server iar spre client sunt transmise imagini (si sunete).

Exista doua mari solutii Microsoft Terminal Services si Citrix Presentation Server. Ambele au preturi considerabile.

Evident exista si alte posibilitati de conectare remote gratuite, de exemplu protocolul VNC. Acestea insa ofera posibilitatea conectarii la desktopul unui user care foloseste calculatorul si nu permite noi/multiple sesiuni.

Inca cazul sistemului de operare Windows cu licentele sale destinate utilizatorului final (Windows XP, Windwos vista, Windows 7), a fost introdusa posiblitatea conexiunii remote, numita Remote Desktop care permite folosirea calculatorului prin acelasi tip de conexiune dar simultan de maxim un singur utilizator fie el local sau remote. Aici intra in discutie si subiectul acestui post.

Cativa baieti inteligenti au gasit o posibilitate de a modifica anumite dll-uri din windows si acestea sa ramana certificate de microsoft. In cazul de fata, vorbim de termsrv.dll care in cazul versiunilor enumerate mai sunt, limiteaza numarul conexiunilor la 1. Acest numar se poate modifica si fiind probabil o locatie din fisier de un Byte (8 biti), valoare maxima este de 256 conexiuni simultan. Problema certificatului fisierului este pentru Windows Vista si Windows 7 unde sistemul nu prea vrea sa porneasca cu fisiere “nesigure”.

Patch-ul este evident nu tocmai legal, dar practic este foarte grea detectarea faptului ca se foloseste. Avantajele sunt considerabile nemaifiind necesara nici macar investirea intr-un sistem de operare server. Teoretic este nevoie de un Windows XP de exemplu, cu suficient de mult RAM pentru a tine cati useri este nevoie.

Informatii despre instalare si download gasiti aici: deepxw.blogspot.com


Welcome

Acest blog a fost creat pentru a prezenta probleme si solutii IT.

Sa inceapa distractia!

Dansette