00:00:06 "There are certain groups we're not supposed to make fun of, which now apparently includes fat people." 00:00:09 great start there 00:01:11 yeah seriously 00:02:07 How do you accidentally dial 911 00:02:26 well 00:02:30 first assume you are very stupid 00:03:15 I've accidentally dialed 911 once 00:04:06 how 00:04:08 Accidentally put heavy object (either laptop or the ... electronic writer thing I once owned) on top of a phone, phone had 1 button push for 911 00:04:20 i hear it's worse in the uk, since it's all the same digit 00:04:39 Hmm, I think it's more holding the button down 00:04:59 Quick dial? 00:05:13 It had 911 as a quick-dial like thing built-in 00:06:43 wow, that Florida Man 00:11:15 * Phantom_Hoover remembers that florida and california are actually different 00:12:34 -!- nooodl has quit (Ping timeout: 256 seconds). 00:13:13 yeah people pocket-dial 911 all the time 00:13:41 the solution: https://www.youtube.com/watch?v=ab8GtuPdrUQ 00:14:01 I don't; I have no cellular phone and don't put any telephone in my pocket or have emergency on any speed dial either. 00:14:03 Florida Man is apparently a big fan of calling 911 00:14:05 I should resume watching that show 00:14:24 (I also don't like cellular phones that don't have a cover, but that is different) 00:14:45 you can use both [] and () in Racket, formerly known as PLT Scheme 00:14:53 zzo38: Why not? 00:15:10 oh damn this clip cuts off the best part of the joke 00:15:56 nooga, but they play (almost) the same role, there's not much that physically distinguishes them other than convention 00:16:02 Although you can detect which is used. 00:16:15 Racket is a metaprogramming and DSL heaven 00:16:31 Sgeo_: and i like that 00:16:37 i like racket 00:17:04 what i don't like is this stupid DrRacket "IDE" 00:17:33 looks and behaves like poorly executed student's project 00:17:38 which is to say https://www.youtube.com/watch?v=UYVm9QSuB8U&t=1m17s 00:17:38 nooga: Nothing forces you to use it 00:17:44 nooga: yeah it's not the best 00:17:54 You can run the racket interpreter from command line 00:18:02 * Sgeo_ kind of likes it, except for the whole idea of restarting a program whenever something changes 00:18:20 oh yeah, that too 00:18:27 And even with Quack and the other thing for Racket in emacs, uncaught exceptions are completely fatal 00:19:20 we have a lot of trouble using Racket for teaching SICP, beacuse they decided to make breaking changes like making cons pairs immutable 00:19:30 (and there's some reason we can't use #lang r5rs either, though i forgot which) 00:19:56 also the default display mode is dumb 00:20:02 kmc, someone made a Racket language specifically for SICP 00:20:06 if you type '(1 2) it should print (1 2) not '(1 2) 00:20:10 Sgeo_: link? 00:20:13 I actually read SICP atm, with racket interpreter running 00:20:32 http://www.neilvandyke.org/racket-sicp/ 00:20:59 I used Heist because it's quite easy to install and has a nice repl 00:21:09 gem install heist && heist 00:21:09 Sgeo_: thanks, i'll bring it up with the other TAs at the wrap-up meeting 00:21:14 gem heist 00:21:18 kmc, you're welcome 00:21:29 Sgeo_: looks like it may be a bit tricky to get it installed on every student's machine 00:21:58 I think it's just running #lang planet neil/sicp 00:22:25 And telling them to use that at the top of their programs 00:22:56 ok 00:23:06 and then they download a bunch of code unencrypted from the internet and run it 00:23:09 o well 00:23:10 kmc: so does putting in ''foo print ''foo? 00:23:12 that's life i guess 00:24:06 Bike: yes 00:24:23 weird 00:24:48 Hmm. Write and distribute a Racket program that includes the thing as a file and sets it up and have them do #lang sicp ? 00:25:23 what's sicp use anyway, a wonky r4rs? is that what mit scheme of the time was? 00:25:39 01:20 < kmc> if you type '(1 2) it should print (1 2) not '(1 2) << there's a setting for this, Language->Choose Language->Show Details: Output Style 00:25:50 nooga: yeah i know, we have to tell every student to set it :/ 00:26:00 Bike: i think the current edition works fine in R5RS 00:26:10 but not with racket #lang r5rs for some reason i forget 00:26:37 i love standards, etc 00:27:29 like ooxml? 00:27:35 even with #lang r5rs and 'write' output style, it wants to write a mutable list as {1 2} 00:27:39 racket works somewhat better with htdp 00:29:55 i'm having problems with SICP 00:31:31 i would usually skip the boring stuff "yeah yeah, piece of cake, where's the meaty part..." scroll scroll scroll "WTF this came from?!" 00:31:52 and then i must read the boring stuff 00:32:19 books sure are hard 00:34:49 tl;dr Meet cons, car & cdr, check out rationals and now we'll write ourselves a scheme compiler in scheme 00:35:28 eh, it's something you have to deal with when working with textbooks and notes 00:35:49 but I like this book 00:36:01 -!- Regis_ has joined. 00:36:08 i just don't have much time to read it carefully ;/ 00:36:22 I guess I should read SICP 00:36:48 hey elliott remember that time we tried to read categories for the working mathematician 00:37:02 how'd it go 00:37:14 Phantom_Hoover: im considering starting over now that i actually know some category theory 00:37:20 Phantom_Hoover: i'll have you know elliott knows several category theory things now!! 00:37:23 except i won't involve you because you're lame 00:37:37 elliott, problem is that all the motivations are from like topology and group theory 00:37:45 elliott's secret: http://flockdraw.com/upload/8kr07f6lb00s44k80c4.png 00:37:45 and all the examples 00:38:27 Phantom_Hoover: yes that's a bit of a problem 00:38:28 what's wrong with topology, i think topology is a pretty cool guy or chick 00:38:34 Bike: the problem is I don't know it 00:38:36 so it's kind of useless to me 00:38:45 maybe you should know it. 00:38:48 however I am a fan of things with absolutely no point or application 00:38:49 i'll let you in on a secret 00:38:51 so this might not be a barrier 00:38:59 topology is just the study of blobby diagrams 00:39:24 maybe i'll read it but ask monqy to explain all the examples for me 00:40:15 `welcome Regis_ 00:40:20 Regis_: 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.) 00:40:32 i dont know topology yet (i should...) but i do know group theory 00:41:03 how does topology not have any applications? turning down million dollar prizes is a good application. 00:41:13 monqy: imo teach me group theory by way of explaining each example in categories for the working mathematician 00:41:25 :-) 00:41:31 monqy: itd work!! 00:41:31 Bike: no I mean the barrier would be understanding CT things without being able to understand any if the motivating examples 00:41:40 Bike: but I am a fan of things with absolutely no point or application 00:41:42 therefore, 00:41:45 Now I made first version of VGMCK is available, but only one chip so far. 00:41:47 oh 00:41:50 so you're just a nerd 00:41:56 elliott, but not all topology is pointless! 00:42:06 ITS THE CT NOT THE TOPOLOGY THAT IM TAKLING ABOUT OMG 00:42:12 PAY ATTENTION TO THE WORDS I AM VOMITING :( 00:42:14 In fact I think pointless topology is actually slightly different from normal 00:42:22 ok so that was a dumb joke 00:42:27 but it's still based on a misreading 00:42:33 nothing to do here anymore 00:42:36 omg 00:42:49 -!- oerjan has quit (Quit: Good night). 00:43:10 maybe i'll quickly learn topology before elliott bothers to read categories for the working mathematician and then i can explain the topology examples too 00:43:23 do you love teaching me things that much 00:43:25 -!- Frooxius has quit (Ping timeout: 276 seconds). 00:43:30 i feel special 00:43:32 what about explaining topology to him in terms of category theory 00:43:43 i feel embarrassed when im asked about things i dont know 00:43:43 maybe what i'll just do is learn category theory 00:43:48 and then topology and group theory will be ez 00:43:49 bundles man, bundles 00:43:56 maybe i'll learn topology by looking at all the examples 00:43:57 have you considered stealing grothendieck's brain? 00:44:01 because i'll just go "oh this is a trivial special case of [category theory thing]" 00:44:10 clearly: teach kids category theory in preschool??? 00:44:13 I've heard that's a popular way to learn category theory through learning topology through brain theft. 00:44:21 then you get to arithmetic and it's just a nice easy special case 00:44:50 haha remember new math, where you learned arithmetic in arbitrary bases first 00:44:52 good times 00:44:57 right i was inspired by new math 00:44:59 to be exact 00:45:01 tom lehrer's song about new math 00:45:07 obviously 00:45:18 which i think might be the only evidence new math ever existed 00:45:23 possibly he just made it up 00:45:30 naw, my parents went through it 00:45:43 and that's why i sometimes have to explain fractions to them so they can teach their students 00:45:57 fractions are pretty complicated imo 00:46:08 remember vortex based mathematics 00:46:11 anyway arithmetic is kind of concrete 00:46:14 now that's what we should be teaching our kids 00:46:20 oh christ 00:46:22 bit too "applied" for me 00:46:33 categories are concrete! you have a thing and then you have another thing and you can draw arrows between the things! 00:46:35 possibly this is why i am completely incapable of it 00:46:38 i don't think i told you about that one time i accidentally exposed my dad to vortex math 00:46:43 oh jesus 00:46:46 this story sounds good already 00:46:54 well basically 00:47:00 he was like "oh this sounds interesting" 00:47:08 "this guy knows what he's talking about" 00:47:17 is vortex math a crackpot thing 00:47:21 Bike: its a beautiful thing 00:47:29 Bike: you must watch this tedx talk 00:47:31 i remember a guy saying everything was based on vortices once but i thought he was a biologist 00:47:36 at this point i called in every favour i had with him to stop him watching it 00:47:39 Bike: https://www.youtube.com/watch?v=zhBymLCRIU8 00:47:44 right i'm on it 00:47:48 gonna get the new revelation of stan 00:48:02 Bike: then in the sidebar i think there's a link to the crackpot behind it's "intro to vortex math" 00:48:04 disaster was narrowly averted 00:48:11 which is like 30 videos or something 00:48:15 and yo ushould watch them 00:48:20 because they're fucking hilarious 00:48:22 wait wait 00:48:25 what the hell is tedx 00:48:35 ted doesn't allow free energy dipshits in last i checked, just rich-ish ones 00:48:40 it's like ted without the reputability 00:48:44 is it tedx without stan- 00:48:46 god. 00:48:50 Bike: it's "independently organised ted-affiliated events" 00:48:55 oh, christ 00:49:00 i.e. they have the ted brand name and even less credibility 00:49:07 so you get amazing things like this! 00:49:28 there was a tedx talk on at warwick 00:49:35 maybe i should've checked it out 00:49:37 start off math with deliberately shitty video of the president 00:50:29 oh god. 00:50:38 monqy: i hop eyou're watching 00:50:42 gotta relive it 00:50:42 ye 00:50:45 ye 00:51:00 aerodynamicssssss 00:51:23 i like how even just 2 minutes in 00:51:28 language of god 00:51:28 it's completely fucking off the deep end 00:51:32 grand unified 00:52:26 it's like 00:52:35 what the hell. 00:52:47 every single concept he's ever know has collapsed into this one degenerate state of batshit crazy 00:52:56 what the hell 00:53:04 *known 00:53:04 NINE NUMBERS AROUND A CIRCLE 00:53:07 IT MAKES US INTO A VORTEX MACHINE 00:53:20 you can do all the functions of all the branches of math instantly 00:53:25 SUCKING ENERGY IN AT THE TOP AND SHOOTING IT OUT AT THE BOTTOM 00:53:37 TIMECUBE 00:53:55 "unless he closed himself, so maybe that's what I am" 00:54:02 ***cloned 00:54:05 cloned 00:54:07 er yes 00:54:07 typo 00:54:10 I like how he laughs after that but you're not actually sure he's actually joking 00:54:10 this can't be real 00:54:13 is he sure he's joking 00:54:32 whoa man 00:54:35 hexagons 00:54:47 negative backdraft counterspace 00:54:55 our dna is a coil 00:55:10 numbers 00:55:13 are real 00:55:19 wtf? 00:55:29 ugh it actually irritates me when people learn things in the most shallow bullshit way and then go around yelling about how great it is 00:55:34 dna is way cooler than a fucking coil 00:56:10 Bike: haskell 00:56:31 vortex machine? 00:56:39 knew someone would say that 00:56:45 caution: you are now approaching the periphery shield of vortex four 00:56:52 god 00:56:54 CAUTION: YOU ARE NOW APPROACHING THE PERIPHERY SHIELD OF VORTEX FOUR 00:56:55 i love that "experiment" 00:57:00 CAUTION: YOU ARE NOW APPROACHING THE PERIPHERY SHIELD OF VORTEX FOUR 00:57:02 vortex equation 00:57:10 actually 00:57:13 this is hilarious 00:57:34 that gigantigc fucking name 00:57:36 and thde audience laughs 00:57:43 i'll write a VM 00:57:47 http://www.dailywav.com/1002/caution.wav 00:57:50 and call it Vortex Machine 00:59:40 Bike: https://www.youtube.com/watch?v=Fbyc9JW3vtk 00:59:42 this is the ~intro~ 00:59:46 monqy: remember that 00:59:50 yes 00:59:56 its so good 01:00:07 i love vortex based mathematics 01:00:12 so is there any source on this salk thing 01:00:28 whats a salk thing 01:00:45 he said salk offered to be rodin's physician and bla bla clone 01:00:55 salk wasn't even a practicing physician but i'm curious how the hell they came up with that 01:00:58 oh that who knows 01:01:12 "who's a famous doctor?" "iunno that dead guy" 01:01:16 what matters is this intro 01:01:19 that everyone must watch 01:01:26 or else face unending sadness and unfulfilment 01:02:00 This + Electric Universe = New Consciousness. No 12-21 doomsday, no alien invasion - the awakening is on. I no longer live in the world I grew up in. Namaste' to all. 01:02:15 oh no he's saying it's old 01:02:21 tachyons, gravitons, same thing 01:02:26 chi, yep there we go. 01:02:42 i need a bingo for these douchebags 01:02:54 is this tedx video real 01:02:57 "if he's so smart why is he dead" 01:03:00 photon 01:03:01 hi shachaf 01:03:02 i mean do these pixels exist in this arrangement 01:03:05 no 01:03:06 no you... you fucking 01:03:08 youre imaginaging ti 01:03:10 *it 01:03:13 ok good 01:03:16 i do that sometimes 01:03:40 penetrates everything and nothing can resist it, mmmmm bad implications there dude 01:03:50 http://markorodin.com/ 01:03:52 -!- zzo38 has quit (Remote host closed the connection). 01:04:19 baha'i, don't fuck with real religions you trash 01:04:25 "without going into religious mysticism" 01:04:47 wow theabhakingdom.com got parked by godaddy RIP 01:04:50 god he counts to 9 01:05:01 god 01:05:07 i dont know of anyone who blha blah another single digit number that exists 01:05:17 well what if it went seven nine eight 01:05:18 he cant be sure!! what if theres another single digit number 01:05:23 "all the single-digit numbers known" 01:05:26 what the christ 01:05:29 http://rense.com/RodinAerodynamics.htm 01:05:34 is this fucker twelve 01:05:35 http://lifeforcegenie.com is parked too :( 01:05:35 this is ... 01:05:42 http://www.vortexmath.com/ at least this still exists 01:05:50 no, nope, i'm done 01:06:03 no Bike 01:06:04 you're not 01:06:11 it gets so much better 01:06:20 i think around this time is when i was desperately trying to get my dad to stop watching 01:06:23 "2013/01/18 - Now recruiting electrical engineers with EAGLE PCB Design experience and OpenGL developers with Win32 GUI experience on volunteer basis. To volunteer please send your credentials to [publicrelations at vortexspace o r g]. " 01:06:41 I already had a headache and I'm pretty sure if I keep watching this my vertebral column will try to strangle me 01:06:57 Bike: let the vortex math soothe your head 01:07:18 @tell nooodl hey have you ever heard of a “vortex based mathematics„ 01:07:18 Bike: how about skip ahead to Advanced Vortex Math https://www.youtube.com/watch?v=tNHvyTIRVjY 01:07:19 Consider it noted. 01:07:38 ZERO... as in what you've offered so far. ZERO... as in how much common sense you have. ZERO... as in how many more times you'll be able to comment on my videos now LMFAO 01:09:31 stop it please 01:09:39 i'm already crying 01:09:53 LMFA0 01:10:24 nooga: re that advert, did they want someone with both skills? or two people, one with each? 01:10:40 OpenGL is occasionally taught to electronic engineers, so it's /possible/ there's enough overlap there ;) 01:10:56 (with electric and electronic engineers sharing many parts of the course) 01:11:27 i'm reading it as two people BUT vortexspace 01:11:27 i've used Eagle and I've done OpenGL programming but not Win32 GUIs 01:11:59 Eagle is pretty accessible, it's like two steps past the Arduino stage of hardware tinkering 01:12:15 flux thruster atom pulsar electrical venturi space-time implosion field generator coil 01:12:20 there's a free version of Eagle and there are plenty of fab houses that will take the files and make boards cheaply in small qty 01:12:31 let's volunteer then! 01:12:36 no u 01:14:02 kmc: I've done Win16 GUIs 01:14:08 I imagine Win32 GUIs are similar, most of the APIs are the same 01:14:16 (that said, I haven't done them /well/, nor do I enjoy doing them) 01:15:31 a Win32 GUI is essentially two Win16 GUIs side by side 01:16:46 Win32 is pretty much backwards compatible in terms of developer mindshare 01:16:55 If by "most" you mean "Microsoft did crazy shit to not break source", then yes. 01:16:56 pikhq: You have 2 new messages. '/msg lambdabot @messages' to read them. 01:16:56 it works much the same way as Win16, and you can write the code in much the same way 01:16:58 :) 01:17:02 pikhq: indeed :) 01:17:20 nowadays they care more about binary compat than source compat, it seems 01:17:57 Nowadays they seem to run on thing-of-the-month. 01:18:22 i like how windows 1.0 Reversi still runs on Windows 7 01:18:48 *32-bit Windows 7. 01:19:14 does it run on itanium windows 7???? 01:19:19 For x86_64 they kinda went "meh, let's not update the 16-bit stuff"... 01:19:31 elliott: Well, IA-64 is not 32-bit Windows 7. :) 01:19:33 does it run on Windows NT 4 for Alpha 01:20:17 Honestly I'm not sure if it'll run on Windows 7 for Itanium. Assuming that even exists... 01:20:33 I have no idea how far the now-in-software x86 emulation goes. 01:21:13 all the single-digit numbers known 01:23:15 * ion ಠ_ಠs the Advanced Vortex Math video. 01:23:31 A fancy name for rather trivial number patterns. 01:23:45 blowing my mind here ion 01:23:50 blion 01:24:02 blmhnoi 01:24:09 no Bike 01:24:42 baloney 01:24:56 actually, yes Bike 01:25:14 yes, bike. yike. 01:27:07 :o 01:27:10 "This is base 26. It's the next step up from base 10." 01:28:33 nope. 01:28:34 are you sure this isn't all a game of numberwang 01:28:39 no 01:28:43 do they at any point rotate the board 01:29:06 well it' a vortex 01:29:10 of course they rotate it 01:31:22 ok advanced vortex based mathematics is too advanced for me 01:34:27 Yup, apparently the x86 emulation thing on Itanium ignores 16-bit x86 entirely. 01:35:44 goodnight 01:35:53 mm right, it doesn't need to boot a PC operating system 01:38:48 -!- Phantom_Hoover has quit (Quit: Leaving). 01:39:33 vortex math reminds me of category theory 01:39:45 in that there are a bunch of videos of people saying crazy nonsense 01:40:49 -!- nooga has quit (Ping timeout: 248 seconds). 01:49:21 -!- Phantom_Hoover has joined. 01:49:26 http://www.reddit.com/r/math/comments/18mh1p/my_favorite_song_about_doing_calculus/c8gy7yh 01:49:28 i just 01:51:06 Phantom_Hoover: having fun sleeping? 01:51:12 yeah 01:51:18 this is a pretty boring dream though 01:51:35 someone turn into a giraffe 01:51:42 i can try 01:52:24 bless you, monqy 01:52:25 oh good it's a “someone misunderstands sapir-whorf„ 01:52:26 blonqy 01:52:56 -!- doesthiswork has joined. 01:53:00 "Yes, the Sapir-Worf is true. I can give very simple examples" 01:53:03 (so does everyone finally see that swedes are terrible) 01:53:08 sexistic 01:53:15 are swedes sexistic? 01:53:34 that guy's other comments are just as bad 01:53:40 "If I could though, I would propose changing English as the current world language to Finnish. Although I do not think I would succeed." 01:53:48 is monqy a giraffe yet 01:53:52 i mean i agree but damn, talk about the wrong reasons 01:53:56 bike: which version of sapir-worf/ 01:54:07 `WELCOME doesthiswork 01:54:09 DOESTHISWORK: 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.) 01:56:35 what noise do giraffes make 01:56:40 this is important for my transformation 01:56:52 monqy: "moo" 01:56:55 looking through his site i think he's just proper crazy rather than a dickhead 01:57:05 monqy, 'moo' but in a tall way 01:57:09 doesthiswork: the dumb version 01:57:11 -pleased moo- 01:57:16 hm how do i make it taller 01:57:16 did you turn into syraine 01:57:26 is that the secret to your transformations 01:57:33 -yes moo- 01:57:42 wow this is really realistic 01:57:46 im starting to believe monqy is a giraffe in real life 01:57:55 -moo- 01:57:59 gosh 01:58:02 oh that's quite tall 01:58:05 right i'm off then 01:58:09 -!- Phantom_Hoover has quit (Remote host closed the connection). 01:58:51 um 01:58:58 giraffes are long horses 01:59:02 horses don't moo 01:59:03 . 01:59:07 oh wait i'm mixing it up with geraffes 01:59:15 monqy: you should be a geraffe 01:59:22 nei------------------------------------------------gh 01:59:30 `run echo kirahvi | hyfinate 01:59:32 ki-rah-vi 01:59:35 being a geraffe seems counterproductive 01:59:39 i love geraffes 01:59:41 they are so dumb 01:59:54 @google geraffes are so dumb 01:59:55 http://www.reddit.com/r/pics/comments/8aqjh/awww_this_is_just_too_sad_pic/c08pp5z 01:59:55 Title: Awww, this is just too sad [PIC] : pics 02:00:29 Those people _are_ horrible, they should have told him 02:00:38 EDIT: spelling. 02:01:04 Sgeo_........... 02:01:45 Could have genuinely believed it's spelled "geraffe" 02:01:50 SGEO 02:01:59 I ACTUALLY LITERALLY GOT UP AND BASHED MY HEAD AGAINST THE WALL 02:02:41 yes Sgeo_ don't be sexist like that 02:03:15 -!- DHeadshot has joined. 02:03:35 *or her. But I'm not convinced that's why elliott is bashing head against wall 02:03:55 -!- elliott has left ("i just give up on everything"). 02:04:13 Well, someone did tell the person 02:04:18 Don't know of the time frame though 02:05:57 What, is elliott trying to say that it's probably a troll? 02:10:07 does anybody know where i can find the picture? wayback machine didn't have it 02:11:18 http://farm9.staticflickr.com/8165/7584193058_9e64228f7a_o.jpg 02:11:24 Google image search with the thumbnail URL 02:11:52 i think elliott's trying to say it's a troll and also some other thing that i'm too tired to pretend to care about 02:12:38 thank you, the gerrafs / long horses were hilarious but I was still curious about the picture. 02:14:34 ion's picture looks like the picture 02:14:44 it is 02:14:54 so what are you asking for exactly 02:15:44 I no longer am, I may have used aspect incorrectly, I was trying to say that I was curious until ion satisfied the curiosity. 02:16:11 You used it correctly. 02:16:20 ah. 02:17:33 have you people ever heard the linguistic illusion "no head injury is too trivial to be ignored" ? 02:18:52 linguistic illusion? 02:19:33 what it literally says is exactly the opposite of what everyone agrees it must mean. 02:20:09 "no head injury is trivial enough to be ignored" 02:20:43 that is the commonly agreed upon meaning 02:20:50 what it literally says is the the smaller a head injury gets the the harder it gets to ignore. 02:21:10 But we can ignore all of them if we try 02:21:39 btw, I ended up having to read the GNU coding standards recently (was looking at their version number standards to see if I could parse them automatically, but sadly, they're sufficiently freeform that you can't even reliably detect whether something is using their standards or not) 02:21:47 and there are some hilariously opinionated bits in them 02:22:19 -!- elliott has joined. 02:22:37 "When a feature is used only by users (not by programs or command files), and it is done poorly in Unix, feel free to replace it completely with something totally different and better. (For example, `vi' is replaced with Emacs.)" 02:22:38 remember the part about how standards are optional, i think that's a good part 02:22:40 Shouldn't it all be opinionated? Or by 'opinionated' is it typically meant significant numbers of people with dissenting opinions? 02:23:01 posix, that's just suggestions, really 02:23:05 I just thought editor wars felt a little out of place in coding standards 02:23:05 "GOTO is usually a bad idea" is a pretty common opinion 02:23:16 The relevance of this linguistic illusion to programming languages is that you can often detect where someone has made a mistake by the presence of tautologies in the code 02:23:34 vim ftw 02:24:00 Sgeo_: goto is a good idea when handling errors 02:24:11 Actually makes for much cleaner code 02:24:13 also, their argument for using C is a little interesting: basically, C is the best language because people don't want to have to install a compiler/interpreter for whatever your language is written in 02:24:20 The linux kernel makes good use of it 02:24:27 ais523: sadly true 02:24:30 users HATE code reuse 02:24:41 meanwhile, I'm planning to make the officially supported method of compiling NetHack 4 on Windows to install Perl for the free, correctly packaged C implementation that comes with it 02:25:08 (correctly packaged C implementation on Windows is difficult, if you want something vaguely sane rather than msvc) 02:25:09 the amount of shit we get in Mosh for using Google Protobuf instead of hand-rolling our own half-baked format with a parser full of buffer overflows like any self-respecting C program 02:25:37 ais523: is that mingw? 02:25:40 Maybe environments should make code reuse easier 02:25:45 kmc: yeah, it's mingw + a bunch of third-party libraries 02:26:27 FreeFull: the rule of thumb I like for goto in C is that it's OK to jump forwards with it, but not backwards, and out of control structures, but not into them 02:26:28 Not rewriting everything from scratch, when writing a C program intended to be used on Linux, seems to involve a dependency system that varies between distros. 02:26:32 ais523: isn't that like the main historical reason for everything being in C 02:26:38 Bike: perhaps 02:26:53 C++ compilers are just as everywhere as C compilers nowadays, at least (although the C++ supporting libraries/headers may not be) 02:27:16 scripting languages (Perl, Python) have a similar distribution to C and C++, although not an identical one 02:27:26 as in, Perl but not C, and C but not Perl, seem approximately equally likely 02:27:38 o.O at Perl but not C 02:27:41 Haskell is great on Linux but I hear it's horrible on Windows 02:27:54 all languages suck on windows 02:27:55 Sgeo_: well on Linuxy systems, you always have both 02:28:10 too many critical programs are written in Perl, and C is needed to compile kernel modules during startup 02:28:37 (although as a fun fact: Ubuntu stock install comes with a usable Perl install, but is missing userland headers, so you can't use the C compiler except for kernel modules) 02:28:58 ....startup as in when the computer starts, or... what? Because compilation at bootup sounds clinically insane 02:29:15 kmc: what do the actual complaints consist of? 02:29:15 Sgeo_: http://bellard.org/tcc/tccboot.html 02:29:26 Bike: just that people don't wanna install shit 02:29:35 ah, heh 02:29:39 Sgeo_: when the computer starts 02:29:48 everything's gotta be self contained~ 02:29:48 compilation at bootup might sound insane, but it's better than the computer not starting at all 02:29:58 also people who are terribly concerned about this thing they call "software bloat" which has no correlates in the physical world 02:30:00 Why can't it just compile it once? 02:30:04 if you have a driver compiled against the wrong kernel, you can't load it, but if you have its source… 02:30:12 -!- dessos has joined. 02:30:21 mosh wastes literally cents worth of memory by linking against protobuf! somebody think of the bits! 02:30:22 and basically, in case someone just updated their kernel, but the driver wasn't part of the same update mechanism 02:30:29 Sgeo_: It's booting from a CD 02:30:31 kmc: look i need that two megabytes of space protobuf so's will take up, i have very specific porn to save for myself 02:30:33 Where will it write the data to 02:30:37 haha 02:30:45 your fetish is porno that is exactly 2 MB in size 02:30:53 finally someone understands 02:31:37 btw can you have it use bsd libc instead of gnu, i've heard bsd stuff is closer to that size? thanks 02:31:40 is that imperial or metric megabytes? 02:32:00 (if you have fetishes that specific, it probably matters) 02:32:59 hm is there an imperial measure of data size 02:33:16 I mean the mebibyte/megabyte thing is almost as silly, but 02:33:16 Bike: joky names for 2 MiB versus 2e6 bytes 02:33:20 baud maybe? 02:33:29 ais523: yeah but now i'm thinking about it 02:33:54 Bike: have you ever heard of the nat? 02:34:01 oh! yes, of course 02:34:23 actually no, e is way too half-reasonable for imperial 02:34:33 it's not really like imperial, though 02:34:38 it's more like measuring in radians 02:34:45 it should be based off the imagined length of le morte d'artur or such 02:34:53 when imperial has degrees, and metric has gradians (which nobody ever uses, but is still implemented in calculators for some reason) 02:35:08 actually I think metric gave up and switched to radians, eventually 02:35:10 I heard once that gradians were used in continental Europe. 02:35:20 Bike: yeah, just like the rest of metric 02:35:26 used once 02:35:43 Like when did that cease, though? 80s? 60s? 02:35:55 no idea 02:35:59 hmm… I wonder if Wikipedia knows 02:36:38 haha, apparently 100%th of a gradian is called a centigrade 02:36:43 as if that isn't confusing :) 02:37:32 apparently it was only ever used in specialized fields (artillery and surveying), and is still used in those fields in continental Europe, but not by anyone else 02:37:47 figures 02:37:51 or, hmm 02:37:57 it's used by surveyors elsewhere, too 02:38:07 Bike: mebibyte is inaccurate!! 02:38:10 mebioctet 02:38:19 elliott: haha 02:38:28 i'm not kidding i've actually used mebioctet 02:38:30 i stole it off Deewiant 02:38:38 do you regularly use it 02:38:42 like 02:38:44 when I remember to 02:38:51 and don't care about coming off as totally pretentious 02:39:04 "mebioctet": a pretentious word 02:39:12 ais523: i guess the problem with radians is that it's kind of inconveinent to have to do everything with rational multiples of pi, and (g)radians offer enough resolution for most applications 02:39:40 rational multiples of pi is kind of the key to the human body though. vortex mathematics. 02:39:43 also it's way easier to have a physical angle measurey thing with numbers instead of pi multiples. 02:39:53 Oh they call those "protractors" now? Ok. 02:40:12 the theory of vortex mathematics has a lot of detractors but it also has a lot of protractors 02:40:21 elliott: also compasses and straightedges 02:40:33 hrm 02:40:37 maybe i should learn rational trig 02:40:41 instead of vortex maths 02:44:40 elliott: aren't both byte and octet correct in this case? 02:45:27 ais523: well, I guess 02:46:35 elliott: Was that a pun from the vortex math video? 02:46:45 no I made it up 02:46:47 all by myself 02:46:48 If so, I'll have to change my opinion of them. 02:46:51 Oh. :-( 02:47:00 it would have been good if it was in the video though 02:47:16 Maybe there's a parallel crackpot world. 02:47:30 Where some people have all the good puns. 02:48:37 Maybe every real person has a a crackpot twin. 02:48:57 Who is the Conor McBride of crackpots? 02:49:28 does every crackpot have a real person twin ? 02:49:41 Is my crackpot twin my 7th grade self? 02:49:55 That doesn't seem biologically possible. 02:50:42 Bike: Don't be so close-minded. 02:50:47 monqy: Yes. 02:51:07 It's an involution. 02:51:30 Oh god I remember in elementary school, I saw a diagram of the electromagnetic spectrum. The visual was of a large wave, with the visible spectrum being a small part. So I explained to the school nurse how the visible spectrum takes up less than a wavelength. 02:51:32 monqy: your crackpot twin thinks you are the crackpot 02:51:56 -!- Mathnerd314 has quit (Read error: Operation timed out). 02:52:05 Hmm, some people are self-dual, though. 02:52:25 Sgeo_: haha well, it's vaguely true-like 02:53:15 a large wave 02:54:02 so who is the non-crackpot version of monqy 02:54:32 oh no 02:54:37 elliott is negative and monqy is positive 02:56:18 It looked a little like this 02:56:19 http://blogs-images.forbes.com/williampentland/files/2011/08/EW-Electromagnetic-Spectrum.jpg 02:56:29 Except with smaller thing for visible spectrum I think 02:58:21 See. All of visible light would fit in one of the microwave wavelengths. 03:00:50 that is a logical conclusion to come to 03:02:23 I remember in 4th grade or so, the day we were going to learn multiplication, explaining that a*b != b*a (not in those words) 03:02:39 And no, I wasn't talking about quaternions 03:03:19 a * b! = b * a? 03:03:21 That's wrong. 03:03:22 It wasn't intuitive to me (and still isn't except when presented geometrically) how, for example, 4 + 4 = 2 + 2 + 2 + 2 03:04:26 s/explaining/wrongly explaining/, if that helps 03:04:38 isnt that pretty easy if you take 4 = 2 + 2 by definition 03:05:08 what eventually convinced you/ 03:05:34 doesthiswork, being told in class. Also the geometric perspective, of a grid of a by b squares 03:06:07 Because that's obviously both a added b times and b added a times. And obviously from both perspectives the same result. 03:06:41 yes, you just rotate the rectangle and it is isomorphic 03:07:34 Also, a graph of the form x + y = 10, or along those lines, was the first I'd ever seen. So I thought they all sloped down. 03:08:19 Hmm. Maybe that was before I read Algebra the Easy Way? 03:08:56 what's the easy way 03:09:19 is it http://www.amazon.com/Barrons-Algebra-Turtleback-Library-Binding/dp/1417655968 03:09:33 No 03:09:39 E-Z is the list of grades you can get right 03:09:40 Monoid algebras 03:10:07 http://www.amazon.com/Algebra-Easy-Way-Douglas-Downing/dp/0764119729/ref=sr_1_1?s=books&ie=UTF8&qid=1361156986&sr=1-1&keywords=Algebra+the+Easy+Way 03:10:12 Although, uh, not with that cover 03:10:28 The cover looked like http://www.amazon.com/Trigonometry-Easy-Douglas-Downing-Ph-D/dp/0764113607/ref=sr_1_6?s=books&ie=UTF8&qid=1361156986&sr=1-6&keywords=Algebra+the+Easy+Way 03:10:57 PhD in making things easy 03:11:21 I really liked that series 03:11:28 But not Chemistry the Easy Way :( 03:11:42 Chemistry the Easy Way can suck my balls. 03:11:47 Um, I didn't mean to send that. 03:12:06 03:12:07 then why did you type it 03:12:15 When I was in the first grade I gave a presentation on human reproductive anatomy. 03:12:20 I doubt a book can suck your balls. 03:12:23 That is my elementary school memory. 03:12:44 At least, from my knowledge of books and genitalia it seems tricky. 03:12:48 when I was in first grade I built a giant sand sculpture of human reproductive anatomy 03:13:02 Oh, I saw that on Ripley's! You're a good sculptor. 03:13:03 it took me years to figure out why the teacher didn't like it 03:13:25 You did that for a class? Did you have a class in sand sculptery? 03:13:42 I was thinking about sending it, but decided against it 03:13:48 And then accidentally sent 03:13:51 I did during recess and got the rest of the class to help 03:13:57 pikhq: http://oglaf.com/booklove/ 03:14:03 Which genders was it of? 03:14:07 Er, sexes. 03:14:24 both combined (because more is better) 03:14:45 Anyway: Algebra the Easy Way, Trigonometry the Easy Way, and Calculus the Easy Way were all story books. Chemistry the Easy Way is not. 03:16:51 Bike, is there a link to it? 03:17:55 Jafet: You make a good argument. 03:18:05 The presentation was done in person, and I think the relevant drawings are in a basement somewhere. 03:32:51 -!- comex has quit (Remote host closed the connection). 03:40:04 -!- Sgeo_ has changed nick to Sgeo. 03:45:10 -!- zzo38 has joined. 03:48:28 -!- copumpkin has quit (Ping timeout: 252 seconds). 03:48:59 -!- copumpkin has joined. 03:49:39 -!- Regis_ has quit (Ping timeout: 240 seconds). 04:01:49 "Remembering that lists are L(a) = 1 / (1 - a)" 04:02:08 wtf is that meant to imply that [()] is... ... huh? 04:02:17 * Sgeo is totally confused 04:02:39 that's the formula for a geometric series, isn't it 04:02:45 Yes. 04:02:52 Lists are L(a) = 1 + a + a^2 + a^3 + ... 04:03:03 right 04:03:22 In certain cases you can go from that to Sgeo's formula. 04:03:31 a=1 is not one of those cases. 04:03:47 Hmm, ok 04:03:50 radius of convergence bladdity bladdity bla but formal power series pwnzrs anyday anyway 04:04:09 hi Bike 04:04:14 hi shachaf 04:04:19 make your nick should be Bikey 04:04:24 s/k/yb/ 04:04:32 the derivation is pretty though. L - aL = 1 04:05:31 Hmm. 04:05:43 Maybe I should figure out what a lax functor and a terminal bicategory are. 04:05:54 Then I can be cool like copumpkin, right? 04:06:13 it's a 2-functor 04:06:16 coolpumpkin 04:06:44 shachaf: Well, [()] ~ Nat and Nat is infinite and 1/0 is infinite, ERGO 04:07:14 elliott: right except you can't really do that 04:26:12 -!- Mathnerd314 has joined. 04:32:21 ohai 04:38:21 -!- SirCmpwn has quit (Ping timeout: 245 seconds). 04:39:11 -!- SirCmpwn has joined. 05:01:35 monqy: https://en.wikipedia.org/wiki/Closure_operator 05:06:15 hi 05:11:47 -!- azaq23 has quit (Quit: Leaving.). 05:28:30 -!- Arc_Koen has quit (Quit: Arc_Koen). 06:04:15 I read that 2A03 CPU core does have all the logic for decimal arithmetic, but the connection to the rest of the circuit is cut, preventing it from working. 06:13:07 ⨃ 06:37:21 -!- aloril has quit (Ping timeout: 256 seconds). 06:40:35 -!- librarystudent01 has joined. 06:41:05 -!- librarystudent01 has quit (Client Quit). 06:50:21 -!- aloril has joined. 07:07:04 -!- monqy_ has joined. 07:07:11 -!- monqy has quit (Disconnected by services). 07:07:16 -!- monqy_ has changed nick to monqy. 07:07:48 `welcome monqy 07:07:54 monqy: 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.) 07:07:56 hi shachaf 07:08:08 `welcome HackEgo 07:08:10 HackEgo: 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.) 07:08:26 monqy: closure operators are "pretty cool huh" 07:09:03 did you see the "alternate definition for posets" 07:09:49 you mean in terms of a something or other category? at most one morphism in each hom-set? yeah i saw that 07:10:02 is there anohter one 07:10:14 no the definition of a closure operator 07:10:19 (which is just a monad in a poset of course) 07:10:30 oh ok 07:10:34 sure sure 07:10:38 but the alternate way of stating the axioms is like >>= 07:11:21 -!- epicmonkey has joined. 07:12:19 monqy: is there a difference between a lattice that has all small limits and a lattice that has all products 07:13:11 well non-empty limits 07:13:20 ok 07:13:25 well doesn't matter in this case 07:13:33 oh well ¨who knows¨ 07:13:37 ok 07:14:01 ¨̈́hi¨̈́ 07:14:13 wow fancy quotes 07:14:28 how did i even make those 07:17:46 By computer 07:18:03 zzo38: no i did it by keyboard.. 07:18:16 @quote augustss 07:18:16 augustss says: Haskell already has enterprise monads; there is a fail method. 07:18:18 `quote augustss 07:18:20 No output. 07:18:21 @quote augustss 07:18:21 augustss says: augustss: Wow. You win the IOCCC three times! wy: i'm bad at C programming ;) 07:19:33 -!- FreeFull has quit (Quit: bye). 07:24:37 -!- sebbu has quit (Read error: Connection reset by peer). 07:25:06 -!- sebbu has joined. 07:30:44 `slist 07:30:46 Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 07:33:17 hi Sgeo 07:33:20 How's Dylan? 07:33:42 I forgot about Dylan :( 07:33:50 Ada? 07:36:50 I really think there should be the separate class for do-notation, which has fail and (>>=) but return is not needed to implement the do-notation. (I also think do-notation should be implemented by macros rather than hard-coded, but that is different.) 07:42:43 Sgeo: They want your help! 07:42:49 Seriously, they're understaffed. 07:43:57 shachaf, I guess doing stuff would consist of looking through some sort of lists of tickets? 07:46:44 Sgeo: I don't know. Ask in the channel. 07:46:49 They're working on the compiler and things like that. 08:28:09 -!- ais523 has quit. 08:34:44 -!- epicmonkey has quit (Ping timeout: 248 seconds). 08:38:27 -!- Nisstyre-laptop has quit (Ping timeout: 260 seconds). 08:41:01 zzo38: defmacro! 08:42:15 I agree with zzo38 about do-notation should be implemented as a macro 08:42:16 -!- Frooxius has joined. 08:42:51 I want defmacro. 08:43:10 * Sgeo does too 08:43:14 mroman: I also want macro 08:43:21 Or, actually, no. syntax-rules and syntax-case are better, possibly. 08:43:24 radical, bro. 08:43:35 I always wished I could hack Haskells do Notation to support my own stuff. 08:43:53 Sgeo: I suppose, any way which is good enough to do it, would work 08:44:06 I.e if I don't have a Monad but something else which allows one to chain stuff the same way 08:44:11 But what is your opinion of having it the separate class for do-notation? 08:44:17 CL/Clojure-style macros do have some issues 08:44:30 zzo38, well, monads without a return operation can be useful. 08:44:41 then one has to write foo >>~> bar >>~> \c -> foobaz c 08:44:44 Well, they're not monads in that case 08:44:47 semimomomomomonads 08:44:53 Sgeo: It isn't a monad without return, but what I mean is that return is not necessary to make do-notation work. 08:44:54 etc. 08:44:55 But yeah, being able to use do notation with that would be nice 08:45:00 zzo38, yes, agreed 08:45:15 I'm fond of both fexprs and compile time functions 08:45:49 I need to try to understand if fexprs allow for a Tcl-like sort of thing 08:45:57 I like the Tcl approach, except want more quasiquoting 08:46:05 And less stringiness 08:46:25 fexprs and quasiquoting are kinda anathema. 08:46:51 (some-fexpr-based-macro ,(+ 1 1)) 08:47:03 some-fexpr-based-macro would only see 2 08:47:17 What, that's not even quasiquoting, that's eval. 08:48:06 (some-fexpr-based-macro ,(+ 1 1) (+ 2 3)) would be processed same as (some-fexpr-based-macro 2 (+ 2 3)) 08:48:33 so its eval 08:48:35 seriously, that's not quasiquotation, that's antiquotation. 08:48:43 which is eval (whoaaaaa) 08:49:02 (some-fexpr-based-macro (eval (+ 1 1)) (+ 2 3)) 08:49:08 well, that's different. 08:49:16 More importantly, is Burning Sand popular here? 08:49:21 Burning Sand? 08:49:28 is that one of those falling sand games 08:49:32 After they took out his colon, he went into a comma. 08:49:38 you know, with the sand, and it's falling 08:49:45 Yep. 08:49:48 * Sgeo likes those 08:49:52 i've played a few of those in my days 08:50:05 I found out you can get it for phones, and now that's what my phone is doing. 08:50:11 idk if ive ever played burning sand tho is it any good 08:50:11 Good use of technology there. 08:50:32 It's cool. Still haven't figured out what glue does. 08:50:51 Is it TC? 08:51:22 good question 08:51:30 Eh, maybe. I just try to get a stable ecosystem going. 08:51:40 My current attempt is based on a shitload of steam and even more oil. 08:51:48 a stable ecosystem?? 08:52:19 So that the "life" state continues to exist without my intervention and without reaching a stable state. 08:52:22 Metastability, I guess. 08:52:23 Trying to put out a burning plant with water is fun 08:52:45 Basically it amounts to making a cycle of growth and fire, or at least that's what I'm doing right now. 08:52:50 Erm, only if it has to be from above 08:53:28 Oh, that's a fun thing, on the phone version gravity depends on how your phone is oriented. 08:53:40 cute 08:54:34 yeah it's mostly pointless but kinda nice. 08:54:51 Oh hey managed to put out the fire 09:01:32 Replicator can't replicate antimatter 09:01:41 ok 09:01:53 * Bike notes in copybook. 09:02:42 Antimatter can destroy black hole 09:03:50 ok 09:04:47 I think replicator burns faster than gunpowder 09:05:05 i think you should conduct some more tests 09:07:07 I think this fire burned so fast that it missed some oil. Awesome. 09:10:33 -!- Taneb has joined. 09:14:50 Taneb: Remember the whole Halite in #haskell thing? 09:15:54 Oh hey the entire world can be filled with replicator 09:16:01 There's an option for that 09:18:18 Black hole in a replicator world is pretty 09:19:55 Aye, I do 09:21:11 `pastelogs octagonfly 09:21:51 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.25898 09:27:26 Taneb: He's banned now. 09:27:26 -!- DHeadshot has quit (Read error: Connection reset by peer). 09:27:48 -!- DHeadshot has joined. 09:27:50 Yay 09:28:21 maybe he'll evade again.....more secretly this time 09:28:26 maybe he'll fix his behavior too 09:28:34 maybe he'll come back here??? 09:28:59 what's next, thutubot????????? 09:29:15 isn't halite some kind of mineral 09:29:38 Yeah 09:29:41 rock salt 09:29:41 oh it's salt 09:29:47 right, hal- is salt 09:30:57 is ite rock 09:32:58 «adjective-forming suffix, especially of nominalized adjectives identifying groups of people as "those belonging to"» 09:33:09 or "a rock, mineral or fossil" but that's hella boring 09:34:00 -!- Bike has quit (Quit: are you are you are you are you are you). 09:40:55 Put cloud in a pure replicator environment 09:41:09 -!- epicmonkey has joined. 09:41:45 oops? 09:41:59 No, as in, I think it looks cool 09:42:06 ok 09:42:15 Although it becomes boring quickly 09:42:26 oops... 09:42:44 SQLite plugins for dealing with VGM and MIDI would be useful, I think. 09:42:58 Still starts out cool 09:44:01 It starts out looking like cloud is growing sort of crystaline and then usually there will be a sudden burst of water 09:53:20 -!- oerjan has joined. 09:54:44 -!- ais523 has joined. 09:59:53 oerjan: hi 09:59:55 ais523: hi also 10:00:01 yo 10:00:08 moin auch 10:04:35 -!- oerjan has set topic: CAUTION: YOU ARE NOW APPROACHING THE PERIPHERY SHIELD OF VORTEX FOUR | http://codu.org/logs/_esoteric/. 10:05:11 * oerjan is reminded of triangle and robert 10:05:18 oerjan: hmm… that immediately made me think of "enjoy being locked in your matrix of solidity", even though it has no words in common 10:05:50 "OF" HTH 10:10:11 bleh 10:10:21 I stared at it for a while to make sure, too 10:10:49 you could try to claim "of" really counts as grammar instead of a word. 10:13:01 Being that "being" and "are" are totally the same word 10:13:47 -!- FreeFull has joined. 10:14:35 well then we also have "you" and "your" 10:15:37 YOU ARE TURNING INTO MONQY 10:15:41 hi 10:16:12 wrong window 10:16:16 ok 10:16:50 monqy: elliott said "hi" in the other window, i _think_ this is harmless for me to explain? omg don't hurt me! 10:17:13 oh no 10:17:18 does that mean if i say hi i'll turn into monqy 10:17:20 dreadful 10:17:26 is oerjan having secret conversations with elliott 10:17:30 a fate worse than death??? 10:17:39 monqy: if i say hi will i turn into monqy 10:17:46 i want to be like monqy!! 10:17:46 it's too late 10:17:47 monqy: i hesitate to tell you, but i'm afraid it may already have happened 10:18:09 What about your turning into monqy 10:18:28 monqy: when do i get my monqy manual 10:18:37 the book all monqys have access to 10:18:54 gosh i have access to a lot of books which one are you talking about 10:18:58 be more specific please 10:19:11 um 10:19:14 maybe it's tapl? 10:19:20 i have access to that 10:19:28 i don't.. :"( 10:19:37 -!- Phantom_Hoover has joined. 10:19:43 but i think it's a book you have access to iff you're monqy 10:19:53 shachaf: i think it must be "Journey to the West" hth 10:20:10 what's that 10:20:50 oh iff you're monqy, cannot be that one then 10:20:58 it's pretty out of the bag, so to speak 10:21:17 i heard monqy was a bit 'out of the bag' if you know what i mean 10:21:25 http://en.wikipedia.org/wiki/Journey_to_the_West 10:21:56 or maybe there are four books, one more for each of East, South and North, but only monqy has those 10:21:56 what sort of bag are we talking about here 10:22:07 ummmm i think its metaphorical 10:22:10 the monqy bag 10:22:17 i think i'm in that bag though 10:22:24 monqy: im hinting that youre a cat 10:22:41 the proof is that you made a unicode cat face the other day 10:23:34 alright i'll believe that 10:28:10 HOVER! 10:28:10 http://www.stanford.edu/~cammat/HOVER/index.html 10:28:14 Wonder if it works on WINE 10:28:38 hover 10:29:34 -!- nooga has joined. 10:30:20 monqy: Am I bothering you too much? 10:30:46 did someone suggest that you might be 10:35:11 I think I suggested it in those terms. 10:36:10 ok 10:41:32 meanwhile: http://www.reddit.com/r/math/comments/18mh1p/my_favorite_song_about_doing_calculus/c8h3ygo?context=3 10:41:34 this guy... 10:51:42 -!- jconn has quit (Ping timeout: 264 seconds). 10:51:48 -!- DHeadshot has quit (Ping timeout: 248 seconds). 10:52:54 -!- fftw has quit (Ping timeout: 264 seconds). 10:55:21 -!- fftw has joined. 10:55:37 fftw: are you a fourier transform 10:56:36 Perhaps not only fast, but the fastest. 10:57:15 ("In the West? I thought MIT was in the East?" is one of the FFTW FAQ questions.) 10:57:18 btw, here's something fun to inspire conversation: aimake2 makes a test file that can include one of five header files: , , , , and 10:57:33 any guesses as to why I chose that particular set? 10:57:48 (in some cases, multiple header files would have worked; a couple of them had to be those specific headers, though) 10:58:26 (also, in each case, the actual contents of the header files are irrelevant) 11:03:17 ais523: 11:03:26 ais523: To test if the compiler is being an ass or not? 11:03:39 limits.h is part of the C standard 11:03:46 I think setjmp.h is too 11:03:53 zlib.h is an external library 11:07:35 oh wait i'm mixing it up with geraffes 11:07:45 http://speedydeletion.wikia.com/wiki/Geraffe hth 11:08:17 ?????????????????????????? 11:08:18 * oerjan mainly wants to point out his discovery of this wiki. 11:08:41 (as a front page hit for geraffe, but still.) 11:08:44 Possibly all those headers are from different standards? At least limits.h is C89/C90, iso646.h C99, POSIX, and so on. 11:10:06 -!- monqy has quit (Quit: hello). 11:12:20 I want a program to keep track of my PDF files. 11:12:34 I download lots of them and they have weird filenames and I lose them and it's annoying. 11:12:41 Is there a nice program for it? 11:13:01 Indexing a bunch of files with a bit of metadata (title, author, notes, etc.) 11:15:50 You could abuse a generic ebook library collection manager (like Calibre) for that, maybe? Though it doesn't sound entirely sensible. 11:16:45 That doesn't sound so bad in principle. 11:16:51 I haven't heard of Calibre -- let me see. 11:18:04 It maintains a metadata database, does format conversions, fetches book info from Amazon/whatever, and has e-reader integramation stuffs. 11:18:13 (Also security bugs.) 11:18:21 Hmm. 11:19:11 Well, I'll download the 20MB and see. 11:19:45 shachaf: Calibre is that one where it installed a buggy setuid program and then the maintainer refused to remove it or something. 11:20:02 Uh oh. 11:20:11 Is that where I heard the name before? 11:20:13 Is it still there? 11:20:18 I don't want to install it if it's still there. 11:20:49 I don't see any suid binaries in this Ubuntu package, at least. 11:21:30 `run echo Testing something right here | hyfinate 11:21:32 Tes-ting so-met-hing right he-re 11:21:54 That's not Finnish! 11:28:42 fizzie: wow this has an actual wizard 11:28:57 With an actual picture of a magic wand and everything. 11:29:34 AttributeError: 'BooksView' object has no attribute 'context_menu' 11:29:45 Heh. 11:29:49 I like the part where it throws exceptions when you right-click things. 11:30:57 This looks like an awful UI but I hate making GUIs so maybe I'll use it. 11:32:11 I wasn't too happy about the UI either. 11:32:36 Does it need to be a GUI thing? 11:33:22 No. 11:33:53 I'm not sure what operations you require. 11:34:25 I'm not quite sure either. 11:34:32 I want to have lots of .pdf, .ps.gz, etc. files 11:34:48 I want them to have metadata, like title, author, notes, and tags-or-something 11:34:55 I want to be able to find them easily by metadata. 11:35:27 Well, for instance, the metadata could be just a text file (or YAML or whatever -- I hear you like YAML) and you could just grep them to find things. 11:35:31 Given those rqeuirements. 11:35:33 *requirements 11:35:42 (A file per PDF, that is.) 11:36:00 Yes, but that's awkward. 11:36:13 Once I grep I have to view the filename and things like that. 11:36:49 I'd also like to be able to filter by tag-or-something, since I have a few different "universes" of PDFs and I want to focus on one at a time. 11:36:58 I suppose in my case maybe just having multiple metadata files is enough. 11:37:09 Right. So you also require integration with a PDF reader (at least to the point of opening the file automatically). 11:37:34 Anyway I think "document search" may be useful keywords? 11:37:55 I wonder whether all I want is searching. 11:38:02 It seems like I want more but I'm not sure what. 11:38:11 If you search for the empty query then you get a list too. 11:38:17 Well, as long as we're searching, full-text search through PDFs that have it would be nice. :-) 11:38:46 * elliott thinks trying to maintain metadata beyond "title, tags, freetext description" is pointless. 11:38:58 And you can merge the latter two, and arguably the first as well. 11:39:29 URL is good. 11:39:33 And author. 11:40:31 Freetext subsumes both. 11:40:40 Maybe... 11:40:42 Not really. 11:40:46 But maybe. 11:40:49 Well, it means that searching will be easier. 11:40:52 -!- ais523 has quit (Ping timeout: 248 seconds). 11:40:53 Since you can just type any old crap. 11:41:04 And it also means that more software will satisfy your requirements, because they'll be weaker. 11:41:10 I also want "original filename of the PDF". 11:41:19 Because I care about that for some reason? 11:41:21 * elliott wonders what possible use you have for that. 11:41:26 Anyway URL subsumes that? 11:41:27 Maybe URL subsumes that. 11:41:29 hi 11:41:41 Assuming the resource doesn't die, and if you're storing e.g. academic papers it's unlikely they'll disappear off the internet entirely. 11:42:02 Resources do die. 11:42:13 Yes, but papers are usually available from multiple locations. 11:42:19 Some of them aren't. 11:42:30 Anyway some sort of "browsing" thing would be good too. 11:42:36 But I'm not sure exactly what it should be. 11:43:05 Why can't the Internet be one big content-addressed thing? 11:43:17 That way things wouldn't disappear. 11:43:36 (They already "don't disappear" -- you just don't know where to find them.) 11:44:16 Anyway, this sounds like a good start. 11:44:24 What satisfies these requirements? 11:44:39 -!- ais523 has joined. 11:46:49 Well, grep + a tiny wrapper shell script, for requirements this minimal. 11:47:22 Also I want to be able to add files easily. 11:47:37 That's another shell script. But I'm not proposing you use shell scripts. 11:48:39 Ugh, I wish I had working → and End keys. 11:48:46 It's very annoying. 11:49:21 shachaf: Rebind capslock as → and shift+capslock as End 11:51:19 Maybe I'll just do it elliott's way. 11:54:21 But then, what if you want to write in all capital letters? 11:54:41 (such as when using with software that doesn't accept lowercase, such as INTERCAL) 11:56:45 I already bind caps lock to Esc. 11:56:54 If I want to write in all capital letters, I'll hold the shift key. 12:01:34 did Psogumma ever go beyond a concept? http://catseye.tc/node/Psogumma.html 12:02:49 Interesting concept 12:03:11 I think the difficulty is in making a good pseudo-random generator 12:05:56 I can't think of any big obstacles off the top of my head 12:09:45 you have a nice parse tree representing a normal bland language, and then whenever you don't know how to translate the next part of psogumma you decide that it must mean one of the valid operations available and use that. 12:09:45 Making it interesting 12:11:25 or really easily it could be a skin for the s k i combinators 12:11:47 -!- jconn has joined. 12:38:06 :t use _1 . acts 12:38:08 (MonadState s ((->) (m a -> f (m a))), Field1 s t b b1, Effective m r f) => (a -> f a) -> b 12:39:23 :t _1 . acts 12:39:25 (Field1 s t (m a) (m a), Effective m r f) => (a -> f a) -> s -> f t 12:40:21 > _1 . acts $ (:[]) [] 12:40:22 Couldn't match expected type `a0 -> f0 a0' with actual type `[a1]' 12:40:36 Wait, what is f 12:40:50 a monad, i think 12:41:09 [] is a monad 12:41:14 > (_1 . acts) (:[]) [] 12:41:16 No instances for (Control.Lens.Tuple.Field1 12:41:16 [a1] t0 (m... 12:41:43 > (_head . acts) (:[]) [] 12:41:44 No instance for (GHC.Show.Show (m0 a0)) 12:41:45 arising from a use of `M37117443... 12:41:47 > (_1 . acts) (:[]) ([], "so") 12:41:49 No instance for (Control.Lens.Internal.Action.Effective [] r0 []) 12:41:49 arisin... 12:41:51 no, "m" is the monad 12:41:53 ouch 12:42:18 oerjan: the Effective/MonadicGetter/MonadicFold stuff isn't very good. 12:42:25 OKAY 12:42:26 it is a source of disappointment 12:50:35 Which lens package should I install? 12:51:00 lens 12:51:29 shachaf, can I use your Free Group type? 12:51:33 It's still a heavy work in progress, isn't it? 12:51:44 It's a heavy work that is in progress 12:51:46 It's pretty solid 12:51:55 Taneb: For what? 12:52:07 Putting in a library and sharing with the world 12:52:15 Oh. Uh, sure? 12:52:39 free group type? 12:52:50 I didn't know it was mine. 12:52:57 > transposeOf (traverse._1) [("testing",1),("ho",2)] 12:52:59 I don't know whether it's actually a free group type. 12:52:59 [[('t',1),('h',2)],[('e',1),('o',2)]] 12:53:09 What is the type? 12:53:22 newtype FreeGroup a = FreeGroup {runFreeGroup :: Group g => a -> g}, I believe 12:53:24 oh right "ragged inputs" 12:53:29 ? 12:53:30 Hang on 12:53:32 It's (a -> g) -> g 12:53:40 Yes, that makes more sense 12:53:51 newtype FreeGroup a = FreeGroup {runFreeGroup :: Group g => (a -> g) -> g} 12:53:58 newtype Foo = Foo { runFoo :: forall g. Group g => (a -> g) -> g } 12:54:00 what's the definition of Group 12:54:03 oerjan: Is that a free group? 12:54:16 How about newtype Free c a = Free { runFree :: forall r. c r => (a -> r) -> r}. 12:54:20 How about newtype Free c a = Free { runFree :: forall r. c r => (a -> r) -> r }. 12:54:22 General, see? 12:54:35 Sure. 12:54:43 Does it actually give you free things always? 12:54:45 shachaf: i think i concluded the other day it was 12:58:05 I find myself unable to write instance Show (Free Show a) 12:59:12 Read (Free Read a) feels difficult also 13:01:22 Taneb: (Show a, c a) => Show (Free c a) should work. 13:01:48 I suggest not writing those instances. 13:03:18 c needs to be something that can be lifted into (r ->) 13:03:35 *lifted with 13:03:58 er r is a bad letter there, try (e ->) 13:04:20 Wouldn't it be (-> r)? 13:04:26 this is easy enough for _actual_ algebraic structures 13:04:28 no. 13:04:39 I think it was the bad letter confusing me 13:04:42 you want instance c x => c (e -> x) 13:05:07 * elliott thinks you just don't want a Show instance at all :P 13:05:21 and Show doesn't have that 13:10:10 > scanl1Of each (+) (1,2,3,4,5) 13:10:13 (1,3,6,10,15) 13:15:05 > partsOf each .~ [42] $ [1..10] 13:15:07 [42,2,3,4,5,6,7,8,9,10] 13:15:26 oh, that scanl1Of is fancy! 13:15:31 I didn't realise that was possible 13:18:39 > let ljust s n = partsOf each .~ s $ replicate n ' ' in ljust "testing" 10 13:18:41 "testing " 13:19:23 ...that may be slightly evil :P 13:19:29 you don't say :P 13:23:14 Just use partsOf traverse instead of artsOf each to make it not evil! 13:23:35 artsOf 13:25:23 just because each and traverse are the same on lists... 13:26:27 oerjan: (shachaf has prejudices.) 13:26:42 OKAY 13:29:33 oerjan: Isn't each slower? 13:29:42 Oh, I guess not, with the Conjoined hack. :-( 13:30:17 no idea about that :P 13:31:34 oerjan: Oh, it's so ugly. You'd hate it. 13:31:43 @ty conjoined 13:31:45 Conjoined p => (p ~ (->) => q (a -> b) r) -> q (p a b) r -> q (p a b) r 13:31:45 OKAY 13:32:03 You provide an indexing and a non-indexing version of the operator. 13:32:19 That way it can choose the second one sometimes for better performance. 13:35:12 (The first one.) 13:35:31 elliott: See previous line. 13:36:02 ? 13:36:17 05:32 You provide an indexing and a non-indexing version of the operator. 13:37:45 :t timingOut 13:37:46 Not in scope: `timingOut' 13:39:13 -!- nooga has quit (Ping timeout: 248 seconds). 13:49:41 -!- Regis_ has joined. 13:53:49 btw, I have to disappear again in like 5 minutes 13:54:06 but the answer to my include files question is, between them they should cover all the default search paths for header files 13:54:48 `welcome Regis_ 13:54:50 Regis_: 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.) 13:56:11 iso646.h is provided by gcc (specifically); setjmp.h always by glibc or the platform's equivalent libc; sys/types.h covers platform-specific paths (which aren't used for ISO/ANSI C headers); limits.h is there because gcc and clang both generate it by patching the system's limits.h, and so it has a path all to itself; and zlib.h is there because some distributions have separate paths for C/POSIX and non-C/POSIX headers, so I needed a commonly 13:56:12 available header that wasn't in either C or POSIX 13:56:33 btw, setjmp.h is absolutely required, because it's the only C89 header that gcc never patches to fix deficiencies in it 13:56:47 I actually read gcc source about that; every single other C89 header can be patched on some platform or another 13:56:56 (and that would move it to the same search path as limits.h) 13:57:28 iso646.h makes for a nice "provided by compiler not libc" header, incidentally, because it's completely platform-independent /and/ missing from glibc 13:57:37 and thus most compilers feel they have to provide it 13:58:04 clang provides it too, for instance 14:00:19 hmm, why doesn't glibc provide it? 14:16:23 -!- boily has joined. 14:32:07 -!- doesthiswork has quit (Quit: Leaving.). 14:34:26 -!- oerjan has quit (Quit: leaving). 14:43:23 Maybe there should be a way to specify which optimisations you expect the compiler to apply to a chunk of code, and it'll warn/error if it can't 14:43:37 I mean can't apply them to the code 14:45:51 -!- nooga has joined. 14:54:13 elliott: probably because gcc does, I guess 14:54:21 also because it's the most portable header in existence 14:54:30 it basically has to define macros with specific names and specific expansions 14:54:33 and that' sit 14:54:34 *that's it 14:54:40 and there isn't even any wiggle room for the expansions 15:06:20 -!- zzo38 has quit (Remote host closed the connection). 15:14:22 -!- ais523 has quit. 15:46:47 -!- nooodl has joined. 16:14:15 -!- ogrom has joined. 16:22:27 -!- azaq23 has joined. 16:22:37 -!- azaq23 has quit (Max SendQ exceeded). 16:39:54 -!- Nisstyre-laptop has joined. 16:41:11 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer). 16:41:43 -!- Nisstyre-laptop has joined. 16:50:47 -!- AnotherTest has joined. 16:50:55 Hello 16:51:00 Hi 16:51:13 mroman: very interesting idea with Büü 16:52:15 Thx. 16:52:55 I wonder whether programs can be predictable 16:53:09 is it possible to predict the numbers in powers of 2? 16:53:25 If so, I think that might be a possible way of doing it 16:53:41 You can compute the collatz sequence. 16:53:49 backwards? 16:53:55 No. 16:53:57 Forwards. 16:54:01 I mean predicting as in 16:54:17 actually I don't mean to say predicting 16:54:32 "writing" is probably a better word here 16:54:45 You want to write a program 16:54:56 (incl. all sub-programs) 16:55:00 Yes, by finding a power of 2 16:55:07 (a good one) 16:55:09 and then find a number which produces your program? 16:55:41 Yes, by predicting what any power of two is going to do 16:55:50 and then reversing that idea 16:56:18 That is, 2^n will produces n sub programs 16:56:26 and they will all be powers of 2 16:56:35 yeah. 16:56:47 The remaining problem is: what digits to these powers of 2 contain 16:57:15 (depending on their exponent) 16:57:34 and then, what will those digits do 16:59:26 It's possible though that this won't work 16:59:41 I actually highly doubt that one can achieve an arbitrary effect at an arbitrary point. 16:59:44 because, for example, a very low power of 2 already has digits that cause something bad 17:00:09 mroman: well you can always try, but I agree 17:03:24 mroman: what about a language similar to Büü, but to make it more complex: 17:04:03 of every subprogram not in the range (0, 9), generate all subprograms according to the current method 17:04:07 -!- Arc_Koen has joined. 17:04:17 There would be lot's of 1's though 17:04:23 and no 0 17:04:59 I don't think it needs to be more complex 17:05:07 it's already completely unusable to program in. 17:05:22 I like the truth machine 17:05:25 how did you find it? 17:05:43 Or just at random 17:05:53 I brute forced it. 17:06:14 mroman: maybe in 10 years it's like real simple to write code in tho 17:06:24 if someone proves collatz conjecture 17:07:40 wont that just mean that there is no Büü programs which yields infinite sub-programs? 17:07:51 that does not make it any simpler to write Büü programs? 17:08:25 Well, yes, but the way of proof probably would provide (and require) more insight in the sequences 17:08:59 probably. 17:09:19 also, it might be possible to predict things like how long it would take for a given number to reach 1 17:09:29 -!- Nisstyre-laptop has quit (Quit: Leaving). 17:09:37 which would be very useful 17:09:55 If you wan't you can write a Büü program which adds two 2bit unsigned numbers :) 17:09:58 *want 17:10:08 -!- Nisstyre-laptop has joined. 17:10:14 but since there is no input 17:10:22 and you have to encode the numbers to add in your program 17:10:29 it influences the behaviour of your program :) 17:10:32 good luck :D 17:10:46 :( 17:10:59 and most certainly will yield different sub-programs to execute of course. 17:11:38 I give €100 to anyone (for real!) who can write a valid brainfuck interpreter in Büü, proving that it is Turing Complete - which it probably isn't but okay 17:12:03 it's probably not. 17:12:22 and you don't need to worry about sub-programs actually. 17:12:30 you can write a single program in Büü 17:12:39 and it will execute that program 17:12:49 and then the behaviour of the rest depends on the collatz sequence 17:13:03 which might cause something totally different to happen? 17:13:04 but if you don't care about what your program does after it's done its job its no problem. 17:14:13 Is Büü turing-complete given it would not compute sub-programs and evaluate those? 17:14:27 or might it be turing-complete if it does so. 17:14:29 I think so, but I'd have to recheck for that 17:14:33 I personally think no. 17:14:52 If you chain an infinite amount of finite state machines together 17:14:54 let me see the wiki page 17:14:59 does that make a turing machine? 17:15:01 probably not. 17:15:27 I would love if it were so of course :D 17:16:15 An infinite amount of finite state machines actually most probably has infinite state 17:16:23 It looks a lot like bitfuck to be honest 17:16:42 or what was that called again 17:17:13 ah smallfuck 17:17:14 http://esolangs.org/wiki/Smallfuck 17:17:22 but they are executed one after another 17:17:27 s/most probably // 17:17:28 which probably indeed yields only finite state. 17:17:50 but they share the same data 17:17:57 I really don't know anything :( 17:18:00 Let me see: 17:18:09 Smallfuck has a * that flips 17:18:17 You have 6 which also flips 17:18:27 Smallfuck has nested loops. 17:18:30 Bueue does not. 17:18:33 aha 17:18:43 it's probably not TC then 17:19:02 4 just jumps back to the last 2 17:19:07 so 2244 17:19:19 they would both jump to the same 2 17:19:25 (the second two to be exact) 17:20:26 it wouldn't be fun if it had real loops :) 17:31:06 -!- boily has quit (*.net *.split). 17:31:06 -!- epicmonkey has quit (*.net *.split). 17:31:07 -!- kallisti has quit (*.net *.split). 17:31:07 -!- Gregor has quit (*.net *.split). 17:31:07 -!- Deewiant has quit (*.net *.split). 17:31:07 -!- elliott has quit (*.net *.split). 17:31:07 -!- constant has quit (*.net *.split). 17:31:08 -!- glogbackup has quit (*.net *.split). 17:31:08 -!- yiyus has quit (*.net *.split). 17:31:08 -!- nortti has quit (*.net *.split). 17:31:08 -!- jconn has quit (*.net *.split). 17:31:08 -!- fftw has quit (*.net *.split). 17:31:09 -!- Jafet has quit (*.net *.split). 17:31:09 -!- coppro has quit (*.net *.split). 17:31:09 -!- myndzi has quit (*.net *.split). 17:31:09 -!- ineiros has quit (*.net *.split). 17:31:09 -!- fungot has quit (*.net *.split). 17:31:10 -!- FireFly has quit (*.net *.split). 17:31:10 -!- shachaf has quit (*.net *.split). 17:31:10 -!- dessos has quit (*.net *.split). 17:31:11 -!- lifthrasiir has quit (*.net *.split). 17:31:11 -!- Nisstyre-laptop has quit (*.net *.split). 17:31:11 -!- Arc_Koen has quit (*.net *.split). 17:31:11 -!- fizzie has quit (*.net *.split). 17:31:12 -!- Regis_ has quit (*.net *.split). 17:31:12 -!- Frooxius has quit (*.net *.split). 17:31:12 -!- SDr has quit (*.net *.split). 17:31:13 -!- ion has quit (*.net *.split). 17:31:13 -!- oklopol has quit (*.net *.split). 17:31:14 -!- heroux has quit (*.net *.split). 17:31:14 -!- copumpkin has quit (*.net *.split). 17:31:14 -!- EgoBot has quit (*.net *.split). 17:31:15 -!- Nisstyre has quit (*.net *.split). 17:31:15 -!- upgrayeddd has quit (*.net *.split). 17:31:15 -!- esomimic has quit (*.net *.split). 17:31:15 -!- jix has quit (*.net *.split). 17:31:15 -!- sivoais has quit (*.net *.split). 17:31:15 -!- HackEgo has quit (*.net *.split). 17:31:15 -!- Vorpal has quit (*.net *.split). 17:31:16 -!- nooodl has quit (*.net *.split). 17:31:16 -!- Slereah has quit (*.net *.split). 17:31:17 -!- Sgeo has quit (*.net *.split). 17:31:17 -!- quintopia has quit (*.net *.split). 17:31:17 -!- Phantom_Hoover has quit (*.net *.split). 17:31:17 -!- md_5 has quit (*.net *.split). 17:31:17 -!- rodgort has quit (*.net *.split). 17:31:17 -!- sebbu has quit (*.net *.split). 17:31:17 -!- aloril has quit (*.net *.split). 17:31:18 -!- nooga has quit (*.net *.split). 17:31:18 -!- efm has quit (*.net *.split). 17:31:18 -!- noam_ has quit (*.net *.split). 17:31:18 -!- hogeyui has quit (*.net *.split). 17:31:18 -!- ssue has quit (*.net *.split). 17:31:18 -!- lahwran has quit (*.net *.split). 17:31:18 -!- clog has quit (*.net *.split). 17:31:19 -!- TodPunk has quit (*.net *.split). 17:31:19 -!- tswett has quit (*.net *.split). 17:31:19 -!- oonbotti has quit (*.net *.split). 17:31:19 -!- kmc has quit (*.net *.split). 17:31:20 -!- FreeFull has quit (*.net *.split). 17:31:20 -!- augur has quit (*.net *.split). 17:31:20 -!- sirdancealot7 has quit (*.net *.split). 17:31:20 -!- stuntane has quit (*.net *.split). 17:31:20 -!- SimonRC has quit (*.net *.split). 17:31:20 -!- lambdabot has quit (*.net *.split). 17:31:20 -!- Taneb has quit (*.net *.split). 17:31:21 -!- SirCmpwn has quit (*.net *.split). 17:31:21 -!- Gracenotes has quit (*.net *.split). 17:31:21 -!- tromp_ has quit (*.net *.split). 17:31:21 -!- surma has quit (*.net *.split). 17:31:21 -!- mroman has quit (*.net *.split). 17:31:21 -!- AnotherTest has quit (*.net *.split). 17:31:21 -!- Sanky has quit (*.net *.split). 17:31:22 -!- mtve has quit (*.net *.split). 17:31:22 -!- Lumpio- has quit (*.net *.split). 17:36:46 -!- Nisstyre-laptop has joined. 17:36:46 -!- Arc_Koen has joined. 17:36:46 -!- AnotherTest has joined. 17:36:46 -!- nooodl has joined. 17:36:46 -!- nooga has joined. 17:36:46 -!- boily has joined. 17:36:46 -!- Regis_ has joined. 17:36:46 -!- jconn has joined. 17:36:46 -!- fftw has joined. 17:36:46 -!- Phantom_Hoover has joined. 17:36:46 -!- FreeFull has joined. 17:36:46 -!- epicmonkey has joined. 17:36:46 -!- Taneb has joined. 17:36:46 -!- Frooxius has joined. 17:36:46 -!- sebbu has joined. 17:36:46 -!- aloril has joined. 17:36:46 -!- SirCmpwn has joined. 17:36:46 -!- copumpkin has joined. 17:36:46 -!- dessos has joined. 17:36:46 -!- elliott has joined. 17:36:46 -!- EgoBot has joined. 17:36:46 -!- Slereah has joined. 17:36:46 -!- efm has joined. 17:36:46 -!- SDr has joined. 17:36:46 -!- esomimic has joined. 17:36:46 -!- augur has joined. 17:36:46 -!- fungot has joined. 17:36:46 -!- Jafet has joined. 17:36:46 -!- Nisstyre has joined. 17:36:46 -!- coppro has joined. 17:36:46 -!- glogbackup has joined. 17:36:46 -!- sivoais has joined. 17:36:46 -!- Sgeo has joined. 17:36:46 -!- quintopia has joined. 17:36:46 -!- fizzie has joined. 17:36:46 -!- noam_ has joined. 17:36:46 -!- myndzi has joined. 17:36:46 -!- sirdancealot7 has joined. 17:36:46 -!- upgrayeddd has joined. 17:36:46 -!- Lumpio- has joined. 17:36:46 -!- oonbotti has joined. 17:36:46 -!- HackEgo has joined. 17:36:46 -!- mroman has joined. 17:36:46 -!- md_5 has joined. 17:36:46 -!- hogeyui has joined. 17:36:46 -!- oklopol has joined. 17:36:46 -!- Vorpal has joined. 17:36:46 -!- Gregor has joined. 17:36:46 -!- ssue has joined. 17:36:46 -!- stuntane has joined. 17:36:46 -!- Deewiant has joined. 17:36:46 -!- jix has joined. 17:36:46 -!- Gracenotes has joined. 17:36:46 -!- shachaf has joined. 17:36:46 -!- Sanky has joined. 17:36:46 -!- constant has joined. 17:36:46 -!- nortti has joined. 17:36:46 -!- yiyus has joined. 17:36:46 -!- ineiros has joined. 17:36:46 -!- FireFly has joined. 17:36:46 -!- lifthrasiir has joined. 17:36:46 -!- ion has joined. 17:36:46 -!- heroux has joined. 17:36:46 -!- kmc has joined. 17:36:46 -!- lambdabot has joined. 17:36:46 -!- tswett has joined. 17:36:46 -!- surma has joined. 17:36:46 -!- clog has joined. 17:36:46 -!- TodPunk has joined. 17:36:46 -!- tromp_ has joined. 17:36:46 -!- rodgort has joined. 17:36:46 -!- SimonRC has joined. 17:36:46 -!- mtve has joined. 17:36:46 -!- lahwran has joined. 17:37:15 -!- glogbackup has left. 17:45:23 Hm. Wikipedia rhetorically asks whether you could assign a meaning to a lambda calculus term, and states that the "natural semantics" is to find a set D isomorphic to the function space D -> D of functions on itself. 17:45:43 It then points on that no nontrivial such D can exist, bceause the set of all functions D -> D has greater cardinality than D. 17:46:20 In NFU, though, that's not true. V is the set of everything, and the set of all functions V -> V has *smaller* cardinality than V. 17:47:03 then edit the page 17:47:42 Nah. What the page says is true in ordinary set theory. 17:48:24 so you can give semantics for the LC in NFU as long as you admit non-function primitive types :P 17:49:01 Well, NFU certainly also has sets S such that the set of all functions S -> S is larger than S. 17:49:04 For example, {1, 2, 3}. 17:49:07 -!- augur has quit (Remote host closed the connection). 17:49:18 So maybe it has a set S such that S has the same cardinality as S -> S. 17:49:48 -!- augur has joined. 17:50:18 What about the set S = { x | x is a function with domain and codomain S }... nope, that's a recursive definition. 17:51:02 Okay, technically S = {1} is such a function. 17:51:20 -!- Taneb has quit (Quit: Leaving). 17:52:21 imo set theory is lame 17:52:44 Yeah, it's totally lame. It gets in the way of category theory. 17:54:39 it's all gross and untyped! 17:54:48 That too. 17:54:54 and it has all these lame axioms for nerds 17:54:58 -!- augur has quit (Ping timeout: 276 seconds). 17:55:25 and it doesn't even have a nice first-class proof representation!! 17:55:54 Maybe the calculus of constructions is better. 17:56:24 -!- Bike has joined. 17:58:49 something about homotopy type theory 18:21:44 -!- Nisstyre-laptop has quit (Quit: Leaving). 18:21:44 AnotherTest: You spelled my name wrong ;) 18:22:17 mroman: oh edit that please 18:22:24 I looked at your userpage to find it 18:22:32 although probably misread it there 18:22:58 Oh it's "Roman Muentener" 18:23:02 not Muenter 18:23:09 fixed 18:23:21 oh you were faster :) 18:23:43 it's actually even ü instead of ue 18:25:33 Roman Müntener, then? 18:25:37 Yes. 18:26:52 AnotherTest: It's getting DSLs btw ;) 18:27:19 I figured to increase its expressiveness even more it might be neat 18:27:36 to switch between different embedded DSLs 18:27:44 so one can just the most appropriate. 18:27:54 DSL = ? Domain specific language? sorry 18:27:59 Yes. 18:28:03 oh ok 18:28:34 So you're going to embed languages inside Burlesque? 18:28:51 Sort of using eval instructions? 18:29:08 Sounds great 18:29:19 Yep @embed 18:30:33 I'm currently working on a DSL to manipulate text. 18:30:50 Embed perl. 18:30:52 Great success. 18:31:03 or sed 18:31:21 I don't want to have anything to do with perl ;) 18:31:33 so no regual expressions? 18:31:39 regal expressions 18:31:39 regal expressions 18:31:46 olsner: ⁵ 18:32:17 s/regual/regular of course 18:32:19 :( 18:32:48 there will be regular expressions of course. 18:32:56 Burlesque already has them. 18:33:10 but they can be accessed with fewer keystrokes in my DSL 18:33:42 important design criteria 18:33:54 -!- augur has joined. 18:33:57 > [head] ?? [3] 18:33:59 [3] 18:34:02 > [head] ?? [] 18:34:05 [*Exception: Prelude.head: empty list 18:34:09 :D 18:34:26 :t (??) 18:34:28 Functor f => f (a -> b) -> a -> f b 18:34:30 You should consider extending the regular expression syntax I think 18:35:32 Irregular expressions 18:35:47 Bike: Exactly. 18:36:19 > [head] ?? [3,9] 18:36:22 [3] 18:37:05 Is the function [a] -> [a] where the list returned only has the first element, or is empty, useful for anything? 18:37:07 You should use Snobol syntax. 18:37:24 > take 1 [] 18:37:26 [] 18:37:51 I guess with tail 1, you wouldn't need a less generic function 18:38:01 How about one that works for all functors though? 18:38:22 Hmm 18:38:33 Are there functors that can't be empty? 18:38:58 Wait, doesn't matter 18:39:10 If the functor isn't empty, you can always take the first element anyway 18:40:07 So either :: (Functor f) => f a -> f a or :: (Functor f, Integral n) => f a -> n -> f a 18:41:21 I think it should work for all functors, but I don't know if the type system would allow such a function 18:42:19 Note that IO and (e ->) (for any e, possibly unordered) are Functors. 18:42:30 If you think you have something that works for every Functor then those are two good ones to consider. 18:43:58 For IO it'd just be id 18:44:17 Are you suggesting IO is always "empty"? 18:44:42 * elliott doesn't think the concept is well-defined but note that you can define IO as just a plain free monad and your definition had better agree for that form 18:45:22 No, IO is never empty 18:45:32 And () doesn't count as empty here 18:46:10 Hmm, (->) e 18:48:30 elliott: I'm thinking lists have constructors that take either zero or two arguments. You construct an IO value using return, which always has one argument 18:49:13 And for any functor which only contains one value, :: (Functor f) => f a -> f a should be id 18:49:24 Is Identity empty? Note that your answer must coincide for (->) e when e = (). 18:49:33 I'm suddenly reminded of my "replace" function. 18:50:00 The notion of functors "containing values" is misleading (again IO and (->) e being standard examples to show why it's problematic), is the fundamental problem here. 18:50:23 Well, IO doesn't really contain a value 18:50:39 replace head 'q' "elephant" === "qlephant"; replace last 50 [1,2,3,4] === [1,2,3,50]; replace (head . tail) True [False, False, False] === [False, True, False]; and so on. 18:52:44 For (->) e you'd have :: ((->) e) -> ((->) e) 18:53:03 Which has to return the exact same thing it was given 18:53:53 Could call it fhead 18:54:18 @hoogle (Functor f) => f a -> f a 18:54:19 Control.Monad void :: Functor f => f a -> f () 18:54:19 Prelude fmap :: Functor f => (a -> b) -> f a -> f b 18:54:19 Data.Functor fmap :: Functor f => (a -> b) -> f a -> f b 18:55:38 Is this not id? 18:55:48 I don't know how to implement it though, I don't think it can be done in terms of fmap or <$ 18:55:53 Prove me wrong 18:57:39 18:52:43 For (->) e you'd have :: ((->) e) -> ((->) e) 18:57:42 that type isn't even valid :P 18:58:05 elliott: Oh yeah 18:58:16 It'd be :: ((->) e a) -> ((->) e a) 18:59:13 -!- epicmonkey has quit (Ping timeout: 248 seconds). 18:59:23 Does (->) e or whatever have a name other than "reader monad" to distinguish it from the more "official" reader monad? 18:59:43 I just keep calling it reader monad which I guess can be confusing to some 19:00:17 There should be 19:00:39 I'd be tempted to call it a function constructor, although that's wrong 19:02:04 I don't know if it's possible to write fhead without writing a separate one for all functors, although it feels like there should be a way 19:03:23 What does fhead do? Sorry, wasn't paying attention 19:04:42 Try writing it for Cont. That's not all functors, but if you can do that, then I think you can write it for all monads at least, and so you at least have it for some functors 19:05:07 And Cont is a functor, so you need to be able to write it for Cont 19:06:05 :t cont 19:06:07 ((a -> r) -> r) -> Cont r a 19:06:23 Sgeo: Lemme get the package 19:07:02 Oh, got it installed 19:08:03 I should try to understand cont 19:08:10 It's delimited continuations, I think 19:08:18 Shouldn't be too difficult really 19:08:24 Well, I don't grok the types anyway 19:08:29 Well, the functor instance is for ContT 19:08:45 Sgeo: I'm looking at its source now 19:08:52 http://hackage.haskell.org/packages/archive/mtl/1.1.0.2/doc/html/src/Control-Monad-Cont.html 19:08:58 Dunno if that's newest 19:09:19 -!- SirCmpwn has quit (Excess Flood). 19:10:21 Uh, why does it have callCC? 19:12:04 callCC's name implies undelimited continuation 19:12:41 -!- SirCmpwn has joined. 19:15:06 Is Cont basically function composition? 19:15:14 But wrapped up 19:16:45 It's basically delimited continuations 19:17:10 Remember that with monads, the second argument to >>= is conceptually a continuation 19:19:38 -!- SirCmpwn has quit (Excess Flood). 19:21:13 -!- SirCmpwn has joined. 19:24:19 -!- ogrom has quit (Quit: Left). 19:24:24 -!- carado has joined. 19:25:38 "[...] and π ≈3.1416 and e ≈ 2.7183." gee, thanks wikipedia 19:25:39 nooodl: You have 2 new messages. '/msg lambdabot @messages' to read them. 19:31:04 -!- xirhfisgd has joined. 19:31:54 -!- RobotSystem has joined. 19:32:11 hi every1 19:33:19 -!- RobotSystem has quit (Read error: Connection reset by peer). 19:33:47 -!- xirhfisgd has left. 19:34:10 -!- efm has quit. 19:34:18 -!- efm has joined. 19:38:32 `olist 19:38:34 shachaf oerjan Sgeo 19:39:35 -!- Regis_ has quit (Ping timeout: 252 seconds). 19:40:03 `olist 19:40:05 shachaf oerjan Sgeo 19:40:07 `list 19:40:11 cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover 19:40:28 wut 19:40:31 `cat bin/list 19:40:33 ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover 19:41:00 WUT 19:41:09 wtf 19:41:09 What's so WUT? 19:41:16 Although, how did HackEgo get on there 19:41:30 Presumably two commands were sent to HackEgo near the same time. 19:41:42 seems like it... 19:41:57 Y'know, oldpwd is always the same. 19:41:57 `pwd 19:41:59 ​/hackenv 19:42:39 `list 19:42:46 cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover 19:43:01 Would be nice if it showed the new name too 19:43:07 yeah 19:43:16 `cat bin/olist 19:43:17 echo shachaf oerjan Sgeo 19:43:21 `cat bin/list 19:43:21 I think I prefer it this way. it's sneaky. 19:43:22 ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti 19:43:22 Maybe if it added one, make it call itself and exit before its own echo 19:44:24 http://codu.org/logs/log/_esoteric/2013-02-07#215457elliott is approximately when HackEgo gets on it. 19:44:43 ah. now I get it. there is no end of line at the end 19:44:52 -!- AnotherTest has quit (Quit: Leaving.). 19:51:50 Sgeo: I'd hesitate to say that Cont is for delimited continuations. 19:53:27 The "limit" of callCC is the entire computation; there's no reset operator. 19:59:20 Hmm 19:59:21 http://en.wikibooks.org/wiki/Haskell/Continuation_passing_style 19:59:28 pythagoras_cps is valid syntax? 19:59:47 That seems... like even writing manually CPSed code in Haskell is nicer than in, say, node.js 20:01:12 * FreeFull checks what happens when you fmap over Cont 20:02:39 -!- GreyKnight has quit (Remote host closed the connection). 20:02:49 -!- neutrak has joined. 20:03:37 okay quintopia, what is this bot? 20:03:40 @tell neutrak hi 20:03:40 Consider it noted. 20:03:47 k 20:03:48 neutrak: You have 1 new message. '/msg lambdabot @messages' to read it. 20:03:53 hm, I see 20:03:58 it's like unix mail 20:04:17 @tell lambdabot hi 20:04:18 Nice try ;) 20:04:34 auto-deleting I guess, but other than that it seems exactly like sendmail 20:05:08 Sgeo: have you seen Ralph Loader's loader.c, the one that produces an extremely large number? 20:05:18 Nope. 20:05:39 It's described here: http://djm.cc/bignum-results.txt 20:05:54 -!- neutrak has quit (Client Quit). 20:06:12 If I'm not mistaken, Loader's number is much larger than TREE(3), which is much larger than Graham's number. 20:08:16 tswett, with the k that the function passed to callCC gets, will that k return something sensible when given a value? 20:08:55 Well, yeah. It returns a value of type forall b. Cont r b. 20:08:56 {loader.c} very big very big 20:10:03 It never produces a value of type forall b. b, though; the code beyond the call to k simply doesn't run. 20:10:33 :/ 20:10:44 So, not comparable to shift 20:10:49 that's a pretty cool program. 20:11:05 Hm, I don't remember how shift works. 20:11:08 -!- DHeadshot has joined. 20:11:15 Let me look up shift, again. 20:11:49 Okay, so "the shift operator captures or reifies the current continuation up to the innermost enclosing reset". 20:13:06 http://subtextual.org/subtext2.html peculiar, but interesting 20:13:16 -!- Regis_ has joined. 20:13:17 -!- epicmonkey has joined. 20:13:29 callCC does capture the current continuation, I suppose, but once you run that continuation, if the continuation finishes executing, then the entire computation has finished executing. 20:13:45 Similar to shift, then, I guess, but not the same. 20:16:23 Sgeo: Would fhead x = cont $ runCont x be a valid implementation you think? 20:16:33 It's either that or id 20:16:42 I think that is id 20:16:46 Hm. I wonder how you'd simulate a "singleton object" in Haskell. Like, a value that cannot be copied or destroyed. 20:17:54 How would you express the type of a function that doesn't copy, destroy, or examine its argument, simply returning a structure that contains one copy of it? 20:18:24 Well, if the type is general, the number of operations that can be done on it is limited 20:18:37 id :: a -> a can't possibly, say, add 1 to argument 20:18:53 Although does copying count as an operation? Probably not? 20:19:11 Right. There's a function of type forall a. a -> (a, a); that copies the a. 20:19:36 I think (forall a. (a -> b a, b a -> a)) seems close. The "a -> b a" part is the main function. The "b a -> a" part ensures that the "b a" does in fact contain an "a", and also forces the function to select one particular copy of the "a". 20:20:36 So you can't have b = Maybe, because there's no function forall a. Maybe a -> a. 20:21:22 But if data Pair a = P a a, then you could have b = Pair, and so now you're violating the no-copy restriction. 20:21:40 Does cont $ runCont evaluate the continuation or leave it as is? 20:21:54 :t cont . runCont 20:21:56 Cont r a -> Cont r a 20:22:09 :t cont 20:22:10 ((a -> r) -> r) -> Cont r a 20:22:11 :t runCont 20:22:12 Cont r a -> (a -> r) -> r 20:22:36 Looks like it leaves it as is. 20:22:38 :t cont $ runCont 20:22:39 Couldn't match expected type `a0 -> r0' 20:22:40 with actual type `Cont r1 a1' 20:22:40 Expected type: (a0 -> r0) -> r0 20:22:47 -!- DHeadshot has quit (Ping timeout: 244 seconds). 20:22:50 You're not evaluating the continuation until you pass an "a -> r" in. 20:23:37 ((a -> r) -> r) looks like fix's signature 20:23:39 cont . runCont $ x is a computation that, when run, asks for an "a -> r" and then passes it on to x. 20:23:42 Incidentally, asking you to write it for Cont is a Super Sneaky (TM) way of asking you to write it for all monads. I think. 20:24:09 Oh yeah, every monad in Haskell is isomorphic to a Cont monad. 20:24:13 Because you can implement all monads in terms of Cont? 20:24:27 Well, it makes things easier 20:24:33 So what's fhead, again? 20:24:36 :t fhead 20:24:37 Not in scope: `fhead' 20:24:37 Perhaps you meant one of these: 20:24:37 `head' (imported from Data.List), 20:24:47 tswett, the function that FreeFull is trying to writr 20:24:48 write 20:24:56 Well, what's it supposed to do? 20:25:15 Uh. Ask FreeFull. But its type is apparently (Functor f) => f a -> f a 20:25:28 tswett: For lists, it's the same as take 1 20:25:40 For a tree, it'll return the root node 20:25:49 For a stream.... 20:25:54 Wtf would it do for a stream 20:25:57 I'm pretty sure that's impossible. 20:26:02 Maybe you should make a new typeclass? 20:26:24 For IO and (e ->) it'd be just id 20:26:33 streams are functors, right? 20:26:40 The only way you can make it work for all functors is by writing it using only fmap. 20:26:45 And you can't do that using only fmap. 20:27:00 "Stream" is a functor, yes. 20:27:05 The problem with a stream is that it always contains an infinite number of values 20:27:10 So you can't just take one 20:27:24 You could take one and repeat it 20:27:31 But I don't know if that's a reasonable thing to do 20:27:52 FreeFull, this is an operation that can mean different things for different types, right? As such, it's an operation on an open-ended collection of types. It's a function that should be a method of a new typeclass. 20:28:18 Or find a different typeclass that it makes sense to implement fhead in terms of 20:28:31 Yeah, that's what I was thinking. It should belong to a new typeclass. 20:28:43 Or find a typeclass that already lets you do this somehow. 20:29:34 If your intuition claims that this should apply to all functors, your intuition about what a functor is is wrong. 20:29:36 "is is" 20:29:51 Functor only has fmap and <$ 20:30:02 :t (<$) 20:30:04 Functor f => a -> f b -> f a 20:30:25 http://dkeenan.com/Lambda/ this 20:30:30 :t fmap . const 20:30:31 Functor f => b -> f a -> f b 20:30:35 the idiot bird 20:30:58 -!- oerjan has joined. 20:32:46 Sgeo: I already thought of a functor this doesn't work for 20:32:55 Unless you do the repeat tihnig 20:32:58 thing* 20:33:43 nooga: Graphical notations always leave me confused and wondering what the hell they mean 20:36:53 -!- GreyKnight has quit (Ping timeout: 256 seconds). 20:37:45 tswett, is cont shift? 20:37:48 :t cont 20:37:49 ((a -> r) -> r) -> Cont r a 20:38:01 :t shift 20:38:02 Bits a => a -> Int -> a 20:38:06 Wrong shift 20:38:06 Isn't it more like reset, if anything? 20:38:14 :t reset 20:38:15 Not in scope: `reset' 20:38:27 > shift 20 1 20:38:29 40 20:38:30 Hm. 20:38:34 oops 20:38:35 cont $ \k -> ... 20:38:38 > shift 1 20 20:38:40 1048576 20:38:51 Yeah, cont still has no way of accessing the stuff around it. 20:38:55 What does k do there? 20:39:18 Uh, hmm. k :: a -> r, right? 20:39:34 yes 20:40:06 I guess k is just the function that runCont passed in. 20:40:14 Mm, lemme think. 20:40:29 I remember seeing elliott do somethign with my function that needed shift and reset, and pretty much used my code to run inside shift inside cont 20:41:46 Yeah, I don't think it does anything special. 20:42:04 Hm, maybe we could try to figure out how to create delimited continuations. 20:42:16 Lemme see if I can transliterate a shift/reset example into using cont 20:42:39 "reset" provides a context that "shift" runs in. "shift" does something within that context. 20:42:44 @tell AnotherTest is it possible to predict the numbers in powers of 2? <-- i recall we had a discussion of whether every power of 2 beyond the apparent last exception contain the digit 0; it seems to be heuristically almost certain, but proving it is an open problem. so don't expect too much predictable structure... 20:42:44 Consider it noted. 20:43:32 > (`runCont` id) $ do { r <- cont $ \k -> do {k 5}; return (r+1) } 20:43:34 6 20:43:41 So (reset foo), where foo is a computation-needing-a-context, is the result of the computation. reset has the type Del a -> a, or something like that. 20:44:07 I think (`runCont` id) is reset and cont is shift 20:44:47 I guess (`runCont` id) does seem pretty reset-like, but cont isn't shift-like, is it? 20:45:07 Look at what k does. It does the surrounding and returns its result 20:45:25 > (`runCont` id) $ do { r <- cont $ (\k -> do {k 5}); return (r+1) } 20:45:27 6 20:45:38 :t cont (\k -> k 5) 20:45:39 Num a => Cont r a 20:45:49 That's just "return 5". 20:46:17 Equivalent to it, anyway. 20:46:32 > (`runCont` id) $ do { r <- cont $ (\k -> do {v <- k 5; w <- k 6; return (k+w)}); return (r+1) } 20:46:34 Occurs check: cannot construct the infinite type: 20:46:34 t0 = m0 t0 -> m0 t0 20:46:46 Anyway, what's the context that shift runs in, and what does it do? Well, it gives you a function of type (a -> b), where a is the thing that shift is supposed to return, and b is the eventual return type of the entire calculation. 20:47:19 So Del needs to be parameterized over the eventual return type. reset only works when the "eventual return type" is equal to the type actually being returned, so reset :: Del a a -> a. 20:48:15 Is (shift k (k 5)) not just a thing that is equivalent to 5? 20:48:20 FreeFull: yeah, but that one is quite clever 20:48:30 That's also equivalent to 5, yeah. 20:48:54 But there's no way to do, like, (shift k (k (k 5))) here. I think. 20:49:00 nooga: What, binary shift? 20:49:13 Okay, in (shift foo), foo *takes* the function of type (a -> b), and returns, oh, some thing. shift then returns that same thing. So... 20:49:39 shift :: ((a -> r) -> a) -> Del r a? 20:50:16 > (`runCont` id) $ do {r <- cont $ (\k -> a <- k 5; b <- k a; return b); return (r+1)} 20:50:18 :1:43: parse error on input `<-' 20:50:27 > (`runCont` id) $ do {r <- cont $ (\k -> do a <- k 5; b <- k a; return b); return (r+1)} 20:50:28 Occurs check: cannot construct the infinite type: t0 = m0 t0 20:50:32 GAH 20:51:29 Hm. I don't immediately see anything wrong with that. 20:51:30 > (`runCont` id) $ do {r <- cont $ (\k -> do a <- k 5; return a); return (r+1)} 20:51:32 No instance for (GHC.Num.Num (m0 t0)) 20:51:32 arising from a use of `e_151' 20:51:32 Pos... 20:51:44 What type does k return? 20:51:54 :t cont 20:51:56 ((a -> r) -> r) -> Cont r a 20:52:19 So k returns an "r". 20:52:36 > (`runCont` id) $ do {r <- cont $ (\k -> do a <- k 5; b <- k a; b); return (r+1)} 20:52:38 Occurs check: cannot construct the infinite type: t0 = m0 t0 20:53:06 > (`runCont` id) $ do {r <- cont $ (\k -> do a <- k 5; return a); return (r+1)} 20:53:08 No instance for (GHC.Num.Num (m0 t0)) 20:53:08 arising from a use of `e_151' 20:53:08 Pos... 20:53:18 -!- kallisti has joined. 20:53:26 So when you're doing "a <- k 5; b <- k a", you're expecting r to be the same thing as Integer or whatever. 20:53:28 Hmm, cont doesn't actually take a monadic thingy 20:53:45 > (`runCont` id) $ do {r <- cont $ (\k -> k (k 5)); return (r+1)} 20:53:47 7 20:53:52 Oh yeah, "a <- k 5" doesn't really even make sense. 20:54:01 Huh, what just happened... 20:54:08 -!- carado has quit (Ping timeout: 256 seconds). 20:54:16 -!- GreyKnight has changed nick to CrayKnight. 20:54:17 I stopped assuming that cont wanted to take a monadic value. 20:54:19 It was a bad assumption. 20:54:28 :t do {r <- cont $ (\k -> k (k 5)); return (r+1)} 20:54:29 Num b => ContT b Identity b 20:54:31 That does look like a delimited continuation indeed. 20:55:54 Hm, I think I'm leaving something out of my delimited continuation stuff. 20:56:29 Like, you can say "shift :: ((a -> r) -> a) -> Del r a". But that makes it so that neither the exterior of shift (of type a -> r) nor the interior of shift (of type (a -> r) -> a) can do any monad stuff. 20:56:57 Well, working with the pure Cont monad, as opposed to ContT.... what monad stuff? 20:57:02 Maybe it ought to be this: shift :: ((a -> Del r r) -> Del r a) -> Del r a 20:57:17 I'm not sure where it makes sense to do monad stuff. 20:57:20 kmc: https://twitter.com/glitchr_/ 20:57:24 BRB; grabbing a sandwich from the fridge. 20:59:12 -!- hagb4rd has joined. 20:59:44 All right. 21:00:32 :t replace 21:00:33 Not in scope: `replace' 21:00:43 :t upon 21:00:45 (Data.Data.Data a, Data.Data.Data s, Applicative f, Indexable [Int] p) => (s -> a) -> p a (f a) -> s -> f s 21:01:19 @let replace f = over (upon f) 21:01:22 Defined. 21:01:32 > replace is it possible to predict the numbers in powers of 2? 21:01:35 :1:61: parse error on input `in' 21:01:35 argh 21:01:46 > replace head 'q' "elephant" 21:01:49 Couldn't match expected type `p0 b0 b0' 21:01:49 with actual type `GHC.... 21:01:51 darn 21:02:06 replace isn't a library function; I wrote it myself. 21:02:06 FreeFull: it's get interesting when he talks about polymorphism and dataflow, the last third of the video 21:02:27 tswett: did you use upon? 21:02:33 Nope. 21:03:10 > upon head .= 'q' $ "elephant" 21:03:11 I think it only required that the container type belong to Functor. 21:03:12 No instance for (Control.Monad.State.Class.MonadState 21:03:12 [... 21:03:29 huh 21:03:38 oops 21:03:44 > upon head .~ 'q' $ "elephant" 21:03:46 "qlephant" 21:03:51 there you go 21:04:03 @undefine 21:04:17 :t (upon head .~ 'q') 21:04:19 [Char] -> [Char] 21:04:22 @let replace f = set (upon f) 21:04:22 Mm. 21:04:24 Defined. 21:04:25 :t (upon head .~) 21:04:26 Data.Data.Data b => b -> [b] -> [b] 21:04:39 > replace last 50 [1,2,3,4] 21:04:42 [1,2,3,50] 21:05:07 > replace (head . tail) True [False, False, False] 21:05:09 [False,True,False] 21:05:26 yep, that gives all your examples from the log :) 21:05:56 I think that with my function, you could have done replace ($ True) "yes" (\x -> if x then "si" else "no") === (\x -> if x then "yes" else "no"). 21:06:19 :t replace 21:06:20 (Data.Data.Data t, Data.Data.Data b) => (t -> b) -> b -> t -> t 21:06:20 Given an instance of Functor for (->) Bool. 21:06:40 What the heck is Data.Data.Data, anyway? 21:06:43 :t (head . tail) 21:06:45 [b] -> b 21:06:58 Oh yeah 21:07:02 that's just the second element 21:07:08 tswett, it provides Brent Spinner 21:07:29 Ah, of course. 21:07:31 @docs Data.Data 21:07:32 Data.Data not available 21:07:36 @docs Data 21:07:37 Data not available 21:07:40 *Spiner 21:08:08 tswett: the automatically derived (or derivable?) type class for getting reflection about a type in ghc haskell 21:08:10 Data is a subset of Typeable with some extra stuff 21:08:37 I see. 21:08:53 DerivingDataTypeable 21:08:54 iirc 21:09:10 Right, so. 21:09:37 The first function is the "selector function", taking the container and returning one of its elements. The second function is the desired new element. 21:09:40 Yeah, lemme see. 21:09:47 the lens documentation listed certain limitations about what you could pass to upon :) 21:09:54 > replace ($ True) "yes" (\x -> if x then "si" else "no") True 21:09:56 No instance for (Data.Data.Data 21:09:56 (GHC.Types.Bool -> [GHC... 21:10:24 Oh, it's DeriveDataTypeable 21:11:29 Let me find my "replace" function. 21:11:31 oerjan: You could generalise replace to take a function (b -> c) rather than a value 21:12:05 FreeFull: naturally, since upon gives a lens or is it prism 21:12:12 Hmm. If functions could be changed (hopefully by the dev) at runtime, all functions would have IO surrounding their entire type 21:12:36 > replace head 'a' "" 21:12:37 So in main, the actual function is unpacked with its current value in the IO monad 21:12:39 "" 21:12:48 looks prismy 21:13:06 So the developer does in fact have control over which version of a function gets used 21:13:27 > replace (const True) False "hello" 21:13:29 "hello" 21:13:32 oerjan: Does it swallow all exceptions? 21:13:43 > replace undefined 'a' "b" 21:13:45 -!- zzo38 has joined. 21:13:45 "b" 21:13:49 > replace id "goodbye" "hello" 21:13:51 "hello" 21:13:58 Hmmm. 21:14:16 FreeFull: i'm not sure it ever really applies the function given :P 21:14:32 :t replace 21:14:33 (Data.Data.Data t, Data.Data.Data b) => (t -> b) -> b -> t -> t 21:14:47 Anyway, no, it turns out that my "replace" only works with a specific typeclass I defined. 21:14:48 All functions would need to be in the IO monad to be able to use these volatile functions. Either that, or get the version of the function to use passed to them, which feels similar to dependency injection 21:15:14 But then, the list of dependencies could change 21:15:14 AIEEE 21:15:41 Though maybe I could get "replace" to work with any functor. Lemme see. 21:16:53 This is the type I want: Functor f => (forall t. f t -> t) -> t -> f t -> f t 21:17:05 Uh, let me change that. 21:17:15 Functor f => (forall t. f t -> t) -> a -> f a -> f a 21:18:05 I can give you a function that satisfies that type 21:18:31 Can you give me two different total functions that satisfy that type? 21:18:34 replace _ _ y z = y <$ z 21:18:42 Ooh. 21:18:59 Okay, how about *three*? 21:19:18 Wait, no 21:19:30 Anyway, we have our container; let's say it's the string "hello". We also have a selector; let's say it's head. Then we have the new value; let's say it's 'b'. 21:19:49 replace _ a y _ = y <$ a 21:19:59 No 21:20:01 Other way around 21:20:03 -!- Gracenotes has quit (Ping timeout: 255 seconds). 21:20:09 replace _ a y _ = a <$ y 21:20:14 replace _ a _ z = a <$ z 21:20:15 -!- monqy has joined. 21:20:37 We want to explode the string "hello" into the list [\x -> [x] ++ "ello", \x -> "h" ++ [x] ++ "llo", \x -> "he" ++ [x] ++ "lo", \x -> "hel" ++ [x] ++ "o", \x -> "hell" ++ [x]]. 21:20:44 Regis_: replace only takes three arguments. 21:20:50 Uhh. 21:20:54 FreeFull: replace only takes three arguments. 21:20:55 Oh right 21:21:04 replace _ a y = a <$ y 21:21:08 There's one 21:21:17 Yeah, I guess I can think of countably infinitely many. 21:21:23 -!- efm has quit. 21:21:31 You can, as many times as you like, apply the selector, then use <$. 21:21:48 tswett: The result will be the same though 21:21:56 -!- Gracenotes has joined. 21:21:56 Or should be 21:22:13 Anyway, it should be possible to explode any functor in the way I just described. 21:22:38 I mean, I think that explosion is a natural transformation or what have you. 21:22:41 So it fmaps ... what operation 21:22:45 But I'm not sure it can actually be implemented. 21:22:47 Hmm. I think you need pure. 21:22:49 It doesn't just fmap an operation. 21:23:03 And something else too 21:23:50 Mm, natural transformations "touch the structure but not the data", don't they? This certainly touches the data, in a sense. 21:24:00 It replaces it with other data, but doesn't actually look at it. 21:24:38 I guess that ultimately, given a container, the only thing you can do with it is to use it as an argument to fmap. 21:25:25 So I think that this can't be implemented. 21:25:47 fmap touches the data, but it touches all of it 21:26:25 tswett, it replaces the data in a way that depends on the nature of the container 21:28:41 http://web.archive.org/web/20090421080714/http://www.cpax.org.uk/prg/portable/c/c++/rfe00000.html 21:28:47 Hm, I think I have a functor that replace doesn't make sense for. 21:29:12 Namely, ((Integer -> Bool) ->). 21:29:45 There are uncountably many (Integer -> Bool)s, but any given ((Integer -> Bool) -> a) can only actually distinguish countably many of them. 21:30:21 And there is no single point that a ((Integer -> Bool) -> a) can distinguish; it can only distinguish entire open sets of points or whatever. 21:30:36 Whereas "replace" requires it to distinguish one single point. 21:30:44 Okay, why don't we go back to delimited continuations. 21:31:13 http://hpaste.org/82639 – this is the basic thing we'd like to be able to do with delimited continuations. 21:31:21 Notice that there's definitely monad stuff going on on the outside. 21:31:38 shift = cont 21:31:43 We just need to define reset 21:31:56 What's the type of reset again? 21:32:05 Del a a -> a, I think. 21:32:17 reset = flip runCont id -- should do the trick 21:32:19 I'm trying to figure that out. 21:32:25 :t flip runCont id 21:32:27 Cont c c -> c 21:32:34 Mmyup. 21:32:35 :t cont 21:32:36 ((a -> r) -> r) -> Cont r a 21:32:43 :t runCont id 21:32:45 Couldn't match expected type `Cont r0 a0' 21:32:45 with actual type `a1 -> a1' 21:32:45 In the first argument of `runCont', namely `id' 21:33:14 Not quite. The type I was guessing shift would have was "shift :: ((a -> r) -> a) -> Del r a". 21:33:21 Sgeo: let me change things up a bit. 21:35:06 http://hpaste.org/82639 – so does this still work with deli 2? 21:35:27 :t (\showIt -> showIt . length . showIt $ "pink") 21:35:28 Couldn't match expected type `Int' with actual type `[Char]' 21:35:29 In the second argument of `($)', namely `"pink"' 21:35:29 In the expression: showIt . length . showIt $ "pink" 21:35:38 Umm. 21:35:54 Mmhmm. Let me try that again. 21:36:28 http://hpaste.org/82639 – deli 2.1. 21:36:38 :t (\showIt -> showIt . length . showIt $ 1234567812345678) 21:36:39 (Int -> [a]) -> [a] 21:36:41 :t cont 21:36:42 Lemme see if ideone supports this stuff 21:36:42 ((a -> r) -> r) -> Cont r a 21:37:02 :t do x <- cont (\showIt -> showIt . length . showIt $ 1234567812345678); return (show x) 21:37:03 ContT [a] Identity String 21:37:21 Where the Fletcher Tringham did ContT come from. 21:37:23 Anyway. 21:37:47 > flip runCont id $ do x <- cont (\showIt -> showIt . length . showIt $ 1234567812345678); return (show x) 21:37:48 Nope :( 21:37:51 mueval-core: Time limit exceeded 21:38:07 All right, let me make it smaller. 21:38:10 As in, IdeOne can't find Control.Monad.Cont 21:38:14 > flip runCont id $ do x <- cont (\showIt -> showIt $ 1234567812345678); return (show x) 21:38:16 "1234567812345678" 21:38:31 Okay, that works. Let me try something else. 21:38:43 > flip runCont id $ do x <- cont (\showIt -> "foo" ++ showIt 1234567812345678); return (show x) 21:38:46 "foo1234567812345678" 21:38:55 Remember, the thing inside shift, the function passed to shift, its result should be the result of the whole computation 21:38:58 All right, whatever. 21:39:00 :t showIt 21:39:02 Not in scope: `showIt' 21:39:02 Perhaps you meant one of these: 21:39:02 `showInt' (imported from Numeric), `shows' (imported from Prelude), 21:39:03 Which in the Cont monad is represented by r 21:39:09 Oh 21:39:17 So how come it doesn't work when you use showIt twice? 21:39:33 > flip runCont id $ do x <- cont (\showIt -> showIt . length . showIt $ 1234567812345678); return (show x) 21:39:36 "16" 21:39:41 Quantum. 21:39:41 No good reason. 21:39:53 lambdabot has pulled that on me before 21:39:56 timing out for no reason 21:40:14 So yup, these do look like delimited continuations. 21:40:39 Let me look at those types one more time. 21:40:44 :t (flip runCont id, cont) 21:40:46 (Cont c c -> c, ((a -> r) -> r) -> Cont r a) 21:40:47 Hm. I wonder how you'd simulate a "singleton object" in Haskell. Like, a value that cannot be copied or destroyed. <-- you need linear or uniqueness types, which haskell doesn't have, but it's sister language clean does. 21:41:16 Okay, so here's the thing. It would make sense to use shift inside shift. 21:44:35 Once shift is run, the whole outer thing is essentially copied into a function and then discarded. There's no reason you shouldn't still be able to access the context. 21:44:41 I.e. run shift again. 21:45:57 But I do think that the "whole outer thing" should just be a function (a -> r), without any fancy monad stuff. 21:46:41 It is, isn't it? 21:46:45 It is, yes. 21:47:07 So we want shift to have this type: ((a -> r) -> Cont r r) -> Cont r a 21:47:44 Then again, I guess all you would do is call "reset" on the Cont r r. 21:48:40 So yeah. Sounds like Cont is, indeed, the delimited continuation construct. 21:48:53 :src callCC 21:49:00 @src callCC 21:49:00 Source not found. Just what do you think you're doing Dave? 21:49:08 -!- copumpkin has quit (Ping timeout: 240 seconds). 21:49:08 ew "How does AcidState deal with the presence of very big data structures which may not fit in memory? 21:49:09 " 21:49:46 is this a drug joke 21:49:46 -!- copumpkin has joined. 21:50:09 Hm. Why do "out of memory" exceptions happen, anyway? 21:50:22 Doesn't swapping effectively give you... a lot of memory? 21:50:38 No, I just don't like the notion of a .. state storage thing that doesn't do well with large state 21:50:50 Is the system simply deemed to have "run out of memory" once it's too dependent on swap? 21:50:56 I believe those are called databases. 21:51:25 Mm. "This occurs because all available memory, including disk swap space, has been allocated." 21:52:43 I know you can make intuitionistic logic in linear logic 21:52:57 (It seems a comonad?) 21:53:36 Hm. Expressions could be a comonad. 21:54:09 -!- CrayKnight has quit (Ping timeout: 248 seconds). 21:54:39 It is by having ! on the left and yet it is possible to have another ! operator which is not the same as the first ! so you can even have more than one 21:54:55 Imagine this data type: data Expr a where Literal :: a -> Expr a; Apply :: Expr (a -> b) -> Expr a -> Expr b; AddFiveToInt :: Expr (Int -> Int) 21:55:57 "extract" would simply evaluate the expression. 21:56:39 "duplicate" would, uh... turn the expression into an expression for itself. There are plenty of ways you could do that. 21:57:13 And "extend", umm... 21:57:46 Wikipedia says the intuitionistic logic (a -> b) can be encoded by the linear logic (!a -o b) so that is why I thought it is a coKleisli category 21:58:32 Yeah, no, I don't think Expr is a comonad. 21:58:39 tswett: Those look like applicative 21:59:05 pure, fmap and (+5) <*> 21:59:32 -!- epicmonkey has quit (Ping timeout: 248 seconds). 22:04:21 -!- c00kiemon5ter has joined. 22:06:54 -!- augur has quit (Remote host closed the connection). 22:07:51 -!- c00kiemon5ter has quit (Client Quit). 22:08:35 -!- c00kiemon5ter has joined. 22:09:22 -!- doesthiswork has joined. 22:13:25 -!- zzo38 has quit (Remote host closed the connection). 22:13:33 -!- augur has joined. 22:17:26 god dammit I hate absolutely everyone. 22:18:12 espacially those who dont share cookies with me 22:18:46 That's a lot of people, sgeo... 22:19:53 come on Sgeo!!! 22:20:02 how can you hate me! 22:20:51 I have no hope for the programming community. 22:20:54 None. 22:21:09 alert = ffi "window.alert(%1)" 22:21:15 What about all the people who aren't in the programming community (what is the hprogramming community" 22:21:21 How is that FFI possibly a good idea in anyone's imagination? 22:22:20 what's wrong with it 22:24:25 sgeo there are so many important bits of context you have left out... 22:24:54 basically, yeah 22:25:04 presumably due to extreme anger to the max! 22:25:14 -!- comex has joined. 22:25:24 Are you people serious? What does it take to get taken off `list? 22:25:29 Are you just trying to be annoying? 22:26:03 It _looks like_ (although still trying to check) that its FFI basically does string interpolation of the argument... 22:26:24 `list 22:26:26 Actually, hmm, that might not be a bad thing, since the type of the argument would be known, if it's a string, won't be injected directly 22:26:27 cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti 22:26:40 shachaf: I suggest ignoring highlights from HackEgo. 22:26:44 i guess he's still there 22:26:56 In fact, I don't know why I haven't done that already... 22:27:08 Anyone want to check that shachaf isn't doing things in private to HackEgo? 22:27:15 esomimic, what's your take on `the matter' 22:27:16 Phantom_Hoover: and even codegen....do sso you can transform into smaller than the tried looking at least of nethack 22:27:20 Yeah, I may withdraw my anger at Fay 22:27:22 That sounds gross, sgeo 22:27:32 whose fay 22:27:40 fay-lang.org 22:27:41 -!- shachaf has left. 22:27:47 whose esomimic 22:28:00 esomimic, style 22:28:00 Sgeo: uhh 22:28:14 fungot, style 22:28:15 Sgeo: line 1? 22:28:22 esomimic, styles 22:28:22 Phantom_Hoover: but not now 22:28:26 oh 22:28:30 what about in half an hour 22:29:03 * Sgeo is vaguely thinking that esomimic may be another fungot, but can't prove it either way :( 22:29:04 Sgeo: to a enron/ scwc on energy matters on august on a build-operate basis that corp will have to do we would more than any of the schedule the call you asked that we spoke of the two on, go upstairs to a question of the the confirmation on the nomination on k22252 was realigning storage gas 22:29:07 -!- kallisti has quit (Ping timeout: 260 seconds). 22:29:13 Well, I guess that proves it's not 22:29:24 Or reconfigured? 22:29:42 esomimic, mimic Sgeo 22:29:43 Phantom_Hoover: sorry, don't know 'Sgeo ' well enough 22:29:47 !! 22:29:55 fizzie, fix this at once 22:29:58 esomimic, mimic zzo38 22:29:59 Sgeo: okay, mimicking zzo38 22:30:05 esomimic, should I do this? 22:30:06 Sgeo: that is used to write it that. it was having is actually 22:30:23 esomimic, mimic Sgeo 22:30:23 Sgeo: okay, mimicking Sgeo 22:30:25 -!- DHeadshot has joined. 22:30:30 it is significantly less grammatical than fungot 22:30:30 Phantom_Hoover: their locations. new street west chester, 2) we cleared away those things that were in the very first of the securities and exchange commission 22:30:37 also dammit forgot about the space thing 22:30:39 esomimic: so, tell me about stuff. 22:30:40 tswett: i must be tara 22:30:46 esomimic: I see. 22:30:46 tswett: 22:30:47 classic sgeo 22:30:52 It's like the real sgeo! 22:31:01 esomimic: don't you have anything else to say? 22:31:01 tswett: that was to a vm harder free copy a defadt you cannot by making a new one of probably the magic worlds, inc some point 22:31:02 esomimic, mimic fungot 22:31:02 Bike: okay, mimicking fun​got 22:31:02 Bike: it is on the same as the friday " package" so that the support of the market and the modified that last week 22:31:16 Yo wassup esomimic? Fungotting some of the good shit? 22:31:18 That doesn't really sound like Sgeo. 22:31:30 tswett, i must be tara 22:31:31 esomimic: come on, jerkwad. 22:31:32 Bike: it's s'posed to 31131122211231131122211013112221. 22:31:45 Sgeo has always known deep down that he is an irish woman 22:31:53 May I? 22:31:59 esomimic, mimic tswett 22:31:59 tswett: sorry, don't know 'tswett' well enough 22:32:01 esomimic: Which integer sequence is that? I always forget. 22:32:02 Bike: defined. 22:32:03 Aww. 22:32:10 esomimic: thanks 22:32:11 Bike: ...out of time! 22:32:13 esomimic, mimic Warrigal 22:32:13 Sgeo: sorry, don't know 'Warrigal' well enough 22:32:14 Resembles the look and say sequence. 22:32:31 esomimic, mimic ihope 22:32:31 Sgeo: okay, mimicking ihope 22:32:55 esomimic: so, what did I sound like years ago? 22:32:55 tswett: that is, hong of those, because the splitting stuff. 22:33:08 esomimic: yeah, I guess I can confirm that I sounded kind of like that. 22:33:08 tswett: curry- and robes can't 10053 i as a receiver, then with the left out of this 22:33:20 esomimic: I assume I still sound roughly the same. 22:33:20 tswett: that's a girl that i would be be have chroot stuff. 22:33:34 tswett: no, come to think of it, you really don't sound very much like me at all. 22:33:40 Uhh. 22:33:46 esomimic: no, come to think of it, you really don't sound very much like me at all. 22:33:46 tswett: there's be interested do a t-shirt after able to ascii. 22:34:08 I get the idea that it lowercases everything. 22:34:13 esomimic, mimic lambdabot 22:34:13 tswett: sorry, don't know 'lambdabot' well enough 22:35:33 esomimic, mimic esomimic 22:35:34 Sgeo: sorry, don't know 'esomimic' well enough 22:35:45 esomimic, mimic EgoBot 22:35:45 tswett: sorry, don't know 'EgoBot' well enough 22:36:41 tswett, so I guess esomimic wouldn't mimic Karkat very well? 22:36:48 -!- cuttlefish has joined. 22:37:00 esomimic: mimic cuttlefish 22:37:01 boily: sorry, don't know 'cuttlefish' well enough 22:37:04 That would be cool to see. 22:37:22 Or funny or amusing or whatever. 22:37:26 ~eval esomimic: mimic tswett 22:37:28 Error (1): Not in scope: `esomimic'Not in scope: `mimic'Not in scope: `tswett' 22:37:34 ~echo esomimic: mimic tswett 22:37:35 esomimic: mimic tswett 22:37:35 cuttlefish: sorry, don't know 'tswett' well enough 22:37:55 esomimic, mimic Phantom_Hoover 22:37:55 Phantom_Hoover: okay, mimicking Phantom_Hoover 22:37:56 how bot infested is this channel? so far I count esomimic lambdabot and hackwhatever 22:38:01 esomimic, hey 22:38:02 Phantom_Hoover: i still disappointed... wha. 22:38:38 doesthiswork, cuttlefish, HackEgo, EgoBot, fungot, glogbot, clog, lambdabot, esomimic 22:38:38 Phantom_Hoover: in one of the last two and a swaption, there will not be the one that the vice president of the third, we expect any material ( pricing) only. 22:39:10 oonbotti too, I think. 22:39:12 Phantom_Hoover: How do you feel when you say that? 22:39:14 I think fungot is my favourite bot. it exudes a warm and fuzzy aura. 22:39:15 boily: being a diabetes e-news now! kana, business 2.0 3.3 to recall we changed. its raining a little ( 7) to me that the if the shipper to avoid the new ( the ' get articles' button then hit ' enter'). 22:39:33 myndzi has a thing where if you type \o/ it does this: 22:39:45 or i guess he turned it off 22:39:50 I think the cover letters I've been (hastily) writing are a bit too informal :/ 22:40:05 isn't jconn a bot too 22:40:16 ) <'Yes' 22:40:17 Sgeo: +---+ 22:40:17 Sgeo: |Yes| 22:40:17 Sgeo: +---+ 22:40:46 The ones that see the most actual use are HackEgo and lambdabot though. 22:42:16 s/use/abuse/ 22:46:07 `resume 22:46:08 rsum 22:47:12 aw man i really need to fix my compose key 22:48:19 No one minds me abusing HackEgo like this, right? 22:48:44 Sgeo, words cannot express how little we mind. 22:49:04 nobody human minds, I think. but HackEgo itself may harbour a deep and angry feeling of vengeance. 22:50:41 `résumé 22:50:42 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: résumé: not found 22:50:48 the next person who tells me that Paul Graham is a master hacker can read http://news.ycombinator.com/item?id=5239673 22:52:05 I'm sure HN has a positive twist about how it's the genious of lisp that allowed it to be broken in such a magnificent way 22:52:42 Maybe run-time environments should be version controllable 22:52:47 "But first, since I had been writing code that day, I pushed the latest version to the server. As long as I was going to have to restart HN, I might as well get a fresh version." 22:52:51 `learn résumé is a French summary. Not a curriculum vitæ. 22:52:55 I knew that. 22:52:59 hahaha 22:53:00 Do something at the REPL, it breaks something, revert it 22:53:03 ala HackEgo 22:53:06 yes let's push untested code to production during an outage 22:53:26 "if it's broken it can only get fixed!" 22:54:33 if it's broken, then it works. fix it and it will be /really/ broken. 22:55:14 I guess if it works well enough that you can see that it's broken it can always be broken more 22:55:33 otoh, is it broken at all if you can't even see that it's broken? 22:56:13 olsner's first paradox of brokenness. 22:56:28 if a 9 falls in the forest and nobody's around to write a postmortem does it make an angry user 22:59:11 I think that what could have helped prevent that stupid mistake is some nice strong and static typeing 23:00:33 clearly 23:00:43 well it would if it was haskell 23:03:06 Snapshots of all state 23:03:14 And a tool for browsing them 23:03:20 No state is ever lost 23:03:37 Hmm, isn't Enchilada something like that? 23:04:05 also if the comment thread was lazily computed there would be no bug visable 23:05:30 Yes, we'll just make rendering lazy. It's perfect. 23:06:47 > fix ("hacker news " ++) 23:06:51 " 23:06:55 uhm 23:07:11 lambdabot: are you feeling allright 23:07:13 fixed! 23:07:27 ~eval fix ("hacker news " ++) 23:07:27 lambdabot sometimes clips output like that it seems 23:07:28 "hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news h 23:07:37 > fix ("hacker news " ++) 23:07:42 mueval-core: Time limit exceeded 23:07:46 I guess that's what cuttlefish is for 23:08:05 sometimes, contrary to generic experience, my bot can be useful! 23:08:07 FreeFull: lambdabot always clips, but usually a bit further down the line than after the first quote 23:08:37 olsner: I mean clips earlier 23:08:43 Seems to happen with high load 23:10:18 is the same lambda bot as haskell's channel or is it a variation 23:10:36 Same nick 23:10:37 So same bot 23:14:39 ) 9999 $ 'hacker news ' 23:14:40 nooodl: hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news hacker news ... 23:18:46 hacker nooodl 23:27:18 "Unfortunately, My client is going to pass at this time. I will keep you on file for similar opportunities." 23:27:54 so I got this nice task in my job 23:27:58 Sgeo: :/ 23:28:47 we're building some accesible data mining and reporting tools 23:30:15 and it would be nice to have some sort of programming language in them for the end user to define data transformations, reporting schemes and stuff like that 23:35:14 i was thinking about some kind of simple functional language in disguise of some colorful boxes for people to play with 23:35:49 but i don't have any interesting ideas besides that ;< 23:37:40 Is operational the package typically used for operational's purpose? 23:38:04 http://mashable.com/2013/02/18/19-clicks-internet/ interesting, it's like this wikipedia and Jesus Christ stuff 23:40:51 -!- esomimic has quit (Ping timeout: 245 seconds). 23:41:08 -!- fungot has quit (Ping timeout: 248 seconds). 23:57:12 -!- nooga has quit (Ping timeout: 244 seconds).