Java

Váltás java 8-ról 9-re vagy újabbra

Fórumok

Anélkül, hogy közvetlenül bármi közöm lenne a témához, pusztán külsős érdeklődőként: van itt olyan, aki akár üzemeltetőként, akár fejlesztőként már váltott vagy legalább megpróbált váltani 8-ról 9-re?
Mik a tapasztalatok?
Mivel lehet megelőzni a nagyobb szívásokat?
Esetleg jobb elfelejteni az egészet? Elvileg ugye a 8-as még sokáig támogatott, csak jövő évtől fizetős (Oracle JDK8 extended support 2025-ben ér véget, az OpenJDK8-ról meg nem találtam ilyen infót)

Érdekes, hogy a 9-es a jelek szerint nem kompatibilis felülről a 8-assal - ennek nem néztem utána, de ha 9-es JRE volt telepítve a gépemre, akkor pl. az IntelliJ IDEA és a PyCharm nem működtek. (el sem indultak) Mindkettő javaban íródott. Visszatérva az OpenJDK8-ra már működnek.

Lehet ezen még gyorsítani?

Fórumok

https://github.com/haa-zee/proc_speedtest/blob/master/Proc_Speed_Test.j…

A feladvány annyi volt, hogy a /proc/[0-9]*/stat fájlokból kiolvasson egyetlen sort minél gyorsabban, 10000 alkalommal.
A pythonos változata kb. 40s alatt futott, ennek az eredetije, tutorialokból összeollózva 55-65s, a jelenlegi, némi doksi olvasás után kb. 35s.
Az optimalizálás annyiból állt, hogy amit lehetett cikluson kívülre tettem és a "new BufferedReader( new FileReader(...) )" helyére "Files.newBufferedReader(...)" került.
Lehet ezen még gyorsítani?

Ingyenes kiegészítőhöz Java fejlesztőt keresünk

Fórumok

Sziasztok!

X-Plane 11 szimulátorhoz készülő, ingyenesen elérhető kiegészítőhöz keresnénk Java fejlesztőt. Azért gondoltam konkrétan a Java-ra, mert szeretnénk, ha a telepítő támogatná a Linux/OSX/Windows operációs rendszereket, lévén a szimulátor mindhárom platformon elérhető.

Pár mondatot rólunk, a fejlesztéseinkről.
Kb 1 éve alakult egy kisebb csapat, mindenki a saját szabadidejében fejlesztette hazánk területét lefedő kiegészítőt, név szerint a Hungary VFR csomagot.
Ez idő alatt a csapatban ketten maradtunk aktívak, bár majd 10 fővel indultunk, nagyon hamar lemorzsolódtunk.
Maga a kiegészítő 2 hete elérhető, igazából nem is ehhez keresnénk segítséget, bár a kiegészítőhöz is van jó pár telepítő ötletünk.
Jelen felkérésünket azért írom, mert nhadrian társam egy alapvetően fizetős géphez, konkrétan Carenado által gyártott Cessna 152 géphez készített egy úgynevezett reality expansion pack csomagot, melynek köszönhetően az említett gép repülési dinamikája sokkal inkább valósághű, mint a megvásárolható verziója. A gépet nagyon várja a repülőgép szimulátoros közösség, a szaksajtóban már több előzetes cikket lehoztak róla, nagyon-nagyon pozitív a fogadtatása.

Természetesen a kiadáshoz szükséges jogokat megkaptuk, épp emiatt lenne szükségünk egy telepítőre. A kiadó Carenado cég akkor engedi a kiadást, ha társam által készített gép kap egy telepítőt, mely ellenőrzi, hogy az eredeti, tehát Carenado-tól vásárolt gép adott a felhasználónál, illetve a telepítési eljárás úgy néz ki, hogy a meglévő gép telepítését másolja át egy új könyvtárba és abba másolja/felülírja az új fájlokat, a telepítőből telepítés nélkül ne lehessen kinyerni az adatfájlokat.
Az elkészült gép nem csak dinamikájában kapott változást, számtalan része újra lett modellezve, pbr, nml textúrákat kapott, igazából az X-Plane 10 verzió teljes mértékben X-Plane 11 kompatibilis lett, a 11-es verzióval érkező új lehetőségek kihasználásával.
Igazából nagyon megtisztelő, hogy Adrián társam engedélyt kapott a kiadásra, Carenado tudtunkkal még soha senkinek sem adott jogot a módosított gépeik kiadására!

Az eddigi, már kiadott kiegészítőink Creative Common licenceléssel kerültek kiadásra, jelen repülőgép kiadás is ingyenesen lenne elérhető (de az már nyilván nem CC alatt).

Természetesen sok egyéb dologban tudtok segíteni - már akinek van kedve :) -, nem csak telepítő készítésében.
Az alábbi területeken tudtok segíteni:

  • 3d modellezés
  • lua scriptek írása
  • sok egyéb, ami most nem jut eszembe :)

Mivel mi is ingyenesen készítjük a kiegészítőket, pénzt nem tudunk felajánlani. Ha valaki aktív tag lenne, annak viszont szinte garantálni tudjuk, hogy repterekre járhat velünk, nagy valós szimulátorokon, esetleg valós gépeken is repülhet. De ez persze nem ígéret, csak azon lehetőségek közül pár, amit mi is kapunk.

ismertető a gépről, melyhez szeretnénk egy telepítőt

ismertető a már kiadott kiegészítőnkről

Köszönjük, hogy végig olvastátok! :)
Aki esetleg kedvet érezne, az vagy itt jelentkezzen, vagy a hungaryvfr7@gmail.com email címen.
Előre is köszönjük!

u.i.: nem vagyok programozó, de nekem a Java ugrott be elsőre, ha esetleg nem azt javasolnátok, szívesen fogadjuk egyéb erre vonatkozó ötleteiteket is! :)

log4j2 log állományok olvasásához API

Fórumok

Sziasztok!

Létezik valami API mivel lehetőség van a log4j2 log állományait olvasni?
Jó lenne ha a log4j2 konfig állományát fel tudná olvasni és és az alapján tudná kezelni a gördülő, tömörített logokat ami más könyvtárba van elhelyezve:

GlassFish alatt logolok vele.


../domain1/logs/
               |-2018-03
                       |-error_2018-03-01-1.log.gz
                       |-error_2018-03-01-2.log.gz
                       |-error_2018-03-02-1.log.gz
               |-2018-04
                       |-error_2018-04-01-1.log.gz
               |-error.log

Tehát erre kellene nekem valami api amivel ezeket tudom olvasni viszonylag egyszerűen, amit be tudok építeni az alkalmazásba hogy ott is meg lehessen nézni a logokat, és lehessen szűrni benne.

Reprodukalhatatlan(?) hiba Spring Boot app-ban

Fórumok

Adott egy listener microservice, gyakorlatilag ket halozati zona kozt proxyzik. Spring Boot app, egy controller, ket interceptor a ki-, es bemeno oldalon, meg egy service osztaly, hogy megse mar a contollerben legyen minden.

Tok jo, meg minden, Postman requestekkel developer gepen megy frankon. Kitesszuk dev-re, megy frankon. Staging, postmannel megy, eles adattal, nem megy... Hosszas kinlodas utan kideritettuk, hogy a bejovo requestet nem feltetlenul pontosan irja le a dokumentacio, szoval gyorsan hozzaigazitottuk a kodot. Developer gepen, dev serveren Postmannel tokeletes. Staging NullPointerezik.

Meg hosszasabb szenvedes utan (mivel staginghez JMX mar nem jar) kiderul, hogy a controller nem kapja meg az adatot, a request object nullokat tartalmaz. Fogalmunk sincs mi lehet, sok-sok google, trial and error, szenvedes es szivas.

1-2 nap megint eltellik, mar ott jarunk, hogy az interceptorban meg megvan az adat meg stagingen is, viszont a controllerben mar nincs. Szoval azt, hogy az nginx nyelne le, vagy a Tomcat dobna el a POST body-t, azt sikeresen kizartuk. Kizartuk azt is, hogy a HttpServletRequest inputStream-jet piszkalnank, amivel esetleg consumed allapotba kerulne, ezaltal olvashatatlalanna valva.

Kiderult, hogy a Java verzio nagyban kulonbozott a harom rendszeren, Fejlesztoi gep Java 8, dev server Java 8, staging Java 7. Hogy honnan szedte ezt ossze a Puppet, fogalmam sincs (infrastukturas sracok is csak neztek, hiszen amit irtak, az Java 8-at tartalmazott). Ezt gyorsan javitottuk, hatha a sevlet API valtozott valahogy, nagyjabol hasonlo Java verziora hozva: stage meg mindig nem megy.

Oke, Tomcat verzio. Mind harom rendszeren kicsit kulonbozo van. Stage-t hozzaigazitjuk a dev serverhez. Semmi. Uj kollega szuz rendszeren: szinten megy.

Lassan csak az OS kulonbozo, macOS fejlesztoi gepeken megy, CentOS 6.9(?) a dev serveren, CentOS 7.4(?) stagingen. Osszerakunk egy Docker image-t CentOS 7 image-dzsel, ugyanazzal a Java, Tomcat verzioval, Es reprodukaltuk!

Csak vicceltem, meg mindig rendesen mukodik az app.

Es lassan kifogytam az otletekbol. Fogalmam sincs, hogy mi okozhatja, hogy ugyanaz a war file a fejlesztoi gepeken, a docker containerben, a dev serveren megy, stagingen nem.

Kozben van egy PoC workaround megoldasunk egy Tomcat filterrel, ami elteszi session valtozoba az adatot, amit a controllerben kiolvasunk, de azert na, ez nem az igazi...

X-akta?

GlassFish EAR telepítése domain-be parancssorból

Fórumok

Sziasztok!

Van 2 db domain-em létrehozva GF alatt. domain1 és domain2 néven.
A domain2-be is szeretném deployálni azt az alkalmazást ami fut az domain1-ben. A webes admin konzolról szépen települ, úgy működik ahogy kell de én parancssorból szeretném telepíteni:

asadmin deploy --target domain2 xyz.ear
remote failure: Unable to find a valid target with name domain2 
Command deploy failed.

Ott viszont nem települ.
Mi lehet a gond?

minecraft szerver performance problémák

Fórumok

Sziasztok!

Egy ideje nézegetem a játékot és keresem a lehetőségét, hogy valahogy az oktatásban felhasználjam, viszont a szerverrel kapcsolatban eddig nem volt tapasztalatom, anélkül meg nem vágnék bele. Pár hónapja közelebbről látok survival szervert és az azzal kapcsolatos üzemeltetési problémákat. Adott egy 30+ fős nagyobb kiterjedésű vanilla világ, amin elvétve vannak bonyolult és kevéssé bonyolult szerkezetek (nagyjából remek minta egy osztály méretű szerverhez), viszont folyamatos laggolások és nem megfelelő futás tapasztalható úgy, hogy a vasat lényegében nem terheli (nincs IO, nincs mérhető processzor használat). Az üzemeltetővel közösen próbálunk rájönni a nyitjára és eddig arra jutottunk, hogy a program van ilyen remek mód megírva (nem MMVE felhasználásra lett tervezve). Ha valami megoldást akar az ember fia, akkor patkolja szénné, használjon alternatív szervereket (spigot).
Egy kutatást találtam [1] ami pár éve azzal foglalkozik, hogy az eredeti szerver és kliens program minimális módosításával próbálja MMVE kompatibilissé tenni az összefüggő világ felosztásával és a partíciók külön szerverre költöztetésével (ami egyébként önmagában egy érdekes felvetés és kihívás), úgy, hogy az még mindig egy összefüggő egységet alkossanak [1].
Ezt leszámítva egy rakás világmegváltó lelkes kezdeményezésbe és agyonhackolásba futottam, viszont azért csak látni olyan világokat ahol önmagában hatalmas szerkezeteket építenek mindennemű módosítás nélkül.
- A probléma megközelíthető-e a java nyelv felől? Van-e olyan processzor család vagy környezet ahol a javában írt programok jobb teljesítménnyel futnak? (azzal azért tisztában vagyok, ha valamit eleve szarul írnak meg, akkor azon a világ összes csodája se segít)
- Javás programoknál van-e olyan eszköz amivel jobban megismerhető a program működése és az esetleges bottleneck
(htop, top, iotop és társaival elemeztük)?

A mojang (aka microsoft) megoldotta a problémát (bérelhető szerver), de ők könnyen vannak és azért ott is van egy 10 fős felső korlát.
Lehet az a megoldás, hogy mögé teszünk egy legújabb xeon procikkal megtömött vasat 100G rammal és szerver ssdvel, csak hiszem ha látom. Azureban futtattunk tesztet ott is meghalt.
Jó volna szakkörön használni a programot, de ilyen tapasztalatok mellett inkább nem.

[1] https://www.insight-centre.org/sites/default/files/publications/transfo…
[2] https://www.youtube.com/watch?v=yBcdm20Ounc

AbevJava Java probléma?

Fórumok

Fogom az AbevJavát, ma frissített.

Kitöltöm a nyomtatványokat. Megjelölöm beküldésre. Titkosítja. Amikor azt mondanám, hogy nyomtatvány közvetlen beküldése ügyfélkapun keresztül, akkor a GUI-n egy kis várakozás jelzés után nem történik semmi, a konzolba meg kiköp egy hibajelzést:


KAU_LOG : nincs mentett bejelentkezesi adat, bejelentkezunk
java.lang.NoClassDefFoundError: javafx/embed/swing/JFXPanel
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at hu.piller.enykp.alogic.uploader.UploaderFactory._create(Unknown Source)
        at hu.piller.enykp.alogic.uploader.UploaderFactory.createUploaderForUgyfelkapuHivatalikapu(Unknown Source)
        at hu.piller.enykp.alogic.filepanels.mohu.MohuTools.callWS(Unknown Source)
        at hu.piller.enykp.alogic.ebev.Send2Mohu.send(Unknown Source)
        at hu.piller.enykp.alogic.ebev.Send2Mohu$1.doInBackground(Unknown Source)
        at javax.swing.SwingWorker$1.call(SwingWorker.java:295)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at javax.swing.SwingWorker.run(SwingWorker.java:334)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: javafx.embed.swing.JFXPanel
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 23 more

Ha jól látom, valami JFXPanel osztályt nem talál.

Vajon az én környezetemben van a hiba, valamit telepítenem / frissítenem kéne, hogy legyen ez az osztály? Vagy esetleg az AbevJAVA hibás, és várjak, amíg majd kijavítják?

Debian GNU/Linux stretch.
A java ebből a csomagból származik: openjdk-8-jre-headless:amd64

egymáshoz hasonló stringek keresése

Fórumok

Adott egy cég több telephellyel. Valami régi dbase alapú alkalmazást használnak telephelyenként. Természetesen telephelyenként külön adatbázissal, viszont ugyan azzal a raktárkészlettel. De rengeteg terméket nem ugyan olyan néven vittek fel. Hasonló, de mégis más. Az ember meg tudja állapítani, hogy az ugyan az a termék de mivel 60 ezer tételről van szó kicsit macerás lenne kézzel összehasonlítani őket, viszont migrálni kellene az adatokat a mi rendszerünkbe.

pl.:
B 80186 KARIFA CH.SWI.LUX 160CM
B 80186 KARÁCSONYFA CH.SWIERK LUX MCHS01/160

vagy

Jégoldó spray
Jégoldó-spray

esetleg sima elgépelés

Kulcstartó
Kulctarto

Van esetleg erre valami lib ami megpróbálja eldönteni, hogy A és B string x valószínűséggel ugyan az e?