Szájtbilder
https://szajtbilder.blog.hu/atom
blfr6@https://blog.hu
©2024 blog.hu
https://szajtbilder.blog.hu/2011/02/20/mit_tanulnal_szivesen
Mit tanulnál szívesen?
2011-02-20T13:13:00+01:00
2011-02-20T13:13:00+01:00
Thoer
https://blog.hu/user/11259
<p>Rég írtam a blogba, de most azt hiszem, megint lenne rá némi időm. Három téma foglalkoztat igazán, ha valakit érdekel bármelyik, hagyjon nekem egy kommentet! (Azt hiszem, nem kell regisztrálni hozzá.)</p><p>Gyakorlatilag készen van az a rendszer, amivel terveim szerint a következő 1-2 évben dolgozni szeretnék. Ez egy Zend Framework / Doctrine 1 alapú admin rendszer, ami elvileg JavaScript nélkül is működik, de viszonylag komoly jQuery / jQuery UI / TinyMce támogatással is rendelkezik. Szerintem van benne pár előremutató megoldás, például alapvetően HTML5-ös kódolást használtam, de egy kis plugin segítségével a HTML5 tageket HTML4-re kódolom az IE-nek, mobilioknak, elavult böngészőknek. Ezt a rendszert szívesen bemutatnám egy cikk sorozatban, de azon felül hogy szakmailag valószínűleg ez lenne a legizgalmasabb, szerintem ez érdekelné a legkevesebb embert. (Itt jegyezném meg, hogy többek között <a href="http://www.szjani.hu/">Szurovecz János blogjából</a> elég sok ötletet merítettem. Mindenképpen ajánlom a blogját az RSS olvasótokba.)</p><p>Másik felvetésem, hogy programozás helyett visszatérnék a valódi szájtbilding témákhoz. Mostanában volt szerencsém egy tanult, de tapasztalatlan szájtbilderrel együtt dolgozni, a neki adott útmutatásaimat valószínűleg sokan tudnák a mindennapokban hasznosítani. 2-3 blogposzt biztos összejönne a hibás és vagy épp a jó elképzelések összegzéséből.</p><p>A harmadik, hogy két barátom is szeretne megismerkedni a JavaScripttel legalább közepes szinten, és magyar nyelven nem találnak igazán jó leírásokat. Én a magam részéről nagyon szeretem a NetTuts <a href="http://net.tutsplus.com/series/javascript-from-null-series/">JavaScript from Null</a> videóit, még ha nekem kicsit későn is jöttek ki. Könnyen lehet, hogy körül kéne néznem nekem is, mielőtt egy sorozatba belevágok, de ha van rá érdeklődés, szívesen foglalkoznék ezzel is. Néhány látványos és egyszerű megoldás bemutatása mellett kitérnék a DOM manipulálás buktatóira és megoldásaira, illetve valószínűleg egy kis jQuery forráskód elemzés is lenne benne.</p><p>Minden véleményt szívesen fogaddok, remélem lesz némi érdeklődés. Ha nem, akkor majd az aktuális hangulatom fog dönteni a kérdésben.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2011%2F02%2F20%2Fmit_tanulnal_szivesen%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2011%2F02%2F20%2Fmit_tanulnal_szivesen%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2011%2F02%2F20%2Fmit_tanulnal_szivesen%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Mit tanulnál szívesen?"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2011/02/20/mit_tanulnal_szivesen#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/2674554" border="0" /></a><br /></p>
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2010/10/05/codesniffer_gyorstipp
codesniffer gyorstipp
2010-10-05T13:21:00+02:00
2010-10-05T13:21:00+02:00
Thoer
https://blog.hu/user/11259
<p>Tulajdonképp nincs komoly tapasztalatom a CodeSnifferrel és épp emiatt nem is próbálok meg belemenni a mélységeibe, de baromira idegesített, hogy ha Zend standarddal próbáltam elemeztetni a Zend Framework dokumentumomat, a többsoros függvényhívásoknál, mindig vinnyogott, hogy a hívás első sorában a nyitó zárójel után ne álljon semmi. (<em>Opening parenthesis of a multi-line function call must be the last content on the line</em>) Márpedig a doksi szerint ez nem gond. (<a href="http://framework.zend.com/manual/en/coding-standard.coding-style.html">http://framework.zend.com/manual/en/coding-standard.coding-style.html</a>)</p> <p>A saját kódomban még csak javítgathattam volna a dolgot, mert arra nem látok a leírásban semmit, hogy ténylegesen a standard elleni vétség lenne a paraméterek új sorra helyezése. A Doctrine által generált kódot viszont macerás és felesleges lett volna emiatt módosítani. Emiatt mindig kihagytam a generált könyvtárat kb így:</p> <p><code>$: phpcs -n --standard=Zend --encoding=utf-8 --ignore=*/tests/log*,*application/models/Base*,*library/Zend*,*library/Doctrine*,*library/vendor*,*orig* ./</code></p> <p>Mivel viszont még a parancssoros projekt-generátor is generál többsoros hívást ahogy a paraméterek a zárójel után kezdődnek, ezért úgy döntöttem inkább belenyúlok a Snifferbe.</p> <div style="background-color: rgb(255, 255, 208); border: 1px solid rgb(255, 153, 0); margin-top: 4px; padding: 6px 8px 0pt; font-style: italic;"><p>Megjegyzés CS-t nem ismerőknek: A fenti parancs elindítja a CodeSniffert, kikapcsolja a figyelmeztetéseket (pl sor hosszabb, mint 80 karakter), beállítja a Zend-et mint standard és egyértelműsíti, hogy utf-8 fájlokkal fog dolgozni, majd vesszővel elválasztva megadja a kihagyandó könyvtárakat, végül megadja, hogy melyik könyvtárban dolgozzon a Sniffer.</p></div> <p> </p> <p>Előszöris meg kellett keresnem a CodeSniffert, ami nálam a /usr/share/php/PHP/CodeSniffer/ könyvtárban ült. Kikerestem és megnyitottam a Zend Standardot, ami meglepő módon a Standards/Zend alkönyvtár volt, melyben egy ruleset.xml és egy Sniff könyvtár van. Ha megnyitjuk az xml fájlt, az alábbi leírást pillanthatjuk meg hozzá: </p> <p><code>A coding standard based on an early Zend Framework coding standard. Note that this standard is out of date.</code>Nyilván ezt a helppel is elő lehet hozni, én sosem tettem. Mindegy, ne bántsuk a Standardot, inkább hozzunk létre egy sajátot gyorsan. Mivel furcsa mód a Zend alkönyvtárban levő Sniffeket egyáltalán nem használja a rulest.xml, ezért ne is foglalkozzunk felük. Hozzunk létre egy új könyvtárt és másoljuk át az xml fájlt:</p> <p><code>$: sudo mkdir /usr/share/php/PHP/CodeSniffer/Standards/MyZend<br /> $: cd /usr/share/php/PHP/CodeSniffer/Standards/MyZend<br /> $: sudo cp ../Zend/ruleset.xml ruleset.xml</code></p> <p>Maga a szabály, ami nekem fájt a FunctionCallSignature volt, amit a PEAR szabályrendszerből vesz az xml. Másoljuk át ezt is a megfelelő könyvtárba:</p> <p><code>$: sudo mkdir -p Sniffs/Functions<br /> $: sudo cp ../PEAR/Sniffs/Functions/FunctionCallSignatureSniff.php Sniffs/Functions/FunctionCallSignatureSniff.php<br /> </code></p> <p>Ezután szerkesszük a <em>ruleset.xml</em> fájlunkat, írjuk át a ruleset tag nevét MyZend-re aés cseréljük ki a <em>PEAR.Functions.FunctionCallSignature</em>-t <em>MyZend.Functions.FunctionCallSignature</em>-re. Ezután nyissuk meg a FunctionCallSignatureSniff.php fájlt, írjuk át az osztály nevét MyZend_Sniffs_Functions_FunctionCallSignatureSniff-re, végül a fájl vége felé található következő kódrészt kommenteljük ki:</p><p><code>if ($tokens[($openBracket + 1)]['content'] !== $phpcsFile->eolChar) {<br /> $error = 'Opening parenthesis of a multi-line function call must be the last content on the line';<br /> $phpcsFile->addError($error, $stackPtr, 'ContentAfterOpenBracket');<br />}<br /><br />$prev = $phpcsFile->findPrevious(T_WHITESPACE, ($closeBracket - 1), null, true);<br />if ($tokens[$prev]['line'] === $tokens[$closeBracket]['line']) {<br /> $error = 'Closing parenthesis of a multi-line function call must be on a line by itself';<br /> $phpcsFile->addError($error, $closeBracket, 'CloseBracketLine');<br />}</code>Ezután már csak egy dolgunk van, reménykedni, hgoy előbb-utóbb elérhető lesz egy sokkal jobb Zend CodeSniffer csomag, mint a jelenlegi, mert természetesen ez inkább egy hack, mint egy korrekt megoldás.</p><p>Extraként, ha főleg Zend Frameworkkel dolgozunk, akkor alapértelmezetté tehetjük a standard csomagunkat:</p><pre class="screen"><code><tt><tt class="userinput">phpcs --config-set default_standard MyZend</tt></tt></code>
</pre>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F10%2F05%2Fcodesniffer_gyorstipp%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F10%2F05%2Fcodesniffer_gyorstipp%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F10%2F05%2Fcodesniffer_gyorstipp%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=codesniffer gyorstipp"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2010/10/05/codesniffer_gyorstipp#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/2341481" border="0" /></a><br /></p>
zend_framework
codesniffer
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2010/10/03/ubuntu_apache_installalas_2_final_touch
ubuntu apache installálás 2
2010-10-03T14:00:00+02:00
2010-10-03T14:00:00+02:00
Thoer
https://blog.hu/user/11259
<h3>avagy kubuntu for dummies 2</h3> <p>Az <a href="http://szajtbilder.blog.hu/2010/08/25/ubuntu_apache_installalas_lamp_server">előző részben</a> összeraktuk a szervert, de pár dolog még hiányzik, ezeket gyűjtöttem most össze.</p> <h3>Pear + PHPUnit</h3> <p>Először installáljuk a peart:</p> <p><code>sudo apt-get install pear</code></p> <p>Majd installáljuk a phpunitot is:</p> <p><code>sudo pear channel-discover pear.phpunit.de<br /> sudo pear channel-discover pear.symfony-project.com<br /> sudo pear install phpunit/PHPUnit</code></p> <h3>xDebug</h3> <p>Az xDebug installálása elvileg egyetlen kattintás, de sajnos nem fog rögtön lefutni, ha nem telepítettük még a php5-dev csomagot. (Panaszkodni fog a pecl valahogy így: "running: phpize sh: phpize: not found ERROR: `phpize' failed.")</p> <p><code>sudo apt-get install php5-dev<br /> sudo pecl install xdebug</code>Ne lepődjünk meg, ha a pecl ellepi a konzolunkat szöveggel, ilyenkor forrásból állítja össze nekünk az xdebugot.</p> <p>Ha a kurzor visszanyerése előtti utolsó sor valami olyasmin, hogy "You should add "extension=xdebug.so" to php.ini<br /> ", akkor már majdnem jó a helyzet, de a php még nem tud az xdebugról. nézzük meg hol jött létre az xdebug.so, ehhez nyissuk meg az /usr/lib/php5 könyvtárat és ls-el keressünk egy dátummal kezdődő könyvtárat. Nálam ez a <em>20090626+lfs</em> volt. Ez kelleni fog a következő lépéshez, létrehozunk egy külön beállítás fájlt a modulnak:</p> <p><code>sudo gedit /etc/php5/conf.d/xdebug.ini</code></p> <p>Ennek első sora legyen:</p> <p><code>zend_extension=/usr/lib/php5/<span style="color: rgb(255, 0, 0);">20090626+lfs</span>/xdebug.so</code>Az apache újraindítása után elérhető lesz az xdebug, megjelenik a phpinfo()-ban is, de először inkább állítsuk be izlés szerint az xdebugot. (További opciók: <a href="http://www.xdebug.org/docs/">http://www.xdebug.org/docs/</a>)</p> <h3>PhpMyAdmin</h3> <p><code>sudo apt-get install phpmyadmin</code>Bár ez borzasztó egyszerűnek tűnik, az első kubuntu intallálásomkor valamiért így nem akaródzott működni. Ekkor letöltöttem a forrást, de egy XP-s NTFS vinyóra volt. Mivel viszont itt nem lehet jogosultságokat megadni, ez azt eredményezte, hogy a phpmyadmin elkezdett nekem hibát dobni, amikor ki akartam kapcsolni a jelszókérést. Épp ezért, bár nyilván működhet a forrásból kicsomagolt program is, ha egy mód van rá én a jövőben maradok a ez előre csomagolt verziónál.</p> <h3>CodeSniffer</h3> <p>Az egységes kódhasználat nagyszerű dolog, sajnálatos, hogy egy átlagos projektben is szinte lehetetlen megcsinálni. Pontosabban a saját kóddal semmi gond, de ha már akár csak két idegen könyvtárat is használni szeretnénk, szinte biztosan különböző kódolási mintákat fognak követni. Azért legalább a saját kódunk egységességét megpróbálhatjuk követni a CodeSnifferrel:</p> <p><code>pear install PHP_CodeSniffer-1.3.0RC1</code></p> <h3>PHP beállítások</h3> <p><code>sudo gedit /etc/php5/apache2/php.ini</code></p> <p>Szeretem a feltöltéshez kapcsolódó beállításokat jó nagyra venni, így könnyen importálhatok több száz megás adatbázisokat a saját gépemre. Ehhez általában csak a max szótöredékre keresem végig a php.ini-t.</p> <p><code>max_execution_time = 300<br /> max_input_time = 600<br /> memory_limit = 512M<br /> post_max_size = 400M<br /> upload_max_filesize = 400M</code></p> <p>Jöjjenek a hibabeállítások. Saját körneyezetről van szó, úgyhogy hadd jöjjenek a hibaüzik, inkább itt mint élesben... A html_errors amúgy kicsit megviccelt, mert Windows alatt sosem kellett foglalkoznom vele, itt viszont xdebug-gal sem kaptam a szokásos szép kimenetet.</p> <p><code>error_reporting = E_ALL | E_STRICT<br /> display_errors = On<br /> display_startup_errors = On<br /> html_errors = On</code></p> <p>Ezen kívül én még az open_short_tag = Off beállítást preferálom, úgyse használok rövid taget és a komolyabb keretrendszerek is tiltják általában. (Egyetlen általam ismert kivétel a CodeIgniter, de azt már régóta nem használom és a template fájlokban fel is oldja a problémát egy config beállítással.)</p> <h3>Hiányzó PHP modulok</h3> <p><code>sudo apt-get install php5-curl</code></p> <h3>Hiányzó apache modulok</h3> <p>Futassuk elkészült oldalainkon a YSlow és Page Speed lekéréseket és máris hiányozni fog pár modul az alapértelmezett apachból.</p> <p><code>sudo a2enmod expires</code></p> <p><code>sudo a2enmod headers </code></p> <p> </p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F10%2F03%2Fubuntu_apache_installalas_2_final_touch%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F10%2F03%2Fubuntu_apache_installalas_2_final_touch%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F10%2F03%2Fubuntu_apache_installalas_2_final_touch%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=ubuntu apache installálás 2"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2010/10/03/ubuntu_apache_installalas_2_final_touch#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/2248504" border="0" /></a><br /></p>
linux
php
ubuntu
apache
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2010/09/06/javascript_budapest_meetup
javascript budapest meetup
2010-09-06T15:30:00+02:00
2010-09-06T15:30:00+02:00
Thoer
https://blog.hu/user/11259
<p>Augusztus 30-i meetup videói a hétvégén lettek kész, köszönet értük Hardi Jánosnak!</p><p>Itt én beszélek a QUnitról, a Jqueryhez köthető egységtesztelő rendszerről: <a href="http://vimeo.com/14703534">http://vimeo.com/14703534</a></p> <p>Utánam Szalóki Róbert következett a Yahoo saját keretrendszerének, a YUI3-nak bemutatásával: <a href="http://vimeo.com/14699878">http://vimeo.com/14699878</a></p> <p>Végül pedig Fodor Márton egy fantasztikus fejlesztést mutatott be, amivel konzol nélküli böngészőkben lehet tesztelni a JavaScriptet: <a target="_blank" rel="nofollow" class="tweet-url web" href="http://vimeo.com/14694068">http://vimeo.com/14694068</a></p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F09%2F06%2Fjavascript_budapest_meetup%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F09%2F06%2Fjavascript_budapest_meetup%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F09%2F06%2Fjavascript_budapest_meetup%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=javascript budapest meetup"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2010/09/06/javascript_budapest_meetup#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/2275289" border="0" /></a><br /></p>
javascript
meetup
jquery
yui
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2010/08/25/ubuntu_apache_installalas_lamp_server
ubuntu apache installálás (lamp-server)
2010-08-25T14:21:00+02:00
2010-08-25T14:21:00+02:00
Thoer
https://blog.hu/user/11259
<h3>avagy kubuntu for dummies</h3> <p>Mivel meghalt az elsődleges winchesterem, úgy döntöttem ezentúl Kubuntu lesz az alap és az XP a vendég. Két hete se vagyok full-time linuxos, 9 éve használtam XP-t. Emiatt lehet, hogy lesz itt jónéhány poszt, ami a többségnek triviális vagy érdektelen, de amit én visszakeresnék később. Valószűleg ez is egy ilyen lesz.</p> <p>Megjegyzés: Mivel úgy tudom, az Ubuntu elterjedtebb, mint a Kubuntu, ezért a gedit szövegszerkesztőt használtam a példákban, de természetesen a Kubuntus kate is ugyanúgy működik.</p> <h3>Apache installálás</h3> <p>A tasksel egy Debian megoldás programcsomagok egybepakolására, Ubunutu és persze Kubuntu alatt is elérhető. A lamp-server rögtön telepíti nekünk az <em>apache2 php5-mysql libapache2-mod-php5 mysql-server</em> csomagokat.</p> <p><code>sudo tasksel install lamp-server</code></p> <p>A teljesség kedvéért még megjegyzem, hogy a fenti parancs ekvivalens a <em>sudo apt-get install lamp-server^</em> paranccsal.</p> <h4>Az első virtuális szerver beállítása</h4> <p>Legyen az új virtuális hoszt a www könyvtárunk mysite alkönyvtárában és legyen az public_html mappa a publikus könyvtár.</p> <p>Először módosítsuk a az alapértelmezett szerver beállításokat, hogy később ne kelljen már foglalkozni vele.</p> <p><code>sudo gedit /etc/apache2/sites-available/default</code></p> <p>Másoljuk az alapértelmezett beállításokat a létrehozandó szervernek megfelelő új fájlba:</p> <p><code>sudo cp /etc/apache2/sites-available/default<br /> /etc/apache2/sites-available/ipip</code></p> <p>Ha ez megvan, szerkesszük az új hoszt fájl beállításait:</p> <p><code>sudo gedit /etc/apache2/sites-available/mysite</code></p> <p>és adjuk meg a feltétlenül szükséges beállításokat, a felesleget törölhetjük</p> <p><code><VirtualHost *:80><br /> ServerAdmin emailcimed@szerver.com<br /> ServerName myserver.localhost<br /> DocumentRoot /var/www/mysite/public_html<br /> </VirtualHost></code>Ha ez kész, következő lépés az új hoszt fájl élesítése, ehhez egy linket hozunk létre a sites-enabled mappában ami az új fájlunkra fog mutatni. Ezt a linket létrehozhatnánk sajátkezűleg is, de leggyorsabb a debian alapú rendszerekben elérhető a2ensite parancsot használni.</p> <p><code>sudo a2ensite mysite</code></p> <p>A parancsot könnyű megjegyezni, ha tudjuk mit jelent: <strong>a</strong>pache<strong>2</strong> <strong>en</strong>able <strong>site</strong>. Ennek megfelően működik az a2dissite parancs is, amit akkor adhatunk ki, ha valamiért szeretnénk elérhetetlenné tenni az oldalunkat. Nyilván ennek éles szerveren van jelentőssége, de nem árt tudni fejlesztőknek sem.</p> <p>Rendben tudassuk még a rendszerünkkel, hogy a mysite.localhost az mi vagyunk, ne kezdjen netezni, ha meglátja valahol, mert például megnyitnánk a böngészőben. Nyissuk meg a hosts fájlt:</p> <p><code>sudo gedit /etc/hosts</code>a localhost-ot tartalmazó sor alá vigyünk fel egy új sort:</p> <p><code>127.0.0.1 mysite.localhost</code>Elvileg már csak annyi dolgunk van, hogy újraindítsuk a apache-t.</p> <p><code>sudo /etc/init.d/apache2 restart</code></p> <h4>Szervernév</h4> <p>Ilyenkor valószínűleg még figyelmeztetést ad a szerver, nekem azt, hogy:</p> <p><code>apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName<br /> ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName</code></p> <p>Nyissuk meg az apache konfigurációs fájlját:</p> <p><code>sudo gedit /etc/apache2/apache2.conf</code>Adjunk egy új sort a fájl végéhez:</p> <p><code>ServerName szajtbilder-dev</code>ahol szajtbilder-dev lenne a szervernév, természetesen ez szabadon választható. Ha ismét újraindítjuk a kiszolgálót, akkor valószínűleg most már hiba nélkül le fog futni az indítás.</p> <h4>Apache modulok</h4> <p>Rendben a szerver mostmár működik, de ha megnyitunk egy .htaccess-t használó virtuális szervert, akkor nagy valószínűséggel csak egy hibaüzenetet fogunk kapni a fent megadott saját adatainkkal. Ilyenkor nyissuk meg az apache error-log fájlját, ami ha meg nem változtattuk a host beállíásoknál, akkor a <strong>/var/log/apache2/error.log </strong>fájl. Ebből kiolvashatjuk, hogy milyen modul hiányzott a futáshoz.</p> <p>Én például elsőre azt kaptam, hogy</p> <p><code>Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration</code>ilyenkor meg kell nézni, hogy melyik modul része a RewriteEngine és aktiválni a modult. Az elérhető modulok az /etc/apache/mods-available könyvátrba kerülnek és az /etc/apache/mods-enabled-ben szereplők kerülnek betöltésre az apache indításakor. Akárcsak a virtuális host fájlok esetében, most is rendelkezésünkre áll a link létrehozására egy egyszerű debian parancs, a a2enmod. Mivel a RewriteEngine a rewrite modul része, adjuk ki a következő két parancsot:</p> <p><code>sudo a2enmod rewrite<br /> sudo /etc/init.d/apache2 restart</code></p> <p> Az első mint mondottam engedélyezi a rewrite modult, a második pedig újraindítja a kiszolgálót.</p> <p>Remélem lesz még rajtam kívül valakinek ez a kis leírás.</p> <p>Hamarosan pedig egy QUnit szösszenet fog itt megjelenni, hiszen <a href="http://www.meetup.com/budapest-js/calendar/14400562/?from=list&offset=0">augusztus 30-án erről fogok előadást tartani</a> a <a href="http://www.meetup.com/budapest-js/">budapest-js</a> résztvevőinek.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F08%2F25%2Fubuntu_apache_installalas_lamp_server%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F08%2F25%2Fubuntu_apache_installalas_lamp_server%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F08%2F25%2Fubuntu_apache_installalas_lamp_server%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=ubuntu apache installálás (lamp-server)"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2010/08/25/ubuntu_apache_installalas_lamp_server#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/2246844" border="0" /></a><br /></p>
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2010/04/27/rekurziv_masolas_szerverrol_szerverre
rekurzív másolás szerverről szerverre
2010-04-27T08:20:00+02:00
2010-04-27T08:20:00+02:00
Thoer
https://blog.hu/user/11259
<p>Nem vagyok egy linux guru, de néha-néha kénytelen vagyok parancssorból megoldani kisebb-nagyobb feladatokat. Most épp szerverről szerverre kellett másolni egy teljes honlapot. Nem nagy kunszt, de SSH-n keresztül a parancssoros FTP-vel nem ment a rekurzív letöltés, vagyis a fájlstruktúra megtartása, a könyvtárak automatikus létrehozása.</p><p>Szerencsére a wget nem csak http-n hanem ftp-n keresztül is tud letölteni, ráadásul rekurzívan is. Igaz elsőre kihagytam a rekurzió szintjeinek megadását, ezért csak 5 szintig töltötte le a tartalmat. A megoldás a -l20 hozzáadása volt, amivel korlátlan szintet le tudunk húzni a szerverről, illetve a -nc direktíva hozzáadása, hogy ne töltsön le semmit, amit már első nekifutásra letöltött.</p><p>Ezek után már csak a példa összeállítása maradt hátra. Ha szerverünk az ftp.example.com, a felhasználó nevünk szajtbilder és a jelszavunk j3lSzo, akkor a következő parancsot kell megadnunk:</p> <p><code>wget -r -l0 -nc 'ftp://szajtbilder:j3lSzo@ftp.example.com'</code>Akinek ennél többre van szüksége, annak itt az <a href="http://www.gnu.org/software/wget/manual/">eredeti leírás</a> szinte minden formátumban, vagy egy <a href="http://ordongos.blogspot.com/2008/10/wget-hasznlata.html">részletesebb wget bemutatás magyarul</a>.</p> <p><span style="color: rgb(153, 153, 153);">Sajnálom, hogy a Ruby on Rails poszt folytatása még nincs kint. Túlságosan elmerültem a témában és rendbe kell egy kicsit vágni még.</span></p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F04%2F27%2Frekurziv_masolas_szerverrol_szerverre%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F04%2F27%2Frekurziv_masolas_szerverrol_szerverre%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F04%2F27%2Frekurziv_masolas_szerverrol_szerverre%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=rekurzív másolás szerverről szerverre"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2010/04/27/rekurziv_masolas_szerverrol_szerverre#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1944046" border="0" /></a><br /></p>
linux
tipp
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2010/04/21/blog_hu_komment_linkek_kigyujtese
blog.hu komment linkek kigyűjtése
2010-04-21T00:06:00+02:00
2010-04-21T00:06:00+02:00
Thoer
https://blog.hu/user/11259
<p>Az előbb arra vetemedtem, hogy kigyűjtöttem egy blog.hu-s poszt összes kommentjét. Mivel sokszáz kommentben volt vagy 50 link, nem éreztem alternatívának a kézi gyűjtést. Helyette beizzítottam inkább a <a href="http://getfirebug.com/">Firebugot</a> és a <a href="http://firequery.binaryage.com/">FireQuery</a>-t, aztán írtam rá gyorsan egy <a href="http://jquery.com/">jQuery</a> utasítást.</p> <p><code>$('.commentText a[rel=nofollow]').each(function(){var url=$(this).attr('href');$('#mainWrapper').prepend('<p><a href="'+url+'" target="_blank">'+url+'</a></p>');})</code></p> <p>Lehet, hogy van jobb megoldás is, de én elégedett voltam az eredménnyel, gondoltam hátha egyszer hasznos lesz másnak is...</p><p>Egyébként a fenti kifejezés a kommentek szövegében megkeresi a felhasználók által megadott linkeket - tehát a válaszok miatti linkekeket kihagyja -, kiszedi az url címeket és berakja őket linkként, soronként a blogposzt elejére. Ráadásképp még hozzáadtam azt is, hogy új lapon/ablakban nyissa meg a linket, úgy kényelmesebbnek találtam.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F04%2F21%2Fblog_hu_komment_linkek_kigyujtese%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F04%2F21%2Fblog_hu_komment_linkek_kigyujtese%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F04%2F21%2Fblog_hu_komment_linkek_kigyujtese%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=blog.hu komment linkek kigyűjtése"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2010/04/21/blog_hu_komment_linkek_kigyujtese#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1938692" border="0" /></a><br /></p>
firefox
javascript
tipp
jquery
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2010/04/12/ruby_on_rails_kezdolepesek_1
ruby on rails kezdőlépések 1
2010-04-12T07:50:00+02:00
2010-04-12T07:50:00+02:00
Thoer
https://blog.hu/user/11259
<p>Rég nem írtam, pedig sok érdekeset találtam és tanultam mostanában. Igazából három téma van, amiről szeretnék írni. Az egyik a teszt vezérelt fejlesztés, ami itthon szinte még ismeretlen fogalom, de legalábbis alig-alig használt eljárás. (A weblabor nemrég megjelent, <a href="http://weblabor.hu/cikkek/php-osztalyok-egysegtesztelese">PHP osztályok egységtesztelése</a> című írása hiánypótló, ajánlom mindenkinek, aki számára ez új témakör!) A második a PHP-GTK, amit nagyon sokan ismernek és használnak, de valahogy elég gyengén dokumentált még nemzetközi szinten is, itthon meg pláne. A harmadik pedig Ruby és Python fejlesztések, amikkel csak most ismerkedek igazából én is.</p> <p>Ja és sok mindent nincs mit írni róla, de nagyon jó volt az első <a href="http://www.meetup.com/budapest-js/">JavaScriptes meetup</a>, jövő héten pedig jön a második! Azt nem mondom, hogy próbáljatok meg eljönni, mert úgy is megint tele lesz a terem, de várom már az biztos!</p> <p>Na de térjünk a tárgyra! Úgy döntöttem a <a href="http://www.ruby-lang.org/en/">Ruby </a>lesz a következő programnyelv amivel megismerkedek, bár nem kizárt, hogy párhuzamosan el fogom kezdeni a Pythont is, hogy élesben alkothassak véleményt róluk. Mindkét nyelv arról ismert, hogy szép, tömör, lényegretörő. A Python mellett szól, hogy gyorsabb és az asztali alkalmazás fejlesztéshez is széles eszköztárat kínál, míg a Ruby mögött nagyobb a felhajtás és erősebb a közösség. Ezen kívül utóbbi sokkal inkább a webes fejlesztésre orientálódik, mivel a <a href="http://rubyonrails.hu/">Ruby on Rails</a> (rövid nevén RoR vagy Rails) keretrendszer húzza maga után a nyelv fejlesztését is. Legalábbis ezt mondják a nagyok, én meg csak közvetítek, mint szinte mindig.</p> <p>Na de ne is teketóriázzunk sokat, hanem <a href="http://tryruby.org/">játszunk egy kicsit</a> a Rubyval, mint nyelvvel, <a href="http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/">hasonlítsuk össze kedvenceinkkel</a>, aztán essünk neki a Railsnek.</p> <p>Igazából nem kizárt, hogy ez a kis mini-tanfolyam már létezik magyarul, de úgysem pontosan fogom követni a szöveget, így talán annak sem jön rosszul ez a verzió, aki már az eredetit olvasta. Mindenesetre én <a href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/">egy</a>-<a href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/">két</a> <a href="http://articles.sitepoint.com/article/learn-ruby-on-rails">bevezetőnek szánt</a> <a href="http://mislav.uniqpath.com/poignant-guide/">írás</a> elolvasása után úgy döntöttem, hogy a <a href="http://guides.rubyonrails.org/">hivatalos útmutató</a> <a href="http://guides.rubyonrails.org/getting_started.html">kezdőlépéseit</a> követem és alakítom át a saját belátásom szerint.</p> <p>Az írás azzal kezd, hogy elmondja, mik is a Rails alapfilozófiájának elemei. Én ebbe most nem szeretnék nagyon belemenni, a lényeg röviden annyi, hogy nagyon gyors fejlesztést tesz lehetővé azáltal, hogy tipikusan mindennek van egy alapértelmezett értéke és csak akkor kell konfigurálással vesződni, ha el akarunk attól térni. Ezen felül még az lehet fontos, hogy egy kiterjesztett MVC architektúrára épül és erősen támogatja a <a href="http://weblabor.hu/blog/20041203/resttervezes">REST</a> alapú szolgáltatásokat. Igazából ezeket ma már minden komolyabb PHP alapú keretrendszer alkalmazza, így valószínűleg ezekben sok újdonság nincs, térjünk a lényegre!</p> <p><strong>Vigyázat! A következő írás azzal az előfeltétellel lesz csak teljes értékű, hogy az olvasó legalább egy MVC architektúrájú, szkript nyelv alapú keretrendszert ismer. Az egyes lépések talán ennek hiányában is követhetőek, de ami az általam ismert keretrendszerekben közös, azokat köztudottnak tekintem.</strong></p> <h3>Telepítés</h3> <p>Először is töltsük le a Ruby legújabb stabil verzióját, ez jelenleg az 1.9.1-es verzió. A linuxot használóknak könnyű dolguk van, mert a legtöbb disztribúcióban benne van és tipikusan egy sor begépelésével fel is telepíthetik. Ubuntun például így:</p> <p><code>sudo apt-get install ruby1.9.1-full</code></p> <p>Windowsra sem egy ördöngősség, csak a weboldalt kell megtalálni a telepítőhöz, de én már megtaláltam nektek: <a href="http://rubyinstaller.org/">http://rubyinstaller.org/</a></p> <p>Ha a Ruby már a gépen van, akkor Windowson még érdemes a telepített csomag konzolját kinyitni, mert az hozzáadja a legfontosabb fájlokat az elérési útvonalhoz és nem kell nekünk szerkeszgetni/szemetelni a Windows PATH-t.</p> <p>Ha ez megvan, installáljuk a Railst, ez már platform független lesz:</p> <p><code>gem install rails</code></p> <p>Talán annyit még fűzzünk ide, hogy a <em><a href="http://docs.rubygems.org/">gem</a> </em>és a később előkerülő <em><a href="http://rake.rubyforge.org/">rake</a> </em>a ruby segédprogramjai, előbbi telepítésekért, utóbbi adatbázis műveletekért felelős ebben a cikkben.</p> <p>A Rails telepítése után navigáljunk a leendő RoR projektjeinket tartalmazó könyvtárba és hozzunk létre egy új Rails projektet. A Rails alapértelmezetten Sqlite3 adatbázist szeretne használni, én viszont MySQL-t fogok, ráadásul a szokásos blog alkalmazás helyett egy webáruházat építek kezdő projektként. Ezeknek megfelelően a következőképpen hozom létre az <em>rshop </em>nevű új projektet:</p> <p><code class="html">$ rails rshop -d mysql</code></p> <p>Kis szerencsével fennakadás nélkül létrejön a projektünk és láthatjuk, hogy kaptunk egy szép rakás könyvtárat és fájlt. Nyissuk meg a <em>config/database.yml</em>-t és lepődjünk meg, hogy a Rails már be is állított magának 3 adatbázis konfigurációt development, test és production néven. (Ha esetleg valaki nem tudná, ez egy <a href="http://en.wikipedia.org/wiki/YAML">YAML</a> (<em>ejtsd: dzseml</em>) fájl, ami egy elterjedt leíró nyelv. Főleg ilyen konfigurálásra szokás használni, mivel mint látható, igen jól olvasható az emberi szem által. A PHP világában talán a Symfony keretrendszer a legjellegzetesebb használója, de más projektekben is megtalálható.)</p> <p>Mindenesetre itt és most elég, ha arról meggyőződünk, hogy a fejlesztési (<em>development</em>) környezetekhez tartozó adatbázisok kapcsolódási adatai rendben vannak, mert erre hamarosan szükségünk lesz.</p> <p>Mielőtt azonban létrehoznánk a táblákat, installáljuk a Rails MySQL modulját a parancssorunkból, ennek hiánya ugyanis biztosan hibát fog okozni.</p> <p><code>gem install mysql</code></p> <p>Ezután, ha nem a legújabb MySQL-t használjuk, vagy az 1.9.1-esnél újabb Rubyt (ami ezen sorok írásakor még nem létezik), akkor megpróbálhatjuk létrehozni az adatbázist, de ne ijedjünk meg ha hibába futunk:</p> <p><code>rake db:create </code></p> <p>Mivel nem installáltam még ezer gépre, ezer konfigurációban a Railst, ezért csak a saját tapasztalataimat írhatom le, mindenesetre én itt egy olyan hibaüzenetet kaptam, hogy a LIBMYSQL.dll nem található. Némi keresés után <a href="http://stackoverflow.com/questions/1343500/ruby-on-rails-connection-problem">azt találtam</a>, hogy a nálam telepített MySQL 5.1.x adatbázis nem kompatibilis a Rails telepítésemmel. A megoldás viszonylag egyszerű, töltsük le a szükséges <a href="http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll">libmysql.dll</a> fájlt és másoljuk a Ruby <em>bin </em>könyvtárába. Ezután már szépen lefutott a rake parancs és létrejött a fejlesztői adatbázis.</p> <h3>Helló, világ!</h3> <p>Jó programozói szokás szerint, hozzuk létre az első Ruby on Rails alkalmazásunkat, ami kiírja nekünk, hogy "Helló, világ!". Sok értelme persze nincs, de legyünk kockák...</p> <p>Ehhez feltétlenül kell egy controller és egy view. Legyen a controller a későbbi kezdőlapunk, így adja magát a <em>home</em> nevű controller létrehozása, amit Windows alatt az alábbi paranccsal hozhatunk létre: (Linux alatt a ruby parancs most és a továbbiakban is elhagyható.)</p> <p><code>ruby script/generate controller home index </code></p> <p>Ha ez lefutott, akkor keressük meg a most generált, megjelenésért felelős sablon fájlt, amit <em>app/views/home/index.html.erb</em> néven találunk meg a projektünkön belül. Vegyük elő minden ötletességünket és írjuk az alábbiakat a fájlba:</p> <p><code><h1>Hello, világ!</h1></code></p> <p>Gyakorlatilag ennyi az egész, de ahhoz, hogy meg is tudjuk nézni az eredményt, még el kell indítanunk a szerver alkalmazást a parancssorból:</p> <p><code class="html">ruby script/server </code></p> <p>Nálam eltart egy ideig, mire beizzítja magát a Rubyval telepített WEBRick szerver, ezért először azt hittem baj van, de nem. Pár sorban közli a szerver, hogy mit csinál, illetve, hogy a Ctrl+C karakterkombinációval lehet leállítani és a főbb paramétereit. Ekkor nyissuk meg a böngészőben a <a href="http://localhost:3000/home/index" rel="nofollow">http://localhost:3000/home/index</a> URL-t, és ha minden igaz, ki is pipálhatjuk a témát.</p> <p>Azt még említsük meg, hogy a Rails projekt létrehozása után már elindíthattuk volna a szervert és a <a rel="nofollow" href="http://localhost:3000/">http://localhost:3000/</a> cím megnyitásával kaptunk volna egy helyes kis üdvözlő képernyőt. Ez jelezte volna, hogy minden a legnagyobb rendben, a Rails működőképes és a projekt létrejött. Ezt a funkciót mindjárt eltávolítjuk, úgyhogy akit érdekel, az vessen rá egy pillantást most.</p> <h3>Tovább a cél felé</h3> <p>Előszöris az előbb létrehozott home controllert tegyük ténylegesen nyitó oldallá! Ehhez először kitöröljük a <em>public/index.html</em> fájlt, majd megnyitjuk a config/routes.rb fájlt, ami természetesen az aktuális URL-t képezi le egy belépési ponttá, vagyis ennek segítségével határozza meg a Rails, hogy melyik controller melyik actionjét (vagyis függvényét) kell meghívni.</p> <p>Láthatjuk, hogy a megnyitott fájl tele van # karakterekkel kezdődő komment sorokkal, amik segíthetnek a beállításokban, útmutatást adnak. Nekünk most csak annyi a dolgunk, hogy lehetőleg a kommentek alá, de a meglévő route beállítások fölé beszúrjuk a következő sort:</p> <p><code>map.root :controller => "home" </code></p> <p>Elvileg készen is vagyunk, ha fut még a szerver, akkor megnyithatjuk a http://localhost:3000/ címet és megkapjuk a szép kis helló-világ alkalmazásunkat. Ha pedig mélyebben elmerülnénk a routes.rb képességeiben és funkciójában, akkor itt egy <a href="http://guides.rubyonrails.org/routing.html">nagyszerű angol nyelvű leírás</a>.</p> <h3>Kategóriák</h3> <p>A Scaffolding a CodeIgniter használók számára biztosan nem kell bemutatni, de gyanítom sok más keretrendszer használói is ismerhetik a kifejezést. Lényege, hogy mi megadjuk, hogy milyen adatokra lesz szükségünk, a rendszer pedig generál nekünk ehhez egy adminisztrációs felületet. Ahogy a CI esetén magam is megtapasztaltam már, azt mondják a Rails esetében is macerásabb jól testreszabni az így generált alkalmazásrészt, mint megírni az egészet nulláról. Ugyanakkor ez egy olyan területe a Railsnek, amit biztosan nem szabad kihagyni a tanulásból, úgyhogy ismerkedjünk meg vele!</p> <p>A mostani posztnak nem célja komolyabb tervezéseket elvégezni, úgyhogy csak egy kategóriát és terméket tartalmazó táblát hozunk létre, az azokat összekapcsoló táblát (pivot table) és egyéb adatbázis elemeket a későbbiekre hagyjuk.</p> <p>Kezdjük a kategóriával, ami egyelőre csak egy névből álljon:</p> <p><code>ruby script/generate scaffold Category name:string </code></p> <p>Ez a kis parancs egy szép rakás fáljt generál nekünk, köztük egy adatbázis migrációs fájlt is, ami nagyon érdekes, mert olyan formában jön létre, hogy minden változás az adatbázis szerkezetében nyomonkövethető és visszaállítható lesz. A migrációs fájl a db/migrate/ mappában található és az aktuális időbélyeg után a _create_category.rb nevet viseli. Érdemes kicsit tanulmányozni a fájlt, vagy akár többet is megtanulni a <a href="http://guides.rubyonrails.org/migrations.html">Rails adatbázis migrációról</a>.</p> <p>Vegyük észre, hogy bár mi határozottan egyes számban hoztuk létre a kategória állványát (scaffold=állvány), a létrehozott fájlok többsége viszont többes számban tartalmazza a kategória szót. Ez is a RoR egyik koncepciója, a modelleket egyes számban hozzuk létre, de például az adatbázisban a tábla, vagy a sablonokat tartalmazó mappa többes számot fog kapni. Hozzuk is létre az adattáblát a következő paranccsal:</p> <p><code class="html">rake db:migrate </code></p> <p>Ha létrejött, linkeljük be a kategóriákat a főoldalra! A <em>views/home/index.html.erb</em> fájl második sorába írjuk a következőt:</p> <p><code><%= link_to "Kategóriák", categories_path %></code></p> <p>Ha leállítottuk már a szervert, akkor indítsuk el újra és próbálgassuk a kategória létrehozási / szerkesztési / törlési képességeinket és veregessük hátba magunkat.</p> <h3>Termékek</h3> <p>A mostani poszt már kezd kezelhetetlen méreteket ölteni ezért már csak a termékek kategóriát hozzuk létre:</p> <p><code class="html">ruby script/generate scaffold Product name:string price:float </code></p> <p>Ennek az egésznek természetesen nem sok értelme van, ha nem tudjuk hozzárendelni a kategóriákhoz a termékeket és vice versa. Éppen ezért a következő posztot ezzel kezdem, ráadásul nem is kell rá sokat várni.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F04%2F12%2Fruby_on_rails_kezdolepesek_1%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F04%2F12%2Fruby_on_rails_kezdolepesek_1%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F04%2F12%2Fruby_on_rails_kezdolepesek_1%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=ruby on rails kezdőlépések 1"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2010/04/12/ruby_on_rails_kezdolepesek_1#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1911818" border="0" /></a><br /></p>
rails
ruby
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2010/02/24/egy_elhalt_tapegyseg_margojara
egy elhalt tápegység margójára
2010-02-24T15:09:00+01:00
2010-02-24T15:09:00+01:00
Thoer
https://blog.hu/user/11259
<p><meta content="text/html; charset=utf-8" http-equiv="CONTENT-TYPE" /></p><title></title><meta content="OpenOffice.org 3.2 (Win32)" name="GENERATOR" /><style type="text/css">
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style><p>Ha az ember gépe egyszer csak nem indul, az sosem jó. Számítógép közeli emberek ilyenkor csavarhúzót ragadnak, vesznek hozzá egy vagy néhány zombigépet és – jellemzően hangos anyázások közepette – elkezdik kisakkozni, hogy hol is van a hiba gyökere. Ezen magam is többé-kevésbé átestem, de igyekszem a kaptafánál maradni és nem fogok úgy csinálni, mintha nálam jobb IT szakembert még nem hordott volna hátán a Föld. Röviden annyi, hogy úgy döntöttem, eljött a gépcsere ideje.</p> <p>Először is elnézést kérek attól a kedves olvasómtól, aki a segítségemet kérte, de választ sajnos a fentiek miatt sosem kapott. Őt arra kérném, hogy küldje el a levelét és ígérem egy napon belül válaszolni fogok. Másodszor ugyanezen történet fontos tanulsága, hogy sose töröljünk levelet a szerverről. Az igazság az, hogy én sok-sok éve gmail-t használok a levelezésem bonyolítására, de az utóbbi időben, bizonyos címeimet inkább a számítógépen tárolom. Ennek több oka is van, nincs is ezzel baj, a személyes e-mail címem beállításánál viszont meghagytam az üzenetek törlését. Szerencsére ez túl nagy problémát nem jelentett, mert a fontosabb levelezéseim megmaradtak, de ez az egy levél is olyan gond, amit könnyű lett volna elkerülni.</p> <p>Szerencsére az elpazarolt időn és „kidobott” pénzen kívül ez volt az egyetlen közel-visszafordíthatatlan vesztességem, illetve az elvesztett feedjeim. Ha nagyon akartam volna, kimenthettem volna őket a régi vinyómról, de nem lett volna egyszerű. Úgy döntöttem, inkább megteszem, amit már rég óta terveztem és átnézem a delicious-ban tárolt linkjeimet és az alapján építem újra a listát. Ha meglesz, feltétlen csinálok egy szabványos mentést, illetve itt is közzéteszem a kedvenc feedjeimet. Több mint 1000 linket kell átnéznem, szerintem hétvégére meglesz.</p> <p>Tervezem ezen felül, hogy csinálok egy sorozatot az általam ideálisnak gondolt környezet kiépítéséről, de már így is elég sok dologba vágtam bele, az időm pedig mindig szűkös. Majd meglátjuk…</p> <p style="margin-bottom: 0cm;"> </p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F02%2F24%2Fegy_elhalt_tapegyseg_margojara%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F02%2F24%2Fegy_elhalt_tapegyseg_margojara%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F02%2F24%2Fegy_elhalt_tapegyseg_margojara%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=egy elhalt tápegység margójára"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2010/02/24/egy_elhalt_tapegyseg_margojara#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1786828" border="0" /></a><br /></p>
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2010/01/24/zend_framework_quickstart
zend framework quickstart
2010-01-24T19:51:00+01:00
2010-01-24T19:51:00+01:00
Thoer
https://blog.hu/user/11259
<p><meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /></p><title></title><meta name="GENERATOR" content="OpenOffice.org 3.1 (Win32)" /><style type="text/css">
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
A:link { so-language: zxx }
--></style>Pár napja elhatároztam, hogy folytatom a PHP keretrendszerek sorozatot, amit ott hagytam abba, hogy nézzük meg gyakorlati feladatok megoldásait a Zend Framework és Symfony keretrendszereken belül. Ehhez gondoltam jó ujjgyakorlat lesz a quickstart elvégzése. Sajnos most is rá kellett döbbennem, hogy hiába az óriási hype a ZF mögött, a dokumentáció ezen a ponton nagyon hiányos, a kezdőknek nyújtott segítség pedig minimális. <p>Na most már maga a feladat is elég primitív, nehéz legalábbis ennél egyszerűbb feladatot elképzelni amihez űrlap is kell és adatbázis is, de végülis ez még önmagában nem probléma. Szerintem az viszont már tényleg túlzás, hogy még a dekorátorok használatát sem mutatják meg, megelégszenek egy alap űrlap kinézettel a tutorial alkotói. Sőt, azt gondolom, hogy egy ilyen komoly háttérrel és felhasználói bázissal rendelkező rendszertől az is elvárható lenne, hogy az elkészült "műhöz" tesztek írásában is segítséget adjon. Talán túlzás, de a magam részéről azt se bánnám, ha rögtön a tesztvezérelt fejlesztést is a zászlójukra tűznék, szerintem nem állna semmiből.</p> <p>Aztán hajamat majdnem kitéptem, mire rájöttem, hogy a parancssoros controller létrehozás miért nem működik. A lényeg, hogy elkezdett a Zend Framework könyvtáramból include-olni, aztán amikor megtalálta a projektet, akkor folytatta a projekt saját könyvtárából. Na most innentől kezdve az egy szép dolog, hogy mindenhol require_once meg include_once volt, de simán megnyitotta kétszer ugyanazt a fájlt, hiába létezett már a kérdéses osztály. Nem tudom pontosan megmondani, hány órát vett el ez a hiba az életemből, de nem egyet az biztos, ugyanis a legtöbb általam bevetett trükköt simán felülírta a keretrendszer, ráadásul sok minden nem is működhetett, hiszen egyszerűen rossz helyen kerestem a hibát. Az is megdöbbentő volt, hogy hány száz osztályt deklarált magának a hiba helyéig, nagyjából 150-et. El is gondolkoztam, hogy vajon mi értelme van 150+ osztályt deklarálni ahhoz, hogy létrehozzon egy controller és egy view fájlt, ráadásul mindkettőt üresen.</p> <p>Na mindegy, miután rájöttem a hibára, kiiktattam az include_path-ből a zend könyvtáramat és bemásoltam a zf.php-t és zf.bat-ot a projektkönyvtáramba. Ott megadtam nekik, hogy hol vannak a zend osztályai és ment minden mint a karikacsapás. Utána a tutorialon már hamar végig szaladtam és bár a fent említett hiányérzetem igen erős volt, gondoltam "befejezem" a projektet.</p> <p>Itt még jött egy nagyszerű ötletem, letöltöttem a projektet .zip fájlként és láss csodát, abban szerepeltek tesztfájlok is. Igaz nem mind, de legalább a controllerek teszt fájljai ott voltak, még ha elavult és hiányos formában is. Az elavultság nem volt vészes, csupán az application könyvtárt neveztük el a Quickstart utasításai alapján Default modulnak és pár osztálynév elé kellett ezért a Default_ sztringet beszúrni. A hiányosság viszont nagyobb problémát okozott, ugyanis az elkészült vendégkönyv az email cím és üzenet mezőkön kívül egy csrf védelmet és egy captchát is tartalmazott. Na most itt ugye pont az a lényeg, hogy ne lehessen automatizált módon kitölteni, így valahogy meg kell tudni, hogy mit vár a rendszer válaszként, csakhogy az űrlap objektumot tartalmazó view objektumhoz, pontosabban a tényleges végrehajtást végző controllerhez nem olyan könnyű hozzáférni, legalábbis nekem nem jött össze. Szerencsére a megoldás sokkal egyszerűbb, ennek a <a href="http://myzendframeworkexperience.blogspot.com/2008/09/testing-captcha-with-phpunit-and-zend.html">bejegyzésnek hála</a>, gyorsan megvolt. Érdekesség, hogy miután leesett nekem is, hogy a session adatokból hamarabb megvan az eredmény, azért rájöttem arra is, hogy ez a megoldás a csrf érték kinyerésére is egyszerűbb, mint a "hivatalos", válaszból kiolvasós verzió, mondjuk ez lehet, hogy szőrszál hasogatás.</p> <p>Ezen kívül még csak annyi dolgom volt, hogy kiiktassam az adatbázis újbóli létrehozását a setUp-ban, ugyanis az sqlite adatbázis fájlt a rendszer fogta, így nem lehetett törölni. Bár nyilván rá lehet jönni, hogy hogyan engedtessük el, de nekem erre most nem volt energiám, talán majd a jövőhéten. Illetve ha valaki tudja a megoldást, akkor várom sok szeretettel! ;)</p> <p style="margin-bottom: 0cm;"><img alt="" src="http://szajtbilder.blog.hu/media/image/100124/phpunit2.jpg" /></p><p style="margin-bottom: 0cm;">Ezért megdolgoztam keményen. Bár a Zend vs Symfony sorozat gyakorlati része csak most kezdődik, előny a franciák büszkeségénél.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F01%2F24%2Fzend_framework_quickstart%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F01%2F24%2Fzend_framework_quickstart%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F01%2F24%2Fzend_framework_quickstart%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=zend framework quickstart"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2010/01/24/zend_framework_quickstart#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1698845" border="0" /></a><br /></p>
zend_framework
keretrendszerek
0
Szájtbilder
https://szajtbilder.blog.hu
http://szajtbilder.blog.hu/media/image/100124/phpunit2.jpg
https://szajtbilder.blog.hu/2010/01/08/kesek_es_keretrendszerek
programozók, kések és keretrendszerek
2010-01-08T15:03:00+01:00
2010-01-08T15:03:00+01:00
Thoer
https://blog.hu/user/11259
<p>Előszöris remélem senki nem veszi tolakodásnak, ha egy kicsit kisajátítok egy fórum témát. Mentségemre szóljon, hogy a többség valahol az én hozzászólásomhoz reagált. Sokat fogok most ollózni, de igyekszem minél szabatosabban fogalmazni és pontosan kifejteni a véleményemet. A téma alapjául egy blogmark szolgált, de a bejegyzéssel olyan szinten nem értek egyet, hogy linket sem adok neki. A Weblaboros beszélgetés viszont itt elolvasható: <a href="http://weblabor.hu/blogmarkok/103683">http://weblabor.hu/blogmarkok/103683</a>.</p> <h3>programozók és kések</h3> <p>Kezdeném ott, hogy legfőbb vitapartnerem szerint két féle programozó van: a favágó, aki konvenciókat keres és keretrendszert használ, és a művész, aki kihívásokat keres és megoldásokat alkot. Tiszteletben tartva a véleményét és ígérve, hogy nem citálom őt többet itt elő, én mégis máshogy csoportosítanék.</p> <ul> <li>Én azt gondolom, hogy először is vannak a <strong>kezdők </strong>és <strong>spagettihuszárok</strong>. A kezdőkből természetesen bármi lehet később, a spagettihuszár, aki hosszú évek óta képtelen az érdemi fejlődésre. Ők azok, akik sosem szánják rá az időt, hogy megismerjenek új eszközöket. Jellemzően azt hiszik, PHP-ban programozni az tud jobban, aki több függvényt ismer a doksiból, vagy előbb meg tud írni egy 100 soros programot úgy, hogy nem dob hibaüzenetet. Őket valószínűleg el kell fogadni olyannnak amilyenek és menekülni tőlük ahogy lehet. Idegennek a munkájukba belejavítani tilos és életveszélyes...</li> <li>Aztán vannak a <strong>haladók</strong>, akik olvasgatnak mindenféle okos dolgot, tanulnak a jobbaktól, összerakják a kis elemeket és és fejlesztgetik a saját toldozott-foltozott rendszerüket. Sokszor abba az álomba ringatják magukat, hogy a több megabájtos keretrendszerek használatának elkerülésével, sokkal gyorsabb programot kap a felhasználó, kevesebb áramot fogyaszt a vas és mivel ők már olvastak ilyen-olyan biztonsági résekről is, ezért "tudják", hogy ők már védve vannak. Gyakran említik azt is, hogy a nyílt forráskódú cuccokban bárki könnyen talál hibát, ráadásul még publikálhatják is a réseket, így egy potenciális támadónak csak meg kell keresnie egy foltozatlan hibát. Bezzeg a jó kis sufnituning admin oldal mindig működni fog. Ebben ugyan elvileg lehet is igazság, de szerintem 99%-uk sosem futtatott egy tesztet sem, sem Unit, sem biztonsági tesztet. Illetve hasonló százalékban lehetnek ők magányos farkasok is, már a munkát illetően. Ha már elvégeztek egy munkát, akkor az valószínűleg azért többé-kevésbé rendben van, de ha egy kicsit is fontos a projekt, akkor érdemes portolni a régi tartalmat, különben az ember csak a haját tépi az egyedi megoldások "szépségén".</li> <li>Aztán vannak a <strong>rajongók</strong>. Mint az élet minden területén, itt is vannak, akik egy keretrendszer elkötelezett hívei és isten se tudná meggyőzni őket, hogy nem biztos, hogy ugyanaz a rendszer a legjobb választás mindenre. Jobb esetben ez azért egy elismert és komoly rendszer, ez esetben valószínűleg megéri megtartani és használni, amit átveszünk tőlük, feltéve, hogy az nagyjából legalább működik. Ők általában szívesen segítenek azoknak, akik most találták meg rajongásuk tárgyát és igyekeznek a haladókat is annak használatára buzdítani. Publikálni ritkán szokták, de kisebb-nagyobb módosításokat végeznek a keretrendszerükön.</li> <li>Vannak az igazi <strong>használók</strong>, akik kipróbálgatnak mindent, ami felkelti az érdeklődésüket és azt használják, amelyiket az adott szituációban a legjobbnak találnak. Közölük sokan hozzá is tesznek egy-egy rendszerhez, esetleg publikálják is a tapasztalataikat, arra viszont kevésnek van ideje, hogy kezdőknek segítsen. Csapatban szívesen dolgoznak, de még nem feltétlenül ők a vezetők.</li> <li>Végül pedig vannak a <strong>guruk</strong>, akik nem csak kenik-vágják a legjobb praktikákat, de össze is tudják szedni a gondolataikat, projektmenedzsmentben is otthon vannak. Képesek precízen kitalálni a céljaikat, megvitatni a tapasztalatokat és végigvinni egy komoly fejlesztést.</li> </ul> <p>Na most, ha az a kérdés, hogy ezek közül melyik a favágó és melyik a művész, én nem tudnám megmondani. Érzem, hogy nem tökéletes az asszociációm, de nekem kicsit olyan ez, mintha azt kéne eldöntenem, hogy kést készíteni vagy a késsel fát faragni nagyobb művészet-e. Vagy épp aligha jutna valakinek eszébe, hogy egy faragott fa értékét a kés művészi értéke befolyásolja. Na de mindegy is. A lényeg, hogy kést a guruk és a haladók készítenek, a kezdők és spagettihuszárok fel se fogják, hogy mi az, a többiek pedig választanak egy szép kést és farigcsálnak. Ráadásul nem biztos, hogy csak a költséghatékonység miatt, lehet, hogy nem jó késkészítők vagy épp pont ez untatja őket...</p> <h3>keretrendszerek</h3> <p>És akkor most szépen, szájbarágósan összeollózom, hogy miért kell nekünk keretrendszer.</p> <h4>mit tudnak?</h4> <ol> <li>Kialakítanak egy jó struktúrát a létrehozandó programnak. (Tipikusan MVC valamilyen továbbfejlesztéssel)</li> <li>Meghatároznak egy egységes kódolási stílust.</li> <li>Adnak egy sor hasznos modult, osztályt, függvényt.</li> <li>Jól dokumentáltak. (Legalábbis remélhetőleg)</li> <li>Automatizálnak sok biztonsági megoldást és könnyen elérhetővé tesznek továbbiakat.</li> </ol> <h4>kellenek ezek?</h4> <ol> <li>Az átgondolt struktúra nekem megúszhatatlannak tűnik, mert fontos, hogy a fejlesztő mindig tudja, hogy mit hol talál, akkor is ha nem ő írta az adott részt. Persze tömegével látni még mindig olyan szoftvereket, hogy minden funkció be van vágva egy külön php fájlba, a közös részek meg copy-paste alapon ott figyelnek az összesben, kezdve az adatbázis-kapcsolattól az analytics javascript kódjáig minden, de ezek az <em>uramisten </em>kategórába tartoznak. (Hemzsegnek a biztonsági hibáktól, átláthatatlanok és karbantarthatatlanok.) Tehát miért is lenne jobb, ha én hoznám létre a struktúrát egyesével egy sima másolás vagy parancssori parancs kiadása helyett?</li> <li>A kódolási stílus egységesítése majdnem ugyanaz, mint a struktúráltság, csak egy másik vetülete ugyanannak a problémának. Ahol 1-nél több programozó van, ott már érdemes konveciókat alkalmazni. Érdemes kiindulni abból, hogy előbb-utóbb, minden szoftverhez több, mint 1 programozó fog tartozni és nagy valószínűséggel nem kerül egy projektbe két programozó, aki azonos stílust használ. A konvenciók használata biztosítja, hogy a teljes mű mindenkor jól olvasható maradjon, függetlenül attól, hogy ki végezte el a változtatásokat. Érdekesség, hogy míg a legtöbb rendszer a <a href="http://pear.php.net/manual/en/standards.php">PEAR standardra</a> hivatkozik, mégis szinte mindenki változtat rajta.</li> <li>A modulokat, függvényeket ha akarom, használom, ha nem akarom, akkor meg nem. Ráadásul ha nem akarunk nagyon egyedi külső modulokat beilleszteni - amit amúgy általában semmi nem tilt -, akkor egy olyan kódot kapunk, amit az azonos kódolási stílus miatt sokkal kellemesebb és gyorsabb olvasni, elemezni. Pláne ha az ember szeme már "ráállt" a kódolási stílusra. A rendszerek többsége automatikussá teszi ugyan a betöltést, de az utolsó pillanatig nincs semmi betöltve (csak a betöltő modul), így hiába több megabájt egy rendszer, a jellemző futása nem lesz lényegesen hosszabb egy bármilyen lecsupaszított programnál. Persze a késes példához visszatérve, nem mindegy, hogy valamilyen feladathoz a bozótvágóval látunk neki vagy bicskával...</li> <li>Az egyszemélyes rendszerek dokumentáltsága szinte sosem veszi fel a versenyt egy komoly nyílt keretrendszerrel. Az ugyan tény, hogy ez még nem veszi le a programozó válláról a dokumentálás felelősségét, de mégis nagy segítség lehet. Ráadásként sok esetben még ehhez a feladathoz is kész eszközöket kapunk a keretrendszerrel, amik egységessé és gyorsá teszik ezt az amúgy unalmas munkát.</li> <li>Ha valamiben igazán pocsék a programozók nagy része, az a biztonsági kérdések vizsgálata. (Engem is beleértve.) Egyszerűen mire kiizzadunk magunkból egy funkciót, ami működik, és főleg működik a megbízó gépén(!), plusz még többé-kevésbé hülyebiztos is, addigra már rég a következő, vagy következő utáni funkció megvalósításán jár az agyunk. Természetesen itt óriási előny, ha az embert órabérre fizetik, de legyünk őszinték, a főnökök se biztos, hogy örülnek, ha a drága programozók már "kész" funkciókkal molyolnak. Egy jó keretrendszer ilyenkor a legjobb barát a Földön. Az XSS, CSRF és SQL befecskendezés és egyéb védelmek ha nem is teszik egy csapásra tökéletessé a szoftvert, de mindenképp sokkal magasabb szintre emelik biztonságot. És, hogy tgr-t idézzem: <em>"Saját keretrendszer használatának lehet értelme (bár ez nem ugyanaz, mint az eredeti cikkben szereplő no-framework, aminek szvsz nincsen), saját XSS szűrőének legfeljebb akkor, ha XSS-re specializálódó biztonsági szakértő vagy."</em></li> </ol> <h4>ennyi?</h4> <p>Távolról sem. A teljes eszköztár keretrendszerenként más és más még volumenében is, de olyan eszközök, mint a gyorsítótár kezelés, adatbázis és futási mutatók vagy a unit testing támogatása ma már mindegyik komoly rendszerben elérhető.</p> <h4>jó, de nem túl lassúak ezek?</h4> <p>Erről azt gondolom, hogy ez ennél összetettebb kérdés.</p> <p>Először is ahogy nem ér összevetni egy html oldal beolvasási idejét egy adatbázisból dolgozó php oldal feldolgozási idejével, ugyanúgy nem ér egy átlagos php oldalt összevetni egy objektumorientált, biztonságos működést garantáló keretrendszer futási sebességével. Ha tényleg annyira fontos nekünk hogy hány századmásodpercig izzasztjuk a szervert egy oldal összerakásával, akkor rengeteg olyan eszközt kapunk, amivel ez a kép akár meg is fordítható. Ehhez nem kell más csak egy kis bonyolultság a feladatba és egy jó gyorstárazás a keretrendszerbe. Ugyanakkor még a legegyszerűbb oldalnál is hasznos egy gyors framework, mert ilyen esetekben az alapértelmezett konfiguráció sem lesz észlelhető időígényű, ráadásul a többi kedvező szolgáltatást és a gyors bonyolítás lehetőségét is megtarthatjuk.</p> <p>Ugyanakkor az eddig leírtaknál fontosabb, hogy a renderelési idő normális esetben csak minket, fejlesztőket érdekel. Ha időről van szó, akkor sokkal fontosabb a fejlesztés és a betöltés ideje. Előbbit a keretrendszer óriási mértékben csökkenti, utóbbit pedig szinte nem befolyásolja. A betöltési hossza ugyanis sokkal inkább függ a megjelenítendő képek, szkriptek és stíluslapok számától és méretétől, mint a php futási idejétől, legalábbis amíg azt 1-2 tizedmásodpercen belül tudjuk tartani, addig biztosan.</p> <h4>megéri a sok tanulást?</h4> <p>Hosszú távon mindenképp. Aki még nem ismer egy keretrendszert se, annak bármelyik elismert szoftver sok újdonságot fog hozni, a többieknek pedig ezt már úgysem kell mondani.</p> <p>Általánosságban azt hiszem elmondható, hogy kisebb feladatok megoldására minden framework alkalmas, ha pedig olyan komolyságú projektünk van, amelyik megvalósításához egy általunk ismert rendszer sem elég rugalmas, akkor is óriási segítség az ismeretük. Ha ilyen feladatba ütköznék, akkor én biztosan először körülnéznék, hogy melyik rendszer áll a legközelebb az elképzeléseimhez, akár az addig ismeretlenek közül is. Ha arra jutnék, hogy egyik sem jó, akkor a legvalószínűbb az, hogy a PHP sem a megfelelő nyelv a feladat megoldására. Illetve amennyiben mégis PHP-ban kellene dolgoznom, akkor is egy már létező rendszert alakítanék át az igényeim szerint, ebben egészen biztos vagyok.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F01%2F08%2Fkesek_es_keretrendszerek%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F01%2F08%2Fkesek_es_keretrendszerek%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2010%2F01%2F08%2Fkesek_es_keretrendszerek%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=programozók, kések és keretrendszerek"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2010/01/08/kesek_es_keretrendszerek#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1656868" border="0" /></a><br /></p>
php
keretrendszerek
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2009/12/14/a_google_mar_visszaszamol
a google már visszaszámol
2009-12-14T17:05:00+01:00
2009-12-14T17:05:00+01:00
Thoer
https://blog.hu/user/11259
<p>Az eredeti (angol nyelvű) Google kereső oldalon az itthon "Jó napom van!"-ként ismert "I'm feeling lucky!" gombra kattintva egy JavaScript visszaszámlálót kapunk, ami visszaszámol az új évhez, méghozzá másodpercben.</p><p>Itt ki is lehet rögtön próbálni: <a href="http://www.google.com/ncr">http://www.google.com/ncr</a></p><p>Mivel a szkript a saját gépünk óráján alapul, így várhatóan szinte mindenkinél pontos is lesz.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F12%2F14%2Fa_google_mar_visszaszamol%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F12%2F14%2Fa_google_mar_visszaszamol%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F12%2F14%2Fa_google_mar_visszaszamol%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=a google már visszaszámol"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2009/12/14/a_google_mar_visszaszamol#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1597715" border="0" /></a><br /></p>
google
javascript
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2009/12/12/eclipse_vs_notepad_i
eclipse vs notepad++ i.
2009-12-12T21:03:00+01:00
2009-12-12T21:03:00+01:00
Thoer
https://blog.hu/user/11259
<p>A hatékony programozás nagyon fontos része a megfelelő eszközök megtalálálása. Ahogy azt már korábbi bejegyzésekben is említettem, nekem ez az <a href="http://www.eclipse.org/pdt/">Eclipse PDT</a>, viszont mostanában sokszor megőrjít a lassúságával. Hozzá kell tennem, hogy ez jelentős részben az elavult számítógépemnek köszönhető, de még egy pár hónapot ki kell bekkelnem vele, ezért mostanában gyakran a másodlagos szövegszerkesztőmet használom, ami nekem a <a href="http://notepad-plus.sourceforge.net/hu/site.htm">Notepad++</a>. Azt hiszem ezzel nem vagyok egyedül. Igaz, hogy egy vérbeli IDE-hez képest fapados szoftver, de legalább villámgyors akármilyen számítógépen, az alapvető szövegkezelése pedig tökéletes. Nyilván rengeteg apróság van amit nem tud, de kis utánajárással a többség orvosolható. Ezek közül most kettőt mutatnék be, valószínűleg lesz még folytatás is.</p> <h2>Sablonok, Snippets, QuickText</h2> <p>Az általam ismert komoly PHP IDE rendszerek mindegyike rendelkezik valamilyen kedvenc kódok hozzáadására alkalmas funkcióval. PDT alatt erre tulajdonképpen rögtön két lehetőség is van. Egyfelől van template beállítási lehetőség, ahol tetszőlegesen hozhatunk létre sablonokat és új fájl létrehozásához vagy gyorskifejezéshez rendelhetjük őket, vagy van a Snippets ablak ahol pedig jól látható helyen, gyorsan elérhetően tárolhatjuk kedvenc kódjainkat, ráadásul ez nem is PDT függő, viszont amennyire tudom nem lehet őket gyorskifejezésekhez rendelni.</p> <p>Megjegyzés: Gyorskifejezés az én szótáramban olyasmi, mint a gyorsbillentyű, csak itt le kell írni egy kifejezést és utána valamilyen "titkos" billentyűvel kell jelezni az szoftver felé, hogy ezt a kifejezést most értékelje parancsként. Például PDT-ben alapértelmezetten van egy sablon egy általános osztály létrehozására és az a cls nevet kapta. Ezért ha php fájlban vagyunk és leírjuk új szóként, hogy cls és utána egy szóköz karaktert ütünk, akkor a cls szó kitörlődik és helyette a cls néven definiált sablon jelenik meg, megspékelve azzal, hogy rögtön lehetőséget kapunk változók átírására is.</p><p><a target="szajtbilder" href="https://m.blog.hu/sz/szajtbilder/image/091212/snippet2.jpg"><img src="http://szajtbilder.blog.hu/media/image/091212/snippet2.jpg" alt="" /></a></p> <p>Mind a Snippets mind a sablonok lehetővé teszik változók definiálását a sablonban. Snippetsnél két lépcsőből áll a változó létrehozása, egyfelől a sablonba be kell írni a változó nevét egy ilyen alakban: $(valtozo_nev), másfelől külön meg kell adni a változót is az ablakban, ennek előnye, hogy rögtön alapértelmezett értéket is rendelhetünk hozzá és leírást is megadhatunk, mindkettő igen hasznos.</p> <p><img src="http://szajtbilder.blog.hu/media/image/091212/snippet1.jpg" alt="" /></p><p>A sablonok létrehozásánál erre ugyan nincs lehetőség, csak a fenti formát kell a sablonba írni, viszont nagyon ügyesen meg van csinálva, hogy a sablon beszúrása után rögtön lehetőséget kapunk a változók átírására és Tab használatával végig is mehetünk a definiált változókon, egyesével megadva mindegyik értékét.</p><p>Notepad alatt erre nincs lehetőség ellenben van egy QuickText nevű plugin, melynek telepítése a Notepad++ esetében megszokott kicsomagolás-fájlbeillesztés-újraindítás. A dll fájlt másoljuk plugin könyvtárba, az ini fájlt a szoftver gyökérkönyvtárába és meg is vagyunk, a használata pedig elég hasonló az eclipse féle sablonokhoz. Igaz még csak elnevezett változókat sem hozhatunk létre, viszont a $ karakter elhelyezésével beszúrási pontokat hozhatunk létre, amelyek között a tab ismételt megnyomásával váltogathatunk. Egy hátránya van az Eclipse féle sablonhoz képest, az hogy az elnevezett változók hiányában nem tudunk tippet adni, hogy mit is kellene az adott beszúrási ponthoz írni, mégis óriási segítség tud lenni adott esetben. Lehet, hogy csak én voltam szerencsétlen, de a régi leírás alapján elég sokat elszenvedtem vele, úgyhogy most szólok mindenkinek, hogy már nem a Ctrl+Enter hanem a Tab megnyomására aktiválódik a funkció!</p> <p><img src="http://szajtbilder.blog.hu/media/image/091212/quicktext.jpg" alt="" /></p> <h2>PHP Explorer, Function List</h2> <p>Az Eclipse elég sok féle projekt és kód nézettel, kis segítővel készíti a fejlesztőket, ezek közül is az egyik legkézenfekvőbb a PHP Explorerbe beépített fájlelemző funkció, ami alapból egy sima explorer ablaknak tűnik, viszont az egyes fájlok még tovább nyithatóak és megmutatja a bennük definiált osztályokat, osztályváltozókat, konstansokat és függvényeket. Ráadásul egy kis ikonnal még jelzi is a legfontosabb tulajdonságaikat épp csak a függvényleírást nem adja ki, legalábbis tudtommal.</p><p><img alt="" src="http://szajtbilder.blog.hu/media/image/091212/phpexplorer.jpg" /></p> <p>Hogy mire jó ez? Két dologra is. Egyfelől ha keresem, hogy pontosan hol és hogy is van egy adott függvény definiálva, akkor gyorsan megtalálom, nem kell ténylegesen szerkesztésre megnyitnom minden fájlt. Másfelől ha egy nagyobb fájlban dolgozom, akkor nem kell végignéznem az egészet, megtalálom a PHPExplorerben a függvényt és megnyitásra odaugrik a szerkesztő a fájlban. Meg kell jegyezni, hogy mindkét funkcióra biztosít az Eclipse ennél jobb eszközöket, de általában a PHPExplorer amúgy is nyitva van, mert gyakran nyitogatok fájlokat fejlesztés közben, így többnyire én ezt használom. Igazán príma kis eszköz, aminek sajnos egyáltalán nincs ekvivalens megoldása Notepad++ alatt.</p> <p>Van viszont két kiegészítő ami, ha nem is együtt de külön-külön azért ennek egy egyszerűsített verzióját biztosítja. Az egyik egész egyszerűen az Explorer nevet kapta és nem is véletlenül, mert pontosan egy explorer ablakot varázsol a szerkesztőnkbe. Ugyan kicsit zavaró, hogy nem projektenként mutatja a fájljainkat, mint az Explorer, viszont van egy kedvencek része is ami nálam gyakorlatilag a projektkönyvtárak gyüjteménye. Nem annyira intuitív, de működik.</p> <p>Ehhez csapjuk hozzá a Function List nevű kiegészítőt és máris kaphatunk egy fájlelemzésre alkalmas funkciót is. Nálam régóta telepítve van, de csak most vettem rá magam, hogy rájöjjek a használatára is. A lényeg, hogy alapból nincs konfigurálva a plugin, azt nekünk kell megtenni.</p> <p>Tegyük is meg. Nyissuk meg a kiterjesztés menüjében a Language Parsing Options ablakot, válasszuk ki a PHP-t és Hozzunk létre egy új csoportot Function néven, és adjuk meg a következő beállításokat:</p> <ul> <li>Function Begin: "function "</li> <li>Function List Name: "[\w]*"</li> <li>Function End: "\("</li> <li>Body Begin: "{"</li> <li>Body End: "}"</li> </ul> <p>Ha ez megvan akkor hozzunk létre egy új csoportot Class néven és adjuk meg a következő beállításokat:</p> <ul> <li>Subgroup: Functions</li> <li>Function Begin: "class "</li> <li>Function List Name: "[\w]*"</li> <li>Body Begin: "{"</li> <li>Body End: "}"</li> <li>Body Begin To Body End: "{"</li></ul><p>Biztos ami biztos, csináltam egy screenshotot a beállításokról:</p><p><img alt="" src="http://szajtbilder.blog.hu/media/image/091212/function_list1.jpg" /></p> <p>Elvileg ha ezután elmentjük a beállításokat és megnyitunk egy php fájlt, akkor a Function list ablak valami hasonlót fog mutatni:</p> <p><img alt="" src="http://szajtbilder.blog.hu/media/image/091212/function_list2.jpg" /></p> <p>Mára ennyi. Előbb-utóbb biztos hasznos lesz valakinek. Köszönet az eredeti<a href="http://www.wlscripting.com/tutorial/53"> FunctionList bejegyzésért Danielnek</a> (aki ezt nem fogja megérteni), és persze a szoftverek és kiegészítők fejlesztőinek. ;)</p> <p> </p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F12%2F12%2Feclipse_vs_notepad_i%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F12%2F12%2Feclipse_vs_notepad_i%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F12%2F12%2Feclipse_vs_notepad_i%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=eclipse vs notepad++ i."><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2009/12/12/eclipse_vs_notepad_i#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1593121" border="0" /></a><br /></p>
szoftverek
eszközök
eclipse
notepad__
0
Szájtbilder
https://szajtbilder.blog.hu
http://szajtbilder.blog.hu/media/image/091212/snippet2.jpg
https://szajtbilder.blog.hu/2009/11/11/eftepezz_okosan
eftépézz okosan
2009-11-11T09:52:00+01:00
2009-11-11T09:52:00+01:00
Thoer
https://blog.hu/user/11259
<p>Először is elnézést mindenkitől, aki szerint ez a cím most a magyar nyelv durva megerőszakolása volt. Valahol egyetértek, de a blog indításakor elhatároztam, hogy amennyire lehet, igyekszem mindent magyarosan írni. Nekifutottam az "ftp-zz"-nek is, de mivel mind a kettő nagyon rossznak tűnt, választottam a magyarosabbat.</p><p>A mai poszt valójában csak egy kedvcsináló, nem sokára publikussá teszek egy nyílt forráskódú kis cuccot, ami egy rakás dologban segíteheti a fejlesztők mindennapjait. Az egészet arra építve kezdtem fejleszteni, hogy egy ügyfelem gépére próbáltam a <a href="http://www.magentocommerce.com/">Magento webáruház rendszert</a> telepíteni. Na most a probléma ott kezdődött, hogy nem kaptam Control Panelt (szerintem nincs is a szerveren) csak egy ftp-t, és ezért kénytelen voltam a kicsomagolt fájlokat feltölteni a szerverre. Na most az hogy a 16 megás 1.3.2.4 verzió kicsomagolva 46 mega még nem lett volna nagy gond, de a 8500 fájl okozta overhead egész egyszerűen lehetetlenné tette a műveletet.</p><p>Megmondom őszintén, hogy nem nagyon kutattam eszközök után, úgy éreztem 2 perc alatt írok egy szkriptet, ami kicsomagolja nekem a feltöltött fájlomat. Ez hamar meg is volt, viszont mivel a program csomagolta ki a fájlt és csak magának adott írhatósági jogosultságot, ezért nem tudtam módosítani azokat. Szerencsére egy php.net-ről lopott kis függvény hamar segített ezen is. Futtatás után tehát még megváltoztattam a fájlok jogosultságát is.<code> function modeTree($dir, &$message, $mode=0777) {<br /> $files = glob( $dir . '*', GLOB_MARK );<br /> foreach ($files as $file){<br /> if (substr($file, -1) == '/')<br /> modeTree($file, $message);<br /> else<br /> chmod($file, $mode);<br /> }<br /> chmod($dir, $mode);<br /> return TRUE;<br />}<br /><br />$zip = new ZipArchive;<br />$file = 'magento-1.3.2.4.zip';<br />$message = '';<br /><br />if ($zip->open($file) === TRUE) {<br /> $folder = getcwd() . str_replace('//', '/', '/'.$_POST['unzipfolder']);<br /> $message .= "Kitömörítés ($folder): ";<br /> $message .= $zip->extractTo($folder) ? 'ok.<br />' : 'hiba.<br />';<br /> $zip->close();<br /> <br /> modeTree($folder, $message);<br /> $message .= $folder . ' írható.<br />';<br /> }<br /><br />if ($message):<br /> echo " <h2>Üzenet</h2>\n";<br /> echo " <p>$message</p>\n";<br />endif;</code>FONTOS: Természetesen mindennek 0777 jogosultságot adni nem a legbiztonságosabb dolog a világon, éles rendszerben mindig körültekintően érdemes kiválasztani, hogy melyik könyvtárakhoz milyen hozzáféréseket kívánunk adni. Ugyanennyire fontos az is, hogy lehetőleg csak a legszükségesebb fájlokat tartsuk a webről elérhető könyvtárainkban.</p><p>A fejlesztett kis szoftver természetesen ennél többet fog tudni. A teljes igénye nélkül:</p><ul><li>Könyvtárak becsomagolása</li><li>Fájlok minta szerinti jogosultság kezelése</li><li>Fájlok minta szerinti mozgatása</li><li>Fájlok karakterkódolásának megváltoztatása (iconv)</li><li>Adatbázis(ok) sql fájlokba mentése</li><li>Egyszerű belépés</li></ul><p>Egyelőre ezekre érzem úgy, hogy igényem lesz. De ha bárkinek van valami jó ötlete ezzel kapcsolatban, akkor természetesen örömmel veszem.</p><p>Még vacilálok azon, hogy rakjak-e bele fájlfeltöltést. Talán egyszerűbb lenne, de én jobban szeretem ftp-vel feltölteni a nagy fájlokat, hogy lássam a folyamatot is.</p><p>Ja és még valami! A megoldás egyelőre nem a legszebb, mert egy fájlban van a munkát végző php résztől a css-ig minden, viszont így egyszerűen feltölthető és törölhető az egész. Valószínűleg beépítek egy egyszerű időkapcsolót is, ami elérhetetlenné teszi a rendszert, ha nem módosult egy pár napig. Vélmények ezzel kapcsolatban?</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F11%2F11%2Feftepezz_okosan%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F11%2F11%2Feftepezz_okosan%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F11%2F11%2Feftepezz_okosan%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=eftépézz okosan"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2009/11/11/eftepezz_okosan#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1517352" border="0" /></a><br /></p>
php
ftp
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2009/11/03/windows_parancssor_trukkok
windows parancssor trükkök
2009-11-03T19:47:00+01:00
2009-11-03T19:47:00+01:00
Thoer
https://blog.hu/user/11259
<p>Azoknak a szerencsétleneknek, akik hozzám hasonlóan egy microsoft operációs rendszerre vannak kényszerítve valamilyen okból és ennek ellenére komolyan gondolják, hogy php-ban lehet fejleszteni, óriási segítség lehet a következő pár programocska és trükk:</p><h3>Színes parancssor Windowson</h3><p>Bár sokan Cygwin-t használnak a probléma feloldására, hála a jó istennek (és<a href="http://www.symfony-zone.com/wordpress/2009/10/15/colorize-your-windows-console-output/"> ennek a drága symfony-s posztnak</a>) most már tudok kultúrált megoldást is. Symfony, PHPUnit és SimpleTest használóknak kötelező.</p><p>Megoldás: <a href="http://adoxa.110mb.com/ansicon/index.htm">Ansicon</a></p><p>Installálás: Letöltés, ansi.dll és ansicon.exe bemásolása egy szimpatikus könyvtárba és a környezeti változóknál a PATH-hez hozzáadjuk a könyvtárunkat. Ez után még be kell írni a Parancssorba, hogy "ansicon.exe -i" ezzel installáljuk a szoftvert. Persze a szoftvernek is támogatnia kell a színes szövegeket, Symfony használók erre kapnak tippet az eredeti posztban.</p><h3>Virtuális könyvtárak (Symlink)</h3><p>Idegesít, hogy minden projekthez be kell másolnod a keretrendszerek kódjait? Unix alapú rendszeren ilyet senki nem tesz, de mi XP használók alapból nem sokat tehetünk. Vagy legalábbis meg kell dolgozni érte. Szerencsére nem vészes a dolog.</p><p>Megoldás: <a href="http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx">Junction</a></p><p>Telepítés: Nincs, csak arról kell meggyőződni, hogy a letöltött junction.exe fájl előrhető legyen. (PATH)</p><h3>Drag n drop könyvtárak</h3><p>Ahelyett hogy hosszú könyvtárneveket begépelnénk, elég csak egy megnyitott Intézőből belehúzni az adott könyvtárat a parancssorba.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F11%2F03%2Fwindows_parancssor_trukkok%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F11%2F03%2Fwindows_parancssor_trukkok%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F11%2F03%2Fwindows_parancssor_trukkok%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=windows parancssor trükkök"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2009/11/03/windows_parancssor_trukkok#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1496774" border="0" /></a><br /></p>
windows
kiegészítők
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2009/10/26/10_kiraly_artablazat_dizajn
10 király ártáblázat dizájn
2009-10-26T11:20:00+01:00
2009-10-26T11:20:00+01:00
Thoer
https://blog.hu/user/11259
<p>Jó lenne azt mondani, hogy a legjobb 10, de valójában csak úgy 40-50 többé-kevésbé ismert nemzetközi oldal ártáblázatát néztem meg, sőt némelyiket ehhez hasonló posztban találtam csak. Sebaj következzenek a legjobbak:</p><p>1. <a href="http://www.brightbox.co.uk/rails-hosting-pricing">Brightbox</a></p><p><img alt="" src="http://szajtbilder.blog.hu/media/image/090126/brightbox.gif" /></p><p>2. ConcetpShare</p><p><img alt="" src="http://szajtbilder.blog.hu/media/image/090126/conceptshare.gif" /></p><p>3. <a href="https://www.getbackboard.com/users/pricing">GetBackboard</a></p><p><img alt="" src="http://szajtbilder.blog.hu/media/image/090126/getbackboard.jpg" /></p><p>4. JobSpot</p><p><img alt="" src="http://szajtbilder.blog.hu/media/image/090126/jotspot.gif" /></p><p>5. <a href="http://www.jumpchart.com/sign-up/">JumpChart</a></p><p><img src="http://szajtbilder.blog.hu/media/image/090126/jumpchart.jpg" alt="" /></p><p>6. ProtoShare - régi</p><p> <img src="http://szajtbilder.blog.hu/media/image/090126/protoshare.gif" alt="" /></p><p>7. <a href="https://app.shopify.com/services/signup">Shopify</a></p><p> <img src="http://szajtbilder.blog.hu/media/image/090126/shopify2.jpg" alt="" /></p><p>8. <a href="http://www.squarespace.com/">Squarespace</a></p><p> <img src="http://szajtbilder.blog.hu/media/image/090126/squarespace2.jpg" alt="" /></p><p>9. The Resumator - régi?</p><p> <img src="http://szajtbilder.blog.hu/media/image/090126/theresumator.gif" alt="" /></p><p>10. <a href="http://wufoo.com/signup/">Wufoo</a></p><p> <img src="http://szajtbilder.blog.hu/media/image/090126/wufoo.jpg" alt="" /></p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F26%2F10_kiraly_artablazat_dizajn%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F26%2F10_kiraly_artablazat_dizajn%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F26%2F10_kiraly_artablazat_dizajn%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=10 király ártáblázat dizájn"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2009/10/26/10_kiraly_artablazat_dizajn#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1474007" border="0" /></a><br /></p>
design
táblázat
0
Szájtbilder
https://szajtbilder.blog.hu
http://szajtbilder.blog.hu/media/image/090126/brightbox.gif
https://szajtbilder.blog.hu/2009/10/25/vektor_ember_karacsonyra
vektor-ember karácsonyra
2009-10-25T13:04:00+01:00
2009-10-25T13:04:00+01:00
Thoer
https://blog.hu/user/11259
<p>Bár messze még pont két hónap van hátra az ünnepig, egyre több helyen már erre való hivatkozással gyűjtik a látogatókat az Internettel, dizájnnal, programozással foglalkozó nemzetközi portálok.</p><p>Ezekből fogom mostantól megosztani a kedvenceimet. Most szólok, hogy lesznek, amik nem ideiek, de nem hiszem, hogy mindenki ismeri őket.</p><p>Kezdem rögtön egy tavalyival, a <a href="http://wefunction.com/2008/11/free-character-pack/">WeFunction tavaly novemberben publikálta</a> ingyenesen letölthető és használható vektoros emberkéjét.</p><p><a href="http://wefunction.com/2008/11/free-character-pack/"><img style="width: 400px; height: 326px;" src="http://szajtbilder.blog.hu/media/image/091025/function_character_pack.jpg" alt="" /></a></p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F25%2Fvektor_ember_karacsonyra%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F25%2Fvektor_ember_karacsonyra%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F25%2Fvektor_ember_karacsonyra%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=vektor-ember karácsonyra"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2009/10/25/vektor_ember_karacsonyra#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1473715" border="0" /></a><br /></p>
ingyen
karácsony
vektor
0
Szájtbilder
https://szajtbilder.blog.hu
http://szajtbilder.blog.hu/media/image/091025/function_character_pack.jpg
https://szajtbilder.blog.hu/2009/10/20/eszkozok_webes_kepekhez
eszközök webes képekhez
2009-10-20T22:08:00+02:00
2009-10-20T22:08:00+02:00
Thoer
https://blog.hu/user/11259
<h3>Optimalizálás</h3><p>Sajnos nagyon sok webes fejlesztő magasról tesz arra, hogy az általa létrehozott weboldal hány kéréssel fordul a webszerverhez és mekkora fájlokat töltet le a felhasználóval, míg egyszer bele nem fut valamilyen ebből fakadó problémába, jellemzően lassan töltődő oldalakba. A YSlow nevű Yahoo eszköz megjelenése elég sok cikket eredményezett a maga idejében, de sokan biztos még mindig felesleges macerának tartják az optimalizálásokat. A következő eszközök talán őket is meggyőzik, hogy nem ördöngősségről van szó.</p> <p>A <a href="http://www.gracepointafterfive.com/punypng"><strong>PunyPNG</strong></a> egyesével optimalizálja a fetöltött képfájlokat és egy zip tömörített fájlként vagy egyesével lehet letölteni az elkészült képeket.<a href="http://www.gracepointafterfive.com/punypng"><br /> </a></p> <p>A <a href="http://spritegen.website-performance.org/"><strong>CSS Sprite Generator</strong></a> ezzel szemben egy zip fájlt vár és az abban szereplő képfájlokból készít egy sprite-ot. Együtt használva a PunyPNG-vel körülbelül 3 perc alatt előállíthatunk egy optimalizált CSS tündért. Letölthetjük az elkészült képet és kimásolhatjuk a generált CSS osztályokat.</p><h3>Ikonok</h3> <p>Az <strong><a href="http://iconverticons.com/">iConvert</a> </strong>képet alakít ikonná. Előnye, hogy külön Windows, Linux és Macintosh ikonokat is készít.</p><p>Ha kimondottan faviconra van szükség, én jellemzően ezeket az eszközöket használom: <a href="http://www.favicon.cc/"><strong>favicon.ico</strong></a>,<strong> </strong><a href="http://tools.dynamicdrive.com/favicon/"><strong>FavIcon Generator</strong></a>, de <a href="http://tools.dynamicdrive.com/favicon/">itt találtok továbbiakat is</a>.</p><h3>Inspiráció</h3> <p>A <a href="http://www.wordle.net/create"><strong>Wordle</strong></a> egy ötletes szolgáltatás: Szavak listájából, RSS url-ből vagy éppen delicious.com címkék alapján létrehoz egy címkefelhő-szerű de annál sokkal mókásabb képet. A betűtípus és egy rakás egyéb dolog még beállítható. Hátrány lehet, hogy az alkalmazás futásához Java kiegészítésre van szükség.<img alt="" src="http://szajtbilder.blog.hu/media/image/091020/wordle.jpg" style="width: 289px; height: 257px;" /></p> <p>És végül ha esetleg elakadnál a következő weboldalad színvilágának kiválasztásával, itt egy pár oldal, ami segíthet a döntésben: <a href="http://kuler.adobe.com/#">kuler</a>, <a href="http://www.colourlovers.com/patterns/top">COLOURlovers</a> + <a href="http://www.colourlovers.com/copaso">Copaso</a>, <a href="http://colorschemedesigner.com/">Color Sheme Designer</a>, <a href="http://www.colorblender.com/">ColorBlender</a>, <a href="http://colorexplorer.com">Color Explorer</a>.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F20%2Feszkozok_webes_kepekhez%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F20%2Feszkozok_webes_kepekhez%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F20%2Feszkozok_webes_kepekhez%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=eszközök webes képekhez"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2009/10/20/eszkozok_webes_kepekhez#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1464236" border="0" /></a><br /></p>
eszközök
0
Szájtbilder
https://szajtbilder.blog.hu
http://szajtbilder.blog.hu/media/image/091020/wordle.jpg
https://szajtbilder.blog.hu/2009/10/19/angular
angular
2009-10-19T11:26:00+02:00
2009-10-19T11:26:00+02:00
Thoer
https://blog.hu/user/11259
<p>Miško Hevery, a Google tesztelés-specialistája egy újabban egy elég érdekes kezdeményezés híreit közli blogján, melynek neve Angular, és a <a href="http://www.getangular.com/">GetAngular.com</a> címen érhető el. A projekt azt ígéri, hogy egy szolgáltatás keretein belül programozás nélkül hozhatunk létre egyéni alkalmazásokat. Ez azt jelenti, hogy nincs szükség javascript programozásra és ha jól értem nincs is lehetőség szerver oldali programozásra és adatbázis berhelésre a szó megszokott értelmében. Ehelyett alapvetően html-el dolgozunk, ami persze kap némi kiegészítést. Ennek segítségével bizonyos konvenciók alapján módosítjuk a szerver oldali részt.</p> <p>A kezdeményezés érdekesnek tűnik, a kipróbálás "természetesen" ingyenes, de a professzionális változat is <a href="http://www.getangular.com/plans">megfizethetőnek tűnik</a>, feltéve, hogy arra már csak bevált szolgáltatásoknak van szüksége.</p> <p>Az alábbi videóban egy gyors bemutató keretében <a href="http://www.getangular.com/screencast">5 perc alatt elkészítenek egy egyszerű alkalmazást</a>.</p><p>Misko kapcsolódó cikkei:</p><ul><li><a title="Permanent Link to Hello World, <angular/> is here" href="http://misko.hevery.com/2009/09/28/hello-world-angular-is-here/">Hello World, <angular/> is here</a></li><li><a title="Permanent Link to Sweet Spot for <angular/>" href="http://misko.hevery.com/2009/10/04/sweet-spot-for-angular/">Sweet Spot for <angular/></a></li><li><a href="http://misko.hevery.com/2009/10/18/lowering-the-price-of-web-apps/" title="Permanent Link to Lowering the price of Web-Apps">Lowering the price of Web-Apps</a></li></ul>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F19%2Fangular%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F19%2Fangular%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F19%2Fangular%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=angular"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2009/10/19/angular#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1460013" border="0" /></a><br /></p>
angular
0
Szájtbilder
https://szajtbilder.blog.hu
https://szajtbilder.blog.hu/2009/10/13/php_keretrendszerek_iv
php keretrendszerek iv.
2009-10-13T09:23:00+02:00
2009-10-13T09:23:00+02:00
Thoer
https://blog.hu/user/11259
<h3>Avagy Zend vs Symfony I.</h3><p>Sajnos igazán behatóan egyik rendszert sem ismerem, de egy-egy kisebb projektet már összeraktam a másik két rendszerrel is, a hivatalos tutorialokat végigcsináltam, így talán mondhatom, hogy rálátásom már van.</p><p>Érdemes megjegyezni, hogy a Zend Frameworköt nagyon sokan egy komponens-könyvtárnak tartják, de ez csak annyiban igaz, hogy akként is hibátlanul funkcionál. Ugyanakkor szerintem (majdnem) mindenre képes, amit egy modern MVC rendszertől elvárhatunk, ellenben ezt a struktúrát egyáltalán nem kényszeríti a felhasználókra.</p><h3>Fejlesztés</h3><p>Úgy érzem a Zend mellett szólhat, hogy amögött sokkal inkább konszenzus van, míg a Symfonyt egy egyszemélyes hadjáratként jellemzik. Az igazság viszont az, hogy Potencier elég jó programozó ahhoz, hogy ez ne okozzon túl nagy fejfájást. A két projekt fejlesztésére sem panaszkodhatunk, mindkettőhöz szinte hetente jönnek ki frissítések.</p><h3>Sebesség</h3><p>A jelenlegi Symfony verzió a legtöbb kritikát egyértelműen a sebessége miatt kapja, a fejlesztők viszont azt ígérték, hogy erre fogják a legnagyobb hangsúlyt fektetni a közeljövőben. Ígéretes benchmarkokat már mutattak, meglátjuk mi jön össze belőle. Az biztos, hogy egyszer-kétszer elkerekedett a szemem, amikor láttam egy futási fát Symfony alatt, valószínűleg tényleg van ott mit faragni. Érdemes megjegyezni, hogy a Zend is rendszerint alulmarad sebességben a kisebb rendszerektől, ami alighanem annyit jelent csupán, hogy több mindenre képes, valamint az is elgondolkoztató, hogy a PHP objektumkezelésén is talán lehet még csiszolni, még mindig elég költséges az objektum generálás. Mindezek ellenére egy kisebb weblapon sosem fog érződni, hogy ez most lassabb, mert Zendet/Symfonyt használ, ha csak a fejlesztő el nem baltáz valamit. Egy nagyobb projektnél viszont biztos hogy nagyon hamar meghálálja magát a jól átgondolt struktúra.</p><h3>Tanulás</h3><p>Szerintem ebben a kérdésben nincs egy ligában a két rendszer. A Zend elemei jól le vannak írva, de hogy hogy kéne a keretrendszert rendeltetése szerint használni az nem igazán. Van ugyan egy hivatalos tutorial, de mint korábban említettem, az is bugos. A bugot ugyan valószínűleg javították azóta, de azért ez azt is jelzi, hogy nem igazán foglalkozik a kérdéssel a fejlesztői gárda.</p><p>A Symfony ehhez képest már túlzás is. Nagyszerű leírások és tutoriálok tömkelegei, az egyetlen probléma, hogy nagyon-nagyon részletes. De legalább aki átrágja magát a végtelennek tűnő anyagon, az utána úgy érzi, hogy tud mindent. Ami persze nem igaz...</p><h3>Kódgenerálás</h3><p>Régebben irtóztam mindenféle kódgenerálós dologtól, de most már kezdem megszeretni. A két keretrendszer itt is hozza a róla kialakult képet. A Zend ad pár parancsot a fontosabb kódrészek generálásához, míg a Symfony eláraszt a különböző variációkkal. Nem mondom, biztos hasznos mindegyik, de egy kezdőnek szinte megtanulhatatlannak tűnik. Az <a href="http://blogs.sun.com/netbeansphp/entry/symfony_support_finished">új NetBeans</a> viszont nagyban segít ezen a kérdésen, úgyhogy újoncoknak erősen ajánlott az új IDE. (Erről később szeretnék részletesebben is írni, jelezzétek ha komoly igény lenne rá.)</p><h3>Külsős fejlesztések, pluginek</h3><p>Ez a fejezet mindkét projekt esetében szinte fikciónak tűnik. Mindkettőről lehet tudni, hogy nagyon sokan használják, fejlesztenek vele ezerrel, ugyanakkor a nyílt forráskódú projektek amiket találtam, egytől-egyig kezdetlegesek és jellemzően hemzsegnek a hibáktól.</p><p>Ez alól talán csak a <a href="http://www.magentocommerce.com/">Magento</a> kivétel, ami valóságos buzzword lett mostanában. Az is lassan vezető e-commerce megoldássá válik, ugyanakkor még ezt a rendszert se mondanám tökéletesnek, megszenvedtem vele mire feltelepítettem a gépemre.</p><p>Csalódás, hogy mostanában egész sok open source fejlesztést néztem át a <a href="http://sourceforge.net/">sourceforge</a>-on, de alig-alig akad olyan amelyik akár csak egy stabilabb béta szintet elérne és emellett bevált keretrendszert használna.</p><h3>Konklúzió</h3><p>Most még nincs, mert hamarosan jön egy folytatás, ahol az gyorsítótár kezelést, űrlap generálást, adatellenőrzést, hitelesítést és úgy általában a biztonságot szeretném egy kicsit górcső alá venni.</p><p>Talán annyit azért meg lehet már most állapítani, hogy a nagyon-nagyon jó programozóknak és/vagy nagyon nagy projekteknek inkább a Zend flexibilitása lesz a nyerő, aki viszont szereti ha minél több nyűgött levesznek a válláról vagy akinek nem világmegváltó gondolatai vannak, hanem gyorsan szeretne jó minőségű kódot létrehozni az talán jobban jár a Symfonyval. Mindenesetre a <a href="http://www.symfony-project.org/jobeet/">Jobeet tutorialt</a> minden programozónak végig kéne olvasnia egyszer, aki nem tartozik a közvetlen programozói-elithez.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F13%2Fphp_keretrendszerek_iv%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F13%2Fphp_keretrendszerek_iv%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fszajtbilder.blog.hu%2F2009%2F10%2F13%2Fphp_keretrendszerek_iv%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=php keretrendszerek iv."><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://szajtbilder.blog.hu/2009/10/13/php_keretrendszerek_iv#comments"><img class="item_ctp" src="https://szajtbilder.blog.hu/rss/image/post/id/1446857" border="0" /></a><br /></p>
php
symfony
zend_framework
keretrendszerek
0
Szájtbilder
https://szajtbilder.blog.hu