<kmath_>
<ACLU> We knew our supporters were hardcore, but we didn't know they would EAT A TARANTULA for us. https://t.co/DNqjYN6HD3
Lyneira has joined #kspunofficial
egg|laptop|egg has quit [Ping timeout: 180 seconds]
egg|laptop|egg has joined #kspunofficial
egg|laptop|egg has quit [Ping timeout: 180 seconds]
egg|laptop|egg has joined #kspunofficial
<egg|laptop|egg>
!seen thomas
<Qboid>
egg|laptop|egg: I last saw Thomas on [05.03.2017 17:34:54] in #kspunofficial saying: "I will delete them from the db :P"
egg|zzz|egg is now known as egg
<egg>
huh, anything but ',' and ' ' are allowed in a channel name
egg|laptop|egg has quit [Ping timeout: 180 seconds]
Tank2333_mobil2 has joined #kspunofficial
Tank2333_phone has joined #kspunofficial
Tank2333_mobil2 has quit [Read error: Connection reset by peer]
Tank2333_phone has quit [Read error: Connection reset by peer]
<Iskierka>
what about a null?
<egg>
Iskierka: as far as printing chars go that is
<egg>
not sure about null, esc isn't allowed by the RFC, but I think esper prevented me from creating BEL
<egg>
yeah, it answered * # :Illegal channel name
<egg>
!join #
<Qboid>
egg: I have joined #!
<egg>
that doesn't appear to have worked though
<egg>
from Qboid's whois
<egg>
Iskierka: I mean, I am in some pretty stupidly named channel, including one that was formed by NK keyboard mashing the number row with shift in lieu of swearing
<egg>
Iskierka: but control chars is something else entirely
<egg>
gosh the ownership relations with principia's pile ups are a mess
<egg>
Iskierka: wheee Fourier transforms
<egg>
that reminds me, I need to do that to Bop sometime
<egg>
UmbralRaptor: any thoughts on the matter btw?
<Thomas>
What have you done to wpn
<Thomas>
!wpn
<egg>
Thomas: oooh
<egg>
the logger
<egg>
it is borked by that channel
<egg>
Thomas: the <> in the channel name broke it
<Thomas>
Also would it be possible to stop joining Qboid in random channels?
<egg>
Thomas: well :-p
<egg>
Thomas: arguably that's relevant to the current bug
<egg>
Thomas: if it works for #`-=\[];'./~{}:"<>!@#$%^&*()_+|? and remains link-compatible, we have pretty much won I think :-p
<Thomas>
BUT A WORKING QBOID IS A BIT MORE RELEVANT
<Thomas>
</rant>
<Thomas>
:P
<egg>
true
<egg>
Thomas: but IIRC it keeps logging when I kill it like that?
<Thomas>
Yes
<Thomas>
You only kill the botsoftware that is based on CrapSharp
<Thomas>
The new name of ChatSharp
<egg>
hahaha
<egg>
Thomas: actually it's not the <> that kills it, that's just where the line breaks
<egg>
not sure what exactly kills it in there
<egg>
there are a lot of fun characters
<Thomas>
{
<Thomas>
"name": "#\u0007",
<Thomas>
"password": "",
<Thomas>
"serious": true,
<Thomas>
"secret": false
<Thomas>
},
<Thomas>
waaaa
<egg>
oh yes I tried that
<egg>
but esper doesn't like it :D
<egg>
so let's happily ignore control chars for now
<Thomas>
Next time you want to test something, ask me to sping up a cloneboid
<Thomas>
*spin
<egg>
ok :-p
* Thomas
cannot into typing
<Thomas>
Or make one yourself, its all on github :P
<egg>
Thomas: does it rely on being on notwindows though
<UmbralRaptor>
checkpoint2!
<egg>
I mean, whitequark's thing certainly does
<Thomas>
egg: No
<egg>
so if I want to poke at issues in the logger I need to use Qboid
<egg>
(or at least something you run)
Lyneira has joined #kspunofficial
<Thomas>
If you see a QIRC-Bot in #bottorture, thats my windows testing version :P
<egg>
Thomas: anyway, questions of the day: what's up with #`-=\[];'./~{}:"<>!@#$%^&*()_+|? and what is your opinion on escapes from whitequark/irclogger#22
<Thomas>
Hmm, I still think unicode hacks are ugly
<Thomas>
They are funny, but ugly
<Thomas>
A better idea would be to generate a hash (or base64) from the channelname and to use that
<egg>
Thomas: but clearly they want something human-readable
<egg>
(otherwise percent-encoding would be fine)
<Thomas>
GET Parameters with & escaping
<egg>
so that's an option, but there's actually quite a bit that you must escape
<egg>
because it already uses query params
<egg>
in the search form
<egg>
and it's a html form
<egg>
so you have to escape just about everything
<Thomas>
Yeah
<egg>
with percents >_>
<egg>
and so you're back to square one
<Thomas>
Screw URLs and use Javascript ;P
<egg>
,1 through ,0 for ! through ) ?
<egg>
not sure what that leaves us with for the other characters
<egg>
Thomas: any idea what's wrong with #`-=\[];'./~{}:"<>!@#$%^&*()_+|? apart from the fact that it's a stupid channel name?
<Thomas>
Logs show nothing
<Thomas>
lets see if znc has logs
<egg>
I would have thought that your percent-encoded implementation would work for that
<Thomas>
Well, if I am fully honest: I dont really want to fix this on my own...
<Thomas>
Or rather: If I am fixing this, I want to fix it my way :P
<egg>
Thomas: yeah, but keeping old links alive matters
<egg>
Thomas: what characters need to be escaped
<egg>
- and _ are fine
<egg>
there's a mess around . because of compatibility, but let's forget about that for a second
<Thomas>
egg: / and #
<egg>
those two absolutely
<Thomas>
? and = probably too
<egg>
Thomas: but there are many others that get percent-escaped if I type them
<Thomas>
& too
<egg>
and %
<egg>
absolutely %
<Thomas>
So basically what CGI.escape does
<egg>
:D
<Thomas>
Unicode gets %-ified too bzw
<Thomas>
*btw
<egg>
yeah, that's where I'm not sure I understand whitequark: I guess decent browsers will display unicode as such in the address bar, but not %2F as / for obvious reasons
<Thomas>
They will
<egg>
right
<egg>
but then if you copy from the address bar, they will percent-escape
<Thomas>
the webframework does automated unescaping, and I am unescaping again
<Thomas>
It works on whitequarks logger
<egg>
aaaaa
<egg>
so, things that work (even though maybe depending on the RFC you read they shouldn't) include ,=;$@&
<egg>
also ~
<egg>
blarg, why can channels contain so many things :-p
<Thomas>
Well, the escaping should work for all chars that cant be in an url
<egg>
Thomas: but I think percent-encoding is still the sanest option, because if I type e.g. ` or | or < or > in that address bar it will get encoded that way
<Thomas>
Yes
<egg>
so unless you have specifically / ? or # that's clearly what you should do
<Thomas>
And for channels with multiple #, percent encoding the # would be the sanest way too
<egg>
Thomas: yes but that's not fundamentally an issue
<egg>
#..foo could be a redirect to the logs of ###foo, and say #,,foo for those of #..foo
<egg>
and sure it's a bit shitty, but that wouldn't be too bad as far as "historical reasons" hacks go
<egg>
Thomas: where of course if you percent-encode the # you also get to the right place
<egg>
(like currently happens on your server)
<egg>
now something must be done for your +
<egg>
Thomas: ok that's an even stronger argument for percent encoding, *it's already decoded that way as is*
Qboid has joined #kspunofficial
<egg>
ah nevermind it's back
<egg>
whee with logs
<Thomas>
Now it should work
<egg>
yup
* egg
goes back to stabbing ksp
<egg>
!wpn
* Qboid
gives egg a graviton bicyclops
<egg>
with this ^
egg is now known as egg|principia|egg
<egg|principia|egg>
stab
<egg|principia|egg>
Thomas: btw, !acr -list appears to be broken
<Thomas>
!acr -list
<Qboid>
Thomas: I will send you a list of my acronyms!
<Qboid>
Thomas: Default constructor not found for type System.String
<egg|principia|egg>
but somehow it does find the logs
<egg|principia|egg>
something stripped that part of the channel name (but it was actually logged in the channel with |?)
<Thomas>
Actually that is an issue in the database
<Thomas>
It is there without |?
<egg|principia|egg>
aber warum
<Thomas>
no idea
GreeningGalaxy has joined #kspunofficial
<Iskierka>
best anime. best.
* Pinkbeast
revolutionises the world
<Iskierka>
isn't it always revolutioning?
<Pinkbeast>
I think the revolution proposed in _Utena_ was more drastic
<Iskierka>
protag and lady love interest (clearly best) are in a shipping war
<Iskierka>
and the guys are trying to reconcile them. finally they start to understand what's best
GreeningGalaxy has quit [Quit: SIGNAL LOST]
<egg|principia|egg>
Thomas: I guess what we could do is avoid unnecessary encoding: e.g. KSPD&D works, so turning it into KSPD%26D reduces readability for no real reason
<egg|principia|egg>
Thomas: those that work if included in the URI *and* don't get auto-escaped by the browser if I type them in are -=[];'.~:"<>!@$&*()_+
<egg|principia|egg>
Thomas: so there's no real need to %-escape those
<egg|principia|egg>
erm
<egg|principia|egg>
drop the <> from that list
<Thomas>
Hm?
<Iskierka>
#-=[];'.~:"<>!@$&*()_+
<Iskierka>
<> aren't valid parts of channel names it seems
<egg|principia|egg>
Iskierka: yes it is
<egg|principia|egg>
not nicks
<egg|principia|egg>
but channels it's fine
<Thomas>
Iskierka: Whois egg
<egg|principia|egg>
I'm in a channel with <>
<Thomas>
Hes in #`-=\[];'./~{}:"<>!@#$%^&*()_+|?
<Iskierka>
hexchat doesn't believe they should be as it cancels the chaneel name
<egg|principia|egg>
it works in my hexchat
<Thomas>
So, ? / and # need to be escaped?
<egg|principia|egg>
Thomas: those absolutely, others too
<egg|principia|egg>
%
<egg|principia|egg>
\
<Thomas>
Why \
<egg|principia|egg>
because it gets turned to / :D
<Thomas>
Meh
<Thomas>
Good :P
<egg|principia|egg>
Thomas: I can tell you what doesn't need to be escaped
<egg|principia|egg>
faster :-p
<Thomas>
For you
<egg|principia|egg>
heh
<egg|principia|egg>
-=[];'.~:"!@$&*()_+
<egg|principia|egg>
(no I am not swearing :-p)
<egg|principia|egg>
Thomas: there are those where I'm not sure
<egg|principia|egg>
because I can't type them in an URI, the browser escapes for me
<Thomas>
Like `
<egg|principia|egg>
<>|
<Thomas>
?
<egg|principia|egg>
yes ` too
<egg|principia|egg>
Thomas: ? is absolutely not ok and must be escaped
<Thomas>
"Like `?"
<Thomas>
I forgot the ?
<Thomas>
:P
<Iskierka>
what about ¦?
<Thomas>
egg|principia|egg: <, > and | work for me
<egg|principia|egg>
Iskierka: not in ASCII
<egg|principia|egg>
this isn't EBCDIC
<Thomas>
Hmm, wait, > and < could be problematic in HTML
<Iskierka>
that is surprising given it's on the keyboard
<egg|principia|egg>
if we have to deal with EBCDIC I give up
<egg|principia|egg>
!u ¦
<Qboid>
U+00A6 BROKEN BAR (¦)
<egg|principia|egg>
Thomas: yeah
<egg|principia|egg>
Thomas: and anyway when I follow a link with ` it just escapes it for me
<egg|principia|egg>
so no point in not escaping it
<egg|principia|egg>
the only things that are safe not to escape and where it looks better if we don't are -=[];'.~:"!@$&*()_+
Glaug-Eldare has joined #kspunofficial
* Thomas
names function "eggscape"
<egg|principia|egg>
:D
<egg|principia|egg>
(subject to hadronic vetting though)
<egg|principia|egg>
Thomas: I'm not sure what's up with that |? issue in the db, but that's another kettle of fish I guess
<Thomas>
Our enemy here is varchar(30)
<Thomas>
#`-=\[];'./~{}:"<>!@#$%^&*()_+|? is 32 char :P
<egg|principia|egg>
aaaah
<egg|principia|egg>
well fuck that >_>
<egg|principia|egg>
if two channels start by the same 30-character prefix, fuck them both
<Thomas>
I want to see a serious channel that has 30 chars
<egg|principia|egg>
yeah
<egg|principia|egg>
even less likely to have two, with the same 30 first chars >_>
<egg|principia|egg>
Thomas: I mean I'm in a lot of silly channels, and the only one to have anywhere close to that is this one that I created specifically to test bugs in the logger
<egg|principia|egg>
otoh supporting % or & or / or # in the channel actually matters
<Iskierka>
probability question: 6 people playing rock/paper/scissors, what are the odds of exactly two people choosing each?
* egg|principia|egg
is in weird channels >_>
<egg|principia|egg>
Iskierka: so 2 rock 2 paper 2 scissors?
<UmbralRaptor>
Uh, 3*2C2/6C2?
<Iskierka>
yes. tohugh I suppose it's functionally the same as all choosing one
<egg|principia|egg>
Iskierka: are they uniform random players?
<UmbralRaptor>
Wait, denom is wrong
<Iskierka>
or not quite?
<Iskierka>
presume so
<egg|principia|egg>
are they independent?
<UmbralRaptor>
Should be 3^6
<egg|principia|egg>
UmbralRaptor: I don't get your 2C2
* egg|principia|egg
may be a bit slow right now though
<Iskierka>
what's the precedence on */ vs C?
<UmbralRaptor>
2 choose 2 when I don't have good markup.
<Qboid>
egg|principia|egg meant to say: UmbralRaptor: and then you're done
<Iskierka>
in the font size here that looked like 日
<egg|principia|egg>
you don't get an additional choice to pick the 2 among the 2 left
<egg|principia|egg>
!u ´
<Qboid>
U+00B4 ACUTE ACCENT (´)
<egg|principia|egg>
Thomas: you don't need that
<UmbralRaptor>
Iskierka: sadly I don't have my phone set up to enter kanji/hanzi.
<egg|principia|egg>
it's not in ASCII
<egg|principia|egg>
!u 日
<Qboid>
U+65E5 CJK IDEOGRAPH-65E5 (日)
<UmbralRaptor>
egg|principia|egg: Ideograph for Sun!
<egg|principia|egg>
yup
<egg|principia|egg>
not for mobile phone :-p
<UmbralRaptor>
(the gravitationally confined fusion reactor, not the shell owned by Oracle)
<Iskierka>
protip: don't attempt to find a particular kanji in the CJK ideograph set
<egg|principia|egg>
UmbralRaptor: nor the british arsewipe
<Iskierka>
going through it sequentially is a bad method
<UmbralRaptor>
hah
<UmbralRaptor>
Iskierka: there are dragons lurking on the SIP.
Qboid has joined #kspunofficial
<Thomas>
I dont think we need ^
<Thomas>
And I got the other ones
<Iskierka>
why does it look like regex exploded in here
<egg|principia|egg>
Thomas: ^ gets escaped by my browser
<egg|principia|egg>
so ti's like `
<egg|principia|egg>
there's no point in not escaping it
<Thomas>
Then please tell me when I am starting.
<Thomas>
I am lazy and I am writing ruby
<Thomas>
=> emergency mode
<egg|principia|egg>
!csharp String.Concat(from c in "`-=\\[];'./~{}:\"<>!@#$%^&*()_+|?" where !"-=[];'.~:\"!@$&*()_+".Contains(c) select "\""+ c +"\", \""+System.Uri.EscapeDataString(c.ToString())+"\"")
<egg|principia|egg>
ack
<egg|principia|egg>
Thomas: looks good? we'll see what whitequark decides on those that must be escaped (I'd say there's no real good solution beyond the %)
Qboid has joined #kspunofficial
<egg|principia|egg>
ok, back to the principia mines
<egg>
perhaps commenting on pull requests at half past three isn't such a good idea after all
egg is now known as egg|zzz|egg
Lyneira has quit [Quit: Konversation terminated!]
Olympic1 has quit [Read error: Connection reset by peer]
<Iskierka>
so there's some thing on TV about gits like leave/trump being silenced or something. they're not, they get to express their opinion, they just then discover it's not freedom from consequence
<kmath_>
<ClaireRousseau> Let me expand on this: In France, where I'm from, it's punishable by law to praise/champion//advocate/vindicate crimes against humanity. 1/?
<Glaug-Eldare>
see: Savage Axis
<Glaug-Eldare>
$368, available in nine calibers
<egg|phone|egg>
There's a question of wording too; on neither case is eg libel protected. In the us it's not free speech; in France it is a limitation of free speech by the law. The fundamental right here is that you cannot be prevented from speaking, but you may have to answer for it in the cases set out in the law
<Iskierka>
that is the fundamental point. and all these people have been allowed to speak. Just then milo got kicked off platforms once it was certain he had nothing to add, new york nazi got punched, etc
<egg|phone|egg>
La libre communication des pensées et des opinions est un des droits les plus précieux de l'Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l'abus de cette liberté dans les cas déterminés par la Loi.
<egg|phone|egg>
Iskierka: but the us have a different concept of freedom of speech
<egg|phone|egg>
Wherein "Congress shall make no law" etc.
<Iskierka>
except they have because speech that would imminently endanger someone is not just unprotected but also specifically illegal
<egg|phone|egg>
To compensate they limit what is free speech
<egg|phone|egg>
Rather than whether you can be prosecuted for its exercise
<Iskierka>
or possibly not explicitly illegal, but very unprotected and if someone does come to harm you are definitely at fault
<egg|phone|egg>
But it's harder to argue that something isn't free speech (court's job to decide) than to pass a law limiting it in French style (parlyament's job)
<egg|phone|egg>
Now, in France a law limiting unduly that freedom may be censored by the constitutional council
<Iskierka>
any sensible system should definitely be preventing rewriting history with falsehoods, even if it can only be done so clearly with crimes against humanity for ease of ruling
<egg|phone|egg>
Yes, but we are talking about the us :-p
<egg|zzz|egg>
Iskierka: as for rewriting history, it's not the job of the state to enforce proper scholarship; the laws target things like inciting hatred, inciting racial or gender or sexuality based hatred being worse, inciting violence, &c.
<egg|zzz|egg>
and yes there are also specific provisions for crimes against humanity, but that's mostly something that JMLP falls afoul of and nobody else of note; otoh a politician saying something racist can end up in trouble
<Iskierka>
not specifically scholarship - prevent promotion of obvious falsehoods that erase significant parts
<egg|zzz|egg>
Iskierka: in fact merely insult is penalized (though that's not enforced in general, otherwise you'd have to fine every Parisian). Insult based on race or sexual orientation is far more strongly penalized; public more than private (private being in practice impossible to enforce of course)
<Iskierka>
if there's evidence to penalise over, it technically wasn't private
<egg|zzz|egg>
Iskierka: nah, that's not how private is defined in that bit (please don't make me dig up bits of legifrance). e.g. you could have an (illicit) recording
<egg|zzz|egg>
Iskierka: there's the very nice thing in france that fundamental rights are fairly generally worded, and separate from (and vastly predating) the implementation details set out in the constitution, rather than being amendments to it
<egg|zzz|egg>
and they worded the thing rather well in 1789 too
<egg|zzz|egg>
Iskierka: an amusing and important detail is that equality in rights starts at birth (and remains). It mattered that it was specifically at birth, rather than earlier, not because of abortion, but because questions about property etc. of unborn children arose a lot with nobles
<Iskierka>
... I don't know if that's a good thing at the time or not. Baby considered just property? (of the mother?)
<egg|zzz|egg>
no, property belonging to the child
<egg|zzz|egg>
do the estates of whatever belong to the unborn duke of whatever
<egg|zzz|egg>
so there was some discussion of whether the unborn child had rights, but what was set out was equality from birth
<egg|zzz|egg>
Iskierka: now a separate civil law principle states that a conceived child is considered born if that is to its advantadge; however this applies to a child who is a person, i.e. who was born, since personality begins at birth and ends at death
<Iskierka>
... so is that retroactively stating occurrences before born are considered born if helpful?
<UmbralRaptor>
Does that make abortions felonies? =\
<Iskierka>
(before born for someone who is now born, that is)
<egg|zzz|egg>
UmbralRaptor: civil law, not criminal
<egg|zzz|egg>
UmbralRaptor: also, confusion: what you call felony we call crime
<egg|zzz|egg>
what you call crime we call delict
<egg|zzz|egg>
and we have contraventions too
<UmbralRaptor>
aaaaaa
<egg|zzz|egg>
so when you say crime it sounds really harsh :D
<egg|zzz|egg>
and criminal justice we call penal
<egg|zzz|egg>
because it deals with penalties
<egg|zzz|egg>
Iskierka: it means that if you have a civil dispute (contract, ownership, that sort of thing), and if the child was born 2 months earlier he would be better off by your judgement, then that's how you rule: as if he had been born
<egg|zzz|egg>
I think there's a latin phrase that states that principle
<egg|zzz|egg>
because civil law gets a lot of roman influence
<egg|zzz|egg>
UmbralRaptor: Iskierka: yes, "infans conceptus pro nato habetur quoties de comodo ejus agitur"
<Glaug-Eldare>
i believe it's also a principle of civil law and equity that carthage must be destroyed
<Iskierka>
so not screwing over a child that did get born, but if they didn't, meh. kay
<egg|zzz|egg>
well if they were not born they have never been a person in the eyes of civil law
<egg|zzz|egg>
UmbralRaptor: so, contraventions (when you countervene to the law) come in five classes, they're for mild stuff, from bad parking to mild violence; then you have délits (delicts), like theft, moral harrassment, involuntary homicide (you call that one manslaughter I think?), finally you have crimes, murder, rape, assassination, etc.
<egg|zzz|egg>
UmbralRaptor: I think anglo-saxon murders are numbered instead of having a different word for murder and assassination?