| My name is Jason Livesay (https://github.com/runvnc). I was the original lead developer of this software (with Mindy Tchieu also doing a lot of the front end, and Sasha Stewart working hard on QA along with her other normal Colbert Report job, don't know why they weren't mentioned in the article). Rob Dubbin didn't code anything on the project by the way, although he does deserve at least as much credit as me for keeping the project going. My current income is below the federal poverty level, but at least this time I have partial ownership of the product/company I am building (its automated statistical arbitrage on cryptocurrencies). To answer your question, yes, there are multiple good collaborative code editors out there. The software was originally based on Etherpad, and after a year or two I switched it over to Etherpad Lite. I don't know if they now are based on something else at this point, I doubt it -- maybe their new "Showrunner" has a different core. But for something just like that for code, there is this https://www.npmjs.com/package/ep_codepad. Probably the best option though would be something like Cloud 9 https://github.com/c9 In case anyone is interested in my own take in general on this software, I will write a few comments here also. We started working on it in 2011. I consider this to be a cautionary tale for 'freelance' developers working for startups everywhere (more on this towards the end). I solved most of the key technical challenges that enabled the main Colbert Report writing group to start using the system well before 2015 (I forget when the main group started using it mostly full time, maybe 2014). We had a lot of problems, but certainly nothing catastrophic every few weeks the way Rob suggested. One note about this, the first request I made (and I repeated multiple times) to Rob was to hire a professional quality assurance engineer to help with the release process, and this was never done. Some of the key technical challenges that I solved: 1) how to make a system for TV writers that works like Etherpad and has a few other features. This is how the problem was originally described, and I took the most direct approach -- I built a prototype based on Etherpad, which was a Rhino (JS in Java) and Scala program. (The other sort of 'runner-up' for developer selection had presented a prototype built from scratch with zero actual collaborative functionality.) 2) reverse-engineering the partially text/partially binary-based document database for ENPS and creating JavaScript code to read it. 3) full-text document search for the script document database (more than 1GB of data) -- there were multiple approaches, one thing that mostly worked was based if I recall on redis and https://www.npmjs.com/package/natural, then later I rebuilt it on Elasticsearch. 4) a Google Spreadsheets-like collaborative realtime rundown editor 5) outputting script and rundown data as PDFs to match their old print-out format 6) how to deploy the software. I built a single all-inclusive Docker container starting back in January 2014 (they later took it apart, which at the time the component infrastructure for Docker didn't make that a good trade off, now is a different situation). There are a few lessons I took from this project: -- if you find yourself working full-time as a 'freelance' developer for a project for more than a year or two, you are probably going to get screwed. For the last few years I have been careful to explain up-front that if I work full-time on a project for a significant amount of time then I will need equity. -- be assertive in terms of project management. Sometimes this is hard to do because freelance developers may not always have stable income and that may make it hard to put your foot down. There were some core problems with the server administration, lack of resources, and release process that I would have been able to correct if I had more leverage (in terms of savings?) or balls. The server admin, back-end coding, tech support, and support for front-end was all on me, even after I had taken on another project in order to make ends meet. I should have insisted on more resources. |