←2013-12-12 2013-12-13 2013-12-14→ ↑2013 ↑all
00:04:06 -!- aloril has quit (Ping timeout: 252 seconds).
00:04:23 <shachaf> the #2 link on reddit.com/r/haskell is incredible
00:05:23 * kmc fails a "better judgement" roll
00:06:40 <kmc> i like "do" it lets me think that "i get into monad naow"
00:07:55 <shachaf> no kmc don't do it
00:07:56 <Bike> this is no fucking idea?
00:08:19 <Bike> is this spam
00:10:08 <shachaf> is what spam
00:10:13 <Bike> the fork io thing
00:10:17 <shachaf> me talking about it in this channel?
00:10:31 <shachaf> who can tell what's spam
00:10:40 <Bike> truly we live in a post-animal world
00:10:55 <shachaf> is people using @faq six times in a row in #haskell spam
00:11:26 <Bike> prrrrrobably?
00:12:22 <kmc> does that go to my faq now
00:12:39 <shachaf> no
00:12:40 <shachaf> it should
00:12:50 <kmc> sigh
00:12:50 <shachaf> int-e: Can you make @faq link to the FAQ on the wiki?
00:12:52 <shachaf> @where faq
00:12:52 <lambdabot> http://www.haskell.org/haskellwiki/FAQ
00:12:56 <kmc> i thought that changed in the past
00:12:58 <shachaf> int-e: U+261D
00:13:03 <kmc> maybe it changed back :'(
00:13:10 <kmc> whatever Not My Problem™
00:13:44 <shachaf> my /ignore list is now 37 entries long
00:13:51 <shachaf> perhaps i can make #haskell good that way
00:16:27 <oerjan> <kmc> i like "do" it lets me think that "i get into monad naow"
00:16:45 <oerjan> > do '!'
00:16:47 <lambdabot> '!'
00:17:00 <kmc> that's a quote from the author in that reddit thread
00:17:03 <kmc> :3
00:17:35 <shachaf> > Just $ do x :: Int
00:17:36 <lambdabot> Couldn't match expected type `GHC.Types.Int'
00:17:36 <lambdabot> with actual type `Debug.SimpleReflect.Expr.Expr'
00:17:36 <shachaf> Er.
00:17:42 <shachaf> > Just $ do 5 :: Float
00:17:42 <lambdabot> Just 5.0
00:17:48 <oerjan> kmc: OKAY
00:18:35 <shachaf> :t \x -> \y -> x + y :: Int :: Int -> Int :: Int -> Int -> Int
00:18:35 <lambdabot> Int -> Int -> Int
00:18:50 * oerjan blinks
00:19:12 <Bike> ow
00:19:14 <oerjan> is that ... correct
00:19:19 <shachaf> why not
00:19:37 <Bike> it's parsing as (\y -> x + (y :: Int)) :: Int -> Int etc right
00:19:58 <oerjan> Bike: um pretty sure the x + y go together.
00:20:04 <shachaf> The x + y go together.
00:20:08 <Bike> whatevs
00:20:19 <shachaf> (\y -> (x + y) :: Int) :: Int -> Int and so on.
00:21:09 <oerjan> i suppose it's correct.
00:21:25 <oerjan> the second :: forces the inner lambda to end.
00:23:35 <oerjan> > do do do 5 :: Int :: Int :: Int
00:23:36 <lambdabot> 5
00:23:42 <oerjan> thought so.
00:24:02 <oerjan> i guess that's more plainly by the } insertion rule
00:25:02 -!- Sgeo has joined.
00:25:26 <oerjan> > let in let in let in 5 :: Int :: Int :: Int
00:25:28 <lambdabot> 5
01:05:56 -!- doesthiswork has joined.
01:08:25 -!- Phantom_Hoover has joined.
01:18:12 <Sgeo> Tekmo is usually awesome, but is http://www.haskellforall.com/2013/02/you-could-have-invented-comonads.html ok, or is it just going to be bad?
01:18:29 <Sgeo> (It's the 'comonads are objects' article)
01:20:05 <oerjan> istr people didn't generally agree with the assessment.
01:20:29 <shachaf> i disagree with most of his assessments
01:20:36 -!- muskrat has quit (Quit: Leaving).
01:20:47 <oerjan> shachaf: what, why do you hate categories
01:21:23 <shachaf> can't stand associative operations
01:21:32 <shachaf> esp. if they have identities
01:22:18 <oerjan> shachaf: hm, i think you may have dissociative identity syndrome.
01:23:06 <oerjan> oh sorry, *disorder
01:23:39 <shachaf> disørjan
01:25:46 -!- Sprocklem has joined.
01:29:08 -!- Slereah_ has joined.
01:29:49 -!- Slereah has quit (Ping timeout: 265 seconds).
01:30:53 -!- Sorella has quit (Remote host closed the connection).
02:03:31 <shachaf> http://cokmett.github.io/cokmett/
02:05:18 <kmc> wow
02:05:28 <kmc> also i'm in that photo
02:05:57 <kmc> i'm the guy in the back with the "Bevar Christiania" shirt
02:06:08 <kmc> and no head or right arm or legs
02:09:19 <shachaf> i can confirm that kmc has no head
02:09:25 <shachaf> along with me and douglas harding
02:10:09 <Phantom_Hoover> what happened you your heads and right arms and legs
02:10:38 <shachaf> i have right arms and legs
02:10:43 <kmc> loaned them out for some quick cash
02:11:10 <shachaf> arms and legs are worth a lot
02:11:25 <Bike> is a cis pair worth more than a trans pair
02:11:33 <kmc> c.c
02:12:08 <oerjan> whew i was wondering if that type declaration was ever going to end
02:12:09 -!- Slereah_ has joined.
02:12:39 <oerjan> (3rd or 4th attempt)
02:12:54 <shachaf> i was hoping it wouldn't
02:13:33 -!- Slereah has quit (Ping timeout: 272 seconds).
02:19:30 * kmc -> afk
02:21:02 <oerjan> surely you mean kmc :: Semidetachedoid a f k
03:10:34 <oerjan> doesthiswork: context plz
03:11:06 * oerjan checks logs
03:11:16 -!- Phantom_Hoover has quit (Remote host closed the connection).
03:12:01 <doesthiswork> 6:05
03:12:33 <oerjan> @time doesthiswork
03:12:41 <oerjan> now what
03:12:50 <oerjan> @time oerjan
03:12:53 <Bike> oerjan: kmc's messages at :05.
03:12:53 <lambdabot> Local time for oerjan is Fri Dec 13 04:12:51 2013
03:13:13 <oerjan> Bike: i'm really just making a timezone statement here.
03:13:14 <doesthiswork> woops sorry i forgot about time zones
03:14:01 <oerjan> also i found ph's message after missing it the first time i searched
03:14:58 <doesthiswork> and if it helps I was making a reference to full metal alchemist
03:15:44 <oerjan> OKAY
03:15:48 <oerjan> (tdnh)
03:16:55 <doesthiswork> Tall Dark and Not Handsome?
03:18:57 <Bike> team devil not him, about a dispute in the power puff girls fan dom
03:21:05 <oerjan> `? tdnh
03:21:06 <HackEgo> Traceback (most recent call last): \ File "/usr/bin/umlbox", line 296, in <module> \ conff.close() \ IOError: [Errno 28] No space left on device
03:21:17 <oerjan> that should clear it up.
03:21:44 <doesthiswork> makes perfect sense now
03:22:40 <kmc> awkward
03:22:49 <kmc> `true
03:24:44 <HackEgo> No output.
03:24:54 <Gregor> I need a bigger VPS @_@
03:24:59 <Bike> `run true; echo $?
03:25:01 <HackEgo> 0
03:26:36 <oerjan> `run filenotfound; echo $?
03:26:38 <HackEgo> bash: filenotfound: command not found \ 127
03:27:39 <oerjan> `run cat filenotfound; echo $?
03:27:40 <HackEgo> cat: filenotfound: No such file or directory \ 1
03:27:54 <oerjan> `run cat --filenotfound; echo $?
03:27:55 <HackEgo> cat: unrecognized option '--filenotfound' \ Try `cat --help' for more information. \ 1
03:28:04 <Bike> weak
03:28:26 <oerjan> i thought you weren't supposed to return 1 on syntax errors
03:37:13 <monotone> There's not much in terms of exit code convention other than "0 is okay, anything else means something went wrong."
03:39:28 <Bike> http://www.youtube.com/watch?v=qw7y4_JDkRM roguelike
03:39:49 <Bike> yeah are exit codes even used for anything but && and so on.
03:41:13 <quintopia> Gregor: what exactly happens if we ask hackego to write a really big file? and then we keep doing that? it seems reasonable to think that we could write quite a lot of useless data in under hackego's timeout
03:41:14 <kmc> some commands document multiple non-zero exit codes and some scripts may use them but i'm not thinking of an example right now
03:43:46 <Gregor> quintopia: It has filesize limits as well as time limits.
03:44:29 -!- LinearInterpol has quit (Ping timeout: 252 seconds).
03:44:48 <quintopia> Gregor: is there any limit on the rate of file creation
03:45:02 <Gregor> Not really, I suppose.
03:45:20 <quintopia> not that i'm actually going to try and ddos hackego
03:45:22 <quintopia> just curious
04:03:04 -!- ^v has quit (Quit: http://i.imgur.com/MHuW96t.gif).
04:05:44 -!- CADD has joined.
04:19:24 -!- carado has quit (Ping timeout: 252 seconds).
04:22:51 -!- conehead has joined.
04:24:54 -!- doesthiswork has quit (Quit: Leaving.).
04:26:58 -!- pikhq has quit (Ping timeout: 246 seconds).
04:28:54 -!- pikhq has joined.
04:29:00 -!- ^v has joined.
04:29:31 -!- ^v has quit (Client Quit).
04:59:12 -!- tromp has quit (Remote host closed the connection).
05:14:10 -!- Bike has quit (Ping timeout: 240 seconds).
05:19:03 -!- Sprocklem has quit (Ping timeout: 250 seconds).
05:19:46 -!- Bike has joined.
06:38:16 <Sgeo> Maybe reading a paper about a hypothetical syntax for comonads may help
06:38:46 <oerjan> hypothetical, it may
06:38:51 <oerjan> *+ly
06:39:18 -!- conehead has quit (Quit: Computer has gone to sleep.).
06:41:25 <Sgeo> Oh, I get it (well, the notation... I think)
06:47:17 <quintopia> `? monad
06:47:20 <HackEgo> Monads are just monoids in the category of endofunctors.
07:00:01 -!- earthereal has joined.
07:03:25 <kmc> http://www.geekwork.com/opportunity/2270-job-vintage-system-software-developer-and-administrator
07:06:13 <shachaf> `run echo 'Monads are just free monad monad monad algebras.' > wisdom/monads
07:06:17 <HackEgo> No output.
07:07:17 <oerjan> `rm wisdom/monads
07:07:21 <HackEgo> No output.
07:07:33 <shachaf> oerjan: ?
07:07:37 <oerjan> please learn how ? works thx
07:07:45 <shachaf> `? monoid
07:07:47 <HackEgo> Monoids are just categories with a single object.
07:07:48 <shachaf> `? monoids
07:07:49 <HackEgo> Monoids are the easy version of categories.
07:07:54 <oerjan> oh hm
07:07:55 <shachaf> imo precedent
07:07:58 <oerjan> `revert
07:08:02 <HackEgo> Done.
07:08:10 * oerjan had forgot what he learned
07:08:51 <oerjan> i'm not sure i approve of having separate plural entries in general.
07:08:56 <shachaf> Oh, I could even have used `learn there.
07:09:01 <oerjan> no.
07:09:07 <oerjan> `cat bin/learn
07:09:08 <HackEgo> ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(a\|the\) //;s/s\? .*//') \ info=$(echo "$1" | sed 's/[^ ]* //') \ echo "$1" >"wisdom/$topic" \ echo "I knew that."
07:09:08 <shachaf> Oh, `learn drops the plural too?
07:09:13 <shachaf> h8r
07:09:13 <oerjan> yep
07:09:28 <oerjan> new feature, it now also drops articles
07:09:32 <shachaf> Can we have multiple possible values for a key?
07:09:40 <shachaf> Then `quote can be a special case of `?.
07:10:10 <oerjan> ಠ_ಠ
07:10:10 <myndzi> ¯|¯⌠
07:10:10 <myndzi> /^\|
07:10:44 <kmc> ttha_ttha
07:10:59 <kmc> hi myndzi ꙮ_ꙮ
07:11:10 <oerjan> shachaf: btw i think the only reason wisdom/monoids exists is that both entries were added before learn/?'s plural handling.
07:11:38 -!- Bike has quit (Quit: Reconnecting).
07:11:52 -!- Bike has joined.
07:11:57 <shachaf> oerjan: Hmm, I think I added it to test how the plural handling works or something.
07:12:00 <shachaf> I don't remember.
07:12:21 <shachaf> Anyway, picking a random wisdom line sounds good to me.
07:12:27 <oerjan> it is possible i'm thinking about another entry.
07:13:24 <shachaf> `run echo 'Monoidal categories are just 2-categories with a single object.' > wisdom/'monoidal category'
07:13:28 <HackEgo> No output.
07:14:03 <oerjan> is that true.
07:14:12 <shachaf> isn't it
07:14:38 <oerjan> i suppose i may be thinking of monoidally closed categories.
07:15:39 <shachaf> that's a monoidal category where tensor product has a right adjoint, right
07:16:04 <oerjan> "##Just like for any category E, the full subcategory spanned by any given object is a monoid, it is the case that for any 2-category E, and any object C∈Ob(E), the full 2-subcategory of E spanned by {C} is a monoidal category."
07:16:16 <oerjan> i suppose that hints at your claim.
07:17:07 <shachaf> https://unapologetic.wordpress.com/2007/08/16/2-categories/
07:18:54 <shachaf> oh, that post talks about the category where the arrows are adjunctions
07:18:59 <shachaf> apparently it's a 2-category
07:19:24 <quintopia> i moved all kinda shit around on my computer, and now the shell and the launcher pane both can't find firefox automatically. and i was pretty sure the links were aimed correctly
07:19:35 <shachaf> i mean, an interesting one
07:19:39 <oerjan> ok
07:19:52 -!- oerjan has quit (Quit: Nite).
07:20:05 <shachaf> makes sense, i guess, pairs of natural transformations
07:20:12 <shachaf> does this extend to chu spaces somehow
07:20:24 <quintopia> if link to firefox, will the system chase all those softlinks to launch it?
07:20:28 <quintopia> what
07:20:31 <quintopia> lag
07:20:35 * quintopia retypes all that
07:21:43 <quintopia> if that one environment variable says to look for things to launch in /usr/bin and /usr/bin is actually a soft link to /usrbin and /usrbin contains a soft-link to firefox elsewhere, will the system properly chase all those links to launch it
07:23:55 -!- prooftechnique has quit.
07:25:37 -!- FreeFull has quit.
07:30:48 -!- Bike has quit (Quit: restarting).
07:31:07 -!- Bike has joined.
07:40:22 <fizzie> I think it was better before the retyping.
07:41:49 <kmc> quintopia: it should yeah
07:41:54 <myname> why the hell do you have a /usrbin?
07:42:02 <kmc> there is some maximum symlink depth
07:42:22 <kmc> but also I think that would apply to a single filename lookup, and not to e.g. chasing links to find a directory, and then to find files in that directory
07:43:00 <fizzie> There can be more than one maximum symlink depth, it's not terribly well standardized, but I concur with kmc that it doesn't aggregate across different path name components.
07:43:07 -!- earthereal has quit (Quit: Leaving).
07:43:39 -!- ThatOtherPerson has joined.
07:43:42 <quintopia> myname: /usr is on a very small partition. i needed to install something new, so i just moved /usr/bin up to / to make space
07:43:44 <kmc> hooray concurrency
07:43:53 <ThatOtherPerson> Hey, can someone help me understand Lazy K?
07:43:53 <myname> :S
07:44:24 <quintopia> yeah i have no idea what's causing this problem then.
07:50:11 <fizzie> Processing Data: c02c0202.mfc; Label c02c0202.lab ERROR [+6510] LOpen: Unable to open label file /[REDACTED]/c02c0202.lc02c0202.mfc why are you looking for a file with a retarded name like that?
07:50:24 <fizzie> Oh, maybe it's yet another buffer overflow problem.
07:51:08 <myname> yabop
07:51:10 <kmc> unable to open file \x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90
07:51:43 <fizzie> Oh yes, the (non-redacted) path is 268 characters, and "c02c0202.mfc" is 12, and 268-12 is 256, and 256 characters should be enough for everyone.
07:52:00 <shachaf> unable to clopen file
07:52:21 <kmc> open(filename, O_CLOSE)
07:53:07 <shachaf> clearly creat is just clopen(filename, O_CREAT)
07:53:27 <kmc> O_CANADA
07:53:42 <shachaf> O_NOW_I_SEE
07:53:51 <myname> O_M_G
08:01:14 -!- ThatOtherPerson_ has joined.
08:03:24 -!- ThatOtherPerson has quit (Ping timeout: 246 seconds).
08:08:38 -!- ThatOtherPerson has joined.
08:10:58 -!- ThatOtherPerson_ has quit (Ping timeout: 265 seconds).
08:16:55 <quintopia> is there a language where every command just toggles some binary state
08:19:17 <Sgeo> "Haskell, the warm fuzzy nuclear waste."
08:20:47 <kmc> @let (☢) = (>>=)
08:20:47 <lambdabot> Parse failed: Illegal character ''\152''
08:20:59 <kmc> unicode 'fuck you' sign
08:21:27 <kmc> wait they have that now, "Reversed Hand with Middle Finger Extended"
08:21:41 <quintopia> gah unicode
08:21:50 <quintopia> where do they come up with all that shit
08:21:53 <kmc> japan
08:22:10 <kmc> 420 smoke japan every day
08:22:14 <quintopia> is the middle finger thing like UCS3 or something
08:22:50 <kmc> hm?
08:23:25 <fizzie> !SENT_START BELIEVE ME WE HAVE BE KIND OF AMERICA THIS IS TO COST SAYS !SENT_END
08:23:37 <kmc> it's in Unicode 7.0 and I don't think there's a corresponding ISO/IEC 10646 version yet
08:23:54 <kmc> it's in the Supplementary Multilingual Plane
08:23:59 <quintopia> ah
08:24:11 <kmc> U+1F595
08:24:12 <quintopia> apparently middle fingers are pretty universal
08:24:13 -!- farrioth has joined.
08:25:55 <fizzie> U+1F596 RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
08:26:11 <quintopia> ...spock?
08:26:21 <kmc> "ring finger"??? that's not culturally neutral
08:26:40 <quintopia> spock is not culturally neutral
08:26:47 <fizzie> http://www.babelstone.co.uk/Blog/Images/1F594_5_6.png that hand looks really awkward.
08:26:49 <quintopia> VERY AMERICA SO JEW
08:27:23 <fizzie> But it's good to finally get the REVERSED VICTORY HAND to complement the VICTORY HAND of the BMP.
08:27:40 <fizzie> (Now, is that REVERSED (VICTORY HAND) or (REVERSED VICTORY) HAND?)
08:27:56 <kmc> now all we need is RAISED HAND WITH EXTENDED INDEX AND MIDDLE FINGERS TOGETHER AND EXTENDED LITTLE FINGER
08:28:07 <fizzie> Reversed victory, a well-known euphemism for a defeat.
08:28:20 <fizzie> I didn't fail, I just reverse-succeeded.
08:28:47 <quintopia> kmc: it's a total shocker to me they haven't already
08:29:44 * quintopia wonders if finland gets kmc's joke
08:29:56 <kmc> hi finland
08:30:12 <quintopia> there are a lot of finland here. are you talking to all of them?
08:30:20 <fizzie> This part of Finland didn't. It must not be culturally neutral.
08:33:20 -!- ThatOtherPerson has quit (Ping timeout: 245 seconds).
08:33:53 <fizzie> Oh, it's that thing, I had in fact heard of it.
08:34:14 <kmc> http://ru.wikipedia.org/wiki/%D0%A8%D0%BE%D0%BA%D0%B5%D1%80_(%D0%B6%D0%B5%D1%81%D1%82) w/ rhyme translations
08:34:15 <mroman> Good morning.
08:34:24 <kmc> good mroman to you too
08:35:09 <mroman> I hope nobody reads my name as Mr. Oman
08:35:47 <mroman> Although I'd have nothing against owning some rich-of-oil sultan-state
08:35:48 <quintopia> nope
08:35:51 <farrioth> mroman: I read it as morman for a second.
08:35:57 <quintopia> it's definitely Mr. O. Man
08:36:02 <shachaf> `relcome farrioth
08:36:06 <HackEgo> farrioth: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/wiki/Main_Page>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
08:36:08 <kmc> Mr. O-Man
08:36:17 <farrioth> Eww, colors.
08:36:25 <kmc> taste the rainbow
08:36:34 <kmc> mroman: how should I read it?
08:36:43 * farrioth prints.
08:36:47 * farrioth eats.
08:36:56 <mroman> m. roman
08:37:01 <farrioth> As I said, eww, colors.
08:37:13 <mroman> The m is just there because "roman" is already taken
08:37:15 <quintopia> `WeLcOmE farrioth
08:37:18 <HackEgo> FaRrIoTh: WeLcOmE To tHe iNtErNaTiOnAl hUb fOr eSoTeRiC PrOgRaMmInG LaNgUaGe dEsIgN AnD DePlOyMeNt! FoR MoRe iNfOrMaTiOn, ChEcK OuT OuR WiKi: <hTtP://EsOlAnGs.oRg/wIkI/MaIn_pAgE>. (fOr tHe oThEr kInD Of eSoTeRiCa, TrY #eSoTeRiC On iRc.dAl.nEt.)
08:37:29 <mroman> and the m is the first letter of my laste name
08:37:32 <farrioth> Is there a leet version?
08:37:43 <mroman> `W31c0m3 farrioth
08:37:45 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: W31c0m3: not found
08:37:46 <shachaf> I hope not.
08:37:59 -!- CADD has quit (Ping timeout: 272 seconds).
08:38:06 <farrioth> Incedentally I've read the wiki for a while.
08:38:09 <olsner> mroman: you could be Mr Oman
08:39:03 <quintopia> have you posted there
08:40:05 <farrioth> quintopia: From memory I made some minor edits to the Befunge page a while ago.
08:40:49 <farrioth> It's the only language I'm reasonably good at.
08:40:55 <quintopia> are you more of an implementation, use, or design sort of person
08:40:56 <farrioth> Well, that and Python.
08:41:36 <farrioth> quintopia: Use, although I wrote a Befunge-93 interpreter the other day. And I'v had a few vague design ideas.
08:55:40 -!- Slereah_ has quit (Remote host closed the connection).
08:56:44 -!- Slereah has joined.
08:57:47 <mroman> You could write an interpreter for spacefish 1D
08:58:49 <farrioth> mroman: It's in need of one?
08:58:55 <mroman> Yeah
08:59:34 <mroman> It's based on the idea of antennas sending data at some specific level/amplitude
08:59:48 <mroman> and an outside observer measures the level/amplitude/intensity of the signal
09:00:09 <mroman> however, if other antennas near other antennas also emit signals they overlap and cause distortien
09:00:40 <mroman> http://esolangs.org/wiki/Spacefish
09:00:58 <mroman> That and you can't place antennas outside the range of other antenas
09:01:23 <mroman> that's the idea. And I figured that could be applied to Brainfuck
09:01:41 <farrioth> mroman: I was about to say, it looks like Brainfuck2D with distortion.
09:02:01 <mroman> It esentially is Brainfuck with distortion, yes
09:03:43 <mroman> but it would be boring if you could just use every 256th cell so you'll always be out of distortion range of any other cell
09:03:49 <mroman> therefore you only start with one cell
09:03:59 <mroman> and the range of distortion expands the space
09:04:19 <mroman> which means that a cell outside the range of distortion of any other cell is actually a non-existing cell
09:04:32 <mroman> (i.e. that space does not exist outside distortion ranges)
09:04:45 <farrioth> I get it.
09:05:29 <farrioth> The code there is for the 1D version, right?
09:06:11 <mroman> Yeah
09:06:34 <mroman> The code there uses a fixed array and just skips over undistorted cells when doing > or <
09:06:40 <mroman> there might be better approaches to handle this
09:06:58 <farrioth> What is the data structure of space[ptr]? It's a list of length 2...
09:06:59 <mroman> the distortion is log2
09:07:09 * farrioth is better at writing code than reading it.
09:07:20 <mroman> farrioth: space[ptr][0] is the level the antenna is sending at
09:07:28 <mroman> and space[ptr][1] is the distortion
09:07:30 <mroman> but yeah.
09:07:35 <mroman> It's probably better to start with clean code :)
09:07:46 <mroman> I'm not really a Python guy
09:09:39 <farrioth> Fair enough.
09:09:50 <farrioth> Python does allow for comments though, you know...
09:11:07 <farrioth> So the data is basically a tape which is writable only adjacent to filled cells?
09:16:58 <quintopia> i like python
09:17:02 <farrioth> Cells store integers, right?
09:17:25 <quintopia> it's only writable in *distorted* cells
09:17:29 <quintopia> which may not be adjacent
09:17:53 <quintopia> mroman: why "spacefish"
09:18:11 <farrioth> Cool. If a cell was distorted, but then ceases to be distorted does it remain writable?
09:29:05 <farrioth> Can you move the pointer to a cell that isn't writable?
09:30:12 <fizzie> !SENT_START NO ONE'S U. S. FOR THE F. S. R. I. C. NEEDS MORE MONEY !SENT_END
09:30:55 <fizzie> fungot: Why can't you ever sound as intelligible as these outputs?
09:30:55 <fungot> fizzie: no, it's fun!!! fnord is not).
09:33:11 <mroman> farrioth: Then the cell dies
09:33:26 <mroman> if a cell moves out of the distortion range of another cell it ceases to exist
09:34:46 <mroman> the fact is, that two non-adjacent cells can become adjacent if the space between those cells ceases to exist
09:35:07 <mroman> like uhm
09:35:16 <mroman> [1,2,1]
09:35:39 <farrioth> mroman: Oh hell.
09:35:55 <mroman> hm wait
09:36:16 <mroman> I assume that can happen :)
09:36:41 <mroman> on wait no
09:37:10 <mroman> farrioth: I think we recently discussed in this channel
09:37:20 <mroman> that every cell must have a "path" to the initial cell
09:38:27 <mroman> that means: If you have [1,0,*1*,1] (where ** denotes the initial cell)
09:38:37 <mroman> you actually have to delete the first element
09:38:37 <farrioth> That means that, in practice, the indeces of your data change.
09:39:05 <mroman> ah. replace the initial cell with 2
09:39:13 <mroman> [1,0,*2*,1] <- so
09:39:15 <farrioth> And also that you can never read a 0, which makes ( useless.
09:39:40 <farrioth> If I'm not mistaken, which I might be.
09:39:55 <farrioth> But I know I am hungry, so will be back soon.
09:39:56 <mroman> If you intially had [1,0,8,1] but decrement it to [1,0,2,1]
09:40:15 <mroman> the space shrinks to [0,2,1]
09:41:00 <quintopia> i've just sneezed for the seventh time in a row help
09:41:15 <quintopia> this room has no tissues for my issues
09:41:18 <mroman> You can think of it as every antenna must be able to send data to the initial antenna (other antennas might repeat that data)
09:41:37 <quintopia> nvm found some
09:41:45 <mroman> farrioth: It's probably wise to have index 0 be the initial cell
09:41:51 <mroman> and index -1 to be the cell left to it
09:41:56 <mroman> and index 1 to be the cell right to it
09:42:38 <mroman> farrioth: And you can read a zero
09:43:04 <mroman> If you have the value 255 in a cell which is distorted by 1
09:43:12 <mroman> the measurable value changes to 0
09:43:19 <mroman> (wrap around like brainfuck)
09:43:25 <farrioth> mroman: Ah, yes, that makes sense.
09:44:03 <mroman> Theres the cell's own value (the intensity the antenna is sending at) and a measurable value
09:44:46 <farrioth> mroman: So the cell disappears if the 'sending' value is zero, but not if the 'recieving' value is zero.
09:44:54 <farrioth> mroman: ?
09:45:24 <quintopia> mroman: you know what would be fun? a language where you can put antennas anywhere, but they are the only way to modify cells. Plus, they don't just attenuate normally, they create standing alternating waves that constructively and destructively interfere.
09:45:48 <mroman> farrioth: Well...
09:45:57 <mroman> a cell disappears if it is not affected by distortion
09:46:10 <mroman> so cell with sending value 0 do exist
09:46:28 <mroman> Initially you start with [0]
09:46:34 <mroman> ^- your initial cell
09:46:39 <mroman> if you increment it to two 2
09:46:47 <mroman> you have a distortion range of 1 around that cell
09:46:52 <mroman> therefore space expands to [0,2,0]
09:47:21 <mroman> if you decrement the initial cell to 1 the distortion range drops to zero
09:47:30 <mroman> and therefore space shrinks to [1]
09:48:28 <farrioth> mroman: If the sending value can never be 0, that would mean that it is impossible to read a 0.
09:48:50 <quintopia> farrioth: you know how when you hold an antenna close to another antenna there's a lot of feedback and things change rather unexpectedly and nonlinearly?
09:49:06 <quintopia> farrioth: be warned that situations like that are common in spacefish
09:49:33 * farrioth is warned.
09:49:41 <quintopia> farrioth: the sending value can be zero. just probably don't want to try to read a zero from the initial cell
09:50:07 <mroman> farrioth: Like I said: The sending value can be zero
09:50:42 <mroman> A sending value expands the space by log2 of its sending value
09:52:21 <farrioth> mroman: < mroman> so cell with sending value 0 do exist
09:52:36 <quintopia> so a cell with value zero makes contracts all of space to a point (by expanding space by negative infinity)
09:53:16 <quintopia> or does that just expand space infinitely in the opposite direction?
09:53:36 <farrioth> You want to expand space by 1/inf I think.
09:53:46 <farrioth> And so the point does still exist?
09:53:59 <quintopia> farrioth: but log_2(0)=-infty
09:56:10 <farrioth> But you were using the log values to calculate the effect on other cells, not to move/delete them, right?
09:56:37 <mroman> A cell with sending value 0 does not expand space
09:56:42 <mroman> it does not distort anything
09:56:44 <mroman> but it can exist
09:57:04 <farrioth> Okay.
09:57:09 <mroman> farrioth: You have to delete all cells (except the initial cell) that are not distorted
09:57:16 -!- mrclarinet has joined.
09:57:20 <mroman> http://codepad.org/foE6Odji
09:57:24 <mroman> ^- see here
09:58:59 <farrioth> mroman: That makes much more sense, thanks.
10:00:19 <mroman> You can start at the initial cell
10:00:26 <mroman> and search to the left for the first undistorted cell
10:00:46 <mroman> and then remove the undistorted cell and every cell to the left of that cell (because it has no connection to the initial cell anymore)
10:00:51 <mroman> then the same thing to the right
10:01:54 <farrioth> Ah okay, so the undistorted cells don't just cease to exist and collapse, but the 'tape gets cut off' at an undistorted cell.
10:02:25 <farrioth> Which means I can implement it as left and right lists, which is handy.
10:02:34 <farrioth> Like INTERFUNGE.
10:03:06 <mroman> http://codepad.org/VUryyN4C <- like in this scenario
10:03:16 <mroman> the two eights would keep each other alive
10:03:25 <mroman> but they have no connection to the initial cell (4)
10:03:35 <mroman> so the two eights must die
10:03:42 <mroman> farrioth: Yes @Left and right lists
10:04:12 <mroman> farrioth: Yep @cut off
10:04:25 <farrioth> Cool.
10:05:48 <farrioth> Using log_2() for distortion means that the values may be floats, but the cells only store ints, right?
10:06:27 <farrioth> So how does it work if I read a value (with distortion), which is a float, increment it, and store it in a cell (as an int)?
10:06:30 <mroman> Cells are 8 bit values unsigned integeres
10:06:38 <mroman> farrioth: Use floor
10:06:48 <quintopia> it's much harder in spacefish 2D. you have to reverse the distortion of a deleted cell before you can figure out what else needs deleting. unless you maintain a tree that maps the connections of every written cell to the initial cell.
10:08:08 <quintopia> farrioth: count the number of bits starting from the most significant 1 bit. then subtract 1. that's how far out the distortion goes. the distorted cell has floor (1/2*sending cell).
10:08:15 <mroman> farrioth: The distortion of 255 is 127, 63, 31 and so on
10:08:28 <farrioth> mroman: Okay.
10:09:11 <farrioth> quintopia: Can't you just use the distortion matrix itself to check for connections?
10:09:31 <quintopia> farrioth: in the 2D case or what?
10:10:12 <mroman> math.floor(math.log(sendingValue)/math.log(2)) is how far a cell distorts
10:10:24 <mroman> and the distortion is cut in half at every cell
10:10:33 <farrioth> quintopia: Yes.
10:11:54 <quintopia> farrioth: that's the first method. modify the distortion matrix as a result of a cell deletion, then see if that caused any other deletions. propagate as needed. it works, but means some operations might suddenly hang the interpreter while it propagates a massive wave of cell deletions.
10:12:23 <farrioth> quintopia: You'd get that with any method, wouldn't you?
10:13:05 <farrioth> mroman: That's the same as math.floor(math.log(sendingValue, 2)), isn't it?
10:13:08 <quintopia> farrioth: it's even harder than that. you can't just check to see if a cell's distortion is zero to delete it. a cell with with positive distortion might require deleting.
10:13:49 <farrioth> quintopia: Oh?
10:14:08 <quintopia> somehow you have to keep track of whether it is being distorted by something connected to the root or not. which means tracing everyone that's distorting it and seeing if any lead to the root.
10:14:21 <quintopia> so i think storing the tree of connections ends up being much faster
10:14:27 <quintopia> s/tree/graph
10:14:38 <quintopia> or DAG really
10:14:46 <farrioth> Anyhow, I though you were using log_2(foo) to calculate the value of the distortion, not its distance, am I wrong?
10:14:56 <quintopia> farrioth: righto.
10:15:12 <mroman> No
10:15:25 <quintopia> oh no
10:15:29 <quintopia> listen to mroman
10:15:29 <mroman> The distortion is sendingValue * (0.5^distance) I think
10:15:40 <mroman> It's just halfed with increasing distance
10:15:49 <quintopia> mroman: don't forget the floor
10:15:59 <mroman> and yeah. Floor
10:16:07 <farrioth> So we don't actually use a log?
10:16:15 <mroman> farrioth: No you don't have to use log at all
10:16:18 <quintopia> mroman: also floor(log(sending,2))=number of bits of sending -1 :D
10:16:28 <farrioth> mroman: Okay, that makes it easier.
10:17:10 <quintopia> mroman: except at zero where floor(log(sending,2)) = -infty, but #bits-1 = 0. which means #bits-1 is better
10:17:13 <mroman> You can just iterate to the left and right and divide by two
10:17:26 <mroman> until it is 0
10:17:29 <farrioth> mroman: Cool, doing that now.
10:17:57 <mroman> That's what my sucky-python-demo did
10:18:59 <quintopia> mroman: do you think you're up to the challenge of writing a working 2D version? :D
10:19:14 <mroman> Probably not :(
10:19:38 <mroman> You can get irregularly shaped space I think
10:19:44 <mroman> well
10:19:54 <mroman> should be posible with bounding rectangle magic
10:19:58 <mroman> *possible
10:20:21 <mroman> but you'd still have to keep track of actuall *existing* cells when moving around with ><v^
10:20:24 <quintopia> whatever space is, it will always be a finite union of rectangles
10:20:36 <mroman> quintopia: Yep.
10:20:41 <quintopia> union of overlapping squares really
10:20:59 <mroman> true
10:21:33 <mroman> farrioth: Btw: IO and loops work on measurable values
10:21:38 <quintopia> mroman: it's not really a hard problem i think. just iterate quick over undistorted cells in your array (wrapping if necessary) until you hit another distorted one
10:21:53 <mroman> quintopia: But that would not be very efficient
10:22:09 <mroman> I think
10:22:16 <quintopia> mroman: in practice it would not be nearly so slow as the huge mess that space deletion would be
10:22:28 <mroman> Good point
10:22:45 <mroman> yeah
10:22:46 <farrioth> mroman: How do you output a float as a character?
10:22:58 <mroman> you'd just need to handle the occasional space expansion
10:23:01 <mroman> farrioth: There are no floats
10:23:08 <mroman> Everything is an integer 8bit
10:23:08 <quintopia> farrioth: why are you using floats
10:23:10 <mroman> like in brainfuck
10:24:14 <mroman> Since a cell is 8bit 0-255 and distortion is also an integer
10:25:13 <farrioth> quintopia: Because I forgot we were using floor; ignore me.
10:25:28 <mroman> You can just do integer arithmetic
10:25:47 <mroman> Integer arithmetic automatically floors stuff ;)
10:25:56 <mroman> 5 / 2 = 2
10:26:17 <mroman> `python print (5 / 2)
10:26:18 <HackEgo> python: can't open file 'print (5 / 2)': [Errno 2] No such file or directory
10:26:27 <quintopia> mroman: i think if you used a linked-grid instead of an array as your data structure, you could do some real magic. so in addition to each cell having its address (which is used to figure out when you should stop filling space between and start modifying existing space), it has links to cells above and below, left and right, cyclic. you can insert space and remove space in constant time anywhere you need it.
10:27:03 <quintopia> then > and < and v and ^ would be constant time too
10:27:07 <fizzie> `run python -c 'print 5 / 2' #itym
10:27:08 <HackEgo> 2
10:27:32 <fizzie> Though in Python 3, IIRC, it doesn't. (You have to write // explicitly for the integer division.)
10:28:05 <fizzie> `run python -c 'from __future__ import division; print 5 / 2; print 5 // 2;'
10:28:07 <HackEgo> 2.5 \ 2
10:28:46 <quintopia> mroman: imagine a relativistic spacefish, where rather than expanding the distortion distance, incrementing a cell actually *created space*
10:29:01 <quintopia> i feel like such a language needs to exist
10:30:42 <mroman> uhm
10:30:50 <mroman> Spacefish does exactly that?
10:31:06 <quintopia> it doesn't create space
10:31:15 <quintopia> it just expands into space
10:31:28 <mroman> What's the difference?
10:31:34 <quintopia> if i write to two cells five apart, those two cells will always be five cells apart
10:31:56 <quintopia> unlike in the universe, where distance galaxies get ever further away due to the expansion of space between us and them
10:31:57 <mroman> ah. I see what you mean
10:31:58 <farrioth> How's this for calculating distortion? http://susepaste.org/20821743
10:33:20 <mroman> What's in arr?
10:34:21 <farrioth> mroman: You pass it a single-item list containing the sending value which causes the distortion.
10:35:04 <mroman> does this distort in both directions?
10:35:15 <mroman> and it does not seem to be iterative
10:35:30 <mroman> if I pass in [255] it becomes [255,128], right?
10:35:38 <mroman> ah wait
10:35:42 <mroman> it's recursive :D
10:35:54 <mroman> yeah, seems about right
10:37:26 -!- ThatOtherPerson has joined.
10:40:00 <farrioth> mroman: Cool. It doesn't do it in both directions; you just copy it and flip it over.
10:42:24 -!- Taneb has joined.
10:44:44 <quintopia> farrioth: in practice, you might have to distort cells that already exist. so you can't just blithely append. check if there's already a cell first!!!!!
10:45:30 <farrioth> quintopia: I'm not appending the distortion values output by that function, I'm summing them with the relevant part of the distortion map.
10:45:48 <quintopia> oh
10:45:51 <quintopia> okay :)
10:46:03 <farrioth> currentDistortion = Distort([value])
10:46:03 <farrioth> for i in range(1, len(foo))
10:46:04 <farrioth> distortionMap[pointer+i] += currentDistortion[i]
10:46:28 <farrioth> Which distorts to the right.
10:46:42 <farrioth> s/foo/currentDistortion/
10:47:13 <farrioth> Except that only sums, it won't handle appending.
10:47:21 <farrioth> Appendages?
10:47:24 <quintopia> and in the same loop doing pointer-i gets the left side. got it.
10:47:46 <farrioth> Yeah.
10:47:50 <quintopia> appending would be a simple if statement
10:48:01 <quintopia> deleting a bit more complicated but i think you got it
10:48:01 <farrioth> Until pointer goes negative.
10:48:42 <quintopia> when pointer goes negative you append and shift?
10:48:48 <quintopia> *prepend
10:50:02 <farrioth> Yeah. I just need some methods for a distortionMap class to handle that transparently.
10:50:39 <quintopia> makes sense
10:53:01 -!- Sorella has joined.
10:53:37 -!- Sorella has quit (Changing host).
10:53:37 -!- Sorella has joined.
10:53:52 <quintopia> farrioth: don't negative indices address from the end of the list?
10:54:05 <quintopia> in python
10:54:53 <farrioth> quintopia: Yes, but we don't want that to happen.
10:55:11 <quintopia> farrioth: then i have a way to do it that will require less program logic
10:55:20 <farrioth> quintopia: Go ahead.
10:57:03 <quintopia> farrioth: what is the pythonic linked list that allows constant time insertions "in the middle"
10:57:37 <farrioth> quintopia: I have no idea, sorry.
10:57:48 <mroman> You can insert into regular lists
10:57:55 <mroman> it's probably not constant time but who cares :)
10:58:22 <quintopia> farrioth: okay cool. just start with a marker element (-1 would be out of band here) and have the represent "infinity". if you go to add distortion to this element while distorting to the right, insert an element before it and use that instead. if you go to add distortion to it while distorting to the left, insert a cell after it and use that instead.
11:00:21 <quintopia> and when you delete to the right, delete the same cell until it is the sentinel. when you delete to the left, compute a bit, and delete after the sentinel enough to bring the new "left" there, or go delete from the beginning.
11:00:22 <farrioth> That seems equivalent to prepending/appending if the element to be distorted is out of range to the left/right, which is what my plan was.
11:01:29 <quintopia> farrioth: it MAY be equivalent. but in my mind, it seemed like it would eliminate the need for bounds checking.
11:01:59 <quintopia> forget i mentioned it
11:02:01 <quintopia> it's late
11:02:07 <quintopia> slash early
11:02:16 <farrioth> quintopia: -1 is basically a boundary marker, so checking for it is just like checking for bounds.
11:02:29 <farrioth> And for deletion, I was going to use slices.
11:02:35 <quintopia> righto
11:02:55 <quintopia> but you're doing a bad job slicing out the part of your own memory where i said all that
11:03:55 -!- aloril has joined.
11:04:01 <farrioth> My memory is large, so the slice operation takes a while to return.
11:04:25 <shachaf> fungot: how large is your memory
11:04:25 <fungot> shachaf: the lectures are better than fnord. so maybe in february, i was
11:04:39 <shachaf> fungot was
11:04:39 <fungot> shachaf: it's like programming in general). however, i think we're going to be
11:04:51 <shachaf> fungot: you're bad at complete sentences, you know that?
11:04:51 <fungot> shachaf: i can imagine it's not that the definitions come after the effect, there's no reason to define both a procedure foo* and a thin macro wrapper foo, afaict.
11:06:12 <fizzie> Can't really argue with that, can you.
11:06:39 <mroman> fungot: ...
11:06:39 <fungot> mroman: appears to be a
11:06:54 <mroman> fungot: a?
11:06:54 <fungot> mroman: python is similar enough to these languages." false false false
11:07:07 <shachaf> fungot: you're false
11:07:08 <fungot> shachaf: as am i
11:07:08 <quintopia> well
11:07:19 <quintopia> false is a language. and both it and python are turing-complete
11:07:20 <quintopia> so
11:07:23 <quintopia> similar enough.
11:07:26 <mroman> fungot: You should balance your "
11:07:26 <fungot> mroman: ought to be a
11:07:37 <mroman> otherwise somebody is gonna make a graph of unbalanced quotes
11:07:40 <fizzie> fungot: This very night, before the rooster crows, you will deny the similarity of Python three times.
11:07:40 <fungot> fizzie: what i'm wondering. free software is teh winner! http://www.chick.com/ reading/ tracts/ 0084/ 0084_01.asp in
11:07:45 <shachaf> fizzie: Please balance fungot's "
11:07:46 <fungot> shachaf: that's really wrong. i can be myself... we don't need no stinkin' r. fnord has to be fnord/ fingerprints
11:08:09 <quintopia> you heard it from fungot. no quote balancing
11:08:10 <fungot> quintopia: the previous sentence, so that i can sense the hesitation to use promises in that way...
11:08:13 <fizzie> fungot: You tell him. I'm fed up with people always being "up my grill" about the balanced punctuation.
11:08:13 <fungot> fizzie: perhaps you've heard of that, though.) python it wouldn't be very hard
11:08:30 <fizzie> fungot: Yes, but you're not written in Python.
11:08:31 <fungot> fizzie: no i didn't. nice. the switch is because i want to
11:08:49 <quintopia> fungot wishes to be written in python
11:08:49 <fungot> quintopia: x86_64 has been historically chosen, and not even necessarily the same as
11:08:55 <quintopia> sorry fizzie. time to get writing.
11:09:21 <fizzie> I have the babbling (with balanced parentheses and quotes, no less) already done in Perl for prototyping.
11:09:44 <farrioth> I better start documenting more. I wrote this function less than an hour ago and now I need to figure out what it does.
11:10:22 <quintopia> fizzie: so now just plug in your perl->befunge code generation functions and off we go!
11:21:57 <farrioth> So, is + (foo = foo + 1) or (foo = foo + 1 + distortion)?
11:22:09 <farrioth> (Please remind me if I asked already.)
11:24:24 <mroman> + increases ONLY the sending value
11:24:43 <farrioth> Got it.
11:24:57 <mroman> otherwise distortion would cause distortion and such
11:25:02 <mroman> wich would get really messy
11:25:07 -!- nooodl has joined.
11:25:17 <mroman> esentially + tell's your antennas commander to increase it's intensity :)
11:25:24 <mroman> so foo += 1
11:26:05 -!- mrclarinet has quit (Ping timeout: 250 seconds).
11:29:28 -!- AnotherTest has joined.
11:32:43 -!- Bike has quit (Ping timeout: 252 seconds).
11:35:29 -!- Bike has joined.
11:36:00 <farrioth> Well I need a break from coding after 130 lines.
11:46:25 <farrioth> I should be off to bed, but this has been enjoyable. Catch you all here another time.
11:48:40 -!- farrioth has quit (Quit: leaving).
11:59:24 -!- LinearInterpol has joined.
12:07:08 <mroman> Linear International Police
12:27:50 <mroman> Is it wrong of me to assume that farrioth is not as experienced as I thought :)
12:27:55 -!- pikhq has quit (Ping timeout: 245 seconds).
12:29:32 -!- pikhq has joined.
12:30:02 <int-e> shachaf: Re: @faq. I can. I still think it's funny but I guess what worked well when #haskell had 300 people (and many who had seen lambdabot's conception) doesn't really scale to 1200.
12:32:37 <fizzie> Huh. I connected to the shared Windows Terminal Server, and it gave me the Windows Server "Shutdown Event Tracker" "Why did the computer shut down unexpectedly?" dialog.
12:33:54 <int-e> `run df
12:33:55 <HackEgo> df: cannot read table of mounted file systems: No such file or directory
12:34:09 * int-e hugs HackEgo
12:35:30 -!- carado has joined.
12:35:37 <int-e> Did Gregor say where all the space had gone?
12:41:11 <mroman> `run du
12:41:13 <HackEgo> 14776./.hg/store/data/bin \ 2100./.hg/store/data/lib \ 52380./.hg/store/data/paste \ 12152./.hg/store/data/share/_word_data \ 20./.hg/store/data/share/lua/5.2/luarocks/build \ 28./.hg/store/data/share/lua/5.2/luarocks/fetch \ 8./.hg/store/data/share/lua/5.2/luarocks/fs/unix \ 8./.hg/store/data/share/lua/5.2/luarocks/fs/win32 \ 36./.hg/stor
12:42:07 <Gregor> It's not like it's just HackEgo's space.
12:52:38 -!- MindlessDrone has joined.
13:03:56 -!- boily has joined.
13:04:01 -!- metasepia has joined.
13:04:37 -!- MindlessDrone has quit (Ping timeout: 272 seconds).
13:06:31 -!- Slereah_ has joined.
13:07:25 -!- Slereah has quit (Ping timeout: 246 seconds).
13:08:26 <boily> good unpentadactyl morning!
13:08:51 -!- pikhq has quit (Ping timeout: 260 seconds).
13:09:22 -!- pikhq has joined.
13:09:55 <int-e> `run du / | sort -rn
13:10:26 <HackEgo> du: cannot read directory `/proc/tty/driver': Permission denied \ du: cannot read directory `/proc/1/task/1/fd': Permission denied \ du: cannot read directory `/proc/1/task/1/fdinfo': Permission denied \ du: cannot read directory `/proc/1/task/1/ns': Permission denied \ du: cannot read directory `/proc/1/fd': Permission denied \ du: cannot read dir
13:10:38 <int-e> `run du / 2>/dev/null | sort -rn
13:11:01 <HackEgo> 4251168/ \ 1629696/var/irclogs \ 1629696/var \ 1059104/usr \ 1013416/opt \ 919000/opt/ghc \ 785888/opt/ghc/lib \ 784204/opt/ghc/lib/ghc-7.6.1 \ 688872/var/irclogs/_esoteric \ 618232/var/irclogs/raw \ 608152/usr/lib \ 518600/hackenv \ 336564/usr/share \ 318236/opt/ghc/lib/ghc-7.6.1/ghc-7.6.1 \ 292452/hackenv/.hg \ 292088/hackenv/.hg/
13:17:09 <boily> `run ls /var/irclogs
13:17:10 <HackEgo> _ai \ _corewars \ _esoteric \ _esoteric-chess-variants \ _esoteric-minecraft \ _esoteric_shadow \ _\FRIends*foR*evEr\ \ _FRIends*foR*evEr \ _glogbot \ index.php \ log \ log.css \ log.js \ _plof \ raw \ _scapegoat \ stalker.php \ _weaaM
13:17:12 -!- Sgeo has quit (Read error: Connection reset by peer).
13:17:18 <boily> `run ls /var/irclogs/_esoteric
13:17:20 <HackEgo> 2003-01-18-raw.txt \ 2003-01-18.txt \ 2003-01-19-raw.txt \ 2003-01-19.txt \ 2003-01-20-raw.txt \ 2003-01-20.txt \ 2003-01-21-raw.txt \ 2003-01-21.txt \ 2003-01-22-raw.txt \ 2003-01-22.txt \ 2003-01-23-raw.txt \ 2003-01-23.txt \ 2003-01-24-raw.txt \ 2003-01-24.txt \ 2003-01-25-raw.txt \ 2003-01-25.txt \ 2003-01-26-raw.txt \ 2003-01-26.txt \ 2003-01-
13:17:33 <boily> obviously.
13:18:19 <int-e> `run head -1 /var/irclogs/_esoteric/2003-01-18-raw.txt
13:18:21 <HackEgo> ​< 1042851425 ? :clog!unknown@unknown.invalid JOIN :#esoteric
13:18:39 <int-e> `run head -1 /var/irclogs/_esoteric/2003-01-18.txt
13:18:41 <HackEgo> 00:57:05: -!- clog has joined #esoteric.
13:18:43 -!- MindlessDrone has joined.
13:18:48 <int-e> makes sense.
13:20:21 <int-e> `run cd /opt/ghc/lib/ghc-7.6.1; echo */
13:20:22 <HackEgo> array-0.4.0.1/ base-4.6.0.0/ binary-0.5.1.1/ bin-package-db-0.0.0.0/ bytestring-0.10.0.0/ Cabal-1.16.0/ containers-0.5.0.0/ deepseq-1.3.0.1/ directory-1.2.0.0/ filepath-1.3.0.1/ ghc-7.6.1/ ghc-prim-0.3.0.0/ haskell2010-1.1.1.0/ haskell98-2.0.0.2/ hoopl-3.9.0.0/ hpc-0.6.0.0/ html/ include/ integer-gmp-0.5.0.0/ latex/ old-locale-1.0.0.5/ old-time-1.1
13:22:03 -!- impomatic has joined.
13:23:29 <impomatic> Weird! http://www.youtube.com/watch?v=mjJORYJWR6w
13:23:36 <boily> imphellomatic.
13:27:06 -!- aloril has quit (Ping timeout: 252 seconds).
13:27:36 <impomatic> Boujoily.
13:27:55 <impomatic> Bonjoily even...
13:28:36 -!- aloril has joined.
13:31:19 <boily> bon impomatin, also.
13:42:35 -!- aloril has quit (Ping timeout: 250 seconds).
13:51:16 -!- nisstyre has joined.
13:55:11 -!- aloril has joined.
14:05:59 -!- aloril has quit (Ping timeout: 252 seconds).
14:07:08 -!- aloril has joined.
14:08:16 <impomatic> Is anyone here from Northfield, Vermont?
14:08:54 <boily> impomatic: let me check the The File...
14:09:58 -!- ^v has joined.
14:10:27 <boily> impomatic: nobody in Vermont. either LinearInterpol or myself is the nearest.
14:10:41 <impomatic> Thanks boily. I just need someone to drop by someone's house for me :-)
14:10:57 <LinearInterpol> lol, The File.
14:12:00 <impomatic> I've been trying to track down Philip K Hooper who wrote a few programming articles about 35 years ago!
14:12:15 <boily> impomatic: I'm about 240 km away by car, and LinearInterpol is 265 mi.
14:12:55 <impomatic> Hmmm... maybe I'll just send a letter. Just in case he still lives in the same house.
14:13:14 <boily> ~duck philip k hooper
14:13:14 <metasepia> --- No relevant information
14:13:57 <impomatic> He wrote the last quote on this page http://corewar.co.uk/earlycw.htm
14:14:23 <LinearInterpol> Core War is alive and well?!
14:14:45 <impomatic> Alive and well :-)
14:15:16 <LinearInterpol> Damn.
14:15:54 -!- nisstyre has quit (Quit: Leaving).
14:20:59 * impomatic googles for Dave Cutler's email address!
14:21:25 <impomatic> (I'm harassing random people today about Core War history!)
14:44:44 -!- mrhmouse has joined.
15:18:43 -!- yorick has joined.
15:39:35 -!- pikhq has quit (Ping timeout: 245 seconds).
15:41:08 -!- pikhq has joined.
16:21:55 -!- CADD has joined.
16:27:50 -!- LinearInterpol has quit (Read error: Connection reset by peer).
16:32:56 -!- nooodl_ has joined.
16:33:48 -!- nooodl has quit (Read error: Connection reset by peer).
16:33:49 -!- heroux has quit (Read error: Operation timed out).
16:37:03 -!- jconn has quit (*.net *.split).
16:37:03 -!- shachaf has quit (*.net *.split).
16:37:04 -!- clog has quit (*.net *.split).
16:38:03 -!- heroux has joined.
16:38:22 -!- shachaf has joined.
16:38:45 -!- conehead has joined.
16:42:45 -!- Bike_ has joined.
16:43:37 -!- Bike has quit (Disconnected by services).
16:43:38 -!- Bike_ has changed nick to Bike.
16:44:25 -!- iamcal has quit (Ping timeout: 338 seconds).
16:44:34 -!- glogbackup has quit (Write error: Broken pipe).
16:44:34 -!- nortti has quit (Write error: Broken pipe).
16:44:54 -!- CADD has quit (Remote host closed the connection).
16:44:56 -!- shachaf_ has joined.
16:46:15 -!- iamcal has joined.
16:49:41 -!- nortti has joined.
16:49:42 -!- CADD has joined.
16:49:48 -!- shachaf has quit (*.net *.split).
16:50:07 -!- CADD has changed nick to Guest2828.
17:01:53 -!- Sprocklem has joined.
17:06:03 -!- zzo38 has joined.
17:06:18 -!- jconn has joined.
17:12:17 -!- clog has joined.
17:12:55 -!- jconn has quit (Ping timeout: 245 seconds).
17:16:24 -!- glogbackup has quit (Ping timeout: 246 seconds).
17:16:31 -!- Slereah_ has quit (Read error: Connection reset by peer).
17:17:42 -!- Slereah has joined.
17:19:51 -!- jconn has joined.
17:35:44 -!- ThatOtherPerson has quit (Ping timeout: 250 seconds).
17:38:02 -!- FreeFull has joined.
17:41:33 -!- LinearInterpol has joined.
17:42:48 -!- Phantom_Hoover has joined.
17:47:12 <mrhmouse> In Haskell, you can use . to compose functions like "f . g == \x f (g x)"; is there any built-in operator ? such that "f ? g == \x g (f x)"?
17:48:29 -!- zzo38 has quit (Remote host closed the connection).
17:51:28 <coppro> mrhmouse: (flip .)
17:51:47 <coppro> ;)
17:53:57 <mrhmouse> coppro: I know that I could write it myself; I was wondering if there was a built-in operator already :) Thanks!
17:56:30 <coppro> there's probably some typeclass function that simplifies down to it
17:56:41 <coppro> >=> maybe
17:56:45 <coppro> :t >
17:56:46 <lambdabot> parse error on input `>'
17:56:48 <coppro> :t >=>
17:56:49 <lambdabot> parse error on input `>=>'
17:56:53 <coppro> :t (>=>)
17:56:53 <lambdabot> Monad m => (a -> m b) -> (b -> m c) -> a -> m c
17:57:00 <coppro> I can't think straight right now
17:57:12 <coppro> :t (>->)
17:57:13 <lambdabot> Not in scope: `>->'
17:57:13 <lambdabot> Perhaps you meant one of these:
17:57:13 <lambdabot> `>>' (imported from Control.Monad.Writer),
17:58:01 <b_jonas> @hoogle (b->c)->(a->b)->a->c
17:58:02 <lambdabot> Prelude (.) :: (b -> c) -> (a -> b) -> a -> c
17:58:03 <lambdabot> Data.Function (.) :: (b -> c) -> (a -> b) -> a -> c
17:58:03 <lambdabot> Control.Parallel.Strategies (.|) :: (b -> c) -> Strategy b -> (a -> b) -> (a -> c)
17:58:11 -!- pikhq has quit (Ping timeout: 245 seconds).
17:58:15 <b_jonas> @hoogle (a->b)->(b->c)->a->c
17:58:16 <lambdabot> Prelude (.) :: (b -> c) -> (a -> b) -> a -> c
17:58:16 <lambdabot> Data.Function (.) :: (b -> c) -> (a -> b) -> a -> c
17:58:16 <lambdabot> Control.Parallel.Strategies (-|) :: (a -> b) -> Strategy b -> (b -> c) -> (a -> c)
17:58:19 -!- pikhq has joined.
17:58:25 -!- doesthiswork has joined.
17:58:41 <b_jonas> @pl \g f x -> f (g x)
17:58:41 <lambdabot> flip (.)
17:59:03 <b_jonas> it seems there isn't
17:59:08 <b_jonas> so just define one yourself if you need one
17:59:41 <b_jonas> but if you want to be sure, ask on #haskell
18:01:03 <mrhmouse> b_jonas: thanks :)
18:01:37 <b_jonas> wait a minute
18:01:44 <b_jonas> those listings can't be complete
18:02:03 <b_jonas> shouldn't hoogle have found fmap as a result?
18:02:18 <b_jonas> I thought it was magical enough
18:02:27 <coppro> :t fmap
18:02:28 <lambdabot> Functor f => (a -> b) -> f a -> f b
18:02:33 <coppro> with what functor?
18:03:07 <b_jonas> coppro: unify the types yourself or ask #haskell
18:03:34 <coppro> oh wait, I misread you
18:03:46 <coppro> yeah, I'm surprised it didn't catch fmap there
18:04:28 <b_jonas> @hoogle (a -> b) -> f a -> f b
18:04:29 <lambdabot> Data.Traversable fmapDefault :: Traversable t => (a -> b) -> t a -> t b
18:04:30 <lambdabot> Prelude fmap :: Functor f => (a -> b) -> f a -> f b
18:04:30 <lambdabot> Data.Functor fmap :: Functor f => (a -> b) -> f a -> f b
18:04:43 <b_jonas> I think it's limited to three matches here
18:04:46 <b_jonas> let's ask him on http
18:05:25 <mrhmouse> b_jonas: I checked Hoogle for (a -> b) -> (c -> a) -> (c -> b), but didn't see anything at a quick glance
18:06:03 <b_jonas> check it for (a -> b) -> f a -> f b tpp
18:06:42 <b_jonas> mrhmouse: it will show (<**>) which is (flip (<*>)) I think
18:06:57 <b_jonas> and might or might not be exactly what you asked for
18:08:23 <mrhmouse> b_jonas: I was just curious if there was a way to compose functions by listing them from left to right in the order of application, preferably using some infix operator
18:08:44 <b_jonas> mrhmouse: yes, and doesn't <**> do that?
18:09:04 <mrhmouse> b_jonas: no clue, I'm only just starting to learn Haskell :) I'll check its documentation, though
18:09:24 <b_jonas> you might get more definite answers on #haskell, I'm affraid to tell anything here
18:14:49 <int-e> @type (<<<)
18:14:50 <lambdabot> Category cat => cat b c -> cat a b -> cat a c
18:15:15 <int-e> > ((+1) <<< (*2)) 0
18:15:16 <lambdabot> 1
18:15:22 <int-e> > ((+1) >>> (*2)) 0
18:15:23 <lambdabot> 2
18:15:27 <int-e> > ((+1) . (*2)) 0
18:15:28 <lambdabot> 1
18:19:34 <b_jonas> > ((+1) <**> (*2)) 0
18:19:35 <lambdabot> Occurs check: cannot construct the infinite type: a0 = a0 -> b0
18:19:36 <lambdabot> Expected type: a0 -> a0 -> b0
18:19:36 <lambdabot> Actual type: a0 -> a0
18:20:18 <b_jonas> > ((+1) <$> (*2)) 0
18:20:19 <lambdabot> 1
18:20:24 <b_jonas> > ((+1) <$ (*2)) 0
18:20:25 <lambdabot> <Integer -> Integer>
18:22:23 -!- ThatOtherPerson has joined.
18:22:31 -!- Guest2828 has quit (Ping timeout: 250 seconds).
18:26:23 <FreeFull> (<$>) is the same as (.) when used on functions
18:26:39 <FreeFull> (<<<) is also the same as (.) on functions
18:27:45 <boily> every operator are born the same, but some are more generic.
18:30:42 <int-e> mrhmouse wanted (>>>)
18:36:02 <Slereah> So anyway
18:36:06 <Slereah> After that assembly class
18:36:12 <Slereah> i deduced that I hate RISC
18:37:42 <Slereah> x86 I'm so sorry for those mean things I said
18:39:34 -!- Sprocklem has quit (Ping timeout: 246 seconds).
18:40:20 <Phantom_Hoover> Slereah, why do you hate risc
18:42:26 <Slereah> Reading instructions *after* a jump?
18:42:30 <Slereah> That is just bananas
18:43:40 <int-e> it helps unclogging your pipelines
18:44:00 <Slereah> The prof was all "Well programming straight in assembly isn't much of a problem in those days of compilers so who cares!"
18:44:08 <Slereah> But I want to program in assembly :(
18:44:18 <int-e> so put nops after your jumps
18:44:26 <int-e> optimize later
18:44:46 <int-e> (btw it's not even true that every risc architecture does this)
18:45:46 <Slereah> Still, madness!
18:46:07 <Slereah> Also he scared me for a while when he talked about the problems with register use over the pipeline
18:46:26 <Slereah> Thank goodness it doesn't matter in the end
18:46:44 <mroman> Slereah: What's the relationship of assembler<->compiler
18:46:54 <mroman> IT's easy to program in assembler because of compilers?
18:46:58 <int-e> the things they do for implementing x86 efficiently is true madness.
18:47:16 <Slereah> int-e : Sure, but that's electronics people
18:47:21 <Slereah> I don't care what they do!
18:47:38 <mroman> also
18:47:45 <mroman> what's wrong with linear prefetching?
18:48:24 -!- Slereah_ has joined.
18:48:25 <Slereah_> [19:47:14] <Slereah> int-e : Sure, but that's electronics people
18:48:26 <Slereah_> [19:47:19] <Slereah> I don't care what they do!
18:48:26 <Slereah_> [19:47:39] <Slereah> mroman : That having harder to program assembly doesn't matter since few people code straight in assembly directly
18:48:26 <Slereah_> [19:48:01] * Disconnected.
18:48:27 <mroman> You should align your jumps/conditions in a way, so that the jump is not taken most of the time
18:48:51 <mroman> because jumps taken are bad
18:48:53 <mroman> they cost more cycles
18:49:01 <mroman> they flush the pipeline
18:49:08 <mroman> the cpu already prefetched stuff after the jump
18:49:28 <mroman> unless your cpu employs some kind of dynamic branch prediction
18:49:55 <mroman> 19:47 < mroman> what's wrong with linear prefetching?
18:50:25 <mroman> also that's why RISC have conditional execution flags on almost every instructions
18:50:29 <mroman> well, some RISCs at least do
18:51:20 <mroman> What register use over pipeline?
18:51:37 -!- Slereah has quit (Ping timeout: 252 seconds).
18:51:39 <mroman> CPUs tend to reorder instructions to optimize memory bus access
18:51:48 <mroman> and to prevent lots of pipeline stalls
18:51:59 <mroman> due to the writeback phase of the pipeline for example
18:53:08 <mroman> x86 CPUs have a pipeline too btw
18:53:30 <Slereah_> Yes, but it is
18:53:33 <Slereah_> A peace pipeline
18:54:15 <mroman> You've managed to confuse me
18:54:36 <Slereah_> http://en.wikipedia.org/wiki/File:Peace_pipe.jpg
18:55:27 <boily> that thing. it is strangely Canadian.
18:56:05 <mroman> Knowing that some CISC CPUs internally translate CISC instructions to more RISCish instructions
18:56:20 <Taneb> I had a dream that I has a secret esoteric lair
18:56:31 <Phantom_Hoover> what was in it
18:56:51 <Slereah_> I don't mind
18:56:51 <Slereah_> I'm not an electron man
18:56:51 <Slereah_> I don't have to navigate the CPU
18:56:57 <Slereah_> I'm not in miss Frizzle's class, I'm not going to take a magic school bus ride on a CPU
18:57:26 <Slereah_> Any weed?
18:58:43 -!- Slereah has joined.
18:59:11 <LinearInterpol> taking a magic schoolbus ride on a CPU..
18:59:22 * int-e loved the bus lines in the intercal manual
18:59:32 <int-e> (to new york. (and philadelphia))
18:59:44 <LinearInterpol> born and raised.
19:01:25 * mroman wonders why stack machines are not so popular
19:01:44 <mroman> like Forth CPUs
19:01:52 <LinearInterpol> stack machines are goddamn awesome.
19:02:02 <mroman> Yeah
19:02:04 <Taneb> Phantom_Hoover, a lot of computers, a pointless catwalk
19:02:09 -!- Slereah_ has quit (Ping timeout: 252 seconds).
19:02:09 <mroman> But I assume they suck in some way
19:02:09 <LinearInterpol> simple to implement, simple to write code for..
19:02:12 <LinearInterpol> they do.
19:02:22 <Phantom_Hoover> Taneb, idk, maybe it helped you avoid walking on the computers
19:02:33 -!- Slereah_ has joined.
19:02:39 <LinearInterpol> mroman: It takes more to actually perform more common operations.
19:02:39 <Slereah_> fug
19:03:13 <Taneb> It was underneath a museum exhibit on Boolfuck (!?)
19:03:46 <LinearInterpol> boolfuck! BIT TWIDDLING!
19:03:57 -!- Slereah has quit (Ping timeout: 265 seconds).
19:04:09 <Taneb> There were displays and statues and everything
19:04:09 <boily> Slereah_: Fear, Uncertainty and Gdoubt?
19:04:27 <Slereah_> F is for fun!
19:04:31 <Slereah_> U is for u and me
19:04:34 <LinearInterpol> the dark art of bit manipulation is one of the most powerful techniques in this world.
19:04:42 <Slereah_> g is for god my internet is so terrible
19:04:48 <LinearInterpol> fug?
19:05:05 <Slereah_> ("fuck")
19:05:30 <LinearInterpol> sayword("fuck);
19:05:36 <mroman> fungot: fug
19:05:36 <fungot> mroman: http://en.wikipedia.org/ wiki/ fnord help? i might like syntactic closures, etc.) and not fnord fault.
19:05:51 * boily coppoles Slereah_'s connection
19:05:51 <LinearInterpol> at least it gave you wikipedia..
19:05:53 <mroman> fungot: Are you censoring hyperlinks?
19:05:53 <fungot> mroman: yow!! now i'm playing with it. :p
19:06:16 <mroman> LinearInterpol: Yeah. But there's an unbalanced bracket
19:06:17 <boily> fungot is citing zippy the pinhead. YOW!!
19:06:17 <fungot> boily: it's nice if i'm deeply down in some sort of identifier renaming thing, too, but quite.
19:06:33 <LinearInterpol> meh.
19:06:42 <mrhmouse> fizzie: fungot uses 4-grams, right?
19:06:43 <fungot> mrhmouse: omniweb uses fnord/ down etc... and not ( 3 2)? how would you make an error about no clear
19:07:16 <LinearInterpol> the fuck is fnord.
19:07:31 <mroman> fungot: Bake cookies him you must
19:07:32 <fungot> mroman: ah, used egrep matches every line beginning with a single one) and the p should depend on neither addresses of functions nor their names
19:07:33 <boily> LinearInterpol: you are not seeing it. obey. fnord.
19:07:46 * LinearInterpol 's eyes glaze over.
19:12:37 <boily> ^botsnak
19:12:41 <boily> ^botsnack
19:19:37 <mrhmouse> `buttsnack
19:19:38 <HackEgo> ewww
19:20:16 <LinearInterpol> lol.
19:20:19 * boily mapoles mrhmouse with a +3 Mapole of Holy Wrath {Dex+3, rN++}
19:20:35 <LinearInterpol> +3 dexterity? wtf.
19:20:37 <int-e> LinearInterpol: glazed eyes, hmm. a snack?
19:20:53 <LinearInterpol> only in america.
19:20:58 <int-e> @dice d20+2-2d6
19:20:58 <lambdabot> int-e: 11 + 2 - (6+1) => 6
19:21:38 <Taneb> Ooh, poor roll :(
19:22:09 <boily> LinearInterpol: dex is important.
19:22:29 <boily> @dice 99d99
19:22:29 <lambdabot> boily: 4843
19:22:36 <boily> @dice 99d99+99d99
19:22:36 <lambdabot> boily: 4915 + 4984 => 9899
19:22:59 <boily> @dice 1000d1000
19:22:59 <lambdabot> boily: 487162
19:23:07 <boily> @dice 1000000000d100000000000
19:23:07 <lambdabot> boily: 49999530616131924008
19:23:10 <int-e> Taneb: it was above average, actually.
19:23:29 <int-e> boily: it uses some normal distribution when the numbers get too high
19:24:17 <Taneb> int-e, average roll :(
19:24:59 <LinearInterpol> huh. Doom turned 20 on the 10th.
19:25:01 <boily> int-e: nooooooooooooooo! my believes are shattered!
19:25:42 <int-e> @dice 1000000000d100000000000
19:25:43 <lambdabot> int-e: 50001499192932328406
19:25:44 <int-e> @dice 1000000000d100000000000
19:25:44 <lambdabot> int-e: 50000522949243404535
19:27:21 <boily> @dice 4d6/3
19:27:21 <lambdabot> boily: 11 / 3 => 11/3 => 3.6667
19:27:27 <boily> ...
19:29:18 <boily> @dice 2d6 * 3d8
19:29:19 <lambdabot> boily: (4+1) * (6+8+2) => 80
19:29:27 <boily> @dice 2d6 ^ 2
19:29:27 <lambdabot> unexpected '^': expecting operator or end of input
19:29:31 <boily> @dice 2d6 ** 2
19:29:31 <lambdabot> unexpected '*': expecting operator
19:30:00 <boily> oh well. next step would have been exponential rolls, complex rolls, hyperreal roles...
19:30:12 <boily> s/les/lls/
19:31:51 <int-e> surreal rdice, hmm.
19:31:52 <int-e> -r
19:32:56 <boily> normally distributed glazed eyes served over bouchées of surreal bread rolls.
19:34:12 <int-e> I mean https://en.wikipedia.org/wiki/Surreal_number obviously
19:37:37 <int-e> (But apparently boily is obsessed with food. ... oh dinner time!)
19:37:48 <boily> ω². ow. my brain suffers.
19:38:03 <FreeFull> Omega squared?
19:38:10 <FreeFull> What about it?
19:38:11 <boily> int-e: as previously stated, I do not have a food obsession. I am also very sane.
19:38:33 <boily> FreeFull: it's infinity squared, which obviously is infinitely more than the infinite.
19:38:47 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
19:38:51 <FreeFull> Depends on which omega you're talking
19:38:59 <FreeFull> You might be doing circular motion
19:39:05 <int-e> FreeFull: just an ordinary ... ordinal number.
19:39:17 -!- Sprocklem has joined.
19:39:20 <mroman> Ok
19:39:21 <mroman> So
19:39:30 <int-e> FreeFull: who wants to run in circles when you can go past infinity instead?
19:39:40 <mroman> Does Spacefish have Infinite Memory according to the definition of infinite memory you science guys have?
19:40:00 <FreeFull> What's a spacefish?
19:40:03 <boily> FreeFull: I went through EE classes, with nice ωs. mathematicians are spreading lies and propaganda, I say!
19:40:23 <boily> what's science?
19:40:25 <mroman> FreeFull: You can always ask for a finite memory amount more
19:40:26 <mroman> like
19:40:32 <mroman> while(1) { malloc(100000); }
19:40:43 <mroman> You can always malloc more memory
19:40:53 <mroman> but only a finite amount with each malloc of course
19:40:55 <FreeFull> Oh, a programming language
19:41:02 <FreeFull> It depends on the spec
19:41:13 -!- Phantom_Hoover has joined.
19:41:18 <LinearInterpol> spacefish is capable of infinite memory?
19:41:20 <LinearInterpol> shit show me more.
19:41:59 <LinearInterpol> oh hey! a cellular automata based upon peturbation! who made this?
19:42:22 <mroman> FreeFull: The spec says, that you can always ask for more memory
19:42:30 <mroman> but
19:42:45 <int-e> mroman: so what happens if I do > as the first step in a program?
19:42:49 <mroman> at any given point you'd still only have a finite amount of memory available
19:43:13 <mroman> int-e: You'd move to the initial cell
19:43:16 <LinearInterpol> hm.
19:43:36 <LinearInterpol> solution: construct a toroidal memory model. :P
19:44:04 <LinearInterpol> commit topological seppuku.
19:44:42 <int-e> mroman: does memory ever shrink?
19:44:59 <mroman> In Spacefish, yes
19:45:59 <mroman> But you can just place 255 values in some cells to allocate more space
19:46:14 <mroman> and then never touch those alloca values
19:46:19 <mroman> so space wouldn't shrink back
19:46:47 <int-e> mroman: also, shouldn't 8 be surrounded by 3 squres, with values 8,4,2 and 1?
19:46:58 -!- ^v has quit (Quit: http://i.imgur.com/MHuW96t.gif).
19:47:09 <mroman> int-e: It should
19:47:20 -!- mrclarinet has joined.
19:49:07 <mroman> The question is merely if it counts as infinite memory of you can always ask for a finite amount of memory more
19:49:32 <mroman> because to actually have infinite memory, the program itself could never stop
19:49:45 <mroman> because if it stopped it only had allocated a finite amount of memory
19:50:03 <FreeFull> You can't fill an infinite amount of memory with a program that stops anyway
19:50:04 <int-e> yes.
19:50:27 <mroman> However, you can't run out of memory
19:50:36 <int-e> technically, I would not talk of infinite memory but of "unbounded memory".
19:50:37 <mroman> if you can always allocate more of it
19:50:38 <FreeFull> It's effectively infinite
19:50:54 -!- guest10 has joined.
19:50:57 <mroman> so for all that matters it should be infinite as far as my opininon goes
19:51:17 <int-e> but that's really mincing words. there is no practical difference between the two.
19:52:17 -!- guest10 has left ("Leaving").
19:53:31 <boily> `relcome mrclarinet
19:53:33 <HackEgo> mrclarinet: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/wiki/Main_Page>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
19:55:02 -!- MindlessDrone has quit (Quit: MindlessDrone).
20:10:20 -!- trout has changed nick to variable.
20:33:33 <boily> ~yi
20:33:33 <metasepia> Your divination: "Corrupting" to "Gnawing Bite"
20:34:04 <boily> as usual, it is completely useless re my XML problems.
20:34:19 <LinearInterpol> ~yi
20:34:19 <metasepia> Your divination: "Corrupting" to "Arguing"
20:34:23 <LinearInterpol> hah.
20:40:08 -!- Taneb has quit (Ping timeout: 260 seconds).
20:51:33 <Phantom_Hoover> ~yi
20:51:33 <metasepia> Your divination: "Grouping" to "Centre Confirming"
20:53:40 -!- Sprocklem has quit (Ping timeout: 265 seconds).
20:54:24 <mrhmouse> ~yi
20:54:25 <metasepia> Your divination: "Shake" to "Great Possessing"
20:54:48 * mrhmouse is possessed by the Great Shaking
20:55:16 <LinearInterpol> ~yi
20:55:16 <metasepia> Your divination: "Prospering" to "Prospering"
20:55:21 <LinearInterpol> oh.
20:55:22 <LinearInterpol> lovely.
20:55:48 * boily steals LinearInterpol's divination away
20:55:52 <boily> mine! MINE!
20:55:58 <LinearInterpol> haah
20:57:05 -!- Taneb has joined.
20:57:34 <boily> atangevlobriq.
20:58:33 -!- Sprocklem has joined.
21:01:17 <boily> ~duck haah
21:01:17 <metasepia> <pre><code>ASPH (aspartate beta-hydroxylase)</code></pre> Protein-coding gene on human chromosome 8q12.1, also known as BAH, CASQ2BP1, HAAH, JCTN, humbug, junctate, junctin.
21:01:31 <boily> humbug?
21:01:47 <mrhmouse> ~duck humbug
21:01:47 <metasepia> humbug definition: something designed to deceive and mislead.
21:01:53 -!- shachaf_ has changed nick to shachaf.
21:02:00 -!- shachaf has quit (Changing host).
21:02:00 -!- shachaf has joined.
21:02:17 <mrhmouse> boily: perhaps an Easter-egg, since > "also known as BAH"?
21:02:45 <boily> mrhmouse: I realised. I was staying silent in shameful acceptance.
21:02:47 <shachaf> int-e: It is abused far beyond the funny limit.
21:06:01 <LinearInterpol> ~duck duck goose
21:06:01 <metasepia> --- No relevant information
21:06:06 <LinearInterpol> daww
21:06:36 <boily> ~duck goose
21:06:37 <metasepia> --- No relevant information
21:06:50 * boily shakes metasepia a bit
21:06:56 <boily> ~duck bird
21:06:56 <metasepia> --- No relevant information
21:07:06 <boily> ~duck avian
21:07:06 <mrhmouse> boily: you get better results when using DDG's API with an API key
21:07:06 <metasepia> avian definition: of, relating to, or derived from birds.
21:07:33 <boily> mrhmouse: the keyful version will be integrated in the Next Version.
21:09:51 <LinearInterpol> ~duck string rewriting system
21:09:51 <metasepia> In theoretical computer science and mathematical logic a string rewriting system, historically called a semi-Thue system, is a rewriting system over strings from a alphabet.
21:09:56 <LinearInterpol> awesome.
21:09:59 <mrhmouse> boily: when is that?
21:10:06 -!- ThatOtherPerson has quit (Ping timeout: 265 seconds).
21:10:40 * boily puts his hands on his ears ♪ LA LA LA WHEN IT'LL BE READY LA LA LA THE NEXT VERSION IS NOT VAPOROUS AT ALL LAL ALL LALALALALALA ♪
21:14:59 <mrhmouse> boily: I would contribute, but your GitHub repo seems a bit out of date :P
21:16:18 <Taneb> elliott, do you happen to know if the X84 has free wifi?
21:16:19 <mrhmouse> boily: also is your profile image a persimmon? those are delicious.
21:16:44 <elliott> Taneb: no
21:17:32 <Taneb> Is that a "No, I don't", or a "No, it doesn't"?
21:18:27 <shachaf> It's a "No, I don't"
21:18:55 <boily> mrhmouse: the out of dateness was pointed out by Roujo in an issue. I am conscious of the lack of content in the repo >_>'...
21:18:57 <shachaf> (Unless I'm wrong. I guess I could be wrong.)
21:19:15 <boily> mrhmouse: it indeed is a persimmon. persimmons are good. they are also orange, which is more good.
21:19:58 <mrhmouse> boily: most of them are. when I was growing up, we had several persimmon trees of the variety in your picture. later on, we starting growing another variety that was firmer and more red.
21:22:06 -!- mrclarinet has quit (Ping timeout: 246 seconds).
21:22:21 <quintopia> hoily
21:22:43 <boily> hintopia.
21:24:06 <quintopia> next version of what
21:25:46 <fizzie> mrhmouse: It uses variable-length grams.
21:26:11 <fizzie> fungot: Could you bother counting up some statistics on your models, please?
21:26:12 <fungot> fizzie: but then hand it 1 time for me to finish in time, but i
21:26:40 <mrhmouse> fizzie: does any literature exist beyond the source code that describes how it works?
21:26:47 <fizzie> fungot: I.. is that a yes or a no? I mean, I don't want much, just some n-gram length histograms.
21:26:48 <fungot> fizzie: i think it's funnier that way, sorbet. we're loading her down with terrible associations tonight.
21:27:25 <mrhmouse> fizzie: particularly, I'm interested in how fungot chooses a starting fragment based on input
21:27:25 <fungot> mrhmouse: are there any fnord languages? :) ( aren't i lazy :p)
21:27:38 <mrhmouse> fungot: you are lazy. try Googling it.
21:27:38 <fungot> mrhmouse: you could do aliased pointers.)
21:27:46 <boily> quintopia: metasepia. the Truth is that it is still the old cuttlefish code in disguise. the True Metasepia doesn't exist yet.
21:28:05 <fizzie> mrhmouse: There's a paper on the model construction part, but that's not really part of fungot. As for choosing starting context based on input, that's easy: it doesn't.
21:28:05 <fungot> fizzie: define ' suckier.') the interesting question is:
21:28:18 <fizzie> fungot: You don't have to be so harsh.
21:28:18 <fungot> fizzie: i only see you once planning a srfi on object, operation friends would be welcomed?)
21:28:35 <quintopia> boily: some day eh. some day.
21:28:42 <mrhmouse> fizzie: darn :( I was looking for inspiration for the next ruddy (which I have named "roskat")
21:29:12 <fizzie> mrhmouse: That's the Finnish word for trash/garbage, if you didn't know.
21:29:29 <mrhmouse> fizzie: classic ruddy checked for similar messages in history, then chose the "response" from that
21:29:34 -!- ThatOtherPerson has joined.
21:29:46 <mrhmouse> fizzie: that's why I chose it. I chose "ruddy" because it has similar meaning.
21:29:48 <boily> ThellotOthelloPellorsellon.
21:29:57 <nortti> http://www.theatlantic.com/magazine/archive/1945/07/as-we-may-think/303881/?single_page=true
21:30:25 <fizzie> Anyhoo, all fungot's replies start with the context "START". There's not even any reasonable (built-in) way currently for it to go back from strings into the token indices the model uses, since I don't think the token lists are necessarily sorted.
21:30:25 <fungot> fizzie: i think it hasn't been srfi'd mostly as-is. is it documented somewhere?
21:31:09 <boily> fungot: probably, but you are written in Unhighlightable Befunge.
21:31:10 <fungot> boily: though marker fnord probably isn't clear unless you know where the difficulty comes in.
21:31:41 <mrhmouse> hm. I'll just come up with something on my own, I suppose. The best I've gotten out of Roskat so far was "hello there, roskat!" --> "I've received an uncommon phrase; what's the context? fnord"
21:31:41 <quintopia> boily: untrue! befunge is totes highlightable with the right UI
21:33:33 <fizzie> mrhmouse: There's one sort of trivial thing that I think I've seen done in a chatbot, which is to select a single "keyword" from the input (based on TF-IDF weights on words or whatnot), do a search over some database like WordNet for related terms (both synonyms and antonyms), pick a random one, and then generate from n-grams both forwards and backwards so that the keyphrase is in an ...
21:33:39 <fizzie> ... unpredictable spot of the response.
21:34:00 <fizzie> (Also add hyponyms and hypernyms and whatevernyms to that list.)
21:34:20 <boily> ~duck hyponym
21:34:20 <metasepia> In linguistics, a hyponym is a word or phrase whose semantic field is included within that of another word, its hypernym (sometimes spelled hyperonym outside of the natural language processing community).
21:34:47 <mrhmouse> fizzie: that's a good idea :) currently roskat picks a word from the input (preferring uncommon words, based on message history) and starts with a random trigram whose predecessor includes that word
21:36:12 <mrhmouse> it helps, but it's far from acceptable as a form of "chatter". I intend to have the next version examine preceding messages & their sources for prompt/response patterns
21:36:13 <fizzie> That's really kind of similar, except without the WordNet step.
21:38:39 <mrhmouse> I need to diagram the whole thing first to see what sort of data I'll have to store regarding messages - then I can decide on other details
21:39:20 <fizzie> There's also quite a lot of work for natural language parsing; when you've got parse trees (or other such things), you can do things in terms of them. But those are kind of brittle, and might have trouble with informal chat-text. (Also it's an easy way to end up in a very Elizaey responses.)
21:39:37 <mrhmouse> for this bot, I don't particularly care about the semantic value of the messages
21:40:08 <mrhmouse> but I did have an idea to have another bot which understood e.g. Gellish English and could create relationships between terms
21:40:17 <mrhmouse> ~duck gellish
21:40:17 <metasepia> Gellish is a formal language that is natural language independent, although its concepts have 'names' and definitions in various natural languages.
21:40:24 <mrhmouse> ~duck gellish english
21:40:24 <metasepia> Gellish Formal English is the English variant of Gellish and is a formal language, which means that it is a structured and formalized subset of natural English that is computer interpretable.
21:41:01 <fizzie> Back on the statistical side of the fence, you can probably also boost the probability of "relevant" responses with some kind of a scheme based on clustering of "topic" words.
21:41:38 <mrhmouse> fizzie: uncommon words that appear in the chatter at around the same times?
21:42:14 <boily> freebie uncommon word → paramycète.
21:42:24 <mrhmouse> ~duck paramycète
21:42:25 <metasepia> --- No relevant information
21:43:11 -!- mrclarinet has joined.
21:43:36 <fizzie> Something like that, yes. Or just models trained on text with a specific topic, though if your source materials are irclogs, that's harder. (Unless you want to pay some Amazon Mechanical Turk people to label a gigabyte of logs with "current topic" annotations.)
21:44:06 <fizzie> (I'm sure they'd do a splendid job on annotating #esoteric logs.)
21:44:14 -!- mrclarinet has left.
21:45:47 <mrhmouse> IRC chatter is hard enough to parse :) I think the biggest amount of parsing I'll do will be name extraction and directed responses/prompts (e.g. "mrhmouse: hello" is a directed prompt)
21:46:18 <boily> what about the chimæric helloes?
21:46:39 <mrhmouse> boily: I can't parse those, so they'll remain in the chatter history as uncommon words
21:47:27 <fizzie> fungot: You can parse those sillyhelloes, right?
21:47:28 <fungot> fizzie: later tell drewr may be slime wants you to do
21:47:58 <mrhmouse> the best thing about those, though, is that they're usually clumped together. so prompting the bot with, say, "belloily", might result in "mrhmellouse"
21:48:32 <mrhmouse> `ello fungot
21:48:33 <fungot> mrhmouse: it's a classic, i mostly wanted to take out fixnums and to put it later on?' what relevance does it have cons?
21:48:35 <HackEgo> fungellot
21:48:46 <fizzie> Sir Fungellot.
21:48:54 <fizzie> (Fungels a lot.)
21:49:25 <boily> `run echo 'Sir Fungellot cannot be stopped by that sword alone!' >wisdom/fungot
21:49:25 <fungot> boily: or is my code
21:49:29 <HackEgo> No output.
21:50:09 <LinearInterpol> ` run cat ./wisdon/fungot
21:50:09 <fungot> LinearInterpol: from reading the wikipedia entry for er, parachuting.)" at http://paste.lisp.org/ display/ 4408
21:50:10 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found
21:50:39 <mrhmouse> LinearInterpol: try `?
21:50:39 <fizzie> Regarding the related-word thing, you can also do LSI instead of a WordNet-style a-priori-knowledge database.
21:50:44 <LinearInterpol> `?
21:50:45 <HackEgo> ​? ¯\(°​_o)/¯
21:50:49 <mrhmouse> `? fungot
21:50:50 <fungot> mrhmouse: when you get to function calls,
21:50:50 <LinearInterpol> LOL.
21:50:51 <HackEgo> Sir Fungellot cannot be stopped by that sword alone!
21:50:57 <LinearInterpol> `?
21:50:59 <HackEgo> ​? ¯\(°​_o)/¯
21:51:08 <mrhmouse> LinearInterpol: you have to provide a phrase
21:51:08 <LinearInterpol> `? boily
21:51:10 <HackEgo> boily is the brother of Roujo's brother and he's monetizing the company Roujo works at, or something Canadian like that. He's also a NaniDispenser, and a Man Eating Chicken.
21:51:13 <LinearInterpol> oh.
21:51:33 <mrhmouse> fizzie: LSI? I'm not familiar with the acronym..
21:51:47 <LinearInterpol> ~duck LSI
21:51:47 <metasepia> lsi definition: large-scale integrated circuit; large-scale integration.
21:51:56 <fizzie> mrhmouse: Latent Semantic Indexing, it's p. fancy.
21:52:28 <mrhmouse> fizzie: do you mean for the Gellish English bot? I intend for it to be fully spoon-fed :)
21:52:51 <fizzie> No, just for something statistical based on irclogs.
21:52:54 -!- muskrat has joined.
21:53:17 <mrhmouse> e.g. if it knows what a cat is (but not a dog), and it sees the word "dog" in a noun position, it would prompt the user to describe a dog
21:53:46 <mrhmouse> after that point, it now has some knowledge of what a dog is (based on the description and all recognized words in the description)
21:55:21 <mrhmouse> you might describe it as "an animal which chases cats". now it knows that a dog is an animal, and has the property that it chases cats (also an animal)
21:56:55 <fizzie> Very Cyc-ic.
21:57:04 <fizzie> (How's that thing doing, anyway?)
21:57:59 <LinearInterpol> Cyc is still going?
21:58:11 <mrhmouse> ~duck cyc
21:58:11 <metasepia> It is not based on numerical methods such as statistical probabilities, nor is it based on neural networks or fuzzy logic.
21:58:17 <fizzie> "Stable release .. 17 months ago" well
21:58:46 <fizzie> metasepia: That's a good summary as far as it goes, but you could consider also saying something about what it *is* based on.
21:59:03 <LinearInterpol> 'tis a knowledge database using connectives!
21:59:34 <LinearInterpol> effectively a highly.. sophisticated prolog.
21:59:47 <fizzie> "Cyc-based solutions have helped government agencies and Global 100 commercial enterprises leverage their knowledge and expertise over a wide range of business verticals and across the full operational spectrum."
22:00:01 <fizzie> Leverage over a wide range of business verticals.
22:00:07 <fizzie> Across the full operational spectrum.
22:00:15 <fizzie> I see they've managed to leverage some marketing people, at least.
22:00:28 <LinearInterpol> marketing superlatives.
22:00:52 <LinearInterpol> a friend of mine from MIT published a book like this. in fact...
22:00:57 <LinearInterpol> http://www.lulu.com/us/en/shop/mike-wolf/bitkit/paperback/product-233305.html
22:23:30 -!- mrhmouse has quit (Quit: Oh fnordy fnordy).
22:31:03 -!- AnotherTest has quit (Ping timeout: 246 seconds).
22:33:50 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds).
22:54:29 -!- glogbackup has quit (Read error: Connection reset by peer).
23:01:20 -!- boily has quit (Quit: UNHUMONGOUS DECHICKEN).
23:01:22 -!- metasepia has quit (Remote host closed the connection).
23:03:32 <nooodl_> shachaf: good /part
23:10:11 -!- muskrat has quit (Quit: Leaving).
23:14:44 <doesthiswork> nooodl_: I don't understand
23:14:59 <nooodl_> (from #haskell)
23:16:59 -!- ThatOtherPerson has quit (Read error: Operation timed out).
23:21:26 -!- Sprocklem has quit (Ping timeout: 240 seconds).
23:24:57 -!- ThatOtherPerson has joined.
23:26:11 -!- LinearInterpol has quit (Read error: Connection timed out).
23:26:13 <ion> XCOM has a slight Z-order problem for a fraction of a second whenever switching soldiers. http://cloud-4.steampowered.com/ugc/452907883059778581/E033A703267A6B165B926905057AFF60C2896574/
23:26:23 -!- glogbackup has quit (Ping timeout: 265 seconds).
23:28:56 -!- LinearInterpol has joined.
23:34:23 -!- prooftechnique has joined.
23:41:43 -!- Sgeo has joined.
23:43:00 * quintopia moves the smorgases from the bord to the stomach
23:43:50 <quintopia> how are you LinearInterpol
23:45:10 <ion> This is the perfect way to release a Linux distro and get maximum community participation. http://repo.steamstatic.com/download/
23:45:17 <LinearInterpol> back.
23:45:22 <LinearInterpol> quintopia: prettyyy good.
23:45:41 <quintopia> LinearInterpol: do you like swedish food
23:45:54 <LinearInterpol> sure.
23:46:28 <quintopia> mmm whipped marshmallow cream with a hard chocolate shell
23:46:41 <quintopia> this probably has a name
23:46:44 <LinearInterpol> stop making me jealous.
23:48:47 <quintopia> what you don't have an ikea near you
23:48:54 -!- RJones has joined.
23:48:57 -!- oerjan has joined.
23:49:21 <quintopia> helloerjan
23:49:31 <shachaf> helioerjan
23:50:32 <oerjan> hellopiaf
23:51:25 <quintopia> tonight is swedish buffet night
23:51:33 <quintopia> the only food i'm eating all day
23:51:55 <oerjan> it's also s. lucia day
23:52:10 <oerjan> or was, an hour ago
23:53:23 <oerjan> a most peculiar scandinavian holiday based on taking an italian song about a harbor named s. lucia and pretending it's about the actual saint
23:53:43 <oerjan> and then singing that in processions of children.
23:53:52 <quintopia> st. lucia is a p cool island from what i've heard
23:57:47 <oerjan> https://en.wikipedia.org/wiki/Santa_Lucia also https://en.wikipedia.org/wiki/Borgo_Santa_Lucia i think i'm going to add a [citation needed] to the latter.
←2013-12-12 2013-12-13 2013-12-14→ ↑2013 ↑all