Archived entries for Programare

Reducerea unui fisier javascript in Perl

Una dintre regulile legate de performanta site-urilor tine de micosrarea fisierelor javascrips si css incluse in document. Exista cateva unelte foarte bune pentru asta, JSMIN fiind si cea mai buna si mai folosita, pe care o si recomand mai departe. Dar, pentru ca imi place sa experimentez, m-am gandit sa fac propria mea versiune a unui “minificator” javascript, mai ales ca cele existente citesc fisierele caracter cu caracter.

Continue reading…

Ș si ț in linkurile Wordpress

Datorita unui mesaj de pe Twitter mi-am adus azi aminte de problema aparitiei caracterelor Șș si Țț in linkurile posturilor, categoriilor si tagurilor din Wordpress.

Probabil pentru ca nu prea au fost folosite in trecut, cei de la Wordpress probabil au uitat de ele, astfel, cei ce folosesc caracterele corecte pentru s si t (cele cu virgula sub) pot avea unele probleme.

Am incercat sa fac un plugin, dar nu am reusit sa-l fac sa mearga si pentru slug-urile de la categorii si taguri, asadar postez aici o solute mult mai simpla:

  • deschideti wp-includes/formatting.php
  • cautati “/Euro sign” sau functia “remove accents” (in ultima versiune de Wordpress, randul 277)
  • adaugati cele 2 linii de cod deasupra “/Euro sign”:
chr(200).chr(152) => 'S', chr(200).chr(153) => 's',
chr(200).chr(154) => 'T', chr(200).chr(155) => 't',

Acum nu ar mai trebui sa aveti probleme cu ș si ț.

Edit: Nu folositi aceasta metoda daca aveti deja posturi, categorii si taguri ce contin caracterele ș si ț (asta daca nu vreti sa le editati pe toate), o solutie: aici.

Simple PHP Cache

Avand in vedere ca  nu am mai avut chef sa lucrez in seara asta, m-am gandit sa postez despre o chestie la care am lucrat in trecut si care, cel putin in cazul meu, mi-a fost de folos.

Este vorba de o solutie simpla si home-made de a face cache la anumite date in PHP. Cel mai simplu exemplu ar fi urmatorul: ai o pagina cu un articol, pagina respectiva se modifica destul de rar, dar e accesata destul de des. Ce rost ar avea sa preiei/procesezi din nou informatiile de fiecare data cand e accesata pagina, cand ai putea sa salvezi datele si sa le trimiti direct catre partea ce se ocupa cu afisarea lor. Sper sa nu gresesc, dar daca am vorbi despre o arhitectura Model-View-Controller in PHP, practic sari in mare parte peste Model.

Continue reading…

Linkuri curate

In urma cu cativa ani circulau tot felul de linkuri catre articole in care puteai sa introduci numele cuiva, facand din respectiva persoana personajul principal intr-o stire jenanta (violator de oi, campion mondial la masturbare etc).

Ce legatura are asta cu titlul postului si ceea ce va urma mai jos? Nimic mai simplu. Majoritatea site-urilor din ziua de azi folosesc o structura a linkurilor cat mai sugestiva, in mare parte din cauza considerentelor legate de SEO, astfel, un link catre un articol despre cultivarea bananelor in America de Sud poate sa se prezinte in felul urmator:

Continue reading…

Care e problema cu PHP?

Tine minte cineva “Familia Bundy” sau “Married with children”, in engleza? Mi-am adus aminte de o gluma din acest serial. Tot timpul cand cineva o intreba pe Peggy cu ce se ocupa sotul ei, ea prefera sa zica ca Al e gunoier.

Cam asa e in ziua de azi cu noi, cei ce ne castigam existenta din PHP. Cred ca de multe ori scapi mai usor daca spui cuiva ca pur si simplu lucrezi in Word sau Excel decat sa recunosti ca ai o relatie mai apropiata cu PHP-ul. Citind bloguri ce tin de programare si sectiunea dedicata programarii de pe reddit, iti dai seama ca pentru foarte multa lume PHP nu e altceva decat o gluma sau un motiv de a face misto.

Continue reading…

Multi nervi cu Wordpress si PHP

Am stat astazi cateva ore, asta daca nu pun la socoteaza si orele pierdute in primavara la munca pe cand lucram la Boomr.ro, sa-mi dau seama de ce nu merge sa parsezi anumite feeduri XML (RSS si Atom) din PHP. Acum in sfarsit mi-am dat seama care era problema, dar chestia e ca nu o pot rezolva.

Concluzia: nu poti parsa feedurile generate de Wordpress 2.1.3 (posibil si alte versiuni 2.1.*) din PHP. Dupa ce am facut upgrade la un Wordpress pe care testam, totul a mers perfect.

Edit:

N-a mers nici cu Python, folosind urllib si minidom. E ciudat ca feedurile cu probleme in PHP cu fopen sau file sunt deschise in 10-15 secunde, dar daca folosesti un socket, trimiti un request  HTTP, iei pagina, totul e mai rapid (si pentru feeduirle fara probleme) singura problema fiind ca, cel putin eu nu reusesc, nu merge sa parsezi datele xml primite.

Reinventand roata

Am apucat sa-o fac si pe asta. Dupa mai multe incercari nereusite de a ma apuca de lucrarea de licenta, luni am pornit la drum. Pana acum aveam 2 idei intre care oscilam, una chiar daca ar fi fost mai potrivita, nu ma atragea chiar atat de mult ca un proiect pe care tot am vrut sa-l incep, dar nu am avut timpul necesar.

Problema mea a fost intotdeauna faptul ca daca incep sa lucrez la ceva, automat imi va sari gandul la inca 2 sau 3 probleme ce tin de respectivul proiect. Bineinteles ca ma voi apuca in acest caz sa dezvolt ideile si intr-un final ajung sa lucrez la 3 chestii fara sa termin la timp niciuna din ele.

Continue reading…

PDF in PHP

In ultimele saptamani am avut destul de mult de lucru cu generarea fisierelor PDF din PHP. In cazul in care nu stiati, functiile PDF din PHP folosesc PDFlib, librarie care nu este gratuita iar in varianta lite nu poate sa fie folosita decat respectand anumite conditii (sa o folositi doar in interes personal).

In cazul in care aveti lucruri mai serioase de facut si nu aveti bani de licenta PDFlib, va recomand o clasa foarte simpla si foarte usor de folosit: FPDF. Singura problema este ca nu stie sa lucreze cu ş,ţ,ă,î si â. Se poate rezolva important un set nou de fonturi, din pacate procesul e destul de greoi.

S-a terminat vacanta, incepe un nou an

Gata vacanta, de maine incepe oficial noul an, cel putin pentru mine, si se pare ca va fi un an destul de greu. Urmeaza 6 saptamani de colocvii si examene, si va fi probabil cea mai grea sesiune de cand sunt la facultatea actuala. Partea ce mai proasta e ca desi avem materii foarte interesante si actuale, profesorii sunt niste nepasatori ce nu au nici o treaba cu materiile pe care le predau.

Continue reading…

Cum sa generezi un feed RSS?

In ultima vreme nu prea am avut timp de munca, cu toate astea, o intrebare tot m-a macinat. Care e cea mai simpla si “light” metoda de a genera un feed RSS? In momentul de fata, eu nu stiu decat 2 metode:

  1. Metoda folosita de WordPress si de alte moduri si pluginuri pentru diferite forumuri. Aceasta consta in generarea fisierului feed-ului in momentul in care userul il acceseaza. Sa luam un exemplu: ai fisierul rss.php, in interiorul lui pui headerul “Content-type: text/xml;…” si generezi continutul. Problema la aceasta varianta e ca de fiecare data cand un user iti acceseaza feed-ul, trebuie sa faci o interogare, asta in cazul in care iei datele dintr-o baza de date. In cazul in care ai 100 de abonati, fiecare face in medie 5 refreshuri pe zi, asta inseamna 500 de interogari in plus. Stiu ca nu e prea mult si ca in ziua de azi nu prea conteaza, dar ceva parca tot nu suna bine. Singurul lucru bun, dupa mine, e faptul ca ai un control mai bun asupra feed-ului, fisierul fiind genrat dinamic, poti face o statistica a accesarilor (iar mie imi place statistica) samd
  2. Metoda folosita de unele forumuri mai cunoscute. Ce se intampla aici? Sincer nu stiu exact pentru ca nu m-am documentat preea bine, eu pana acum am folosit doar prima metoda. Ce cred ca se intampla? Se creeaza “fizic” un fisier xml ce e updatat la un anumit interval de timp, sau si mai bine, e updatat doar in momentul in care au fost adaugate noi obiecte ce vor fi preluate de feed. Diferenta fata de prima metoda? In cazul in care faci 6 updateuri pe zi ai doar 6 interogari.

Concluzia? Nu am inca una, astept saptamana viitoare sa mi se mai elibereze programul, sa am timp sa optimizez ambele variante si apoi sa le pun in practica pe FifaRomania.

LE: Am gasit si metoda 3, e o combinatie dintre cele doua de mai sus. Folosesti un fisier de cache ce contine feed-ul propriu zis, fisier pe care il updatezi doar cand ai facut un update la site, iar in fisierul rss.php poti sa faci statistici frumoase si alte nebunii iar apoi cand ti-ai terminat treaba, dai drumul si la feed.



Copyright © 2004–2009. All rights reserved.

RSS Feed. This blog is proudly powered by Wordpress and uses Modern Clix, a theme by Rodrigo Galindez.