2011 április - 11 megfelelő bejegyzés

Mutass mindent

Jelöld be, hogy főbb mely kategóriákat akarod olvasni, vagy ha csak egyet: kattints a nevére.


Haszprus

Dropbox

©   Haszprus   |   howto hwsw

Komolyan mondom, nem is tudom, hogy tudtam élni eddig nélküle.

Régen mainframe már ajánlotta, és regisztráltam is, de nem nagyon láttam akkor hasznát, most pedig a Virgós kolléga megkérdezte hogy van-e fiókom, igazából volt, de nem használtam. Most elkezdtem használni, marha jó. A létező legegyszerűbb módja, hogy pl. fotókat osszak meg anyámmal (mert nála is telepítettem), vagy hogy magammal hordozzam bizonyos excel tábláimat, vagy egyebeket, amikre a Google Docs nem megfelelő mert nem elég fejlett hozzá, ellenben rendszeresen frissíteni akarom a tartalmukat, ergo jó ha nálam van mindig.

Merthogy a Dropbox az egy szoftver és szolgáltatás egyben. Létrehoz a számítógépeden egy könyvtárat, amikor telepíted. Ebbe a könyvtárba bármit pakolsz, az a háttérben szépen feltűnésmentesen szinkronizálódik a Dropbox szerverével, tehát náluk is lesz belőle egy példány, meg nálad is. És ahány gépen még felrakod a Dropboxot (tipikusan pl. az otthonin meg a munkahelyin), mindannyin eléred ezt a könyvtárat, pontosan ugyanazzal a tartalommal, szinkronizálva az összes hely között, ergo írhatsz és olvashatsz is bele/belőle mindenhol.

Telefonra is telepítheted, azzal is szinkronizál (de ott nem mindent, csak amit meg akarsz nyitni), így a jegyzetelős fájlokat akár útközben is szerkesztheted vagy olvashatod.

Én telepítettem ebbe a könyvtárba egy portable alkalmazást is, aminek így a frissítéseit csak egy helyen kell elvégeznem, akár otthon akár az irodában, és amikor beérek a másik helyre, akkor ott már a frissített szoftver fogad, aminek a beállításait sose kell kétszer megtennem.

Egyszerűen óriási.

A Dropbox alapból 2 giga tárhelyet nyújt, de ha ezen a linken regisztrálsz, akkor kapsz még pluszba 250 mega helyet, és én is kapok utánad 250 megát. Ha ezen át regisztrálsz, megköszönöm! És tényleg érdemes, mert nagyon hasznos.

Ja és backup célokra is használható, amit ugyanis ide teszel, azt 30 napig még a törlésük után vissza tudod állítani, illetve ha véletlenül valami hülyeséggel felülírnád, akkor az előző verziókat is tárolja ennyi ideig.

Haszprus

Első node.js http szerverem :)

©   Haszprus   |   fejlesztés javascript node.js

Gondoltam kipróbálom ezt is. Szerver oldali javascript ugye ("server side javascript done right"). Íme az app.js tartalma:

var http = require('http'); var server = http.createServer(function(request, response) { response.writeHead(200, { 'Content-type': 'text/plain' }); response.end('Hello world'); }); server.listen(8000); console.log('Server is listening on http://127.0.0.1:8000');

As seen in the tutorial. És ez igen könnyen már futtatható is (konzolba node app.js), és a http://127.0.0.1:8000 címen meghívva valóban kapunk is egy hello world oldalt.

Haszprus

Twig template engine

©   Haszprus   |   fejlesztés howto php

Gondoltam eljátszom a twig template kezelővel, ami erősen a symfony 2-höz és fabien potencierhez kötődik, tekintve hogy ő az atyja mindkettőnek és ez a symfony 2 default templating engine-je.

A telepítés igen könnyű pearrel:

pear channel-discover pear.twig-project.org pear install twig/Twig

(Egyébként nem muszáj pearrel telepíteni.)

Hozzuk létre a kis hello world sablonunkat:

<html> <head></head> <body> <p>Hello {{ name }}</p> <p>The date is {{ date }}</p> <p>The time is {{ time }}</p> </body> </html>

Mentsük el templates/hello.tpl-ként.

A template-et adattal kiszolgáló php a következőképp fog kinézni:

<?php include 'Twig/Autoloader.php'; Twig_Autoloader::register(); try { // templates könyvtárban keressük a template-eket $loader = new Twig_loader_Filesystem('templates'); $twig = new Twig_Environment($loader); $template = $twig->loadTemplate('hello.tpl'); echo $template->render(array( 'name' => 'World', 'date' => date('Y-m-d'), 'time' => date('H:i:s'), )); } catch (Exception $e) { die('Hiba: ' . $e->getMessage()); }

Ez ennyiből már működik is. A twig lehetőségeibe mélyebben nem megyek bele, aki használt már bármilyen template engine-t, annak sok újat nem fog mutatni.

Haszprus

CakePHP modellek

©   Haszprus   |   cakephp fejlesztés howto php symfony

Nemrég kezdtem el picit ismerkedni a CakePHP MVC frameworkkel, igazából egyáltalán nem célom ismertetni a képességeit vagy bármi hasonló, mindössze megragadnék egy dolgot ami megtetszett. A dolog nem újdonság, mint ahogy a CakePHP sem az, sőt.

Induljunk ki onnan, hogy már megvannak a tábláid a db-ben, amit még korábban létrehoztál, hogy Cake-et kezdtél volna használni. Nem feltétlen tipikus felállás, tudom.

Megmondod az érintett kontrollerednek egy tagváltozóban, hogy

$uses = array('Restaurant', 'Place');

, aminek a hatására a kontroller a Restaurant és a Place nevű modelleket példányosítani fogja és hozzárendeli a $this->restaurant ill $this->place változókhoz a Controlleren belül.

Amennyiben a megfelelő könyvtárban nincs Restaurant ill. Place modell (az ezekhez tartozó php fájl és osztály), akkor megnézi, hogy a db-ben létezik-e restaurant ill. place nevű tábla, és ha igen, akkor ezekből generál on-the-fly egy-egy modellt.

Lekérdezi tehát a db-ből a táblák oszlopait, és rögtön használhatod is valamennyi tagfüggvényt rájuk, mint pl. megkeresheted az 5-ös id-jű éttermet:

$this->restaurant->findById(5);

Nem csak id alapján kereshetsz, hanem bármi egyéb oszlopnév alapján is természetesen, tehát pl. $this->restaurant->findByType('lacikonyha') hívás is teljesen valid.

Nekem ebben az tetszik mondjuk egy symfonyval szemben, hogy a modellt nem kell generálnod, létrehozza neked on-the-fly, aminek különösképp ott érzem előnyét, ha valami változik az adatbázis sémában (nevezetesen nem kell újragenerálgatni a modelleket, ami marha kényelmes dolog). Nyilván hátránya, hogy egy IDE sem fogja kitalálni neked, hogy vajon milyen tagfüggvényeket hívhatsz meg az ilyen módon használt modelljeiden.