00:00:16 according to the article on comoving distance, the "actual" distance "right now" is the proper distance, not the comoving 00:00:23 ohhh. the 13 billion is "light travel distance" 00:00:25 Maybe instead of writing a Hylisk-to-C compiler in Hylisk, I should write it in a language that already exists. <-- i wonder how many people have written the first compiler for X in X, and then compiled it by hand to get the first actual implementation 00:00:38 kmc: i hope geofft isn't talking about guests staying over.............. 00:00:50 probably just knuth and some older people 00:00:55 oerjan: Yes, I also want to wonder about such thing 00:00:59 shachaf: ? 00:01:03 I have thought of it too 00:01:11 just a pointless pun 00:01:16 :) 00:01:17 (that was another pointless pun??) 00:01:21 (help) 00:01:35 *simulated it by hand 00:01:41 * Fiora tries to figure this out >_< 00:01:44 ooh wikipedia links to wikisky.org 00:01:49 not to be confused with wikiwhisky.org 00:02:05 i've done the same thing in my head, at least 00:02:10 for very simple compilers 00:02:31 this sky is smoky with a mild aftertaste 00:03:28 the comoving distance of the farthest known object is 32 billion light years 00:03:30 that's pretty far 00:04:04 Bike: "Comoving distance and proper distance are defined to be equal at the present time hence the ratio of proper distance to comoving distance now is 1." 00:04:19 so comoving distance is just proper distance scaled to "how big the universe is now", I think? 00:05:18 http://en.wikipedia.org/wiki/UDFj-39546284 @_@ 00:05:35 Buddhist physics "the universe is one" 00:06:03 Fiora: right, though i don't really understand that so well 00:06:17 wow, what a useless thing to say, bike 00:06:49 http://upload.wikimedia.org/wikipedia/commons/2/22/Hubble_Extreme_Deep_Field_%28full_resolution%29.png 00:06:52 * Fiora stares 00:07:11 * shachaf stars 00:07:18 23 day exposure time... 00:07:53 nobody sneeze 00:08:04 I like the deep field images because they look like a collage or a bad artist's impression or something 00:08:09 because there's just so much stuff piled together 00:08:57 I like all the colors... 00:09:05 colors are great 00:10:34 I wonder if there's a way to set vim to treat the file as being an infinite plane. <-- are you familiar with :set virtualedit? 00:11:38 Infinite with or without an edge? 00:11:42 Or two edges? 00:11:52 it only works rightwards, i guess. 00:11:53 Come to think of it, you could have three edges 00:13:22 Bike: http://en.wikipedia.org/wiki/Diffraction_spikes oohhhhhh that's why there's always those spikes on stars in astronomical photos 00:13:35 "They are artifacts caused by light diffracting around the support vanes of the secondary mirror. Refracting telescopes and their photographic images do not have the same problem." 00:15:03 I prefer to believe it's because stars are sparkly 00:15:15 and then it wins in line count on all the challenges. <-- iirc the benchmarks game compares _compressed_ source size, which i doubt befunge will do particularly well on 00:15:16 yeah geez fiora, next you'll be saying stars don't actually twinkle. 00:15:31 I I just thought it was interesting :< 00:15:32 -!- yorick has quit (Read error: Connection reset by peer). 00:15:35 @tell Ghoul_ and then it wins in line count on all the challenges. <-- iirc the benchmarks game compares _compressed_ source size, which i doubt befunge will do particularly well on 00:15:35 Consider it noted. 00:16:16 So wait, it elides much boilerplate? 00:18:49 i am filled with a sudden urge to read His Master's Voice again 00:18:54 astronomy always makes me think of that. 00:21:40 Sorry I still don't quite understand how to make that encoding of less cost efficiently, for some reason, even though you explained it to me. 00:24:04 I thought I understood but somehow I don't. 00:25:15 Do you have a example of an existing program which includes such an algorithm? 00:25:33 no, i have just thought up the algorithm right now 00:26:35 Sometimes it can be easier to understand some things if it is written like a computer program, since that is more precise than ordinary words. 00:31:18 Bike: 00:31:19 "Cygnus X-1 was discovered using X-ray instruments that were carried aloft by a sounding rocket launched from White Sands Missile Range in New Mexico. As part of an ongoing effort to map these sources, a survey was conducted in 1964 using two Aerobee suborbital 00:31:23 rockets. The rockets carried Geiger counters to measure X-ray emission in wavelength range 1–15 Å across an 8.4° section of the sky. These instruments swept across the sky as the rockets rotated, producing a map of closely spaced scans." 00:31:45 pretty 00:31:45 x-ray astronomy started with /carefully aiming geiger counters on top of a sounding rocket/ 00:31:51 just wow 00:34:50 oerjan: Maybe someone else knows a similar thing though? 00:36:39 zzo38: probably 00:37:01 (Many algorithms are try to explain like a pseudo code, which often works better than the explanation just by only English sentences. Sometimes it is even done both, and if it is a real code then it might be literate programming.) 00:37:59 oerjan: If you just made up now, do you know that it is correct? (If not, then maybe it isn't me that isn't understanding it.) 00:39:19 -!- hr_ has joined. 00:39:28 hi Sgeo, how's it going 00:39:41 Solve my puzzles! 00:39:42 i like that this is a thing http://en.wikipedia.org/wiki/Liquid_mirror_telescope 00:39:43 Do you have the pseudo code of it? 00:39:54 Sgeo: You have some puzzle? 00:39:56 Sgeo: are they crypto puzzles? 00:40:10 No, sorry :( 00:40:10 http://creaturescaves.com/index.php?view=1134 00:40:56 Sgeo: why does a mirror reflect things left-to-right but not up-to-down 00:41:37 Because left and right are relative to orientation whereas up and down are not? 00:41:57 ? 00:42:21 I have a different answer to that question; I have also seen some others too but mine is different to that too. 00:42:25 Turn. Left and right have changed. Stand on your head. Up and down have not changed. 00:42:38 "Isaac Newton noted that the free surface of a rotating liquid forms a circular paraboloid and can therefore be used as a telescope, but he could not actually build one because he had no way to stabilize the speed of rotation" newton you freak 00:42:39 zzo38: I'm not fully sure if my answer is accurate 00:42:53 Sgeo: That sounds like a thing which has to do more with your definitions than with anything else. 00:43:12 Forget about gravity etc., and say that up is the direction your head is pointing. Or something. 00:43:30 You still have this issue. I have a shirt with some text on it, I step in front of a mirror, the text is flipped right/left. 00:43:54 "However, research is underway to develop telescopes that can be tilted." out of context this is actually hilarious XD 00:44:27 how stable does it need to be? big flywheel is no good? 00:44:30 some things are just beyond human knowledge 00:44:59 how would you use a flywheel to keep liquid rotating around a nongravitational axis? 00:45:14 i meant re: Newton 00:45:21 oh 00:45:27 I guess newtn didn't really have motors 00:45:40 i think it needs to be pretty darn stable to be better than mirrors 00:46:22 ok 00:46:36 :t let states = [0..2]; addCharCost charCostMap costs ch = [ minimum [ costs !! s1 + charCostMap s1 s2 ch | s1 <- states ] | s2 <- states ] in addCharCost 00:46:36 (Num t, Ord t) => (Int -> Int -> t1 -> t) -> [t] -> t1 -> [t] 00:46:47 Lots of magnets 00:47:24 that is one of the proposals yeah 00:47:26 Well, if you had an electrically charged liquid you could make a spherical mirror 00:47:44 I wonder if you could do um... a ferrofluid mirror? 00:48:20 If you want mirrors shaped like http://en.wikipedia.org/wiki/File:Ferrofluid_Magnet_under_glass_edit.jpg 00:48:29 -!- sprocklem has quit (Remote host closed the connection). 00:48:31 .... 00:48:32 http://en.wikipedia.org/wiki/Ferrofluid_mirror 00:48:34 it's a thing 00:48:39 The mirror also reflects forward/backward because each thing has the same distance to the mirror in the image (presumably), such as a paper placed at a right angle to the mirror. If you then stand backward, it is rotated to how it looks correctly, just as if you look through a paper to the words on the other side, or if you have in front of you correctly then the mirror of the other side is also the correct order! 00:48:51 they're apparently used in adaptive optics? 00:49:05 But if you put a mirror above you, then the "forward" is actually up/down, so it will be apparently "up/down" reversed instead. See? 00:49:10 yay ferrofluids :D 00:49:28 This is what I think is the reason for the mirror reflect things left-to-right but not up-to-down. Do you think so, or not? 00:50:23 -!- ^v has joined. 00:50:28 <^v> ^_^ 00:51:39 Because if you look at the back of a paper and with enough light you can see the words on the other side through it, then it is also mirrored. Just like, if you look through something it is the other side, but you are looking at it through the other side through the axis of the mirror. 00:52:01 "Ferrofluid mirrors are commonly used" -- there exists one research group doing it 00:52:11 i love ferrofluid 00:52:19 and magnets and monoids and hugz 00:52:22 <^v> ferrofluid = fun 00:52:34 * Fiora hugs kmc 00:52:38 :t let states = [0..2]; addCharCost charCostMap costs ch = [ minimum [ costs !! s1 + charCostMap s1 s2 ch | s1 <- states ] | s2 <- states ]; stringCost charCostMap startState (c:cs) = foldl' (addCharCost charCostMap) [charCostMap startState s c | s <- states] cs in stringCost 00:52:39 (Num t, Ord t) => (Int -> Int -> b -> t) -> Int -> [b] -> [t] 00:52:42 zzo38: ^ 00:52:51 :D *hugs back* 00:53:00 it's awkward when you hug someone and they don't hug back........... 00:53:07 <^v> i remember lambdabot :D 00:53:11 oerjan: O, thank you. 00:53:19 hi ^v 00:53:26 -!- douglass_ has quit (Ping timeout: 240 seconds). 00:53:49 that's why it's good to hug huggy people! 00:53:51 zzo38: was a bit awkward to get it started because the costs from a state to another are not well defined for an empty string 00:53:54 @hug kmc 00:53:58 * lambdabot hugs kmc 00:54:03 is that new? 00:54:08 * kmc hugs lambdabot back 00:54:21 fsvo new 00:54:54 zzo38: also that's probably not optimal haskell (e.g. !!) so consider it like a pseudocode 00:55:47 oerjan: Yes, that's OK. My program is in C anyways; I just wanted a code because it might be understandable better than something that isn't. So, a code in Haskell is OK too. 00:58:06 "There was an old woman who swallowed a spider, / That wriggled and jiggled and tickled in cider" 00:58:14 So thank you for that I will use that. 00:58:46 zzo38: Did you mean to put some punctuation in that sentence? E.g. "So thank you for that. I will use that." 00:58:54 Otherwise it's kind of hard to to read. 00:59:44 shachaf: I suppose so. 01:05:30 -!- conehead has quit (Quit: Computer has gone to sleep.). 01:08:00 shachaf: as zzo38 mentions, a mirror actually reflects forward/backward. it's just that the human mind reanalyzes this as a rotation about a vertical line through the mirror (which is a physically plausible thing to do) followed by a left/right reflection (which is not physically plausible, but probably because of human body left/right symmetry still an intuitive operation.) 01:08:07 imo. 01:09:25 oerjan: imo that's true but incomplete 01:09:29 basically, a human image in the mirror looks _almost_ like it's just a human standing rotated around a mirror vertical "axis". 01:09:38 the elevators in this building are covered in mirrors and have super unflattering light and the only way to avoid staring at yourself is to stare at the advertising screen 01:09:43 well played elevator people 01:10:20 oerjan: that puzzle is this: i'm wearing a shirt with some text on it. i stand in front of the mirror. the picture i see in the mirror is definitely reflected left/right 01:10:37 i.e. if i refect it along that axis i'll be able to read it 01:10:51 kmc: imo defeat them with narcissism 01:11:39 shachaf: well but you cannot read your shirt _without_ a mirror, right? without a mirror you would want to take it off to read it easily, essentially performing the rotation. 01:12:40 oerjan: ok let's keep my shirt on for this exercise 01:12:56 http://en.wikipedia.org/wiki/Bummer_and_Lazarus famous dogs of san francisco 01:13:09 oerjan: let's say we have a sign 01:13:28 that is, the picture you see is definitely reflected left/right corresponding to what an actual person in front of you would look like - but an actual person in front of you looks approximately like you rotated around the vertical axis between you (but unreflected) 01:13:47 it says IO. i put it up to the mirror and i read OI. 01:13:50 As a team they turned out to be exceptional, once finishing off 85 rats in 20 minutes 01:14:38 <^v> oerjan, you dont say? 01:14:40 the way i've heard it explained is that it's not really a left right rotation,a s you can tell from making "L"s with your fingers 01:14:53 oerjan: actually i think you have m. or l. the same answer in mind as i do 01:14:58 but are expressing it differently?? maybe 01:15:05 ^v: i do. now i just have to get shachaf to understand it :P 01:15:36 hey, i understand it!! 01:15:50 ok i guess oerjan is saying approximately the truth 01:16:40 Chirality hth 01:16:44 -!- CADD has joined. 01:17:42 Bike: i like to thin of a cut out sign, rather than a sign printed on paper or something 01:17:48 which is p. much the same thing 01:17:54 yay! 01:19:08 oh wtf there is too much log to read today. 01:19:12 * oerjan closes 01:19:18 wow oerjan 01:19:22 what if there was an olist update 01:19:47 then it would have to have been hid inside your quoerjans, i assume 01:20:01 Actually I think the reason for the left/right reflection is simply because it follows the rotation about a vertical line; symmetry of your body doesn't necessarily have anything to do with it (although I suppose it helps with the "illusion"). 01:20:02 since that was all i could find searching for my nick. 01:20:16 `quoerjan 01:20:18 1036) i vaguely thought sigbovik was all jokes? oerjan: jokes written by CS people, so none of it's funny, just sad 01:20:31 that's not even a good quote 01:20:39 also it's more of a quike than a quoerjan 01:20:44 indeed, you should stop doing `quoerjans hth 01:20:54 `quachaf 01:20:56 531) elliott: GHC bug? Come on, it's the parentheses. The more parentheses you add, the closer it is to LISP, and therefore the more dynamically-typed. \ 605) VMS Mosaic? I hope that's not Mosaic ported to VMS. Hmm. It's Mosaic ported to VMS. \ 615) * Sgeo|web wants to see elliott be wrong about 01:20:59 oerjan: Bike: harsh 01:21:05 I think SIGBOVIK is pretty funny 01:21:11 wow that's r. bad 01:21:19 kmc: hey i wasn't the one saying it wasn't funny 01:21:42 when is a bike not a bike 01:22:44 kmc: how long do you have to not write any rust before you can say you're """"""""rusty" 01:23:42 ... 01:23:48 should I write a JIT for FRACTRAN 01:24:33 FRACTRAN? 01:24:37 it's like a JIT but for FRACTRAN 01:24:42 yes 01:24:45 Why not write an EARLY instead 01:25:13 a NEARLY 01:25:24 imo write a JTL 01:25:35 CLC-INTERCAL uses a just-too-late compiler 01:25:35 a day late and dollar short compiler 01:25:38 or some variation on that name 01:25:39 good 01:25:44 ATF 01:25:45 also it's really crazy 01:26:00 it's this incomprehensible mix of perl and bootstrapped compiler involving weird bytecode and stuff 01:26:40 kmc: imo you should write a jit that jumps to unmapped pages and then compiles code into them in the page fault handler 01:27:06 good 01:27:46 Send it to lkml 01:28:33 CADD: How did you come across this channel? 01:29:01 shachaf: magic :) 01:29:49 Naturally. Which magic? 01:29:57 more magic 01:30:03 Of my interest in esolangs. 01:30:13 OK. 01:30:21 and search engines 01:31:02 Even if you use a camera which is capable to picture a mirror then according to the orientation of the camera it will be a picture of the camera with the X coordinate reversed, regardless how the camera is pointing. 01:32:04 The picture can then be easily reversed again to the correct orientation using the computer, so you will have the proper picture of the camera. 01:40:45 My answer to the question of why mirrors flip things left-to-right is that they don't. 01:41:07 tswett: that answer is correct but incomplete 01:41:22 If you're wearing a T-shirt, how come the beginning of the text appears to be on your right in the mirror, and the end of the text appears to be on your left? Because the beginning of the text really is on your right, and likewise. 01:42:06 Yes, it is true. 01:43:56 I have explained all of these thing too. 01:44:11 So currently I'm trying to implement Hylisk in too many languages at once. 01:44:18 Haskell, Idris, and Hylisk. 01:44:42 I think I'll switch to doing it in Idris only. 01:46:48 CADD: Which esolangs interested you, or in general, or ? 01:48:29 zzo38: oh man, there are so many 01:49:54 CADD: That is correct. But do you know what things resulted in your interested in esolangs? 01:50:22 zzo38: it is a general interest, seeing how far you can push the idea of what it means to be a language. 01:50:58 well there are all the standard esolangs like BF and unlambda, thats what originally got me interested 01:51:23 after that it was really all over the place, i think the esolang wiki is a great resource 01:52:29 I also like INTERCAL. 01:52:59 Duff also write a article about prehistory of esoteric programming. 01:53:20 im actually on the wiki right now, let me see if i can find some of my favorites.. 01:53:34 ive heard a tiny bit about intercal 01:53:39 what is it about? 01:56:02 oh man, im reading the wiki page 01:56:07 it looks pretty bad 01:56:15 it's a very polite language! you have to say please. 01:56:22 I think it also had COME FROM 01:56:59 wow, apparently google even has a style guide for it? 01:57:49 -!- conehead has joined. 01:59:55 <^v> yep :D 02:00:41 it's an old joke. 02:03:58 `seen ion 02:04:02 2013-07-26 16:33:46: Oh, wasn’t #esoteric-nonblah for that? 02:05:18 Useless. It should tell you *how long ago*. 02:09:44 We forgot to welcome CADD 02:09:50 `relcome CADD 02:09:53 ​CADD: 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.) 02:10:07 OMG! XD 02:10:12 i love it! 02:10:13 Sgeo: I didn't. 02:10:22 thats true! 02:11:24 -!- Bike has quit (Ping timeout: 240 seconds). 02:13:53 -!- Bike has joined. 02:15:21 `seen shachaf 02:15:26 2013-07-27 02:10:13: Sgeo: I didn't. 02:45:15 What is the minimum number of clues that has to be selected in Jeopardy! before your score is unrecoverably non-positive? 02:47:02 (Assuming only one player (you) ever does anything, you give incorrect responses for the first N clues, you give correct responses for the rest of the clues, and you always bet the maximum allowed for daily doubles) 02:47:29 -!- Bike has quit (Ping timeout: 246 seconds). 02:49:38 -!- Bike has joined. 02:56:16 -!- CADD has quit (Ping timeout: 264 seconds). 03:01:43 -!- sacje has joined. 03:02:13 20:01 No, that doesn't look right. Fix it, please. 03:02:30 -!- hr_ has quit (Remote host closed the connection). 03:02:34 what doesn't 03:19:10 -!- doesthiswork has joined. 03:20:02 -!- carado has quit (Ping timeout: 246 seconds). 03:21:52 -!- doesthiswork has quit (Quit: Leaving.). 03:22:24 -!- sprocklem has joined. 03:22:29 -!- sprocklem has quit (Remote host closed the connection). 03:26:49 -!- carado has joined. 03:30:15 -!- nooodl has quit (Ping timeout: 268 seconds). 03:34:44 -!- carado has quit (Ping timeout: 246 seconds). 03:39:04 oerjan: It is the optimal list of state transitions I want to calculate, not the cost, though. 03:44:54 zzo38: very well then, keep the list of transitions with the minimum cost to get there... 03:46:54 -!- sacje has quit (Ping timeout: 240 seconds). 03:47:59 -!- sacje has joined. 03:48:59 or, for each step n, as you calculate the cost for each state, include the previous state in the optimal path to it. 04:00:57 <^v> :D 04:01:01 <^v> its now my birthday 04:02:23 `run echo HAPPY BIRTHDAY ^v | colorize 04:02:24 bash: colorize: command not found 04:02:34 what did they rename it again 04:02:40 <^v> lol 04:02:50 `run ls bin/*rain* 04:02:52 bin/rainbow \ bin/rainwords 04:03:03 `run echo HAPPY BIRTHDAY ^v | rainbow 04:03:05 ​HAPPY BIRTHDAY ^v 04:03:10 <^v> :D Ty 04:06:17 that's a sad rainbow 04:06:27 but irregardless, happy birthday ^V! 04:07:01 <^v> lol 04:07:42 itym irreguardless hth 04:18:59 maybe 04:19:30 I think I'm losing track of all the acronyms 04:20:51 i've never had track 04:20:56 just been imitating them markov-style 04:21:02 hth 04:21:09 haha 04:21:12 <3 04:23:56 i'm drinking ``ChocoVine'' 04:24:04 it's a mixture of red wine and chocolate syrup 04:24:08 ``uh oh'' 04:24:20 but is it good 04:24:26 "I bought something called Choco-rite Protein and you know that's good because the name sounds like a parody of food" 04:24:31 it's........... better than you would expect 04:24:41 how do you know what i'd expect 04:24:48 DOGTV - Welcome to DOGTV The First Television Channel for dogs 04:24:58 i've never even had wine (should i have wine (i like grapes and stuff is that like wine)) 04:25:00 because of the river hu 04:25:09 except i forget the name of the river and also how that actually goes. 04:25:18 have you ever had fruit thats gone fermented 04:25:28 like what 04:25:32 anything 04:25:39 grapes, pomegranate, 04:25:46 i've had grapes and pomegranates 04:25:47 darn, hao, not hu. 04:25:52 i don't think they were fermented 04:26:01 you lived in israel for n years and you never had wine? 04:26:05 That apple you forgot to put in the fridge for a month 04:26:09 kmc: crazy huh 04:26:13 anyway you should try wine sometime, it's p. good 04:26:26 i did turn wine down at various occasions including the celebratory kind 04:26:29 tomorrow we could buy a bottle of wine and split it, it's a friendly thing to do 04:26:29 (mostly that, really) 04:26:33 cathy doesn't like wine :/ 04:26:45 is that a euphemism for breaking the glass 04:26:51 is splitting the bottle like splitting the atom 04:27:05 you just break the glass and then try to kill each other with the shards. 04:27:13 shachaf is splitting hairs. 04:27:22 Bike: never bring a gun to a wine fight 04:27:56 Jafet didn't acknowledge my pun :'( 04:28:02 20:06 * dmwit looks forward to the blog post: "My bug cost my company $300 of prototyping plastic" 04:28:05 20:06 Is that, like, a few pounds of plastic 04:28:08 20:07 about ten kilograms 04:28:10 20:07 Jafet: It's 195.02 pounds of plastic at the current exchange rate. 04:28:13 is that because it was bad 04:29:14 in retrospect probably 04:29:24 I'm afraid it was such a good pun that I didn't notice it 04:29:51 you're such a good pun that i didn't notice you :'( 04:30:07 GBP ain't what it used to be 04:30:21 USD ain't what it used to be, neither 04:30:36 prolly so 04:30:42 oh! mass or money 04:30:44 i got it!! 04:31:53 your GP or your HP! 04:32:57 Or your ?P! 04:33:17 * Fiora hadkoens kmc 04:33:19 *hadokens 04:33:36 Now CNY, that's how you fly 04:34:08 Some keep XAU, that's fine too 04:34:21 But PHP is NOK. 04:39:36 :O 04:39:43 * kmc ducks 04:44:33 Tremulous vs Natural Selection 2 04:44:38 I feel kind of torn 04:45:06 NS2 has a commander on each team, reminds me a bit of Allegiance 04:45:43 oerjan: Thank you it works! 04:49:27 -!- CADD has joined. 04:51:43 zzo38: you're welcome 04:52:01 * oerjan swats Jafet for comparing PHP with NOK -----### 04:52:54 <^v> i will never use php again 04:53:01 <^v> lua webservers > all 04:53:42 ^v: lolol haskell webservers > lua webservers > all 04:53:50 -!- conehead has quit (Quit: Computer has gone to sleep.). 04:53:58 ^v: The HTTP service included in Synchronet uses JavaScript for server-side programs (Synchronet also uses JavaScript for BBS door programs, and for other things) 04:54:36 <^v> xD 04:54:52 But I suppose with the correct software, you can make a server which is using Lua scripting, Forth, C, C++, or whatever. 04:54:55 <^v> asshell isnt as good as lua 04:54:59 <^v> xD 04:55:17 is that the best joke you could come up with? :P 04:56:15 (Synchronet can also use DOS programs and native programs for BBS door programs, but I think server-side scripting of webpages in Synchronet is JavaScript only.) 04:56:32 haskell blows lua out of the water. 04:56:39 <^v> ive made with lua: irc bot, irc server, http server, minecraft rcon, pretty much everything possible in computercraft, making a unnecicarily powerful love2d script to controll random things in MC 04:56:47 both in language merits and community size.. ;) 04:56:57 hey now no troll flame wars 04:57:07 Sure you can make many things, with many programming languages. 04:57:09 My community is bigger than yours 04:57:35 Haskell and Lua are for different ways so they are good for different purpose; Lua may be good for imperative and Haskell for functional, for example. 04:57:42 true facts: http://sogrady-media.redmonk.com/sogrady/files/2013/02/lang-rank-Q113-big.png 04:57:58 but ok, i wont stir anything up 04:58:35 i really love that chart, its probably one of my favorite visualizations. 04:59:08 i wonder what would cause a language to deviate from the line a lot. 04:59:22 well i have my own theories 04:59:35 so the bottom half have more code than people talking about them 04:59:44 and the top has more people talking than coding 04:59:56 so you have the far outliers like vimL 05:00:05 which are "utility" langs 05:00:15 same with elisp 05:00:23 "Utility" langs? 05:00:52 Common Lisp is very down too though. 05:00:58 yes, i pulled that one right out of my ass. :) but i think it is an apt description. 05:01:12 right, the further down you go the less that correlation holds 05:01:15 Bike: the fact that the two rankings don't match linearly 05:01:35 that is treu too 05:01:37 true* 05:02:21 Also, this scale is only for Stack Overflow and GitHub. For example, on OpenCores there is probably a lot more Verilog and VHDL programs than C programs and so on. 05:03:06 well, yeah thats opencores for you. you would expect that 05:03:25 Yes, it is expected. 05:03:33 you can say haskell is underrepresented because of the heavy use of hackage and cabal 05:03:45 Yes, things like that too. 05:03:53 -!- oerjan has quit (Quit: Eine kleine Nachtmusik). 05:04:03 but i think the neatest thing about the graph is the 3 clusters 05:04:30 to make an analogy to the situaion in the 1st, 2nd, and 3rd world countries, the same goes for languages 05:04:33 Yes, I guess probably it is. 05:04:55 this graph just really shows it very well 05:05:11 I'm not sure if I want to live in a first-world language. 05:05:21 lol, yeah they are all boring 05:07:32 There are some other programming languages I sometimes use and didn't see in there, such as Csound and SQL, and it says "Assembly" but doesn't really mean for what computers it is an assembly language of. 05:08:40 right, since its based on githubs language categorization 05:08:46 There are no dots next to the words. 05:09:55 CADD: How good is GitHub's language categorization? 05:09:59 shachaf: do you think that would that be vertical or horizontal categorization? 05:10:15 zzo38: you can see for yourself. 05:10:48 lol i dont mean that in a snarky way, just a sec. im pulling up a page 05:10:50 Also, there is Visual Basic Classic and Visual Basic .NET; they didn't mention that either. 05:11:05 CADD: I didn't expect you to mean that in a snarky way. 05:11:14 (It just says "Visual Basic".) 05:11:40 hmm, i remember there being a page with all the languages github supports.. 05:11:55 https://github.com/languages 05:11:57 But it doesn't suppport SQL? 05:12:15 i dont think so 05:12:42 CADD: What? 05:12:56 You can't put SQL on that chart, because it would overlap with the PHP label. 05:13:13 shachaf: we were talking about githubs "language categorization". 05:13:44 Jafet: Overlap how much? I don't really expect it to. 05:14:04 (especially since there is two axis.) 05:16:11 Jafet: Do you even have the data? Would the number of programs and number of discussions both match that of PHP? 05:23:27 That was "a joke" 05:23:59 OK, then, because I didn't believe it anyways. 05:26:53 The github ranking is based on what language a github program thinks a subset of your repository is written in 05:27:12 It's p. reliable 05:28:43 That question I asked of oerjan, it is about encoding text in Z-machine format. Infocom never implemented this algorithm (and instead used only temporary shifts), leading Graham Nelson to believe that there are no permanent shifts in version 3. But I know how the Z-machine really works and implemented it properly. 05:29:29 Jafet: Still, they have a lot of programming langauges and yet they still forgot SQL? 05:30:30 Basically, yes. 05:33:23 zzo38: What do you think of hugs? 05:34:03 shachaf: I don't know? 05:35:27 kmc: so do you have any tomorrowplanz 05:35:28 -!- doesthiswork has joined. 05:35:48 otherwise i'll p. show up in sf "sometime" 05:35:48 not really 05:35:52 yes that's fine 05:36:06 i have some computerthings to do sometime during the day but i d. think it matters exactly when 05:37:29 so i could presumably show up in sf and stare at a laptop screen for a bit (seems to be a popular thing to do around where you live) and see 05:44:59 Show up in science-fiction. 05:45:38 yeah it's a popular activity 05:45:45 you can say that you're ``co-working'' 05:49:12 -!- sprocklem has joined. 05:50:45 is that the dual of working 05:51:14 maybe so 06:02:48 When founding a startup, remember the most important thing: colocation, colocation, colocation 06:19:50 kmc: remember when were all, like, "you probably all think i'm a huge stoner but really i only [inhale the fumes of a burning cannabis plant] once every few months" 06:20:13 -!- ^v has quit (Read error: Connection reset by peer). 06:20:21 i don't 06:20:26 that might say something about me 06:20:38 it was a while ago. in #-blah, i think 06:20:41 ok 06:20:46 i might not be remebering the exact quote 06:21:04 maybe it was "a few times this year" or something 06:21:10 I prefer to inhale the fumes extracted by passing hot air over a cannabis plant which is not actually burning 06:21:13 but yeah 06:21:46 I didn't smoke weed very often from 2008 to last month 06:21:50 mostly on some visits to Caltech and SF 06:22:12 and now everyday? 06:22:24 most days? 06:23:25 http://www.youtube.com/watch?v=QEzhxP-pdos high 06:23:48 yes 06:25:36 balls 06:28:08 kmc: how high are you right now on a scale of dead sea to mt everest 06:28:22 «Euophrys omnisuperstes, a minute black jumping spider, has been found at elevations as high as 6,700 metres (22,000 ft), possibly making it the highest confirmed non-microscopic permanent resident on Earth.» 06:29:38 «In 2008 a colony of bumble bees were discovered on Mount Everest at more than 5,600 metres above sea level,» 06:29:59 shachaf: I drank some ChocoVine, that's all 06:32:17 -!- mnoqy has quit (Quit: hello). 06:37:23 Bike: http://arxiv.org/abs/1307.1409 okay these are awesome and amazing wow 06:37:30 -!- conehead has joined. 06:37:54 so like, the equation of state for neutron stars basically lets them be a little bit more massive without collapsing, as long as they're rotating 06:38:00 but magnetic braking will cause them to slow down 06:38:32 so neutron stars in that mass range will one day slow down just enough that an event horizon forms at their core... 06:38:37 and 0.15 milliseconds later, disappear 06:40:56 oops. 06:41:00 but magnetic field lines can't cross the event horizon 06:41:08 so suddenly the neutron star magnetic field is caught without, um, a neutron star 06:41:34 so while the neutron star will disappear silently, you have like, a field of a billion or more tesla snapping 06:41:59 which produces this super short but rather loud radio burst 06:42:51 o_O 06:43:17 does it sound like a numbers station 06:43:23 fucking universe 06:43:28 I think it sounds like a boop with a quick ringdown afterwards? 06:43:41 -!- sprocklem has quit (Remote host closed the connection). 06:43:48 boop *volume larger than planet earth disappears* 06:44:03 but the neutron star is only like, 15km in radius! 06:44:06 that's not that big. 06:48:45 Oh. 06:48:54 So only everybody I've interacted with in the last several months. 06:49:01 <.< 06:49:08 I guess that's ok then 06:49:09 Bike: imo move to california 06:51:07 * kmc -> bike -> pointless 07:04:48 http://en.wikipedia.org/wiki/Shapiro_delay oh wow. they can use this to measure the mass of neutron stars 07:08:27 http://arxiv.org/abs/1010.5788 eeee oh gosh now I want to spend all night reading these 07:09:26 i'm spending the night reading scp foundation articles apparently 07:09:34 i think you may have made the superior decision 07:10:22 does supramassive mean the same as supermassive or really small or what? latin prefixes are hard 07:10:39 "not very massive, honestly" 07:10:53 it means supermassive, i.e. above the limit? 07:12:31 okay, I just sort of vaguely remembered that supra was the opposite of super but I guess I misremembered 07:12:39 I'm not sure >_< 07:12:42 i thought the same thing 07:12:44 I just know what it meant in the article 07:13:04 -!- doesthiswork has quit (Quit: Leaving.). 07:13:19 well if they're not opposites then that's good. because "supermassive" and "supramassive" meaning the opposite thing despite being spelled and pronounced really similarly would just be ridiciulous. 07:13:48 @wn supramassive 07:13:50 No match for "supramassive". 07:14:51 oh, it's "above" 07:15:57 ʳᵃᵐᵃˢˢⁱᵛᵉ 07:16:08 ᵉʳᵐᵃˢˢⁱᵛᵉ 07:16:10 hth 07:22:03 glaciers melting in the dead of night 07:22:20 my previous ACTION is a lie; I have been detoured to lexande's apartment 07:22:27 oh shit 07:22:41 hi lexande's apartment 07:23:13 it's called "convox" 07:24:47 -!- zzo38 has quit (Remote host closed the connection). 07:36:02 -!- MindlessDrone has joined. 07:55:01 -!- conehead has quit (Quit: Textual IRC Client: www.textualapp.com). 08:01:14 -!- Taneb has joined. 08:03:17 -!- Bike has quit (Ping timeout: 248 seconds). 08:08:25 -!- dessos has joined. 08:13:52 -!- douglass has joined. 08:26:07 morning 08:27:35 Hi, Vorpal 08:28:40 hi Taneb 08:29:09 shachaf, am I allowed to just start reading OotS from where it is now without bothering to read the archives? 08:29:47 Taneb: Probably not the best way to do it. 08:29:51 I mean, you're allowed to. 08:30:00 Because I tried to read it before and couldn't get into it 08:30:15 The beginning is very different. 08:30:22 It started out as D&D jokes. 08:31:07 Maybe the first 50-100 strips or something? 08:32:12 I might have some completionist tendencies, though, so probably adjust what I say to account for that. 08:38:40 http://boingboing.net/2013/07/26/uk-censorwall-will-also-block.html UK censorware will block "esoteric material" 08:42:27 :O 08:42:28 D: 08:43:06 ...web forums? 08:43:15 That seems ridiculously broad 08:43:18 "web blocking circumvention tools' 08:43:22 You mean like ssh? 08:49:30 -!- epicmonkey has joined. 08:53:20 yay, i have a new ""profile picture"" 08:57:03 oh? 08:58:15 possibly just temporary 08:59:19 hm. funny, though. the usual story is that, once a blocking infrastructure is in place for naughty (or even illegal) things, it's just a hop, skip, and a jump to general censorship. 08:59:38 this is a lot more efficient. 09:09:03 "suicide related websites" like suicide support charities? 09:10:03 Hmm, where should I change my profile picture to make it visible? 09:10:23 -!- douglass has quit (Ping timeout: 240 seconds). 09:44:54 -!- CADD has quit (Quit: Lost terminal). 09:45:54 -!- MBEFDC has joined. 09:46:48 -!- MBEFDC has quit (Remote host closed the connection). 09:52:14 -!- epicmonkey has quit (Ping timeout: 240 seconds). 09:52:55 -!- mnoqy has joined. 09:59:43 Deewiant, I'm looking at the TURT test output, is it supposed to set the background to #000001?? 10:02:31 Deewiant, because that is what I'm seeing in the N call 10:03:29 -!- MBEFDC has joined. 10:04:52 Deewiant, makes it very hard to check that it works correctly, especially if you don't output vector graphics like I do (and thus can just open it up in inkscape and remove the background) 10:04:59 Deewiant, since the pen colour is the same! 10:07:19 -!- MBEFDC has quit (Remote host closed the connection). 10:08:52 -!- Sgeo has quit (Read error: Connection reset by peer). 10:09:52 -!- Sgeo has joined. 10:14:01 hi shachaf. hachaf. 10:14:18 I’ll be back in a bit. 10:27:22 -!- CADD has joined. 10:27:37 -!- CADD has changed nick to Guest31302. 10:28:06 -!- Guest31302 has quit (Client Quit). 10:34:13 -!- sacje has quit (Ping timeout: 248 seconds). 10:41:36 -!- sacje has joined. 10:48:01 Vorpal: Yeah it seems to call everything with (the appropriate number of) 1s on the stack to check that they pop the right amount of values 10:49:26 -!- sacje has quit (Ping timeout: 246 seconds). 10:51:38 Deewiant, might be worth considering changing that, it would be horrible to check the current output if you use bitmap graphics 10:52:10 Deewiant, might even help ensure someone doesn't mix up RGB if you use some other colour than #001 10:52:34 Yeah, it's kinda crap right now 10:53:55 -!- sacje has joined. 11:06:07 -!- clog has joined. 11:12:38 -!- carado has joined. 11:12:52 -!- carado has quit (Client Quit). 11:17:25 -!- carado has joined. 11:36:46 Played around a bit with LTO. No measurable speed difference that I can see in my case. About 2-10% smaller executable for an LTO build compared to a non-LTO build with otherwise the same flags 11:37:02 About 2% with -O3 and about 10% with -Os 11:37:06 Using GCC 4.8 11:42:58 -!- yorick has joined. 11:45:14 Clearly your enterprise library interfaces were not nested deeply enough 11:46:30 Jafet, quite so, I only use libc, librt, libncurses. All of them linked dynamically 11:47:43 Jafet, also the executable is still below 200 K in all cases. 11:48:13 Unless I enable debug info of course 12:00:08 -!- carado has quit (Ping timeout: 246 seconds). 12:02:19 Isn't 200 K like -73 degrees celsius 12:02:34 Taneb, yeah my software is really cool 12:08:02 In other news, I think now may be a good time to get dressed 12:08:10 Before I have to use any of Vorpal's software 12:09:55 TANEB AWAY 12:09:55 -!- Taneb has quit (Quit: Leaving). 12:12:54 mushspace pretty much needs LTO because it doesn't use macros for even the smallest things unless necessary 12:13:32 So it has functions like add(int x, int y) { return (int)((unsigned)x + (unsigned)y); } 12:13:37 What is mushspace? 12:13:52 It's my Funge-Space library 12:13:59 Unfinished 12:14:06 Oh? What are your plans for it? 12:14:16 Well, to finish it :-) 12:14:23 I mean, what to use it for 12:14:30 It's pretty much the one in CCBI2 translated to C and improved in lots of ways 12:15:00 When it's done I'll write a new interpreter, probably also in C 12:15:52 Anyway, I should see at some point just how much faster it'll be without LTO if I turn that kind of stuff into macros 12:15:56 Might be amusing 12:16:17 Deewiant, Also I found a somewhat serious bug by fuzz testing, I seem to not properly handle at least one case of malloc returning NULL. 12:16:28 Not sure where yet, it is somewhat tricky to debug 12:17:26 -!- FreeFull has quit (Quit: rebooting). 12:17:29 How are you testing that? 12:20:49 -!- FreeFull has joined. 12:21:46 Deewiant, with ulimit + fuzz test script that invokes valgrind as one step 12:22:16 I have a define that enables an alarm()-call in main() to handle terminating the program after 3 seconds. 12:22:39 Oh, ulimit in linux makes malloc return null? 12:22:54 Deewiant, yes, at least in some cases 12:23:18 Do you use random ulimits or do you just have some known small value 12:24:16 Deewiant, atm I just assign 128 MB to the various memory limits, since I was actually trying to test STRN rather than malloc, it just happened to hit some sort of massive stack it appears in the randomly generated program. 12:24:30 I have used random values in ranges for it before though 12:24:54 (Since there is a minimum that makes sense, if ld.so fails to load stuff due to memory limits, that is of no interest) 12:26:33 Deewiant, Right, fixed that memory leak. Turned out to be a realloc call assigning without checking for NULL first, leading to a memory leak detected by valgrind 12:27:12 Anyway, I haven't figured out a good way to not also apply the ulimits to valgrind as well, I guess I could add them into the cfunge main() though... 12:31:12 Can't you just have valgrind run a shell script that sets ulimits and exec's cfunge? 12:31:29 fizzie, Does valgrind follow that hm 12:31:51 I don't want stuff from the shell messing up 12:31:54 I'd think it follows exec's, given that it follows forks too. 12:32:09 fizzie, so I won't get leak reports from the shell? 12:32:38 Apparently you need a --trace-children=yes for it to follow across exec. 12:32:55 Hm 12:33:11 Or you could make a program that calls setrlimit and runs cfunge. 12:33:13 There's also a --trace-children-skip which "can be useful for pruning uninteresting branches from a tree of processes being run on Valgrind". 12:33:44 I guess that doesn't work, though, since it wouldn't follow the children of the skipped shell. 12:33:50 Jafet, or since I have an alarm() call inside an ifdef in it anyway I could just add the setrlimit call there 12:34:31 You just need a small perl script to prune the reports about the shell process 12:35:13 Or shell script 12:35:30 I mean you can use a shell script to do it 12:36:03 Any shell script that parses text is, by construction, going to be a wrapper around another script 12:37:10 Hm when I set the rlimit in main() it still seems to affect valgrind??? 12:37:16 That will need some investigation 12:40:00 If you set a limit on your executable's process, which is the valgrind process, it affects the valgrind process, which is your executable's process. 12:41:19 Jafet, oh right, valgrind runs the instrumented process inside itself, doesn't it... 12:41:23 Well crap 12:41:29 Hm 12:41:54 I guess I will just put it at a sufficiently high number to not make a mess of the system if it runs out of control 12:42:36 For purely the malloc-returns-NULL testing, you can always opt for a wrapper malloc. 12:42:48 Well yes, but that is somewhat more annoying 12:42:57 Anyway I use mmap directly in a couple of places iirc 12:46:05 It's conceptually simple, valgrind/memcheck is just a virtual machine for malloc. 12:49:18 Hrrm 13:04:06 ...I was preparing for an automated testing system that'd use a fixed random seed and try to get fungot-babble to misbehave, and testing with nc -l 6667 about what sort of interaction I'd need to provide... when I got the bug to manifest, with a random seed of 0, on my first comment. 13:04:06 fizzie: there is an html file 13:04:15 I should probably see if that's repeatable. 13:05:49 fizzie, oh did you do that now? 13:05:59 Awesome discovery 13:06:19 It is indeed repeatable. 13:06:39 Well then, should be somewhat easy to debug. 13:07:08 And if I skip one completely inconsequential line (a ^style without arguments) it no longer happens; probably because it changes the state of the input buffer. 13:07:25 And I just got it to segfault somehow 13:07:28 Hm 13:07:39 I have a NULL stackstack 13:07:41 Interesting 13:07:47 fungot: where's the html file? 13:07:47 olsner: when we told him that ' fnord by the odd syntax i just invented 13:12:27 fnord fungot fnord fungot fnord 13:12:27 Jafet: that would be of no use to anyone. and i also share some ideas with italian fascism but those generally also fall under the term marxism... 13:13:49 Right, something goes wrong when I have >3300 threads, then I end up with a NULL stackstack on IP 3320 or so 13:18:33 Having three thousand (nptl) threads does tend to coincide with being wrong 13:18:42 Jafet, these are user space threads 13:19:02 Jafet, Having 3000 funge threads is pretty wrong too though 13:19:25 Rightly so. 13:19:49 Jafet, but it is a randomly generated program from fuzz testing, so these things shouldn't be surprising 13:19:59 Besides I should be able to handle malloc returning NULL 13:20:23 Your funge program can malloc? 13:20:30 No ATHR so no actual threads :-/ 13:20:33 Jafet, no my funge interpreter does 13:20:45 Deewiant, there is some experimental support for it in efunge 13:21:10 Don't you implement the malloc fingerprint 13:21:30 I didn't know that existed. RCfunge one? 13:21:37 I'm pretty sure I don't implement it 13:21:40 That sounds like something you can detect with grep. 13:21:44 Yeah, I forget what it's called 13:22:01 I do of course have some fingerprints that need to malloc internally, but none that is explicitly for mallocing 13:22:05 EMEM 13:22:11 Nope, don't implement that 13:22:32 Why is the stackstack 0 when the *stack* is non-zero 13:22:38 -!- sacje has quit (Ping timeout: 240 seconds). 13:23:07 (the ip contains a direct pointer to the active stack 13:23:08 ) 13:23:12 echo **/*.c | grep malloc -A1 | grep -v NULL 13:23:33 Jafet, might me a realloc that is failing, I don't know 13:24:23 Hm the stack is 23268 entries. Not bad 13:26:18 I found a memory leak though, but it doesn't explain what I'm seeing 13:26:43 -!- nooodl has joined. 13:30:32 -!- sacje has joined. 13:31:36 Deewiant, I have been thinking about another possible pseudo-async-threads idea that would be easier to implement btw. Basically have a fingerprint that modifies stuff like SOCK that can block so that other concurrent-funge threads will continue to run while that is blocked. 13:31:57 I believe it is similar to what python ends up doing 13:41:10 Deewiant, hm, if t fails due to out of memory, should the program just exit? I seem to remember it something was supposed to reflect on OOM but I can't find it in the spec atm 13:42:02 Oh it was { that could do that 13:42:03 Right 13:54:30 From some preliminary investigations, it would seem that the babbling code -- occasionally, when the generated string is overlong -- accidentally pops off the "current position in input buffer" value. 13:54:35 Though for some reason there's the value "1730" under it, I don't know what that number is. 13:56:01 fizzie: It's 17*100 + 30 13:56:23 A real debugger to run this in would be nice. 13:56:33 fizzie, it is also 2*5*173 13:56:41 fizzie, gdb works 13:56:55 I guess, but a more funge-oriented one would still be better. 13:57:08 fizzie, etc/example.gdbinit has some helpful stuff 13:57:36 fizzie, or you could use the debugger in ccbi, as far as I remember it was kind of okayish, though far less useful than gdb in general 13:58:13 Hmm, I suppose brkcell would be mostly what I need. Or I guess the brkinst also works for undefined instructions? 13:58:35 fizzie, Pretty sure it does, remember you need debug symbols 13:59:00 fizzie, anyway did you actually end up executing an undefined instruction? 13:59:41 fizzie, you can also use -W and -E to cfunge to show warnings and non-fatal errors 13:59:57 Not enabled by default since they would affect standard conformance 14:00:24 Vorpal: No, I was just thinking of using an undefined instruction as a "source breakpoint" thing with that gdb brkinst. 14:00:24 1730_10 = 11011000010_2 14:00:34 fizzie, oh yeah that would work 14:00:42 (Since then I don't have to compute the y offsets manually.) 14:03:35 Actually, I think I'll just use 'z', since I don't have any real z's. 14:04:46 I'm having a very strange memory leak here on OOM 14:05:51 I'm leaking exactly 1 stack, 3 opcode stacks and one stackstack. Very strange 14:06:21 Vorpal: I'd reflect whenever possible, including on OOM 14:07:00 Deewiant, Hm. I went with the fatal error instead in this case 14:07:44 I don't think the interpreter should ever die if it can avoid it 14:08:24 In this case, it is hard to avoid, I tried doing that before which caused a sigsegv a bit later instead 14:08:48 Why would you segfault because of that? 14:09:48 In this case because the IP list had already been extended but the IP ended up with an invalid stackstack. I can try to handle all these yes, but it would be really annoying. 14:10:50 Huh, seems that the 1730 is from a mostly-benign stack bug, where a no-argument ^style leaves an extra "1730" on the stack, under the current-input-buffer-index that's supposed to stay there. 14:10:54 Yes, doing things correctly can be annoying :-P 14:11:07 -!- Nisstyre-laptop has joined. 14:11:14 I think I should perhaps fix that first, before proceeding on the babble-bug. 14:11:18 Deewiant, in most languages you wouldn't have the option not to exit 14:11:19 It doesn't /really/ matter though, feel free to fail, I just don't think it's the best way 14:11:26 Deewiant, thinking of most high level languages here 14:11:50 Vorpal: Lots of them have out of memory exceptions or whatever 14:11:53 fizzie, Isn't it the 1730 that is causing the issue? 14:12:15 Deewiant, Haskell? 14:12:22 I didn't know haskell had that for example. 14:12:24 Nor scheme. 14:12:40 Very much doubt erlang has it, though I am not sure. 14:12:43 Vorpal: You said "most languages", I'm just saying there are lots of counterexamples 14:13:05 Functional languages tend to be the type that don't have it in their spec, yes 14:13:09 Vorpal: No, the issue is that the whole current-input-buffer-index value has been popped off the stack accidentally by the babble code. (The 1730 is related in the sense that it's what is then used as the input buffer index, breaking things badly.) 14:13:24 Deewiant, Well I said most high level languages. Which means something a bit above C++'s OOM exception 14:13:27 In GHC they could add an out of memory exception for everything if they wanted, I guess 14:13:41 But the ^style handler is a lot smaller than the babbling code, so I'll fix that first. 14:14:05 fizzie, fair enough 14:15:23 Oh, it's just the number of the line after the last style. 14:15:32 Ah 14:15:37 Vorpal: Shrug, lots of languages have it and I guess lots don't, but you could also add it as an option (custom exception type or a special handler that is used only if the user defines it, or the like) in lots of the ones that don't... 14:15:40 The list of available styles has apparently been loaded at y=1728. 14:15:50 (Because "ccc**" is easy to spell, and quite out of the way.) 14:15:51 Deewiant, true 14:16:00 Vorpal: Befunge has the nice generic "instruction failed" error in the form of reflection, so I think it should be used whenever possible 14:16:18 Deewiant, that doesn't work for t though, since the parent thread reflects anyway 14:16:24 Deewiant, and the issue in this case was in t 14:16:44 Vorpal: Sure it works, the parent thread can wait for the child to confirm that it exists 14:16:52 That or mess with y 14:16:59 Or with IIPC or whatever else 14:16:59 Most programs probably don't though 14:17:11 IIPC, which I don't implement 14:17:15 Sure, most programs don't check for malloc(1) failing either 14:17:22 Er, 2* 14:17:32 3 surely? 14:17:36 Or it's 3 only isn't it, mmap is both 14:17:38 Whatever 14:17:40 malloc() anyway 14:18:18 Point being that I think the option should be there even if nobody actually uses it 14:18:26 Hm 14:19:41 Vorpal: How do I ask gdb for the character at (x,y) in fungespace? 14:20:11 sec 14:20:15 You write the C expression that produces the character at (x,y) in fungespace 14:20:29 You write a befunge plugin for gdb 14:20:37 fizzie, call fungespace_dumparea(minx,miny,maxx,maxy) 14:20:54 Vorpal: 'hanks. 14:20:57 fizzie, there is also fungespace_dump and fungespace_dump_sparse 14:21:01 No fungespace_get? 14:21:34 Deewiant, sure, but that takes a struct funge_vector 14:21:35 cfunge, a gdb plugin 14:21:47 Deewiant, which is somewhat annoying to invent on the command line iirc 14:21:51 I never figured it out anyway 14:22:15 You just need a make_funge_vector 14:22:32 fizzie, I also have stack_dump(funge_stack*) (if you have the IP you could do stack_dump(ip->stack) 14:22:51 Jafet, vector_create_ref is a macro alas 14:22:58 #define vector_create_ref(a, b) (& (funge_vector) { .x = (a), .y = (b) }) 14:23:12 This is why you make everything a function instead of a macro! 14:23:13 Last I tried (over a year ago) that syntax didn't work in gdb 14:23:13 Okay, that's also slightly nicer than my current manual looking at ->top and ->entries[0]. 14:23:24 -!- doesthiswork has joined. 14:23:34 And then say "unless your compiler has good LTO the end result will be unusably slow" 14:23:36 That's a good way to get a pointer to a funge_vector. 14:23:42 fizzie, there is a stack_print_top that prints the top 5 elements as well 14:23:59 fizzie, anyway entires[0] would be the bottom of the stack. 14:24:05 fizzie, it grows up not down 14:24:15 Yes, I noticed. 14:24:21 -!- stuntaneous has quit. 14:24:35 fizzie, you know, adding a debugger is on my TODO, just never got around to it 14:24:48 I won't make any promises either. But maybe at some point yes 14:25:18 Would mean adding readline/libedit and what not (I couldn't live without line editing personally). 14:26:54 Vorpal: rlwrap 14:27:17 Deewiant, doesn't actually work that well in my experience. Nothing close to the real deal. 14:27:26 -!- doesthiswork has quit (Ping timeout: 240 seconds). 14:27:46 Shrug, I haven't had any problems 14:28:15 Maybe I'm not a heavy enough readline user :-P 14:32:15 Vorpal: Oh, seems that the extra 1730 was actually my fault; had forgotten that the styles.list needs to be terminated by a line that has a single \0 at start. (Now it tried to STRN/G an empty line, and that reflected, and I hadn't expected that G to reflect.) 14:32:38 Vorpal: (If you want to keep that fungot testing environment you did, you should probably also append a \0 at the end of the styles.list I described.) 14:32:38 fizzie: direct your self-loathing elsewhere! 14:32:50 (And yeah, it's kind of brittle code.) 14:32:52 fizzie, ah 14:33:00 (See? Nobody does error checking) 14:33:09 Oh well, back to actually figuring out the real problem. 14:33:14 Deewiant, XD 14:33:22 fizzie, can you still reproduce the real issue? 14:34:14 It might reproduce a bit differently, but it should still get confuzzled. 14:34:16 fizzie, I will be pushing a bunch of minor fixes (mostly fixing clang warnings and OOM handling) shortly btw. 14:34:19 Will see. 14:34:55 Also LARGE_IPLIST will now be default. 14:34:56 Vorpal: Are you building with -Weverything? 14:35:15 Deewiant, Is that a real clang option? I think I'm building with -Wall or some such 14:35:38 Aww, it no longer actually crashes. But it still does a wrong. 14:35:39 Vorpal: -Wall is like GCC's -Wall in that it enables a large set of common and useful warnings or whatever 14:35:45 Right 14:35:46 Vorpal: -Weverything enables every single -Wfoo option 14:36:02 I like to use -Weverything and then -Wno-foo the ones I don't care about 14:36:05 I think I'll stick a fixed big number under the current-input-index value so that the crash is more spectacular, for debugging. 14:36:06 I don't do anything special for clang wrt. warnings. Only for GCC 14:36:23 Mostly because there is no built in cmake define to check if you use clang 14:36:32 fizzie, nice 14:37:10 -Weverything will probably give you a huge pile of warnings but after a few -Wno-foos for the super-common and not-too-problematic ones you might be left with just some useful ones that -Wall missed 14:37:28 Deewiant, huge pile is an understatement XD 14:37:55 Probably more than it's willing to output, I guess it stops printing them after 100 or whatever 14:38:06 per file right? 14:38:06 -Wsigned-conversion or something like that tends to fire a lot 14:38:13 Per clang invocation I guess 14:38:14 Deewiant, Also I get some warnings from a really common header. For every file. Oh well 14:38:24 Vorpal: It's a bit annoying for debugging that with the brkinst 'z' breakpoint in place, generating one line of babble takes half a minute. 14:38:47 fizzie, that is due to how gdb does it I'm afraid 14:38:57 fizzie, which is breaking, checking and continuing 14:39:36 fizzie, you could add a check in the code, or break on the line where z is handled (interpreter.c, function execute_instruction, for me it is line 179) 14:39:55 fizzie, so that "case 'z'" there would work if you broke on that 14:40:00 should be a lot faster 14:40:31 fizzie, other than that, there is little that can be done to fix gdb 14:41:38 Yes, I guess I could do that. 14:42:28 fizzie, other than optimize the code so you have fewer instructions being executed of course 14:43:02 The breakpoint-on-the-"break;"-line is blazing fast. 14:43:47 fizzie, well of course, it doesn't have to break and switch to gdb on every executed funge instruction 14:50:02 Deewiant, you know, for me using ninja is almost less efficient than using make. 14:50:20 Why's that 14:51:05 Deewiant, The reason is that the build time is so low anyway, and typing make is faster (one letter shorter and alternating hands for the letters), than typing ninja in the terminal (all but one letter of ninja is with the same hand) 14:51:32 heh 14:51:39 nin :-p 14:52:14 Deewiant, I need at least mak or nin, and then we get back to the alternating hand issue again 14:52:56 Of course typing make is just as fast as mak, if not faster 14:53:02 "nin" is pretty easy with one hand IMO, since you can keep one finger at n 14:53:29 I told gdb to break execute_instruction if (ip->stack->top < 2), let's see if it finds me the instruction responsible for popping off the input position value. 14:53:37 (It's been running for two minutes or so.) 14:53:39 "tup upd" is the worst, of course 14:53:47 Deewiant, depends on the keyboard I guess, a bit harder with an ergonomic one for it to not end up shifted away. I have a MS Natural keyboard 14:54:02 fizzie, that will be slow for the reason mentioned before yes 14:54:12 Deewiant, yes that is pretty bad indeed 14:54:46 Deewiant, anyway that is why I think darcs never got popular. svn, git, bzr, cvs and even more so hg are all easier to type 14:54:55 darcs is all left hand 14:55:14 heh 14:55:26 Deewiant, and don't even speak about monotone 14:56:45 That's why it changed to arch then, I guess 14:57:21 A wise decision (that I didn't know about) 14:57:40 position = {x = 57, y = 232} aha, there's the culprit. 14:57:48 fizzie, oh? 14:58:02 What was the issue? 14:58:23 Well, I don't know *that* yet, of course, just the particular instruction removing that value. 14:58:45 Which is... a $ in the code shared for all output, so I suppose I need to dig deeper to find the actual cause. 14:59:21 fizzie, you should be able to break on funge space access too btw, though it would suffer the same slowness (if not worse): break fungespace_get if position-> == 123 && position->y == 345 15:00:07 fizzie, if that value below the input buffer is accessed, I guess that would help? Unless you mean that it was on the stack? 15:00:25 ^style nosuchstyle 15:00:25 Not found. 15:00:28 It's on the stack, yes. 15:00:30 ^style 15:00:31 Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube 15:00:58 fizzie, I guess you could set a watch-point on the address in ip->stack->entries? Maybe? 15:01:16 ip->stack.entries[n] that is 15:02:53 fizzie, actually you would need to set two breakpoints I believe... fungespace_get and fungespace_get_offset, the latter taking two vectors (you would thus need to check on the sum, or put the breakpoint after the sum has been calculated already) 15:03:03 Well, I mean, I did already find the instruction that is responsible for dropping it, with that top < 2 break; just have to figure out why. Presumably at the $ there should be something *else* on the stack that has been accidentally dropped by an earlier instruction, which I could catch by watching for top < 3 after it's been put on. 15:03:03 I have no idea why one doesn't just call the other 15:03:13 Assuming I can just figure out from the code what should be on stack there. 15:03:45 Ah 15:04:02 I just keep getting interrupted here. 15:04:10 hm? 15:04:42 (I mean, here at home.) 15:04:52 Ah 15:05:09 fizzie, calling signal(SIGINT, SIG_IGN) might help 15:06:50 According to my documentation, the purpose of this one variable the code is looking at is "temp". So helpful. 15:07:02 ouch 15:07:38 funge really is a write-only language 15:09:28 Oh, hey. I think I might have found the culprit. This code that checks for an overlong message (and truncates it) looks like it has a different stack effect for the "is too long" path than the "is okay" path. 15:09:57 It'd be nice if it's here, because this is a reasonably small piece of code. I didn't really relish the thought of trying to read the babble generator. 15:11:51 Write-only is fine, just rewrite the program when you find a bug 15:14:18 -!- fungot has quit (Remote host closed the connection). 15:14:46 -!- fungot has joined. 15:14:51 (Bug fixed.) 15:15:02 is this The Bug 15:15:20 The "replies even when not spoken to sometimes" bug, yes. 15:15:33 rip creativity :( 15:15:49 fungot: You've just had a virtu-lobotomy; how do you feel? 15:15:49 fizzie: the reason that your expression evaluates to a list then call/ cc becomes fnord, not about the blood that doesn't have bachelor's degrees? 15:16:23 If you're having a blood transfusion, remember to check that the blood has at least a bachelor's. 15:17:41 Hm, is there a way to basically do #define x constant ## VALUE_OF_OTHER_DEFINE? 15:18:23 #define x cat(constant,other) 15:18:29 Ah, right 15:20:13 Deewiant, that did not work hm 15:20:15 why 15:21:28 Deewiant, so it it actually possible? 15:22:08 #define cat(a,b) cat2(a,b) 15:22:11 #define cat2(a,b) a##b 15:24:15 Right, thanks 15:28:37 That thing which you said yesterday that nobody needs or something ;-P 15:28:57 Deewiant, was it? I thought it was a bit different, but oh well XD 15:33:47 -!- doesthiswork has joined. 15:37:30 doesthiswork, it doesn't 15:39:44 that's too bad 15:45:42 -!- sacje has quit (Ping timeout: 264 seconds). 15:53:40 -!- sacje has joined. 15:55:55 Vorpal: Anything interesting from -Weverything? 16:17:18 -!- mnoqy has quit (Quit: hello). 16:17:39 Deewiant, not really, just implicit casts mostly 16:18:01 Deewiant, and all of them were intended 16:20:14 -!- sacje has quit (Ping timeout: 240 seconds). 16:20:44 -!- sacje has joined. 16:21:49 -!- epicmonkey has joined. 16:23:31 The fixedpoint theorem in lambda calculus seems false 16:25:34 it says that for every function a fixed point exists, but if for many functions there is no constant fixed point 16:30:57 @src fix 16:30:58 fix f = let x = f x in x 16:31:02 qed 16:33:35 yes I know the fixed point combinator. but I get contradictions when I try and use the resulting fixed point as a constant 16:34:13 -!- stuntaneous has joined. 16:35:28 -!- zzo38 has joined. 16:43:43 for example \.a(a \.b( \.c( c ) ) \.d( \.e( d ) ) ) 16:44:13 it has no fixed fixed point. so when I at like it does, strange things happen 16:45:31 *act 16:47:03 That's because it's not scott continuous, duh 16:48:05 -!- conehead has joined. 16:51:28 \a. a \b. (\c. c) \d. \e. d? 16:51:38 it finds you the least fixed point where "least" is defined in a lattice of progressively more-defined values 16:51:45 sometimes the least fixed point is ⊥ 16:52:01 there are standard notational grouping rules 16:54:52 ?pl \a -> a (const id) const 16:54:52 flip ($ const id) const 16:56:45 well, more \a -> a (const (id const)) 16:57:05 λλλ 16:57:37 I wasn't sure how that groups 16:58:21 in either case, a reason why this fixoint is ⊥ is because it never produces any value, or any expression spine, so to speak... 16:58:42 :t fix id 16:58:43 a 16:58:48 :t fix id (const (id const)) 16:58:49 t 16:59:17 Gracenotes: thanks for the notation help 16:59:20 where something like factorial, it at least yields an if statement before immediately jumping into a recursive call. 16:59:32 (or not) 17:00:16 kmc: is R = R->P equivalent to bottom? 17:01:24 what kind of expression is that 17:01:52 it is the fixed point of λx.(x⇒P) 17:02:17 R is the fixed point 17:02:33 what is ⇒? 17:02:53 A rightwards double arrow 17:03:07 x⇒P means P is provable given x 17:03:20 I know what it means in logic 17:03:27 but what are you using it to mean in the lambda calculus? 17:03:36 there is no primitive notion of ⇒, you have to define it 17:03:45 lambda calculus isn't being used computationally, I don't think 17:03:46 here 17:03:49 (and if you take it as a primitive, of course results for the standard lambda calculus might not apply to your system) 17:04:50 people love it because beta-reduction either diverges or is strongly normalizing, although maybe not in the face of all of these extensions... dunno 17:05:25 -!- Bike_ has joined. 17:06:52 bike / kmc: here is a cool thing! http://arxiv.org/pdf/1306.6047v1.pdf 17:06:57 you still need a way of reducing ⇒, where it be for computing or proving 17:06:59 -!- Bike_ has changed nick to Bike. 17:07:07 it's a paper where they analyze why interpreting python is hard/slow and some ways to speed it up and a custom python interpreter 17:07:25 There is no problem with unlimited fixed points at all, well, unless you don't really want to prove false 17:07:34 fancy 17:07:44 Proving false is pretty great though, you should try it 17:07:52 cool 17:07:53 like 17:08:05 "However, due to the possibility of encountering an overloaded __add__ method, no assumptions can be made about the behavior of BINARY_ADD. In the general absence of type information, almost every instruction must be treated as INVOKE_ARBITRARY_METHOD" 17:08:23 But I can still make fun of python gil right 17:08:37 yeah, figures 17:08:37 yes, you can *always* do that 17:08:40 I want a grandfathered license to make fun of python 17:09:09 they do all kinds of super cool things like the whole direct-interretation looping and recompiling the code to work on a register machine 17:09:15 *interpretation 17:09:51 Basically, they take advantage of the fact that most python code is actually java. 17:09:54 Elliott: I got it from john shutt's blog. He's using lambda calculus to manipulate symbols and then using the results. 17:10:28 as logic formulas 17:10:43 that quote about __add__ reminds me of scheme 17:11:00 shutt has a blog? 17:11:53 http://fexpr.blogspot.com/2013/07/bypassing-no-go-theorems.html 17:12:17 I wonder how this relates to PyPy 17:12:22 maybe the paper would tell me 17:12:40 That would involve reading it right 17:12:53 the difference they explain is that basically the big problem is that the cpython API (used to make extensions, I think), exposes a huge amount of the interpreter's internals 17:13:01 and like, you can't even change the memory layout of objects without breaking source compatibility 17:13:10 so like, pypy is fast, but it can't be used with those extensions 17:13:12 um, ew. 17:13:18 and if you want to make the extensions work, your hands are kinda tied? 17:13:36 (so their paper is about like, I think "what we can do if we don't break compatibility"?) 17:13:43 yeah I read the first page... so I guess the problem is essentially "python's extension API is really awful" 17:13:48 one of the main strategies for dealing with this is just rewriting your extensions in pure Python 17:13:53 yeah sounds like the API here is bad 17:14:04 because they were written in C originally only for speed 17:14:07 pypy kind of makes a deal with the devil, in that sense 17:14:11 yeah, the problem is they explain the API is one of the main reasons people use python >_< 17:14:30 "Fry, it's time for you to make a metaphorical deal with the devil. And by devil I mean robot devil, and by metaphorical I mean get your coat." 17:15:24 I wonder if you could do something really ridiculous like sort of translate C extensions back into Python with FFI calls automatically so that they're fiddling with the objects on a language level 17:15:34 and then just JIT that 17:15:36 okay that sounds impractical 17:15:50 JIT everything forever 17:16:11 "I know, I'll use JIT." 17:18:35 Still waiting for JTL compilers 17:19:11 Jafet: http://etoileos.com/news/archive/2009/07/23/2218/ 17:19:14 elliott: that sounds reasonable 17:19:26 basically you make the JIT itself take on the burden of translating to the legacy CPython API 17:19:55 I have used ctypes to call the CPython API from Python before 17:20:03 /it's/ /the/ /best/ 17:20:20 Pythons all the way down 17:20:48 ride the snake seven miles 17:21:03 maybe you could combine it with one of those things that takes python code and automatically generates C extensions for it 17:22:04 kmc: well, the idea is like, the problem is that all the pokey stuff you can do to the object model requires things to be inefficient to support it especially because it seems like you're accessing struct fields of the objects directly and stuff? 17:22:25 But your python code is fast, so it evens out 17:22:27 so if you instead turn that into Python code which messes with __dict__ and stuff then you alleviate the problem because you no longer have to keep the exact same memory layout 17:22:37 and then "hopefully" the JIT can smooth out the horribly inefficient stuff it wants to do 17:22:44 but it sounds like you'd probably run into a lot of problems 17:23:48 hm I didn't know about this attack until today http://stackoverflow.com/questions/3008139/why-is-using-a-non-random-iv-with-cbc-mode-a-vulnerability 17:24:00 You could just compile the C code into python 17:24:18 CBC mode sux :< 17:29:04 imo CTR mode 17:29:21 Best use for sequential IVs? 17:29:42 imo ECB ””mode““ 17:29:58 no state, no problem 17:30:32 What if the state wants to get you 17:30:48 ecb mode might be less great in that case 17:31:17 What if the state considers you a problem 17:34:10 what if the snake considers you a problem 17:35:55 What if the snake considers you a program 17:38:59 -!- Nisstyre-laptop has quit (Quit: Leaving). 17:40:38 deterministic encryption algorithms are insecure 17:41:07 all an attacker has to do is determine the intiial conditions of the universe! come ON, people 17:43:23 how many bits is that iv 17:44:48 probably at least like, twelve?? 17:46:08 of course, block ciphers are deterministic (they have inverses) 17:51:06 -!- FreeFull has quit (Remote host closed the connection). 17:53:28 -!- FreeFull has joined. 18:04:48 You assume the universe is deterministic. I am not so sure. 18:05:30 WEP uses only a 24-bit IV..... 18:06:41 yeah CTR mode is good; it makes one wonder why we bother with making these block ciphers invertible anyway 18:06:51 djb also wondered that and invented Salsa20 18:08:51 hard to do disk encryption with ctr mode 18:09:04 -!- Bike_ has joined. 18:09:15 -!- Bike_ has quit (Client Quit). 18:09:32 -!- Bike_ has joined. 18:10:44 (But even if the universe is deterministic, it takes too much time to recover the result you are looking for anyways.) 18:11:53 -!- Bike has quit (Ping timeout: 240 seconds). 18:11:54 shachaf: v. true 18:13:23 -!- Bike_ has changed nick to Bike. 18:19:31 @messages-loud 18:19:32 oerjan said 2d 20h 9m 15s ago: i do not think it is always possible to find the contents of a backflip program by running it from chosen edges. in particular if you have a region bounded entirely by 18:19:32 inwards pointing arrows you will never be able to say anything about its interior. 18:19:32 oerjan said 2d 20h 6m 10s ago: well, ignoring output. 18:21:27 Yes it does looks like it; there is an ambiguous. But, you can't win them all. 18:23:42 If you are told the number of mirrors, arrows, and outputs, then it may help a little bit but is still ambiguous. 18:41:10 -!- MindlessDrone has quit (Quit: MindlessDrone). 18:44:53 -!- kmc has set topic: Sponsored by hexagons of increasing dimension | jsvine is doing an esolang survey!: https://docs.google.com/forms/d/1OvEsdBioOFcXFAiscO34kctUWKs3dWQs5-ZouXdwy9Q/viewform | logs: http://codu.org/logs/_esoteric & http://tunes.org/~nef/logs/esoteric/. 18:45:36 When do you expect oerjan on today? 18:56:39 `olist (905) 18:56:44 olist (905): shachaf oerjan Sgeo FireFly 18:56:47 zzo38: Thanks for reminding me! 19:03:49 ##crypto-drugz 19:04:01 what's to expect re: ørjan 19:05:05 zzo38: fizzie can surely make you graphs and compute averages of oerjan's average connection time and so on 19:05:20 So now we've reduced the problem to "When do you expect fizzie on today?". 19:15:17 I think I have already made that graph. 19:15:47 http://zem.fi/ircvis/esoteric/people_tod.html and then select only oerjan. 19:16:42 -!- mnoqy has joined. 19:16:44 It would seem that oerjan's usual time of arrival is in approximately 19-20 UTC, from which I deduce he should be arriving any moment now. 19:17:42 Then again, last time he came in it was at 21 UTC, so YMMV. 19:19:49 I guess if I select only the year 2013, that matches reasonably well. 19:21:07 (It might be that weekends are different; unfortunately, that particular graph does not really account for it.) 19:21:37 I thought we'd established that oerjan is on a 25-hour schedule 19:28:14 -!- sacje has quit (Ping timeout: 240 seconds). 19:29:06 -!- carado has joined. 19:29:28 -!- sacje has joined. 19:33:41 fizzie, could we get a 3D plot with number of messages, time of day, and year? 19:34:14 I'd just plot that as a shaded 2D surface. 19:34:24 fizzie, So we could see, as a HTML5-rotatable canvas fancy thingy of course, how the time of day behavior changed over time 19:34:44 WebGL thing, then it's very future. 19:34:54 yes quite so 19:36:27 fizzie, I guess that is too much work 19:36:28 I've recently taken a peek at some WebGL things, they have this thing where they write the (OpenGL ES) shaders with