« first day (1101 days earlier)      last day (673 days later) » 

07:54
It's just occured to me that a live byte count for the = flag isn't possible unless vycoder is ported to js
Well I guess it's technically possible, it'd just be slow and not very efficient
Because it'd be multiple requests to the encoder function
Which would all need handling
08:09
5 ideas: 1) leave it as is and don't have a live bit count, 2) create a separate js port for the online interpreter, 3) use pyodide, 4) transpile the python to js/wasm somehow or 5) rewrite in scala, use scala.js for the website, terminal output for offline
Thanks chat for sending the edit as a different message
Option 1 isn't satisfying and isn't good customer experience. Option 2 opens a gap for disparities between versions. Option 3 takes a while to load and is kinda overkill in a sort of a fashion
Meaning it's between options 4 and 5
 
1 hour later…
09:23
Transcrypt looks like it might be viable for option 4
However it only seems to work with python 3.9
Which might or might not be a problem
Also, 2 things I've been thinking about: a) there should be some sort of announcement to not go through and record old vyxal answers unless completely necessary and b) the website needs to be able to have different versions of the corpus data available, just in case we ever update the corpus
So like you can use different corpus versions depending on when you answered
No clue how that'll be implemented
Might be easier with Scala.js
But then that requires Java to be installed
Which isn't as nice as option 4 which just uses all python
I think Transcrypt might be the way to go if I can get it to work
Huh, looks like Transcrypt doesn't have python standard libraries though
Meaning no numbers and typing libraries
Looks like Transcrypt is off the table
 
4 hours later…
13:54
I decided to attempt option 2
It has bugs but maybe works
And of course I forgot to push to main
Oh yeah right I used a branch
14:29
@lyxal I put the decode function into ChatGPT to port to JS. It gave me this (you might want to just double-check that it's correct though)
14:53
The encode and decode functions require BigInts to work so it's not straight forward to port it to JS
It's possible to modify them to work with less precision at a tiny cost of compression ratio
15:38
@AndrovT like this?
16:27
@TheThonnu 0.toString(2).length === 1 in JS but 0.bit_length() == 0 in Python so this needs to be fixed somehow
let ranges = [...prediction(out)].reduce((acc, x) => {
  let last = acc[acc.length - 1] || bottom;
  acc.push(BigInt(x) * (top + 1n - bottom) / prediction(out)[prediction(out).length - 1] + bottom);
  return acc;
}, []);
this is also wrong
I didn't actually check any of it
I just put it into ChatGPT
well, than it makes sense that there's nonsense in the code
 
3 hours later…
19:43
!!/info
would someone tell me how to compress stuff in vyxal? i see the method outlined on vyxapedia but i don't really understand it
19:59
@Jacob If it's a large number, a string of lowercase letters and spaces, or a string containing english words use øC, øc, or øD respectively to find the compressed form and then copy paste it into your code
for example 3141592øC outputs »1P⁺» so use that instead of 3141592
thanks!
 
1 hour later…
21:32
Why doesn't * show up when searching for "ring translate" at vyxal.pythonanywhere.com ?
It makes that overload of the element incredibly hard to find
22:05
@AndrovT the compression needs to be exactly the same
@TheThonnu only the encode function is needed
For the live bit count.
The python version handles the decode

« first day (1101 days earlier)      last day (673 days later) »