Archive for October, 2008

Incepator in Python

De putin timp m-am gandit sa incerc un nou limbaj de programare. Pentru ca vreau ceva care sa nu fie special pentru web si care sa nu fie prea departe totusi de modul de lucru cu care m-am obisnuit, am ales Python.
Nu vreau sa-i descriu avantajele ci sa ajut si pe altii care vor sa faca o evaluare rapida. Mi se pare un limbaj bun si pentru cei care nu stiu deloc programare.

Asa ca propun urmatoarea reteta (orientata in special spre utilizatorii de windows):

1. Se descarca ultima versiune standard de Python. Pentru Windows obisnuit(XP sau Vista pe 32 biti) click direct aici

2. Open pe fisierul descarcat, next, next…finish . Nu este nevoie de nici o setare sau alta “customizare”.

3. Se creeaza intr-un director oarecare un fisier text obisnuit si i se schimba extensia din .txt in .py (ceva de genul program.py). Click dreapta pe fisier si click pe “Edit with IDLE”. Se pot folosi si alte editoare de text (ex Notepad) sau mai avansate, dar nu are rost in aceasta etapa.

4. Sunt doua ferestre care apar:
- una cu titlul Python shell, care incepe cu
“Python 2.6″ si cateva informatii despre soft urmate de
“IDLE 2.6 ==== No Subprocess ====
>>>” in care va rula programul in modul linie de comanda (este cum ii spune numele o cochilie pentru python, o scurtatura spre python.exe). Poate fi inchisa deocamdata.

- in cealalta fereastra se scrie codul sursa al programului. De exemplu:

print ‘hello world’

Se salveaza (Ctrl+S) si se executa programul apasand F5. Rezultatul se va deschide in ferereastra Python Shell de care am vorbit.

5. Pentru urmatorul pas al retetei click aici. Sunt cateva exercitii graduale care in cateva linii de cod acopera surprinzator de multe aspecte practice ale acestui limbaj. Eu le-am facut pana la exemplul 12 si cred ca pana la 10 le poate intelege si cineva care nu stie prea multe lucruri despre programare.

Limbajul este intuitiv, cu un nucleu minimal de functii ce pot fi extinse prin importul unei variate game de module. Este un limbaj interpretat adica nu necesita compilare si ca si PHP este mai lejer cu tipurile de date(int, string, etc).
Specificul este indentarea(distanta fata de marginea din stanga) folosita in sintaxa (un rand care incepe cu un paragraf mai mare este ierahic inferior unuia cu un paragraf mai mic).

Reteta nu ar trebui sa dureze mai mult de 2 ore, chiar si pentru cineva fara experienta, desi ca sa intelegi unele exemple trebuie sa ai un minim background in programare (poate cateva ore sau cursuri de scoala).

Dupa ce am urmat reteta am facut un programel care sa caute in toate sursele python dintr-un director si sa imi arate toate clasele definite si modulele importate, pe fisiere. Sursa e in continuare(primul rand este pentru cine ruleaza programul pe linux):


#!/bin/env python

import glob
import re

sursepython = glob.glob('*.py')

for fn in sorted(sursepython):
print '----', fn , '----'
for line in open(fn):
#cauta modulele si apoi clasele pe fiecare rand
if re.search(r'import', line):
print ' ' + line
if re.search(r'class', line):
print ' ' + line

Programele pot fi executate si cu dublu-click pe sursa, dar pentru cele de genul acesta nu apuci sa vezi rezultatul.
Pot fi dezvoltate usor si programe cu interfata grafica(ferestre sau GUI pentru cunoscatori :) ). Aici este un punct bun de inceput pentru asta inceput de la zero si explicat pe larg.

Mult spor cu reteta si impartasiti din experienta la gatit!

Yahoo web analitics online

Tocmai am aflat de la Ionut de “noul” Yahoo web analitics. Este de fapt o eticheta pusa pe IndexTools, o solutie solida in domeniu, cumparata in mai de Yahoo.
Deocamdata este accesibila numai clientilor, partenerilor si advertiserilor Yahoo! asa ca nu pot sa spun exact cum se misca.
Principalul avantaj pe care il subliniaza este afisarea in timp “real” a rezultatelor (insemnand la cateva minute de la colectare). In plus ofera si acces la datele de baza (raw) si mai multe posibilitati de prelucrare.

Este un nou episod in lupta dintre giganti de care vorbeam mai de mult. Acum cei 3 sunt loviti de criza, iar Microsoft afiseaza o bucurie ciudata cum ca ar fi scapat de o tranzactie paguboasa.

Eu cred ca nu este rasul lor pentru ca nu au mai facut o mutarea inteligenta de foarte mult timp, iar rivalii par mult mai vitali (inclusiv unii care nu sunt concurenti traditionali, gen Adobe cu noul CS4 si AIR).

Le urez succes celor de la Yahoo si cred ca mutarea aceasta nu poate fi decat benefica pentru toti utilizatorii de internet, macar si prin prisma concurentei facute lui Google in domeniu.