<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>‹Webakadémia /› &#187; webfejlesztés</title>
	<atom:link href="http://webakademia.hu/category/webfejlesztes/feed/" rel="self" type="application/rss+xml" />
	<link>http://webakademia.hu</link>
	<description>/ András webkettőt fejleszt /</description>
	<lastBuildDate>Mon, 26 Dec 2011 13:01:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Tanulni, tanulni, tanulni</title>
		<link>http://webakademia.hu/2011/12/tanulni-tanulni-tanulni/</link>
		<comments>http://webakademia.hu/2011/12/tanulni-tanulni-tanulni/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 14:23:15 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[személyes]]></category>
		<category><![CDATA[webfejlesztés]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=563</guid>
		<description><![CDATA[Sikerült úgy alakítanom a szabadságaim, hogy szinte teljes decemberben szabadságon leszek. Unatkozni nem fogok, mert hamarosan megszületik második gyermekünk, és már csak emiatt is van itthon segíteni való a születés előtt is, utána pedig pláne (január legelejére vagyunk &#8220;kiírva&#8221;, de hetekkel előbbre várjuk a kissrácot). Emellett azonban úgy gondoltam, hogy egy komolyabb tanulást is lenyomok [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Sikerült úgy alakítanom a szabadságaim, hogy szinte teljes decemberben szabadságon leszek. Unatkozni nem fogok, mert hamarosan megszületik második gyermekünk, és már csak emiatt is van itthon segíteni való a születés előtt is, utána pedig pláne (január legelejére vagyunk &#8220;kiírva&#8221;, de hetekkel előbbre várjuk a kissrácot). Emellett azonban úgy gondoltam, hogy egy komolyabb tanulást is lenyomok decemberben, amennyire időm engedni fogja majd.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-565" title="iOS5" src="http://webakademia.hu/wp-content/ios5.jpg" alt="" width="500" height="300" /></p>
<p>&nbsp;</p>
<p>A folyamatos tanulás egy jó webfejlesztőnél életmód jelleggel működik, a terveim viszont most egy igen intenzív hónapról szólnak. Szeretném elsajátítani az iOS/Mac fejlesztést úgy, hogy komoly programokat is le tudjak tenni az asztalra, és a Symfony 2-től a JavaScripttel kapcsolatos újdonságokig szeretnék további mély ismereteket összeszedni. A célok között szerepel az is, hogy kialakítsak egy olyan felállást, mely biztosítja azt, hogy a jövőben több tanulásra legyen lehetőségem a munka mellett is.</p>
<p>A kérdés, hogy milyen módon lehet a legtöbb tudást összeszedni? Úgy döntöttem, hogy első körben több tucatnyi órányi videóanyag megnézésével, és feldolgozásával fogom kezdeni.</p>
<p><strong>iOS/Mac fejlesztés</strong></p>
<p>Tősgyökeres webfejlesztőként érdekes nézőpontváltást jelent a mobil/desktop vonal felfedezése. A napi szinten is használható tudás elsajátítása melett pont egy ilyen teljesen új nézőpont meglépése is a célom, amitől azt várom, hogy más szemmel fogok tudni utána tekinteni a webfejlesztésre is. Az iOS/Mac fejlesztéshez az Objective C elsajátítása az első lépés, melytől egy kis C-s tudás megszerzését is várom, illetve az OO programozásban egy előrelépést.</p>
<p>Első blikkre az Objective C szintakszisa elég gáz (&#8220;szokatlan&#8221;), de sikerült felidéznem magamban azt az időszakot, amikor a Mac-kel ismerkedtem, és jópár dolog itt is &#8220;stevejobsi&#8221; módon idegen volt a Windows/Linux felől érkezve. Ahogyan akkor is pár nap / hét alatt sikerült túllendülni a szokatlanságon, most is így voltam vele, és még csak belekezdtem a tanulásba, de máris kezd tetszeni az egész környezet, és a nyelv lehetőségei.</p>
<p>Úgy látom, hogy a Delphivel szerzett tapasztalataim is segíteni fognak, az Xcode fejlesztés egyáltalán nem áll messze a több, mint tíz éve porosodó desktopos tapasztalataimtól. Abban az időszakban nem igazán sikerült semmi maradandó desktoposat letennem az asztalra, és nem is ezt, hanem a webfejlesztés irányt választottam, így a &#8220;komoly programokat is le tudjak tenni&#8221; nem kis kihívásnak tűnik.</p>
<p>Ígéretes anyagnak tűnnek az <a href="http://itunes.apple.com/itunes-u/">iTunes University</a>-n fellelhetőek, ezek közül is a kiemelkedik a <a href="http://itunes.apple.com/itunes-u/ipad-iphone-application-development/id473757255">Stanford University-n tanító Paul Hegarty kurzusa</a>, mely jelenleg is zajlik, s folyamatosan kerülnek fel az anyagok. Nagyságrendileg alapból 20-30 órányi megnézendő videóról van szó, amit utána végig is kell gyakorolni, és a házi feladatokat is érdemes lesz végigvinni, hogy elsajátítsam a céloknak megfelelő tudást &#8211; szóval nem egy gyorstalpalóról beszélünk. A következő kör további egyetemek előadóitól, illetve az Apple-től származó anyagok feldolgozása lehet. Sokat segít, hogy a gépemen, az iPad-emen és még az első generációs iPod Touchomon is tudom nézni a videókat. Nem utolsó sorban az angolomnak sem árt, ha egy ennyi videót feldolgozok.</p>
<p>Két-három értelmes, de nem egetverően bonyolult alkalmazás ötlet is van, meglátjuk meddig jutok velük.</p>
<p><strong>Egyebek</strong></p>
<p>Az egyéb tanulandókat is szeretném videók, prezentációk feldolgozásával kezdeni. Elég sok olyan konferenciaanyag gyűlt össze, melyek végignézésére a napi teendők mellett egyszerűen nem jutott időm, ezek végignézésére, kipróbálására most sort tudok majd keríteni. Ezeket megpróbálom majd blogbejegyzés keretében is összegyűjteni.</p>
<p>A jövőbeni tanulások biztosításához olyan megoldásokat keresek, melyek az eddig &#8220;elvesztegetett&#8221; időimet tudják hasznossá tenni, mint például az utazással eltöltöttek. A különböző prezentációk, videók offline, iPod Touch-on, iPad-en elérhetőségét, valamilyen közös nevezőre konvertálás lehetőségeit próbálom majd megcélozni.</p>
<hr />
<p><small>&copy; admin for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2011. |
<a href="http://webakademia.hu/2011/12/tanulni-tanulni-tanulni/">Permalink</a> |
<a href="http://webakademia.hu/2011/12/tanulni-tanulni-tanulni/#comments">4 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2011/12/tanulni-tanulni-tanulni/&amp;title=Tanulni, tanulni, tanulni">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2011/12/tanulni-tanulni-tanulni/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>HipHop, avagy gyors PHP a Facebooktól</title>
		<link>http://webakademia.hu/2010/02/hiphop-avagy-gyors-php-facebooktol/</link>
		<comments>http://webakademia.hu/2010/02/hiphop-avagy-gyors-php-facebooktol/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 14:13:17 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[webadmin]]></category>
		<category><![CDATA[webfejlesztés]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=524</guid>
		<description><![CDATA[A napokban be lett harangozva (bár még nem jelent meg a cég nyílt forrású projektjei között, de dolgoznak rajta), hogy a Facebooktól egy a PHP sebességét megsokszorozó fejlesztést fogunk kapni. A HipHop for PHP nevű projektnek bár vannak viszonylagosan komoly kötöttségei, de egyrészt ezzel együtt is nagyon hasznosnak tűnik, márészt a PHP-nak bármilyen jellegű frissítés, [...]]]></description>
			<content:encoded><![CDATA[<p>A napokban <a href="http://www.insidefacebook.com/2010/02/02/facebook-open-sources-hiphop-php-compiler-software/">be lett harangozva</a> (bár még nem jelent meg a <a href="http://github.com/facebook">cég nyílt forrású projektjei között</a>, de <a href="http://groups.google.com/group/hiphop-php-dev/browse_thread/thread/c63edd95f6cc5cfa">dolgoznak rajta</a>), hogy a Facebooktól egy a PHP sebességét megsokszorozó fejlesztést fogunk kapni. A <strong>HipHop for PHP</strong> nevű projektnek bár vannak viszonylagosan komoly kötöttségei, de egyrészt ezzel együtt is nagyon hasznosnak tűnik, márészt a PHP-nak <em>bármilyen</em> jellegű frissítés, új vérvonal csak jót tehet.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-525" title="hiphop-php" src="http://webakademia.hu/wp-content/hiphop-php.png" alt="hiphop-php" width="500" height="325" /></p>
<p>A HipHop for PHP a gyakorlatban egy C++ fordító, illetve webszerver funkciót lát el. A Facebook azért fejlesztette ki, mert sem a PHP memóriafoglalásával, sebességével, sem a kódok más nyelvi környezetben felhasználhatóságával, s a kiterjesztések programozhatóságával nem voltak túl elégedettek, másfelől viszont már van egy hatalmas PHP-ben írt kódbázisuk, és a tanulhatósága is jó a nyelvnek.</p>
<p style="text-align: left;">Érdemes megnézni a prezentációjukat:<br />
<object id="doc_714465853601675" style="outline:none;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="600" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="doc_714465853601675" /><param name="wmode" value="opaque" /><param name="bgcolor" value="#ffffff" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="FlashVars" value="document_id=26375470&amp;access_key=key-14w9gnkcl70nrxpv3aet&amp;page=1&amp;viewMode=slideshow" /><param name="src" value="http://d1.scribdassets.com/ScribdViewer.swf" /><param name="flashvars" value="document_id=26375470&amp;access_key=key-14w9gnkcl70nrxpv3aet&amp;page=1&amp;viewMode=slideshow" /><param name="allowfullscreen" value="true" /><embed id="doc_714465853601675" style="outline:none;" type="application/x-shockwave-flash" width="100%" height="600" src="http://d1.scribdassets.com/ScribdViewer.swf" flashvars="document_id=26375470&amp;access_key=key-14w9gnkcl70nrxpv3aet&amp;page=1&amp;viewMode=slideshow" allowscriptaccess="always" allowfullscreen="true" bgcolor="#ffffff" wmode="opaque" name="doc_714465853601675"></embed></object></p>
<p>Illetve én is megpróbáltam összeszedni, hogy milyen gyakorlati különbségek vannak a HipHop és az eddig megszokott, Zend Engine-es PHP között:</p>
<p><strong>C++-ra fordít</strong></p>
<p>A HipHop a PHP forráskódot egy optimalizált C++ kódra írja át, melyet aztán a G++ fordítóval lehet futtatható kóddá alakítani. A nyelvi elemek, a teljes PHP-ben a programozó számára elérhető kódkörnyezet egy jól optimalizált C++ kódban testesül meg az átírás végére, melynek a PHP kódjához ezután nem sok köze van. Néhány &#8211; általában ritkán használt &#8211; funkció (legfőképpen a PHP kódból dinamikusan új kód előállítását megcélzóak): eval(), create_function(), a preg_replace &#8220;e&#8221; kapcsolója be lett áldozva a teljesítmény oltárán, mindazonáltal pár dolog, mint a call_user_func(), dinamikus változók, extract() megmaradtak. A hiányzó függvények miatt pár népszerű framework (konkrétan a Symfony felől hallottam ilyen véleményeket) várhatóan nem fog működni HipHoppal. Kérdés, hogy ki alkalmazkodik majd kihez, mennyit jelent majd a gyakorlatban a HipHop sebességnövekedése, s mennyire lesz kényelmesen használható &#8211; ezek majd a kód közzététele, és a lehetőségek pontos megismerése után derülnek ki.</p>
<p>Ami a sebesség növekedést illeti, a Facebook webes forgalmánál 50%-kal kevesebb processzor használatot tapasztaltak ugyanakkora, az API-nál 30%-kal kevesebb processzor használatot dupla forgalom mellett. Ezek nem feltétlenül tűnnek hatalmas számoknak, de ha belegondolunk, hogy több, mint 30.000 szerverük van (2009 októberi adat), akkor mindjárt komoly spórolásról beszélhetünk.</p>
<p><strong>Fejlesztőkörnyezet</strong></p>
<p>A fordítás a kód méretétől függően várhatóan nem tizedmásodperces, másodperces sebességű lesz, így leginkább egy deploy folyamatba lesz beilleszthető. Ez így nehézkes lenne fejlesztés közben, így elkészült egy HPHPi névre hallgató interpreter is, ahol kimarad a fordítgatás, így a fejlesztés könnyebbé válik. Ez a megoldás eval() függvényt is megvalósítja, de a HipHophoz közel áll.</p>
<p><strong>Deployment</strong></p>
<p>A deployment során nem PHP kódot kell a szerverekre eljuttatni, hanem egy darab lefordított, &#8220;hatalmas&#8221; bináris fájlt. Egy HipHop szerver egy processzként, threadek segítségével fog futni, leállás nélkül lehet új verzióra átállni vele.</p>
<p><strong>PHP kiterjesztések</strong></p>
<p>A Facebook programozók saját bevallásuk szerint jópár PHP kiterjesztést használnak. Nem túl tiszta számomra, hogy pontosan mely kiterjesztések lesznek a HipHoppal is használhatóak, de a fenti prezentációban 100.000 sornyi kiterjesztés függvényről beszélnek, mely a HipHop részét képezi &#8211; ezzel gondolom jópár kiterjesztés le van fedve.</p>
<p><strong>Beépített webszerver</strong></p>
<p>A HipHop saját webszerverrel rendelkezik, ami az én meglátásomban hatalmas előnyként jelentkezik, mindazonáltal a hoszting cégek dolgát ezzel sem könnyíti meg. Gondolom a webszerver a statikus fájlok kiszolgálására nincsen felkészítve, illetve nem feltétlenül támogatja a rewrite rule-okat, és más hasonló tipikus általános webszerver funkciókat sem, így várhatóan egy nginx/lighttpd felhúzása proxyként a HipHop elé lehet a legcélszerűbb felállás.</p>
<p><strong>Roadmap</strong></p>
<p>A HipHop PHP jelenleg az 5.2-es PHP verzióval kompatibilis, de szeretnék az 5.3-as verziót mielőbb beérni. További cél az Apache támogatása is.</p>
<p><strong>Kinek jó, kinek nem?</strong></p>
<p>Aki néhány nyílt forrású programot futtat egy hoszting cég szerverén, az várhatóan semmit sem fog profitálni a HipHop megjelenésével, sem a hoszting cégek, sem a nyílt forráskódú projekteket fejlesztők várhatóan nem fognak rövid távon átállni rá. A célcsoport sokkal inkább azok a saját nagyobb projekteket kivitelező fejlesztők, melyek jópár szerverre dolgoznak, API-t fejlesztenek, ahol a PHP kódokra jelentős terhelés jut. Ezekből adódóan a HipHop célja nem a Zend Engine lecserélése, ez egy párhuzamos vonal lesz.</p>
<p><strong>Még több olvasnivaló</strong></p>
<p>Ha valaki egy jó kis tech olvasnivalóra vágyik, akkor ajánlom neki <a href="http://terrychay.com/article/hiphop-for-faster-php.shtml">Terry Chay</a> írását, jó sok részletről lehet nála olvasni egy hosszú-hosszú blogbejegyzés keretében.</p>
<hr />
<p><small>&copy; admin for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2010. |
<a href="http://webakademia.hu/2010/02/hiphop-avagy-gyors-php-facebooktol/">Permalink</a> |
<a href="http://webakademia.hu/2010/02/hiphop-avagy-gyors-php-facebooktol/#comments">3 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2010/02/hiphop-avagy-gyors-php-facebooktol/&amp;title=HipHop, avagy gyors PHP a Facebooktól">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2010/02/hiphop-avagy-gyors-php-facebooktol/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>jQuery 1.4 újdonságok</title>
		<link>http://webakademia.hu/2010/01/jquery-1-4-ujdonsagok/</link>
		<comments>http://webakademia.hu/2010/01/jquery-1-4-ujdonsagok/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 14:58:59 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[webfejlesztés]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=515</guid>
		<description><![CDATA[Megjelent a jQuery 1.4, számos újdonsággal, mely miatt érdemes áttérni az új változatra. A legtöbb dologban visszafele kompatibilis az 1.4-es verzió, a potenciális problémák listáját azonban érdemes átnéznie annak, aki régi kódot frissít. Az újdonságokat egy prezentációban szedtem össze ezentúl, de inkább csak azokat, melyeket érdekesebbnek, izgalmasabbnak találtam: jQuery 1.4 újdonságok View more presentations from [...]]]></description>
			<content:encoded><![CDATA[<p>Megjelent a jQuery 1.4, számos újdonsággal, mely miatt érdemes áttérni az új változatra. A legtöbb dologban visszafele kompatibilis az 1.4-es verzió, a <a href="http://jquery14.com/day-01/jquery-14#backwards">potenciális problémák listáját</a> azonban érdemes átnéznie annak, aki régi kódot frissít.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-516" title="jquery-14" src="http://webakademia.hu/wp-content/jquery-14.jpg" alt="jquery-14" width="500" height="325" /></p>
<p style="text-align: left;">Az újdonságokat egy prezentációban szedtem össze ezentúl, de inkább csak azokat, melyeket érdekesebbnek, izgalmasabbnak találtam:</p>
<p id="__ss_2922266" style="text-align: center;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="jQuery 1.4 újdonságok" href="http://www.slideshare.net/ba78/jquery-14-jdonsgok">jQuery 1.4 újdonságok</a><object style="margin:0px" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jquery14-ujdonsagok-100115062936-phpapp02&amp;stripped_title=jquery-14-jdonsgok" /><param name="allowfullscreen" value="true" /><embed style="margin:0px" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jquery14-ujdonsagok-100115062936-phpapp02&amp;stripped_title=jquery-14-jdonsgok" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px; text-align: center;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/ba78">András Bártházi</a>.</div>
<p style="text-align: left;">További olvasnivalók:</p>
<ul>
<li><a href="http://jquery14.com/">14 nap jQuery</a></li>
<li><a href="http://net.tutsplus.com/tutorials/javascript-ajax/jquery-1-4-released-the-15-new-features-you-must-know/">15 újdonság a jQuery 1.4-ben</a></li>
</ul>
<hr />
<p><small>&copy; admin for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2010. |
<a href="http://webakademia.hu/2010/01/jquery-1-4-ujdonsagok/">Permalink</a> |
<a href="http://webakademia.hu/2010/01/jquery-1-4-ujdonsagok/#comments">3 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2010/01/jquery-1-4-ujdonsagok/&amp;title=jQuery 1.4 újdonságok">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2010/01/jquery-1-4-ujdonsagok/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Kiadták az EcmaScript 5-öt</title>
		<link>http://webakademia.hu/2009/12/kiadtak-az-ecmascript-5-ot/</link>
		<comments>http://webakademia.hu/2009/12/kiadtak-az-ecmascript-5-ot/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 12:06:27 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[webfejlesztés]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=510</guid>
		<description><![CDATA[Megjelent az EcmaScript 5, vagyis a JavaScript, ActionScript programozási nyelvek mögött álló szabvány legújabb változata, melyet ebben a blogbejegyzésben én most simán lejavascriptezek. Az új változat még érettebbé teszi a JavaScript nyelvet a &#8220;strict mód&#8221; bevezetésével, illetve pár kisebb-nagyobb kiegészítést hoz be a használható függvények terén. Az EcmaScript történetével úgy tűnik, hogy részben megismétlődik a [...]]]></description>
			<content:encoded><![CDATA[<p>Megjelent az <a href="http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf">EcmaScript 5</a>, vagyis a JavaScript, ActionScript programozási nyelvek mögött álló szabvány legújabb változata, melyet ebben a blogbejegyzésben én most simán lejavascriptezek. Az új változat még érettebbé teszi a JavaScript nyelvet a &#8220;strict mód&#8221; bevezetésével, illetve pár kisebb-nagyobb kiegészítést hoz be a használható függvények terén.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-511" title="docwriteisevil" src="http://webakademia.hu/wp-content/docwriteisevil.jpg" alt="docwriteisevil" width="500" height="325" /></p>
<p style="text-align: left;">Az EcmaScript történetével úgy tűnik, hogy részben megismétlődik a CSS kapcsán már látott felállás: a korábbi EcmaScript 4 változatként kiadni tervezett (de ki nem adott) verziót végül csak az ActionScript valósította meg (pedig jó dolgok voltak benne), így az EcmaScript 5 végülis az EcmaScript 3 utódjaként jelenik meg. A JavaScript motorok világa azonban pörög, ott a legfiatalabb Google V8-a (Chrome), a Mozilla TraceMonkey-ja (Firefox), az Apple Nitroja (Safari), nem beszélve a többi böngészőben megjelent, vagy böngészőktől független futtatást lehetővé tevő motorról, tehát ideje volt egy kis ráncfelvarrásnak. Pár motor már támogatja is a megjelent újdonságokat.</p>
<p style="text-align: left;"><strong>Strict mód</strong></p>
<p style="text-align: left;">A strict mód egy szigorúbb programozási stílust tesz lehetővé, kidobálva azokat a problémásabb részeket a nyelvből, melyek nem igazán váltak be, vagy egyszerűen túl lazák egy komoly programozási nyelvhez. A szigorúbb JavaScriptre a következő &#8220;paranccsal&#8221; lehet átállni:</p>
<pre style="text-align: left;">"use strict";</pre>
<p style="text-align: left;">Vegyük észre a megoldásba rejtett tökéletességet, vagyis hogy a parancs visszafele kompatibilis, a régebbi motorokban semmilyen hatása nem lesz az önmagában álló sztring literálnak. A teljes scriptünkben is használhatjuk a strict módot, de egy függvény elején megemlítve csak azon a függvényen belül is használható.</p>
<p style="text-align: left;">Az EcmaScript 5-öt támogató motorokban a következő fontosabb hatásokat váltja ki a &#8220;parancs&#8221;:</p>
<ul>
<li>A változókat használat előtt deklarálni kell a var paranccsal. Aki írt már nagyobb projekteket sok változóval, függvényekkel, és órákat debuggolta, hogy mi lehet a gond néhány furcsa hiba mögött, az tudja értékelni igazán ezt a változtatást. Egy függvényben ha nem használunk var-t, akkor a változó a globális névtérben jön létre, s ha mindezt két függvénynél is megtesszük, melyek pluszban még egymást is hivogatják, a végeredmény egy gyönyörű káosz lesz. Persze ez csak az egyik felállás, amikor gondot okozhat az, ha nem használjuk a var-t, s ezzel nem deklaráljuk, hogy az adott változó hol lesz elérhető. Jó gyakorlat volt eddig is mindig használni a var-t, ezentúl a JavaScript motor jelezni is tudja felénk, ha hibát vétünk.</li>
<li>Az eval()-on keresztül futtatott kódrészlet elkülönített névtérben fut. Vagyis egy eval(&#8220;var x = 10;&#8221;); console.log(x); parancssor strict módban egy &#8220;undefined&#8221; értéket fog kijelezni számunkra. Az új x változó csak az evalon belül használható.</li>
<li>Az oktális szám literálok (vagyis a nullával kezdődő számok, mint a 010) le lesznek tiltva. Eddig a var x = 010; után az x változó értéke 8 volt, strict módban viszont 10 lesz. Eddig sem használtam, ezentúl sem fogom az oktális számokat, egy hibalehetőséggel kevesebb.</li>
<li>A with használata hibát fog eredményezni. A with használata az évek során nem vált be, a használata majd minden böngészőben lassú, és számos hibalehetőséghez is vezethet. A JavaScript programozók körében eddig is az volt a közvélekedés, hogy a with nem használandó.</li>
<li>A delete parancs segítségével nem lehet ezentúl függvényeket, változókat, (függvény) paramétereket törölni. Pontosabban eddig sem lehetett, csak nem kaptunk hibaüzenetet, hanem csendben nem történt semmi.</li>
<li>A függvényeknek nem lehet több ugyanolyan nevű paramétere, és az objektumok deklarációjakor sem fordulhat elő többször ugyanaz a kulcs.</li>
<li>Az arguments ezentúl csak olvasható lesz. Az arguments helyi változó segítségével az aktuális függvény paramétereit érhettük el, s akár módosíthattuk is eddig, de ez nem volt egy túl szép megoldás.</li>
</ul>
<p><strong>Függvény környezet</strong></p>
<p>Az EcmaScript új objektumokat, illetve metódusokat is hoz magával:</p>
<ul>
<li>A natív JSON támogatás talán az egyik legfontosabb újdonság. A JSON.parse() segítségével fel tudjuk dolgozni a JSON sztringet, a JSON.stringify() segítségével pedig egy objektumból készíthetünk JSON sztringet. Mind a két függvénynél kiszűrhetünk egyes kulcsokat egy második paraméterként definiált függvény segítségével.</li>
<li>A függvény objektumok bind() metódusa segítségével ezentúl úgy hívhatjuk meg a függvényt, hogy a kontextust is definiáljuk. A lehetőség megegyezik a Prototype függvénykönyvtár által is definiált megoldással.</li>
<li>A Date objektumok ezentúl feldolgozni és létrehozni (toISOString metódus) is tudnak ISO szabványú dátumokat (2009-12-12T12:12:12.000Z).</li>
<li>A String objektumok kaptak egy trim() metódust.</li>
<li>Az Array objektumok (vagyis a tömbök) egy halom új metódust kaptak: indexOf, lastIndexOf, every, some, forEach, map, filter, reduce, and reduceRight. Ezek többnyire eddig is jelen voltak így (natívan a böngészők által) vagy úgy (függvénykönyvtárak használatával), most már szabványosak is.</li>
</ul>
<p><strong>Objektum rendszer<br />
</strong></p>
<p>Az EcmaScript 5 számos újdonságot hoz az objektumok és tulajdonságaik kezelését illetően is:</p>
<ul>
<li>Az Object.preventExtensions(obj) metódus letiltja az objektum bővíthetőségét (új tulajdonságok hozzáadását), az Object.isExtensible(obj) pedig lekérdezi, hogy bővíthető-e az adott objektum.</li>
<li>Az objektumok különböző tulajdonságai új meta leírókkal bővülnek, az érték mellett az adott tulajdonság írhatósága (writable), felsorolhatósága (enumerable), módosíthatósága (configurable) is olvashatóak, illetve írhatóak. Ehhez kapunk egy adag új függvényt.</li>
</ul>
<p><strong>Összefoglalás</strong></p>
<p>A Firefox újabb verziói, illetve az Internet Explorer 8 egy részét már támogatják az újdonságoknak, én a Firefox egy nightly verziójával kísérleteztem több-kevesebb sikerrel (például strict módban az oktális érték deklaráció nálam hibát dobott, nem pedig decimális számként értelmezte az értéket). Próbáltam a fentieket több forrásból is összeszedni, tesztelni, a szabvány PDF-je annyira száraz olvasmánynak bizonyult számomra, hogy inkább másodlagos forrásokból dolgoztam. Ezek miatt csúszhatott hiba is a fentiekbe, ha valaki talál valamit, szóljon! <img src='http://webakademia.hu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>John Resig alaposan összefoglalta a témát két bejegyzésében is, ezeket csak ajánlani tudom: <a href="http://ejohn.org/blog/ecmascript-5-objects-and-properties/">ECMAScript 5 Objects and Properties</a> és <a href="http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/">ECMAScript 5 Strict Mode, JSON, and More</a>.</p>
<hr />
<p><small>&copy; admin for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2009. |
<a href="http://webakademia.hu/2009/12/kiadtak-az-ecmascript-5-ot/">Permalink</a> |
<a href="http://webakademia.hu/2009/12/kiadtak-az-ecmascript-5-ot/#comments">4 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2009/12/kiadtak-az-ecmascript-5-ot/&amp;title=Kiadták az EcmaScript 5-öt">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2009/12/kiadtak-az-ecmascript-5-ot/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Demo 2009 &#8211; ott leszünk</title>
		<link>http://webakademia.hu/2009/11/demo-2009-ott-leszunk/</link>
		<comments>http://webakademia.hu/2009/11/demo-2009-ott-leszunk/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 16:07:49 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[közlemények]]></category>
		<category><![CDATA[webbiznisz]]></category>
		<category><![CDATA[webfejlesztés]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=505</guid>
		<description><![CDATA[Az imént jött a levél, hogy a &#8220;Social Media Campaign Center&#8221; munkanevű startup ötletünkkel bejutottunk a (hazai) Demo &#8217;09 döntőjébe, avagy a decemberben rendezendő konferenciára. 30 pályázó közül először 15-öt, majd végül 8-at választott ki egy számomra nagyon szimpatikus, igazi szakmai megbeszélésen a zsűri (mely befektetőkből, a piacot és a különböző technológiát is jó ismerő [...]]]></description>
			<content:encoded><![CDATA[<p>Az imént jött a levél, hogy a &#8220;Social Media Campaign Center&#8221; munkanevű startup ötletünkkel bejutottunk a (hazai) <a href="http://demohungary.blogter.hu/374726/a_nyertes_utazik_az_usa-ba">Demo &#8217;09</a> döntőjébe, avagy a decemberben rendezendő konferenciára. 30 pályázó közül először 15-öt, majd végül 8-at választott ki egy számomra nagyon szimpatikus, igazi szakmai megbeszélésen a zsűri (mely befektetőkből, a piacot és a különböző technológiát is jó ismerő szakemberekből állt).</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-506" title="demo09" src="http://webakademia.hu/wp-content/demo09.jpg" alt="demo09" width="500" height="325" /></p>
<p>Az Amerikából indult <a style="margin: 0px;  padding: 0px; color: #225998; text-decoration: none;" href="http://www.demo.com/" target="_blank">DEMO</a> már húsz éve ad lehetőséget a startupok számára megmérettetésre, s hasonlóan működik, ahogy az általam is szervezett Startup konferencia: az előadók 6 percben mutathatják be projektüket a közönség előtt. Hazánkban eddig még csak egy alkalommal került megrendezésre, tavaly én teljesen lemaradtam róla.</p>
<p>Ötletünk az olyan közösségi média kampányok hatékony, gazdaságos kivitelezését elősegítő eszköz, melyről a későbbiekben majd még osztok meg részleteket. A konferencián első helyezést elérő startup lehetőséget kap a jövő év elején szervezendő amerikai konferencián való részvételre is. Tekintettel arra, hogy a mi ötletünk sokkal hasznosabb, mint amilyen látványos, ezért komolyabb eredményeket egyelőre nem várok a részvételtől, de majd még meglátjuk, hogy hogyan sikerül majd a prezentáció.</p>
<hr />
<p><small>&copy; admin for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2009. |
<a href="http://webakademia.hu/2009/11/demo-2009-ott-leszunk/">Permalink</a> |
<a href="http://webakademia.hu/2009/11/demo-2009-ott-leszunk/#comments">6 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2009/11/demo-2009-ott-leszunk/&amp;title=Demo 2009 &#8211; ott leszünk">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2009/11/demo-2009-ott-leszunk/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Where Is the Love?</title>
		<link>http://webakademia.hu/2009/11/where-is-the-love/</link>
		<comments>http://webakademia.hu/2009/11/where-is-the-love/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 09:14:57 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[webfejlesztés]]></category>
		<category><![CDATA[webkettő]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=500</guid>
		<description><![CDATA[Mostanában elég sok olyan nyílt forrású projektet nézek meg (tegye fel a kezét, aki nem nyílt forrású cuccokat használ fejlesztéseihez manapság), melyek frissnek, újnak számítanak. Keresem az új ötleteket, vagy a régi ötletek jól használható megvalósításait. Egyre könnyebb megtalálni ezeket a projekteket. Két fajta forrásom van, az egyik típus a nyílt forrású kódokat hosztingoló oldalak, [...]]]></description>
			<content:encoded><![CDATA[<p>Mostanában elég sok olyan nyílt forrású projektet nézek meg (tegye fel a kezét, aki nem nyílt forrású cuccokat használ fejlesztéseihez manapság), melyek frissnek, újnak számítanak. Keresem az új ötleteket, vagy a régi ötletek jól használható megvalósításait. Egyre könnyebb megtalálni ezeket a projekteket.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-501" title="code-guru" src="http://webakademia.hu/wp-content/code-guru.jpg" alt="code-guru" width="500" height="325" /></p>
<p>Két fajta forrásom van, az egyik típus a nyílt forrású kódokat hosztingoló oldalak, a másik típus pedig a blogok, melyek kedvenc témáimról szólnak. Ezzel alapvetően gondolom nem mondtam újdonságot, de ezeket most megpróbálom össze is gyűjteni, hátha tudok adni olyan tippeket, melyeket mások nem ismernek. Szívesen venném azt is, ha ti is megosztanátok kedvenc forrásaitokat.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="295" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/drUMucmSb_4&amp;hl=en_US&amp;fs=1&amp;color1=0x5d1719&amp;color2=0xcd311b" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="295" src="http://www.youtube.com/v/drUMucmSb_4&amp;hl=en_US&amp;fs=1&amp;color1=0x5d1719&amp;color2=0xcd311b" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><strong>Forráskód hoszting oldalak</strong></p>
<p>Szóval jellemzően két forráskód hoszting oldalt ismerek, ahol rengeteg új projekt talál otthonra. Mind a kettőnél díjmentesen hosztolhatjuk nyílt forrású kódjainkat, ha ilyen projektbe kezdünk, mindenképp megéri valamelyik közül választani:</p>
<p><strong>GitHub</strong></p>
<p>A Git verziókezelő rendszer egyre nagyobb teret hódít, s bár én még nem próbáltam ki, de valamikor annak is eljön majd az ideje. E köré lett felépítve a <a href="http://github.com/">GitHub</a>, mely a publikus projekteken kívül arra is lehetőségek kínál, hogy saját projektjeinken dolgozzunk. Keresőjével elég sok érdekességet lehet fellelni. Itt van hosztolva a <a href="http://github.com/ry/node/">Node.js</a> és a <a href="http://github.com/antirez/redis/">Redis</a>, de itt található meg a <a href="http://github.com/280north/cappuccino/">Cappuccino</a>, a <a href="http://github.com/jeresig/processing-js/">Processing JS</a>, az <a href="http://github.com/documentcloud/underscore/">Underscore</a>, az <a href="http://github.com/slact/nginx_http_push_module/">NGiNX HTTP push module</a> és még több tucatnyi érdekes kód.</p>
<p>A Git lehetőségeiből adódóan bárki nagyon könnyen hozzá tud járulni ezeknek a projekteknek a fejlődéséhez, mivel nem kell hozzáférést kérni a forrás írásához, hanem könnyen lehet új ágat indítva belefejleszteni amit szeretnénk bármely projektbe, aztán persze a kód tulajdonosa majd eldönti, hogy ez bekerüljön-e a fő ágba.</p>
<p><strong>Google Code</strong></p>
<p>A <a href="http://code.google.com/hosting/">Google Code</a> egy SVN alapú kód hoszting szolgáltatás, mely nem csak a kódok tárolását, hanem komplexebb lehetőségként azok wiki alapú dokumentálását, illetve hibajegy kezelését is lehetővé teszi. Itt vannak közzétéve a Google saját nyílt forrású kódjai is (az <a href="http://code.google.com/android/">Android</a>tól kezdve a <a href="http://code.google.com/closure/">Closure</a>-ig). Sajnos a keresője (pedig Google!) messze nem olyan jó, mint a GitHubé, de azért érdekes projekteket lehet itt is fellelni. A <a href="http://code.google.com/p/redis/">Redis</a> például itt kezdte a kódjának a közzétételét, majd átköltözött a GitHubra, de a dokumentáció és hibajegy kezelés az itt maradt. Itt van az <a href="http://code.google.com/p/openscope/">openscope</a>, <a href="http://code.google.com/p/swfobject/">swfobject</a>, a <a href="http://www.killerstartups.com/Web-App-Tools/code-google-com-p-pubsubhubbub-new-useful-protocol">PubSubHubBub</a>, a <a href="http://code.google.com/p/flot/">flot</a>, az <a href="http://code.google.com/p/iui/">iui</a>, a <a href="http://code.google.com/p/blueprintcss/">blueprintcss</a>, a <a href="http://code.google.com/p/trimpath/">TrimPath</a>, stb.</p>
<p><strong>Blogok</strong></p>
<p>A blogok hagyományosan olyan információforrások, melyek jól válogatott, érdekes tartalmakat kínálnak. Én a következőkre vagyok feliratkozva:</p>
<ul>
<li><a href="http://weblabor.hu/rss/szerkesztett">Weblabor szerkesztett tartalmak</a></li>
<li><a href="http://feeds.feedburner.com/ajaxian">Ajaxian</a></li>
<li><a href="http://feeds.feedburner.com/dailyjs">DailyJS</a></li>
<li><a href="http://feeds.feedburner.com/HighScalability">High Scalability</a></li>
<li><a href="http://news.ycombinator.com/rss">Hacker News</a></li>
<li><a href="http://feeds.feedburner.com/ProgrammableWeb">ProgrammableWeb</a></li>
<li><a href="http://feeds.feedburner.com/readwriteweb">ReadWriteWeb</a></li>
</ul>
<p><strong>Egyebek?</strong></p>
<p>Ami még jól használható, de jó zajos forrás is egyben, az a <a href="http://delicious.com/">delicious</a> <a href="http://feeds.delicious.com/rss/tag/javascript">megfelelő</a> feedjei, de a <a href="http://feeds.delicious.com/rss/popular/javascript">popular</a> részlegre is feliratkozhatunk. Ti mit olvastok, követtek a webfejlesztés tág témakörét illetően?</p>
<hr />
<p><small>&copy; admin for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2009. |
<a href="http://webakademia.hu/2009/11/where-is-the-love/">Permalink</a> |
<a href="http://webakademia.hu/2009/11/where-is-the-love/#comments">6 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2009/11/where-is-the-love/&amp;title=Where Is the Love?">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2009/11/where-is-the-love/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Mac OS X + Flash 10.1: videó problémák</title>
		<link>http://webakademia.hu/2009/11/mac-os-x-flash-10-1-video-problemak/</link>
		<comments>http://webakademia.hu/2009/11/mac-os-x-flash-10-1-video-problemak/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 08:16:34 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[webfejlesztés]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=494</guid>
		<description><![CDATA[Az újdonság varázsa elbűvölt, és úgy döntöttem, hogy feltelepítem a Flash 10.1-es verzióját, hogy kipróbáljam tényleg olyan gyors-e ahogyan olvasni róla. Erről meggyőződni végülis nem tudtam, ámde az összes videó lejátszás elromlott a YouTube-tól az IndaFilmig, a régi Flash verziót pedig nem engedte telepíteni a rendszer. Pár nap után elegem lett a dologból, és rászántam [...]]]></description>
			<content:encoded><![CDATA[<p>Az újdonság varázsa elbűvölt, és úgy döntöttem, hogy feltelepítem a Flash 10.1-es verzióját, hogy kipróbáljam tényleg olyan gyors-e ahogyan olvasni róla. Erről meggyőződni végülis nem tudtam, ámde az összes videó lejátszás elromlott a YouTube-tól az IndaFilmig, a régi Flash verziót pedig nem engedte telepíteni a rendszer. Pár nap után elegem lett a dologból, és rászántam magam hogy megkeresem a megoldást &#8211; ami hasznos lehet azoknak is, akik Flashre fejlesztenek, és váltogatni szeretnének különböző verziók között Macen.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-495" title="mac-os-x-flash-problem" src="http://webakademia.hu/wp-content/mac-os-x-flash-problem.jpg" alt="mac-os-x-flash-problem" width="500" height="375" /></p>
<p>Röviden a megoldás: a <strong>/Library/Receipts/Adobe Flash Player.pkg</strong> törlése. Próbáltam <a href="http://kb2.adobe.com/cps/141/tn_14157.html">leszedni</a> a Flash-t, ami sikerült is (bár az uninstaller elég sokat gondolkodik cselekvés előtt), de ez sem hozott megoldást: a rendszer továbbra sem engedte a régebbi verzió (10.0.x) telepítését, egy <strong>&#8220;A newer version of this software already exists on this volume.&#8221;</strong> hibaüzenettel szerelt le. A bekezdés elején említett fájl törlésével a telepítő végül már nem reklamált, s engedte telepíteni a korábbi változatot is.</p>
<p>Egyébként ahogy kiderült, a /Library/Receipts/ könyvtárba a telepítők dolgoznak, ide rögzítenek különböző jogosultságokat leíró információkat a telepített alkalmazásokról. Az itt levő fájlok eltávolítása akkor okozhat problémát, ha egy már telepített alkalmazást meg szeretnénk gyógyítani, ez esetünkben nem igazán állt fenn, nálam már fenn se volt a Flash, tehát nyugodt szívvel törölhettem a hozzá tartozó fájlt. Hasonló probléma egyébként más programoknál is előfordulhat, a megoldás keresgélése közben én végülis egy <a href="http://www.joelhainley.com/index.php/2009/03/22/mac-os-x-a-newer-version-of-this-software-already-exists-on-this-volume/">MySQL telepítés kapcsán fellépő probléma</a> leírásánál találtam meg a megoldást.</p>
<p>A történet egyébként segített ráébreszteni arra, hogy mennyire függök &#8211; és valószínűleg függünk &#8211; a Flashtől és a videózástól, érdekes élmény volt.</p>
<hr />
<p><small>&copy; admin for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2009. |
<a href="http://webakademia.hu/2009/11/mac-os-x-flash-10-1-video-problemak/">Permalink</a> |
<a href="http://webakademia.hu/2009/11/mac-os-x-flash-10-1-video-problemak/#comments">3 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2009/11/mac-os-x-flash-10-1-video-problemak/&amp;title=Mac OS X + Flash 10.1: videó problémák">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2009/11/mac-os-x-flash-10-1-video-problemak/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Acquia Drupal telepítő</title>
		<link>http://webakademia.hu/2009/11/acquia-drupal-telepito/</link>
		<comments>http://webakademia.hu/2009/11/acquia-drupal-telepito/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 07:10:27 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[webbiznisz]]></category>
		<category><![CDATA[webfejlesztés]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=486</guid>
		<description><![CDATA[Ezen a hétvégén zajlik hazánkban a Drupal Hétvége, s bár részt venni rajta nem tudok, de péntek-szombat-vasárnap Drupalos pólóimmal tisztelgek az esemény előtt, illetve próbálom követni a fejleményeket. A tegnapi előadások fóliái, sőt, a videók is már elérhetőek a rendezvény honlapján. Bár már korábban is hallottam róla, most sikerült eljutnom odáig, hogy kipróbáljam a helyi [...]]]></description>
			<content:encoded><![CDATA[<p>Ezen a hétvégén zajlik hazánkban a <a href="http://drupal.hu/konferencia/2009">Drupal Hétvége</a>, s bár részt venni rajta nem tudok, de péntek-szombat-vasárnap Drupalos pólóimmal tisztelgek az esemény előtt, illetve <a href="http://turul.miner.hu/k/drupal">próbálom követni a fejleményeket</a>. A tegnapi előadások fóliái, sőt, a videók is már <a href="http://drupal.hu/konferencia/2009/program">elérhetőek</a> a rendezvény honlapján. Bár már korábban is hallottam róla, most sikerült eljutnom odáig, hogy kipróbáljam a helyi gépre egy komplett Drupalt varázsló kezdeményezést, az <a href="http://drupal.hu/konferencia/2009/program#acquiastack">Acquia Stack Installer</a>t, amit ezúton ajánlanék.</p>
<p style="text-align: center;"><img class="aligncenter  size-full wp-image-487" title="drupalcontrolpanel" src="http://webakademia.hu/wp-content/drupalcontrolpanel.gif" alt="drupalcontrolpanel" width="500" height="325" /></p>
<p>Az <a href="http://acquia.com/blog/acquia-stack-installer-aka-damp">Acquia Stack Installer</a> a Drupal alapjait lerakó, illetve a közösséget továbbra is aktívan vezető/támogató <a class="l" href="http://buytaert.net/">Dries  Buytaert</a> cégének, az <a href="http://acquia.com/">Acquia</a>nak a fejlesztése. Egy Apache+PHP+MySQL, illetve Drupal telepítőről van szó, mely nem csak feltelepíti ezeket a szoftvereket a szükséges beállításokkal, de a menedzselésüket is lehetővé teszi.</p>
<p>A Windowsra és Mac OS X-re is elérhető telepítő nem csak az alap Drupalt, hanem még egy adag modult is feltelepít, a célja az, hogy nagyon gyorsan egy működő Drupal környezet álljon a rendelkezésünkre, melyet mind felhasználóként, mind pedig fejlesztőként birtokunkba vehetünk. A telepítés nálam zökkenőmentesen lezajlott, s letöltéssel együtt röpke tíz perc alatt már el is kezdhettem kattintgatni a Drupal oldalon.</p>
<p>A Drupal mögött nem csak nemzetközi szinten, de hazánkban is egyre nagyobb fejlesztői kapacitás sorakozik fel, s a Drupal.hu mögött álló csapat is szép munkát végez a népszerűsítést illetően. A Drupal felhasználói interfésze, s az elérhető lehetőségek a kemény munkának köszönhetően egyre jobbak lesznek, a <a href="http://drupal.hu/konferencia/2009/program#drupal7">7-es Drupal verzióban</a> kellemes újdonságok várhatóak.</p>
<hr />
<p><small>&copy; admin for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2009. |
<a href="http://webakademia.hu/2009/11/acquia-drupal-telepito/">Permalink</a> |
<a href="http://webakademia.hu/2009/11/acquia-drupal-telepito/#comments">2 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2009/11/acquia-drupal-telepito/&amp;title=Acquia Drupal telepítő">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2009/11/acquia-drupal-telepito/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A HTML 5 és CSS 3 újdonságai</title>
		<link>http://webakademia.hu/2009/11/a-html-5-es-css-3-ujdonsagai/</link>
		<comments>http://webakademia.hu/2009/11/a-html-5-es-css-3-ujdonsagai/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 08:00:49 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[webfejlesztés]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=445</guid>
		<description><![CDATA[Beindult a marketing gépezet a HTML 5 kapcsán, viszont viszonylag keveset hallani arról, hogy a marketing dumákon kívül miről is van szó pontosan (bár korábban például már én is írtam a HTML 5-ről). A Flash leváltására alkalmas csodaszerként, a Google új fegyvereként, a HTML webkettőjeként szokás emlegetni, holott a történet egész másról szól. Egy néhol [...]]]></description>
			<content:encoded><![CDATA[<p>Beindult a marketing gépezet a HTML 5 kapcsán, viszont viszonylag keveset hallani arról, hogy a marketing dumákon kívül miről is van szó pontosan (bár korábban például <a href="http://webakademia.hu/2008/09/html5-hamarosan-a-mozikban/">már én is írtam a HTML 5-ről</a>). A Flash leváltására alkalmas csodaszerként, a Google új fegyvereként, a HTML webkettőjeként szokás emlegetni, holott a történet egész másról szól. Egy néhol száraz, de igen érdekes specifikációról. Sőt, a HTML 5 mellett itt van a CSS 3, és itt van az SVG és egyéb más lehetőségek is. Egy több bejegyzésből álló sorozatban megpróbálom összeszedni, hogy mi is volt a HTML 5 és a CSS 3 története, hogy pontosan milyen új eszközöket kapunk ezekkel a specifikációkkal, s hogy hol tart most ezeknek a böngészőkben implementálása.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-339" title="html-5-fifth-element" src="http://webakademia.hu/wp-content/html-5-fifth-element.jpg" alt="html-5-fifth-element" width="500" height="325" /></p>
<p><strong>HTML 5 &#8211; így történt</strong></p>
<p>A Wikipédia <a href="http://en.wikipedia.org/wiki/HTML_5">HTML 5 szócikke</a> nem túl bőbeszédűen, de egész jól összeszedi, hogy hogyan is jutottuk el a HTML 5 mai állapotáig. Az egész a WHAT Munkacsoport (Web Hypertext Applications Technology Working Group) megalakulásával kezdődött 2004 júniusában, pár hónapos előkészítő munka után. A csoport alapítói az alternatív (IE-hez képest) böngészőgyártók, konkrétan az Apple (Safari), a Mozilla Alapítvány (Firefox) és az Opera Software (Opera) voltak, céljuk egy a W3C-tól független, annál hatékonyabban működő, nyitott, laza összefogás volt. A Microsoft eleinte ki lett hagyva a játékból, később pedig egy ideig még nem ismerte el a törekvéseket, de az IE 8 kapcsán már elkezdett implementálni részleteket, és az IE 9-ben további implementációk várhatóak. A W3C akkoriban nem a rugalmasságáról volt híres, a (nem alacsony tagdíjat fizető) tagok vehettek csak részt a döntésekben és az irányok meghatározásában, és sokkal inkább az akadémiai hozzáálláson, mint a praktikumon volt a hangsúly. A problémák a W3C ajánlásokban szereplő, de a böngészőkben nehezen megvalósítható, vagy egyszerűen csak nem használt funkciókban (lásd például a CSS 2.1 megjelenésének oka, vagy az <a href="http://www.w3.org/TR/xhtml2/">XHTML 2.0</a> teljes csődje) jelentkeztek.</p>
<p>A WHATWG a <a href="http://www.whatwg.org/specs/web-forms/current-work/">Web Forms 2.0</a>, <a href="http://www.whatwg.org/specs/web-apps/2005-09-01/">Web Apps 1.0</a> és <a href="http://www.whatwg.org/specs/web-controls/current-work/">Web Controls 1.0</a> dokumentumok elkészítésével kezdett el foglalkozni. A Web Forms célja a HTML 4.01-ben definiált form elemek olyan jellegű bővítése volt, melyek a régi böngészőkkel is kompatibilisek, de igazodnak a kor igényeihez, és JavaScripttel a régi böngészőkben is megvalósíthatóak. A Web Apps egy sokkal összetettebb, a webalkalmazásokat támogató, már létező és teljesen új fejlesztések szabványos irányba tereléséről szólt. Új HTML elemektől kezdve a session kezelés, a helyi adattárolás, WYSIWYG szerkesztés, 2D és 3D canvas, különböző kommunikációs megoldások és további kisebb-nagyobb fejlesztések mind a HTML leíró nyelvet, mind pedig a DOM-ot illetően az, amit magába foglalt a specifikáció. Végül a  Web Controls célja olyan lehetőségek definiálása volt, melyek lehetővé tennék új &#8220;widgetek&#8221;, kvázi HTML elemek definiálását és működésének leírását.</p>
<p>Az új ajánlások közzététele és tervezése eleve a W3C ajánlások formátumával kompatibilis módon zajlott, és célként volt kitűzve, hogy amennyiben lehetséges, a W3C fogadja majd be a dokumentumokat. A szabványok kialakítása ezután nagy lendülettel elkezdődött, új elemek is beléptek, és volt olyan is, amiről kiderült, hogy mégsincs rá szükség, és <a href="http://blog.whatwg.org/welcome">2006-ban indult egy blog is</a>, mely folyamatosan beszámol azóta is a fejleményekről. <a href="http://blog.whatwg.org/w3c-restarts-html-effort">2007-ben a W3c bejelentette</a>, hogy újra nekifut a HTML történetnek, ekkor már nyílt levelezőlistával, és határozottan együttműködve a WHATWG-vel is.</p>
<p>A Web Apps 1.0-ba végül beleolvadt a Web Forms 2.0, és átnevezték HTML 5-re, a Web Controls pedig időközben elhalt a nem túl nagy érdeklődés, illetve a hasonló célú <a href="http://www.w3.org/TR/xbl/">XBL 2.0</a> miatt.</p>
<p><strong>HTML 5 &#8211; itt tartunk</strong></p>
<p>A <a href="http://www.whatwg.org/specs/web-apps/current-work/">HTML 5</a> fejlesztése kifejezetten aktív. A specifikálás azóta sem állt meg, s bár elég jól körvonalazódott már a  HTML 5 tartalma, továbbra is előfordulhat, hogy új elemek kerülnek be,  vagy kikerülnek kevésbé fontos elemek, sok részlet pedig folyamatosan finomításra kerül. A böngészőgyártók elkezdeték  implementálni a különböző lehetőségeket, összességében elmondható, hogy  az összes szóba jövő böngésző jó úton halad, s még ha az Internet  Explorer le is van maradva, de a legtöbb dolog ebben a böngészőben is implementálva  lesz szépen lassan.</p>
<p>Egy bekezdésben nehéz lenne összefoglalnom, hogy mennyi részlete van a specifikációnak, nagyon-nagyon komplex. Nagyon sokat lehet tanulni belőle nem csak a jövőről, de arról is, hogy most hogyan működnek a böngészők és úgy általában a web, hiszen a céljai között az eddig nem dokumentált, de az évek során kompromisszumos megoldásként összeállt viselkedések definiálása is szerepel. A dokumentum nem csak a HTML elemeket, hanem a DOM lehetőségeit, illetve egyéb, a HTML feldolgozásához, megjelenítéséhez kapcsolatos részleteket is leír. Íme egy önhatalmúlag összeállított kivonat:</p>
<ul>
<li>oldalvázat, szekciókat leíró elemek: body, section, nav, article, aside, h1-h6, hgroup, header, footer, address</li>
<li>új szöveges elemek, mint például: time, progress, meter</li>
<li>új tartalmat beágyazó elemek, mint például: figure, video, audio, source, canvas, map</li>
<li>az újfajta beviteli mezők, form elemek és a komplex formok leírását lehetővé tevő jelölők, elemek</li>
<li>interaktívitást lehetővé tevő elemek: details, command, menu</li>
<li>microdata &#8211; adatok HTML-be ágyazásának és kiolvasásának módja</li>
<li>a HTML és a JavaScript kapcsolatát, események működése</li>
<li>offline alkalmazások létrehozásának lehetősége</li>
<li>linkek, kapcsolódó tartalmak leírásának (feedektől a nofollow-on át a faviconokig) módja</li>
<li>a felhasználói interakcióval kapcsolatos lehetőségeket, mint például: szöveg kiválasztása, WYSIWYG szerkesztés lehetősége, helyesírás ellenőrzés, drag&#8217;n'drop</li>
<li>kommunikáció különböző domainek között az oldalon belül és a külvilággal</li>
<li>HTML vs. XHTML kérdést és a feldolgozás mikéntje</li>
<li>a megjelenítés az alapvető kérdésektől a betűtípusok kezeléséig</li>
<li>az idejétmúlt elemeket mint például: applet, marquee, frame, DOM lehetőségeket és az ezekkel kapcsolatos hibakezelést</li>
</ul>
<p>Elég szabadon válogattam a dokumentumból részleteket, de a lista hosszúságából talán látszik, hogy nem egy 5 perces olvasmányról van szó, s hogy a böngészőgyártók elé igen komoly feladatok vannak kitűzve. Hogy tovább árnyaljam a képet, az olyan lehetőségek például, mint a canvas elem, itt a felsorolás egyik pontjában egy belső felsorolás részeként szerepelnek csak, holott egy könyv teljes fejezetét, vagy akár egy könyvet is lehetne szentelni a témának.</p>
<p><strong>CSS 3 &#8211; így történt</strong></p>
<p>A CSS 3 egy egészen más utat járt be, a kezdetektől W3C projektként fut. Itt is érdemes elolvasni a Wikipedia <a href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets">CSS bejegyzését</a>, jól mutatja be a CSS múltját. A CSS 2 1998 májusában jelent meg, de a böngészők már ekkor komoly lemaradásban voltak, a Macintoshra kiadott Internet Explorer 5.0 a CSS első változatát is csak két évvel a második változat kiadása után, 2000-ben implementálta, és ezzel az első, legmodernebb böngésző volt akkor. A második változatot évekkel később sem tudta egyik böngésző sem megvalósítani teljes egészében annak viszonylagos összetettsége miatt. A helyzet normalizálása érdekében hozta ki a W3C a CSS 2.1-es változatát, mely alapvetően egy butított megvalósítás volt, a praktikumot előtérbe helyezve, és igazodva az akkori böngészőkhöz kihagyták belőle a &#8220;megvalósíthatatlan&#8221; részeket.</p>
<p>Tanulva a hibáiból a CSS 3 immár modularizált lett, vagyis különböző funkciók mentén modulokra robbantották az újdonságokat, melyeket a böngészők így &#8220;csomagban&#8221; tudnak megvalósítani, vagy akár átmenetileg figyelmen kívül hagyni. A CSS 3 egyes moduljai közel végleges, más moduljai kezdetleges állapotban vannak (<a href="http://www.w3.org/Style/CSS/current-work">helyzet</a>), hatalmas mozgolódás nincs is ezirányban a specifikáció terén (<a href="http://www.w3.org/TR/css3-roadmap/">a teljesen hiányos roadmap</a>), havonta egy-két dokumentum frissül. Az implementációt illetően a böngészőgyártók bár nem rohannak, de jó ütemben implementálják az érdekesebb modulokat, adott funkciókat egész jól valósítanak már meg, sok dolog van még így is hátra.</p>
<p>A CSS 3 fejlesztése is <a href="http://www.w3.org/Style/CSS/current-work#contribute">sokkal nyitottabb folyamat</a> már, mint korábban volt, a levelezőlistához bárki csatlakozhat, és véleményt, javaslatokat formálhat az irányokról, problémákról.</p>
<p><strong>CSS 3 &#8211; itt tartunk</strong></p>
<p>A CSS 3-nak vannak izgalmas, már-már eszement részei is, érdemes átfutni a specifikációt, és ismerkedni egy kicsit a várható irányokról, de ezeket én is igyekszem majd összefoglalni. Ahogy a HTML 5-nél, itt is összeszedtem egy listát, mely a CSS 3 különböző moduljait, és azok szerepét foglalja össze:</p>
<ul>
<li><em>CSS Template Layout</em>: a CSS 2.1-ben &#8220;nincs&#8221; olyan elem, mely oldalak layoutjának leírására, meghatározására szolgálnak (a float-ok ilyen célú használata például egy kompromisszum csak), a CSS Template Layout ezt a hiányosságot próbálja meg orvosolni. Elsőre elég vad és szokatlan, de mégis hatékonynak tűnő leíró megoldással.</li>
<li> <em>CSS Aural Style Sheets</em>: a CSS alapvetően a vizuális megjelenítésről szól, ez a CSS 3 modul viszont azt írja le, hogy hogyan lehet hangokat kapcsolni a dokumentumokhoz, illetve az eseményeihez (hover, oldal betöltődés, stb.), továbbá hogy hogyan lehet ezeknek a hangoknak a különböző tulajdonságait befolyásolni (balansz, hangerő, stb.).</li>
<li><em>CSS Backgrounds and Borders</em>: a CSS 2.1 szabvány viszonylag puritán lehetőségeket kínál egy adott block megjelenésű elem hátterének és keretének beállításához. Ez a modul azt írja le, hogy hogyan rendelhetünk akár több háttérképet is egy elemhez, hogy hogyan állíthatjuk be azok pozícióját, kivágását és torzítását, illetve a kereteket illetően hogyan lehet a vonalak helyett képeket használni, vonalas keretet hogyan lehet lekerekíteni, s hogyan lehet árnyékot beállítani.</li>
<li><em>CSS Basic User Interface</em>: formok különböző állapotaival kapcsolatos kiválasztók (Web Forms 2.0-hoz kapcsolódóan), a kerethez hasonló outline, egérkurzorok &#8211; az alapvető felhasználói interfész elemekről szól ez a modul.</li>
<li><em>CSS Basic Box Model</em>: szintén alapvető dolgokkal foglalkozó modul, mely a doboz modellről szól, a display tulajdonság különböző értékeiről, a float és clear hatásáról és viselkedéséről, az overflow-ról és hasonló témákról. Az eddig használt, de részleteiben nem definiált, az IE overflow-x, overflow-y lehetőségének &#8220;legalizálásáról&#8221; és teljesen új dolgokkal is foglalkozik ez a modul.</li>
<li><em>CSS Extended Box Model</em>: ami nem fért bele a  Basic modellbe &#8211; egyelőre ebben a modulnak még nem kezdődött el a publikus kidolgozása sem</li>
<li><em>CSS Marquee</em>: animált üzenősáv lehetőségek leírását teszi lehetővé, a doboz modell moduljából vált ki.</li>
<li><em>CSS Cascading and Inheritance</em>: ez a modul az olyan alapvető szabályokról, mint az öröklődés, egymásba ágyazás, különböző médiák kezelése szól, alapértelmezett értékek, szabályok súlyának számítása szól. Alapvetően az eddig nem tisztázott, de nagyjából ugyanúgy működő megoldások pontos dokumentálása a célja, nagy újdonságokat nem hoz be.</li>
<li><em>CSS Color</em>: a színek leírásának módjáról szól, ami újdonság benne, az legfőképpen a &#8220;negyedik dimenzió&#8221;, avagy a áttetszőség mint &#8220;szín&#8221; komponens kezelése.</li>
<li><em>CSS Fonts</em>: a betűkészletek kezelését foglalja magában ez a modul, újdonságot a betűtípusok méreteinek egymáshoz igazításával és a &#8220;letölthető&#8221;, avagy a felhasználó gépén nem jelen levő betűkészletek használhatóságával kapcsolatban hoz.</li>
<li><em>CSS Generated Content for Paged Media</em>: a Paged Media modulon felüli lehetőségek &#8220;oldal alapú&#8221; médiákhoz, mint például egy nyomtatott dokumentum verzió, vagy akár egy prezentáció. Olyanok vannak benne, mint dinamikus hivatkozások a dokumentumon belül (&#8220;lásd a 25. oldalon&#8221;), vagy például az oldal fejlécének/láblécének beállítása a dokumentum h1/h2/h3 (vagy bármilyen más) elemeinek segítségével.</li>
<li><em>CSS Generated and Replaced Content</em>: oldal tartalmak létrehozásáról, vagy cseréjéről szóló modul, &#8220;hivatalosan&#8221; ezzel lehet például egy szöveges fejléc elemet képre cserélni, vagy adott elemek elé/mögé beszúrni tartalmakat</li>
<li><em>CSS Hyperlink Presentation</em>: a linkek megjelenéséért, viselkedéséért felelős, például hogy mikor számít &#8220;aktívnak&#8221; egy link, de az is leírható a modulban foglaltak segítségével, hogy hol (új ablak, fül, stb.) nyiljon meg egy link.</li>
<li><em>CSS Introduction</em>: ez egy összefoglaló modul, ami egy bevezetést, áttekintést (fog) adni a CSS 3 lehetőségeiről &#8211; majd ha &#8220;kész&#8221; lesz.</li>
<li><em>CSS Line Layout</em>: a sorok függőleges igazítását, továbbá az összefüggő szövegek első karakterének, első sorának kiválasztóját írja le.</li>
<li><em>CSS Lists</em>: a különböző listák megjelenésének leirhatóságát szabályozza ez a modul, a számozástól kezdve képek elhelyezéséig a listaelemek elé.</li>
<li><em>CSS Math</em>: matematikai képletek, kifejezések (MathML) megjelenésének szabályozását végzi.</li>
<li><em>CSS Multi-column Layout</em>: szövegek több oszlopba renderelését megvalósító modul, az oszlopok számának megadásától az elválasztó &#8220;hézag&#8221; paraméterének megadásáig lehet szabályozni a megjelenítést.</li>
<li><em>CSS Namespaces</em>: az XML névtereinek támogatása CSS-ben is: a kiválasztók kiegészítése névtér támogatással.</li>
<li><em>CSS Object Model</em>: a DOM &#8220;szabvány&#8221; azt szabályozza, hogy hogyan érhetőek el és módosíthatóak a HTML és XML dokumentumok &#8220;kívülről&#8221; valamilyen (pl. JavaScript) programnyelv által, ez a modul ugyanezt írja le, csak a CSS tulajdonságok kapcsán.</li>
<li><em>CSSOM View Module</em>: egy dokumentum megjelenésének szabályozása valamilyen (pl. JavaScript) programnyelv által &#8211; konkrétan a dokumentum és elemek scroll pozíciójának állítása került bele ebbe a modulba, de foglalkozik a tartalmak kiválasztásával és az egér eseményekkel is.</li>
<li><em>CSS Paged Media</em>: a korábban már említett modul, mely az oldalak fejlécének, láblécének, oldalak sorszámozásának állításáért felelős.</li>
<li><em>CSS Positioning</em>: a position tulajdonság értékeinek pontos viselkedését szabályozó modul.</li>
<li><em>CSS Presentation Levels</em>: különböző megjelenési szinteket, lépéseket definiál, például egy prezentáció egyes oldalaihoz definiálhatunk lépéseket (hányadik lépés), és megadhatjuk, hogy ha az adott lépésnél (szintnél) vagyunk, akkor mi legyen látható.</li>
<li><em>CSS Reader Media Type</em>: ez a modul már megszűnt, de a különböző felolvasók támogatásáról szólt.</li>
<li><em>CSS Ruby</em>: egyes írásoknál (pl. kínai és japán) léteznek az olvasást segítő &#8220;meta&#8221; írásjelek, melyek például az adott &#8220;szó&#8221; kiejtését teszik egyértelművé &#8211; ezek az úgynevezett &#8220;ruby&#8221;-k. Ezek pozícionálását szabályozza le ez a modul.</li>
<li><em>CSS Scoping</em>: hogy pontosan mi is akarna lenni ez a modul, arról nem találtam konkrét információt, de a CSS Namespaces modulban létezik egy hasonló témakör &#8211; mely a kiválasztók működési területéről szól.</li>
<li><em>Grid Positioning</em>: a CSS Template Layout modul is megpróbál választ adni arra a kérdésre, hogy hogyan lehet leírni egy komplex oldal layoutját, ez a modul is ezért a területért felelős, s alapvetően &#8220;grid&#8221;, azaz háló alapú layoutok leírását teszi lehetővé, kevésbé vad szintakszissal, mint társa.</li>
<li><em>CSS Speech</em>: ez a modul azt szabályozza, hogy egy adott dokumentum hogyan prezentálható hang formában. Elég sok felhasználási lehetősége lehet az okostelefonoktól a navigációs rendszerekig.</li>
<li><em>CSS Style Attribute Syntax</em>: a HTML (és egyéb CSS-sel szabályozott dokumentumok) &#8220;style&#8221; tulajdonságának formátumát definiálja &#8211; ez az egyik olyan alapvető dolog, ami korábban nem igazán volt szabályozva.</li>
<li><em>CSS Syntax</em>: a CSS szabvány formátumának átfogó szabályozása, a leírónyelv filozófiáját foglalja magában.</li>
<li><em>CSS Tables Module</em>: a táblázatok megjelenéséért felelős modul.</li>
<li><em>CSS Text</em>: szövegek megjelenését szabályzó modul, az aláhúzástól kezdve a szövegek több sorra törésének leírásáig foglalja össze a terület kérdéseit.</li>
<li><em>CSS Text Layout</em>: folytatja az előző modul feladatait, a függőleges írásiránytól kezdve a jobbról-balra történő írások jelöléséig.</li>
<li><em>CSS Line Grid</em>: összetett szimbólumok vonalhoz igazodását leíró modul, mint például a japán szövegek karaktereinek egymás alá illesztése.</li>
<li><em>CSS Values and Units</em>: a CSS értékeinek (számok, szöveges színek, URL-ek stb.) és egységeinek (px, em, ex, stb.) pontos működését és leírását szabályzó modul.</li>
<li><em>CSS Web Fonts</em>: megszűnt, beleolvadt a CSS Fonts modulba.</li>
<li><em>Behavioral Extensions to CSS</em>: dokumentum elemekhez viselkedések csatolását leíró modul &#8211; kvázi új dokumentum elemek hozhatóak létre a segítségével (pl. egy &lt;ledmatrix&gt; elemhez hozzárendelhetünk egy külső URL-en &#8211; XBL leírónyelvvel &#8211; leírt viselkedést).</li>
<li><em>CSS Flexible Box Layout Module Level 3</em>: elemek box és inline-box megjelenéssel történő renderelését leíró modul.</li>
<li><em>CSS Image Values Module Level 3</em>: képekre hivatkozó CSS tulajdonságok (pl. háttérkép) szabályait írja le.</li>
<li><em>CSS 2D Transforms Module</em>: olyan kétdimenziós transzformációkat ír le, mint a mozgatás, nyújtás, forgatás, torzítás.</li>
<li><em>CSS 3D Transformations Module</em>: perpektívikus 3D alapú transzformációkat ír le, a kétdimenziós transzformációkat ruházza fel egy harmadik dimenzióval.</li>
<li><em>CSS Transitions Module</em>: átmenetek (oldal betöltődéstől kezdve a hover effektekig) viselkedését leíró modul.</li>
<li><em>CSS Animations Module</em>: mozgás és egyéb animáció leírása CSS segítségével: időzítések, állapotok, késleltetések.</li>
</ul>
<p>Nem mindegyik modult fejlesztik persze aktívan, van, amelyik több éves &#8211; vagy azért mert befejezettnek tekinthető, vagy azért, mert nem volt rá komolyabb igény. Számos aktív modulról lehet viszont olvasni manapság, ezek megvalósításánál talán a WebKit (Safari és Chrome mögött) áll az élen.</p>
<p>A fentiekből jól látható, hogy vannak nagyon alapnak tekinthető modulok, melyek jól kidolgozottak, és a CSS filozófiáját, pontos szintaktikáját mutatják be, vagy már évek óta használt, de eddig pontosan nem definiált részleteket szabályoznak.</p>
<p><strong>Összefoglalás</strong></p>
<p>Mint a fentiekből is látható, izgalmas korba születtünk. <img src='http://webakademia.hu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Jópár évnek kell eltelnie, mire a HTML 5 és a CSS 3 többségét használni fogjuk majd tudni, de sok olyan részlet van, melyeket már ma is tudunk használni, vagy mert a &#8220;gracefully degradation&#8221; jegyében a felhasználó egy tökéletesen működő, csak fapadosabb megoldással találkozik az azokat nem támogató böngészőkben, vagy pedig azért, mert JavaScript vagy más megoldásokkal azokban a böngészőkben is működőképesek lehetnek, melyek alapvetően nem támogatják még azokat. Ahol ez a helyzet, s ahol ebből nem származik komoly hátrány, ott mindenképpen javaslom az újdonságok használatát, hiszen ezzel kényelmesebbé tehető a modern böngészőket használók élete, és látványos megoldásokat lehet kihozni a dologból.</p>
<p>Emlékeimből, illetve a különböző dokumentumokból, blogbejegyzésekből igyekeztem rekonstruálni a történteket, ha valaki másképp tud valamit, ne hezitáljon azt jelezni egy hozzászólás formájában. <em>Folyt. köv.</em></p>
<hr />
<p><small>&copy; admin for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2009. |
<a href="http://webakademia.hu/2009/11/a-html-5-es-css-3-ujdonsagai/">Permalink</a> |
<a href="http://webakademia.hu/2009/11/a-html-5-es-css-3-ujdonsagai/#comments">14 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2009/11/a-html-5-es-css-3-ujdonsagai/&amp;title=A HTML 5 és CSS 3 újdonságai">del.icio.us</a>
<br/>
Post tags: <a href="http://webakademia.hu/tag/css3/" rel="tag">css3</a>, <a href="http://webakademia.hu/tag/html5/" rel="tag">html5</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2009/11/a-html-5-es-css-3-ujdonsagai/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Closure Compiler</title>
		<link>http://webakademia.hu/2009/11/closure-compiler/</link>
		<comments>http://webakademia.hu/2009/11/closure-compiler/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 08:09:28 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[webfejlesztés]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=474</guid>
		<description><![CDATA[Pár napja tette elérhetővé a Google belső használatú JavaScript könyvtárainak egy részét egy hármas pakkban: a Closure Tools keretében mutatta be a Closure Compiler, a Closure Library és a Closure Templates eszközöket. Az elsőre térnék ki egy kicsit részletesebben, mert egy elég kellemes eszközt kapunk, de nézzük meg azt is, hogy mit tud a többi. [...]]]></description>
			<content:encoded><![CDATA[<p>Pár napja tette elérhetővé a Google belső használatú JavaScript könyvtárainak egy részét egy hármas pakkban: a Closure Tools keretében mutatta be a <a href="http://code.google.com/closure/compiler/">Closure Compiler</a>, a <a href="http://code.google.com/closure/library">Closure Library</a> és a <a href="http://code.google.com/closure/templates">Closure Templates</a> eszközöket. Az elsőre térnék ki egy kicsit részletesebben, mert egy elég kellemes eszközt kapunk, de nézzük meg azt is, hogy mit tud a többi.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-475" title="closuretools" src="http://webakademia.hu/wp-content/closuretools.jpg" alt="closuretools" width="500" height="325" /></p>
<p>A Closure Tools csomag tehát az alábbi összetevőkből áll:</p>
<ul>
<li><strong>Closure Compiler</strong>: egy JavaScript &#8220;tömörítő&#8221;, mely több algoritmus segítségével képes csökkenteni a JavaScript kódok méretét, illetve gyorsítani is azt.</li>
<li><strong>Closure Library</strong>: a Google saját JavaScript könyvtára, leginkább a Dojo-hoz tudnám hasonlítani, egy a matematikai függvényektől a kommunikáción keresztül a felhasználó interfész elemekig kínál megoldásokat.</li>
<li><strong>Closure Templates</strong>: JavaScriptben és Javaban megvalósított sablonozó</li>
</ul>
<p>A <strong>Closure Library</strong>-re a névterek, illetve az átláthatóságot javító, de sok gépelést igénylő hosszú, angol nyelvű függvénynevek jellemzőek. Személy szerint nem szeretem ezt az irányzatot, én inkább a tömören fogalmazó leíró megoldásokat kedvelem (a Perltől a jQuery-ig), ennek ellenére érdemes vetni a lehetőségekre egy pillantást, mert ha a formátum nem is nyeri el feltétlenül mindenki tetszését, de a lehetőségek kellemesek (mondom ezt úgy, hogy a hasonló névterekkel dolgozó Dojo sohasem tudott meggyőzni).</p>
<p>Amiket kiemelnék a Library nem túl átlátható lehetőségei közül:</p>
<ul>
<li>UI elemek: melyek segítségével a GMailben, GDocsban látható menüt, toolbarokat építhetünk, gombokat tehetünk ki és a Flasht is eltakaró dialógus ablakokat nyithatunk</li>
<li>Gyorsbillentyű kezelés</li>
<li>Helyesírás ellenőrzés</li>
<li>Gears támogatás</li>
<li>Böngésző előzmények kezelés</li>
</ul>
<p>Persze ennél sokkal több van a függvénykönyvtár mögött, az <a href="http://closure-library.googlecode.com/svn/trunk/">SVN repository</a>-ból sokminden kiderül, és ott a <a href="http://code.google.com/closure/library/docs/overview.html">dokumentáció</a> is.</p>
<p>A <strong>Closure Template</strong> egy sablonkezelő rendszer. Röviden csak annyit írnék róla, hogy szintén nem az ízlésem szerint való, mivel &#8211; ha jól láttam &#8211; előzetes fordítást igényel (a template-ről JavaScript, illetve Java kódra). Így valóban a lehető leggyorsabb megoldást kínálja, de fejleszteni annyira nem kényelmes a segítségével. Ha már sablonkezelő és JavaScript, akkor nekem a <a href="http://code.google.com/p/trimpath/wiki/JavaScriptTemplates">Trimpath-féle megoldás</a> sokkal inkább tetszik.</p>
<p>A <strong>Closure Compiler</strong> viszont mindenképpen egy hiánypótló eszköz. Komoly optimalizációkat képes végrehajtani a kódon, felismerve a nem használt részeket, az egyszer használt függvényeket megszüntetve, kódrészleteket összevonva, stb.</p>
<p>Az egyszerű whitespace eltávolító (megjegyzések, sortörések, felesleges pontosvesszők) alapszolgáltatásnak számít más optimalizálók esetében is. A bonyolultabb optimalizálók képesek egyebekre is, mint például a változónevek rövidítésére, az objektum["tulajdonsag"] kódrészlet objektum.tulajdonsag formára hozására, stb. A Closure Compiler azonban ennél is továbbmegy, például a következő optimalizációk elvégzésével:</p>
<ul>
<li><em>if (a) { b(); } -&gt; a &amp;&amp; b()</em></li>
<li><em>if (a) { b(); } else { c(); } -&gt; a?b():c()</em></li>
<li><em>return 2*3; -&gt; return 6;</em></li>
<li><em>var a; var b; -&gt; var a,b;</em></li>
</ul>
<p>A következő kódrészletből:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript"><span style="color: #003366; font-weight: bold;">function</span> osszeadas<span style="color: #009900;">&#40;</span>a<span style="color: #339933;">,</span> b<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">return</span> a<span style="color: #339933;">+</span>b<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>osszeadas<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span><span style="color: #CC0000;">8</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Ezt csinálja:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript"><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">11</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>De képes azokat a függvényeket eltávolítani, melyeket nem használunk a kódunkban, így ha nagyobb függvénykönyvtárakkal dolgozunk, nem kell aggódnunk amiatt, hogy felesleges részeket is betöltünk, az optimalizáció során ezeket eldobja ugyanis a program. <a href="http://code.google.com/closure/compiler/docs/api-tutorial3.html#better">Itt</a> egy még bonyolultabb optimalizációval is találkozhatunk.</p>
<p>A Closure Compilerről persze el kell mondani, hogy nem feltétlenül biztonságos a használata, bonyolult kódelemzést végez ugyan, de egy eval(), vagy más rossz JavaScript megoldás azt eredményezheti, hogy a végeredmény nem lesz működőképes. Ezt a megfelelő JavaScript kódolási stílus betartásával, konfigurációs paraméterek segítségével (mit engedünk, mely részekre engedjük), a kódban tippek leírásával, vagy a komolyabb tömörítések kikapcsolásával tudjuk kivédeni &#8211; értelemszerűen az előbbiek a javasoltak.</p>
<p>Az optimalizáló online (ingyenes), API-val is rendelkező szolgáltatásként, de parancssori eszközként is elérhető. Érdemes <a href="http://closure-compiler.appspot.com/home">játszani vele egy kicsit</a>, látványos. A <a href="http://code.google.com/closure/compiler/docs/inspector.html">Firebug kiegészítő</a> segítségével a tömörített kódban előforduló hibákat is könnyen debuggolhatjuk, így az éles rendszerben sincsen kizárva a hibakeresés lehetősége.</p>
<hr />
<p><small>&copy; boogie for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2009. |
<a href="http://webakademia.hu/2009/11/closure-compiler/">Permalink</a> |
<a href="http://webakademia.hu/2009/11/closure-compiler/#comments">3 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2009/11/closure-compiler/&amp;title=Closure Compiler">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2009/11/closure-compiler/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
