1. Chiar dacă nu m-a pasionat deloc (nici măcar nu am fost curios să văd sintaxa, atât de mult NU m-a pasionat), am observat că Python este destul de popular. Prin urmare, iată șase cărți gratuite.
  2. În aceeași idee cu Python, NodeJS este la fel de neinteresant pentru mine. Dar, cum am primit câteva cereri pe IM, voi începe să pun și link-uri spre NodeJS, pe măsură ce le găsesc. De data asta avem Nodecasts, cu episodul 1 (accentul este foarte funny!)
  3. Tot despre NodeJS avem și nodeguide
  4. Nu pot să nu mă bucur când văd că jQuery Mobile este în continuă creștere. Săptămâna aceasta avem Alpha 4
  5. Și dacă tot vorbim despre asta, iată o listă cu 18 frameworks pentru dispozitive mobile
  6. Cum să faci aplicații iOS folosind Titanium Appcelerator fără a ști o boabă de Objective-C.
  7. jQuery & Javascript best practices.
  8. Dacă săptămâna trecută s-a lansat Boilerplate 1.0, săptămâna această se lansează… Boilerplate mobile 1.0. Face cam aceeași treabă ca fratele mai mare doar că e pentru platforme mobile. Încă nu știi ce e boilerplate? Uite aici câteva filme pe această temă!
  9. Fără nicio legătură cu webdev, îți prezint o aplicație pentru nefericiții cu osx, dar suficient de fericiți să dețină un SSD: TRIM Enabler. Asta pentru că Apple a decis că TRIM e un feature demn de sfârșitul lui 2011. Nu pentru 2006-2007, ca Microsoft… :D

Ți s-a întâmplat vreodată să faci un request AJAX cu jQuery folosind $.get sau $.getJSON și să vezi în consola Firebug că de fapt se fac două request-uri? Te-ai întrebat din ce cauză se întâmplă asta?

Păi asta se poate întâmpla din cel puțin două motive: ori chiar faci tu request-ul respectiv de două ori (bind-uri puse aiurea?) ori… uiți un slash.

Eu fac request-urile astfel încât url-urile au următoarea formă: Read the rest of this entry »

  1. Dacă tot s-a lansat cel mai bun browser din lume (da, despre IE9 e vorba; da, e sarcasm, IE9 e o bășină de browser), a apărut un user de twitter care înșiră bugurile lui… IE9!
  2. Cinci motive pentru care codul tău JavaScript pute.
  3. Câteva tips pentru a-ți face baza de date mai rapidă.
  4. HTML5 Boilerplate a ajuns la versiunea 1.0. Printre altele, avem și un custom builder. Yuppy!.
  5. Iată cum poți personaliza feed-ul RSS pentru un blog WordPress.
  6. Nu am știut cum să o spun mai bine de atât, dar cartea ta de vizită e de căcat.

Cartea lunii martie: Professional WordPress Plugin Development

Ce înveți?
  • Să adaugi setări propriului plugin.
  • Să te folosești de API-urile existente în WordPress, cum ar fi cron, rewrite, shortcode etc.
  • Unul din avantajele majore ce au dus la dezvoltarea a sute de mii de plugin-uri (atât pentru WordPress cât și pentru orice altă aplicație) îl reprezintă exitența hooks. Vei învăța cum să folosești aceste… cârlige ce îți permit fie să îmbunătățești features exitente fie să adaugi chiar tu facilități noi.
  • Vei învăța cum să faci depanare unui plugin ce refuză să funcționeze și multe alte treburi utile.

Ieri am aflat o treabă foarte utilă despre plugin-urile din WordPress. Să detaliem.

Ca dezvoltator de teme personalizate sunt pus de multe ori în situația în care am de ales: ori pun toate fișierele cu funcții custom (ce nu sunt neapărat legate de temă cât de funcționalitatea site-ului; ex: custom taxonomies, custom post type etc) într-un director al temei și le includ din functions.php, ori fac un plugin normal și îi explic clientului cum să-l activeze. De multe ori clientul este doar un intermediar, deci ar însemna să mă joc un fel de telefonul fără fir.

Cum ar fi dacă…

Cum ar fi dacă ai putea să faci plugin-uri ce se activează singure și nu pot fi dezactivate? Ei bine, asta e șmecheria de care ți-am zis că am aflat-o ieri. Read the rest of this entry »

Un freelancer aflat la început de drum poate găsi destul de anevoioasă activitatea de „recrutare” a clienților. Un astfel de freelancer nu e neapărat începător în domeniul în care activează, putând avea ani buni în spate și un portofoliu mai bogat decât cineva care activează pe această „nișă” de mult timp, ci e doar începător în activitatea de liber profesionist. Se știe că „angajat” înseamnă, printre altele, și cedarea oricărui drept intelectual. Adică tot ce faci pentru firma la care lucrezi intră în portofoliul firmei, nu al tău.

Unde cauți?

Elance.com, vworker.com, getafreelancer.com, forumuri. În ordinea asta. Nu cred că are rost să le înșir pe toate, nu intenționez asta în acest articol (de fapt, dacă stau să mă gândesc, nu cred că voi face asta în vreun articol, vreodată). Read the rest of this entry »

IE9 Compatibility Mode

De obicei, sunt destul de deschis în ceea ce privește versiunile noi ale programelor folosite. Cu două excepții: Photoshop (tot ce a ieșit după cs3 este incredibil de lent; și nu este de la sistemul meu!) și Internet Explorer. Asta pentru că Microsoft refuză cu îndârjire să facă un browser bun (nu mai bun decât precedentul ci doar bun). Să detaliem.

Începând cu IE8, browserul minune are o chestie foarte utilă, numită Compatibility Mode (CM). Treaba asta încearcă să curețe mizeria lăsată de hack-urile scrise pentru versiunile anterioare de IE. În IE8 șmecheria a mers excelent, putând folosi treaba asta și pentru teste, fără să mi se întâmple foarte des să afișeze corect în CM dar greșit nativ, în IE7.

În mult lăudatul IE9 însă, treaba s-a schimbat. Pentru că nu prea poți fi sigur de ce se întâmplă. Prima întâplare întâmplată s-a întâmplat cu trei zile în urmă. Un prieten mi-a zis că are o problemă cu un site la care lucrează în IE9 (CM IE8): la hover, un box sare. Am testat în IE8, totul e ok. A doua întâmplare a fost ieri. Unui element nu-i mergea bind-ul la hover. Tot CM IE8. În IE8 mergea.

Azi am făcut un test micuț cu un PNG cu un glow radial. IE8 afișează așa. IE9 CM IE8 afișează așa.

Așadar, mă scuzați că sunt reticient. IE9 still sucks!

Săptămâna asta am fost foarte ocupat, prin urmare am strâns doar trei link-uri. Sper ca săptămâna viitoare să mă revanșez :)

CSS
  1. Framework-uri CSS. Pro și contra. Dacă în urmă cu doi-trei ani consideram că framework-urile CSS sunt inutile de cele mai multe ori, eliminând orice urmă de semantică (să fim serioși, o clasă de genul column_1 nu spune mai nimic, nu?), în prezent nu s-a schimbat deloc. La fel de inutile au rămas în ochii mei.
Browsers
  1. Din nou despre IE9. Și cât de bun și minunat este el. Not! IE9 păstrează tradiția IE de până acum: un coșmar. Asta pentru că oricât de mult încearcă unii să-l promoveze (sper ca măcar să-și ia mulți bani din asta și să nu o facă din convingere!), IE va rămâne – și la versiunea asta – un browser slab. Foarte slab, chiar. Ce nu poate păstra măcar partea de „compatibiliy view” funcțională (aseară se chinuia un amic cu o chestie care „nu mergea pe ie8”; de fapt mergea in ie8 dar nu mergea pe ie9 în compatibility mode).
Hardware
  1. Mac Book Pro 2011 se întâmplă să crape. Și nu doar la doi-trei utilizatori… Da, știu că Apple sunt cei mai buni, sistemele sunt cele mai stabile iar userii ăia sunt retardați pentru că au cumpărat așa ceva și nu știu să folosească o asemenea minune tehnologică. :D

Se găsește aici. Este în lucru, dar este funcțional. În funcție de timpul meu liber (și de răspunsul din partea Emag.ro cu privire la un API disponibil) pluginul va avea niște features extrem de drăguțe.

În momentul de față face două lucruri:

1) caută orice link de forma http://emag.ro/link produs și îl înlocuiește automat cu echivalentul profitshare. Din păcate, neavând acces la un API nu pot adăuga statisticile din emag profitshare.

2) dacă este bifată opțiunea, link-urile „injectate” vor fi scurtate automat prin serviciul de la google, goo.gl. Am folosit un cod scris de Marcus Nunes și nu știu cât de eficient este. Dacă observi că apar timpi mai mari de încărcare pentru pagină sau primești erori ciudate (cel mai probabil din cauza cURL), lasă treaba asta debifată.

Dacă ești curios să îl vezi la treabă, aici e locul unde trebuie să te uiți.

Zilele astea mă tot distrez cu un WordPress mai customizat decât restul făcute până acum. Iar una din treburile ce trebuiesc făcute o reprezintă un uploader pentru imagini. Locurile în care ar fi nevoie de așa ceva sunt nenumărate. De exemplu: avatar-uri, imagini pentru slidere etc.

Primul impuls a fost să scriu un script PHP cu care fac upload. Dar mi-am dat seama că este o muncă inutilă din moment ce WordPress-ul are un uploader decent. Prin urmare, m-am apucat să caut ce și cum. Pentru a deschide uploaderul este necesar să faci următorii pași:

Incluzi uploaderul și thickbox
wp_enqueue_script( array('jquery',  'media-upload', 'thickbox') );

Pasul ăsta se face chiar la init. Totuși, ar fi bine să ai grijă să nu încarci toate treburile și în fișierele temei. ;)

Markup

Eu am avut nevoie de toată povestea asta pentru a adăuga câte o imagine pentru fiecare custom post type. Are „eticheta” category picture deoarece unui utilizator de rând sunt șanse mai mici să ceară explicații suplimentare. Read the rest of this entry »

JavaScript

  1. O explicație pe larg a ceea ce înseamnă hash URI (sau hasbang) găsești aici.
  2. Adobe a cedat. A lansat un tool ce convertește flash în HTML5/JS. Nici nu știu dacă ar trebui să mă bucur sau nu, știind că tot ce generează Dreamweaver, de exemplu, nu este cel mai curat cod.
  3. Că tot a început să-mi placă mie cafeaua, iată un fel de introducere în CoffeeScript. Încă n-am încercat, dar pare a fi o treabă destul de tentantă.
  4. Știai că poți înregistra request-urile AJAX în G. Analytics? Uite aici cum.
  5. JavaScript Garden te învață cum să eviți probleme în JS.

WordPres

  1. Automattic a lansat Jetpack pentru cei ce vor să-și facă blogul cât mai… wordpress.com. Bine că nu mai e în trend snap.com :D
  2. Am făcut o funcție utilă pentru cei ce folosesc profitshare de la emag. Long story short, se face replace la orice link de pe emag.ro spre echivalentul profitshare. Va urma un plugin cât de curând cu câteva opțiuni interesante și utile.

Browsere

  1. S-a lansat iPad2 și, o dată cu el, iOS 4.3. Acesta aduce, printre altele, alt safari. Mai rapid, mai ninja, mai… în fine. Vezi aici ce e nou. Din păcate nu poți face upload la fișiere (imagini).

Software

  1. Încă o comparație SVN vs Git. Cât de mult îmi place Git, încep să cred că deja e prea mult :D .
  2. Și dacă tot e deja prea mult, iată (încă) o listă despre cum sa începi să folosești Git.