2011.12.10
Yii 1.1 Application Development Cookbook
2011.10.10
Nemrég jelent meg a Packt kiadónál Yii 1.1 Application Development Cookbook, 80 hasznos recept-el a Yii framework-hoz. A szerző az egyik Yii core-developer, Alexander Makarov.
A könyv véleményem szerint inkább a Yii framework alapjaival már tisztában lévő fejlesztőknek szól, viszont ők sokat tanulhatnak belőle. A bevezető fejezetben megismerkedhetünk a Yii néhány nem túl közismert, de annál hasznosabb funkciójával, mint például a "getter"-ek és "setter"-ek használata a framework-el. Ezután pedig minden fontosabb témakörből kapunk tippeket a szerzőtől. A témakörök:
Mint a témakörökből is látszik, a könyv szinte mindent érint amire a framework használata közben szükségünk lehet. Nekem személy szerint tetszett a könyv, és másnak is csak ajánlani tudom.
A könyv véleményem szerint inkább a Yii framework alapjaival már tisztában lévő fejlesztőknek szól, viszont ők sokat tanulhatnak belőle. A bevezető fejezetben megismerkedhetünk a Yii néhány nem túl közismert, de annál hasznosabb funkciójával, mint például a "getter"-ek és "setter"-ek használata a framework-el. Ezután pedig minden fontosabb témakörből kapunk tippeket a szerzőtől. A témakörök:
- Router, controller és view
- AJAX és jQuery
- Formok
- Tesztelés
- Adatbáziskezelés, és a model réteg
- Komponensek, Zii
- A Yii kiegészítése, továbbfejlesztése
- Hibakezelés
- Biztonság
- Teljesítmény
- Külső library-k használata
- Deployment
Mint a témakörökből is látszik, a könyv szinte mindent érint amire a framework használata közben szükségünk lehet. Nekem személy szerint tetszett a könyv, és másnak is csak ajánlani tudom.
Facebook like javascript-el
2011.09.16
A Facebook like widgetnek van egy olyan rossz tulajdonsága, hogy lassítja az oldalbetöltést, és ezzel akár látogatókat is veszíthetünk. Ki lehet ezt a problémát azzal kerülni, hogy a likebox iframe-jét, az oldal betöltődése után, javascriptel rakjuk be az oldal forrásába. Az alábbi függvény is ezt teszi. A paraméterek módosítása után bárki könnyedén felhasználhatja.
<div id="likebox"></div><script type="text/javascript"> window.onload = function(){ (function() { var likebox_id = 'likebox' var url = "sitepoint.hu";//URL encoded var width = 292; var height = 290; var colorscheme = 'light'; var show_faces = true; var border_color = ''; var stream = false; var header = true; var iframe = document.createElement('iframe') iframe.src = 'http://www.facebook.com/plugins/likebox.php?href=' + url + '&width=' + width + '&height=' + height + '&colorscheme=' + colorscheme + '&show_faces=' + show_faces + '&border_color=' + border_color + '&stream=' + stream + '&header=' + header iframe.setAttribute('style','border:none; overflow:hidden; width:' + width + 'px; height:' + height + 'px;') iframe.setAttribute('allowTransparency',true) iframe.setAttribute('frameborder',0) iframe.setAttribute('scrolling','no') document.getElementById(likebox_id).appendChild(iframe) }).call(this); } </script>
Ruby on Rails és a tesztek
2011.09.13
Tesztek írása nélkül olyan a fejlesztés, mint gumi nélkül szexelni egy ismeretlennel. Sok későbbi fejfájást spórolhatunk meg, ha a fejlesztés alatt végig írogatjuk a tesztjeinket. A Ruby on Rails egy - véleményem szerint - nagyon jó teszt keretrendszert tartalmaz, ezt fogom most bemutatni. Generáljuk egy rails app-ot, utána pedig egy scaffold-ot:
rails new rails_testing cd rails_testing rails g scaffold post title:string content:text rake db:migrateA fenti kód legenerálja az app-unk vázát, illetve egy scaffold-ot a "post" model-hez. Ennek részeként az app/test mappában, a rails létrehoz nekünk egy fixture-t, és minta teszteket. A fixture-ök abban lesznek segtségünkre, hogy előre meghatározott adatokat tárolnak nekünk a teszteléshez. A rails ezeket előre kitölti nekünk, de inkább alakitsuk át őket egy kicsit:
Yii framework DataProvider default order
2011.09.08
A Yii framework widget-jei az úgynevezett 'dataprovider' -ekből építik fel magukat. A widgetek támogatják az adatok sorbarendezését bármely tulajdonság szerint, viszont sok esetben szeretnénk egy 'default order'-t. Ennek eléréséhez a dataprovider sort tulajdonságának (ami egy CSort objektum), kell átadnunk a 'defaultOrder' opciót:
$dataProvider=new CActiveDataProvider('Post', array(
'criteria'=>array(
'condition'=>'status=1',
'with'=>array('author'),
),
'sort' => array(
'defaultOrder' => 'create_time DESC'
),
'pagination'=>array(
'pageSize'=>20,
),
));
jQuery DropDown Plugin CoffeeScript-el
2011.09.06
Már egy ideje szemezgetek a CoffeeScript-el, úgyhogy készítettem vele egy legördülő menü plugint jQuery-hez. A CoffeScript egy új programnyelv ami a Javascript fölé épül, egy Ruby-hoz hasonló szintakszissal. Ha ki szeretnénk próbálni, akkor szükségünk lesz node.js-re, ezért először telepitsük fel azt: https://github.com/joyent/node/wiki/Installation. A node.js hivatalos package manager-e az npm amit az itt leírtak szerint tudsz telepíteni:http://npmjs.org/. Ha ezzel megvagyunk akkor a CoffeScript telepítését az alábbi parancs-al tudjuk megtenni:
npm install coffee-script
HTML5 custom data attributes
2011.08.29
Az HTML5 specifikáció egyik újítása az úgynevezett custom data attributes, mely lehetőséget nyújt a fejlesztőknek, hogy barmilyen data- kezdetű attribútumot adjanak a HTML elemeknek.
Például:
TextMate távoli mentés bundle
2011.08.13
Amióta Mac-en dolgozom szép lassan átálltam a TextMate editor használatára. Egyetlen problémám eddig az volt vele, hogy nem tudtam munka közben közvetlenül a TextMate-ből a szerverre is menteni a fájlokat. De nem véletlenül esett a választásom erre a programra, mert az úgynevezett Bundle támogatása miatt könnyedén ki lehet egészíteni a funkciókat. Így hát elkészült egy kiegészítő ami alapbeállításként az ALT+S billentyűkombinációra a lokális mentés után feltölti a szerverre a fájlt.
MySQL table backup
2011.08.08
Éles rendszereknél amikor valamilyen nagyobb update lekérdezést kell futtatnom egy táblán, először egy "backup" táblán szoktam lefuttatni. A backup tábla létrehozására egy időben ezt a megoldást használtam:
create table backup_table as select * from tableEzzel a megoldással annyi problémám volt, hogy az indexeket nem tartotta meg, ezért elkezdtem a mysql dokumentációban jobb megoldást keresni. Sajnos egy lekérdezéses megoldást nem sikerült összehoznom, de ez a két lekérdezés pillanatok alatt lefut:
create table backup_table like table; insert into backup_table as select * from table
Google Maps Geocoder
2011.08.07
Időröl időre szemben találtam magam a problémával, hogy olyan pontot kellett megjelölnöm Google térképen, amire az API nem adott vissza pontos koordinátákat. A probléma megoldásaként született egy eszköz, melynek segítségével a markert mozgatva, barmilyen tetszés szerinti pont koordinátáit megkapjuk.
Remélem másnak is hasznára válik:
Google Maps Geocoder

