- Mr. Y: Motoros sztorik #06
- Luck Dragon: Asszociációs játék. :)
- Elektromos rásegítésű kerékpárok
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Magga: PLEX: multimédia az egész lakásban
- sziku69: Fűzzük össze a szavakat :)
- bambano: Bambanő háza tája
- vrob: Az IBM PC és a játékok a 80-as években
- Tomasz72: Ventilátor upgrade
- Parci: Milyen mosógépet vegyek?
Új hozzászólás Aktív témák
-
muszurkefal
aktív tag
Halihó!
Most kezdtem foglalkozni ezzel a nyelvvel és a következő problémára keresek választ:
Adott egy float, amiből készítek egy formázott Stringet: a memóriában tárolt pontos értékét mutatja.
A float-ot átkonvertálom Stringgé, majd addig konkatenálok hozzá nullákat, amíg a formázott String és ennek a hossza meg nem egyezik.
Ezután összehasonlítom a 2 Stringet. Ekkor, ha a memóriában pontosan tárolható értéket adtam meg, elvileg egyenlőséget kellene mutatnia. De sajnos nem így van.Itt látható a forráskód és az eredmény, ha különböznek az értékek.
Itt pedig a problémám. A Stringet látszólag azonosak.
Tud valaki segíteni nekem?
-
Lortech
addikt
válasz
XP NINJA #10298 üzenetére
Illetve ez így gép specifikus lesz?
Ez így java runtime specifikus lesz, a cacerts ahhoz tartozik, ez egy sima fájl a lib/security mappában.
Nálam letölti a fájlt a FileUtils.copyURLToFile. openjdk-8/11 cacertsben benne van a netlock ca certje. Nincs előttem windows éppen, oracle jre ezek szerint nem tartalmazza. Tuti ugyanazzal a java runtime-mal futtatod a programodat, mint aminek a cacertsébe beimportáltad a certet? -
XP NINJA
őstag
válasz
Drizzt #10292 üzenetére
Az első megoldással próbálkoztam, hozzá is adtam cmd-ből a bkk.hu cert-et, de ugyanaz a hiba. Pedig leelenőrizve is hozzáadta. Van más amit még meg kell csinálni hogy észre vegye? Illetve ez így gép specifikus lesz? Vagy valahogy meg lehet oldani hogy máshol is meglegyen ez a cert?
-
-
batagy
őstag
válasz
disy68 #10240 üzenetére
Szia!
Igen, azon a linken valóban jól összeszedték a Java licensz tudnivalókat.
De nálunk a cégben (multi) továbbra se tudtam megerősítést kapni rá, hogy pontosan melyik Java verzió az utolsó ingyenes , az üzleti használatra.
8-as Javaból a Java 8 update 201/202 az utolsó ingyenes, mert ez még 2019 januárban (jan 15) jelent meg?
-
updog
őstag
Sziasztok!
JSF-ből szeretnék egy galériát, ami egy külső fix helyen lévő path-ból olvassa fel a képeket.
A Tomcat server.xml-ébe beraktam ezt a sort:
<Context docBase="/kepek/helye" path="/static/img" />
Ez eddig rendben is van, ha graphicImage tag-be kézzel beleteszem egy kép fájlnevét, akkor megjelenik egy kép:
<h:graphicImage value="/static/img/sas.jpg"></h:graphicImage>
Viszont, ugye a galériát úgy szeretném, hogy az összes fájlnevet felolvasom egy listába egy beanben, és nyilván dinamikusan generálnám a graphicImage-ket.
Ahhoz hogy felolvassam a fájllistát, valahogy meg kéne a Java kódban találnom a "/static/img" valódi helyét, de tökre nem triviális, ahogy az sem, hogy mit keressek googleban. Nyilván favágó módszer hogy Javaba is szúrok egy ilyet:
File imgFolder = new File("/kepek/helye");
images = new ArrayList<>(Arrays.asList(imgFolder.list()));Ebből némi fájlnév hákolással gondolom kijöhet a dolog. Csak ez nem tűnik túl elegánsnak
, másrészt egyelőre ez sem működik, attól hogy sikerült összekalapálnom hogy működjönHa valaki tud segíteni, megköszönöm.
-
Drizzt
nagyúr
Most hétvégi Java önképzésem részeként ezt a videot(GoF patterns in functional light) néztem végig. Szerintem elég tanulságos volt, úgyhogy aki még nem látta, vagy nem játszadozott ebben a témakörben, annak szerintem jó móka lehet. Ha más nem, az olasz akcentus szokására is jó.
-
Drizzt
nagyúr
válasz
XP NINJA #10291 üzenetére
Akkor vagy szed le egy böngésző segítségével a weboldal SSL certjét és importáld be keytool-lal a cacerts-be, vagy kapcsold ki az SSL tanúsítvány ellenőrzést. Ez a link meg azt mutatja meg, hogy hogyan tudod a saját SSL validatort összeilleszteni a FileUtils adott függvényével.
A cacerts-es importra elsőre nekem ez a kis bash utility tetszik: [link]. Persze ez Windowson nem fog menni, hacsak nincs minGw-d(esetleg git bash/ git for windows, aminek szintén a része).
-
XP NINJA
őstag
Próbáltam már, de így meg az SSL-el van gondja
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
-
XP NINJA
őstag
Egy fájlt próbálok letölteni linkről, de mindig egyből completed, és csak 1kb-os lesz. A kód működik, mert pl a notepad linkjével megy.
FileUtils.copyURLToFile(URL("http://www.bkk.hu/gtfs/budapest_gtfs.zip"), File("bkk"))
FileUtils.copyURLToFile(URL("https://notepad-plus-plus.org/repository/7.x/7.6.3/npp.7.6.3.Installer.exe"), File("bkk"))Csak egy dolgot vettem észre, hogy a bkk linkre egyből tölti le a fájlt, nem dobja fel hogy válasszam ki hova töltse le. Más linkek viszont igen, azok pedig működnek.
-
Amartus
senior tag
Nem tudja valaki véletlenül, hogy a Hibernate tools most már nem része a JBoss Tools-nak? Próbáltam telepíteni marketből, mint régen, de install-nál nincs benne.
-
XP NINJA
őstag
válasz
Aethelstone #10284 üzenetére
Több txt-ből lenne több tábla, és lennének relációk
-
XP NINJA
őstag
Sziasztok!
GTFS adatokat szeretnék feldolgozni, első lépésként szeretnék mindent adatbázisban eltárolni, ami txt-ben érkezik, leegyszerűsítve így néz ki:
agency_id,route_id,route_short_name
BKK,0050,5
BKK,0070,7Az SQLiteStudio-t próbálgattam, kézzel szépen működik, importálja és fel is darabolja az adatokat, viszont az alkalmazásnak ezt mondjuk minden nap meg kellene csinálnia, hátha frissülnek az adatok. Hogy lehetne ezt kódból megvalósítani? Vagy mit javasoltok, mit használjak? A legnagyobb txt 9 millió soros, de szerintem relációs adatbázisra lenne szükség.
-
M_AND_Ms
veterán
Ha javaból, vagy mysqlből eléred, akkor elsőnek nyers adatként áthúzod a dbf tartalmát az adatbázisodba, aztán ott már könnyedén tudsz belőle dolgozni.
Anno 10 éve én is így dolgoztam be dbf-t, de az eszközre már nem emlékszem (azt hiszem, mivel Ms-sql volt az adatbázis, annak a pont ilyen feladatokra való Dts eszközével dolgoztam) -
orc88
őstag
Van egy programom, amivel adatbázist kezelek SQLite-tal. Ezt azzal szeretném kiegészíteni, hogy egy másik adatbázis adatait hozzáfűzöm. A probléma az, hogy a másik adatbázis egy régi .dbf (dBase III / IV). Java 8-tól kezdve ahogy olvastam ezeket nem nagyon lehet kezelni JDBC-vel. A különféle libek amiket találtam és kezelik a .dbf-t mind fizetősek, amik ingyenesek azokkal viszont nem tudok SQL lekérdezést használni. Mire lenne érdemes alakítani ezeket a dbf fileokat, hogy utána mindent egy helyi adatbázisban tároljak és egyszerűen tudjak SQL lekérdezéseket végezni?
Ha szükséges az SQLite-ot is cserélhetem másra ha van javaslat.
-
macssessz
tag
Próbáltam Cromeval, Edgevel, IEvel, Operával, és Firefoxal is. A régi portable firefoxomban nincs Java és nem jelent meg semmi az oldalból. Ezért gondoltam, hogy Javás az oldal. Az indokolatlan sortöréseknél sokszor nagy részek maradnak ki a könyvből. Az egy dolog, hogy a free is fizetős, még ki is fizetném, de mint írtam nincs semmilyen kártyám így ez nem megy. Ezért keresek megoldást bárhogy máshogy.
-
szbalogh
addikt
Köszönöm szépen mindenkinek a választ!
Szerintem az Xp-re nincs is úgy külön Java telepítve. A műszervezérlő alkalmazás telepít magának mindent.(#10262) M_AND_Ms
Pont ezt olvasgattam mielőtt felvetettem a kérdést. Ahogy írtam, nincs külön Java telepítve, így nem is tudom ezeket a parancsokat XP, cmd sorba beírni, nem ismeri fel a parancsot. Valahol máshol kell a Java-hoz jutnom. -
disy68
aktív tag
válasz
macssessz #10269 üzenetére
Egyrészt ez nem legál, másrészt semmi köze a java-hoz.
@(#10258) szbalogh
Nekem úgy tűnik, hogy a UI kirajzolása közben történik valami probléma, ami a kód ismerete nélkül elég sokminden lehet. Nem tudom melyik java verzióval fut jelenleg az alkalmazás, de szerintem próbáljátok meg régebbi java verzióval futtatni. -
M_AND_Ms
veterán
válasz
Aethelstone #10266 üzenetére
Olyasmi lehet, hogy működik, használják, miközben a kód kiüríti a Vector-t, ami utána a kód másik része olvasna belőle és hibát dob - tehát, én azt mondom, ez programozói hiba: vagy nem kéne üríteni a Vectort, vagy az olvasáskor kéne figyelni, mert lehet jogosan üres, csak éppen kezelni kéne azt.
-
Aethelstone
addikt
válasz
sztanozs #10265 üzenetére
Az a stacktrace-ből látszik, hogy a Vector firstElement() metódusa hányja el magát. Ami ugye a 0-ás indexű elemet venné ki. Ez nekem azt jelenti, hogy a Vector üres. Olyan szerintem nincs, hogy a GC kiürít egy Vector-t. Viszont a másik gondolatod sanszosabb. Lehet, hogy valaminek be kellene töltődnie, ami nem történik meg és ettől üres. Jó lenne látni a full stacket.
-
sztanozs
veterán
válasz
Aethelstone #10264 üzenetére
Valóban - viszont ha hosszabb idő után jön elő, akkor valamelyik függvényben van valahol egy rész, ami eldob valami erőforrást (vagy valamiért a kukába kerül és előbb-utóbb a GC kiüríti). Illetve az is lehet, hogy valami rosszul mentett/betöltött vagy inkompatibilis resource fájl a gond (bár az alapján amit a kolléga leírt, nem tűnik konzekvensen reprodukálhatónak a probléma).
-
M_AND_Ms
veterán
válasz
szbalogh #10258 üzenetére
Én a program fejlesztőjével, forgalmazójával venném fel a kapcsolatot: a mellékelt hiba annyi, hogy a program egy Vectorból (laikusan mondjuk listának) akarja elővenni az első elemet, de az a Vector (lista) üres, ezért mondja a hibaüzenet: NoSuchElementException.
Oka lehet hibás működés (valószínű előzőleg valami, valahol rakna elemeket ebbe a listába, de az nem történik meg), ami nincs rendesen kezelve, vagy egyszerűen programozó hiba. -
szbalogh
addikt
Sziasztok!
Segítséget kérek de előre szólok, hogy nem értek a programozáshoz
Munkahelyemen egy műszert kezelő program Java alapú program kezel. Egy ideig szépen teszi a dolgát, aztán lassacskán kezd hibákat feldobálni. Pl. meg akarok nyitni egy új ablakot, ami a műszeren aktivál valami funkciót egy feladathoz és feldob egy "Java lang 0 pointer exception" hibát.
Sok féle hiba van és teljesen véletlenszerűen jönnek elő, nem lárok semmi trendet (5 éve használom a rendszert). Jelenleg XP alatt fut a program, de előtte Linux rendszeren is ugyan ezek a hibák voltak.
A program teljes újraindításával általában megszűnnek a hibák, aztán megint jönnek elő sorban.
Kicsit utánaolvasgattam és felmerült egy ötlet, miszerint a java memóriát (heap) lehetne növelni.
Ezt hogyan kell? A parancsokat megtaláltam a neten de hova kell írni? Windows cmd ablakban nem ismeri fel az utasítást.
Mennyi memóriát adhatok neki ha sikerül? Ez a fizikai memóriából lesz levonva, vagy ezt majd a Windows intézi? 1,2Gb ram van a gépbenVégül mellékelek egy képet, amin a program indításakor megnyíló ablak látható, hátha segít. Az a sok üzenet sor látható ha sokáig használjuk a programot. De ezek is változóak, ez csak egy példa amit még régen mentettem.
Előre is köszönöm a segítséget!
-
macssessz
tag
Üdv Guruk!
Tényleg nem tud segíteni senki, hogy egy Javas oldalról hogy lehet lemásolni szöveget?Egy oldalon találtam párat régi kedves könyveim közül és nem tudom leszedni őket. Bár az oldalon olvasható, látható a szöveg, Ctrl+A, Ctrl+c - Ctrl+v sem tudja leszedni csak az első pár bekezdést, utána kimaradoznak részek. Azért írok ide mert valami javás varázslás van. Egy régi portable Firefoxomban amivel szintén megpróbáltam letölteni, nincs java támogatás, avval meg sem jelenik a könyv szövege. Ha sikerülne leszedni csinálhatnék hangoskönyvet és meghallgathatnám. Bár a könyvek megvannak, nem jutok az olvasáshoz. Problémás oldal: [link]
Hátha tudtok segíteni?
Köszi előre is. -
orc88
őstag
válasz
Aethelstone #10251 üzenetére
És tényleg működik nélküle is
Hétvégén foglalkoztam vele, csak mivel napi használatban van az olvasó így nem tudták ideadni, de most kipróbáltam és príma.
Köszi!
RexpecT: Igen ezeket megtaláltam, szívtam is vele pár órát mert már gyakorlatilag a linkek fele nem élt, de így igazából már nem is nagyon van rá szükségem, mindenesetre köszönöm!
-
RexpecT
addikt
Ahogy nézem ezt az SDK-t kell leszedni hozzá, a windowsos verzióban benne van az általad említett driver is.
Itt a developer guide hozzá. -
Aethelstone
addikt
válasz
Aethelstone #10251 üzenetére
Ha meg input mező nincs, akkor az alkalmazásod úgy veszi, mintha sorban megnyomtad volna azt a tizenakárhány számot, tehát valami keypress/down listenerrel kell feldolgoznod. Ezek mindenféle api nélküli működések. Aztán ha találsz valamit, akkor abban minden lehet, callbacktól elkezdve...
-
orc88
őstag
Sziasztok!
Adott egy vonalkód olvasó. Hogyan tudnám ennek az inputjait kezelni egy java programmal? Az oldalukon a JavaPOS-t említik de ahhoz alig találok valamit a neten
Valaki tudna segíteni, hogy merre induljak el? -
axioma
veterán
Meg egy dolog jutott eszembe. A RealMatrix is ugy van megcsinalva, hogy vagy egyik vagy masik az implementacioja (Row vagy Block tipusu), es vannak olyan metodusok, amik tulkepp csak azt "lopjak" ki lathatatlanul, hogy melyik tipus van alatta (talan a create a double[][]-bol is ilyen). Bar a RealMatrix-nal ugye az elso dontes az a merete alapjan megszuletik, aztan lehet szivni ha valamiert olyan kodot hozol letre ahol keveredik... nem futottam bele de eleg gyanus nekem az a megoldas.
Itt ennel tisztabb is lenne, a kod egyetlen resze valtozik amikor modositanank a megvalositast, ez azert nem varhato a kiserleteken kivul gyakran, siman egyutt lehet elni vele. Szerencsere arrol meg nem en dontottem, hogy generic-es az interface- en csak abbol fozok amit kaptam.
-
axioma
veterán
válasz
Drizzt #10245 üzenetére
Itt most azert kell a generic, mert ahogy latszik is, pl. az add az direkt csak a sajat underlying-jait tudja osszeadni. Tehat egy kod nem keverheti az underlying-okat, mert pont az a lenyeg hogy ne legyen az egesz lehuzva a get(x,y) szintjere, hanem a meglevo megvalositas "teljes erejet" hasznalja ki. Senki nem is fog es nem is akar olyat irni, hogy nd4j matrixot adunk az apache-oshoz.
A cel nem az, hogy az interface elrejtse a megvalositast, csak hogy lehessen idovel cserelni alatta. De kozben nem fogjuk kidobni az nd4j sebesseget... [idokozben atment vegre a 3rd party engedelyezesen], meg az esetleges kesobbi GPU-val gyorsitast. Ugy kell elkepzelni, hogy a program egy futasa alatt a megvalositasok kozul mindig csak egy letezik, jojjon az barhonnan, es mint ProjMatrix tipusu valtozok lesznek kezelve [igen, van ProjMatrixUtils is create-tel... az interface amugy nekem kivulrol jon mint input, nem mondom hogy nem szolhatok bele - bar amikor probaltam, hogy ha csak 2dim matrixaink vannak, talan nem kene-e az interface-t se altalanos n-dim-nek csinalni, foleg ha a ket "gyari" megvalositas egyike alapbol se kepes ra... de siman lepattantam], egy teljes refactort tuti nem tudnek atvinni. A ...Utils-t bovithetem, masikat nemigen. Es en kell az implementaciokat csinaljam, a flatmatrix csak azert merult fel, mert az apache-t akartam "legyorsulni" (az nd4j-t mar vszinu nem fog sikerulni, bar majd meglatjuk, mivel naponta es hosszan futo job-rol van szo, csak az azon mert sebesseg szamit, nem az "altalanos"). -
Drizzt
nagyúr
válasz
axioma #10244 üzenetére
Alapvetően probléma nincsen vele, de én inkább csinálnék egy másik mátrix típust(Matrix), ami teljesen a ProjMatrix implementációitól. És akkor nem lenne generikus a ProjMatrix interface, a getUnderlying helyett meg lenne egy Matrix getMatrix. És az egyes implementációknak lenne az az implementation detail-je, hogy a belső saját mátrixából hogyan fog mátrixot csinálni, factory-kal, különböző bemenő adatok alapján. Pl.: lenne egy ilyen a Matrix createMatrix(double[][] mtx), illetve valami más értelmes adat. A konstruálás paramétereit mindig az vezényelje, hogy milyen adataid lesznek ahol felhasználod ezt az interface-et.
Működni tökéletesen működni fog amit csináltál, viszont az nem fog nekem tetszeni, hogy a felhasználó kódnak végül mindenképpen tudnia kell a konkrét implementáló osztályokról, mert van olyan method az interface-ben, ami implementáció specifikus értéket vár/ad vissza. Így nem tudod pl.: ServiceLoaderrel betölteni az implementációkat, hanem minden új implementációnál újra kell majd fordítanod a kódot. Ami nem feltétlenül probléma, de egy megfontolandó dolog.
Ami sérül ebben az interface-ben, az a SOLID design elvekben a "dependency inversion principle". Nem jó practice, ha az interface felhasználója bármilyen specifikus dolgot kell tudjon az implementációból(esetedben az M típust).
-
axioma
veterán
válasz
axioma #10243 üzenetére
Na valahogy igy nez ki:
public interface ProjMatrix<M> {
public ProjMatrix(double[][] mtx);
public ProjMatrix(M mtx);
public M getUnderlying();
public ProjMatrix add(M mtx);
..
}
Es van harom megvalositas, ebbol ketto ketretegu, az Nd4j-s hasonlo ehhez:public class ApacheMatrix implements ProjMatrix<RealMatrix> {
private final RealMatrix underlying;
public ApacheMatrix(double[][] mtx){... underlying=new RealMatrix(mtx); ...}
public ApacheMatrix(RealMatrix mtx){ underlying=mtx; }
public RealMatrix getUnderlying() { return underlying; }
public ApacheMatrix add(RealMatrix other) { return new ApacheMatrix(underlying.add(other.getUnderlying());}
...Es en csinalnek egy ilyet:
public class FlatMatrix implements ProjMatrix<FlatMatrix> {
private final double[] data;
private final dataLen;
... // segedvaltozok
public FlatMatrix(double[][] mtx) { ....dataLen=...; data=new double[dataLen]; ...}
public FlatMatrix getUnderlying() { return this;}
public FlatMatrix add(FlatMatrix other) { ... }
...Persze ebben az esetben az underlying-gal nem lehet "szepen" konstrualni, az tulkepp egy masolas lesz, de ennek nem lenne jelentosege.
Csak fejbol kb. a lenyeg, lehet benne egyeb hiba, nem az szamit, hanem a konstrukcio osszessegeben mehet-e igy minden gond nelkul.Kosz!
-
axioma
veterán
válasz
Aethelstone #10242 üzenetére
Kosz. Kodot max. geprol morickazok, ceges kod sehogy nem hozhato ki, barmilyen artatlan... [volt h munkatars a ceg altal fizetett kezdo, szamara uj prog.nyelv kulsos kurzusara nem tudta a 'vizsgakodot' elkuldeni...]
-
axioma
veterán
Az mennyire antipattern, hogy van egy generic-es intergace-em, es csinalok egy olyan osztalyt, ami megvalositja a sajat maga 'feletti' interface-t? Az interface kivulrol adott, a kerdes hogy erre csinaljak- ket szintet osztalyban is - nem tennem, csak igy meg furan hat, vagy csak tul sokaig voltam oldschool, foleg 10+ eves kodok kozott. [Me'g mindig a matrixmuveletek megvalositasa tema, bar 90% hogy ez nem lesz prod-ban soha... de ha mar csinalom, csunya se legyen.]
-
-
batagy
őstag
Sziasztok!
Most nem teljesen értem az új Oracle Java licenszelést, 2019-től.
Az világos, hogy az 1.8-as Java üzleti használatra 2019-tól fizetőssé válik.
De melyik Java?
A JRE is fizetős lesz, vagy csak a JDK? -
macssessz
tag
Üdv Guruk!
Ha rossz helyre írok bocs, nem találtam jobbat.
Egy oldalon találtam párat régi kedves könyveim közül és nem tudom leszedni őket. Bár az oldalon olvasható, látható a szöveg, Ctrl+c - Ctrl+v sem tudja leszedni csak az első pár bekezdést, utána kimaradoznak részek. Azért írok ide mert valami javás varázslás van. Egy régi portable Firefoxomban amivel szintén megpróbáltam letölteni, nincs java támogatás, avval meg sem jelenik a könyv szövege. Ha sikerülne leszedni csinálhatnék hangoskönyvet. Bár a könyv nyomtatva megvan, nem jutok az olvasáshoz. Problémás oldal: [link]Hátha tudtok segíteni?
Köszi előre is. -
MrSealRD
veterán
Helló!
Nem teljesen Java téma, de mivel Java-s projekt így gondoltam elférhet ide, de ha van jobb helye akkor átmegyek...Szóval adott egy projekt aminek a forrása Git verziókezelőben van tárolva. A buildre Jenkins haszálunk. Az elkészült build/release pedig nexusban tároljuk...
Az eredeti elképzelés szerint van a M(master) branch amit tisztán akarunk tartani. Ezért amikor van egy-egy nagyobb projekt ami több feladatot fog össze, arra a célra létrejön mindig egy xxxPM nevű branch. Ebből nyit a továbbiakban mindenki új branchet a saját feladatára. Amikor kész akkor szintén az xxxPM-be megy vissza a merge.
Van még egy U és egy UAT környezet tesztelésre. Alapvetően az az irány, hogy U-ra snapshot míg UAT-ra release verzió kerül ki.Több probléma is kialakult.
1. Jenkinsben 1 job egy adott branchre buildel. Alapból ez a master. De valamiért kitalálták, hogy az xxxPM branchből készülő buildeket ezentúl ne lokálisan készítsük, hanem Jenkinsben... Ezért létrehoztak neki egy külön jobot. Ilyen projektekből több is van, időnként párhuzamosan is, ezért a dedikált jenkins job szerintem nem jó ötlet. A gányolás melegágya az én meglátásom szerint. Nem lehet dinamikusan kezelni. Újabb projektél újabb job?! De meddig?! Ha vége akkor meg átállítjuk egy újra?!
2. Az előbbi problémából következett egy másik. Az M branch közben haladt előre, de az xxxPM nem lett frissítve a változásokkal... Ez már egy nagy hiba volt, tudom. De ettől függetlenül, most megjelent az igény, hogy az xxxPM-ből is legyen release. Nem azért mert ez valaha is élesedhet, hanem azért, hogy UAT-ra tudjanak tenni verziót a laikusoknak, hogy teszteljenek... Tudják, hogy ez nem fog élesedni mert még nincs kész, nincs olyan állapotban. Csak kizárólag a teszt miatt. Ráadásul még két tagot hozzá kell csapni a verziószámhoz, hogy az állapotot jelöljük, így létrejön egy kvázi párhuzamos valóság... Valahogy ezt sem érzem egy kifinomult megoldásnak.
Érdekelne, hogy mi a meglátásotok, illetve, hogyan történnek az ilyen folyamatok nálatok?
-
#68216320
törölt tag
-
#68216320
törölt tag
válasz
Szmeby #10232 üzenetére
Drizzt, bambano, Szmeby: Köszönöm szépen a válaszokat, kiegészítéseket, íránymutatást. Ha megengeditek csak azért, hogy pontosabban megértsem a mikor-mit-miért összefüggéseket, felvázolnék másik helyzetet, amire szintén keresnék optimális megoldást. Csak fantázia, mint az előző, de a tapasztalatot majd vinném egy real projectbe.
Legyen mondjuk egy ingatlanközvetítőnk ahol a kiindulópont egy abstract ingatlan class. (tulajdonos_id, ugyintezo_id, telepules_id, cim, ar, alapterulet)
Ebből származna le:
1. lakas class (szobaszam, felszobaszam)
2. haz class (szobaszam, telek meret, mellekepuletek_osszterulet, terasz, kozmuvesites)
3. irodaUzlethelyiseg class (helyisegek_szama, utcafrontrol_megozelitheto, kirakat)
Nem pontos, de a lényeg, hogy egy ős osztály és mondjuk 3 leszármazott osztály. Jelen esetben nagyon nem bővülhetne, talán még garázs és zártkert, de gondolom tényleg fix számú a lehetőség, ami ide sorolható.
Ami szükséges volna, az egyedi id, azaz, ha valaki azt mondja a 725-ös ingatlan adatait kéri, akkor abból egyértelmű legyen, hogy milyen/melyik ingatlan. Azaz esetünkben a 3 tábla osztozna egy id sequence-en.
Lenne mondjuk egy galéria tábla is, amiben a képfájlok url-jét/sorrendjét tárolnánk mondjuk webes megjelenítéshez. Ide tehát kellene, hogy kerüljön egy "ingatlan_id" majd a saját id mellé.
Ebben az esetben hogy nézne ki a táblaszerkezet? Teljesen megegyezne az object szerkezettel?
-
Szmeby
tag
válasz
#68216320 #10220 üzenetére
Nem igazán így néz ki. A sequence csak egy futósorszám. Tehát tényleg csak egy szám van benne... az éppen aktuális érték. Ha elkéred tőle az értéket, automatikusan növeli magát eggyel (vagy neked kell növelned kézzel... kinézem ezt a mysql-ből). Ha mindenképpen táblaként akarod elképzelni, akkor van egy oszlopa, neve mondjuk legyen value, és van egy sora, abban az érték pedig 6, mert mondjuk a 6 volt az utoljára kiosztott id.
Lásd az oldal alján.Szóval találkoztam már pár helyen ilyen megoldással... bár az oracle volt, nem mysql, de a concept ugyanaz, globálisan egyedi id. Nyilván nem kötelező minden táblán ezt használni, táblák egy csoportján is lehet, meg létrehozhatsz több sequence-t, más-más csoportoknak... ahogy a domain megköveteli.
Bár a hozzászólások alapján úgy látom, ebből 1 fő tábla lesz.
-
bambano
titán
válasz
#68216320 #10229 üzenetére
"Nem is várható bővülés": híres utolsó mondatok
a lekérdezés sebessége egyrészt nem számít akkor, amikor elméletben vizsgálsz egy logikai struktúra->tárolási struktúra leképezést, másrészt nem is tudhatod előre, mi a gyorsabb, harmadrészt oldja meg a hardver
szerintem a kód mindenféle részén folyton azt mókolni, hogy most melyik táblát kell joinolni, hova mit írsz, az nagyobb teher, mint berakni egy táblába, indexelni, a többit oldja meg az adatbáziskezelő meg a beszerzési osztály rambevásárló felelőse.
-
Drizzt
nagyúr
válasz
#68216320 #10229 üzenetére
Még egy aspektust akarok felvetni. Milyen táblákhoz kapcsolódik a termék még? Ha van olyan, ami termék ID-t használ, akkor innentől kezdve abban a táblában ha akarsz foreign key-t használni, akkor kénytelen leszel 3 különféle oszlopot felvenni. (Utóbbit mondjuk úgy is ki lehet küszöbölni, ha minden 1:1, 1:n kapcsolatot is kapcsolótáblával valósítasz meg, mintha n:n lenne, mert ilyenkor a foreign key a kapcsolótáblába kerül át.)
Másik dolog amit fontolj meg, hogy érdemes lehet Flywayt, vagy Liquibase-et használni, ami jelentősen meg tudja könnyíteni az életed, ha később mégis kell változtatni az adattáblák struktúráján, s ilyenkor a meglevő rendszerek update-elése automata kell, hogy legyen.
-
#68216320
törölt tag
válasz
bambano #10228 üzenetére
Fix számú, jelen esetben 3 fajta termék kategória van. Nem is várható bővülés, max jóval később talán 1-2 legfejjebb. Ez a 3 fajta termékkategória összesen 5 mezőben egyezik és minden egyébben különbözik. Ebben az esetben sem volna kényelmes inkább 3db külön-külön tábla? A lekérdezések gyorsabbak és egyszerűbbek lennének.
-
bambano
titán
válasz
#68216320 #10217 üzenetére
szerintem meg egy táblát kell csinálni a terméknek, azon mezőkkel, amelyek biztosan mindegyik terméknél előfordulhatnak, meg egy táblát a változó tulajdonságoknak, és abba belerakni az adott termék tulajdonságait. esetleg egy harmadikat tulajdonságtípusnak.
A harmadikba beleraknád, hogy milyen tulajdonságok fordulnak elő (pl. kijelzőméret, hdmi száma), a másodikba meg hogy termek_id,tulajdonsag_id, ertek.
-
orc88
őstag
válasz
Aethelstone #10226 üzenetére
Természetesen
(ezért is akartam először privátban segítséget kérni valakitől, sejtettem, hogy nem lesz egyszerű menet) -
RexpecT
addikt
Felülírod az objektum értékeit ebben a két sorban:
temptranz.id = 0;
temptranz.term.clear();Ezután se lesz még jó, mert egyszer hoztad csak létre a temptranz objektumot.
-
orc88
őstag
válasz
RexpecT #10222 üzenetére
Google Drive-ba felraktam kompletten ami kell a feladathoz, és ahol elakadtam.
Pastebin a fő osztályról.
Ami még kellhet hozzá a 'tranzakció' osztály (tranzak.java):public class tranzak {
public int id;
public ArrayList<String> term;
public tranzak(ArrayList<String> _term) {
this.term = _term;
}
public tranzak(int _id, ArrayList<String> _term) {
this.id = _id;
this.term = _term;
}
public void getTerm() {
for (int i = 0; i <= this.term.size()-1; i++) {
System.out.println(this.term.get(i));
}
}
public void addTerm(String _ujterm) {
this.term.add(_ujterm);
}
}Amire rájöttem időközben:
Main.class-ban van egy ciklus ami a problémámat okozza:int index = 1;
ArrayList<String> temp = new ArrayList<String>();
tranzak temptranz = new tranzak(0, temp);
for (int i = 0; i <= beolv.size()-1; i++) {
if (beolv.get(i).equals("F")) {
temptranz.id = index;
System.out.println(temptranz.id);
System.out.println(temptranz.term);
//Idáig minden OK, szépen megkapja az (átmeneti) tranzakció az azonosítóját és a terméklistát
trs.add(temptranz);
//Beállítom a változókat a következő tranzakcióhoz
ind++;
temptranz.id = 0;
temptranz.term.clear();
} else {
temptranz.addTerm(beolv.get(i));
}
}
//Viszont amikor kiiratnám a végleges tranzakciókat tartalmazó listát már rossz ID-t és üres terméklistát kapok vissza
for (int i = 0; i <= trs.size()-1; i++) {
System.out.println(trs.get(i).id);
System.out.println(trs.get(i).term);
}Itt a temptranz-ba gyűjtögetem az információkat mind addig amíg "F"-et tartalmazó sort nem talál a ciklus. Ha "F"-hez ér, akkor az eddig összegyűlt adatokkal az átmeneti temptranz objektumot egy az egyben hozzáadnám az ArrayListhez ami tranzakcio objektumokat tartalmaz. A probléma ott jön elő, hogy a
trs.add(temptranz);
sor után kinullázom az ideglenes Stringeket tartalmazó Listát, és valamiért (ezt lehet tudnom kéne) hiába adtam már hozzá az objektumot, kitörli belőle a String lista tartalmát és üresen adja át
Szóval a probléma okára nagyjából rájöttem, közben meg is oldottam Listák nélkül a feladatot, de kíváncsi lennék, hogy mi okozza pontosan, és hogyan kerüljem el a jövőben az ebből adódó hibákat.
Ui.: a sok próbálkozás és ctrl+c / ctrl+v után lehet maradt benne 1-2 fölösleges sor és csúnyán nézhet ki, utólag is bocsi
-
RexpecT
addikt
-
orc88
őstag
Sziasztok!
Egy érettségi feladattal van problémám. Eddig mindegyik feladatot megoldottam valamilyen úton-módon, viszont most valamiért nem akar működni az ArrayList úgy ahogy én szeretném
Valakinek elküldhetném privátban? (Pár sor lenne az egész, valószínűleg valami bagatell hibát vétettem, viszont több fájlban vannak a dolgok, nem akarom teleszemetelni a topikot
)
-
#68216320
törölt tag
válasz
Szmeby #10219 üzenetére
Érdekem megoldás amit felvázolsz. Szoktak ilyen megoldást alkalmazni? Igazából azt nem tudom mennyire kell ragaszkodnom a táblaszerkezetben az osztályok szerkezetéhez? Nyilván ORM esetében feltétlenül, bár hallok olyanokat, hogy nem túl célszerű a használata. Ha jól értem akkor az alábbi módon nézne ki, igaz?
+----+-------+ +----------------------+ +----------------------+
| sequence | | TBL1 | | TBL2 |
+----+-------+ +----+--------+--------+ +----+--------+--------+
| id | table | | id | field1 | field2 | | id | field1 | field2 |
+----+-------+ +----+--------+--------+ +----+--------+--------+
| 1 | TBL1 | | 1 | ... | ... | | 3 | ... | ... |
| 2 | TBL1 | | 2 | ... | ... | | 4 | ... | ... |
| 3 | TBL2 | +----+--------+--------+ +----+--------+--------+
| 4 | TBL2 |
+----+-------+Ahol a sequence tábla id auto_increment, a tbl1, tbl2 id pedig unique.
Drizzt: Megnéztem a linket, köszönöm. Van egyébként valami javasolt/preferált megoldás a 3 közül vagy teljesen szabadon választhatok közülük. Esetemben a mindent egy táblába a null/notnull miatt nem volna célszerű. A teljesen különálló táblák és a közös tábla-saját típusos tábla megoldások között dilemmázok. Mivel alapvetően a lekérdezések lesznek töbségben és sejthetőleg típusra szűkítve főként, a külön-külön önálló tábla megoldást érzem picit jobb megoldásnak. De bizonytalan vagyok
-
Szmeby
tag
válasz
#68216320 #10217 üzenetére
"Viszont ekkor az autoincrement id a mysql-ben csak egy táblára lesz érvényes, azaz lenne 1-es id-val tv és mosógép is."
Nem kötelező a táblákra bízni az id generálást, autoincrement használata helyett csinálhatsz az adatbázisban egy sequence-et (vagy sequence table-t? nem tudom, mysqlnél milyen eszközök állnak rendelkezésre), és az entitásaid abból szedhetik majd a next id-t.
-
Drizzt
nagyúr
válasz
#68216320 #10217 üzenetére
Teljesen nem olvastam vegig az alabbi linket, de szerintem minden kerdesedre valaszt kapsz belole. A valasz: attol fugg. 3 fo megoldas van: egy tabla az osszes termektipussal. Ezzel lehet a leggyorsabban lekerdezni termektipusokat ativelo modon, de constrainteket not null constrainteket nem tudsz megadni, ha az altipusok egy reszenel kellene, de legalabb egy altipusnal nem. Aztan lehet mindegyik tioust sajat tablaba rakni. Ekkor az osszes tipus lekerdezesehez tobb tablat kell lekerdezni. Aztan van a kozos tabla a kozos mezoknek, majd egyedi altipus mezoknek kulon tablak, amik visszareferalnak a kozos tulajdonsagokat tartalmazo tablara. Itt joinnal lehet lekerdezni az osszes altipus osszes elemet egyszerre. [link]
-
#68216320
törölt tag
Felmerült bennem egy kérdés egy adatmodell-database leképezését illetően. Csak elméleti a dolog, a megvalósítás technikája érdekelne igazából.
Tételezzük fel, hogy van egy "Termekek" absztrakt osztályom. Itt található id, nev, gyarto, stb.
Ebből leszármaznak a Televíziók, Mosogepek osztályok. Ezekben már különböző adatok találhatóak. Például a Televiziok esetében kijelzoMeret, hdmiSzama, stb - Mosogepek esetében energiaOsztaly, centrifugaSebesseg, stb.Az volna a kérdésem, hogy adatbázisban ezt szintén így kellene megcsinálni? Azaz "termekek" táblát létrehozni, amiben id, nev, gyarto mezők lennének és mondjuk egy termek_tipus mező? Aztán lenne egy "televiziok" tábla amiben lenne egy termek_id és jönnének a kijelzoMeret, hdmiSzama mezők? Aztán a "mosogepek" tábla hasonló megoldással?
Vagy érdemesebb volna csak két táblát (televiziok, mosogepek) csinálni, részben azonos mezőkkel? Viszont ekkor az autoincrement id a mysql-ben csak egy táblára lesz érvényes, azaz lenne 1-es id-val tv és mosógép is.Mi ilyen esetben az elfogadott megoldás?
-
Lortech
addikt
válasz
Drizzt #10214 üzenetére
Ha azt csinálod, akkor azzal meg tudod akadályozni, hogy a "impl1.add(impraw);" illetve a "impl2.add(impraw);" leforduljon.
De azt is megakadályozza, hogy az
impl1.add(impl1);
impl2.add(impl2);
forduljon. De ja, igazából nem vagyunk sokkal beljebb az IF1<T> fordítási idejű típussal sem az Imp1 / Imp2 helyett. IF1<T> -vel mind a két imp típuskompatibilis - nem úgy a Matrixtype és Vectortype egymással -, ezért nem kapsz classcastexceptiont, ahogy a példádban viszont igen. Fordítás időben kéne tudni kiküszöbölni ezt az esetet, de a generikusok erre nem jók javában. -
Drizzt
nagyúr
válasz
Lortech #10212 üzenetére
Miért nem simán T a paraméter az első add függvényedben, az interface-ben? Ha azt csinálod, akkor azzal meg tudod akadályozni, hogy a "impl1.add(impraw);" illetve a "impl2.add(impraw);" leforduljon. Persze az impraw.add fogad mindenféle típusú interface-et. Aztán ha type mismatch van, akkor futási időben száll el a
paramEnforcerMatrix.add(paramEnforcerVector); sor.public interface ParamEnforcer<T extends ParamEnforcer<T>> {
void add(T other);
}
class MatrixType implements ParamEnforcer<MatrixType> {
@Override
public void add(MatrixType other) {
}
}
class VectorType implements ParamEnforcer<VectorType> {
@Override
public void add(VectorType other) {
}
}
class Tester {
void test() {
MatrixType matrixType = new MatrixType();
ParamEnforcer paramEnforcerMatrix = matrixType;
VectorType vectorType = new VectorType();
ParamEnforcer paramEnforcerVector = vectorType;
matrixType.add(matrixType);
vectorType.add(vectorType);
paramEnforcerMatrix.add(paramEnforcerVector);
}
} -
RexpecT
addikt
válasz
#68216320 #10210 üzenetére
Java 8 és felette érdemesebb a LocalDateTime-ot használni.
-
Lortech
addikt
válasz
axioma #10211 üzenetére
Röviden: tényleg nincs.
Csinálhatsz generikus interface-t:
public interface IF1<T extends IF1> {
void add(IF1<T> other);
}
public class Imp1 implements IF1<Imp1> {
@Override
public void add(IF1<Imp1> Other) {
}
}
public class Imp2 implements IF1<Imp2> {
@Override
public void add(IF1<Imp2> other) {
}
}
{
IF1 impraw = new Imp2();
IF1<Imp1> impl1 = new Imp1();
IF1<Imp2> impl2 = new Imp2();
impraw.add(impraw);
impraw.add(impl1);
impraw.add(impl2);
impl1.add(impl1);
impl1.add(impraw);
impl2.add(impl2);
impl2.add(impraw);
pass(impraw, impl1);
pass(impl1, impraw);
pass2(impl2, impl1);
}
private static void pass(IF1<Imp1> one, IF1 other) {
one.add(other);
other.add(one);
}
private static void pass2(IF1 one, IF1 other) {
one.add(other);
other.add(one);
}De ez jobbára csak bohóckodás, mert ha használni akarod, úgyis meg kell adnod a típus paramétert fordítás időben, hogy garantáltan *csak saját magával tudd átadni neki, vagy típus paraméter nélkül hagyod és unchecked leszel. Valamint raw IF1 (impraw-t) IF1 példányt oda vissza tudod passzolgatni futási és fordítási hiba nélkül.
-
axioma
veterán
Vagy nagyon pentek van, vagy mindenki masnak trivialis hogy ilyen nincs... es meg hetfon is jo lesz csak felre akarom tenni a problemat es a tobbi reszt csinalni.
Tehat ha van ket osztalyom, Imp1Class es Imp2Class, akik azonos interface-t akarnak megvalositani, amiben van hogy "onmaguk" tipusa kell legyen a parameter, mondjuk van benne egy addMtx(... other) fuggveny. Ilyenkor van-e arra megoldas, hogy az other tipusa az az osztaly legyen amelyik eppen megvalosit? Mert ha az interface-t magat irom tipusnak, akkor nem lehetek biztos benne, hogy ugyanazt kapom (holott az a terv, hogy mindenkit csak sajat tipusaval szabadna osszeereszteni).
Igen, lehet ellenorizni instanceof-fal es akkor meghivni csak a sajatot amugy exception. De ez igy onmagaban nem egy megoldhato dolog? Vegulis nem szukseges, foleg hogy egyutt vszinu csak bemutatozni kene, de most mar idegesit, hogy ennyire hianyos a tudasom vagy megint tul sokat gondolok termeszetesnek. -
#68216320
törölt tag
Kis segítséget kérnék. Van egy model-em, amiben 2db dátum+idő-t (datetime?) kellene tárolnom. Értékeket egyenként venne fel, azaz az évszámot külön adom neki, hónapot, stb. Aztán ezt a model menne majd a DAO-nak aki MySQL DateTime formában tárolja.
Az volna a kérdésem, hogy mi volna megfelelő? A Date object? Vagy van valami speciálisabb, amivel kényelmesen setter-ekkel vagy egy string-ből be tudok adni mondjuk egy "2019-02-01 11:59:59" dátumot?Update: Ez mennyire lehet jó megoldás?
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse("2019-01-01 00:00:00"); -
axioma
veterán
válasz
Aethelstone #10208 üzenetére
Meglatjuk. Koszi az infokat!
-
axioma
veterán
válasz
Aethelstone #10206 üzenetére
Hat, me'g ha flat-kent is kezelem es final, azert egy indexeles me'g akkor is van per elem, ha siman vegigfutok az osszesen. C-ben meg mehetne pointer aritmetikaval. Mivel ez suru muvelet, sok matrixon, lehet rajta kulonbseg, erre gondoltam.
Pont eliminalas nem kell, nem linearis egyenletrendszerrol van szo, hanem mindenfele matrixszorzasok, osszegzesek sorra/oszlopra, siman vagy negyzetesen, meg ilyesmik... csak sok. -
axioma
veterán
válasz
Aethelstone #10204 üzenetére
OK, koszi. En orulok ha nincs es megirhatom
Csak azert probaltam guglizni meg kerdezni, hatha van valami, mert ki tudja. Es hat ugye a cegnek se mindegy, hogy dolgozom rajta vagy csak hasznaljuk. (Bar amennyit az nd4j-nek a sikertelen approve-jaba belefektettek, mar reg keszen lehetnek...)
Az egyetlen kerdes, hogy probaljam meg java-ban, vagy egybol C es JNI. A cucc csak nalunk fog futni (inputot general a userek altal hasznalt programhoz), nem baj ha platformhoz kotjuk. Na majd meglatjuk, nem csak rajtam mulik, koltoi kerdes volt. Sot me'g az is lehet hogy meregetjuk, hogy a mi specko felhasznalasunknal (tipikus matrixmeret 70x70 es 70x250, nem oriasi, csak a muveletek vannak sokan) mennyit hozna a C, ha adnak arra is idot.
(A fonok elsosorban egy nagyon basic matrix-muveletes interface-t akar es alarakni most az apache-ost, hatha kesobb lesz olyan nd4j verzio ami atmegy es/vagy elokerul valami jobb. Csak hat az jelenleg minden lesz csak nem gyorsabb, sot, attol hogy a lepeseket elemibbre bontja, szebb a kod de lassabb lesz, van ami 2-3x menne igy vegig az elemeken, mig a jelenlegi nativan, for ciklusokkal megirtban egyben benne lehet egy osszetettebb muveletsor. De szerencsere egyelore ugy latszik, hogy nyitott az egyeb megoldasokra.) -
axioma
veterán
Van az nd4j-n kivul olyan library (az nem kapta meg a 3rd party approve-ot, de jo esellyel azert mert egy csomo minden nekunk felesleges dolog miatt vannak nem approve-olhato dependency-k), amelyik optimalisan tud kezelni double[][] (fix meretu letrehozas utan) tipusu matrixokon vegzett muveleteket? Optimalison azt ertem, hogy peldaul nem a double[][] van alatta mint pl. az apache math3-janak, vagyis nem megy el az ido nagy resze a java hulye 2dim indexalasaval... na meg azert van valami nd4j jellegu eszkozkeszlete (pl. elemenkenti gyokvonas pont kene meg hasonlok).
Nyilvan meg lehet irni, de fura hogy nem talaltam letezot. Ami van az minden tul altalanos akar lenni.
Igen, konkretan ebben a projektben csak masik reszen letezik mar python integracio, de akkora valtoztatas most nem menne at, hogy mindent oda attenni. Egy uj funkcio lenne de a tobbihez is hozzanyulnank, mert vannak sebesseggondok.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Autós topik látogatók beszélgetős, offolós topikja
- Előrendelhető a OnePlus Pad 3
- Milyen autót vegyek?
- Xbox Series X|S
- Beszántaná a marketingért felelős részlegét az Intel
- Eredeti játékok OFF topik
- Konteó topic
- Kerékpárosok, bringások ide!
- Linux kezdőknek
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- További aktív témák...
- Apple iPhone 12 Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
- Xbox Series X, újrapasztázva, tisztítva, dobozában, 6 hó teljeskörű gar., Bp-i üzletből eladó!
- újszerű MacBook Pro 14 hüvelykes M3 16GB 512GB SSD Apple space gray asztroszürke 1,5 év garancia
- Apple Macbook Pro 14" (2024) - M4 - 16GB/512GB (mw2u3sl/a) Asztrofekete - Garancia - 18 Ciklus
- OMEN 15-ce01nh 15.6" FHD IPS i7-7700HQ GTX 1060 16GB 256GB NVMe + 1TB HDD magyar vbill új akku gar
- LG 45GS95QE - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
- ÁRGARANCIA! Épített KomPhone Ryzen 5 5500 16/32/64GB RAM RTX 4060 8GB GAMER PC termékbeszámítással
- Azonnali készpénzes Intel i3 i5 i7 i9 8xxx 9xxx processzor felvásárlás személyesen / csomagküldés
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Iphone 15 Plus 128GB Pink Dobozos 12 Hónap Garancia
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged