« first day (869 days earlier)      last day (1625 days later) » 

2:35 AM
@Dennis could you pull Charcoal? thanks
 
2:52 AM
@Dennis I improved the documentation of MICGBF and added a hello, world program
 
3:13 AM
@ASCII-only Done.
@MilkyWay90 OK, I'll take another look tomorrow.
 
 
11 hours later…
2:11 PM
Random factoid of the day: Q#'s Hello World requires running exactly 60 concurrent processes.
 
O_o
@Pavel Well the real question is why would you use Python in the first place
 
... said the author of Charcoal.
 
:| i didn't exactly intend to choose python initially
lemme dig too many years back into chat archives
 
@Dennis - just posted some enhancements to psPILOT; pull when convenient.
 
@Dennis here
but wait... did i make the final decision
 
2:16 PM
@JeffZeitlin Done.
 
maybe it's time to write Charcoal v2 in a different language i'm probably going to hold off on rewriting (or even porting) too many lines of code
 
3:05 PM
TIO enforces a very strict 64 process limit. I thought that was very generous.
And by very strict, I mean the entire request is nuked from orbit if it is exceeded.
The runner account is also limited to 128 processes in total (i.e., for all requests running in the same arena), so two Q# running at the same time would paralyze the arena.
Well, time to experiment with cgroups.
 
3:49 PM
@Dennis Hah!
 
What am I looking at?
 
The Q# error message I got
 
When/why?
 
Me running a bunch of Q#s at the same time
 
Yeah, don't do that.
 
3:57 PM
I wonder how many totall processes are running on average at any point for runner
 
4:27 PM
OK, so I just have to run different requests as different users, and systemd will distribute resources fairly by default.
That obsoletes the "very strict" process limit completely. A running fork bomb will barely impact the speed of other requests.
 
I wonder where all the Q# processes come from: I can spin up dozens of QuantumSimulators simultaneously and it totally works just fine
 
I suspect it's the compiling stage, not the actual program.
F# .NET and VB.NET use almost as many processes.
 
Ah
 
@Dennis A 128-process fork bomb that resulted in a load of over 3000, slows down another user by 10%.
 
4:55 PM
I think this is the first time systemd has made my life easier.
 
I found where cixl went.
 
@Dennis I suspect the point of systemd is to make life easier for people who make distros rather than end users
 
@Οurous Do tell.
 
5:14 PM
@Dennis I followed up the issue on your repo clone here with explanation: github.com/TryItOnline/cixl/issues/1
 
Just read the email. ;)
Why nuke it though?
 
Based on the fact that the new one is on gitlab, I suspect it was a Microsoft-is-coming-to-eat-my-brain nuke
 
Speaking of which, github finally became part of MS officially yesterday
There's a noticable lack of everything being on fire
 
Bitbucket is way too slow and I don't appreciate GitLab's ToS shenanigans, so I'll wait for MS to actually mess up before switching.
 
Also free private repos for everyone yesterday
 
5:23 PM
That made me so happy actually.
 
Wait, I can make private repos now?
Yes!
 
@Dennis should I be nervous that something important is going to turn private in a few minutes?
 
5:38 PM
Haha, no. But it seems I'll be able to push a lot more stuff to GitHub that isn't meant to be seen (yet).
 
6:09 PM
@Dennis You probably could have gotten the student pack if you have a university email
Which, come to think of it, comes with DO credit
Actually, I could give you my student DO credit
 
DO credit is always appreciated. :)
 
I'll send a code to server-costs@
 
Thanks!
 
done
 
Thanks again. :)
Hey, people get $100 in credit now if they sign up with a referral link.
 
6:22 PM
That's a lot of free credit
 
Only valid for 60 days, but still...
 
Using the student pack I can get $170 for AWS, woah
 
o_O
 
6:51 PM
DO load balancers look interesting, assuming I can get them to manage wildcard certificates.
 
7:02 PM
How does TIO currently decide which arena to use?
 
Number of pending requests.
DO also has firewalls now. I forgot about this (they added the feature just when I moved to Linode), so I should be able to make the private network a bit more private.
But with a load balancer, I think the arenas wouldn't even have to communicate that much any more.
The exception being cache.
A distributed cache is probably a bigger pita than keeping my own load balancer. The actual redundancy (the web server is still a single point of failure) and automated health checks would have been nice though.
A dedicated web server with a non-floating IP might restore Russian traffic. I think I'll be able to get a non-banned, non-floating IP if I try hard enough.
The web server is actually the only sever who's (non-floating) IP is banned.
 
7:23 PM
Could you swap the web server with one of the arenas?
 
Sure, they're identical.
But tio.run resolves to the floating IP, to make these swaps easy.
 
Then if you use one of the not-banned IPs for the web server
 
The current setup relies on being able to swap quickly between servers, so kernel updates can be applied, one of the arenas can take over, etc. DNS is way to slow for that.
So if I make tio.run resolve to a non-floating IP, I lose all of that. And even though the droplet's own IP isn't blocked, tio.run still won't work in Russia if it resolves to a floating IP.
Hah, I just got a new floating IP, and this one isn't blocked!
 
\o/
 
DO NYC1 seems to have gotten a new block, because I tried a million times before.
OK, now I just have to make my testing server the web server, and I'll be able to juggle the floating IPs around.
Since this involves a DNS update.
 
7:43 PM
OK, tio.run is pointing to the temporary server. Time to update the DNS records.
Reminder to self: fix Strict-Transport-Security header. Looks like I never committed that.
All DNS records should point to the new floating IP now.
I'll keep running both web servers for the next 24 hours at least, so all DNS caches have a chance to expire.
Assuming isitblockedinrussia.com/?host=tio.run isn't lying to me, unblocking is in progress.
2
 
 
2 hours later…
9:26 PM
@Dennis Currently Dyalog APL exits with strange error codes on TIO. Unicode always exits with 0 (except by interrupt or actual APL system crash) and Classic exits with 2 if everything is a-okay, but 0 if an error happened. What do you think of me adding a line to the wrapper such that no error gives 0 and error gives the APL error code (1-99) or maybe just 1?
 
@Adám While that would be more useful, I prefer not to alter the languages whenever possible. Does this only happen on TIO?
 
@Dennis Yes, in the real thing (a REPL) you'd end with an error message (this you see on TIO too) and can investigate, including entering ⎕EN to see the error number. You need this number to set up a trap for the error.
 
But it would still exit with code 2, no?
If run as a script.
 
@Dennis Classic doesn't do scripts at all, and the 2 means further REPL input was missing, while an error causes it to quit, so that's 0. Unicode just quits with 0 if scripted. However, the way we set TIO's wrapper up resembles REPL usage.
(even if it uses script mode underneath the covers, since script mode mixes code and stdin and therefore is pretty useless)
 
9:42 PM
@Adám I suppose there's nothing standard about TIO's APL setup anyway. So sure, let's make it more useful.
 
9:56 PM
@Dennis Right. We are working on proper support for scripting though… Anyway, PR'd.
Classic will still exit with 2 when no error happens, but then again, Classic has many issues.
 
@Adám Should be live.
 
@Dennis Indeed, and this gives exit code 11, which is domain error.
 

« first day (869 days earlier)      last day (1625 days later) »