00:27:09 <olsner> it would be somehow amazing if elliott, monqy and Phantom_Hoover were all bots run by Sgeo__
00:27:12 <ais523> oh, was that line /meant/ to not make sense?
00:27:26 <shachaf> ais523: There's a "Homestuck" update.
00:27:53 <olsner> oh, and I see the channel has become #haskell-lens for the past few hours ... thanks shachaf
00:28:30 <monqy> #haskell-lens, presumably
00:28:37 <monqy> what other channel could be #haskell-lens
00:29:47 <olsner> relatedly, I got three packets of ketchup for free when I paid for my food
00:29:53 <kmc> LIKE A BOSS
00:30:01 <ais523> what is #haskell-lens about?
00:30:11 <ais523> also I like your use of the word "relatedly"
00:30:39 <olsner> hopedly, it is indeed a word
00:31:31 <shachaf> olsner: "hi olsner i know you like pretending to be oerjan but its not wokring"
00:32:14 <olsner> ehm, I'm not pretending
00:32:20 <elliott> hi shachaf i know you like pretending to ...
00:32:57 -!- nooga has quit (Ping timeout: 252 seconds).
00:33:22 <olsner> though it would've been a bit better if I could have said that as "<oerjan> ehm, I'm not pretending"
00:33:22 -!- Jafet has joined.
00:38:13 <Jafet> This jøke is getting øld.
00:40:47 -!- copumpkin has quit (Ping timeout: 260 seconds).
00:41:18 -!- copumpkin has joined.
00:43:25 <olsner> shachaf: is ##crawl where you usually discuss haskell lens libraries?
00:43:51 <shachaf> olsner: Sometimes I discuss them in #lesswrong
00:43:56 <shachaf> I have no idea what I'm doing in that channel.
00:47:31 <olsner> if you don't know why you're there, maybe you should leave
00:47:32 <kmc> how is it terrible
01:12:21 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds).
01:18:12 -!- Phantom_Hoover has joined.
01:19:07 <kmc> shachaf: elliott: apparently Simon Marlow is leaving MSR to work at Facebook
01:19:15 <kmc> and is going to stop working on GHC full time
01:19:25 <kmc> and basically it is the end times
01:19:26 <kmc> http://www.haskell.org/pipermail/haskell/2012-November/023566.html
01:21:06 <shachaf> kmc: Now's your chance to rise up and take over the Haskell compiler world with THC.
01:22:05 <zzo38> I managed to make a Csound plugin, currently I made and tested the "avecrev" command which reverses a a-rate vector.
01:26:06 <Gregor> Comin' up on my one year anniversary of tongue-face-smiley-freedom.
01:38:12 <Gregor> Phantom_Hoover: On December 17th, 2011, I swore off the tongue-face smiley forever.
01:40:32 <oerjan> Gregor proved the power of machine over man
01:40:43 <Gregor> Phantom_Hoover: Mmmhmm.
01:41:50 -!- Phantom_Hoover has quit (Remote host closed the connection).
02:23:41 -!- ion has quit (Ping timeout: 252 seconds).
02:26:04 -!- ion has joined.
02:33:49 <ais523> so, is BSD the fourth most popular operating system family?
02:34:04 <ais523> (after the Windowses and the Linuxes and the OS X/iOSes?)
02:34:14 <ais523> or do old-fashioned commercial Unices still beat it?
02:35:24 <Fiora> I'm guessing it'd depend how you count popular, like, do OSs running on embedded systems count, or just PCs, or...
02:35:27 <kmc> do you mean "most popular OS to run on traditional PC hardware and macs"
02:36:24 <ais523> I'm thinking about desktop/laptop/tablet systems, I guess
02:36:29 <kmc> seems pretty arbitrary
02:36:31 <ais523> things that are meant to be interacted with by a human
02:36:37 <kmc> many embedded systems are
02:36:45 <ais523> as their primary function
02:36:57 <ais523> so I guess the Rasperry Pi counts, but similar systems used as industrial controllers don't
02:36:57 <kmc> how about the dash computer in your car
02:37:05 <ais523> kmc: I don't own a car
02:37:07 <kmc> what about a thermostat -- its primary purpose is to take instructions from a human and execute them
02:37:17 <ais523> and thermostats are still analog where I live
02:37:26 <Fiora> symbian is a phone OS even though it mostly runs on dumbphones I think
02:37:27 <kmc> how about the 100 or so microcontrollers inside your PC alongside the main CPU
02:37:30 <ais523> but no, a thermostat's primary function is to control the temperature
02:37:37 <ais523> it does its job even when you aren't sitting there configuring it
02:37:42 <kmc> a computer's primary function is to send IP packets
02:37:48 <kmc> it does its job even when you aren't sitting there configuring it
02:37:50 <ais523> kmc: not mine, I use it offline quite a lot
02:37:57 <kmc> ok how about web servers then
02:37:59 <ais523> my /server's/ primary function is to do that
02:38:11 <kmc> do you include those as "meant to be interacted with by a human"
02:38:16 <zzo38> A computer's primary function is not to send IP packets. That is a function of some of the programs.
02:39:03 <kmc> also, does the baseband processor in your phone count, or only the applications processor?
02:39:34 <kmc> typically they are separate and the former runs some proprietary RTOS
02:39:37 -!- ion has quit (Ping timeout: 260 seconds).
02:39:48 <ais523> I also don't own a digital phone
02:39:55 <kmc> what about the firmware running on your computer's GPU -- surely that is an integral part of "interacting with a human"
02:40:00 <kmc> ais523: i'm using the word "your" rhetorically
02:40:02 <ais523> there's a phone in my office, but it's one of those dumb-terminal-style landlines
02:40:16 <ais523> also GPUs don't normally have much of an operating system
02:40:17 <kmc> oh yeah right what about the ubiquitous Cisco VoIP phones
02:40:21 <kmc> obviously a human interaction device
02:40:23 <kmc> does their OS count?
02:40:24 <ais523> I should know, I taught a class on GPU programming
02:40:35 <kmc> did you teach a class on GPU firmware / driver authoring
02:41:10 <ais523> kmc: nah, it was at the level of authoring software for them (the shaders, etc., that are sent to the GPU)
02:41:23 <ais523> but the GPU doesn't have much of an OS to speak of
02:41:27 -!- ion has joined.
02:41:32 <ais523> if it crashes, the whole system hard crashes, no permissions or anything like that
02:41:47 <ais523> (if you're lucky it'll have a watchdog timer that'll reboot it after it's spent 5 seconds crashed, sometimes it even works)
02:42:14 <ais523> I guess I still don't think of computers as Internet communication devices
02:42:27 <ais523> that's really what tablets are for, people used larger computers for that earlier because tablets hadn't been invented yet
02:43:21 <kmc> i don't have any desire to own a tablet
02:43:30 <ais523> "media consumption devices" is a description I'd seen
02:43:33 <kmc> i find it useful to use the same device for internet communications and other things
02:43:34 <ais523> and I think tablets are terrible too
02:44:12 <kmc> it might be nice if that one device were a tablet with a keyboard dock
02:44:18 <kmc> but i don't think i can get one meeting my needs
02:44:33 <kmc> and so i don't have a desire to own a second device that's only good for a subset of the things the firsst device is good for
02:45:47 <kmc> (it would have to be a nice keyboard, preferably with a pointing stick, and capable of running a real desktop linux distro, and not "capable" in the sense of "some guy on xda forums might have done it", but actually no bullshit)
02:46:53 <kmc> the reason i finally got a smartphone is that i needed a 3G/4G hotspot device, and phone was not much more than a standalone device
03:04:18 -!- oerjan has quit (Quit: Good night).
03:11:52 -!- Jafet has quit (Quit: Leaving.).
03:28:37 <tswett> "You are now traveling into the future. Please wait..."
03:28:49 <tswett> One way of implementing time travel in an MMOG.
03:29:11 -!- sivoais has quit (Ping timeout: 245 seconds).
04:19:41 -!- NihilistDandy has joined.
04:50:04 <shachaf> help did i just write a monad tutorial :'(
04:50:54 <kmc> monad tutorial writers anonymous
04:51:49 -!- Nisstyre-laptop has joined.
04:51:56 <shachaf> It's actually mostly an "IO tutorial" if anything.
04:53:43 <kmc> is it an Either tutorial?
04:54:50 <shachaf> kmc: I'm cold so I have two ghci windows open with "last [1..]"
04:56:32 <shachaf> Should probably fold proteins instead or something.
05:15:37 <kmc> is there a name for the visual artifact that happens when you render antialiased text on a white background, and then composite it over something else with a transparency channel which is just white = transparent, anything else = fully opaque?
05:15:49 <kmc> a local restaurant has that on their menu and it makes me not want to eat there
05:16:23 <shachaf> If I understand what you mean, I don't like that. :-(
05:16:45 <shachaf> kmc: Do you hate all antialiasing?
05:17:04 <shachaf> You should write a window manager and then angrily stop programming.
05:21:37 <kmc> no i love antialiasing
05:25:19 -!- carado has quit (Ping timeout: 246 seconds).
05:28:39 -!- ogrom has joined.
05:32:21 <zzo38> I think antialiasing should only sometimes be used.
05:32:48 <elliott> tuomov has some surprisingly interesting opinions underneath the noise
05:38:19 <shachaf> I think kmc might end up like him in bitter old age.
05:49:28 -!- constant has quit (Read error: Operation timed out).
05:57:20 -!- augur has quit (Read error: Connection reset by peer).
05:57:51 -!- augur has joined.
06:00:40 <elliott> is bitter old kmc supposed to be distinguishable from current kmc
06:03:23 -!- augur has quit (Ping timeout: 244 seconds).
06:45:32 -!- augur has joined.
06:56:32 -!- Bike has quit (Quit: unworthy).
06:59:43 -!- Bike has joined.
07:04:06 -!- epicmonkey has joined.
07:12:51 -!- NihilistDandy has quit (Quit: Computer has gone to sleep.).
07:14:05 -!- quintopia has quit (Ping timeout: 252 seconds).
07:21:09 -!- quintopia has joined.
07:26:45 <Sgeo__> Someone just replied to me saying "Damn you"
07:27:36 <Sgeo__> (Actually, they're not mad at me)
07:27:37 <Sgeo__> http://www.reddit.com/r/AskReddit/comments/13ooyr/ten_years_ago_our_family_cat_had_to_have_an/c75xis7?context=3
07:27:51 <Bike> so how is this notable
07:28:18 <pikhq_> Other than that I didn't know Sgeo was autistic, not at all.
07:28:29 <Sgeo__> #esoteric is now Wikipedia.
07:28:54 <pikhq_> Sgeo__: Quite. You don't see me talking about myself, now do you? :P
07:28:58 <Bike> well i mean it's not an uncommon phrase
07:29:09 <Bike> i figured if you were bringing it up there must be something unique about the usage
07:29:13 * pikhq_ inserts life spew here
07:29:17 <Bike> like maybe the person saying it was literally a demon
07:29:26 <shachaf> elliott: what if infinity was, like, a number
07:29:56 <Sgeo__> shachaf, who/what are you mocking today? I assume not my 7th grade self since you haven't met him.
07:30:56 <Sgeo__> I guess my 8th grade self said some mockable math stuff, but not about infinity.
07:31:20 <Sgeo__> I tried to define a number, ati, such that |ati| = -1
07:31:39 <Bike> well you were close
07:31:45 <coppro> is it sad that my first thought is "but that's not a norm!"
07:32:19 <Sgeo__> Bike, coppro: I'm now confused.
07:32:22 <Bike> i think everybody who got into math and stuff later did things like that. or maybe just me and you
07:33:21 <Bike> i was just referring to that being sort of like imaginary numbers. and a norm is a lengthy-y thing denoted with vertical bars.
07:33:47 <Sgeo__> I knew about imaginary numbers back then
07:36:21 -!- ais523 has quit.
07:44:39 -!- augur has quit (Ping timeout: 244 seconds).
08:00:45 -!- augur has joined.
08:03:32 -!- augur_ has joined.
08:06:52 -!- augur has quit (Ping timeout: 244 seconds).
08:18:01 -!- nooga has joined.
08:24:21 <zzo38> I made a Csound plugin library, not quite completed, some things I am unsure how to program them but some I did put in, I have added these commands so far: avecrev, hsvtorgb, hysteresis, integlim, interleave, rgbtohsv, slowchange, squarewave, trianglewave.
08:45:00 -!- Nisstyre-laptop has quit (Read error: Operation timed out).
09:03:17 <shachaf> monqy: did you unsafeCoerce today
09:04:00 <shachaf> > let a = zipper ("helloz","world") % down _1 % fromWithin traverse % rights1 6 in (a % view focus, a % save % flip unsafelyRestore ("another","world") % view focus)
09:05:44 -!- zzo38 has quit (Remote host closed the connection).
09:22:36 <monqy> Prelude Unsafe.Coerce> unsafeCoerce id :: IO ()
09:22:36 <monqy> [1] 17766 segmentation fault (core dumped) ghci
09:22:43 <monqy> daily unsafeCoerce
09:23:05 <Sgeo__> Why am I reading this http://www.reddit.com/r/ShittyProgramming
09:24:17 <monqy> why are you reading that
09:29:05 <Sgeo__> http://www.reddit.com/r/shittyaskscience/comments/13o48n/is_it_required_to_shampoo_the_air_before_turning/
09:55:22 <shachaf> ion: Want lens to be faster?
10:19:11 -!- Phantom_Hoover has joined.
10:20:44 <ion> shachaf: No, it’s perfect right now.
10:22:01 <ion> Making it any faster might rip a hole in the spacetime.
10:22:33 <shachaf> It's, uh, pretty slow right now.
10:24:14 <shachaf> monqy: Want lens to be faster?
10:24:41 <monqy> shachaf: I don't know.
10:25:01 <shachaf> monqy: when will you learn that knowing is important
10:25:08 <monqy> shachaf: I don't know.
10:25:29 <Sgeo__> Will making it faster require the use of unsafeCoerce/unsafePerformIO or a tradeoff in a different dimension such as space usage?
10:25:47 <shachaf> Well, maybe. I don't know.
10:25:52 <shachaf> It'll require someone to write benchmarks.
10:26:30 <Sgeo__> Is there any significant liklihood thatn making it faster will require architectural considerations that should be taken into account now rather than later?
10:28:02 <Sgeo__> No idea, just saying that it might be a bad idea to solidify the design and base everything around it if it fundamentally does something significantly slow, if speed is a concern.
10:28:38 <Sgeo__> But if it's slow but not due to underlying algorithm (i.e. due to not being microoptimized or something) then I assume that could wait.
10:28:53 * shachaf wonders how many "algorithms" lens has.
10:30:02 <monqy> shachaf seems to need lens advice, and who better to give it than sgeo
10:30:30 <Sgeo__> As far as I can tell I'm channeling Captain Obvious.
10:31:35 <monqy> shachaf: maybe? probably not.
10:32:49 <shachaf> monqy: can i have some life advice????
10:33:20 <monqy> don't ask sgeo for lens advice
10:33:44 <monqy> is that life enough for you
10:33:48 <monqy> alt. advice enough for you
10:33:57 <shachaf> life isn't all about lenses
10:34:23 <monqy> I've been decieved
10:34:33 <monqy> i'll try another life advice
10:34:33 <Sgeo__> shachaf, what did you do with the real shachaf?
10:34:49 <shachaf> elliott: Have you seen Control.Lens.Zipper?
10:35:05 <monqy> i have a site for you
10:35:06 <monqy> http://www.lifeadvicefromoldpeople.com/
10:35:14 <monqy> maybe it will help you
10:35:22 <elliott> control.lens.zipper isn't lens...
10:35:46 <monqy> I'm like a granny or something
10:36:01 <shachaf> monqy: are you granny smith
10:36:24 <monqy> is a granny smith old
10:37:33 <shachaf> is monqy a old granny smith
10:38:05 <monqy> i don't see why not
10:45:11 <elliott> well it doesn't make lens slow
10:45:14 <elliott> just because one extra par tof itis slow
10:54:05 <Sgeo__> If IRC servers never sent PINGs, would some clients get disconnected because of lack of activity on the socket?
11:00:34 <fizzie> It sounds not impossible, though the client could very easily e.g. do TCP keepalive to mitigate that.
11:05:07 <elliott> > Just ["a","b","c"] & partsOf template %~ reverse
11:05:09 <lambdabot> Ambiguous type variable `a0' in the constraint:
11:05:15 <elliott> > Just ["a","b","c"] & partsOf template %~ (reverse :: [String] -> [String])
11:05:26 <elliott> > (Just ["a","b","c"], "e") & partsOf template %~ (reverse :: [String] -> [String])
11:06:04 <lambdabot> (Data.Data.Data s, Typeable a, Applicative f) => (a -> f a) -> s -> f s
11:07:32 <elliott> > "abcde" & partsOf uniplate %~ reverse
11:08:43 <shachaf> > over uniplate reverse "hello monqy"
11:08:58 <elliott> I don't get it, what does over do there?
11:09:04 <shachaf> elliott: Did you know lastOf (backwards folded) compiles to the same code as listToMaybe?
11:09:30 <elliott> that is pretty cool though
11:09:51 <lambdabot> Setting s t a b -> (a -> b) -> s -> t
11:10:05 <elliott> > "test abc" & uniplate %~ reverse
11:10:37 <elliott> what's the difference between uniplate and partsOf uniplate here?
11:10:40 <elliott> > "test abc" ^. partsOf uniplate
11:10:46 <elliott> > "test abc" ^.. partsOf uniplate
11:11:05 <shachaf> Which part is the confusion?
11:11:32 <elliott> I don't quite understand why partsOf uniplate %~ reverse doesn't do the shuffly thing
11:11:47 <elliott> or how uniplate %~ reverse works, given that it seems to only give one result ("est abc")
11:11:54 <elliott> yet it shuffles "recursively" inside those results when you actually do it
11:12:32 <elliott> so the reason partsOf uniplate doesn't do it is because you just reverse a one-element list and put it back; right
11:12:46 <elliott> is there a recursive version of uniplate?
11:13:36 <shachaf> btw did you know template = uniplate
11:13:48 <elliott> but is there a recursive version of uniplate?
11:14:27 <elliott> I'd expect ["est abc", "st abc", "t abc", ..., ""]
11:14:38 <lambdabot> ["test abc","est abc","st abc","t abc"," abc","abc","bc","c",""]
11:14:46 <elliott> I guess it can't be a Lens
11:14:54 <shachaf> > universeOf uniplate "test abc"
11:14:57 <lambdabot> ["test abc","est abc","st abc","t abc"," abc","abc","bc","c",""]
11:15:26 <shachaf> When Cale upgrades lambdabot, we'll get upon.
11:15:32 <shachaf> Oh, and edwardk implemented uponTheDeep
11:17:45 <elliott> shachaf: is Control.Lens.WithIndex.itoList's documentation supposed to link to Data.IntMap
11:20:57 <elliott> shachaf: the "map" in its code example links to Data.IntMap too
11:21:04 <elliott> haven't noticed any other issues
11:21:05 <elliott> > Node 123 [Node 12 [Node 4 []], Node 3 []] & uniplate %~ reverse
11:21:07 <lambdabot> Couldn't match expected type `Data.Tree.Tree a0'
11:21:24 <elliott> > Node 123 [Node 12 [Node 4 []], Node 3 []]
11:21:25 <lambdabot> Node {rootLabel = 123, subForest = [Node {rootLabel = 12, subForest = [Node...
11:21:35 <elliott> > Node 123 [Node 12 [Node 4 []], Node 3 []] ^.. uniplate
11:21:37 <lambdabot> [Node {rootLabel = 12, subForest = [Node {rootLabel = 4, subForest = []}]},...
11:21:40 <elliott> :t Node 123 [Node 12 [Node 4 []], Node 3 []] ^.. uniplate
11:21:42 <lambdabot> (Data.Data.Data a, Num a) => [Tree a]
11:21:57 <elliott> > Node 123 [Node 12 [Node 4 []], Node 3 []] & partsOf plate %~ reverse
11:21:59 <lambdabot> Node {rootLabel = 123, subForest = [Node {rootLabel = 3, subForest = []},No...
11:22:04 <elliott> > Node 123 [Node 12 [Node 4 []], Node 3 []] & partsOf plate %~ reverse & drawTree
11:22:06 <lambdabot> No instance for (GHC.Num.Num GHC.Base.String)
11:22:22 <elliott> > Node 123 [Node 12 [Node 4 []], Node 3 []] & partsOf plate %~ reverse & fmap show & drawTree & text
11:24:34 <shachaf> Data.Tree is a very smart computer
11:25:23 <elliott> > Node 123 [Node 12 [Node 4 []], Node 3 []] & template *~ 2 & fmap show & drawTree & text
11:30:11 <elliott> shachaf: would it make sense to generalise Plated to "class Plate a b where plate :: Simple Traversal a b"? so you can do what "template" does
11:30:15 <elliott> I guess it'd be redundant with Data
11:30:26 <elliott> and also mess up inference
11:31:36 <shachaf> elliott: your lens talk is offtopic in here
11:40:09 <lambdabot> Setting s t a (Maybe b) -> b -> s -> t
11:40:56 <shachaf> > M.empty & at "monqy" ?~ "hi"
11:44:54 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
11:45:28 <elliott> apparently my lens is 6 major versions behind
11:45:33 <elliott> because I installed it a few days ago
11:46:56 -!- Phantom_Hoover has joined.
11:52:23 -!- Arc_Koen has joined.
12:15:56 <Arc_Koen> @tell oerjan my Minks implementation is based on what was written in the minks page + what was said on the talk page; also I did not put any comments in it and the parser is incredibly badly written; I'm not sure considering that implementation as some sort of "reference implementation" is such a good idea ;)
12:16:19 <Arc_Koen> @tell oerjan also I'll try to remember why I put it on the talk page in the first place and not in a wiki page of its own
12:23:23 -!- Vorpal has joined.
12:27:42 <elliott> shachaf: what if you did the same trick that isomorphisms use for all lenses
12:28:32 <elliott> type Getter s a = forall f. (Gettable f, Gettery k) => k s a
12:28:45 <elliott> instance Gettery (\s a -> (a -> f a) -> s -> f s)
12:32:30 <elliott> type Lens s t a b = forall f. (Lensy k) => k s t a b
12:32:41 <elliott> instance Lensy (\s _ a _ -> (s -> a))
12:32:51 <elliott> instance Lensy (\s t a b -> forall f. (Functor f) => (a -> f b) -> s -> f t)
12:32:58 <monqy> Q: if i know lens will all their type signatures stop looking really stupid
12:32:58 <elliott> what could go wrong, right
12:33:37 <shachaf> monqy: no but! your eyes just sort of glaze over and you don't actually read the signatures after a while
12:33:44 <shachaf> which is basically the same as before you know lens
12:34:21 <lambdabot> Setting s t a b -> (a -> b) -> s -> t
12:34:29 <lambdabot> (Applicative f, TraversableWithIndex i t) => (i -> a -> f b) -> t a -> f (t b)
12:34:39 <elliott> monqy: it has some cool signatures!
12:35:09 <lambdabot> LensLike f s t a b -> (a -> f b) -> s -> f t
12:35:12 <shachaf> "pretty cool signature right"
12:35:44 <lambdabot> (Functor f, Field1 s t a b) => (a -> f b) -> s -> f t
12:35:54 <lambdabot> It could refer to either `Data.Ix.index',
12:35:54 <lambdabot> imported from `Data.Ix' at State/L.hs:32:1-14
12:36:04 <elliott> :t Control.Lens.Indexed.index
12:36:06 <lambdabot> Indexed i k => ((i -> a) -> b) -> k a b
12:36:08 <elliott> monqy: that's a pretty nice signature!
12:36:31 <lambdabot> Control.Lens.Internal.Effective m r f => (s -> m a) -> (a -> f a) -> s -> f s
12:36:53 <elliott> :t Control.Lens.Action.act
12:36:55 <lambdabot> Control.Lens.Internal.Effective m r f => (s -> m a) -> (a -> f a) -> s -> f s
12:36:59 <elliott> weird it shows differently
12:37:49 <shachaf> elliott: Really happy with how the Core for getters/folds turns out!
12:38:05 <shachaf> ion is sending patches to lens now.
12:38:09 <shachaf> I'm sure it's just a phase.
12:38:17 <lambdabot> (Functor f, Indexed (Tape (h :> a)) k) => k (a -> f a) ((h :> a) -> f (h :> a))
12:38:21 <elliott> monqy: also a pretty good type
12:38:26 <ion> shachaf: I see what you did there. “phase”
12:38:34 <elliott> focus :: SimpleIndexedLens (Tape (h :> a)) (h :> a) a
12:38:37 <lambdabot> Zipper h a => (h :> a) -> Zipped h a
12:38:50 <monqy> elliott: are these the sorts of types that look cool once i know lens,m because i don't know lense
12:39:09 <elliott> ion: "This isn't /quite/ a legal lens."
12:39:20 <elliott> it' sa cool library i like it
12:39:49 <ion> elliott: edwardk already did that in polarize, so i thought it would be okay.
12:39:51 <shachaf> elliott: Not sure about traversals.
12:39:57 <monqy> im sure id find it cool if i took the time to read what the stuff meant
12:40:10 <elliott> monqy: i figured out lens just by reading the haddocks
12:40:16 <monqy> yeah but i hjavent done that
12:40:24 <monqy> ive been too busy doing other stuff!!!!
12:41:04 <shachaf> monqy: i figured out lens just by going to edwardk's talk about it in san francisco
12:41:08 <shachaf> have you been to san francisco
12:43:08 <ion> shachafs left
12:44:22 <elliott> shachaf: you should fix Data.Vector.Lens
12:44:27 <elliott> it has lots of partial lenses which should be traversals
12:44:37 <shachaf> elliott: No, you should fix it.
12:44:50 <shachaf> And while you're at it, write some benchmarks for me.
12:45:34 <shachaf> Hey, it's pretty nifty that GHC infers t for over and s for view.
12:46:24 <elliott> monqy: another cool lens thing
12:46:25 <elliott> > ala _sum foldMap [1,2,3,4]
12:46:40 <ion> s̈ḧäc̈ḧäf̈:̈¨n̈öẗḧïn̈g̈
12:46:47 <elliott> > ala _endo foldMap [("a"++),reverse,(++"b")] "hello"
12:46:50 <monqy> lens has ala? yeah i remember ala from before
12:46:59 <elliott> it's like Control.Newtype but better since it's not tied to the notions of newtypes
12:47:01 <lambdabot> Simple Iso s a -> ((s -> a) -> e -> a) -> e -> s
12:47:06 <lambdabot> (Functor f, Isomorphic k) => k (Sum a -> f (Sum b)) (a -> f b)
12:47:08 <lambdabot> (Functor f, Isomorphic k) => k (Endo a -> f (Endo b)) ((a -> a) -> f (b -> b))
12:47:11 <shachaf> monqy: lens has first clarinet ala
12:47:30 <elliott> _endo :: Iso (a -> a) (b -> b) (Endo a) (Endo b)
12:47:39 <elliott> _sum :: Iso (Sum a) (Sum b) a b
12:47:40 <lambdabot> Perhaps you meant `view' (imported from Control.Lens)
12:47:44 <elliott> lambdabot just displays them badly :(
12:47:55 <ion> Yes, lens has first clarinet ala.
12:48:25 <shachaf> > from (isomorphic Sum getSum) 1
12:48:27 <lambdabot> No instance for (GHC.Num.Num (Data.Monoid.Sum a0))
12:48:36 <elliott> monqy: so you can also do things like get an isomorphism for your newtype made
12:48:52 <elliott> monqy: so you can treat it as a lens field to modify it/get at it/etc.
12:49:07 <shachaf> monqy: Did you know GHC doesn't optimize [] to []?
12:49:10 <elliott> > First (Just "abcd") & _first %~ reverse
12:49:12 <lambdabot> Couldn't match expected type `Data.Monoid.First [GHC.Types.Char]'
12:49:13 <shachaf> monqy: Did you know GHC doesn't optimize reverse [] to []?
12:49:25 <elliott> > First (Just "abcd") & _first._just %~ reverse
12:49:28 <monqy> shachaf: i hear ghc doesnt inline reverse
12:49:39 <shachaf> > First (Just "abcd") & _first.traverse %~ reverse
12:49:41 <lambdabot> Couldn't match expected type `Data.Monoid.First [GHC.Types.Char]'
12:50:15 <shachaf> > First (Just "abcd") & from _first.traverse %~ reverse
12:50:32 <lambdabot> Isomorphic k => Isomorphism a b -> k b a
12:50:34 <shachaf> > First (Just "abcd") & from _first.traverse %~ reverse
12:50:40 <shachaf> > First (Just "abcd") & from _first.traverse %~ reverse
12:50:40 <shachaf> > First (Just "abcd") & from _first.traverse %~ reverse
12:50:40 <shachaf> > First (Just "abcd") & from _first.traverse %~ reverse
12:50:41 <shachaf> > First (Just "abcd") & from _first.traverse %~ reverse
12:50:52 <monqy> > var "hi shachaf"
12:51:01 <monqy> time limit "not exceeded"
12:51:02 <shachaf> > First (Just "abcd") & from _first.traverse %~ reverse
12:51:10 <ion> Lens is too slow.
12:51:14 <shachaf> monqy: do you have magic powers
12:51:17 <shachaf> > First (Just "abcd") & from _first.traverse %~ reverse
12:51:30 <shachaf> do i have magic powers now>?
12:51:58 <elliott> monqy: other cool things: it has a notion of "indexes" so you can do things like
12:52:03 <elliott> > "abcde" & iwhere (\i -> i `mod` 2 == 0) .~ 'q'
12:52:07 <elliott> > "abcde" & iwhere (\i -> i `mod` 2 == 0) %~ toUpper
12:52:22 <elliott> > M.fromList [("a",2),("b",3)] & at "b" +~ 10
12:52:24 <lambdabot> No instance for (GHC.Num.Num (Data.Maybe.Maybe a0))
12:52:26 <monqy> elliott: o thats cool
12:52:30 <elliott> > M.fromList [("a",2),("b",3)] & at "b" ?~ 10
12:52:41 <elliott> > M.fromList [("a",2),("b",3)] & at "b" ?+~ 10
12:52:46 <elliott> > M.fromList [("a",2),("b",3)] & at "b" +?~ 10
12:52:54 <elliott> is there even an operator for that
12:53:10 <shachaf> elliott: Can you believe how uninlined this is? :-(
12:53:12 <elliott> monqy: anyway you get the idea
12:53:24 <shachaf> > M.fromList [("a",2),("b",3)] & at "b".traverse +~ 10
12:53:38 <elliott> isn't that just traverseAt
12:53:45 <elliott> > M.fromList [("a",2),("b",3)] & traverseAt "b" +~ 10
12:53:45 <shachaf> > M.fromList [("a",2),("b",3)] & _at "b" +~ 10
12:54:05 <lambdabot> (Functor f, At k m, Indexed k k1) => k -> k1 (Maybe v -> f (Maybe v)) (m v -> f (m v))
12:54:07 <lambdabot> `cat' (imported from Text.PrettyPrint.HughesPJ),
12:54:14 <lambdabot> `traverseAt' (imported from Control.Lens),
12:54:16 <lambdabot> (Applicative f, At k m, Indexed k k1) => k -> k1 (v -> f v) (m v -> f (m v))
12:54:27 <elliott> right, so at is just a lens on the Maybe result
12:54:28 <shachaf> k -> SimpleIndexedTraversal k (m v) v
12:54:30 <shachaf> -- Defined in `Control.Lens.IndexedTraversal'
12:54:32 <elliott> whereas traverseAt lifts it to a traversal
12:54:39 <elliott> I wonder if you could unify the notions somehow so they ended up having the same type
12:54:42 <lambdabot> Ambiguous type variable `t0' in the constraint:
12:54:59 <elliott> monqy: have you seen the examples with "both"
12:55:23 <elliott> > (1,2) & partsOf both %~ reverse
12:55:31 <elliott> (that last one is evil don't actually use it please)
12:55:42 <shachaf> > (1,2) & unsafePartsOf both %~ reverse -- less evil??
12:56:15 <elliott> can you do partsOf foo %~ reverse just by using Backwards
12:56:29 <elliott> can you do it in a way that doesn't involve a list at least
12:56:44 <elliott> i mean you must be able to
12:57:05 <shachaf> You can uh, use the traversal twice?
12:57:14 <shachaf> Zip the traversal with its Backwrads?
13:00:30 <lambdabot> `^!' (imported from Control.Lens),
13:00:38 <elliott> how is cale going to keep up
13:00:45 <elliott> also how did cale get convinced to put lens in lambdabot in the first place
13:00:51 <shachaf> @let (^?!) = fromMaybe (error "hi monqy") .: headOf
13:00:55 <monqy> elliott: ive seen "both" in ursala but in haskell it is new to me !
13:01:02 <monqy> except in ursala it is just b
13:01:19 <lambdabot> Applicative f => (a -> f b) -> (a, a) -> f (b, b)
13:01:31 <elliott> monqy: but in ursala can you use it to map over both elements
13:01:43 <shachaf> elliott: Other way around.
13:02:14 <elliott> monqy: the traversal is actually more powerful!
13:02:27 <elliott> monqy: than just (a -> b) -> (a, a) -> (b, b)
13:02:35 <shachaf> can ursala compute the sum of a string
13:02:38 <elliott> you can do the reverse thing
13:02:39 <elliott> > (1,2) & partsOf both %~ reverse
13:02:51 <elliott> (because you get that arbitrary applicative effect)
13:04:07 <ion> > (Sum 3, Sum 4) ^. both
13:04:18 <shachaf> > sumOf both (Sum 3, Sum 4)
13:04:20 <lambdabot> No instance for (GHC.Num.Num (Data.Monoid.Sum a0))
13:04:25 <ion> > sumOf both (3, 4)
13:04:32 <elliott> > (1,2) & both %~ Sum & get both
13:04:32 <monqy> % fun -c -m="~&brlX ((1,2),(3,4))"
13:04:34 <lambdabot> Could not deduce (Control.Monad.State.Class.MonadState
13:04:36 <monqy> "but can haskell do this"
13:04:41 <elliott> > ((1,2) & both %~ Sum) ^. both
13:04:43 <lambdabot> mueval-core: NotAllowed "These modules have not been loaded:\nL\n"
13:04:46 <shachaf> > lastOf (backwards traverse) [1..100000000]
13:04:51 <elliott> > ((1,2) & both %~ Sum) ^. both
13:04:57 <elliott> is there a nicer way of doing this
13:05:01 <shachaf> > lastOf (backwards traverse) [1..100000000000000000000000000000000]
13:05:02 <ion> Wow, i haven’t seen the NotAllowed error before.
13:05:07 <shachaf> > lastOf (backwards traverse) [1..100000000000000000000000000000000000000000000000]
13:05:14 <elliott> like is there a way to capture
13:05:29 <shachaf> elliott: sum toListOf both?
13:05:45 <shachaf> > sum (toListOf both (1,2))
13:05:47 <elliott> that's not really what i maen...
13:06:01 <elliott> foo l f x = over l f x ^. l
13:06:08 <elliott> alternatively, how is sumOf defined
13:06:47 <lambdabot> Getting r s t a b -> (a -> r) -> s -> r
13:07:44 <elliott> > sumOf (iwhere even) [1..10]
13:08:03 <ion> Why isn’t getSum unsafeCoerce in the first place?
13:09:19 <elliott> > sumOf (iwhere even) $ M.fromList []
13:09:21 <lambdabot> Ambiguous type variable `k0' in the constraints:
13:09:24 <shachaf> ion: *You* try to get "over mapped" to compile into fmap
13:10:42 <elliott> > M.fromList [(0,"abc"), (1,"def"), (2,"qqq")] ^. traverse
13:10:54 <elliott> > M.fromList [(0,"abc"), (1,"def"), (2,"qqq")] ^. iwhere even . traverse
13:10:56 <lambdabot> No instance for (Data.Monoid.Monoid GHC.Types.Char)
13:11:04 <elliott> :t M.fromList [(0,"abc"), (1,"def"), (2,"qqq")] ^. iwhere even
13:11:05 <lambdabot> Ambiguous type variable `k0' in the constraints:
13:11:06 <lambdabot> (Integral k0) arising from a use of `even' at <interactive>:1:56-59
13:11:06 <lambdabot> (Num k0) arising from the literal `0' at <interactive>:1:14
13:11:43 <elliott> shachaf: what am I doing wrong
13:12:44 <shachaf> > M.fromList [(0,"abc"), (1,"def"), (2,"qqq")] ^. iwhere (even::Int->Bool)
13:13:21 <ion> Doesn’t work in my ghci. 7.4.2.
13:15:05 <shachaf> elliott: I'm not liking the iwhere Core.
13:15:09 <monqy> shachaf: you should learn ursala!
13:15:21 <elliott> monqy: did you ever finish the manual
13:15:25 <shachaf> didn't she write that book
13:15:27 <monqy> elliott: no i got sidetracked
13:15:58 <monqy> elliott: im struggling with the hell that is figuring out how to get rewriting under binders working in coq
13:16:11 <monqy> while really tired??? i should sleep
13:16:21 <elliott> monqy: sounds less fun than ursala. you should read the manual some more instead
13:16:40 <elliott> shachaf: come on, ghc is smart enough for that
13:17:59 <shachaf> But not for one of the other ones I added.
13:18:39 <shachaf> itoListOf ifolded is working
13:18:45 <shachaf> but itoListOf itraverse is not??????
13:19:35 <ion> monqy: Binders full of women?
13:20:41 <lambdabot> FoldableWithIndex i f => f b -> [(i, b)]
13:20:43 <lambdabot> Couldn't match expected type `IndexedGetting
13:20:44 <lambdabot> with actual type `(i1 -> a1 -> f0 b1) -> t1 a1 -> f0 (t1 b1)'
13:23:09 <monqy> ahh, the hell that is rewriting under binders was working all along but i forgot to declare my stuff as morphisms
13:23:17 <monqy> im too tired for this
13:23:42 <shachaf> i declare monqqys stuff as morphisms
13:24:29 <shachaf> elliott: Should indexed be strict?
13:24:37 <lambdabot> Indexed Int k => ((a -> Control.Lens.Internal.Indexing f b) -> s -> Control.Lens.Internal.Indexing f t) -> k (a -> f b) (s -> f t)
13:24:45 <shachaf> indexed l = index $ \iafb s -> case runIndexing (l (\a -> Indexing (\i -> (iafb i a, i + 1))) s) 0 of
13:24:49 <shachaf> indexed l = index $ \iafb s -> case runIndexing (l (\a -> Indexing (\i -> i `seq` (iafb i a, i + 1))) s) 0 of
13:25:00 <shachaf> elliott: help i dont havae any benchmarks!!
13:25:06 <elliott> i thought you meant strict as in strict
13:25:19 <shachaf> One of them builds a bunch of thunks, though, I assume.
13:25:32 <elliott> what if you have a complex lens type
13:25:50 <elliott> that has a lot of computation
13:25:51 <lambdabot> Indexed Int k => ((a -> Control.Lens.Internal.Indexing f b) -> s -> Control.Lens.Internal.Indexing f t) -> k (a -> f b) (s -> f t)
13:26:20 <lambdabot> Indexed Int k => ((a -> Control.Lens.Internal.Indexing f b) -> s -> Control.Lens.Internal.Indexing f t) -> k (a -> f b) (s -> f t)
13:26:28 <elliott> it seems semantically wrong though
13:26:35 <shachaf> indexed turns an existing traversal into an Int-indexed traversal
13:26:40 <elliott> what if you have a structure where it's easy to access in order
13:26:41 <shachaf> Just by the order it Ints by.
13:26:46 <elliott> but calculating the exact indices is expensive
13:27:01 <elliott> does it even change semantics to make it strict then
13:27:19 -!- sivoais has joined.
13:27:20 <shachaf> Who cares about semantics?
13:27:25 <shachaf> I asked if it should be strict.
13:27:38 <elliott> i assumed it was a question about the function's denotation
13:27:40 -!- monqy has quit (Quit: hello).
13:27:46 <elliott> operationally, do whatever you think will be fastest, probably strict
13:30:50 -!- atriq has joined.
13:33:13 <shachaf> elliott: Yay, saves us from a stack overflow.
13:34:00 <shachaf> itoListOf l = ifoldMapOf l (\i a -> [(i,a)])
13:34:21 <shachaf> Should it be ifoldrOf l (\i a -> ((i,a):))?
13:45:30 <shachaf> elliott: Isn't it annoying how with rank-2 types, to make a type *more* polymorphic you have to make the signature *more* specific?
14:13:33 <Phantom_Hoover> for some reason every single human in the village i was in, including my 3 companions, turned hostile
14:14:06 <Phantom_Hoover> presently i am retreating from a massive crowd of them, a trail of broken bodies in my wake
14:16:43 <Phantom_Hoover> no, i got sent to kill a spearman by someone in the same village
14:17:11 <Phantom_Hoover> when i found him in one of the huts, there was a flurry of chaos and everyone started attacking me
14:17:32 <Phantom_Hoover> they've gashed my foot and my left arm, but so far i'm holding them off pretty handily
14:22:17 <atriq> Phantom_Hoover, has elliott started the fortress yet?
14:24:05 <atriq> I figured asking you would ping both of you
14:24:18 <atriq> elliott, does Phantom_Hoover think you've started the fortress yet?
14:25:30 <lambdabot> Indexed Int k => ((a -> Control.Lens.Internal.Indexing f b) -> s -> Control.Lens.Internal.Indexing f t) -> k (a -> f b) (s -> f t)
14:25:36 <shachaf> "how hard can it be to write this function"
14:25:43 <atriq> elliott, if Phantom_Hoover thought you had started the fortress, would he be correct#?
14:25:57 <atriq> I feel like I'm in a logic puzzle
14:26:51 <elliott> atriq: from a falsehood, all follows
14:27:01 <elliott> the falsehood is Phantom_Hoover thinking
14:47:23 -!- variable has joined.
14:48:53 -!- variable has quit (Read error: Connection reset by peer).
14:49:25 <Phantom_Hoover> i can't sleep in the town, it's night, and i can't stand before healing
14:49:51 <Vorpal> Phantom_Hoover, which game?
14:50:44 <Vorpal> hm, never played that mode, is it any good?
14:51:56 <Vorpal> is it as fun as the fortress mode though?
14:52:59 <elliott> Vorpal: it's a masterpiece
14:57:34 -!- Vorpal has quit (Ping timeout: 250 seconds).
15:06:34 <fizzie> A thing that moves air around.
15:06:55 <fizzie> Apparently only if it's done by movement of a surface or surfaces.
15:11:51 -!- variable has joined.
15:18:13 -!- variable has quit (Ping timeout: 246 seconds).
15:53:13 -!- t1 has joined.
16:01:22 -!- oerjan has joined.
16:02:25 <lambdabot> Arc_Koen said 3h 46m 28s ago: my Minks implementation is based on what was written in the minks page + what was said on the talk page; also I did not put any comments in it and the parser is
16:02:25 <lambdabot> incredibly badly written; I'm not sure considering that implementation as some sort of "reference implementation" is such a good idea ;)
16:02:25 <lambdabot> Arc_Koen said 3h 46m 5s ago: also I'll try to remember why I put it on the talk page in the first place and not in a wiki page of its own
16:04:01 <oerjan> Arc_Koen: well the part about conditions starting True was also in the talk page; the other change was that only conditions before commands count for the loop checking, which your truth machine depends on. feel free to undo it but then you need to change both your implementation and your truth machine.
16:04:25 <oerjan> @tell Arc_Koen well the part about conditions starting True was also in the talk page; the other change was that only conditions before commands count for the loop checking, which your truth machine depends on. feel free to undo it but then you need to change both your implementation and your truth machine.
16:05:52 <oerjan> @tell Arc_Koen that is, the condition x is used as a target in the truth machine, but ignored for the loop check
16:06:24 -!- t1 has left.
16:08:57 <oerjan> @tell Arc_Koen also i certainly don't consider your use of bounded integers to be authoritative >:)
16:16:45 <atriq> Well, that code became neater quickly
16:17:13 <atriq> Rewriting a DCPU interpreter I started and never finished
16:17:25 <oerjan> it's when it starts obfuscating itself you should start worrying
16:18:52 <atriq> From 3 lines with ridiculous lambdas, record syntax, and the "lens" function to 1 line, with pointless fun
16:19:40 <atriq> Basically, I've got two UArrays of Word16s in one datatype, with different address types
16:20:08 <atriq> And I was making a function that took an Either AddressType1 AddressType2 and returned a Simple Lens DCPU Word16
16:20:35 <atriq> dcpuLens = dcpuRegisters .: ix ||| dcpuRam .: ix
16:38:16 -!- oerjan has quit (Quit: leaving).
16:45:31 <elliott> i can't become a duck all by myself Phantom_Hoover
16:46:01 <Phantom_Hoover> step 2, anger witch after expressing utmost revulsion for ducks
16:47:15 -!- AnotherTest has joined.
16:47:49 <atriq> elliott, you can do step 2 easily by saying "I hate you almost as much as I hate ducks!"
16:48:39 <Phantom_Hoover> i'm handing control of this project over to you, you are more likely to know about witches in the hexham area
16:49:21 <atriq> I can't think of any specific witch off the top of my head, but I'll put out some feelers
16:49:30 <elliott> atriq: that doesn't work if i like ducks though..... i;td be a compliment
16:49:49 <atriq> elliott, the witch doesn't have to know you like ducks!
16:50:33 <atriq> Think of the insinuations of the negative word "hate"
16:50:38 <atriq> As applied to ducks
16:50:47 <atriq> The obvious assumption is that the speaker hates ducks
16:51:15 <elliott> what if that just means i love ducks....... to death
16:51:42 <Phantom_Hoover> say you love her........... to death too, then try and kill her however you killed the duck
16:51:55 <Phantom_Hoover> she will turn you into a duck as an ironic lesson on the consequences of your actions
16:59:42 <Phantom_Hoover> come on surely there are some witches in northumberland who like homestuck!
17:00:48 <atriq> a) Northumberland is pretty big, and Hexham's right in the south of it
17:01:01 <atriq> b) most of the Homestucks I know live in Tyne and Wear
17:05:23 <fizzie> Tyne and Wear sound like made-up names.
17:06:12 <atriq> It's a modern county named after two rivers flowing through it
17:06:21 <atriq> The Tyne also flows through Hexham
17:06:33 <kmc> they have a metro
17:06:43 <fizzie> Do the metro trains run on Tyne?
17:06:57 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
17:10:54 <Phantom_Hoover> i'm fairly sure the nick cage appreciation society at this university was made by homestucks, but they seem to be in hiding
17:11:42 <atriq> Acquire a Homestuck shirt, ideally from your wardrobe. Wander about in it constantly, but not just after updates.
17:12:37 <atriq> You can get Homestuck hoodies, which are closer to jumpers than t-shirts
17:14:33 <fizzie> You can just wear your Homestuck underwear on top of your pants.
17:15:33 <fizzie> There's an empty Tumblr with that title.
17:16:02 <atriq> I need to pretend to be Phantom_Hoover
17:16:11 <fizzie> There was also something I didn't understand in the results.
17:16:42 <Phantom_Hoover> i heard someone mentioning something called 'mathfuck' or maybe 'fuckbrath', it sounded awful
17:16:57 <Phantom_Hoover> i couldn't get any more details out of them but that sounds like a good start
17:26:37 <atriq> My query on Facebook for witch recommendations has received three likes. All by Homestucks, as it happens
17:29:07 -!- carado has joined.
17:29:27 <fizzie> What's this witch thing?
17:29:41 <atriq> elliott needs a witch so he can become a duck
17:30:35 <Phantom_Hoover> atriq, why is your facebook picture a drawing of a girl :/
17:30:43 <atriq> It's a drawing of me
17:30:54 <atriq> I'm just rather devoid of masculinity
17:30:57 <fizzie> All Hexhamites look like girls, is that it?
17:31:06 <atriq> And in an unusual outfit
17:31:58 <atriq> I'm fairly sure you watch Doctor Who
17:32:07 <atriq> You've complained about my taste in doctors before.
17:33:07 <fizzie> Yeah, it's lowering your compatibility percentage.
17:33:26 <Phantom_Hoover> have to love how my dorfs are happy to have a drink at the edge of a 9-level precipice
17:38:21 <Phantom_Hoover> atriq, at least you liked the episode with ben browder in it
17:38:35 <atriq> Which episode was that?
17:39:05 <atriq> That was a good episode
17:40:56 <quintopia> farscape was a good episode. i was younger then, and probably happier.
17:45:15 <Phantom_Hoover> at least she was surrounded by her friends when she died
17:48:39 -!- zzo38 has joined.
17:48:48 <Phantom_Hoover> now they're showing their respects by leaving her corpse lying on one of the central staircases and making no effort at all to bury her
17:49:28 -!- elliott has quit (Remote host closed the connection).
17:49:41 <zzo38> That is not a very good place to leave the corpse.
17:50:55 <zzo38> Even if you don't have any coffins, the stairs is not a good place to leave it.
17:51:08 <atriq> zzo38, dwarf logic
17:51:27 <atriq> "Hey, there's the old mayor's corpse"
17:51:35 <atriq> "It should be in a coffin"
17:51:39 <atriq> "We don't have any coffins"
17:52:05 <atriq> "Bah, I've got more important things to do, like carry this barrel of mushrooms to the mushroom farm to put a mushroom in it"
17:58:42 -!- Nisstyre-laptop has joined.
18:09:08 <Phantom_Hoover> no, vampires will prey on domesticated animals if they can't find dorfs
18:13:25 <Phantom_Hoover> both of them have just vanished out of the blue, with no hostiles on the map and no combat logs
18:32:40 <zzo38> What is a amplitude per second units?
18:34:11 <zzo38> It is not measured here in dB though, it is measured using linear
18:34:32 <nooga> I see that DF is trendy again
18:34:44 <zzo38> They are floating point values that would be converted to integer and store in sound files.
18:35:21 <kmc> probably that amplitude is unitless
18:35:28 <kmc> it's a fraction of the maximum cone displacement
18:35:40 <kmc> unless your audio files are normalized to some volume standard
18:36:17 <kmc> in which case they are a maximum of some specified decibel value at some specified measuring condition
18:36:20 <kmc> and so still unitless
18:36:43 <zzo38> They are 0 dB at whatever the user specifies in the Csound orchestra file, in the "0dbfs" parameter.
18:37:09 <zzo38> That becomes the maximum value without clipping
18:39:46 <nooga> what was that command to leave a message for someone using our bot[s]?
18:39:55 <zzo38> It is Csound, and some of the commands I added take the amplitude per second measurements, such as the "slowchange" command.
18:39:58 <kmc> @tell nooga it's @tell
18:40:15 <nooga> and he didn't told me
18:40:16 <lambdabot> nooga: You have 1 new message. '/msg lambdabot @messages' to read it.
18:40:40 <FreeFull> Waits until the next time you speak in a channel it's in =P
18:41:26 <zzo38> Although you can check messages even without that, too
18:41:36 <nooga> @tell elliott http://cl.ly/image/2R2T1L0G0L2e OH LOOK WHAT I'VE GOT :}
18:44:23 <quintopia> zzo38: ah you mean samples per second. also known as frequency. it is measured in Hz
18:45:10 <zzo38> quintopia: Well, yes, it is Hz, I guess, although in this case the amplitude is important too
18:45:28 <FreeFull> Well, the sampling rate is twice the maximum frequency
18:45:50 <quintopia> but as kmc said, the amplitude is unitless
18:46:08 <FreeFull> Amplitude will depend on bits per sample
18:46:39 <quintopia> or use dB since apparently you specify a 0dB standard
18:47:36 <zzo38> But what I have is more like a slope I think
18:50:33 <Phantom_Hoover> fortunately he's just kind of standing next to a lever doing nothing
18:50:45 <atriq> That's our itidus!
18:51:58 <Phantom_Hoover> "i think the reason i can't get her to do anything is that i just can't wrap my brain around possessing people"
18:52:45 <Phantom_Hoover> "they say possession is nine tenths of the law, but what about the laws of physics?
18:55:48 -!- Nisstyre-laptop has quit (Quit: Leaving).
18:57:30 -!- Nisstyre-laptop has joined.
19:02:30 <zzo38> Make up the game involving possession nine tenths of the law of physics.
19:13:47 <quintopia> most rts's and social games are like that
19:17:26 <zzo38> Now I programmed the Csound command "aQ, anotQ flipflop aS, aR, aclock, [ithreshold], [klow], [khigh], [init]"
19:44:40 -!- AnotherTest has quit (Quit: Leaving.).
19:45:02 -!- AnotherTest has joined.
19:47:45 <zzo38> Csound is a program to make music and sound effect.
19:47:58 <zzo38> You can look it up in Wikipedia for information.
19:48:52 <zzo38> It has its own orchestra prorgamming language, and then there is also a score file which tells it what instruments to play, when, and what parameters.
19:50:39 <zzo38> It is not difficult to add new commands by writing plugins in C. You don't need to do anything other than compile the plugin with the correct options (on my computer: gcc -DUSE_DOUBLE -I "$CSOUNDDIR/include" -shared -o csoundextraopcodes.dll -O2 csoundextraopcodes.c -lm); once it is compiled, it will automatically work.
19:50:54 -!- atriq has quit (Quit: Leaving).
19:51:17 <nooga> btw. I'm writing a roguelike with it's own, runic, esoteric programming language for inscribing items
19:52:03 <nooga> script your own items, cool, huh?
19:52:32 <zzo38> OK write a description of such programming language in esolang wiki then?
19:53:07 <nooga> the problem is that it does not exist at the moment
19:53:22 -!- atriq has joined.
19:53:32 <nooga> i have only vague idea how to tackle it
19:54:53 <zzo38> Write the ideas on a user subpage perhaps.
19:55:15 <quintopia> i figured out how metajousting would work yesterday
19:56:49 <zzo38> I changed S, R, clock, to x-rate instead of a-rate. This "flipflop" command I made up can be used to convert other signals into a square wave one octave lower.
19:56:57 <zzo38> quintopia: How does metajousting work?
19:57:50 <quintopia> the rules about the tape and polarities are the same as for bfjoust
19:58:22 <quintopia> but the "flag" cells are initialized to zero, because the goal is not to tear down the flags on the regular tape
19:58:45 <quintopia> instead, there is a second two-cell three-bit tape, with both initialized to 7
19:59:08 <quintopia> and each player has a pointer to one of these cells on this tape
19:59:26 <quintopia> we reinclude . and , to mean what they do in bf
20:00:07 <quintopia> but, if a player outputs 0, it flips the meta-pointer to the other cell, and if it outputs 1 or -1, it increments or decrements the cell the metapointer is pointing to
20:01:04 <quintopia> and , copies the current value of the pointed cell on the metatape to the regular tape
20:01:14 <quintopia> the goal is to lower the metaflag for two cycles
20:03:35 -!- AnotherTest has quit (Quit: Leaving.).
20:06:32 <zzo38> Now implement it and/or write a wiki article about it.
20:24:31 -!- atriq has quit (Quit: Leaving).
20:24:33 -!- epicmonkey has quit (Ping timeout: 260 seconds).
20:24:40 -!- Nisstyre-laptop has quit (Ping timeout: 244 seconds).
20:28:26 -!- oerjan has joined.
20:29:32 -!- ais523 has joined.
20:31:05 <oerjan> 16:48:39: <Phantom_Hoover> i'm handing control of this project over to you, you are more likely to know about witches in the hexham area
20:31:08 <oerjan> 16:49:21: <atriq> I can't think of any specific witch off the top of my head, but I'll put out some feelers
20:31:20 <oerjan> isn't everyone in hexham a witch? it's sort of in the name...
20:31:47 <oerjan> except i hear "hex" in that sense has only been borrowed into american english...
20:33:30 <oerjan> btw in norwegian fairy tales a "hekseham" is an animal hide used by a witch to turn into that animal
20:34:50 <oerjan> or wait would that be a hide someone uses to turn into a witch...
20:36:58 <oerjan> "dyreham" might be more correct.
20:38:20 -!- atriq has joined.
20:41:28 * Phantom_Hoover googles 'hekse' in an attempt to confirm this, ends up at http://da.wikipedia.org/wiki/Heks
20:41:53 <atriq> elliott is in luck
20:42:14 -!- Nisstyre-laptop has joined.
20:42:37 <atriq> http://translate.google.co.uk/#en/da/witch%20home
20:43:41 -!- sivoais has quit (Ping timeout: 255 seconds).
20:47:30 <oerjan> atriq: that would be combined into heksehjem
20:49:30 -!- nooga has quit (Ping timeout: 276 seconds).
20:53:14 -!- atriq has quit (Remote host closed the connection).
20:53:44 -!- sivoais has joined.
20:53:52 -!- atriq has joined.
20:54:40 <oerjan> that minks language has some awkward flow control
20:54:55 <atriq> More or less awkward than Fueue?
20:55:25 <oerjan> more i should think, although the paradigms are completely different so how to compare...
20:56:03 <oerjan> there are enough registers to do a collatz function similar to the 3-cell bf, but i'm not sure whether it is possible to manipulate conditions in the right way
20:56:46 <oerjan> i don't yet see a way to set a condition only if a register is 0
20:57:40 <oerjan> and you cannot clear conditions at all if both registers are far from 0
21:01:05 <oerjan> however it is easy to set one register if another is set
21:01:35 <quintopia> zzo38: it would be trivial to implement, but i don't feel like doing that or writing it up
21:05:35 <fizzie> The grad school funding thing that pays for my salary is called "Hecse". There are no hams involved, though.
21:12:42 -!- Vorpal has joined.
21:12:44 <zzo38> Is there any driver to emulate physical damage in a disk image?
21:13:28 <oerjan> zzo38: a screwdriver hth
21:16:00 <zzo38> It is not what I mean.
21:17:36 -!- NihilistDandy has joined.
21:19:43 -!- NihilistDandy has quit (Quit: leaving).
21:20:02 -!- NihilistDandy has joined.
21:39:48 <fizzie> Linux device-mapper has a "dm-flakey" target.
21:39:59 <fizzie> "This target is the same as the linear target except that it exhibits unreliable behaviour periodically. It's been found useful in simulating failing devices for testing purposes."
21:40:54 -!- atriq has quit (Quit: Leaving).
21:41:02 <FreeFull> Well, how else are you supposed to know if your code does the right thing in bad conditions without having bad hardware
21:41:25 -!- atriq has joined.
21:42:07 <fizzie> You give it numbers X and Y, and then it cycles so that it's available for X seconds, then it's broken for Y seconds, and so on. By default when it's broken it's totally broken, but you can also tell it to instead drop all writes but work correctly when reading, or to corrupt every N'th byte of each matching IO request data block.
21:43:01 <zzo38> Can you also tell it what parts of the disk are broken?
21:43:20 -!- variable has joined.
21:43:37 -!- ogrom has quit (Quit: Left).
21:44:13 <fizzie> I don't think it has an option for that, though it probably should be possible to do that too with device-mapper somehow. Possibly with some setup involving dm-delay too.
21:46:26 <fizzie> If nothing else, you should be able to make your "disk" by combining dm-linear's mapping to the non-broken parts and dm-flakeys for the broken ones. Some scripting would undoubtedly be involved.
21:53:25 <Phantom_Hoover> OK so in DF, minecarts going quickly around sharp bends jump the tracks and spill their contents everywhere at high speed.
21:54:04 <atriq> Phantom_Hoover, did you do this by accident, or are you planning to do this delibrately
21:54:44 <Phantom_Hoover> Obviously, even in DF it'd be pretty ridiculous to accidentally build a magma linear accelerator.
21:55:44 <Phantom_Hoover> OTOH minecarts are also a much more practical way of transporting magma over long distances than pump stacks, so I was planning to do it anyway.
21:55:45 <atriq> Maybe you accidentally built your magma forges miles away from lava
21:55:51 <atriq> Because you sneezed
21:56:01 <atriq> And thought "let's be dorfy!"
21:59:54 -!- copumpkin has joined.
22:00:33 -!- monqy has joined.
22:18:40 <Sgeo__> http://ansuz.sooke.bc.ca/entry/254
22:32:19 <lambdabot> Arc_Koen: You have 3 new messages. '/msg lambdabot @messages' to read them.
22:32:24 <lambdabot> oerjan said 6h 28m ago: well the part about conditions starting True was also in the talk page; the other change was that only conditions before commands count for the loop checking, which your
22:32:24 <lambdabot> truth machine depends on. feel free to undo it but then you need to change both your implementation and your truth machine.
22:32:25 <lambdabot> oerjan said 6h 26m 32s ago: that is, the condition x is used as a target in the truth machine, but ignored for the loop check
22:32:25 <lambdabot> oerjan said 6h 23m 28s ago: also i certainly don't consider your use of bounded integers to be authoritative >:)
22:32:28 <oerjan> ah thinking of the devil...
22:32:35 -!- copumpkin has quit (Ping timeout: 255 seconds).
22:33:06 -!- copumpkin has joined.
22:33:33 <oerjan> ...it's a stock phrase, slightly modified.
22:36:53 <oerjan> i think the impossibility of clearing conditions while both registers are non-zero implies Minks is not TC
22:38:20 <Arc_Koen> I was afraid you might say that
22:47:56 <oerjan> oh hm actually the more serious problem is that there is no way to set one condition based on another _not_ being set.
22:48:56 <oerjan> wait that's an oversimplification too
22:52:39 <Arc_Koen> yeah hmm "there is no way to" doesn't seem like something easy to prove
22:55:16 <oerjan> it's not true when a register is close to 0 :P
22:55:58 <oerjan> the actual argument is somewhat more complicated.
22:57:44 <oerjan> you make a graph where the vertices are conditions, and there is an edge between conditions if there's a dec or DEC instruction causing the one to set the other
23:00:22 <oerjan> when both registers are set, conditions gradually get set to True along the paths of that graph, until there are no more edges to follow. this must happen in a number of loops <= the diameter of the graph.
23:01:12 <oerjan> once this happens, no conditions can change again until one of the registers reaches 0.
23:05:55 <Arc_Koen> so the graph is one way of describing the program?
23:09:04 <oerjan> i am having an annoying intuition not to try to explain this
23:09:45 <oerjan> ...maybe there's an error in the argument somewhere, then.
23:11:48 * oerjan is more inclined to think his intuition is just being an asshole.
23:20:31 <atriq> How can I encode that in Haskell...
23:20:41 <atriq> AGE_AT_EVENT: = {Size=1:12}
23:20:41 <atriq> [ YYy MMm DDDd | YYy | MMm | DDDd |
23:20:41 <atriq> YYy MMm | YYy DDDd | MMm DDDd |
23:20:41 <atriq> CHILD | INFANT | STILLBORN ]
23:20:47 <atriq> From the GEDCOM specs
23:21:49 <Arc_Koen> is that when you're dead before being born?
23:22:18 <atriq> I'm inclined to make the first part an Ordering
23:22:31 <Arc_Koen> can I ask why you're doing this? it sounds depressing
23:22:53 <atriq> I'm writing a genealogy library in haskell
23:22:59 <atriq> It's a long term project
23:24:39 <Arc_Koen> are stillborn that relevant for genealogy purposes? I don't think they get to have much offspring
23:24:54 <atriq> This is a standard that I'm trying to stick to
23:33:34 <Phantom_Hoover> i let the vampire out so i could move her into a strand extraction facility
23:35:18 <Arc_Koen> did you at least give her suncream?
23:39:46 <Phantom_Hoover> every time she actually goes inside her little prison she immediately leaves and feeds again
23:40:15 <Phantom_Hoover> on her way to the bedrooms, she has passed the people carrying both elliott and Vorpal's bodies to the tombs
23:42:07 <Phantom_Hoover> those 3 deaths alone were enough to make like 10 dorfs miserable
23:43:33 <oerjan> time to exercise some exorcism
23:43:47 <Arc_Koen> so three of your people have been killed because they were trying to rescue dead bodies?
23:43:57 <Arc_Koen> and now there are 5 dead bodies and nobody to rescue them?
23:44:50 <Phantom_Hoover> Bodies moved to tombs. Vampire moves to other section of fortress where I am vainly attempting to trap her.
23:45:40 <Phantom_Hoover> Tombs are also in this section. Vampire slips the net, moves back to bedrooms to feed again. People carrying Vorpal and elliott's bodies are going the other way and pass her in the corridor.
23:46:08 <Phantom_Hoover> Vampire kills third dorf, I follow her back and trap her properly this time.
23:46:09 <Arc_Koen> you said "vampire moves to other section"
23:46:28 <Arc_Koen> I was assuming "other than the section the "moving bodies to tomb" action takes place in"
23:49:57 <Phantom_Hoover> i have a robust justice system and a lot of happiness boosters in place; i hope it's enough
23:52:11 <Phantom_Hoover> a robust system where the captain of the guard is asleep, preventing any crimes being reported