3 ms·
Ask HN: How to learn how to develop real time applications?
I am a C++ programmer and I want to learn how to develop real-time programs. It looks like it's a "lost art" these days.I think we all use such programs every day to one degree or another. For example, if you work with a network, then you probably use wireshark. If you work with audio, then you probably use something from this field. What do I mean by real-time apps? These are applications where we have a part that creates data (or a data stream, with high frequency) and a part that processes it (or gui part, if we somehow process it). I would like to focus specifically on network applications. I'll say right away that I've already read Richard Stevens book[1], but it doesn't seem to be enough to develop applications of this level.
[1] Richard Stevens - Unix Network Programming
- DmitriyBuchilin 6mo agoYou mean you want to use websockets to full realtime?
- maheenaslam 6mo agopick something you actually use.. wireshark, a simple packet sniffer, anything and just reverse engineer how it handles the producer/consumer split. that gap between capturing data and displaying it without dropping frames is where all the interesting problems live.
- mda_damico 6mo agoMultiplayer games are a type of application that requires real-time networking. Try reading "Multiplayer Game Programming: Architecting Networked Games" by Josh Glazer and Sanjay Madhav. Another type of programming with essential real-time is microcontrollers. You can dig into this way.
- fragmede 6mo agoBuild your own network audio microphone and speaker. Don't cheat by adding a giant buffer. Cause problems on the wifi and figure out how to compensate for those problems.
- creatorcoder 6mo agoThx for advice! It seems that the audio industry also faces challenges related to high-speed data processing and display. I'm was found a very interesting talk CppCon 2015: Timur Doumler “C++ in the Audio Industry” [1] [1] https://www.youtube.com/watch?v=boPEO2auJj4 https://www.youtube.com/watch?v=boPEO2auJj4
- austin-cheney 6mo agoHere is how I do it in JavaScript: https://github.com/prettydiff/aphorio https://github.com/prettydiff/aphorio What you need is: * low overhead full-duplex transmission, which for the web is WebSockets * service data, which is network messaging in a predefined format for an application to complete a task * event-oriented architecture, which is that the application automatically executes a thread in response to interactions or observed changes
- volume_tech 6mo ago[flagged]
- deleted 6mo ago[deleted]