Hirdetés

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

  • fatal`
    titán

    C# konzol app-ból el kellene kapnom azt az eseményt, amikor az ablakon X-et klikkentek. Az alábbiak közül bármelyik megoldaná a problémámat:

    -Kód részletet kellene futtatnom az eseményen.

    -Meg kellene tiltanom az ablaknak az X eseményt (leszürkíteni azt az X-t vagy olyasmi, nem tudom, létezik-e arra támogatás).

    -Az egész konzol ablakot kellene láthatatlanná tennem (az app maga tray icon-okon keresztül kommunikál, a konzol ablak nem feltétlen kell nekem), és akkor nincs hova X-et kattintani.

    Bármilyen tippet előre is köszönök.

    Konzol app helyett csinálj belőle servicet, és kombináld winforms-szal (ez kell a trayiconhoz, ha ablakokat akarsz megnyitni róla).

  • cucka
    addikt

    Koszi a tanacsokat, szerencsere duck type-os nyelven csinalom, Godot, igy kicsit konnyebb lesz az implementalas.

    En meg abban a korban nevelkedtem, amikor a UI-t szetvalasztottuk a business logic-tol :) Hat jatekvilagban itt vannak a scene-k meg a node tree ami lehet visual is ... hat kicsit elbizonytalanodtam.

    Jah, egy osztaly fogja reprezentalni a mezoket, az tarolja a mezo tipusat es listat az esetleges "akcios" objektumokbol. Inventory is OK volt nekem, de a "Recipe - craft" otlet nem jutott eszembe :D pedig tok egyszeru ... ahogy elolvastam a javaslatod egybol kaptam inspiraciot.

    A jatekallas azert nem egyszeru mert vannak scene-k azok mas node-okat tartalmazhatnak. Na most mi van ha ket node referenciaval mutat egymasra, de visszatoltes kozben meg nem krealodott meg az egyik node. Probalok valami automatizalt algoritmust talalni a node-ok lementesere, mert nem akarom manualisan vegigjarni az egesz tree-t ... pedig lehet nem lesz mas. Szerk: (marmint maualisan serializalni az adatokat minden objektumbol.)

    Maradok a hex terkepnel, mert mar mukodott a dolog, nem volt tul bonyolult sem, de azert kellett dump-olni neha - ellenorizni, hogy az van-e a kepernyon mint a memoriaban :DDD

    A jatekallas azert nem egyszeru mert vannak scene-k azok mas node-okat tartalmazhatnak.

    Erre azt tudod csinálni, hogy minden objektumodnak adsz egy egyedi id-t. És akkor a referenciád nem egy objektum lesz, hanem egy objektum id. (ami egy string vagy uuid vagy bármilyen primitív)
    Ezzel eléred, hogy az objektum gráfodat kezelheted objektum listaként, könnyű menteni-betölteni.
    Annyi a plusz meló vele, hogy betöltés után ezeket a referenciákat kézzel fel kell oldani.

    Lényegében ez a szegény ember kézműves, lábbal hajtós lazy loadingja.

    De lehet van rá jobb megoldás, nyilván, a legjobb megoldás, ha nincsenek körkörös referenciáid :D .

  • rgeorge
    addikt

    C# konzol app-ból el kellene kapnom azt az eseményt, amikor az ablakon X-et klikkentek. Az alábbiak közül bármelyik megoldaná a problémámat:

    -Kód részletet kellene futtatnom az eseményen.

    -Meg kellene tiltanom az ablaknak az X eseményt (leszürkíteni azt az X-t vagy olyasmi, nem tudom, létezik-e arra támogatás).

    -Az egész konzol ablakot kellene láthatatlanná tennem (az app maga tray icon-okon keresztül kommunikál, a konzol ablak nem feltétlen kell nekem), és akkor nincs hova X-et kattintani.

    Bármilyen tippet előre is köszönök.

    Ne console app-ot csinálj, hanem Windows Forms-t, de minden más maradjon ugyanúgy, ne használd a Form-ot. Így nem lesz console.

  • cog777
    őstag

    >nincs idom ujra irni dolgokat tobbszor

    Ez esetben valamilyen magas szintu keretet kellene használni kész szolgáltatásokkal, közel a no-code-hoz. Bármilyen más esetben én azt mondanám, csalódni fogsz a tapasztaltságod mértékében.

    Godot engine-t hasznalom, egesz jo, de azert kell a programozo is. Csalodni nem fogok, csak max lassan haladok, mivel jatekkeszitesben meg nincs tapasztalatom es az elmult 20 ev C++ tapasztalatait nem tudom teljesen alkalmazni a vizualis node-ok miatt, tehat ahol a UI is tartalmaz business logic-ok boven.
    Motivaciom azert van, szeretem a pixelgrafikat es a temat is amit valasztottam.

    " De itt most amatőr környezet tanuló projektjéről van szó."
    Godotban irtak azert jo jatekokat is, igaz nem AAA-ra valo, de nekem nem szamit.
    Tanulo projektem mar megvolt a temaban, most ujrairom. (amugy minden projektbol tanul a programozo, tehat ilyen szempontbol tanulo mindegyik)

  • cog777
    őstag

    Errol az if-else agakrol jut eszembe. Konny szokik a szemembe, ha eszembe jut a cegnel hasznalt if-else-ek nagysaga egy c++ funkcioban, a g++ mar nem akarta leforditani, mert tul nagy volt, valami tobb 1000 soros, tobb mint 1 evtizeden keresztul toldoztak foltoztak, senki nem akarta ujrairni :Y
    Kb karbantarthatatlan volt.

    Masik epic fail az oroklodes esznelkuli alkalmazasa: 9 szintu, az utolso es valamelyik kozbenso szinten is olvastak a soros portot, es csodalkozott az utolso programozo miert jon meg csak minden masodik bajt :W Na, arra jo volt nekem hogy elgondolkodjak a composition over inheritance preferalasan az oroklodes helyett.

  • cog777
    őstag

    A visitor pattern erős túlgondolása a problémának :)

    Alapvetően nincs szükséged arra, hogy különböző típusú objektum legyen minden mező, simán lehetnek ugyanabban az osztályban (esetleg ugyanannak az ősosztálynak a leszármazottai, de így elsőre még csak ezt se erőltetném, öröklődésre meglepően ritkán van szükség a valós életben).
    Hogy konkrétabb implementációs ötletek is legyenek:
    A mezőkhöz tartozó lehetséges akciókat (felfedezés, harc, táborozás, mittomén) beraknám egy enumba és a mezőknek lenne egy getActions() metódusa, ami visszaadja a lehetséges dolgokat egy listában meg egy doAction(action) ahol megadod, hogy mit akarsz csinálni és azt elvégzi.

    A tárgyaknak csinálnak egy saját osztályt (a lehetséges tárgyak listájából meg megint egy enumot) meg egy konténert hozzá mondjuk Inventory néven és mind a mezőknek, mind a játékost reprezentáló objektumnak lenne egy-egy Inventoryja, ilyen list(), fput(), get() függvényekkel meg esetleg itt lehet a mindenféle effekteket is megcsinálni (pl getHeat(), ami összeszámolja, hogy a fáklya ad +1 meleget, a Staff of Fire ad +10-et, a játékosra varázsolt Icestorm of Kartak spell (ami lehet a játékos vagy a mező inventoryjában mint amolyan rejtett item) meg -20-at).

    A craftinghoz meg csinálhatsz egy Recipe class-t, amiben benne van egy lista, hogy miből mennyi kell meg egy másik lista, hogy ebből mi és mennyi keletkezik, meg egy Crafter classt, aminek adsz egy Recipe listet meg egy Inventoryt és olyan metódusai vannak, hogy getPossibleRecipes(), doRecipe() meg ilyenek.

    Na ezt az egeszet megfejelve ugy hogy le lehessen menteni az allast es visszatolteni.

    Google serialization (meg azon belül is JSON) :)

    Ja és emvy javaslata a hex helyett négyzetekről tényleg nagyon megfontolásra érdemes (főleg, hogy ha a négyzetes működik már, akkor annak átalakítása hexesre valószínűleg nem lesz túl nagy meló)

    Koszi a tanacsokat, szerencsere duck type-os nyelven csinalom, Godot, igy kicsit konnyebb lesz az implementalas.

    En meg abban a korban nevelkedtem, amikor a UI-t szetvalasztottuk a business logic-tol :) Hat jatekvilagban itt vannak a scene-k meg a node tree ami lehet visual is ... hat kicsit elbizonytalanodtam.

    Jah, egy osztaly fogja reprezentalni a mezoket, az tarolja a mezo tipusat es listat az esetleges "akcios" objektumokbol. Inventory is OK volt nekem, de a "Recipe - craft" otlet nem jutott eszembe :D pedig tok egyszeru ... ahogy elolvastam a javaslatod egybol kaptam inspiraciot.

    A jatekallas azert nem egyszeru mert vannak scene-k azok mas node-okat tartalmazhatnak. Na most mi van ha ket node referenciaval mutat egymasra, de visszatoltes kozben meg nem krealodott meg az egyik node. Probalok valami automatizalt algoritmust talalni a node-ok lementesere, mert nem akarom manualisan vegigjarni az egesz tree-t ... pedig lehet nem lesz mas. Szerk: (marmint maualisan serializalni az adatokat minden objektumbol.)

    Maradok a hex terkepnel, mert mar mukodott a dolog, nem volt tul bonyolult sem, de azert kellett dump-olni neha - ellenorizni, hogy az van-e a kepernyon mint a memoriaban :DDD

  • dabadab
    titán

    Céges környezetben ritkán működik olyasmi, hogy egy kész kódot újracsiszolsz. De itt most amatőr környezet tanuló projektjéről van szó. Vagy elnéztem volna?

    Arról van szó, hogy mivel nyilvánvalóan lövésed sincs a programozáshoz, rettentes hülyeségeket írsz le jótanácsként.

  • coco2
    őstag

    >nagy if else ag

    Szétszeded egyszem if-ekre. Else-eket pedig nem használsz. Egyszer próbáld ki.

    :DDD

    Tudom, hogy ezt nem viccnek szánod, hanem komoly tanácsnak, de érted... vagy hát láthatóan nem.

    Céges környezetben ritkán működik olyasmi, hogy egy kész kódot újracsiszolsz. De itt most amatőr környezet tanuló projektjéről van szó. Vagy elnéztem volna?

  • coco2
    őstag

    Nem iskolai beadando, jatekot szeretnek fejleszteni de hatekonyan - (ido hiany - nincs idom ujra irni dolgokat tobbszor). UI es backend fejlesztesben van tapasztalatom, de jatekkeszitesbeni praktikakban nincs. Ezert keresek tanacsot.

    "Szétszeded egyszem if-ekre. Else-eket pedig nem használsz. Egyszer próbáld ki."
    Ezt nem tudom ertelmezni, kezdo programozok csinaljak ezt, lasd alabb.

    "Ha player is es item is X-Y-Z koordinátán van, akkor elérhető a tárgyakban regisztrált akció, egyébként meg nem. Pollozol, és frissíted az állapotot minden elmozdulásnál. Ha a tárgyak egy helyen vannak, programozol olyat, hogy "látják" egymást, és akkor extra akciókat kínálsz fel."
    Pont nem fogok egy nagy if-then-else spagetti kodot leprogramozni. Milyen design pattern-eket hasznalnal fel?

    Amugy egy Curious Expedition szeru jatekot szeretnek csinalni, egyszer nekifutottam, alapok mar mukodtek, de inkabb ujrakezdem modernebb szemlelettel es jatekmotorral.

    >nincs idom ujra irni dolgokat tobbszor

    Ez esetben valamilyen magas szintu keretet kellene használni kész szolgáltatásokkal, közel a no-code-hoz. Bármilyen más esetben én azt mondanám, csalódni fogsz a tapasztaltságod mértékében.

  • cog777
    őstag

    en hexa helyett sima kocka layouttal indulnek, ugy a jatekteret le lehet tarolni egy egyszeru ketdimenzios arrayben. amit sokkal egyszerubb lesz kipromptolni akarcsak szovegesen (tehat egyszerubb lesz debugolni es megerteni, mert egyszerubb a data layer).

    Elso korben megcsinaltam, 2D-s layouttal. Hat, bizonyos algoritmusokat igen csak szemelyreszabotta kellett tenni a hex formanak koszonhetoen ... pl a korbejaras, vagy az A* algoritmus hasznalata. Pl terkepet generaltam es a hegyekbol (magaslatok) a tavakba (alacsonyan fekvo helyek)-re folyokat rajzoltam.

    A hex terkepeket egeszen jol korbejarja ez a weboldal, ha valakit erdekel.

    Most megprobalnam kicsit mashogy, pl linkeket/referenciat helyeznek el egy cellabol a szomszedos oldalakra. Igy talan a bejaros algoritmusok is egyszerusodnenek. Meg mondjuk hash, ahogy az a weblap is emliti.

  • dabadab
    titán

    En is szeretnek tanacsot kerni. Jatekfejlesztes, de nem konkret motorral kapcsolatban, hiszen annak megvan a maga topic-ja (Godot), hanem az elvvel kapcsolatban.

    A cel hogy modern, megvalositas szempontjabol hatekony programozasi algoritmusokat es programming pattern-eket hasznaljak. Tehat pl egy nagy if else ag szerintem karbantarthatatlan.

    Szoval akarok egy rogulite szeru tulelos jatekot irni: hexa mezokon lepdel a jatekos es van egy cel - kijusson a terkeprol epsegben. Kozbe ossze tud szedni bizonyos targyakat amivel interakciot lehet csinalni.

    Minden cellanak lehet extra tulajdonsaga, pl felfedezes menure kattintva tud talalni bizonyos dolgokat es birtokba venni. Mondjuk visitor pattern-el vegigjarni az adott cellahoz tartozo modosito objektumokat? Ez talan nem nehez.

    Amit meg nem talaltam ki hogy a kulonbozo targyak kombinalasat es azokkal valo interakciot hogy lehet leprogramozni. Pl agakat keresel es talalsz, es van ongyujtod (esetleg mas tuzgyujto szerszam kulonbozo sikeressegu tuzcsiholasi lehetosegekkel + jatekos tapasztalata) akkor lehet tuzet kesziteni. Ami viszont melegen tartja a jatekost.

    Na ezt az egeszet megfejelve ugy hogy le lehessen menteni az allast es visszatolteni. Esetleg verzio upgradet is tuleljen a jatekmentes...

    Kb itt akadtam el. Elore is koszi a tanacsokat. :))

    A visitor pattern erős túlgondolása a problémának :)

    Alapvetően nincs szükséged arra, hogy különböző típusú objektum legyen minden mező, simán lehetnek ugyanabban az osztályban (esetleg ugyanannak az ősosztálynak a leszármazottai, de így elsőre még csak ezt se erőltetném, öröklődésre meglepően ritkán van szükség a valós életben).
    Hogy konkrétabb implementációs ötletek is legyenek:
    A mezőkhöz tartozó lehetséges akciókat (felfedezés, harc, táborozás, mittomén) beraknám egy enumba és a mezőknek lenne egy getActions() metódusa, ami visszaadja a lehetséges dolgokat egy listában meg egy doAction(action) ahol megadod, hogy mit akarsz csinálni és azt elvégzi.

    A tárgyaknak csinálnak egy saját osztályt (a lehetséges tárgyak listájából meg megint egy enumot) meg egy konténert hozzá mondjuk Inventory néven és mind a mezőknek, mind a játékost reprezentáló objektumnak lenne egy-egy Inventoryja, ilyen list(), fput(), get() függvényekkel meg esetleg itt lehet a mindenféle effekteket is megcsinálni (pl getHeat(), ami összeszámolja, hogy a fáklya ad +1 meleget, a Staff of Fire ad +10-et, a játékosra varázsolt Icestorm of Kartak spell (ami lehet a játékos vagy a mező inventoryjában mint amolyan rejtett item) meg -20-at).

    A craftinghoz meg csinálhatsz egy Recipe class-t, amiben benne van egy lista, hogy miből mennyi kell meg egy másik lista, hogy ebből mi és mennyi keletkezik, meg egy Crafter classt, aminek adsz egy Recipe listet meg egy Inventoryt és olyan metódusai vannak, hogy getPossibleRecipes(), doRecipe() meg ilyenek.

    Na ezt az egeszet megfejelve ugy hogy le lehessen menteni az allast es visszatolteni.

    Google serialization (meg azon belül is JSON) :)

    Ja és emvy javaslata a hex helyett négyzetekről tényleg nagyon megfontolásra érdemes (főleg, hogy ha a négyzetes működik már, akkor annak átalakítása hexesre valószínűleg nem lesz túl nagy meló)

  • cog777
    őstag

    >A cel hogy modern, megvalositas szempontjabol hatekony programozasi algoritmusokat es programming pattern-eket hasznaljak.

    Ez valami iskola dolog lehet. Konkretizálni kellene, mit szeretnél. Iskolai beadandót gyártani, vagy karbantartható kódot. Ami szemre kényelmes, és karbantartható, az nem fog tetszeni a tankönyvnek. Vagy-vagy.

    >nagy if else ag

    Szétszeded egyszem if-ekre. Else-eket pedig nem használsz. Egyszer próbáld ki.

    >kijusson a terkeprol

    X-Y-Z koordinátában rálép az exit mezőre.

    >interakciot lehet csinalni

    X-Y-Z koordinátán vannak tárgyak, bennük regisztrált interakciók, player koordinátára lép, felkínálod neki, és vagy választ, vagy tovább lép.

    >birtokba venni

    Csinálsz player inventory-t.

    >interakciot hogy lehet leprogramozni

    Ha player is es item is X-Y-Z koordinátán van, akkor elérhető a tárgyakban regisztrált akció, egyébként meg nem. Pollozol, és frissíted az állapotot minden elmozdulásnál. Ha a tárgyak egy helyen vannak, programozol olyat, hogy "látják" egymást, és akkor extra akciókat kínálsz fel.

    >menteni az allast es visszatolteni

    Game állapotot és / vagy player profile-t sorosítasz, mented, töltöd.

    >verzio upgradet is tuleljen

    Mentés / töltéshez api version-t használsz, amit beleraksz a sorosításba, és fejlesztésnél egy ideig még meghagyod a támogatást előző verziók betöltésére (menteni már csak új formátumot használsz).

    >Kb itt akadtam el.

    Vagy inkább ott, hogy mindent azonnal akarsz. Az elején hagyd a grafikus motorokat és társaikat, és írj egy szöveges kalandjátékot. Közösségi terepen a "mud"-ok szerintem mind a mai napig léteznek, mégha elhagyatottak is. Keress egyet, írj nekik, dolgozz össze a csapattal kicsit, és belerázódsz a játék gyártás alapjaiba.

    Hehh, az Elveszett Világ még mindig megvan.

    Nem iskolai beadando, jatekot szeretnek fejleszteni de hatekonyan - (ido hiany - nincs idom ujra irni dolgokat tobbszor). UI es backend fejlesztesben van tapasztalatom, de jatekkeszitesbeni praktikakban nincs. Ezert keresek tanacsot.

    "Szétszeded egyszem if-ekre. Else-eket pedig nem használsz. Egyszer próbáld ki."
    Ezt nem tudom ertelmezni, kezdo programozok csinaljak ezt, lasd alabb.

    "Ha player is es item is X-Y-Z koordinátán van, akkor elérhető a tárgyakban regisztrált akció, egyébként meg nem. Pollozol, és frissíted az állapotot minden elmozdulásnál. Ha a tárgyak egy helyen vannak, programozol olyat, hogy "látják" egymást, és akkor extra akciókat kínálsz fel."
    Pont nem fogok egy nagy if-then-else spagetti kodot leprogramozni. Milyen design pattern-eket hasznalnal fel?

    Amugy egy Curious Expedition szeru jatekot szeretnek csinalni, egyszer nekifutottam, alapok mar mukodtek, de inkabb ujrakezdem modernebb szemlelettel es jatekmotorral.

  • emvy
    félisten

    >nagy if else ag

    Szétszeded egyszem if-ekre. Else-eket pedig nem használsz. Egyszer próbáld ki.

    :DDD

    Tudom, hogy ezt nem viccnek szánod, hanem komoly tanácsnak, de érted... vagy hát láthatóan nem.

    !!!

  • dabadab
    titán

    >A cel hogy modern, megvalositas szempontjabol hatekony programozasi algoritmusokat es programming pattern-eket hasznaljak.

    Ez valami iskola dolog lehet. Konkretizálni kellene, mit szeretnél. Iskolai beadandót gyártani, vagy karbantartható kódot. Ami szemre kényelmes, és karbantartható, az nem fog tetszeni a tankönyvnek. Vagy-vagy.

    >nagy if else ag

    Szétszeded egyszem if-ekre. Else-eket pedig nem használsz. Egyszer próbáld ki.

    >kijusson a terkeprol

    X-Y-Z koordinátában rálép az exit mezőre.

    >interakciot lehet csinalni

    X-Y-Z koordinátán vannak tárgyak, bennük regisztrált interakciók, player koordinátára lép, felkínálod neki, és vagy választ, vagy tovább lép.

    >birtokba venni

    Csinálsz player inventory-t.

    >interakciot hogy lehet leprogramozni

    Ha player is es item is X-Y-Z koordinátán van, akkor elérhető a tárgyakban regisztrált akció, egyébként meg nem. Pollozol, és frissíted az állapotot minden elmozdulásnál. Ha a tárgyak egy helyen vannak, programozol olyat, hogy "látják" egymást, és akkor extra akciókat kínálsz fel.

    >menteni az allast es visszatolteni

    Game állapotot és / vagy player profile-t sorosítasz, mented, töltöd.

    >verzio upgradet is tuleljen

    Mentés / töltéshez api version-t használsz, amit beleraksz a sorosításba, és fejlesztésnél egy ideig még meghagyod a támogatást előző verziók betöltésére (menteni már csak új formátumot használsz).

    >Kb itt akadtam el.

    Vagy inkább ott, hogy mindent azonnal akarsz. Az elején hagyd a grafikus motorokat és társaikat, és írj egy szöveges kalandjátékot. Közösségi terepen a "mud"-ok szerintem mind a mai napig léteznek, mégha elhagyatottak is. Keress egyet, írj nekik, dolgozz össze a csapattal kicsit, és belerázódsz a játék gyártás alapjaiba.

    Hehh, az Elveszett Világ még mindig megvan.

    >nagy if else ag

    Szétszeded egyszem if-ekre. Else-eket pedig nem használsz. Egyszer próbáld ki.

    :DDD

    Tudom, hogy ezt nem viccnek szánod, hanem komoly tanácsnak, de érted... vagy hát láthatóan nem.

  • proci985
    MODERÁTOR

    >A cel hogy modern, megvalositas szempontjabol hatekony programozasi algoritmusokat es programming pattern-eket hasznaljak.

    Ez valami iskola dolog lehet. Konkretizálni kellene, mit szeretnél. Iskolai beadandót gyártani, vagy karbantartható kódot. Ami szemre kényelmes, és karbantartható, az nem fog tetszeni a tankönyvnek. Vagy-vagy.

    >nagy if else ag

    Szétszeded egyszem if-ekre. Else-eket pedig nem használsz. Egyszer próbáld ki.

    >kijusson a terkeprol

    X-Y-Z koordinátában rálép az exit mezőre.

    >interakciot lehet csinalni

    X-Y-Z koordinátán vannak tárgyak, bennük regisztrált interakciók, player koordinátára lép, felkínálod neki, és vagy választ, vagy tovább lép.

    >birtokba venni

    Csinálsz player inventory-t.

    >interakciot hogy lehet leprogramozni

    Ha player is es item is X-Y-Z koordinátán van, akkor elérhető a tárgyakban regisztrált akció, egyébként meg nem. Pollozol, és frissíted az állapotot minden elmozdulásnál. Ha a tárgyak egy helyen vannak, programozol olyat, hogy "látják" egymást, és akkor extra akciókat kínálsz fel.

    >menteni az allast es visszatolteni

    Game állapotot és / vagy player profile-t sorosítasz, mented, töltöd.

    >verzio upgradet is tuleljen

    Mentés / töltéshez api version-t használsz, amit beleraksz a sorosításba, és fejlesztésnél egy ideig még meghagyod a támogatást előző verziók betöltésére (menteni már csak új formátumot használsz).

    >Kb itt akadtam el.

    Vagy inkább ott, hogy mindent azonnal akarsz. Az elején hagyd a grafikus motorokat és társaikat, és írj egy szöveges kalandjátékot. Közösségi terepen a "mud"-ok szerintem mind a mai napig léteznek, mégha elhagyatottak is. Keress egyet, írj nekik, dolgozz össze a csapattal kicsit, és belerázódsz a játék gyártás alapjaiba.

    Hehh, az Elveszett Világ még mindig megvan.

    en hexa helyett sima kocka layouttal indulnek, ugy a jatekteret le lehet tarolni egy egyszeru ketdimenzios arrayben. amit sokkal egyszerubb lesz kipromptolni akarcsak szovegesen (tehat egyszerubb lesz debugolni es megerteni, mert egyszerubb a data layer).

  • coco2
    őstag

    En is szeretnek tanacsot kerni. Jatekfejlesztes, de nem konkret motorral kapcsolatban, hiszen annak megvan a maga topic-ja (Godot), hanem az elvvel kapcsolatban.

    A cel hogy modern, megvalositas szempontjabol hatekony programozasi algoritmusokat es programming pattern-eket hasznaljak. Tehat pl egy nagy if else ag szerintem karbantarthatatlan.

    Szoval akarok egy rogulite szeru tulelos jatekot irni: hexa mezokon lepdel a jatekos es van egy cel - kijusson a terkeprol epsegben. Kozbe ossze tud szedni bizonyos targyakat amivel interakciot lehet csinalni.

    Minden cellanak lehet extra tulajdonsaga, pl felfedezes menure kattintva tud talalni bizonyos dolgokat es birtokba venni. Mondjuk visitor pattern-el vegigjarni az adott cellahoz tartozo modosito objektumokat? Ez talan nem nehez.

    Amit meg nem talaltam ki hogy a kulonbozo targyak kombinalasat es azokkal valo interakciot hogy lehet leprogramozni. Pl agakat keresel es talalsz, es van ongyujtod (esetleg mas tuzgyujto szerszam kulonbozo sikeressegu tuzcsiholasi lehetosegekkel + jatekos tapasztalata) akkor lehet tuzet kesziteni. Ami viszont melegen tartja a jatekost.

    Na ezt az egeszet megfejelve ugy hogy le lehessen menteni az allast es visszatolteni. Esetleg verzio upgradet is tuleljen a jatekmentes...

    Kb itt akadtam el. Elore is koszi a tanacsokat. :))

    >A cel hogy modern, megvalositas szempontjabol hatekony programozasi algoritmusokat es programming pattern-eket hasznaljak.

    Ez valami iskola dolog lehet. Konkretizálni kellene, mit szeretnél. Iskolai beadandót gyártani, vagy karbantartható kódot. Ami szemre kényelmes, és karbantartható, az nem fog tetszeni a tankönyvnek. Vagy-vagy.

    >nagy if else ag

    Szétszeded egyszem if-ekre. Else-eket pedig nem használsz. Egyszer próbáld ki.

    >kijusson a terkeprol

    X-Y-Z koordinátában rálép az exit mezőre.

    >interakciot lehet csinalni

    X-Y-Z koordinátán vannak tárgyak, bennük regisztrált interakciók, player koordinátára lép, felkínálod neki, és vagy választ, vagy tovább lép.

    >birtokba venni

    Csinálsz player inventory-t.

    >interakciot hogy lehet leprogramozni

    Ha player is es item is X-Y-Z koordinátán van, akkor elérhető a tárgyakban regisztrált akció, egyébként meg nem. Pollozol, és frissíted az állapotot minden elmozdulásnál. Ha a tárgyak egy helyen vannak, programozol olyat, hogy "látják" egymást, és akkor extra akciókat kínálsz fel.

    >menteni az allast es visszatolteni

    Game állapotot és / vagy player profile-t sorosítasz, mented, töltöd.

    >verzio upgradet is tuleljen

    Mentés / töltéshez api version-t használsz, amit beleraksz a sorosításba, és fejlesztésnél egy ideig még meghagyod a támogatást előző verziók betöltésére (menteni már csak új formátumot használsz).

    >Kb itt akadtam el.

    Vagy inkább ott, hogy mindent azonnal akarsz. Az elején hagyd a grafikus motorokat és társaikat, és írj egy szöveges kalandjátékot. Közösségi terepen a "mud"-ok szerintem mind a mai napig léteznek, mégha elhagyatottak is. Keress egyet, írj nekik, dolgozz össze a csapattal kicsit, és belerázódsz a játék gyártás alapjaiba.

    Hehh, az Elveszett Világ még mindig megvan.

  • cog777
    őstag

    En is szeretnek tanacsot kerni. Jatekfejlesztes, de nem konkret motorral kapcsolatban, hiszen annak megvan a maga topic-ja (Godot), hanem az elvvel kapcsolatban.

    A cel hogy modern, megvalositas szempontjabol hatekony programozasi algoritmusokat es programming pattern-eket hasznaljak. Tehat pl egy nagy if else ag szerintem karbantarthatatlan.

    Szoval akarok egy rogulite szeru tulelos jatekot irni: hexa mezokon lepdel a jatekos es van egy cel - kijusson a terkeprol epsegben. Kozbe ossze tud szedni bizonyos targyakat amivel interakciot lehet csinalni.

    Minden cellanak lehet extra tulajdonsaga, pl felfedezes menure kattintva tud talalni bizonyos dolgokat es birtokba venni. Mondjuk visitor pattern-el vegigjarni az adott cellahoz tartozo modosito objektumokat? Ez talan nem nehez.

    Amit meg nem talaltam ki hogy a kulonbozo targyak kombinalasat es azokkal valo interakciot hogy lehet leprogramozni. Pl agakat keresel es talalsz, es van ongyujtod (esetleg mas tuzgyujto szerszam kulonbozo sikeressegu tuzcsiholasi lehetosegekkel + jatekos tapasztalata) akkor lehet tuzet kesziteni. Ami viszont melegen tartja a jatekost.

    Na ezt az egeszet megfejelve ugy hogy le lehessen menteni az allast es visszatolteni. Esetleg verzio upgradet is tuleljen a jatekmentes...

    Kb itt akadtam el. Elore is koszi a tanacsokat. :))

  • coco2
    őstag

    C# konzol app-ból el kellene kapnom azt az eseményt, amikor az ablakon X-et klikkentek. Az alábbiak közül bármelyik megoldaná a problémámat:

    -Kód részletet kellene futtatnom az eseményen.

    -Meg kellene tiltanom az ablaknak az X eseményt (leszürkíteni azt az X-t vagy olyasmi, nem tudom, létezik-e arra támogatás).

    -Az egész konzol ablakot kellene láthatatlanná tennem (az app maga tray icon-okon keresztül kommunikál, a konzol ablak nem feltétlen kell nekem), és akkor nincs hova X-et kattintani.

    Bármilyen tippet előre is köszönök.

  • sztanozs
    veterán

    Rákerestem c# alatt az Application.Run -ra, és Google az MSDN doksi helyett ezt találta: http://system.windows.forms.application.run/

    Ez valami újfajta vicc :F

    mivel letezik a .run LTD, igy a bongeszo ugy gondolta, hogy weboldal cimet irtad be...
    ha macskakorombe rakod, akkor az alapertelmezett keresoben fogja megkeresni inkabb.

  • Fire/SOUL/CD
    félisten

    Rákerestem c# alatt az Application.Run -ra, és Google az MSDN doksi helyett ezt találta: http://system.windows.forms.application.run/

    Ez valami újfajta vicc :F

    Nem vicc, csak létezik application.run domain... ;] Minden böngészőbe, ha beleírod a címsorába, oda fog menni, vagy ez lesz az első találat: https://application.run

  • coco2
    őstag

    Rákerestem c# alatt az Application.Run -ra, és Google az MSDN doksi helyett ezt találta: http://system.windows.forms.application.run/

    Ez valami újfajta vicc :F

  • coco2
    őstag

    A szerdai sajtótájékoztatón bemutatkozott a sorsolási szoftvert gyártó AE Live nevű cég is, amelynek ugyan jelentős szakmai renoméja van, de arra a kérdésre sem David Gill technológiai igazgató, sem Marchetti nem adott egyértelmű választ, hogy mi történne, ha Monacóban össze­omlana a rendszer.

    [https://www.nemzetisport.hu/bajnokok-ligaja/2024/08/szamitogepes-szoftver-sorsolja-az-europai-kupak-fotablajat]

    Már hogy érted, hogy összeomlik a "rendszer"? Nincsen az a szó túltolva egy kicsit? :)

    Egy mezei script (elindítod bemeneti adatokkal, köp kimeneti adatokat, annyi volt), ami csak azért kapott hangot, mert nagy darab, aki mögötte van. Alkalmazásfejlesztésileg az ilyesmivel középiskolás tanulók elboldogulnak.

  • coco2
    őstag

    Jaaa... Én azt hittem, hogy programot akarsz rá írni, nem csak megsasolni... :DDD

    Van erre egyszerűbb megoldás, powershell-ből kell futtatni egy parancsot.

    Így minden port listázásra kerül, minden infójával

    Get-CimInstance -Namespace Root\Cimv2 -Query "Select * From Win32_PnPEntity where PnPClass = 'Ports' and Name like '%COM%'"

    Így meg csak az Arduino lesz listázva, és csak a Name és HardwareID infó jelenik meg

    Get-CimInstance -Namespace Root\Cimv2 -Query "Select * From Win32_PnPEntity where PnPClass = 'Ports' and Name like '%COM%' and Name like '%Arduino Leonardo%'" | Select-Object Name, HardwareID

    Jam, a Win32_PnPEntity-t használtam. A programírást nem értem :) Van egy arduino sketch, az fut az mc-n. Usb-n keresztül van serial, azon kommunikál a pc-vel. A pc-n azért kerestem a com port számot, hogy a pc-ről kapcsolatot tudjak vele építeni. És azt kényelmesebb volt automatizálni, mint config file-ban hagyni egy com port számot, ami talán minden reboot után megváltozik. És igen, pc-n egy app fog futni.

  • Fire/SOUL/CD
    félisten

    Köszönöm a tippet! Végül szerencsém volt. Az eszköz amúgy egy arduino micro (bár az enumerátor leonardo-nak látja, de az aprólék probléma).

    Ott a details alatt találtam "Display name" gyanánt: "Arduino Leonardo (COM5)". Egyben leírva. Hehh :) A "Hardware Ids" alatt meg a vid/pid volt ott. Sikerült összekötni az egyiket a másikkal.

    Jaaa... Én azt hittem, hogy programot akarsz rá írni, nem csak megsasolni... :DDD

    Van erre egyszerűbb megoldás, powershell-ből kell futtatni egy parancsot.

    Így minden port listázásra kerül, minden infójával

    Get-CimInstance -Namespace Root\Cimv2 -Query "Select * From Win32_PnPEntity where PnPClass = 'Ports' and Name like '%COM%'"

    Így meg csak az Arduino lesz listázva, és csak a Name és HardwareID infó jelenik meg

    Get-CimInstance -Namespace Root\Cimv2 -Query "Select * From Win32_PnPEntity where PnPClass = 'Ports' and Name like '%COM%' and Name like '%Arduino Leonardo%'" | Select-Object Name, HardwareID

  • btraven
    őstag

    A szerdai sajtótájékoztatón bemutatkozott a sorsolási szoftvert gyártó AE Live nevű cég is, amelynek ugyan jelentős szakmai renoméja van, de arra a kérdésre sem David Gill technológiai igazgató, sem Marchetti nem adott egyértelmű választ, hogy mi történne, ha Monacóban össze­omlana a rendszer.

    [https://www.nemzetisport.hu/bajnokok-ligaja/2024/08/szamitogepes-szoftver-sorsolja-az-europai-kupak-fotablajat]

  • coco2
    őstag

    Látatlanba írok, mert nem tudhatom milyen portról van szó és az nem mindegy (USB-C, Thunderbolt stb) ill. milyen eszköz van rá csatlakoztatva (VID/PID azonosítója nem a portnak szokott lenni, hanem az arra csatlakoztatott eszköznek).

    Szóval ahhoz, hogy el tudjunk indulni kellene pár infó
    1. az eszközkezelőből kell az adott típusú portnak az Osztály tulajdonsága (itt a példában a sima kommunikációs port van csak jelen nálam)
    2. a rácsatlakoztatott eszköznek pedig kell a Eszközpéldány elérési útja és Hardverazonosítók tulajdonsága (deszkámon nincs semmi USB-C vagy Thunderbolt stb port így csak egy telót pattintottam fel USB portra a példa kedvéért)

    Ne fényképet dobj be róla, hanem az adott tulajdonságok értékeit copy/paste-l tedd bele a válasz hozzászólásodba, mert Nekem azokkal még dolgom lesz, hd ne kelljen képről bepötyögnöm... :DDD

    Köszönöm a tippet! Végül szerencsém volt. Az eszköz amúgy egy arduino micro (bár az enumerátor leonardo-nak látja, de az aprólék probléma).

    Ott a details alatt találtam "Display name" gyanánt: "Arduino Leonardo (COM5)". Egyben leírva. Hehh :) A "Hardware Ids" alatt meg a vid/pid volt ott. Sikerült összekötni az egyiket a másikkal.

  • Fire/SOUL/CD
    félisten

    Van egy usb cdc serial-om. Vid / pid-et tudok, com port számot nem. És azt kellene használni alkalmazásból.

    A bénábbik megoldás config file-ba rakni a com port számot. Aztán mindig imádkozni, hogy rendszer újraindítás után ugyan az maradjon. Lenne pár usb-s serial port abban a környezetben. A normálisabb megoldás az lenne, hogy fel tudom kutatni a portot automatizáltan. Viszont nem vagyok róla képben, mi tud com port számot usb-s eszközzel összekötni?

    Küzdött már meg valaki ilyesmivel?

    Látatlanba írok, mert nem tudhatom milyen portról van szó és az nem mindegy (USB-C, Thunderbolt stb) ill. milyen eszköz van rá csatlakoztatva (VID/PID azonosítója nem a portnak szokott lenni, hanem az arra csatlakoztatott eszköznek).

    Szóval ahhoz, hogy el tudjunk indulni kellene pár infó
    1. az eszközkezelőből kell az adott típusú portnak az Osztály tulajdonsága (itt a példában a sima kommunikációs port van csak jelen nálam)
    2. a rácsatlakoztatott eszköznek pedig kell a Eszközpéldány elérési útja és Hardverazonosítók tulajdonsága (deszkámon nincs semmi USB-C vagy Thunderbolt stb port így csak egy telót pattintottam fel USB portra a példa kedvéért)

    Ne fényképet dobj be róla, hanem az adott tulajdonságok értékeit copy/paste-l tedd bele a válasz hozzászólásodba, mert Nekem azokkal még dolgom lesz, hd ne kelljen képről bepötyögnöm... :DDD

  • coco2
    őstag

    Van egy usb cdc serial-om. Vid / pid-et tudok, com port számot nem. És azt kellene használni alkalmazásból.

    A bénábbik megoldás config file-ba rakni a com port számot. Aztán mindig imádkozni, hogy rendszer újraindítás után ugyan az maradjon. Lenne pár usb-s serial port abban a környezetben. A normálisabb megoldás az lenne, hogy fel tudom kutatni a portot automatizáltan. Viszont nem vagyok róla képben, mi tud com port számot usb-s eszközzel összekötni?

    Küzdött már meg valaki ilyesmivel?

  • sztanozs
    veterán

    Sziasztok! Hátha ez a topic aktívabb. Ismerősöm weboldalát felnyomták egy az egyik JS fájlt letitkosították. Ilyen szép kód lett benne:

    (function (_0x4b359b, _0x4c3a4a) {    function _0x2d3144(_0x17fd1b, _0x1813c4, _0x5a6740, _0x42bcb2, _0x389018) {        return _0x27e3(_0x42bcb2 - 0x140, _0x17fd1b);    }    function _0x21f1e0(_0xe706ef, _0x514a25, _0x25a219, _0x6e1278, _0x441569) {        return _0x27e3(_0x514a25 - -0x3df, _0x6e1278);    }    function _0x5544f1(_0xebb722, _0x2ab629, _0x30f3ee, _0x34dc72, _0x526353) {        return _0x27e3(_0x30f3ee - -0x1d6, _0xebb722);    }    function _0x276333(_0x463ece, _0x171328, _0x2525c3, _0x57e301, _0x305a97) {        return _0x27e3(_0x171328 - -0x316, _0x305a97);    }    function _0x1aa7fd(_0x2c7df9, _0xd7296, _0x445288, _0x30f97f, _0x41996d) {        return _0x27e3(_0x445288 - 0x3e7, _0x30f97f);    }    var _0x16edc2 = _0x4b359b();    while (!![]) {        try {            var _0x41609f = parseInt(_0x276333(0x4be, 0xbb5, 0x493, 0xe14, 'AmEp')) / 0x1 + parseInt(_0x276333(0x907, 0xf2a, 0x6ec, 0x3c3, 'ND!0')) / 0x2 + -parseInt(_0x5544f1('Kp[D', 0xcef, 0xb86, 0xcfd, 0xd50)) / 0x3 * (parseInt(_0x1aa7fd(0xba6, 0x11ec, 0x9e6, 'bqON', -0xed)) / 0x4) + -parseInt(_0x1aa7fd(0xd89, 0x1291, 0x17d0, 'AmEp', 0x19b6)) / 0x5 * (parseInt(_0x276333(0x57e, 0x44d, 0xcec, 0x525, 'gwff')) / 0x6) + -parseInt(_0x5544f1('B[0r', 0x306, -0x128, 0x599, 0x204)) / 0x7 * (-parseInt(_0x1aa7fd(0xa7f, 0x10a5, 0x14a3, 'bJLN', 0x11d2)) / 0x8) + parseInt(_0x5544f1('ND!0', 0x60, 0xae5, 0x1296, 0xb8e)) / 0x9 * (parseInt(_0x276333(-0x21a, 0x494, 0x9a3, 0x2a8, 'dZv$')) / 0xa) + -parseInt(_0x5544f1('Ys[b', 0xc43, 0x422, -0x27d, 0xa04)) / 0xb;            if (_0x41609f === _0x4c3a4a) {                break;            } else {                _0x16edc2['push'](_0x16edc2['shift']());            }        } catch (_0x3e2f1) {            _0x16edc2['push'](_0x16edc2['shift']());        }    }}(_0x38d6, 0x9687c));

    Annyit ki tudtam deríteni, hogy "Obfuszkálva" lett a kód. Ezt próbáltam vissza fejteni neki, de csak félsiker lett.
    Az eredmény ez lett:
    function getCookie(_0x1e7c5e) {
        var _0x488072 = document.cookie.match('(^|;) ?' + _0x1e7c5e + '=([^;]*)(;|$)');
        return _0x488072 ? _0x488072[2] : null;
    }

    Viszont ennek kellene lennie:
    function getCookie(key) {
    var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
    return keyValue ? keyValue[2] : null;
    }

    Szerinteted valamivel lehet még menteni a kódon, vagy engedje el és kezdje újra? Természetesen biztonsági mentése nem volt, miért is lenne :DDD

    Nem lehet, hogy a fejlesztokornyezetben felrenyomott valamit (minimize/obfuscate/stb)?

  • proci985
    MODERÁTOR

    Sziasztok! Hátha ez a topic aktívabb. Ismerősöm weboldalát felnyomták egy az egyik JS fájlt letitkosították. Ilyen szép kód lett benne:

    (function (_0x4b359b, _0x4c3a4a) {    function _0x2d3144(_0x17fd1b, _0x1813c4, _0x5a6740, _0x42bcb2, _0x389018) {        return _0x27e3(_0x42bcb2 - 0x140, _0x17fd1b);    }    function _0x21f1e0(_0xe706ef, _0x514a25, _0x25a219, _0x6e1278, _0x441569) {        return _0x27e3(_0x514a25 - -0x3df, _0x6e1278);    }    function _0x5544f1(_0xebb722, _0x2ab629, _0x30f3ee, _0x34dc72, _0x526353) {        return _0x27e3(_0x30f3ee - -0x1d6, _0xebb722);    }    function _0x276333(_0x463ece, _0x171328, _0x2525c3, _0x57e301, _0x305a97) {        return _0x27e3(_0x171328 - -0x316, _0x305a97);    }    function _0x1aa7fd(_0x2c7df9, _0xd7296, _0x445288, _0x30f97f, _0x41996d) {        return _0x27e3(_0x445288 - 0x3e7, _0x30f97f);    }    var _0x16edc2 = _0x4b359b();    while (!![]) {        try {            var _0x41609f = parseInt(_0x276333(0x4be, 0xbb5, 0x493, 0xe14, 'AmEp')) / 0x1 + parseInt(_0x276333(0x907, 0xf2a, 0x6ec, 0x3c3, 'ND!0')) / 0x2 + -parseInt(_0x5544f1('Kp[D', 0xcef, 0xb86, 0xcfd, 0xd50)) / 0x3 * (parseInt(_0x1aa7fd(0xba6, 0x11ec, 0x9e6, 'bqON', -0xed)) / 0x4) + -parseInt(_0x1aa7fd(0xd89, 0x1291, 0x17d0, 'AmEp', 0x19b6)) / 0x5 * (parseInt(_0x276333(0x57e, 0x44d, 0xcec, 0x525, 'gwff')) / 0x6) + -parseInt(_0x5544f1('B[0r', 0x306, -0x128, 0x599, 0x204)) / 0x7 * (-parseInt(_0x1aa7fd(0xa7f, 0x10a5, 0x14a3, 'bJLN', 0x11d2)) / 0x8) + parseInt(_0x5544f1('ND!0', 0x60, 0xae5, 0x1296, 0xb8e)) / 0x9 * (parseInt(_0x276333(-0x21a, 0x494, 0x9a3, 0x2a8, 'dZv$')) / 0xa) + -parseInt(_0x5544f1('Ys[b', 0xc43, 0x422, -0x27d, 0xa04)) / 0xb;            if (_0x41609f === _0x4c3a4a) {                break;            } else {                _0x16edc2['push'](_0x16edc2['shift']());            }        } catch (_0x3e2f1) {            _0x16edc2['push'](_0x16edc2['shift']());        }    }}(_0x38d6, 0x9687c));

    Annyit ki tudtam deríteni, hogy "Obfuszkálva" lett a kód. Ezt próbáltam vissza fejteni neki, de csak félsiker lett.
    Az eredmény ez lett:
    function getCookie(_0x1e7c5e) {
        var _0x488072 = document.cookie.match('(^|;) ?' + _0x1e7c5e + '=([^;]*)(;|$)');
        return _0x488072 ? _0x488072[2] : null;
    }

    Viszont ennek kellene lennie:
    function getCookie(key) {
    var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
    return keyValue ? keyValue[2] : null;
    }

    Szerinteted valamivel lehet még menteni a kódon, vagy engedje el és kezdje újra? Természetesen biztonsági mentése nem volt, miért is lenne :DDD

    masodik varians az olvashato, egyedul a valtozonevek nem stimmelnek, ha kozelebbrol megnezed

    sima refaktorral ez gyorsan megy, marha a valtozonevek nelkul vissza tudod fejteni, hogy mi micsoda

  • Vision
    veterán

    Saját magának hosztolta, egy sima hobbi weboldal. Helyben csinált mindent. :DDD De így vissza fejtve ~200 sor az egész JS fájl, mondtam neki jobban jár ha újra megírja. Vagy próbálja meg kitalálni melyik "kód" melyik változót jelöli :DD

    Kicsit konstruktívabban, mint a kollgák:

    - ilyen kis mennyiség esetén valószínűleg egyszerűbb manuálisan javítani
    - ha hobbi projekt, akkor érdemes most belecsapni olyasmibe, mint verziókövető rendszer használata, CI/CD folyamat kialakítása. Egy GIT repo önmagában megoldás lehet ilyen helyzetekre egyéb backup nélkül is.

  • bucihost
    senior tag
    A megválaszolt hozzászólás már nem elérhető.

    Saját magának hosztolta, egy sima hobbi weboldal. Helyben csinált mindent. :DDD De így vissza fejtve ~200 sor az egész JS fájl, mondtam neki jobban jár ha újra megírja. Vagy próbálja meg kitalálni melyik "kód" melyik változót jelöli :DD

  • coco2
    őstag

    Sziasztok! Hátha ez a topic aktívabb. Ismerősöm weboldalát felnyomták egy az egyik JS fájlt letitkosították. Ilyen szép kód lett benne:

    (function (_0x4b359b, _0x4c3a4a) {    function _0x2d3144(_0x17fd1b, _0x1813c4, _0x5a6740, _0x42bcb2, _0x389018) {        return _0x27e3(_0x42bcb2 - 0x140, _0x17fd1b);    }    function _0x21f1e0(_0xe706ef, _0x514a25, _0x25a219, _0x6e1278, _0x441569) {        return _0x27e3(_0x514a25 - -0x3df, _0x6e1278);    }    function _0x5544f1(_0xebb722, _0x2ab629, _0x30f3ee, _0x34dc72, _0x526353) {        return _0x27e3(_0x30f3ee - -0x1d6, _0xebb722);    }    function _0x276333(_0x463ece, _0x171328, _0x2525c3, _0x57e301, _0x305a97) {        return _0x27e3(_0x171328 - -0x316, _0x305a97);    }    function _0x1aa7fd(_0x2c7df9, _0xd7296, _0x445288, _0x30f97f, _0x41996d) {        return _0x27e3(_0x445288 - 0x3e7, _0x30f97f);    }    var _0x16edc2 = _0x4b359b();    while (!![]) {        try {            var _0x41609f = parseInt(_0x276333(0x4be, 0xbb5, 0x493, 0xe14, 'AmEp')) / 0x1 + parseInt(_0x276333(0x907, 0xf2a, 0x6ec, 0x3c3, 'ND!0')) / 0x2 + -parseInt(_0x5544f1('Kp[D', 0xcef, 0xb86, 0xcfd, 0xd50)) / 0x3 * (parseInt(_0x1aa7fd(0xba6, 0x11ec, 0x9e6, 'bqON', -0xed)) / 0x4) + -parseInt(_0x1aa7fd(0xd89, 0x1291, 0x17d0, 'AmEp', 0x19b6)) / 0x5 * (parseInt(_0x276333(0x57e, 0x44d, 0xcec, 0x525, 'gwff')) / 0x6) + -parseInt(_0x5544f1('B[0r', 0x306, -0x128, 0x599, 0x204)) / 0x7 * (-parseInt(_0x1aa7fd(0xa7f, 0x10a5, 0x14a3, 'bJLN', 0x11d2)) / 0x8) + parseInt(_0x5544f1('ND!0', 0x60, 0xae5, 0x1296, 0xb8e)) / 0x9 * (parseInt(_0x276333(-0x21a, 0x494, 0x9a3, 0x2a8, 'dZv$')) / 0xa) + -parseInt(_0x5544f1('Ys[b', 0xc43, 0x422, -0x27d, 0xa04)) / 0xb;            if (_0x41609f === _0x4c3a4a) {                break;            } else {                _0x16edc2['push'](_0x16edc2['shift']());            }        } catch (_0x3e2f1) {            _0x16edc2['push'](_0x16edc2['shift']());        }    }}(_0x38d6, 0x9687c));

    Annyit ki tudtam deríteni, hogy "Obfuszkálva" lett a kód. Ezt próbáltam vissza fejteni neki, de csak félsiker lett.
    Az eredmény ez lett:
    function getCookie(_0x1e7c5e) {
        var _0x488072 = document.cookie.match('(^|;) ?' + _0x1e7c5e + '=([^;]*)(;|$)');
        return _0x488072 ? _0x488072[2] : null;
    }

    Viszont ennek kellene lennie:
    function getCookie(key) {
    var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
    return keyValue ? keyValue[2] : null;
    }

    Szerinteted valamivel lehet még menteni a kódon, vagy engedje el és kezdje újra? Természetesen biztonsági mentése nem volt, miért is lenne :DDD

    Ahogy az eredményt elnézem, sikerült rendesen írni át az eredeti függvényt, azt már elég jól csináljátok :K Most még arra figyeljetek, hogy kutassátok fel, és töröljétek a biztonsági mentéseket, amik vélhetően ugyan azon a szerveren vannak (általános jelenkori esetben). Ha azt elszúrjátok, még mindig kukában végezte az összes munkátok :W Ha sikerül azt is elintézni, akkor lehet neki a kryptopénzes zsarolást küldeni :DDD

  • martonx
    veterán

    Sziasztok! Hátha ez a topic aktívabb. Ismerősöm weboldalát felnyomták egy az egyik JS fájlt letitkosították. Ilyen szép kód lett benne:

    (function (_0x4b359b, _0x4c3a4a) {    function _0x2d3144(_0x17fd1b, _0x1813c4, _0x5a6740, _0x42bcb2, _0x389018) {        return _0x27e3(_0x42bcb2 - 0x140, _0x17fd1b);    }    function _0x21f1e0(_0xe706ef, _0x514a25, _0x25a219, _0x6e1278, _0x441569) {        return _0x27e3(_0x514a25 - -0x3df, _0x6e1278);    }    function _0x5544f1(_0xebb722, _0x2ab629, _0x30f3ee, _0x34dc72, _0x526353) {        return _0x27e3(_0x30f3ee - -0x1d6, _0xebb722);    }    function _0x276333(_0x463ece, _0x171328, _0x2525c3, _0x57e301, _0x305a97) {        return _0x27e3(_0x171328 - -0x316, _0x305a97);    }    function _0x1aa7fd(_0x2c7df9, _0xd7296, _0x445288, _0x30f97f, _0x41996d) {        return _0x27e3(_0x445288 - 0x3e7, _0x30f97f);    }    var _0x16edc2 = _0x4b359b();    while (!![]) {        try {            var _0x41609f = parseInt(_0x276333(0x4be, 0xbb5, 0x493, 0xe14, 'AmEp')) / 0x1 + parseInt(_0x276333(0x907, 0xf2a, 0x6ec, 0x3c3, 'ND!0')) / 0x2 + -parseInt(_0x5544f1('Kp[D', 0xcef, 0xb86, 0xcfd, 0xd50)) / 0x3 * (parseInt(_0x1aa7fd(0xba6, 0x11ec, 0x9e6, 'bqON', -0xed)) / 0x4) + -parseInt(_0x1aa7fd(0xd89, 0x1291, 0x17d0, 'AmEp', 0x19b6)) / 0x5 * (parseInt(_0x276333(0x57e, 0x44d, 0xcec, 0x525, 'gwff')) / 0x6) + -parseInt(_0x5544f1('B[0r', 0x306, -0x128, 0x599, 0x204)) / 0x7 * (-parseInt(_0x1aa7fd(0xa7f, 0x10a5, 0x14a3, 'bJLN', 0x11d2)) / 0x8) + parseInt(_0x5544f1('ND!0', 0x60, 0xae5, 0x1296, 0xb8e)) / 0x9 * (parseInt(_0x276333(-0x21a, 0x494, 0x9a3, 0x2a8, 'dZv$')) / 0xa) + -parseInt(_0x5544f1('Ys[b', 0xc43, 0x422, -0x27d, 0xa04)) / 0xb;            if (_0x41609f === _0x4c3a4a) {                break;            } else {                _0x16edc2['push'](_0x16edc2['shift']());            }        } catch (_0x3e2f1) {            _0x16edc2['push'](_0x16edc2['shift']());        }    }}(_0x38d6, 0x9687c));

    Annyit ki tudtam deríteni, hogy "Obfuszkálva" lett a kód. Ezt próbáltam vissza fejteni neki, de csak félsiker lett.
    Az eredmény ez lett:
    function getCookie(_0x1e7c5e) {
        var _0x488072 = document.cookie.match('(^|;) ?' + _0x1e7c5e + '=([^;]*)(;|$)');
        return _0x488072 ? _0x488072[2] : null;
    }

    Viszont ennek kellene lennie:
    function getCookie(key) {
    var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
    return keyValue ? keyValue[2] : null;
    }

    Szerinteted valamivel lehet még menteni a kódon, vagy engedje el és kezdje újra? Természetesen biztonsági mentése nem volt, miért is lenne :DDD

    Aki ennyire hülye, mint az ismerősöd az meg is érdemli. Ezt hívják tanulópénznek :D Kezdje el újra, immár helyes gyakorlatok mentén.

  • bucihost
    senior tag

    Sziasztok! Hátha ez a topic aktívabb. Ismerősöm weboldalát felnyomták egy az egyik JS fájlt letitkosították. Ilyen szép kód lett benne:

    (function (_0x4b359b, _0x4c3a4a) {    function _0x2d3144(_0x17fd1b, _0x1813c4, _0x5a6740, _0x42bcb2, _0x389018) {        return _0x27e3(_0x42bcb2 - 0x140, _0x17fd1b);    }    function _0x21f1e0(_0xe706ef, _0x514a25, _0x25a219, _0x6e1278, _0x441569) {        return _0x27e3(_0x514a25 - -0x3df, _0x6e1278);    }    function _0x5544f1(_0xebb722, _0x2ab629, _0x30f3ee, _0x34dc72, _0x526353) {        return _0x27e3(_0x30f3ee - -0x1d6, _0xebb722);    }    function _0x276333(_0x463ece, _0x171328, _0x2525c3, _0x57e301, _0x305a97) {        return _0x27e3(_0x171328 - -0x316, _0x305a97);    }    function _0x1aa7fd(_0x2c7df9, _0xd7296, _0x445288, _0x30f97f, _0x41996d) {        return _0x27e3(_0x445288 - 0x3e7, _0x30f97f);    }    var _0x16edc2 = _0x4b359b();    while (!![]) {        try {            var _0x41609f = parseInt(_0x276333(0x4be, 0xbb5, 0x493, 0xe14, 'AmEp')) / 0x1 + parseInt(_0x276333(0x907, 0xf2a, 0x6ec, 0x3c3, 'ND!0')) / 0x2 + -parseInt(_0x5544f1('Kp[D', 0xcef, 0xb86, 0xcfd, 0xd50)) / 0x3 * (parseInt(_0x1aa7fd(0xba6, 0x11ec, 0x9e6, 'bqON', -0xed)) / 0x4) + -parseInt(_0x1aa7fd(0xd89, 0x1291, 0x17d0, 'AmEp', 0x19b6)) / 0x5 * (parseInt(_0x276333(0x57e, 0x44d, 0xcec, 0x525, 'gwff')) / 0x6) + -parseInt(_0x5544f1('B[0r', 0x306, -0x128, 0x599, 0x204)) / 0x7 * (-parseInt(_0x1aa7fd(0xa7f, 0x10a5, 0x14a3, 'bJLN', 0x11d2)) / 0x8) + parseInt(_0x5544f1('ND!0', 0x60, 0xae5, 0x1296, 0xb8e)) / 0x9 * (parseInt(_0x276333(-0x21a, 0x494, 0x9a3, 0x2a8, 'dZv$')) / 0xa) + -parseInt(_0x5544f1('Ys[b', 0xc43, 0x422, -0x27d, 0xa04)) / 0xb;            if (_0x41609f === _0x4c3a4a) {                break;            } else {                _0x16edc2['push'](_0x16edc2['shift']());            }        } catch (_0x3e2f1) {            _0x16edc2['push'](_0x16edc2['shift']());        }    }}(_0x38d6, 0x9687c));

    Annyit ki tudtam deríteni, hogy "Obfuszkálva" lett a kód. Ezt próbáltam vissza fejteni neki, de csak félsiker lett.
    Az eredmény ez lett:
    function getCookie(_0x1e7c5e) {
        var _0x488072 = document.cookie.match('(^|;) ?' + _0x1e7c5e + '=([^;]*)(;|$)');
        return _0x488072 ? _0x488072[2] : null;
    }

    Viszont ennek kellene lennie:
    function getCookie(key) {
    var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
    return keyValue ? keyValue[2] : null;
    }

    Szerinteted valamivel lehet még menteni a kódon, vagy engedje el és kezdje újra? Természetesen biztonsági mentése nem volt, miért is lenne :DDD

  • coco2
    őstag
    A megválaszolt hozzászólás már nem elérhető.

    Khm.. hogyan kell azt érteni, hogy nem látsz eléggé? Példának okáért itt válaszolsz a fórumon.

  • coco2
    őstag
    A megválaszolt hozzászólás már nem elérhető.

    Olyankor segít, ha nem supermennek akarsz lenni, csak megkérdezni google-t :)

    edit: elkéstem vele @sztanozs volt gyorsabb, scriptet innét töröltem :)

  • sztanozs
    veterán

    Gondolom, Windowsról van szó, de Linuxon pl.:

    for f in $(cat textfile.txt); do cp minta.xls $f.xls; done

    Windows:
    FOR /F "delims=" %%G IN (textfile.txt) DO copy minta.xls %%G.xls

  • kovisoft
    őstag

    tud valaki scriptet az alábbira
    adott egy mintafájl, amiről egy textfileban lévő lista alapján szeretnék létrehozni számos másolatot egy könyvtárban, pl adott egy minta.xls

    text file:
    alfa
    beta
    gamma

    kimenet:
    alfa.xls
    beta.xls
    gamma.xls

    Gondolom, Windowsról van szó, de Linuxon pl.:

    for f in $(cat textfile.txt); do cp minta.xls $f.xls; done

  • Zola007
    veterán

    tud valaki scriptet az alábbira
    adott egy mintafájl, amiről egy textfileban lévő lista alapján szeretnék létrehozni számos másolatot egy könyvtárban, pl adott egy minta.xls

    text file:
    alfa
    beta
    gamma

    kimenet:
    alfa.xls
    beta.xls
    gamma.xls

  • coco2
    őstag

    Másik lehetőség, hogy nyitsz egy demó számlát xm.com vagy pepperstone.com oldalon, és annyi teszt adatot gyűjtesz a kismillió devizapárról, tőzsdeindexről, részvény árfolyamról, amennyi jól esik. Kell hozzá egy MetaTrader 5 (esetleg 4) alkalmazás, amivel belépsz a fiókodba. Azt most épp nem tudom, hogyan lehet az adatokat exportálni pl. csv-be, de biztosan megoldható, láttam már olyat.

    Teszt adat gyűjtés azóta megoldódott, köszönöm a segítséget mindenkinek.

    @VikMorroHun

    Én is mindig elszörnyedek azon, egyesek mi mindent képesek szervernek nevezni. Dehát, ilyen világban élünk.

  • VikMorroHun
    őstag

    @galaxy55

    Én szeretem a palacsintát :) Ha a modik is, akkor szerintem nem fognak szólni érte :)

    Más.

    Teszt adathalmaz gyűjtésre kérnék tippet bárkitől, aki a pénzügyi / tőzsdei világban mozgott már kicsit. Kotorászok olyan weboldal után, ahol tőzsdei részvények aktuális árfolyamait nyilvánosan látni lehet - ha létezik éppen olyan. Mondjuk valami ilyesmi kellene (oldalon letekerni kicsit "Live Currency Rates"-ig). Csak részvény név és usd árfolyam adatokkal.

    Nézelődtem Nasdaq oldalak környékén, összeakadtam az InteractiveBrokers névvel, de nyilvános adatokat weben sajnos nem találtam. Meg egyébként is gyenge a Google skillem.

    Bármilyen tippnek örülnék. Előre is köszönöm.

    Másik lehetőség, hogy nyitsz egy demó számlát xm.com vagy pepperstone.com oldalon, és annyi teszt adatot gyűjtesz a kismillió devizapárról, tőzsdeindexről, részvény árfolyamról, amennyi jól esik. Kell hozzá egy MetaTrader 5 (esetleg 4) alkalmazás, amivel belépsz a fiókodba. Azt most épp nem tudom, hogyan lehet az adatokat exportálni pl. csv-be, de biztosan megoldható, láttam már olyat.

  • VikMorroHun
    őstag

    Még akkor sem biztos, hogy van választásod.

    Egy "okosan" megírt join query elkezdi ciklusban foglalni a memória területeket, és végül elfogy a ram, aztán elfogy a swap is - és talán nem kell ecsetelnem, hogy amikor már a swap-ot tölti, mi történik a sebességgel. Néhány műveletet logikailag le lehet írni, de abban a formában a gyakorlatban futásképtelen.

    Big data terepen az egész feldolgozást kell más technikai alapra rakni. Sql script kuka. Ami adatok egyben kellenek az áradat feldolgozáshoz, azoknak memóriában kell lennie. Meg persze lehet több dimenzióban szeletelni, ha még úgy is túl nagy a falat.

    Ehhez egy adalék:
    Nemrég volt nálunk olyan, hogy rossz a monitor, mert időnként elsötétül a kép. Ki is cserélték valami vacakra, aminek a felbontása, hát, alacsonyabb, mint kellene.

    Sikerült visszakérnem a leltáros munkatársnőtől. Aztán nálam is jelentkezett a probléma: mintha munka közben kikapcsolt volna a képernyő, és nem is lehet visszakapcsolni. Viszont az egér működik. Hm.

    Aztán olyan hibák jöttek, amikre a program sem tudott mit mondani, egyszerűen csak nem működött. Már arra gyanakodtam, hogy megsérült benne valamelyik RAM modul (le kellene futtatni egy Memtestet, de az is macerás). Aztán valahogy eszembe jutott, hogy megnézzem, tulajdonképpen mennyi virtuális memória van benne - azt hittem, leesek a székről: 4 GB RAM van a gépben, és valaki valamikor kikapcsolta a lapozófájlt. Nem csoda, hogy a levelező megnyitása pár másodpercre képes volt lefagyasztani a rendszert, illetve folyton összeomlott egyik-másik ablak, hiszen az semmire sem elég...

  • proci985
    MODERÁTOR

    @galaxy55

    Én szeretem a palacsintát :) Ha a modik is, akkor szerintem nem fognak szólni érte :)

    Más.

    Teszt adathalmaz gyűjtésre kérnék tippet bárkitől, aki a pénzügyi / tőzsdei világban mozgott már kicsit. Kotorászok olyan weboldal után, ahol tőzsdei részvények aktuális árfolyamait nyilvánosan látni lehet - ha létezik éppen olyan. Mondjuk valami ilyesmi kellene (oldalon letekerni kicsit "Live Currency Rates"-ig). Csak részvény név és usd árfolyam adatokkal.

    Nézelődtem Nasdaq oldalak környékén, összeakadtam az InteractiveBrokers névvel, de nyilvános adatokat weben sajnos nem találtam. Meg egyébként is gyenge a Google skillem.

    Bármilyen tippnek örülnék. Előre is köszönöm.

    google scholar keresoben financial dataset: [link]

    ahogy nezem az elso talaltok kozott ott a Finqa, a REFinD es a Dgraph ami relevansnak tunik. de siman ha ranezel a kutatasi cikkekre biztos megemlitik, milyen adathalmazzal dolgoztak es az alapjan tudsz finomitani.

  • coco2
    őstag

    @galaxy55

    Én szeretem a palacsintát :) Ha a modik is, akkor szerintem nem fognak szólni érte :)

    Más.

    Teszt adathalmaz gyűjtésre kérnék tippet bárkitől, aki a pénzügyi / tőzsdei világban mozgott már kicsit. Kotorászok olyan weboldal után, ahol tőzsdei részvények aktuális árfolyamait nyilvánosan látni lehet - ha létezik éppen olyan. Mondjuk valami ilyesmi kellene (oldalon letekerni kicsit "Live Currency Rates"-ig). Csak részvény név és usd árfolyam adatokkal.

    Nézelődtem Nasdaq oldalak környékén, összeakadtam az InteractiveBrokers névvel, de nyilvános adatokat weben sajnos nem találtam. Meg egyébként is gyenge a Google skillem.

    Bármilyen tippnek örülnék. Előre is köszönöm.

  • emvy
    félisten

    Ha tranzakció alapon fut valami, és feltételezem a szigetelési szintek is a jelenkori átlagosak, akkor egy ügyes join query kb tucatnyi szervert egyszerre tud megfogni, mert zárolás alá kerül gyakorlatilag minden. Egy időben csak egy folyamat tud majd futni a db-ben. Vajon kitaláltak arra valamit, vagy azt csak elfogadják?

    BQ alapvetoen analitikara valo, azaz read heavy dolgokra.

  • coco2
    őstag

    Ha tranzakció alapon fut valami, és feltételezem a szigetelési szintek is a jelenkori átlagosak, akkor egy ügyes join query kb tucatnyi szervert egyszerre tud megfogni, mert zárolás alá kerül gyakorlatilag minden. Egy időben csak egy folyamat tud majd futni a db-ben. Vajon kitaláltak arra valamit, vagy azt csak elfogadják?

  • coco2
    őstag

    psql-nel kulon allitod a working_mem-et, es a diszket hasznalja spillover eseten (es azt is megmondhatod neki, h a diszk mennyivel lassabb/gyorsabb, mint a memoria)

    bq-nal, mint a tobbi big data db-nel is, ugy mukodik a dolog, h replikalva van az adat gyors tarolokon, szoval mondjuk egy aggregacio eseten gyorsabban tudsz vegigmenni az adatokon, mint egy eros szerver memoriasavszelessege

    Memória kezelést köszönöm mindkettőtöknek.

    BQ-nál amit írsz A.C.I.D. vagy B.A.S.E. alapon működik? (Egyértelműsítő link.)

  • emvy
    félisten

    Bevallom töredelmesen, nem tudom, miből van gyúrva a BigQuery a brossúra szöveg mögött. Átírták áradat feldolgozásra az sql scriptek funkcionalitását? Vagy ugyan úgy tranzakció alapú feldolgozás?

    Swap. Egy sql szerver hogyan tudja kitalálni, hogy adott időpillanatban adott memória éppen fizikailag a ram-ban van-e, vagy kikerült swap-re? (Linux partition type 0x82, hogy konkrétak legyünk.)

    psql-nel kulon allitod a working_mem-et, es a diszket hasznalja spillover eseten (es azt is megmondhatod neki, h a diszk mennyivel lassabb/gyorsabb, mint a memoria)

    bq-nal, mint a tobbi big data db-nel is, ugy mukodik a dolog, h replikalva van az adat gyors tarolokon, szoval mondjuk egy aggregacio eseten gyorsabban tudsz vegigmenni az adatokon, mint egy eros szerver memoriasavszelessege

  • cog777
    őstag

    Bevallom töredelmesen, nem tudom, miből van gyúrva a BigQuery a brossúra szöveg mögött. Átírták áradat feldolgozásra az sql scriptek funkcionalitását? Vagy ugyan úgy tranzakció alapú feldolgozás?

    Swap. Egy sql szerver hogyan tudja kitalálni, hogy adott időpillanatban adott memória éppen fizikailag a ram-ban van-e, vagy kikerült swap-re? (Linux partition type 0x82, hogy konkrétak legyünk.)

    Nekem nagyon halovany emlekeim vannak, de valahogy meg lehetett jelolni a memoria foglalast, nem swap-olhatonak. Valami ilyesmi. (De nem tudom hogy a mai friss linuxoknal is igy van-e)

    "The non-swapable memory is called "pinned" and this is the type of memory that is commonly used for DMA (Direct Memory Access). You can mark some part of virtual address using mlock(2) or mlockall(2) functions."

  • coco2
    őstag

    Ellenpélda: BigQuery.

    Egyébként a Psql sem használ swapet.

    Bevallom töredelmesen, nem tudom, miből van gyúrva a BigQuery a brossúra szöveg mögött. Átírták áradat feldolgozásra az sql scriptek funkcionalitását? Vagy ugyan úgy tranzakció alapú feldolgozás?

    Swap. Egy sql szerver hogyan tudja kitalálni, hogy adott időpillanatban adott memória éppen fizikailag a ram-ban van-e, vagy kikerült swap-re? (Linux partition type 0x82, hogy konkrétak legyünk.)

  • cog777
    őstag

    4 lehetőség van(+vagy a fejlesztőkörnyezetből másolod ki a kódot vagy pl. egy szövegszerkesztőből), próbáld ki melyik válik be/melyik  válik be legjobban

    1. új szerkesztő, programkód formázás, kód beilleszt
    2. új szerkesztő, kód beilleszt, kód kijelöl, programkód formázás
    3. régi szerkesztő, programkód formázás, kód beilleszt
    4. régi szerkesztő, kód beilleszt, kód kijelöl, programkód formázás

    ez a 3. lehetőség és C++ Builder-ből lett kimásolva a kód
    void _ALLUserFXs::F_CheckTrimSending()
    {
    AnsiString as;

    TRegistry * reg = new TRegistry(KEY_READ);
    reg->RootKey = HKEY_LOCAL_MACHINE;
    reg->Access = KEY_READ;
    if( !reg->OpenKey("\\SYSTEM\\CurrentControlSet\\Control\\FileSystem\\", false) ||
    !reg->ValueExists("DisableDeleteNotification")
    )
    {
    AIO.MySystemInfo.OSInfo.OSTrimSupported = false;
    strcpy(AIO.MySystemInfo.OSInfo.OSTrimSendingFromRegistryText, FC_NA.c_str());
    }
    else {
    as = reg->ReadInteger("DisableDeleteNotification");
    if (as == 0) {
    AIO.MySystemInfo.OSInfo.OSTrimSendingFromRegistry = true;
    strcpy(AIO.MySystemInfo.OSInfo.OSTrimSendingFromRegistryText, FC_OSSENDSTRIM.c_str());
    }
    else {
    AIO.MySystemInfo.OSInfo.OSTrimSendingFromRegistry = false;
    strcpy(AIO.MySystemInfo.OSInfo.OSTrimSendingFromRegistryText, FC_OSDOESNOTSENDTRIM.c_str());
    }
    }
    reg->CloseKey();
    reg->Free();
    }

    Nagyon koszi, Fire!
    Ugy tunik az uj szerkesztoben nekem nem mukodik a code formazas, Firefox es Edge hasznalataval. Visual Studio Code-bol es Notepad++ -bol is probaltam masolni.

    Regi szerkesztovel pedig igen:

    template <typename T1>
    bool queue_receive(QueueHandle_t &queue, T1 &value)
    {
    if (uxQueueMessagesWaiting(queue))
    {
    T1 *request{nullptr};
    xQueueReceive(queue, request, (TickType_t)10);
    value = std::move(*request);
    vPortFree(request);
    return true;
    }

    return false;
    }

  • emvy
    félisten

    Még akkor sem biztos, hogy van választásod.

    Egy "okosan" megírt join query elkezdi ciklusban foglalni a memória területeket, és végül elfogy a ram, aztán elfogy a swap is - és talán nem kell ecsetelnem, hogy amikor már a swap-ot tölti, mi történik a sebességgel. Néhány műveletet logikailag le lehet írni, de abban a formában a gyakorlatban futásképtelen.

    Big data terepen az egész feldolgozást kell más technikai alapra rakni. Sql script kuka. Ami adatok egyben kellenek az áradat feldolgozáshoz, azoknak memóriában kell lennie. Meg persze lehet több dimenzióban szeletelni, ha még úgy is túl nagy a falat.

    Ellenpélda: BigQuery.

    Egyébként a Psql sem használ swapet.

  • coco2
    őstag

    tobbszazezer sor siman elfer a memoriaban (hacsak nincs 30-40 mezo benne) - az igazi problemak szvsz tobb 10-100 M rekordnal kezdodnek

    Még akkor sem biztos, hogy van választásod.

    Egy "okosan" megírt join query elkezdi ciklusban foglalni a memória területeket, és végül elfogy a ram, aztán elfogy a swap is - és talán nem kell ecsetelnem, hogy amikor már a swap-ot tölti, mi történik a sebességgel. Néhány műveletet logikailag le lehet írni, de abban a formában a gyakorlatban futásképtelen.

    Big data terepen az egész feldolgozást kell más technikai alapra rakni. Sql script kuka. Ami adatok egyben kellenek az áradat feldolgozáshoz, azoknak memóriában kell lennie. Meg persze lehet több dimenzióban szeletelni, ha még úgy is túl nagy a falat.

  • Fire/SOUL/CD
    félisten

    Egy roppant bena kerdesem lenne, nem jottem meg ra a valaszra, pedig rakerestem az osszes forumban.
    Hogyan kell hasznalni a "programkód formázás"-t?
    Mert rakattintva elojon egy kis beviteli doboz, oda beillesztve szettoredezik a forraskod. Pelda:
    template <typename T1>bool queue_receive(QueueHandle_t &queue, T1 &value){    if (uxQueueMessagesWaiting(queue))    {        T1 *request{nullptr};        xQueueReceive(queue, request, (TickType_t)10);        value = std::move(*request);        vPortFree(request);        return true;    }
        return false;}
    Igy kezzel kell az igazitast javitanom, ezert legtobbszor kepkent illesztem be, de ilyenkor nem olyan egyszeru lemasolni azt.

    4 lehetőség van(+vagy a fejlesztőkörnyezetből másolod ki a kódot vagy pl. egy szövegszerkesztőből), próbáld ki melyik válik be/melyik  válik be legjobban

    1. új szerkesztő, programkód formázás, kód beilleszt
    2. új szerkesztő, kód beilleszt, kód kijelöl, programkód formázás
    3. régi szerkesztő, programkód formázás, kód beilleszt
    4. régi szerkesztő, kód beilleszt, kód kijelöl, programkód formázás

    ez a 3. lehetőség és C++ Builder-ből lett kimásolva a kód
    void _ALLUserFXs::F_CheckTrimSending()
    {
    AnsiString as;

    TRegistry * reg = new TRegistry(KEY_READ);
    reg->RootKey = HKEY_LOCAL_MACHINE;
    reg->Access = KEY_READ;
    if( !reg->OpenKey("\\SYSTEM\\CurrentControlSet\\Control\\FileSystem\\", false) ||
    !reg->ValueExists("DisableDeleteNotification")
    )
    {
    AIO.MySystemInfo.OSInfo.OSTrimSupported = false;
    strcpy(AIO.MySystemInfo.OSInfo.OSTrimSendingFromRegistryText, FC_NA.c_str());
    }
    else {
    as = reg->ReadInteger("DisableDeleteNotification");
    if (as == 0) {
    AIO.MySystemInfo.OSInfo.OSTrimSendingFromRegistry = true;
    strcpy(AIO.MySystemInfo.OSInfo.OSTrimSendingFromRegistryText, FC_OSSENDSTRIM.c_str());
    }
    else {
    AIO.MySystemInfo.OSInfo.OSTrimSendingFromRegistry = false;
    strcpy(AIO.MySystemInfo.OSInfo.OSTrimSendingFromRegistryText, FC_OSDOESNOTSENDTRIM.c_str());
    }
    }
    reg->CloseKey();
    reg->Free();
    }

  • sztanozs
    veterán

    Többszázezer soros táblákból próbált legózni.

    tobbszazezer sor siman elfer a memoriaban (hacsak nincs 30-40 mezo benne) - az igazi problemak szvsz tobb 10-100 M rekordnal kezdodnek

  • cog777
    őstag

    Egy roppant bena kerdesem lenne, nem jottem meg ra a valaszra, pedig rakerestem az osszes forumban.
    Hogyan kell hasznalni a "programkód formázás"-t?
    Mert rakattintva elojon egy kis beviteli doboz, oda beillesztve szettoredezik a forraskod. Pelda:
    template <typename T1>bool queue_receive(QueueHandle_t &queue, T1 &value){    if (uxQueueMessagesWaiting(queue))    {        T1 *request{nullptr};        xQueueReceive(queue, request, (TickType_t)10);        value = std::move(*request);        vPortFree(request);        return true;    }
        return false;}
    Igy kezzel kell az igazitast javitanom, ezert legtobbszor kepkent illesztem be, de ilyenkor nem olyan egyszeru lemasolni azt.

  • proci985
    MODERÁTOR

    Informatikai érettségiben mindkettőre van feladat.

    (Nekünk 25 éve még az akkor bevezetett ECDL vizsgát erőltette a tanár gimiben, utáltam is érte, hogy negyedikben számtech tagozaton a rég beígért C helyett Word/Excel/PowerPoint ment :W
    Úgyhogy se nem érettségiztem számtechből, se nem mentem ECDL vizsgára.)

    nekunk BASIC volt, de sokminden nem maradt meg.

    ECDLt leraktam brahibol 16 evesen esti kurzuson.

    mondjuk Excel nem volt rossz, kesobb meloban meglepoen sokat hasznaltuk ad-hoc adatanalizisre. Python jobb, de 10 eve boven nem volt meg a jelenlegi Anaconda szintu integracio, Tableau meg szinten meg sehol nem volt ha jol emlekszem.

    40-50 programnyelv es par ev tapasztalat utan az, hogy mit tanult az ember mar kevesbe szamit. tavasszal kb 12 ora alatt tanultam meg regresszios analizist csinalni vizualizacioval Rben.

  • nyunyu
    félisten

    Ha méretkorlátosak azok a táblák - vagy az érintett adathalmaz - alkalmasint beszedni mindent memóriába, és ott dolgozni vele még sokkal gyorsabb.

    Többszázezer soros táblákból próbált legózni.

  • coco2
    őstag

    Amúgy én dolgozom együtt olyan fejlesztővel (BME-VIK), aki nem ismeri a HTML nyelvet. De tényleg, nulla. Nem is értem, mert amúgy középiskolás anyag.
    BME VIK-re jártam, ne is kérdezd hány évig.

    Eredetileg távközlés, aztán sokadik nekifutásra C# fókuszú szakirányon voltam.
    Tanítottak mindenfélét (Pascal, C, C++, Java? aztán C#, Java, webes valamik), végül DB, DWH oldalon kötöttem ki.
    Arra emlékszem, hogy egyik évben még a .Net 2.0 webes frameworkjeit nézegettük szakirány laborokon, következőben a .Net 3.0-át (Razor?), szóval valamikor tizenéve nézegettem a HTML, CSS, JavaScript akármiket is, de azokhoz nagyon nem értek (ahogy a Java meg C#-hoz sem.)

    Ellenben nemrég melóhelyen hozzámvágtak egy 700 soros SQL queryt, amit az egyik vezető Java fejlesztőnk csinált 5+ éve, elvileg 15 táblából szedi össze az ilyen-olyan webshopok hiteligényléseinek az állapotát.

    Csak túl sokáig fut, néha megfekszik tőle a DB szerver, aztán attól az egész alkalmazás.

    Még nem sikerült átlátnom a teljes logikáját, de némelyik alquerytől agyrákot kaptam, annyira rossz a futási terve: számlaszámonként lekéri a dokumentumok állapotát, rendezi beérkezési dátumra, kiválasztja a legnagyobbat, majd veszi a következő számlaszámot, és arra megint rájoinol leválogat, rendez, szűr...

    Ezeket kicseréltem olyanra, hogy először rendezem a táblát számlaszámra és beérkezési dátumra, abból válogatom le a számlaszámonkénti utolsó sorokat, így mindjárt nem többtízezer számlaszámra külön-külön fut a query, hanem egy menetben az egész.

    Mindjárt lefeleződött a futási idő, és a szerver sem pusztul bele.

    Elvileg az SQL is középiskolás anyag, de jól csinálni az megint más skillszetet, gondolkozásmódot igényel, mint mondjuk a Java programozás.
    Nyilván ez a frontend cuccokra is igaz, nehéz az almát a körtével összehasonlítani.

    Ha méretkorlátosak azok a táblák - vagy az érintett adathalmaz - alkalmasint beszedni mindent memóriába, és ott dolgozni vele még sokkal gyorsabb.

  • Vision
    veterán

    Ma megtudtam, hogy a HTML és az SQL is középiskolás anyag.

    Rohadt öreg vagyok.

    Mondjuk mi már 20 éve is tanultuk.

  • nyunyu
    félisten

    Ma megtudtam, hogy a HTML és az SQL is középiskolás anyag.

    Rohadt öreg vagyok.

    Informatikai érettségiben mindkettőre van feladat.

    (Nekünk 25 éve még az akkor bevezetett ECDL vizsgát erőltette a tanár gimiben, utáltam is érte, hogy negyedikben számtech tagozaton a rég beígért C helyett Word/Excel/PowerPoint ment :W
    Úgyhogy se nem érettségiztem számtechből, se nem mentem ECDL vizsgára.)

  • Diocles
    aktív tag

    Ma megtudtam, hogy a HTML és az SQL is középiskolás anyag.

    Rohadt öreg vagyok.

  • cucka
    addikt

    Nem, hanem hogy örökre 'kezdő' marad.

    És akkor mi van? Az összes többi szakma nem ilyen?

    Ha valaki elmegy ovónőnek, akkor mikor lesz belőle senior ovónő?
    Vagy szerinted egy kezdő junior háziorvosnak az a karrieríve, hogy sokat tanul, majd senior lesz belőle, és végül akkor agyat fog műteni?

    Nézz ki egy kicsit a fejlesztői buborékból.
    Ez is egy olyan szakma, mint a többi. Ahogy minden szakmában, a csúcsra csak a szakemberek minimális része fog eljutni. Tehát a többség "örök junior" lesz. Vagy "örök senior". Ez van.

  • nyunyu
    félisten

    Amúgy én dolgozom együtt olyan fejlesztővel (BME-VIK), aki nem ismeri a HTML nyelvet. De tényleg, nulla. Nem is értem, mert amúgy középiskolás anyag. Ez a munkánk során amúgy probléma, mert jönnek olyan feladatok, ahol szükség lenne rá.

    Amúgy én dolgozom együtt olyan fejlesztővel (BME-VIK), aki nem ismeri a HTML nyelvet. De tényleg, nulla. Nem is értem, mert amúgy középiskolás anyag.
    BME VIK-re jártam, ne is kérdezd hány évig.

    Eredetileg távközlés, aztán sokadik nekifutásra C# fókuszú szakirányon voltam.
    Tanítottak mindenfélét (Pascal, C, C++, Java? aztán C#, Java, webes valamik), végül DB, DWH oldalon kötöttem ki.
    Arra emlékszem, hogy egyik évben még a .Net 2.0 webes frameworkjeit nézegettük szakirány laborokon, következőben a .Net 3.0-át (Razor?), szóval valamikor tizenéve nézegettem a HTML, CSS, JavaScript akármiket is, de azokhoz nagyon nem értek (ahogy a Java meg C#-hoz sem.)

    Ellenben nemrég melóhelyen hozzámvágtak egy 700 soros SQL queryt, amit az egyik vezető Java fejlesztőnk csinált 5+ éve, elvileg 15 táblából szedi össze az ilyen-olyan webshopok hiteligényléseinek az állapotát.

    Csak túl sokáig fut, néha megfekszik tőle a DB szerver, aztán attól az egész alkalmazás.

    Még nem sikerült átlátnom a teljes logikáját, de némelyik alquerytől agyrákot kaptam, annyira rossz a futási terve: számlaszámonként lekéri a dokumentumok állapotát, rendezi beérkezési dátumra, kiválasztja a legnagyobbat, majd veszi a következő számlaszámot, és arra megint rájoinol leválogat, rendez, szűr...

    Ezeket kicseréltem olyanra, hogy először rendezem a táblát számlaszámra és beérkezési dátumra, abból válogatom le a számlaszámonkénti utolsó sorokat, így mindjárt nem többtízezer számlaszámra külön-külön fut a query, hanem egy menetben az egész.

    Mindjárt lefeleződött a futási idő, és a szerver sem pusztul bele.

    Elvileg az SQL is középiskolás anyag, de jól csinálni az megint más skillszetet, gondolkozásmódot igényel, mint mondjuk a Java programozás.
    Nyilván ez a frontend cuccokra is igaz, nehéz az almát a körtével összehasonlítani.

  • totron
    addikt

    Ne haragudj, nem értem ezt a szósalátát.
    Akkor az a baj, hogy túl kezdő még a szakmában, és ennek ellenére van egy munkahelye, és meg tud belőle élni? Vagy mi?

    Nem, hanem hogy örökre 'kezdő' marad.

  • cucka
    addikt

    A kifejezéseken túl kell látni, papíforma és gyakorlat különbségeivel mindenképp szembesülsz, jobb esetben tanulópénzeket megspórolva.
    Céges-HR-s kamuzsargontól függetlenül: hogy kinek jobb ha misztikus terület marad és ki ugorjon bele, az eltérő. Van, akiben ott a potenciál, de teljesen átellenes, eltérő kultúrkörből jön, másnak meg kezdetektől a PC-je a szőranyája, mégsem lesz több közepesnél soha.....

    (#20311) cucka, .....persze így többen labdába rúghatnak, ami mondjuk, hogy jó. Tömegek szintjén viszont már ott van a script kiddie-hozzáállás, amire már nehezebben mondom rá ugyanezt. Semmi elitizmus nincs ebben, egyszerűen a csaj téves világképet közvetít saját maga és a nézői felé is. Lehessen antipatikus az az attitűd amikor valaki nem látja saját korlátait, egyben a szakma távlatait/mélységeit, mivel nincs akkora tudása, hogy láthatná azokat. Nekem inkább ez jött le a videóból, mintsem az, hogy korrekten helyezte volna el magát - mert azzal nem is lenne semmi gond.

    Nem a kezdeteiről van szó, pont nem: fenntartható cselekvésről, megél belőle, visszaigazolást nyer ezáltal. Van, akit soha nem érdekel mit miért kell csinálnia, nem lát túl a saját szalagmunkáján, nem is igénye, nem is várják el tőle, leéli az életét. Ide ez nekem nem passzol, még ha van is ilyen része.
    Pont az ilyen kürtölések, videók vonzzák aztán azokat a kérdezőket, akikről süt, hogy betanított munkakörben tolták addig lefele műszakjaikat, egyiket a másik után. Felesleges megvezetni őket, reményt adni ilyen irányban. Nem a fizu miatt kell csinálni, sem nem fizu miatt buzdítani bárkit.

    Arrül is lehetne vitatkozni, hogyan alakulnának a script kiddie-k nélkül a fizetések, de talán ez egy fals felvetés lenne. Szükség van a szintekre, de legyen önlátás és ne akarja senki a legegyszerűbb szintjén eladni az egész témakört.

    Van egy másik, Gina nevű kóderlány, ott van hasznos, kifejezetten tud amúgy is jó drop lenni a magyar szó a témában, de van videó, amiben AI által e-könyvvel való pénzkeresés lehetőségát ajánlja, amiben hát miért is lenne érték ha egyszer bárki meg tudja lépni, a végeredmény minőségéről nem is beszélve, könnyen belátható. Így aztán nem értem őt, valahogy összeegyeztethetetlen a logikátlanság bármilyen formája egy ezt a területet űző emberrel, inkább nem adnék a kezébe projektet mint igen.

    (#20310) Vision, ne kérkedjen vele legalább. Még ha nem is annak szánta. Ez a hozzáállás zavar, a világ zajlik ahogy zajlik úgy is.

    Ne haragudj, nem értem ezt a szósalátát.
    Akkor az a baj, hogy túl kezdő még a szakmában, és ennek ellenére van egy munkahelye, és meg tud belőle élni? Vagy mi?

  • martonx
    veterán

    Amúgy én dolgozom együtt olyan fejlesztővel (BME-VIK), aki nem ismeri a HTML nyelvet. De tényleg, nulla. Nem is értem, mert amúgy középiskolás anyag. Ez a munkánk során amúgy probléma, mert jönnek olyan feladatok, ahol szükség lenne rá.

    Dolgoztam együtt olyan 6 éve seniorral, aki megkérdezte, hogy mi az a debuggolás. Jó, mondjuk indiai volt.

  • martonx
    veterán

    [link]
    Klasszikus rossz üzenet: a megalapozottság, mélység hiányának bólogat, hiszen azok hiányában is megél webfejlesztőként.

    Én meg azt nem értem, hogy ki néz ilyen videókat?

  • cucka
    addikt

    Ehhez képest jó UI-t készíteni az iszonyat nehéz.

    Ezzel egyetértek, de ez nem is fejlesztői feladat, hanem a UI/UX dizájneré, ami egy másik szakma. Frontenden is vannak komplex programozási feladatok, de átlag weboldal nem ilyen. Arról nem beszélve, hogy tipikusan kész komponenseket reciklálnak.

    A UI-UX dizájnerek többsége egy kétpálcás bohóc.

    Ahhoz, hogy jó legyen a termék, nem tudod megúszni, hogy kicsit érts ezekhez. Ahogy a SEO-hoz is kell érteni.
    És jó hogy vannak előre megírt komponensek, mert boldog-boldogtalan komponenseket ír, de a többségük szar. Tessék-lássék jól működik.
    Aztán jön a júzer héberre állított telefonnal, gyengénlátó módban, és szétesik az egész amit csináltál.

    És a másik a performancia. Webvitals valaki?
    Ha a youtube-on a live chat ablak leblokkolja 1 másodpercre a render thread-et akkor az is UX probléma, de mégis csak a fejlesztők baszták el, és nekik kéne megoldani.
    Vagy téged is zavar, amikor betöltesz egy oldalt, és össze-vissza ugrál a szöveg, amíg a háttérben betöltődik a kép meg a reklám? UX probléma, de a fejlesztő baszta el.

    És akkor ne beszéljünk a typescript-ről (ami ugye jó, csak mellette a javascripthez is kell érteni), a packaging-ről, meg az egész ökoszisztémáról, hogy csinálsz egy lángossütőnek egy weboldalt, és 1 giga a node_modules-od, de azért jó lenne, ha gyorsan betöltődne, meg nem akadna meg az animáció.

    A frontend egy nagyon mély nyúlüreg. A felszíne egyszerű.

  • Drizzt
    nagyúr

    Ehhez képest jó UI-t készíteni az iszonyat nehéz.

    Ezzel egyetértek, de ez nem is fejlesztői feladat, hanem a UI/UX dizájneré, ami egy másik szakma. Frontenden is vannak komplex programozási feladatok, de átlag weboldal nem ilyen. Arról nem beszélve, hogy tipikusan kész komponenseket reciklálnak.

    "Arról nem beszélve, hogy tipikusan kész komponenseket reciklálnak."
    Mintha backenden nem ugyanez lenne. ;] Tok mindegy, van komplex feladat boven UI es Backend oldalon is. Aki viszont barmikor amikor nem muszaj ujrafeltalalja a kereket, az minden teruleten sulyos gond. Kiveve ha eppen tanul, de annak meg nem a munkahely a megfelelo terulete.
    Algoritmust irni meg szerintem nagyon ritka mind backend, mint frontend oldalon. Felhasznalni mas altal megirt algoritmusokat: az nagyon gyakori. Bar en valoszinuleg az algoritmus iras alatt foleg az adatstrukturak implementalasat ertem. Az esetek 99.99%-aban a megfelelot kell kivalasztani a problemahoz es azt felhasznalni. Tehat nekem az, hogy egy Map, lista, etc. elemein csinalok valamit, vagy irok egy SQL query-t, az nem algoritmus iras, hanem algoritmus hasznalat. De lehet nem igy kene hasznalnom ezt a kifejezest.

  • Vision
    veterán

    Ez egy hatalmas tévedés, hogy "bezzeg a backend".
    Valójában a frontend fejlesztés a legtöbb esetben sokkal nehezebb.

    A szoftverek 95%-ában a backend annyit csinál, hogy valami adatot beolvas valahonnan, transzformálja, majd valahova valamilyen formában kiszolgálja.

    Ehhez képest jó UI-t készíteni az iszonyat nehéz. Ez egy eseményvezérelt, aszinkron rendszer, aminek gyorsan és helyesen kell működnie. A komplexitás, amivel dolgoznod kell, az jelentős.

    És jó UI-ra az egyszerű szoftvereknél is szükség van. Sőt, ott van igazából szükség rá.

    #20313galaxy55
    Összegezd már, semmi kedvem órákon át hallgatni egy random kezdő programozó életsztoriját meg locsogását a szakmáról, ennél bármit szívesebben hallgatok.

    Ehhez képest jó UI-t készíteni az iszonyat nehéz.

    Ezzel egyetértek, de ez nem is fejlesztői feladat, hanem a UI/UX dizájneré, ami egy másik szakma. Frontenden is vannak komplex programozási feladatok, de átlag weboldal nem ilyen. Arról nem beszélve, hogy tipikusan kész komponenseket reciklálnak.

  • totron
    addikt

    Én inkább azt tartom megmosolyogtatónak, hogy a népek mennyire miszticizálnak a programozásról.

    A díszelgésre kitalált cégek igazán bármik lehetnek. A pénzügyi világ kitalált mindenféle titulust, amivel valaki fényezheti magát. És azok mind mennek a kukába, mert akinek kitalálták, nem akarnak tőzsdei meg banki managerek lenni. Programozók akarnak lenni. Az informatika "jobban teljesít" :DDD

    A kifejezéseken túl kell látni, papíforma és gyakorlat különbségeivel mindenképp szembesülsz, jobb esetben tanulópénzeket megspórolva.
    Céges-HR-s kamuzsargontól függetlenül: hogy kinek jobb ha misztikus terület marad és ki ugorjon bele, az eltérő. Van, akiben ott a potenciál, de teljesen átellenes, eltérő kultúrkörből jön, másnak meg kezdetektől a PC-je a szőranyája, mégsem lesz több közepesnél soha.....

    (#20311) cucka, .....persze így többen labdába rúghatnak, ami mondjuk, hogy jó. Tömegek szintjén viszont már ott van a script kiddie-hozzáállás, amire már nehezebben mondom rá ugyanezt. Semmi elitizmus nincs ebben, egyszerűen a csaj téves világképet közvetít saját maga és a nézői felé is. Lehessen antipatikus az az attitűd amikor valaki nem látja saját korlátait, egyben a szakma távlatait/mélységeit, mivel nincs akkora tudása, hogy láthatná azokat. Nekem inkább ez jött le a videóból, mintsem az, hogy korrekten helyezte volna el magát - mert azzal nem is lenne semmi gond.

    Nem a kezdeteiről van szó, pont nem: fenntartható cselekvésről, megél belőle, visszaigazolást nyer ezáltal. Van, akit soha nem érdekel mit miért kell csinálnia, nem lát túl a saját szalagmunkáján, nem is igénye, nem is várják el tőle, leéli az életét. Ide ez nekem nem passzol, még ha van is ilyen része.
    Pont az ilyen kürtölések, videók vonzzák aztán azokat a kérdezőket, akikről süt, hogy betanított munkakörben tolták addig lefele műszakjaikat, egyiket a másik után. Felesleges megvezetni őket, reményt adni ilyen irányban. Nem a fizu miatt kell csinálni, sem nem fizu miatt buzdítani bárkit.

    Arrül is lehetne vitatkozni, hogyan alakulnának a script kiddie-k nélkül a fizetések, de talán ez egy fals felvetés lenne. Szükség van a szintekre, de legyen önlátás és ne akarja senki a legegyszerűbb szintjén eladni az egész témakört.

    Van egy másik, Gina nevű kóderlány, ott van hasznos, kifejezetten tud amúgy is jó drop lenni a magyar szó a témában, de van videó, amiben AI által e-könyvvel való pénzkeresés lehetőségát ajánlja, amiben hát miért is lenne érték ha egyszer bárki meg tudja lépni, a végeredmény minőségéről nem is beszélve, könnyen belátható. Így aztán nem értem őt, valahogy összeegyeztethetetlen a logikátlanság bármilyen formája egy ezt a területet űző emberrel, inkább nem adnék a kezébe projektet mint igen.

    (#20310) Vision, ne kérkedjen vele legalább. Még ha nem is annak szánta. Ez a hozzáállás zavar, a világ zajlik ahogy zajlik úgy is.

  • cucka
    addikt

    Egyetértek. Nem véletlen, hogy nem backend irányba indult el.

    Ez egy hatalmas tévedés, hogy "bezzeg a backend".
    Valójában a frontend fejlesztés a legtöbb esetben sokkal nehezebb.

    A szoftverek 95%-ában a backend annyit csinál, hogy valami adatot beolvas valahonnan, transzformálja, majd valahova valamilyen formában kiszolgálja.

    Ehhez képest jó UI-t készíteni az iszonyat nehéz. Ez egy eseményvezérelt, aszinkron rendszer, aminek gyorsan és helyesen kell működnie. A komplexitás, amivel dolgoznod kell, az jelentős.

    És jó UI-ra az egyszerű szoftvereknél is szükség van. Sőt, ott van igazából szükség rá.

    #20313galaxy55
    Összegezd már, semmi kedvem órákon át hallgatni egy random kezdő programozó életsztoriját meg locsogását a szakmáról, ennél bármit szívesebben hallgatok.

  • coco2
    őstag

    Amúgy én dolgozom együtt olyan fejlesztővel (BME-VIK), aki nem ismeri a HTML nyelvet. De tényleg, nulla. Nem is értem, mert amúgy középiskolás anyag. Ez a munkánk során amúgy probléma, mert jönnek olyan feladatok, ahol szükség lenne rá.

    Én meg dolgoztam együtt olyan "vezető fejlesztő"-vel, akinek egy alkalmazás teszt verzió letöltése svn-ről problémát jelentett azok után, hogy a rendszergazdák mindent beállítottak előtte a gépén. Ebben a szakmában akár naponta csodák történnek :K

  • Vision
    veterán

    Amúgy én dolgozom együtt olyan fejlesztővel (BME-VIK), aki nem ismeri a HTML nyelvet. De tényleg, nulla. Nem is értem, mert amúgy középiskolás anyag. Ez a munkánk során amúgy probléma, mert jönnek olyan feladatok, ahol szükség lenne rá.

  • Vision
    veterán
    A megválaszolt hozzászólás már nem elérhető.

    Ez amúgy miért is releváns? Van arról is videó, hogy tech leadként tevékenykedik.

  • Vision
    veterán

    Mi ebben a rossz üzenet?
    Ez egy tömegszakma. A világon sok millióna foglalkoznak szoftverfejelsztéssel. Nem tudom, miért kell úgy gondolni rá, mint ha valamilyen kiválasztott kaszt tagja tudna csak szoftvert írni.
    És mindenki, aki ezzel foglalkozik, az elkezdte valahol. Valahogy meg kelll tenni az első lépéseket.

    Főleg webfejlesztésnél. Itt tényleg nagyon sok olyan munka van, ami nem igényel mélységet, megalapozottságot, meg semmit, viszont meg kell csinálni.

    Egyetértek. Nem véletlen, hogy nem backend irányba indult el.

  • cucka
    addikt

    [link]
    Klasszikus rossz üzenet: a megalapozottság, mélység hiányának bólogat, hiszen azok hiányában is megél webfejlesztőként.

    Mi ebben a rossz üzenet?
    Ez egy tömegszakma. A világon sok millióna foglalkoznak szoftverfejelsztéssel. Nem tudom, miért kell úgy gondolni rá, mint ha valamilyen kiválasztott kaszt tagja tudna csak szoftvert írni.
    És mindenki, aki ezzel foglalkozik, az elkezdte valahol. Valahogy meg kelll tenni az első lépéseket.

    Főleg webfejlesztésnél. Itt tényleg nagyon sok olyan munka van, ami nem igényel mélységet, megalapozottságot, meg semmit, viszont meg kell csinálni.

  • Vision
    veterán

    [link]
    Klasszikus rossz üzenet: a megalapozottság, mélység hiányának bólogat, hiszen azok hiányában is megél webfejlesztőként.

    Ez a frontendet mindig is kiemelten érintette, ezért nem fizették meg korábban. Viszont arra ő sem tért ki, hogy mit is csinál pontosan. A portfóliója alapján inkább Wordpress-monkey-nak tűnik, mint olyannak, aki keni-vágja az Angular/React fejlesztést. Az mondjuk beszédes, amikor azt említi, hogy az algoritmusokat nagyon ritkán használja a munkája során. :D Wtf.

  • coco2
    őstag

    [link]
    Klasszikus rossz üzenet: a megalapozottság, mélység hiányának bólogat, hiszen azok hiányában is megél webfejlesztőként.

    Én inkább azt tartom megmosolyogtatónak, hogy a népek mennyire miszticizálnak a programozásról.

    A díszelgésre kitalált cégek igazán bármik lehetnek. A pénzügyi világ kitalált mindenféle titulust, amivel valaki fényezheti magát. És azok mind mennek a kukába, mert akinek kitalálták, nem akarnak tőzsdei meg banki managerek lenni. Programozók akarnak lenni. Az informatika "jobban teljesít" :DDD

  • totron
    addikt

    [link]
    Klasszikus rossz üzenet: a megalapozottság, mélység hiányának bólogat, hiszen azok hiányában is megél webfejlesztőként.

  • proci985
    MODERÁTOR

    Uh, legalább te ne etesd a troll-t.

    Most már szerintem tovább fogunk lépni. Párhuzamos topikot lezártam, nincs szükség duplikációra.

  • martonx
    veterán

    (na akkor kiadom magambol, ha mar csinaltam rajta code reviewet megnezni, hogy mi a baj)

    ok raneztem bovebben a kodra, szoval ez egy List ami el lett nevezve MyHashSet<T>nek, majd hogy ugy tunjon, hogy ket parametert hasznal, kreal egy Point classt. szoval ez szep meg jo, csak koze nincs a Sethez.

    mondjuk vannak szepsegek, ez a sor
    if (list.Count != Count) list = new List<T>(this);
    sor miatt semmit nem csinal, es ha nem lenne korabban a list inicializalva, akkor ennek hibat kene dobnia (hacsak C#nal nincs auto init listre mostanaban. Javaban ez a megoldas NullPointerExceptiont dob mert nem mukodik rendesen a vedelem, bar lehet compilation errort dobna, mert egyertelmuen elerhetetlen a kod, mivel a list. Count es a Count valtozo egy es ugyanaz ebben a kontextusban, Javaban meg erre par eve van automatikus check).

    reg lattam ennyire olvashatatlan kodot egyebkent. minden valtozo public / auto scope, hasonlo naming conventionert meg ahol en vegeztem az elso eves OO kurzuson mar automatikus fail jart (akkor is, ha a program egyebkent mukodott): nem azt csinalja a class mint amit a neve alapjan elvarnank, C style iterator inicializacio (nem hibas, de balesetveszelyes), magyar valtozonev (torl), roviditett valtozonev (torl), inkonzekvens valtozonev (myPt egy listanak?), inkonzekvens class scope valtozonevek (X, Y).

    egyebkent minel tovabb nezem, annal szornyubb.

    Uh, legalább te ne etesd a troll-t.

  • proci985
    MODERÁTOR

    Egy 1szerű feladat. Aki ezt a kódot ki tudja akasztani úgy, hogy nem iterál végig minden elemen, ő kap 1 tízezrest! Ha hölgy, akkor mellé még egy szál virágot is!

    (na akkor kiadom magambol, ha mar csinaltam rajta code reviewet megnezni, hogy mi a baj)

    ok raneztem bovebben a kodra, szoval ez egy List ami el lett nevezve MyHashSet<T>nek, majd hogy ugy tunjon, hogy ket parametert hasznal, kreal egy Point classt. szoval ez szep meg jo, csak koze nincs a Sethez.

    mondjuk vannak szepsegek, ez a sor
    if (list.Count != Count) list = new List<T>(this);
    sor miatt semmit nem csinal, es ha nem lenne korabban a list inicializalva, akkor ennek hibat kene dobnia (hacsak C#nal nincs auto init listre mostanaban. Javaban ez a megoldas NullPointerExceptiont dob mert nem mukodik rendesen a vedelem, bar lehet compilation errort dobna, mert egyertelmuen elerhetetlen a kod, mivel a list. Count es a Count valtozo egy es ugyanaz ebben a kontextusban, Javaban meg erre par eve van automatikus check).

    reg lattam ennyire olvashatatlan kodot egyebkent. minden valtozo public / auto scope, hasonlo naming conventionert meg ahol en vegeztem az elso eves OO kurzuson mar automatikus fail jart (akkor is, ha a program egyebkent mukodott): nem azt csinalja a class mint amit a neve alapjan elvarnank, C style iterator inicializacio (nem hibas, de balesetveszelyes), magyar valtozonev (torl), roviditett valtozonev (torl), inkonzekvens valtozonev (myPt egy listanak?), inkonzekvens class scope valtozonevek (X, Y).

    egyebkent minel tovabb nezem, annal szornyubb.

  • proci985
    MODERÁTOR
    A megválaszolt hozzászólás már nem elérhető.

    Ne személyeskedj. A fórumnak van egy szabályzata, a durva személyeskedés (pl agyhalott zombizás) semmikor nem oké.

    Ha olyat látsz, ami nem való a fórumra, akkor jelezd a moderátorok felé és intézzük, de nem ez a megoldás.

  • VikMorroHun
    őstag

    Ne menj! Egyszerűen csak nem is szabad beleállni hülyékkel vitatkozásokba.

    Meg az sem árt, ha betartjuk a szabályzatot. Amúgy kettős mérce az, ha valakinek elnézik a (durva) szabálysértést, mást pedig ugyanazért megbüntetnek.

  • martonx
    veterán
    A megválaszolt hozzászólás már nem elérhető.

    Ne menj! Egyszerűen csak nem is szabad beleállni hülyékkel vitatkozásokba.

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

Hirdetés