« first day (181 days earlier)      last day (2313 days later) » 

00:07
I think in the long run, it would be more sustainable to actually run a Windows server. I'm thinking of Windows 7 Thin Client. It's only x86, but it can run on popular VPS providers, needs virtually no memory and it has built-in sandboxing for network and file writes.
00:20
I wonder how much that costs.
$10/m. I got it to run pretty smoothly on a 2G linode.
But that's without utilization optimization. That means powering down the linode when no requests come in for x minutes (where it doesn't cost anything) and powering it back on when a new one arrives. Only the first new request will be slightly slower.
00:38
@mınxomaτ where do you get it from?
Not sure I'm understanding correctly. Does Linode really not charge you for a powered down VPS? Is $10/month for the VPS or a license?
I would donate the license. linode is billed per hour by default.
Usage hour that is.
That's very kind of you. :)
But at the end of this month, I can probably donate an actual server (8GB, SSD and whatnot) for this purpose. But that's not written in stone yet.
Coming from DO, I'm a bit surprised powered down doesn't count at usage. I'm planning to migrate to Linode anyway, as they offer twice the RAM for the same price.
00:43
AWS, Azure, Google and Linode all bill by hour. Google has even cheaper volatile instances.
DO allegedly does too, but you have to destroy and recreate the droplet, which takes some time.
The same on linode. But you can keep the snapshot alive if you have at least one other linode.
The only downside to Linode I can find at this point is that they use custom kernels, which aren't compatible with my current setup. Shouldn't be too hard to replace though.
@Dennis I can help you with that. You just need to prepare your dream setup on you own PC as a qemu-kvm disk. Then there are a few small tricks to overwrite the boot disk.
That's how I got Windows on linode in the first place.
They actually have a guide for this. Uploading a whole disk image from my PC would take ages...
00:51
Tell me what to configure and I'll give you a fast link. Then all you need to do is boot into rescue mode and run wget -qO- fastlink.com/blah.gz | gunzip | of=/dev/sda from GliSh.
And that's that done.
Nice! I really just need a vanilla Fedora 25 Server installation. Everything else is handled by automated setup scripts, courtesy of @AndrewSavinykh.
I'll prepare a clean Fedora KVM soon. I'll drop you the SSH address when ready for final config. Can you add your public SSH keys on GitHub? I'll just pull it from there.
01:08
No rush. There's a handful of things I'm currently working on and would like to get done asap.
Not sure I understand. Do you mean github.com/settings/keys (not sure what that's for), as a repo, or something else?
At github.com/settings/keys create a new SSH key with the contents of your public SSH ID (from ~/.ssh/id_rsa.pub). If you do, anyone can allow you access to their PC using your GitHub username. That's a bit easier than copying keys about.
Alright, I added it.
I saw.
Alright. I'll update you in a week.
Exciting stuff!
Indeed. :)
01:24
I'm trying to run CMD from Wine, and it cycles indefinitely without doing anything >_>
Yes, that's because it attempts to create a socket, but the sandbox doesn't allow it. If it worked, I would have already added it.
That's not remotely how that syntax works.
Eh?
@mınxomaτ Works locally
@Pavel Try it with something other than echo. Like "dir".
As Dennis mentioned, it needs sockets, so it won't work anyway.
I'm not sure what you mean by invalid syntax tho
01:28
I mean locally.
Sure, works fine.
Ah nvm, I missed something.
01:39
I accidentally managed to echo several GB worth of disk into the virtual rescue console, crashing the rescue system >.>
Ouch. Fun fact: executing journalctl and pressing the End key tends to have a similar effect.
@Dennis I use Gandi; if you power down a system there, they charge you for the hard disk and any IPv4 addresses you want to keep a hold on (so that people connecting into your system can continue to use the same address), but not for anything else
I'm not sure if I'd recommend them for TIO, though, they seem more oriented to businesses than to individuals
02:00
@ais523 If we are going for dynamic, a DIY AWS Lambda with Jenkins+Docker would be even cheaper. (Can't use Lambda, because it only has Python and NodeJS AFAIK).
@Dennis I just did that, it went instantly without any slowdown. ¯\_(ツ)_/¯
You either have a smaller journal or more RAM.
02:20
@Dennis If it's high memory you need, it might be worth comparing Linode pricing to OVH's VPS RAM before switching.
How are you going to do sandboxing on a Windows arena?
512 MiB is indeed not enough, but 6 GiB is probably overkill for a single core. The VPS SSD 3 looks tempting though.
2 hours ago, by mınxomaτ
I think in the long run, it would be more sustainable to actually run a Windows server. I'm thinking of Windows 7 Thin Client. It's only x86, but it can run on popular VPS providers, needs virtually no memory and it has built-in sandboxing for network and file writes.
That's all I know.
I meant Thin PC btw, not Thin Client.
I suppose aside from Batch we would also get MSVC and the CLR languages without Mono
And all Windows scripting languages.
02:31
@mınxomaτ Ah, that explains why why Google skills seemed to have failed me. ;)
Thin PC was designed as an ultra-light variant of Windows 7 which could directly replace XP, but as a virtual system on a massive scale. It takes about 3 minutes to install and is more or less a complete Windows 7 with advanced write-filter for the file system.
That sounds neat.
Btw, any idea why ovh.ie is a lot cheaper than ovh.de?
@Dennis Ireland? No tax :)
Ah, that would do it, yes.
12 EUR for 2 cores, 8 GiB RAM, and 40 GB SSD is pretty amazing.
No Fedora though.
02:42
That shouldn't be a deal breaker though. CentOS should work just as well.
I ran an OVH VPS with CentOS for some time as a build server, no issues.
@Dennis If you want, I still have an OVH VPS lying around that I don't use. It has 2 months left. You can have it as a sandbox to try if OVH works for you.
That would be awesome. :)
I suppose you want CentOS 7, since 6 is literally the worst OS ever made.
@mınxomaτ *Cough* NodeOS *Cough*
Yes, 7 please.
02:55
I mean CentOS 6 is fine. Just can't do letsencrypt
@mınxomaτ I have to ask again: where do you download that? All links that I googled are from 2011 and they don't seem to be valid any more
I have a MSDN subscription where the download link is still in the archive. I also have the ISO of it.
@mınxomaτ You cannot share your MSDN license, that would be violating your TOS, so I'm afraid that otherwise very enticing plan won't work @Dennis
@AndrewSavinykh The plan concerning the windows server changed either way.
03:07
That would just be the download though, which is of course not activated out of the box. I just said I will donate a license, which includes giving Dennis the money to buy a key ;)
@mınxomaτ That clears this up
@Dennis Address is [email protected]. Your keys are installed. There's a textfile in your home folder with important info. I took the liberty to install nano, otherwise the system is untouched.
03:35
@mınxomaτ Sweet, thanks! I'll check it out asap.
04:32
Maybe you could allow internet access by just making it so that users have to agree to terms where they agree not to attempt anything malicious using TIO (and agree not to attempt to bypass the Sandboxing to break stuf etc. etc). Then if someone uses TIO maliciously, you don't get in trouble for it. After all, people use proxies all the time to do illegal things and it isn't Tor or whoever procided the proxy who gets in trouble for it.
Then again, I might just have no idea about anything legal-related.
Anything involving legal matters and IT security doesn't mix well with the word "just".
2
^^
04:49
especially if you're opening it up to people who live in other countries, which may have different legal systems
05:19
@Pavel you don't get in trouble
47 mins ago, by Pavel
Then again, I might just have no idea about anything legal-related.
@Dennis Can you even connect to it? I want to know if I can close the control panel for now :)
@mınxomaτ I just tried and it asks me for a password.
You are using the pc where the key came from, right? Try root instead of dennis.
Yes, it's the same PC. Just a sec.
@mınxomaτ root works.
05:29
Alright. Password is in the textfile in dennis' home.
OK. Thank you!
05:46
@Dennis does SE even use cleanup tags? I don't think we tend to have posts large enough that it's reasonable to want to delegate the cleanup to someone more qualified
on Wikipedia, where you're reviewing a new page every few minutes and many of them are on subjects you don't know, often you can't do much other than throw on a {{wikify}} or {{unref}} or whatever, but it seems like overkill to have such a system here
hmm, I probably shouldn't have gone off on that tangent, I shouldn't PPCG while tired
06:01
@ais523 It had review queues, but that's about it. PPCG's is usually empty.
06:17
yep, the reviewers here are fairly on top of things; in fact, it's reasonably possible to go through all the reviews other people have done too (review the reviews), if you want to, as the volume is so small
06:57
In case you forgot it (since other pings and conversations burdened it), I am posting an earlier message of mine again below...
14 hours ago, by Erik the Outgolfer
@Dennis Can you please pull my new Jelly fork (if you pull forks)? If you do it, call it Jelly (Erik's fork).
I basically want to know how forks are usually handled.
07:21
@EriktheOutgolfer So far, I haven't added any forks to TIO. Adding it as a separate language (preferably with a different name) would be an option, but two different atoms probably don't warrant that.
The other option would be to initiate pull requests to merge the new atoms into the original repo. If you're interested in that, you'd have to follow the naming conventions though.
Basically, I wanted to make my own fork as a ground for making atoms to pull-request with correct names later. I used my own naming convention so as to not have any potential conflict with atoms added to the main Jelly (yes, I am copying new atoms and quicks from there). I asked for a pull because I wanted to have an "Erik's beta version" before rolling out the pull-request.
Also, after a pull-request has peen merged with the main Jelly, I will add the new atom's name, but not remove my own name I previously had there, so as to avoid breaking older code.
Understood, but I think it would be much easier and less confusing if you just started making pull requests now. æR and ŒḂ are free and would follow the naming conventions.
Pfft, you already saw my source code. Yes, I had considered those at first to be honest, but later thought of a possible conflict with newer atoms, so I used my own naming convention. Creating a pull request now.
@EriktheOutgolfer Alright. It would be better to implement æR as list(sympy.primerange(x, y + 1)), which will be a lot faster if y - x is large. You should also specify an ldepth and rdepth of 0 or it won't vectorize.
I had forgot that. You're right, I did want to vectorize.
@Dennis Added those. I think now you're ready to merge and pull to TIO :)
I think it would be better to make the palindrome check cast an integer to its digits. Testing whether, e.g., the number 12321 is a palindrome or not is quite common in code golf challenge.
If you change the argument's name to, e.g., argument, argument = iterable(argument, make_digits = True) would accomplish that.
Yeah, I thought of that first, but I don't think that's standard Jelly behavior.
Many atoms do this. 123Ṛ yields [3,2,1], for example.
The is_string function you probably took the inspiration from is not an atom. Jelly uses it internally to decide if output should be squashed or not.
07:55
Huh? I never knew that. Final (I think) change incoming. Also, I didn't take any inspiration from is_string, and I always knew it wasn't an atom at all.
Ah, alright. I just assumed because the first couple of lines were similar.
@Dennis Ready, you can pull now. Thanks for your help, I will now apply those changes to my fork as well.
Pulled and deployed to TIO.
I had to fix a syntax error btw (missing comma after the æR atom).
Oh, that must have been because I copied it directly from my fork. Added the new atoms to the wiki.
Great!
09:08
One thing I really come to appreciate about linode is the 40G LAN (every node in one data centre also gets it's own local IP). E.g. the rescue system is a debian image that runs on a RAM disk. So it's possible to clone raw device data from a rescue shell to a completely separate production node at roughly 200MB/s. Unsafe and stupid, but still awesome.
 
3 hours later…
11:53
@Dennis Can you please pull Brachylog?
 
4 hours later…
16:13
@Dennis For your consideration: scaleway.com/pricing
16:41
@Fatalize Done.
Seems like a lot of things don't work anymore...
@mınxomaτ That sounds way too good to be true.
@Dennis Can you please pull again?
Done.
@Dennis Relevant discussion: news.ycombinator.com/item?id=13679459
I just tested their lowest tier x86 VPS and so far no problems.
Makes me consider moving away from linode if I can bring my own raw disks. But that's probably not relevant to you.
16:47
Nevermind I'm actually retarded
I checked on Brachylog V1 link instead of V2 -_-
Heh, that would break thing, yes.
@mınxomaτ I keep searching for the catch. The VPS's cost less per GB of disk space than block storage does on DO.
@Dennis That's not surprising. Compute in France and Amsterdam is cheap. The same reason OVH's small VPS are so inexpensive.
But even compared to OVH, they're still insanely cheap.
17:04
OVH comes with some orchestration features to connect different products. SW just gives you a server, that's it.
Here's a longer review (though quite old): blog.scaleprocess.net/…
OVH vs SW, latency and performance: vpsbenchmarks.com/compare/scaleway_vs_ovh
17:49
The latency isn't stellar, but performance should make up for that. CPU is the bottleneck for most TIO requests.
 
1 hour later…
19:06
If Scaleway pans out, the only remaining headache is the server-side permalink feature.
What's the problem there?
The cost for storing those will increase linearly even if activity doesn't increase, and it looks like it is.
What cost? The actual storage, or performance ...?
The actual storage. The whole point of permalinks is that they're permanent, so everything that is stored on the server should never get deleted.
Hm. A solution would be object storage. E.g. 10TB of OpenStack Swift is 5€/m. Swift has a python client, but writes to the DB are limited to 10Mbps.
100GB is 1€/m. Combined with some low-memory compression (gz...) that should be plenty.
19:20
That's probably fast enough. Writes don't have to happen in real time; recently created/accessed permalinks would be cached on the server anyway.
The basic infrastructure would be (TIO ⟷ Swift client) ⟷ (Swift gateway) ⟷ (Swift DB). I can host a gateway for you and setup a small test DB. The swift client is a python CLI.
The OVH vps would probably be a good playground for this.
Python CLI sounds easy enough. I have a bit too much on my plate right now to test this – if I try to do too many things at once, the result is always the same: nothing gets done – but I'll get back to you in ~1 week.
 
3 hours later…
22:39
@Dennis I have mounted a Swift database via fuse at /mnt/tiodb. Every directory inside that mountpoint is a separate database. Every file in such a directory is an object. The content is the key. E.g. right now, there's one DB called "test" with one object "testkey" containing "hello". It's basically a very-high-latency file system. Don't ever rename objects. Only create, read or delete them (using normal unix file commands).
Ergh, wrong room. Feel free to move.
@mınxomaτ So I can use it like I would use any other mount point? That's great! I have little to no experience with databases. Is there anything like block size or inodes I have to worry about?
Not sure if that made sense.
Does a 400 bytes object really occupy 400 bytes (plus metadata) or is it always a multiple of x bytes? Size aside, is there a limit to how many objects can be stored in the database?
Reduce IOPs :). If you can blob together multiple keys into a bigger object, the latency is obviously reduced, but the tradeoff is higher CPU usage. Don't attempt to rename or use any other extended attributes.
@Dennis It should be 400 bytes since there is no metadata in Swift, only objects. There are also no permissions etc. But you can try and check with df.
Well, it would have to store at least the name, no?
Yes, and a small hash. But the actual quota is file size only.
Oh, cool.
22:50
Currently it's 25GB.
Blobs is what I was going to do when I still thought about storing them directly on the server. Just wanted to check if that was still needed with a db.
Well, not strictly. But it might reduce latency.
Feel free to benchmark, this is a sandbox after all. Just rm -rf /mnt/tiodb/* if anything hangs.
Will do. :)
If anything is severely damaged, unmount and remount with hubicfuse /mnt/tiodb -o noauto_cache,sync_read,allow_other
Alright. Latency or not, blobs probably make sense anyway. Grouping permalinks should make them more compressible.
22:57
> The content is the key
I'm an idiot. The content is the content. The object/file name is the key.
I somehow understood what you meant without realizing what you actually wrote.
with realizing?
I said no such thing. >_>
23:16
Looks like I already broke it. :(
Would be surprising if everything went flawlessly on the first try.
I did expect to be able to create at least one file before breaking something though.
Ouch
Alright, seems to have recovered from it.
23:32
@mınxomaτ Do these databases come with some sort of backup or would I have to make care of that myself?
The latter.
A faster and more stable alternative to Swift is Backblaze B2. But the pricing is a bit complex
That looks a lot like the AWS S3 pricing scheme, just cheaper.
That's their business model, yeah.
S3 promises redundancy though. Not sure if that means that I don't need backups.
No. It's basically just a RAID.
23:42
Right. And how to I back a database up? (Probably a stupid question. I'm very new to this.)
Download it to somewhere else.
Google Nearline / Backblaze B2 / Amazon S3 are all highly available, but they don't protect you from accidental overwrites.
So the concern is misuse, not hardware failure?
Yes. If you are 100% confident that you'll never delete anything important, you don't need backups.
I assume that's not true for Swift, is it.
What is? Swift is just an open-source implementation of S3 et al.
23:50
Does the tiodb you've mounted come with redundancy?
Oh! Alrightie then.
This is the non-commercial version of Swift, specifically hubiC. They guarantee the integrity of the data. The commercial version is here: ovh.com/us/public-cloud/storage/object-storage

« first day (181 days earlier)      last day (2313 days later) »