Hu Gb

Akciós Moodle könyvek

2011.12.10
A Packt kiadónál akciósan beszerezhetóek a Moodle könyvek. A Moodle egy PHP alapú open source e-leaning alkalmazás. Bővebben informació az akcióról itt található: http://www.packtpub.com/news/moodle-festive-month.
Továbbolvas

Yii 1.1 Application Development Cookbook

2011.10.10
Packt published the Yii 1.1 Application Development Cookbook from Alexander Makarow, a Yii core developer. It contains 80 recipe about the usage of the framework.
I think the book is for developers whose already know the framework a bit and they want to learn more about it. In the first chapter you can read about the not too familiar but useful features of Yii, like the usage of the "getters" and "setters" in the framework. The following chapters covers pretty much everything you need to know:
  • Router, controller and view
  • AJAX and jQuery
  • Forms
  • Testing
  • Database, and the model layer
  • Components, Zii
  • Extending Yii
  • Error handling
  • Security
  • Performance
  • 3rd party librarys with the framework
  • Deployment

I really liked the book and I recommend to read it to everyone who wants to use Yii for web development.
Továbbolvas

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>
Továbbolvas

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:migrate
A 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:
Továbbolvas

Yii framework DataProvider default order

2011.09.08
The widgets of the Yii framework are using a so called 'dataprovider'. They support the order of the data by any attribute but in some cases we need a default order. To achive this we need to set the 'defaultOrder' property of the 'sort' property(which is a CSort class) of the dataProvider:
$dataProvider=new CActiveDataProvider('Post', array(
	    'criteria'=>array(
	        'condition'=>'status=1',
	        'with'=>array('author'),
	    ),
		'sort' => array(
			'defaultOrder' => 'create_time DESC'
		),
	    'pagination'=>array(
	        'pageSize'=>20,
	    ),
	));
Továbbolvas

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

Továbbolvas

HTML5 egyedi attribútumok

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:
<a href="test" data-tooltip="Ez a tooltip tartalma" id="tooltip-test">Tovabb</a>
Ha egy tooltiphez szeretnénk a szöveget a html elem valameyik attributumán tárolni a fenti minta alapján megtehetjük. Ezután javascriptüel így férhetünk hozzá az adathoz:
document.getElementById('#tooltip-test').getAttribute('data-tooltip');

Továbbolvas

TextMate save remotely bundle

2011.08.13
Since I have a Mac I am using TextMate for development. My only problem with it was the lack of the remote save feature. But luckily TextMate supports bundles so I thought I will scratch my itch and made a bundle. 
If requires a config file called .remote_config, in the folder of the project which should be something like this:
user: 'username'
password: 'password'
host: 'host'
path: 'path/to/remote/folder'
If this file exists when a file being saved it will upload to the server as well. 
You can download it from here: TextMate save remotely
Továbbolvas

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 table
Ezzel 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
Továbbolvas

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
Továbbolvas