<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>‹Webakadémia /›</title>
	
	<link>http://webakademia.hu</link>
	<description>/ András webkettőt fejleszt /</description>
	<lastBuildDate>Mon, 06 Feb 2012 17:31:28 +0000</lastBuildDate>
	<language>hu-HU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5-alpha-21989</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/webakademia" /><feedburner:info uri="webakademia" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Meetupok, konferenciák</title>
		<link>http://feedproxy.google.com/~r/webakademia/~3/vcIDrgjut2A/</link>
		<comments>http://webakademia.hu/2012/02/meetupok-konferenciak/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 17:28:24 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=581</guid>
		<description><![CDATA[Nekiálltam összeszedni a hazai meetupokat, konferenciákat, és azzal szembesültem, hogy nem nagyon van semmi gyűjtőoldal, ahol össze lenne szedve legalább a tizedük. Tipikus crowdsourcing probléma, gyűjtsük össze közösen! Nyitottam egy Google Calendart a dolognak, illetve be tudtok küldeni ti is újabb elemeket. Maximum 1-2 nap késéssel fognak megjelenni a naptárban a releváns események. Azokat az [...]]]></description>
				<content:encoded><![CDATA[<p>Nekiálltam összeszedni a hazai meetupokat, konferenciákat, és azzal szembesültem, hogy nem nagyon van semmi gyűjtőoldal, ahol össze lenne szedve legalább a tizedük. Tipikus crowdsourcing probléma, gyűjtsük össze közösen! <img src='http://webakademia.hu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><img class="aligncenter size-full wp-image-582" title="meetup" src="http://webakademia.hu/wp-content/meetup.jpg" alt="" width="455" height="303" /></p>
<p>Nyitottam egy Google Calendart a dolognak, illetve <a href="https://docs.google.com/spreadsheet/viewform?formkey=dGFSeHdFbnlLRUREeWQyMWtldmM0LWc6MQ">be tudtok küldeni ti is újabb elemeket</a>. Maximum 1-2 nap késéssel fognak megjelenni a naptárban a releváns események.</p>
<p>Azokat az eseményeket szeretném összeszedni, melyek hazaiak, vagy itthonról kiutazva is érdekesek lehetnek. Leginkább az IT vonal érdekelne, de jöhet minden más is, így még időben kiderülhetnek az egymásra szervezések.</p>
<p><iframe src="https://www.google.com/calendar/embed?src=0qh0oa7lvu5fqsonf1bfi0iu1k%40group.calendar.google.com&#038;ctz=Europe/Prague" style="border: 0" width="500" height="600" frameborder="0" scrolling="no"></iframe></p>
<hr />
<p><small>&copy; boogie for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2012. |
<a href="http://webakademia.hu/2012/02/meetupok-konferenciak/">Permalink</a> |
<a href="http://webakademia.hu/2012/02/meetupok-konferenciak/#comments">7 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2012/02/meetupok-konferenciak/&amp;title=Meetupok, konferenciá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>
<img src="http://feeds.feedburner.com/~r/webakademia/~4/vcIDrgjut2A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2012/02/meetupok-konferenciak/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://webakademia.hu/2012/02/meetupok-konferenciak/</feedburner:origLink></item>
		<item>
		<title>Objective-C I.</title>
		<link>http://feedproxy.google.com/~r/webakademia/~3/ppLprozNk54/</link>
		<comments>http://webakademia.hu/2011/12/objective-c-i/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 13:01:26 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[mobil fejlesztés]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Objective-C]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=571</guid>
		<description><![CDATA[Az iOS fejlesztés tanulása közben az egyik dolog, amivel megismerkedik az ember, az az Objective-C. Részemről a webes, scriptes fejlesztések irányából közelítettem a nyelvhez, s amellett, hogy egy teljesen másik világ, pár ismerős dologgal is lehet találkozni. Két bejegyzést is írok a témáról, de inkább csak a &#8211; számomra &#8211; érdekesebb, és a &#8220;szokásostól eltérő&#8221; [...]]]></description>
				<content:encoded><![CDATA[<p>Az <a href="http://webakademia.hu/2011/12/tanulni-tanulni-tanulni/">iOS fejlesztés tanulása</a> közben az egyik dolog, amivel megismerkedik az ember, az az <strong>Objective-C</strong>. Részemről a webes, scriptes fejlesztések irányából közelítettem a nyelvhez, s amellett, hogy egy teljesen másik világ, pár ismerős dologgal is lehet találkozni. Két bejegyzést is írok a témáról, de inkább csak a &#8211; számomra &#8211; érdekesebb, és a &#8220;szokásostól eltérő&#8221; nyelvi lehetőségeket próbáltom meg összeszedni, és nem egy átfogó képet adni a nyelvről.</p>
<p><img class="aligncenter size-full wp-image-572" title="Objective-C" src="http://webakademia.hu/wp-content/objective-c.png" alt="" width="500" height="325" /></p>
<p>Az Objective-C-ről a <a href="http://en.wikipedia.org/wiki/Objective-C">Wikipédiában is lehet olvasni egy korrekt áttekintést</a>, és a bejegyzés írása közben is találtam egy rövid, tömör összefoglalást: <a href="http://cocoadevcentral.com/d/learn_objectivec/">Learn Objective-C</a>, ezeket is érdemes átolvasni, sokkal több infót átadnak, mint én a következőkben. <img src='http://webakademia.hu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Rövid történet</strong></p>
<p>Az Objective-C 1983-ban jelent meg a NeXT által fejlesztett NeXTSTEP operációs rendszerben (december 20-án volt 15 éve, hogy bejelentette az Apple a NeXT felvásárlását) &#8211; Steve Jobs aktívan részt vett a fejlesztésében. A nyelv ugyanúgy a C kiterjesztése, mint a C++, de az előtt jelent meg, és &#8211; értelemszerűen &#8211; sok ponton különböznek egymástól. Jelentős részén, például az üzeneteken (lásd lejjebb) a Smalltalk jelentős befolyása figyelhető meg, de &#8220;szerencsére&#8221; inkább a C-s vonal maradt az erősebb. Az iOS eszközökön az Apple által 2006-ban bejelentett Objective-C 2.0 változattal dolgozhatunk, bár például a garbage collection-t pont nem támogatja (még?) az iOS.</p>
<p><strong>Szintakszis</strong></p>
<p>Az Objective-C szintakszisa első ránézésre eléggé szokatlan. Másodikra is. Harmadikra viszont már teljesen okés, és az XCode kódkiegészítése is sokat tud segíteni. Mivel C-s nyelvi elemekből építkezik, a PHP-val vagy JavaScripttel összehasonlítva a szinktakszist nagyon sok a hasonlóság, leginkább a metódusok hívása különbözik. Egyből két dolog is van, egyrészt szögletes zárójelek között, nem ponttal, hanem szóközzel elválasztva hívunk meg egy metódust, másrészt sokkal bőbeszédűbb a nyelv a megszokottakhoz képest. Konkrétan:</p>
<pre style="padding-left: 30px;">[UIView alloc]</pre>
<p>Itt az UIView objektum  alloc metódusát hívtuk meg. Más nyelveken ez UIView.alloc() szintakszisú lenne. A paraméterek átadásánál lesz bőbeszédű, ámde nagyon könnyen olvasható a nyelv:</p>
<pre style="padding-left: 30px;">[UIColor colorWithRed:0.16 green:0.33 blue:0.33 alpha:1.0]</pre>
<p>Ahogy látható, nem csak a paramétereket soroltuk fel, hanem a paraméterek neveit is, utánuk kettősponttal írva az értékeket. Más nyelveken ez UIColor.colorWithRedGreenBlueAlpha(0.16, 0.33, 0.33, 1.0) lenne, vagy méginkább UIColor.colorRGBA(0.16, 0.33, 0.33, 1.0). Fontos megérteni, hogy a paraméterek nevei szerves részét képezik a metódus nevének, a sorrendjük nem felcserélhető. A gépelésben a kódkiegészítés segít, a kezdőknek végképp.</p>
<p>Szerintem a legnagyobb sokkot ez a szintakszis tudja okozni a nyelvvel ismerkedőknek, miután megszokjuk, utána viszont már teljesen érthető, átlátható.</p>
<p>Bár ezzel a szintakszissal érhetjük el az objektumtulajdonságokat is, az Objective-C 2.0 bevezette a más nyelveknél megszokott ponttal jelölést is, tehát amennyiben az &#8220;x&#8221; egy property-je az obj-nak, akkor a következő két sor teljesen ekvivalens, mind a kettőt használhatjuk:</p>
<pre style="padding-left: 30px;">[obj x]
obj.x</pre>
<p><strong>Üzenetek, protokollok</strong></p>
<p>Az Objective-C a metódushívást alapvetően nem metódushívásnak, hanem üzenetküldésnek hívja. Az objektumoknak üzenetet küldünk (fentebb az &#8220;alloc&#8221; üzenetet küldtük), amivel az kezd valamit. Az egyik opció az, hogy van egy ilyen nevű metódusa, és azzal fogja lekezelni. Ez a megfogalmazás azonban nem öncélú, az is előfordulhat, hogy az objektum az üzenetet továbbküldi, akár egyszerre több objektumnak is. Ha így gondolkozunk, akkor az gyorsan segít megérteni a protokollokat is.</p>
<p>A <em>protokollok</em> olyan nyelvi elemek, melyek üzeneteket (metódusokat) sorolnak fel, de nem valósítják meg azokat. Nagyon hasonlítanak az osztályok interfészeihez, de csak metódusokból állhatnak. Egy osztály deklarációjakor jelezhetjük, hogy az megvalósít egy konkrét protokollt, vagyis a protokoll által definiált üzenetekre válaszolni tud. Ekkor az osztályunknak ezeket a metódusokat meg kell valósítania (az egyes üzeneteknél a protokoll jelezheti, hogy opcionálisan megvalósítandó egy üzenet lekezelése). A protokollok standardizálják azt, hogy az egyes objektumok hogyan kommunikálhatnak, s milyen üzeneteket küldhetnek egymásnak &#8211; s ez a filozófia aztán az egész objektumhierarchiát áthatja, amivel dolgozunk.</p>
<p><strong>Kategóriák</strong></p>
<p>A protokollokhoz hasonlóan érdekes nyelvi lehetőséget kínálnak a <em>kategóriák</em>, melyek segítségével &#8220;kész&#8221; (pl. amit az operációs rendszer kínál számunkra) osztályokat tudunk kiegészíteni újabb metódusokkal, illetve akár már létező metódusokat is felüldefinálhatunk (ezzel azért óvatosan). Ez nagyon-nagyon hasonlít a JavaScript prototípusainak kiterjeszthetőségéhez, annyira, hogy akár futási időben is kiterjeszthető egy osztály (ez is egyébként a Smalltalk-ból érkezett az Objective-C-be). A kategóriák célja, hogy a kód amit írunk logikusan szervezhető legyen, s ne kelljen alosztályokat létrehoznunk egy kiterjesztéshez.</p>
<p><strong>Folyt. köv.</strong></p>
<p>Rövidesen jön a következő bejegyzés a témáról, melyben pár további egyedi nyelvi megoldásról fogok szót ejteni még.</p>
<hr />
<p><small>&copy; boogie for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2011. |
<a href="http://webakademia.hu/2011/12/objective-c-i/">Permalink</a> |
<a href="http://webakademia.hu/2011/12/objective-c-i/#comments">2 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2011/12/objective-c-i/&amp;title=Objective-C I.">del.icio.us</a>
<br/>
Post tags: <a href="http://webakademia.hu/tag/ios/" rel="tag">iOS</a>, <a href="http://webakademia.hu/tag/ipad/" rel="tag">iPad</a>, <a href="http://webakademia.hu/tag/iphone/" rel="tag">iPhone</a>, <a href="http://webakademia.hu/tag/objective-c/" rel="tag">Objective-C</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>
<img src="http://feeds.feedburner.com/~r/webakademia/~4/ppLprozNk54" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2011/12/objective-c-i/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://webakademia.hu/2011/12/objective-c-i/</feedburner:origLink></item>
		<item>
		<title>Tanulni, tanulni, tanulni</title>
		<link>http://feedproxy.google.com/~r/webakademia/~3/6NvhGMLGjI0/</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">5 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>
<img src="http://feeds.feedburner.com/~r/webakademia/~4/6NvhGMLGjI0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2011/12/tanulni-tanulni-tanulni/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://webakademia.hu/2011/12/tanulni-tanulni-tanulni/</feedburner:origLink></item>
		<item>
		<title>A fapados/lean startup</title>
		<link>http://feedproxy.google.com/~r/webakademia/~3/6UlLqU1-awE/</link>
		<comments>http://webakademia.hu/2011/03/a-fapados-lean-startup/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 15:21:42 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[webbiznisz]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=548</guid>
		<description><![CDATA[A StartUp Underground konferencia kapcsán ajánlotta figyelmembe Balogh Ákos a &#8220;lean startup&#8221; fogalmát, mely a lean filozófiáját alkalmazza a startupokra. A gondolat most kezd népszerűvé válni nemzetközi szinten is, persze leginkább az USA-ban. Az érdeklődőknek érdemes lehet végigmenni egy ingyenesen elérhető kurzuson:  How to Build a Better Startup, illetve megtekinteni a Lean Startup prezentációt - ezeket, [...]]]></description>
				<content:encoded><![CDATA[<p>A <a href="http://suu.hu/">StartUp Underground konferencia</a> kapcsán ajánlotta figyelmembe <a href="http://twitter.com/#!/akibalogh">Balogh Ákos</a> a &#8220;lean startup&#8221; fogalmát, mely a <a href="http://hu.wikipedia.org/wiki/Lean">lean filozófiáját</a> alkalmazza a startupokra. A gondolat most kezd népszerűvé válni nemzetközi szinten is, persze leginkább az USA-ban. Az érdeklődőknek érdemes lehet végigmenni egy ingyenesen elérhető kurzuson:  <a href="http://www.socrated.com/courses/226">How to Build a Better Startup</a>, illetve megtekinteni a <a href="http://www.slideshare.net/startuplessonslearned/lean-startup-presentation-to-maples-investments-by-steve-blank-and-eric-ries-presentation">Lean Startup</a> prezentációt - ezeket, és saját gondolataimat próbálom meg összefoglalni az alábbiakban.</p>
<p><a href="http://webakademia.hu/wp-content/lean.png"><img class="aligncenter size-full wp-image-549" title="lean" src="http://webakademia.hu/wp-content/lean.png" alt="" width="500" height="325" /></a></p>
<p>A <em>lean</em> szó jelentése: vékony, vézna, sovány. A lean filozófia/menedzsment forrása a Toyota módszerként ismertté vált megközelítés, mely a Toyota gyár sikeresen működő megközelítéséből származik. A lean rendszer kiépítéséhez a filozófia <a href="http://hu.wikipedia.org/wiki/Lean#A_lean_rendszer_.C3.A9p.C3.ADt.C3.A9s.C3.A9nek_5_alapvet.C5.91_l.C3.A9p.C3.A9se">5 pontot fogalmaz meg</a>. A <em>lean startup</em> ezeknek a módszereknek, megközelítésnek a startupokra alkalmazása, melyet a következőkben megpróbálok körüljárni. Ahogy ez lenni szokott, elemeiben nem beszélhetünk hatalmas újdonságról, azonban végigtekintve a hazai startup kínálaton (beleértve a saját dolgaimat is), van tanulnivaló az egyes elemek kapcsán is.</p>
<p>A lean startup ígérete, hogy a startupba fektetett pénz költését hatékonyabbá, a startup indítását és jövedelmezővé válását pedig rizikómentesebbé teszi, alapvetően egyszerű módszerekkel. Az egész filozófia egyébként nagyon közel áll az agilis fejlesztéshez, és a scrumhoz is (hiszen ezek gyökere is a lean környékén keresendő), viszont az üzleti megoldásokra koncentrál. A &#8220;lean startup&#8221; fogalma Eric Ries-hoz fűzhető, ő írt róla <a href="http://www.startuplessonslearned.com/2008/09/lean-startup.html">blogbejegyzésében</a>.</p>
<p><strong>A célcsoport felderítése (customer development)</strong></p>
<p>Egy startup egyik kritikus kérdése, hogy van-e megfelelő célcsoportja, lesz-e elegendő felhasználója, s ha olyan az üzleti modellje, akkor megfelelő vevőköre. Elég rizikós, hogy ha rengeteg időt a fejlesztésbe ölve a folyamat végén kiderül, hogy ez mégsincs meg, s rossz esetben az egész projekt kukázható.</p>
<p>Ennek kivédésére igen korai szakaszban érdemes piackutatást végezni, illetve potenciális ügyfeleket találni. Ehhez a fentebb is belinkelt írás a projekt ötlet állapotában demózását, illetve az érdeklődő ügyfelek felől szándéknyilatkozatok beszerzését javasolja.</p>
<p><strong>A termék kialakítása (minimum viable product)</strong></p>
<p>Mivel a legtöbb esetben nagyon költséges annak kiderítése, hogy a piac pontosan mit igényel, és jellemzően a startup indítói és a célcsoport között nincs, vagy nem 100%-os az átfedés, így nehéz meghatározni, hogy mit fognak a felhasználók igényelni, hasznosnak találni. Valószínűleg mindenkinek rengeteg ötlete van, hogy mit lehet belezsúfolni a szolgáltatás feature listájába, de a legjobb, ha egy felesleges sallangoktól mentes, éppen még beindítható, egyszerű megoldást választunk. A korai visszajelzések, a <em>valódi igények</em> mentén aztán lehet alakítani a dolgokat.</p>
<p><strong>Tesztelve fejlesztés (Pivoting)</strong></p>
<p>Egy termékkel sohasem lehetünk készen, indulás után közvetlenül pedig végképp nem. A feladatunk az, hogy megtaláljuk, hogy melyek a célcsoport igényei a továbbfejlesztésre, s hogy jó irányban tegyünk lépéseket. A pivoting jöhet ilyenkor képbe, vagyis az, hogy egyetlen lényegi elem megváltoztatásával felmérjük annak hatását az egészre, s így, lépésenként haladjunk előre. Képbe jöhet az A-B tesztelés, annak mérhetővé tétele, hogy egy változtatásunk milyen hatást hoz.</p>
<p>A projektnek ezt a fázisát hívhatjuk bétának, mely döntésünktől függően lehet zárt, vagy nyitott. Fontos, hogy a visszajelzéseket annak függvényében kezeljük, hogy kik használják a terméket, és a jövőben mire számítunk. Akkor mondhatjuk, hogy egy termék piacképes, &#8220;kész&#8221;, ha ezen a tesztelési szakaszon túl vagyunk, és kialakítottunk egy működő terméket a piac visszajelzései alapján.</p>
<p><strong>Továbbiak</strong></p>
<p>A fenti összegzésre leginkább egy nagyon durva összefoglalásként lehet tekinteni, mint egy átfogó bemutatóként. A bevezetőben említett kurzus szót ejt az árazásról, s további gondolatokról is, s elérhetünk egy <a href="http://leanstartup.pbworks.com/w/page/15765221/FrontPage">kiváló wikit</a> is a témában.</p>
<p>A StartUp Underground konferencián minden évben kiderül, hogy kiváló ötletekkel és fejlesztőkkel (&#8220;technológus&#8221; kifejezést használtunk rájuk) vagyunk megáldva, viszont az üzleti szemlélet, a startup résztvevői közül egy üzleti vonatkozásban jártas szereplő a legtöbb esetben hiányzik. Ez a potenciális befektetőkkel való kommunikációt, illetve a startup reális üzleti lehetőségeinek feltérképezését erőteljesen gátolja. A lean startup fogalmával megismerkedés bár nem gondolom, hogy egy jó üzleti vezetőt pótolhat, de mindenképpen a helyes irányba mozdíthat el egy startupot, így csak javasolni tudom.</p>
<hr />
<p><small>&copy; boogie for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2011. |
<a href="http://webakademia.hu/2011/03/a-fapados-lean-startup/">Permalink</a> |
<a href="http://webakademia.hu/2011/03/a-fapados-lean-startup/#comments">2 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2011/03/a-fapados-lean-startup/&amp;title=A fapados/lean startup">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>
<img src="http://feeds.feedburner.com/~r/webakademia/~4/6UlLqU1-awE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2011/03/a-fapados-lean-startup/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://webakademia.hu/2011/03/a-fapados-lean-startup/</feedburner:origLink></item>
		<item>
		<title>MyISAM, InnoDB és MongoDB tapasztalatok II.</title>
		<link>http://feedproxy.google.com/~r/webakademia/~3/e9lgz7c7kQ4/</link>
		<comments>http://webakademia.hu/2011/03/myisam-innodb-es-mongodb-tapasztalatok-ii/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 07:21:55 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[webadmin]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=545</guid>
		<description><![CDATA[Pár napja írtam bejegyzést MyISAM, InnoDB és MongoDB adatbázisokkal végzett tesztjeimről, most új mérésekről tudok beszámolni. Egyrészt a kapott visszajelzések mentén végeztem pár konfiguráció változtatást, s ennek kapcsán sikerült elérni jelentős sebességnövekedéseket, másrészt pedig bővítettem a kört, és MariaDB (Aria, MyISAM, XtraDB és PXBT motorokkal), Percona Server (MyISAM és XtraDB motorokkal) felállásokban is végeztem méréseket. [...]]]></description>
				<content:encoded><![CDATA[<p>Pár napja írtam <a href="http://webakademia.hu/2011/02/myisam-innodb-es-mongodb-tapasztalatok/">bejegyzést MyISAM, InnoDB és MongoDB adatbázisokkal végzett tesztjeimről</a>, most új mérésekről tudok beszámolni. Egyrészt a kapott visszajelzések mentén végeztem pár konfiguráció változtatást, s ennek kapcsán sikerült elérni jelentős sebességnövekedéseket, másrészt pedig bővítettem a kört, és MariaDB (Aria, MyISAM, XtraDB és PXBT motorokkal), Percona Server (MyISAM és XtraDB motorokkal) felállásokban is végeztem méréseket.</p>
<p><img class="aligncenter size-full wp-image-540" title="my55" src="http://webakademia.hu/wp-content/my55.png" alt="" width="500" height="325" /></p>
<p>Előző alkalommal egy saját fordítású, de különböző népszerű, finomhangolásokat lehetővé tevő patcheket nem tartalmazó MySQL 5.5.9 community edition, illetve egy gyári beállításokkal indított MongoDB 1.6.5 voltak a tesztalanyok. Most egy Percona Server 5.5.8 (béta), és egy MariaDB 5.2.4 disztribúció bővítette a kört. Ezek a disztribúciók alapvetően bináris kompatibilitást ígérve alapból sokkal jobban hangolt, illetve még jobban hangolható változatát ígérik az eredeti MySQL disztribúciónak. A bináris kompatibilitás azt jelenti, hogy a diszken tárolt adatbázisunk felett konverzió elvégzése nélkül kicserélhetjük az adatbázisszervert. Ezek a gyakorlatban nagyon jól is működtek, az egyes adatbázisszerverek által előállított fájlok egy-az-egyben meg is egyeztek.</p>
<p>Az InnoDB-vel végzett tesztjeim kapcsán kaptam több irányból is visszajelzést, hogy ennél jobbnak kellene lennie az eredményeimnek. Alapvetően gyári beállításokkal futtattam, a konfigurációba nem nyúltam bele, emiatt erre számítottam is, de utánaolvastam a témának, és a végeredmény végül erősen meglepett, az InnoDB hozta a MyISAM sebességét.  Ezen kívül a MongoDB kapcsán végeztem még el egy változtatást, miszerint egy extra paraméterrel indítottam, mely csökkentette az I/O-t, és tovább gyorsította az importálás sebességét, még szimpatikusabbá téve a MongoDB szolgáltatásait.</p>
<p>Először álljanak itt a friss eredmények, majd pedig írok arról, hogy pontosan milyen változtatásokat eszközöltem a konfigurációkon. Az adatok és a felállás teljesen megegyezik a korábbi bejegyzésben írottakkal, egy korrekt, más feladatot el nem látó, terhelést nem kapó szerverrel végeztem a méréseket. Az adatfájlok méretét itt nem részletezem, a korábbi bejegyzéshez képest nem változtak. A referencia sebesség, csak az XML feldolgozása továbbra is <strong>2:28 </strong>körüli érték.</p>
<p><strong>MySQL Community Server 5.5.9</strong>, saját fordítás, extra configure paraméterek nélkül</p>
<ul>
<li>MyISAM tábla, tömörítés nélkül: <strong>5:32</strong></li>
<li>MyISAM tábla, PHP oldalon gzdeflate-tel:<strong> 6:17 </strong></li>
<li>InnoDB tábla, tömörítés nélkül: <strong>5:24</strong></li>
<li>InnoDB tábla, PHP oldalon gzdeflate-tel: <strong>6:15</strong></li>
<li>InnoDB tábla, ROW_FORMAT=COMPRESSED-del: <strong>7:56</strong></li>
</ul>
<p>Az InnoDB tábláknál a többi MySQL disztribúcióhoz képest a konfiguráción változtatnom kellett, nem engedett akkora logfájl méretet, mint a többi megoldás.</p>
<p><strong>Percona Server 5.5.8</strong>, béta változat, bináris 64 bites Linuxos disztribúció</p>
<ul>
<li>MyISAM tábla, tömörítés nélkül: <strong>4:54</strong></li>
<li>MyISAM tábla, PHP oldalon gzdeflate-tel: <strong>6:17 </strong></li>
<li>XtraDB tábla, tömörítés nélkül: <strong>5:14</strong></li>
<li>XtraDB tábla, PHP oldalon gzdeflate-tel: <strong>6:29</strong></li>
<li>XtraDB tábla, ROW_FORMAT=COMPRESSED-del: <strong>8:03</strong></li>
</ul>
<p>Az XtraDB engine egy InnoDB fork, olyannyira, hogy a CREATE TABLE során az ENGINE megadásakor így kell rá hivatkozni.</p>
<p><strong>MariaDB 5.2.4</strong>, bináris 64 bites Linuxos disztribúció</p>
<ul>
<li>Aria, tömörítés nélkül: <strong>7:54</strong></li>
<li>Aria, PHP oldalon gzdeflate-tel: <strong>8:00</strong></li>
<li>MyISAM, tömörítés nélkül: <strong>5:31</strong></li>
<li>MyISAM, PHP oldalon gzdeflate-tel: <strong>6:12</strong></li>
<li>XtraDB, tömörítés nélkül: <strong>6:25</strong></li>
<li>XtraDB, PHP oldalon gzdeflate-tel: <strong>6:16</strong></li>
<li>PXBT, tömörítés nélkül: <strong>8:23</strong></li>
<li>PXBT, PHP oldalon gzdeflate-tel: <strong>8:16</strong></li>
</ul>
<p>Az Aria engine egy MyISAM fork, komolyabb eltérésekkel, például ACID műveletekkel. A PXBT egy a PrimeBase cég által fejlesztett, szintén ACID megoldás. Az Aria és a PXBT finomhangolásának erőforrások hiányában NEM jártam utána.</p>
<p><strong>MongoDB 1.6.5</strong>, bináris 64 bites Linux disztribúció</p>
<ul>
<li>tömörítés nélkül: <strong>3:01</strong></li>
<li>PHP oldal gzdeflate-tel: <strong>4:47</strong></li>
</ul>
<p><strong>MongoDB 1.8.0 RC0</strong>, bináris 64 bites Linux disztribúció</p>
<ul>
<li>tömörítés nélkül: <strong>3:02</strong></li>
<li>PHP oldal gzdeflate-tel: <strong>4:46</strong></li>
</ul>
<p>Kipróbáltam a fejlesztői változatot is.</p>
<p><strong>Optimalizációk</strong></p>
<p>A MyISAM tuningolásakor a key_buffer, a key_buffer_size és thread_concurrency értékek voltak, melyek leginkább befolyásolták a sebességet. A végleges beállítások:</p>
<pre>key_buffer              = 16M
key_buffer_size         = 384M
max_allowed_packet      = 16M
table_open_cache        = 512
sort_buffer_size        = 2M
read_buffer_size        = 2M
read_rnd_buffer_size    = 8M
myisam_sort_buffer_size = 64M
thread_stack            = 192K
thread_cache_size       = 8
query_cache_limit       = 1M
query_cache_size        = 32M
thread_concurrency      = 8</pre>
<p>Az InnoDB/XtraDB esetén a sebességben a legjelentősebb változást az alapértelmezett innodb_buffer_pool_size korrekt, illetve az innodb_log_file_size és innodb_log_buffer_size paraméterek hangolásával sikerült elérni. A rendelkezésre álló memóriához, illetve az adatbázis méretéhez képest nagyobbra állítással értem el a kedvező sebességeket. Végül az alábbi paramétereknél maradtam (az utolsó két megoldás az InnoDB ACID mivoltát torpedózza meg, ezzel sebességnövekedést elérve):</p>
<pre>innodb_file_per_table
innodb_file_format      = Barracuda
innodb_buffer_pool_size = 8G
innodb_additional_mem_pool_size = 20M
innodb_log_file_size    = 2G
innodb_log_buffer_size  = 512M
innodb_flush_log_at_trx_commit = 0
innodb_flush_method     = O_DIRECT
</pre>
<p>A MongoDB esetében egyetlen változtatást eszközöltem, parancssorban a <em>&#8211;syncdelay 1000</em> átadásával. Ez a bufferek kiírási gyakoriságát csökkentette 1000 másodpercre, mely több volt, mint az írások futási ideje.</p>
<p><strong>Összefoglalás</strong></p>
<p>Mint látható, a korábbi méréseimhez képest sikerült az InnoDB sebességét a MyISAM motoréhoz hasonló sebességűre hoznom, sőt, volt olyan felállás is, ahol az InnoDB-ből jobb eredményt tudtam kihozni, mint a MyISAM-ból. A Percona Server bizonyult a legjobban optimalizáltnak, hiszen ugyanazon szerverbeállításokkal a MyISAM táblákból jelentősen jobb, az InnoDB (XtraDB) táblákból pedig a többi adatbázis disztribúcióhoz képest megegyező sebességet tudott kihozni. A MongoDB-t tovább sikerült gyorsítanom, ezzel is megmutatva, hogy az egyik leggyorsabb adatbázismotorok között van, jelentősen lepipálva a MySQL szerverek lehetőségeit. A MongoDB-nél mindenképp, de a többi esetben is elmondható, hogy a sebesség eredményeket a PHP oldali adatfeldolgozás, kitömörítés nagymértékben befolyásolta, sokkal gyorsabb eredmények születtek volna, ha a betöltendő adat egyből rendelkezésre áll.</p>
<p>A méréseim visszahozták a bizalmam az InnoDB táblákba, illetve rámutattak arra, hogy a Percona Server disztribúcióra érdemes lehet átállnom. Ez utóbbiról más forrásokból is pozitívumokat hallottam csak, így ezt várhatóan meglépem. A mérések nem kis időmet vitték el, de az írási sebességek mellett mindenképp szeretnék még egy olvasási tesztet is elvégezni, valamennyire modellezve a végső felállást is, így úgy tűnik, hogy lesz egy harmadik rész is, mely erről fog szólni.</p>
<hr />
<p><small>&copy; boogie for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2011. |
<a href="http://webakademia.hu/2011/03/myisam-innodb-es-mongodb-tapasztalatok-ii/">Permalink</a> |
<a href="http://webakademia.hu/2011/03/myisam-innodb-es-mongodb-tapasztalatok-ii/#comments">3 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2011/03/myisam-innodb-es-mongodb-tapasztalatok-ii/&amp;title=MyISAM, InnoDB és MongoDB tapasztalatok II.">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>
<img src="http://feeds.feedburner.com/~r/webakademia/~4/e9lgz7c7kQ4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2011/03/myisam-innodb-es-mongodb-tapasztalatok-ii/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://webakademia.hu/2011/03/myisam-innodb-es-mongodb-tapasztalatok-ii/</feedburner:origLink></item>
		<item>
		<title>MyISAM, InnoDB és MongoDB tapasztalatok</title>
		<link>http://feedproxy.google.com/~r/webakademia/~3/AD8o5nGVgJ0/</link>
		<comments>http://webakademia.hu/2011/02/myisam-innodb-es-mongodb-tapasztalatok/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 11:39:50 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[webadmin]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=538</guid>
		<description><![CDATA[A napokban egy viszonylag speciális szemszögből azt vizsgáltam meg, hogy milyen adatbázis lehetőségeim vannak nagy mennyiségű adattárolásra. Azt mértem, hogy a Wikipédia magyar és angol változatának XML-ből adatbázisba áttöltése mennyi ideig tart, és mekkora a tárhelyigénye az így létrejövő adatbázisnak. A mérésben a MySQL 5.5 MyISAM és InnoDB táblaformátumai, illetve a MongoDB vettek részt. Eredmények, [...]]]></description>
				<content:encoded><![CDATA[<p>A napokban egy viszonylag speciális szemszögből azt vizsgáltam meg, hogy milyen adatbázis lehetőségeim vannak nagy mennyiségű adattárolásra. Azt mértem, hogy a Wikipédia magyar és angol változatának XML-ből adatbázisba áttöltése mennyi ideig tart, és mekkora a tárhelyigénye az így létrejövő adatbázisnak. A mérésben a MySQL 5.5 MyISAM és InnoDB táblaformátumai, illetve a MongoDB vettek részt. Eredmények, tapasztalatok. <strong>Update: </strong><em>az InnoDB sebességét más my.cnf beállításokkal is leteszteltem, s jóval kedvezőbb sebességet sikerült kihozni, illetve Percona Server 5.5.8 és MariaDB 5.2.4 szerverekkel is végeztem méréseket. Az eredményeket egy másik bejegyzésben hamarosan közzéteszem.</em></p>
<p><img class="aligncenter size-full wp-image-540" title="my55" src="http://webakademia.hu/wp-content/my55.png" alt="" width="500" height="325" /></p>
<p>A célom annak eldöntése volt, hogy mely az az adattárolási eszköz, melyet kiválaszthatok nagyon-nagy mennyiségű adattárolásához. A legfontosabb szempont számomra az, hogy az adatokat minél gyorsabban letárolhassam, mivel folyamatosan fogok komoly mennyiségű változást átvezetni az adatbázison.</p>
<p>Az adatbázisszerver egy saját fordítású, MySQL 5.5.9-es community edition volt, a MongoDB pedig egy 1.6.5-ös, 64 bites bináris Linuxos verzió. A teszteket Ubuntu Linux alatt végeztem. A MySQL beállításai alapvetően a gyári &#8220;huge&#8221; alapján voltak belőve, a MongoDB-t nem konfiguráltam. A MySQL konfig releváns sorai:</p>
<pre>  key_buffer               = 16M
  key_buffer_size          = 384M
  max_allowed_packet       = 16M
  table_open_cache         = 512
  sort_buffer_size         = 2M
  read_buffer_size         = 2M
  read_rnd_buffer_size     = 8M
  myisam_sort_buffer_size  = 64M
  thread_stack             = 192K
  thread_cache_size        = 8
  query_cache_limit        = 1M
  query_cache_size         = 32M
  thread_concurrency       = 8
  innodb_file_per_table
  innodb_file_format       = Barracuda
  innodb_additional_mem_pool_size = 20M
  innodb_log_buffer_size   = 8M
  innodb_flush_log_at_trx_commit = 1
  innodb_lock_wait_timeout = 50</pre>
<p>A teszteléshez a Wikipédia adatbázisát választottam, mind a magyar, mind az angol változat dumpjaival végeztem méréseket, de az angol akkora adatmennyiségnek bizonyult, hogy végülis nem futtattam le mindegyik mérést ezekkel az adatokkal. A magyar Wikipédia dump 336,707,547 byte-nyi bzippel tömörített XML fájl volt 415,111 szócikkel, amit egy rövid PHP kóddal dolgoztam fel, on-the-fly kitömörítéssel, és az adatok egyből történő letárolásával.</p>
<p>Több felállást is vizsgáltam, kipróbáltam az InnoDB transzparens tömörítési lehetőségét (ROW_FORMAT=COMPRESSED), illetve olyan felállást is, amikor a PHP oldalán tömörítettem be a Wikipédia cikkeket, a gzdeflate paranccsal. Az adatbázis id, language és content oszlopokat tartalmazott, ahol az id a cikk címe, a language a nyelve (&#8216;hu&#8217;), míg a content a cikk tartalma volt. Egyetlen összetett index volt a táblákon, mely az id és language oszlopokat tartalmazta. A méréseket egy mást egyáltalán nem végző szerveren folytattam le, bőségesen elég memóriával, 7200 rpm-es SATA2 diszkekkel, négymagos Intel Xeon processzorokkal.</p>
<p>A következő mérési eredményeim voltak (táblatípus, tömörítés, időtartam perc:másodperc formában, az adatok helyfoglalása):</p>
<ul>
<li><strong>MyISAM </strong>tábla, tömörítés nélkül: <strong>5:14</strong>, <strong>1,159,562K táblaméret</strong></li>
<li><strong>MyISAM</strong> tábla, PHP oldalon <strong>gzdeflate</strong>-tel: <strong>6:24</strong>, <strong>531,764,518 byte táblaméret</strong></li>
<li><strong>InnoDB </strong>tábla, tömörítés nélkül: <strong>27:58</strong>, <strong>2,138,120K táblaméret</strong></li>
<li><strong>InnoDB</strong> tábla, PHP oldalon <strong>gzdeflate</strong>-tel: <strong>18:14, 1,019,912K táblaméret </strong></li>
<li><strong>InnoDB </strong>tábla, <strong>ROW_FORMAT=COMPRESSED</strong>-del: <strong>22:42</strong>, <strong>978,952K táblaméret</strong></li>
<li><strong>MongoDB</strong>, tömörítés nélkül: <strong>3:31</strong>, <strong>4,144,128K táblaméret</strong></li>
<li><strong>MongoDB</strong>, PHP oldalon <strong>gzdeflate</strong>-tel: <strong>4:25</strong>, <strong>2,048,000K táblaméret</strong></li>
<li><strong>adattárolás nélkül</strong>: <strong>2:28</strong></li>
</ul>
<p>MyISAM esetén az MYI, MYD és FRM fájlokat, InnoDB esetén az IBD és FRM fájlok, míg MongoDB esetén az adatbázishoz köthető .0, .1, .2&#8230; fájlok együttes méretét értem táblaméret alatt. Ez utóbbi méret csalóka lehet, mert a MongoDB nagyobb blokkokban foglalja le a tárhelyet az adatbázishoz.</p>
<p>Bármely megoldást is választottam, látszik, hogy az egyben bzippel tömörített, eredeti XML fájl mérete a legkisebb, ez várható is volt. Az InnoDB tárhelyigényét furcsállom, érdekes, hogy a tömörítés nélküli MyISAM volt akkora kb., mint a tömörített InnoDB. Az InnoDB beépített tömörítési lehetősége ami a sebességet illeti eléggé leszerepelt (de méretben sem sokkal jobb egy kliens oldali megoldásnál), továbbra is úgy tűnik, hogy kliens oldalon érdemesebb a tömörítést megoldani. Az InnoDB-nél látszik, hogy a sebesség erősen függ attól, hogy mekkora lesz a végleges táblaméret, a MyISAM tábláknál nem volt ilyen erős az összefüggés, sőt, amikor nem volt tömörítés, a több adatot gyorsabban ki tudta írni a MyISAM, itt már látszott, hogy a tömörítés fogta a sebességet, nem pedig az I/O műveletek.</p>
<p>A MongoDB verte mindegyik másik megoldás sebességben, a tárhely foglalása viszont láthatóan nem olyan optimális, mint egy MyISAM táblának, még talán úgy sem, hogy a lefoglalt blokk nagy része valószínűleg üres volt.</p>
<p>A sebessége miatt az InnoDB-t egyértelműen elvetettem. Míg MyISAM-mal 3-4 óra alatt betölthető volt az angol Wikipédia tartalom, addig az InnoDB-s táblába majd 1 napig tartott a betöltés. Az igen jelentős sebességkülönbség a fenti számokon is látszik. Azt gondolom, hogy a sebességen biztosan lehetne javítani pár konfig beállítás átállításával, de valószínűleg így is csak megközelítené, de nem érné be a MyISAM sebességét. A MongoDB megoldása továbbra is nagyon szimpatikusnak tűnik, a MongoDB vs. MyISAM kapcsán célszerű lenne egy random olvasási tesztet is elvégeznem, hogy korrekten tudjak dönteni.</p>
<p>A mérések csak az írási sebességet vizsgálták, és az írás 1 szálon zajlott, a forrás és a cél adatbázis ugyanazon a diszken volt, bár mind a kettő együttesen is belefért a memóriába, így valószínűleg az operációs rendszer cache-elte a forrást. Mivel ezek viszonylagosan speciálisnak mondhatóak, így mondjuk egy átlagos weblap esetén a működéssel valószínűleg nem összehasonlíthatók.</p>
<hr />
<p><small>&copy; admin for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2011. |
<a href="http://webakademia.hu/2011/02/myisam-innodb-es-mongodb-tapasztalatok/">Permalink</a> |
<a href="http://webakademia.hu/2011/02/myisam-innodb-es-mongodb-tapasztalatok/#comments">16 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2011/02/myisam-innodb-es-mongodb-tapasztalatok/&amp;title=MyISAM, InnoDB és MongoDB tapasztalatok">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>
<img src="http://feeds.feedburner.com/~r/webakademia/~4/AD8o5nGVgJ0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2011/02/myisam-innodb-es-mongodb-tapasztalatok/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		<feedburner:origLink>http://webakademia.hu/2011/02/myisam-innodb-es-mongodb-tapasztalatok/</feedburner:origLink></item>
		<item>
		<title>Viszlát Origo, hello Arkon!</title>
		<link>http://feedproxy.google.com/~r/webakademia/~3/8O6Ztmu_jdI/</link>
		<comments>http://webakademia.hu/2010/02/viszlat-origo-hello-arkon/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 20:02:20 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[személyes]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=522</guid>
		<description><![CDATA[Twitteren már decemberben megírtam, a blogomra most sikerült összehoznom csak ezt a bejegyzést: január elejétől az Arkon Zrt-nél, közismertebb nevén az ingatlan.com-nál dolgozom. Időközben magánéletemben is jelentőségteljes változások történtek: december 16-án megszületett Nóra Anna névre hallgató kislányom. Az Origos, konkrétabban iWiW Developer Supportos munkát tavaly 2008. decemberében kezdtem meg, így bő egy évet töltöttem ezen [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://twitter.com/ba78">Twitteren</a> már decemberben megírtam, a blogomra most sikerült összehoznom csak ezt a bejegyzést: január elejétől az Arkon Zrt-nél, közismertebb nevén az <a href="http://ingatlan.com/">ingatlan.com</a>-nál dolgozom. Időközben magánéletemben is jelentőségteljes változások történtek: december 16-án megszületett Nóra Anna névre hallgató kislányom.</p>
<p>Az Origos, konkrétabban iWiW Developer Supportos munkát tavaly 2008. decemberében kezdtem meg, így bő egy évet töltöttem ezen a poszton, s úgy érzem hogy a feladatomat több-kevesebb sikerrel, rengeteg energiát beletéve sikerült jól végeznem. Az iWiW-ben még rengeteg lehetőség van, s bízom benne, hogy az új (Origo) vezetőséggel ezeket még hatékonyabban is kihasználja majd a társaság. A poszt otthagyása nem saját döntésem volt, de tekintettel arra, hogy a kezdeti újdonságdömping, illetve kommunikálandó lehetőségek száma az idő során csökkent, logikus lépésnek gondolom az Origo részéről az együttműködés lezárását.</p>
<p>Az Arkonnál egy igen érdekes munkakörbe, egy jó társaságba, és a válság ellenére is prosperáló, hazánk egyik legjobban működő, kizárólag magyar tulajdonú vállalkozásába csöppentem bele pár hete. A munkám nagyrészt az IT osztályon zajlik, de ezen felül több érdekes feladattal és lehetőséggel is kiegészül. Az egyik ilyen, hogy jobban láthatóvá tehetem az Arkont a hazai fejlesztői közösség számára (a dinamikus növekedés, számos új projektterv további fejlesztők csatlakozását igényli &#8211; most is éppen keresünk programozókat, rendszergazdákat), de heti szintű szakmai előadások tartásával, beszélgetésekkel a belső oktatás is új lendületet kapott. A cég már érkezésem előtt bevezette a fejlesztésben a &#8220;<a href="http://en.wikipedia.org/wiki/Scrum_%28development%29">scrum</a>&#8221; metodológiát, melybe én is belerázódhattam pár nap alatt (egész hatékonynak tűnik). Hazánkban eddig más cégnél általam még nem látott, a Google által ismertté vált 80-20%-os munkabeosztásra is lehetőségem van, vagyis 20%-át egy hétnek a saját projektjeimre fordíthatom. Az ingatlan.com csoport részét képezi a linkcenter.hu, utcakereso.hu, telepuleskereso.hu, koponyeg.hu, alaprajz.com és a blogol.hu is, s a Miner is kicsit közeledni fog jellemzően leginkább apróságokkal (a linkcenter.hu keresőjét például pár hónapja már a Miner keresőmotorja szolgálja ki), így bőven van mivel ismerkedni egy ideig.</p>
<hr />
<p><small>&copy; admin for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2010. |
<a href="http://webakademia.hu/2010/02/viszlat-origo-hello-arkon/">Permalink</a> |
<a href="http://webakademia.hu/2010/02/viszlat-origo-hello-arkon/#comments">16 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2010/02/viszlat-origo-hello-arkon/&amp;title=Viszlát Origo, hello Arkon!">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>
<img src="http://feeds.feedburner.com/~r/webakademia/~4/8O6Ztmu_jdI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2010/02/viszlat-origo-hello-arkon/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		<feedburner:origLink>http://webakademia.hu/2010/02/viszlat-origo-hello-arkon/</feedburner:origLink></item>
		<item>
		<title>HipHop, avagy gyors PHP a Facebooktól</title>
		<link>http://feedproxy.google.com/~r/webakademia/~3/x6oFRcBfcXk/</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>
<img src="http://feeds.feedburner.com/~r/webakademia/~4/x6oFRcBfcXk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2010/02/hiphop-avagy-gyors-php-facebooktol/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://webakademia.hu/2010/02/hiphop-avagy-gyors-php-facebooktol/</feedburner:origLink></item>
		<item>
		<title>Mekkora monitorod van?</title>
		<link>http://feedproxy.google.com/~r/webakademia/~3/LZYsFEVb3S4/</link>
		<comments>http://webakademia.hu/2010/01/mekkora-monitorod-van/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 11:04:27 +0000</pubDate>
		<dc:creator>Bártházi András</dc:creator>
				<category><![CDATA[webkettő]]></category>

		<guid isPermaLink="false">http://webakademia.hu/?p=519</guid>
		<description><![CDATA[Ma reggel örvendeztem Twitteren, hogy üzembe állítottam az új cégemnél a monitoromat, erre @jendre megkérdezte, hogy mekkora is az akkora &#8211; s én se voltam rest, megkérdeztem az engem követőket, náluk mi a helyzet. Jó sok válasz érkezett, a feldolgozásukra nem vállalkoznék, de íme egy szép &#8220;screenshot&#8221;: &#169; admin for ‹Webakadémia /›, 2010. &#124; Permalink [...]]]></description>
				<content:encoded><![CDATA[<p>Ma reggel <a href="http://twitter.com/ba78/status/7979834900">örvendeztem Twitteren</a>, hogy üzembe állítottam az új cégemnél a monitoromat, erre <a href="http://twitter.com/jendre">@jendre</a> <a href="http://twitter.com/jendre/status/7979895996">megkérdezte</a>, hogy mekkora is az akkora &#8211; s én se voltam rest, megkérdeztem az engem követőket, náluk mi a helyzet. Jó sok válasz érkezett, a feldolgozásukra nem vállalkoznék, de íme egy szép &#8220;screenshot&#8221;:</p>
<p style="text-align: center;">
<div id="attachment_520" class="wp-caption aligncenter" style="width: 426px"><img class="size-full wp-image-520" title="Monitor méret" src="http://webakademia.hu/wp-content/monitormeret.jpg" alt="Mekkor a monitorod?" width="416" height="2745" /><p class="wp-caption-text">Mekkora a monitorod?</p></div>
<hr />
<p><small>&copy; admin for <a href="http://webakademia.hu">‹Webakadémia /›</a>, 2010. |
<a href="http://webakademia.hu/2010/01/mekkora-monitorod-van/">Permalink</a> |
<a href="http://webakademia.hu/2010/01/mekkora-monitorod-van/#comments">7 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://webakademia.hu/2010/01/mekkora-monitorod-van/&amp;title=Mekkora monitorod van?">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>
<img src="http://feeds.feedburner.com/~r/webakademia/~4/LZYsFEVb3S4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2010/01/mekkora-monitorod-van/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://webakademia.hu/2010/01/mekkora-monitorod-van/</feedburner:origLink></item>
		<item>
		<title>jQuery 1.4 újdonságok</title>
		<link>http://feedproxy.google.com/~r/webakademia/~3/Hr_gvr6JrCY/</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>
<img src="http://feeds.feedburner.com/~r/webakademia/~4/Hr_gvr6JrCY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://webakademia.hu/2010/01/jquery-1-4-ujdonsagok/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://webakademia.hu/2010/01/jquery-1-4-ujdonsagok/</feedburner:origLink></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! -->
