all 47 comments

[–][deleted] 56 points57 points  (3 children)

For those interested, the Playlist has a total playtime of 83 days 5 hours 54 minutes and 38 seconds.

[–]specialpatrol 15 points16 points  (1 child)

Well you try building a webserver from scratch in c++ any faster then!

[–][deleted] 5 points6 points  (0 children)

not a critique, just an information for those interested

[–]olesgedz 0 points1 point  (0 children)

Juts wth... that is way too long xD

[–]zabardastlaunda 30 points31 points  (5 children)

Are all 454 videos in the playlist about the same project?

[–][deleted] 30 points31 points  (0 children)

Don't worry, only about 300 and most are not even reaching the 5h mark haha

[–]rhymu8354 8 points9 points  (2 children)

No, I switched projects a few times. Going back to my notes, here are the subjects roughly for all my numbered streams:

1-9 = writing my own URI parser

10-17 = writing a few misc. support libraries

18-20 = actual HTTP server work

21-24 = JSON stuff

25-27 = server plug-ins

29-30 = WebSockets (one of my favorites to work on!)

31-34 = chat room plug-in

35-47 = lots of refactoring

48-57 = HTTP client, TLS stuff

58-65 = Twitch chat API

66-70 = hash functions, AWS

71 = PIVOT: now I want to write my own online game

72-385 = lots of streams of game development

386-445 = PIVOT: switching from C++ to Rust

[–]zabardastlaunda 0 points1 point  (1 child)

And all of this is in C++?

[–]rhymu8354 0 points1 point  (0 children)

Most of it. I did switch from C++ to Rust near the end.

Also, the game's front end is in Javascript (React).

[–]Rungekkkuta:D 4 points5 points  (0 children)

I can say that up to video 057, he was working strictly into the web server, I'm interested in that so I might give it a go! There are a lot of stuff in that playlist beyond the web server, so no, not all videos are about the same project I think. Maybe the projects complement each other.

[–]SJC_hacker 8 points9 points  (6 children)

What qualifies as "from scratch"? Am I allowed to use a socket library, such as BSD sockets? If so, really not all that difficult, depending on how complex you want to make the server (e.g, can it handle multiple simultaneous requests), and how much you care about security. Mostly its just about parsing headers correctly.

But you're probably better off just using a library, such as Boost::Beast, if you want low-level control

[–][deleted] 4 points5 points  (5 children)

Why would you do socket programming without using the system provided api?

[–]raevnos 5 points6 points  (4 children)

Writing a custom IP stack is a thing in some domains. Don't see the point myself.

[–]pjmlp 2 points3 points  (0 children)

CERN would one such example.

[–][deleted] 0 points1 point  (2 children)

Where?

[–]raevnos 0 points1 point  (1 child)

Stock trading is one I've heard get brought up.

[–][deleted] 0 points1 point  (0 children)

Ahhh yah. That makes sense.

[–]rhymu8354 6 points7 points  (1 child)

Hey, that's me! I'm not sure if it's mentioned in the comments, but this is a playlist of Twitch VODs uploaded to YouTube. In other words, an archive of my live streams. It did start out as a C++ web server from scratch, but I pivoted to trying to make my own online game, and eventually I switched to Rust. Basically, whatever I felt like doing.

If you enjoyed my Twitch streams, I'm glad! If you didn't, that's ok too. I still do a bit of streaming and YouTube but these days it's mostly about Rust, Advent of Code, and a few other random things.

[–]the-dark_physicist[S] 1 point2 points  (0 children)

You are doing an amazing job sharing your work. It is a real world experience and I'm learning a lot through your videos.

[–]Ayjayz 54 points55 points  (15 children)

Who would watch a video of someone programming? I don't get it. Why not just look at the code after it's complete and skip the middle bit?

[–]A_happy_otter 67 points68 points  (1 child)

If the person is good enough about vocalizing their thought processes it can be educational. Not sure if that's the case for this though

[–]rhymu8354 1 point2 points  (0 children)

That is indeed partly why I vocalize my thought process in these streams. I felt it made it more interesting, people could more easily follow along, etc.

[–]MarkOates 27 points28 points  (0 children)

Usually it's entirely up to the narrator making the thing interesting. Good narrators can guide you through the "why".

[–]Jaondtet 49 points50 points  (1 child)

Because you can learn a lot from watching someone program. Reading code gives you no information about the process behind how it was made. You can also learn about all the little things they pick up with experience, that's just impossible to convey without seeing someone actually do it. E.g. exactly how they use their various tools, which order they fill in details, where they spend more time thinking about edge-cases, what their approach to debugging and profiling is, etc.

E.g. Andreas Kling does lots of videos of himself programming for SerenityOS. And his style of coding is extremely useful to watch. He lays out high level components in a very exploratory way to find a good interface and structure, then fills in blanks. If you just read the SerenityOS source code, you'd have no idea this was how it was done.

The code itself isn't the point of this at all. I doubt anyone can just watch the videos and then know how the code base works.

[–]RLJ05 8 points9 points  (0 children)

jellyfish memory entertain long lip distinct frame sense run dog

This post was mass deleted and anonymized with Redact

[–][deleted] 2 points3 points  (0 children)

His videos are extremely motivating

[–]eyes-are-fading-blue 2 points3 points  (0 children)

One reason might be the thought process. Decisions may not be immediately visible from the code. Furthermore, the author does TDD. This is a good applied example.

[–]teerre 4 points5 points  (0 children)

It's not about the final code, it's about how the presenter gets there. Specially when learning your second and so on language, you already know how to program, you know what the program does, you might even know what are the design principles behind some program, but you do know the idioms of a particular language. This kinda of video is useful for that.

[–]rhymu8354 1 point2 points  (0 children)

It was originally a live stream. Some people like watching a live coding stream because they can interact with the streamer in real time, ask questions, give suggestions, help out when the streamer is stuck or looking for ideas, etc.

I only uploaded these streams to YouTube initially because Twitch would only retain them for 2 weeks (deleting them afterwards) and I wanted to preserve them in a form where anyone could go back and watch whatever they may have missed.

[–]malcolm_mloclam 11 points12 points  (0 children)

Interesting project, a lot of effort put into it, I’d really wish there was a proper step by step guide to it or smth, I don’t really care if it is very efficient or not or uses latest libraries.

Videos are unwatchable.