Posts RSS Comments RSS

Archive for the 'Projects' Category

Apache + Subversion + TortoiseSVN + Python + Trac + (ingredient special) = WTF!?

trac
Pentru cei care nu au inteles nici unul din cuvintele din titlu poate ar fi mai bine sa citeasca asta.
Cei care o ard pe programare web si tot nu stiu despre ce-i vorba ar trebui sa citeasca asta .

WTF!? Cine credea ca o sa mearga combinatia de mai sus, in cazul in care ingredientul special = Windows? Sincer eu nu ma asteptam, mai ales ca aveam niste proiecte incepute deja in subversion si vroiam sa le integrez in trac. Si in plus am niste path-uri destul de ciudate pe PC-ul pe care am vrut sa instalez minunatia asta de sistem, deci probabilitatea sa gresesc ceva in config-uri e destul de mare. Ei, norocul meu ca am gasit un site cu niste tutoriale video foarte usor de urmarit. Pentru prosti ca mine. Clar.
Gasiti acolo pas cu pas cum se:

Instaleaza Appache pe Windows. Eu aveam instalat xampp. Am sarit peste pasul asta. Dar e bine ca totusi am citit articolul deoarece am gasit acolo o arhiva cu toate aplicatiile de care e nevoie sa instalati chestia aia lunga din titlu.

Instaleaza subversion pe Windows
Instaleaza TortoiseSVN pe Windows. Aveam deja dar cu ocazia asta am facut un upgrade.
Faci legatura dintre Appache si Subversion.
Instaleaza Python pe Windows. Ma bucur ca am instalat python-ul cu ocazia asta, pentru ca aveam de gand sa ma apuc sa-l studiez in viitor (sper sa fie viitorul apropiat, in functie de cat o sa fiu de ocupat).
Instaleaza Trac pe Windows.
Legatura intre Apache si Trac
Ce se intampla practic la legaturile astea Apache-Trac, Apache-Subversion? Pai practic la cererea unor linkuri de genul: www.exemplu.com/svn sau www.exemplu.com/Trac, cerinta e preluata de modulele alea adaugate: subversion si trac. Mai departe daca nu stiti ce se intampla, nu conteaza f mult.

Ce trebuie sa aveti grija:
Dupa cum v-am spus, path-urile voastre din calculator s-ar putea sa difere foarte mult de cele din exemplu, asa ca verificati foarte atent cand puneti liniile alea in config.
Aveti grija sa nu va scape eroarea si sa puneti:
LoadModule dav_svn_module C:\Directorul Meu\Subversion\bin\mod_dav_svn.so
cand trebuie de fapt sa fie
LoadModule dav_svn_module C:\Direct~1\Subversion\bin\mod_dav_svn.so
O problema care s-ar putea sa apara la testarea linkurilor (asta in functie de cum va este setat apache-ul) este sa folositi case-uri diferite. Adica: localhost/trac in loc de localhost/Trac sau localhost/SVN/project in loc de localhost/svn/project. De exemplu la mine merge doar cu localhost/svn/proj… (small case).
Dupa ce am instalat Trac-ul nu am reusit nici cum sa-l accesez. Primeam o eroare de genul:

error The Trac Environment needs to be upgraded….

Am facut legatura dintre Apache-Trac dupa care am rulat comanda: trac-admin . upgrade din command prompt (cmd) in folderul cu Trac-ul pentru Project1 (cd C:\Data\TracRepos\Project1). Acum totul merge veeery smooth :). Am pus deja un milestone f important pt un proiect la care lucrez: Get payed! :D
Nu uitati: in caz de probleme urmariti timpul log-urile din apache. Le gasiti in folderul_de_apache\logs\error.log (de ex la mine e: D:\Program Files\xampp\apache).

Planificarea site-urilor din perspectiva unui freelancer.

website-planning
Imi amintesc ca spuneam mai demult, parafrazand “un mare clasic” in viata, ca meseria asta de freelancer e ca si cum ai juca pe “Hard” jocul asta “dea muncitul”. Atata timp cat lucrezi de unul singur trebuie sa faci munca unui manager de proiect, contabil, secretara, designer, programator si femeie de servici. Macar daca ai lua salariile lor la un loc, dar de multe ori te bucuri cand ai salarul femeii de servici. Nu ca m-as plange, dar vreau sa punctez faptul ca esti nevoit astfel ca pe langa limbaje si tehnici de programare trebuie sa inveti si cum sa-ti planifici un proiect, cum sa vorbesti cu clientii, cum sa-ti vinzi munca si cum sa-ti faci cafeaua. Si ca sa poti tine ritmul esti nevoit sa copiezi metodele altora care ti se pare ca se potrivesc cel mai bine in cazul tau. Reinventarea rotii e exclusa! Moarte sigura. Daca stai sa studiezi metode si modele care se predau pe la nustiu ce universitati de asemenea esti mancat. Iti trebuie ceva rapid, practic si functional.
Asa ca m-am documentat putin care ar fi etapele de planificare a unui site. Din tot ce am gasit (mai mult povesti decat ceva la obiect) am facut urmatorul ghid practic de planificare a site-urilor:

  • Descrie-ti proiectul.
    Una sau mai multe fraze despre proiect. La ce o sa fie folosit site-ul, de cine si ce anume o sa contina, la modul foarte general.
  • Fa-ti un sumar.
    O lista cu toate cerintele site-ului, un index cu tot continutul
  • Fa un flow chart.
    Adica niste grafice in care desenezi cum ai vrea sa-ti viziteze lumea site-ul.
  • Fa-ti niste schite pentru design.
    Niste schite aproximative pentru fiecare pagina, Nu da atentie prea mare la detalii.
  • Propune-ti niste “milestone”-uri.
    Cred ca “pietre de hotar” ar veni in romana, dar f*** pruteanu :) . Identifica-ti niste faze mai importante din proiect si stabileste niste date pentru finalizarea fiecarei faze.

Pentru toata treaba asta ai nevoie de aproximativ 5 coli de hartie si ceva de scris. Tot pixul si foaia au ramas cele mai bune instrumente si in 2008. Sunt atat de bune incat nu a fost nevoie sa evolueze deloc in ultimele cateva zeci de ani.
Zilele urmatoare o sa revin cu detalierea fiecarei etape, acum nu mai am timp. Trebuie sa planific un proiect nou :) .

Feed’uri rss - standarde si validare.

Rss feed standards - rss pigeon
Ma gandeam zilele astea ca pentru ca sa fim si noi la zi cu tehnologia si cu “best practice”-urile de la ora actuala ar trebui implementate niste feed-uri pe site-ul Licitatie Porumbei. Asa ca m-am apucat sa citesc standarde si sa ma uit la exemple (link 1, link 2). Am reusit sa construiesc ceva pana la urma, dar vroiam sa verific daca e totul in regula. Am cautat un validator pentru feed-uri si tot testand si modificand am ajuns la o forma valida (se poate testa). Ce mi-a placut la site-ul respectiv e ca are un help foarte bogat si am invatat de acolo mai mult si mai repede decat de pe primele site-uri ce le gasisem pe google. Sistemul de validare e complet si f bine pus la punct. De exemplu m-a atentionat la cateva item-uri la care aveam data 1 ianuarie 1970 (era ceva eroare la formatarea datei in standardul rss) ca, citez, “e putin probabil sa fie data corecta”.
Ce nu am reusit sa invat (decat dupa ce m-am uitat cum e implementat in wordpress) e cum se face sa apara imaginea de feed in “address bar”-ul de la browser.
address bar
Eventually am descoperit ca era vorba despre urmatorul tag pus in < head >
<link rel=’ alternate ‘ type=’ application/rss+xml ‘ title=’ Porumbei La Licitatie ‘ href=’ http://licitatie-porumbei.ro/feeds/rss.porumbei.php ‘ />
Se pot pune mai multe feed-uri daca adaugi mai multe tag-uri de tip <link …. > iar cand vizitatorii dau click pe imaginea din addres bar li se va afisa o lista cu toate feed-urile, in ordinea aparitiei lor in pagina.

Ce e mai greu acum vine doar. Trebuie sa invat vizitatorii cum sa foloseasca un feed-reader, pentru ca in target-ul site-ului nu intra oameni care stau toata ziua la PC. Sunt unii care deabia se descurca sa-si faca un cont.

Despre domenii si plati online

Dupa ce am aflat vestea ca putem folosi si noi paypal ca toti oamenii civilizati, mi-am facut un card VISA Electron, mi-am tras un cont de paypal si am vanat ocazia potrivita sa vad si eu “cum se face”. Pana una alta mi-am platit facturile cu serviciile romanesti (epayment) si am primit niste “bani online” de la prieteni… Acuma s-a ivit momentul pentru ca trebuia sa cumpar un domeniu. Am intrat pe godaddy si am prins o oferta faina! Domeniu .com la doar 6.8 sau 6.9 USD… Mi-am facut rapid un cont, am adaugat in cos domeniul si am tot completat si bifat formulare de mi-a venit rau. In principiu e foarte usor de folosit, dar trebuie sa stii bine engleza si sa fi atent pentru ca iti ofera tot felul de servicii in plus si e posibil ca unele sa fie bifate “default”. Nu o sa explic in detaliu tot procesul pt ca e prea lung si plictisitor. Daca aveti de gand sa cumparati domenii de pe godaddy si nu va descurcati, contactati-ma si o sa va ajut cu placere (in limita timpului disponibil).
Mi-am verificat contul paypal, operatiunea a avut loc cu succes. Mi-am verificat contul din banca, banii au fost luati (7 USD si ceva, adica vreo 6.9 USD + taxa de procesare, undeva la 0.2 USD parca). Deci online shopping, here we go!

Si daca tot vorbeam de domenii, ati fost vreodata curiosi care e cea mai lunga denumire de domeniu? Am gasit pe site-ul asta o lista cu cele mai lungi denumiri de domenii. Practic orice domniu poate avea maxim 63 de caractere (fara extensia .com, .com.ro sau care-o fi). E interesant domeniul care are ca denumire zecimalele numarului PI (3.14….). Daca sunteti curiosi sa vedeti care sunt primele 1 milion de zecimale din PI, incercati adresa asta, dar aveti grija ca ocupa cam 1MB (1.06 mai exact) si dureaza cam mult pana se incarca (la mine a durat 18.57s).
Dar de cele mai scurte denumiri ati fost curiosi vreodata? Cica cea mai scurta ar fi: g.cn , o adresa care redirecteaza spre google in chineza.

Voi ce denumiri de domenii mai ciudate stiti?

What a web programmer should know.

  Tudor Barbu has posted an article about professional web programmers. I agree with him, but I have some comments about his list.
  A web programmer that is or has been working as a freelancer should know all those things (even more), but if you work as a team member in a company, the tasks are divided. A person who has knowledge about marketing should take care of the SEO part. When comes to choosing the framework and design patterns, this job has to be done by a software engineer. The speed of development is greatly increased that way and everybody knows that. But there is a category of programmers who work alone (like freelancers, and I’m one of them), or in very small teams, and that category should consider that list as being a must, if they want to develop a web site project by themselves.
  As I said in the beginning, that list is ok, but the next elements should be added: a web programmer needs to have knowledge about at least one databas system (MySQL is widely-used) and environment configuration, like Apache or PHP installations, if he works on his own servers.
  As a conclusion, Tudor’s post helps a web programmer to auto-evaluate his knowledge, and if he answers affirmative for 80~90% of the questions, he is on the good road to professionalism in web developing.

Update: When using version control (csv, svn) for serious software projects it is mandatory the use of some project management software application, like Trac, Bugzilla, Project.net, dotProject or others.

AJAX - best choice

In ultimii ani evolutia mea (profesionala) se bazeaza pe Internet in proportie de peste 90%. Ocupandu-ma cu programarea (web-development in ultimul timp), caut pe Google solutiile la toate problemele de care ma bat in dezvoltarea unei aplicatii. Chiar si in viata “dinafara PC’ului”, cand am nevoie de o documentare sau un pont rapid in legatura cu un subiect oarecare, tot Internetul e cea mai fiabila solutie. Acelasi lucru se intampla pentru majoritatea care au parte de lucrul cu un calculator in domeniul lor.some logo
Am folosit AJAX in cateva site-uri nu foarte importante iar tehnologia care am utilizat-o a fost o “cârpeala” incropita de mine la repezeala, scurt si la obiect, cu o functie de constructie a obiectului XmlHttpRequest, o functie sau doua de apelare a serverului si unul sau doua fisiere *.php pe post de server. Totusi, nevoia te impinge sa complici situatia chiar daca nu ai nici un chef de “fancy stuff” (oricat ar fi ele de recomandate). Asa ca a trebuit sa aleg un framework “profesional” pentru lucrul cu AJAX.
Prima data am incercat MyAjax, dezvoltat de Raul Ionescu, dar din cauza documentatiei “subtire” m-am gandit sa incerc altceva.
A urmat cautarea pe Google si am dat de site-ul asta:
AjaxPatterns . Contine cam toate bucatile de informatie necesara pentru a construi un site in care ai nevoie de AJAX: Tutoriale, Scule (”Tools”, nu va ganditi la alte prostii), Ponturi (”Tips”), Multe linkuri la documentatie si carti, Linkuri la alte site’uri cu si despre AJAX si o lista cu multe Framework’uri.
xajax
Lista de Framework’uri
Framework’urile sunt foarte frumos organizate, in functie de tipul de aplicatie pt care au fost construite librariile respective. Eu am ales deocamdata xajax din cauza integrarii cu PHP, a simplitatii de utilizare (Learn xajax in 10 Minutes) si pentru ca mi-a placut simetria denumirii ;).

Pigeon Report

Am lansat pagina oficiala pentru aplicatia “Pigeon Report” (Program de clasamente pentru concursurile de porumbei.)
http://porumbei.dynodas.com
Am pus la dispozitie un forum pentru suport referitor la aplicatia propriuzisa si link’uri de download pentru versiunea DEMO & FULL a aplicatiei, si de asemenea link pt. downloadul documentatiei.

Delphi for PHP

Citeam niste forumuri cand dau de urmatoarea expresie: “Delphi® for PHP”. WTF? Prima data am crezut ca e vreo greseala. Dau un search pe google si gasesc asta. Nu pot sa cred. Nici nu visam la asa ceva. M-am bucurat mai mult decat daca ar fi castigat Steaua in meciul cu Sevilia. Prea multe detalii nu am apucat sa citesc, dar din video’urile demo de pe site, e cel mai tare IDE for PHP ever! Si pe deasupra si singurul RAD for PHP. Nici nu am cuvinte. Ca sa intelegeti cauza uimirii mele, trebuie sa ma confesez: sunt un fan Delphi (folosesc Delphi inca de la versiunea Delphi 3) si de cateva luni de zile m-am reprofilat pe limbaje de web development, printre care PHP si JS.Quick Review: Delphi for PHP contine componente care se adauga la proiect prin drag&drop, code management, suport AJAX si baze de date MySQL & altele etc. I’m happy now :D.
D4PHP1

Licitatie de Porumbei

Si hai sa intrerupem programul nostru pentru putina publicitate:
” Pe cei care vor sa vinda sau sa cumpere porumbei ii invit sa intre la:
www.licitatie-porumbei.ro
Pt a pune un porumbel la licitatzie va rog sa mi trimiteti un mail la
alexracean [@] yahoo [.] com sau yahoo messenger: alex_racean22
Mesajul trebuie sa contina: poza porumbelului, pedigree, numele d-vs, un contact (tel, id mess, mail), adresa (localitatea) comentarii (nu este obligatoriu) si pretul la care doritzi sa l vindetzi.
Porumbeii care sint acum sunt de proba.putetzi licita daca va logati sa vedetzi cum functioneaza.”


Licitatie Porumbei


Licitatie Porumbei

Saburex.A

Aseara am ajuns destul de tarziu acasa, ca de obicei, pornesc PC’ul, pornesc ceva programe pe acolo, si ce sa vezi!! Surpriza!! Ma anunta AVG’ul ca am virus. BETON! nici nu l-am bagat in seama macar. Ma conectez la net (net prin VPN, trebuie sa dau connect manual de fiecare data cand pornesc windowsul. probabil ca este optiune sa ma conectez automat dar nu ma pasioneaza :D), dupa ce dau connect ma intorc la fereastra cu alerta de la antivirus. Incerc sa dau “heal”, dar surpriza!! dezactivata. Ma uit la tipul fisierului: *.exe. Shit. Ma asteptam sa fie vreun troian in ceva fisiere de pe net, care sa le pot da delete, dar nope. Erau chiar in kituri pe undeva. Big problem. Ma uit la numele virusului: win32/Saburex.A. Hmm.. un search pe Google, citesc doua trei forumuri, printre care Softpedia (http://forum.softpedia.com/index.php?showtopic=190263&st=0). Surpriza! mie nu-mi mergea de vreo 3 zile Photoshopul. am aflat acolo cauza: saburex. Bun. citesc ce citesc pe forum si observ ca e un virus nou (de prin noiembrie~decembrie 2006), gasesc ceva unealta impotriva virusului, fac download, scan, gata. Pe dracu! AVG’ul iara: hopa, virus. Saburex. No problem. Opresc majoritatea proceselor (pana si explorer :P. aveam doar Task Manager si poza de pe desktop in fata :D). File\New Task(Run), Removal Tool… scan. ok. restart. Pornesc scanarea de la AVG Free… dupa 5 min, no threat! Perfect. Ma apuc sa scriu postul asta si sa pun o rezolvare pentru cine o sa mai intalneasca virusul asta, dar surpriza din nou! dupa cateva minute de scris, AVG’ul gaseste 21 de fisiere infectate (imi gasea el mult mai multe dar l-am oprit sa mai scaneze deoarece in loc sa le curetze le baga la “vault”, adica la carantina). Am pornit Removal Tool’ul din nou si sper sa faca treaba de data asta, daca nu.. am pus-o!!! Va dati seama ca eu nu am formatat sistemul din 2005. Cand am luat calculatorul am instalat windowsul pe el iar de atunci nu am avut probleme. Am pe HDD o gramada de executabile importante. Sper sa nu raman fara ele, ca altfel e BAI MARE!!! Pornesc o operatiune de cautare pana o sa-l gasesc pe cel care a facut virusul si o sa ii bag harddiskul meu pe gat!


Acum o sa ma intorc la dezinfectat. Mai am cateva metode in maneca, sper sa reusesc ceva pana la urma (sa rulez removal’ul in SafeMode, sa caut un antivirus care sa stie sa dezinfacteze, sa mut fisierele curate pe alt HDD iar la astea infectate sa le dau foc!:P)

Next »