webdesign / development + awesome
archivovaný archívny archív
by Lee Toland Krieger
The Vicious Kind má všetko, čo by ste čakali od komornej indie drámy - pochmúrnu atmosféru, peknú kinematografiu, melancholickú muziku (pripomínajúcu kľudnejších Sigur Rós) a disfunkčné medziľudské snahy. Má však aj Adama Scotta.
...
Ktorý spôsob indentácie (zarovnávania? uhm..) používate?
function meow ($meows) { // oh noes, god just killed a kitten :( }
function meow ($meows) { // happy kitty, whee }
Asi je zrejmé, ktorý preferujeme my ;) Douglas Crockford by nám ale jednu vylepil, keby to vidí. Prečo? Hah.. funny story..
Nie je väčšej nespravodlivosti vo svete ako keď nejakí wannabe kritici a iné trúby nadávajú na vašu obľúbenú hru, film, knihu, album, čokoľvek.. a pritom vyzdvihujú nejakú podobnú hovadinu, ktorú ste hrali/videli/čítali/počúvali a viete o tom svoje :) Tak som si povedal, že skúsim uviesť pár takýchto prípadov na pravú mieru a ako správny not-so-angry video game nerd začnem porovnaním jednej notoricky známej a jednej neprávom zabudnutej multiplayerovej hry.
Ak vaša stránka podporuje (vlastnú implementáciu) ikoniek/avatarov je možné, že ste sa stretli s týmto - po uploade nového obrázku sa stále zobrazuje obrázok starý. Ak sa nový zobrazí po refreshi, samotný upload funguje. Obrázok sa však musí zobraziť hneď, nemôžte od ľudí očakávať zbytočný refresh, navyše je to confusing.
Problém je, že obrázku zrejme zostal rovnaký názov súboru, na čo si prehliadač povie "Heeej, toto som už raz sťahoval! To aby som to radšej vytiahol z cache! Mwahahahaa..", podhodí starú verziu a cíti sa múdro.
Jednoduchý spôsob ako ho oklamať je pridať na koniec názvu náhodne vygenerovaný reťazec znakov. Napr.:
<?php $randstr = base_convert(crc32(mt_rand()), 10, 36); $nazov = "$subor-$randstr.jpg"; ?>
Riešení je kopa, dobré je začať s náhodným číslom (alebo použiť uniqid(), čo vygeneruje reťazec na základe aktuálneho času v mikrosekundách), prehnať to cez nejakú tú hashovaciu funkciu (md5(), sha1()) a na koniec z toho vystrihnúť zopár znakov.
Takže - pridajte niekoľko náhodných znakov do názvu súboru a prinútite browser vyhnúť sa cache pamäti. *lusk*
Dajte si facku, ak ste niekedy spravili niečo takéto
Ok, teraz vás naučím malú fintu. Ak svoj výtvor otvoríte vo Photoshope, a po ctrl+shift+u
(desaturovanie) z toho vylezie toto
robíte niečo veľmi veľmi zle ;) Seriously, skúste to s mojím obrázkom.
Nepoužívajte farebné kombinácie, ktoré sú príjemné asi ako motyka v oku. Nebuďte zlí. A nebuďte zlí na ľudí so zrakovými vadami. To, že tú abomináciu možno neuvidia, sa v istom zmysle dá považovať za výhru, ale to zrejme nebol pôvodný úmysel, že ;)
Ťahať jQuery z nejakého toho externého CDN je fajn. Máte po ruke najnovšiu verziu a je dosť možné, že návštevník vašej stránky už bol na inej CDN pozitívnej stránke a má ho teda v cache. Niekedy ale treba mať knižnicu po ruke lokálne - nie všade, kde chcete pracovať, sú internety. A čo ak padne externý server? Oh noo...
<script src="http://code.jquery.com/jquery-latest.min.js"></script> <script> !window.jQuery && document.write('<script src="js/jquery.js"><\/script>') </script>
Ak sa nepodarí načítať z CDN, pridá sa lokálne. Na otestovanie je namiesto obyčajnej if() podmienky použitá zaujímavá finta. Pri && operátore platí, že druhá časť sa vykoná len v prípade, že prvá bola vyhodnotená ako true. Takže iba ak jQuery neexistuje (!window.jQuery
) vykonáme document.write(...)
. Happy times :)
Trik je odkukaný z projektu HTML5 ★ Boilerplate.
Jedným z dosť užitočných MySQL príkazov, ktorý nie je až taký známy, ako by sa na užitočnosť takého kalibru patrilo :), je GROUP_CONCAT. Používa sa ako agregujúca funkcia (s GROUP BY), podobne ako napríklad funkcia AVG, akurát že nerobí priemer zo všetkých prvkov stĺpca, ale ich pospája za sebou do jedného stringu.
Ako to funguje a načo je to dobré?