sâmbătă, 8 februarie 2014

Invata MongoDB online

Pentru cei care nu ati auzit pana acum de MongoDB, acesta este un sistem de baze de date orientate document. Clasificat ca o baza de date NoSQL, MongoDB a ales documentele JSON cu scheme dinamice in defavoarea structurii de baze de date relationale ceea ce face mai rapida si mai usoara integrarea datelor in anumite tipuri de aplicatii.
Printre cei mai cunoscuti utilizatori ai MongoDB se numara Craiglists, Sourceforge, eBay (partea de sugestii de cautare) si Foursquare (stocare locatii si checkin-uri).

Pentru programatorii care vor sa invete acest tip de baze de date propria lor universitate online, MongoDB University, scoate o data la 4-5 luni (atat dureaza cursul) un curs care poate fi urmat gratuit, la finalul caruia primesti un certificat de absolvire daca ai obtinut un scor de cel putin 65%. Cursul M101P: MongoDB for Developers a inceput pe 3 februaria si se termina pe 25 mai, la finalul fiecarei saptamani trebuie sa rezolvi temele pentru a primi o nota, nota care se cumuleaza cu rezultatul de la examenul final din mai.
De-a lungul fiecarei lectii ai parte de quiz-uri care iti testeaza cunostintele dar care nu conteaza in calculul mediei finale. Pentru a exemplifica ceea ce inveti la curs vei dezvolta o platforma de blogging realizata cu Python care are la baza MongoDB. Daca nu stii Python nu trebuie sa te sperii pentru ca este un limbaj relativ usor de invatat si in plus pe langa lectii despre anumite functionalitati ale MongoDB, vei intalni si lectii de Python.

joi, 11 iulie 2013

Testeaza codul PHP direct in browser

De multe ori cand citesc articole online, tutoriale despre PHP sau pur si simplu gasesc o clasa interesanta pe Github, am nevoie sa testez rapid o bucata de cod fara sa mai fie nevoie sa creez un fisier pe server-ul web local. Cea mai buna solutie pe care am gasit-o pana in acest moment este PHP Assist, un fel de JS Bin pentru proiectele scrise cu PHP.
Mi se pare foarte tare faptul ca poti incepe un proiect gol sau folosind framework-urile Zend, Codeigniter, Symfony, Yii, Laravel, ppi sau Nette (de ultimele doua framework-uri nu am auzit pana acum) din doua click-uri.

duminică, 2 iunie 2013

Harta Twitter si Romania

Aceasta este dovada de netagaduit ca Bucurestiul este centrul tweet-urilor din Romania. La prima vedere pare ca acel punct este situat spre centrul tarii dar daca folosim Google Maps pentru a vedea pozitia exacta a capitalei, se poate vedea ca aceasta coincide cu punctul proeminent aflat pe harta Twitter.

duminică, 21 aprilie 2013

De unde cumpar carti online?




Tot mai multe persoane cumpara online, beneficiind de avantajul de a-si alege produsele din confortul propriului fotoliu. Unul dintre segmentele aflate in crestere continua este cel al cartilor, acest fapt atrage o mare concurenta pe acest segment, mai multe librarii online, preturi reduse si multe promotii speciale pentru clienti.
Fiind in cautarea unor carti pe care doream sa le ofer cadou, am analizat destul de mult ofertele celor mai importante librarii online din tara noastra, asa ca va ofer mai jos cateva sfaturi si link-uri utile.

Elefant este o alta librarie online cu o oferta ce cuprinde carti, ebook-uri, filme, muzica si ebook readere. Pe site exista o pagina dedicata unde puteti vedea reducerile >> reduceri Elefant

Elefant.ro - Premium

Libris este una dintre cele mai mari librarii online, aici puteti gasi o sectiune speciala dedicata promotiilor. Reduceri saptamanale la cartile editurilor Corint, Leda, Trei, RAO, All si altele.

Libris.ro

Pentru pasionatii de carte veche exista ColtulColectionarului, cel mai mare anticariat online cu un stoc de peste 60000 de carti, rabdare sa aveti pentru ca aveti ce cumpara de pe acest site.

ColtulColectionarului.ro

BookCity este o librarie online despre am auzit recent. Gasim reduceri la Editurile lunii, Autorii lunii, Carti noi, Cele mai cautate carti, plus reduceri de sezon.

BookCity.ro

Pentru fanii genurilor SF si Fantasy, Nemira ofera o colectie impresionanta de carti precum: Seria Cantec de gheata si foc, Trilogia Jocurile Foamei, Seria Dune, Almanahul Anticipatia si multe altele.
Daca doriti sa oferiti cadou o carte si nu sunteti destul de inspirat sau nu cunoasteti preferintele persoanei respective, aveti posibilitatea de a cumpara un voucher cadou.

Dupa cum vedeti avem destul de multe variante, putem compara preturile foarte usor, totul este sa avem placerea de a citi.

duminică, 6 ianuarie 2013

Smartphone-ul Android cu doua ecrane

Start-up-ul rusesc Yota Devices ne propune smartphone-ul cu doua ecrane (LCD in fata, E-Ink - alb negru - in spate) bazat pe sistemul de operare Android.
Telefoanele mobile cu doua ecrane exista de ceva vreme dar ce ne atrage atentia in mod deosebit este ecranul E-Ink de pe spatele telefonului care ne permite sa citim ziare, carti (si nu numai) confortabil, fara a avea grija ca vom ramane fara baterie. Iar daca ramaneti fara baterie nu este nicio problema, imaginea pe care o vedeati va ramane in continuare pe ecran.
Smartphone-ul va fi lansat pentru public in a doua jumatate a anului 2013.
Sursa: http://www.yotaphone.com/

vineri, 5 octombrie 2012

Frecvente grila TV analogica RDS Bucuresti

Zilele trecute butonam telecomanda si am observat ca acele canale pe care mi le salvasem in pozitii strategice, au disparut, iar in locul lor au aparut fix acele programe pe care le salvasem in asa fel incat sa-mi fie foarte greu sa mai ajung la ele. Se pare ca RCS-RDS si-a reorganizat grila asa ca in loc sa ma uit la meciurile de Europa League eu stateam si salvam din nou programele pe pozitiile initiale, cu ocazia asta am observat ca au aparut 2 noi canale (Digi World, Digi Life) dar au disparut vreo 3-4.



Cam asa arata frecventele pentru RDS Bucuresti la data de 5 octombrie 2012:

CNN - 815 Mhz
Boomerang - 607 Mhz
Tv 5 - 783 Mhz
National24 Plus - 743 Mhz
Giga TV - 751 Mhz
F&H - 767 Mhz
Pv TV - 775 Mhz
Gsp Tv - 727 Mhz
Pro Tv - 126 Mhz
Prima - 140 Mhz
National Tv - 161 Mhz
Digi24 - 175 Mhz
Realitatea TV - 182 Mhz
Antena 3 - 189 Mhz
RTV - 196 Mhz
Eurosport - 231 Mhz
Eurosport 2 - 238 Mhz
Nature - 487 Mhz
Transilvania Look - 759 Mhz
Vh 1 - 655 Mhz
Antena 1 - 133 Mhz
Kanal D - 154 Mhz
B1 - 168 Mhz
Digisport 1 - 203 Mhz
TVR - 112 Mhz
National Geographic - 287 Mhz
TVR 3 - 711 Mhz
TVR 2 - 119 Mhz
Digisport 2 - 210 Mhz
Digisport 3 - 217 Mhz
SportRO - 224 Mhz
Eurosport 2 - 238 Mhz
Acasa - 245 Mhz
Euforia - 252 Mhz
TVPaprika - 259 Mhz
Digi World - 266 Mhz
Digi Life - 273 Mhz
Discovery Channel - 280 Mhz
Natgeo Wild - 294 Mhz
Explorer - 479 Mhz
Travel - 495 Mhz
Zone Reality - 503 Mhz
ProCinema - 511 Mhz
Diva Universal - 519 Mhz
Universal Channel - 527 Mhz
AXN - 535 Mhz
AXN SciFi - 543 Mhz
Romantica - 551 Mhz
Disney Junior - 559 Mhz
Disney Channel - 575 Mhz
Cartoon Network / TCM -  599 Mhz
UTV - 615 Mhz
1Music Channel - 623 Mhz
Kiss TV - 631 Mhz
MTV - 639 Mhz
Hit Music Channel - 647 Mhz
EtnoTV - 663 Mhz
Favorit - 671 Mhz
Taraf TV -  679 Mhz
Trinitas TV - 687 Mhz
Otv - 695 Mhz
DDTV - 703 Mhz
Antena 2 - 719 Mhz
The Money Channel - 735 Mhz
Mezzo - 799 Mhz
Fashion TV - 807 Mhz
Duna - 791 Mhz

Discovery Science, Animal Planet si History Channel, canale cu adevarat educative, au disparut din grila pentru ca, nu-i asa, Duna si Transilvania Look sunt vitale (nu mai zic de Euforia si Romantica).

duminică, 5 august 2012

Crearea unei extensii / plugin pentru browser-ul Google Chrome


In articolul anterior am raspuns unei provocari lansate de Refresh.ro si am creat foarte rapid o extensie pentru Google Chrome care te redirecteaza catre Google.ro atunci cand accesezi o pagina web care contine cuvantul "Iliescu". Ideea se pare ca prins foarte bine asa ca m-am gandit sa postez si un tutorial pentru a va arata cat de usor se poate crea un plugin pentru Chrome daca aveti cunostinte HTML, Javascript si putin timp pentru a studia documentatia.

Pentru inceput, o extensie trebuie sa aiba un fisier de configurare, in el se trec detalii precum numele extensiei, o descriere, o iconita, scripturile care ruleaza in background, permisiunile de care are nevoie pentru a functiona. In cazul Chrome fisierul de configurare se numeste manifest.json

{
  "name": "No more Iliescu",
  "version": "1.0",
  "description": "Redirecteaza paginile care contin cuvantul \"Iliescu\"",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "background": { "scripts": ["background.js"] },
  "permissions": [
    "tabs", "http://*/*", "https://*/*"
  ],
  "manifest_version": 2
}

In traducere libera, aplicatia va rula un script in background (background.js) de fiecare data cand se acceseaza o pagina web (vezi permisiunea "http://*/*", "https://*/*") si cerem permisiunea de a accesa tab-urile pentru ca avem nevoie de informatii despre continutul paginii, url, id-ul tab-ului curent.

Mai jos este continutul fisierului background.js:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    if (changeInfo.status == "complete")
    {
        var codem = "var text = document.body.innerHTML; var pattern = /iliescu/i; if(text.match(pattern)) { window.location.href='http://google.ro'; }";
  chrome.tabs.executeScript( tab.id, { code: codem });
    }
});

Este destul de simplu de inteles ce face scriptul acesta. Cu ajutorul API-ului Chrome "ascultam" evenimentele din tab-ul curent folosind chrome.tabs.onUpdated.addListener(), in momentul in care pagina s-a incarcat complet (status "complete") atribuim variabilei codem o valoare de tip sir de caractere care contine un cod javascript.
Cod javascript care va fi executat in tab-ul curent prin intermediul chrome.tabs.executeScript(), functie ce primeste ca parametri id-ul tab-ului deschis in acest moment si variabila care contine codul javascript de executat.

Toata "magia" este creata de codul javascript din variabila codem:
var text = document.body.innerHTML; // luam continutul html al paginii
var pattern = /iliescu/i; // expresie regulata pentru a gasi in text cuvantul "iliescu"
if(text.match(pattern)) { // daca in text este gasit cuvantul nostru
   window.location.href='http://google.ro'; // redirecteaza catre pagina dorita
}

Pentru a testa extensia in browser trebuie sa mergeti in pagina de Extensii (Meniu -> Instrumente -> Extensii), sa va asigurati ca modul "Dezvoltator" este activat:


Si incarcati directorul care contine fisierele extensiei apasand pe butonul "Incarcati extensiile neimpachetate...".

Daca totul este in regula si aplicatia este gata de "productie" apasati pe butonul "Creati un pachet pentru extensie...", alegeti directorul in care se afla fisierele si apasati butonul "Creati un pachet pentru extensie".
In acest moment se va genera fisierul ".crx" care reprezinta installer-ul extensiei si un fisier ".pem" care trebuie pastrat intr-un loc sigur pentru ca il veti folosi in viitor cand vreti sa impachetati versiunile viitoare ale aplicatiei.

Mai departe tine de voi cum popularizati aceasta extensie, daca o introduceti in Chrome Web Store sau o raspanditi prin mijloace proprii.