« first day (4402 days earlier)      last day (738 days later) » 

00:00
^
head or first I like best
utc midnight!
first in particular as it works similarly with lists.
Rust calls it "take" for iterators, which makes sense in that context. "First" or "slice to" is what I'd personally go with
"Head" is often used for the very first item I think, so that could cause confusion
I'll go with 90% of those suggestions
00:01
Ooh are you mapping multiple names to each operator?
I am
That's what I've been planning to do
Altho actually I think what I was gonna do with Ash, and what I like best, is just ASCII-only escapes for non-ASCII operators and no literate mode
Like \.f for
I did Alias Names in Funky2, found it more confusing than helpful honestly.
@RydwolfPrograms Oooooooh
@RydwolfPrograms huh, guess we came up with that idea independently :p
Shortly after I did I found Husk did that too, so I guess it's a common thing :p
00:06
Vyxal 3 has (once they're implemented) what I'm calling sugar trigraphs
which is #.<char> and #,<char>
because there's updot and downdot characters
Also my worry (and what I'm running into with MIS) is that people'd get lazy and golf in the literate mode :p
to me, that's the point of literate mode
why struggle with unicode when you have ascii that automatically turns into unicode
Well no but like, and then not even convert it to Vyxal or Ash or whatever. Just "Vyxal Literate, 28 bytes" or whatever lol
Guess it's less of a worry with golflangs than esolangs tho
@RydwolfPrograms make the interpreter automatically give the short form when using literate
@lyxal Ah, mine were gonna be a bit more general. In addition to \.f/\_f, you'd have ones like \d for ÷ or \cr for ©, etc.
00:10
that just sounds like keyboard shortcuts with extra steps :p
Yeah but you don't need to install them :p
who said you need to install them? :p
Oh right. Well, ideally you wouldn't need to rely on the online interpreter I guess :p
Like if you're using it on, idk, RTO ;p (well actually no it'll support shortcuts but ignore that)
OOH
What if they automatically got converted? Like keyboard shortcuts!
well yes that's also an idea I've had
If you type \.f in the online interpreter it'd just convert it once you typed the next character
00:14
oh I was thinking if you use the shortcuts it prints them as non-shortcuts along with the program
Shortcuts as keyboard or ASCII ones?
Not sure what you mean
ascii
ah. To me the advantage of the auto-converting approach is that you type the exact same keystrokes in an interpreter that supports language-specific features as one that doesn't
So if you use a sugar trigraph, it prints the conversion in stderr or debug
It'll still run as \.f but an interpreter that's optimized for the language can just turn that into the more readable and golfy version for you
00:19
Yeah it still runs it as normal, but also prints what it converts it to
So you can copy paste that as your answer instead of the long form
Yeah. I guess that's an option too, but I don't really see the advantage TBH (other than a reduction in complexity)
User convenience
Compared to auto-replacing in the text box as soon as you type (but not paste) it
Which is what I'm talking about
I mean I guess it could be annoying if you didn't expect it but I can't see any reasons you'd want to keep the shortcut instead of have it convert
I'm talking about for offline behaviour
Oh offline as in the CLI one?
Yeah that'd make sense
Does anyone use the CLI ones tho? I was under the impression everyone just used the online interpreter
Well I guess you prolly do since you're a Vyxal dev :p
00:26
@RydwolfPrograms it's good for testing sometimes and when you want to do things that the online interpreter can't do
Oh right, didn't think about side effects
Technically TIO/ATO do use the CLI ones
Well, yeah. I guess those're also situations where the auto-converting wouldn't work
Also, have you done any work on TIB? Were you the one experimenting with Python in the browser or was that emanresu?
The in-browser model's interesting, even if it's not super practical
TIB is long abandoned lol. It was probably emanresu
@RydwolfPrograms Yeah the vyxal interpreter automatically does that
And yeah that was me
The main limit is browser memory. Pyodide uses about 10MB of RAM, and I'm suspicious that it leaks some of that. Something like v86 could run pretty much anything (someone got it running lua) but that's a lot of RAM.
00:34
10MB doesn't sound like much to me
I suspect in future, the only reason to use a server for online interpreters will be that people's computers don't have to do the heavy lifting.
Pretty much anything can be compiled to wasm nowadays, I just don't have the technical knowledge for most of that. At one point I was trying to compile 05AB1E to JS with elixirscript, but I just don't know elixir.
The option of having no timeouts seems really promising (I mean, I could do that with RTO, but I'd rather not turn it into a crypto miner hosting service too directly :p)
(has no timeout) (burns your computer, so run at your own risk)
One advantage of DSO's model is that the actual source code can be requested from github & similar, since it's cheap and easy to make requests from a browser. pxeger's said ATO is about 10GB, DSO is about 120KB total (not counting the font, which is about 400kb)
Oh, taht's true
Not like storage costs much anymore tho right
A $4 droplet gets you 25 GB and $70 on Ebay gets you a couple terabytes of redundant moderate speed storage if you self-host
00:40
True
Surge (the provider I'm using) has a 200MB limit though, and it doesn't have any sort of incremental upload so things do take a while
RTO's going to be pretty storage intense I'm guessing, which worries me
Since I've only got 800 GB, and 4 open bays in my server (which sounds like plenty of slots but when you take redundancy and stuff into account it's not much)
(part of why it'll be storage intensive is that I'm going to keep every layer version to keep things from breaking over time)
(which for big langs with quick update cycles, that's a lot of space)
@RydwolfPrograms timeouts are nice though for if you make an infinite loop by accident and want it to end in a sensible amount of time for testing/debugging purposes
Well there's always the stop button
If there isn't that's a pretty critical design flaw
that's assuming the stop button works :p
RTO: Scope creep, the web app(TM)
00:49
oh no i'm talking about the current vyxal online interpreter :p
Ugh I'm so used to Chrome OS's Ctrl+Shift+I
@lyxal Oh I know
But every time I discuss something relating tangentially to online interpreters I add a new feature
Like a functioning stop button :p
@emanresuA That comes with its own limitations. Sharing data between JS and Wasm requires COOP/COEP headers, which prevents most 3rd party resources from loading into the page
I have no idea how wasm works. I just use the pyodide API lol
@lyxal (also "oh no i" is probably one of the funnier apostrophe'd moments I've seen. Looks like you just saw some horrifying monster from the corner of your eyes and it snatched you away before you could finish typing :p)
01:24
@AndrovT Ah, thanks for the links!
 
1 hour later…
02:41
0
Q: Draw a Gameboy Tile

ATacoDescription The Gameboy stores tiles as 2 bit-per-pixel 8x8 images, thus 16 bytes. Every two bytes is a complete row with all of the High-bits of each pixel in the first byte, and all of the Low-bits of each pixel in the second. Input Input will be exactly 16 bytes, received through Standard IO ...

03:18
Wait is it not true that ln(xy) = ln(x) + ln(y) once complex numbers are a thing?
That's so disappointing
04:09
Complex numbers are weird
 
3 hours later…
07:21
@DLosc Ask and ye Shall Receive
07:58
@RydwolfPrograms it's true "modulo" 2π
and Re(ln(xy)) = Re(ln(x)) + Re(ln(y)) is always true though
08:22
@pxeger You mean 2pi*i?
well the modulo only needs to apply to the imaginary components
Also ln(x) has multiple values, and they've same set
to me ln(x) returns the principal argument
but yeah
@NewPosts I'd like to see someone do this in SCSS or Less
With lots of linear gradients
 
2 hours later…
10:14
@RydwolfPrograms xy = exp(ln(x) + ln(y)) is also still true
 
4 hours later…
14:26
0
A: Sandbox for Proposed Challenges

Kip the MalamuteFibonacci Binary Rectangles I was playing with the Fibonacci sequence in binary like so (note that the binary representations are written here from smallest bit to largest bit): 0 0 1 1 1 1 01 2 11 ...

15:07
CMQ: What (printable) characters would you include/exclude if you were to create your own version of ASCII?
I'd definitely exclude ~, `, @, ^
I'd exclude upper case letters
I'd definitely include °
Endless source of confusion
I think ASCII is good the way it is
I'd probably throw in ¤
15:09
Add € for sure
Maybe one of ©, ®, or
Probably the latter for sarcasm reasons
definitely 🍪
it's very important
@mousetail Yeah, then you get into "how many currencies should we include"
Remove ", also causes endless confusion. Just type ''
@RydwolfPrograms Then remove $
I probably would :p
I'd remove # too
15:11
Ok " and '' look exactly the same, see the confusion
nope
Remove \
\ is nice
It lets you do spinning animations with text
Then remove /
only one of the 2 should exist
Altho I guess it does cause unnecessary confusion about which slash is for what
@mousetail Nobody uses \ as a slash IRL tho right? Why would you ever remove /?
15:13
I don't really ever use either IRL
IMO the en-dash should also be included
And maybe the plus-or-minus
en-dash just creates more confusion
Looks identical to - in monospace fonts
plus-or-minus is nice though
They're different enough in Roboto Mono to be differentiable
I'd not call that differentiable
@RydwolfPrograms what
all of these are useful
the only one I might remove is $
15:15
Only because they are in ASCII
Only because we've gone back and given them new meanings
^^
~, `, and ^ don't even work for their intended purposes
And @ is just some weird shorthand thing that the ASCII people assumed would be replaced with Á in Europe
# and @ are really the worst offenders, only ever used because keyboards have them
Nobody can even agree what # is called
Make an interrobang one of the characters to make Adám happy :p
Imagine if interrobang's replaced # as tag markers on social media
Alternatively, I'd be more okay with ~, ^, and ` if they functioned like combining diacritics
But then we'd also need a combining acute
15:20
ASCII really shouldn't have combining diacritics though, it should be as easy to render as possible
That's fair I guess
Honestly I do think having one or two dummy characters that're meaningless on their own is nice
Maybe @'s worth keeping
Or maybe something less opinionated to replace # as a tag
I like @ and ^, ` can probably go
Goals for ASCII:
1. Each character must be easily differentiable. So no I and l
2. As easy to draw as possible. Simple shapes, constant width.
3. Able to approximately express words in a solid chunk of human languages, even if not exactly in the way people would normally write it.
Whose goals are those? Yours or the designers?
Mine I guess
15:22
two of those three can be done with a well-made font
Well by not having combining diacritics you're throwing away #3 entirely, and it'd never be possible unless we really committed and had like, two sticks of diacritics and non-latin characters
People can still recognize words without diacritics
My goal is not to write the language like people would write it but just make it recognizable
Ideally it would be something more like IPA than english letters
Also, a "solid chunk of human languages" will never be attainable without a really Eurocentric view of "solid chunk"
No English is actually good since it's phonetic. You can approximate many languages in different scripts with it. If ASCII had been chineese that wouldn't be possible
There are quite a few sounds it can't represent though so it's not perfect
IMO if we could start from the beginning, instead of doing Unicode how we do it now, it'd be better to make it a bunch of charsets which are optimized for particular languages, which could be shifted between
15:26
I think that might complicate parsing too much. Requires keeping track of state. What if some data is missing or corrupted?
That way the eurocentrism of having Latin-1 be first, and twice as compact, and immune to encoding issues, is avoided
@mousetail Nowadays that's super rare. We've got checksums on checksums in transmission and our RAM's stable.
Sure it requires state, but I think it's worth the downsides
Depends how you transfer data. Like a UDP packet could get lost. Multiple processes could be writing to a file
You already need some state for parsing UTF-8
Not as long-lasting, but still
Yea UTF-8 is already pain for that reason but you can recover from errors losing only 1-2 characters in the process
@mousetail In those cases you'd just put the shift instruction before each packet/write
15:29
Your method could potentially never be recoverable
Well you'd be able to recover at the next shift instruction
They'd ideally be every paragraph or so
Yea you'd need to prediodically add shift instructions again
And you can bet with fair accuracy that it's going to be the same encoding before that shift instruction you find as after
You'd get the same issues as with the BOM
And we could have utilities like file that auto-detect likely charsets as a backup when you don't have any clue whatsoever which encoding it is (which would be pretty unlikely) that would look for common patterns
15:31
> Following are our secret evil world domina����������������������������������������nly one copy, so don't delete this file!
E.g., if most of the bytes are in the 0x60-0x70 range with some 0x20s interspersed, you know it's probably the Latin charset
@RydwolfPrograms Yea this already exists and is not very reliable
@Ginger You'd know with pretty high certainty that that's the Latin charset in the middle
@mousetail Sure, but it would only be an emergency backup sorta thing
Which you would never need today
But that is also because in this non-hypothetical world a lot of character encodings are very similar. We could design them in such a way to create more noticeable patterns.
Eg. Make sure the most common letter in every script has a unique byte value
Also, there's the possibility of somehow interspersing it within the characters themselves (like error-correction-code style), but that would add a lot of complexity
And remember, 90% of the time you know which encoding you're receiving data in anyway
Maybe the shift instructions could have a bit indicating whether it's actually a change or not?
That would allow automatically detecting and probably fixing missing/corrupted bytes that just happen to mess up a shift instruction
16:05
@RydwolfPrograms Oh shifts could include both the encoding before and after. That way you could decode text if you just had either end of the segment
Maybe, but that seems like it'd be a bit wasteful to account for such a rare occurence
Maybe, I'd expect the shift to be 2 bytes already, then it would be 3. There could also be a shorthand if the encoding on both sides is the same, then it could be only 1 byte
Oh, I was thinking 1 byte
Wait no yeah
It'd probably be 2 bytes
One advantage is you could read a random 1024 block of a file and decode all of it exactly, without needing to read back and figure out the first shift.
16:25
Oh Chess is graduating
16:43
https://codegolf.stackexchange.com/questions/107964/output-programming-language-name
Do this have a 0-byte metagolfscript solution?
[tag:quine]
16:58
But this ISN'T an error
how to word
17:15
0
Q: Find opposite string

EzioMercerYour function must accept one string and return the opposite The opposite string is a string where all characters go in reverse order, all letters are replaced with the opposite mirror letter from the English alphabet and are changed in case, and all digits are replaced with opposite mirror digit...

17:55
Interesting...Chrome (on Chrome OS) now has a bettery saver mode
18:18
Why does the Gmail font make smile emoticons so disfigured
"...he says as he is run over by a car, vertically" is what that emoticon communicates :p
And the nose one is somehow worse
18:40
@l4m2 There's Vyxal h, 0 bytes - h is the flag help menu
19:10
@RydwolfPrograms Do you know why this happens sometimes?
Not sure. I've never seen that before
Do you have it installed twice somehow? There's no way the code to insert that could run more than once (unless the whole script was run twice)
 
4 hours later…
22:54
@mousetail you might change your mind after tough thorough thought though
or maybe I should have said through instead of after
23:32
14
Q: Print all pandigital numbers

mousetailGiven a base as input, output all pan-digital numbers. A number is pan-digital if it includes every digit in that base at least once, possibly multiple times. Every number is considered to contain an infinite number of leading 0s. sequence rules apply. Given a base, you may either: Given an inde...


« first day (4402 days earlier)      last day (738 days later) »