2010. március 10., szerda

PHP programozókat keresünk

Frissítve: 2010-03-23

Elvárások:
* PHP 4 és PHP 5 alapos ismerete
* Joomla vagy valamely PHP MVC framework ismerete
* Angol nyelvtudás

Előny:
* Javascript, CSS ismerete
* SQL tapasztalat

Amit kínálunk:
* Versenyképes jövedelem
* Nemzetközi projektekben való részvétel
* Barátságos munkahely Debrecenben

Jelentkezés:
Bessenyei Zsolt
epam.debrecen kukac gmail.com

2010. március 9., kedd

C++ és .NET fejlesztőt keresünk

Keresünk erős C++ és .NET tudással is bíró fejlesztőt, akinek az angol sem jelent gondot.

CV küldése: epam.debrecen kukac gmail.com

db4o vs Hibernate/MySQL

Az elmúlt években egyre erősebben lehetett érezni azt, hogy a webes alkalmazások perzisztenciájának megoldására a relációs adatbázis kezelők egyre kevésbé alkalmasak.
Az RDBMS-ek sajnos nem nyújtják a legjobb megoldást ha elosztott rendszerről van szó és nagy mennyiségű adatokat kell tárolni. Ennek kiküszöbölésére jöttek létre például az elosztott cache-ek és a nem relációs elveken alapuló adatbázisok. Ezek modern megnevezése a NoSQL (http://en.wikipedia.org/wiki/NoSQL).

Habár a skálázhatóság fontos szempont, engem mégsem ez vezérelt mikor elkezdtem alternatív perzisztencia megoldást keresni webes alkalmazásokhoz. Az én fő szempontom az volt, hogy Java-ban könnyen kezelhető adatbázist találjak.
Igazából elegem lett abból, hogy az adataim modellezését kétszer kell megcsinálnom, a Java domain modellt és a relációs adatbázis sémát. Ezekhez a teendőkhöz még hozzátársul a két modell közötti megfeleltetés konfigurálása. Ez a többszörös munka több hibalehetőséget hoz magával, amit rendes teszteléssel lehet csak kideríteni.

Rátaláltam a NeoDatisra, amely egy objektum adatbázis Java-hoz és .Net-hez, nagyon kellemes API-t ad. A NeoDatis a teljesítményét a db4o-hoz méri, így úgy tűnt érdemes megnéznem azt is. Nem csalódtam benne, mert az API-ja szinte ugyanaz, de sokkal kiforrottabb.

Ez a poszt eredetileg a NeoDatis, db4o és Hibernate/MySQL adatbáziskezelő teljesítményének összehasonlításaként indult, de a NeoDatis még nem alkalmas production rendszerbe (habár a teljesítményre nem panaszkodhat, de hajlamos a hibára). A megmaradt két versenyzőt a PolePosition (http://www.polepos.org) nevű java adatbázis benchmark programmal hasonlítottam össze. Sajnos ennek a tesztprogramnak a fejlesztése 2005-ben megállt, viszont open source jellegéből adódóan letölthettem és kisebb módosításokkal és lib frissítésekkel működésre bírható volt.

A tesztkörnyezet paraméterei:
OS: Ubuntu 9.10 32 bit
CPU: Intel Atom 330 @ 1.6 GHz
Memória: 4 GB DDR2
db4o verzió: 7.12.132.14217
MySQL verzió: 5.1.30really5.0.75-0ubuntu10.2 (Ubuntu repo-ból)
Hibernate verzió: 3.3.2.GA

Az eredményekhez kattints ide.

A teszteredményekhez még annyit el kell árulnom, hogy az db4o embedded módban futott, így nem csak az ORM folyamatot, hanem a hálózati kommunikációt is megspórólta. Az embedded mód mellett létezik kliens/szerver mód is, de ez most nincs terítéken.

A PolePosition tesztben a teszt-eseteket Forma 1-es pályák neveivel látták el. Mindegyik pálya különböző típusú terhelést jelent, viszont elmondható, hogy a legtöbb követi az írás, lekérdezés/adatmódosítás, törlés ciklust. A pályákról részletesebben:

- Bahrain: egyszerű POJO objektumok kezelésének a tesztje. Az adatok lementése után a lekérdezéseken van a hangsúly. Indexelt és nem indexelt attribútumok alapján keres.
- Barcelona: 5 mélységű osztályhierarchiának objektumainak tárolását teszteli.
- Imola: objektum lekérdezése id (belső) alapján
- Melbourne: megint sima POJO-kat ír, a visszaolvasás ebben az esetben az összes elmentett adatra vonatkozik (select * from akarmi).
- Sepang: különböző mélységű objektum hierarchiák írását, olvasását és törlését teszteli

A db4o egészen jól teljesített. Sebességben felveszi a versenyt a Hibernate/MySQL párossal. Tudom, hogy a grafikonokon a db4o jobban teljesít a write, update, delete műveleteknél, de ezt úgy teszi, hogy hálózati forgalmat egyáltalán nem bonyolít. Ezért inkább egyenlőnek tekintem az állást ezekben a műveletekben. A db4o előnye a hierarchiák kezelésében jön ki, mind az osztály-hierarchia mind az objektum-hierarchia lekérdezésében jobban teljesít, mint a MySQL.
A MySQL is volt első ebben a tesztben, méghozzá a nem indexelt attribútumok alapján való lekérdezésben és a frissen lekérdezett adatok újbóli olvasásában (az utóbbit valószínűleg a Hibernate 1st level cachenek köszönheti).

A tesztjeim alapján és a db4o dokumentáció olvasgatása alapján bárkinek azt ajánlhatom, hogy érdemes kipróbálni és alternatív megoldásként tekinteni rá.

K.B.

2010. március 5., péntek

Back Office Expert

Futó projektünk bővítéséhez keresünk Back Office Expert-et:

Tasks:
Documentation review/creation (Use Cases, Business Requirements, Migration plans, Technical Documentation)
Take part in Weekly Status Calls and Migration support calls
Document configuration in the BO Cookbook
Create/maintain tools for BO Web Service integration/testing
Support a Business Unit in the migration process
Create/track/validate Mantis items
Support the Solution Architect/Project Manager in the design phase with technical comments

Required skills:
Advanced Java
Web Service – SOAP, WSDL experience
Fluent English and good enough documentation skills
Willingness to travel occasionally (1-3 days long trips)

Advantages:
.NET is a plus
SSO experience is a plus
SAP, Siebel integration experience is a plus
Application support experience is a plus

Oracle/Sun Virtualbox

A Virtualbox kapcsolata a nyílt forráskódú közösséggel erős. Maga a Virtualbox is nyílt forrású és pl. a letölthető minta image-ek között is inkább Linux-ok vannak.

Használata nem bonyolult, de az egyszerű virtuális gép másolgatás nem működik, pl. minden virtuális gépnek egyedi azonosítója van, amelyet a másolaton meg kell változtatni. Ha kapunk/letöltünk egy VDI + XML fájlt, akkor bizony kézzel kell szerkeszteni a Virtualbox.xml-t, hogy elinduljon.

Cserébe sokkal rugalmasabb, mint pl. a Microsoft Virtual PC: látja a host USB eszközeit is, a virtális géphez több, mint 3 HDD is csatlakoztatható a virtuális SATA controlleren keresztül, stb.

Microsoft Virtual PC 2007

Az utolsó verziója a Virtual PC 2007 SP1. Úgy tűnik, hogy csak Windows Virtual PC-ként él tovább, a Windows 7-be beépítve (meg persze Virtual Server-ként).

Nagy előnye, hogy sok Microsoft termék image letölthető hozzá kipróbálásra. Pl. ha az a kérdés, hogy az alkalmazás fog-e működni Internet Explorer 6/7/8 verzióval, vagy Windows Vista/Windows 7 alatt is, akkor ennek tesztelésére ingyenesen és legálisan letölthetünk virtuális gépeket. Érdemes erre rákeresni: "Internet Explorer Application Compatibility VPC Image"

Természetesen bármit telepíthetünk a virtuális gépbe, pl. lehet Linux-ot próbálgatni.

Használata a legegyszerűbb a virtuális gépek között: ha van egy VHD(a gép) és egy VMC(a konfig) fájlunk, akkor elég rákattintani a VMC-re, és már fut is.

Cserébe a korlátok a legnagyobbak többi virtuális géphez képest. Pl. a shared foldereken keresztül 1 GB-nál nagyobb fájlok nem mozgathatók (hibát nem jelez, csak sérült lesz a másolat!), valamint max. 3 HDD csatlakoztatható a virtuális géphez (ez sokaknak több, mint elég, de mi belefutottunk ebben a korlátba). A csatlakoztatott HDD-k mindig IDE drive-ok, amelyek cserélgetése megzavarja pl. a guest XP-ket.

2010. március 4., csütörtök

Linux-on dolgozni

Néhányan az irodában kísérleti jelleggel megpróbáltunk áttérni Linuxra. A sok elérhető disztribúció közül az Ubuntura esett a választás. Ez egyszerűen feltelepíthető a céges Windows XP image mellé. A tapasztalatok szerint, ha van elég hely, akkor az Ubuntu installer az új partíció létrehozását is elvégzi. Szinte minden Windows-on elérhető és megszokott programhoz sikerült találnunk Linux megfelelőt:

MS Office -> Openoffice
Outlook -> Thunderbird 2.0 + IMAP

Outlook Calendar -> Thunderbird 2.0 + Lightning plugin + iCal
Sajnos az Exchange aktuális beállításai miatt ez egyelőre nem működik, úgyhogy egyelőre a Thunderbird-os Calendar-ról le kell mondanunk, helyette marad a levelezőrendszer web-es felülete ;)

Development tools:
Version Control -> Cervisia, RapidSVN
IDE -> Eclipse, Netbeans
Programnyelvek -> Java, Perl, Python, Ruby
...ezek mind felrakhatóak az Ubuntu repóból

Multimédia:
MP3 lejátszás -> beépítve
Flash -> beépítve.

Browserek:
-> Firefox
-> Chrome
-> Opera

Windows programok (wine-vel):
-> Total commander: a file extension-k kezelése is forwardolható a Ubuntu felé egy kis Perl scripttel
-> Notepad2
-> Starcraft: na jó ez csak az otthoni Ubuntun, a cégeseket nem szereti ;)

VPN:
Microsoft VPN -> Network Managerrel
Open VPN -> parancssorból indítva
Juniper VPN -> browseren keresztül indítva. Jó tudni hozzá a root jelszót, sudoval nem működik sajnos
Cisco VPN -> Network Managerrel és parancssorból is működik, az utóbbihoz patch-elni és fordítani kell a Cisco VPN klienst

DNS:
Mivel előfordul, hogy több VPN-t is használunk egyszerre, ezért szükség volt egy dnsmasq nevű kis local DNS szerverre. Ezt megpatchelve sikerült elérnünk a Windows-os DNS kezeléshez hasonló állapotot, amely szerint ha az első DNS szerver nem tudja feloldani a nevet, akkor a másodikkal is próbálkozik, aztán a harmadikkal (és a mi esetünkben a negyedikkel is :).


Az Ubuntu eddig beváltotta a hozzá fűzött reményeket. Csak a kernel frissítések miatt 23 nap az uptime-unk. ;)

Cs.M és F.B.