Insistența userilor Apple

De ceva vreme sunt nevoit să mă lupt cu OSX. La propriu. Dacă în urmă cu doi-trei ani mi se părea super ok, pe zi ce trece mi se pare că îmi stă tot mai mult în cale.

Și dacă îndrăznești să-i spui ceva unui user, în majoritatea cazurilor astea sunt răspunsurile standard:

  • Nu ai nevoie de așa ceva;
  • Eu nu folosesc;
  • Nu am avut niciodată problema asta;
  • Ești tu obișnuit altfel.

So, când îmi zice cineva că folosește „The world’s most advanced desktop operating system” mă bufnește râsul. Pentru că: Read the rest of this entry »

  1. Vrei să testezi site-urile pe diverse platforme mobile? Mobilizer ar putea să te ajute!
  2. Google webfonts a primit un update. De fapt, cam tot ce e de la google a primit update în ultima vreme.
  3. IE 10 platform preview 2. Aproape că mă bucur că există patru versiuni majore de IE. Și că nu va merge nici ăsta pe XP, deci rămânem cel puțin două-trei versiuni mult timp de acum încolo…
  4. A apărut jQuery 1.6.2.
  5. Cât de ușor poți scrie greșit un plugin jQuery? Uite atât de ușor!
  6. Understanding JavaScript prototypes.
  7. Noul meu editor favorit, Sublime Text 2 a ieșit din stadiul alpha (care a fost mai stabil decât orice versiune finală a oricărui soft folosit de mine :D ).

Microsoft a stricat Skype

Zilele trecute îmi zice cineva: „de când a fost cumpărat de Microsoft (adică de o lună), Skype scoate doar versiuni proaste și instabile”.

Sunt curios de o chestie: își imaginează cineva că în ziua în care Skype a încasat banii și-a luat programatorii iar Microsoft a primit codul sursă împreună cu urarea „succes” ? Chiar crede cineva că s-a schimbat altceva în afară de management?

Bonus: iată un concept pentru skype 6: Read the rest of this entry »

Am văzut următoarea chestie de foarte multe ori:

#header #topNav ul li a {
/* some css properties */
}

Pentru un markup de genul:

<header id="header">
	<nav id="topNav>
		<ul>
			<li><a href="#">Menu item</a></li>
			[...]
			<li><a href="#">Menu item</a></li>
		</ul>
	</nav>
</header>

Unde este problema?

Problema este că, în cazul în care specificăm mai multe stiluri, repetăm excesiv: Read the rest of this entry »

Știu eu mai bine!

Așa cum e normal, în orice companie există o ierarhie. Se evită haosul și, teoretic, se face treaba mai bine. Asta teoretic.

Practic însă, situația stă altfel. În funcție de câți șefi sunt în acea ierarhie, se urmează anumite… guidelines. Fiecare simtetrebuie să lase ceva în urmă. Că sfatul lui este important.

Astfel, apar siteuri gen vodafone.ro, orange.ro, cosmote.ro, homebank.ro șamd. Cred că cea mai mare pedeapsă pe care o poți da unuia care a decis soarta unui site este să-l pui să folosească site-ul respectiv! Read the rest of this entry »

  1. Te-ai gândit vreodată că poți face sprite-uri hi-res? Evident că suportul pentru browsere de rahat (cum ar fi… să zicem internet explorer?) este praf, dar este o soluție excelentă pentru web apps, calitatea imaginilor fiind net superioară. Vezi aici cum se face.
  2. Ceva ce mă gândesc serios să încerc, măcar pe VPS-ul de test de la MXhost, dacă nu în producție (pe blogul meu cu 50.000 unici/zi :D ): Memcached + Varnish + WordPress
  3. Avem WP 3.2 RC2.
  4. Mi se întâmplă de multe ori să mi se pună întrebarea „cât mă costă să-mi tai X pagini?” fără a vedea designul. Sau mai văd câte un site al vreunei… „agenții web” care oferă pachete de produse, de genul: „site 5 pagini X euro” sau „site 20 pagini Y euro”. Cui să-i explici că numărul efectiv de pagini contează destul de puțin? Recunosc, am avut și eu un mod asemănător pentru stabilirea tarifului, dar mi-am dat seama relativ repede că nu este prea avantajos.
  5. Userii OSX au o unealtă drăguță (din poze, că n-am avut timp să testez) pentru GitHub: GitHub for Mac
  6. O mare problemă în iOS, în ceea ce privește aplicațiile web, era că motorul JS pentru web app era diferit de cel folosit în Safari. Din fericire însă, în iOS 5 acest lucru se schimbă.
  7. O altă problemă, tot în iOS și tot în Safari era că overflow:scroll nu funcționa. Prin urmare, s-au scris câteva plugin-uri pentru a putea face scroll (Apple FTW!). În iOS 5 această problemă e rezolvată.
  8. Ceea ce înseamnă că iOS 5 este prima platformă mobilă pentru web app.

Șterge target=”_blank” !

Nu mi-a plăcut niciodată faptul că link-urile externe se deschid în altă fereastră decât ar trebui. Cel mai mult mă enervează că unele site-uri sunt atât de imprevizibile încât unele link-uri se deschid în aceeași fereastră, alte link-uri într-o fereastră nouă, fără a-ți da seama ce se va întâmpla.

Eh, și cum stăteam eu și mă gândeam, am zis că ar fi bine să fac un script pentru Greasemonkey. Simplu, care face fix un singur lucu: deschide absolut TOATE link-urile în aceeași fereastră (în fereastra în care este și link-ul, să nu se înțeleagă greșit). Simplu, nu? Read the rest of this entry »

Zilele trecute, după ce am citit articolul lui Chris Coyier despre cât de inexacte sunt statisticile referitoare la dimensiunile browserului vs rezoluția ecranului, am zis că se poate face ceva și fără baze de date custom și alte minuni de genul ăsta, mai ales dacă folosești Google Analytics.

Plecând de la premisa că folosim codul nou (cel asincron), modificările aduse sunt următoarele:

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX']);
_gaq.push(['_trackPageview']);
_gaq.push(['_trackPageLoadTime']);
// de aici incepe codul nou
var windowSize = [0,0];
if( typeof( window.innerWidth ) == 'number' ) {
	windowSize = [ window.innerWidth, window.innerHeight ];
} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
	windowSize = [ document.documentElement.clientWidth, document.documentElement.clientHeight ];
}
_gaq.push([ '_trackEvent', 'Rezolutie', 'Window VS Screen', windowSize[0] + ' x ' + windowSize[1] + ' vs ' + screen.width + ' x ' + screen.height ]);

Tot ce trebuie să faci este să intri în contul GA->Content->Event Tracking->Actions->Window vs Screen (sau Content->Events->Top Event->Rezolutie în interfața nouă) după cel puțin 24h și să-ți admiri statisticile. :)

Notă importantă!

  1. Toată șmecheria asta va face ca Google Analytics să nu afișeze corect bounce rate. Încă nu știu dacă e o un bug sau un feature, dar cert este că există în documentația oficială.
  1. Fundamentals for great JavaScript & jQuery development;
  2. jQuery 1.6 RC 1;
  3. Despre viitorul limbajului JavaScript;
  4. Design Hacks for the Pragmatic Minded;
  5. Șapte lucruri noi și cool despre WordPress 3.2;
  6. Un experiment interesant care dovedește că rezoluția ecranului nu prea are nici o legătură cu dimensiunea ferestrelor. Cel puțin în cazul css-tricks.com. Prin urmare, am făcut și eu ceva asemănător, să vedem ce iese.

Carusel infinit cu jQuery

Zilele astea am avut nevoie de un carusel infinit (d-ăla la care dai next până îți vine rău). Cum tot ce am găsit era mult prea încărcat pentru ce aveam eu nevoie (nu pot înțelege de ce fac oamenii plugins care acoperă o infinitate de scenarii posibile), am zis să fac eu unul. Plus că ar fi fost un exercițiu ce mă scotea puțin din rutina în care am intrat în ultima lună.

Markup

Mark-ul simplu: o listă.

<div id="infinity">
	<ul>
		< ?php for( $i = 1; $i <= 5; $i++ ){ ?>
		<li><img alt="" src="http://flickholdr.com/251/146/nature/<?php echo $i; ?/>"></li>
		< ?php } ?>
	</ul>
</div>

Read the rest of this entry »