zoner blogja

Negyedik Pi a családban

Pontosan azt az elvet képviseli ez a kis szerkezet, ami miatt a villáskulcs/kamionkormány/henteskés helyett a billentyűzet és monitor lett a munkaeszközöm. Bütykölhető, kombinálható, olcsó és szinte mindenre jó. OSMC-vel a filmeket nézzük, egy régi B és relésor az akvárium világítását, CO2-t kapsolja, egy van mindenféle elektronikai bütykölésre.

Asszony kitalálta, hogy a gyereknek jó lenne egy WII karácsonyra, mert a szomszédnak is az van és ebben a korban pont tudja majd élvezni. Hát még mit nem, jobban jár majd egy RetroPie-al, mintha megkapta volna a létező összes konzolt 2001-ig, és még apuka is jól szórakozik. A bevásárlólista a következő:

Magento Certified Developer

Mult heten megcsinaltam es most felkerultem a listara itt:

http://www.magentocommerce.com/certification/directory/dev/3395/

A kerdesek nehezek voltak, ha valaki nem talalkozott meg azzal a konkret problemaval, akkor valoszinuleg a rossz valaszt x-eli be, hiaba tudna megoldani valos projekten. De hasznos volt, a vegen kaptam egy osszesitot is, ahonnan megtudtam, hogy hol kell meg erositeni. Remelem kapok majd relevans feladatot ezeken a reszeken :)

A Zend Framework cert-et akartam elobb megcsinalni, de a cegnek ez volt surgosebb. Ezutan az mar menni fog biztosan.

Mitől lesz valaki senior webfejlesztő?

Már lassan egy éve Skóciaban dolgozok, ugyanazon a helyen, ahol novemberben kezdtem. Egy viszonylag kis céget kell elképzelni, most már 10 fővel, ami nagyobbaknak fejleszt webáruház megoldásokat és internetes fizetési kapukat. De például van egy nagyobb CRM rendszer is SaaS alapon, ami milliós (font) nagyságrendű forgalmat kezel. Múlt héten jött egy új Project Manager, aki majd leveszi a másik PM és a tulajdonos válláról az ügyfélkommunikáció terhét, ami szerintem jót fog tenni mindenkinek.

Itthon freelancerként legtöbb esetben is PM-eknek dolgoztam, de ez így főállásban azért egészen más. Év elején kezdtem el tesztelni a saját kódomat, megírtam a céges Coding Standard-ot, bevezetésre került egy ticket system-el együttműködő deployment solution (vagy CI, ha jobban tetszik). és felkészültem a Zend Framework vizsgára is. Állítólag karácsony környékén mindig van egy holtidőszak, akkor kell majd megcsinálnom. Meglátjuk. Nem attól félek, hanem a Magento Certification-től, az nagyon kemény. Kaptam új névjegykártyát is, amin már a "Senior web developer" szerepel. Hát ez nagyon kedves, de egyáltalán nem érzem magam senior web developernek.

Lefoglalt eszközök visszaszolgáltatása

Na kérem, megkaptam a nyomozás megszüntetéséről szóló ajánlott levelet. A NAV nagy erőkkel nyomozott, kutatott, elköltött kis híján 100 000 Ft-ot és több, mint 10 hónap elteltével megállapította, hogy a turaindex.hu mégsem hasonlít egyetlen másik weboldalhoz sem.

Sikerült elárulni pár félmondatot az eredeti feljelentésből is, miszerint "ugyanazok a látnivalók" és "megtévesztésig hasonló névvel" szerepelnek. Hát kérem a Mátyás Szobrot ha akarnám se tudnám máshogy elnevezni, de ez talán az én hibám.

A nyomozást a mindenható nyomozó főhadnagy megszűntette és elrendelte a munkaeszközeim kiadatását. Namármost ezzel csak annyi problémám van, hogy nekem kellene értemenni ahelyett, hogy sűrű bocsánatkérések közepette aki vitte, ugyanúgy visszavinné ugyanoda, ahonnan elvitte. Ha nem teszem, az egész cuccot elárverezik vagy ha az nem sikerül, akkor az én költségemen megsemmisítik. Tehát hamarosan veszek egy repülőjegyet (Edinburgh-Budapest), bérelek valami Seicentot vagy a legolcsóbb kisautót és irány a III. kerület, magasságos NAV raktárépület, ahol záros határidőn belül ha két tanúval alávésetett jegyzőkönyvvel a naccságos főelvtársné elé járulok, talán fél napos fel és lejárkálások, portással ordibálás után visszakapom az időközben agyonmatricázott bűneszközeimet.

Polak, Węgier, dwa bratanki

Ez az utolsó éjszakám idén a skóciai otthonomban, holnap este irány Edinburgh Airport és ott fogom megvárni a reggeli repülőt haza. Már nagyon várom, hogy a családommal lehessek és előkészíthessem az utukat ide. Mielőtt indulok, néhány dolgot el kell intézni: elzárni a vizet, az olajat a fűtésről és lekapcsolni a fűtést. Ez egy nagyon hasznos dolog itt, hogy minden egyes konnektor külön lekapcsolható. Fel kell hívnom a Property Managert, mert előző alkalommal még nem volt itteni bankszámlám, amiről vonhatták volna a bérleti díjat. Remélem, hogy dolgoznak holnap, mert ha nem, csak Magyarországról tudom felhívni januárban.

Új otthon

Sikeresen beköltöztem az új házba. Van pár furcsa dolog Skóciában és bármennyire is a házról terveztem írni valamit, nem tudom kiverni a fejemből a mai nap történéseit. Kezdődött a reggeli bevásárlással. Csütörtökön átjött a szomszéd és említette, hogy van a faluban bolt, ami nyitva van vasárnap is. Ma reggel el akartam menni Larkhallba, mert a főutca tele van mindenféle kis bolttal és van néhány nagyobb bevásárlóközpont is. Egy utcával arrébb van a buszmegálló, amire pont rálátok az emeletről. Mivel sikeresen lekéstem a buszt, meglátogattam a boltot. Két indiai eladó dolgozik bent és mintha egy másik világba csöppentem volna a kinti kockára vágott sövény és kristályablakos ajtók után. Nem gondoltam volna, hogy India ilyen közel van. Egymásra dobált áru, kopott ajtó, power tape-el megragasztott polcok. Cserébe nem túl drága a tej. Apropó tej. Fűízű. Mindenhol tehenek és birkák legelnek, egész Skócia egy nagy legelő és ezen érdemes elgondolkodni egy kicsit, hogy Magyarországon hol élnek a tehenek és honnan lesz tej a boltok polcaira, ha egyébként emberek nőnek fel úgy, hogy nem is látnak tehenet. Nagyon várom már a jövő hetet, Hamiltonban Farmer's market lesz, ahol mindenféle háztáji jóságot lehet majd kapni a termelőktől.

Mindenki töltsön le mindent (Artisjus)

„Mindenki töltsön le mindent és ne fizessen sarcot azoknak a cégeknek, akik egyébként úgysem a zenekaroknak osztják szét ezt a bevételt, hanem egymás között, illetve egy-két kiválasztott haverjaiknak osztják szét és közben a magyar zeneipar pedig haldoklik őmiattuk”

Zagyva Gyula hozzászólása Artisjus ügyben.

http://youtu.be/B6cEvAWUnyQ

Skócia T-2 nap

Ez lesz az utolsó, összeszedem a történéseket 10 perc alatt. Éppen indulok fogorvoshoz, mert miért is ne az utolsó héten kezdjen el hidegre érzékenynek lenni a bal felső akárhányadik. Soron kívül kaptam időpontot, ami annyit jelent, hogy leülhetek a váróban és vagy bemehetek vagy ott ülhetek estig. De inkább, mint ismeretlen fogorvos Skóciában.

Szerintem minden apróság megvan, igaz, még a bőröndben csak egy pár papucs árválkodik. Holnap el kell kezdeni kimosni a ruháimat és összeírni, hogy Edinburgh-ból mit kell vennem. Lássuk csak: telefonkártya, átalakító konnektorhoz. Nem jut eszembe több.

Monster

Megtaláltam az Egyesült Királyság legnagyobb álláskereső portálját. De ez semmi, mivel kívülről abszolút nem látszik nagynak, viszonylag kevés álláshirdetés is van rajta, az álláskeresők egyszerűen regisztrálnak az oldalra, majd - mint ahogy én is -, észreveszik, hogy nincs itt semmi érdekes, a máshol is megtalálható agency hirdetésekből néhány itt is látható.

Igen ám, de ekkor az önéletrajzom már bent van a rendszerben, kapom az automatizált e-maileket, hogy ha még ezt és ezt kitöltöm, az nekem milyen jó lesz. Ki is töltöm, hétvégén szántam rá egy kis időt, tényleg hasznosnak tűnik. Hétfőn vadul csörög a telefonom, természetesen ügynökök rabolják az időmet. "Az egyik ügyfelem Londonból..." álljunk meg egy kicsit, látta-e, hogy az én elsődleges célpontom Glasgow, kb 200 mérfölddel északra, Skóciában. "Ahh, nekem mindig nehéz volt a skótokkal. Igen, szóval ők pont engem keresnek, az önéletrajzom le fogja őket hengerelni, hadd küldje tovább nekik". Küldd csak, az nekem ingyen van, szegény ügyfeled meg majd fizet az önéletrajzokért. Fél órákat fárasztanak, közben azon izgulok, hogy a helyi cégek, akiknél jelentkeztem, nem pont akkor akarnak-e nekem telefonálni, amikor az ügynökkel beszélek.

Munkalehetőség a Csodák Palotája környékén (PHP, sitebuilder)

Korábbi ügyfelemhez a saját helyemre keresek PHP fejlesztőt / site buildert. Szükséges ismeretek:

  • PHP OOP programozásban szerzett tapasztalat
  • Zend Framework tapasztalat (Magento fejlesztésben szerzett tapasztalat)
  • HTML5, CSS3, Javascript (jQuery) magas szintű ismerete
  • Drupal tartalomkezelő fejlesztésében szerzett tapasztalat
  • Nagyon rugalmas SCRUM munkavitel, hajlandóság a változtatásokra

Előnyt jelent:

  • Ruby on Rails ismeretek
  • Prototype JS framework ismerete
  • Webáruházak üzemeltetésében szerzett tapasztalat

Feladatok:

  • A cégcsoport weboldalainak karbantartása
  • Új funkciók kivitelezése
  • Magento, Drupal, Wordpress, Concrete5, Ruby on Rails alapú weboldalak beállítása
  • Időnként LAMP szerverüzemeltetési feladatok elvégzése (van rendszergazda, jó dokumentáció, de jó, ha ért hozzá a jelentkező)

Kis cég, rugalmas munkaidő, fiatal munkatársak, családias hangulatú iroda, modern körülmények, versenyképes fizetés. Érdeklődni nálam itt a hup-on vagy a honlapomon található elérhetőségeken: http://sandor.czettner.hu/contact

Alvállalkozóként csináltam, most teljes munkaidőben keresnek valakit, külföldi munkám miatt ezt már nem tudom vállalni.

Betelt a pohár, költözünk

Ennyi, jövőre vállalkozóként a minimálbér 1.5x-ese után kell majd adóznom, 27%-os ÁFA lesz, az emberek a józan ész helyett nem megbeszélik a problémáikat, hanem feljelentgetnek. Meg amúgy is olyan buták, mint a szebbik felem.

Valami szerzői jogi probléma miatt házkutatás volt nálam, elvitték a munkaeszközömet, az adathordozóimat és azt sem közölték, hogy pontosan mivel és kinek a szerzői jogait sértettem meg. Talán egy év múlva visszakapok mindent hiánytalanul. De milyen állapotban és addigra mit érnek már nekem az elveszett ügyfeleimhez tartozó munkafájlok? Nem várok egy évig, megyek. Feleségestől, gyerekestől. Azzal, amit csinálok itthon, jobb helyeken 10x-es fizetést kérhetek. Úgy látszik, nem kell nekik az adóm itthon, hát fizetem más országban.

Új adatvédelmi törvény - 10 milliós bírság

A Parlament elfogadta az új adatvédelmi törvényt, melynek értelmében 2012. január 1-től számos változás fog életbe lépni az adatvédelemmel kapcsolatban. Az adatvédelmi nyilvántartást 2012-től a Nemzeti Adatvédelmi és Információszabadság Hatóság vezeti, és akár 10 millió Forintos bírsággal is sújthatja azt az adatkezelőt, aki bejelentési kötelezettségét nem teljesítve kezeli a személyes adatokat.

A törvény nagyon homályos, de legrosszabb esetben minden olyan weboldalnak kötelező a regisztráció, mely Magyarországon működő cég vagy magánszemély üzemeltetésében működik és bármilyen személyes adatot tárol a felhasználótól. Tehát ha az oldaladon van egy fórum, amihez regisztráció kell, akkor valószínűleg tárolod a másik fél személyes adatait (pl e-mail címét). A webshopokon is kezelünk természetesen ilyen adatokat.

Siklóernyő - első felvonás

Pár hete elkezdtem siklóernyő oktatásra járni és nagyon tetszik a dolog. Jelenleg ott tartok, hogy biztonságosan fel tudom húzni az ernyőt háttal, belefutással és ha háttal húztam fel, többnyire úgy meg is fordulok és elindulok rajthoz, hogy nem omlik össze a kupola.
A repülés élménye csodálatos. Még legfeljebb 20 méterre tudtam felmenni, legfeljebb 10-15 másodpercig, de sokkal többnek tűnt. Olyan élmény volt, mint amikor először motoroztam: remegő lábak és elszánt tekintet, amikor vissza kellett gyalogolni a domb tetejére. Második alkalommal voltam, amikor már repülhettem és úgy érzem, a többiekhez képest sokkal jobban megy. Persze benne van az is, hogy a felmászás nem fáraszt le, hiszen edzettebb vagyok az átlagnál.
Szombaton az egyik oktató megengedte, hogy egyedül startoljak és ez nagyon sokat segített a starttechnikámon. Szó szerint: "Ha nem félsz, hogy leesel, nem bánom". Persze nem estem, egész nap fel-le szaladtam a dombról és szinte már csukott szemmel is menne a start, már nem is nézem az ernyőt, érzem, hogy hol van. Aztán vasárnap bika időben a nap első lesiklása egy kicsit magasabb dombról nem sikerült túl jól. Mint kiderült senki sem adott engedélyt, hogy egyedül startoljak, de nekem a katonai etika szerint az utolsó kiadott parancs volt a fejemben. Ezek szerint az oktatók ilyet nem tanultak :)
Szóval nagyon nehezen erős szélben felhúztam az ernyőt, ami mellesleg sokkal kisebb is volt, mint kellene, a beülő szintén ilyen 60 kilós lányok számára készülhetett. Megfordultam, előre dőltem, szaladtam, közben fékkel korrigáltam amit a szél tett az ernyőmmel és észre sem vettem, hogy a letisztított lejtő helyett kb 20 fokkal balra a csipkebokrok felé szaladtam. Amikor már észrevettem, a levegőben lógtam és csak annyit tudtam mondani: "bazdki". Lepergett előttem az a fél nap, ami a saját magam és az ernyő kimentésével fog telni a két méteres sűrű tüskebokrok közül. Esélyem nem volt a tiszta lejtő felé kormányozni, kb 50 méter siklás után pedig az ernyő letett a tüskebokrok közepére. Néhány pumpálás segített megfékezni és egy kb 5 négyzetméteres viszonylag tiszta, füves-bokros területre érkeztem. Közben rohant oda az oktató kiabálva, hogy ilyet nem lehet, meg hogy képzelem, sokkal nagyobb baj lehetett volna, stb. Egy óráig tartott, amíg kiszedtem a tüskék közé került ernyőt és kimentem a csipkebokor gyűrűből a domb tetejére.
Végül lefújták a napot, mert a túl erős szélben nem tudott senki elstartolni. Sokat tanultam ebből a startból. Leginkább azt, hogy futás közben érdemes előre is nézni még akkor is, ha az ernyő fent tartása és az őrült módon való futás minden figyelmemet leköti :)
A következő alkalmat tűkön ülve várom (vagy tüskéken, szó szerint)

Objektumgyár minta

Először is elnézést a cím miatt, de talán kis figyelmet kapok miatta a szakma jeles képviselőitől, akik nem értik, hogy mit akar ez jelenteni. A "Factory Pattern"-ről van szó, egy osztályszervezési mintáról, melyet modern programtervezéskor használunk és magas szintű nyelveken valósítunk meg (Például Java, C# és kicsit bátortalanul megemlítem a PHP-t is, merthogy most arról van szó a Zend certificate általam önképzéssel megvalósuló megszerzése céljából)

Tehát így kerül a csizma az asztalra, miután ezen túl vagyunk, csapjunk a leves közepébe. A Gang of Four: Design patterns művében legtöbbször Factory Method és Abstract Factory címszóval hivatkozik erre az objektumorientált programtervezési mintára. A továbbiakban szem előtt tartom, hogy egy szoftveren nem egyedül dolgozunk, ezért a másik fejlesztő által írt kódot, ami az én osztályaimat használja, kliens kódnak fogom nevezni. Tehát az itt tárgyalt mintának a kliens kódja szempontjából az az előnye, hogy anélkül tudja példányosítani egy belső osztályomat, hogy komolyabban kellene tanulmányoznia azt. Ezzel komoly munkaórák spórolhatók és átláthatóbb programkódot eredményez a használata.

PHPUnit - tesztek minden előtt

Tesztekre szükség van, hiszen a jó programozót nem az különbözteti meg a rossz programozótól, hogy hibátlan kódot ír, hanem attól lesz valaki jó programozó, hogy a saját hibáit felismeri és képes javítani rajta. A Test Driven Development (Tesztvezérelt fejlesztés) paradigmája a felismerés folyamatát automatizálja. A rossz programozó var_dump-okat és echo-kat tesz az osztályaiba és reménykedik, hogy az ezredik futásra képes kijavítani a hibás működést. Jobb lenne ezt automatikusan, nem? Létezik erre egy keretrendszer, ami széles körben használt. A neve PHPUnit. Ez egy olyan keretrendszer, mely kifejezetten a tesztekhez íródott és erre kitűnően használható is. Nem PHP találmány, először Java-hoz jelent meg JUnit néven, de számos más programnyelven is implementálták egyszerűsége és népszerűsége miatt.

Egy rails alkalmazás félig kész állapotban

Kedvenc hobbi projektem eljutott arra a szintre, hogy már itt is merem publikálni:

http://turaindex.hu/

Mongoid, Ruby on Rails és Ruby 1.9.2 alapra építkeztem, adatrögzítő dolgozik a kirándulási célpontok, látnivalók feltöltésén (ezért mondjuk nem is annyira hobbi).

A lényege a szállásfoglalás lesz (a'la airbnb, de a magyar piacra optimalizálva)

Nézzétek, teszteljétek és jelezzétek a hibát mondjuk ebben a topicban. Köszönöm :)

Hétvégi projektekről

Sok fejlesztő nem tud mit kezdeni azzal a szabadidejével, amit programozásra vagy tanulásra akarna fordítani például hétvégén vagy ünnepek között. Vannak olyanok is, akik ilyenkor szabadúszóként működnek és kisebb-nagyobb munkákat vállalnak meglévő ügyfeleiknek. Ezt a klasszikus értelemben hívhatnánk fusizásnak is, már ha az illető egy vállalat alkalmazottja és a pihenés helyett saját zsebre hazaviszi a munkát.

Szerintem ez egy nagyon rossz dolog, mivel ez az idő pont arra elég, hogy új dolgokat tanuljunk, tehát kövessük a saját szakágunk technológiai változásait. Én ezt viszonylag egyszerűen oldottam meg; nem vállalok hétvégi projekteket. Helyette inkább saját apró dolgaimat fejlesztem, például hírlevél marketing alkalmazást, ami ugyanúgy pénzt fog hozni idővel, de igazából a symfony framework új verziójának használatát tanulom vele.

Magento trailing slash eltávolítása

Előfordulhat, hogy a webáruházunkra mások záró perjellel hivatkoznak, miközben mi mindenhol záró perjel (trailing slash) nélkül hivatkozunk. Ez nem jó, mivel a Google duplikátumnak fogja venni a slash-ra végződő URL-t.

Ha viszont minden záró perjelet eltávolítunk, az admin felületen és a fizetési folyamatban problémákba ütközünk, mivel a POST kérések az átirányított oldalakra már nem lesznek érvényesek és sajnos a Magento záró perjellel hívja meg ezeket az URL-eket. Az alábbi kód segít helyrerakni a problémát, a problémás részeket meghagyja úgy, ahogy azt eredetileg meghívták.

Mérgező ügyfelek, akik megölik az üzleted

Több év szabadúszó gyakorlattal a hátam mögött rengeteg olyan megrendelésem volt, ami flottul ment. Akadt köztük olyan is, ami a ráfordított időmet tekintve tiszta ráfizetés volt. Itt összesűrítem azokat az árulkodó jeleket, amik már a megkeresések elején kiszűrhetővé teszik azokat az ügyfeleket, akiket jobb elkerülni.

Megőrültem? Ilyen gazdasági helyzetben el akarok kerülni potenciális ügyfeleket? Bizony el, és jó okom van rá. Az utolsó legtanulságosabb eset az volt, amikor egy párezer forintos termékeket áruló startup webáruházat kellett elkészítenem. Nem tudom hányadik programozó voltam, amikor nulláról indítottam újra az egészet, de árulkodó jelnek kellett volna lennie, amikor az előző fejlesztő kódjára ránézve jól láthatóan a megrendelő lépésről lépésre irányította a programozót ahelyett, hogy egy kész specifikáció alapján készült volna az egész. A sorsom ugyanaz lett, mint az övé: a befektetett munka töredéke lett csak kifizetve, csaknem 1 hónap munka telt azzal, hogy a photoshophoz is "értő" ügyfél utólagos módosításait úgy csináljam meg, hogy közben ott lihegett a hátam mögött.

ruby - map használata

Talán másoknak is hasznára válik ez az apró kódrészlet, ami nem csak sokkal olvashatóbbá teszi a programot, de a végrehajtást is gyorsítja. Az eredeti így néz ki, ha egy egyszerűbb webáruházat írunk:


# Erre itt szükségünk van, különben az << operátor nem értelmezhető lentebb
amount_array = []
# for ciklus
for order in account.orders
  amount_array << order.amount.some_operation
end

Ehyelyett használható a map is. Ilyen egyszerű egysoros kód lesz belőle:


# A map visszatérési értéke mindig tömb, ezért a deklaráció fölösleges.
amount_array = account.orders.map { |order| order.amount.some_operation } 

SEO biznisz más szemmel

Mi a cél?

Elsődlegesen az, hogy a keresőmotorok listáiban minél feljebb kerüljön az oldalunk. A SEO cégek két csoportra oszthatóak. Az egyik csoport a BlackHat-nek nevezett technikákat alkalmazzák, a keresőmotorok hibáit kihasználva próbálják elhitetni, hogy a megszakértett oldal az adott kulcsszónak jobban megfelelő, mint egyébként. Alkalmazott módszereik jól felismerhetőek: több website indításáról ugyanarra a célra, a külön domainen elhelyezett un. landing page-ek, email címlisták árusítása email spam küldésére, stb. Ezek nem túl etikus módszerek és akár a keresőmotorból való kizárással is járhatnak. De a WhiteHat módszer sem nevezhető etikusnak.

Concrete 5 magyarul

Nem tudom pontosan, hogy mióta tud magyarul a Concrete 5, de nagyon jó, hogy tud. Röviden bemutatom a C5 admin felületét, amit a felhasználó fog kapni. Ugye mennyivel barátságosabb, mint bármelyik más admin felület?

http://www.youtube.com/watch?v=AGW2E84vy00

És ami a legjobb, hogy a CMS forrása teljesen MVC szemléletű, nagyon átlátható és könnyen felülírható benne minden. Például ha egy blokk megjelenését akarom változtatni, akkor kimásolom a /concrete/block/html/view.php fájlt /block/html/ könyvtárba és átírom a tartalmát. Vannak hozzá fizetős modulok is, de nem drágák.