Archive for the ‘uncategorized’ Category

Man MySql

Wednesday, May 3rd, 2017

Úgy hozta a sors, hogy a docker miatt volt szerencsém újraélni a mysql-es kalandjaimat. Egy két hasznos utasítás mysql adminisztrálásához:

man mysql

 

Dosbox + Gravis ultrasound

Wednesday, April 3rd, 2013

A régi szép időkbe a midi zene, egyet jelentett a Gravis Ultrasound-al. Akkoriban az egyetlen hangkártya volt, ami elérhető áron, és valamilyen szinten élvezhető módon játszotta le a midi fájlokat. Ahhoz, hogy ezt a legendát, és a régi midi hangzást újra átélhessük a dosbox alatt futó régi játékokban, szükségünk van a régi Gravis kártyához tartozó fájlokra (ahonnan majd a patch-eket be tudja tölteni).

Ezek bár kislemezen elérhetőek az interneten, és pici munkával áthidalható ez a probléma, mégiscsak egyszerűbb egy zip-ből kitömöríteni a dolgot és erre hivatkozni.

A zip letölthető innen: ultrasnd.zip

A dosbox konfigurációs fájlában az alábbit kell írni a [gus] szekcióba:

[gus]
gus=true
gusbase=240
irq1=7
irq2=7
dma1=3
dma2=3
gusrate=22050
ultradir=C:\ULTRASND

az ultradir helye fontos, ez oda mutasson, ahova a dosboxon belül kimásoltuk a zip tartalmát.

Java – 32 bit

Monday, January 28th, 2013

Volt egy kis kavar, a java verzióim között. Történt ugyanis, hogy a nagy platformfüggetlen fejlesztésbe belekeveredett az swt, ami sajnálatos módon platform specifikus, és egyszerre nem lehet bent a 32 bit-es és a 64-bit-es verzió. Külön build targeteket, meg classpath-okat csak ezért felvenni pedig munka, és mint tudjuk a munka jó programozó legádázabb ellensége. A megoldás egyszerű, mindenhol áttértem a 32 bit-es java verzióra, és eclipse-re.

Mivel két gépről is leesett az eclipse, amit újra kellett rakni, időszerű volt összeszedni, hogy mi, és hogyan van nálam telepítve. Hát ezek:

A nap firefox kiegészítője – unhide passwords

Tuesday, September 25th, 2012

A chrome fagyásait (amit csak a laptopomon produkál, a flash, és valószínű a videókártyám miatt), már nem tudtam tovább tolerálni. Visszatértem az alapokhoz, a jó öreg firefox-hoz.

Első használat során véletlenül találtam rá az unhide passwords addonra, ami nevének megfelelően mutatja a jelszómezők tartalmát, ha az ember belelép egy ilyen mezőbe (kicsit halványabb karakterekkel, hogy messziről ne lehessen látni).

Alternatívák arcade gépre

Monday, August 29th, 2011

Mint előző arcade postomban írtam, az arcade gép építésnek igen csak nagy kultúrája van. Ezért ilyen jellegű gépeket elég sok féle képen építhetünk. Vegyük csak sorra:

Min fog futni a játék:
– korabeli PCB-n (ez a játékgépekben található alaplap+program): Ez nagyon autentikus, de ugyanakkor drága mulatság, egyszerűbb teljes gépet venni, mintsem egy alaplapot kötözgetni. Hátránya, hogy csak 1 (bizonyos esetekben 30-40) játékot támogat és ennyi. Ez nálam nem játszik
– PC + mame: ez egy jó választás, de felvet további kérdéseket… Én ezt választottam

Ha úgy döntünk, hogy arcade gépünk belsejében leselejtezésre váró régi gépünk fog futni, nagyot nem hibázunk… Ellenben meg kell oldani a játékok irányítását. Erre lehetőségünk nyílik magunknak, és vehetünk kész megoldásokat is. Ez egy viszonylag egyszerű terület, én az X-Arcade-től rendeltem.

További probléma a kijelző. Sajnos ezeknél a játékoknál ez egy sarkalatos pont.
Ezek a játékok maximum 320×240-es felbontáson készültek (vagy valami még egzotikusabb arányban az eredeti kijelzőtől függően), ráadásul interlaced módba futottak, 15khz-s frissítéssel
Nézzük az alternatívákat. A lista a legjobbtól a legrosszabb megoldás felé tart…
– Arcade monitor: kétségkívül jó választás lenne, de Magyarországon kimondottan ritkaságszámba megy (mint minden ilyesmi), és az arcade monitorok speciális frissítéssel mennek 15khz, és speciális videókártya is illik hozzá (arcadeVGA). Az árukról inkább nem is beszélek (500 USD fölött)
– SCART TV: a tv-t meghajtva scart csatlakozón, lehetőségünk van az eredetihez nagyon hasonló felbontásokkal variálni. A hátrányait majd kifejtem a köv. post-ban
– S-VIDEO TV: egy picit rosszabb a képminőség mint a SCART TV-n, de egyszerűbb az összekötés (S-VIDEO – SCART konvertert bárhol lehet kapni). Hátránya, hogy a videó jelet valahogy rá kell varázsolni az S-VIDEO kimenetre, és nincs annyi felbontási lehetőség, mint ha direktbe SCART-on küldenénk a jelet
– COMPONENT: ennek a legrosszabb a képminősége ha TV-ről van szó
– PC CRT monitor – ez elfogadható, de nem mindegyik támogatja az interlaced mode-ot, a 15khz-s frissítést, és elég kicsik
– PC LCD monitor: a fix pixelek miatt mindenképpen interpolálni fogja a képet, ami szétesik, darabos, pixeles lesz. A legrosszabb választás erre a célra

Én persze szerettem volna perfekcionista lenni (és nem elkölteni több száz dollárt), és a SCART TV megoldást választottam. Annyit elől járóba, hogy ez a választás csak erős idegzetűeknek ajánlott.

Arcade kezdetek

Monday, August 22nd, 2011

Nem tudom normális dolog e, otthonra játéktermi (arcade) játékgépet építeni (azért selytem, hogy nem az :). Mindenesetre az internet tanulsága szerint elég sok nem normális ember él a földön.

Követni kell a trendeket, és mostanában menő *.Beginnings részeket csinálni, gondoltam én is csinálok egyet, mielőtt belekezdek a szakmai részletekbe…

Szóval miért is kezdtem arcade cabinetet építeni?
A dolog egyszerűen kezdődött. Játszottam a Double Dragon 2-vel, amihez szép emlékek fűznek gyerekkoromból.

Szép, de rövid emlékek. Ahol felnőttem a kocsmába volt egy Double Dragon cab. Nem tudtam mi az, de a barátaim mondták, hogy királyság, és hogy a kocsmába kell érte menni. Akkoriba eléggé le voltam tiltva az ilyen jellegű szórakozóhelyekről, de csak belógtam, mert mint mondták: a Double Dragon az királyság, és hozzál sok 20-ast.
Ezek után szereztem életem első videó-játék élményét 🙂
Az igazat megvallva kb. 40 forintig (2 coin) és 15 percig tartott.

A nosztalgiázás közben éreztem, hogy a billentyűzet nem adja vissza az igazi játékélményt… Így akadtam az X-Arcade cégre, akik autentikus játékvezérlőket árulnak (többek között)…

Elég érdekes piac ez, egy komplett arcade gépért 3000usd-t is elkérnek jobb helyeken, de 500-1000usd budgetből is már egész szép dolgokat lehet építeni. Gondoltam ennyit talán ér a retro feeling, érdekelt is a dolog, és a sok program mellett szerettem volna valami materiális dologgal foglalkozni. Innen már nem volt megállás, én is cabinet építő lettem 🙂

Folyatatás holnap, stay tuned 😉

Arcade gép építés

Tuesday, August 16th, 2011

Belevágtam egy arcade gép építésébe, a régi szép idők emlékére. Reményeim szerint a projekt előrehaladtával születni fog majd több cikk a témában, de egyenlőre még csak tervezési fázisban tart a dolog (azokat a dolgokat vettem előre amik a kockázatosak, vagy nehezen beszerezhetőek 🙂

A mostani legnagyobb szívás a VGA-SCART átalakító… Ha valaki tud nekem ilyet csinálni (vagy ismer valakit aki csinál ilyet), az keressen meg 🙂

do re mi ma

Friday, January 21st, 2011

So many things happen while walking…

Gorillaz – Stop The Dams

Magyarország

Wednesday, January 5th, 2011

http://www.blackout4hungary.net/

GWT – kliens szerver határán

Sunday, March 14th, 2010

Lassan 1 éve foglalkozok GWT-vel. Gondoltam eljött az idő, hogy röviden számotvessek magammal, milyen is volt ez az 1 év…
A maga a koncepció, ahogy a megvalósították, hogy java-ban hozhatunk létre böngészőfüggetlen javascriptet, a szabad forráskódú fejlesztés, hogy a rendszer minden részének működését forráskód szinten látjuk, hogy módosíthatók (vagy utánozhatóak) az alap implementációk, és még sorolhatnám. Ez kétségtelenül megérdemel egy + jelet 🙂

Persze az ismerkedés nem volt egyszerű, néhány fejlesztési alapvetést, és nézetet adaptálni kellett, tehát aki gwt-re adja a fejét (szerintem ez ajax-ra, sőt minden asszinkron működésű programra vonatkozik) kénytelen picit „másképp gondolkodni”.
A tapasztalataim részletekbe menő ismertetését most sajnos nem írom le, de néhány gondolatot azért igen.

Nem, nem bántam meg, hogy gwt-be fejlesztek, és ha újra kellene választanom, én ismét ezt választanám. (bár ilyen téren mindegy miben kell fejleszteni, ha valaki elég eltökélt, bármivel tud nagyszerű dolgokat készíteni, max sok idő, és áldozat árán 😉 )

A GWT alkalmazásokban gondolkozik, és ezért „nagy alkalmazás” fejlesztése során felmerülnek problémák (pl. a memória használat, kódok mérete). Ha viszont egy picit tovább gondoljuk a dolgot, minden nagy alkalmazás nem más mint kis alkalmazások összessége, amik viszont játszi könnyedséggel integrálhatóak egy nagy alkalmazásba (ez a megközelítés egyébként is rengeteg előnnyel jár, mint pl. az egymástól független verziókezelés, stb).

Kliens és szerver oldali kódok az RPC hívások miatti duplikálása (ami sajnos mostanában elég bevett szokás), egy hibás koncepció. Rengeteg fejlesztő duplikálja a DAO kódokat (pl. egy tábla leíró osztály), hogy a gwt számára a böngészőbe át tudja adni a benne lévő adatot. Erre nincs szükség. Amikor a gwt fordít, akkor a gwt fordító fordít, amiből javascript lesz. Amikor a java fordít abból pedig szerver oldali java class fájlok. A két folyamat eltéréséből adódik, hogy megtehető az, hogy a gwt fordítás alatt az ember picit más class-okat használ fel, mint a java fordítás alatt.
Egy életből vett példa, hogy érthető legyen:

Tegyük fel, hibernate-t használunk, és csinálunk egy partner osztályt:

@Entity
@Table(name = "Partner")
public class Partner {

@Id
@GeneratedValue
@Column(name = "PARTNER_ID")
public long getId() {
return this.id;
}



Ha ezt gwt oldalon el szeretnénk érni két általános dolgot kell tennünk:
– levinni a kódot a kliens oldalra
– implementálni az IsSerializable típust

A második dolog viszonylag egyszerű, ellenben amikor a kliens oldalra mozgatjuk az osztályt, akkor a gwt fordító kedvesen figyelmeztet, hogy kliens oldalon nem lehet szerver oldali komponenseket használni (mint a hibernate notáció).

Persze azért mondja ezt, mert nem tudja, hogy mi ezeket a kódokat kliens oldalon nem is akarjuk használni. A megoldás kézenfekvő, és egyszerű. A hibernate forrásából ki kell szedni azokat a fájlokat amiket kliens oldalon is használunk. A forrásban használt függvényeket meghagyuk, de az implementációs részt töröljük. Fordítunk belőlle egy olyan jar-t amiben benne van a forrás is, és a fordított funkció nélküli class fájlok, megmondjuk a gwt fordítónak, hogy tessék ezt használni.

A kód lefordul, a javascript a hibernate notációval ellátott, de funkcióval nem rendelkező osztályokat használja, ellenben amikor ez az adat felkerül szerver oldalra, ott már a hibernate funkcionalitás is elérhetővé vállik, nincs szükség az osztályok duplikálására.

Ugyanez az elv használható a validációk során is, a jól megírt validációt végző keretrendszer minden esetben használható mind kliens mind szerver oldalon (optimális esetben notációkkal, pl. a hibernate által használt dao osztályban… ).

Részemről a geek hajlamok ezzel letudva a hétvégére 🙂