Hirdetés

Keresés

Új hozzászólás Aktív témák

  • lanszelot
    addikt

    van en locale?
    en_US.UTF8 szokott lenni, vagy en_GB.UTF8

    Hello,
    Ezt nem értem. Mi az hogy en local?
    Es hol van az en_US.UTF8?
    A lokalizációra gondolsz?
    Ha igen, Androidban nem így működik.
    string.xml -ből kell többet létrehozni, amennyi nyelv van, és létrehozatalnál kiválasztani a nyelv lokalizációt. Ezután a telefon nyelvét ha váltogatod, akkor automatikusan váltja a program nyelvét.
    Viszont ha gombbal szeretnéd, akkor meg lehet mondani hogy mely lokalizációval induljon.
    Csak itt jön a csavar, hogy erre sincs egy fix módszer, mint ahogy semmire se Androidban, mivel folyamatosan változik, ezért találd ki most épp hogyan kell.
    5 projektem van ami mind becsődölt ez a folyamatos "most már ez nem müködik, franc se tudja hogy lehet most"

  • #68216320
    törölt tag

    nem teljesen értem a problémádat, androidban van gyári vonalkód szkenner, amit lehet okosítani.
    ezen túlmenően hcl kolléga blogjában van mobiltelefonra írt leltározó program. [link]

    Nos, a telefonban van scanner, de nem tudom hogyan lehetne okosítani. Azon kívül, hogy megmutatja a dekódolt szöveget és link esetén megnyit egy browsert semmi egyebet nem láttam még benne alapból. Aztán hogy éppen ezen a telefonon valahogy talán össze lehet mégis barkácsolni, hogy custom url-t hívjon, de esetleg egy másikon nem ezért szerintem jobb egy külön app erre.

    Az említett leltározó program remek, de idő közben újabb igény merült fel, így magam kell írjak egy egyszerű appot. Szerencsére sok forrást találni a már említett ZXing libre alapozva, ezek lesznek a kiindulási alapok.
    ZXing embedded lesz természetesen, hogy ne kelljen külső app a használathoz.
    Kotlin-nak nem állok most neki, egyelőre JAVA alapon fogom elkészíteni.
    Szóval a kiinduló kérdés itt el is dőlt.

  • Drizzt
    nagyúr

    nem ismerem, hogy a jáva ezt hogy csinálja, de a rendes eredeti hash tárolási struktúra egyáltalán nem keres hash értéket. ettől gyors.
    és úgy tartják fenn az elemek növekedése ellenére a gyorsaságot, hogy módosítják a hash függvényt.

    Pedig tok egyszeru a dolog.
    Van kiindulaskor valamennyi(n) darab bucket. A bucketek gyakorlatilag tombok. Tehat van egy n elemu tombod. Minden bucketben van egy linkelt lista, vagy valamilyen annak megfelelo struktura.
    A hash fuggvenyen nem modositanak semmit, mivel azt Javaban a user-nek szokas megadnia(oke, altalaban a Lombok irja meg helyette, meg lehet hasznalni a default implementaciot is, de az lehet lassu bizonyos esetekben).

    Kereses kulcs alapjan:
    - Meghivod a kulcsra a .hashCode metodust. Igy kapod az x erteket.
    - Kiszamolod , hogy x mod n = z alapjan mi a z.
    - A z. bucketet kikeresed(ez egy lepesben megvan).
    - A z. bucket osszes elemen vegigiteralsz, s megnezed, hogy a kulcs equals-e az eppen iteralas alatt levo elemmel. Ha igen, akkor az ott szinten eltarolt erteket visszaadod.

    Mikor lesz ez az egesz lassu?
    - Ha a hashCode ugy van megirva, hogy minden kulcs ugyanabba a bucketbe keruljon, vagy legalabbis a bucketek egy kis reszebe. Ilyenkor abban a bucketben egy hosszu lista lesz, ami miatt nem o(1) lesz a lookup, hanem kozeliti az o(n)-et.
    Ugyanez akkor is igaz lenne, ha a map-ben levo elemek szama joval nagyobb lenne, mint n. Mit csinal ez ellen a Java? Figyel egy toltottsegi szintet. Ha a toltottsegi szinte egy hataron tul van, akkor fogja, s csinal 2*n uj bucketet, s a meglevo elemeket belerakja, a regi n bucketet meg eldobja.

    Ebbe a pogramozo is bele tud szolni, van olyan konstruktor, amiben meg tudod adni a kezdeti n-t, s a toltottsegi tenyezot. Szoval ha tudod, hogy rohadt sok elemet fogsz belepakolni, akkor rogton csinalhatsz egy HashMap-et jo nagy n ertekkel, s akkor meguszol par rehash-t. Alapbol 16 bucket lesz, amit akkor ujrahashel, ha legalabb 13-ra no a size. Ekkor 32 bucket lesz, majd ha size legalabb 25 lesz, akkor ujrahashel 64 bucketbe, stb.

    A LinkedHashMap az egy specibb valtozat, ahol az egesz HashMap-en tul egy LinkedList is fenn van tartva, ami az osszes elemet tartalmazza a hozzaadas sorrendjeben. Akkor kell hasznalni, ha fontos a hozzaadas sorrendjet tudni.

  • #68216320
    törölt tag

    indításkor kér be a terminálról.

    De ha bekérem a kulcsot, akkor mindjárt kérhetném az adott jelszót is. Persze több jelszó esetén már kellemesebb a kulcsot megadni és azzal decrypt-álni a többit.

    Viszont az alap probléma adott még. A user meg akarja változtatni a property-t kézzel, akkor hogyan tudja beírni a property-be kézzel a titkosított jelszót.

    Vagyis példaként:
    Egy e-mail küldő konfig fájlban lenne az smtp-host, user, pass, port. Ezeket a user kézzel állítja be a saját adatai alapján. De ugye a pass-t nem adhatja meg csak plain, mert nem biztonságos. Az email küldőt pedig egyéb osztályok hívják, szóval nincs külön indítás ahol megadhatnám a key-t, kiegészítő modul lenne.

    Mi van olyankor ha úgy csinálnám, hogy a program (ami hívja majd az email osztályt) minden híváskor átadja a használt key-t (mondjuk nem tudom még az honnét jönne létre). Ezzel tudja ugye decrypt-álni a jelszót az email osztály. Viszont lenne egy ellenörzés, hogy amikor plain text a konfig fájlban a jelszó (modjuk éppen szerkesztette az előbb a user), akkor először encrypt-álja és ezután az általános módon beolvassa, decrypt és használja.

    Valami hasonló módon csinálja linuxon a transmission-daemon is a config fájlban.

    De továbbgondolva a dolgot általános is lehetne a kérdés. Bizonyos esetekben jó lenne SQL-ben tárolt adatoknál is pár olyan értéket titkosítva tárolnom, amit a programom tud írni-olvasni, de ha a user ránéz (akinél fut a programom) ő az sql-ből nem tudja kiolvasni. Ezek olyan dolgok lennének, amikot kénytelen vagyok adni a programmal, de saját, védett adatok lennének viszont kellenek a program működéséhez és alkalmanként távolról frissíteném-bővíteném ezeket.

  • Drizzt
    nagyúr

    indításkor kér be a terminálról.

    Vagy ha eleg annyi, hogy a rooton kivul mas ne tudja elerni, akkor lehet egy csak a programot futtato linux user altal olvashato fajlban tarolni.
    Ezernyi jobb es rosszabb megoldas letezhet, ismerni kellene hozza a kornyezetet, meg a lehetseges tamadasi vektorokat.

  • togvau
    senior tag

    ahhoz, hogy linuxon kétféle java legyen fent, nem kell docker.
    ha ilyen gond áll elő, akkor fel kell rakni egyszerre a két java verziót.

    ja így lett, openjdk 11 az elsődleges minden más azon fut, és teljes path-al 8-al van indítva ez az app

  • Ezekiell
    veterán

    ahhoz, hogy linuxon kétféle java legyen fent, nem kell docker.
    ha ilyen gond áll elő, akkor fel kell rakni egyszerre a két java verziót.

    Én amikor csak lehet, elkerülöm az egyszerre 2 java installt - de igazad van, lehet olyat csinálni.

  • Drizzt
    nagyúr

    jaja, így csinálják a windowsról átszökött, unixot messziről ugató fotelprogramozók :P :P :P

    nem, nem mindegy, hogy fájlba írod-e, tehát átkergeted kétszer a fájlrendszeren és a blokkos eszközökön a cuccot, vagy memória puffereken keresztül tolod be. nem pazaroljuk az erőforrásokat. különös tekintettel az iot nevű betegségre, ahol flash drájvokat nyírhatsz ki azzal, ha fájlba írsz, mivel a ramdiszk jellemzően kevés.

    select meg watch service meg toronyóra lánccal... az eredeti kérdés szerint linuxon futna, ami egy unix. nem bohóckodunk ilyenekkel.

    ha az a probléma, hogy debuggolni akarod a fájlt, akkor van rá segédporgram. tee. tehát azt írod, hogy:

    sensorread | tee /tmp/logfile1 | sed | tee /tmp/logfile2 | mysql

    ha nem akarod azt a hatalmas nagy sedet folyton forkolni, és mindenáron bele akarsz piszkolni a fájlrendszerbe, akkor egyik taszkban:

    sensorread >>/tmp/dumpfile &

    másik taszkban:

    tail -f /tmp/dumpfile | sed | mysql
    vagy
    tail -f /tmp/dumpfile | java -jar tefeldolgozod.jar

    második esetben esetleg van értelme jávás watch objektumozni...

    de ha már ennyire elb.szarintod az architektúrát, akkor a legegyszerűbb az, ha a szenzorok adatait logoltatod a syslogba, és abból azon a gépen ott és akkor azt csinálsz, amit akarsz.

    miért érzem azt, hogy azért jobb a jáva szerinted, mert a shell programozásról fogalmad sincs?

    Muhahaha. :D
    Remekül szórakoztatod az embert a nagyon furcsa feltételezéseiddel, de közben szerencsére jó dolgokat is mondasz.

    Arról sehol nem volt eddig szó, hogy mekkora méretű lenne az adat. Én eddig mindvégig azt feltételeztem, hogy kicsi.

    "select meg watch service meg toronyóra lánccal... az eredeti kérdés szerint linuxon futna, ami egy unix. nem bohóckodunk ilyenekkel." És a select melyik oprendszer egyik fontos syscallja? :)

    A tee-t tök jó, hogy felhoztad, mert magamtól nem jutott volna eszembe a neve, remélem most jobban elmélyül a tudatomban.
    A syslogos megoldás az amúgy tetszik, bennem is bennem volt.

    "tail -f /tmp/dumpfile | java -jar tefeldolgozod.jar
    második esetben esetleg van értelme jávás watch objektumozni..."
    De ilyenkor egy sima Scanner.nextLine is elég. Az vár az új inputig, vagy amíg a stdin-je el nem tűnik.

    "miért érzem azt, hogy azért jobb a jáva szerinted, mert a shell programozásról fogalmad sincs?"
    Én ilyet sehol nem írtam. Különböző célokra különböző eszközök a jók. Hirtelen meg az ember mindig úgyis azt a megoldást fogja ajánlgatni, amivel éppen a legjobban képben van. Ha nagyon akarnék, akkor én is elkezdhetnék kötekedni, hogy miért mysql-ben akarod a szenzor adatokat eltárolni, amikor vannak más kifejezetten ilyen célú adatbázisok is. De nem teszem, mert valószínűleg a probléma olyan kis méretű, hogy igazából nem számít.

    Ui. a mysql klienst úgy kezeled itt mindenhol, mintha minden linuxon kötelezően rajta lenne, de az ugyanúgy egy dependencia, ami vagy van, vagy nincs.

    "most eltekintve attól, hogy tök értelmetlen http-n csinálni ilyet, a curl-ben túl sok hiba van ahhoz, hogy komoly rendszeren használd."
    Ezt btw. még kifejthetnéd, hogy mire gondolsz. Milyen hiba? (És természetesen a curl sem feltétlen minden disztró része)

  • floatr
    veterán

    amit mondtam eddig, az érdemi mondanivaló attól, hogy te nem értesz vele egyet. Nem a vita kedvéért csinálom, hanem azért, hogy a kedves kolléga tanulhasson belőle. Ettől egy független tény, hogy mivel te java-val foglalkozol, szerinted mindent java-ban kell megoldani.

    abban pedig biztos vagyok, hogy sokkal hamarabb fog érteni valaki vagy talál valakit, aki ért a sedhez, mint egy tök idegen program json konfigjához, amiben pont ugyanazok a reguláris kifejezések vannak, mint amit sedben használsz.

    Az eddigi hozzáállásod alapján inkább lehetne rólad elmondani, hogy szereted a scriptelést, és bármire azt használnál. Amíg 2 sorról van szó, még hagyján, bár ha abba kell beletúrni valamiért, továbbra is tartom, hogy kevés ember lesz, aki tartani meri érte a hátát. Nem egy 12-factor konform cucc, de mókolni jó.
    Az üzemeltetéssel és karbantartással kapcsolatban éppen a scriptekkel van baromira rossz tapasztalatom többek között a minőségbiztosítás teljes hiánya miatt, és hogy az általad említett sok száz komponens nagyon nem mentes a hibáktól. Nem baj kavarjuk össze lecsóba, mi bajunk lehet.

    Azt nem vágom, hogy pont ezeknek a szenzoros dolgoknak a kezelése eléggé ingoványos terep, de te nyugodt szívvel rábíznád egy pipe-olt scriptre a dolgot, miközben szinte mindenki kivétel nélkül baromira óvatos a témával. Amíg otthon barkácsol az ember egy arduinoval két hőmérő meg három nedvességérzékelő adataival, addig még hagyján, csak akkor tartsa is otthon a "tudást".

    Az meg eleve nagyon gáz, hogy "debuggolni" úgy akarsz, hogy módosítod a kódodat. Agyrém...

  • mobal
    nagyúr

    "nem tudom elképzelni mondjuk, hogy egy szerver alkalmazás szét legyen dobva 10 futtatható binárisra és egymást hívogatják": oké, legyen egy egyszerű példa: biztonsági mentés.

    tegyük fel, hogy a következő lépéseket akarod végrehajtani a mentéshez:
    1. mentendő fájlok listájának előállítása
    2. mentendő fájlok összecsomagolása egy konténerformátumba
    3. konténer tömörítése
    4. konténer lemezre írása.

    windowson erre van egy backup utility, monolitikus, felparaméterezed, fut. unixon mindegyik feladatra van egy program, és a programokat össze tudod kötni a shellel.

    1. find
    2. cpio
    3. bzip
    4. dd

    tehát azt mondod, hogy (a kapcsolók nem biztos, hogy jók):

    find -atime 5 / | cpio -o | bzip2 -9 | dd of=/dev/rmt/0 obs=2k

    A find összeszedi neked az összes fájlt, amit kevesebb, mint 5 napja néztél meg és a fájllistát kiírja a szabvány kimenetére. A find szabvány kimenetét a shell összeköti a cpio szabvány bemenetével (valójában úgy mókol a fájldeszkriptorokkal, hogy a find kimeneti puffere a cpio bemeneti puffere lesz, tehát nem a shell másolgat soronként, hanem ez kernelszintű szolgáltatás). A cpio a szabvány bemenetéről beolvassa azon fájlok nevét, amit az archívumba bele kell tennie és az archívumot kiírja a szabvány kimenetére. Ami átkerül a tömörítő bemenetére, tömöríti és kiírja a saját kimenetére. Amit megkap a dd, összeblokkosítja olyan méretre, ami a szalagegységnek optimális, majd kiírja szalagra.

    Minden darab külön van, minden darabot cserélhetsz is, ha akarsz. Minden darab egy konkrét feladatot végez el. Gyakorlatilag kapsz egy kosár téglát és ebből neked kell házat építeni. Ez az erőssége és a gyengesége is egyben. Ha tudsz kosár téglát egymásra rakni, jó rendszered lesz. Ha nem, üres konzol előtt fogsz pislogni, mint kocsonyában a béka. A másik világban pont az ellentéte van, kapsz pár 14 emeletes toronyházat, amik elvileg mindent tudnak, amiről az alkotójuk azt hitte, hogy tudniuk kell. Vagy megfelel számodra, és akkor halleluja, vagy nem, akkor bukta van. Nem változtathatsz, nem babrálhatsz bele, ez van, ezt kell szeretni.

    Egyébként nagyon sok ilyen szoftver van, például az adatbáziskezelőknél is gyakori, hogy van egy nagyobb program, ami a szerverfunkciókat végzi, és vannak kis, parancssori utilityk, amikkel aktiválsz bizonyos funkciókat vagy beállításokat. ezekből rakod össze a megoldásodat.

    Ez egy tök jó példa volt mert mindenre van alkalmazás. De egyedi alkalmazások esetében, biztos, hogy a logikát megakarod úgy erőszakolni, hogy adott esetben, find, bzip, grepkomopatiblilis legyen? Szerintem nem. :)

  • Drizzt
    nagyúr

    "akkor linuxon mindent írjunk szerinted bash-ben": nem.
    a fő különbség a két rendszer között (unix vs. windows), hogy a unixot eredetileg kis programok hatékony összekapcsolására találták ki, a windows meg nagy monolitikus rendszerek futtatására. pl. ha windowson elindítod az outlookot, a fél office-t maga alá rántja, mert ha a levélben van excel vagy html, akkor máris behúzza az excelt meg a html motort.

    unixon ezzel szemben az az alapvetés, hogy kis programokat csinálsz (amikor csak lehet), azok egy dolgot csinálnak, de azt hatékonyan és jól, és rábízod az oprendszerre, hogy összekösse a programjaidat.

    ezért amikor elhangzott itt (nem Peachmantől), hogy a szenzor program tegye le diszkre egy fájlban az adatot és azt olvassa be jávából LINUXON, akkor azt gondoltam, hogy ezzel totálisan szívenszúrja a unixos alapfilozófiát. kevésbé udvarias megfogalmazásban ekkora f.ságot évek óta nem hallottam.

    tehát itt a unixos filozófia szerinti megoldás az, hogy van egy szenzorleolvasója, van egy átalakítója meg egy adatbáziskliense, amiket a shell összeköt:

    sensorread | sed ... | mysql ...

    ha ezt el akarjuk rontani az itteni kérdés szintjére, akkor is az a megoldás, hogy jávában a szabvány bemenetet olvassa és azt elemzi, és csővezetékkel kerül a bemenetre az adat:
    sensorread | java -jar szenzorosztalyom.jar

    "Cserébe nem lesz olyan lassú.": értem, tehát a bash egy pártíz-párszáz soros szenzor kimenetnél lassú lesz? kizárt. ráadásul ugye itt nem is a bash fut sokáig, mert az csak összeköti a programokat, falusiasan fogalmazva bűvészkedik a fájldeszkriptorokkal, a sok olvasást, írást egy c-ben megírt, évtizedek alatt optimalizált kód fogja csinálni a sedben. nem lesz lassú, ne aggódj, nagyjából bármit el fog verni, mint az atom. az interpretált bájtkódodat szinte biztosan rommá fogja verni.

    Egyébként én csak húsz éve foglalkozom hasonló kérdésekkel, nyilván tapasztalatlan vagyok a témában, szemben pár fórumtárssal a fotelből...

    "ezért amikor elhangzott itt (nem Peachmantől), hogy a szenzor program tegye le diszkre egy fájlban az adatot és azt olvassa be jávából LINUXON, akkor azt gondoltam, hogy ezzel totálisan szívenszúrja a unixos alapfilozófiát. kevésbé udvarias megfogalmazásban ekkora f.ságot évek óta nem hallottam."

    Én írtam, s egyáltalán nem értek veled egyet. Majdnem mindegy, hogy először fájlba írsz valamit és onnan pollozod, vagy közvetlenül a pipe-pal küldöd át. Utóbbi esetben ráadásul újra, meg újra meg kell hívni a feldolgozó programot, ami nem feltétlen hatékony. Fájl változásra linux alatt selecttel fel tudsz iratkozni, Javaban is megvannak a megfelelő képződmények(Watch service). Egyébként named pipe-pal lehet a legjobban áthidalni, hogy a feldolgozó mindig futhasson attól függetlenül, hogy mikor kap inputot. De én fájlba írnám inkább, mert sokkal könnyebb lesz hibát izolálni annak előfordulásakor, ha a fájlra nézve meg tudod azonnal mondani, hogy mikor frissült, meg mi van benne, anélkül hogy a két alkalmazás belében kellene turkálni.

  • mobal
    nagyúr

    "Full komolyan érdekel, mikor jó a 10k soros bash a javával szemben": akkor jó, amikor egy nagyobb rendszerben történő folyamatot akarsz automatizálni, és ehhez parancssoros segédprogramokat adnak csak. fontos, hogy automatizálni akarsz, tehát nincs képernyő, grafikus interfész, klikkelés. van viszont mondjuk 200 darab bináris programod, amivel meg tudod oldani a problémád részfeladatait.

    ilyenkor a jáva program nagyjából úgy nézne ki, hogy folyton parancssori paramétereket rak össze, exec()-el, eredményt olvas, stb. ehhez felesleges jáva. pont jó a szkript.

    egy csomó telepítő meg karbantartó szkriptet láttam már, amik ilyenek voltak.

    Én ezt is Pythonban csinálnám, de ezt úgy mondom, hogy sok tapasztalatom nincs etéren - ha már valamiféle logikára szükség lesz (például logolás, http kliens [prometheus, grafana] stb. alapján).

  • mobal
    nagyúr

    "akkor linuxon mindent írjunk szerinted bash-ben": nem.
    a fő különbség a két rendszer között (unix vs. windows), hogy a unixot eredetileg kis programok hatékony összekapcsolására találták ki, a windows meg nagy monolitikus rendszerek futtatására. pl. ha windowson elindítod az outlookot, a fél office-t maga alá rántja, mert ha a levélben van excel vagy html, akkor máris behúzza az excelt meg a html motort.

    unixon ezzel szemben az az alapvetés, hogy kis programokat csinálsz (amikor csak lehet), azok egy dolgot csinálnak, de azt hatékonyan és jól, és rábízod az oprendszerre, hogy összekösse a programjaidat.

    ezért amikor elhangzott itt (nem Peachmantől), hogy a szenzor program tegye le diszkre egy fájlban az adatot és azt olvassa be jávából LINUXON, akkor azt gondoltam, hogy ezzel totálisan szívenszúrja a unixos alapfilozófiát. kevésbé udvarias megfogalmazásban ekkora f.ságot évek óta nem hallottam.

    tehát itt a unixos filozófia szerinti megoldás az, hogy van egy szenzorleolvasója, van egy átalakítója meg egy adatbáziskliense, amiket a shell összeköt:

    sensorread | sed ... | mysql ...

    ha ezt el akarjuk rontani az itteni kérdés szintjére, akkor is az a megoldás, hogy jávában a szabvány bemenetet olvassa és azt elemzi, és csővezetékkel kerül a bemenetre az adat:
    sensorread | java -jar szenzorosztalyom.jar

    "Cserébe nem lesz olyan lassú.": értem, tehát a bash egy pártíz-párszáz soros szenzor kimenetnél lassú lesz? kizárt. ráadásul ugye itt nem is a bash fut sokáig, mert az csak összeköti a programokat, falusiasan fogalmazva bűvészkedik a fájldeszkriptorokkal, a sok olvasást, írást egy c-ben megírt, évtizedek alatt optimalizált kód fogja csinálni a sedben. nem lesz lassú, ne aggódj, nagyjából bármit el fog verni, mint az atom. az interpretált bájtkódodat szinte biztosan rommá fogja verni.

    Egyébként én csak húsz éve foglalkozom hasonló kérdésekkel, nyilván tapasztalatlan vagyok a témában, szemben pár fórumtárssal a fotelből...

    ""Cserébe nem lesz olyan lassú.": értem, tehát a bash egy pártíz-párszáz soros szenzor kimenetnél lassú lesz?"

    Ezt általánosságban értelmezd ne erre a példára levetítve.

    "unixon ezzel szemben az az alapvetés, hogy kis programokat csinálsz (amikor csak lehet), azok egy dolgot csinálnak, de azt hatékonyan és jól, és rábízod az oprendszerre, hogy összekösse a programjaidat."

    Ezt most vagy félreértem, vagy nem tudom elképzelni mondjuk, hogy egy szerver alkalmazás szét legyen dobva 10 futtatható binárisra és egymást hívogatják. :)

    "Egyébként én csak húsz éve foglalkozom hasonló kérdésekkel, nyilván tapasztalatlan vagyok a témában, szemben pár fórumtárssal a fotelből..."

    Senki nem mondta, hogy tapasztalatlan vagy, csak azt, hogy erre a problémára létezik kb. 100 féle jó megoldás :)

  • mobal
    nagyúr

    az a baj a jáva nindzsákkal, hogy ha meglátnak egy új jáva szabványt, azonnal fel akarják használni akkor is, amikor nincs mire. Meg az is, hogy soha nem az előttük levő feladatra koncentrálnak. De ha nem, akkor mire?

    De az is látszik a párbeszédből, hogy sokan úgy programoznak linuxon, hogy fogalmuk sincs, mit jelent linuxon programozni. ha linuxon windowsosan akarsz programozni, akkor tegyél fel windowst.

    Tele van a padlás olyan jávás szakemberekkel, akik akkor is atomtengeralattjáróról kilőtt interkontinentális ballisztikus rakétával lőnek, ha csak egy veréb a célpont.

    Szerinted melyikben valószínűbb, hogy hiba lesz: egy két soros shell szkriptben vagy egy elastic-ban? Melyikre kell több erőforrást felhasználni, kiemelten emberit is: egy szkriptre vagy egy rakás jáva vm-re meg benne futó rakás szolgáltatásra? melyiket kapod meg összességében olcsóbban? hint: nem a jávát, arra mérget vehetsz.

    És hiába fikázod a szkript nindzsákat, az objektív műszaki érvek ebben a feladatban nem a jáva mellett szólnak.

    "De az is látszik a párbeszédből, hogy sokan úgy programoznak linuxon, hogy fogalmuk sincs, mit jelent linuxon programozni. ha linuxon windowsosan akarsz programozni, akkor tegyél fel windowst."

    Ebből nekem az jön le, hogy akkor linuxon mindent írjunk szerinted bash-ben. Én zsh-t használok és macet munkára. Ott mit kéne csinálni? :)

    "Szerinted melyikben valószínűbb, hogy hiba lesz: egy két soros shell szkriptben vagy egy elastic-ban?"

    Tudsz unit tesztelni bash-t és jávát is, a hiba valószínűsége ugyanakkora. :)

    "És hiába fikázod a szkript nindzsákat, az objektív műszaki érvek ebben a feladatban nem a jáva mellett szólnak."

    Abban igazad van, hogy talán nem a Java a legjobb megoldás erre, de szerintem még nem is a bash. Python például. Amúgy tipikus "szkript ninja" hozzáállás, hogy feszegetjük a jvm erőforrás felhasználását, ami tény, hogy több lesz mint egy szkripté. Cserébe nem lesz olyan lassú. :)

    Egy szó mint száz, a kollégának kell tudnia, hogy miért akarja Javában írni. De szerintem ha Ő abban akarja és van alá vas akkor hajrá. Cron + CLI alkalmazás. Én viszont erre a feladatra a Python-t javaslom ha csak ennyit kell csinálni.

    #10820: Full komolyan érdekel, mikor jó a 10k soros bash a javával szemben (én olyan szituációt még tényleg nem láttam. 10k soros szkriptet is csak azért mert ahhoz értett a költő)?

  • mobal
    nagyúr

    A magam részéről mindenképpen szívlapáttal csapnám fejbe, aki erre a problémára java programot ír.
    bash shell + sed.

    szerk: letenni fájlba, linuxon, lyalylyly

    Én dolgozam olyen helyen ahol ez volt a szokás, és kb. ott csaptam volna szét mindent szívlapáttal.

    A végeredmény 10 ezer soros bash scriptek (vegyítve gawk-val és python szkriptek behívásával), egy olyan feladatra amire totálisan alkalmatlan. Inkább akkor python vagy valami egyéb shebangelhető szkript.

  • floatr
    veterán

    "Nem fog megállni a dolog egy property->insert trafónál": ezt úgy hívják, hogy találgatás. Ha architekt követi el, akkor az főben járó bűn. A feladat szenzoradatok mysql-be töltése. Nem vidámpark, nem csillagháború, egy darab libikóka.

    "Rendszerszemlélet zéró.": ez nyilván téves kijelentés több okból is. Egy kétsoros szkriptet összeütök két perc alatt. Tehát ha a találgatás, hogy majd valamikor beláthatatlan időtávban mégis lesz extra kérés, amire a szkript már nem alkalmas, akkor pontosan ugyanennyi idő alatt ki is dobom.

    Másrészt a rendszerszemléletben alapvető, első helyen levő pontnak kell lenni, hogy a rendszeredet kicsinek tartod meg. Tehát amíg lehet, nem növeled. Minél kisebb egy rendszer, annál egyszerűbb üzemeltetni. Ja, jáva architektek ezt se szokták figyelembe venni, hogy a lomjukat üzemeltetni is kell. Meg debuggolni.

    Annyira ne kapaszkodj már a szavakba, mert az eredeti felvetés annyi volt, hogy parsolni szeretne. Meg akar oldani egy problémát, amire létezik megoldás, nem is egy. Amit te javasoltál neki arra jó, hogy kézzel belökjön pár tesztadatot valahová. Egyik oldalon próbálsz ragaszkodni a "leírtakhoz" a másik oldalon meg "találgatsz". Ez tök jó, ha csak a vita kedvéért csinálod, bár már rögtön az elején megmondta, hogy köszi nem.
    Nyilván 3 szutyok property beolvasására nem kell még DB sem, nemhogy teljes stack, sem sed, awk, meg majdnem szabványos reguláris kifejezések, de ha egy kicsit felnézel a billentyűzetből, akkor láthatod a céljait jövőbelátás nélkül.

    Ha vitatkozni szeretnél csak, akkor biztosan találsz mást a környezetedben, ha meg van érdemi mondanivalód, akkor azzal kéne folytatni.

    A scriptedet lehet, hogy kidobod minden egyes változtatásnál, bár leginkább az ötletet kéne kukázni, mert semmi másra nem jó, csak egy éppen aktuális állapot kezelésére, ahol ha hiba van az awk/sed kifejezésekben, ott nagyobb gondban van egy harmadik ember, mintha egy konfigot kéne módosítani - feltételezem, hogy ért hozzá az ember, amit csinál, márpedig ez awk/sed esetében elég nagy szó.

  • floatr
    veterán

    az a baj a jáva nindzsákkal, hogy ha meglátnak egy új jáva szabványt, azonnal fel akarják használni akkor is, amikor nincs mire. Meg az is, hogy soha nem az előttük levő feladatra koncentrálnak. De ha nem, akkor mire?

    De az is látszik a párbeszédből, hogy sokan úgy programoznak linuxon, hogy fogalmuk sincs, mit jelent linuxon programozni. ha linuxon windowsosan akarsz programozni, akkor tegyél fel windowst.

    Tele van a padlás olyan jávás szakemberekkel, akik akkor is atomtengeralattjáróról kilőtt interkontinentális ballisztikus rakétával lőnek, ha csak egy veréb a célpont.

    Szerinted melyikben valószínűbb, hogy hiba lesz: egy két soros shell szkriptben vagy egy elastic-ban? Melyikre kell több erőforrást felhasználni, kiemelten emberit is: egy szkriptre vagy egy rakás jáva vm-re meg benne futó rakás szolgáltatásra? melyiket kapod meg összességében olcsóbban? hint: nem a jávát, arra mérget vehetsz.

    És hiába fikázod a szkript nindzsákat, az objektív műszaki érvek ebben a feladatban nem a jáva mellett szólnak.

    Az ELK nem új. Van mire használni, leírtam, bár láthatóan nem sikerült beazonosítani a komponenseket. A logstash elég messze van a "ballisztikus rakétádtól".
    Nem fog megállni a dolog egy property->insert trafónál, ezt nem akarod látni, nem veréb a célpont. A script nem két soros lesz, azt már most garantálom, nem rugalmas, nem használható tovább, csak egy darab script, ami szerencsés együttállásnál elég lehet workaroundnak. Rendszerszemlélet zéró.

  • floatr
    veterán

    tökéletesen leírtad, hogy mi a baj egyes java architektekkel.
    elk meg logstash meg elastic meg kibana meg a franc se tudja hány cuccot felrakni azért, hogy bekerüljön egy mért érték egy adatbázisba, az durva tévedés. mindegyik szoftver bugos. ha telerakod szoftverrel a rendszert, akkor teleraktad hibával is.

    amit két sorban meg lehet írni shellben, ahhoz nem rakunk fel akkora architektúrát, hogy csak a0-s lapra lehet kinyomtatni. és ha még valaki a dockert is elkezdi emlegetni, sikítani fogok.

    Az a baj a script ninjákkal, hogy mindig arra a feladatra koncentrálnak, ami az orruk előtt van. Ezt meg lehet oldani két sor scripttel, ja várj még mókolok rajta.
    Szinte minden esetben, amikor egy ilyen kérdés felmerül, jönnek az újabb ötletek, és a végén te is tudod nagyon jól, hogy nem kötélhintát szeretne az emberünk, hanem komplett vidámparkot. Aztán abban a vidámparkban találd meg az egyes scripteket, amiket jó esetben a szerzője tud értelmezni. Tele van a padlás ilyen "szakemberekkel", akik indulatból oldanak meg mindent.

    az elastic maga az "adatbázis"
    a kibana egy dashboard, amivel megjeleníted a méréseket, nyilván nem terminálon queryzgetve akarod nézegetni
    a logstash a "pumpa", amivel tetszőleges forrásból, és formátummal betolod az adatokat, ha netán bejönnek új mérések

    Ettől függetlenül lehet scriptekkel gányolni

  • skoda12
    aktív tag

    tökéletesen leírtad, hogy mi a baj egyes java architektekkel.
    elk meg logstash meg elastic meg kibana meg a franc se tudja hány cuccot felrakni azért, hogy bekerüljön egy mért érték egy adatbázisba, az durva tévedés. mindegyik szoftver bugos. ha telerakod szoftverrel a rendszert, akkor teleraktad hibával is.

    amit két sorban meg lehet írni shellben, ahhoz nem rakunk fel akkora architektúrát, hogy csak a0-s lapra lehet kinyomtatni. és ha még valaki a dockert is elkezdi emlegetni, sikítani fogok.

    #10802-ben már volt szó dockerről :D

  • #68216320
    törölt tag

    a véleményedtől függetlenül súlyos hiba java vm-et meg java-s programot indítani ott, ahol egy sed vagy awk program tökéletesen elegendő. attól, hogy van java a gépeden, még nem kell minden esetben használni.
    a mysql-nek van parancssori kliense, az tökéletes arra, hogy betöltsd az adatokat az adatbázisba.

    "jó lenne java exec megoldással a kimenetet elkapni és parse-olni.": azt sem értem, ehhez minek java exec. feltalálták a csővezetéket, tessék szabvány bemenetet olvasni és parsolni, ha mindenáron java-ban akarod.

    bocs, de úgy gondoltam, hogy nem központi probléma megoldani, hogy egy linuxon futó program kimenete hogy kerül egy windowson futó programba. te írtad, hogy linuxon futó program szenzor adatokat gyűjt. miért akarnák windowson adatbázisba rakni?

    hagyd a fenébe a java-t, shell szkript topicban vagy linux kezdő topicban megmondják a jó megoldást. szenzor program kiolvassa a mért értékeket, kiküldi szabvány kimenetre, azt sed-del, awk-val vagy shell szkripttel átalakítod szabvány sql insert utasítássá, azt bele küldöd a mysql kliensbe és kész. ennyi. nem java, meg legyen kéznél jdbc driver, meg vm meg a fene se tudja még mi minden függőség.

    Van pár szempont ami miatt a sheel-ből nem volna jó dolgoznom.

    - Egyrészt szeretném a beérkezett értékeket validálni mielőtt tárolom. Persze ezt is lehet bash-el, de java kényelmesebb volna.
    - A szerveren mindenképp van java, mert van egy API, amivel pedig le lehet majd kérdezni ezeket. Tehát a függőségek mindenképp megvanak már
    - Szeretném magát az sql részt nem látható módon használni, tehát nem volna jó, ha az insert into mondjuk script-ben lenne
    - Lenne windows-os gép is, ami szenzor adatot kap, ott akkor új megoldás kellene a parse-oláshoz (persze ott is megoldható)

    Amit mondasz, az mondjuk tökéletes megoldás lehetne arra az esetre, amikor az rpi-ket kell használnom majd. Ott problémás lenne a java.

    Azon gondolkodom, hogy esetleg tényleg a megoldás az lenne, hogy egy API-t csinálni java-ban, amit a kliensek hivogatnak és a már parse-olt adatokat azon keresztül tolnák befelé. Merthogy a szerveren amúgy is van tomcat. Aztán ott validálnám és ha oké tárolnám (mysql, influx, miegyéb) Ha nem oké majd a response jelzi a kliensnek.
    Ekkor a kliens lehet mondjuk a mostani gép linux-al és akkor a sed szétszedné az adatokat (és mondjuk curl hívná az api-t). Ez járható lenne a későbbi rpi kliensek esetén is. A win-es megoldást nem tudom még, hogy ott miként lehetne szétkapni az adatokat és hívni az api-t, de gondolom ott sincs nagy csavar a dologban.

    Ez mennyire lenne járható út?

  • #68216320
    törölt tag

    A magam részéről mindenképpen szívlapáttal csapnám fejbe, aki erre a problémára java programot ír.
    bash shell + sed.

    szerk: letenni fájlba, linuxon, lyalylyly

    A modorod a szokásos, neked sem ártana egy szívlapát a képedbe.

    Aztán gondolom majd a sed tolja nálad az adatokat mysqldb-be (influxdb még hagyján) és ha netán win-en akarnám futtatni, akkor meg mivan? Szóval igen, java program kell. Pont java és pont azért, mert java.

  • Aethelstone
    addikt

    van adatbázisos megoldásod két program kommunikációjára úgy, hogy az adatbázis nem közös?

    Nincs, de pont erről vartyogok, hogy nem is szabadna lennie. A kommunikációt kommunikációs tecnológiákkal kell megoldani, a DB adattárolásra/lekérdezésre van.

  • Drizzt
    nagyúr

    van adatbázisos megoldásod két program kommunikációjára úgy, hogy az adatbázis nem közös?

    Miert kene, hogy legyen? Ha tobb alkalmazas irja ugyanazt az adatbazist, az a kaosz fele vezeto ut egyik elso lepcsofoka. Jo persze csak ha ket alkalmazas irja tenyleg, s szigoruan az egyik tablat csak az egyik irhatja, a masikat meg csak a masik, akkor nem lesz gond, de a db nem erre valo. Meg kell oldanod, hogy rajojj mikor jott uj uzenet, olvastak-e az uzenetet, feldolgoztak-e, stb. Onnantol kezdve, hogy ez nem igaz, baj lesz, mert nem lehet tudni ki mifele adatert felelos. Van-e erosebb kutya, vagy mero veletlen ki lesz a source of truth. Meg lehet persze history tablakba bevezetni oszlopot, hogy ki az iro alkalmazas/processz egy adathoz de elegge nyakatekert lesz. En hasznalnek socketet, vagy valamilyen felette levo absztrakciot. Vagy rmi-t. Vagy ha nagy megoldas kell, akkor Kafka, vagy Jms. Vagy persze elhangzott ezer, meg ezer Api, amit amugy tok egyszeru kezelni, pl. Soap, Rest, s kifejezetten erre valok.

  • Aethelstone
    addikt

    akik jáva könyvvel a kezükben születtek, azok valami message brokert fognak javasolni.
    én tolnék alájuk egy közös adatbázist, oszt jónapot.

    Szerintem ez itt még kicsit korai. A közös adatbázis meg szerintem erős antipattern a legtöbb esetben :)

  • twelvvy
    csendes tag

    pontosíthatnád, hogy melyik részéről kell a kotta, mert ebben van http/rest api, van adatbáziskezelés és van json is.

    Alapvetően gyakorlatilag bármiről, mivel ezeket a dolgokat nem használtam még sosem.

  • floatr
    veterán

    google-hoz api kulcs kell, ami lehet fizetős is.
    szerintem openstreetmap.

    Most megnéztem a google maps árlistáját, és elég csúnyán átszabták ahhoz képest, amire emlékeztem pár évvel ezelőttről.

  • smallmer
    őstag

    az alapvető kérdés, hogy mit akarsz.
    1. programozni tanulni.
    2. zenét streamelni.
    utóbbi esetben feltalálták az apacs webszervert, meg egy csomó http képes médialejátszót.

    Programozni szeretnék tanulni. Az alapok úgy érzem megvannak, sőt még annál kicsit több is. Most igazából ötletet szeretnék meríteni, esetleg tanácsot kapni, hogy miként induljak neki. Szerver - Kliens kapcsolatig megvagyok. Az is meg van, hogy átküldöm a zenét, csak az a gond, hogy mindenképpen le kell mentenem kliens oldalon, ahhoz hogy le tudjam játszani. Most igazából olyan library-t vagy ötletet keresek amivel megoldható lenne az, hogy ne kelljen lementeni a zenefájlokat kliens oldalon. :R

  • #68216320
    törölt tag

    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.

    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.

  • emvy
    félisten

    "Ez nem valasz -- ha nem akar hozzajarulni, akkor miert nem rugja ki az OpenJDK-n dolgozo fejlesztoit?": ha elolvastad volna a linket, ilyeneket olvashattál volna benne:
    "az Oracle valamikor 2015 második felében de facto leállította a Java EE fejlesztését és a fejlesztőket más, stratégiailag fontosabb projektekre csoportosította át": ez, openjdk szemszögből nézve, egyenértékű a kirúgással.

    "Az a baj, bambano, hogy fogalmad sincs az open source-rol csak hasznalni szeretned, de azt nem erted, hogy mitol mukodik (es mitol nem).": na végre, vala{k,m}i feldobta a napomat. ez legalább olyan súlyos ökörség, mint mikor le-sjw-ztek engem. ha gondolod, tárgyaljuk ki, de ne itt.

    Most akkor szerinted a JDK meg a Java EE az .. ugyanaz?

  • emvy
    félisten

    Ez nem valasz -- ha nem akar hozzajarulni, akkor miert nem rugja ki az OpenJDK-n dolgozo fejlesztoit? Nagyon szeretne nem hozzajarulni, de nem sikerul neki?

    Az a bajod, hogy a kozossegnek nagyobb szava lesz? Most akkor bambano OSS parti vagy nem?

    " The majority of the hundreds of developers building it[1] do it as their day job, and the vast majority of those are employed by Oracle (and others by Red Hat, IBM, Intel and others). Oracle has sponsored OpenJDK for the last 8-9 years, and has now completed open sourcing all of the previously closed bits of the JDK, some dating back to Sun, and some to BEA's JRockit (JFR, now part of OpenJDK 11), not to mention all the new work on the language and JVM including new GCs like ZGC and the new compiler, Graal (I just hope you don't feel too exploited by all this). Companies like Amazon, Netflix, Google, Twitter, Apple and many, many others (some of them have even forked OpenJDK internally) have not contributed significantly, despite depending so heavily on OpenJDK.

    So, like it or not, this is the reality of open source. A lot of companies are happy to use it freely but less happy to contribute the significant resources necessary to build it."

    Az a baj, bambano, hogy fogalmad sincs az open source-rol :) csak hasznalni szeretned, de azt nem erted, hogy mitol mukodik (es mitol nem).

  • emvy
    félisten

    szerinted az, hogy az oss egy kis szeletéhez hozzájárul, menti azt, hogy mekkora projekteket tett tönkre?
    szerinted az, hogy eddig hozzájárult a jdk-hoz, többet jelent, mint az, hogy ezentúl nem akar hozzájárulni?

    Honnan latod, hogy nem akar hozzajarulni?

  • emvy
    félisten

    "Persze, az Oracle rak bele a legtobb energiat": az oracle java területen jelenleg abba rak a legtöbb energiát, hogy kirázza a nyakából az egész kócerájt.

    "Vicces modon az Oracle kozutalatnak orvend az OSS kozossegben, pedig az OSS egyik legfontosabb kontributora a Java miatt.": az oracle ezerrel dolgozik azon, hogy mindent kidobjon, amit a sunnal megvett. azt az egy dolgot meg, amit nem akart kidobni, tönkrevágta. így lett mariadb, így lett a staroffice-ből balhés openoffice/libreoffice fork, így tolta a levesbe az opensolarist. komoly esély van rá, hogy a sparc architektúrát is dobják, aminek a végén semmi nem marad a sunból. csak tudnám, mi a bánatos francnak vették meg...

    > az oracle java területen jelenleg abba rak a legtöbb energiát, hogy kirázza a nyakából az egész kócerájt

    Szerinted az OpenJDK fejlesztesehez melyik ceg jarul hozza leginkabb?

  • Lortech
    addikt

    [link]
    "Fizetős lesz a java az Oracle-től": igen.
    "Aki nem szeretne, vagy nem tud fizetni, annak át kell mennie openjdk-ra": igen.

    tehát korrekt cikket olvastál és helyesen értelmezted.

    "Fizetős lesz a java az Oracle-től": igen.
    Nem.
    Még úgy sem állja meg a mondat a helyét, hogy a frissítések lesznek fizetősek.
    Azzal a kitétellel állja meg a helyét, hogy bizonyos főverziók frissítései és támogatása és bizonyos idő után.
    Mondhatná azt is, hogy lófütyit nektek, EOL után nem csinálok frissítést, helyette megpróbál pénzt csinálni belőle. Tetszik nem tetszik, nekem ugyan nem tetszik, de maradjunk a tényeknél egy szakmai topikban, a riogatást, félinformációk terjesztését, térítést meg hagyjuk.

    szerk: itthagyom, de áthúzom, mert félrevezető. Tévedtem, az állítás a 10-es verzióig bezárólag állja meg a helyét, az Oracle JDK használata a 11-es verziótól kezdve valóban nem ingyenes "üzleti célú" felhasználásra.

  • Lortech
    addikt

    lásd a hibaüzenetet:
    Exception in thread "main" java.lang.NullPointerException at hid_joy.HID_joy.main(HID_joy.java:35)

    :)

    többieknek: :R

    Jaj istenkém, hát így hívják az exceptiont, béna, inkonzisztens elnevezés. És akkor mivan?
    Historikusan (pl. C és társai esetén) mutató típushoz olyan többletjelentést (pointer aritmetika) társítunk, ami Java referenciáknak nincs, ezért szoktuk különválasztani a kettőt.

  • Ursache
    senior tag

    igen, téves.

    az elemi típusoknál, mint ami az int, ha deklarálod, lefoglalódik a helye. az értéke valami lesz, nem tudjuk, hogy inicializálás nélkül mi az értéke (leginkább a korábbi memória használat után ottmaradt szemét), de egy egész számként értelmezhető szám lesz ott.

    ezzel szemben az Int-nél (nagybetűvel), a deklaráció eredménye egy pointer, aminek a kezdeti értéke null, és amikor az Int típusú objektumot példányosítod, akkor lesz benne egy olyan pointer, ami az adott példányra mutat és nem null.

    ugyanez igaz a Stringre.

    https://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.12.5

    Definiált default értékük van a primitíveknek javaban.

  • Aethelstone
    addikt

    igen, téves.

    az elemi típusoknál, mint ami az int, ha deklarálod, lefoglalódik a helye. az értéke valami lesz, nem tudjuk, hogy inicializálás nélkül mi az értéke (leginkább a korábbi memória használat után ottmaradt szemét), de egy egész számként értelmezhető szám lesz ott.

    ezzel szemben az Int-nél (nagybetűvel), a deklaráció eredménye egy pointer, aminek a kezdeti értéke null, és amikor az Int típusú objektumot példányosítod, akkor lesz benne egy olyan pointer, ami az adott példányra mutat és nem null.

    ugyanez igaz a Stringre.

    Nem igaz. A primitív típusoknak van konkrét default értékük.

    byte 0
    short 0
    int 0
    long 0L
    float 0.0f
    double 0.0d
    char '\u0000'
    boolean false

  • Sokimm
    senior tag

    én arra szoktam tesztelni, hogy null-e vagy sem...
    if (info.getProductString()!=null)

    Köszi, kipróbálom, ha odajutok! :R
    Amúgy lehet, hogy a mutató célja (memória címterület, amiből az info.get.... et kérdeznénk) nem is létezik (nem adtak a gyártók az eszköznek nevet, és emiatt címet se foglaltak le a "névnek"). Tehát hibát dob, mert olyanra mutatok, ami nem is létezik (nem hogy csak null lenne).

    A string vizsgálat meg lehet logikailag nem egymás melett létező dolgokat (ez==ezzel?) vizsgál, hanem csak bele néz a mutatott területre (ha tud), és kiköp egy választ. Mivel nem tud belenézni, nem is hibának érzékeli, hanem "nem string" üzenettel tér vissza. Ha van lefoglalva terület, és bele tud nézni, és még netalán String is, akkor kiköpi válasznak, hogy true.

    Ez a gondolatmenet hülyeség?

  • mobal
    nagyúr

    "ha zavarnak a meglevo bugok, akkor hasznalj mast, de ha nem egy hosszutavo projekt": hosszútávú.
    ha nem használok olyan környezetet (nem csak az ide-t ideértve, hanem az összes többi cuccot is), akkor belefuthatok abba, hogy a böngészők már nem képesek megjeleníteni, amit megcsináltam. Mint például a woodstockot nem kezelik az újabb netbeansek.

    "java -jar myApp.jar": most vagy elkerülte a figyelmed, hogy webes cucc lenne, vagy komolyan gondoltad, de akkor vadásszak web konténert, adatbázis kezelő réteget, stb. ? ezt inkább kihagynám.

    IntelliJ-t én személy szerint csak ezt javaslom neked. Js támogatás valóban nincs, de VS Code, pedig egy kiváló alternatíva a ui elkészítéséhez.

  • floatr
    veterán

    Segítsetek pls. stratégiai döntésben, hátha ti jobban informáltak vagytok :)
    Anno elkezdtem egy programot írni, de félbeszakadt, viszont mostanában szeretném befejezni.
    netbeansben fejlesztettem, glassfishben futtatnám. Mivel nem sokat haladtam vele, ha kidobnám az egészet, ebben az állapotában még nem fájna. A kérdések:

    Ami nem változtatható: debianon fejlesztenék linuxra, adatbáziskezelő postgres, a cucc webes alkalmazás lenne. Amit csak végszükség esetén változtatnék, a nyelv: a java.

    1. amennyire én látom, a netbeans meghalt. kérdés:
    1a: a netbeans tényleg halott, meneküljek, de akkor mire?
    1b: nem, a netbeanben érdemes fejleszteni, mert támogatott cucc lesz még sokáig

    2. az oracle által átvett projektek közül nagyjából minden fontosabbat megdöglesztett az oracle. kérdés:
    2a. maradjak a glassfishnél, mert azt nem fogja megölni, lesz update hozzá
    2b. váltsak, de akkor mire? tomcatre? ee cuccokat eddig nem használtam.

    3. milyen keretrendszert érdemes elsőre megtanulni? springs mvc-t?

    Még annyit, hogy nem tervezem, hogy ebből éljek meg. Ha a melóban kell valami, azt megcsinálom, de életcélnak nem választottam.

    kösz előre is.

    Úgy vettem észre, hogy a tech giant-nek mondott cégek kifejezetten menekülnek az oracle dolgai elől. Ha körbenézel IDE fronton, akkor láthatod, hogy minden az eclipse és idea variánsokról szól, de feltörekvőben van a vs code a redhat-es java pluginjével. Sajnos vagy sem, senkit nem érdekel a netbeans, kiszorulóban van.

    A szerver témában sokkal árnyaltabb a dolog, de ha már leírtad, hogy nem érdekel az EE, akkor én arra szavaznék, amire a google is letette a voksát: jetty. Nagyon sok fejfájást okozott nálunk a tomcat.

    MVC: elég egyértelműen adódik a spring mvc vagy épp a boot. Többek közt amiatt is, mert a megfelelően társított egyéb spring projektekkel tökéletesen együttműködik, és megfelelő frontend technológiával brutálisan gyorsan lehet eredményt elérni.

    De mondok még valamit, ami az oracle bohóckodásának köszönhető. Gyakorlatilag az összes nagyobb piaci szereplő elindult Kotlin irányba, pl a spring is. Kisebb projektekben próbálkozunk már vele JVM-re, és úgy látom, hogy át tudja venni a java helyét, és nem csak amiatt, mert licencelés tekintetében meg tudnak szabadulni az oracle marhaságaitól, hanem mert elképesztően hatékony de általános célú is. Itt és itt van két példa, ami talán magyarázza, hogy miért mondom ezt, de lehet h az is elég, ha megnézed a kotlin stdlib lehetőségeit. Nem mellesleg érdemes megnézni a kapcsolódó trendeket. A java fokozatosan veszít a népszerűségűből, miközben a kotlin iránti érdeklődés exponenciálisan nő. Pláne ha az oracle által lesajnált enterspájz fejlesztők rájönnek, hogy nem csak androidhoz jó.

  • emvy
    félisten

    bocs, de ha világos lett volna, nem kérdezek.

    kösz mindenkinek.

    Kerdezzel, megirjuk :) azert mondtam, h olvass utana, mert teljes alapozot itt nehezen fogunk tudni adni.

  • emvy
    félisten

    "ha zavarnak a meglevo bugok, akkor hasznalj mast, de ha nem egy hosszutavo projekt": hosszútávú.
    ha nem használok olyan környezetet (nem csak az ide-t ideértve, hanem az összes többi cuccot is), akkor belefuthatok abba, hogy a böngészők már nem képesek megjeleníteni, amit megcsináltam. Mint például a woodstockot nem kezelik az újabb netbeansek.

    "java -jar myApp.jar": most vagy elkerülte a figyelmed, hogy webes cucc lenne, vagy komolyan gondoltad, de akkor vadásszak web konténert, adatbázis kezelő réteget, stb. ? ezt inkább kihagynám.

    Spring Bootban, Play-ben, stb mind ott van az, amire szükséged van. De ha az EE-vel már elkezdted, akkor csináld azzal. És olvass utána kicsit, mert láthatóan nem vilagos, h mi mit csinál.

  • Aethelstone
    addikt

    Segítsetek pls. stratégiai döntésben, hátha ti jobban informáltak vagytok :)
    Anno elkezdtem egy programot írni, de félbeszakadt, viszont mostanában szeretném befejezni.
    netbeansben fejlesztettem, glassfishben futtatnám. Mivel nem sokat haladtam vele, ha kidobnám az egészet, ebben az állapotában még nem fájna. A kérdések:

    Ami nem változtatható: debianon fejlesztenék linuxra, adatbáziskezelő postgres, a cucc webes alkalmazás lenne. Amit csak végszükség esetén változtatnék, a nyelv: a java.

    1. amennyire én látom, a netbeans meghalt. kérdés:
    1a: a netbeans tényleg halott, meneküljek, de akkor mire?
    1b: nem, a netbeanben érdemes fejleszteni, mert támogatott cucc lesz még sokáig

    2. az oracle által átvett projektek közül nagyjából minden fontosabbat megdöglesztett az oracle. kérdés:
    2a. maradjak a glassfishnél, mert azt nem fogja megölni, lesz update hozzá
    2b. váltsak, de akkor mire? tomcatre? ee cuccokat eddig nem használtam.

    3. milyen keretrendszert érdemes elsőre megtanulni? springs mvc-t?

    Még annyit, hogy nem tervezem, hogy ebből éljek meg. Ha a melóban kell valami, azt megcsinálom, de életcélnak nem választottam.

    kösz előre is.

    Spring Boot + Eclipse.
    Miért? Csak. Nekem pl. ez a kombó jön be. Felület Vaadin vagy GWT, szigorúan szubjektíve.

  • RexpecT
    addikt

    "ha zavarnak a meglevo bugok, akkor hasznalj mast, de ha nem egy hosszutavo projekt": hosszútávú.
    ha nem használok olyan környezetet (nem csak az ide-t ideértve, hanem az összes többi cuccot is), akkor belefuthatok abba, hogy a böngészők már nem képesek megjeleníteni, amit megcsináltam. Mint például a woodstockot nem kezelik az újabb netbeansek.

    "java -jar myApp.jar": most vagy elkerülte a figyelmed, hogy webes cucc lenne, vagy komolyan gondoltad, de akkor vadásszak web konténert, adatbázis kezelő réteget, stb. ? ezt inkább kihagynám.

    Én nemrég Spring Bootban raktam össze egy mini projektet, amiben egy endpoint egy MySQL adatbázisból ad vissza JSON-ben adatokat. STS-ben egyszerűen és gyorsan lehet fejleszteni, és valóban ahogy fentebb is írták, "java -jar xy.jar" -al lehet futtatni a service-t(Tomcat-et tartalmaz beépítve, de ha akarsz akkor csinálhatsz WAR file-t is).

  • G.Zs.
    senior tag

    "ha zavarnak a meglevo bugok, akkor hasznalj mast, de ha nem egy hosszutavo projekt": hosszútávú.
    ha nem használok olyan környezetet (nem csak az ide-t ideértve, hanem az összes többi cuccot is), akkor belefuthatok abba, hogy a böngészők már nem képesek megjeleníteni, amit megcsináltam. Mint például a woodstockot nem kezelik az újabb netbeansek.

    "java -jar myApp.jar": most vagy elkerülte a figyelmed, hogy webes cucc lenne, vagy komolyan gondoltad, de akkor vadásszak web konténert, adatbázis kezelő réteget, stb. ? ezt inkább kihagynám.

    A Spring Bootban ott a beagyazott web container.
    IntelliJ-nel figyelj arra hogy alapvetoen fizetos cucc es az ingyenes verzioban nincs Javascript tamogatas. Ha esetleg kell az is, es ingyenes IDE kell, akkor masfele nezelodj. Mondjuk egy STS jo lehet.

  • emvy
    félisten

    "Netbeans nem lesz kevesbe hasznalhato attol, hogy kevesbe nepszeru.": ezt értem, csak a kérdés az, lesz-e, aki fejleszti, javítgatja a bugokat. mert a webjükön a release map szerint 2016. vége felé lenni kellett volna 8.2.1-esnek, de nincs. nem jött be az eclipse, de inkább a projekt elején váltanék, mint közben, ha muszáj.

    ahhoz, amit csinálni kellene, szerintem nem kell ee.

    "Spring vagy Dropwizard eseten nincs szukseg appszerverre, tehat nem kell se Glassfish, se WF.": és akkor min fogom futtatni? eddig glassfisht használtam, nem dobnám ki, ha nincs súlyos ellenérv.

    Ok, ha zavarnak a meglevo bugok, akkor hasznalj mast, de ha nem egy hosszutavo projekt es nem celod Javazni kesob, akkor en nem feltetlenul allnek neki uj IDE-t megszokni. Ahogy akarod.

    > és akkor min fogom futtatni

    java -jar myApp.jar

  • emvy
    félisten

    Segítsetek pls. stratégiai döntésben, hátha ti jobban informáltak vagytok :)
    Anno elkezdtem egy programot írni, de félbeszakadt, viszont mostanában szeretném befejezni.
    netbeansben fejlesztettem, glassfishben futtatnám. Mivel nem sokat haladtam vele, ha kidobnám az egészet, ebben az állapotában még nem fájna. A kérdések:

    Ami nem változtatható: debianon fejlesztenék linuxra, adatbáziskezelő postgres, a cucc webes alkalmazás lenne. Amit csak végszükség esetén változtatnék, a nyelv: a java.

    1. amennyire én látom, a netbeans meghalt. kérdés:
    1a: a netbeans tényleg halott, meneküljek, de akkor mire?
    1b: nem, a netbeanben érdemes fejleszteni, mert támogatott cucc lesz még sokáig

    2. az oracle által átvett projektek közül nagyjából minden fontosabbat megdöglesztett az oracle. kérdés:
    2a. maradjak a glassfishnél, mert azt nem fogja megölni, lesz update hozzá
    2b. váltsak, de akkor mire? tomcatre? ee cuccokat eddig nem használtam.

    3. milyen keretrendszert érdemes elsőre megtanulni? springs mvc-t?

    Még annyit, hogy nem tervezem, hogy ebből éljek meg. Ha a melóban kell valami, azt megcsinálom, de életcélnak nem választottam.

    kösz előre is.

    1: Netbeans nem lesz kevesbe hasznalhato attol, hogy kevesbe nepszeru. Ha az megy, akkor semmi gond nincs azzal, ha azt hasznalod. Ha hosszutavon Java-znal, akkor mondanam, hogy IntelliJ, de az egyik legjobb fejlesztonk a mai napig Netbeanst tol, es ettol meg teljesen jol mukodik minden.

    2) Wildfly vagy Wildfly Swarm, ha EE kell

    3) Most azt dontsd el, hogy EE vagy sem. Ha nem akarsz EE-t, akkor Spring Boot peldaul (bar szerintem boven tul sok magic van benne), ha nem szereted a tul sok varazslatot, akkor Dropwizard. Spring vagy Dropwizard eseten nincs szukseg appszerverre, tehat nem kell se Glassfish, se WF.

  • emvy
    félisten

    "Es kerdes, hogy mondjuk service discoveryt irjunk mi, vagy hasznaljunk software defined networkinget?": helyes válasz: egyrészt elkerüljük, hogy service discovery-re legyen szükség, másrészt ha nem kerülhető el, akkor alap oprendszer cuccokkal oldjuk meg.

    "De hiba mindenben van.": így van. vagyis a hibák össz-számát azzal tudod csökkenteni, ha a felhasznált komponensek darabszáma konvergál az elvi minimumhoz.

    "A Docker nem tokeletes (sot, bugos fos), csak osszevetettem egy csomo minden massal, es per pillanat ez a kombo oldja meg a problemakat kozeptavon.": bare metállal is összevetetted?

    egyébként is a docker meg az openstack környékén épp most tört ki egy orbitális balhé, úgyhogy bajban leszel.

    "tehat inkabb human kerdesrol van szo.": lehetett érezni, hogy pebkac van :)

    ha te üzemeltetsz egyedül, akkor nem elosztott csapat. maximum ki kell verekedned a csapatban a téged megillető pozíciót, ami szociológiai probléma. de sokat segít, ha csak nálad van root jelszó, a többi meg max. kibicel.

    a service discoveryre visszatérve: ezzel, hogy úgy működik a hálózat, hogy bedobsz egy service-t és azt a többiek majd felfedezik, szemléletbeli problémát látok. ha te felügyeled a teljes lomot, akkor nem discoveryt kell csinálni, hanem leltár alapján beállítani azt, amit felfedezni kellene. ha politikai irányból szabad példát hozni, akkor amit csinálsz, az a szabadversenyes kapitalizmus. elkezdődik egy szolgáltatás, a piac meg vagy észreveszi, vagy nem. amit én javaslok, az a komcsi módszer: központi tervintézet előírja mindenkinek, hogy pontosan mit kell csinálni. ez utóbbi szerintem sokkal egyszerűbb.

    a felskálázásról meg az a véleményem, hogyha 1000x teljesítményre kell felskálázni a cuccot, akkor bizonyára van már a plusz lóerőből valamennyi, ami majd ehhez kell. azon a plusz lóerőn kell felépíteni az új rendszert, új szemlélet szerint, nulláról, és nem a régi rendszer farigcsálásával konvergálni valamerre. ha meg nem tudnak pár plusz szervert biztosítani ehhez, akkor ott kell őket hagyni a fenébe.

    "Postgres ele olyan interfeszt rakni hogy tudja azt, amit nekunk kell, az sokkal tobb melo.": ha jól láttam, két dologra akarod használni a consult: egyrészt értesüljön a gép, hogy konfig váltás volt, másrészt megkapja a konfigot. mindkettőre triviálisan megfelel a postgres, különösebb fejlesztés nélkül. egyébként sem tudok elképzelni adatbáziskezelő nélkül ilyen projektet, tehát valami már úgyis van alatta. ha nem postgres, akkor mysql, teljesen mindegy, a postgrest csak példának mondtam.

    > egyébként is a docker meg az openstack környékén épp most tört ki egy orbitális balhé

    OpenStack korul, nem a Docker korul. A kettonek sok koze nincs egymashoz.

    > a service discoveryre visszatérve:

    Tul keves konkretum hangzott el idaig (reszemrol is), tehat errol most ne vitatkozzunk.

    > , hogyha 1000x teljesítményre kell felskálázni a cuccot, akkor bizonyára van már a plusz lóerőből valamennyi,

    Ha ugy tudsz skalazni, hogy gepeket pakolsz a rendszer ala, az fasza. Nalunk nem ez a helyzet.

  • emvy
    félisten

    nem ezzel a konkrét rendszerrel van bajom, hanem azokkal az architektekkel, akik úgy terveznek architektúrákat, hogy az üzemeltetés szempontjait nem veszik figyelembe. utána meg a rendszergazdák beleszakadnak, hogy életben tartsák a lomot. az ilyen "összehord a szél nagy halomba egy csomó appot, és üzemeltesd" hozzáállásból hosszabb távon mindig katasztrófa lesz.

    tudod, hogy honnan lesz ezekhez a cuccokhoz supportod? elhiszed, hogy most nincs bennük hiba? elhiszed, hogy legalább addig nincs bennük hiba, míg meg nem unod és fel nem mondassz? (attól kezdve MVP: MásValaki Problémája lesz). biztos vagy benne, hogy nem hagyják abba a fejlesztését?

    a másik probléma egyes architektekkel, hogy fogalmuk sincs a hálózat működéséről. arról meg pláne, hogy hogyan lehetne ugyanazt sokkal egyszerűbben megoldani.

    a unix alapelve: KISS. keep it stupid and simple. ami nem kell, azt hajítsd ki, különben felesleges kockázatot vállalsz.

    a magam részéről, ha választanom kellene, hogy consult rakok fel vagy postgrest, a postgres két fényévnyivel győzne. mert postgres lesz. lesz, aki kijavítja a hibáit. lesz hozzá support. consulhoz? weave helyett meg, ha nagyon muszáj, akkor openvpn.

    de azt is el lehetne kezdeni firtatni, hogy valójában kell-e docker neked. csak a világ olyan, hogy aki ezt meg meri kérdezni, az eretnek és máglyára vetik.

    En uzemeltetek, per pillanat. Marmint ha valami osszefossa magat, akkor nincs mas, aki eletre keltse, csak en. Tehat pont azert vannak ezek, hogy az en eletem egyszerusodjon. Ez van.

    > elhiszed, hogy most nincs bennük hiba?

    Nem. De hiba mindenben van. Es kerdes, hogy mondjuk service discoveryt irjunk mi, vagy hasznaljunk software defined networkinget? Sajnos a realitas az, hogy ha mi megirjuk, azt joval nehezebb uzemeltetni a bugok miatt, mintha felrakok egy weave-t.

    Postgres vs. Consul: almat kortevel. Total mast tud a ketto, de tenyleg. Ha a Hashicorp csodbe megy, akkor a Consult kicserelni masra kb. semmi, de a Postgres ele olyan interfeszt rakni hogy tudja azt, amit nekunk kell, az sokkal tobb melo.

    > valójában kell-e docker neked.

    O, ezt a kerdest joparszor feltettem magamnak. A Docker nem tokeletes (sot, bugos fos), csak osszevetettem egy csomo minden massal, es per pillanat ez a kombo oldja meg a problemakat kozeptavon.

    A helyzet az, hogy a problemaim 90%-a nem technikai jellegu, ergo nem az a kerdes onmagaban, hogy mik a helyes architekturalis elemek technikai szempontbol. Hanem az, hogy a developereket hogy lehet ra megtanitani, meg lehet-e, mennyi ido, etc. etc., tehat inkabb human kerdesrol van szo.

    Ha az lenne a kerdes, hogy egy adott appot hogy lehet a leguzembiztosabban deployolni 2016-ban, akkor egyaltalan nem tuti, hogy a Docker lenne ra a jo valasz. Egy legacy rendszer atalakitasanal, durva skalazasnal (1000-szeres terhelesre kell atfabrikalni az egy eleg nagy rendszert kb. 1 ev alatt), massziv feature pressure mellett, elosztott csapatban (cseten tudsz kommunikalni, nagyreszt) -- tok mas problema.

  • emvy
    félisten

    úgy látom, itt egy totálisan elbaltázott infrastruktúra tákolásáról van szó.
    mondom én, hogy rendes architektre lenne szükségetek :P

    ha nem ad-hoc módon indítgatnátok a konténereket, akkor nem csak consulra nem lenne szükség, hanem erre a weave-re sem.

    Tovabbra is mondom, ez egy irtozatosan gazos architektura evolucioja valami jobb fele. Ezenkivul full remote work, mindennek mennie kell egy dev laptopon is.

    A weave epp ezert van: fel tudom loni az egesz rendszert egy laptopon meg egy 10 szerverbol allo clusteren is, az app ugyanugy mukodik teljes egeszeben. Az alternativa mi lenne? DNS-re szukseged van valahogy, vagy nem? Tenyleg erdekel, hogy mi a bajod vele.

  • emvy
    félisten

    és a node-ok közötti hálózat is támogatja?
    nem értem, minek raksz fel egy komplett infrastruktúrát olyan feladatra, amit valószínűleg létező cuccal is meg lehet oldani.

    például konfig postgresben egy konfig táblában, módosításra trigger, amit figyel az app. adatbázisod nagy valószínűséggel van. vagy dhcp opcióval, esetleg snmp trap-pel is lehet figyelmeztetni.

    most arról nem beszéltem, hogy miért nem lehet úgy összerakni az alatta levő infrastruktúrát, hogy ne kelljen érdemi konfig változtatást csinálni. például pont a proxynál valószínűleg lehetne.

    > például konfig postgresben egy konfig táblában

    Igen, ez lehetne, de sajnos mindenfele szabvanyok miatt nem fogunk tudni a fo adatbazisba konfigot irni on demand. Ha meg felrakok egy masik postgrest csak erre, az mar kapasbol sokkal bonyolultabb, mint pl. a Consul (el tudom mondani, hogy miert).

    Az alapveto infrastrukturat nem mi menedzseljuk hanem ... 'robotok'. (Ertsd: azt nem sikerult megoldani honapok alatt, hogy egy uj VM-et egy regi VM kulso IP-je moge rakjanak be.)

    A node-ok kozotti halozat egyebkent ez: https://www.weave.works/products/weave-net/

  • emvy
    félisten

    nem értem a válaszod, de azért megkérdezem: milyen konfigot akarsz tárolni?

    Fut egy program, es van olyan konfiguracio, amit szeretnek megvaltoztatni az alkalmazas ujrainditasa nelkul. Peldaul mittudomen: proxy szerver neve.

  • emvy
    félisten

    nekem megmondta a licenszdíjakat is...

    Asszem 500 euro volt a single user kb. fel eve, amikor vettem. Az nem annyira dramai, ha tenyleg segit komoly ugyeket megoldani.

  • emvy
    félisten

    tomketet nem használtam még komolyan, de ötletek:
    1. próbálj meg verziót váltani. jávából is, konténerből is, liferay-ból is. felfelé is, lefelé is.
    2. van, hogy az adatbázis kapcsolat leakel. ha be tudsz állítani olyat, hogy x darab sql utasítás után zárja le az adatbázis kapcsolatot, az segíthet
    3a. nekem glassfish-sel van ilyen problémám, ott a session serializációs adatok leakelnek néha, attól áll fejre. megpróbálhatnád azt, hogy egyszer megvárod, amíg teljesen megborul, leállítod, és megnézed, hogy nem hagy-e valami nagy fájlt a vinyón.
    3b próbáld meg beállítani, hogy a session-öket x idő után automatikusan bezárja.

    Ezeket egyebkent mind megmondja a YourKit.

  • MrSealRD
    veterán

    min fut, milyen konténerben, melyik jáva van alatta?
    ha linuxon fut, akkor strace a virtuális gépre.

    Egy Vmware-es VM-ben MS Server 2008R2-n fut tomcat alkalmazásszerveren. Java 7.

    Jelenleg úgy van, hogy a VM-nek van 1x GB RAM-ja. Ezen fut három tomcat...ebből az egyiket kellene vizsgálni. A tomcat úgy van paraméterezve, hogy max 4GB memóriával tud gazdálkodni. (-Xmx)

    De elég magas a kihasználtság. Ha jól emlékszem átlagban >80%. Ráadásul ha nem kap restartot egy hétig akkor úgy belassul, hogy 1 usert nem kiszolgálni...nem, hogy több százat.

  • bundli
    tag

    Nem teljesen sikerült működésre bírnom valamiért a példakódot, ami fent van a honlapon, máshol pedig nem találtam róla szinte semmit az interneten.

    Esetleg valami más megoldás nincs, ahol viszonylag jó működő példakód van megadva?

  • mik azok a gpx fájlok?
    firefox-szal próbáltad már?

    A gpx fájlban útpontokat tárólnak XML-el leírva.
    Nem próbáltam firefoxal de végülis a fent említett "addig ütjük amíg jó lesz" módszer megoldotta 😁

  • Orionk
    senior tag

    az isten barma júzer első mozdulattal egy hosszú usernevet vagy jelszót fog beleírni. hosszú alatt tényleg hosszút értek, mondjuk 700 ezer betűből állót.
    másodikra ékezetet, szóközt, stb. speciális karaktereket
    harmadikra olyan karaktereket, amikkel az adatbáziskezelőt lehet fejreállítani. mindenre van xkcd.

    ráadásul a találgatások ellen sem ártana védekezni, tehát x darab próbálgatás után lassuló felület vagy kitiltás.

    Hogyan lehet az ellen védekezni, hogy az adatbázis kezelőt ne érhesse el?

    köszi

  • tboy93
    nagyúr

    én pl. a fórummotor kereső funkcióját...

    Úgy sose lesz belőlem "PH kedvence" ;]

    Ezeket a könyveket ajánlottátok itt a fórumon:
    Java Servlet c könyv
    Head First Java 2nd
    Head First Design Patterns
    Hatékony Java

    Még annyi kérdésem lenne, hogy milyen sorrendben érdemes nekiesni?

  • floatr
    veterán

    ha az üzemeltetés minimális szinten is hozzáértő, akkor nem hagyja, hogy egy olyan gépen buildelődjön a program telepítője, amiről nem tudja, hogy mi van rajta.

    tehát minden esetben, amikor a programozó csinálja a telepítőt (nyilván nagyobb projektet feltételezve), ott az üzemeltetés kaszkadőrködik.

    ui: láttál már nagyobb halom vírusos telepítőcd-t? :P

    Ha az üzemeltetés hozzáértő, akkor tudja, hogy melyik gépen mi van, és éppen mi fut :P

    (#8147) RexpecT
    Jaja, régebben scriptek halmaza gondoskodott az automatizált telepítésről, frissítésről. Most continuous integration a varázsszó. Projektet eleve így érdemes elkezdeni, mert anélkül mindenki csak szenved vele.

  • Aethelstone
    addikt

    nulláról induló projekt, az a java lesz benne, amit az elkövetkezendő 20 percben ti mondtok :)
    nekem egy hajszállal szimpatikusabb a sunos oracle-s java, mert az telepítéskor nem turkál annyit az alap oprendszerben, mint az openjdk.

    Linux alatt azt, ami a disztró alap tárolóiban van. Ez az openjdk a debianban. Pont. :)

  • mobal
    nagyúr

    nulláról induló projekt, az a java lesz benne, amit az elkövetkezendő 20 percben ti mondtok :)
    nekem egy hajszállal szimpatikusabb a sunos oracle-s java, mert az telepítéskor nem turkál annyit az alap oprendszerben, mint az openjdk.

    Tudomásom szerint az OpenJDK és az Oracle JDK 90% ugyan az. Napokban telepítettem egy Debian-ra OpenJRE-t, és a mérete a fele akkora volt.

  • mobal
    nagyúr

    linux. akkor használjam 8.1-es netbeanshez a debian jessie beépített jdk-ját?
    $ java -version
    java version "1.7.0_85"
    OpenJDK Runtime Environment (IcedTea 2.6.1) (7u85-2.6.1-6+deb8u1)
    OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode)

    kösz

    Ha 7-es Java kell neked szerintem igen. NetBeans Idea?

  • Aethelstone
    addikt

    új projekthez (webes glassfishes) sun/oracle jdk-t vagy openjdk-t javasoltok?

    tia

    Linux v. Windows?
    Windowshoz Oracle, Linuxhoz Openjdk.

  • ha a szervered minden portra figyel, akkor az a szerver egyáltalán nem fog tudni forgalmazni a neten.
    a szerver progid miért nem a http porton figyel?
    vagy ha ott nem lehet, akkor csinálj bele egy apró programocskát, ami megmondja, hogy hol figyel a szerver progi, ha figyel.

    Azt hiszem nem teljesen értem :D :B
    Azt értem, hogy ne figyeljen minden üres portra.. De akkor melyikre? Eddig random beírtam egy számot . De mi van ha élesben az a port pont foglalt lesz? Ha indításkor választok egy portot akkor honnan tudjam kliens oldalon, hogy melyik portot választottam? :F

  • Sk8erPeter
    nagyúr

    a valódi kérdés nem az, hogy szerinted vagy szerintem mi a junior, hanem az, hogy aki majd megkérdezi, szerinte mi a junior :P

    szerintem a junior az, akinek adott fejlesztés alatt álló szoftver esetén megmondják, hogy mi a konkrét feladata (írd meg ezt a 32 darab getter/settert) és azt végre tudja hajtani. a következő lépés, amikor már nem csak konkrét feladatokat tud elvégezni, hanem bizonyos fokig önállóan képes fejleszteni a programot, általánosabb feladatmegfogalmazásokat is képes megoldani (csinálni kell egy authentikációs modult, kb. így meg így működjön, ezek a paraméterek, stb.). ez a közepesen átsült szték vagy medium vagy mi... :)

    szerintem nem az a junior, akit egyáltalán nem lehet használni a fejlesztéshez, csak betanul.

    "a valódi kérdés nem az, hogy szerinted vagy szerintem mi a junior, hanem az, hogy aki majd megkérdezi, szerinte mi a junior :P"
    Ez pont így van. :)

    "szerintem nem az a junior, akit egyáltalán nem lehet használni a fejlesztéshez, csak betanul."
    Én sem ezt írtam, sőt, abszolút nem is gondolom így. Azt írtam, hogy az általad említettek mindegyike viszont nem feltétlenül várható el egy juniortól, illetve hogy kiegészítsem, ezek olyan dolgok, amikbe simán bele lehet tanulni menetközben, ha jól vág az esze a juniornak, és nem ez fogja eldönteni, hogy mennyire jó fejlesztő, hogy van-e ezekben jártassága. Ha meg nem jó az esze, és csak robotkóder, akkor meg úgyis tök mindegy. :D

  • Aethelstone
    addikt

    a valódi kérdés nem az, hogy szerinted vagy szerintem mi a junior, hanem az, hogy aki majd megkérdezi, szerinte mi a junior :P

    szerintem a junior az, akinek adott fejlesztés alatt álló szoftver esetén megmondják, hogy mi a konkrét feladata (írd meg ezt a 32 darab getter/settert) és azt végre tudja hajtani. a következő lépés, amikor már nem csak konkrét feladatokat tud elvégezni, hanem bizonyos fokig önállóan képes fejleszteni a programot, általánosabb feladatmegfogalmazásokat is képes megoldani (csinálni kell egy authentikációs modult, kb. így meg így működjön, ezek a paraméterek, stb.). ez a közepesen átsült szték vagy medium vagy mi... :)

    szerintem nem az a junior, akit egyáltalán nem lehet használni a fejlesztéshez, csak betanul.

    Nagyon nehéz ezt pontosan meghatározni, mivel cégenként változik, hogy kit tekintenek juniornak/seniornak. Nyilván egy futószalag cégnél(neveket most nem írnék) 1 év munkaviszonnyal is lehet valaki senior, de más helyeken 5+ év a minimum(plusz lerakott teljesítmény).

  • Sk8erPeter
    nagyúr

    te kínálati oldalról nézed, az nng meg keresleti oldalról fogja nézni.
    ahhoz, hogy egyetlen elgépelést ki tudjon javítani egy kommentben, ahhoz kell netbeans, verziókezelő, maven ismeret. ahhoz, hogy readonly módon elkezdhesse érdemben tanulmányozni a kódot, ahhoz kell full java meg ee ismeret is.

    interjúra egyébként nem árt alaposan átnézni a portáljukat is, meg utánanézni, hogy mi az a connected autó és gps. az állás jó eséllyel a portál mögötti cuccok fejlesztése (ami nem csak a portálmotort és a webshop fejlesztése, hanem egy rakás más cucc is).

    "továbbá rendesen tudni kell az enterprise java beans cuccokat, mavent, antot [...] webservice-k távoli hívását, ldap kezelést jávából [...] clusterezett glassfish-t"
    Szerintem ezek kiesnek a "junior" fejlesztőtől elvárhatóak köréből, legalábbis normális esetben - ezekkel együtt már inkább "medior" lehetne, vagy mi a búbánatnak szokták ilyenkor hívni. Enterprise JavaBeans cuccok szerintem végképp nem várhatóak el juniortól, akkor inkább hagyják el a "junior" szócskát az állásajánlatból.

    Azt tartanám én is normálisnak, ha valóban juniort keresnek, amiket Aethelstone kolléga is írt, hogy látsszon, hogy rendesen vágja a Java-alapokat, és van esze a tanuláshoz, tehát összességében egy jó befektetésnek tűnik, aki hosszabb távon behozza az "árát" (amibe a tanulása kerül, tehát hogy lassabb, eleinte kevésbé produktív, de nyilván kevesebb is a fizetése, mint egy régebb óta a cégnél dolgozó emberkének).

  • Aethelstone
    addikt

    te kínálati oldalról nézed, az nng meg keresleti oldalról fogja nézni.
    ahhoz, hogy egyetlen elgépelést ki tudjon javítani egy kommentben, ahhoz kell netbeans, verziókezelő, maven ismeret. ahhoz, hogy readonly módon elkezdhesse érdemben tanulmányozni a kódot, ahhoz kell full java meg ee ismeret is.

    interjúra egyébként nem árt alaposan átnézni a portáljukat is, meg utánanézni, hogy mi az a connected autó és gps. az állás jó eséllyel a portál mögötti cuccok fejlesztése (ami nem csak a portálmotort és a webshop fejlesztése, hanem egy rakás más cucc is).

    Nem értünk egyet. Nem kell ismerni a mavent és az svn/git/akármit. Egyszer elmondják és utána emlékezni kell rá. És kb. minden új Java technológiánál ezt várják el a juniortól....meg ha valamit nem tud, akkor igenis képes legyen emberi idő alatt kiguglizni vagy tudjon érdemben kérdezni.

  • emvy
    félisten

    nem teljesen világos számomra, hogy interjúra mész vagy már felvettek és dolgozni.
    ha interjúra, akkor arra számíts, hogy bejön Rumcájsz és három másodperc alatt falhoz állít a kérdéseivel :)

    nyilván kell, hogy az alap jáva cuccokat szabvány szinten kend-vágd előröl hátra és hátulról előre, de néha alulról felfelé is. továbbá rendesen tudni kell az enterprise java beans cuccokat, mavent, antot, xml-t. ismerni kell a json-t, webservice-k távoli hívását, ldap kezelést jávából. adatbáziskezelőnek postgresql-t. ha nem csalnak az infóim, clusterezett glassfish-t használnak appszervernek és netbeansben fejlesztenek (ez utóbbira csak kisebb összeggel fogadj). van náluk ci.

    nem baj, ha mindezt ubuntun vagy debianon.

    > van náluk ci

    azert az durva lenne, ha nem lenne

  • Aethelstone
    addikt

    nem teljesen világos számomra, hogy interjúra mész vagy már felvettek és dolgozni.
    ha interjúra, akkor arra számíts, hogy bejön Rumcájsz és három másodperc alatt falhoz állít a kérdéseivel :)

    nyilván kell, hogy az alap jáva cuccokat szabvány szinten kend-vágd előröl hátra és hátulról előre, de néha alulról felfelé is. továbbá rendesen tudni kell az enterprise java beans cuccokat, mavent, antot, xml-t. ismerni kell a json-t, webservice-k távoli hívását, ldap kezelést jávából. adatbáziskezelőnek postgresql-t. ha nem csalnak az infóim, clusterezett glassfish-t használnak appszervernek és netbeansben fejlesztenek (ez utóbbira csak kisebb összeggel fogadj). van náluk ci.

    nem baj, ha mindezt ubuntun vagy debianon.

    Mindezt juniornak? :) Kétlem :)

  • AsterixComic
    csendes tag

    nem teljesen világos számomra, hogy interjúra mész vagy már felvettek és dolgozni.
    ha interjúra, akkor arra számíts, hogy bejön Rumcájsz és három másodperc alatt falhoz állít a kérdéseivel :)

    nyilván kell, hogy az alap jáva cuccokat szabvány szinten kend-vágd előröl hátra és hátulról előre, de néha alulról felfelé is. továbbá rendesen tudni kell az enterprise java beans cuccokat, mavent, antot, xml-t. ismerni kell a json-t, webservice-k távoli hívását, ldap kezelést jávából. adatbáziskezelőnek postgresql-t. ha nem csalnak az infóim, clusterezett glassfish-t használnak appszervernek és netbeansben fejlesztenek (ez utóbbira csak kisebb összeggel fogadj). van náluk ci.

    nem baj, ha mindezt ubuntun vagy debianon.

    Szia !

    Interjúra megyek.

    Ez alatt mire gondoltál? "van náluk ci".

    Gondolom, hogy generikus típusokat is teljesen tudni kell !?
    Adatszerkezeteket, mint pl. buborékrendezés, különböző keresések fákban?!

    köszi

  • Aethelstone
    addikt

    nagy help kellene nekem :)
    a helyzet: az eddig használt kedvenc fejlesztői eszközeim atom mód elavultak és kimentek a divatból. a másik pontja a helyzetnek, hogy nulláról el kellene kezdenem írni egy alkalmazást.
    a kettő következménye, hogy úgy döntöttem, az egész kóceráj megy a kukába, és (majdnem) teljes platformot váltok. a kérdés, hogy mire :) a felhasználói felület és környéke a segítségkérés tárgya
    megváltoztathatatlan feltételek:
    - jáva (nyilván, ha ide írok)
    - webes kliens szerver cucc
    - appszerver glassfish
    - netbeansben menjen a fejlesztés.
    - aktuális firefoxszal működjön

    változtatható feltételek, álmok:
    - ehhez az alkalmazáshoz jó lenne, ha futásidőben változtatható formokat tudnék csinálni.

    a megálmodott ideális válasz a kérdésemre:
    - használj icefaces-t
    - használj x.y keretrendszert,
    stb.

    tia

    Nos a tervezett rendszer mélyebb ismerete nélkül.

    - Java 1.7 minimum
    - Tomcat 7
    - Spring Framework (Security, MVC)
    - Ha kell ORM, akkor Hibernate
    - Kliens oldalon JQuery a dinamikus formkezelés miatt. A JQuery ELVILEG! böngészőfüggetlen.

    Elsőre ezekből létre lehet hozni egy aránylag könnyűsúlyú cuccot.

  • floatr
    veterán

    nagy help kellene nekem :)
    a helyzet: az eddig használt kedvenc fejlesztői eszközeim atom mód elavultak és kimentek a divatból. a másik pontja a helyzetnek, hogy nulláról el kellene kezdenem írni egy alkalmazást.
    a kettő következménye, hogy úgy döntöttem, az egész kóceráj megy a kukába, és (majdnem) teljes platformot váltok. a kérdés, hogy mire :) a felhasználói felület és környéke a segítségkérés tárgya
    megváltoztathatatlan feltételek:
    - jáva (nyilván, ha ide írok)
    - webes kliens szerver cucc
    - appszerver glassfish
    - netbeansben menjen a fejlesztés.
    - aktuális firefoxszal működjön

    változtatható feltételek, álmok:
    - ehhez az alkalmazáshoz jó lenne, ha futásidőben változtatható formokat tudnék csinálni.

    a megálmodott ideális válasz a kérdésemre:
    - használj icefaces-t
    - használj x.y keretrendszert,
    stb.

    tia

    Na majd erre fogsz olyan válaszokat kapni, hogy nem győzöd kapkodni a fejed. Nekem olyan szempontjaim vannak hasonló problémákra, hogy legyenek az egyes rétegek teljesen különválasztva, magyarán ne legyen olyan hibrid megoldás, ami keveri a szerveroldali és kliensoldali technológiát (pl gwt). Legyen egy kliens oldali framework, és egy SOA backend. Nekem a Spring backend és az ExtJS jött be eddig a leginkább. Utóbbit azért használom szívesebben, mert nem dizájnerek találták ki.
    Dinamikus formokat saját megoldással raktunk össze, akármilyen technológia is volt a frontenden. Ha a dizájn nem az egyedi brandelés irányába menne el, akkor ennél gyorsabb eszközt nem nagyon találsz. Már nem farokméregetésiből, csak eddig ezt tapasztaltam

  • ToMmY_hun
    senior tag

    linuxon kell a jre-nek, jdk-nak egy JAVA_HOME környezeti változó, ahol megtalálja a többi csatolt részét a jvm. feltételezem, windowson is kell. azért feltételezem, mert azt írtad, ha a desktopra raktad, működött, az pedig az aktuális könyvtár lesz, ezért találja meg ott, amikor máshol meg nem.

    Egyszerű next-next-finish install után ezt írta be a PATH-hez: "C:\ProgramData\Oracle\Java\javapath;", szóval neki is ezt kellene beírni. Win10-em van egyébként, de nem hiszem hogy számít.

  • pinnacle
    nagyúr

    linuxon kell a jre-nek, jdk-nak egy JAVA_HOME környezeti változó, ahol megtalálja a többi csatolt részét a jvm. feltételezem, windowson is kell. azért feltételezem, mert azt írtad, ha a desktopra raktad, működött, az pedig az aktuális könyvtár lesz, ezért találja meg ott, amikor máshol meg nem.

    OK! Köszi!

  • pinnacle
    nagyúr

    a környezeti változókat beállítottad java telepítés után? újraindítottad a gépet (vagy legalább kijelentkeztél és vissza)?

    Újraindítás volt, környezeti változókon mit kell állítani? Úgy emlékszem régebben sem lehetett szabadon "garázdálkodni" a Program mappában, lehet, hogy most is valami korlátozás volt.

  • estro
    csendes tag

    persze, mert ha tovább bonyolítanám, akkor kiderülne, hogy egyszer (pl. int) érték szerint átadva rögtön ott van az adat és lehet vele számítást végezni, máskor meg (pl. Integer) érték szerint átadva nincs ott az adat, hogy számítást végezz vele, hanem még kell egy dereferencia is.

    ez sok profi szakembert megkavarna :)

    Egy kicsit tényleg zavaró, mert az int az integernek a rövidítése, viszont a javaban az Integer-el egy hivatkozó változót hozunk létre, ami egy objektumra mutat (int objektum vagy mi :D), az int pedig egy primitív változó. De mondjuk aki Javat tanul az eljut az tömbökhöz, ott meg általában a tutorialokban leírják, hogy az egy objektum ami objektumokat tárol, ahhoz meg tartozik egy autoboxing folyamat, ha primitíveket akarunk tárolni.

  • WonderCSabo
    félisten

    ok, tehát a jávában mindig referencia szerinti átadás van, amit ők érték szerinti átadásnak neveznek.
    :))

    Tudom, hogy nem akarod tovább bonyolítani, de ez az állítás nem teljesen igaz, mert primitív változók esetén valódi érték szerinti paraméterátadás van.

  • emvy
    félisten

    vagyis ha a referenciákat adja át, akkor nem mindig érték szerinti átadás van :)

    Nem világos számodra, mi az a referencia szerinti átadás. Az C++ban van például, vagy a C# out és ref paraméterek ilyenek. Ha lenne teferencia szerinti átadás, akkor tudnal swap funkciot implementalni, de nem tudsz. (probalj meg atadni egy referenciat referencia szerint Javaban, nem lehet)

  • Sk8erPeter
    nagyúr

    ok, tehát a jávában mindig referencia szerinti átadás van, amit ők érték szerinti átadásnak neveznek.
    :))

    Igen, jó nagy baromság ezeket kihangsúlyozni, hogy érték szerinti átadás, mert végül is pointert passzolgatunk ilyen alapon, és az eredeti objektumot buzeráljuk, de legalább egy kezdőt tök jól össze lehet zavarni ezzel, és totál nem fogja érteni, hogy most akkor mi van. :D

  • #39560925
    törölt tag

    vagyis ha a referenciákat adja át, akkor nem mindig érték szerinti átadás van :)

    de, mert a referencia értéke másolódik.

  • _kovi_
    aktív tag

    glassfish futtatásához elég egy unix account. ha adatbázisból elég a beépített derby (vagy utóda), akkor gyakorlatilag más nem kell hozzá. accot nem kapsz az egyetemen? mert ha nem, akkor bérelned kell egy vps-t, nem túl nagy összeg. vagy meg kell beszélned a témavezetőddel, hogy szerezzen neked futtatási lehetőséget.

    a netbeans glassfish támogatása verziófüggő, a régebbiekben nincs, csak tomcat támogatás. de amit a netbeans tomcathez legyárt, az simán megy egy helyesen konfigurált glassfishben. az új netbeansekben van 3-as glassfish támogatás, azokkal még ennyi gond sincs.

    Nem sajnos nem kapok accountot. A Netbeans-ből újat használunk. Szerinted akkor mi a megoldás?

    Hogy miért Swing? Jó kérdés.. :) Tudom, hogy elavult, de ebből kell most főzni. :)

    Felvetődött az MS Azure ahol virtuálisan lehetne futtatni ilyet, de még nem néztem meg. Lehet hogy az is jó lehet?

  • WonderCSabo
    félisten

    teljes őrültségnek tartom, ha valaki kétféle klavi kiosztást használ...

    Én is kétfélét használok, HU és US_en, pillanatok alatt lehet váltani. Magyar billentyűzetem van, az angol kiosztást megtanultam rajta. Így a programozás is gyorsan megy az angollal, de tudok ékezetesen is gépelni ide. :)

    De sorry, látom elég nagy offot indítottam el. Én elég jól ismerem mindkét idét, pluginokat is fejlesztettem hozzájuk, mindkettőnek vannak előnyei és hátrányai, azt kell mondjam, teljesen felesleges vitázni rajta.

  • emvy
    félisten

    teljes őrültségnek tartom, ha valaki kétféle klavi kiosztást használ...

    Miert? :)

    Persze minden megszokhato, en a HU, US_en, UK_en billentyuzetkiosztas tudom fejbol, mas meg az IDE-t allitja at, nyilvan tuloztam az orultseggel.

    Viszont Eclipse-t hasznalni 2015-ben.. ;]

  • atom44
    csendes tag

    <IMG SRC="..\cuccok\cipök trainer\LONSDALE\155.jpg">
    ebben a \ -t én lecserélném /-re...

    Köszi a választ ,de igy sem jó. Mit hibázhattam el :S

  • atom44
    csendes tag

    normálisan nem használnak fordított pert weben a könyvtárnevekben, mivel a unixos webszerverek azt másképp értelmezik.

    Hát de igy se jó ,mert még mindig nem látom a képket :S
    Nézd meg lécci az oldal forrását és mond ,meg hogy mit csesztem el . Mert már nézegettem ezer helyen de nem találtam róla semmit.FTPvel töltöttem fel,ugy mint egy sima másolást. Ez okozhat gondot?

  • nyaralasptt
    csendes tag

    Légyszi segítsetek gyakorlati tapasztalattal: milyen processzort vegyek, ha az az egy szempont, hogy netbeans és csatolmányai (tomcat, glassfish) jól fusson? amdx2, opteron, c2d, c2q?
    Thx

    Ha ennel kicsit konkretabb lennel /mennyi penzbol; lokalis adatbazis kell-e; csak fejlesztogep vagy server is, linux vs. win stb./, akkor konnyebb volna segiteni, viszont par altalanossagot azert leirok:

    1. A cpu altalaban nem tul fontos tenyezo java-s fejlesztesben: a 2 mag fontos, hogy ha a JVM vagy az IDE megdoklik, akkor konnyu legyen kiloni es ne kelljen a prioritasokkal jatszani
    Szerintem fejleszteni egy kozepes core 2 siman megteszi(~6600). A vinyo alt. nem tud annyi adatot adni a cpu-nak, hogy az ki legyen tomve
    2. A vinyo szokott lenni a legproblemasabb resz, foleg EE java eseten a sok XML file miatt + a lokalis db is azt terheli, szoval itt erdemes erositeni. A deployment resz (5-30 perc kozepesebb alkalmazasokra) is foleg a vinyot veszi igenybe.
    3.Memo: minel tobb annal jobb, bar egy jvm-mel nem lehet 1 GB-nal tobbet hatekonyan kihasznalni; 2-3 Gb kb. eleg szokott lenni

    A netbeans-be egyebkent az a legjobb, hogy valamit vagy rogton kiokumlal, vagy soha az eletbe.

Új hozzászólás Aktív témák