Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Watch People Code (watchpeoplecode.com)
243 points by eatitraw on Feb 8, 2015 | hide | past | favorite | 72 comments



This brought back a memory from the way back machine. Back in the early days of computers, many of them like the C64 or TRS80 (circa 1985-ish) had an option to use a TV as a monitor to save money. I recall that I had a Trash 80 and it was hooked up to the TV with a cable splitter in a spare bedroom. There were a number of relatives and friends visiting and myself someone that shared my love of computing were in the there programming away, and really programming, we are talking assembler here. And after a couple of hours we came down to the living room and everyone had the TV on channel 3 and everyone was watching us (I did not realize the splitter was broadcasting throughout the cable in our house). I guess there was nothing better on back them before cable had 100's of channels. It was interesting to hear the non-programmers questions and comments about what we were doing and really how much they had actually picked up on.


Along these lines, I recently started watching (and enjoying!) Casey Muratori's Handmade Hero, "an ongoing project to create a complete, professional-quality game accompanied by videos that explain every single line of its source code."

https://handmadehero.org/


I have too.

I've only made it to week 10 but i've already learned a huge amount in a short amount of time (and only had to completely abandon my own code and start from scratch from the archived version once so far.) It's fun (and insightful) to watch half the comments disagree vehemently with something Casey said that day (const is useless? what?)


me too! totally interesting and strangely inspirational to examine my techniques :-)


Some people should really learn the meaning of 'hero'.


This may be a good place to ask this question -- I think I saw a website which had videos of how well-respected experts write projects from start to finish. So, if I were interested in learning how experts in golang write a web-service end-to-end (design, DB, write, test, deploy, debug), I could watch those videos and learn the right(ish) way to write a web-service in golang. I'm sure I'll learn a few other things too (like how they replaced a block of code in vim in 4 keystrokes where it would have taken me 12). Does anything like that exist? If not, then that sounds like a fantastic opportunity to me.


PeepCode did this with its Play by Play series. They were acquired by PluralSight, and the series is still going on there [0].

[0]: http://www.pluralsight.com/search/?searchTerm=play%20by%20pl...


This is it! Thank you!


http://peertopeer.io/ is another one that does this.


Recently, I was amazed at how fast one of our devs were. When trying to see what made him so fast, it was a combination of being very good at reading code and understanding the underlying structure of the code, and also he was very fast with his editor. I could barely follow what he was doing as he was tracing his way through the code.

Watching him work as we were discussing an architecture made me more inspired to type faster, learn my tools better, and get better at reading code.


You might enjoy watching a few episodes of Emacs Rocks! The guy who does them is pretty cool to watch as far as knowing your tools well. Even if you're a vim user, you'll probably appreciate how well he uses emacs.

http://emacsrocks.com/


Emacs Rocks is great, almost got me converted ;) For a vim guys I can recommend watching 'Destroy All Software' by Gary. He's a master of his tools and pleasure to watch.


http://vimcasts.org is also a great resource for vim.


You should ask him to start a youtuber business of live coding instead of live gaming, preferably with some commentary. It will be fun.


After ~60 minutes of random debugging in production. If anyone noticed any weirdness(like a lot of repeated streams / streams disappearing) -- we're sorry. Looks like everything should work now.

Just a bit of technical details for curious: twitch streams are painful to deal with. Twitch channel != youtube channel. Twitch channel is akin youtube video(or stream) but with offline/online status. Mapping "online/offline" statuses into proper upcoming/live/completed statuses isn't straightforward. Differentiating between different "streams" is also difficult(i.e. user streams twice on two different days, but the link stays the same).

Also, twitch api often returns 5XX errors.

Bug reports are welcome here: avp-13@yandex.ru

Also, if you want to be notified about upcoming streams, then you can subscribe to subreddit(http://www.reddit.com/r/WatchPeopleCode), subscribe on the website, or follow https://twitter.com/WatchPeopleCode.


I offer these quotations from well known figures as a mental antidote to the 'churn things out fast' / 'learn all the editor shortcuts' mentality being promoted throughout some of the comments.

The real hero of programming is the one who writes negative code. - Doug McIlroy

You're not to come up with a simple design through any kind of coding techniques or any kind of programming language concepts. Simplicity has to be achieved above the code level before you get to the point which you worry about how you actually implement this thing in code. - Leslie Lamport

Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them. - Doug McIlroy

... from my fortune clone @ https://github.com/globalcitizen/taoup


OT slightly: Why do some YouTube embeds (including the one on this site) not contain a full screen button? It drives me nuts. Especially here as to actually see what's happening full screen is essential. The only way to get full screen is to click the YouTube button to actually go to YouTube and full screen it from there.


Not sure about this particular case, but this will happen if you're using the HTML5 version of Youtube and the video is inside an iframe that doesn't have the allowfullscreen attribute.

However in this case, the fullscreen button appeared for me after I clicked play.


What stream were/are you watching? Also, what is your OS/browser? I checked "Instruction Set Development - Part 5" and there is full screen button(Mac OS X, chrome/firefox).


Just clicked: "Building a Search Engine -- Season 2 episode 1" and no full screen option. I'm on Safari on OS X 10.10.3


Thank you! I'm going to investigate this. I have OS X(although 10.10.1), but I'll I can update my Mac OS X'.

I hope there is a way to force youtube to have full screen option.


Side question: I'd like to stream some audio content to a few 1000 people (24/7) and wondered if anyone knew (back of the envelope) what the cost model for this would look like? Assuming it's just bandwidth unless I go p2p... Just trying to understand the current lay of the land as I remember the youtube guys were paying $$$/mo for bandwidth when they first started. Thanks.


If you don't stream video, you can use something designed for audio streaming like Icecast[0]. Then your bandwidth per month is approximately users×bitrate×60×60×24×30/8/1000000000. For 1000 people at 128kbit/s, that would be 41.472GB/mo, which you could pay for with $5.

[0] http://www.icecast.org/


I did sell streams for several years, and have to claim please do !NOT! use icecast. The "standard" streaming server is still shoutcast (sc_trans_040/sc_serv), even if this software is not maintained for nearly 10 years, since AOL bought Nullsoft.

Icecast extends the Shoutcast protocol at several places. This might be great news, if you have Icecast clients, but most of the shelf radios and tvs can only do ages old shoutcast.

An other warning: Do not use cloud providers like amazon, where traffic costs extra money, if you stream more then once. 1000 peak listeners calls to run your own cloud of cheap root servers and vps servers, and I also advise on GeoIP-DNS, with Nagios plugin to throttle servers that are already under load, and disable those who went down. You might do a lot of provider hopping in the early stage, so avoid long contracts. 500 average listeners is the legal distinction between a radio and an internet service for ASCAP, if you stream music. But 500 average is at least 10k in peak.


I wonder if Opus is being used in production anywhere yet. For some content you could get away with 48kbit or less, which would cut the costs dramatically.


It's used by Mumble[0]. It definitely sounds great at lower bitrates.

[0] http://wiki.mumble.info/wiki/Main_Page and http://wiki.mumble.info/wiki/FAQ#What_makes_Mumble_better.3F


Looks like Icecast supports Opus too

"Icecast is a streaming media server which currently supports Ogg (Vorbis and Theora), Opus, WebM and MP3 audio streams."

Thanks everyone. Absolutely what I love about HN.


> Side question: I'd like to stream some audio content to a few 1000 people (24/7)

Hm... If you don't want to build your own streaming infrastructure, then it looks like you can have a 24/7 youtube live stream: https://support.google.com/youtube/answer/2853700?hl=en

"End times are not needed for 24/7 streams."

I guess youtube isn't very suitable for audio, but maybe it is an option for you.


This is interesting!

While I think it'd be difficult to fully learn how to implement something from this (read: tedious), I do see it as a cool way to learn how other people think about and solve problems. If it means anything, I watched a good five minutes of the guy working on the Arduino code without thinking about turning it off.


I watched notch develop Prelude of the Chambered over a livestream a couple of years ago. It took a couple of days, but I picked up so much (I went on to port it to Ruby, bizarrely).


I like this idea! Having the option to watch people code their games live is also a feature I enjoy on the Ludum Dare site. I often tune in to Twitch channels to watch people write code, only for a few minutes mostly, but it does make me feel connected and sometimes there are interesting things to discover.

I'm less sure about your choice of data source, though. /r/WatchPeopleCode is fine if you're already active on Reddit, but given the fact that people need to actively register there means you're missing out on a lot of programming streams.

In my opinion it would be a better idea to automatically pull a list of programming streams from Twitch, Youtube, and Hitbox just using the appropriate key words.


I'm more concerned that twitch.tv is already good and has it's own culture developed for this. Unless some extra meta data type stuff is added like which language, which subjectd, which editors, which techniques etc are added in a very useful way.


> I'm more concerned that twitch.tv is already good and has it's own culture developed for this.

Twitch is ok, but it is against ToS to stream non-gamedev programming. These rules aren't enforced strictly though.

VOD support for twitch sucks. Personally, I prefer my videos not getting deleted after 14 days. So that's why I stream on youtube.

As for the other stuff, we have a few ideas(most of them vague). One of them: auto speeding up "boring" parts of videos(e.g. silent thinking) in recorded videos.


I wonder if there is an viable alternative to YouTube. I find the idea intersting and could see people gaining something from watching others code, but sadly live streams are yet another thing I cannot use without a proxy.

There seem to be legal problems with them in Germany or is it some European law and other countries are also blocked? Does anyone know what exactly the problem is? Just potential copyright infringements from audio in the background e.x.?


> There seem to be legal problems with them in Germany or is it some European law and other countries are also blocked?

It is a stupid law in Germany. :(

https://productforums.google.com/forum/#!topic/youtube/qLbjw...

"Because of the German law (RStV), you must have a broadcast licence from the media authorities when you make a live stream that can reach more than 500 people at the same time. Not getting one would result in a fine of up to 500 000€. However, even if you would have one, Google might need one as well (because they somewhat are the "television channel") and they don't have one (if you do stuff that is against German law in your live stream, Google would lose its licence because of you)."


The question in that thread is a good one, and unfortunately not actually answered. What defines 'live stream'? Obviously basic sharing of non-commercial recordings cannot require a license.


Obviously basic sharing of non-commercial recordings cannot require a license.

I seem to recall reading that the German audio royalties law forced streams to pay royalties to the industry association (RIAA equivalent) even for creative commons music. I could be misremembering or misinterpreting, so if someone could provide an up-to-date reference it would be appreciated.


"Obviously" how? I'm not sure how that's obvious, or even true. Could you explain? It's a broadcast to over 500 people; so therefore it's considered a broadcast, commercial or not.


Thank you for the explanation!


The feedback on these streams makes this a really incredible idea. I just watched one where users were constantly noticing syntax errors, etc. and alerting the dev in real time of them. A few people on these streams are learning languages (like Lua) for the first time and powering through these projects with aid from viewers/commenters. Love it.


Would it be better performance wise to get the Twitch.tv/YouTube/etc. summary of what they're showing and present that first, and if you're interested to click on the summary then you can load the video? Loading all of those videos at once is pretty heavy, at least for my mbp.


Yes, definitely, we'll add support for this.

(Also, it is very likely that we were having issues: https://news.ycombinator.com/item?id=9018638 , I guess loading players for 5-10 streams shouldn't hurt that bad)


Yeah this is quite a problem - I'm puzzled how there aren't more comments on this. This page brought my PC almost to a complete halt for 20 seconds or so. On newest FF and Chrome!


Sorry about that, we were probably having some issues with twitch streams: https://news.ycombinator.com/item?id=9018638


Apparently it's possible to embed a HTML5 Twitch player instead of Flash. Would it be possible to use this?

http://discuss.dev.twitch.tv/t/html5-embedded-player/150/3


Thanks! This is interesting, although it looks like there is/was an issue with autoplay attribute. I'm going to test this tomorrow.


Another great place to find dev streams (game developers):

http://www.twitch.tv/directory/game/Game%20Development


I like this idea. It isn't the most common thing to shadow someone while they code, you can learn a lot from how people "flow".

The site can be a lot better. I think it has potential if curated properly. I'd watch.

+1


I don't understand how this adds more value than the other places on the web. A blog, tutorial video, stackoverflow post, book, etc will provide more knowledge in less time than watching someone real-time code and step through the software writing process. I understand the game channels on twitch provide entertainment, but don't see how this will catch on widely. Would love to hear others thoughts.


Watching someone code teaches many subtle techniques that people don't even realize they do. Especially the holistic set of techniques an individual uses and how they interact.

Also, probably more smart people (not saying the smartest, but maybe even that) don't spend time distilling their ideas publicly as they are so focused on taking on challenging things.

What do you think? Also, personally I kind of like the human element. I agree that written form or edited video's probably make a better reference. But that can also be extracted later from a set of freestyle videos.


Interaction. There is something different / powerful about being able to ask, express, and share knowledge with the person streaming. Something far more innate. You can see this in how the successful streamers all have microphones and cameras. Blogs and tutorials have more accuracy, but live streams have more humanity.

Having said that, I think most will fail to gain an audience. Because, being good at streaming is not the same as being good at programming. Take a look at the popular streamers and you will see how they mimic classic presentation techniques. Improving your skills as a programmer and improving your skills as a streamer/presenter can be mutually exclusive.


It might be interesting to see the thought process, mistakes and debugging.


What you said.


I teach software engineering using an "athletic" pedagogy which means (in part) that I publish YouTube videos showing how I complete small (i.e. 10-30 minute problems) in an efficient manner. Students then try to complete the problems as fast as I do. Once a week, in class, they are assigned a new problem that they must complete correctly within a short time period or else receive no credit.

This provides a mixture of learning by watching a more experienced practitioner do the work, along with active engagement.

For example, here is the website for the software engineering class I am teaching this semester:

http://philipmjohnson.github.io/ics613s15/

The athletic modules ("WODs") start with the coding module. Here's an example of the pedagogy:

http://philipmjohnson.github.io/ics613s15/morea/coding/exper...

Philip


Other people in this comment thread made good point about value for viewers, so I'm not going to focus on streamers in my response.

> blog, tutorial video, stackoverflow post, book, etc

Well, how does one records a tutorial video? It is not that easy, there are a lot of details: language, library, length of video, format(i.e. what things to explain, in what order, etc, etc). Streaming is straightforward, you code as you normally would and explain stuff as you go. As for information density, I think it is possible to speed up "boring" parts(e.g. silent thinking) in recorded videos. We aren't 100% sure, but we're coding a prototype.


When I've watched these things, I've tried to see if I could figure out whatever bug the streamer was trying to fix before they could (difficult without the ability to actually look through the code on one's own), and alert them if so. It's like a game, but you might actually help someone out.


I like watching it to get a better idea of people's workflows (and through that hopefully improve mine).


There's also seeing what people really do rather than what they say they do. It's easy to say you follow various principles, always test, yada yada, but I suspect most people's real world behavior is different to their ideals.


I put up a stream for a few hours. It went well! I didn't think anyone would enjoy it but it looks like I'm expected to do it more now :)


I think people would pay good money to learn from great programmers over something like Webex where you could follow along and also ask questions.


Air Pair (https://www.airpair.com/) is one example of such a service that was mentioned at last year's Railsconf.


You can also watch folks code with Floobits:

https://floobits.com/active


This looks nice! Nice job.

I am using my iOS device so maybe I missed it - but is there a way to search for a particular language?


Not yet. It'd be a nice feature, so we'll probably add it soon.


Live streaming not available in Germany due to rights issues. Background music, or what is the issue?


Stupid law in Germany(regarding broadcasting): https://productforums.google.com/forum/#!topic/youtube/qLbjw...


Bummer, didn't know about that. Really silly law.


Probably because their algorithms don't work in realtime to remove music during streams.


Well, this was kind of fun! I just finished streaming 6 hours of UX development. Didn't expect much of an audience, but in the end there were over a hundred viewers (I bet most came via HN). I'll definitely be doing this again soon :)


OH! I very much like this!


It's like from the Antitrust (2001) movie.


Love it. I hope this gets popular.

And sort of sad because people seem to be able to do more then 10 minutes at a time without alt-tabbing to HN or lolcats for pointless distraction.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: