I like autogolfers. A clever person will always do at least as well as an autogolfer (and often better), but it will take them a lot longer. Autogolfers take the tedium out of using the same idioms and techniques over and over - they should be used as a tool to help golfing, not as a replacement for golfing.
Anonymous
3:20 AM
Most of the logic is written in Python (with only slight use of brython for web compat), but it won't be too hard to translate them into JS for the frontend
@Dennis A thought I had for the future: you might consider setting up a non-profit for maintaining and running TIO, to avoid any tax complications with donations. If you geared TIO towards programming language research in general (rather than just code golfing), you could potentially get grants that would help fund the site and allow you to make it more powerful.
Anonymous
I'd imagine that, if you made some modifications so that TIO was essentially a turnkey system, universities might be interested in hosting servers (both for their own use and for public benefit)
it's at least two server which is 10$ minimum, you can have backup for additional cost and you can have a storage node where you can buy storage blocks, again for additional money
@Dennis, never mind the sandbox question, figured it out. So arena I think will only run on Fedora, different implementations of selinux seem to be quite incompatible. I managed to run the web on Ubuntu, with no problem at all, but the arena only ran on Fedora.
@Dennis, now I would naturally like to know how do you pull all these languages. Is there a list of git repos to pull that you have? If yes, is it something that you could publish as well?
@Dennis, finally, I put together some instruction to help people like me setting this whole thing up. Just in case you get hit by the bus or something. In future. I'm sure it's not very secure, and if you are interested in reviewing it so I could improve and publish it please let me know.
Obviously with the breadth of different linux setup it's not possible to provide precise instructions, but I wanted to put together something practical, that could speed up the process if setting it up in future, if needed
@Mego I'd have to look into how I could do that in my country.
@AndrewSavinykh Other Linux distros might require different tweaking, but it should run on all that have a decent SELinux implementation. Note that this excludes Ubuntu.
@AndrewSavinykh I'm thinking about a contingency plan. With server-side permalinks, someone would need access to the actual server in case something ever happens to me.
@Pavel Right now, I'm paying 12 USD per month for droplets with weekly backups and 46.32 USD per year for two domain names with privacy guard, so roughly 16 USD per month. I'll be adding a second arena soon though; one isn't enough anymore.
@Dennis but that list is not enough for pulling a language, is it?
re selinux: you need to have the sandbox policy package for this to work, ubuntu and debian do not have them. that would probably exclude mint too... so it might also work on CentOs I dont know. anyway, that's not that important
@AndrewSavinykh It should be. For example, the link for 05AB1E is github.com/Adriandmen/05AB1E, so you just do git clone https://github.com/Adriandmen/05AB1E.
@AndrewSavinykh Anything SELinux-related is horribly outdated on Ubuntu. Not sure about Debian.
@AndrewSavinykh The languages themselves. Some interpreters were written for Mac or some ancient version of gcc, so I had to make a few tweaks. Nothing fancy though, just add an include or replace arc4random with rand.
So, I'm writing an interpreter right now, and I want it to work with TIO. Is there a way I can allow users to pass it flags like java sushi.jar -p [code]?
@Dennis okay then. I got your code up in running on vultr with a single language 05AB1E so far. I'll see if it's possible for me to get most of the rest of them running as well.
as far as domians go
I had to do
sed -i 's/tryitonline.net/tryitonline.your.domain/g'
type of stuff on your sources
which is not very sustainable but good enough for now