webrebel zaklady programovania a oop objektovo orientované programovanie

Rozuzlenie záhady CSS (s cicíkmi™)

napísal , 25 Apr 2011

Ako keby nestačilo, že žiadny browser sa nespráva celkom podľa (chaoticky prekomplikovanej) špecifikácie CSSka, občas máte tú česť naraziť na divné správanie, ktoré zámerne vytvorili jeho autori. Dnešný príklad -keď dáte obrázok do vnútra div elementu, na spodku sa vytvorí medzera. Prečo sa to deje a prečo by mi to malo vôbec vadiť?

Strihal som CSSko s dizajnom, kde má byť pod obrázkom aktuálne veľmi obľúbené "zloženie" za pozadie (ako vidíte na obrázočku vľavo hore). Tak si hovorím, že šak pohoda, spravím div s paddingom na spodku, v ktorom bude ako pozadie ten šedý cicík™ a posuniem celý div doľava. V tomto div-e by potom mohol byť hocijaký obrázok a bol by pekne ocicíkovaný.

.obrazok_s_cicikom {
	float: left;
	padding-bottom: 5px;
	margin-bottom: 8px;
	position: relative;
	left: -6px;
	background: transparent url('cicik.png') 0% 100% no-repeat;
}

No a tu prichádza zrada, cicík je posunutý o 3 pixely nižšie! Pôvodne som myslel, že to je nejaký bug browseru, ale ukázalo sa, že sa rovnako správa vo Firefoxe, Chrome, Opere a dokonca aj IE. Obrázok mal veľkosť 83, div 86. Tak skúšam vypínať bordery, paddingy, marginy, aj keď viem, že tam aj tak nie sú. Zo zúfalosti nahodím celý CSS reset a stále nič.

Po chvíli hľadania som sa dopátral k zaujímavému zisteniu. Obrázok natiahne div preto, že je braný ako inline element, ktorý sa snaží byť zarovno základnej čiary textu (baseline). Text je ale beťár a niektoré znaky má pod touto čiarou (malé "p", "q", "g", ...), takže div sa pre istotu roztiahne.

Divné. Obrázok síce nie je zrovna text, ale v podstate to dáva zmysel.

Čo sa s tým dá teda robiť? Buď spraviť z obrázku "nie-text" (.obrazok_s_cicikom img { display: block; }) alebo, ešte lepšie, nastaviť ho na najspodnejšiu úroveň textu (.obrazok_s_cicikom img { vertical-align: bottom; }).

Tak, tam máš záhada, práve si bola objasnená! Nabudúce si povieme niečo o ešte väčšej a častejšej záhade, o margin collapsingu.

Jak to vlastne natáčam?

napísal , 16 Apr 2011

Pozor, toto je už 6 rokov staré, veci neplatia.
Spravím nový článok alebo kurz o robení kurzov.


V súvislosti s mojimi Nauč sa jQuery a Nauč sa CodeIgniter videami často dostávam otázku: "Jak to vlastne natáčaš?"

my setup

1. notebook: tu sa deje všetka sranda. Tu nahrávam, píšem kód, ukazujem výsledky v prehliadači.. Vidíte, že otvorené okno nie je maximalizované. Snímam totiž len tú časť obrazovky, kde sa niečo deje. Ostatné nikoho nezaujíma, plus takto ušetrím pár pixelov :)

2. druhý monitor: tu mám poznámky a prípravu. Počas prípravy samotnej veci, ktorú budem v tutoriály vytvárať, si zapisujem postup a myšlienky, ktorým sa chcem venovať. Aby som vedel o čom chcem kecať a v akej postupnosti. Občas tam mám odrážky, občas celé vety, občas kusy kódu.

3. mikrofón: do tohto kecám. Logitech USB Desktop Microphone. Nie je to žiadna sláva, ale rozhodne lepšie ako ten notebookový. Kľudne sa mi ale môžte poskladať na nejakú mašinu a dať mi to na Vianoce alebo niečo. Nebudem proti :) Výhoda je, že ho stačí pripojiť cez USB a šlape. Žiaden driver, nič. A potom už len 1 veľký svietiaci button - keď svieti nahráva, keď nesvieti je ticho.

4. podložka pod myš :) za normálnych okolností ju nepoužívam, ale behať myšou po stole robí slušný rámus. Kto pozeral prvé videá vie o čom hovorím :)

Camtasia Studio 7
Software balík obsahujúci všetko, čo treba k nahrávaniu videotutoriálov. Nahrávanie, strihanie, export do rôznych formátov. Vie nahrať dianie na obrazovke, tvoj škaredý ksicht cez webkameru a tvoj neznesiteľný hlas cez mikrofón. (<- robím si srandu, ale tie veci to fakt vie:) ) Znie to ako zlá reklama, ale toto používam :)

Nahrávam v 1280x720, čo je klasické 720p HD rozlíšenie a tiež veľkosť okna, ktoré snímam. Na export používam Youtube HD preset, ktorý si nepamätám, či tam bol od začiatku alebo som ho vytvoril sám. Každopádne, stiahnite si ho tu :)

Ok, už vieš čím, ešte by sa zišlo vedieť ako. Good news everyone! Prečítaj si môj návod Ako spraviť dobrý videotutoriál :)

Ktorá hudba je objektívne najlepšia?

napísal , 12 Apr 2011

last.fm štatistiky

Dosť blbo sa odpovedá na túto otázku.. ale zrovna včera som si všimol na last.fm jednu zaujímavú vec a napadlo mi spraviť menší experiment.

Tou vecou bolo, že pomer ľudí počúvajúcich interpreta a celkový počet prehratí jeho skladieb býva veľmi rôzny. Tento pomer je vlastne ukazovateľom "oddanosti" fanúšikov, resp. koľko pesničiek od interpreta si v priemere jeden človek pustí. A to už zaváňa miernou objektivitou, proste najlepšie je to, čo si človek musí furt púšťať. :)

"Oddanosť" však nie je na last.fm priamo dostupná, tak som zbúchal PHPčkový skript, ktorý posťahoval údaje o 1000 najpopulárnejších interpretoch, no a výsledné štatistiky sú vcelku zaujímavé. Bez chodenia okolo horúcej kaše (to príde až za chvíľu), tu je prehľad prvých 20 interpretov zoradený podľa priemerného počtu vypočutých skladieb:

# Interpret Vypočutí na osobu Počet prehratí Počet poslucháčov Žáner
1 O.S.T.R. 185.29 29 824 022 160 960 hip-hop
2 The Beatles 124.54 307 863 283 2 471 950 classic rock
3 Coma 124.00 22 328 114 180 063 rock
4 In Flames 115.07 91 571 015 795 760 melodic death metal
5 植松伸夫 109.91 27 844 646 253 338 soundtrack
6 Asking Alexandria 109.81 7 595 884 69 173 post-hardcore
7 Glee Cast 103.55 36 306 609 350 612 musical
8 Hey 92.91 17 724 166 190 768 rock
9 Metallica 86.15 162 343 062 1 884 333 thrash metal
10 Radiohead 85.43 279 740 625 3 274 643 alternative
11 Porcupine Tree 84.14 45 099 156 535 980 progressive rock
12 Katatonia 83.83 27 746 503 330 981 doom metal
13 Myslovitz 82.86 21 354 547 257 716 polish
14 Die Ärzte 82.37 31 037 935 376 833 punk rock
15 Sabaton 81.39 13 647 519 167 686 power metal
16 Pink Floyd 80.98 153 591 890 1 896 689 progressive rock
17 Sonata Arctica 80.91 38 216 838 472 328 power metal
18 Nightwish 80.75 79 355 845 982 722 symphonic metal
19 Opeth 79.47 43 363 934 545 665 progressive metal
20 Eluveitie 78.68 13 699 778 174 115 folk metal

Sucker Punch (2011)

napísal , 1 Apr 2011

sucker punch
by Zack Snyder

Drak naháňa lietadlo z druhej svetovej naložené sporo odetými devami, ktoré robia šrot z robotických samurajov a parou poháňaných náckov. Katanami. V slow motion. Do toho hrá Björk. Kuk:

Best movie ever? Nuž...

Spravte si vlastné tričko

napísal , 13 Mar 2011

Trieko

Ako lepšie povedať svetu čo si myslíte, ako keď si to budete hrdo niesť na hrudi? Pokiaľ radi kreslíte, môžete takto zaujímavým spôsobom využiť svoje obrázky.

Vytoriť si vlastné tričko je napodiv relatívne jednoduché a nenákladné. Keďže existuje kopec spôsobov ako na to a každý má svoje špecifiká, rozhodol som sa spraviť menší prehľad a popísať moje skúsenosti s každým z nich.

First things first

Ako to vlastne celé prebieha?
Buď si zvolíte jednoduchú cestu, skúsite nejaký generátor tričiek a poštou vám prijde mačka vo vreci™tričko, ktoré ste nechali na pospas danej firme alebo druhá možnosť, ak chcete mať všetko podľa seba:

  • zoženiete/nakreslíte obrázok s vysokým rozlíšením (aspoň 150 dpi, ideálne 300 alebo vektory)
  • zanesiete ho do firmy, ktorá robí potlač, vyberiete si typ trička, spôsob, farby, atď.
  • počkáte pár dní
  • máte tričká

Bude vás to stáť od 10 až po 30€ aj s tričkom, pričom cena sa skôr pohybuje pri tej dolnej hranici a niektoré spôsoby potlače sú závislé od množstva. Teraz k jednotlivým metódam, ich výhodám a vlastnostiam.

7 dôvodov prečo je Illustrator na prd

napísal , 15 Feb 2011

No dobre, Illustrator určite nie je úplne "na prd", veď sa v ňom dajú robiť pekné obrázočky. :) Existuje však kopec nedotiahnutých detailov, kvôli ktorým sa jeho používanie miestami mení na zápas s vašou trpezlivosťou.

Najzaujímavejším na tom všetkom je, že Photoshop má každú vec, ktorú teraz spomeniem, spravenú úplne v poriadku. Pozoruhodné je to z dôvodu, že oba programy sú v Adobe vyvíjané súbežne už 20 rokov, do značnej miery kopírujú svoj interface a filozofia ovládania je celkovo veľmi podobná.

S každým jedným na nervy lezúcim detailom som sa stretol nespočetne veľakrát. Po prvých pár desiatkach som zažíval rôzne pocity typu FFFFFFFFUUUUUUUUU, po stovke som si chyby začal zapisovať a teraz ich ukážem celému svetu:D, aby ste vedeli čomu sa vyhnúť pri návrhu UI aplikácií, ak chcete, aby vaši používatelia neprišli o veškeré duševné zdravie.

1. Zoomovanie s kolieskom iba s ALTom

Illustrator zooming and mouse wheel

Keď pohýbete v Illustrátore s kolieskom myši, plocha sa posunie hore/dole o zodpovedajúci počet pixelov. NAČO BY TOTO KOMU KEDY BOLO?? Kto by sa už len chcel posúvať po pixeloch, keď stačí stlačit medzerník a ťahať? Seriously...

Horšie je, že kým vo Photoshope môžete zoomovanie s kolieskom zapnúť, v Illustratore sa autori, ako vidíte na obrázku, na to akosi vykašlali. Zoomovať sa dá našťastie podržaním ALTu, ale z toho vyplýva jedna veľmi nepekná vlastnosť (okrem toho, že musíte zbytočne stláčať ALT:) :

2. Po zoomovaní je 50% šanca, že nebudú fungovať skratky

Illustrator keyboard shorcuts won't work after zooming

Keďže ste na zoomovanie potrebovali ALT, podľa toho, či ste zoomovali nepárny alebo párny počet razov, zostane/nezostane označené horné menu. Ak je označené, nefungujú, pochopiteľne, klávesové skratky. Čiže keď si po zoomovaní chcete vybrať napríklad základný select tool (skratka v), rozbalí sa namiesto toho menu View.

Toto je podľa mňa zďaleka najhoršia vec na Illustratore a nechápem ako je možné, že je prítomná aj v dnešnej 12-tej verzii. Dalo by sa argumentovať tým, že môžem používať aj zoom tool (lupu), ale neviem prečo by som si mal komplikovať život používaním ďalšieho nástroja keď mám KOLIESKO. Načo mi inak bude? Aby som si s ním točil z dlhej chvíle?

Achievement unlocked!

napísal , 25 Jan 2011

Awww, chudák náš úbohy blog, nejak sme ho v poslednej dobe ignorovali. Za to všetko môže evil škola! (a zajtra.sk ;) But we're back in business a povieme si ako v PHP spraviť nejakú riadnu sprostosť - napríklad achievement generator™.

Myšlienka za ním bola asi taká, že pokiaľ sa niekto zvykne velice chváliť nepodstatnými blbosťami a lezie s tým na nervy, pošlete mu takýto obrázok a možno to bude mať zaujímavý efekt. Pokiaľ ste za posledných pár rokov hrali nejakú novšiu hru, určite vašej pozornosti neuniklo, že vás zasypávajú kadejakými trofejami a achievementami pri každej príležitosti. (Niekoho to akože aj reálne teší? Podľa mňa je väčšina vývojárov dosť slabých psychológov, súdiac podľa toho aký majú achievementy na mňa efekt. :p)

Demo - brm achievement generator™!

Čo sa týka programovania, budeme chciet písať text na obrázok pomocou knižnice GD a odosielať ho ako PNG, plus využijeme nejaký ten URL shortener, aby vaša "obeť" nevidela čo jej to posielate. Všetko samozrejme pôjde cez AJAX.