00:00:06 <elliott> "There are certain groups we're not supposed to make fun of, which now apparently includes fat people."
00:01:11 <kmc> yeah seriously
00:02:07 <FreeFull> How do you accidentally dial 911
00:02:30 <kmc> first assume you are very stupid
00:03:15 <Sgeo_> I've accidentally dialed 911 once
00:04:08 <Sgeo_> 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 <Phantom_Hoover> i hear it's worse in the uk, since it's all the same digit
00:04:39 <Sgeo_> Hmm, I think it's more holding the button down
00:05:13 <Sgeo_> It had 911 as a quick-dial like thing built-in
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 <kmc> yeah people pocket-dial 911 all the time
00:13:41 <kmc> the solution: https://www.youtube.com/watch?v=ab8GtuPdrUQ
00:14:01 <zzo38> 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 <shachaf> Florida Man is apparently a big fan of calling 911
00:14:05 <Sgeo_> I should resume watching that show
00:14:24 <zzo38> (I also don't like cellular phones that don't have a cover, but that is different)
00:14:45 <nooga> you can use both [] and () in Racket, formerly known as PLT Scheme
00:15:10 <kmc> oh damn this clip cuts off the best part of the joke
00:15:56 <Sgeo_> nooga, but they play (almost) the same role, there's not much that physically distinguishes them other than convention
00:16:02 <Sgeo_> Although you can detect which is used.
00:16:15 <FreeFull> Racket is a metaprogramming and DSL heaven
00:16:31 <nooga> Sgeo_: and i like that
00:17:04 <nooga> what i don't like is this stupid DrRacket "IDE"
00:17:33 <nooga> looks and behaves like poorly executed student's project
00:17:38 <kmc> which is to say https://www.youtube.com/watch?v=UYVm9QSuB8U&t=1m17s
00:17:38 <FreeFull> nooga: Nothing forces you to use it
00:17:44 <kmc> nooga: yeah it's not the best
00:17:54 <FreeFull> 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:27 <Sgeo_> And even with Quack and the other thing for Racket in emacs, uncaught exceptions are completely fatal
00:19:20 <kmc> 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 <kmc> (and there's some reason we can't use #lang r5rs either, though i forgot which)
00:19:56 <kmc> also the default display mode is dumb
00:20:02 <Sgeo_> kmc, someone made a Racket language specifically for SICP
00:20:06 <kmc> if you type '(1 2) it should print (1 2) not '(1 2)
00:20:10 <kmc> Sgeo_: link?
00:20:13 <nooga> I actually read SICP atm, with racket interpreter running
00:20:32 <Sgeo_> http://www.neilvandyke.org/racket-sicp/
00:20:59 <nooga> I used Heist because it's quite easy to install and has a nice repl
00:21:09 <nooga> gem install heist && heist
00:21:09 <kmc> Sgeo_: thanks, i'll bring it up with the other TAs at the wrap-up meeting
00:21:18 <Sgeo_> kmc, you're welcome
00:21:29 <kmc> Sgeo_: looks like it may be a bit tricky to get it installed on every student's machine
00:21:58 <Sgeo_> I think it's just running #lang planet neil/sicp
00:22:25 <Sgeo_> And telling them to use that at the top of their programs
00:23:06 <kmc> and then they download a bunch of code unencrypted from the internet and run it
00:23:10 <Bike> kmc: so does putting in ''foo print ''foo?
00:23:12 <kmc> that's life i guess
00:24:48 <Sgeo_> 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 <Bike> what's sicp use anyway, a wonky r4rs? is that what mit scheme of the time was?
00:25:39 <nooga> 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 <kmc> nooga: yeah i know, we have to tell every student to set it :/
00:26:00 <kmc> Bike: i think the current edition works fine in R5RS
00:26:10 <kmc> but not with racket #lang r5rs for some reason i forget
00:26:37 <Bike> i love standards, etc
00:27:35 <kmc> even with #lang r5rs and 'write' output style, it wants to write a mutable list as {1 2}
00:27:39 <coppro> racket works somewhat better with htdp
00:29:55 <nooga> i'm having problems with SICP
00:31:31 <nooga> 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 <nooga> and then i must read the boring stuff
00:32:19 <Bike> books sure are hard
00:34:49 <nooga> tl;dr Meet cons, car & cdr, check out rationals and now we'll write ourselves a scheme compiler in scheme
00:35:28 <Phantom_Hoover> eh, it's something you have to deal with when working with textbooks and notes
00:35:49 <nooga> but I like this book
00:36:01 -!- Regis_ has joined.
00:36:08 <nooga> i just don't have much time to read it carefully ;/
00:36:22 <shachaf> I guess I should read SICP
00:36:48 <Phantom_Hoover> hey elliott remember that time we tried to read categories for the working mathematician
00:37:14 <elliott> Phantom_Hoover: im considering starting over now that i actually know some category theory
00:37:20 <shachaf> Phantom_Hoover: i'll have you know elliott knows several category theory things now!!
00:37:23 <elliott> except i won't involve you because you're lame
00:37:37 <Phantom_Hoover> elliott, problem is that all the motivations are from like topology and group theory
00:37:45 <shachaf> elliott's secret: http://flockdraw.com/upload/8kr07f6lb00s44k80c4.png
00:38:27 <elliott> Phantom_Hoover: yes that's a bit of a problem
00:38:28 <Bike> what's wrong with topology, i think topology is a pretty cool guy or chick
00:38:34 <elliott> Bike: the problem is I don't know it
00:38:36 <elliott> so it's kind of useless to me
00:38:45 <Bike> maybe you should know it.
00:38:48 <elliott> however I am a fan of things with absolutely no point or application
00:38:51 <elliott> so this might not be a barrier
00:39:24 <elliott> maybe i'll read it but ask monqy to explain all the examples for me
00:40:20 <HackEgo> 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 <monqy> i dont know topology yet (i should...) but i do know group theory
00:41:03 <Bike> how does topology not have any applications? turning down million dollar prizes is a good application.
00:41:13 <elliott> monqy: imo teach me group theory by way of explaining each example in categories for the working mathematician
00:41:31 <elliott> Bike: no I mean the barrier would be understanding CT things without being able to understand any if the motivating examples
00:41:40 <elliott> Bike: but I am a fan of things with absolutely no point or application
00:41:45 <zzo38> Now I made first version of VGMCK is available, but only one chip so far.
00:41:50 <Bike> so you're just a nerd
00:42:06 <elliott> ITS THE CT NOT THE TOPOLOGY THAT IM TAKLING ABOUT OMG
00:42:12 <elliott> PAY ATTENTION TO THE WORDS I AM VOMITING :(
00:42:14 <Phantom_Hoover> In fact I think pointless topology is actually slightly different from normal
00:42:22 <elliott> ok so that was a dumb joke
00:42:27 <elliott> but it's still based on a misreading
00:42:33 <nooga> nothing to do here anymore
00:42:49 -!- oerjan has quit (Quit: Good night).
00:43:10 <monqy> 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 <elliott> do you love teaching me things that much
00:43:25 -!- Frooxius has quit (Ping timeout: 276 seconds).
00:43:32 <Phantom_Hoover> what about explaining topology to him in terms of category theory
00:43:43 <monqy> i feel embarrassed when im asked about things i dont know
00:43:43 <elliott> maybe what i'll just do is learn category theory
00:43:48 <elliott> and then topology and group theory will be ez
00:43:49 <Bike> bundles man, bundles
00:43:56 <monqy> maybe i'll learn topology by looking at all the examples
00:43:57 <Bike> have you considered stealing grothendieck's brain?
00:44:01 <elliott> because i'll just go "oh this is a trivial special case of [category theory thing]"
00:44:10 <elliott> clearly: teach kids category theory in preschool???
00:44:13 <Bike> I've heard that's a popular way to learn category theory through learning topology through brain theft.
00:44:21 <elliott> then you get to arithmetic and it's just a nice easy special case
00:44:50 <Bike> haha remember new math, where you learned arithmetic in arbitrary bases first
00:44:57 <elliott> right i was inspired by new math
00:45:01 <elliott> tom lehrer's song about new math
00:45:18 <elliott> which i think might be the only evidence new math ever existed
00:45:23 <elliott> possibly he just made it up
00:45:30 <Bike> naw, my parents went through it
00:45:43 <Bike> and that's why i sometimes have to explain fractions to them so they can teach their students
00:45:57 <elliott> fractions are pretty complicated imo
00:46:08 <monqy> remember vortex based mathematics
00:46:11 <elliott> anyway arithmetic is kind of concrete
00:46:14 <monqy> now that's what we should be teaching our kids
00:46:33 <Bike> categories are concrete! you have a thing and then you have another thing and you can draw arrows between the things!
00:46:35 <elliott> possibly this is why i am completely incapable of it
00:46:38 <Phantom_Hoover> i don't think i told you about that one time i accidentally exposed my dad to vortex math
00:46:46 <elliott> this story sounds good already
00:47:17 <Bike> is vortex math a crackpot thing
00:47:21 <elliott> Bike: its a beautiful thing
00:47:29 <elliott> Bike: you must watch this tedx talk
00:47:31 <Bike> i remember a guy saying everything was based on vortices once but i thought he was a biologist
00:47:36 <Phantom_Hoover> at this point i called in every favour i had with him to stop him watching it
00:47:39 <elliott> Bike: https://www.youtube.com/watch?v=zhBymLCRIU8
00:47:44 <Bike> right i'm on it
00:47:48 <Bike> gonna get the new revelation of stan
00:48:02 <elliott> Bike: then in the sidebar i think there's a link to the crackpot behind it's "intro to vortex math"
00:48:11 <elliott> which is like 30 videos or something
00:48:20 <elliott> because they're fucking hilarious
00:48:25 <Bike> what the hell is tedx
00:48:35 <Bike> ted doesn't allow free energy dipshits in last i checked, just rich-ish ones
00:48:44 <Bike> is it tedx without stan-
00:48:50 <elliott> Bike: it's "independently organised ted-affiliated events"
00:49:00 <elliott> i.e. they have the ted brand name and even less credibility
00:49:07 <elliott> so you get amazing things like this!
00:49:37 <Bike> start off math with deliberately shitty video of the president
00:50:38 <elliott> monqy: i hop eyou're watching
00:51:23 <elliott> i like how even just 2 minutes in
00:51:28 <Bike> language of god
00:51:28 <elliott> it's completely fucking off the deep end
00:52:35 <Bike> what the hell.
00:52:47 <Phantom_Hoover> every single concept he's ever know has collapsed into this one degenerate state of batshit crazy
00:53:04 <Bike> NINE NUMBERS AROUND A CIRCLE
00:53:07 <elliott> IT MAKES US INTO A VORTEX MACHINE
00:53:20 <Bike> you can do all the functions of all the branches of math instantly
00:53:25 <Phantom_Hoover> SUCKING ENERGY IN AT THE TOP AND SHOOTING IT OUT AT THE BOTTOM
00:53:55 <elliott> "unless he closed himself, so maybe that's what I am"
00:54:10 <elliott> I like how he laughs after that but you're not actually sure he's actually joking
00:54:10 <Bike> this can't be real
00:54:55 <Bike> our dna is a coil
00:55:29 <Bike> 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 <Bike> dna is way cooler than a fucking coil
00:56:10 <kmc> Bike: haskell
00:56:39 <Bike> knew someone would say that
00:56:45 <kmc> caution: you are now approaching the periphery shield of vortex four
00:56:54 <kmc> CAUTION: YOU ARE NOW APPROACHING THE PERIPHERY SHIELD OF VORTEX FOUR
00:57:00 <kmc> CAUTION: YOU ARE NOW APPROACHING THE PERIPHERY SHIELD OF VORTEX FOUR
00:57:34 <elliott> that gigantigc fucking name
00:57:47 <kmc> http://www.dailywav.com/1002/caution.wav
00:57:50 <nooga> and call it Vortex Machine
00:59:40 <elliott> Bike: https://www.youtube.com/watch?v=Fbyc9JW3vtk
01:00:07 <monqy> i love vortex based mathematics
01:00:12 <Bike> so is there any source on this salk thing
01:00:45 <Bike> he said salk offered to be rodin's physician and bla bla clone
01:00:55 <Bike> salk wasn't even a practicing physician but i'm curious how the hell they came up with that
01:01:12 <Bike> "who's a famous doctor?" "iunno that dead guy"
01:01:16 <elliott> what matters is this intro
01:01:26 <elliott> or else face unending sadness and unfulfilment
01:02:00 <Bike> 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 <Bike> oh no he's saying it's old
01:02:21 <Bike> tachyons, gravitons, same thing
01:02:26 <Bike> chi, yep there we go.
01:02:42 <Bike> i need a bingo for these douchebags
01:02:57 <kmc> "if he's so smart why is he dead"
01:03:02 <shachaf> i mean do these pixels exist in this arrangement
01:03:06 <Bike> no you... you fucking
01:03:40 <Bike> penetrates everything and nothing can resist it, mmmmm bad implications there dude
01:03:50 <nooga> http://markorodin.com/
01:03:52 -!- zzo38 has quit (Remote host closed the connection).
01:04:19 <Bike> baha'i, don't fuck with real religions you trash
01:04:25 <Bike> "without going into religious mysticism"
01:04:47 <monqy> wow theabhakingdom.com got parked by godaddy RIP
01:05:07 <elliott> i dont know of anyone who blha blah another single digit number that exists
01:05:17 <Bike> well what if it went seven nine eight
01:05:18 <elliott> he cant be sure!! what if theres another single digit number
01:05:23 <Bike> "all the single-digit numbers known"
01:05:26 <Bike> what the christ
01:05:29 <nooga> http://rense.com/RodinAerodynamics.htm
01:05:34 <Bike> is this fucker twelve
01:05:35 <monqy> http://lifeforcegenie.com is parked too :(
01:05:42 <monqy> http://www.vortexmath.com/ at least this still exists
01:05:50 <Bike> no, nope, i'm done
01:06:20 <Phantom_Hoover> i think around this time is when i was desperately trying to get my dad to stop watching
01:06:23 <nooga> "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 <Bike> 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 <elliott> Bike: let the vortex math soothe your head
01:07:18 <monqy> @tell nooodl hey have you ever heard of a “vortex based mathematics„
01:07:18 <elliott> Bike: how about skip ahead to Advanced Vortex Math https://www.youtube.com/watch?v=tNHvyTIRVjY
01:07:38 <elliott> 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:39 <nooga> i'm already crying
01:10:24 <ais523> nooga: re that advert, did they want someone with both skills? or two people, one with each?
01:10:40 <ais523> OpenGL is occasionally taught to electronic engineers, so it's /possible/ there's enough overlap there ;)
01:10:56 <ais523> (with electric and electronic engineers sharing many parts of the course)
01:11:27 <Bike> i'm reading it as two people BUT vortexspace
01:11:27 <kmc> i've used Eagle and I've done OpenGL programming but not Win32 GUIs
01:11:59 <kmc> Eagle is pretty accessible, it's like two steps past the Arduino stage of hardware tinkering
01:12:15 <shachaf> flux thruster atom pulsar electrical venturi space-time implosion field generator coil
01:12:20 <kmc> 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 <nooga> let's volunteer then!
01:14:02 <ais523> kmc: I've done Win16 GUIs
01:14:08 <ais523> I imagine Win32 GUIs are similar, most of the APIs are the same
01:14:16 <ais523> (that said, I haven't done them /well/, nor do I enjoy doing them)
01:15:31 <kmc> a Win32 GUI is essentially two Win16 GUIs side by side
01:16:46 <ais523> Win32 is pretty much backwards compatible in terms of developer mindshare
01:16:55 <pikhq> If by "most" you mean "Microsoft did crazy shit to not break source", then yes.
01:16:56 <lambdabot> pikhq: You have 2 new messages. '/msg lambdabot @messages' to read them.
01:16:56 <ais523> it works much the same way as Win16, and you can write the code in much the same way
01:17:20 <ais523> nowadays they care more about binary compat than source compat, it seems
01:17:57 <pikhq> Nowadays they seem to run on thing-of-the-month.
01:18:22 <Bike> i like how windows 1.0 Reversi still runs on Windows 7
01:18:48 <pikhq> *32-bit Windows 7.
01:19:14 <elliott> does it run on itanium windows 7????
01:19:19 <pikhq> For x86_64 they kinda went "meh, let's not update the 16-bit stuff"...
01:19:31 <pikhq> elliott: Well, IA-64 is not 32-bit Windows 7. :)
01:19:33 <kmc> does it run on Windows NT 4 for Alpha
01:20:17 <pikhq> Honestly I'm not sure if it'll run on Windows 7 for Itanium. Assuming that even exists...
01:20:33 <pikhq> I have no idea how far the now-in-software x86 emulation goes.
01:21:13 <shachaf> all the single-digit numbers known
01:23:15 * ion ಠ_ಠs the Advanced Vortex Math video.
01:23:31 <ion> A fancy name for rather trivial number patterns.
01:23:45 <Bike> blowing my mind here ion
01:24:56 <Bike> actually, yes Bike
01:25:14 <kmc> yes, bike. yike.
01:27:10 <shachaf> "This is base 26. It's the next step up from base 10."
01:28:34 <kmc> are you sure this isn't all a game of numberwang
01:28:43 <kmc> do they at any point rotate the board
01:31:22 <shachaf> ok advanced vortex based mathematics is too advanced for me
01:34:27 <pikhq> Yup, apparently the x86 emulation thing on Itanium ignores 16-bit x86 entirely.
01:35:53 <kmc> mm right, it doesn't need to boot a PC operating system
01:38:48 -!- Phantom_Hoover has quit (Quit: Leaving).
01:39:33 <shachaf> vortex math reminds me of category theory
01:39:45 <shachaf> 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 <Phantom_Hoover> http://www.reddit.com/r/math/comments/18mh1p/my_favorite_song_about_doing_calculus/c8gy7yh
01:51:06 <elliott> Phantom_Hoover: having fun sleeping?
01:52:25 <monqy> oh good it's a “someone misunderstands sapir-whorf„
01:52:56 -!- doesthiswork has joined.
01:53:00 <Bike> "Yes, the Sapir-Worf is true. I can give very simple examples"
01:53:03 <Phantom_Hoover> (so does everyone finally see that swedes are terrible)
01:53:15 <Bike> are swedes sexistic?
01:53:40 <Phantom_Hoover> "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:54:09 <HackEgo> 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 <monqy> what noise do giraffes make
01:56:40 <monqy> this is important for my transformation
01:56:55 <Phantom_Hoover> looking through his site i think he's just proper crazy rather than a dickhead
01:57:09 <Bike> doesthiswork: the dumb version
01:57:16 <monqy> hm how do i make it taller
01:57:26 <elliott> is that the secret to your transformations
01:57:42 <elliott> wow this is really realistic
01:57:46 <elliott> im starting to believe monqy is a giraffe in real life
01:58:09 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:59:07 <shachaf> oh wait i'm mixing it up with geraffes
01:59:15 <shachaf> monqy: you should be a geraffe
01:59:22 <monqy> nei------------------------------------------------gh
01:59:30 <ion> `run echo kirahvi | hyfinate
01:59:35 <monqy> being a geraffe seems counterproductive
01:59:54 <shachaf> @google geraffes are so dumb
01:59:55 <lambdabot> http://www.reddit.com/r/pics/comments/8aqjh/awww_this_is_just_too_sad_pic/c08pp5z
01:59:55 <lambdabot> Title: Awww, this is just too sad [PIC] : pics
02:00:29 <Sgeo_> Those people _are_ horrible, they should have told him
02:01:45 <Sgeo_> Could have genuinely believed it's spelled "geraffe"
02:01:59 <elliott> I ACTUALLY LITERALLY GOT UP AND BASHED MY HEAD AGAINST THE WALL
02:02:41 <shachaf> yes Sgeo_ don't be sexist like that
02:03:15 -!- DHeadshot has joined.
02:03:35 <Sgeo_> *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 <Sgeo_> Well, someone did tell the person
02:04:18 <Sgeo_> Don't know of the time frame though
02:05:57 <Sgeo_> What, is elliott trying to say that it's probably a troll?
02:10:07 <doesthiswork> does anybody know where i can find the picture? wayback machine didn't have it
02:11:18 <ion> http://farm9.staticflickr.com/8165/7584193058_9e64228f7a_o.jpg
02:11:24 <ion> Google image search with the thumbnail URL
02:11:52 <Bike> 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 <doesthiswork> thank you, the gerrafs / long horses were hilarious but I was still curious about the picture.
02:14:34 <Bike> ion's picture looks like the picture
02:14:54 <Bike> so what are you asking for exactly
02:15:44 <doesthiswork> 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 <ion> You used it correctly.
02:17:33 <doesthiswork> have you people ever heard the linguistic illusion "no head injury is too trivial to be ignored" ?
02:18:52 <Sgeo_> linguistic illusion?
02:19:33 <doesthiswork> what it literally says is exactly the opposite of what everyone agrees it must mean.
02:20:09 <Bike> "no head injury is trivial enough to be ignored"
02:20:50 <doesthiswork> what it literally says is the the smaller a head injury gets the the harder it gets to ignore.
02:21:39 <ais523> 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 <ais523> and there are some hilariously opinionated bits in them
02:22:19 -!- elliott has joined.
02:22:37 <ais523> "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 <Bike> remember the part about how standards are optional, i think that's a good part
02:22:40 <Sgeo_> Shouldn't it all be opinionated? Or by 'opinionated' is it typically meant significant numbers of people with dissenting opinions?
02:23:01 <Bike> posix, that's just suggestions, really
02:23:05 <ais523> I just thought editor wars felt a little out of place in coding standards
02:23:05 <Sgeo_> "GOTO is usually a bad idea" is a pretty common opinion
02:23:16 <doesthiswork> 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:24:00 <FreeFull> Sgeo_: goto is a good idea when handling errors
02:24:11 <FreeFull> Actually makes for much cleaner code
02:24:13 <ais523> 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 <FreeFull> The linux kernel makes good use of it
02:24:27 <kmc> ais523: sadly true
02:24:30 <kmc> users HATE code reuse
02:24:41 <ais523> 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 <ais523> (correctly packaged C implementation on Windows is difficult, if you want something vaguely sane rather than msvc)
02:25:09 <kmc> 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 <kmc> ais523: is that mingw?
02:25:40 <Sgeo_> Maybe environments should make code reuse easier
02:25:45 <ais523> kmc: yeah, it's mingw + a bunch of third-party libraries
02:26:27 <ais523> 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 <Sgeo_> 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 <Bike> ais523: isn't that like the main historical reason for everything being in C
02:26:53 <ais523> C++ compilers are just as everywhere as C compilers nowadays, at least (although the C++ supporting libraries/headers may not be)
02:27:16 <ais523> scripting languages (Perl, Python) have a similar distribution to C and C++, although not an identical one
02:27:26 <ais523> as in, Perl but not C, and C but not Perl, seem approximately equally likely
02:27:38 <Sgeo_> o.O at Perl but not C
02:27:41 <FreeFull> Haskell is great on Linux but I hear it's horrible on Windows
02:27:54 <coppro> all languages suck on windows
02:27:55 <ais523> Sgeo_: well on Linuxy systems, you always have both
02:28:10 <ais523> too many critical programs are written in Perl, and C is needed to compile kernel modules during startup
02:28:37 <ais523> (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 <Sgeo_> ....startup as in when the computer starts, or... what? Because compilation at bootup sounds clinically insane
02:29:15 <Bike> kmc: what do the actual complaints consist of?
02:29:15 <kmc> Sgeo_: http://bellard.org/tcc/tccboot.html
02:29:26 <kmc> Bike: just that people don't wanna install shit
02:29:39 <ais523> Sgeo_: when the computer starts
02:29:48 <Bike> everything's gotta be self contained~
02:29:48 <ais523> compilation at bootup might sound insane, but it's better than the computer not starting at all
02:29:58 <kmc> also people who are terribly concerned about this thing they call "software bloat" which has no correlates in the physical world
02:30:00 <Sgeo_> Why can't it just compile it once?
02:30:04 <ais523> 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 <kmc> mosh wastes literally cents worth of memory by linking against protobuf! somebody think of the bits!
02:30:22 <ais523> and basically, in case someone just updated their kernel, but the driver wasn't part of the same update mechanism
02:30:31 <Bike> 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 <FreeFull> Where will it write the data to
02:30:45 <kmc> your fetish is porno that is exactly 2 MB in size
02:30:53 <Bike> finally someone understands
02:31:37 <Bike> 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 <ais523> is that imperial or metric megabytes?
02:32:00 <ais523> (if you have fetishes that specific, it probably matters)
02:32:59 <Bike> hm is there an imperial measure of data size
02:33:16 <Bike> I mean the mebibyte/megabyte thing is almost as silly, but
02:33:16 <ais523> Bike: joky names for 2 MiB versus 2e6 bytes
02:33:29 <Bike> ais523: yeah but now i'm thinking about it
02:33:54 <ais523> Bike: have you ever heard of the nat?
02:34:01 <Bike> oh! yes, of course
02:34:23 <Bike> actually no, e is way too half-reasonable for imperial
02:34:33 <ais523> it's not really like imperial, though
02:34:38 <ais523> it's more like measuring in radians
02:34:45 <Bike> it should be based off the imagined length of le morte d'artur or such
02:34:53 <ais523> when imperial has degrees, and metric has gradians (which nobody ever uses, but is still implemented in calculators for some reason)
02:35:08 <ais523> actually I think metric gave up and switched to radians, eventually
02:35:10 <Bike> I heard once that gradians were used in continental Europe.
02:35:20 <ais523> Bike: yeah, just like the rest of metric
02:35:43 <Bike> Like when did that cease, though? 80s? 60s?
02:35:59 <ais523> hmm… I wonder if Wikipedia knows
02:36:38 <ais523> haha, apparently 100%th of a gradian is called a centigrade
02:36:43 <ais523> as if that isn't confusing :)
02:37:32 <ais523> 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:57 <ais523> it's used by surveyors elsewhere, too
02:38:07 <elliott> Bike: mebibyte is inaccurate!!
02:38:28 <elliott> i'm not kidding i've actually used mebioctet
02:38:38 <Bike> do you regularly use it
02:38:51 <elliott> and don't care about coming off as totally pretentious
02:39:04 <Bike> "mebioctet": a pretentious word
02:39:12 <Bike> 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 <elliott> rational multiples of pi is kind of the key to the human body though. vortex mathematics.
02:39:43 <Bike> also it's way easier to have a physical angle measurey thing with numbers instead of pi multiples.
02:39:53 <Bike> Oh they call those "protractors" now? Ok.
02:40:12 <elliott> the theory of vortex mathematics has a lot of detractors but it also has a lot of protractors
02:40:21 <coppro> elliott: also compasses and straightedges
02:40:37 <Bike> maybe i should learn rational trig
02:40:41 <Bike> instead of vortex maths
02:44:40 <ais523> elliott: aren't both byte and octet correct in this case?
02:46:35 <shachaf> elliott: Was that a pun from the vortex math video?
02:46:48 <shachaf> If so, I'll have to change my opinion of them.
02:47:00 <elliott> it would have been good if it was in the video though
02:47:16 <shachaf> Maybe there's a parallel crackpot world.
02:47:30 <shachaf> Where some people have all the good puns.
02:48:37 <shachaf> Maybe every real person has a a crackpot twin.
02:48:57 <shachaf> Who is the Conor McBride of crackpots?
02:49:28 <monqy> does every crackpot have a real person twin ?
02:49:41 <Sgeo_> Is my crackpot twin my 7th grade self?
02:49:55 <Bike> That doesn't seem biologically possible.
02:50:42 <shachaf> Bike: Don't be so close-minded.
02:51:30 <Sgeo_> 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 <shachaf> monqy: your crackpot twin thinks you are the crackpot
02:51:56 -!- Mathnerd314 has quit (Read error: Operation timed out).
02:52:05 <shachaf> Hmm, some people are self-dual, though.
02:52:25 <Bike> Sgeo_: haha well, it's vaguely true-like
02:54:02 <elliott> so who is the non-crackpot version of monqy
02:54:37 <shachaf> elliott is negative and monqy is positive
02:56:18 <Sgeo_> It looked a little like this
02:56:19 <Sgeo_> http://blogs-images.forbes.com/williampentland/files/2011/08/EW-Electromagnetic-Spectrum.jpg
02:56:29 <Sgeo_> Except with smaller thing for visible spectrum I think
02:58:21 <Bike> See. All of visible light would fit in one of the microwave wavelengths.
03:02:23 <Sgeo_> 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 <Sgeo_> And no, I wasn't talking about quaternions
03:03:22 <Sgeo_> 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 <Sgeo_> s/explaining/wrongly explaining/, if that helps
03:04:38 <elliott> isnt that pretty easy if you take 4 = 2 + 2 by definition
03:05:34 <Sgeo_> doesthiswork, being told in class. Also the geometric perspective, of a grid of a by b squares
03:06:07 <Sgeo_> 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 <doesthiswork> yes, you just rotate the rectangle and it is isomorphic
03:07:34 <Sgeo_> 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 <Sgeo_> Hmm. Maybe that was before I read Algebra the Easy Way?
03:09:19 <shachaf> is it http://www.amazon.com/Barrons-Algebra-Turtleback-Library-Binding/dp/1417655968
03:09:39 <shachaf> E-Z is the list of grades you can get right
03:10:07 <Sgeo_> 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 <Sgeo_> Although, uh, not with that cover
03:10:28 <Sgeo_> 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 <Jafet> PhD in making things easy
03:11:21 <Sgeo_> I really liked that series
03:11:28 <Sgeo_> But not Chemistry the Easy Way :(
03:11:42 <Sgeo_> Chemistry the Easy Way can suck my balls.
03:11:47 <Sgeo_> Um, I didn't mean to send that.
03:12:15 <Bike> When I was in the first grade I gave a presentation on human reproductive anatomy.
03:12:20 <pikhq> I doubt a book can suck your balls.
03:12:23 <Bike> That is my elementary school memory.
03:12:44 <pikhq> At least, from my knowledge of books and genitalia it seems tricky.
03:12:48 <doesthiswork> when I was in first grade I built a giant sand sculpture of human reproductive anatomy
03:13:02 <Bike> Oh, I saw that on Ripley's! You're a good sculptor.
03:13:03 <doesthiswork> it took me years to figure out why the teacher didn't like it
03:13:25 <Bike> You did that for a class? Did you have a class in sand sculptery?
03:13:42 <Sgeo_> I was thinking about sending it, but decided against it
03:13:48 <Sgeo_> And then accidentally sent
03:13:51 <doesthiswork> I did during recess and got the rest of the class to help
03:13:57 <Jafet> pikhq: http://oglaf.com/booklove/
03:14:03 <Bike> Which genders was it of?
03:14:45 <Sgeo_> 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 <Sgeo_> Bike, is there a link to it?
03:17:55 <pikhq> Jafet: You make a good argument.
03:18:05 <Bike> 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 <Sgeo> "Remembering that lists are L(a) = 1 / (1 - a)"
04:02:08 <Sgeo> wtf is that meant to imply that [()] is... ... huh?
04:02:17 * Sgeo is totally confused
04:02:39 <Bike> that's the formula for a geometric series, isn't it
04:02:52 <shachaf> Lists are L(a) = 1 + a + a^2 + a^3 + ...
04:03:22 <shachaf> In certain cases you can go from that to Sgeo's formula.
04:03:31 <shachaf> a=1 is not one of those cases.
04:03:50 <Bike> radius of convergence bladdity bladdity bla but formal power series pwnzrs anyday anyway
04:04:19 <shachaf> make your nick should be Bikey
04:04:32 <Bike> the derivation is pretty though. L - aL = 1
04:05:43 <shachaf> Maybe I should figure out what a lax functor and a terminal bicategory are.
04:05:54 <shachaf> Then I can be cool like copumpkin, right?
04:06:44 <elliott> shachaf: Well, [()] ~ Nat and Nat is infinite and 1/0 is infinite, ERGO
04:07:14 <shachaf> elliott: right except you can't really do that
04:26:12 -!- Mathnerd314 has joined.
04:38:21 -!- SirCmpwn has quit (Ping timeout: 245 seconds).
04:39:11 -!- SirCmpwn has joined.
05:01:35 <shachaf> monqy: https://en.wikipedia.org/wiki/Closure_operator
05:11:47 -!- azaq23 has quit (Quit: Leaving.).
05:28:30 -!- Arc_Koen has quit (Quit: Arc_Koen).
06:04:15 <zzo38> 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: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:54 <HackEgo> 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:08:08 <Sgeo> `welcome HackEgo
07:08:10 <HackEgo> 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 <shachaf> monqy: closure operators are "pretty cool huh"
07:09:03 <shachaf> did you see the "alternate definition for posets"
07:09:49 <monqy> 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 <monqy> is there anohter one
07:10:14 <shachaf> no the definition of a closure operator
07:10:19 <shachaf> (which is just a monad in a poset of course)
07:10:38 <shachaf> but the alternate way of stating the axioms is like >>=
07:11:21 -!- epicmonkey has joined.
07:12:19 <shachaf> monqy: is there a difference between a lattice that has all small limits and a lattice that has all products
07:13:25 <shachaf> well doesn't matter in this case
07:18:03 <shachaf> zzo38: no i did it by keyboard..
07:18:16 <lambdabot> augustss says: Haskell already has enterprise monads; there is a fail method.
07:18:21 <lambdabot> augustss says: <wy> augustss: Wow. You win the IOCCC three times! <augustss> 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:46 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
07:33:42 <Sgeo> I forgot about Dylan :(
07:36:50 <zzo38> 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 <shachaf> Sgeo: They want your help!
07:42:49 <shachaf> Seriously, they're understaffed.
07:43:57 <Sgeo> shachaf, I guess doing stuff would consist of looking through some sort of lists of tickets?
07:46:44 <shachaf> Sgeo: I don't know. Ask in the channel.
07:46:49 <shachaf> 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:42:15 <Sgeo> I agree with zzo38 about do-notation should be implemented as a macro
08:42:16 -!- Frooxius has joined.
08:43:14 <zzo38> mroman: I also want macro
08:43:21 <Sgeo> Or, actually, no. syntax-rules and syntax-case are better, possibly.
08:43:35 <mroman> I always wished I could hack Haskells do Notation to support my own stuff.
08:43:53 <zzo38> Sgeo: I suppose, any way which is good enough to do it, would work
08:44:06 <mroman> I.e if I don't have a Monad but something else which allows one to chain stuff the same way
08:44:11 <zzo38> But what is your opinion of having it the separate class for do-notation?
08:44:17 <Sgeo> CL/Clojure-style macros do have some issues
08:44:30 <Sgeo> zzo38, well, monads without a return operation can be useful.
08:44:41 <mroman> then one has to write foo >>~> bar >>~> \c -> foobaz c
08:44:44 <Sgeo> Well, they're not monads in that case
08:44:47 <Bike> semimomomomomonads
08:44:53 <zzo38> 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:55 <Sgeo> But yeah, being able to use do notation with that would be nice
08:45:00 <Sgeo> zzo38, yes, agreed
08:45:15 <doesthiswork> I'm fond of both fexprs and compile time functions
08:45:49 <Sgeo> I need to try to understand if fexprs allow for a Tcl-like sort of thing
08:45:57 <Sgeo> I like the Tcl approach, except want more quasiquoting
08:46:05 <Sgeo> And less stringiness
08:46:25 <Bike> fexprs and quasiquoting are kinda anathema.
08:46:51 <Sgeo> (some-fexpr-based-macro ,(+ 1 1))
08:47:03 <Sgeo> some-fexpr-based-macro would only see 2
08:47:17 <Bike> What, that's not even quasiquoting, that's eval.
08:48:06 <Sgeo> (some-fexpr-based-macro ,(+ 1 1) (+ 2 3)) would be processed same as (some-fexpr-based-macro 2 (+ 2 3))
08:48:35 <Bike> seriously, that's not quasiquotation, that's antiquotation.
08:48:43 <Bike> which is eval (whoaaaaa)
08:49:02 <doesthiswork> (some-fexpr-based-macro (eval (+ 1 1)) (+ 2 3))
08:49:08 <Bike> well, that's different.
08:49:16 <Bike> More importantly, is Burning Sand popular here?
08:49:28 <monqy> is that one of those falling sand games
08:49:32 <Jafet> After they took out his colon, he went into a comma.
08:49:38 <monqy> you know, with the sand, and it's falling
08:49:52 <monqy> i've played a few of those in my days
08:50:05 <Bike> I found out you can get it for phones, and now that's what my phone is doing.
08:50:11 <monqy> idk if ive ever played burning sand tho is it any good
08:50:11 <Bike> Good use of technology there.
08:50:32 <Bike> It's cool. Still haven't figured out what glue does.
08:51:30 <Bike> Eh, maybe. I just try to get a stable ecosystem going.
08:51:40 <Bike> My current attempt is based on a shitload of steam and even more oil.
08:51:48 <monqy> a stable ecosystem??
08:52:19 <Bike> So that the "life" state continues to exist without my intervention and without reaching a stable state.
08:52:22 <Bike> Metastability, I guess.
08:52:23 <Sgeo> Trying to put out a burning plant with water is fun
08:52:45 <Bike> 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 <Sgeo> Erm, only if it has to be from above
08:53:28 <Bike> Oh, that's a fun thing, on the phone version gravity depends on how your phone is oriented.
08:54:34 <Bike> yeah it's mostly pointless but kinda nice.
08:54:51 <Sgeo> Oh hey managed to put out the fire
09:01:32 <Sgeo> Replicator can't replicate antimatter
09:01:53 * Bike notes in copybook.
09:02:42 <Sgeo> Antimatter can destroy black hole
09:04:47 <Sgeo> I think replicator burns faster than gunpowder
09:05:05 <monqy> i think you should conduct some more tests
09:07:07 <Bike> I think this fire burned so fast that it missed some oil. Awesome.
09:10:33 -!- Taneb has joined.
09:14:50 <elliott> Taneb: Remember the whole Halite in #haskell thing?
09:15:54 <Sgeo> Oh hey the entire world can be filled with replicator
09:16:01 <Sgeo> There's an option for that
09:18:18 <Sgeo> Black hole in a replicator world is pretty
09:21:51 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.25898
09:27:26 -!- DHeadshot has quit (Read error: Connection reset by peer).
09:27:48 -!- DHeadshot has joined.
09:28:21 <monqy> maybe he'll evade again.....more secretly this time
09:28:26 <monqy> maybe he'll fix his behavior too
09:28:34 <monqy> maybe he'll come back here???
09:28:59 <monqy> what's next, thutubot?????????
09:29:15 <Bike> isn't halite some kind of mineral
09:29:47 <Bike> right, hal- is salt
09:32:58 <Bike> «adjective-forming suffix, especially of nominalized adjectives identifying groups of people as "those belonging to"»
09:33:09 <Bike> 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 <Sgeo> Put cloud in a pure replicator environment
09:41:09 -!- epicmonkey has joined.
09:41:59 <Sgeo> No, as in, I think it looks cool
09:42:15 <Sgeo> Although it becomes boring quickly
09:42:44 <zzo38> SQLite plugins for dealing with VGM and MIDI would be useful, I think.
09:42:58 <Sgeo> Still starts out cool
09:44:01 <Sgeo> 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.
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 <ais523> 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:10:21 <ais523> I stared at it for a while to make sure, too
10:10:49 <oerjan> you could try to claim "of" really counts as grammar instead of a word.
10:13:01 <Jafet> Being that "being" and "are" are totally the same word
10:13:47 -!- FreeFull has joined.
10:14:35 <oerjan> well then we also have "you" and "your"
10:15:37 <oerjan> YOU ARE TURNING INTO MONQY
10:16:50 <oerjan> monqy: elliott said "hi" in the other window, i _think_ this is harmless for me to explain? omg don't hurt me!
10:17:18 <monqy> does that mean if i say hi i'll turn into monqy
10:17:26 <shachaf> is oerjan having secret conversations with elliott
10:17:30 <monqy> a fate worse than death???
10:17:39 <shachaf> monqy: if i say hi will i turn into monqy
10:17:47 <oerjan> monqy: i hesitate to tell you, but i'm afraid it may already have happened
10:18:09 <Jafet> What about your turning into monqy
10:18:28 <shachaf> monqy: when do i get my monqy manual
10:18:37 <shachaf> the book all monqys have access to
10:18:54 <monqy> gosh i have access to a lot of books which one are you talking about
10:18:58 <monqy> be more specific please
10:19:20 <monqy> i have access to that
10:19:37 -!- Phantom_Hoover has joined.
10:19:43 <shachaf> but i think it's a book you have access to iff you're monqy
10:19:53 <oerjan> shachaf: i think it must be "Journey to the West" hth
10:20:50 <oerjan> oh iff you're monqy, cannot be that one then
10:20:58 <oerjan> it's pretty out of the bag, so to speak
10:21:17 <shachaf> i heard monqy was a bit 'out of the bag' if you know what i mean
10:21:25 <oerjan> http://en.wikipedia.org/wiki/Journey_to_the_West
10:21:56 <oerjan> or maybe there are four books, one more for each of East, South and North, but only monqy has those
10:21:56 <monqy> what sort of bag are we talking about here
10:22:07 <shachaf> ummmm i think its metaphorical
10:22:17 <monqy> i think i'm in that bag though
10:22:24 <shachaf> monqy: im hinting that youre a cat
10:22:41 <shachaf> the proof is that you made a unicode cat face the other day
10:23:34 <monqy> alright i'll believe that
10:28:10 <Sgeo> http://www.stanford.edu/~cammat/HOVER/index.html
10:28:14 <Sgeo> Wonder if it works on WINE
10:29:34 -!- nooga has joined.
10:30:20 <shachaf> monqy: Am I bothering you too much?
10:30:46 <monqy> did someone suggest that you might be
10:35:11 <shachaf> I think I suggested it in those terms.
10:41:32 <Phantom_Hoover> meanwhile: http://www.reddit.com/r/math/comments/18mh1p/my_favorite_song_about_doing_calculus/c8h3ygo?context=3
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 <elliott> fftw: are you a fourier transform
10:56:36 <fizzie> Perhaps not only fast, but the fastest.
10:57:15 <fizzie> ("In the West? I thought MIT was in the East?" is one of the FFTW FAQ questions.)
10:57:18 <ais523> btw, here's something fun to inspire conversation: aimake2 makes a test file that can include one of five header files: <iso646.h>, <limits.h>, <setjmp.h>, <sys/types.h>, and <zlib.h>
10:57:33 <ais523> any guesses as to why I chose that particular set?
10:57:48 <ais523> (in some cases, multiple header files would have worked; a couple of them had to be those specific headers, though)
10:58:26 <ais523> (also, in each case, the actual contents of the header files are irrelevant)
11:03:26 <FreeFull> ais523: To test if the compiler is being an ass or not?
11:03:39 <FreeFull> limits.h is part of the C standard
11:07:35 <oerjan> <shachaf> oh wait i'm mixing it up with geraffes
11:07:45 <oerjan> http://speedydeletion.wikia.com/wiki/Geraffe hth
11:08:17 <monqy> ??????????????????????????
11:08:18 * oerjan mainly wants to point out his discovery of this wiki.
11:08:41 <oerjan> (as a front page hit for geraffe, but still.)
11:08:44 <fizzie> Possibly all those headers are from different standards? At least limits.h is C89/C90, iso646.h C99, <sys/types.h> POSIX, and so on.
11:10:06 -!- monqy has quit (Quit: hello).
11:12:20 <shachaf> I want a program to keep track of my PDF files.
11:12:34 <shachaf> I download lots of them and they have weird filenames and I lose them and it's annoying.
11:12:41 <shachaf> Is there a nice program for it?
11:13:01 <shachaf> Indexing a bunch of files with a bit of metadata (title, author, notes, etc.)
11:15:50 <fizzie> You could abuse a generic ebook library collection manager (like Calibre) for that, maybe? Though it doesn't sound entirely sensible.
11:16:45 <shachaf> That doesn't sound so bad in principle.
11:16:51 <shachaf> I haven't heard of Calibre -- let me see.
11:18:04 <fizzie> It maintains a metadata database, does format conversions, fetches book info from Amazon/whatever, and has e-reader integramation stuffs.
11:19:11 <shachaf> Well, I'll download the 20MB and see.
11:19:45 <elliott> shachaf: Calibre is that one where it installed a buggy setuid program and then the maintainer refused to remove it or something.
11:20:11 <shachaf> Is that where I heard the name before?
11:20:18 <shachaf> I don't want to install it if it's still there.
11:20:49 <fizzie> I don't see any suid binaries in this Ubuntu package, at least.
11:21:30 <oerjan> `run echo Testing something right here | hyfinate
11:21:32 <HackEgo> Tes-ting so-met-hing right he-re
11:28:42 <shachaf> fizzie: wow this has an actual wizard
11:28:57 <shachaf> With an actual picture of a magic wand and everything.
11:29:34 <shachaf> AttributeError: 'BooksView' object has no attribute 'context_menu'
11:29:49 <shachaf> I like the part where it throws exceptions when you right-click things.
11:30:57 <shachaf> This looks like an awful UI but I hate making GUIs so maybe I'll use it.
11:32:11 <fizzie> I wasn't too happy about the UI either.
11:32:36 <elliott> Does it need to be a GUI thing?
11:33:53 <elliott> I'm not sure what operations you require.
11:34:25 <shachaf> I'm not quite sure either.
11:34:32 <shachaf> I want to have lots of .pdf, .ps.gz, etc. files
11:34:48 <shachaf> I want them to have metadata, like title, author, notes, and tags-or-something
11:34:55 <shachaf> I want to be able to find them easily by metadata.
11:35:27 <elliott> 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:42 <elliott> (A file per PDF, that is.)
11:36:13 <shachaf> Once I grep I have to view the filename and things like that.
11:36:49 <shachaf> 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 <shachaf> I suppose in my case maybe just having multiple metadata files is enough.
11:37:09 <elliott> Right. So you also require integration with a PDF reader (at least to the point of opening the file automatically).
11:37:34 <elliott> Anyway I think "document search" may be useful keywords?
11:37:55 <shachaf> I wonder whether all I want is searching.
11:38:02 <shachaf> It seems like I want more but I'm not sure what.
11:38:11 <elliott> If you search for the empty query then you get a list too.
11:38:17 <shachaf> 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 <elliott> And you can merge the latter two, and arguably the first as well.
11:40:49 <elliott> Well, it means that searching will be easier.
11:40:52 -!- ais523 has quit (Ping timeout: 248 seconds).
11:40:53 <elliott> Since you can just type any old crap.
11:41:04 <elliott> And it also means that more software will satisfy your requirements, because they'll be weaker.
11:41:10 <shachaf> I also want "original filename of the PDF".
11:41:19 <shachaf> Because I care about that for some reason?
11:41:21 * elliott wonders what possible use you have for that.
11:41:41 <elliott> 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:13 <elliott> Yes, but papers are usually available from multiple locations.
11:42:30 <shachaf> Anyway some sort of "browsing" thing would be good too.
11:42:36 <shachaf> But I'm not sure exactly what it should be.
11:43:05 <shachaf> Why can't the Internet be one big content-addressed thing?
11:43:17 <shachaf> That way things wouldn't disappear.
11:43:36 <shachaf> (They already "don't disappear" -- you just don't know where to find them.)
11:44:16 <shachaf> Anyway, this sounds like a good start.
11:44:24 <shachaf> What satisfies these requirements?
11:44:39 -!- ais523 has joined.
11:46:49 <elliott> Well, grep + a tiny wrapper shell script, for requirements this minimal.
11:47:22 <shachaf> Also I want to be able to add files easily.
11:47:37 <elliott> That's another shell script. But I'm not proposing you use shell scripts.
11:48:39 <shachaf> Ugh, I wish I had working → and End keys.
11:49:21 <FreeFull> shachaf: Rebind capslock as → and shift+capslock as End
11:51:19 <shachaf> Maybe I'll just do it elliott's way.
11:54:21 <zzo38> But then, what if you want to write in all capital letters?
11:54:41 <zzo38> (such as when using with software that doesn't accept lowercase, such as INTERCAL)
11:56:45 <shachaf> I already bind caps lock to Esc.
11:56:54 <shachaf> If I want to write in all capital letters, I'll hold the shift key.
12:01:34 <doesthiswork> did Psogumma ever go beyond a concept? http://catseye.tc/node/Psogumma.html
12:03:11 <FreeFull> I think the difficulty is in making a good pseudo-random generator
12:05:56 <doesthiswork> I can't think of any big obstacles off the top of my head
12:09:45 <doesthiswork> 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:11:25 <doesthiswork> or really easily it could be a skin for the s k i combinators
12:11:47 -!- jconn has joined.
12:38:08 <lambdabot> (MonadState s ((->) (m a -> f (m a))), Field1 s t b b1, Effective m r f) => (a -> f a) -> b
12:39:25 <lambdabot> (Field1 s t (m a) (m a), Effective m r f) => (a -> f a) -> s -> f t
12:40:22 <lambdabot> Couldn't match expected type `a0 -> f0 a0' with actual type `[a1]'
12:41:14 <oerjan> > (_1 . acts) (:[]) []
12:41:16 <lambdabot> No instances for (Control.Lens.Tuple.Field1
12:41:44 <lambdabot> No instance for (GHC.Show.Show (m0 a0))
12:41:45 <lambdabot> arising from a use of `M37117443...
12:41:47 <oerjan> > (_1 . acts) (:[]) ([], "so")
12:41:49 <lambdabot> No instance for (Control.Lens.Internal.Action.Effective [] r0 [])
12:42:18 <elliott> oerjan: the Effective/MonadicGetter/MonadicFold stuff isn't very good.
12:42:26 <elliott> it is a source of disappointment
12:50:35 <FreeFull> Which lens package should I install?
12:51:29 <Taneb> shachaf, can I use your Free Group type?
12:51:33 <FreeFull> It's still a heavy work in progress, isn't it?
12:51:44 <Taneb> It's a heavy work that is in progress
12:52:07 <Taneb> Putting in a library and sharing with the world
12:52:50 <shachaf> I didn't know it was mine.
12:52:57 <oerjan> > transposeOf (traverse._1) [("testing",1),("ho",2)]
12:52:59 <shachaf> I don't know whether it's actually a free group type.
12:52:59 <lambdabot> [[('t',1),('h',2)],[('e',1),('o',2)]]
12:53:22 <Taneb> newtype FreeGroup a = FreeGroup {runFreeGroup :: Group g => a -> g}, I believe
12:53:24 <oerjan> oh right "ragged inputs"
12:53:40 <Taneb> Yes, that makes more sense
12:53:51 <Taneb> newtype FreeGroup a = FreeGroup {runFreeGroup :: Group g => (a -> g) -> g}
12:53:58 <shachaf> newtype Foo = Foo { runFoo :: forall g. Group g => (a -> g) -> g }
12:54:03 <shachaf> oerjan: Is that a free group?
12:54:16 <elliott> How about newtype Free c a = Free { runFree :: forall r. c r => (a -> r) -> r}.
12:54:20 <elliott> How about newtype Free c a = Free { runFree :: forall r. c r => (a -> r) -> r }.
12:54:43 <shachaf> Does it actually give you free things always?
12:54:45 <oerjan> shachaf: i think i concluded the other day it was
12:58:05 <Taneb> I find myself unable to write instance Show (Free Show a)
12:59:12 <Taneb> Read (Free Read a) feels difficult also
13:01:22 <elliott> Taneb: (Show a, c a) => Show (Free c a) should work.
13:01:48 <elliott> I suggest not writing those instances.
13:03:18 <oerjan> c needs to be something that can be lifted into (r ->)
13:03:58 <oerjan> er r is a bad letter there, try (e ->)
13:04:20 <Taneb> Wouldn't it be (-> r)?
13:04:26 <oerjan> this is easy enough for _actual_ algebraic structures
13:04:39 <Taneb> I think it was the bad letter confusing me
13:04:42 <oerjan> 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 <oerjan> and Show doesn't have that
13:10:10 <oerjan> > scanl1Of each (+) (1,2,3,4,5)
13:15:05 <oerjan> > partsOf each .~ [42] $ [1..10]
13:15:26 <elliott> oh, that scanl1Of is fancy!
13:15:31 <elliott> I didn't realise that was possible
13:18:39 <oerjan> > let ljust s n = partsOf each .~ s $ replicate n ' ' in ljust "testing" 10
13:19:23 <elliott> ...that may be slightly evil :P
13:23:14 <shachaf> Just use partsOf traverse instead of artsOf each to make it not evil!
13:25:23 <oerjan> just because each and traverse are the same on lists...
13:26:27 <elliott> oerjan: (shachaf has prejudices.)
13:29:33 <shachaf> oerjan: Isn't each slower?
13:29:42 <shachaf> Oh, I guess not, with the Conjoined hack. :-(
13:31:34 <shachaf> oerjan: Oh, it's so ugly. You'd hate it.
13:31:45 <lambdabot> Conjoined p => (p ~ (->) => q (a -> b) r) -> q (p a b) r -> q (p a b) r
13:32:03 <shachaf> You provide an indexing and a non-indexing version of the operator.
13:32:19 <shachaf> That way it can choose the second one sometimes for better performance.
13:35:31 <shachaf> elliott: See previous line.
13:36:17 <shachaf> 05:32 <shachaf> You provide an indexing and a non-indexing version of the operator.
13:39:13 -!- nooga has quit (Ping timeout: 248 seconds).
13:49:41 -!- Regis_ has joined.
13:53:49 <ais523> btw, I have to disappear again in like 5 minutes
13:54:06 <ais523> but the answer to my include files question is, between them they should cover all the default search paths for header files
13:54:50 <HackEgo> 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 <ais523> 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 <ais523> available header that wasn't in either C or POSIX
13:56:33 <ais523> 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 <ais523> I actually read gcc source about that; every single other C89 header can be patched on some platform or another
13:56:56 <ais523> (and that would move it to the same search path as limits.h)
13:57:28 <ais523> 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 <ais523> and thus most compilers feel they have to provide it
13:58:04 <ais523> clang provides it too, for instance
14:00:19 <elliott> 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 <FreeFull> 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 <FreeFull> I mean can't apply them to the code
14:45:51 -!- nooga has joined.
14:54:13 <ais523> elliott: probably because gcc does, I guess
14:54:21 <ais523> also because it's the most portable header in existence
14:54:30 <ais523> it basically has to define macros with specific names and specific expansions
14:54:40 <ais523> 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:52:55 <AnotherTest> I wonder whether programs can be predictable
16:53:09 <AnotherTest> is it possible to predict the numbers in powers of 2?
16:53:25 <AnotherTest> If so, I think that might be a possible way of doing it
16:53:41 <mroman> You can compute the collatz sequence.
16:54:45 <mroman> You want to write a program
16:54:56 <mroman> (incl. all sub-programs)
16:55:09 <mroman> and then find a number which produces your program?
16:55:41 <AnotherTest> Yes, by predicting what any power of two is going to do
16:56:47 <AnotherTest> The remaining problem is: what digits to these powers of 2 contain
16:59:41 <mroman> I actually highly doubt that one can achieve an arbitrary effect at an arbitrary point.
16:59:44 <AnotherTest> because, for example, a very low power of 2 already has digits that cause something bad
17:00:09 <AnotherTest> mroman: well you can always try, but I agree
17:03:24 <AnotherTest> mroman: what about a language similar to Büü, but to make it more complex:
17:04:03 <AnotherTest> 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:59 <mroman> I don't think it needs to be more complex
17:05:07 <mroman> it's already completely unusable to program in.
17:06:14 <AnotherTest> mroman: maybe in 10 years it's like real simple to write code in tho
17:07:40 <mroman> wont that just mean that there is no Büü programs which yields infinite sub-programs?
17:07:51 <mroman> that does not make it any simpler to write Büü programs?
17:08:25 <AnotherTest> Well, yes, but the way of proof probably would provide (and require) more insight in the sequences
17:09:19 <AnotherTest> 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:55 <mroman> If you wan't you can write a Büü program which adds two 2bit unsigned numbers :)
17:10:08 -!- Nisstyre-laptop has joined.
17:10:14 <mroman> but since there is no input
17:10:22 <mroman> and you have to encode the numbers to add in your program
17:10:29 <mroman> it influences the behaviour of your program :)
17:10:59 <mroman> and most certainly will yield different sub-programs to execute of course.
17:11:38 <AnotherTest> 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:22 <mroman> and you don't need to worry about sub-programs actually.
17:12:30 <mroman> you can write a single program in Büü
17:12:39 <mroman> and it will execute that program
17:12:49 <mroman> and then the behaviour of the rest depends on the collatz sequence
17:13:03 <AnotherTest> which might cause something totally different to happen?
17:13:04 <mroman> but if you don't care about what your program does after it's done its job its no problem.
17:14:13 <mroman> Is Büü turing-complete given it would not compute sub-programs and evaluate those?
17:14:27 <mroman> or might it be turing-complete if it does so.
17:14:29 <AnotherTest> I think so, but I'd have to recheck for that
17:14:33 <mroman> I personally think no.
17:14:52 <mroman> If you chain an infinite amount of finite state machines together
17:14:59 <mroman> does that make a turing machine?
17:15:27 <mroman> I would love if it were so of course :D
17:16:15 <mroman> An infinite amount of finite state machines actually most probably has infinite state
17:17:22 <mroman> but they are executed one after another
17:17:28 <mroman> which probably indeed yields only finite state.
17:17:50 <mroman> but they share the same data
17:17:57 <mroman> I really don't know anything :(
17:18:27 <mroman> Smallfuck has nested loops.
17:19:02 <mroman> 4 just jumps back to the last 2
17:19:19 <mroman> they would both jump to the same 2
17:19:25 <mroman> (the second two to be exact)
17:20:26 <mroman> 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 <tswett> 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 <tswett> 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 <tswett> 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:42 <tswett> Nah. What the page says is true in ordinary set theory.
17:48:24 <elliott> so you can give semantics for the LC in NFU as long as you admit non-function primitive types :P
17:49:01 <tswett> Well, NFU certainly also has sets S such that the set of all functions S -> S is larger than S.
17:49:04 <tswett> For example, {1, 2, 3}.
17:49:07 -!- augur has quit (Remote host closed the connection).
17:49:18 <tswett> 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 <tswett> What about the set S = { x | x is a function with domain and codomain S }... nope, that's a recursive definition.
17:51:02 <tswett> Okay, technically S = {1} is such a function.
17:51:20 -!- Taneb has quit (Quit: Leaving).
17:52:44 <tswett> Yeah, it's totally lame. It gets in the way of category theory.
17:54:39 <elliott> it's all gross and untyped!
17:54:54 <elliott> and it has all these lame axioms for nerds
17:54:58 -!- augur has quit (Ping timeout: 276 seconds).
17:55:25 <elliott> and it doesn't even have a nice first-class proof representation!!
17:55:54 <tswett> Maybe the calculus of constructions is better.
17:56:24 -!- Bike has joined.
17:58:49 <elliott> something about homotopy type theory
18:21:44 -!- Nisstyre-laptop has quit (Quit: Leaving).
18:21:44 <mroman> AnotherTest: You spelled my name wrong ;)
18:23:43 <mroman> it's actually even ü instead of ue
18:26:52 <mroman> AnotherTest: It's getting DSLs btw ;)
18:27:19 <mroman> I figured to increase its expressiveness even more it might be neat
18:27:36 <mroman> to switch between different embedded DSLs
18:27:44 <mroman> so one can just the most appropriate.
18:28:34 <AnotherTest> So you're going to embed languages inside Burlesque?
18:30:33 <mroman> I'm currently working on a DSL to manipulate text.
18:31:21 <mroman> I don't want to have anything to do with perl ;)
18:32:48 <mroman> there will be regular expressions of course.
18:32:56 <mroman> Burlesque already has them.
18:33:10 <mroman> but they can be accessed with fewer keystrokes in my DSL
18:33:42 <Bike> important design criteria
18:33:54 -!- augur has joined.
18:34:05 <lambdabot> [*Exception: Prelude.head: empty list
18:34:28 <lambdabot> Functor f => f (a -> b) -> a -> f b
18:34:30 <AnotherTest> You should consider extending the regular expression syntax I think
18:36:19 <Bike> > [head] ?? [3,9]
18:37:05 <FreeFull> Is the function [a] -> [a] where the list returned only has the first element, or is empty, useful for anything?
18:37:07 <Bike> You should use Snobol syntax.
18:37:51 <FreeFull> I guess with tail 1, you wouldn't need a less generic function
18:38:01 <FreeFull> How about one that works for all functors though?
18:38:33 <FreeFull> Are there functors that can't be empty?
18:39:10 <FreeFull> If the functor isn't empty, you can always take the first element anyway
18:40:07 <FreeFull> So either :: (Functor f) => f a -> f a or :: (Functor f, Integral n) => f a -> n -> f a
18:41:21 <FreeFull> 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 <elliott> Note that IO and (e ->) (for any e, possibly unordered) are Functors.
18:42:30 <elliott> If you think you have something that works for every Functor then those are two good ones to consider.
18:44:17 <elliott> 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:32 <FreeFull> And () doesn't count as empty here
18:48:30 <FreeFull> 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 <FreeFull> And for any functor which only contains one value, :: (Functor f) => f a -> f a should be id
18:49:24 <elliott> Is Identity empty? Note that your answer must coincide for (->) e when e = ().
18:49:33 <tswett> I'm suddenly reminded of my "replace" function.
18:50:00 <elliott> 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 <FreeFull> Well, IO doesn't really contain a value
18:50:39 <tswett> 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 <FreeFull> For (->) e you'd have :: ((->) e) -> ((->) e)
18:53:03 <FreeFull> Which has to return the exact same thing it was given
18:54:18 <FreeFull> @hoogle (Functor f) => f a -> f a
18:54:19 <lambdabot> Control.Monad void :: Functor f => f a -> f ()
18:54:19 <lambdabot> Prelude fmap :: Functor f => (a -> b) -> f a -> f b
18:54:19 <lambdabot> Data.Functor fmap :: Functor f => (a -> b) -> f a -> f b
18:55:38 <Sgeo> Is this not id?
18:55:48 <FreeFull> I don't know how to implement it though, I don't think it can be done in terms of fmap or <$
18:57:39 <elliott> 18:52:43 <FreeFull> For (->) e you'd have :: ((->) e) -> ((->) e)
18:57:42 <elliott> that type isn't even valid :P
18:58:16 <FreeFull> It'd be :: ((->) e a) -> ((->) e a)
18:59:13 -!- epicmonkey has quit (Ping timeout: 248 seconds).
18:59:23 <Sgeo> Does (->) e or whatever have a name other than "reader monad" to distinguish it from the more "official" reader monad?
18:59:43 <Sgeo> I just keep calling it reader monad which I guess can be confusing to some
19:00:39 <FreeFull> I'd be tempted to call it a function constructor, although that's wrong
19:02:04 <FreeFull> 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 <Sgeo> What does fhead do? Sorry, wasn't paying attention
19:04:42 <Sgeo> 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 <Sgeo> And Cont is a functor, so you need to be able to write it for Cont
19:08:03 <Sgeo> I should try to understand cont
19:08:10 <Sgeo> It's delimited continuations, I think
19:08:18 <Sgeo> Shouldn't be too difficult really
19:08:24 <Sgeo> Well, I don't grok the types anyway
19:08:29 <FreeFull> Well, the functor instance is for ContT
19:08:45 <FreeFull> Sgeo: I'm looking at its source now
19:08:52 <FreeFull> http://hackage.haskell.org/packages/archive/mtl/1.1.0.2/doc/html/src/Control-Monad-Cont.html
19:09:19 -!- SirCmpwn has quit (Excess Flood).
19:10:21 <Sgeo> Uh, why does it have callCC?
19:12:04 <Sgeo> callCC's name implies undelimited continuation
19:12:41 -!- SirCmpwn has joined.
19:15:06 <FreeFull> Is Cont basically function composition?
19:16:45 <Sgeo> It's basically delimited continuations
19:17:10 <Sgeo> 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 <nooodl> "[...] and π ≈3.1416 and e ≈ 2.7183." gee, thanks wikipedia
19:25:39 <lambdabot> 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: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:39:35 -!- Regis_ has quit (Ping timeout: 252 seconds).
19:40:11 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover
19:40:33 <HackEgo> #!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; 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:09 <Sgeo> What's so WUT?
19:41:16 <Sgeo> Although, how did HackEgo get on there
19:41:30 <Gregor> Presumably two commands were sent to HackEgo near the same time.
19:41:57 <Gregor> Y'know, oldpwd is always the same.
19:42:46 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover
19:43:01 <Sgeo> Would be nice if it showed the new name too
19:43:21 <boily> I think I prefer it this way. it's sneaky.
19:43:22 <HackEgo> #!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; 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 <Sgeo> Maybe if it added one, make it call itself and exit before its own echo
19:44:24 <fizzie> http://codu.org/logs/log/_esoteric/2013-02-07#215457elliott is approximately when HackEgo gets on it.
19:44:43 <nortti> 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 <tswett> Sgeo: I'd hesitate to say that Cont is for delimited continuations.
19:53:27 <tswett> The "limit" of callCC is the entire computation; there's no reset operator.
19:59:21 <Sgeo> http://en.wikibooks.org/wiki/Haskell/Continuation_passing_style
19:59:28 <Sgeo> pythagoras_cps is valid syntax?
19:59:47 <Sgeo> 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 <neutrak> okay quintopia, what is this bot?
20:03:48 <lambdabot> neutrak: You have 1 new message. '/msg lambdabot @messages' to read it.
20:04:34 <neutrak> auto-deleting I guess, but other than that it seems exactly like sendmail
20:05:08 <tswett> Sgeo: have you seen Ralph Loader's loader.c, the one that produces an extremely large number?
20:05:39 <tswett> It's described here: http://djm.cc/bignum-results.txt
20:05:54 -!- neutrak has quit (Client Quit).
20:06:12 <tswett> 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 <Sgeo> tswett, with the k that the function passed to callCC gets, will that k return something sensible when given a value?
20:08:55 <tswett> Well, yeah. It returns a value of type forall b. Cont r b.
20:08:56 <Sgeo> {loader.c} very big very big
20:10:03 <tswett> It never produces a value of type forall b. b, though; the code beyond the call to k simply doesn't run.
20:10:44 <Sgeo> So, not comparable to shift
20:10:49 <Bike> that's a pretty cool program.
20:11:05 <tswett> Hm, I don't remember how shift works.
20:11:08 -!- DHeadshot has joined.
20:11:15 <tswett> Let me look up shift, again.
20:11:49 <tswett> Okay, so "the shift operator captures or reifies the current continuation up to the innermost enclosing reset".
20:13:06 <nooga> http://subtextual.org/subtext2.html peculiar, but interesting
20:13:16 -!- Regis_ has joined.
20:13:17 -!- epicmonkey has joined.
20:13:29 <tswett> 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 <tswett> Similar to shift, then, I guess, but not the same.
20:16:23 <FreeFull> Sgeo: Would fhead x = cont $ runCont x be a valid implementation you think?
20:16:42 <Sgeo> I think that is id
20:16:46 <tswett> Hm. I wonder how you'd simulate a "singleton object" in Haskell. Like, a value that cannot be copied or destroyed.
20:17:54 <tswett> 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 <Sgeo> Well, if the type is general, the number of operations that can be done on it is limited
20:18:37 <Sgeo> id :: a -> a can't possibly, say, add 1 to argument
20:18:53 <Sgeo> Although does copying count as an operation? Probably not?
20:19:11 <tswett> Right. There's a function of type forall a. a -> (a, a); that copies the a.
20:19:36 <tswett> 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 <tswett> So you can't have b = Maybe, because there's no function forall a. Maybe a -> a.
20:21:22 <tswett> 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 <FreeFull> Does cont $ runCont evaluate the continuation or leave it as is?
20:21:54 <Sgeo> :t cont . runCont
20:22:36 <tswett> Looks like it leaves it as is.
20:22:38 <Sgeo> :t cont $ runCont
20:22:39 <lambdabot> Couldn't match expected type `a0 -> r0'
20:22:47 -!- DHeadshot has quit (Ping timeout: 244 seconds).
20:22:50 <tswett> You're not evaluating the continuation until you pass an "a -> r" in.
20:23:37 <FreeFull> ((a -> r) -> r) looks like fix's signature
20:23:39 <tswett> cont . runCont $ x is a computation that, when run, asks for an "a -> r" and then passes it on to x.
20:23:42 <Sgeo> 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 <tswett> Oh yeah, every monad in Haskell is isomorphic to a Cont monad.
20:24:13 <FreeFull> Because you can implement all monads in terms of Cont?
20:24:33 <tswett> So what's fhead, again?
20:24:47 <Sgeo> tswett, the function that FreeFull is trying to writr
20:24:56 <tswett> Well, what's it supposed to do?
20:25:15 <Sgeo> Uh. Ask FreeFull. But its type is apparently (Functor f) => f a -> f a
20:25:28 <FreeFull> tswett: For lists, it's the same as take 1
20:25:40 <FreeFull> For a tree, it'll return the root node
20:25:57 <tswett> I'm pretty sure that's impossible.
20:26:02 <Sgeo> Maybe you should make a new typeclass?
20:26:24 <FreeFull> For IO and (e ->) it'd be just id
20:26:40 <tswett> The only way you can make it work for all functors is by writing it using only fmap.
20:26:45 <tswett> And you can't do that using only fmap.
20:27:00 <tswett> "Stream" is a functor, yes.
20:27:05 <FreeFull> The problem with a stream is that it always contains an infinite number of values
20:27:24 <FreeFull> You could take one and repeat it
20:27:31 <FreeFull> But I don't know if that's a reasonable thing to do
20:27:52 <Sgeo> 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 <Sgeo> Or find a different typeclass that it makes sense to implement fhead in terms of
20:28:31 <tswett> Yeah, that's what I was thinking. It should belong to a new typeclass.
20:28:43 <tswett> Or find a typeclass that already lets you do this somehow.
20:29:34 <Sgeo> If your intuition claims that this should apply to all functors, your intuition about what a functor is is wrong.
20:30:25 <nooga> http://dkeenan.com/Lambda/ this
20:30:58 -!- oerjan has joined.
20:32:46 <FreeFull> Sgeo: I already thought of a functor this doesn't work for
20:32:55 <FreeFull> Unless you do the repeat tihnig
20:33:43 <FreeFull> 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 <Sgeo> tswett, is cont shift?
20:38:06 <tswett> Isn't it more like reset, if anything?
20:38:35 <Sgeo> cont $ \k -> ...
20:38:51 <tswett> Yeah, cont still has no way of accessing the stuff around it.
20:38:55 <Sgeo> What does k do there?
20:39:18 <tswett> Uh, hmm. k :: a -> r, right?
20:40:06 <tswett> I guess k is just the function that runCont passed in.
20:40:29 <Sgeo> 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 <tswett> Yeah, I don't think it does anything special.
20:42:04 <tswett> Hm, maybe we could try to figure out how to create delimited continuations.
20:42:16 <Sgeo> Lemme see if I can transliterate a shift/reset example into using cont
20:42:39 <tswett> "reset" provides a context that "shift" runs in. "shift" does something within that context.
20:42:44 <oerjan> @tell AnotherTest <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:43:32 <Sgeo> > (`runCont` id) $ do { r <- cont $ \k -> do {k 5}; return (r+1) }
20:43:41 <tswett> 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 <Sgeo> I think (`runCont` id) is reset and cont is shift
20:44:47 <tswett> I guess (`runCont` id) does seem pretty reset-like, but cont isn't shift-like, is it?
20:45:07 <Sgeo> Look at what k does. It does the surrounding and returns its result
20:45:25 <Sgeo> > (`runCont` id) $ do { r <- cont $ (\k -> do {k 5}); return (r+1) }
20:45:49 <tswett> That's just "return 5".
20:46:17 <tswett> Equivalent to it, anyway.
20:46:32 <Sgeo> > (`runCont` id) $ do { r <- cont $ (\k -> do {v <- k 5; w <- k 6; return (k+w)}); return (r+1) }
20:46:34 <lambdabot> Occurs check: cannot construct the infinite type:
20:46:46 <tswett> 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 <tswett> 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 <Sgeo> Is (shift k (k 5)) not just a thing that is equivalent to 5?
20:48:20 <nooga> FreeFull: yeah, but that one is quite clever
20:48:30 <tswett> That's also equivalent to 5, yeah.
20:48:54 <tswett> But there's no way to do, like, (shift k (k (k 5))) here. I think.
20:49:13 <tswett> 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 <tswett> shift :: ((a -> r) -> a) -> Del r a?
20:50:16 <Sgeo> > (`runCont` id) $ do {r <- cont $ (\k -> a <- k 5; b <- k a; return b); return (r+1)}
20:50:18 <lambdabot> <hint>:1:43: parse error on input `<-'
20:50:27 <Sgeo> > (`runCont` id) $ do {r <- cont $ (\k -> do a <- k 5; b <- k a; return b); return (r+1)}
20:50:28 <lambdabot> Occurs check: cannot construct the infinite type: t0 = m0 t0
20:51:29 <tswett> Hm. I don't immediately see anything wrong with that.
20:51:30 <Sgeo> > (`runCont` id) $ do {r <- cont $ (\k -> do a <- k 5; return a); return (r+1)}
20:51:32 <lambdabot> No instance for (GHC.Num.Num (m0 t0))
20:51:44 <tswett> What type does k return?
20:52:36 <Sgeo> > (`runCont` id) $ do {r <- cont $ (\k -> do a <- k 5; b <- k a; b); return (r+1)}
20:52:38 <lambdabot> Occurs check: cannot construct the infinite type: t0 = m0 t0
20:53:06 <Sgeo> > (`runCont` id) $ do {r <- cont $ (\k -> do a <- k 5; return a); return (r+1)}
20:53:08 <lambdabot> No instance for (GHC.Num.Num (m0 t0))
20:53:18 -!- kallisti has joined.
20:53:26 <tswett> 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 <Sgeo> Hmm, cont doesn't actually take a monadic thingy
20:53:45 <Sgeo> > (`runCont` id) $ do {r <- cont $ (\k -> k (k 5)); return (r+1)}
20:53:52 <tswett> Oh yeah, "a <- k 5" doesn't really even make sense.
20:54:01 <tswett> 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 <Sgeo> I stopped assuming that cont wanted to take a monadic value.
20:54:19 <Sgeo> It was a bad assumption.
20:54:28 <FreeFull> :t do {r <- cont $ (\k -> k (k 5)); return (r+1)}
20:54:31 <tswett> That does look like a delimited continuation indeed.
20:55:54 <tswett> Hm, I think I'm leaving something out of my delimited continuation stuff.
20:56:29 <tswett> 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 <Sgeo> Well, working with the pure Cont monad, as opposed to ContT.... what monad stuff?
20:57:02 <tswett> Maybe it ought to be this: shift :: ((a -> Del r r) -> Del r a) -> Del r a
20:57:17 <tswett> I'm not sure where it makes sense to do monad stuff.
20:57:20 <Bike> kmc: https://twitter.com/glitchr_/
20:57:24 <tswett> BRB; grabbing a sandwich from the fridge.
20:59:12 -!- hagb4rd has joined.
21:00:45 <lambdabot> (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 <oerjan> @let replace f = over (upon f)
21:01:32 <oerjan> > replace <AnotherTest> is it possible to predict the numbers in powers of 2?
21:01:35 <lambdabot> <hint>:1:61: parse error on input `in'
21:01:46 <oerjan> > replace head 'q' "elephant"
21:01:49 <lambdabot> Couldn't match expected type `p0 b0 b0'
21:02:06 <tswett> replace isn't a library function; I wrote it myself.
21:02:06 <nooga> FreeFull: it's get interesting when he talks about polymorphism and dataflow, the last third of the video
21:02:27 <oerjan> tswett: did you use upon?
21:03:10 <oerjan> > upon head .= 'q' $ "elephant"
21:03:11 <tswett> I think it only required that the container type belong to Functor.
21:03:12 <lambdabot> No instance for (Control.Monad.State.Class.MonadState
21:03:44 <oerjan> > upon head .~ 'q' $ "elephant"
21:04:22 <oerjan> @let replace f = set (upon f)
21:04:26 <lambdabot> Data.Data.Data b => b -> [b] -> [b]
21:04:39 <oerjan> > replace last 50 [1,2,3,4]
21:05:07 <oerjan> > replace (head . tail) True [False, False, False]
21:05:26 <oerjan> yep, that gives all your examples from the log :)
21:05:56 <tswett> 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:20 <lambdabot> (Data.Data.Data t, Data.Data.Data b) => (t -> b) -> b -> t -> t
21:06:20 <tswett> Given an instance of Functor for (->) Bool.
21:06:40 <tswett> What the heck is Data.Data.Data, anyway?
21:07:02 <FreeFull> that's just the second element
21:07:08 <Sgeo> tswett, it provides Brent Spinner
21:08:08 <oerjan> tswett: the automatically derived (or derivable?) type class for getting reflection about a type in ghc haskell
21:08:10 <FreeFull> Data is a subset of Typeable with some extra stuff
21:08:53 <Sgeo> DerivingDataTypeable
21:09:37 <tswett> 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:47 <oerjan> the lens documentation listed certain limitations about what you could pass to upon :)
21:09:54 <tswett> > replace ($ True) "yes" (\x -> if x then "si" else "no") True
21:10:24 <Sgeo> Oh, it's DeriveDataTypeable
21:11:29 <tswett> Let me find my "replace" function.
21:11:31 <FreeFull> oerjan: You could generalise replace to take a function (b -> c) rather than a value
21:12:05 <oerjan> FreeFull: naturally, since upon gives a lens or is it prism
21:12:12 <Sgeo> Hmm. If functions could be changed (hopefully by the dev) at runtime, all functions would have IO surrounding their entire type
21:12:37 <Sgeo> So in main, the actual function is unpacked with its current value in the IO monad
21:13:06 <Sgeo> So the developer does in fact have control over which version of a function gets used
21:13:27 <tswett> > replace (const True) False "hello"
21:13:32 <FreeFull> oerjan: Does it swallow all exceptions?
21:13:45 -!- zzo38 has joined.
21:13:49 <tswett> > replace id "goodbye" "hello"
21:14:16 <oerjan> FreeFull: i'm not sure it ever really applies the function given :P
21:14:33 <lambdabot> (Data.Data.Data t, Data.Data.Data b) => (t -> b) -> b -> t -> t
21:14:47 <tswett> Anyway, no, it turns out that my "replace" only works with a specific typeclass I defined.
21:14:48 <Sgeo> 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 <Sgeo> But then, the list of dependencies could change
21:15:41 <tswett> Though maybe I could get "replace" to work with any functor. Lemme see.
21:16:53 <tswett> This is the type I want: Functor f => (forall t. f t -> t) -> t -> f t -> f t
21:17:05 <tswett> Uh, let me change that.
21:17:15 <tswett> Functor f => (forall t. f t -> t) -> a -> f a -> f a
21:18:05 <FreeFull> I can give you a function that satisfies that type
21:18:31 <tswett> Can you give me two different total functions that satisfy that type?
21:18:59 <tswett> Okay, how about *three*?
21:19:30 <tswett> 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:20:03 -!- Gracenotes has quit (Ping timeout: 255 seconds).
21:20:15 -!- monqy has joined.
21:20:37 <tswett> 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 <tswett> Regis_: replace only takes three arguments.
21:20:54 <tswett> FreeFull: replace only takes three arguments.
21:21:17 <tswett> Yeah, I guess I can think of countably infinitely many.
21:21:23 -!- efm has quit.
21:21:31 <tswett> You can, as many times as you like, apply the selector, then use <$.
21:21:48 <FreeFull> tswett: The result will be the same though
21:21:56 -!- Gracenotes has joined.
21:22:13 <tswett> Anyway, it should be possible to explode any functor in the way I just described.
21:22:38 <tswett> I mean, I think that explosion is a natural transformation or what have you.
21:22:41 <Sgeo> So it fmaps ... what operation
21:22:45 <tswett> But I'm not sure it can actually be implemented.
21:22:47 <Sgeo> Hmm. I think you need pure.
21:22:49 <tswett> It doesn't just fmap an operation.
21:23:03 <Sgeo> And something else too
21:23:50 <tswett> Mm, natural transformations "touch the structure but not the data", don't they? This certainly touches the data, in a sense.
21:24:00 <tswett> It replaces it with other data, but doesn't actually look at it.
21:24:38 <tswett> 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 <tswett> So I think that this can't be implemented.
21:25:47 <FreeFull> fmap touches the data, but it touches all of it
21:26:25 <Sgeo> tswett, it replaces the data in a way that depends on the nature of the container
21:28:41 <Sgeo> http://web.archive.org/web/20090421080714/http://www.cpax.org.uk/prg/portable/c/c++/rfe00000.html
21:28:47 <tswett> Hm, I think I have a functor that replace doesn't make sense for.
21:29:12 <tswett> Namely, ((Integer -> Bool) ->).
21:29:45 <tswett> There are uncountably many (Integer -> Bool)s, but any given ((Integer -> Bool) -> a) can only actually distinguish countably many of them.
21:30:21 <tswett> 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 <tswett> Whereas "replace" requires it to distinguish one single point.
21:30:44 <tswett> Okay, why don't we go back to delimited continuations.
21:31:13 <tswett> http://hpaste.org/82639 – this is the basic thing we'd like to be able to do with delimited continuations.
21:31:21 <tswett> Notice that there's definitely monad stuff going on on the outside.
21:31:43 <Sgeo> We just need to define reset
21:31:56 <FreeFull> What's the type of reset again?
21:32:05 <tswett> Del a a -> a, I think.
21:32:17 <Sgeo> reset = flip runCont id -- should do the trick
21:32:19 <tswett> I'm trying to figure that out.
21:32:45 <lambdabot> Couldn't match expected type `Cont r0 a0'
21:32:45 <lambdabot> In the first argument of `runCont', namely `id'
21:33:14 <tswett> Not quite. The type I was guessing shift would have was "shift :: ((a -> r) -> a) -> Del r a".
21:33:21 <tswett> Sgeo: let me change things up a bit.
21:35:06 <tswett> http://hpaste.org/82639 – so does this still work with deli 2?
21:35:27 <tswett> :t (\showIt -> showIt . length . showIt $ "pink")
21:35:28 <lambdabot> Couldn't match expected type `Int' with actual type `[Char]'
21:35:29 <lambdabot> In the second argument of `($)', namely `"pink"'
21:35:29 <lambdabot> In the expression: showIt . length . showIt $ "pink"
21:35:54 <tswett> Mmhmm. Let me try that again.
21:36:28 <tswett> http://hpaste.org/82639 – deli 2.1.
21:36:38 <tswett> :t (\showIt -> showIt . length . showIt $ 1234567812345678)
21:36:42 <Sgeo> Lemme see if ideone supports this stuff
21:37:02 <tswett> :t do x <- cont (\showIt -> showIt . length . showIt $ 1234567812345678); return (show x)
21:37:21 <tswett> Where the Fletcher Tringham did ContT come from.
21:37:47 <tswett> > flip runCont id $ do x <- cont (\showIt -> showIt . length . showIt $ 1234567812345678); return (show x)
21:38:07 <tswett> All right, let me make it smaller.
21:38:10 <Sgeo> As in, IdeOne can't find Control.Monad.Cont
21:38:14 <tswett> > flip runCont id $ do x <- cont (\showIt -> showIt $ 1234567812345678); return (show x)
21:38:31 <tswett> Okay, that works. Let me try something else.
21:38:43 <tswett> > flip runCont id $ do x <- cont (\showIt -> "foo" ++ showIt 1234567812345678); return (show x)
21:38:55 <Sgeo> Remember, the thing inside shift, the function passed to shift, its result should be the result of the whole computation
21:39:02 <lambdabot> `showInt' (imported from Numeric), `shows' (imported from Prelude),
21:39:03 <Sgeo> Which in the Cont monad is represented by r
21:39:17 <tswett> So how come it doesn't work when you use showIt twice?
21:39:33 <Sgeo> > flip runCont id $ do x <- cont (\showIt -> showIt . length . showIt $ 1234567812345678); return (show x)
21:39:53 <Sgeo> lambdabot has pulled that on me before
21:39:56 <Sgeo> timing out for no reason
21:40:14 <tswett> So yup, these do look like delimited continuations.
21:40:39 <tswett> Let me look at those types one more time.
21:40:44 <tswett> :t (flip runCont id, cont)
21:40:46 <lambdabot> (Cont c c -> c, ((a -> r) -> r) -> Cont r a)
21:40:47 <oerjan> <tswett> 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 <tswett> Okay, so here's the thing. It would make sense to use shift inside shift.
21:44:35 <tswett> 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:45:57 <tswett> But I do think that the "whole outer thing" should just be a function (a -> r), without any fancy monad stuff.
21:46:41 <Sgeo> It is, isn't it?
21:47:07 <tswett> So we want shift to have this type: ((a -> r) -> Cont r r) -> Cont r a
21:47:44 <tswett> Then again, I guess all you would do is call "reset" on the Cont r r.
21:48:40 <tswett> So yeah. Sounds like Cont is, indeed, the delimited continuation construct.
21:49:00 <lambdabot> 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 <Sgeo> ew "How does AcidState deal with the presence of very big data structures which may not fit in memory?
21:49:46 <Bike> is this a drug joke
21:49:46 -!- copumpkin has joined.
21:50:09 <tswett> Hm. Why do "out of memory" exceptions happen, anyway?
21:50:22 <tswett> Doesn't swapping effectively give you... a lot of memory?
21:50:38 <Sgeo> No, I just don't like the notion of a .. state storage thing that doesn't do well with large state
21:50:50 <tswett> Is the system simply deemed to have "run out of memory" once it's too dependent on swap?
21:50:56 <tswett> I believe those are called databases.
21:51:25 <tswett> Mm. "This occurs because all available memory, including disk swap space, has been allocated."
21:52:43 <zzo38> I know you can make intuitionistic logic in linear logic
21:52:57 <zzo38> (It seems a comonad?)
21:53:36 <tswett> Hm. Expressions could be a comonad.
21:54:09 -!- CrayKnight has quit (Ping timeout: 248 seconds).
21:54:39 <zzo38> 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 <tswett> 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 <tswett> "extract" would simply evaluate the expression.
21:56:39 <tswett> "duplicate" would, uh... turn the expression into an expression for itself. There are plenty of ways you could do that.
21:57:46 <zzo38> 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 <tswett> Yeah, no, I don't think Expr is a comonad.
21:58:39 <FreeFull> tswett: Those look like applicative
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 <Sgeo> god dammit I hate absolutely everyone.
22:18:46 <Bike> That's a lot of people, sgeo...
22:20:51 <Sgeo> I have no hope for the programming community.
22:21:09 <Sgeo> alert = ffi "window.alert(%1)"
22:21:15 <Bike> What about all the people who aren't in the programming community (what is the hprogramming community"
22:21:21 <Sgeo> How is that FFI possibly a good idea in anyone's imagination?
22:22:20 <Bike> what's wrong with it
22:24:25 <Phantom_Hoover> sgeo there are so many important bits of context you have left out...
22:24:54 <Bike> basically, yeah
22:25:04 <Bike> presumably due to extreme anger to the max!
22:25:14 -!- comex has joined.
22:25:24 <shachaf> Are you people serious? What does it take to get taken off `list?
22:25:29 <shachaf> Are you just trying to be annoying?
22:26:03 <Sgeo> It _looks like_ (although still trying to check) that its FFI basically does string interpolation of the argument...
22:26:26 <Sgeo> 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 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti
22:26:40 <tswett> shachaf: I suggest ignoring highlights from HackEgo.
22:26:56 <tswett> In fact, I don't know why I haven't done that already...
22:27:08 <Sgeo> Anyone want to check that shachaf isn't doing things in private to HackEgo?
22:27:16 <esomimic> Phantom_Hoover: and even codegen....do sso you can transform into smaller than the tried looking at least of nethack
22:27:20 <Sgeo> Yeah, I may withdraw my anger at Fay
22:27:22 <Bike> That sounds gross, sgeo
22:27:41 -!- shachaf has left.
22:28:00 <Sgeo> esomimic, style
22:29:03 * Sgeo is vaguely thinking that esomimic may be another fungot, but can't prove it either way :(
22:29:04 <fungot> 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 <Sgeo> Well, I guess that proves it's not
22:29:24 <Sgeo> Or reconfigured?
22:29:43 <esomimic> Phantom_Hoover: sorry, don't know 'Sgeo ' well enough
22:29:58 <Sgeo> esomimic, mimic zzo38
22:30:05 <Sgeo> esomimic, should I do this?
22:30:06 <esomimic> Sgeo: that is used to write it that. it was having is actually
22:30:23 <Sgeo> esomimic, mimic Sgeo
22:30:25 -!- DHeadshot has joined.
22:30:30 <fungot> 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:39 <tswett> esomimic: so, tell me about stuff.
22:30:52 <Bike> It's like the real sgeo!
22:31:01 <tswett> esomimic: don't you have anything else to say?
22:31:01 <esomimic> 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 <Bike> esomimic, mimic fungot
22:31:02 <fungot> 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 <Bike> Yo wassup esomimic? Fungotting some of the good shit?
22:31:18 <tswett> That doesn't really sound like Sgeo.
22:31:30 <Sgeo> tswett, i must be tara
22:31:31 <Bike> esomimic: come on, jerkwad.
22:31:32 <esomimic> Bike: it's s'posed to 31131122211231131122211013112221.
22:31:45 <Phantom_Hoover> Sgeo has always known deep down that he is an irish woman
22:31:59 <tswett> esomimic, mimic tswett
22:31:59 <esomimic> tswett: sorry, don't know 'tswett' well enough
22:32:01 <Bike> esomimic: Which integer sequence is that? I always forget.
22:32:10 <Bike> esomimic: thanks
22:32:13 <Sgeo> esomimic, mimic Warrigal
22:32:13 <esomimic> Sgeo: sorry, don't know 'Warrigal' well enough
22:32:14 <tswett> Resembles the look and say sequence.
22:32:31 <Sgeo> esomimic, mimic ihope
22:32:55 <tswett> esomimic: so, what did I sound like years ago?
22:32:55 <esomimic> tswett: that is, hong of those, because the splitting stuff.
22:33:08 <tswett> esomimic: yeah, I guess I can confirm that I sounded kind of like that.
22:33:08 <esomimic> tswett: curry- and robes can't 10053 i as a receiver, then with the left out of this
22:33:20 <tswett> esomimic: I assume I still sound roughly the same.
22:33:20 <esomimic> tswett: that's a girl that i would be be have chroot stuff.
22:33:34 <tswett> tswett: no, come to think of it, you really don't sound very much like me at all.
22:33:46 <tswett> esomimic: no, come to think of it, you really don't sound very much like me at all.
22:33:46 <esomimic> tswett: there's be interested do a t-shirt after able to ascii.
22:34:08 <tswett> I get the idea that it lowercases everything.
22:34:13 <tswett> esomimic, mimic lambdabot
22:34:13 <esomimic> tswett: sorry, don't know 'lambdabot' well enough
22:35:33 <Sgeo> esomimic, mimic esomimic
22:35:34 <esomimic> Sgeo: sorry, don't know 'esomimic' well enough
22:35:45 <tswett> esomimic, mimic EgoBot
22:35:45 <esomimic> tswett: sorry, don't know 'EgoBot' well enough
22:36:41 <Sgeo> tswett, so I guess esomimic wouldn't mimic Karkat very well?
22:36:48 -!- cuttlefish has joined.
22:37:00 <boily> esomimic: mimic cuttlefish
22:37:01 <esomimic> boily: sorry, don't know 'cuttlefish' well enough
22:37:04 <tswett> That would be cool to see.
22:37:22 <tswett> Or funny or amusing or whatever.
22:37:26 <boily> ~eval esomimic: mimic tswett
22:37:28 <cuttlefish> Error (1): Not in scope: `esomimic'Not in scope: `mimic'Not in scope: `tswett'
22:37:34 <boily> ~echo esomimic: mimic tswett
22:37:35 <esomimic> cuttlefish: sorry, don't know 'tswett' well enough
22:37:55 <esomimic> Phantom_Hoover: okay, mimicking Phantom_Hoover
22:37:56 <doesthiswork> how bot infested is this channel? so far I count esomimic lambdabot and hackwhatever
22:38:02 <esomimic> Phantom_Hoover: i still disappointed... wha.
22:38:38 <Phantom_Hoover> doesthiswork, cuttlefish, HackEgo, EgoBot, fungot, glogbot, clog, lambdabot, esomimic
22:38:38 <fungot> 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:12 <oonbotti> Phantom_Hoover: How do you feel when you say that?
22:39:14 <boily> I think fungot is my favourite bot. it exudes a warm and fuzzy aura.
22:39:15 <fungot> 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 <Phantom_Hoover> myndzi has a thing where if you type \o/ it does this:
22:39:50 <Sgeo> I think the cover letters I've been (hastily) writing are a bit too informal :/
22:40:46 <Phantom_Hoover> The ones that see the most actual use are HackEgo and lambdabot though.
22:48:19 <Sgeo> No one minds me abusing HackEgo like this, right?
22:49:04 <boily> nobody human minds, I think. but HackEgo itself may harbour a deep and angry feeling of vengeance.
22:50:42 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: résumé: not found
22:50:48 <kmc> 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 <olsner> 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 <Sgeo> Maybe run-time environments should be version controllable
22:52:47 <kmc> "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 <boily> `learn résumé is a French summary. Not a curriculum vitæ.
22:53:00 <Sgeo> Do something at the REPL, it breaks something, revert it
22:53:06 <kmc> yes let's push untested code to production during an outage
22:53:26 <olsner> "if it's broken it can only get fixed!"
22:54:33 <boily> if it's broken, then it works. fix it and it will be /really/ broken.
22:55:14 <olsner> I guess if it works well enough that you can see that it's broken it can always be broken more
22:55:33 <olsner> otoh, is it broken at all if you can't even see that it's broken?
22:56:13 <boily> olsner's first paradox of brokenness.
22:56:28 <Bike> if a 9 falls in the forest and nobody's around to write a postmortem does it make an angry user
22:59:11 <doesthiswork> I think that what could have helped prevent that stupid mistake is some nice strong and static typeing
23:03:06 <Sgeo> Snapshots of all state
23:03:14 <Sgeo> And a tool for browsing them
23:03:20 <Sgeo> No state is ever lost
23:03:37 <Sgeo> Hmm, isn't Enchilada something like that?
23:04:05 <doesthiswork> also if the comment thread was lazily computed there would be no bug visable
23:05:30 <Bike> Yes, we'll just make rendering lazy. It's perfect.
23:06:47 <kmc> > fix ("hacker news " ++)
23:07:11 <kmc> lambdabot: are you feeling allright
23:07:27 <boily> ~eval fix ("hacker news " ++)
23:07:27 <FreeFull> lambdabot sometimes clips output like that it seems
23:07:28 <cuttlefish> "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:46 <FreeFull> I guess that's what cuttlefish is for
23:08:05 <boily> sometimes, contrary to generic experience, my bot can be useful!
23:08:07 <olsner> FreeFull: lambdabot always clips, but usually a bit further down the line than after the first quote
23:08:43 <FreeFull> Seems to happen with high load
23:10:18 <doesthiswork> is the same lambda bot as haskell's channel or is it a variation
23:14:39 <nooodl> ) 9999 $ 'hacker news '
23:14:40 <jconn> 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 <kmc> hacker nooodl
23:27:18 <Sgeo> "Unfortunately, My client is going to pass at this time. I will keep you on file for similar opportunities."
23:27:54 <nooga> so I got this nice task in my job
23:28:47 <nooga> we're building some accesible data mining and reporting tools
23:30:15 <nooga> 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 <nooga> i was thinking about some kind of simple functional language in disguise of some colorful boxes for people to play with
23:35:49 <nooga> but i don't have any interesting ideas besides that ;<
23:37:40 <Sgeo> Is operational the package typically used for operational's purpose?
23:38:04 <nooga> 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).