webrebel zaklady programovania a oop objektovo orientované programovanie

Minimalistické hodiny + stav baterky pre Windows 7

napísal , 5 Nov 2011

Pri poslednom upratovaní plochy som zistil, že najväčší neporiadok mi na nej robili "gadgety". To sú tie kalendáriky, počasia a podobné srandy. Všetky pôsobili strašne "vytrhnutým" dojmom, teda že sa na plochu vôbec nehodia. Pôvodne som chcel z nich len poodstraňovať pozadia, ale nejak to nefungovalo a nakoniec som skončil s úplne vlastnými gadgetmi. A keď už som ich robil, prečo sa nepodeliť, že? :)

Prvý gadget sú obrovské digitálne hodiny (800x350px) s voliteľným dátumom. Zámer bol spraviť ich tak, aby splývali s plochou, boli veľké a napriek tomu pôsobili minimalisticky. Skončilo to pri niečom, čo pripomína štýl Windows 8 (Metro). Farbu, rozmazanie a priesvitnosť si môžete nastaviť podľa ľubovôle, rovnako ako aj zarovnanie na pravú alebo ľavú stranu.

Druhý gadget je ukazovateľ stavu baterky notebooku. Nastavenia sú podobné ako pri hodinách s jedným bonusom navyše - gadget sa vie automaticky skrývať keď je baterka plne nabitá (alebo vybratá).

Gadgety si nainštalujete velice jednoducho, stačí ich stiahnuť a 2x na ne kliknúť. Testované boli na Windows 7 s IE9, ale mali by fungovať aj na Viste.

Linky na stiahnutie

Digitálne hodiny + dátum (SK)
Stav baterky (SK)

a anglické verzie (tie som vlastne spravil ako prvé)

Digital clock + date (EN)
Battery gadget (EN)

Stories of Your Life: and Others

napísal , 26 Oct 2011

book

Aký typ človeka si?

Predstav si, že vieš, čo bude o 5 rokov. Predstav si, že dostaneš náhľad do budúcnosti a presne vieš, na čom budeš. Späť v tvojej časovej línii máš partnera. Je pre teba všetkým, miluješ ho celou svojou bytosťou. Kuk do budúcnosti a vieš, že o 5 rokov nie ste spolu. Má niekoho iného, možno svadba, možno nie... je to jedno. Nie si to ty.

Predstav si, že to vieš a je to nevyvrátiteľná pravda. Vieš to, nemôžeš nevedieť. Dokázal by si si tých zvyšných 5 rokov vychutnať? Aký typ človeka si? Akceptoval by si situáciu, zabudol na budúcnosť a snažil sa z toho spraviť najlepších možných 5 rokov? Alebo by si ich strávil neustálym pochybovaním... "Je toto ono? Dosral som to, práve teraz? Je toto dôvod?"

Demoscéna - obskúrne moderné umenie?

napísal , 12 Oct 2011

chaos_theory

Keď sa povie demo, normálny človek si predstaví malú skúšobnú verziu programu alebo hry. Malá skupina nenormálnych ľudí má ale na mysli niečo úplne iné. Niečo oveľa zaujímavejšie. Niečo exotické, skryté pred zrakom ostatného sveta. "Nenormálne" demo tiež existuje vo svete počítačov. Zvyčajne má podobu jedného spustiteľného súboru, v ktorom je obsiahnuté všetko potrebné na to, aby sa začala diať vizuálna a zvuková mágia.

Inak povedané, demo si môžete predstaviť ako hudobné video, ktoré je generované v reálnom čase (často vrátane hudby). Demo je vec, ktorá vznikne keď dáte dokopy hackerov a umenie. Existujú už od čias prvých grafických počítačov a ich úlohou je ukázať čo všetko dokáže daný hardvér a čoho sú schopní programátori, grafici a hudobníci.

Netvoria ich výrobcovia hardvéru. Tvorí ich skupinka nadšencov kolektívne nazývaná ako "Demoscene". Zaujímavé je, že demoscéna existuje prakticky len v Európe a dokonca sú organizované pomerne veľké (pár tisíc účastníkov) underground súťaže - demoparties. Vyhrať sa na nich nedá nič, jedine ak nehynúca sláva :) Ťažko povedať aká veľká je scéna. S určitosťou iba viem, že do dnešného dňa bolo vytvorených cez 40 000 diem.

Okrem vytvorenia čo najpôsobivejších efektov, o ktoré sa snažia demá, existuje druhá kategória, tzv. intrá. Keď už nebola dostatočná výzva vytvárať neuveriteľné efekty, pár šialencov si to sťažilo a dali si za cieľ napratať čo najviac obsahu do extrémne obmedzenej veľkosti. Typické obmedzenia sú 64 kilobajtov, 4 kB a dokonca 256 bajtov! Oproti dnešným tlstým vypaseným programom sú takéto veľkosti naozaj neskutočné. Porovnajte si to. Do 64K sa zmestí pri najlepšej vôli malinký JPG obrázoček a tu máme ľudí, čo vedia do rovnakej veľkosti napchať 10 minútový príbeh aj s hudbou. Alebo 256 bajtov. To je menej ako 2 tweety. Po tom, čo som videl koľko sa dá vpratať do tak malej veľkosti, mi je na zaplakanie, že nový Windows má 12GB (a Mac OS nie je na tom o nič lepšie).

CSSkové trojuholníky a bubliny

napísal , 13 Jul 2011
Počul som, že horíš nedočkavosťou vedieť ako robiť takéto bubliny s trojuholníkmi v CSS bez použitia obrázkov!
Hm, to znie ako riadna kravina, povedz mi o tom viac.
Nuž.. všetko to začalo obyčajným štvorcom, ktorý mal "border"...

Ale nevedel som, že...

napísal , 20 Jun 2011

Na prvý pohľad to nemusí byť evidentné, ale som prevažne negatívna nátura;) Pesimista, nezriedka. Cynik, občas. Skeptik.

Tieto vlastnosti som vždy považoval za prepojené a bol som za ne rád. Mal som totiž pocit, že ma nútia kriticky myslieť, analyzovať situácie a premýšľať nad dôvodmi a možnosťami. Vlastnosti, ktoré - mal som pocit - mnohým chýbajú.

Štandardný postup, napr. pri nástupe nových technológií, bolo ich zamietnuť. Odsúdiť, pretože boli iné ako tie, na ktoré som bol zvyknutý. Dlhé roky som sa preto držal starých Windowsov a Office-ov, pretože neboli nové. To mi ale časom zrejme prišlo ako nedostatočný dôvod sa ich odmietanie, tak som začal skúmať, analyzovať a hľadať dôvody, ktoré by mi dovolili kľudne ďalej neznášať. Postupom času sa mi podarilo priblížiť sa zdravým ľudom a začal som si všímať a hľadať aj pozitíva. Skepticizmus však zostával a nie tá zdravá varianta. Väčšina noviniek (vecí, ľudí) u mňa stále začínala v mínuse a musela pracovať na tom, aby dosiahla neutrálu.

Vždy som mal dojem, že ľudia jednoducho akceptujú všetko, čo im je podhodené. Preto počúvajú tú zlobu v rádiách, preto hrajú tisícu verziu Need for Speedu, obliekajú sa všetci rovnako a čítajú Danielle Steele-ovú. Prišlo mi ako dobrý nápad zabarikádovať sa na opačnej stane a vehementne opovrhovať. A analyzovať a skúmať, aby som to mal čím podložiť. Aby som mal nad "nimi" na vrch. Aby som bol zaručene "lepší".

S týmto súvisí viacero problémov (no shit, huh?).

Strčte si tie definície do... počítača

napísal , 13 May 2011

Keď sa mám niečo v škole naučiť, potrebujem vedieť:

1. na čo je to dobré
2. ako sa to robí
3. prečo by ma to malo zaujímať (big picture)

Prečo sa to robí tak ako sa to robí, prečo sa to nerobí inak a ako by som to zapísal v matematických klikihákoch - teda všetky dôkazy, vety a definície - sú druhoradé. Druhoradé pre tých, ktorým imponuje teoretická matematika. Ostatní to majú prudko u prdele, prípadne ich to spoľahlivo odradí od celej problematiky.

Matematika je ideálny príklad. Prečo sa jej ľudia boja? Prečo im nejde? Sú blbí? Nie, len nevidia dôvod, prečo mali lúštiť tie "hieroglyfy". Prečo by sa mali učiť novú reč, keď už minimálne jednu - funkčnú a na tento problém plne postačujúcu - majú?

Ak sa mám naučiť postup riešenia problému, nájdem si človeka čo tomu rozumie a vie mi to pekne vysvetliť. Slovenčinou. Angličtinou. Čímkoľvek, zoberiem aj Esperanto, len nech je to ľudská reč! Lúštenie definícií je posledná možnosť a dosť možno sa na celý problém vykašlem predtým, ako sa k tomu uchýlim. Tak dôležité a užitočné to zväčša aj tak nebude.

Normálnou rečou písané knihy na školách samozrejme nikdy neuvidím. To by múdri ľudia predsa nedovolili. Dôvod? Znelo by to "ako pre debilov"? Nuž, možno práve to sme... a? Neznelo by to odborne? Uhm, čo je dôležité, či to znie múdro alebo či ma to niečo naučí? Ale tak hovoríme o školách, tu bola forma vždy dôležitejšia ako obsah... Je to "pod úroveň"? A čo je úroveň? Keď je niekto sprdnutý učiteľom za to, že na hodine nedokázal dokázať nejaký abstraktný matematický koncept? Keď ani nevie, na čo to vlastne celé je?

Školy musia pochopiť, že tieto ultra presné definície a postupy sú vhodné pre roboty a počítače*. A pre hŕstku ľudí, ktorým tento spôsob prirodzene vyhovuje a pomáha. Ale podľa toho čo som zatiaľ videl sú títo v ťažkej menšine. Menšina, ktorá na školách líže smotanu kým my ostatní sa snažíme držať tempo a krok. Prípadne nesnažíme.

Niečo tu nesedí.


* samozrejme keď som prudký borec a potrebujem na vedomostiach stavať a šíriť poznatky s kolegami, sú definície a matematické zápisy super vec - vtedy totiž potrebujem mať všetko definované presne a ideálne v čo najkratšej možnej forme. Ale pre boha živého nie keď som obyčajný človek čo sa snaží naučiť "ako na to".

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.

...78910111213141516...