« first day (290 days earlier)      last day (439 days later) » 
00:00 - 19:0019:00 - 00:00

00:06
@user I am not a township in New Jersey
At anyone or anything
00:42
So, I'm trying to write a custom sync/backup tool for my laptop and desktop
So that I can just run a command and sync them up, and work on a project on whichever device I feel like
And Docker is trying to kill me
I want to use OverlayFS for incremental backups/syncing
So I have a known stable point, and whenever I sync one computer to the server, it creates a directory containing only the changes to the filesystem, so that once I sync the other computer the system can negotiate how to merge the changes
But if I have Docker files on my computer, since Docker uses OverlayFS too, it would break things since you can't put an OverlayFS filesystem inside an OverlayFS filesystem due to some weirdness with how they work
(If I ever become a billionaire and make that OS, a filesystem that natively supports (potentially nested) overlays/unions will be a part of it)
@RydwolfPrograms noice
why not git
I guess what I'm gonna have to do is just special case any directories containing block/character devices
@Seggan Git makes no promises about maintaining the integrity of your files in edge cases
Empty directories get removed, for example
and? just create them again
I don't want to imagine how it'd handle block devices, unusual permissions, or xattrs
@Seggan That rather defeats the point of a backup tool
true
00:48
And also, I don't want things silently breaking all the time
i still use git
It would probably work fine for backing up like, code and documents
which is what ure doing, no?
No, this is for the full disk
Well, the backup side of things
I'll only be syncing (mostly) code and documents, but if some weird stuff slips into my homedir I don't want it breaking everything
Like I've got some dumps of overlay filesystems which contain whiteouts in my laptop's Linux homedir
01:17
@RydwolfPrograms Are you sure such a thing doesn't already exist, with all the features you want?
There must be such tools for sysadmins and stuff
Maybe, but I haven't found anything good enough and it's pretty easy to get what I want working
01:54
presenting: the Light Emitting Resistor
02:05
lmao
02:45
@Ginger How lol
Looks like your resistor got promoted to a diode
02:59
@Ginger aw, I thought this was an original joke
One consideration: the best option I have for the server to host these backups on is rto_wolf...which has pretty limited storage space and also will be hosting untrusted code (which shouldn't be able to break out, but if it does, maybe it shouldn't have access to my files :p)
Ooh unrelated but I just had a great idea
I should make a bootable thumb drive that, on a fresh Fedora install, will go through all of the steps necessary to install RTO
So if I ever need to start from a clean slate or someone else wants to spin up an instance, there'd be no mucking around with trying to get it running
I guess I could just run this on my droplet
Given that what I'll be backing up will mostly be code and screenshots and stuff, so it won't be more than a few gigabytes
03:32
@RydwolfPrograms there’s tons of software out there to sorta automate installation
Ansible, puppet, chef
Yeah but this isn't like, setting up some software on a computer
This is setting up the whole computer and OS specifically for RTO
03:56
It would also be taking care of things like the SSH config
04:06
@RydwolfPrograms Thought you could use Ansible for that
I guess making your own tool would be more fun anyway
> No matter your role, or what your automation goals are, Ansible can help you demonstrate value, connect teams, and deliver efficiencies for your organization. Built on open source, Red Hat® Ansible® Automation Platform is a hardened, tested subscription product that offers full life cycle support for organizations. Explore how Ansible can help you automate today—and scale for the future.
Pure nonsense
I hate marketing speak like this
Everyone does it
No one takes it seriously anyway
I sure do love demonstrating value
04:08
> deliver efficiencies
Would you like one efficiency or two efficiencies with that image, sir?
Can I have an extra efficiency with my soup please
Also how does a software installation automation tool "connect teams" lol
Helps teams share a common config?
I guess lol
Or perhaps they have actual ansibles so teams can communicate instantly
@RydwolfPrograms i'm disappointed this is only 5 hits on the reveal bullshit bookmarklet
04:10
Ooh, what's that?
I need a bookmarklet like that
javascript:(function(){var d=document,s=d.createElement('script');s.crossOrigin='anonymous';s.src='https://unpkg.com/@mourner/[email protected]/bullshit.js';d.body.appendChild(s);}())
thx
forget where i found it
I love this
it's beautiful
04:31
omg the bullshit detector script
i know that's where it's from; i forget how i found out about it
i found it on ycombinator.
i don't really use that but i might have found it in a thread there someone linked here
 
7 hours later…
12:01
@RydwolfPrograms imagine :p
 
1 hour later…
13:27
me when VSCode says my application running on port 8069 is available
14:13
Just wait until you hear about port 6969
Which apparently is used for "acmsoda" and was reserved by a Daniel Simms
what
That's what the port's officially registered for lol
I... didn't know there was an Official Port Registry
Every port has an official use case (aside from some reserved/unallocated ones)
Technically you're supposed to reserve ports for everything you use them for
But since nobody's going around running acmsoda on their server or whatever, people just use whatever port they feel like
It's a mess, we really need 32-bit port numbers and a PUA
@Seggan how should I do operators in ANTLR? Rabbit uses infix functions instead of defining plus, minus, etc. in the grammar file
14:21
I would hope that syntactically things parse identically regardless of what has and hasn't been defined as an infix op
Since if that wasn't the case A) you'd need to parse your code twice and B) a library could change how your code gets parsed
But that creates the issue of order of evaluation
Because we live in a society :(
@RydwolfPrograms yes, of course, but I'm not sure how to define that in my grammar file (or more accurately I'm worried that the way I'd do it is wrong, because I've never used this tool before)
also, how does order of evaluation work here?
Yeah that's the issue with custom infix ops
I wonder how Kotlin does it
I assume they'd all have identical selectiveness, or maybe two different levels you can choose between
evaluating them from left to right makes sense, but what about the mathematical operators, which everyone expects to have a set priority? Should in be an infix function?
14:25
Problem is that it would have to be operator-wide, the class can't choose or else two classes could define an operator with two different precedences
@Ginger What I'm suggesting is to give every custom op a precedence either tighter or looser than all the arithmetic stuff
but I want to define the arithmetic stuff as infix ops on basic types!
You'll need to special case them in the parser
so if you want to define a custom + you just override the function instead of fooling around with __add__ and such
@RydwolfPrograms >:(
I'd suggest also having a string pattern that can be used in your operator names which gives it a precedence comparable to boolean operators
@RydwolfPrograms wdym?
14:27
So that you can define things like a nor or xor operator
You'd need it to be determinable at tokenization-time whether it's a tight or loose custom op tho, so I'd suggest using capitalization or something to differentiate them
I'm still confused
E.g., tight custom ops are lowercase ("abcd" slice 2) and loose custom ops are capitalized (1 == 2 Nor x < y or 1 == x XOR 2 < y)
I'm not sure what "tight" and "loose" mean here
Tight is tighter precedence, loose is loose precedence. + is looser than *
Since * takes things closer to it than +
(It's way easier for me to remember than high/low precedence)
okay, I can basically do whatever I want at tokenization time so I can just add a keyword for precedence
14:30
No you can't
how dare you tell me what I can and cannot do
What if Foo declares nor as tight and Bar declares it as loose
how is that an issue? it'd depend on whose nor is being called
it'd be bad practice, but not an issue
And you don't know that until after you've parsed the code
And it's ambiguous anyway
x + y nor z
I do in fact know that: the left-hand class is the one whose function is being called
14:31
Is that x + (y nor z) or (x + y) nor z?
@RydwolfPrograms that'd be x.plus(y.nor(z)) with default precedence
If x and x + y are different types, and x's type declares nor as one precedence and x + y declares it as a second, it's ambiguous
@Ginger But I'm saying there should be a second precdence and you're suggesting that as a keyword
In that second precedence that would be x.plus(y).nor(z)
You need to know every operator's precedence class based purely on its name
🤮
I am not doing that
I suppose in theory you could pre-parse the code and ignore every non-class-defintion statement, and throw an error if there's conflicting operator precedences within the same scope, but that could cause all sorts of weirdness and slows your interpreter down
I would suggest just having a single precedence for custom ops
if you don't like the different-capitalization option
I'm still not sure why I can't handle this in tokenization, seeing as I can basically do whatever I want while turning the parse tree into a set of nodes
...oh, right
yeah I see what you mean :/
it looks like Kotlin has predefined precedence for symbolic operators
14:38
If this was my language I'd do a trichotomy based on capitalization
I'm going to do the Kotlin thing, at least for now, because it's the simplest option
nor for tighter-than-arithmetic, Nor for tighter-than-boolean, and NOR for looser-than-boolean
the downside of that is that you can't define custom symbolic operators, but ah well, who was going to define a <:-:> operator anyway q:
(besides you Radvylf)
That's probably a requirement
Otherwise you'd run into ambiguous cases almost instantly
Like if someone defines a ++ operator, now a++b (a plus unary positive b) is ambiguous
But since the parser always has to be able to handle ++ existing since it doesn't know if it does yet, a++b is always ambiguous no matter what
ok, so there will be a fixed and overridable set of custom symbolic operators, and you can define custom named operators which will all have the same (left-to-right) precedence
14:41
And same goes for literally any symbol-infix-symbol-prefix-unary pair
 
2 hours later…
17:04
Well I am donating blood
Currently
not sure how you're using TNB while doing so :p
Only need one arm for bleeding and one arm for typing :p
I don't think I was designed to lose a pint of blood in 20m lol
Also wtf apple:
I know I'm an MCR fan but...
I'm not all gottik and deprezzd
17:21
> I don't think I was dead
17:36
@Ginger left associative, but thatd break math
the other way to do it is since antlr rules can be self-left-recursive
check rols grammar
17:54
@Seggan now Kotlin is unhappy about me trying to access a property in an ANTLR context
it says ctx.prefixOp is an unresolved reference
Well I have survived :p
I don't think I was dead
good job
I'm just baaarely above the 110 pounds minimum limit and I was apparently pretty dehydrated (despite drinking a whole water bottle of water before donating), so I felt preeetty bad afterward
I'm talking like, crazy lightheaded and arm-fell-asleep across my whole body (which I'm pretty sure I was supposed to tell them about but I'm good now so meh :p)
Probably the first time I've ever been truly thankful to be given a grape juice box lol
weirdly, it also says ctx.location is an unresolved reference
something sus is going on
@Ginger have you run generateGrammarSource?
@Ginger well...
17:59
wait no lol
@Seggan yes I have
me when
lemme just yoink that
ure totally not gonna break the license, are you
uhhhhhhhhhhhhhhhhhh
dw, i give you full permission to use it (as long as u attribute it)
18:00
there was a license?
ok lol
you'll probably have to remind me about that once I release Rabbit
Well if there wasn't a license it'd be even worse lol
Since it'd be copyright infringement no matter what
yeah without license is all rights reserved
Licenses are whitelists not blacklists
ok I added the code and regenerated the sources
error did not go away
18:02
is it a vscode error or a gradle compile error
> Unresolved reference: location kotlin(UNRESOLVED_REFERENCE)
I'd hope as a modern language Kotlin provides more information than that in its error messages lol
it does
@RydwolfPrograms that's all it gave me
thats a very weird error message
nvm
you havent imported location
@RydwolfPrograms its just a weird format. can be rewritten as Kotlin (UNRESOLVED_REFERENCE) Unresolved reference: location
18:06
added import community.rto.ginger.rabbit.tree.common.Location to the visitor file, error is still there
Yeah but like...if I do the same thing in Rust, it gives me way more information and stuff
error[E0412]: cannot find type `RiprState` in this scope
   --> src/cipr.rs:140:12
    |
8   | struct CiprState {
    | ---------------- similarly named struct `CiprState` defined here
...
140 | type Xyz = RiprState;
    |            ^^^^^^^^^ help: a struct with a similar name exists: `CiprState`
    |
hey guys
I have an issue
also it's still yelling about prefixOp
@AiraThunberg don't we all
I want to query that if I start a bounty
will it impact my leaderboard stat?
18:07
@Ginger try doing prefixOp()
@AiraThunberg Like in the rep leaderboards?
cz I am really going high in the weekly, yes
@RydwolfPrograms kotlin is a lot more dependent on ides for error highlighting and stuff
@Seggan didn't fix it
I believe so, but nobody pays much attention to the rep leaderboards. I started a bounty this week, lemme check if it changed my spot
18:08
@Ginger did you make sure the visitor is taking a non nullable parameter
can i see the code
I don't think bounties change your place
@RydwolfPrograms well, I do, I am showing this of, a show-of girl at school
you sure mate, 0_0
override fun visitExpression(ctx: RabbitParser.ExpressionContext): UntypedExpression {
        return when {
            ctx.atom() != null -> this.visitAtom(ctx.atom())
            ctx.prefixOp() != null ->
                    UntypedPrefixExpression(
                            this.visitExpression(ctx.expression(0)),
                            PrefixExpressionType.fromSymbol(ctx.prefixOp().text),
                            ctx.location
                    )
            else -> throw AssertionError("?!")
@Seggan ^
18:09
the errors are on both occurrences of ctx.prefixOp, as well as ctx.location
sikww
bruu
._.
@Ginger you havent imported the location prop
as i said before
What were you going to bounty? I can put the bounty up for you if you want
@Ginger whats the grammar for the expression
18:10
@Seggan fixed that, I typed Location instead of location :|
good
expression
	: atom
	| expression NEWLINE* DOT NEWLINE* expression
	| expression NEWLINE* LPAREN NEWLINE* (
		args += expression (
			NEWLINE* COMMA NEWLINE* args += expression
		)*
	)? NEWLINE* RPAREN
	| prefixOp=NOT expression
	| expression NEWLINE* op=(ASTERISK | SLASH | MODULO) NEWLINE* expression
	| expression NEWLINE* op=(PLUS | MINUS) NEWLINE* expression
	| expression NEWLINE* op=(LESSTHAN | GREATERTHAN | LESSEQUAL | GREATEREQUAL) NEWLINE* expression
	| expression NEWLINE* op=AND NEWLINE* expression
@Seggan ^
no thanks so much @RydwolfPrograms
I heartedly appreciate your words though
@Ginger can you find the generated parser by any chance
the files ANTLR made from that? sure, easy
18:12
yeah check if theres a prefixOp field in it, and make sure the package is what you expect
the ExpressionContext definition starts with:
public static class ExpressionContext extends ParserRuleContext {
    public Token prefixOp;
    public Token op;
    public Token customOp;
mhm
that checks out
anyone good at math here?
package is correct
@AiraThunberg Depends, how good :p
18:14
@Ginger last thing: try deleting the build folder and regenerating the grammar sources
XD, I started a bounty on a question in Math SE :P
it is like 100 points, all my life earning there
you might check it out
0
Q: Bumping Series and its Formula

Aira ThunbergI was thinking of random series, popping up in mind, when I thought of one possible series in my head. It is as follows: The basic idea is, take a line of natural numbers $\mathbb{N}$ which goes till infinity, and add them. One visible thing here is that the most maximum highest number $\mathbb{...

though it was difficult before, Neil made an algorithm to solve it, the answer here must be mathematical representation of his algorithm
@Seggan well, the original 2 errors are gone, but now there are 10 new errors because Kotlin can't find the generated parser files :b
did you regenerate them :P
yes
hrm i probably skipped smth by accident in the build config
18:18
One thing that might help is finding a formula for the diagonals. If you can figure out a formula for going up the diagonals and down the antidiagonals, you just need to switch between those periodically
nope, nothing i skipped
I am really dumb :]
It seems that each diagonal is the previous diagonal plus the powers of two
@Ginger try closing and reopening the files in vscode
wait, lemme open the question
every diagonal has a different formula?
18:20
im assuming all the errors are from the vscode linter and not the gradle build?
@Seggan yeah, gradle seems fine
@Seggan restarted VSCode, errors are still there
Like if you look at 1,3,8,20,48 then 2,5,12,28, which are adjacent diagonals, the second one is the first one plus the powers of two
hrm
then vscode is bad with generated code :P
1 + 1 = 2
3 + 2 = 5
8 + 4 = 12
20 + 8 = 28
48 + 16 = 64
use intellij
18:22
bruu, I am real dumb, I literally copy my friends homework and cheat in exams
the language server output is full of cryptic, unhelpful errors :/
2 mins ago, by Seggan
use intellij
can you run tree for me again
@RydwolfPrograms thanks, I feel i got what you said, but still confusing of how it will help in those bumps
18:24
wait one sec
also have you tried importing it as a gradle project if vscode has that option
@AiraThunberg Well, if during the part where you're going upward you remember which numbers you're passing, you can add specific multiples of powers of two to find the numbers on the downhill part
I just did a full build and restarted the language server
let's see if it works now
@RydwolfPrograms which feels like it might be part of a solution, if not a solution itself
THAT FIXED IT
:D
18:26
yay
apparently all I had to do was delete and remake the build dir
12 mins ago, by Seggan
@Ginger last thing: try deleting the build folder and regenerating the grammar sources
classic jvm
Another approach might be trying to find a closed form formula for the triangle, and then a closed form formula for the bumping
I literally am so dumb, all questions I have even posted here are the inventions of my boy friend :/
I fail in math grr
like, I have never posted a question here on my own even, I take foreign help
18:28
huh???
Idk, I think the fact that you're coming up with sequences and trying to reason about them shows that you have the sort of mathematical curiosity that matters way more than whether you're naturally "good" at it :)
@RydwolfPrograms if nothing else works, just prove it with induction
@mathcat [classic] *vscode
the sequence is not even mine, my bf named it AG Series in his book here amazon.com/dp/… and I insisted to rename it to bumping series
glad he allowed it
btw, wierd, its not even in OEIS :(
The OEIS tends to contain series' people come across while doing more practical stuff
18:31
so, it is not suitable for OEIS?
You can probably find both the triangle's contents and the bumping itself as separate sequences on there
Speaking of maths, believe it or not, I blew my chances of qualifying for a national-wide competition.
I am sure, the bumping is not there
trust me, my friend might be the best mathematician in his country if he did not crank his research
like, he likes naming his findings on people
@mathcat I messed up the second question (out of three) and two other nerds got it right :/
so yeah
"AG Series" what he called it was nickname of his teacher "AG", I really begged him hours to name it Bumping Series
he even named a basic Biology formula after someone here
otherwise, he was gonna be a famous mathematician :/ in short, I wish he stops cranking
18:40
Ooh interesting, the indices of the bumping in the triangle, ignoring the actual value of the triangle's contents, isn't in the OEIS either
Here's some code to generate it
var rc_to_i = (r, c) => r * (r - 1) / 2 + c;

function* bumping_indices() {
    var r = 1;

    for (var k, i = 2;; i++) {
        for (k = 1; k < i; k++)
            yield rc_to_i(r++, k);
        for (k = i; k > 1; k--)
            yield rc_to_i(r++, k);
    }
}
wait, why you don't post it to my question?
This is just part of a solution
It generates the coordinates within the triangle of the bumping motion
5
Q: Bumping Series Implementation

Aira ThunbergI have a follow-up question here from my previous question on Math SE. I am lazy enough to explain the content again, so I have used a paraphraser to explain it below: I was considering arbitrary series, springing up as a top priority, when I considered one potential series in my mind. It is as p...

here
it asks to write code that make the series
Oh neat. I can try that challenge later
I gotta do some school stuff tho
sure!
don't tell me that we all are nine graders :\
18:43
11th here (US system tho, not sure if that's different from the German one)
I am in Belgium :D
Oh right sorry lol
We have same system almost, we are offered a Fleimish Secondary Certificate in Class 12
@AiraThunberg Hey, I live next door
just do not say you are the cat next door, cz my aunt has a cat
and it's wierd she is on a social platform
18:45
I have existed since the beginning of time
Does your aunt's cat do math? :p
maybe? if the above claim is genuine :P
If she does, I might not have detentions in Class 5 for exposing exam to school
leak*
@mathcat i once did the natgeo geography competition, and i nearly qualified for state had i not mixed up east and west
@AiraThunberg whoa there, that kinda language is only appropriate in a Serious Screenplay
@Seggan oof, sadge
18:48
@Ginger verdorie, mijn engels :/
huh?
granted, it's pretty easy to qualify for the state round in the maths comp I'm talking about
my english sucks XD
@mathcat you need to practice a lot tho
oh, don't worry about it
it was a reference to a certain book series
18:48
@mathcat dutch speaker?
@Ginger you talking about that book?
I'm not even a german native speaker lol, I just live in germany.
@Seggan how tf does Rol handle function calls?
like I am real sad, he is wasting his talent
@AiraThunberg Your English is pretty good IMO :p
@mathcat ooh, i thought you dutch
@RydwolfPrograms I barely learnt it in class 5 :P
imagine learning a,b,c in Class 5
18:50
as far as I can tell if the visitor sees an RPAREN while processing an expression rule it just interprets the contents as an expression, but your grammar file only has RPAREN in the expression rule in the context of a function call
ig nice job @Seggan and @Ginger ?
I kinda like the repo
oh that was made by Seggan, I'm just using part of it for my own project
slay seggan XD
copy cat above me
oh wait, I'm stupid
@Seggan nevermind lol
00:00 - 19:0019:00 - 00:00

« first day (290 days earlier)      last day (439 days later) »