1. HTML5 aduce, printre altele, elementul canvas. Acesta îți permite să faci tot felul de giumbușlucuri grafice (dacă îmi aduc aminte bine, există un sistem de font replacement ce folosește canvas). Long story short, se pot face inclusiv jocuri folosind acest tag. Iată aici un punct de pornire.
  2. Despre Progressive enhancement (cu YUI). Un slide excelent ce trebuie văzut atât de dezvoltatori cât și de clienți.
  3. JavaScript OOP. Partea a II-a dintr-un articol despre cum să devii un programator JS mai bun.
  4. jQuery 1.4.4 a fost lansat. Tot de din aceeași „familie” a apărut și jQuery Mobile Alpha 2
  5. Te-ai hotărât să fii cool și să înveți HTML5? Ia uite ce listă de resurse ai aici!
  6. Dacă ți-ai dorit vreodată propriul serviciu de scurtare a URL-urilor, Lifehacker te învață cum să îl faci.
  7. Câteva sfaturi despre cum poți îmbunătăți .htaccess.
  8. Dacă îi mai pasă cuiva (a se citi „dacă mai este vreunul care folosește un sistem de template-uri fără a folosi o structură MVC”), a fost lansat Smarty 3.0.
  9. CSS Data URI cross browser. O modalitate excelentă de a reduce request-urile http și mai mult.

Cum schimbi prefixul ?

Azi a fost nevoie să schimb prefixul unei instalări de WordPress. De ce? Irelevant. Cert este că din prefix_vechi_ trebuia schimbat în prefix_nou_, altfel, după ce am schimbat în wp-config.php $table_prefix = 'prefix_nou_';, nu mă puteam autentifica, primind eroarea You do not have sufficient permissions to access this page.. Rezolvarea? Foarte simplă. Deschizi un PhpMyAdmin, alegi baza de date, faci click pe tab-ul SQL și execuți următoarele două comenzi:

UPDATE `prefix_nou_usermeta` SET `meta_key` = REPLACE(`meta_key`, 'prefix_vechi_', 'prefix_nou_');
UPDATE `prefix_nou_options` SET `option_name` = 'prefix_nou_user_roles' WHERE `option_name` = 'prefix_vechi_user_roles' AND `blog_id` = 0;

(nu uita să schimbi prefix_vechi_ și prefix_nou_!)

  1. Guides din Photoshop/Fireworks direct în FireFox! Această extensie îmi va salva o grămadă print-screen-uri :D
  2. Încă un ghid despre Git. Dacă la început am fost ușor reticient în ceea ce privește utilizarea Git, acum mă întreb: dacă este atât de nasol să folosești o consolă, de ce naiba apar atâtea ghiduri și tutoriale despre Git?
  3. Îți vine să crezi sau nu, Microsoft oferă și chestii gratis: o carte despre Windows 7 mobile numită Programming Windows Phone 7. Download, online. (mirror)
  4. mod_pagespeed este un modul de Apache dezvoltat de Google, ce te ajută să-ți optimizezi site-ul (gzip, minificare și restul de lucruri deja necesare într-o eră în care ai o conexiune de zeci de mb/s :D ).
  5. JavaScript scalabil.
  6. jQuery 1.4.4 RC2. În sfârșit au inclus fadeToggle()!
  7. Și dacă tot se lansează jQuery 1.4.4, de ce nu s-ar lansa și jQuery UI 1.8.6? În principiu este o versiune de mentenanță, rezolvând buguri și problemele cu IE9 (doar nu credeai că MS poate lansa un browser care nu generează probleme?)
  1. Știai că poți măsura timpii de încărcare cu Google Analytics? Eu nu, dar am aflat de aici cum se face.
  2. Ok, te-ai hotărât să faci o aplicație pentru mobile? Ia uite aici câta listoaia de resurse. Cu ocazia asta, am aflat că există și mobile.tutsplus.
  3. PHP vs Python. Pe scurt, PHP e beton, dar Python e mai tare. :D
  4. Optimizarea JavaScript dusă la extrem? Nici chiar așa, dar sunt multe chestii pe care ar trebui să le știi despre optimizarea JS.
  5. 15 funcții WordPress despre care habar n-aveai (eu unul nu știam de existența a mai bine de jumătate din ele!).

Băi, eu nu înțeleg o chestie: primești un link pe mail. Îl deschizi de pe telefon/iPad. Îți face redirect spre versiunea mobilă. Dar nu spre versiunea mobilă a articolului! Spre index. Serios acum, chiar crede cineva că articolul era atât de interesant încât să merite căutarea de pe o conexiune lentă?

Morons!

  1. Greșeli de securitate comune în aplicațiile web. Chestii de bază pe care orice programator ar trebui să le știe.
  2. 50 template-uri CSS. Chiar dacă nu îmi place ideea de a folosi template-uri, unele chiar sunt drăguțe. :D
  3. Pentru amatorii de senzații tari și Vim, iată o chestie drăguță: undo tree visualization. Recunosc, am încercat de câteva ori să folosesc editorul minune al anilor ’70. De câte ori am încercat, de atâtea ori am renunțat. De fiecare dată îmi lăsa impresia că mă lupt mai mult cu editor decât cu codul.
  4. Resure despre usability. Încă nu am un cuvânt care în română care să-mi placă, dar am linkuri: unu și doi. Ai de citit cam pentru câteva zile non stop. Enjoy!
  5. Firebug are… history la inspector. E o treabă de care habar n-aveam dar care mi-ar fi fost de folos de nenumărate ori.
  6. Chiar dacă nu sunt fan, iată câteva sfaturi despre cum să-ți îmbunătățești codul scris în Moo.
  7. Îți vine să crezi sau nu, la începuturile mele am făcut câteva template de Joomla/Mambo. Avea un sistem simplu de template dar un sistem complex de administrare. Am renunțat la el în favoarea WordPress. Oricum, dacă vrei să înveți cum să faci un template pentru Joomla, aici ai un start decent.
  8. Convenții vis-a-vis de numirea variabilelor pe înțelesul începătorilor.

Ntz Antispam v.1.1

Și iată că s-a întâmplat și minunea. În urmă cu aproximativ doi ani am lansat Ntz Antispam. Un plugin idiot de simplu dar care s-a dovedit a fi foarte eficient, fiind recomandat chiar și de bloagări mari. :D

Dar timpul a trecut, Chrome a devenit din ce în ce mai utilizat și am descoperit o problemă gravă: unii utilizatori de Chrome (și probabil și cei ce folosesc google toolbar în alte browsere) nu puteau lăsa comentarii. Am revizuit puțin plugin-ul, am adăugat un autocomplete="off" la câmpul magic și am adăugat o chestie ce am vrut-o de la v.1 dar am lăsat-o… „pe mâine”. Despre ce este vorba?

Ai o opțiune numită $moveInTrash care îți mută un comentariu invalid în… spam. (te așteptai să le mute în trash, nu?). Opțiunea o dez/activezi editând codul deoarece o opțiune în admin ar fi însemnat un query suplimentar și am considerat că nu e cazul. Dacă dezactivezi treaba asta, comentariile nu vor intra în baza de date. Deloc. Cool, nu? Este dezactivată by default, dar dacă simți nevoia, go crazy!

  1. Te-ai gândit cum ar fi (ca designer sau front end) să începi un site cu paginile interioare? Cică ar fi mai bine (și chiar are sens)
  2. De ce nu avem un selector CSS pentru parents? Pe scurt: din motive de performanță. Pe lung: aici. Tot despre selectarea parent-ului găsești un articol interesant și aici.
  3. Ce este local storage (ăla din HTML5, desigur!) și cum se folosește.
  4. Ultima versiune de Safari a introdus o chestie nemaivăzută pe la alte browsere: extensii. Învață aici cum ai putea să-ți faci propria extensie
  5. Cum să-ți faci un mediu de dezvoltare cât mai apropiat de cel de prodcuție? Ne învață cei de la deviantART!
  6. Prima (și singura) dată când am avut contact cu API-ul Google Maps se întâmpla cu vreo doi ani în urmă. V2 era la putere iar V3 era într-un beta timid. Timpul a trecut, iar cu V3 văd că se pot face o grămadă de chestii drăguțe.
  7. Ăsta e unul din visele mele pe cale de a se împlini: customizarea elementelor unui formular doar din css. Desigur, sunt browsere care încă nu acceptă asta, mai e și IE. Dar dacă ai un target bine stabilit (gen utilizatorii de iDevices), această soluție merge ca unsă.
  8. Ok, te-ai hotărât că de azi vei scrie JavaScript mai bine decât ai scris până acum. Dar… De unde să începi?
  9. Nu știu dacă merită 13kb, dar jQuery Global pare o treabă foarte utilă atunci când ai de menținut un site multi-language.
  10. jQuery 1.4.3 a fost lansat. Long story short avem îmbunătățiri de viteză (că tot veni vorba, oare ce diferențe sunt între jquery 1.1 – cel cu care am început eu – și 1.4.x ? :D ), un event.namespace (care mi-ar fi fost de folos la un proiect recent), un nou mod de funcționare pentru $.data() și multe alte chestii noi.
  11. Și dacă tot se lansează versiuni în jq-land, s-a dat drumul și la jQuery Mobile.
  12. IE9 este noul IE6?

PHP are un obicei enervant: afișează lunile anului în limba engleză. Teoretic, s-ar putea rezolva cu setlocale();. Practic… mie nu mi-a mers. Probabil am serverul configurat razna, nu știu, cert este că eram contra cronometru, tema trebuia predată iar singura modalitate ce-mi venea în minte era un filtru. Prin urmare, a ieșit asta:

function translateMonths($str){
	$roMonths = array('Ianuarie', 'Februarie', 'Martie', 'Aprilie', 'Mai', 'Iunie', 'Iulie', 'August', 'Septembrie', 'Octombrie', 'Noiembrie', 'Decembrie');
	$enMonths = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
	return str_replace($enMonths, $roMonths, $str);
}
add_filter( 'the_date', 'translateMonths' );

Este necesar ca în temă data să fie afișată astfel: the_date('d-F-Y');, astfel încât luna anului sa fie afișată întreagă, fără prescurtări sau alte giumbușlucuri.

Enjoy!

  1. Devino mai bun în Git! O carte gratuită în luna octombrie despre… git. De ce să folosești version control, de ce să folosești Git și mai ales CUM să folosești Git. Mirror
  2. Dacă tot vorbim de cărți, poate ar trebui să arunci un ochi și peste jQuery Fundamentals. O carte gratuită despre… jQuery. Este disponibilă în câteva formate, deci trebuie doar timp și chef să o citești pe orice device ai la îndemână.
  3. OOP JavaScript. Un soi de continuare a unui articol mai vechi.
  4. Tot despre OOP, dar cu plugin-uri pentru jQuery.
  5. O treaba interesantă despre temele de WordPress optimizate pentru mobile. De fapt optimizate pentru iDevices. Un punct de vedere cu care sunt de acord. (Ai înțeles Alex cum stă treaba?)
  6. Chiar dacă nu are absolut nicio legătură cu development-ul în mod special, cei de la 37 signals și-au renovat birourile. Nu-i mare brânză, dar modul în care au făcut-o m-a pus pe gânduri. În cazul în care mă va lovi spiritul antreprenorial, sediul meu va fi inspirat destul de mult din asta (da, știu, nici nu am gânduri prea mari! :D ).