howto - 2011 - 5 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.


mindet
jan
feb
már
ápr
máj
jún
júl
aug
sze
okt
nov
dec
2023
-
-
-
-
-
-
-
-
-
-
-
2015
-
-
-
-
-
-
-
-
-
-
2014
-
-
-
-
-
-
-
-
-
2013
-
-
-
-
-
-
-
-
-
-
-
2012
-
-
-
-
-
-
-
-
-
-
-
2011
-
-
-
-
-
-
-
-
-
2010
-
-
-
-
-
-
-
-
-
-
2008
-
-
-
-
-
-
-
-
2004
-
-
-
-
-
-
-
-
-
-
-
Haszprus

80,4

©   Haszprus   |   élelmezés howto kondi life sanoma történelem önmenedzsment

80,4 kg vagyok. Az utóbbi időben a Sanomáig bezárólag fixen 73-74 körül mozogtam, 3 hónap alatt viszont felszedtem 6 kilót.

Dátum KG Zsír% Víz% Pocak*
2009-05-17 71.4 14 59.4
2009-08-19 75.5 15.8 57.5
2009-10-11 70.6 13.8 59.8 81
2010-05-05 75 15 57.5
2010-05-18 73.8 15.2 58.3
2011-12-24 80.4 17.9 55.5 97.5

* Pocakkerület (köldöknél, cm)

Tennem kell valamit.

Haszprus

Optimalizációs feladatok

©   Haszprus   |   fejlesztés howto sanoma css js képzés mysql php javascript
  • PHP optimalizálás
    • Jenkinses elemzés a kódra
      • CPD és PMD checkre van szükség
    • XHPROF elemzés
  • DB optimalizálás
    • CT mérés javítása
      • Ne okozzon table lockot a CT mérés során keletkező INSERT-ek és UPDATE-ek. Lehetőségek: delayed vagy low priority.
    • MySQL 5.5 percona frissítés
    • Adatok elemzése
      • Nagy méretű táblák elemzése, törlési, archiválási stratégiák kialakítása és a szerkesztőséggel egyeztetés.
    • InnoDB storage engine használat
    • Query optimalizálások
      • Queries not using indexes lekérdezések optimalizálása
      • Slow query optimalizálás
      • Jetprofiler elemzések
    • Táblák particionálása
  • Kereső optimalizálás, Sphinx bevezetés
    • Admin és frontend kereső átalakítása
    • Feleslegessé vált indexek törlése
  • Admin folyamatok optimalizálása
    • Workflow felülvizsgálata, tapasztalatok implementálása
  • HTML, JS, CSS optimalizálás
    • http://gtmetrix.com/ javaslatok alkalmazása

Na ez például egy remek szakmai fejlődési program.

Igazából nem kéne meglepődnöm. Abban a szobában kb. 40 projektnek a fejlesztése zajlik, rengeteg külsős cégnek adnak ki megbízásokat a senior fejlesztőink. Csupa ilyen arccal vagyok körülvéve, juniorok nem nagyon dolgoznak a Sanomában, mert a legtöbb projektet kizárólag külső erőforrásokkal fejlesztik, plusz a hotfixeket belül, meg a deploy, üzemeltetés, ilyesmi. A lényeg hogy rengeteg tudás koncentrálódik körülöttem, és ha jól csinálom akkor rengeteget profitálhatok az itt eltöltött időből. Sajnos ebből a szobából hamarosan ki leszünk emelve egy kevésbé szakmai közegbe, de lobbizni fogok hogy tarthassam minél jobban a DPO-s kapcsolataimat.

Haszprus

Dropbox

©   Haszprus   |   hwsw howto

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

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   |   fejlesztés php cakephp symfony howto

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.