-
Fototrend
Új hozzászólás Aktív témák
-
hiperFizikus
senior tag
válasz
cog777 #20422 üzenetére
A matematikai analízis gyakran valamilyen fizikára vonatkozik ! Ha érdekel, akkor a canvas html tagra kellene ráhajtanod ! De ha komolyabban akarsz a fizikai analíziseel foglalkozni, akkor a HTML + JavaScripttől fejlettebb erre specializált szoftvert ajánlott inkább használnod hozzá !
Azért még is csak tudok ajánlani ezt-azt :
https://symbl.cc/hu/collections/Ezen vannak karakterek, mint kezdőnek fizika analízis helyet inkább az ilyesmi kis méretű karakterek canvas-os automatikus szerkesztésére kellene ráhajtanod ! például a mindenféle nyilak alakjainak variálására ♥
https://symbl.cc/hu/collections/arrow-symbols/ -
cog777
őstag
válasz
cog777 #20417 üzenetére
ChatGPT-t megkerdeztem es ez lett a valasza - hatha mast is erdekel:
Certainly! As a C++ network developer focusing on network analysis, there are several key areas you’ll want to explore:
1. Network Protocols and Fundamentals:
o Understand common network protocols such as TCP/IP, UDP, HTTP, and DNS.
o Learn about OSI layers and how data flows through the network stack.
2. Packet Capture and Analysis:
o Familiarize yourself with libraries like libpcap for capturing network packets.
o Explore packet analysis techniques, including dissecting headers and payload data.
3. C++ Programming Skills:
o Strengthen your C++ knowledge, including memory management, pointers, and data structures.
o Practice writing efficient and optimized code.
4. Linux Networking Tools:
o Get hands-on experience with Linux networking utilities like tcpdump, Wireshark, and netstat.
o Understand how to use these tools for network troubleshooting and analysis.
5. Socket Programming:
o Learn about socket programming in C++ for creating network applications.
o Understand concepts like sockets, IP addresses, and port numbers.
6. Multithreading and Asynchronous I/O:
o Explore multithreading techniques to handle concurrent network connections.
o Study asynchronous I/O using libraries like boost.asio.
7. Security and Encryption:
o Understand network security principles, including encryption (SSL/TLS) and authentication.
o Learn about common security vulnerabilities (e.g., buffer overflows, injection attacks).
8. Build Automation and Tools:
o Use tools like CMake for building your C++ projects.
o Explore version control systems (e.g., Git) for collaborative development.
9. Real-Time Data Display:
o Consider using libraries like ncurses for real-time data visualization.
o Learn how to create interactive terminal-based interfaces.
10. Contributing to Open Source Projects:
o Contribute to existing network-related open-source projects on platforms like GitHub1.
o Gain practical experience by working on real-world codebases.
Remember that practical hands-on experience is crucial. Try implementing a simple network packet analyzer in C++ using libraries like libpcap. Good luck with your interview preparation! 🚀Certainly! When it comes to network programming in C++ or C, there are several key algorithms and patterns you’ll encounter. Let’s explore some of them:
1. Socket Programming:
o Sockets are fundamental for network communication. You’ll use functions like socket(), bind(), listen(), accept(), and connect() to create and manage sockets.
o The client-server model involves creating a socket server (listening for connections) and socket clients (connecting to the server).
2. TCP and UDP:
o TCP (Transmission Control Protocol): Reliable, connection-oriented protocol. Use it for applications where data integrity is crucial (e.g., file transfer, web browsing).
o UDP (User Datagram Protocol): Connectionless, lightweight protocol. Suitable for real-time applications (e.g., video streaming, online gaming).
3. Packet Handling and Parsing:
o When analyzing network packets, you’ll need to parse headers (e.g., IP, TCP, UDP) and extract relevant information.
o Algorithms for handling fragmented packets and reassembling them are essential.
4. Multithreading and Asynchronous I/O:
o Use multithreading to handle multiple client connections concurrently.
o Asynchronous I/O (e.g., using select(), poll(), or modern libraries like boost.asio) allows non-blocking communication.
5. Buffer Management:
o Efficiently manage send and receive buffers to avoid overflows or underflows.
o Circular buffers (ring buffers) are commonly used.
6. Error Handling and Recovery:
o Implement robust error handling mechanisms (e.g., timeouts, retries).
o Detect and handle network errors gracefully.
7. Security and Encryption:
o If your network application deals with sensitive data, consider implementing SSL/TLS encryption.
o Algorithms like RSA, AES, and HMAC are relevant.
8. IPv4 and IPv6:
o Understand both IP versions. IPv6 adoption is increasing, so ensure compatibility.
o Learn about address resolution (DNS) and IP routing.
9. Network Libraries and Frameworks:
o Explore libraries like libpcap (for packet capture), asio (for asynchronous I/O), and Winsock (Windows-specific).
o Frameworks like Qt provide networking components.
10. Testing and Debugging:
o Write unit tests for your network code.
o Use tools like Wireshark to analyze network traffic during development. -
VikMorroHun
őstag
válasz
cog777 #20384 üzenetére
Thor (Pirate Software) videóit érdemes nézegetni, remek tippeket ad játékfejlesztéshez. Volt olyan (naná, hogy most nem találom), ahol szépen elmagyarázta, hogy nem a legnehezebb résszel kell kezdeni, és nem is kell mindent elsőre tudnia a játéknak. Elég lépcsőzetesen haladni (most elkészítem a játékteret, aztán a mozgást rajta, aztán interakciót, stb.).
-
proci985
MODERÁTOR
válasz
cog777 #20408 üzenetére
jatekfeljesztes atment C++rol C#ra, szoval explicit pointer aritmetika nem annyira erdekes mar. gyakorlatban egy (nagyon sok) extra hibaforras. foleg, ha nincs massziv architekturalis / low-level hattered is.
elore ne optimizalj, inkabb fokuszalj arra, mit es hogyan tarolj es mi felelos miert. profilerrel lehet utana optimizalni, elore tokfelesleges.
stackoverflowval meg ovatosan, hogy mit es mit nem tekintenek annak aminek. ACMnek voltak anno eleg jo konferenciai amik jatekfejlesztesnel a technikai reszre is relevansak, tippre ACM siggraph es sigsoft eseten lehet talalnal hasznalhatot.
tovabbra is azt mondom, hogy maradj eloszor square tablan, a hexaval feleslegesen szivatod magad. es ha a grafos tarolas uj, akkor szerintem nem igazan latod be, hogy mennyivel bonyolultabb ez a megoldas. persze ha szivatni akarod magad, arra tokeletes, csak eppen kb feature creepnek hangzik, amit irsz.
-
nevemfel
senior tag
-
cucka
addikt
válasz
cog777 #20395 üzenetére
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
.
-
dabadab
titán
válasz
cog777 #20384 üzenetére
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ó)
-
coco2
őstag
válasz
cog777 #20384 üzenetére
>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.
-
válasz
cog777 #20336 üzenetére
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ásez 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();
} -
coco2
őstag
válasz
cog777 #19418 üzenetére
Jaa, hogy google távasztalozol, és a tapipad csak az otthoni gép elérésére kell?
Mondjuk a képernyő méret még akkor is gagyi lesz, és szöveget szerkeszteni sem lesz elég a mini bt keyboard. És ígyis úgyis az öledbe fog kerülni a stuff. Én még mindig egy 13"-as notit szereznék be, ha én magamnak akarnám megoldani.
Melyik cégnél van még mindig covidozás? Furcsa.
Esp32-nek nem ismerem a programozási felületét, de valami usb-s eszköz biztos van rá, amin állítható a reset-be rántás és feltöltés. Rajta hagyod a programozót az otthoni gépeden.
-
coco2
őstag
válasz
cog777 #19416 üzenetére
Ha úton / útfélen fejleszteni kell, mert muszáj, akkor egy 13-as laptop kell neked. Valami, ami egyben van. Tablet mellé fogod a kezedben a mini bt billentyűzetet, miközben a tabletet nekitámasztod valaminek, mindazt környezeti rázkódások közepette, vagy hogyan gondoltad? Nem számítástechnikailag, hanem mechanikailag.
AlmaOS-re ha fel is települ vscode vagy bármi hasonló, tisztázatlan kérdés, milyen platform alá akarsz tableten fejleszteni? Ami az általánosságot illeti, AlmaOS alatt a "munka könyvtár" fogalma az egyik, ami legutóbb, mikor néztem, még nem létezett. Ha pdf-et töltenél, ide rakja, ha videót, akkor amoda, de "csomagban" mindent saját szerkezet szerint egyetlen könyvtár alá, olyan nincsen. Nem tudsz csak úgy bármi file-t bárhova feltölteni egy alma tableten. Androidon igen, ott van sd kártyád, hordozhatsz otthoni laptopról bármit viszonylag egyszerűen, de almán olyan egészen egyszerű dolgok, mint a mobilitás, szerzői jogi okok miatt tiltva van. Almakönyvön a gatekeeper-t ki tudod kapcsolni, ha akarod, halloon / táblán szerintem nem. Letöltenél valami github stuffot, mert kell belőle egy dll, szóval csak egyszerű, mindennapi fejlesztői dolgok, éshát jajj azt nem lehet, mert olyat részint nem szabad, részint opciót sem kínál rá az OS.
>Ennek ellenere business tripre mar nem hoznek notit, mar kinottem belole
Nagymellényes dumák és társai
Ha neked üzleti úton utazás közben fejlesztened kell, mert annyi nyugalmad sincsen, hogy azt az időt szunyókálással tölthesd a vonaton, vagy valami, akkor te maximum a tévedéseidből fogsz kinőni, és azt is csak még ezután
-
Voy15
tag
válasz
cog777 #19412 üzenetére
Gyakorlati tapasztalatom ugyan nincs, de nehezen tudom elképzelni, hogy bármilyen fejlesztési munka kényelmes legyen ipaden.
Van ipadem, de én azt nagyjából böngészésre, ebook olvasásra, udemyre, illetve screen extensionre használom.
A fő gépem egy M1 MBP, szóval ha úton vagyok akkor nekem sokminden nem változik, csak 2 screennel kevesebb lesz, meg a billentyűzet-egér használat lesz egy picit kényelmetlenebb.
Vannak a témában YT videók, lesd meg őket, habár igazából Neked kéne kipróbálnod, hogy működőképes-e a koncepció számodra, vagy nem. -
-
coco2
őstag
válasz
cog777 #19384 üzenetére
Nem különösebben értem a válaszod nézőpontját. Az említett post arra célzott, hogy a JS interpreter alján C/C++ dolgozik, és abban a környezetben hogyan jellemző kivitelezni magas szintű logikai nyelvekhez gyengén típusos adatkezelést. Valakinek nem jött le esetleg az előzményekből?
-
Micsurin
nagyúr
válasz
cog777 #19344 üzenetére
Azért késleltetem mert akarom tudni mekkora input késést bír el
Valószínűleg ugyanis nem kábelesen fog a dőlésszög visszajönni.
Végsősoron nem PC a cél, ~560p-ig lemegyek és bízom benne egy Jetson képes lesz az egész képfeldolgozást egy ~26-30fps körül eldöcögtetni. Ha nem akkor bukta az egész feltevés. NUC és társai nem opciók mivel mobil kell legyen a dolog és egy motor akkujáról vagy gyújtásról etethető kell legyen.
Egész jó nyomon járok most köszönöm mindenkinek a tippeket.
Még egy vonal átlagolást és távmérést kiokoskodok és ha minden igaz onnantól minden építőkocka adott és jönnek az "apróságok" mint a kamera pozícionálás fenntartása pl ha kanyarban dől a motor és elmászik a kapott kép köszpontozása etc etc.sztanozs
sajnos fog kelleni az a két szál mert külföldi fórumokat bújva másképp még elméleti síkon sincs esélyem a dologra.
Rájöttem céges Pluralsight opció itthon is más célokkal végtére is azért kaptuk, hogy használva legyen. Most jobban gurul az a Python is így már.
-
pmonitor
aktív tag
válasz
cog777 #19341 üzenetére
Köszönöm a választ. Anno még Vb.Net - ben sikerült "felturbóznom" a rajzolás sebességét. c könyvtárak nélkül. És egész jó volt a hatásfoka is(persze azért a C#-ban alkalmazható unsafe kód sebességét nem érte el). Pedig a Vb.Net sem kifejezetten számításokra készített nyelv.
-
Micsurin
nagyúr
válasz
cog777 #19342 üzenetére
Köszi
Igen tudom azt sikerült közben végig nézegetni. Csináltam egy másik mini projektet és végig néztem utána már könnyen átment a szakdoga kód is fejben, hogy hogy akarom.
Nem kell a thread a sebesség vágás oka így már nem a Python kód volt hanem az Arduinon futó C, ott volt túl nagy a várakozás egy egy sorosport küldés közt ezért túl sokat vártunk a másik oldalon. 16ms-re rakva az UnoR3-at pont tartja a 60FPS-t a Python kód. (Amíg 30-40 vagy felette vagyok addig bőven jó.) -
coco2
őstag
válasz
cog777 #19163 üzenetére
Jött az új ember, és megfogalmazott egy aggódást a chatgpt és társai kapcsán, hogy ugyan miféle jövő vár a programozói szakmára?
Talán kommunikációs hibát vétettem azzal, hogy ezt nem fogalmaztam meg azonnal hozzákapcsolva, az lehet. De a lényeg annyi volt, hogy ha valaki előre el akarja dönteni, egyáltalán jó ötlet lehet-e neki az IT / programozás felé menni mindenféle hátszél nélkül, kezdetben mérje le csak azt, szellemileg bírja-e a terhelést. Elvégre chatgpt vagy sem, a tényleg jó kóderre akkor is szükség lesz, a chatgpt nem tudja saját magát megírni. És ahhoz egy hardver közeli nyelv a jó. Én anno assembly-vel kezdtem, de annak abban az időben az volt a lényege, hogy 8088..286-osokon ott volt a printer port, lehetett ledeket villogtatni rajta, volt egyszerű módja megérteni a gyakorlati történést az absztrakt dolgok mögött. Ma az ahhoz legközelebbi a mikrovezérlők, mindenféle dev boardok, és azok jelenkori fejlesztői környezete jellemzően C. Nem azért javasoltam, mert muszáj jelleggel elektronika felé akarnék küldeni egy kezdőt. Viszont egy kicsit abba belekóstolni egészen biztosan meg tudja mutatni, ha neki annyira problémamentes a programozói világ, hogy semmi szükség az aggodalmaira.
Szóval miért is no go zóna a C egy kezdőnek?
-
nevemfel
senior tag
válasz
cog777 #19017 üzenetére
Nem képernyőmentésre gondoltam, hanem arra, hogy a vscode, plusz a Microsoft C/C++ Extension Pack beszínezi a kódot. Ha ezt a kódot kimásolom a vágólapra, simán ctrl+c-vel, beillesztem libreoffice write-ba (sry, nincs word a gépemen), sima ctrl+v-vel, a kód színes lesz a szövegszerkesztőben is.
Azt hogy ezt hogyan működik, miféle rich-text vágólapformátummal működik a szövegformázás, jelen esetben a színezés áthozatala, html-lel vagy valami mással, azt nem tudom.
-
dabadab
titán
válasz
cog777 #19017 üzenetére
nevemfel arra gondolt hogy kepernyomentest alkalmazzal
Nem tudom, hogy mire gondolt, de pl. ezzel az extensionnel VSC-ben a jobbklikkes context menüben ott lesz a "copy as html", az formázással, színekkel, miegyebekkel együtt másolja.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Asztali PC , i7 11700KF , RTX 3070 Ti , 32GB DDR4 , 512GB NVME , 2TB HDD
- Asztali PC , R5 5500 , RX 5700 XT , 16GB RAM , 256GB NVME , 1TB HDD
- ASUS TUF Gaming F15 gamer laptop
- X1 Yoga 8th 2-in-1 14" FHD+ IPS érintő i5-1335U 16GB 256GB NVMe ujjolv IR kam aktív toll gar
- Lenovo / SK Hynix 512GB M.2 NVME SSD 0 perces
- ÁRGARANCIA! Épített KomPhone Ryzen 7 5800X 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- AKCIÓ! MSI B450M R7 5700X 16GB DDR4 512GB SSD RX 5700 XT 8GB Rampage SHIVA Zalman 600W
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Lenovo ThinkCentre M720s SFF / M920T tower -Számla, garancia, WIN11
- BESZÁMÍTÁS! Apple Macbook Pro 15" 2019 i9 9980HK 32GB 500GB Radeon Pro 560X hibátlan működéssel
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest