Daily Archive for January 28th, 2011

NZ2009 – On the turning away [restored post]

Ez most olyan hosszan mutogatós, nyugis és természetesen sok-sok vizes lett. Aki még mindig fennakadna azon, hogy túl sok benne a víz, azt hadd emlékeztessem rögtön 2 dologra:

  • búvár vagyok, ergo szeretem a vizet
  • Új Zéland szigetország (=baromi sok víz körbe-körbe), sőt, egyesek szerint egyenesen zátony :)

Ezek után nézheted:

NZ2009 - On the turning away from Gabor Penoff on Vimeo.

Augmented Reality: Layar [restored post]

Alig írtam meg az előző postot a Wikitude-ról, máris itt a Layar (pontosabban Layar Reality Browser), az Android platformon nagy lelkesedést kiváltó AR alkalmazás iPhone-ra:

A Layar iPhone 3GS-t kíván, valamint legalább 3.1-es firmware-t. Ha mindez megvan, indulhat a mandula. Stílusosan kipróbáltam itt helyben Baján: a “hentes” keresőszóra 5 km-es körzetben azonnal ledobálta körém az összes bajai hentest!

Alapban a Layar local search fedőnevű Google search engine hozza nekünk a találatokat, de csillió más adatbázisból választhatunk: Panoramio, Twitter, Wikipedia, Flickr, Qype, Yelp, et cetera.

Egy próbát mindenképp megér!

Merüljünk érdekes adatokba #8 – a polip [restored post]

A post a TintaPOP-ra való, így oda is került – menjél, olvassad!

Szupercukiság: Karmic Koala [restored post]

Tegnap jelent meg az Ubuntu Linux 9.10 – Karmic Koala disztibúció. Ennek tiszteletére gondoltam összerakok egy szupercukiság klipet az áprilisban Ausztráliában látott macikból – íme, fogyasszátok szeretettel:

AU2009 - Karmic Koala from Gabor Penoff on Vimeo.

SzuperCukiság: qtycic [restored post]

A servert takarítva találtam rá a videóra – nagyon régi, talán 160×128-as MPEG volt az alapanyag, pár kódolási buggal megtűzdelve, amiért előre mea culpa.
Mindettől függetlenül azonban szerintem szerethető a content (különös tekintettel arra, hogy május 22-én megboldogult Süti kutyánk is feltűnik benne), így feltöltöttem, fogyasszátok:

Pets from Gabor Penoff on Vimeo.

Week() [restored post]

A feladat: számoljuk ki egy dátumból, hogy hanyadik hétre esik.

A megoldás: szenvedtem vele egy darabig, mire meglett, de végre kész, átlátható, működik – ha szükséged van rá, használd egészséggel! Nézzük a macit:

A hét számának kitalálásához két paramétert kell figyelembe venni:

a hét melyik nappal kezdődik
melyik hét számít az év első hetének
Az első paraméter természetesen 7-féle lehet, míg a második, az év első hetének számítási algoritmusánál háromféle eset lehetséges:

az év első hete a január 1-jét tartalmazó hét:
az év első hete az első, legalább 4 nap hosszú hét
az év első hete az első teljes, 7 nap hosszú hét
Nem 7 napos hetektől és minden egyéb hisztitől most eltekintünk. Ha ezek megvannak, akkor ki tudjuk számolni a kérdéses hét számát a következőképpen:

kiszámoljuk, hogy a kérdéses dátum az év hanyadik napja
kiszámoljuk, hogy január 1-jéhez képest milyen irányban hány napnyira van az év első hetének első napja
a két fenti értékből egy egyszerű osztással megkapjuk a keresett hét számát
A feladatot most C-ben kellett megoldani, ahol a time.h include ajándékba adja nekünk a mktime függvényt, ami a dátumból kiszámolja jól, hogy az az év hanyadik napjára esik, így erre nem írunk extra algoritmust.
Az első hét első napjának január 1-hez viszonyított offsetét azonban a hétszámolási algoritmusnak megfelelően háromféleképpen kell számolni. Nézzük meg a három esetet randa táblázatokban! A három mátrix azt mutatja, hogy az év első hetének első napja és január elseje hány nap távolságnyira vannak egymástól – a sorokban az első fizikai héten belüli nap, az oszlopokban a január elsejei heti nap szerepel.

Az első hét a január 1-jét tartalmazó hét:

Su Mo Tu We Th Fr Sa
Su 0 -1 -2 -3 -4 -5 -6
Mo -6 0 -1 -2 -3 -4 -5
Tu -5 -6 0 -1 -2 -3 -4
We -4 -5 -6 0 -1 -2 -3
Th -3 -4 -5 -6 0 -1 -2
Fr -2 -3 -4 -5 -6 0 -1
Sa -1 -2 -3 -4 -5 -6 0

Az első hét az első, legalább 4 nap hosszú hét:

Su Mo Tu We Th Fr Sa
Su 0 -1 -2 -3 3 2 1
Tu 1 0 -1 -2 -3 3 2
We 2 1 0 -1 -2 -3 3
Th 3 2 1 0 -1 -2 -3
Fr -3 3 2 1 0 -1 -2
Sa -1 -2 -3 3 2 1 0

Az első hét az első teljes, 7 nap hosszú hét:

Su Mo Tu We Th Fr Sa
Su 0 6 5 4 3 2 1
Mo 1 0 6 5 4 3 2
Tu 2 1 0 6 5 4 3
We 3 2 1 0 6 5 4
Th 4 3 2 1 0 6 5
Fr 5 4 3 2 1 0 6
Sa 6 5 4 3 2 1 0

A három táblától megzakkanva nézzük meg az algoritmust:

/* a datetime struktúra így néz ki:
typedef struct s_datetime {
	int year;
	int month;
	int day;
	int dow;
	int doy;
	int woy;
	int hour;
	int minute;
	int second;
} datetime;
*/
 
int getDoy(int y, int m, int d) {
 
	struct tm t;
 
	// get dow from date
	t.tm_year  = y - 1900;
	t.tm_mon   = m - 1;
	t.tm_mday  = d;
 
	t.tm_hour  = 0;
	t.tm_min   = 0;
	t.tm_sec   = 0;
 
	mktime(&t);
 
	return(t.tm_yday);
 
}	// getDoy()
 
void calcDateTime(datetime* pillanat, int week1Rule, int weekStartsOn) {
 
	int week1offset, jan1dow, dayCount;
 
	// get dow from date
	pillanat->doy = getDoy(pillanat->year, pillanat->month, pillanat->day);
	pillanat->dow = getDow(pillanat->year, pillanat->month, pillanat->day);
 
	// get dow for jan1
	jan1dow = getDow(pillanat->year, 1, 1);
 
	// get offset for first day of first week comparing to 1st of january
	switch (week1Rule) {
	case 1: // first week includes jan1
		week1offset = (weekStartsOn - jan1dow) <= 0 ? weekStartsOn - jan1dow : weekStartsOn - jan1dow - 7; 
		break;
	case 4: // first week is min. 4 days long
		week1offset = (weekStartsOn - jan1dow) < 4 ? weekStartsOn - jan1dow : weekStartsOn - jan1dow - 7; 
		break;
	case 7: // first week is the first full (7 day long) week
		week1offset = (weekStartsOn - jan1dow) >= 0 ? weekStartsOn - jan1dow : weekStartsOn - jan1dow + 7; 
		break;
	}
 
	// calculate number of days between dates
	dayCount = pillanat->doy - week1offset;
 
	pillanat->woy = ((6 + dayCount) / 7);
} //calcDateTime()

Így utólag végignézve a kódot, baromi rövid lett ahhoz képest, amennyit izmoztam vele :)

Asztalos Anett, a bajnok [restored post]

BúvárÉvi lánya Baján versenyzett a hétvégén. Elmentem elvinni egy pár cuccot neki, aztán végignéztem az összes meccsét – zsinórban megnyerte mindet a nagylány!

A magam suta módján ezzel a rövid klippel tisztelegnék Anett győzelme előtt (Anett piros (piros = aka = 赤) övben):

Karate from Gabor Penoff on Vimeo.

Aotearoa in pictures [restored post]

New Zealand, képek, Goran Bragovic zenéje – 720p-ben a vimeo.com-ról szedhető. Enjoy:

Aotearoa in pictures from Gabor Penoff on Vimeo.

Uj Péternek és Pappitonak szeretettel [restored post]

Most találtam a bajai SPAR-ban és bár mocskos drágán mérik, azonnal invesztáltam ~700 HUF körüli pénzt egybe, hogy bizonyítsam: Bivalyröcsögére is ideért végre a vegytiszta tudomány:

Update: 2011-ben a termék ára elérte a rabló 1000 HUF határt.

Merüljünk érdekes adatokba #9 – a komodói varánusz [restored post]

Ma az indonéz szigetvilágban őshonos (és mára veszélyeztetett) komodói varánuszról (Varanus komodoensis) lesz szó, de mivel nagyon hosszú neve van, én most rövidítésképpen elnevezném őt Bélának.

komodo-dragon

Béla egy rendesre megnőtt gyík – a kifejlett példányok 2-3 méter körüliek és 70-80 kilót nyomnak (a varánuszfélék a legnagyobbak a közel 3000 gyíkféle között).
A farkuk a testükkel nagyjából megegyező hosszúságú. Szájukban kb 60, gyakran váltott, 1-2 centis, a cápákéhoz hasonló erős recés fog ül, melyekkel csak tépni tudnak, rágni képtelenek.

komodo-dragon-skull

Igazi mindenevők: a teknőstojásoktól kezdve a kisebb állatokon át a dögökig mindent megkajálnak (kiássák a túl sekély sírba temetett holttesteket is, hisz nekik az is csak kaja), sokszor kisebb fajtársaikat sem kímélik. Potenciális veszélyt jelentenek az emberre is – több regisztrált eset bizonyítja, hogy nem vetik meg az állítólag édeskés homo sapienst sem. Azért ne felejtsük el: nem az emberhús tetszett meg nekik – sokkal inkább arról van szó, hogy valamilyen “áldásos” emberi tevékenység következtében lecsökkent a számukra táplálékot jelentő populáció.

Nappal vadásznak, éjjel barlangokba húzódnak vissza. Általában lesből támadnak és gyakran az áldozat nyakába harapnak, vagy igyekeznek a belső szerveket egycsapásra kitépni. 80 kilós izomgép létükre kicsit alattomosnak tűnő technikát használnak a zsákmányszerzéshez. A nyálukban közel 50 különböző baktériumtörzs él, plusz a szájukban speckó méregmirigy van, s az áldozatot megharapva gyakorlatilag megmérgezik azt (a méreg ráadásnak a kígyókéhoz hasonlóan véralvadásgátló plusz értágító anyagot tartalmaz). Ezek után már csak ki kell várniuk, amíg a még lábon álló kaja annyira legyengül, hogy nekikezdhessenek. Nem egy látványos, ám annál hatékonyabb módszer.

Nagy zabagépek: egyszerre saját testtömegük akár 70%-át képesek felzabálni – ehhez “kinyúlik” a bőrük és rendes pocakot növesztenek a betermelt kaja pufferelésére. Amikor éhesek, teljesen elvakulnak és szó szerint mindent megzabálnak a zsákmányból: az agancsos állatokat agancsostól nyelik be.
A saját méretükkel megegyező nagyságú áldozatnak gond nélkül nekimennek egyedül is, de a nagyobb testű prédára (ilyenek az egyébként hatalmas vízibivalyok) falkában vadásznak.

Támadás előtt Béla a fejét a földhöz lapítja, teste hátsó részét a farkával együtt picit felemeli – már ha álló helyzetből megy neki az áldozatának. Ha nekifut, akkor viszont lehet szedni a nyúlcipőt: 18 km/h sebességgel képes nekiiramodni. Ettől már csak úszni tud jobban (gondolj csak a rettenetes méretű izmos farkára – ööö, ez most vulgárisnak tűnik, pedig nem az).

Mivel rágni ezzel a fogazattal képtelenek, a kitépett nagy darabokat egyben nyelik le. A nyelvük alatt egy kis “légzőcső” található, mely a tüdejükkel van közvetlen összeköttetésben. Ez akadályozza meg, hogy a torkukon akadt túl nagy falat esetleg megfojtsa őket.

Hallásuk gyenge. Látni ugyan majd 300 méterre ellátnak, azonban a szemükben csak csapok vannak (a Tiedben vannak még pálcikák is… tényleg, az megvan, hogy a csigaházas polipok közé tartozó Nautilusoknak kulcslyuk alakú a szemük?) és inkább a mozgó dolgokat veszik könnyebben észre.
Hosszú sárga villás nyelvüket úgy öltögetik, mint a kígyók: sztereóban szagolnak vele. Na ezt nézzük meg jobban!

Van nekik egy Jacobson-szervnek nevezett cuccuk az orrmelléküregben:

Jacobson szerv

Ezzel a szervvel a Béla a feromonokat képes detektálni. A feromon olyan vegyület, amit a szervezet magából kiválasztva a faj más egyedeiből viselkedésbeli reakciót képes kiváltani – lényegében egy kémiai kommunikációs forma. Feromonok a rovaroktól az emberig sok fajban megtalálhatók.
Amikor a macsek/kutya szimatol, az orrmozgása ennek a szervnek adagolja a beszippantott illatot. Béláinknak ez a “hatodik érzék” segít tájékozódni a sötétben.
Természetesen a suta fül/benga szem kombináció mellé jár nekik a rendes szaglás. A dögöt akár 10 km (!) távolságból megérzik – azonban nem a szaga, hanem meglepő módon a levegőben érkező molekulák “íze” vezeti őket nyomra, szaglóhámuk ugyanis nincsen.

komodo-dragon-feeding

Szaporodásukhoz nincs feltétlenül szükség hímre: a nőstény saját maga egyedül képes utódokat nemzeni. Persze nem ez a default, csak hímhiány esetén él ez a protokol, különben meg a szokásos kemény csatás szex megy:
A hímek hánynak/ürítenek egyet csata előtt, ezzel jelezve, hogy készek a megmérettetésre. Ezek után jön a bunyó, melyből az aktuális csajért kizárólag egy hím kerülhet ki győztesen.
Szeptemberben a nőstény Bélák akkora üreget ásnak, hogy maguk is kényelmesen elférjenek benne (vagy lenyúlják a Narancslábú Ásótyúk által elhagyott fészket erre a célra), s ebbe a fészekbe kb. 20-30 tojást raknak, melyekből áprilisra jön ki a kisBéla.
Az üreget betemetik és a kisBélák megszületéséig folyamatosan őrzik – ez idő alatt kajálni sem megy el az anya: teste a farkában raktározott zsírból él.
A kisBélákból 3-5 év alatt lesz felnőtt és jó esetben 50 éves kort érnek meg – ehhez persze az kell, hogy a fiatal időszakban ne kajálja be őket egy rokon.

Ha Bélát szeretnél látni, ahhoz nem kell Indonéziáig repülni: tavaly áprilisban a budapesti Állatkert is beszerzett egy példányt.

Végül, de nem utolsó sorban a fentieket átgondolva keressünk bátornak látszó emberről és Béláról készült képet a neten, hátha akad:

people-on-komodo-dragon

Közelebbről szemügyre véve a fotót, azon természetesen csak egy bronzból készült szobrot látunk, nem pedig egy komodói sárkányra tévedt Taigetos pozitívat.