« first day (2392 days earlier)      last day (2746 days later) » 

00:00
yeah it's good for debugging
or rather, *raise :P
@ATaco DDDDDD: did u just say vsl is impossible
Yes.
I like how you guys like saying that lisp is bad because you can make a mess of parentheses but assignments in expressions doesn't count because you can not make it.
@Downgoat halp i need 1 shipment of disapprove face
00:01
ಠ_ಠ
@ASCII-only here you go:
 _______
|  ಠ_ಠ  |
|-------|
@Downgoat it's broken
10/10 ascii art.
sorry but cost extra for shipping because australia
00:02
@Downgoat shouldn't that have some bubble wrap or something?
@DestructibleLemon :| Lisp isn't bad
*helplessly tries to fix ASCII art*
@ASCII-only yes
thanks
@DestructibleLemon yes
00:03
oh god please no spam
ok kick threshold
:D lel it worked
totallyhuman is secret SE mod confirm
the amount of times i get kicked hints against that
@Downgoat Your blog is down. ;-;
? works for me
are you using https or http
00:05
I'm using the link on your profile.
for some reason LetsEncrypt's redirect breaks
also i still don't know why i got kicked today
Oh, now it's working...
twice
@mod pls halp
oh wait sorry I see
@ASCII-only ...it's on the starboard
it says:
> Birthday (only used for displaying age)
where is this displayed?
@Downgoat on your network profile
@totallyhuman Not for me
Wait, Nevermind
00:10
@ASCII-only it's the first message
the image
@totallyhuman That's quite a bit different
@HyperNeutrino O_o you have 10k rep
@ASCII-only for a few days already :) I'm close to 11k
@Downgoat +1 for math goat meme
question: should a, 1 = 2, b work?
@HyperNeutrino what
@HyperNeutrino Yes, but please never use it.
what would the result be
a is 2, b is 1.
00:14
a = 1; b = 2
for each pairing of assignments, if the left side is not an identifier, flip around
similarly would work for const by externalizing the pairing to have it work for inconsistent identifier position
forget assignments in expression, this is even weirder :P
@HyperNeutrino no
b should be an lvalue
00:15
i mean, if you don't want people to use it
might as well not allow it
@HyperNeutrino that's the same as allowing 1=b
it offers no golfability right?
@Maltysen er... that is allowed though...
...oh
wtf why
because wizzwizz4 wanted it
what happens with a=b
00:16
a becomes the value of b
it default to right -> left but if left unassignable then left -> right
that sounds really stupid but whatever
if that works then your earlier thing sounds good
00:18
@totallyhuman This is what basically happened in Rick and Morty S3E1 (well, 1 = 0 but close enough)
SyntaxError: can't assign to literal is very important error
Any syntax error is a wasted opportunity
they exist for a very good reason
wait does new TIO update automatically or something? maybe using hooks?
@Downgoat No
00:24
@HyperNeutrino oh lol I can't even login on SE my account is broken or something for network login
Execution is done on the webserver.
10/10 highly reccomend adding that feature
@ATaco your webserver?
Clearly not, TIO's.
@ATaco halp I create folder name "goat meme" on xstore and nothing happen is something suppose to happen
well Positron supported 1 = 0 for a while until it started causing errors with strings because Positron was 100% bad
Proton is slightly less bad than that
00:26
ಠ_ಠ why did you not name Neutrino
@Downgoat wait that happened to me like a week ago
@Downgoat Is this on key=ppcg?
it fixed itself after a couple days
@ATaco what is key
what link are you using on xstore?
00:26
speaking of xstore
@Maltysen its been happening for around a year and when I told SE they basically said they do not care enough to fix
the vote is completely yes
5, 0, 0
why does everybody agree
If you've just gone to /xstore/ and aren't logged in, your private folder won't do anything.
i.e. "We have not encountered this problem with enough users" and "have you tried creating another account"
@totallyhuman What is even the question..?
00:27
ohey goat pics are there
i dunno
is key= the salt?
but i voted no
key= is the key. It's a single key encryption.
It's using XOR, hence the name XStore.
I am aware it's not good encryption
*proceeds to say that XOR is not good encryption*
00:30
Good is not XOR encryption
@ATaco then why
: AES + password + session so password not in plain text in URL bar?
@DestructibleLemon Good encryption, XOR is not.
Not XOR good is encryption
It's desinged to be Anonymous, not well encrypted.
00:30
1
Q: Generate every ASCII string

mbomb007Description There are an infinite number of ASCII strings. Write a program that will output every possible ASCII string exactly once. The ordering does not matter, but you must be able to show that for any possible ASCII string s, there exists an integer n such that s is the nth string in the o...

@NewMainPosts eh...
@Downgoat Key != password
@ATaco btw for some reason .jsd files are being downloaded when I try download file?
:o you can use yield in expressions
@totallyhuman ???
00:33
@ATaco I am say you should switch to using password :P
@ASCII-only e.g: ()* => yield (1 + (yield 2))
@Downgoat It's downloading the correct file, but browsers rename it to the name of the page, so it's downloading view.jsd?... and dropping the ?
I need top change it up a little to fix that.
@Downgoat O_o.
@ATaco oh, are you rendering .jsd files server-side?
@Downgoat Yes
IIRC I think you can fix that with http headers
00:36
maybe route a-ta.co/(.*)(?:\.html)? -> local/views/$1.jsd?
What I really want to do is allow a-ta.co/xstore/view.jsd?key=...&folder=.../file.ext
Or something like that.
Or maybe a-ta.co/xstore/view.jsd/file.ext?key=...&folder=...
Note, I'm not using express or react or anything.
you should use express + mustache
there's a lib called mustache? lol
its a HTML + JS templating engine
if you've never had fresh peaches you're missing out
00:46
you can also use pug
@StepHen I have a peach tree in my backyard :P
actually scratch that, making strawpoll
My .jsd is an HTML + JS templating engine.
But it's written by me.
RST is stupid. I had to use it for making docs for pythonhosted and it was so freaking complicated
MarkDown all the way.
00:58
@totallyhuman you know, it would be hilarious if that infinite looped and then segfaulted
>>> import oeis
>>> pie = oeis.Sequence(1355)
>>> pie.first(30)
[3, 2, 1, 7, 4, 1, 1, 8, 5, 2, 9, 8, 2, 1, 6, 8, 5, 2, 3, 8, 5, 4, 8, 5, 9, 9, 7, 0, 9, 4]
:D
whoa that's smart
@totallyhuman is that the internet-based lib or no?
yes
i'm unfortunately not capable of making one that's not
01:03
@totallyhuman cquents is going to have an (obviously incomplete) one once I finish it up
@totallyhuman you should make Sequence implement __getitem__ __getslice__
since once I add all the builtins it'll be able to make them pretty short
@Maltysen it does
oh
then why is first there
i guess redundancy is ok
@Maltysen readability?
01:04
unless he removed it
@Maltysen done already lol
@totallyhuman do u have search?
@Maltysen I'm assuming (hoping) it's a subclass of list
@TuxCopter can you french help please :3 chat.stackexchange.com/rooms/43239/le-dix-neuvieme-byte
@StepHen no i mean in the entire diretory
@totallyhuman oh this is pretty nice
@ASCII-only do we want lowercase library or uppercase library? e.g. import Goat or import goat
01:29
@Downgoat Uppercase since they should be classes
ok good idea
-request for Proton?
o I thought of cool easy hack for dicts in Proton being the traditional non weird :> thingy
so I think that it should be possible to create a super cover triangle drawing algorithm by modifying the algorithm little bit
making the increments by 1/2 should work
01:48
Anyone here up for a game of contact?
(cc @ASCII-only) Done making {a:b,c:d} work :D it's a weird hack but it works nicely for people using it. should I keep the derpy old version?
@Downgoat what's that?
@HyperNeutrino Don't keep the old version, it's a waste of an operator D:
ok :D
then I'll need to modify part of my interpreter I think
oh wait no I won't
but the way it works is hacky; it takes that particular syntax and reforms its structure to make the interpreter think it's the old version
the interpreter can't tell the difference ¯\_(ツ)_/¯ :D
old version commented out ¯\_(ツ)_/¯
@HyperNeutrino :||||||||||||||||||||||||||||||||||||||||||||||||||||||
01:58
sorry if it bothers you :P
@HyperNeutrino D: HOW COULD YOU
your parser is so unreadable :'(
:(
the whole thing is impossible to read
and my tokenizer is like regex hell
@HyperNeutrino you should learn and use a PEG parser instead of writing your own logic from scratch, it makes your logic a lot easier to follow and it's typically easier to implement and maintain
yeah I really do need to learn more instead of trying to reinvent the wheel :I
@HyperNeutrino D: why
02:05
@ASCII-only hey it's easy to understand for me
<- uses a LL parser with backtracking
i.e. insanely slow
but hey, it works really well
@PatrickRoberts why PEG though
@ASCII-only well, quite frankly, that's the only kind I have personal experience with, didn't even know there were other common ones xD
do you have any feature requests @ASCII-only ? :P
You even have parser generators :P e.g. Bison/PyBison
@HyperNeutrino uhh function chaining maybe
can you give an example of what it should look like?
02:08
pegjs.org/online I used this library to rewrite the compiler for my complex math library
@HyperNeutrino ???
@HyperNeutrino Just use Charcoal's :P
Charcoal has support for Wolfram language? o.o
@PatrickRoberts Very very very basic support
That's still kinda cool
As in some string operations and Pi/E only :| full extent can be seen here
02:12
@ASCII-only no like an example of what a function chain should look like
but that parser looks sooooooooooo much nicer than mine :D must learn sometime
@ASCII-only so something like f1 -> f2 -> f3?
that is quite a bit longer than the actual rules part of my parser but much easier to read and significantly shorter per line :P
clicks link
sees wall of text
02:16
At least it's an organized wall of text :|
Actually I take it back, that is a compiler, not just a parser.
f = head(3) + tail(2)
print(f([1, 2, 3, 4, 5]))
@ASCII-only Is that similar to what you were thinking?
@HyperNeutrino what
wat
wut
I take that as a no
:P
@HyperNeutrino what?
Lemme show you what my old compiler looked like before I discovered peg.js. Now THAT was a mess
02:22
@HyperNeutrino for function chaining?
yeah. f means given input, take the first 3 elements, then take the last two elements
well kinda
I can make it | instead of + if you want
github.com/patrickroberts/complex-js/blob/… I shudder just looking at how I used to code
ouch that almost looks like something I would make
I think it's slightly nicer still tho :I :P
02:27
My solution for maybelater was to write my own parser
@PatrickRoberts ew js
@ATaco even that's way better than my own parser
(line 224:)
God, no wonder Code Review hates us
02:29
PatternMatcher([('expression', lambda x: 'literal' not in x), (lambda x: 'bracket_expr' in x and 'bracket' in x,)], lambda x, y: ASTNode(lexer.Token('call/expression', ''), [x] + (y.children[0].children if y.children and y.children[0].token.type == 'comma' else y.children))),
that's one line
why can't you use linebreaks
I'm sorry it makes sense to me k
it might make sense but it makes me scroll to the right
The thing that actually parses it looks like something out of a horror film, but it's nice and clean in defining what to parse.
it wraps in chat twice
it's an (expression that isn't a literal) followed by a (bracketed expression) which becomes a (call) which is an (expression) and it will move the function into the first slot and the rest of the things into the next slots, splatting any comma expressions
02:30
@HyperNeutrino PEP8 is very disappointed in you
a lot of things are disappointed in me
3
LOL who cares about PEP in Code Golf?
var dat = fs.readFileSync(path + "tokens.js", ()=>{})

var tokens = eval(dat.toString())
A cat wearing sunglasses, a fish that equals its own reverse, and an entire official standard are all disappointed in me
And I simultaneously make every NodeJS user cry.
02:31
@PatrickRoberts :( don't encourage CR to come here
anyway gtg now o/
o/
@ATaco cries that's not dat
@ATaco also dies is doing a require that hard
The later version of the tokenzier uses an actual require.
var v = getVar(scope, dat[0][1][0][1][0][1]);
var ind = parseExpression(dat[0][1][1][1][1],scope);
var val = parseExpression(dat[2],scope);
try{
  v[ind] = val;
}catch(e){}
I heard you like indexing
@ATaco that second argument doesn't even make sense. The Sync methods don't require a callback, you'd normally put an options object or an encoding there.
02:34
Sync methods can take a callback, and if you don't provide one, Node throws a warning at you.
@ATaco what.
It also surpresses errors.
@ATaco Uh they don't
Well that's interesting.
02:36
I dare you to find any version of the Node.js docs that support that claim, because it's BS
@ATaco ... why would a sync method accept a callback
@ASCII-only because tacos
I'm sure it was something ;-;
Why is fdatasync an async method..?
Oh, because datasync is the method, fdatasyncSync is the sync version.
That's not confusing at all
I agree, that's a poor naming convention
But you're right, I've no idea why I was under the impression that was the case.
02:51
A Taco's Epiphany, brought to you by Late-Night Hacking.
OK, here's my swap ToS lambda, and I'm sure it's stupid:
lambda: (lambda x=stack.pop(): stack.extend((x, stack.pop())))()
what am I missing?
first of all why is it stack.extend and not stack.push :P
What is a Terms of Service lambda?
02:52
Top of Stack
oh, derp.
@totallyhuman because it's a python list
@StepHen first: stack.pop() is evaluated at definition time
@ASCII-only I know that's why it's a nested lambda
second: why push two different values
if you want to duplicate
02:53
sorry I mistyped
that swaps the last two
so which do you want?
duplicate or swap?
it's supposed to swap stack[-1] and stack[-2]
duplicate is easy
@StepHen How is it broken
also v.im is up for the taking apparently
@ASCII-only it works fine, it just seems long or stupid
02:54
@StepHen try stack.insert(stack.pop(), -1) maybe
Couldn't you just do smth like [stack[-1], stack[-2]] = [stack[-2], stack[-1]]?
@ASCII-only yeah that would work better, thanks :)
'⇆': # switch last two items
lambda stacks, stk_no, stack: stack.push(stack.pop(-1)),
@PatrickRoberts nope you can't do assignment in a lambda
oh, I don't know Python, so.
02:55
otherwise yes, that's the "clear" way to do it
@StepHen list.pop takes an argument
and this is why I asked you guys, I know I was taking the long way, thanks @ASCII-only @totallyhuman
@totallyhuman *append
@ASCII-only nuh uh i haz custom stack implementation
@ASCII-only he's copying it from his source, so it's push for him I think
02:56
also :/ forgot the better way
@totallyhuman why.
because lists are not designed to be stacks :P
@totallyhuman uh... yes they are
you can use them, but when i use the term push, i'd like to call the function called push
not append :P
@totallyhuman so does your custom implementation just extend list to alias push to append, or does it do more than that? :P

« first day (2392 days earlier)      last day (2746 days later) »