←2016-07-06 2016-07-07 2016-07-08→ ↑2016 ↑all
00:02:59 -!- carado has quit (Read error: Connection reset by peer).
00:03:42 -!- cocoabotter has quit (Ping timeout: 250 seconds).
00:32:51 -!- LKoen has joined.
00:38:03 -!- carado has joined.
00:49:56 -!- MoALTz has quit (Ping timeout: 272 seconds).
00:50:28 -!- augur has joined.
00:52:38 -!- augur has quit (Remote host closed the connection).
01:23:36 -!- tromp_ has joined.
01:28:01 -!- augur has joined.
01:32:16 -!- lambda-11235 has joined.
01:35:35 <oerjan> <shachaf> \oren\: Why write to the root directory rather than to tmp/? <-- if you ever get people to do that, it'll be so fun when they hit the tmp/ mv bug.
01:36:02 <shachaf> "bug"?
01:36:21 <shachaf> Anyway that file didn't look like it was even intended to be used.
01:36:26 <shachaf> `ls
01:36:41 <oerjan> true, but it's a dangerous habit if you don't know what you're doing.
01:36:57 <HackEgo> ​!\.´ \ advice \ bin \ canary \ cdescs \ emoticons \ esobible \ etc \ evil \ factor \ good \ hw \ ibin \ interps \ karma \ le \ lib \ ls \ misle \ out \ paste \ ply-3.8 \ ps \ quines \ quotes \ share \ src \ test \ theorems \ tmflry \ tmp \ wisdom \ wisdom.pdf
01:37:02 <shachaf> not knowing what you're doing is a dangerous habit hth
01:37:09 <shachaf> `hoag test
01:37:09 <oerjan> `file test
01:37:27 <oerjan> i suspect that file was never written anyway.
01:37:35 <HackEgo> test: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x6ac7051385eeb76321be46a3b04a8a608b00d31c, not stripped
01:37:41 <HackEgo> No output.
01:37:52 <oerjan> shachaf: the difference is, that with almost any other mistake in HackEgo, you can `revert.
01:38:15 <shachaf> Sure, but you can always reconstruct what happened, since you made the tmp/ file in public.
01:38:16 <oerjan> and not lose information.
01:38:23 <shachaf> Since HackEgo modifications are always in public.
01:38:24 <shachaf> Right?
01:38:47 <oerjan> i wouldn't expect that apply to tmp/ if people used it for scratch.
01:39:05 <oerjan> in fact it would be the perfect place to try out things.
01:39:17 <quintopia> what does mv in tmp do?
01:39:56 -!- spiette has joined.
01:40:05 <shachaf> `hoag test
01:40:09 <HackEgo> ​<\oren\> ` echo -e \'#include <stdio.h>\\nint main(){printf("hello\\\\n");int i=30;printf("this won\'\\\'\'t work\\\\n");}\' | gcc -std=c90 -xc -otest - \ <shachaf> rm test \ <oerjan> touch test \ <hppavilion[1]> rm test \ <Moon_> mkx test//moonwashere \ <shachaf> rm test \ <shachaf> ` echo b > test \ <shachaf> ` echo a > test \ <oerjan> rm-p te
01:40:15 <oerjan> quintopia: because of HackEgo's lock-and-rerun mechanism, it wipes out the tmp file with no trace.
01:40:21 <shachaf> `rm test
01:40:25 <HackEgo> No output.
01:40:37 <shachaf> oerjan: Well, we can fix that by having mv check if its first argument is in tmp/.
01:40:40 <oerjan> oh it did add one.
01:40:43 <oerjan> shachaf: true.
01:40:53 <shachaf> I guess we can't fix `mv, though.
01:40:55 <shachaf> Or can we?
01:40:58 <shachaf> `` echo $PATH
01:41:00 <HackEgo> ​/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin
01:41:05 <shachaf> I guess we can.
01:41:10 <oerjan> shachaf: except some people here like to use mv -v
01:41:30 <shachaf> a?
01:41:37 <shachaf> Hmm.
01:41:39 <shachaf> mv -v?
01:41:52 <oerjan> it tells whether it actually did something.
01:42:08 <oerjan> with HackEgo timing out all the time, a good practice.
01:42:29 <shachaf> Well, a fancy mv can still support that.
01:45:39 <oerjan> hm...
01:47:30 -!- augur has quit (Remote host closed the connection).
01:59:35 -!- spockers has left ("bye http://i.imgur.com/nkzOWAv.jpg").
02:04:29 -!- augur has joined.
02:16:36 <oerjan> :t (>>-)
02:16:37 <lambdabot> Not in scope: ‘>>-’
02:16:37 <lambdabot> Perhaps you meant one of these:
02:16:37 <lambdabot> ‘>>’ (imported from Control.Monad.Writer),
02:17:58 <oerjan> huh lambdabot no longer imports logict?
02:18:16 -!- augur has quit (Remote host closed the connection).
02:18:22 <oerjan> :t interleave
02:18:23 <lambdabot> Not in scope: ‘interleave’
02:18:29 <oerjan> scow.
02:19:11 <oerjan> :t Control.Monad.Logic.interleave
02:19:12 <lambdabot> Control.Monad.Logic.Class.MonadLogic m => m a -> m a -> m a
02:24:06 <oerjan> > [1..]Control.Monad.Logic.>>-repeat
02:24:08 <lambdabot> Not in scope: ‘Control.Monad.Logic.>>-’
02:24:08 <lambdabot> Perhaps you meant one of these:
02:24:08 <lambdabot> ‘Control.Monad.Cont.>>’ (imported from Control.Monad.Cont),
02:24:39 <oerjan> @ask int-e why isn't Control.Monad.Logic in lambdabot tdnh
02:24:39 <lambdabot> Consider it noted.
02:34:56 * oerjan had got the misguided impression cabal-install now supported incremental cabal update.
02:35:08 <oerjan> but it seemed to take as long as last time.
02:35:29 <oerjan> (was just testing my line above)
02:36:13 <oerjan> @tell int-e [1..]Control.Monad.Logic.>>-repeat
02:36:13 <lambdabot> Consider it noted.
02:36:48 <oerjan> of course that relies on a very specific implementation of >>- for lists.
02:37:41 <oerjan> > [1..]CML.>>-repeat
02:37:43 <lambdabot> Not in scope: ‘CML.>>-’
02:37:48 <oerjan> > [1..]L.>>-repeat
02:37:49 <lambdabot> Not in scope: ‘L.>>-’
02:38:07 <oerjan> @where L.hs
02:38:07 <lambdabot> What lambdabot has in scope is at <https://github.com/int-e/lambdabot/blob/config/lambdabot/State/Pristine.hs>
02:38:16 <oerjan> yay that worked
02:38:41 <oerjan> except for the 404ing
02:44:27 <oerjan> @tell int-e @where L.hs lies tdnh
02:44:27 <lambdabot> Consider it noted.
02:48:10 <oerjan> :t (^.)
02:48:11 <lambdabot> s -> Getting a s a -> a
02:48:40 <oerjan> well the one i found at lambdabot/lambdabot is not right, anyway. (no lens)
02:48:47 <oerjan> > (^.)
02:48:49 <lambdabot> No instance for (Typeable s0)
02:48:49 <lambdabot> arising from a use of ‘show_M668101704439807834720385’
02:48:49 <lambdabot> In the expression:
03:01:40 -!- lambda-11235 has quit (Read error: Connection reset by peer).
03:02:34 -!- lambda-11235 has joined.
03:10:28 -!- Kaynato has quit (Ping timeout: 250 seconds).
03:12:16 <oerjan> `? obsolate
03:12:19 <HackEgo> obsolate? ¯\(°​_o)/¯
03:22:39 -!- Kaynato has joined.
03:34:26 -!- ais523 has quit.
03:49:08 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
04:01:29 -!- lambda-11235 has quit (Read error: Connection reset by peer).
04:02:21 -!- lambda-11235 has joined.
04:05:32 -!- augur has joined.
04:07:42 -!- spiette has quit (Remote host closed the connection).
04:08:17 <shachaf> Wait, rdococ is HaliteBird?
04:11:54 <oerjan> i wouldn't know.
04:22:17 -!- lambda-11235 has quit (Read error: Connection reset by peer).
04:23:03 -!- lambda-11235 has joined.
04:24:31 -!- Kaynato has quit (Ping timeout: 240 seconds).
04:37:44 -!- tromp_ has quit (Remote host closed the connection).
04:41:15 -!- hppavilion[1] has joined.
04:41:21 <hppavilion[1]> "One pound is one kilogram." -- Randall Munroe
04:41:48 <oerjan> well that's about half right.
04:42:19 <shachaf> or is it about 2 right?
04:42:21 <pikhq> Well, in the context of order of magnitude estimation, it's not wrong.
04:43:13 <shachaf> pikhq: any pooch news?
04:43:31 <shachaf> Hmm, wrong channel.
04:44:03 <oerjan> pikhq: fermily agreed
04:44:17 <quintopia> oerjan: is obsolate a word to describe very old people just after they die?
04:45:02 <oerjan> quintopia: well that wasn't the use in the logs.
04:45:35 <oerjan> . o O ( ^style doggy )
04:46:07 <shachaf> oerjan: this isn't even the first time you made that joke hth
04:46:14 <oerjan> it isn't?
04:46:22 <shachaf> I don't believe so.
04:46:32 <oerjan> has this channel been going to the dogs for this long
04:47:24 <shachaf> I was going to make some "posthumous" pun in response to quintopia.
04:47:29 <shachaf> But I couldn't think of a good one.
04:50:33 <oerjan> you shouldn't joke about dead people. that's posthumorous.
04:50:58 <shachaf> Yes, that one was a candidate.
04:51:06 <shachaf> But neither of us could make it work.
04:51:11 <oerjan> ic
04:51:22 <shachaf> Sorry, I oughtn't be rude for no reason.
04:51:43 <quintopia> shachaf: maybe you can be helpful instead?
04:51:44 <oerjan> i realised immediately it should have been s/that's/they're/ hth
04:51:50 <quintopia> what's a verb or verb phrase for when you are fired because your employer no longer needs *anyone* to do the job you were doing?
04:53:02 <oerjan> unless they've died after eating middle east cuisine, then they're posthummus.
04:53:13 <\oren\> quintopia: downsized
04:53:35 <\oren\> quintopia: position eliminated
04:54:43 <quintopia> oerjan: or if they are left in the woods to rot, decompose entirely, and be washed away in rainstorm, in which case they are posthumus
04:55:01 <shachaf> quintopia: I can't hope to be as helpful as oerjan.
04:55:12 <shachaf> Not can I help to be as hopeful as oerjan.
04:55:19 <shachaf> oerjan mostly hopes that helps.
05:10:27 -!- lambda-11235 has quit (Read error: Connection reset by peer).
05:11:34 -!- lambda-11235 has joined.
05:14:10 <quintopia> `? hth
05:14:54 <HackEgo> hth is help received from a hairy toe. It is not at all hambiguitous.
05:21:49 -!- FreeFull has quit (Ping timeout: 244 seconds).
05:38:27 -!- tromp_ has joined.
05:43:33 -!- tromp_ has quit (Ping timeout: 276 seconds).
05:56:57 -!- Sgeo has quit (Read error: Connection reset by peer).
05:57:13 -!- Sgeo has joined.
06:00:07 -!- Sgeo has quit (Read error: Connection reset by peer).
06:00:25 -!- Sgeo has joined.
06:08:01 -!- lambdabot has quit (Quit: ().
06:08:40 <oerjan> *POOF*
06:10:11 <izabera> what happened?!
06:10:28 <oerjan> lambdabot quit tdnh
06:11:12 <alercah> mniip found a vuln
06:11:19 -!- Sgeo has quit (Quit: Leaving).
06:11:21 <izabera> another one?!
06:11:31 <alercah> some unicode crap
06:11:39 <izabera> what crap?!
06:11:46 -!- Sgeo has joined.
06:12:04 <alercah> < mniip> @let data QUIT = QUIT
06:12:10 <alercah> < mniip> @let data Њ a b = Њ a b
06:12:16 <alercah> < mniip> :t Њ QUIT (Њ () ())
06:12:22 <alercah> -!- lambdabot [~lambdabot@haskell/bot/lambdabot] has quit [Quit: (]
06:12:24 <izabera> oh
06:12:29 <izabera> wow
06:12:37 <oerjan> what
06:12:39 <alercah> `unidecode Њ
06:12:54 <HackEgo> ​[U+040A CYRILLIC CAPITAL LETTER NJE]
06:12:55 -!- lambdabot has joined.
06:13:08 <oerjan> ^ord Њ
06:13:08 <fungot> 208 138
06:13:16 <izabera> possibly a different encoding?
06:13:24 <izabera> one that contains a \n somewhere?
06:13:43 <oerjan> well ghc haskell uses utf-8
06:13:47 <oerjan> so that seems unlikely
06:14:09 <oerjan> hm
06:14:57 -!- lambda-11235 has quit (Quit: Bye).
06:15:00 <oerjan> @let data A = A; data B = B
06:15:08 <oerjan> :t B A (B () ())
06:15:19 <oerjan> lambdabot:
06:15:36 <oerjan> hmph
06:16:12 <oerjan> wait what
06:16:16 <izabera> anyway i'm mostly amazed by the fact that people actually understand haskell
06:16:20 <oerjan> > "hi"
06:16:27 <oerjan> it seems locked up :(
06:18:01 <oerjan> alercah: did it really quit immediately after that?
06:18:03 -!- Sgeo has quit (Ping timeout: 240 seconds).
06:18:08 <alercah> oerjan: yes
06:18:21 <oerjan> `unidecode QUIT
06:18:28 <alercah> mniip had it deafen itself to protect against someone abusing it to e.g. steal the account
06:18:41 <oerjan> oh
06:18:45 <HackEgo> ​[U+0020 SPACE] [U+0051 LATIN CAPITAL LETTER Q] [U+0055 LATIN CAPITAL LETTER U] [U+0049 LATIN CAPITAL LETTER I] [U+0054 LATIN CAPITAL LETTER T] [U+0020 SPACE]
06:19:11 <oerjan> alercah: hmph. you're supposed to make it quit twice.
06:19:16 <oerjan> then it won't rejoin.
06:20:08 <oerjan> i guess +g works.
06:21:03 <oerjan> `ord Њ
06:21:10 <oerjan> oh wait i see
06:21:10 <HackEgo> 1034
06:21:17 <oerjan> it's 1024 + 10
06:21:45 <oerjan> and it gets printed cast to 8 bit
06:22:06 <oerjan> alercah: has someone told int-e (who seems asleep) what happened?
06:22:30 <alercah> dunno
06:22:38 <oerjan> hm @tell won't work :P
06:23:10 <oerjan> i'll try memoserv
06:25:00 <oerjan> ...he's disabled it.
06:25:19 <oerjan> fine, github next ->
06:26:38 <oerjan> hm i see no way to contact him there
06:27:54 <oerjan> do i have his email somewhere...
06:29:27 <oerjan> not that i can see
06:30:29 <oerjan> i'm not sure i want to say this in a more public place
06:31:45 <alercah> oerjan: was pinged in #haskell
06:32:00 <oerjan> alercah: well...
06:32:22 <oerjan> oh well i suppose he won't get it any earlier otherwise
06:34:21 <oerjan> i guess this is what happens when every module in lambdabot is supposed to handle its own output issues.
06:36:33 -!- J_Arcane has quit (Quit: ChatZilla 0.9.92-rdmsoft [XULRunner 35.0.1/20150122214805]).
06:57:35 -!- Sgeo has joined.
06:58:56 <shachaf> deafen?
06:59:19 <shachaf> Ah, server-side ignore.
07:24:00 -!- augur has quit (Remote host closed the connection).
07:29:22 -!- lambdabot has quit (Remote host closed the connection).
07:31:57 <oerjan> someone just woke up
07:32:07 <pikhq> Orly?
07:32:36 <oerjan> pikhq: int-e has a security vulnerability in lambdabot to handle today.
07:33:39 <pikhq> Ah.
07:33:47 <pikhq> Curious what the vuln was.
07:33:55 <pikhq> Something to do with UTF-8?
07:34:06 -!- lambdabot has joined.
07:34:46 <oerjan> pikhq: :t prints its output converted from codepoints to 8-bit and no \n check seems to be applied after that
07:34:58 <pikhq> *Oh*.
07:35:01 -!- AnotherTest has joined.
07:35:19 <oerjan> so someone discovered the Њ
07:35:22 <oerjan> character
07:35:24 <pikhq> So it's serializing as UTF-8 incorrectly?
07:36:01 <oerjan> pikhq: no, it's serializing codepoints as 8bit clamped
07:36:18 <pikhq> Well that is "incorrectly". :P
07:36:23 <oerjan> i suppose :P
07:36:55 <oerjan> more disturbing is that this important check isn't applied uniformly to all lambdabot modules.
07:37:56 <oerjan> > 1
07:37:58 <lambdabot> 1
07:38:14 <oerjan> :t Proxy :: Proxy "hi"
07:38:15 <lambdabot> Proxy "hi"
07:38:47 <oerjan> :t Proxy :: Proxy "ЊPING"
07:38:48 <lambdabot> Proxy "\1034PING"
07:39:00 <oerjan> looks better
07:39:03 <oerjan> or wait
07:39:17 <oerjan> that gets passed through show
07:39:20 <oerjan> hm...
07:40:05 <oerjan> i guess it really does need at least one @let first
07:40:06 <Cale> @let data Њ = Њ
07:40:07 <lambdabot> .L.hs:169:1:
07:40:07 <lambdabot> Multiple declarations of ‘Њ’
07:40:07 <lambdabot> Declared at: .L.hs:155:1
07:40:11 <Cale> hah
07:40:36 <oerjan> @let data ЊPING = ЊPING
07:40:37 <lambdabot> Defined.
07:40:43 <oerjan> :t ЊPING
07:40:44 <lambdabot> PING
07:40:49 <shachaf> lambdabot is a mess.
07:41:01 <oerjan> someone fixed it speedily >:)
07:41:24 <shachaf> Is int-e online?
07:41:30 <Cale> yes, he is
07:41:40 <oerjan> int-e: does your fix work for all lambdabot modules, else someone might find another loophole...
07:42:17 <Cale> @pl ЊPING
07:42:18 <lambdabot> (line 1, column 2):
07:42:18 <lambdabot> unexpected '\138'
07:42:18 <lambdabot> expecting letter or digit, variable, "(", operator or end of input
07:42:20 -!- lambdabot has quit (Quit: brb).
07:42:36 <Cale> @pl xЊPING
07:42:40 <int-e> oerjan: it's on the IRC connection level
07:42:49 <oerjan> int-e: good
07:43:26 <int-e> and while I am at it that's also the perfect place to get rid of the CTCP and color codes :P
07:43:37 <oerjan> AWWW
07:44:31 <oerjan> int-e: hey careful not to break @time
07:44:52 <int-e> well, it's just filtering some bytes.
07:45:05 <int-e> so you'll still get *some* output.
07:45:15 <oerjan> i mean that @time uses CTCP to do its job
07:45:41 <int-e> oh, right, hmm.
07:46:08 <int-e> yep, I just broke that :P
07:47:18 -!- lambdabot has joined.
07:48:55 <oerjan> also, ACTIONs, i'm not sure if any commands officially support those though
07:49:27 <shachaf> Well, @time is kind of silly.
07:49:44 <oerjan> Y U HATE TIME
07:49:52 <shachaf> You can always use ctcp directly.
07:51:25 <oerjan> that's not very demonstrative tdnh
07:51:25 <int-e> okay, fine, CTCP can stay for now while I mull over it
07:51:33 -!- lambdabot has quit (Quit: brb).
07:53:06 <int-e> yeah, @time is a bit silly.
07:53:47 <int-e> I wouldn't go as far as hating it though
07:54:00 <int-e> too much effort; I prefer indifference
07:54:33 <shachaf> No one here hates @time.
07:54:44 <shachaf> Except for Cale, maybe.
07:54:47 <int-e> @where L.hs
07:54:57 <Cale> ?
07:55:34 <int-e> (oops, it's not here yet)
07:55:43 <oerjan> that would explain it.
07:56:05 <int-e> how many of these entries does lambdabot have anyway...
07:56:09 -!- lambdabot has joined.
07:57:16 <int-e> @where+ L.hs what lambdabot has in scope is at http://silicon.int-e.eu/lambdabot/State/Pristine.hs
07:57:21 <lambdabot> I will never forget.
07:57:22 <shachaf> Cale: Do you hate time?
07:57:44 <int-e> without time, when would you do all the hating...
07:58:15 <Cale> int-e: It would be compressed into an instantaneous fit of intense rage
07:58:17 <oerjan> i'm pretty sure Control.Monad.Logic _used_ to be in there, anyway.
07:58:52 <Cale> shachaf: I don't know what you're really referring to
07:58:59 <Cale> The lambdabot plugin?
07:59:00 <int-e> it would have been when Cale run it... mokus or I probably cleaned it up a little
07:59:17 <shachaf> What do you think of the speed of light, anyway?
07:59:31 <oerjan> your cleanup was illogical tdnh
07:59:44 <int-e> (I suppose... Cale please correct me if I'm wrong)
08:00:23 <Cale> I might have imported Control.Monad.Logic at some point
08:01:06 <int-e> @where Pristine.hs
08:01:06 <lambdabot> I know nothing about pristine.hs.
08:01:14 -!- AnotherTest has quit (Ping timeout: 250 seconds).
08:02:01 <shachaf> People don't like single-layer perceptron networks, but they seem to be inexorable.
08:02:18 <oerjan> int-e: i noticed the github repository has three Pristine.hs* files for some reason.
08:02:44 <oerjan> shachaf: is that a pun because it smells like one
08:03:01 <shachaf> MAYBE
08:03:15 <int-e> oerjan: "for some reason" - I think the reason should be easy to guess given their names
08:03:26 <oerjan> hm?
08:03:42 <shachaf> 706 and 708 are GHC versions?
08:03:45 <int-e> yes.
08:03:48 <oerjan> oh duh
08:04:14 <shachaf> And there I was thinking it was Jul 6 and Jul 8.
08:04:24 <shachaf> And today we're right in between, which is why were having lambdabot issues.
08:04:32 <oerjan> shachaf: thausible.
08:04:53 -!- augur has joined.
08:05:41 <int-e> anyway... later
08:10:10 <oerjan> int-e: the last TODO seems obsolete with (:~:) around.
08:13:12 <\oren\> what if we start reading todo as a spanish word
08:13:28 <shachaf> We already do.
08:13:44 <shachaf> Any todo list ultimately progresses toward its Spanish meaning.
08:14:44 <oerjan> todo loco
08:22:22 <int-e> oerjan: s/last //; s/ with.*//
08:22:43 <int-e> the todo list is a historical artifact
08:24:28 <int-e> or actually... which TODO?
08:24:36 <int-e> @todo 43
08:24:36 <lambdabot> @todo has no args, try @todo-add or @list todo
08:24:38 <int-e> @todo 44
08:24:38 <lambdabot> @todo has no args, try @todo-add or @list todo
08:24:47 <int-e> oh.
08:25:24 <oerjan> int-e: um i meant the todo in your Pristine.hs
08:25:54 <int-e> ah.
08:26:16 <int-e> I think mokus added that one
08:41:59 -!- AnotherTest has joined.
09:01:32 -!- MDead has joined.
09:04:06 -!- MDude has quit (Ping timeout: 246 seconds).
09:04:07 -!- MDead has changed nick to MDude.
09:32:11 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
09:37:03 -!- AnotherTest has quit (Ping timeout: 264 seconds).
09:40:53 -!- AnotherTest has joined.
09:55:18 -!- oerjan has quit (Quit: Nite).
10:09:08 -!- LKoen has joined.
10:14:42 -!- LKoen has quit (Remote host closed the connection).
10:20:56 -!- LKoen has joined.
10:29:11 -!- Sprocklem has quit (Ping timeout: 240 seconds).
10:38:55 -!- augur has quit (Remote host closed the connection).
10:47:55 -!- MoALTz has joined.
10:49:43 -!- mroman has joined.
10:50:24 <mroman> There's a game with 10 rounds and 2 players. Each player in every round must say a number 1..10 but they can never say the same number twice.
10:50:48 <mroman> If your number is higher you get two points, if it's lower no points and if both numbers are the same each gets one point.
10:52:44 <mroman> What strategy would you use?
10:53:21 <b_jonas> mroman: and in each round, the two players choose the numbers without learning about the other, but having learnt the numbers from the previous rounds?
10:53:50 -!- LKoen has quit (Remote host closed the connection).
10:54:39 <b_jonas> mroman: this game reminds me sort of to the game Niagara, which is a german style board game for between 3 and 5 players ideally, but which interestingly has a quite small space state, so that it could conveniently (even for humans) be played through irc
10:54:40 <mroman> Yes, you know the numbers from the previous rounds.
10:54:57 <mroman> so you exactly know which numbers your opponent still has available
10:55:44 <mroman> actually this should be bruteforcable quite nicely
10:55:55 <mroman> 10! possible games would be my estimate
10:56:17 <mroman> or maybe not
10:56:23 <b_jonas> mroman: aren't there more like 100*10! games? still, probably brute-forcable
10:56:45 <mroman> 3628800 does sound like too few games
10:56:56 <b_jonas> Just like this game, Niagara has some hidden state, so it needs a trusted third party (e.g. a bot) to validate things over irc, or a simple cryptographic protocol.
10:57:15 <b_jonas> mroman: it's not 10! games, but 10! states
10:57:24 <b_jonas> there are much more games, about 10!**2 of them
10:57:36 <b_jonas> but only about 100*10! states
10:57:48 <b_jonas> (even less if you cut a bit)
10:58:09 -!- Sprocklem has joined.
10:58:19 <b_jonas> so yes, it's brute-forcable
10:58:36 -!- LKoen has joined.
10:59:23 <mroman> yeh but brute-force doesn't really tell you immediately the strategy behind it
10:59:37 <mroman> it might tell you that some orders have a higher chance of winning
11:00:06 <mroman> this is actually comparing every permutation of [1..10] with every other permutation of [1..10]
11:00:08 -!- augur has joined.
11:00:11 <b_jonas> the brute force would tell you whether you can win from any particular state, and how to win from it
11:00:30 <b_jonas> so if the other player makes a theoretical mistake, you can win if you've done the brute force computation
11:00:30 <mroman> which is 10! squared
11:00:45 <b_jonas> the game is symmetric, so the starting state is a draw
11:08:30 <mroman> http://codepad.org/2StFKlse
11:08:33 <mroman> :)
11:08:50 <mroman> there's no permutation that wins more :)
11:09:12 <b_jonas> no wait, I'm stupid
11:09:20 <b_jonas> there's actually less states
11:09:41 <mroman> so overall the chance of winning when they play perfectly is 0%
11:09:44 <mroman> because it'll draw each time
11:10:04 <b_jonas> there's only 184756 states
11:10:39 <b_jonas> mroman: no no, you said you don't choose the permutation in advance, but choose each number after you know what (you and) the other player chose on each of the previous rounds
11:11:10 <b_jonas> that makes the game different
11:11:21 <mroman> why?
11:11:26 <mroman> This crunches through every possible game
11:11:30 -!- augur has quit (Remote host closed the connection).
11:12:38 <b_jonas> mroman: think about it. or should I brute force it and demonstrate or something?
11:13:02 <mroman> well it at least means that no order has a higher chance of winning per se
11:13:24 <b_jonas> mroman: yes, but you don't decide the order in advance, and nor does the opponent, so that's irrelevant
11:16:29 <mroman> well if you start with the highest and the other player with the lowest you'll loose :)
11:18:35 <mroman> http://codepad.org/CNwt8JTN
11:20:23 <b_jonas> mroman: I'm writing a brute forcer and a particular player now, please wait
11:20:26 <b_jonas> it's not that complicated
11:20:27 <mroman> (just make sure you test with an even amount of numbers so there's no middle number)
11:20:43 <mroman> it might end up depending on who has the higher number in the first round
11:20:45 <b_jonas> what? you said there are 10 numbers exactly
11:20:49 <mroman> yes
11:21:17 <mroman> (I figured to detect tendencies 1,2,3,4 should work too)
11:21:30 <mroman> (less permutations)
11:24:38 -!- FreeFull has joined.
11:28:44 <b_jonas> mroman: mind you, an odd number might give an interesting game, because then there are no ties.
11:29:25 <b_jonas> but I'll stick with 10 for now
11:29:33 <b_jonas> still writing a program
11:34:17 -!- boily has joined.
11:42:22 <myname> http://www.commitstrip.com/en/2016/07/05/bot-bot/
11:49:39 <b_jonas> no, I'm stupid, there'd be ties even for an odd number
11:51:03 <b_jonas> mroman: you win the round if you have more points than 10, and lose if you have less points than 10, right?
11:51:17 <b_jonas> the total points is 20
11:54:55 <mroman> no you win the round when you have more points than the opponent
11:56:16 <mroman> which is probably equivalent to saying you win when you have more than 10 points :)
11:57:06 <mroman> if every round draws it's 10, 10. Each round can hand out 2 points so total 20
11:57:07 <mroman> yes.
11:57:11 <mroman> they're equivalent.
12:02:39 <b_jonas> still writing my program, please wait
12:02:53 <b_jonas> I have the brute force done, but chose the wrong strategy
12:02:59 <b_jonas> I'll have to fix it
12:04:01 <b_jonas> it already wins against random strategy more often than not, but it can be beaten with a particular strategy. I'll fix it now.
12:04:14 <b_jonas> then I'll have to add a network or irc interface or something
12:04:26 <b_jonas> so you can play against
12:04:39 <b_jonas> oh damn, it doesn't even seem to work against a random strategy
12:04:42 <b_jonas> something's wrong with it
12:04:45 <b_jonas> anyway, I'll fix it
12:04:51 <b_jonas> I know at least one bug
12:10:03 -!- LKoen has quit (Remote host closed the connection).
12:17:32 -!- LKoen has joined.
12:19:32 <b_jonas> hmm, something is still buggy
12:20:09 <b_jonas> wait
12:20:49 <b_jonas> hmm
12:20:56 <b_jonas> what I'm trying can't work
12:20:59 <b_jonas> damn
12:21:37 <b_jonas> or maybe it can, I dunno
12:24:59 <b_jonas> I'll probably have to think about this later
12:25:03 <b_jonas> I can't write it now
12:30:10 -!- boily has quit (Quit: WRAITH CHICKEN).
12:32:47 -!- hppavilion[1] has joined.
12:39:05 -!- Lord_of_Life has quit (Excess Flood).
12:40:38 -!- Lord_of_Life has joined.
12:43:24 <mroman> :D
12:43:37 <mroman> Maybe there's not even a better strategy then doing random()
12:49:16 <mroman> http://codepad.org/SraTcU2M
12:49:17 <hppavilion[1]> Whoo!
12:49:28 <mroman> well at least 'player_mid_first' seems to suck a bit
12:49:30 <hppavilion[1]> Nothing more satisfying than Google identifying you as a potential bot
12:49:39 <mroman> don't search for porn too long
12:49:44 <mroman> it will immediately flag you as a bot .
12:54:02 <mroman> http://codepad.org/nZNEw6zE <- if anybody want's to write a player :D
12:54:04 <mroman> *wants
12:55:34 <mroman> looking at hppavilion[1]
12:55:36 <mroman> :D
12:55:52 <hppavilion[1]> mroman: What's crazy is that wasn't even it
12:55:55 <hppavilion[1]> mroman: Wait, well, actually
12:56:09 <hppavilion[1]> Interestingly, I kind of was
12:56:20 <hppavilion[1]> Specifically, I was looking for the smbc forum thread for http://www.smbc-comics.com/index.php?db=comics&id=2408#comic
12:56:30 <hppavilion[1]> Because the forum doesn't have a search feature
12:56:31 <hppavilion[1]> ...
12:56:39 <hppavilion[1]> mroman: Do you have spyware running on my computer?
12:58:13 <izabera> http://thecatapi.com/
13:01:05 <hppavilion[1]> Cat executions: Done with the Electric Box?
13:02:52 <hppavilion[1]> "In 2000, some conservative associations sued the government for granting the movie Baise-moi, which contained graphic, realistic scenes of sex and violence, a non-X classification."
13:03:00 <hppavilion[1]> France, I think your conservatives are broken
13:26:11 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
13:47:04 -!- LKoen has quit (Remote host closed the connection).
13:50:23 -!- LKoen has joined.
14:16:05 -!- LKoen has quit (Remote host closed the connection).
14:37:39 -!- LKoen has joined.
14:40:54 -!- `^_^v has joined.
15:34:31 -!- Xylon_ has joined.
15:38:17 -!- AnotherTest has quit (Read error: Connection reset by peer).
15:38:42 -!- AnotherTest has joined.
15:46:52 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
15:54:52 -!- mroman has quit (Quit: Lost terminal).
15:56:27 -!- kuroro has joined.
16:06:01 -!- nisstyre has quit (Read error: Connection reset by peer).
16:08:53 <Xylon_> Hi, I'm trying to implement a very simple line in Pyth, but it seems like I keep doing something wrong. I was wondering if someone could point me in the right direction.
16:08:59 <Xylon_> This is it in normal Python: "reduce(lambda x,y: x^y, input)", where input is a list of integers. I figured out the following in Pyth: u^GHQ0, where u indicates that it's a reduce, G and H are the accumulator and sequence variable (G^H), Q is the input list and 0 is the initial value of the accumulator afaik, but it doesn't seem to give the wanted results.
16:24:14 -!- LKoen has joined.
16:28:36 -!- Sprocklem has quit (Ping timeout: 246 seconds).
16:36:18 -!- nycs has joined.
16:36:51 -!- `^_^v has quit (Ping timeout: 240 seconds).
16:40:42 -!- AnotherTest has quit (Ping timeout: 276 seconds).
16:44:43 <int-e> Xylon_: hmm, ^ is exponentiation; x is xor?
16:47:18 <izabera> https://github.com/chrislgarry/Apollo-11
16:47:56 <izabera> someone should write an emulator
16:52:24 <int-e> hmmmm. PINBALL_GAME_BUTTONS_AND_LIGHTS.s
16:55:21 <izabera> gotta spend time somehow
16:55:23 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
16:56:50 <int-e> izabera: anyway http://www.ibiblio.org/apollo/download.html looks like an emulator already exists
16:56:52 <quintopia> all hail ##math's lord and protector Cale
16:57:03 <Xylon_> int-e: You're right! I expected that ^ would be the same as it would be in python. But with languages like this I shouldn't assume things. Thanks!
16:58:49 <quintopia> Xylon_: in general you are probably more likely to be able to get help like that in the Pyth chat, or in the 19th byte if no one is there
17:01:28 <Xylon_> quintopia: Thanks, hadn't even thought of chat channels on stackexchange
17:09:48 -!- bauen1 has quit (Remote host closed the connection).
17:10:09 -!- bauen1 has joined.
17:13:04 <\oren\> I don't like stackexchange
17:17:01 <int-e> meh, that euclidthegame.com game has a bug where it resets the counter but does not remove all elements used so far...
17:20:33 -!- nycs has quit (Read error: Connection reset by peer).
17:20:34 -!- I has joined.
17:20:58 -!- I has changed nick to Guest97615.
17:24:12 <\oren\> Actually, I don't like Quira or stack overflow either
17:25:00 <quintopia> not liking things is a fun activity for all to enjoy!
17:25:18 <\oren\> quintopia: ok, now it's your turn
17:28:03 <\oren\> `? \oren\
17:28:27 <HackEgo> ​\oren\ is an attempt to improve upon oren. The only thing it actually improved was name recognizability, and it made everything else... well, there isn't much else in a nick, is there?
17:28:35 <\oren\> `? oren
17:28:38 <HackEgo> oren is a Canadian esolanger who would like to obliterate time zones so that he can talk to his father who lives in the same house. He'll orobablu get the hang of toycj tuping soon. He also has a rabid hatred of the two-storey lowercase a.
17:41:24 <quintopia> \oren\: i dont like misanthropy
17:49:33 <\oren\> misanthropy?
17:49:41 <\oren\> they're websites!
17:50:07 <\oren\> specifically, poorly designed and annoying to use ones
18:46:47 -!- augur has joined.
18:47:28 -!- augur has quit (Remote host closed the connection).
18:49:10 -!- augur has joined.
18:50:47 -!- Sprocklem has joined.
18:56:29 <\oren\> A friend of mine suffers from depression, so she took a vacation... to finland.
18:57:06 <shachaf> Finland is great. Sounds like a good plan.
18:57:10 <shachaf> `? finland
18:57:31 <HackEgo> Finland is a European country. There are two people in Finland, and at least nine of them are in this channel. Corun drives the bus.
18:59:20 <\oren\> i dunno, finland does not seem like a very cheerful place, but she's apparently loving it
19:00:02 -!- wob_jonas has joined.
19:01:14 <\oren\> hellwob_jonas!
19:01:28 <wob_jonas> I'm watching the SGDQ videos
19:01:35 <wob_jonas> (the temporary youtube encodes for now)
19:03:03 -!- Kaynato has joined.
19:07:19 <\oren\> holy crap the war between clinton and the goppers is getting intense
19:09:00 <\oren\> i hope they start televising the senate
19:13:42 -!- Xylon_ has quit (Quit: Page closed).
19:24:02 <int-e> \oren\: it should be fine in summer, I suppose
19:24:46 <int-e> pretty too... and she could look for Slartibartfasts signature... (hey, this is #esoteric...)
19:26:45 <int-e> I need to figure out what to do with my life ;)
19:38:46 <FireFly> Isn't that in Norway though
19:38:50 <FireFly> them fjords
19:38:55 <shachaf> HireFly
19:39:29 <shachaf> int-e: what are you going to do with your life
19:39:33 <int-e> FireFly: you're right, I keep mixing up the nordic countries.
19:39:55 <int-e> shachaf: I could start by not mixing up IRC channels.
19:40:09 <shachaf> Which channels did you mix up?
19:40:28 <FireFly> Hi
19:40:28 <int-e> this one, and another.
19:40:34 <int-e> you sure are curious today
19:40:36 <FireFly> Soon Tetris TGM on SGDQ
19:41:03 <shachaf> int-e: Well, maybe I need to figoure out what to do with my life.
19:41:58 <shachaf> figure
19:42:32 <int-e> <diversion>What kind of animal would shed bikes?</diversion>
19:43:17 <int-e> (I also imagine that the process would be quite painful. but nature is often cruel.)
19:45:13 <shachaf> Maybe the answer has to do with the bicyclic monoid.
19:45:45 <shachaf> Oh, wait, the diversion is already over.
19:45:55 <shachaf> So back to my life.
19:47:17 <pikhq> FireFly: :)
19:50:06 -!- jaboja has joined.
19:50:34 -!- myname has quit (Ping timeout: 272 seconds).
19:54:19 -!- myname has joined.
19:55:03 -!- jaboja has quit (Ping timeout: 264 seconds).
20:25:12 -!- Froox has quit (Quit: *bubbles away*).
20:29:01 -!- gniourf has quit (Remote host closed the connection).
20:37:36 -!- nycs has joined.
20:39:12 -!- Guest97615 has quit (Ping timeout: 260 seconds).
20:45:25 -!- `^_^ has joined.
20:45:30 -!- nycs has quit (Ping timeout: 246 seconds).
20:55:26 <Vorpal> Deewiant, hi!
20:57:13 <Vorpal> @tell Deewiant Working anything on mycology? I lifted some code from cfunge's DATE fingerprint and found a bug that apparently wasn't tested by mycology. Basically for dates pre-dating the Gregorian calendar I used Julian calendar, but only when converting from JDN to YMD, not the other way around. It probably isn't specified what calendar to use, but it should be the same for both directions I think
20:57:13 <lambdabot> Consider it noted.
20:57:52 <Vorpal> @tell Deewiant I'm going to change it to use the proleptic Gregorian calendar. That is, backdated Gregorian to apply before that point in time.
20:57:52 <lambdabot> Consider it noted.
21:02:03 <pikhq> Probably wise. The date of Gregorian changeover is actually region-specific.
21:03:17 <pikhq> (spanning from 1582 to 1923)
21:05:57 <Vorpal> pikhq, yes. I just think mycology should actually test you do the same thing in both directions :)
21:06:11 <pikhq> :)
21:06:42 <Vorpal> pikhq, I basically ported those functions to a different language (for a different project), and then I threw property based testing on it (like quickcheck) and it found that issue
21:07:12 <Vorpal> pikhq, watching summer games done quick?
21:07:22 <Vorpal> They are playing tetris right now. And it is super-impressive
21:07:24 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
21:07:31 <Vorpal> (on twitch)
21:08:11 -!- wob_jonas has joined.
21:08:20 <pikhq> Yup!
21:08:40 <Vorpal> pikhq, How can this NOT be the TAS segment
21:08:51 <shachaf> hi Vorpal
21:08:55 <Vorpal> hi
21:09:21 <shachaf> I was thinking about git clones of a subdirectory of a repository and things like that.
21:09:37 <shachaf> It might be that hg has advantages over git for that sort of thing.
21:15:31 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
21:17:53 <Vorpal> shachaf, hm?
21:18:04 <Vorpal> can you clone only a sub-directory?
21:18:10 <shachaf> I don't think so.
21:18:11 <shachaf> Maybe?
21:18:12 <Vorpal> Don't know if you can in hg.
21:18:16 <shachaf> I heard they were working on it in hg.
21:18:21 <Vorpal> Never had the need for it
21:18:24 <shachaf> Maybe Facebook was working on it.
21:18:29 <Vorpal> shachaf, in CVS you can. Same for SVN
21:18:40 <shachaf> Yes, but that's much easier, of course.
21:20:10 <shachaf> `smlist 446
21:20:15 <shachaf> `smlist 447
21:20:26 <HackEgo> smlist 446: shachaf monqy elliott mnoqy
21:20:31 <HackEgo> smlist 447: shachaf monqy elliott mnoqy
21:22:28 <int-e> CVS has a file-oriented storage
21:22:41 <int-e> SVN doesn't fetch any history, just snapshots
21:23:26 <shachaf> Anyway, if Facebook uses hg for their whole repository, they're probably doing some interesting things to make that work.
21:23:36 <int-e> the trouble with git isn't checking out subdirectories (there's "sparse" checkouts which do, essentially, that) but that fetching a repo means fetching its commits, and that will pull in the whole history for all subdirectories
21:24:14 <shachaf> int-e: Well, I want to not clone out the contents of trees other than the one I'm looking at.
21:24:22 <int-e> (of course the object structure itself would support partial fetches)
21:24:27 <Vorpal> shachaf, we use sub-repositories at work
21:24:33 <Vorpal> shachaf, not one hg repo for everything
21:24:46 <int-e> (but I don't think that the software does... it's fetching a full transitive closure)
21:24:50 <shachaf> But using one big repository for everything is the best.
21:25:02 <Vorpal> then for any given project we have a shell repo that just pulls in the sub-repos (there is no code in the shell repo, well okay there is a CMakeLists.txt, but that is it)
21:25:35 <Vorpal> shachaf, well, that has issues when there are many different products that don't need the same code
21:26:33 <int-e> shachaf: I know. What I was trying to say is that bringing up SVN or CVS is not very meaningful.
21:30:53 -!- `^_^v has joined.
21:31:44 <\oren\> I would say git has the features for 90% of use cases, svn has the features for 80%, and a tgz file with a bunch of back versions is enough for 70%.
21:32:10 <Vorpal> \oren\, no... tgz is not enough when developing
21:32:22 <Vorpal> sure if you just want to download a software
21:32:52 -!- `^_^ has quit (Ping timeout: 252 seconds).
21:33:19 <\oren\> Vorpal: I mean a tgz file containing subdirectories like project_June12/ project_June14/, etc.
21:33:36 <Vorpal> \oren\, *puke*
21:34:14 <\oren\> thats how many of my amateur things are done
21:34:34 <Vorpal> yes, and it is terrible
21:34:57 <Vorpal> I pretty much create a repo (hg) before I even write a line of code.
21:35:05 <Vorpal> And even for small personal projects
21:35:55 <shachaf> int-e: I mean, I think git/hg might be able to do that reasonably well.
21:36:16 <shachaf> At least in theory.
21:36:30 <Vorpal> int-e, no I was just wondering what tools *can* do what he asked for
21:36:37 <int-e> VCSs keep metainformation and allow you to separate changes into logical commits... doing that with tar would be really hard. (Sure, one could maintain a changelog... but that's extra effort and will still lose information)
21:36:38 <Vorpal> And the answer "no distributed ones"?
21:37:11 <Vorpal> what about source safe?
21:37:12 <\oren\> I don't think I need any of that in most cases
21:37:13 <Vorpal> XD
21:37:44 <Vorpal> \oren\, distributed is easier to set up in most cases. You don't need a server until you want to publish it
21:37:46 <int-e> \oren\: so you never ask yourself why a particular line made it into your code?
21:37:59 <Vorpal> with svn (and presumably cvs?) you absolutely do need that from the get-go
21:38:31 <\oren\> with tar you don't need a server um. ever.
21:38:48 <\oren\> an http server will work fine
21:39:41 <int-e> git works quite well without a server
21:39:44 <fizzie> int-e: I believe shallow clones are a thing now, up to a point.
21:39:50 <fizzie> Re "the whole history".
21:40:14 <int-e> fizzie: yes, but they are only shallow in that the history is pruned... shachaf wants to prune subtrees
21:40:28 <int-e> but indeed I should've been more precise
21:41:45 <\oren\> 50% of my projects are written as a single file
21:42:51 <int-e> \oren\: I'm objecting to the notion that tar files come even close to a version control system.
21:43:42 <\oren\> well, it's more like you know a bunch of commands that let you use diff, tar, and the shell together as a vcs
21:43:47 <int-e> But it's okay to develop some things without version control.
21:44:46 <\oren\> like, the major thing that this helps me do is track down regressions. i have the version from yesterday, and the version from 4 days ago, etc.
21:45:27 <fizzie> shachaf: Here's an idea: why don't you go and use one giant Perforce repository for everything, and then a layer of scripts to allow "cloning" particular sets of subdirectories as local git repositories, maybe with a bit of FUSE to still make a unified read-only view of the entire in-the-cloud repository possible.
21:45:33 <\oren\> without any vcs at all I wouldn't have that ability
21:46:29 <shachaf> fizzie: That sounds pretty good. But I might just reimplement Perforce myself if it doesn't scale to the size of my repository.
21:46:45 <int-e> \oren\: I guess the point of disagreement is that your 70% number, in my view, is closer to perhaps 20%.
21:48:13 <int-e> \oren\: For example, I can have two copies of the project at home and at work, have changes in both, and merge them sanely. That will be a quite horrible mess with tar and diff and patch. Not impossible, sure, but a lot more effort than it should be.
21:48:14 <fizzie> shachaf: Sounds good. Maybe you could call the whole thing "Tuber" or something like that, and then let's say "git9" for the git bridge tool.
21:48:55 <\oren\> int-e: well, yeah there is a learning curve in using diff and patch well
21:49:19 <Vorpal> <\oren\> with tar you don't need a server um. ever. <-- sure. I was talking about svn and cvs
21:49:27 <Vorpal> \oren\, I don't consider tar a serious alternative
21:49:34 <shachaf> fizzie: Anyway, those git scripts wouldn't clone a "true" clone of the repository.
21:49:49 <\oren\> it's much better than not using any vcs at all
21:49:51 <shachaf> Those hashes would lead to nowhere.
21:50:01 <shachaf> Or, you know what I mean.
21:50:05 <shachaf> So it's kind of scow.
21:50:12 <shachaf> I'm not expressing myself very well right now.
21:50:26 <Vorpal> \oren\, also git or hg is easier than tar. Just: hg commit -m "Changed stuff"
21:50:29 <fizzie> You can certainly see the seams, yes.
21:50:29 <Vorpal> or hg add .
21:50:34 <shachaf> \oren\: Why wouldn't you just use git instead of tar+diff+patch?
21:50:39 <shachaf> So much easier.
21:50:41 <Vorpal> \oren\, the tar thing actually needs more commands!
21:50:43 <\oren\> shachaf: git is not easy
21:50:50 <shachaf> Just: git commit -m "Changed stuff"
21:50:53 <Vorpal> \oren\, agreed. hg is though.
21:51:03 <Vorpal> \oren\, and TortoiseHg is a GREAT gui for it
21:51:13 <Vorpal> which git lacks
21:51:13 <int-e> then use mercurial... mercurial is only hard for git users, I believe :P
21:51:31 <Vorpal> int-e, well said. I'm a hg user, and I find git confusing.
21:51:40 <int-e> (mercurial is so close to git that I want to use it like git, and then it falls short all the time.)
21:51:41 <shachaf> fizzie: Did you read _The Gone-Away World_?
21:52:02 <fizzie> No, I didn't.
21:52:07 <Vorpal> int-e, branches work differently. Otherwise it is mostly the same I believe. But git has a more confusing user interface.
21:52:17 <shachaf> That book is pretty good.
21:52:31 <shachaf> Anyway there's a machine in it called "Piper 90".
21:52:37 <\oren\> I found that git has too many concepts
21:52:39 <Vorpal> fizzie, hm perforce, is that central or distributed?
21:52:42 <Vorpal> fizzie, and is it FOSS?
21:52:57 <int-e> Vorpal: I'm not disagreeing. Actually the thing that I find most confusing in mercurial is the "tip" thing that jumps around randomly when there's more than one head.
21:53:04 <pikhq> Vorpal: Central, proprietary.
21:53:07 <int-e> ("randomly" meaning I can't reliably predict it)
21:53:11 <shachaf> The whole "multiple heads" thing in hg sounds bizarre to me.
21:53:44 <Vorpal> int-e, you generally shouldn't have more than one head in a given named branch I would say. Also you probably want "default" instead of tip then?
21:54:01 <Vorpal> int-e, oh and I mostly use TortoiseHg. It is actually a great GUI.
21:54:17 <int-e> ... shell user here
21:54:29 <shachaf> The only complicated thing about git is that the commands are bizarre and arbitrary.
21:54:39 <shachaf> And each one does several different things.
21:54:41 <Vorpal> int-e, fair enough. Just saying that sometimes when things get complicated, a visual look at the tree can be easier to understand
21:54:52 <int-e> X is useful so that I can have 9 xterms on the screen simultaneously.
21:55:04 <Vorpal> int-e, especially in projects with multiple persons and complicated merges
21:55:20 <\oren\> shachaf: and stashes. I would like there to be no such thing as a stash
21:55:21 <Vorpal> then a visual look can be superior for understanding what the f**ck is going on.
21:55:31 <int-e> actually I use hg view quite a lot.
21:55:32 <shachaf> \oren\: Then don't use "git stash"?
21:55:40 <shachaf> They don't exist if you don't want them to.
21:55:48 <\oren\> shachaf: but that;s the only way to discard changes
21:55:48 <Vorpal> $ hg view
21:55:48 <Vorpal> hg: unknown command 'view'
21:55:48 <Vorpal> 'view' is provided by the following extension:
21:55:48 <Vorpal> hgk browse the repository in a graphical way
21:55:49 <Vorpal> hm
21:55:51 <Vorpal> Okay
21:56:11 <Vorpal> int-e, how does it compare to thg workbench?
21:56:11 <shachaf> \oren\: ?
21:56:22 <shachaf> What does discarding changes have to do with git stash?
21:56:55 <\oren\> you discard the changes in your working directory by saying ``git stash''
21:56:59 <Vorpal> int-e, https://www.mercurial-scm.org/wiki/HgkExtension suggests it is deprecated and hgview or tortoisehg should be used instead
21:57:08 <shachaf> No I don't?
21:57:21 <int-e> Vorpal: hg view is not very useful really... it's a stripped down clone of gitk. It helps me that it looks familiar. I wouldn't recommend it.
21:57:31 <shachaf> Oh, well, I thought you were actually being sinceret or something.
21:57:32 <Vorpal> ah
21:57:38 <shachaf> I should've known better.
21:57:46 <\oren\> I am. that's the way I learned git
21:58:10 <shachaf> The name "stash" might be a clue that it's not discarding anything.
21:58:58 <\oren\> git add my files with changes I want to keep, git commit to do... something. then git push which does an actual commit. finally git stash to discard uncommited changes
21:59:51 <\oren\> i guess git commit is how you add the message to your commit
22:00:18 <shachaf> Maybe you should spend half an hour or an hour learning how git works.
22:00:19 <fizzie> That's such a bizarre use of terminology.
22:00:36 <Vorpal> \oren\, for your usage, hg would probably be simpler.
22:01:06 <Vorpal> \oren\, especially given the amazing cross platform GUI that TortoiseHg provides
22:01:44 <shachaf> imo trollminology
22:01:45 <fizzie> Can you alias on top of existing commands? You could alias 'git stash' into actually being about discarding changes.
22:02:20 <Vorpal> fizzie, what is the proper way of discarding changes in git?
22:02:31 <\oren\> shachaf: well how would you discard the changes in your working copy that you don't want to commit?
22:02:41 <shachaf> git reset --hard?
22:02:46 <Vorpal> \oren\, in hg it is "hg revert"
22:03:03 <\oren\> ah. well that sounds legit
22:03:11 <shachaf> Or `git checkout file` to restore a file to its state in HEAD.
22:03:17 <Vorpal> shachaf, is that per file?
22:03:20 <Vorpal> Or the ENTIRE tree?
22:03:29 <Vorpal> Ah
22:03:30 <shachaf> git reset --hard is the entire tree.
22:03:34 <Vorpal> Hm
22:03:42 <shachaf> You don't do it too often.
22:03:44 <shachaf> Well, I don't.
22:03:50 <Vorpal> shachaf, what does --hard do?
22:04:01 <int-e> reset the staging area as well
22:04:13 <fizzie> And the working tree.
22:04:29 <int-e> and that (the staging area) is really the bit that you have to understand before git stops being confusing.
22:04:30 <fizzie> I mean, compared to --soft, which just adjusts what the head points at.
22:05:23 <Vorpal> int-e, that entire "staging area" concept is confusing and annoying I find
22:05:24 <\oren\> int-e: isn't the staging area just the list of files I want to commit? not confusing at all?
22:05:25 <shachaf> Vorpal: What git-reset actually does is change your current branch to point to some commit. The commit is implicitly HEAD, i.e. where you are right now.
22:05:25 <int-e> It's invisible at first, but that's where you prepare the commit. "git diff" shows differences between working tree and staging area. "git diff --cached" shows differences between staging area and the last commit; *those* are the changes "git commit" actually commits.
22:05:27 <Vorpal> And quite pointless
22:05:41 <shachaf> Vorpal: git-reset --hard doesn't change only the current branch, but also the things that int-e and fizzie said.
22:05:42 <int-e> Vorpal: it's a love or hate thing; there's no middle ground :P
22:05:57 -!- `^_^v has quit (Quit: This computer has gone to sleep).
22:06:17 <int-e> I find it quite powerful. And there's commit -a for the fairly common case that you want to commit all changes.
22:06:19 <shachaf> int-e: I have no strong feelings about the git staging area.
22:06:19 <Vorpal> int-e, agreed. And sure, there are things that hg could do better. But it is still less confusing than git
22:06:26 <shachaf> I could take it or leave it.
22:06:28 <int-e> shachaf: damn you! :P
22:06:45 <Vorpal> int-e, with hg you just list the files you want to commit if not all of them on the "commit" command line
22:06:49 <Vorpal> Makes sense to me
22:07:00 <\oren\> right, like svn
22:07:06 <Vorpal> also why does "git ci" not alias to "git commit"
22:07:09 <shachaf> You can do that with git-commit too.
22:07:11 <Vorpal> It does for hg, and it is shorter
22:07:17 -!- Frooxius has joined.
22:07:22 <shachaf> You can make that alias if you want.
22:07:37 <int-e> Vorpal: I have an alias for that in my configuration.
22:07:38 <shachaf> git config --global alias.ci commit
22:07:58 <Vorpal> Fair enough.
22:08:02 <Vorpal> Why is it not default though
22:08:06 <fizzie> "log1 = log --oneline --decorate=full --graph" is an alias I've started to use a lot.
22:08:26 <\oren\> shachaf: is there a way to add a staging area to svn
22:08:39 <shachaf> I don't know?
22:08:42 <Vorpal> The main issue I have with git is that there is no *good* GUI. For some reason I'm a GUI person when it comes to version control
22:08:49 <Vorpal> I'm a terminal person otherwise
22:08:55 <int-e> hmm, use git-svn?
22:09:24 <shachaf> fizzie: Ah, maybe I should use that instead of --decorate. I guess =full shows more information.
22:09:46 -!- `^_^v has joined.
22:09:52 <fizzie> It shows what sort of ref it is.
22:09:56 <\oren\> i mean it would be nice if I could add files to my 'svn ci' line one at a time
22:10:20 <shachaf> fizzie: --all is also a useful flag there, sometimes.
22:10:23 <\oren\> hmmm, I could use bash and a variable
22:10:37 <\oren\> instead of git add
22:10:39 <fizzie> shachaf: I think the =full part is slightly redundant in that at least some of the prefixes have their own colors.
22:11:52 <Vorpal> Is there a good version control system for unmergable binary files? At work we use svn for that, due to the locking support
22:11:57 <Vorpal> And hg for everything else
22:12:37 <shachaf> \oren\: It's true that in order to use git effectively you need to spend a bit of time up-front learning how it works.
22:13:05 <\oren\> staged=$staged' 'some_file.cpp
22:13:24 <\oren\> svn ci $staged
22:13:36 <shachaf> I don't mean learning what the commands do, which is kind of arbitrary but pretty easy to look up, but getting a mental model of what a git repository is.
22:15:02 <fizzie> I also was happy about "git worktree" getting in the real git.
22:15:18 <Vorpal> fizzie, what does that do?
22:15:47 <fizzie> Lets you have multiple working trees (with different branches checked out) linked to the same repository.
22:15:52 <shachaf> fizzie: whoa whoa whoa, fancy
22:16:12 <int-e> I found http://eagain.net/articles/git-for-computer-scientists/ useful when I started using git... http://nyuccl.org/pages/gittutorial/ looks more recent but similar in spirit.
22:19:03 <fizzie> I don't think I've really needed git worktree at home, but some IDEs (not naming names here) are a little bit too enthusiastic about having everything indexed all the time whenever anything in the filesystem changes to make jumping around between branches pleasant.
22:19:42 <fizzie> And (as far as I can tell, anyway) git doesn't really have a generalized way of saying "do this thing in a branch without checking it out".
22:20:00 <shachaf> You can do some things.
22:20:12 <shachaf> But not in general, I guess.
22:20:28 <shachaf> Anyway, I never used anything with a name similar to git9.
22:20:50 <fizzie> Yeah, that's the kind of thing you can't do to a branch without checking it out.
22:22:09 <Vorpal> fizzie, hm hg had something like that for ages
22:22:49 <fizzie> I use something with a name similar to git9, but only ever do the synchronize-with-the-world operation in a single branch called "clean", which I've found is a relatively nice way to manage whatever unpleasantess there is with the boundary to the Other System.
22:22:49 <Vorpal> fizzie, basically it has a command (as a bundled extension) to hardlink the shared revision data files between multiple repos.
22:23:55 <Vorpal> In fact hardlinking is how a local same-filesystem clone works
22:23:58 <shachaf> Hard link? What happens if you edit a file?
22:24:14 <shachaf> What you really want is a copy-on-write hard link, isn't it?
22:24:15 <Vorpal> shachaf, hg is made to handle that for the internal revision file data
22:24:16 <fizzie> You don't edit the repository data files manually, hopefully.
22:24:21 <Vorpal> the working tree is NOT hardlinked
22:24:28 <shachaf> Oh, the repository data files.
22:24:35 <fizzie> That's more or less how 'git worktree' works, except there's some automatic administrative bookkeeping as well. And there's long been custom scripts to do it, they just weren't included in the stock distribution until relatively recently.
22:24:42 <shachaf> The working tree ought to be COW hard-linked, though.
22:25:02 <fizzie> Yes, in a perfect world.
22:25:04 <Vorpal> shachaf, that is harder though. Probably possible with FUSE, btrfs or zfs?
22:25:16 <shachaf> I heard that btrfs supports that, at least.
22:25:46 -!- LKoen has joined.
22:26:01 <fizzie> shachaf: Anyhoo, I use something with a name similar to git9, but only ever do the synchronize-with-the-world operation in a single branch called "clean", which I've found is a relatively nice way to manage some of the unpleasantess there is with the boundary to the Other System.
22:26:23 <fizzie> Then you can pretend 'clean' is just a tracking branch for a remote, more or less.
22:26:35 <shachaf> Yes, I saw that when you said it earlier.
22:26:37 <fizzie> Oh.
22:26:49 <fizzie> I thought I didn't say that because I started to say something else.
22:26:59 <fizzie> You'll notice I further edited it a little bit.
22:27:16 <fizzie> E.g. "whatever" -< "some of the".
22:27:37 <shachaf> Sometimes I do that. I start editing a long line in the irssi buffer, ^U it, send it, send something else, then paste the ^U-ed text and forget I sent it already.
22:28:26 <Vorpal> shachaf, what is ^U?
22:28:43 <shachaf> Ctrl-U
22:28:48 <Vorpal> I get THAT
22:28:50 <shachaf> Delete (cut) the current line.
22:28:53 <Vorpal> it it like ctrl-x in modern editors?
22:29:04 <shachaf> Ctrl-X for the current line.
22:29:09 <Vorpal> Okay
22:29:41 <shachaf> https://groups.google.com/forum/#!topic/git-users/7b40Ie89Vqs
22:29:51 <shachaf> It's funny when people post things like that.
22:30:01 <fizzie> shachaf: I ended up there as well.
22:30:30 <shachaf> If you know the right strings to search for, you can find a lot of bug reports that are full of secret HTTP headers containing all sorts of secret data.
22:31:00 <shachaf> I guess it's not that secret.
22:31:02 <fizzie> Also, I'd just like to voice my disapproval of the world making C-w in Emacs kill-region, but in browsers close-tab.
22:31:22 <fizzie> I've closed a number of tabs while trying to edit text in a box.
22:31:24 <shachaf> Yes, that's terrible.
22:31:31 <shachaf> I've done the same thing.
22:31:33 <fizzie> I'm very happy about C-S-t.
22:31:46 <shachaf> But at work I use Mac OS, where you close a tab with Cmd-W.
22:31:49 <shachaf> So it's a bit better.
22:32:02 <Vorpal> fizzie, hah. I'm a sublime user these days
22:32:10 <shachaf> fizzie: Unfortunately I do all my browsing in Chrome's Incognito mode, so I can't C-S-t.
22:32:21 <fizzie> Oh, that's nasty.
22:32:26 <shachaf> I do some of it in Firefox' Private Browsing mode, I guess. Firefox does support it.
22:34:55 <myname> just use vim
22:34:58 <myname> next
22:35:07 <shachaf> I do use vim.
22:35:16 <shachaf> Not for IRC, though.
22:36:00 <fizzie> I have typed ":wq\n" into a number of text boxes as well.
22:36:04 <fizzie> But that's generally less dramatic.
22:36:29 <myname> you can actually do that with extensions
22:36:30 <int-e> ls ;-)
22:36:43 <\oren\> i'ts annoying how ^O saves on nano but open on everything else
22:37:54 <myname> it doesn't save on vim :p
22:38:37 <fizzie> shachaf: Speaking of secret stuff, there's a bunch of Chrome bug reports containing all kinds of internal nomenclature as well.
22:39:01 <fizzie> https://bugs.chromium.org/p/chromium/issues/detail?id=52734 for example.
22:39:50 <shachaf> fizzie: Yes, that's what I meant.
22:40:04 <shachaf> Well, I was talking about some chrome bug reports.
22:40:06 <shachaf> Not that one.
22:41:25 <shachaf> But any of them that include an http response.
22:41:40 <fizzie> Yes.
22:42:08 <shachaf> One time there was a picture of a data center in Finland that had pictures of machines with labels on them specifying their hostnames.
22:42:24 <shachaf> It was kind of funny. I think it's gone now, though.
22:42:36 <fizzie> At least the knowledge of there being a data center in Finland is no longer a secret.
22:42:51 <Vorpal> fizzie, what *is* git5?
22:43:17 <shachaf> Vorpal: fizzie described it by the name "git9" above.
22:43:27 <Vorpal> shachaf, okay and what actually is it?
22:43:29 <fizzie> Someone tried to tell me we still haven't publicly acknowledged the existence of the Hamina data center, which is patently untrue.
22:43:40 <fizzie> I mean, https://www.google.com/about/datacenters/inside/locations/hamina/
22:43:55 <shachaf> fizzie: You might have acknowledged its existence, but have you acknowledged the acknowledgement of its existence?
22:44:16 <Vorpal> fizzie, I read about it in the Swedish technology news paper "Ny Teknik" several years ago
22:44:43 <Vorpal> fizzie, so git9 is some kind of google-internal wrapper script for git?
22:44:56 <fizzie> It's really git5, I just wanted to be fancy.
22:45:22 <fizzie> And it's the bridge from local git to the well-published Perforce-based VCS we generally use.
22:45:32 <shachaf> I was surprised to learn about this one thing that says "the existence of [this thing] is confidential".
22:45:42 <shachaf> But in retrospect I shouldn't have been surprised.
22:45:48 <shachaf> But maybe that's why it was confidential.
22:45:51 <fizzie> So that people who're conversant with git can keep using it.
22:45:52 <Vorpal> fizzie, do you pump waste heat into the district heating system?
22:45:55 <shachaf> I've probably said too much.
22:45:59 <Vorpal> fizzie, I believe some data centers in Sweden do that
22:46:03 <fizzie> I wouldn't know.
22:46:11 <fizzie> If I knew I couldn't tell, unless it's something we advertise.
22:46:27 <shachaf> fizzie never talks about corporate secrets in public IRC channels.
22:46:40 <shachaf> Unless someone else has accidentally talked about them in public bug reports, I guess.
22:47:12 <fizzie> Even in the latter case, I might still apply some caution.
22:47:40 <\oren\> but do you store work emails on a private server in your home?
22:48:03 <shachaf> fizzie probably stores personal emails on a private server at work.
22:48:26 <fizzie> I've been thinking of storing personal data at work, just because of the tools.
22:48:55 <olsner> Vorpal: the magical thing about the "staging area" is that it's a lot more than a list of files to commit, it's really a snapshot of the entire tree that will be committed, so e.g. the staged files don't have to look the same as the files on disk... which probably sounds useless and confusing until you start using it all the time
22:49:05 <shachaf> fizzie: that's a rude way to refer to your colleagues hth
22:49:28 <shachaf> Yes, that's true.
22:49:39 <Vorpal> olsner, fair enough I guess. Most of the time it isn't really that useful a feature though. Or when it is I want multiple versions of it (similar to MQ patches in hg)
22:49:47 <shachaf> \oren\: If you modify a file, and then git add it, and then modify it again, and commit, only your first modification will be committed.
22:50:37 <shachaf> fizzie: https://www.youtube.com/watch?v=o4pnJdEZ2Iw is a song about that data center, I assume.
22:50:52 <Vorpal> olsner, I do use MQ, and MQ is a more advanced version of that, where you can have multiple snapshots as kind of editable non-pushable-until-you-convert commits. And you can reorder then and unapply them and reapply them and so on
22:51:04 <Vorpal> olsner, also you can version control your actual MQ patch queue itself
22:51:04 <olsner> shachaf: :D
22:51:05 <\oren\> shachaf: AAAAAAAAAA
22:51:17 <\oren\> NOOOOO that is awful
22:51:35 <shachaf> Because what you're really "adding" is the current state of the file, not just the file name.
22:51:37 <olsner> Vorpal: that sounds close to how I use branches
22:51:44 <Vorpal> \oren\, I can see the use of it. I don't think it should be the default behaviour though
22:52:01 <Vorpal> olsner, branches are pushable though? MQ patches are not.
22:57:17 <fizzie> shachaf: Man, that *is* a lot of internal headers in bugs.chromium.org. Maybe they should have some sort of a thing.
22:58:55 <Vorpal> fizzie, oh? Link to an example?
22:59:10 <fizzie> I don't think I should.
22:59:24 <Vorpal> fizzie, well it is public, I could probably find it anyway?
22:59:34 <fizzie> Probably, but maybe you won't care enough.
22:59:38 <Vorpal> you don't need to tell me what they mean
23:01:58 <Vorpal> yeah a lot of internal jargon so far at least
23:02:06 <Vorpal> fizzie, I assume you mean HTTP headers?
23:02:06 <fizzie> It's the principle of the thing. If the names and values are something we don't show to external users, I probably shouldn't be linking to them either, even if they leak all kinds of ways.
23:02:10 <Vorpal> Or bug headers?
23:02:23 <fizzie> HTTP, yes.
23:04:54 <Vorpal> Ah yes, quite a few ones with weird headers
23:09:36 <shachaf> Probably all of them would have a particular header with a value of the form /x/y/z/y/x/...
23:09:45 <shachaf> Probably I'm saying too much anyway.
23:11:37 <Vorpal> shachaf, you don't work at google do you?
23:11:48 <shachaf> No, but I used to.
23:11:51 <Vorpal> Ah
23:17:24 -!- Froox has joined.
23:18:31 -!- ais523 has joined.
23:19:26 -!- augur has quit (Ping timeout: 250 seconds).
23:20:33 -!- Frooxius has quit (Ping timeout: 246 seconds).
23:23:49 -!- augur has joined.
23:35:56 -!- `^_^v has quit (Quit: This computer has gone to sleep).
23:42:41 -!- JenElizabeth8 has joined.
←2016-07-06 2016-07-07 2016-07-08→ ↑2016 ↑all