I like the idea of streaming. I think it shows a lot of the behind the scenes action. The things that we create and put on show tend to be the process of many many hours of work. Whilst opening your source up gives an insight to incremental stages of the development process. It doesn’t really show the infinite steps in-between.
When getting started in a new environment, a lot of the problems are about trying to get acclimatised to tools & processes. When I was learning ruby I used to watch every peepcode, a tutorial video web-series, bought now by pluralsight. It started out a lot like NSScreencast, a series of videos around specific topics. By the end though, it had transformed into showing how some of the most prominent developers in the community would solve problems. You can see them all on pluralsight here. This gives you an insight into the tools and how they manipulate them, with modern dev tools being so flexible everyone has their own flow. I want to share mine.
I’ve been using twitch.tv for hosting the stream, there are other options but twitch has won streaming. I regularly watch video games streamed on it, and now with google buying it will solidify that position.
From the client side I use OBS ( Open Broadcast Software ) - a solidly made open source tool for streaming. It’s cross-platform, and feels like it, but it’s by far the easiest software to use. It has one-click settings for twitch.tv by default and all you have to do is put in your stream key.
By default it cannot get audio from your system, so you can’t share music. You can fix this by installing WavTap. Note the application has to be running even though it is installing a kext. Audio levels can be a bit tricky. Not found a good answer for that yet.
From a non-technical perspective it was only really feasible for me to stream once I had dual monitors set up. This means notifications and private chats can be kept on the other screen as well as the twitch chat.