« first day (4016 days earlier)      last day (116 days later) » 

12:01 AM
actually, that doesn't cat it
aaaaaaaccccccctttttttuuuuuuuaaaaaaallllllllllllllyyyyyyy,,,,,,, ttttttthhhhhhhaaaaaaattttttt dddddddoooooooeeeeeeesssssssnnnnnnn'''''''ttttttt cccccccaaaaaaattttttt iiiiiiittttttt
wwwiiidddeee ssspppeeeaaakkk
well thanks!
ccccccaaaaaannnnnnn yyyyyyoooooouuuuuuu ddddddoooooo bbbbbbuuuuuutttttt mmmmmyyyyyy ppppppffffffpppppp??????
@GingerIndustries ^^^^^^
12:15 AM
III ssstttaaarrrttteeeddd ttthhhiiisss... Consider it stopped.
@lyxal I see you have dark mode
Dark mode is better than dark mood.
Is there a way to speed up super-slow python code?
@BgilMidol use PyPy
@BgilMidol get better computer
12:20 AM
i'll try numba
oh wait that specializes for numpy
@Fmbalbuena alternatives that don't need downloading?
@BgilMidol you can't
ask to code-review SE for optimizations.
@Adám Mood
@user #A### M### so i have to sleep
@Fmbalbuena Great, but I really don't care if you need to sleep
Bad pun (if it can be called a pun)
12:34 AM
Is "sh" and "sh + coreutils" roughly the same thing?
@Fatalize Quick question, what's the preferred name for Brachylog v2? I see "Brachylog v2", "Brachylog (v2)", and "Brachylog (2)", all with roughly equal amounts of usage
@taRadvylfsriksushilani Brachylog²?
can't say i'm familiar with "Brachylog (2)" but yeah i think "Brachylog v2" is preferred over "Brachylog (v2)"
...come to think of it how many of the "Brachylog (v2)"s are me
because i may have done that a few times on challenges with an existing v1 answer
Brachylog (2) surprised me too, it must be from a long time ago or something
Here's an example I guess
Is Vim the same as Vimscript?
12:51 AM
looks like i've historically gone with "Brachylog v2", ais has historically gone with "Brachylog (v2)" (but has also used "Brachylog v2"), and the two times fatalize had to make the distinction in a post he went with either "Brachylog v2" or... "Brachylog (V2)"
@taRadvylfsriksushilani nice
Sandbox posts last active a week ago: Cell Evolution
ooh is that another repcap I see?
(in other words, yesterday was presumably a good day for questions)
1:19 AM
@UnrelatedString The post Redwolf linked with "Brachylog (2)" is by ais also
oh yeah
I've only ever used "Brachylog" as the header, because I never used version 1. (Well, I used it once recently for a CnR.)
Nope, I'm wrong--I used "Brachylog v2" once for some reason.
that question has a v1 answer
A: Generate n-ary numbers

FatalizeBrachylog, 21 bytes :[1]cyt ,1|,.$ph:?^<= Try it online! This answer is one-indexed. Explanation Input: [N:K] :[1]cy Retrieve the first K valid outputs of the predicate below with N as input t Output is the last one ,1 Output = 1 | ...

Ah, makes sense.
Speaking of Brachylog... this was painful. My initial version was about 70 bytes.
(also you should be able to golf l₃ to )
1:26 AM
Ah, thanks. I always forget about constrained variables.
i think a lot of them are relatively new as well
also got an absolutely awful idea looking at the leading ,0↔,0 and yeah turns out that if you ever need to put quotes around a string you can do it with ~sᶠ⁴t
i think that might actually beat using formatted write in a vacuum
@UnrelatedString Haha
I was hoping something like that would be possible for the 0's, but I don't think it can be in under 5 bytes
that and on a list it pads with unconstrained variables instead of real zeroes
Right, so it'd need to be labeled or something
i actually tried it with variable-argument output and it refused to terminate without being labeled
2:15 AM
Wait, so do some answers in Brachylog v2 just use "Brachylog" as the header? I might need to take that into account in my ranking program
Hmm, I might just merge the two into a single Brachylog category then
on tio, v2 is "Brachylog" and v1 is "Brachylog v1"
you couldn't differentiate that from v1 answers from before v2 existed without looking at the time posted
so yeah that could present a complication
Yeah, I'll just merge them all
i feel like it might be unfair to v2 to lump v1 in with it since it's considerably golfier but you gotta do what you gotta do
2:17 AM
Just use a unicode check and/or look for the phrase "Look ma, no unicode"
If it contains either, v2, else v1
@emanresuA That requires special casing for a language, and changing the format the current system uses for storing answers
Currently it only reads their headers, making it track the code too would add substantial complexity
Could be useful in future though, your choice
I could keep the like...60 explicitly v2 answers as a variant, to show that it is golfier, but v2 answers would still dilute v1 ones, so they'd appear about equally as golfy I'd imagine
honestly tracking answer date for every language could be worthwhile
Maybe, yeah. Perhaps a future update to the script.
But right now that'd be a ton of effort to go through when I only have a use case for it for one language
2:22 AM
There's Vyxal 1 vs Vyxal 2 vs Vyxal rewrite, osabie vs osabie legacy, etc
Some of those are more substantial differences than others but ¯\_(ツ)_/¯
That's true, I guess.
the case of 05ab1e legacy is also problematic because it does still get semi-frequent use
I'll add it to the feature list, but the ranking program is like 20m away from working so I really want to get something usable from it before starting on another round of features :p
Same with legacy vyxal
And there's one with very substantial differences: JavaScript (<ES6) vs JavaScript (>ES6) where both are labelled "JavaScript"
@taRadvylfsriksushilani 20 meters? That's pretty close ;)
2:26 AM
Where did you send it from?
@emanresuA That matters way less than it would seem like, due to the way my script handles variants of other languages
Okay, running it. Wish me luck :D
Break a leg!
Okay frick. Turns out I need to do the whole dedupe step again because I forgot to do something during the parsing stage that's required for the calculations lol
Give me like 20m :p
@taRadvylfsriksushilani 20 metres of what?
SE Nitro?
you need to be more specific
No, 20 moles of ammonium nitrate
2:34 AM
The abbreviation for that would be 20 mol though
20 miles of runway
Okay y'all have no clue how proud I am that this works:
1: q/kdb+  [95]
2: KDB(Q)  [10]
It's detecting these as possible duplicates, despite them not having a single character in common
You did say levenshtreiren distance is not the solution
It's using one of the really cool features I added, splitting it into groups of letters, and seeing if they're the same when sorted
So it detects things like Dyalog APL, APL (Dyalog), and APL (Dyalog APL)
And ngn/k / k (ngn)
2:39 AM
It also has initialism detection
How will you deal with stuff like codegolf.stackexchange.com/a/236742/100664
So JavaScript (ES6) and JS (ES6) get detected as dupes
(That answer has eight copies and is 15, 16 and 17 bytes).
@emanresuA It'll only read the first line, in that case
I meant the first part
2:40 AM
And it'll only count the shortest answer it knows of for each language
So it'll count that as 15 bytes despite it being 17 due to bad bytecounting?
That's probably an edgecase :P
It is, yeah. I just rely on the byte count listed, SBCS's and stuff would make it way too complicated to do otherwise
2:53 AM
Okay, finally finished deduping
Out of memory error
Node likes to pretend it doesn't have GC
Still though
There are ~170k answers * maybe 60 bytes per answer header = ~10Mb
No, it's during the calculations
Where it makes a list of every pairing of languages and filters it
That's probably it
3:01 AM
Ohhh I see the issue I did a silly
Why not just go something like
I used the field with the whole answer instead of the language name, so it thinks there's like 100k languages and it needs O(n^2) memory
Wow lol
And of course ctrl+c isn't working so I get to play the fun game of wait-until-the-OOM
Does your code iterate through all pairs of languages or all challenges?
3:02 AM
All pairs of languages, and for each one, all challenges, a large number of times
It might be kinda slow
Okay, kill -9'd it
foreach challenge:
  foreach pair of deduped answers:
    if answer1 > answer2:
      wins[lang1][lang2] += 1
      wins[lang2][lang1] += 1
^ pseudocode
Not anything close to how it works
foreach pair_of_languages:
    foreach challenge:
        // lots of math
I think it should be faster though
Think so
3:08 AM
Sure, it might be faster, but it's awful in terms of being a useful ranking metric
Wait is your comparison not wins between languages
Mine has the property of score_a / score_b being the estimated ratio of the length of code in language B vs. language A
So if Jelly's score is 2000 and Python's is 200, a Jelly answer is expected to be 10 times longer than a Python one
Hm ok
One last thing - how are you handling e.g. python+numpy or nodejs+l18n?
3:10 AM
Oh frick...I found a bug in the parser, so I gotta do the dedupe stage again
You could try automating it with machine learning
Idk how good/bad of an idea it is
No, I'm going to make it keep track of what choices you make, and save those to a file. Then, you can just load them from that file and only make any decisions you didn't have to make the first time around (if, e.g., a new language was added)
That's probably a better idea
3:25 AM
What about this?
What about it?
How does your code handle stuff that has bold headers
@emanresuA Perfectly fine, it just uses the first line
Which means that it does ignore posts that have some text before the header, but those are rare
@taRadvylfsriksushilani This is now working
Cool, way less manual stuff
Any more parser bugs?
Hopefully not, but they won't be nearly as painful now
There's still a bug relating to undoing that this introduces, but I'm too lazy to fix it now since undo is a huge mess anyway
4:02 AM
I'm going to port this to HTML + JS when I finish
So you don't have to install Node to use it
And that'll let me do neat stuff like autocompleting language names
today imma try installing haskell again
Installing haskell is so annoying yeah
i can't remember what i did but i think it worked fairly easily
had something to do with stack
think i installed stack off my debian wsl's package manager
actually i don't think i even have a proper installation of haskell so much as stack just lets me pretend i do
4:22 AM
which one should i get: ghc or stack?
lets see if it exists in msys' package manager
Honestly installing docker then doing docker pull haskell and docker --rm -ti haskell every time you want to run it is probably way easier than doing what I had to do to install it lol
i totally forgot i never figured out how to use docker
its on TIO; does TIO use docker?
RTO will though
4:27 AM
there was some ai thing i was going to try running locally on my macbook that was only supposed to be able to run on linux but came with a dockersomething for running it in some kind of vm on docker
but i never actually managed to get that to work
so when i moved to windows i tried again without docker and since it obviously needed access to my gpu that's why i'm trapped on an insider build (even though i never actually got the thing to work anyways)
@PyGamer0 i am just going to get that
and hope nothing goes wrong
btw i have a very annoying problem; every time i turn on my computer, i gotta remove my display cable and put it back in twice for the display to work
Hmm, I used to install things with Haskell Platform but it's no longer a thing I guess?
Seems like ghcup is the way
I'd recommend installing it under WSL2 if you can set it up (Haskell is known to have some hiccups with Windows and WSL1)
wsl2, ok time to switch my entire windows configuration
wait has wslg come out?
i might switch to wsl2 if wslg is on windows 10
4:38 AM
@taRadvylfsriksushilani How close are you to done?
Lots of performance issues
Hard to say if I'll be able to get it running tonight
@PyGamer0 You don't need wslg if you use vscode
4:59 AM
Okay, finally, I've optimized away one of the biggest performance issues I've encountered so far
@Bubbler i use neovim
There's VSCodeVim lol, apparently it can integrate with neovim too
@Bubbler i want the pure neovim experience
actually the only reason i use neovim is neovide
just look at the cursor
its amazing
5:17 AM
Oh, it seems to support wsl out of the box, so no problem there
oh yeah totally forgot about that lmao
well \o/ idk if i should switch from msys2 to wsl2
5:42 AM
I'm so stupid
There was a line in the middle of a loop making it like O(n^3) that I could've trivially optimized away and I just didn't see it
It was going through the whole list of 120k items twice in every iteration, which I could have done once, at the start of the first iteration, and stored in a list
what are you optimising? your language elo thing?
Yeah. It's very slow st the moment.
oh, just use a quantum computer
no need for optimising
5:44 AM
Just use Vyxal /s
(Vyxal isn't speed)
yeah vyxal isnt speed
Vyxal is cool.
CMC: Sliding Window. [1, 2, 3, 4], 2 → [[1, 2], [2, 3], [3, 4]]
^ can someone golf that?
ok our computer teacher is gonna give us a java project rn
6:01 AM
Friiiiick...I've hit the limit of floating point's precision
use fractions/rationals?
Whenever a common language is paired with another common one, the multipliers stack so much that it ends up being 0 or Infinity
in flax, 44 secs ago, by PyGamer0
CMP: For quicks I am thinking they should be like BQN's modifiers. Like fold is ´ and scan is `. Is this a good idea?
@PyGamer0 Problem is, there's powers involved too
@taRadvylfsriksushilani i was about to say "use sympy" then i realised that you probably used JS
6:02 AM
And no telling if SymPy would be fast enough
@PyGamer0 @lyxal @othersInterestedInflax?
CMQ: Which is more useful foldl or foldr?
@taRadvylfsriksushilani use plain old assembly then
How does that help?
Not the language, symbolic numbers
@taRadvylfsriksushilani maybe symengine?
its in C++
6:07 AM
I'm going to try reorganizing certain expressions to prevent things from "stacking" in a way that results in 0 or Infinity
sympy is written in python
I'm too tired to think, (xy)^2 is x^2 * x^2 right?
I'll try rearranging some of the expressions, let's see if this works
@taRadvylfsriksushilani typo? (xy)² ←→ x²y²
oKAY, NO NaN so far
Caps lock >:|
@taRadvylfsriksushilani whew. I wouldn't want old people in my program either :p
6:10 AM
88842.3996  Languages
26226.3279  Minecraft 1.0.0
I think there are some issues that may need to be worked out :p
These are the top two
Lol yeah
Such as perhaps some rounding
No, Languages is the name of a language lol
Oh lol
Usually used in polyglots I think? Idk
But yeah, it should not be 17 times golfer than Jelly whatever it is
17 times less golfy don't you mean?
6:13 AM
No, more golfy
Higher scores are better
Oh, I see one big issue
> So if Jelly's score is 2000 and Python's is 200, a Jelly answer is expected to be 10 times longer than a Python one
So... this messagen't
I think it makes more sense if it's the inverse, so I made it the inverse
I meant to say "shorter" there but...idk
Aha... is responsible for Languages
@taRadvylfsriksushilani where was that jelly thing?
So "3 Languages" is interpreted as "Languages, 3 bytes"
6:17 AM
No, but "Languages: 3" is, and there's a few of those
And there's a single answer in Minecraft 1.0.0, which due to a loophole was allowed through
@taRadvylfsriksushilani the one which shows how much each atom / quick is used in jelly?
I think it was a google drive link
@taRadvylfsriksushilani Weren't you ruling out langs with <10 answers?
Yes, but there's a special exception
If there are different probable variants of the same languages that are all below 10 answers but sum to above 10, like "XyzLang" and "xyzlang 1.1", it'll allow both through
It's supposed to merge them all into a single language afterward but I forgot to do that
Okay, doing a fresh run with some fixes applied
@cairdcoinheringaahing what is it supposed to do?
6:26 AM
@taRadvylfsriksushilani Is there a weighting for answer count in your language ranking system?
Not built-in, as it's meant to be able to precisely compare the expected byte counts of two languages, but I'm planning on releasing an answer-count-adjusted score alongside each one
For example, a language A that only has 10 answers but beats language B in all 10 of those may not necessarily be as golfier as language B
Okay, the results are looking more reasonable now
Top 10?
@taRadvylfsriksushilani you better make the adjusted list the primary list then. Otherwise someone could game the system by only posting 10 answers that beat the top language on trivial challenges
6:29 AM
The thing is, it only approximates the correct ranking. After every round, it gets more accurate, and I've only run two rounds in my test. So I don't want to release the top 10 because it's not going to be correct yet.
But tomorrow morning, I will
It'll probably take an hour or two
And I need to go to sleep soon
It has a total of 584 languages ranked lol
@taRadvylfsriksushilani but after two rounds, what are the results looking like? Are they generally representative of the site?
I think so, yeah
Is jelly at the top?
6:31 AM
Various flag combinations of some golfing langs are near the top
... How near?
It's pretty close
Care to numerically quantify that?
No, because the numbers are likely off by a considerable amount right now
I need to run it for quite a few more rounds than 2.
I understand that, but you can't just leave us hanging like this
6:33 AM
I will say that Jelly is within 5% of Vyxal
But not more or less
@taRadvylfsriksushilani Finally, some statistics! :p
And that some flag combinations for Vyxal and Japt are twice as golfy as without flags
Is taxi near the bottom?
DLosc has it perfectly right, Taxi and then Mornington Crescent in last
6:34 AM
JS vs Python?
With Shakespeare in 4th last
Ighto I'm satisfied now. I've got at least a number to set my expectations upon
Those expectations being that the 5% lead that currently exists will be completely obliterated in further rounds
JS is better than Python by around 10%
> Within 5%
Dotcomma does worse than whitespace, but better than INTERCAL and LOLCODE
6:36 AM
That doesn't specify which is greater
(For Ginger) How is APOL performing?
@emanresuA but the order of languages and general idioms would imply with some confidence that the first language trails the second
@emanresuA Slightly above average, so better than JS and Python, but not as good as Risky, Mathematica, or most of the first gen golfing languages
APL is doing a lot better than golfscript right now
(future transcript readers: remember that this is all from only 2 rounds of analysis. More detailed results will be available later)
Can you put the current results in a gist?
6:40 AM
Sure, but I'll fuzz the actual numbers by 10%
You're evil
Classic redwolf
Well, I should probably go to sleep o/
That's why I was asking for the gist, o/
Perl flags make it vary a lot
also wtf japt
@PyGamer0 dzaima/APL: 2,/ BQN: 2↕⊢
6:50 AM
@Adám but the sliding window can be of any size
maybe ,/?
Missed that. Yes, ,/ in (pretty much any) APL and in BQN.
Honestly I think this is kinda flawed
What is flawed?
Redwolf's rankings
6:52 AM
Because it's comparing Vyxal doing to JS adding two numbers.
CMP: Glyphs for calling the same link with the same arity, Jelly's ß
i guess if i dont find any good glyphs i can use:
Which really increases purpose-specific languages' score
@PyGamer0 ∇ is quite good but that is my APL pill speaking
it makes sense to APLers
@PyGamer0 jelly's codepage is made to fit largely within latin1, you should consider what symbols you care about
apl symbols and latin1 are readily available in most big fonts
7:00 AM
For example, Canvas is ranked really high because it's only used for ASCII art. Jstx is ranked really high because it has 15 3-4byte answers and five larger ones.
@Razetime hm true
33 mins ago, by lyxal
For example, a language A that only has 10 answers but beats language B in all 10 of those may not necessarily be as golfier as language B
@emanresuA ^
33 mins ago, by lyxal
@taRadvylfsriksushilani you better make the adjusted list the primary list then. Otherwise someone could game the system by only posting 10 answers that beat the top language on trivial challenges
Ok yeah
hm what's the adjustment
probably separate languages by number of answers threashold?
35 mins ago, by ta Radvylf srik su shilani
Not built-in, as it's meant to be able to precisely compare the expected byte counts of two languages, but I'm planning on releasing an answer-count-adjusted score alongside each one
7:04 AM
yeah that will probably be the best ranking
> 4426.9111 W
4240.5764 Vyxal j
I find that marginally funny and somewhat nostalgic lol
The empty program is a cat
@emanresuA well luckily it's a dupe lol
7:27 AM
how do i convert a sympy object into its python representation?
somthing like nsimplify(0.1, rational=1).python_obj → 0.1
float, no?
Alternatively, sympy.N
Or (what vyxal uses): eval(sympy.pycode(expr))
Q: Ragged Matrix Indexing

DialFrostA ragged matrix, is a matrix that has a different number of elements in each row. Your challenge is to write a program in any favorable language to find the indices of all occurrences of target in the ragged matrix. Input: A list of ragged lists (can be empty) of positive integers and a target ra...

Note that pycode might be an attribute of the Sympy object
7:33 AM
i guess i need to write a new pp function to handle sympy
8:06 AM
Haha pp function
]retty prin5
Call it a ]p function then
i mean pretty print
so, well, ... i should name it pprint or just flax_print
8:37 AM
Q: Truncatable Primes

DialFrostA left-truncatable prime is a prime number and when the first digit is removed continuously, the result is always prime. A right-truncatable prime is a prime number and when the last digit is removed continuously, the result is always prime. If the integer is only a left-truncatable prime, return...

8:58 AM
@taRadvylfsriksushilani Brachylog v2 is just Brachylog. You use "Brachylog v1" if you want to talk about the first version but I don't see why you would, it's inferior in every way. So just use Brachylog
9:11 AM
@taRadvylfsriksushilani Vim: text editor, Vimscript: Language used by vim to make plugins for vim

« first day (4016 days earlier)      last day (116 days later) »