00:05:53 <zzo38> How to calculate the Venus transit?
00:07:11 <zzo38> Is there a simple way using the data from Astrolog? (Astrolog will display distances too, as well as azimuth/altitude, ecliptic longitude/ecliptic latitude, and right ascension/declination)
00:10:23 -!- Phantom__Hoover has quit (Read error: Connection reset by peer).
00:14:43 <quintopia> you calculate the time when earth and venus are the same angle around the sun (this is a periodic function)
00:15:16 <quintopia> and calculate when they are same distance from the ecliptic (a strange function ew)
00:15:30 <quintopia> and see when they coincide to within some small tolerance
00:15:44 <zzo38> Do you need the apparent diameter?
00:19:52 <zzo38> Astrolog will display the ecliptic coordinates of Sun and Venus
00:21:53 <zzo38> As well as the distance
00:23:20 <oerjan> um a transit would be when venus is _on_ the ecliptic, no?
00:23:40 <oerjan> and also in the same place as the sun
00:23:51 <zzo38> Well, yes; but some tolerance is allowed due to apparent diameter
00:24:16 <oerjan> isn't this basically the same as for eclipses, just with venus and sun instead of moon and sun?
00:24:40 <zzo38> Yes it is the same kind of thing as with a solar eclipse
00:24:56 <oerjan> and you already told iirc that you had found out how to find eclipses
00:25:08 <quintopia> oerjan: not necessarily on the ecliptic no. i don't think.
00:25:27 <oerjan> quintopia: well very close. the _sun_ is always there, after all.
00:25:52 <zzo38> Yes I have, but even with eclipses I do not know how to calculate where it will be visible and what the tolerance will be, and whether it is total or partial
00:26:12 <oerjan> well venus transits are never total
00:26:30 <quintopia> oerjan: the ecliptic is the plane in which earth orbits? then yes it will be very close
00:27:48 <oerjan> zzo38: anyway, ecliptic latitude ~ 0 and conjunction with sun, i should imagine
00:28:11 <zzo38> oerjan: I know that much!
00:29:25 <zzo38> What I don't know is such things as the tolerance and visibility conditions
00:29:43 <oerjan> i recall from wikipedia there's an approximate period of 243 years
00:31:24 <oerjan> zzo38: well if you have difference in latitude and in longitude between venus and sun, then pythagoras theorem should give a close approximation to the distance between the centers, i think
00:31:50 <zzo38> But these are spherical coordinates
00:32:53 <oerjan> yes, thus only an approximation
00:34:01 <oerjan> and only good when they are actually close
00:36:12 <zzo38> Also, why are solar eclipses visible at different place on the Earth? I see maps of solar eclipse where they are visible
00:36:38 <zzo38> I do know the Moon moves much faster than Venus
00:36:44 <oerjan> because the moon is much smaller than the sun, so its shadow can never cover all of earth
00:37:07 <zzo38> How do you calculate where it is visible?
00:37:51 <quintopia> you need to use the rotation of the earth, and the location of moon wrt ecliptic when it is in "full" position
00:37:53 <oerjan> actually i guess it has more to do with distance
00:38:03 <zzo38> oerjan: Doesn't it depend on apparent diameter, not true diameter?
00:39:07 <quintopia> i expect the locus of points where solar eclipse reaches totality to look about like a sine curve
00:39:16 <oerjan> if the apparent diameters were always equal, then the eclipse would always be total at exactly one spot, i think
00:39:24 <quintopia> since the axis of earth is tilted wrt eclipctic
00:39:41 <zzo38> Astrolog does include the true diameters (given in units where 1 = diameter of Earth), but no apparent diameters
00:39:49 <oerjan> well unless it misses earth entirely
00:40:04 <olsner> elliott: I can confirm that I have no clue what kuskelar the clatsop man is doing
00:40:13 <elliott> @tell ais523 <olsner> elliott: I can confirm that I have no clue what kuskelar the clatsop man is doing
00:40:16 <oerjan> zzo38: just divide by distance
00:40:21 <zzo38> quintopia: Yes; the Tropic of Cancer and Tropic of Capricorn give the amount of the tilt (named because those are the ecliptic longitude of the Sun if the declination is at those tropics)
00:40:38 <zzo38> And they do sometimes move slightly
00:40:39 <quintopia> oerjan: no, it would not always be a point, since the apparent diameter is also a function of location from which you are viewing
00:41:26 <zzo38> quintopia: So, you would move the center of measurement?
00:41:50 <quintopia> zzo38: no, oerjan is right you just divide by distance to get apparent diameter
00:42:00 <quintopia> but that distance is a distance to a particular point on the earth
00:42:30 <quintopia> astronomical calculations are reliable and predictable
00:43:26 <oerjan> actually dividing by distance is not totally accurate, i think, since they are spheres not circles
00:43:45 -!- Vorpal has quit (Ping timeout: 260 seconds).
00:43:49 <oerjan> and so which circle on the surface forms the visible edge depends on distance
00:44:29 <quintopia> it is as close to perfect as you can get
00:45:00 <oerjan> i don't think that is quite true
00:45:31 <quintopia> no? i guess black holes are more spherical...but the sun is p damn close
00:45:46 <oerjan> um it's a problem _for_ spheres
00:46:16 <quintopia> a sphere looks like the same circle from all angles at a particular distance
00:46:31 <oerjan> yes, but it depends on distance in a nonlinear way
00:47:02 <quintopia> yeah i guess we are close enough to the moon that we cant consider the projection orthographic
00:47:29 <oerjan> i think the apparent diameter is what counts for that, actually
00:47:46 <oerjan> so it's approximately as distorted for the moon as for the sun
00:48:14 <quintopia> since they have approximately the same apparent diameter
00:52:45 <oerjan> http://en.wikipedia.org/wiki/Angular_diameter has formulas - apparently the difference just amounts to using arcsin for spheres instead of arctan for disks
00:55:32 <oerjan> zzo38: that also has lists including the sun and venus
00:56:05 <oerjan> but i guess it doesn't tell exactly how they vary
01:12:56 -!- SimonRC has quit (Ping timeout: 244 seconds).
01:15:20 -!- pikhq has joined.
01:17:59 -!- pikhq_ has quit (Ping timeout: 265 seconds).
01:18:19 -!- PatashuXantheres has changed nick to Patashu.
01:30:17 -!- zzo38 has left.
01:49:42 -!- pikhq_ has joined.
01:52:34 -!- pikhq has quit (Ping timeout: 252 seconds).
02:02:20 -!- pikhq has joined.
02:02:30 -!- pikhq_ has quit (Ping timeout: 260 seconds).
02:12:51 -!- pikhq has quit (Ping timeout: 252 seconds).
02:12:55 -!- pikhq_ has joined.
02:15:33 -!- david_werecat has quit (Ping timeout: 256 seconds).
02:16:05 -!- Patashu has quit (Ping timeout: 246 seconds).
02:22:10 -!- Patashu has joined.
02:37:11 -!- zzo38 has joined.
02:50:37 <kmc> so why is this channel full of people from .fi
02:50:46 <kmc> is it just that y'all speak an esoteric language from birth
02:50:56 <kmc> also it appears i might go to .fi in august or something
02:50:58 <kmc> what should i do there
02:51:09 <zzo38> Do you know what some monads are which are the codensity of something and/or the free monad of something?
02:51:16 <zzo38> kmc: Learn their language
02:51:38 <shachaf> I hear it's a popular activity.
02:51:59 <shachaf> What are you ending up there?
02:52:18 <shachaf> Also, it's 6 in .fi right now.
02:54:25 <kmc> yeah sauna would be cool
02:54:49 <elliott> kmc: Esoteric programming is "a thing" in Finland, I think.
02:54:53 <elliott> Or at least, more of a thing than it is elsewhere.
02:54:56 <elliott> Like the demoscene! Except not.
02:55:14 <kmc> that makes sense now
02:55:27 <kmc> well, now i can ask why .fi is the world center of demoscene + esoteric programming
02:55:47 <elliott> kmc: because they have nothing else to do all fucking day in that frozen wasteland?
02:55:55 <kmc> sex, drinking
03:24:19 <elliott> are you able to answer them
03:24:41 <shachaf> elliott: Are you committing IRC sin #1 on purpose. :-(
03:24:58 <elliott> shachaf: I *am* IRC sin #1.
03:24:59 <kmc> elliott: sure, you can also try #mosh
03:25:10 <elliott> kmc: no way why would i talk to a whole channel of people when just one would do
03:25:15 <elliott> it's not actually a mosh question that's the great part
03:25:20 <elliott> it's just a question about mosh's internals!
03:25:24 <shachaf> elliott: The point is that if kmc can't answer your question, he'd feel bad.
03:25:26 <elliott> i'm not even *using* mosh right now!
03:25:31 <shachaf> Or if he's too lazy to answer your question.
03:25:33 <elliott> shachaf: That seems perfectly fine to me.
03:25:46 <elliott> Of course people should feel bad if they can't/won't answer my questions!
03:25:48 <shachaf> I know. That's why we made it a Law of IRC.
03:26:00 <kmc> then tell me something cool to do in .fi
03:26:15 <shachaf> kmc: There's some nifty food to eat in .fi.
03:26:24 <shachaf> So make sure you eat something while you're there.
03:26:28 <shachaf> Also what are you doing in .fi?
03:26:29 <elliott> kmc: So, my understanding is that mosh roughly works by synchronising the big-block-of-cells that is the terminal display between server and client.
03:26:43 <kmc> shachaf: i'm doing what elliott tells me to, clearly!
03:27:02 <kmc> oh, Stair Dismount et al. are from Finland too
03:27:12 <elliott> kmc: But a terminal doesn't quite work like a big block of cells. For instance, there's a difference between the line "a " and "a"; there's a concept of a line ending that affects things like selecting text in a graphical terminal.
03:27:14 <kmc> i played a lot of Stair Dismount and Truck Dismount back in my day
03:27:16 <elliott> How does mosh represent this?
03:27:37 <kmc> elliott: sec, I will find for you the actual object which is synchronized
03:27:49 -!- SimonRC has joined.
03:28:01 <elliott> kmc is punishing my law violation by making me read C++.
03:28:07 <elliott> In return I will give him awful things to do in Finland.
03:28:15 <elliott> And he will be obligated to do them.
03:28:30 <kmc> most of the classes in src/terminal/terminalframebuffer.h are dedicated to this question
03:28:31 <oerjan> shachaf: HEY WHERE IS THE LIST OF IRC SINS I CANNOT FIND THEM
03:28:39 <oerjan> i need to know if i have a complete set
03:28:56 <elliott> They should arrest people who make you source dive after asking questions.
03:28:58 <shachaf> oerjan: The list of IRC sins is infinite.
03:29:06 <lambdabot> let(!)=div;f n=1:n:1:f(n+2);w@(x:y)%[a,b,c,d]|t<-a!c,c+d>1,t==b!d=t:w%[10*(a-c*t),10*(b-d*t),c,d]|0<1=y%[x*a+b,a,x*c+d,c]in(2:f 2)%[1,0,0,1]>>=show
03:29:09 <shachaf> I ported that program to bash!
03:29:27 <kmc> a cell has a vector of unicode characters (because of combining chars), a width (a la wcwidth), a set of "renditions" i.e. color, bold, etc, and a flag saying whether it should wrap to the next line on select (if it's in the last column)
03:29:45 <elliott> kmc: Hmm. So you store it as a linear array?
03:29:48 <elliott> Rather than two-dimensional?
03:29:52 <oerjan> <kmc> døød <-- deeath? oh dear.
03:29:53 <kmc> then a row is a vector of cells
03:30:16 <kmc> and a framebuffer has a vector of rows, an icon name, a window name, and a count of the number of times the bell has ever been rung on the server
03:30:18 <elliott> That makes sense. Unfortunately, applying that to my design would reduce its utility...
03:30:35 <shachaf> Uh-oh, is this for your roguelike?
03:30:58 <oerjan> <shachaf> oerjan: The list of IRC sins is infinite. <-- oh dear
03:31:01 <kmc> elliott: the client needs to ring the bell if the server did
03:31:03 <elliott> It's called "roguelike" right now.
03:31:24 <elliott> kmc: Right now I just represent the screen as a two-dimensional grid of Chars.
03:31:24 <kmc> when the client gets a new frame, if the new bellcount is greater than the old one, it rings the bell once
03:31:36 <elliott> It's super-convenient to code with but messes up copying of textual stuff.
03:31:40 <elliott> I'm not sure whether I care enough to fix it.
03:31:47 <kmc> this means that if the remote programs spews a bunch of bells, the client bell will ring only at the framerate
03:31:54 <kmc> which is probably one of the most obscure mosh improvements over ssh
03:32:07 <kmc> obviously ;)
03:32:10 <elliott> kmc: You should add that to the website.
03:32:23 <kmc> "for too long, mankind has suffered under the tyranny of BEL"
03:32:24 <elliott> It'll convince all the HN users.
03:32:43 <kmc> "Mosh: Suckless awesome terminal bell, done right. Reinvented, again."
03:33:12 <shachaf> A terminal bell that celebrates craftmanship?
03:33:27 <kmc> a terminal bell that celebrates bronzesmithing
03:33:44 <shachaf> kmc: Does it mean that if something rings the bell a million times, I'll get one bell per keystroke for the foreseeable future?
03:33:54 <elliott> shachaf: It's the RHYTHM OF LIFE.
03:34:16 <monqy> does anyone even use bells
03:34:22 <kmc> shachaf: no, the server pushing new terminal frames is independent of the client pushing input to the server
03:34:31 <shachaf> Well, I guess that's something.
03:34:58 <elliott> kmc: so it'll just constant belling for the next hour?
03:35:01 <elliott> i want constant belling :(
03:35:08 <kmc> there are two instances of the (higher level parts of) SSP, one in each direction
03:35:13 <kmc> not constant belling
03:35:20 <shachaf> "If one bell rings in the Tower of Bray / Ding dong, your true love will stay. / Ding, dong, one bell today / In the tower of Bray / Ding, Dong!"
03:35:32 <kmc> the server tries to get your terminal state up to the current state as quickly as possible
03:35:43 <kmc> it doesn't care if it skips intermediate states
03:35:51 <elliott> You mean I'll ... miss out on bells?
03:35:57 <kmc> and you'll get one bell per frame transition, max
03:36:01 <kmc> you will miss out on bells :(
03:36:21 <elliott> kmc: What if I use a program to play music through the bell?
03:36:25 <shachaf> My terminal program has a little number that indicates how many bells have played since the last time it had focus.
03:36:35 <kmc> is there an xterm escape code to set the frequency and duration of a bell
03:36:38 <elliott> monqy: Who doesn't use bells?
03:36:47 <elliott> kmc: Who said you need those for music?
03:36:47 <kmc> shachaf: what program is that?
03:37:05 <elliott> shachaf uses... uh, what's an embarrassing terminal emulator to use.
03:37:06 <kmc> you can write a program to play 4'33" in ANSI C
03:37:08 <elliott> aterm. shachaf uses aterm.
03:37:17 <kmc> elliott: st
03:37:21 <kmc> http://st.suckless.org/
03:37:22 <shachaf> I don't actually use it that much.
03:37:29 <elliott> I heard it was crappy at Unicode a while back.
03:37:38 <kmc> no i don't have much information really
03:37:48 <shachaf> I only use it when I happen to be using a Mac OS machine.
03:38:05 <elliott> shachaf: Did you know: The OS X Terminal can't display dark grey?
03:38:07 <shachaf> The terminal icon gets a little number that says how many notifications you've had.
03:38:15 <elliott> It displays bold black as black. Even if you set "use bright fonts for bold" on.
03:38:31 <shachaf> 20:38 elliott shachaf: Did you know: The OS X Terminal can't display dark grey?
03:38:41 <shachaf> THE JOKE IS THAT I DON'T SEE THE DARK-GREY ANGLE BRACKETS.
03:39:06 <elliott> shachaf: Did you know I use uxterm in X11 to play roguelikes on OS X?
03:39:12 <elliott> Because Terminal.app can't display dark grey.
03:39:35 <kmc> did you know the Ubuntu version of gnome-terminal changes ANSI blue to Canonical aubergine?
03:39:55 <shachaf> elliott: Real roguelikers play with color=off!
03:39:58 <elliott> Did you know kmc, fix my code. :(
03:40:07 <elliott> shachaf: There's a Crawl player who doesn't use autoexplore!
03:40:16 <coppro> shachaf: I saw his second ascension
03:40:22 <coppro> he actually succeeded in getting all the gems
03:40:26 <elliott> 04:40 <Henzell> undermind[1/2]: Wins at a ridiculous win percentage very slowly. Doesn't use autoexplore.
03:40:27 <coppro> but couldn't get his giants to carry them
03:40:32 <elliott> 04:40 <Henzell> undermind[2/2]: Nobody knows anything about undermind.
03:40:35 <elliott> coppro: No, he completed it.
03:40:41 <coppro> elliott: well he gave up on the gems
03:40:50 <coppro> he took what he could carry
03:40:55 <coppro> which was a lot less than he had
03:40:58 <elliott> "He/she tried again years later, ascending after 405 hours on August 16, 2010 with over 8,000 gems."
03:41:01 <shachaf> Why didn't he use the bag-of-holding-in-bag-of-holding trick?
03:41:25 <coppro> elliott: he had left at least that many on dlvl 1
03:41:33 <kmc> elliott: so where should i go in .fi
03:41:45 <shachaf> "carry unlimited gems: the bag-of-holding-in-bag-of-holding trick"
03:42:13 <kmc> elliott: so maybe Mosh won't handle your bell music very well, otoh it's much better than ssh at handling mplayer -vo caca
03:43:01 <elliott> kmc: But seriously, visit oklopol.
03:43:37 <elliott> I forget the name of the place.
03:43:59 <shachaf> Finland's population density is 16/km^2
03:44:37 <elliott> Did you know that lif esucks?
03:44:38 <shachaf> Of course "the part of .fi that people actually live in" has a much higher density.
03:45:11 <elliott> I don't know what lif is though.
03:47:10 <kmc> espoo is not far from helsinki
03:47:24 <elliott> kmc: Go visit oklopol in Turku.
03:47:33 <kmc> shachaf: what is it like?
03:47:36 <elliott> You can't go to Finland and not meet oklopol.
03:47:43 <kmc> i could visit turkey and turku!
03:48:06 <shachaf> elliott: I went to Finland and not meet oklopol.
03:48:20 <elliott> shachaf: You actually died.
03:48:24 <elliott> kmc: Will you visit oklopol?
03:48:56 <shachaf> elliott: kmc visited me once when he was in the US!
03:49:08 <shachaf> The previous statement is actually untrue.
03:49:26 <oerjan> elliott: you know the two of us trying to get oklopol visitors is karmic irony, right?
03:50:12 <shachaf> elliott: Today kmc taught me that the US is the best country.
03:50:20 <kmc> is your business ISO-3103 compliant???
03:51:40 <zzo38> Do you know if data LeftCoT m f x = forall z. LeftCo (f (m z) -> x) (f z); is a comonad? Do you know if it is a comonad transformer?
03:51:45 <kmc> for only 44 swiss francs you too can learn how to make an international standard cup of tea, with or without milk, in english or french!
03:51:54 <oerjan> kmc: browsing the ig nobel?
03:52:02 <kmc> no, just browsing weird ISO standards
03:52:21 <elliott> shachaf: Should I buy the `humble bundle'?
03:52:28 <shachaf> elliott: Did you hear that kmc is moving to CA?
03:52:40 <elliott> kmc: Buy me a `humble' `bundle'.
03:52:50 <oerjan> shachaf: .ca or .ca.us?
03:53:08 <kmc> rumors of my moving to CA are greatly exaggerated
03:53:14 <shachaf> I just asked elliott if he heard them.
03:53:28 <zzo38> oerjan: Good question
03:53:38 <kmc> could move to .cat
03:53:44 <shachaf> oerjan: You know, the one with Ontario in it?
03:54:19 <oerjan> shachaf: right, i've been there
03:55:06 * oerjan swats shachaf -----###
03:55:25 <oerjan> i should have suspected that, i guess.
03:55:29 <shachaf> oerjan: You should add an extra '-' to your swatter.
03:55:56 <oerjan> shachaf: no, 5+3 is the unchangeable standard
03:56:09 <oerjan> ok so technically it once was 4+3
03:56:30 <shachaf> oerjan: Why did it grow from 4 to 5?
03:56:37 <oerjan> shachaf: someone lost a -
03:56:56 <oerjan> vaguely possibly monqy
03:57:14 <oerjan> or was monqy even around back then
03:57:16 -!- dashing-fellow has joined.
03:57:24 -!- dashing-fellow has changed nick to dashingfellow.
03:57:34 <oerjan> hi dashingfellowcompletelynotshachaf
03:57:45 -!- dashingfellow has quit (Client Quit).
03:58:07 <shachaf> oerjan: Would you look at that!
03:59:07 * oerjan swats shachaf -----###-
03:59:20 <zzo38> Oops you did it backward
04:00:23 * oerjan swats elliott -----###-----------
04:01:58 <oerjan> im impalindrome emordnilapmi mi
04:03:33 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.12354
04:04:02 <shachaf> kmc: Have you ever considered a being a roguelike game?
04:04:56 <oerjan> or more precisely, Slereah-
04:06:35 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: pastlogs: not found
04:06:54 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: logs: not found
04:07:00 <oerjan> actually it's not quite clear from that day whether that _was_ Slereah_
04:09:14 <shachaf> elliott: I heard kmc will "probably" end up in CA.
04:09:26 <elliott> he's going to teleport to a random location on the globe
04:09:31 <elliott> our hearts, minds, legs are with him
04:09:51 <shachaf> elliott: Did you "get the humble bundle" ? ??
04:09:52 <zzo38> Perhaps idempotent applicative should be defined as follows: liftPair . fanout = fmap fanout since then it can be used with any fanout category.
04:10:21 * oerjan finds the actual JOIN in raw.txt to confirm
04:10:45 <shachaf> I thought you were talking about some SQL database logs. :-(
04:11:10 <elliott> Especially Y Combinator-funded ones.
04:11:26 <zzo38> Do you like this definiiton of idempotent applicatives?
04:11:39 <shachaf> zzo38: Is your definition of idempotent applicatives a database?
04:12:20 <zzo38> shachaf: No, it is what I wrote above.
04:13:07 <oerjan> shachaf: no, http://codu.org/logs/_esoteric/2008-12-04-raw.txt
04:16:14 <zzo38> And a commutative applicative would be defined as liftPair . swap = fmap swap . liftPair
04:48:27 -!- oerjan has quit (Quit: Good night).
04:51:03 <zzo38> What kind of monad is (Codensity (Warbler (Kleisli IO)))?
04:55:19 -!- elliott has quit (Remote host closed the connection).
04:56:38 <zzo38> I know that; (Codensity anything) is always a monad. But here it is also MonadPlus, it is like (Codensity Endo) but endomorphisms of a different category so what does it make? Is it like monad fold (like how foldlM and so on)?
05:35:37 -!- TodPunk has quit (Read error: Connection reset by peer).
05:39:36 -!- TodPunk has joined.
05:39:47 <oklopol> oh i guess it's just some haskell thing
05:40:31 <zzo38> oklopol: Yes, Codensity is some Haskell thing
05:40:49 <zzo38> Cont x = Codensity (Const x) is one
05:44:41 <zzo38> oklopol: Continuation monad
05:45:10 <oklopol> i had a hunch. no idea what that is.
05:45:33 <zzo38> Another one would be [] = Codensity Endo
05:46:03 <zzo38> Endomorphisms of (->) category
05:46:50 -!- AnnApolis has joined.
05:47:03 <oklopol> so what does Codensity do for that?
05:47:26 <zzo38> oklopol: Do for what?
05:47:58 <oklopol> i assume "[] = Codensity Endo" means something
05:48:03 <zzo38> newtype Codensity f x = Codensity (forall z. (x -> f z) -> f z); newtype Endo x = Endo (x -> x);
05:48:16 <zzo38> oklopol: So, that means it is the same kind of monad
05:49:11 <zzo38> So that, return is a single element list, join is concatenation of the lists in the list, mzero is empty list, and mplus is concatenation of two lists together.
05:49:26 <zzo38> You might see that it is just the fold function for a list
05:49:49 <oklopol> i might see that what is the fold function?
05:50:48 <zzo38> oklopol: Fold function for a list [x] would be of type (forall z. (x -> z -> z) -> z -> z)
05:51:42 <oklopol> okay so the fold is of type Codensity
05:51:53 <zzo38> The endomorphisms for some object of some category forms a monoid, so you can use mzero and mplus
05:52:04 <zzo38> And it just happens to be the correct monoid
05:52:35 <zzo38> oklopol: Of type (Codensity Endo)
05:54:06 <oklopol> "You might see that it is just the fold function for a list" still sounds wrong, that's not the only function of type Codensity Endo for lists.
05:54:36 <zzo38> Well, in this case it is, though.
05:54:39 <oklopol> but i guess all sensible functions of that type might be called fold
05:55:14 <zzo38> Yes, really, it is. And the monad is achieved entirely for free.
05:55:29 <oklopol> so there's more to Codensity than the type you gave?
05:56:06 <zzo38> oklopol: Well, there is also the Functor, Applicative, and Monad instances, which is available for (Codensity f) without needing anything from f.
05:57:05 <zzo38> The MonadPlus instance, however, requires class Plus f where { zero :: f x; plus :: f x -> f x -> f x; };
05:57:30 <zzo38> In the case of Endo, it is already Monoid so you can easily have: instance Plus Endo where { zero = mempty; plus = mappend; };
05:57:44 <oklopol> yeah i guess i'd have to understand what instances are
05:59:10 <zzo38> oklopol: Do you mean in general or for Codensity?
06:00:11 <zzo38> In general, it means that certain operations are defined for a type, for example, Monoid class instances are for types that form a monoid.
06:00:33 <zzo38> That is what it is.
06:01:04 <oklopol> but could you explain where the connection between Codensity and list comes from?
06:02:14 <zzo38> oklopol: It is achieved *for free*.
06:02:45 <oklopol> so if i were to write a list type of my own, there would only be one function of type Codensity Endo and that would be its fold?
06:02:59 <oklopol> even if i stored the list in a database
06:03:31 <oklopol> i make it a monad, is that all i need?
06:03:43 <zzo38> oklopol: Actually what I mean is, the type (Codensity Endo x) is isomorphic to [x] so (Codensity Endo x) can also be used as a list.
06:04:53 <zzo38> Do you know such things as if you wanted to make a list structure in something like Unlambda or Lazy K, you need to define all data structures by some kind of function? A list can be defined by a fold function, and it is the same thing here.
06:07:24 <oklopol> i still feel like there's a function body somewhere that computes the fold.
06:07:30 <oklopol> unless it really comes free from the type
06:07:50 <zzo38> It comes free from the Codensity monad
06:08:49 <oklopol> so there is more to it than the type
06:08:53 <zzo38> The definition is: instance Monad (Codensity f) where { return x = Codensity (\k -> k x); m >>= k = Codensity (\c -> runCodensity m (\a -> runCodensity (k a) c)); };
06:10:30 <ion> Could you please give an example of a value of type Codensity Endo Something?
06:10:49 <zzo38> That is what was already there; I added the Alternative and MonadPlus instances myself which works as: instance Plus f => Alternative (Codensity f) where { empty = Codensity (const zero); Codensity x <|> Codensity y = Codensity (liftA2 plus x y); };
06:11:08 <zzo38> ion: return 5 <|> return 6 <|> return 7 is like the list [5,6,7]
06:11:28 <oklopol> ah the <|> operator we all know so well
06:11:47 <ion> Ah, should have figured i can just try “return”. :-)
06:11:51 <oklopol> but isn't the fold function for lists of type x an example
06:12:25 <zzo38> In [] in fact it is also the list [5,6,7] but with (Codensity Endo) it is the fold function for the list [5,6,7] so it is same things!!!
06:13:09 <oklopol> would be fun to understand some haskell
06:13:54 <oklopol> but i'm pretty sure you can't understand it without a phd in mathematics
06:13:58 <oklopol> so i have to try again in a few years
06:14:00 <zzo38> I would prefer to define join as a class method but unfortunately Haskell does not do like that
06:14:12 <ion> Does some module implement an Alternative Endo instance?
06:14:28 <zzo38> oklopol: No, it is possible to understand without a PhD in mathematics, but I suppose it helps. I do not have a PhD in mathematics, but I do like mathematics, and to me that is good enough.
06:14:33 <oklopol> oh god another crazy haskell understander
06:14:54 <oklopol> zzo38: i hear phd's get all the chicks
06:14:55 <zzo38> ion: To do so, it would have to be Applicative which isn't since Endo is not even Functor
06:15:00 <coppro> `addquote < oklopol> oh god another crazy haskell understander < oklopol> i have to leave
06:15:02 <zzo38> oklopol: I don't care
06:15:03 <HackEgo> 844) < oklopol> oh god another crazy haskell understander < oklopol> i have to leave
06:15:16 <oklopol> zzo38: don't you like girls?
06:15:17 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: randomquote: not found
06:15:25 <HackEgo> bin \ canary \ foo \ karma \ lib \ paste \ quotes \ share \ wisdom
06:15:32 <HackEgo> ? \ @ \ No \ WELCOME \ WeLcOmE \ addquote \ allquotes \ anonlog \ calc \ define \ delquote \ etymology \ forget \ fortune \ frink \ google \ hatesgeo \ jousturl \ json \ k \ karma \ karma+ \ karma- \ learn \ log \ logurl \ macro \ maketext \ marco \ paste \ pastefortunes \ pastekarma \ pastelog \ pastelogs \ pastenquotes \ pastequotes \ pastewisdom \ pastlog \ ping \ prefixes \ qc \ quachaf \ quote \ quotes \ randomanonlog
06:15:37 <zzo38> oklopol: I don't like or dislike
06:15:54 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
06:15:57 <oklopol> zzo38: do you neutral them?
06:15:59 <zzo38> ion: Edward Kmett's Plus requires Functor but my Plus does not require Functor, so Endo can be an instance of my Plus.
06:16:24 <zzo38> oklopol: Neutral in terms of like/dislike, I suppose it would be so.
06:16:24 <ion> zzo38: I mean, return 5 <|> return 6 <|> return 7 :: Codensity Endo Integer doesn’t compile here because there’s no instance for Alternative Endo.
06:16:40 <HackEgo> 666) <Phantom__Hoover> elliott, cars aren't perfectly spherical.
06:16:45 <HackEgo> 733) <fizzie> oerjan: Hey, what's your country code for telephonistic dialling from the outside world? <oerjan> fizzie: +47 <fizzie> oerjan: Ooh, you're, like, right next to Sweden there. <fizzie> I... guess you are geographically, too.
06:16:51 <oklopol> let's bury them in quotes mwahahaha
06:16:55 <zzo38> ion: That is true; but if the instances are defined in my way instead then it will compile and even work
06:16:56 <HackEgo> 369) <EgoBot> hey fhet's zeees OouooH SNEP IT'S A FOooCKING TIGER
06:17:34 <ion> zzo38: Ah, i thought we were talking about the “standard” Codensity and Endo.
06:17:58 <ion> oklopol: Yes, that’s why i put it in quotes. :-P
06:18:17 <zzo38> ion: It is the standard types but the instances for Alternative Codensity are different.
06:18:24 <coppro> zzo38: what is your age?
06:18:28 <zzo38> And the Plus class also differs.
06:18:35 <zzo38> coppro: I do not want to say.
06:18:57 <zzo38> ion: Not all the time!
06:19:01 <oklopol> i'm gonna make a wild guess: 24
06:20:40 <zzo38> A wild guess? You have no educated guess?
06:22:25 <zzo38> ion: There is no really standard Codensity but the Endo is the standard one yes
06:23:20 -!- calamari has quit (Quit: Leaving).
06:28:13 <oklopol> zzo38: no, i have no educated guess
06:29:08 <oklopol> well i didn't pull that out of my ass but you can be a bit hard to read.
06:30:01 <oklopol> that's not what i mean by hard to read
06:31:02 <oklopol> it's just what we psychics say when a client doesn't fit one of the usual patterns.
06:31:51 <zzo38> O, that is what it means. In that case I suppose you are correct about that
06:33:46 <oklopol> but on a different note, yes, you do write kinda messy :D
06:36:25 <zzo38> Why do you think I write messy?
06:36:53 <oklopol> dunno, you have this whole thing going on. i don't know if messy is the right word.
06:37:17 <oklopol> i keep getting this "women in mathematics" thing in my inbox
06:37:26 <oklopol> why isn't there a Real Men in Mathematics conference
06:38:12 <oklopol> where people stroke each others' beards and implement braid groups in them
06:38:37 <zzo38> My writing seems to me to be neater than other people's writing, although the words are different
06:39:21 <oklopol> okay, i find that interesting.
06:39:25 <zzo38> oklopol: Perhaps there isn't, because nobody has made it up yet.
06:40:12 <oklopol> now i just need a beard that turns invisible when i tell it to
06:42:07 <oklopol> otherwise i have to shave it now and then
06:42:29 <zzo38> Then use a fake beard if you do not want to shave; you can add it and remove it when you want to.
06:42:30 -!- TeruFSX has joined.
06:42:57 <HackEgo> 823) <elliott> `delquote 848
06:42:58 <zzo38> But if people pull it, it might fall off
06:43:06 <HackEgo> *poof* <elliott> `delquote 848
06:43:35 <oklopol> yeah i know what you mean, i too wonder whether i'd pull the beard off.
06:43:36 <HackEgo> *poof* s'f'slg;sd'sdfjhklf;sdklfjdfklgj
06:47:27 <oklopol> http://arxiv.org/pdf/1202.3670v2.pdf i wonder if P != NP has been proved more times than this?
06:52:08 -!- azaq23 has joined.
06:52:21 <zzo38> As well as Codensity monad, there is also Density comonad
06:57:01 <zzo38> Which is better, liberty or order?
06:57:21 <zzo38> (even though you may have both)
06:59:23 -!- asiekierka has joined.
07:01:41 <AnnApolis> http://manyhills.webs.com/bitten.html
07:02:01 <AnnApolis> i assume i have duplicated something that already exists
07:03:56 <oklopol> i don't see where unbounded memory comes from
07:04:29 -!- TeruFSX has quit (Ping timeout: 246 seconds).
07:06:21 <AnnApolis> well, when a mummy unbounded memory and a daddy unbounded memory love each other very much
07:14:33 <oklopol> can you show a program that fills the memory with 1's?
07:16:17 <coppro> has anyone formalized the wire-crossing problem?
07:16:21 <coppro> because I just thought of a formalization of it
07:18:11 <coppro> well, an idea that might lead to one, anyways
07:20:09 <coppro> work by bisecting the state into a "graph-like" portion and a non-"graph-like" portion, where the "graph-like" portion is the varying details of a programming language.
07:20:25 <oklopol> i like the idea of effectively turning a finite set of bf programs into a program that wins them all in BFJoust
07:21:10 <oklopol> i bet you could publish that (TM)
07:21:17 <coppro> that is, if L is a language of automata of some kind, such as Turing machines, then you try to split it into the notion of a program and its input
07:21:36 <oklopol> (TM is short for turing machine)
07:21:46 <coppro> and the program can be made abstratly into a transition graph
07:21:57 <coppro> (e.g. "this line will lead to this line or that line")
07:22:06 <coppro> or "this cell will lead to one of these four cells" in Befunge
07:23:04 <oklopol> sounds impossible to formalize
07:23:20 <oklopol> unless you define automata somehow
07:23:21 <coppro> I'm not sure if you can characterize it uniquely for all automata
07:24:17 <coppro> but a TM, for instance, could have its program graph defined to be the set of transitions, with edges existing from one transition to another if they can follow each other.
07:24:29 <coppro> actually, that might be sufficient
07:24:52 <coppro> yeah, there's no obvious unique characterization
07:25:18 <oklopol> you can usually associate a transition graph to any kind of computation, yes
07:25:35 <oklopol> but i don't think it has that much to do with the wire-crossing problem
07:25:35 <coppro> it's not a state graph though
07:26:22 <coppro> and I think this matters
07:26:30 <coppro> or I could be sleep-deprivede
07:40:23 -!- AnnApolis has quit (Quit: ChatZilla 0.9.88.2 [Firefox 13.0/20120601201853]).
07:46:54 <zzo38> Is there a kind of infinity that is used like a algebraic variable representing a nonzero real number but when it is compared is greater than any real number?
07:50:06 -!- zzo38 has quit (Quit: NO CARRIER).
07:52:33 <oklopol> zzo38: sure, but you automatically get quite a lot of infinite numbers if you further assume the axioms of reals except for Dedekind completeness
07:52:38 <oklopol> also you're not here anymore
07:53:13 <oklopol> there was a recent nice survey on arxiv on ordered fields recently, but i lost it and haven't been able to find it :(
07:57:56 -!- derdon has joined.
08:15:52 <oklopol> whii i didn't imagine it, http://arxiv.org/pdf/1204.4483v1.pdf
08:16:07 <oklopol> not really a survey on ordered fields, instead what they say in there
08:16:23 <oklopol> only had to look through a few thousand articles on my mailing list :D
08:19:53 <oklopol> (whii is the finnish version of whee which is simultanously pronounced "why i", as the deep national depression oozes into the briefest moment of happiness)
08:29:26 -!- nooga has joined.
08:33:16 -!- azaq23 has quit (Remote host closed the connection).
08:39:10 -!- sebbu2 has joined.
08:39:11 -!- sebbu2 has quit (Changing host).
08:39:11 -!- sebbu2 has joined.
08:42:08 -!- sebbu has quit (Ping timeout: 246 seconds).
08:57:53 -!- Taneb has joined.
09:00:21 <oklopol> short for hi for situations when you are mostly saying hi to yourself.
09:02:56 <oklopol> but there's a bit of hi for you too
09:11:07 <Taneb> Well, I don't think this style of programming will ever be popular
09:17:08 <Taneb> predXXIV = s (s (k s) (s (k (s (k s))) (s (s (k s) (s (k (s (k s))) (s (k (s (k k))) (s (s (k s) k) (k (s (k (s (k (s i)))) (s (k (s (k k))) (s (k (s i)) k)))))))) (k (k k))))) (k (k (k i)))
09:21:35 -!- nortti_ has joined.
09:22:45 <oklopol> yeah people just don't understand that if they simply bothered to learn programming with s and k, they would see that it's so much more expressive functional programming. in that you need to express so much more.
09:23:35 <nortti_> uhm. can someone explain why I have two nicks here after I use /reconnect?
09:23:48 <Taneb> I prefer to have access to B, C, W, an I
09:23:59 <Taneb> nortti_, because you've accidentally cloned yourself?
09:24:47 <Taneb> B x y z = x (y z); C x y z = x z y; W x y = x y y; I x = x
09:24:51 -!- FireFly has quit (Ping timeout: 260 seconds).
09:25:26 -!- nortti has quit (Ping timeout: 260 seconds).
09:25:56 -!- nortti_ has changed nick to nortti.
09:36:19 <Sgeo> `pastequotes Sgeo
09:36:22 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.30909
09:38:13 -!- FireFly has joined.
09:41:13 -!- Vorpal has joined.
09:41:32 <quintopia> !bfjoust thebasics >>(+)*50<(-)*50(>)*7(> (+)*4 ([-{ [(-)*15 [+]] }[-]])%8 )*21
09:41:38 -!- Taneb has quit (Ping timeout: 246 seconds).
09:41:41 <EgoBot> Score for quintopia_thebasics: 22.7
09:42:02 <EgoBot> Score for quintopia_thebasics: 0.0
09:43:23 <quintopia> !bfjoust thebasics >>(+)*50<(-)*50(>)*7(> (+)*4 ([-{ [(-)*50 [+]] }[-]])%8 )*21
09:43:26 <EgoBot> Score for quintopia_thebasics: 20.4
09:43:33 <EgoBot> Score for quintopia_thebasics: 0.0
09:43:52 <quintopia> apparentlythe simple stuff is only enough to get you 38th place these days
09:44:21 <quintopia> !bfjoust thebasics >>(+)*50<(-)*50(>)*7(> (+)*4 ([-{ [(-)*15 [+]] }[-]])%8 [+])*21
09:44:23 <EgoBot> Score for quintopia_thebasics: 22.8
09:44:36 <EgoBot> Score for quintopia_thebasics: 0.0
09:45:08 -!- asiekierka has quit (Ping timeout: 240 seconds).
09:57:20 -!- Taneb has joined.
10:02:37 <Gregor> http://www.facebook.com/LawlabeeTheWallaby/posts/3457120980849 The latest in my Beijing epic.
10:03:33 <Gregor> I still haven't found the opportunity to eat Peking Duck without being ripped off, but I will; I have a week.
10:13:29 <Gregor> Think I should go to Qin's Tasty and Spicy Crabs?
10:13:44 <Gregor> AKA best/worst Engrish name for a restaurant in history?
10:13:45 <Taneb> Not likely to get duck there
10:13:51 <Gregor> I don't need duck today.
10:13:59 <Taneb> Qin could actually serve tasty and spicy crabs
10:14:19 <Gregor> Yes, it is a crab restaurant.
10:14:31 <Taneb> Go for it, if you like crab
10:14:34 <Sgeo> I can't remember the context for something I saidn in here last year
10:14:38 <Sgeo> Looking at logs does not help.
10:16:12 <quintopia> yeah your experiences of being gawked at are not that unusual i think. i think you might find the drunk cosmopolitan set gawks less. go see a nightclub.
10:16:25 <quintopia> not to dance of corse. who would do that
10:30:17 -!- monqy has quit (Quit: hello).
10:31:08 <fizzie> I have a spent-quite-a-bit-of-time-in-China friend who has mentioned the gawking, too.
10:33:17 <Vorpal> Gregor, you are in china, nice. Business trip or holidays?
10:34:32 <fizzie> Vorpal: A conference was mentioned, I thing. (It's fallen out of my /lastlog already, sadly.)
10:34:42 -!- Phantom_Hoover has joined.
10:34:48 <oklopol> i'm going to taipei in a few months, i expect to die of being murderously killed there.
10:36:02 <fizzie> I'm going to Belgium and I expect to survive.
10:36:17 <fizzie> But of course you never know, about Belgium.
10:36:33 <oklopol> i'm going to novgorod in about a month and expect to die there. of being murderously killed.
10:36:46 <Taneb> I'm going to Durham next month.
10:37:01 <Taneb> I expect to be brutally murdered by a convict prince-bishop
10:37:17 <oklopol> then in three months i'm going to corsica, and expect to die of sun poisoning and of being murderously killed.
10:38:45 <oklopol> conference trips are basically double the work, infinitle the plane trips that hurt my ears. as they say in english.
10:39:59 <fizzie> But you may get a free dinner.
10:40:41 <oklopol> also there's conferences in slovakia and uk but my coauthor does those. i prefer the murderous ones because he has a fetish for not being murderously killed.
10:41:33 <Taneb> What part of the UK?
10:41:48 <Taneb> S/he'll get murderously killed
10:41:49 <oklopol> http://www.mathcomp.leeds.ac.uk/turing2012/WScie12/
10:42:53 <fizzie> Taneb: What about... Sheffield? I think my "boss" was planning a visit there.
10:43:06 <Taneb> They've got trams and everything
10:43:12 <oklopol> fizzie: do you mean your wife ehehe
10:43:14 <Taneb> They're like trains, but on roads!
10:43:23 <kmc> trams are cool
10:43:39 <Taneb> They've also got steelworks
10:43:55 <Taneb> And someone who was in my IT class two years ago until she moved to Sheffield
10:43:55 <kmc> mainly because a tram can use a dedicated tunnel downtown more easily than a bus can
10:44:13 <kmc> if your trams run /only/ on the street, it probably makes sense to replace them with buses
10:44:19 <kmc> (you can still power the buses from overhead wires)
10:44:37 <Taneb> It's where the Full Monty is set
10:44:44 <Taneb> Have you ever seen the Full Monty?
10:44:51 <kmc> part of the tradeoff there (at least in the USA) is that the transit agency pays for rail upkeep, but the roads agency pays for road upkeep including the rail from buses
10:45:02 <kmc> and the roads agency has way more money always
10:45:10 <Taneb> It's about some out-of-work steel workers who do a strip tease
10:45:34 <kmc> er "including the wear from buses" yay for being awake far too late
10:45:40 <Taneb> Beamish and Melbourne have trams
10:47:05 <kmc> in boston there is a slightly ridiculous thing which runs as a diesel powered bus on the road, and then goes into a dedicated tunnel and runs off overhead wires
10:47:13 <kmc> but that tunnel is much bigger than it would need to be for rail vehicles
10:47:15 <fizzie> Helsinki has trams, though I don't recall any dedicated tunnels. (It's not a very dense place anyway.)
10:47:19 <fizzie> They also have a new model of tram just about to be introduced, there's a prototype for people to go look at/sit in somewhere.
10:48:07 <fizzie> Also, last week or so there was this mini-conference thing, and they had booked one of the museum trams as transportation from the lecture place to the dinner place.
10:48:49 <fizzie> They've got some 1930s tram carriages they rent for events.
10:49:26 <kmc> that's cool
10:49:33 <fizzie> And I think in summer they have some that do a daily or weekly thing.
10:49:43 <kmc> new york city has a subway museum which is full of vintage cars
10:49:50 <kmc> and the museum itself is a decommissioned subway station
10:50:13 <kmc> helsinki tram is metre gauge o_O
10:50:21 <nortti> yay. sain pc98 touhout pyörimään
10:52:02 <fizzie> Oh, and they have that one tram in which they serve alcoholic beverages, the "PUB" line.
10:54:38 <fizzie> http://en.wikipedia.org/wiki/Sp%C3%A5rakoff -- hey, it's notable.
10:57:06 -!- derdon has quit (Remote host closed the connection).
11:09:40 -!- DHeadshot has quit (Ping timeout: 260 seconds).
11:19:30 -!- DHeadshot has joined.
11:32:45 <Taneb> I wrote a program this morning and already someone wants to put it on Uncyclopedia
11:41:40 <Taneb> Aaaah you're everywhere
11:45:01 <Patashu> '<Taneb> I wrote a program this morning and already someone wants to put it on Uncyclopedia'
11:45:11 <Taneb> http://hpaste.org/69700
11:45:41 <Taneb> Factorial calculator
11:46:01 <Taneb> Nah, this is for fun
11:46:08 <Taneb> And the possible inspiration for a contest
11:46:33 <Taneb> Almost all computation is done by (<*>), pure, and unsafeCoerce
12:36:38 -!- asiekierka has joined.
12:44:14 -!- asiekierka has quit (Read error: Connection reset by peer).
12:46:44 -!- Patashu has quit (Ping timeout: 265 seconds).
12:54:29 -!- sebbu2 has quit (Ping timeout: 246 seconds).
13:02:16 -!- asiekierka has joined.
13:07:02 -!- sebbu2 has joined.
13:32:13 -!- elliott has joined.
13:33:29 <elliott> mroman: Do you also reverse > and < in the palindromes?
13:51:36 <elliott> Maybe you should use a word that isn't "reverse" :)
13:51:46 <mroman> I don't know an exact english word for this?
13:52:09 <elliott> "mirror" sounds reasonable to me. I don't think it really matters what you call it, but I'd define it on the page, since it's quite ambiguous.
13:52:23 -!- lambdabot has quit (Ping timeout: 244 seconds).
13:52:23 -!- fungot has quit (Ping timeout: 244 seconds).
13:52:29 <elliott> mroman: BTW, you don't need a full "equivalency" in terms of the final tape to prove TCness by translation of brainfuck.
13:52:35 <elliott> TCness only cares about whether the program halts or not.
13:53:35 -!- lifthrasiir has quit (Ping timeout: 244 seconds).
13:54:35 -!- lifthrasiir has joined.
13:54:39 <elliott> someone write a blurb for Sortle and i'll feature it :P
13:57:02 -!- aloril has quit (Ping timeout: 260 seconds).
13:58:39 <mroman> (http://esolangs.org/wiki/BFFB <- is that less confusing?)
13:59:32 <mroman> elliott: Yes. But as of my understanding his method does not produce a program that does the same thing.
13:59:59 <elliott> mroman: Well, you gotta define "same thing" :)
14:00:05 <elliott> Does it halt iff the BF program halts? Then it's sufficient for TCness.
14:00:09 <elliott> And yes, that's less confusing.
14:00:12 <mroman> It translates the program to a valid prorgam which does something else.
14:00:29 <elliott> Define "does something else".
14:00:37 <mroman> It halts in a different state
14:00:59 <mroman> I consider P and R only to be equivalent if P halts in the same state as R
14:01:09 <mroman> BF does not need I/O to be TC, right?
14:01:37 <elliott> What I'm trying to say is that the halting state is irrelevant.
14:01:46 <mroman> If I calculate the number 3 with +++-
14:01:55 <elliott> To prove TCness, all you need to prove is that you can translate a Turing machine blah blah into a program that halts iff the Turing machine does.
14:02:21 <mroman> elliott: That proves TCness.
14:02:35 <mroman> But it does not prove, that every BF program has an equivalent bfb program.
14:02:43 <mroman> In terms of "halting in the same state"
14:02:54 <elliott> That seems a weird thing to wonder about :)
14:03:19 <mroman> If I execute +++- I calculated 2 in memory.
14:03:22 <mroman> and thats my halting state
14:03:40 <elliott> Would it not be better to consider IO instead?
14:04:05 <mroman> If you only consider "producing same i/o output" then his method works, yes.
14:04:53 <mroman> int i = 0; puts("hi!");
14:05:02 <mroman> int i = 0; puts("hi!");
14:05:14 <mroman> I don't consider those programs "equivalent".
14:05:41 <elliott> I'm pretty sure you're in the minority there.
14:05:56 <Vorpal> mroman, hm would you consider an optimiser for BF that changes one for the other to be incorrect then as well?
14:06:11 <mroman> Vorpal: If the resulting halting state is different, yes.
14:06:26 <elliott> A definition of "equivalent" depending on internal state -- even basically dead code -- like that is doomed to be more or less useless, IMO.
14:06:52 <mroman> If you strip bf from its i/o
14:07:29 <mroman> and I don't think that bf programs are required to do i/o
14:07:30 <elliott> That'd just leave a language which only either halts or not halts.
14:07:37 <Vorpal> usually you are just interested in if it halts
14:07:42 <elliott> There's no requirement at all to define BF in terms of exposing its final state.
14:07:52 <elliott> The tape can be part of the black box.
14:09:17 <elliott> fizzie: Hey, did I ask you how much you paid for the bundle?
14:09:56 -!- aloril has joined.
14:09:57 <mroman> People usually say that my definition of equivalence is broken ;)
14:10:19 <mroman> e.g i consider [0..Infinity] and [0..Infinity] to be equal :)
14:11:20 <Taneb> elliott, for reference, future me paid at least $10
14:11:53 <elliott> X and X are equal? Shocking.
14:14:15 <Taneb> The set of computable truths is not equal to the set of provable truths
14:14:33 <Taneb> I have no idea if that sentence means anything
14:15:37 -!- Taneb has left ("get that thing away from me").
14:17:20 -!- Taneb has joined.
14:17:30 <mroman> elliott: I consider x = x yes.
14:17:40 <mroman> But people don't consider _|_ = _|_
14:20:20 <elliott> And [0..] isn't _|_, anyway.
14:21:08 <Vorpal> interestingly enough NaN != NaN. That's IEEE floating point for you...
14:21:17 <Vorpal> (in other words floating point sucks)
14:21:44 <Taneb> Not in #haskell, either
14:22:08 <fizzie> That's not worth four !s.
14:22:16 <Taneb> `cat "main = print (0 / 0 == 0 / 0)" | runhaskell
14:22:18 <HackEgo> cat: "main = print (0 / 0 == 0 / 0)" | runhaskell: No such file or directory
14:22:26 <Taneb> `echo "main = print (0 / 0 == 0 / 0)" | runhaskell
14:22:29 <HackEgo> "main = print (0 / 0 == 0 / 0)" | runhaskell
14:22:30 <Vorpal> fizzie, you don't think fungot is worth four !?
14:22:43 <elliott> they actually quat together
14:22:46 <mroman> elliott: The guys in #ghc disagreed.
14:22:49 <elliott> 14:52 lambdabot has left IRC (Ping timeout: 244 seconds)
14:22:49 <elliott> 14:52 fungot has left IRC (Ping timeout: 244 seconds)
14:23:08 <elliott> mroman: perhaps they meant that x == y does not necessarily evaluate to True when x and y are both _|_.
14:23:16 <Taneb> lambdabot <3 fungot
14:23:20 <elliott> from a denotational semantics point of view, _|_ and _|_ are unquestionably equal.
14:23:32 <elliott> anyway, there are almost certainly incompetent people in #ghc
14:23:37 -!- fungot has joined.
14:23:38 <elliott> although probably less than in #haskell
14:23:42 <fungot> Taneb: trillian is a very silly film) :) y z i think it depends
14:23:54 <Taneb> elliott, I think that may be a virtue of population
14:24:00 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
14:24:07 <fungot> Selected style: ss (Shakespeare's writings)
14:24:12 <Taneb> fungot, have at ye!
14:24:14 <fungot> Taneb: fitz. if that goe forward, we will cover it. take no offence that i would bestow vpon your worship, to correct yourself, for the thing it was.
14:24:14 <fizzie> elliott: Oh, and I paid $15. Felt like I should go a bit above the Linux-user average.
14:24:32 <elliott> fizzie: You leave me with no choice but to pay $15.01.
14:24:34 <elliott> Phantom_Hoover: How much did you pay.
14:24:56 <Vorpal> <elliott> mroman: perhaps they meant that x == y does not necessarily evaluate to True when x and y are both _|_. <-- hm, why is that?
14:24:59 <mroman> elliott: I may have asked stuff like "why reverse [1..] == reverse [1..]" does not compute in human time although they are obviously equal
14:25:26 <elliott> mroman: That's a very, very different question.
14:25:28 <Vorpal> mroman, because the optimiser isn't smart enough for that?
14:25:33 <mroman> and f(x) == f(x) no matter if f terminates or not.
14:25:35 <elliott> mroman: And as I've said: [1..] *is not _|_*
14:25:39 <Phantom_Hoover> I payed 10 because I don't obsessively optimise like you.
14:25:56 <elliott> There is not a single _|_ in the graph of values that comprises [1..], in fact.
14:26:00 <elliott> (But reverse [1..] is _|_.)
14:26:10 <mroman> elliott: Then why is f(x) == f(x) not always true?
14:26:13 <Taneb> Phantom_Hoover, you paid more than fizzie!
14:26:28 <elliott> Anyway, (reverse [1..] == reverse [1..]) is _|_ because that's how (==) is defined for lists. You are confusing (==) (a function in Haskell) with = (the concept of mathematical equality).
14:26:47 <elliott> BTW, having reverse [1..] == reverse [1..] would break referential transparency.
14:26:56 <mroman> My idea was to reduce everything as much as possible
14:27:04 <elliott> Consider: reverse [1..] == haltIffGoldbach'sConjecture
14:27:06 <mroman> and then compare expressions and optimize everything away
14:27:09 <elliott> Assuming Goldbach's conjecture is false.
14:27:20 <elliott> Then, since haltIffGoldbach'sConjecture = _|_ and reverse [1..] = _|_, this must be true.
14:27:23 <elliott> Assuming Goldbach's conjecture is true,
14:27:34 <elliott> Then, since haltIffGoldbach'sConjecture is [] (or something) and reverse [1..] = _|_, this must be false.
14:28:00 <elliott> So Haskell cannot have reverse [1..] == reverse [1..] evaluate to True without destroying referential transparency.
14:28:17 <mroman> That's the part I never got.
14:28:26 <mroman> I can substitute reverse [1..] with x
14:28:29 <mroman> and x == x should be true.
14:28:31 <elliott> Referential transparency means you must be able to replace an expression with its value.
14:28:40 <elliott> If reverse [1..] is _|_, and an expression containing reverse [1..] evaluates to something,
14:28:46 <Taneb> Phantom_Hoover, dressed as a clown with no money, tied to a train on its way to Vladivostok
14:28:47 <elliott> it /must/ evaluate to that same thing whenever you substitute anything else that is _|_.
14:28:52 <Phantom_Hoover> mroman, how do you know you can substitute both sides with the same thing?
14:29:04 <mroman> Phantom_Hoover: referential transpare...
14:29:04 <Phantom_Hoover> It's obvious from textual analysis in this case, but not in general.
14:29:18 <mroman> Same function, same input => same output, always
14:29:30 <Taneb> mroman, (==) can't know that
14:29:36 <elliott> mroman: The point is that you *cannot* add this one special case, however "obvious" it is, because you give yourself the obligation to make it work the same way even when it is NOT so trivial.
14:29:49 <Phantom_Hoover> (Hint: you can't, it's isomorphic to the halting problem.)
14:30:48 <Taneb> That that is computably true is not all that that is provably true is not all that that is true
14:30:51 <mroman> 1.) textual analysis 2.) optimization 3.) dovetailing
14:30:54 <elliott> mroman: If you don't do that, you break referential transparency, and hence all equational reasoning.
14:31:20 <elliott> No matter how clever you do it, you must choose between breaking RT and equational reasoning, or computing the impossible in all cases.
14:31:45 <Vorpal> As a side note: IIRC Fortran allows optimisation based on textual equivalence. Which is rather stupid in a non-pure language.
14:32:06 <elliott> mroman: Perhaps you are thinking of True as an "optimisation" of _|_.
14:32:19 <elliott> It is OK if between two equivalent expressions, one returns True and one returns _|_.
14:32:25 <elliott> That's not true; it violates RT all the same.
14:33:19 <mroman> two equivalent expressions yield the same result.
14:33:20 <Phantom_Hoover> <mroman> 1.) textual analysis 2.) optimization 3.) dovetailing
14:33:38 <Phantom_Hoover> You realise this is basically impossible to do programatically for non-trivial cases?
14:34:00 <mroman> It certainly is in complex languages like haskell.
14:34:15 <Phantom_Hoover> You're basically asking that a useless special case be added to (==).
14:34:47 <mroman> last [1..] * 0 also does not halt
14:35:13 <mroman> humans don't even try to evaluate last [1..]
14:36:10 <mroman> pattern matching isn't dovetailed.
14:36:47 <Vorpal> that is an usually useless special case to * instead. And if you want to catch all cases, then you need to check at runtime if one of the arguments evaluated to 0. Which won't work since one of them could take forever to evaluate
14:37:07 <mroman> Vorpal: It does not matter if one takes forever
14:37:23 <Vorpal> how does it know which one to evaluate first
14:37:30 <Taneb> mroman, which do you try first, and when do you stop trying?
14:37:31 <mroman> Vorpal: It does so in parallel
14:37:42 <elliott> Phantom_Hoover: By the way, your argument is irrelevant.
14:37:55 <elliott> The specific special-case could be added to the compiler easily.
14:38:06 <elliott> What matters is that it would BREAK REFERENTIAL TRANSPARENCY.
14:38:31 <Vorpal> mroman, so you want to force it to start two threads at each multiplication...?
14:38:54 <elliott> mroman: You can do that (the last [1..] * 0 thing) with the lub package and that can work fine.
14:38:57 <elliott> mroman: I already told you why.
14:39:13 <mroman> 16:27 < elliott> Consider: reverse [1..] == haltIffGoldbach'sConjecture
14:39:26 <mroman> ^- you can't say anything about that.
14:39:29 <elliott> If reverse [1..] == reverse [1..] evaluates to True, then reverse [1..] == haltIffGoldbach must evaluate to True iff Goldbach's conjecture is false.
14:39:31 <mroman> you have to dovetail both of them.
14:39:39 <elliott> I can very well say something about that.
14:40:48 <mroman> why must reverse [1..] == haltIff... evaluate to true?
14:41:11 <elliott> Referential transparency tells us we can substitute any two expressions with identical values.
14:41:22 <elliott> Hence, assuming the excluded middle, I will consider two cases:
14:41:28 <elliott> First, assume Goldbach's conjecture is true.
14:41:40 <elliott> Thus, haltIffGoldbach evaluates to [].
14:41:56 <elliott> Thus, reverse [1..] == haltIffGoldbach must be either False or _|_.
14:42:08 <elliott> Next, assume Goldbach's conjecture is false.
14:42:15 <elliott> Thus, haltIffGoldbach evaluates to _|_.
14:42:22 <elliott> Now, we know that reverse [1..] evaluates to _|_.
14:42:31 <elliott> Take the statement "reverse [1..] == reverse [1..] evaluates to True".
14:43:04 <elliott> By referential transparency, we can substitute "haltIffGoldbach" for "reverse [1..]" in this statement: (being able to do this is a STRICT requirement for referential transparency and equational reasoning)
14:43:15 <elliott> Resulting in "reverse [1..] == haltIffGoldbach evaluates to True".
14:43:35 <elliott> Popping off any assumption about Goldbach's conjecture, we can see that Haskell is required to decide whether Goldbach's conjecture is true.
14:43:49 <Taneb> I swear, I'm learning everything in the wrong order.
14:44:01 <elliott> Because if reverse [1..] == reverse [1..] evaluates to True, reverse [1..] == haltIffGoldbach MUST evaluate to True if Goldbach's conjecture is true, or False or _|_ if it is false.
14:44:07 <Vorpal> elliott, hm, out of interest, is it possible to implement haltIffGoldbach'sConjecture? I can see how to implement the opposite (you just have to write a function that goes on until it finds a counter example).
14:44:08 <elliott> Therefore, you either must:
14:44:17 <mroman> I don't get why you can replace reverse [1..] with iffHalt..
14:44:21 <elliott> - break referential transparency and all equational reasoning; or
14:44:22 <mroman> you don't know what reverse [1..] is.
14:44:25 <elliott> - not add your special case.
14:44:36 <elliott> Do you want me to prove reverse [1..] is _|_? That seems a little trivial.
14:44:53 <elliott> I don't think you understand denotational semantics or equational reasoning at all, frankly.
14:44:55 <Taneb> Here we go again...
14:45:02 <elliott> Or, possibly, referential transparency.
14:45:07 <elliott> So I'm sort of done with this argument.
14:45:20 <elliott> Vorpal: Oh, right, you have to negate it.
14:45:24 <elliott> Vorpal: Same argument applies, of course.
14:45:25 <mroman> Phantom_Hoover: It's probably some fold with flip and :
14:45:30 <Taneb> elliott, did you see my obfuscated haskell that doesn't do what the one yesterday does?
14:45:31 <Vorpal> elliott, well yes, obviously
14:45:44 <elliott> Taneb: It doesn't segfault? Gosh.
14:46:02 <Taneb> http://hpaste.org/69700
14:46:06 <mroman> elliott: Obviously I don't understand any of them.
14:46:12 <mroman> I'm not a computer scientist at all.
14:46:13 <Phantom_Hoover> mroman, OK look can you actually tell me any element of reverse [1...]?
14:46:29 <elliott> mroman: I'm not trying to be insulting, but your position truly is untenable.
14:46:40 <Taneb> I now have the dubious honour of having my code quoted on Uncyclopedia
14:46:47 <mroman> Phantom_Hoover: 8 probably
14:46:58 <Vorpal> mroman, uh, in the reversed one...
14:47:19 <Vorpal> indeed, that is why reverse [1..] is _|_
14:47:33 <elliott> mroman: It really is mathematically incoherent and you can try to defend it as a matter of "opinion" but in reality there is some deeper misunderstanding you have (I don't know what) that will hold you back as you try to learn about denotational semantics and equational reasoning and all of that.
14:47:43 <mroman> The problem is, I don't consider _|_ as a value.
14:47:43 <elliott> Your choice if you want to keep it that way.
14:48:03 <elliott> mroman: It is. Have you learned denotational semantics yet?
14:48:14 <mroman> reverse [1..] is a function that at some point in time will or will not return anything.
14:48:22 <Phantom_Hoover> elliott, hmm wait isn't there a difference on some level between _|_ and Constructor _|_.
14:48:35 <elliott> You could come up with a semantics where _|_ is not a value.It would not be denotational and it would probably be a lot less useful, but it's disingenuous (i.e. blatantly wrong) to argue that _|_ is not a value in denotational semantics.
14:48:38 <Vorpal> mroman, it will trivially never halt.
14:49:01 <Taneb> length [_|_] == 1; length _|_ == _|_, right?
14:49:06 <mroman> Vorpal: But you can't prove that for all functions.
14:49:15 <elliott> Phantom_Hoover: Reduce the definition yourself.
14:49:24 <mroman> "The function always evaluates the same result value given the same argument value(s). "
14:49:37 <mroman> and that is what my base of argumentation is ;)
14:49:39 <Vorpal> mroman, of course not. And?
14:49:43 <elliott> Can someone let me know when this nonsense stops going in circles?
14:49:46 -!- elliott has left ("Thanks.").
14:49:46 <mroman> reverse [1..] yields the same result as reverse [1..]
14:49:57 -!- boily has joined.
14:51:29 <mroman> And I don't care if it halts or not, because I know that they must yield the same result
14:51:54 <mroman> but I don't know the result of reverse [1..]
14:52:27 <mroman> Yeah, by the common definition.
14:52:44 <mroman> But why do you consider "does not halt" as a result?
14:53:22 <mroman> I don't see why we can assume "does not halt" as a result.
14:53:48 <Phantom_Hoover> mroman, because that's the way the entire system is defined, so if you disagree with it you're not actually talking about the same thing as everyone else.
14:55:57 <mroman> So a function can result in
14:56:04 <mroman> a value, "does not halt"
14:56:10 <Phantom_Hoover> mroman, FWIW referential transparency is defined based on the definition of 'same' that requires that two functions that do not halt are the same.
14:56:14 <mroman> and what in the case where you can't prove any option of them?
14:57:31 <Phantom_Hoover> i.e. you don't know whether the associated computation halts.
14:58:17 <mroman> and how do you express that?
14:58:27 <mroman> Is that bottom, or not bottom, or nothing at all?
14:58:48 <Taneb> That's "I don't know whether it's bottom or not"
14:59:13 <Phantom_Hoover> OK look just sit tight, wait for someone who knows what they're doing to try to teach you and accept everything they say uncritically.
15:03:17 <mroman> I'd always wonder what if functions that do not halt don't yield "does not halt" ;)
15:03:42 <Taneb> Then go out there and find someone willing to teach you
15:03:53 <mroman> If you consider "does not halt" as a value, than I understand you and elliot completely.
15:06:46 <Taneb> In other news, my hand's almost healed
15:06:59 <Phantom_Hoover> mroman, oooh, elliott hates it when people get his name wrong.
15:07:24 <mroman> I'm pretty sure he hates me for several other reasons ;D
15:07:41 <Taneb> I'm not entirely sure if elliott has the ability to hate.
15:08:00 <Taneb> He may be severely ashamed of your existence, but I doubt he hates you.
15:08:24 <Taneb> But hey, I'm a nave idealist.
15:10:33 <Taneb> elliott's word on this "I... expect so?"
15:10:50 <Taneb> And now I will go put things away
15:38:42 -!- elliott has joined.
15:50:29 <elliott> kmc: marlow just usurped you :P
16:06:52 <ion> ಠ_ಠ http://www.courthousenews.com/2012/06/06/47162.htm
16:39:16 <elliott> @tell Patashu I hope your seed scummer thing annotates the recording/save file appropriately, like wizmode does in most roguelikes.
16:41:30 -!- sebbu2 has changed nick to sebbu.
16:45:06 -!- Taneb has quit (Quit: Leaving).
17:06:58 <elliott> After a reality bomb goes off at the first ever ShatnerCon, all of the characters ever played by William Shatner are suddenly sucked into our world. Their mission: hunt down and destroy the real William Shatner. Featuring: Captain Kirk, TJ Hooker, Denny Crane, Priceline Shatner, Cartoon Kirk, Rescue 9-1-1 Shatner, singer Shatner, and many more. No costumed con-goer will be spared in their wave of destruction, no red shirt will make it
17:06:59 <elliott> out alive, and not even the Klingons will be able to stand up to a deranged Captain Kirk with a light saber. But these Shatner- clones are about to learn a hard lesson . . . that the real William Shatner doesn't take crap from anybody. Not even himself.
17:27:27 -!- pikhq has joined.
17:27:29 -!- pikhq_ has quit (Ping timeout: 246 seconds).
18:25:56 -!- calamari has joined.
18:32:39 <Vorpal> elliott, is that a real movie?
18:32:56 <Vorpal> still pretty amazing idea
18:33:03 <elliott> But only if Shatner played all the Shatners.
18:33:45 <Vorpal> elliott, I'm not sure what that refers to
18:34:07 -!- FireFly has quit (Changing host).
18:34:07 -!- FireFly has joined.
18:35:14 <Vorpal> yeah he couldn't play that himself I guess :P
18:35:30 <Vorpal> the voice acting I guess
18:40:38 -!- asiekierka has quit (Read error: Connection reset by peer).
18:47:59 -!- azaq23 has joined.
18:48:14 <quintopia> is there an irc channel where people know algorithms really well and are helpful and talkative
18:50:06 -!- aloril has quit (Ping timeout: 260 seconds).
18:50:19 <elliott> one out of three ain't bad
18:50:36 -!- Taneb has joined.
18:52:07 <elliott> quintopia: is your scoring done yet
18:52:18 <quintopia> that is why i want to talk to algorithms people
18:52:43 <quintopia> i suspect that i could get away without using the sledgehammer of linpack
18:53:01 <quintopia> if i had someone competent at bayesian methods to talk to
18:53:17 <elliott> yeah i'm sure linpack will be super slow
18:53:38 <quintopia> finding all the eigenvales when i only need one eigenvector will be slow
18:54:54 -!- kappabot has joined.
18:55:42 <HackEgo> kappabot: 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.)
18:56:15 <HackEgo> KAPPABOT: 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.)
18:57:06 <kappabot> help <command>. Ask for help for <command>. Try 'list' for all commands
18:57:12 <kappabot> http://code.haskell.org/lambdabot/COMMANDS
18:57:38 <shachaf> elliott: No! You might run code on my server.
18:57:44 <elliott> I already know your password!
18:57:54 <shachaf> Today I told elliott my password.
18:58:39 -!- ais523 has joined.
18:58:39 <HackEgo> 46) <pikhq> Gregor is often a scandalous imposter. It's all the hats, I tell you. \ 180) <cpressey> fizzie: I can never tell with OpenBSD! <cpressey> everything looks like an error anyway \ 253) <oerjan> <Gregor> oerjan: Tell us what (a(b{c}d)*2e)%2 expands to <-- ababcdbcdedbabcdbcdede, i think <Gregor> oerjan: What - the - fuck \ 313) <elliott> A priori one cannot say that post hoc ergo propter hoc the diminishing
18:58:42 -!- monqy has joined.
18:58:52 -!- ais523 has quit (Changing host).
18:58:52 -!- ais523 has joined.
18:58:54 <HackEgo> 550) <CakeProphet> monqy: help how do I use lambdabot to send messages to people. [...around half an hour later...] <CakeProphet> @messages <lambdabot> quicksilver said 1y 2m 18d 19h 54m 29s ago: you use @tell
18:59:23 -!- monqy has quit (Client Quit).
18:59:42 -!- monqy has joined.
19:00:24 <monqy> you know how when your sasl auth times out and you just don't feel like manually identifying
19:00:51 <elliott> i identify manually with this client because it fails to do it automatically for some reason
19:01:04 <elliott> my main client just uses a server password
19:01:43 <shachaf> elliott: "is your irc password the same as your other passwords"
19:02:04 <elliott> monqy: did you know lambdabot is down :(
19:02:22 <quintopia> is you irc password the same as shaachaf's password?
19:03:08 -!- aloril has joined.
19:05:02 -!- zzo38 has joined.
19:11:45 <elliott> monqy: I liked your Hell stairdancing.
19:11:56 <elliott> (I wasn't going to bother watching it but then I saw the Pandoora announcements in the log.)
19:12:33 <monqy> elliott: which one
19:12:36 <shachaf> You can tell it's secure because it has a digit in it.
19:12:47 <shachaf> Digits are harder to remember than letters, so you know they're more secure.
19:13:05 <monqy> hell is a stairdance party and ive been there multiple times in light
19:13:15 <elliott> monqy: The one you did earlier.
19:13:20 <monqy> elliott: also did you see the part where i got banished and quit
19:13:33 <elliott> By "quit", do you mean "converted to Lugonu"?
19:13:41 <elliott> I... was present when you got banished and quit.
19:13:43 <monqy> the lugonu altar was right next to where I got banished
19:14:03 <elliott> I don't understand what you mean by quit, though.
19:14:07 <elliott> That was an earlier game I saw live, wasn't it?
19:14:09 <monqy> the joke is that i didnt
19:14:24 <elliott> 16:11 <elliott> @ask monqy WOW HOW DID YOU FIND A LUGONU ALTAR THAT QUICKLY
19:14:24 <elliott> 16:11 Error(401): lambdabot No such nick/channel
19:14:25 <quintopia> shachaf: also the fact that there over 60 million passwords using 5 alphanumeric characters! guessing it by brute force could take almost an hour!
19:14:43 <elliott> monqy: I'm disappointed you did non-orb-run Hive.
19:14:48 <elliott> I bet orb run Hive would be exciting.
19:16:08 <monqy> if i got to hive on orb run i wouldnt do it
19:18:28 <elliott> monqy: Another brogue release came out!
19:21:51 <elliott> There was a... slight bug: http://i.imgur.com/Xw7eo.png
19:22:32 <monqy> is anything else in the release
19:23:17 <elliott> The ally damage doubled instead of added, or something.
19:32:37 -!- TeruFSX has joined.
19:50:49 -!- Taneb has quit (Quit: Leaving).
20:12:12 -!- MoALTz has joined.
20:17:13 <elliott> monqy: Why is it so early?
20:20:34 -!- TeruFSX has quit (Read error: Connection reset by peer).
20:27:03 * Sgeo wonders if there's any good reason for Pidgin to be using XML
20:28:31 <Vorpal> h<elliott> There was a... slight bug: http://i.imgur.com/Xw7eo.png <-- interesting looking game
20:28:44 <shachaf> Vorpal: Golf your regexps. :-(
20:29:11 <shachaf> elliott: Wait, is that your roguelike?
20:29:12 <Vorpal> shachaf, when used on IRC, clarity is way more important
20:29:15 <elliott> Vorpal: It's brogue. It's pretty. It's fun. Play it!
20:29:20 <Vorpal> shachaf, no the future is just more capable hardware
20:29:47 <elliott> shachaf: But thank you for the implicit compliment in assuming I could produce something like that.
20:29:51 <Vorpal> can't find it by googling, it is apparently an Irish word though
20:30:04 <Vorpal> err, refers to an Irish accent even
20:30:23 <shachaf> elliott: I meant that your "roguelike" was a static textmap with a quarter of a map and some coloured text.
20:30:32 <shachaf> Vorpal: Hint: Add "game" to query.
20:30:42 <shachaf> "this advice brought to you by: the letter monqy"
20:30:45 <zzo38> The system operator seems to not be on X-BIT anymore
20:30:45 <Vorpal> shachaf, that is what I did
20:31:02 <elliott> Vorpal: https://sites.google.com/site/broguegame/
20:31:14 <Vorpal> elliott, I found it already :O
20:31:31 <shachaf> @tell monqy @tell shachaf to look up brogue
20:31:32 <Vorpal> I'm typing at an awkward angle here
20:31:40 <Vorpal> blame that for my typos
20:34:55 -!- DHeadshot has quit (Ping timeout: 260 seconds).
20:39:56 -!- DHeadshot has joined.
20:48:56 -!- oerjan has joined.
20:50:29 <ais523> `joustprog quintopia_zoom
20:50:32 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: joustprog: not found
20:50:33 <ais523> `jousturl quintopia_zoom
20:50:35 <HackEgo> http://codu.org/eso/bfjoust/in_egobot/quintopia_zoom.bfjoust
20:51:05 <elliott> I like how ais523 just makes up program names.
20:51:12 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: greet: not found
20:51:18 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
20:51:23 <elliott> shachaf: Will you play brogue?
20:51:27 <ais523> EgoBot: you mean HackEgo commands?
20:51:36 <elliott> `run echo '#!/bin'sh' >bin/joustreport
20:51:39 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file
20:51:42 <elliott> `run echo '#!/bin/sh' >bin/joustreport
20:51:46 <ais523> I'm trying to figure out if it's worth improving shudderlock, and I'm not convinced it is
20:51:48 <shachaf> elliott: Remind me ot play brogue later.
20:51:53 <elliott> `run echo "echo 'http://codu.org/eso/bfjoust/report.txt'" >>bin/joustreport
20:51:56 <elliott> `run chmod +x bin/joustreport
20:52:01 <ais523> the strategy might beat death_to_defence by defending
20:52:03 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/joustreport: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/joustreport: cannot execute: Permission denied
20:52:05 <ais523> but I don't think it's /viable/
20:52:08 <quintopia> ais523: you wouldn't happen to know a good "idiot's guide to lapack" would you?
20:52:10 <HackEgo> http://codu.org/eso/bfjoust/report.txt
20:53:45 <oerjan> the complete idiots guide to insults
20:54:23 <quintopia> ais523: you wouldnt happen to know a good regular-lock-on-flag style defense strategy that works for 2-cycle clears on both polarities without requiring much synchronization would you? all i can think is "use the smallest adjustments to flag possible with shortest clear time possible and risk running out of time"
20:55:24 <oerjan> crash testing for dummies
20:55:38 <ais523> quintopia: hmm; (+)*256(.)*256 is reasonably viable if you can hit the right half of the opposing program's clear loop
20:55:45 <ais523> works better on one polarity than the other, but can work on either
20:55:53 <ais523> (you put your full-tape clear in the (.)*256)
20:56:31 <ais523> shudderlock uses (+)*64(-)*64(+)*64(-)*64(+)*64(.)*64 in order to defeat death_to_defence, but it seems a bit finicky about the details
20:56:47 <ais523> and that pattern doesn't work on the flag, but only next to the flag
20:57:00 <ais523> (has occasional zero-for-two-cycle moments)
20:57:06 <quintopia> ais523: it fails if you are in the (+)*256 part while opponent is doing [-] and the flag starts at wrong value
20:57:31 <ais523> there's no generic lock algorithm that works on everything with no synchronization, or I'd have used it already :)
20:57:51 <ais523> if you start the (+)*256 while your flag is positive, though, it's reasonably safe
20:58:13 <quintopia> but if you start it before the opponent gets there...it won't be positive :P
20:58:31 <ais523> I don't think you can reliably lock with no synchronization at all
20:59:17 <quintopia> what if you do (.++)*192 instead? would that give you a little more leeway for the opponent arriving late?
21:00:38 <kmc> elliott: usurped?
21:01:05 <elliott> http://community.haskell.org/~simonmar/async-stm/Control-Concurrent-Async.html
21:01:05 <kmc> explain plz
21:01:19 <elliott> async + wait + waitThrow ~ spawn
21:01:28 <kmc> there are already like 5000 of these libraries on Hackage
21:01:40 <elliott> Therefore you are usurped.
21:01:48 <elliott> And also this is going into the base package.
21:02:01 <kmc> 'spawn' is different because there's no new type for "asynchronous actions" / "threads" / whatever
21:02:14 <kmc> so yeah it's IO a -> IO (IO a) not IO a -> IO (Async a)
21:02:19 <elliott> Fair enough. (But the new type doesn't really matter that much, since you could make spawn use a newtype and it'd be ~the same.)
21:02:24 <kmc> obviously the latter gives you a lot more functionality
21:02:29 <kmc> but the former is more convenient
21:02:46 <elliott> Well, it's exactly a "wait " more convenient, I guess :)
21:02:46 <kmc> and pleases me better as a fusion of imperative and functional programming
21:02:58 <elliott> I tend to prefer using a newtype for things like that for clarity.
21:03:07 <kmc> elliott: well it's also the difference between mapM wait and sequence
21:03:26 <zzo38> Things like IO (IO a) then you can use join
21:03:27 <kmc> anyway this is not a big difference
21:03:46 <shachaf> race :: IO a -> IO b -> IO (Either a b)
21:05:03 <zzo38> shachaf: And, what would you mean by that race?
21:05:17 <shachaf> zzo38: Exactly what Marlow means.
21:06:31 <elliott> zzo38: race m n = do { var <- newEmptyMVar; rec { threadA <- forkIO ((m >>= putMVar var) >> killThread threadB); threadB <- forkIO ((n >>= putMVar var) >> killThread threadA) }; takeMVar var }
21:07:03 <shachaf> zzo38: You forgot Left and Right.
21:07:32 <elliott> Damn, how did you discover my sockpuppet?
21:07:57 <zzo38> elliott: It is because you threw all of your socks on the floor, everyone can find them
21:08:48 -!- azaq23 has quit (Quit: Leaving.).
21:12:43 <zzo38> I fail to understand what rec means there?
21:13:26 <elliott> See the documentation for the DoRec extension.
21:14:05 <zzo38> How would it be written without using do and rec?
21:16:31 <oerjan> mfix (\(threadA, threadB) -> liftM2 (,) (forkIO ((m >>= putMVar var) >> killThread threadB) (forkIO ((n >>= putMVar var) >> killThread threadA)), i think
21:16:39 <elliott> zzo38: Using mfix in a far more ugly manner than I can be bothered with.
21:18:01 <zzo38> I do not even understand mfix well either
21:18:57 <elliott> zzo38: Just read the rec as a mutually recursive binding there
21:20:01 <zzo38> But what does a mutually recursive binding even means in IO?
21:21:50 <oerjan> zzo38: it means mostly that mutation is used under the hood to change the bindings from errors to the final value when the IO action completes
21:23:03 <oerjan> which means that the IO actions should use the bindings only lazily
21:23:16 <elliott> Right, you could instead create two MVars to hold the thread ID of each.
21:23:24 <elliott> oerjan: (Not errors, are they?)
21:23:29 <elliott> (I assumed it'd just block, like takeMVar.)
21:23:37 <oerjan> elliott: i'm not sure. hm i guess.
21:23:38 <elliott> (In fact, I suspect it looks like this:)
21:24:01 <elliott> (mfix m = do { v <- newEmptyMVar; x <- m (takeMVar v); putMVar v x; return x })
21:24:20 <elliott> Except not quite, because it has to be takeMVar v >>= m and that wouldn't work.
21:24:42 <elliott> instance MonadFix IO where
21:25:03 <elliott> oerjan: You look it up. :p
21:25:05 <kappabot> Source not found. This mission is too important for me to allow you to jeopardize it.
21:25:29 <shachaf> elliott: I just downloaded the database, maan!
21:25:32 <oerjan> http://www.haskell.org/ghc/docs/latest/html/libraries/base-4.5.0.0/src/System-IO.html#fixIO
21:25:46 <elliott> Right, I thought unsafeInterleaveIO might be involved.
21:27:06 <oerjan> lots of note about how this probably isn't always safe
21:29:34 <shachaf> 14:28 <elliott> class Monad m where box :: a -> m a; unbox :: m a -> a
21:29:47 <elliott> 22:24 <shachaf> The first monadic law is that a monad is a wrapper around another type. In Haskell, one has the IO String type, which is returned from functions that read from files, console input, or system calls – IO is a monad that wraps the String data type. jQuery obviously satisfies this condition, as it wraps DOM nodes retrieved through given queries.
21:29:56 <zzo38> That isn't a monad
21:29:58 <elliott> 22:24 <shachaf> The second monadic law is just as simple: all monads must have a function to wrap themselves around other data types. jQuery clearly has ways to apply itself to DOM nodes – you use the querying facilities to traverse the DOM, and if you’re feeling especially saucy, you can use pass the results of document.getElementsByTagName and its siblings to the jQuery object. Haskell refers to this as a type constructor – a
21:29:58 <elliott> function that takes some data an
21:30:11 <shachaf> I was quoting someone else there!
21:30:20 <shachaf> elliott, on the other hand, typed that thing in himself.
21:30:30 <shachaf> That particular line has never been typed before by anyone.
21:30:39 <elliott> I was channelling whoever wrote this other blog post.
21:30:59 <oerjan> The third monadic law says that everyone gets monads wrong.
21:32:51 <zzo38> I think it ought to be: class Functor m => Monad m where { return :: x -> m x; join :: m (m x) -> m x; }; well, not exactly; it should be done by making specificness of a monad generally in another category, and then add another instance that makes all monads to be also applicative in the categories where that is the case
21:34:55 <zzo38> shachaf: I forgot it on purpose because it is not a comonad
21:37:39 <zzo38> type MonadC (c :: z -> z -> *) (m :: z -> z) :: & = (Category c, EndofunctorC c m, MonadLawsC c m, method return :: c x (m x), method join :: c (m (m x)) (m x));
21:37:57 <zzo38> type Monad = MonadC (->);
21:39:15 <zzo38> If (->) of kind (* -> * -> *) then Monad of kind ((* -> *) -> &) due to these definitions.
21:40:00 <zzo38> In GHC, (->) is of kind (?? -> ? -> *) and Monad does not have a kind.
21:40:17 <zzo38> The code I posted above is meant for Ibtlfmm rather than Haskell since it won't work in Haskell
21:40:29 <elliott> Monad has kind * -> Constraint in GHC.
21:40:38 <elliott> (With the appropriate extensions.)
21:40:38 <shachaf> elliott: Which part is wrong?
21:40:54 <zzo38> elliott: Shouldn't it be: (* -> *) -> Constraint
21:40:55 <oerjan> elliott: (* -> *) -> Constraint, surely
21:41:19 <shachaf> * -> Constraint -> (Constraint,Constraint) -> *
21:41:59 <zzo38> shachaf: What would the (Constraint,Constraint) kind mean?
21:42:13 -!- oonbotti has quit (Quit: oonbotti).
21:42:38 -!- oonbotti has joined.
21:43:05 <zzo38> At first I was using "kind" for data kinds, but perhaps "kind" should mean kind synonyms and "data kind" for data kinds, then you can write: kind Constraint = &; if you want to do so.
21:43:36 <oonbotti> yay. this time I really managed to remove all that debug junk
21:44:04 -!- boily has quit (Quit: WeeChat 0.3.8).
21:45:49 <nortti> oonbotti: is eliza still working?
21:45:49 <oonbotti> Please consider whether you can answer your own question.
21:46:31 <oerjan> oonbotti: I often dream of gnomes.
21:46:44 <oonbotti> How do you feel when you say that?
21:46:51 <oonbotti> How do you feel when you say that?
21:46:55 <oonbotti> Let's change focus a bit... Tell me about your family.
21:50:53 <zzo38> And then give the name for other kind too: kind Natural = +; kind Module = @;
21:52:24 -!- oonbotti has quit (Quit: oonbotti).
21:53:47 -!- oonbotti has joined.
21:55:43 <nortti> oonbotti: no errors made by cleanup?
21:55:44 <oonbotti> nortti: Please consider whether you can answer your own question.
21:57:27 -!- Patashu has joined.
21:57:46 -!- derdon has joined.
21:58:35 <nortti> oonbotti: I can't answer that before I have seen your eliza program working
21:58:35 <oonbotti> nortti: How do you know you can't answer that before you have seen my eliza program working?
22:00:05 <nortti> oonbotti: because python interpreter doesn't detect logical errors
22:00:05 <oonbotti> nortti: What other reasons come to mind?
22:00:21 <nortti> oonbotti: well that is the only one
22:01:26 <ais523> python interp doesn't even detect illogical erros
22:01:57 * oerjan wonders if eliza was the first wrapped shrink software
22:02:46 <ais523> that was a surprisingly good pun, for oerjan
22:02:50 <ais523> he normally makes bad ones
22:03:27 <ais523> hmm, I'm having a bit of cognitive dissonance trying to read that last line
22:04:29 <nortti> :\( is kinda weird emoticon
22:04:55 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: pastlogs: not found
22:05:47 <oerjan> of course. we are not barbarians here.
22:07:32 -!- Patashu has quit (Disconnected by services).
22:07:32 -!- PatashuXantheres has joined.
22:13:09 -!- PatashuXantheres has changed nick to Patashu.
22:16:33 -!- nortti_ has joined.
22:26:50 -!- Sgeo_ has joined.
22:33:06 <zzo38> Can you make any Pokemon Card puzzle?
22:36:42 -!- glogbackup has quit (*.net *.split).
22:36:42 -!- Sgeo has quit (*.net *.split).
22:36:42 -!- Nisstyre has quit (*.net *.split).
22:36:43 -!- ssue has quit (*.net *.split).
22:43:12 -!- kappabot has quit (Quit: requested).
22:43:24 -!- ssue has joined.
22:43:51 <HackEgo> ssue: 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.)
22:45:04 -!- Nisstyre has joined.
22:46:20 -!- lambdabot has joined.
22:46:56 <Vorpal> elliott, he doesn't look new: * ssue has quit (*.net *.split)
22:47:10 <Vorpal> well, not that new at least
22:49:19 <Vorpal> god damn, ~/Images on my laptop is 40 GB
22:49:34 <Vorpal> it is supposed to be like that on the desktop
22:49:43 <Vorpal> well that explains where the disk space went at least
22:49:49 <nortti_> what? that is larger than my HD
22:50:26 <Vorpal> nortti_, I have a 250 GB in my laptop, and like 4 TB (but RAID 1 and dual booting, so 1 TB to linux and 1 TB to windows) in my desktop
22:50:41 <Vorpal> nortti_, anyway how is 40 GB images strange?
22:50:46 <Vorpal> also: what sort of disk do you have
22:51:48 <Vorpal> nortti_, my camera takes 14 MB RAW images. And I convert that into TIFF with 16 bits per channel (I do HDR photo, and panorama photo)
22:52:06 <Vorpal> a typical panorama project will end up at around 2 GB or so
22:52:10 <Vorpal> more if it is HDR as well
22:52:24 <Vorpal> (while non-panorama HDR is usually around 1 GB)
22:52:48 <Vorpal> nortti_, so yeah I'm just wondering why it is on my /laptop/
22:52:52 <Vorpal> rather than my desktop
22:53:13 <Vorpal> nortti_, anyway 30 GB HDD sounds utterly painful
22:54:05 <nortti_> Vorpal: year ago I had 10GB HD. It is relative
22:54:16 <Vorpal> nortti_, you know, my steam directory alone on windows is larger than your HDD XD
22:54:32 <Vorpal> nortti_, what you can buy a new 30 GB HDD?
22:55:02 <tswett> Last-first search. LFS.
22:55:05 <Vorpal> that is only well defined for one search result?
22:55:07 <nortti_> Vorpal: no. it was on different computer
22:55:11 <Vorpal> if the last item is also the first one
22:55:23 <Vorpal> nortti_, you can buy a new computer with a 30 GB HDD!?
22:55:43 <nortti_> Vorpal: I buy my computers used
22:55:53 <tswett> Stores files using Bloom filters. You can never be sure if the file you're looking for exists or not.
22:56:13 <Vorpal> nortti_, unless it is a laptop I just buy components and assemble the computer myself
22:56:21 <Vorpal> nortti_, I really like my current desktop. 16 GB RAM
22:56:34 <Vorpal> nortti_, hey, that is more RAM than your old computer had disk space :P
22:56:46 <Vorpal> also the mobo supports 32 GB RAM. So I could upgrade if I wanted
22:56:57 <Vorpal> to get more than your current disk
22:57:19 -!- david_werecat has joined.
22:57:22 <nortti_> Vorpal: you have 256 times as much ram as I do
22:57:45 <Vorpal> nortti_, you have 64 MB RAM!?
22:58:16 <Vorpal> And you live in Finland according to /whois
22:58:16 <nortti_> Vorpal: yes. does that shock you?
22:58:40 <nortti_> Vorpal: what about me living in finland?
22:58:52 <Vorpal> nortti_, it is not a third world country!
22:59:05 -!- calamari has quit (Quit: Leaving).
22:59:09 <Vorpal> nortti_, 64 MB RAM is as much as my first computer had (a first model iBook)
22:59:17 <Vorpal> that was about 10 years ago
22:59:30 <tswett> I feel like I should have more RAM than I do.
22:59:36 <tswett> I guess that's what money for.
22:59:42 <Vorpal> nortti_, having 64 MB RAM makes no sense. You can't do anything useful with it
22:59:48 <Vorpal> tswett, how much do you have then?
23:00:04 -!- augur has quit (Remote host closed the connection).
23:00:15 <Phantom_Hoover> i would have more rams but i learnt the hard way that you can't trust elliott as far as you can throw him :(
23:00:21 <nortti_> Vorpal: my computer is 12 years old. And I can do a lot with it.
23:00:26 <elliott> Phantom_Hoover: how far can you throw me
23:00:37 <elliott> i'm putting both nortti_ and Vorpal on ignore until they stop talking about computer specs
23:00:43 <quintopia> tswett: i think that has actually been done. use a bloom filter to avoid hitting distant memory (RAM, disk). i guess you're just suggesting throwing out the actual storage part
23:01:04 <elliott> but how will i ever get to alaska now
23:01:04 <Vorpal> btw I think the first component I will upgrade in this computer apart from replacing breaking HDDs (it is slightly less than a year old, so maybe in 2-3 years I will upgrade this) will be the GPU
23:01:06 <shachaf> nortti_: You should get a newer computer!
23:01:16 <Phantom_Hoover> i once threw like 20 pens at someone from a metre behind him
23:01:20 <elliott> shachaf: you will not avoid the ignores
23:01:36 <Vorpal> I'm just not happy with 55 FPS in Skyrim on Ultra (only at some specific places). I want a full 60 FPS!
23:01:38 <shachaf> elliott: Am I on /ignore now :=_(
23:02:18 <Vorpal> <elliott> shachaf: you will not avoid the ignores <-- what did he do?
23:02:23 <nortti_> Vorpal: I have 700MHz Pentium III
23:02:26 <Vorpal> tswett, that is enough for some workloads
23:02:44 <tswett> It is enough for literally everything I have ever done using this computer.
23:02:46 <shachaf> @msg #esoteric nortti_: In order to type-check Agda programs!
23:02:47 <Vorpal> nortti_, argh this is painful. My oldest PC is more powerful than your computer (smaller HDD though)
23:03:11 <shachaf> @msg #esoteric nortti_: In order to type-check Agda programs!
23:03:22 <nortti_> Vorpal: why is it painful?
23:03:23 <shachaf> @msg #esoteric nortti_: In order to type-check Agda programs!
23:03:25 <tswett> For example, playing Eve Online rather slowly.
23:03:40 <Vorpal> tswett, well then. I only have 16 GB because I 1) Panorama photo processing is memory intensive and also 2) want to dual boot windows, and that is because 3) I want to play high end games
23:03:54 <Vorpal> otherwise I would probably have gone for 8 GB
23:03:54 <nortti_> Vorpal: I like to hang here at the low end
23:04:08 <Vorpal> nortti_, also that isn't low end. It is below low end
23:04:19 <tswett> Who's a good manufacturer of desktop PCs?
23:04:27 <Vorpal> Phantom_Hoover, how can you break swap?
23:04:31 <pikhq> nortti_: Low end machines use 2 watts. Yours uses at least 200.
23:04:42 <Phantom_Hoover> well basically i had torrented skyrim to vax's linux partition
23:05:00 <nortti_> pikhq: my machine is a laptop
23:05:01 * tswett Who's a good manufacturer of desktop PCs! You are! Aww, you're the cutest manufacturer of desktop PCs ever! Good manufacturer of desktop PCs! Wuv wuv wuv.
23:05:18 <Vorpal> Phantom_Hoover, oh I thought it was a reference to VAX computers
23:05:38 <Phantom_Hoover> anyway elliott claimed that linux couldn't reliably write a 5GB file to ntfs so he had me repurpose the swap partition for transfer
23:05:46 <pikhq> nortti_: Coppermine?
23:06:05 <Vorpal> nortti_, the least powerful thing that you can currently buy new and is still being produced.
23:06:12 <Phantom_Hoover> it didn't work, i ended up doing a convoluted http transfer through my home wifi with henry, and i haven't gotten around to reformatting swap
23:06:24 <nortti_> Vorpal: I'd call that mid end
23:06:37 <pikhq> nortti_: Your friggin' CPU uses 25 W.
23:06:41 <Vorpal> nortti_, nah mid end is midway between that and whatever is the high end
23:06:43 <elliott> Phantom_Hoover: you don't need to "reformat" swap
23:07:11 <Phantom_Hoover> Vorpal, (the naming scheme is clever because henry and vax are both brands of hoover)
23:07:15 <pikhq> nortti_: You're using "older than low-end and significantly more power-hungry than low-end" stuff.
23:07:22 <pikhq> Vorpal: Pretty sure that's max load.
23:07:42 <pikhq> Vorpal: It's not before the P4 that you start seeing ridiculous power usage. :)
23:08:02 <pikhq> Where you can fry eggs by placing a frying pan on the heat sink...
23:08:04 <Vorpal> <Phantom_Hoover> you said reformat at the time I AM SURE OF IT <-- uh you need to run mkswap to write like a one block header to it
23:08:12 <Vorpal> if you overwrote it that is
23:08:40 <pikhq> P4s go up to... 115W. Shiiit.
23:08:41 <Vorpal> I MUCH prefer it being a reference to VAX computers
23:08:45 <Phantom_Hoover> (i realised you probably wouldn't get it being an inferior swede and all)
23:09:10 <nortti_> Vorpal: I think that nothing currently produced cam be called low end
23:09:11 <Vorpal> pikhq, what does a modern top-end, state of the art Core i7 go up to?
23:09:19 <Phantom_Hoover> when i was looking through brands of hoover for a name i found it and was like omg
23:09:53 <Vorpal> Phantom_Hoover, well, I have a Mile vacuum cleaner here
23:10:09 <pikhq> Vorpal: The *6 core* i7 does 130W.
23:10:25 <Phantom_Hoover> good to know, if i ever have a computer in sweden and/or germany i will call it that
23:10:41 <Vorpal> pikhq, I wonder what consumes most in my desktop. I guess it is either the GPU or the HDDs spinning up actually?
23:10:52 <Vorpal> I have a 4 core Sandy Bridge i7
23:10:55 <Vorpal> let me check which one
23:10:59 <pikhq> Oh, sorry, I lied, that was the last gen 6 core i7...
23:11:12 <pikhq> Oh, it's still 130 W on the current gen.
23:11:23 <pikhq> The more typical ones use rather a lot less.
23:11:33 <nortti_> Vorpal: I have my comfortable lowest machine requirement somewhere between 100MHz Pentium I/40MB RAM and 50MHz 486/16MB RAM
23:11:37 <Phantom_Hoover> I still have no idea if the restarts from DX:HR are an overheat or power problem or what because apparently making a temperature monitor is the most complicated thing in the world.
23:11:40 <Vorpal> wow, great job windows... the System tab in Control Panel broke. Somehow. It lists everything as NaN
23:11:42 <pikhq> On the low end they use 17 W max.
23:11:51 <Vorpal> well, every number that is
23:12:19 <Vorpal> pikhq, mine is 3.4 GHz
23:12:36 <Vorpal> can't check which product name though since windows is spacing out here
23:12:38 <tswett> Lessee. It looks like the best computer HP can give me would cost $3,383.99.
23:12:57 <tswett> Has three hard drives and two Blu-Ray writers.
23:13:02 <Vorpal> tswett, protip: it is probably cheaper to built your own equivalent system
23:13:09 <Vorpal> also who would need two blu-ray writers!?
23:13:18 <tswett> Because who knows when you might want to burn two BDs at once.
23:14:09 <Vorpal> tswett, just converted it to SEK. It is between 2 and 3 times as expensive as my system
23:14:09 <tswett> I could buy this. But my parents would disown me.
23:14:15 <Vorpal> (well, when it was new)
23:14:34 <Vorpal> btw I only have a DVD drive
23:14:43 <Vorpal> don't really see the need for a blu-ray drive
23:14:54 <Vorpal> my laptop has a crazy drive though. It can do DVD-RAM
23:14:54 <nortti_> I have single DVD-R, CD-RW drive
23:15:10 <Phantom_Hoover> they do seem a bit pointless given the existence of torrents
23:15:15 <Vorpal> Phantom_Hoover, indeed
23:15:18 <tswett> Wait, I actually *can* buy this.
23:15:42 <Vorpal> Phantom_Hoover, google it. It is a packet writing based media iirc
23:15:54 <Vorpal> Phantom_Hoover, so you can write specific sectors
23:16:14 <Vorpal> Phantom_Hoover, basically it is formatted into sectors iirc, but don't quote me on that
23:16:33 <Phantom_Hoover> "Can be rewritten over 100,000 times for the lowest write speed discs (DVDRW can be rewritten approx. 1,000 times)."
23:16:51 <elliott> tswett: Don't buy a premade computer, man.
23:16:56 <elliott> Especially a really expensive one.
23:17:31 <Phantom_Hoover> Vorpal will look down on you for one and he's well without facepunching range
23:17:34 <tswett> I will instantly regret any computer purchase I make.
23:18:04 <Vorpal> it is pretty much wasted money
23:18:28 <Vorpal> Phantom_Hoover, anyway rest assured I didn't select the laptop based on the DVD-RAM support
23:18:36 <Vorpal> I discovered that support much later
23:19:20 <Vorpal> and it is not so strange really, it is a thinkpad. And it supports one PC Card + one ExpressCard as well. Oh and Firewire. Yeah it has some rather uncommon stuff
23:19:22 <nortti_> well I don't regret my computer purchases. They are rarely over 15 euros
23:19:52 <tswett> I haven't bought a computer more expensive than 15 euros in about three years.
23:20:25 <nortti_> the tracpoint mouse is awesome
23:20:30 <Vorpal> I tend to buy really good computers when I do buy computers. And then use them until they break or are no longer usable for my purposes
23:20:51 <Vorpal> so I will probably upgrade my desktop in about 5 years time. No idea for my laptop. I don't do such heavy stuff on it
23:21:03 <Vorpal> nortti_, indeed. Also matte screens FTW
23:21:23 <Vorpal> anyway I wouldn't buy a laptop without a trackpoint. Touchpads are terrible
23:21:47 <Phantom_Hoover> ok so less than two weeks before cambridge's "you want to study maths with us? haha fuck you" test i am still unable to reliably integrate ln(ax+b)
23:22:05 <nortti_> Vorpal: also how rugged they are
23:22:22 <Vorpal> nortti_, not much (for the newer lenovo made ones at least)
23:22:27 <Vorpal> (never owned an IBM one)
23:22:53 <Vorpal> If I wanted rugged I'd go for Toughbook
23:23:29 <nortti_> Vorpal: my T20 was uder one of the feet of cr
23:23:34 <Phantom_Hoover> i'd get a raspberry pi and put it in 13 different boxes
23:23:55 <kmc> Vorpal: do you actually have any evidence that they got less durable when Lenovo took over?
23:24:02 <Vorpal> nortti_, chain? chair?
23:24:10 <Vorpal> nortti_, also why would you put it there?
23:24:16 <kmc> i hear this a lot but it usually sounds like nerd hipsters whining about how the early albums were better
23:24:36 <kmc> i'm not happy with some of lenovo's design decisions, but i don't know if the quality has suffered
23:24:37 <Vorpal> kmc, yes. I had to order a replacement part for the palm rest. And the second one got a crack in the same place
23:24:45 <nortti_> Vorpal: previous owner. thought it was completely broken
23:24:46 <Vorpal> not so much that I need to order a new one yet
23:24:46 <kmc> nice anecdotes
23:24:53 <kmc> but did you ever own an IBM thinkpad?
23:24:53 <Vorpal> kmc, well it is my personal experience
23:24:56 <kmc> wait, you said there you didn't
23:24:58 <kmc> so you have no comparison
23:25:05 <Vorpal> I don't have any statistics on it
23:25:34 <Vorpal> kmc, and I know people with IBM thinkpads. And I used them (though never owned them) and they feel more durable. And I never seen them break like that
23:25:53 <kmc> that's all pretty dodgy
23:26:01 <kmc> they "feel more durale" and you've never seen them break, but you don't own them?
23:26:08 <kmc> and obviously you wouldn't see the broken ones
23:26:12 <Vorpal> kmc, It lacks scientific rigour definitely
23:26:34 <Vorpal> kmc, I had one on loan for a few years
23:26:51 <Vorpal> is that enough for you?
23:26:57 <kmc> i dunno, i have this basic contrarian impulse where, if a majority of my peer group believes something, i try to argue against it
23:27:07 <kmc> Vorpal: not really, but I don't think anything would be, so whatever
23:27:15 -!- nooga has quit (Ping timeout: 246 seconds).
23:27:35 <Vorpal> kmc, well it is just annoying. I never claimed I tested for statistical significant results and so on. So don't argue like if I did that
23:27:37 <kmc> i can cite one specific thing lenovo made better though
23:27:59 <kmc> which is that the plug on the end of the power cords has more strain relief now
23:28:04 <kmc> and is less liable to break
23:28:13 <kmc> the old IBM-designed and the first lenovo-designed ones broke all the time
23:28:47 <Vorpal> kmc, oh yeah forgot that. My power cord for this lenovo one (R500, not sure if it is new or old, it lacks the IBM logo though) broke. Near the power supply end
23:28:50 <kmc> i owned an IBM-designed ThinkPad and it had its share of problems
23:28:53 <Vorpal> rather than at the computer end
23:28:54 <kmc> enough anecdotes to match yours
23:29:03 <kmc> laptops break
23:29:06 <kmc> thinkpads aren't magic
23:29:08 <kmc> they are pretty good
23:29:19 <Vorpal> they are better than average though
23:29:27 <kmc> i hope that continues to be the case
23:29:39 <kmc> i'm upset about lenovo throwing out the thinkpad keyboard layout
23:29:42 <Vorpal> kmc, but thoughbooks are better still if you are really handling it rough
23:29:50 <kmc> but they're huge and unwieldy
23:29:58 <Vorpal> kmc, though I know someone who managed to drop a toughbook so that the HDD popped out and broke
23:30:26 <Vorpal> to be fair he works as an ambulance driver and used it in his work. So that is some really tough environment.
23:31:32 <kmc> if lenovo goes to glossy screens only, that's the point at which I will really have to switch
23:31:40 <kmc> i used a glossy screen thinkpad for a few months and really disliked it
23:31:48 <Vorpal> kmc, but what is there to switch to!?
23:31:56 <Vorpal> I have no idea what is left
23:32:56 <elliott> <itidus21> i dunno, i have this basic contrarian impulse where, if a majority of my peer group believes something, i try to argue against it
23:33:27 <Vorpal> kmc, this laptop monitor is 8:5 btw. Nicer than 16:9 at least
23:33:50 <kmc> Vorpal: apple :(
23:33:58 <kmc> but i really hate the company
23:34:13 <kmc> i hate the company but their laptops at least seem to be well made
23:34:15 <Vorpal> <elliott> <itidus21> i dunno, i have this basic contrarian impulse where, if a majority of my peer group believes something, i try to argue against it <-- err wasn't it kmc who said that?
23:34:36 <Vorpal> kmc, oh yeah apple has some terrible lock in going on
23:35:59 <nortti_> I hate apple's iOS devices and poat 2006 macs but I love old macs
23:36:25 <Vorpal> nortti_, I'm going to get a new phone soon. A Samsung Galaxy S3
23:36:37 <Vorpal> the blue variant been delayed though
23:36:42 <Vorpal> otherwise I would have had it already
23:36:51 <Vorpal> (some production issues from what I heard)
23:37:09 <Vorpal> (and I don't want a white phone)
23:37:15 <Vorpal> my current phone isn't even a smartphone
23:37:28 <Vorpal> just a really old Nokia with bits of plastic starting to fall off
23:37:38 <zzo38> What is the best way to do constrast/brightness/gamma by integer arithmetic?
23:37:53 <nortti_> I am going to also get new phone. an old nokia nonsmartphone
23:37:56 <Vorpal> zzo38, for what? Image manipulation?
23:37:59 <elliott> 00:34 <Vorpal> <elliott> <itidus21> i dunno, i have this basic contrarian impulse where, if a majority of my peer group believes something, i try to argue against it <-- err wasn't it kmc who said that?
23:38:28 <Vorpal> nortti_, at least my current phone can run J2ME and has a simple camera built in. Pretty shitty quality though
23:38:39 <Vorpal> should upload an image I took recently. Was pretty funny
23:38:44 <zzo38> Although why should it matter if it is for image manipulation? The same thing should work for audio as well
23:39:28 <Vorpal> zzo38, what does gamma mean for audio?
23:39:30 <nortti_> Vorpal: why not? I find camera+GPRS+J2ME to be all I nees
23:39:59 <Vorpal> nortti_, fair enough. Those phones are certainly smaller and have better battery life
23:40:20 <Vorpal> personally I really need a better phone since I started doing android development
23:40:22 <zzo38> Vorpal: The same thing as with pictures; gamma is the value to the power of some number, etc
23:40:30 <Vorpal> would be nice to be able to test it at home
23:40:55 <Vorpal> zzo38, I guess you could do fixed point calculations?
23:41:01 <zzo38> However with signed audio you would need to also decide what it will do with the sign
23:41:14 <zzo38> (in case of gamma)
23:41:17 <Vorpal> zzo38, but why not use floats?
23:41:37 <Vorpal> zzo38, shouldn't gamma just scale the magnitude?
23:42:29 <zzo38> Vorpal: I want to use integer arithmetic to avoid it being difference by different computers like how TeX also use integer arithmetic for same purpose
23:43:05 <oerjan> <elliott> hey oerjan <-- wat
23:43:11 <elliott> 00:37 <elliott> 00:34 <Vorpal> <elliott> <itidus21> i dunno, i have this basic contrarian impulse where, if a majority of my peer group believes something, i try to argue against it <-- err wasn't it kmc who said that?
23:43:23 <elliott> you know that word that starts with a wo
23:44:20 <elliott> oerjan: you need to say that word to Vorpal, you see
23:45:58 -!- Slereah_ has quit (Read error: Connection reset by peer).
23:46:20 -!- Slereah has joined.
23:46:41 <oerjan> i cannot woosh someone when i'm not sure i guess the meaning correctly myself
23:48:57 <elliott> oerjan: kmc said that earlier.
23:49:01 <elliott> then i quoted it but i replaced kmc with itidus21.
23:49:16 <Vorpal> elliott, right, that makes sense
23:49:48 <zzo38> I only need a table that the value 0 to 255 is mapped to a new value 0 to 255
23:50:08 <oerjan> well i guessed _that_ much. what i'm not sure of is why it is funny.
23:50:33 <Vorpal> oerjan, I see the logic of it now, I don't think it is very funny though
23:50:58 <zzo38> oerjan: It has to calculate during the program because any input could be specified
23:51:27 <oerjan> zzo38: no i mean, just build the whole table of 0 to 255, and include it in the program
23:51:49 <Vorpal> zzo38, why not just do the calculation each step? Is it really that expensive?
23:52:16 <oerjan> Vorpal: he wants it to be more portable than floating point is
23:52:24 <Vorpal> oerjan, so fixed point
23:52:40 <oerjan> i'm not sure that is portable...
23:52:42 <Vorpal> also unless he is targeting embedded system there is zero reason to avoid floating point in this case
23:52:50 <zzo38> oerjan: I know that but it won't work since the input will be the amount of gamma correction or whatever else it is, and this requires to calculate the table for the given amount of gamma
23:53:09 <Vorpal> oerjan, uh? How can bitshifts and integer arithmetic NOT be portable?
23:53:19 <Vorpal> because that is all you need for fixed point
23:53:35 <oerjan> zzo38: oh ok. i misunderstood.
23:53:41 <zzo38> I don't want the program to run differently on different computers
23:53:50 <Vorpal> zzo38, so redo the table when the user change the input values?
23:54:11 <oerjan> Vorpal: yes, but he needs an algorithm for a power routine iiuc
23:54:28 <oerjan> and not just integer powers
23:54:30 <Vorpal> zzo38, are you going to run this on a system that lacks floating point?
23:55:21 <oerjan> Vorpal: portable here means "gives the exact same result regardless of the system's floating point rep"
23:55:49 <Vorpal> oerjan, any self respecting system uses IEEE floating point these days
23:56:23 <zzo38> Vorpal: No. In fact it uses floating point to compress PNG (since it is based on LodePNG), but the rest of the program doesn't make decisions based on that and once decompressed it is the same anyways since it is lossless
23:56:44 <Vorpal> oerjan, you will get the same results on ARM, x86 and x86-64, and really those are the only platforms that matter these days unless you are specifically targeting a specific embedded controller
23:56:48 <zzo38> While with the gamma tables, it is possible for the program to make decisions since the table is exposed
23:56:54 <Vorpal> that is the reality of software development
23:57:36 <Vorpal> if the floating point was broken the compression would not work correctly surely?
23:57:39 <nortti_> Vorpal: don't ppc and mips matter?
23:57:50 -!- ais523 has quit.
23:58:16 <Vorpal> nortti_, these days? not really for mainstream development. And PPC is dead. You might be referring to the Power architecture, which is what replaced PPC
23:58:20 <shachaf> kmc: Wouldn't it be nice if, like, instead of having types, Haskell *only* had typeclasses? And their instances would be *other typeclasses*.
23:58:23 <Vorpal> and that is used in some places yes
23:58:26 <zzo38> Vorpal: The compression is lossless; if the floating point was partially broken you would probably still get a valid PNG file with the correct picture but it would not be optimal compression, I suppose
23:58:41 <Vorpal> nortti_, and in some high end clusters
23:59:10 <Vorpal> nortti_, but mainstream: not really. MIPS might matter slightly more, but it is far less popular than ARM
23:59:17 <nortti_> Vorpal: powerpc is dead? freescale still manufactures ppc processors
23:59:26 <Vorpal> nortti_, really? Who uses them?
23:59:42 <Vorpal> nortti_, I know the ISA is used in the Power core of the Cell CPU (as used in PS3)
23:59:42 <zzo38> This program in TeXnicard it is not only for personal microcomputers, it is for companies who print cards as well (although they won't necessarily use it, it is intended to be available for them)