00:03:07 -!- zzo38 has quit ("----------------------------------------------------------------------------------------------------------------------------"). 00:12:52 You know, I could really do with 2560x1440 pixels of screen real estate. 00:41:53 -!- coppro has joined. 00:44:34 http://nodejs.org/ this is cool beans 01:03:00 /clear 01:04:40 -!- poiuy_qwert has quit ("This computer has gone to sleep"). 01:06:06 -!- coppro has quit ("I am leaving. You are about to explode."). 01:06:10 -!- poiuy_qwert has joined. 01:09:06 -!- osaunders has quit. 01:19:14 -!- pikhq has quit (Read error: 54 (Connection reset by peer)). 01:28:57 -!- pikhq has joined. 01:44:02 -!- BeholdMyGlory has quit (Read error: 54 (Connection reset by peer)). 01:58:17 -!- FireFly has quit (Read error: 60 (Operation timed out)). 01:58:41 -!- FireFly has joined. 02:03:07 do you know where i can find sources of bacical linux commands like grep, cat, ls and stuff 02:05:14 yes 02:06:04 http://www.gnu.org/software/ 02:06:36 http://savannah.gnu.org/search/?words=grep&type_of_search=soft&Search=Search&exact=1#options 02:06:51 http://ftp.gnu.org/gnu/grep/ 02:14:48 :( gnu tools r teh sux 02:14:59 snakbar: look at the bsd implementations or sth 02:15:11 GNU > U 02:15:54 thank you very much 02:19:23 -!- FireFly has quit ("Leaving"). 02:19:29 gnu is waaaay inferior to unix, specifically by breaking the very underpinning of unix and then pretending it's still there 02:35:45 -!- adam_d has quit (Read error: 110 (Connection timed out)). 02:58:30 -!- mycroftiv has quit ("leaving"). 03:03:34 what does it mean, underpinning? 03:05:42 same as "backbone" if you know that idiom 03:07:50 -!- immibis has joined. 03:08:10 nope :p 03:10:01 snakbar: basically... the underlying concepts 03:10:11 the thing that makes it all work in the way it does, the unifying idea 03:10:18 okay 03:10:38 so you're saying that linux is not an Unix system? 03:11:07 snakbar GNU is not unix 03:11:46 ah yes ^^ that's right 03:12:45 :) 03:13:03 shit, i'm going to try bsd 03:13:23 BSDs something different 03:13:27 wait 03:13:31 it's not unix too ? 03:13:32 xD 03:13:34 :P 03:13:48 snakbar: when i say unix i mean the unix philosophy 03:14:05 tools that do only one task, that are the same from a terminal or piped to another process, etc 03:32:07 BSD is, in fact, UNIX. 03:33:44 And Linux isn't a UNIX system, it's just a decent kernel that can be the base of a GNU system. 03:33:46 BIU 03:33:48 not very catchy acronym 03:34:18 But accurate. 03:34:45 bsd is eunuchs 03:38:56 BIE? 03:39:59 -!- mycroftiv has joined. 03:50:17 -!- ehird_ has joined. 03:58:17 -!- Pthing has quit (Remote closed the connection). 04:06:21 -!- ehird has quit (Read error: 110 (Connection timed out)). 04:06:21 -!- ehird_ has changed nick to ehird. 04:11:12 -!- snakbar has quit ("Quitte"). 04:44:25 Ihttp://www.loper-os.org/?p=55 04:44:28 http://www.loper-os.org/?p=55 04:44:30 i gotta sleep now 04:44:56 -!- ehird has quit. 05:00:40 -!- Asztal has quit (Read error: 110 (Connection timed out)). 05:01:06 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 05:01:25 -!- oerjan has joined. 05:06:48 -!- kwertii has quit ("bye"). 05:07:07 -!- coppro has joined. 05:21:29 -!- coppro has quit (Remote closed the connection). 05:21:31 -!- poiuy_qwert has quit ("Leaving"). 05:22:34 -!- coppro has joined. 05:56:29 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 06:04:18 -!- augur_ has joined. 06:19:46 -!- jpc has quit ("goshdarnit."). 06:19:56 -!- jpc has joined. 06:21:22 -!- augur has quit (Read error: 110 (Connection timed out)). 06:36:21 -!- coppro has quit (Read error: 54 (Connection reset by peer)). 06:42:11 -!- oerjan has quit ("leaving"). 07:25:37 -!- jpc has quit (Read error: 110 (Connection timed out)). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:32:28 -!- immibis has quit (Remote closed the connection). 09:00:03 -!- MigoMipo has joined. 09:14:13 -!- soupdragon has quit ("* I'm too lame to read BitchX.doc *"). 10:10:15 -!- |MigoMipo| has joined. 10:10:56 -!- MigoMipo has quit (Nick collision from services.). 10:11:03 -!- |MigoMipo| has quit (Client Quit). 10:19:34 -!- MigoMipo has joined. 10:43:25 -!- Slereah has joined. 10:56:49 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 10:57:34 -!- MigoMipo has quit ("Quitter!"). 11:28:49 -!- Asztal has joined. 11:30:05 -!- Rembane has quit (Read error: 113 (No route to host)). 11:46:33 -!- FireFly has joined. 11:47:56 -!- adam_d has joined. 12:10:43 -!- soupdragon has joined. 12:18:33 -!- asiekierka has joined. 12:18:36 fizzie? 12:20:34 Haven't seen any fizzies around. 12:20:41 -!- MizardX has quit ("Dead pixels in the sky."). 12:21:38 lol 12:21:43 is it you that made fungot? 12:21:44 asiekierka: fnord anyway. :p what a great language for fnord. 12:22:18 Yes. 12:23:05 gah 12:23:13 any sources you recommend on lerning Befunge or any other esolang 12:23:17 cuz i want to make a minecraft server.. 12:23:20 ..yeah, in an esolang 12:24:31 anything you recommend 12:24:58 (i could code a network extension, dont worry) 12:26:05 I don't know if I've ever actually used any specific sources, mostly just the language specifications themselves. There's not that much "training material" for esolangs, I don't think. Except maybe for INTERCAL there are some more tutorialistic things. 12:26:18 and for Befunge-93 12:26:20 there's one 12:26:23 Also 12:26:23 -!- Sgeo has joined. 12:26:27 what esolang would you recommend 12:26:29 except befunge 12:26:29 if any 12:28:42 I think that's more of a matter of personal preference. It's not usually the point with these languages to start thinking so much of their suitability to the task at hand. 12:29:25 heh 12:29:30 i'll attempt to mod Piet then 12:29:34 so at least i can have a work of ART 12:29:49 How coincidental: I had partially already written this: "I would love to do something overcomplicated in one of the image-based languages, but that's just me." 12:30:12 that's not just you 12:30:13 xDD 12:31:30 about the graphical ones 12:31:41 (not counting BF mods) 12:31:45 there's Piet, Piet-Q, Deltaplex, Omegaplex... 12:33:34 Mycelium, though I don't think it's an especially elegant one. 12:34:04 Ow 12:36:25 I would do it in Piet 12:36:31 but i'm scared of the network layer 12:40:47 Is the network layer any easy in Befunge-98? 12:42:31 There's specific extensions for networking in Funge-98; SOCK and SCKE and whatever the newfangled ones were that people were developing to fix the deficiencies of those two. 12:42:58 I guess they're pretty reasonable, as far as those things go. 12:43:01 -!- osaunders has joined. 12:49:47 Just out of kicks 12:50:06 What would be the weirdest language (with network facilities or a way to add them in even if adding new instructions) to make a server in? 12:53:10 Well, brainfuck can be given server capacities with PSOX 12:53:17 Or just setting up some.. pipes thingy 13:02:32 -!- soupdragon has quit ("* I'm too lame to read BitchX.doc *"). 13:06:39 -!- osaunders has quit. 13:07:11 fizzie, btw I think I beat you at "crazy things to do with hugin" 13:07:28 I wasn't aware that we had a competition going on. 13:07:32 fizzie, a photo of an xmas tree composed out of over 40 pictures 13:07:40 we have now ;P 13:07:53 * AnMaster will upload said tree in a minute 13:09:49 fizzie, I just need to convert it from a 16-bit per channel tiff with AdobeRGB to a 8-bit per channel jpeg with sRGB 13:09:55 -!- FireFly has quit (Remote closed the connection). 13:10:01 -!- FireFly has joined. 13:10:35 AnMaster: There was quite heavy snowfall today, so I took a picture out of that same window-at-work to show how dramatically reduced the visibility was: http://zem.fi/~fis/tkk2.jpg → http://zem.fi/g2/d/8542-1/20091222_002.jpg 13:11:58 (Just one, didn't bother taking the full view this time.) 13:12:07 fizzie, the second is higher res? 13:12:20 The second is directly from the phone with no scalings. 13:12:32 The sort of thing that was the source material for the first. 13:12:45 fizzie, funny gimp bug: 13:13:34 "The image 'xmas_tree_8bit.tif' has an embedded color profile:\n sRGB built-in\nConvert the image to RGB working space (sRGB built-in)?" 13:13:46 identity conversion! 13:16:24 fizzie, uploading... 13:16:58 fizzie, and yes that is quite reduced visibility 13:17:06 http://omploader.org/vMzIxZQ/xmas_tree_8bit.jpg 13:18:05 fizzie, not a panorama because there would be way parallax without a panoramic head. 13:18:23 (I'm considering getting one maybe) 13:18:58 The magical balls of light look nice. 13:23:19 fizzie, huh? 13:23:38 fizzie, oh around the electric lamps thingies? 13:23:42 well yes 13:23:57 Yes. They look like special effects for glowy magic things in a fantasy whatever. 13:24:02 heh 13:25:04 fizzie, you can see how low the noise is when you zoom the ceiling btw. That is because for each shutter speed I took 4 photos and merged them to denoise (see the panotools wiki for more info on that, you use enfuse for it) 13:25:35 then all the "denoised" pictures were merged into the final HDR image 13:25:56 fizzie, sadly the reduction to 8 bits removed some fine details from the lamp in the background 13:26:02 it has a rather nice pattern on it 13:26:45 All that effort for a christmas tree?-) 13:28:13 hah 13:29:56 I don't think I have anything very photogenic around to play Hugin/panotools tricks with. 13:30:06 heh 13:30:11 fizzie, no xmas tree? 13:30:38 Nah, the cat would probably just try to eat it and/or the decorations. It does that to anything new. 13:31:00 The cat would be a good subject for photography experiments, but it doesn't quite understand the "staying still" thing. 13:31:07 ah 13:31:40 fizzie, you can extract a bit of HDR-ness from raw images usually. Generally there is slightly more than 8 bits per channel in them 13:31:47 for example mine has 12 bits per channel 13:32:28 Yes, I think that's what my camera shoots too. 13:34:18 Hrm, "dcraw -i -v" doesn't say about bit depths; just the image size, filter pattern and some strange multiplier values. 13:34:31 fizzie, I use ufraw 13:35:12 nice preview thing and such and when you are happy with the settings you can save a script and use it to ufraw-batch (since you want same white balance for all images in the HDR merge and such) 13:35:12 Well, I've used the ufraw GUI, but I'm not at home right now and didn't want to bother with X forwarding. 13:35:22 ah 13:35:50 anyway for editing there are two options basically: cinepaint and krita 13:35:56 since gimp doesn't do more than 8 bits per channel 13:36:36 Oh, cinepaint's what used to be film-gimp? Didn't know that. 13:37:05 fizzie, I haven't tried cinepaint, but from what I heard it is not a very nice experience when it comes to the user-interface 13:37:19 so I stuck with krita, which isn't too fun either 13:37:30 (but which at least has an ubuntu package) 13:38:32 fizzie, oh btw I have been using ethernet over firewire recently. Because working with 70 MB+ tiffs isn't fun over 100 mbit ethernet 13:39:33 (reason I do it over network is that laptop is faster but the desktop monitor is better. However the laptop's graphics is unable to drive my desktop monitor in it's highest resolution. I guess 1400x1050 isn't very common) 13:41:47 guys 13:41:52 web servers run on everything these days 13:42:00 i am going to run a server on a pokemon mini 13:59:01 -!- Pthing has joined. 14:55:33 -!- MigoMipo has joined. 15:12:27 -!- MizardX has joined. 15:28:12 asiekierka, go for it 15:28:28 does it have IR? 15:28:44 also if youre serious 15:28:45 donate one 15:28:52 I don't think so, and no, wasn't serious :P 15:28:59 CPU8 bit, 4 MHz custom 15:29:03 why not? 15:29:09 people ran web servers on a PIC 15:29:18 and an Atari 15:29:19 and a C64 15:29:24 the C64 is 4 times slower than this 15:29:31 yet it reliably runs webservers 15:30:21 Well, I wouldn't do it 15:38:13 -!- adam_d_ has joined. 15:56:03 -!- adam_d has quit (Read error: 110 (Connection timed out)). 15:56:11 -!- adam_d_ has changed nick to adamd_. 15:56:17 -!- adamd_ has changed nick to adam_d. 15:57:28 -!- osaunders has joined. 16:01:18 -!- ehird has joined. 16:01:55 http://newyork.craigslist.org/mnh/m4w/1520403262.html 16:06:11 -!- FireFly has quit (Read error: 60 (Operation timed out)). 16:08:22 aaaaand http://i.imgur.com/hF6mS.jpg 16:10:38 "For Mac, a complete rewrite in Cocoa brings an Unified Toolbar, native buttons and scrollbars, multi-touch gestures (try 3-Finger Swipe Left/Right or Pinch to zoom) and a bunch of other small details. We also added Growl notification support." 16:10:40 Hey, Opera. 16:10:48 Did... did you just do the right, difficult thing, and become respectable? 16:10:54 I, uh... wow. 16:13:50 Oh hey, the icon is less horribly ugly now too. 16:17:08 -!- FireFly has joined. 16:17:21 FireFly: you're now less ridiculously silly for using opera! 16:17:48 Hm? 16:18:00 "For Mac, a complete rewrite in Cocoa brings an Unified Toolbar, native buttons and scrollbars, multi-touch gestures (try 3-Finger Swipe Left/Right or Pinch to zoom) and a bunch of other small details. We also added Growl notification support." 16:18:03 they finally came to their senses 16:24:30 -!- ehird has quit. 16:26:09 -!- ehird has joined. 16:28:00 -!- pikhq has joined. 16:28:00 -!- pikhq has quit (Dead socket). 16:33:04 -!- pikhq has joined. 16:34:02 ehird, any news? 16:34:18 AnMaster: no reply—worryingly, but then not everybody spends all day on the computer 16:34:26 especially if they're not preparing to kill themselves 16:34:29 true 16:35:45 -!- ehird has quit. 16:35:57 -!- ehird has joined. 16:41:14 -!- BeholdMyGlory has joined. 16:41:51 "How many atheists are there on /r/atheism? Upvote to count yourselves (i created this throwaway name so it won't affect my karma)." 16:41:51 RIP Reddit's Lack of Having Completely, Utterly and Irreversibly Jumped the Shark, 2005—2009 16:45:40 I unsubscribed from /r/atheism a long time ago, problem solved! 16:45:58 For definitions of "solved" close enough to "ignored" 16:46:01 i am bored guys 16:46:08 give me something to do 16:46:19 involvig either esolangs or old computers 16:46:22 involving* 16:49:17 Asztal: Yess, but the cancer, it doth spread. 16:49:36 asiekierka: Take over Rc/Funge! Wait, no. Don't do that. 16:50:02 Why not create Infinitunge 16:50:18 with an infinite number of dimensions 16:50:26 actually 16:50:28 i'll do it right now 16:50:54 oklopol has experience with infinite-dimensional things 16:51:03 wait 16:51:05 shh, im coding 16:51:23 You do not have to listen. 16:52:23 Popping infinite scalars from the stack when you want a vector will be fun. 16:52:47 asiekierka: befunge-93 or -98? 16:53:03 I'd suggest adapting -93 because the "meat" of the problems you'll face will be in the -93 stuff 16:53:15 also, make it 80x24x80x24x80x24x... :-D 16:53:21 no 16:53:26 Whyever not? 16:53:28 it's infinite in all directions 16:53:29 I.E. 16:53:35 That's boring, asiekierka — because 16:53:38 InfxInfxInfxInfxInfxInfxInf... 16:53:40 that way you don't have to use the dimensions to be TC 16:53:52 well, whatever 16:53:55 If it's 80x24x80x24x..., not only does it respect Befunge heritage, 16:53:55 i'm done 16:54:03 but it means you have to fiddle with the dimensions to get TCness 16:54:16 well too late 16:54:16 as i said 16:54:18 i finished coding it 16:54:23 it should work on every PC 16:54:29 i'm worried about RAM requirements though... D: 16:55:17 there is no way you coded a working version in that time 16:55:21 because there are many subtle issues to address 16:55:34 yes there is 16:55:39 imagine a child with undiagnosed ADHD 16:55:41 on caffeine 16:55:46 ehird: That "upvote to count yourselves" thing isn't irreversible. Thank God that humans are capable of leaving sites after they used to frequent it. :P 16:55:54 http://asiekierka.boot-land.net/inffunge.exe 16:55:57 there could be an infinite amount of dimensions that you can't actually access 16:55:59 here you go 16:56:27 "undiagnosed ADHD", AKA "I can be as annoying as I want, I have a mental illness don't you see! I don't have to change anything!" 16:56:45 pikhq: it's been steadily increasing since the epoch 16:56:54 True. 16:56:56 asiekierka: It should work on every PC running Windows, you mean. 16:57:02 Yes 16:57:06 Or Wine on Linux 16:57:06 Which is a low percentage of PCs in this channel. 16:57:07 how do you know if it is ADHD if it is undiagnosed? 16:57:09 In conclusion, source of GTFO. 16:57:10 just curious 16:57:15 use Wine on Linux 16:57:19 as i'm not offering source code 16:57:20 asiekierka: Source or GTFO. 16:57:20 AnMaster: because people on the internet think they know about things like that 16:57:21 as i'm evil 16:57:35 the source code is so advanced 16:57:40 "I have asperger's syndrome! Therefore it's ALL YOUR FAULT! I CAN'T HELP BEING A SMARMY RETARD!" 16:57:41 leaking it would destroy the universe 16:57:48 asiekierka: the door is that way → 16:57:51 I have asperger's syndrome! 16:57:54 we are not interested 16:57:55 ehird, btw you commented on bad picture yesterday. I'm creating a better one. Macro photography rocks 16:57:56 Therefore it's ALL YOUR FAULT! 16:57:56 and no you don't 16:58:00 I CAN'T HELP BEING A SMARMY RETARD! 16:58:04 yes yoou can 16:58:07 *you 16:58:10 you just said i cant 16:58:17 Okay, i will leak the source code 16:58:18 geh 16:58:33 I have actual autism, you cock. Don't claim pretend Asperger's syndrome. :P 16:59:07 http://asiekierka.boot-land.net/inffunge.pas - i think my FTP connection glitched, not sure if it works 16:59:46 im not reuploading it 16:59:53 as i made enough space-time distortions doing it once 17:00:05 one happens per each byte 17:00:17 Pascal must be pretty impressive, to make language implementations in two lines. 17:00:24 as i said 17:00:29 i think my FTP connection died for a second 17:00:33 and the file might be corrupt 17:00:46 I would reupload it 17:00:50 but... yeah 17:00:53 i'm too lazy 17:01:08 So can we all agree that asiekierka is an idiot, socially retarded and annoying? 17:01:08 also spaec-tiem distortionz 17:01:12 Yes 17:01:24 OKAY OKAY 17:01:28 And that not only does his program probably not work due to the subtle issues required to be resolved to get infinite-dimensional Befunge to work, 17:01:30 I WILL UPLOAD THAT SOURCE CODE 17:01:35 but it's probably a retarded prank that asiekierka thinks is funny? 17:01:40 And that the door is over there? 17:01:42 i dont think it's funny 17:02:25 http://asiekierka.boot-land.net/inffunge.pas 17:02:34 ehird: Yes. I will note only one of the three has anything to do with Asperger's syndrome (well, unless you mean "common traits in people who self-diagnose") 17:02:58 also 17:03:01 it was meant to work like this: 17:03:04 ^ Go up 17:03:06 < Go left 17:03:08 > Go right 17:03:10 v Go down 17:03:13 (or something) 17:03:23 h - Increase the number of the dimension operating on 17:03:28 l - Decrease it 17:03:30 Asperger's syndrome today is complete and utter rubbish; a label used by society to mean "person we do not like; for he is less emotionally crazy and more intelligent than us". 17:03:46 a - Move left in the dimension you're on 17:03:51 d - Move right in the dimension you're on 17:03:51 Perhaps Hans Asperger's original work was sane and reasonable; but what we mean when we say "Asperger's" today is a complete lie. 17:04:06 asiekierka: that way you can only work in finite dimensionns 17:04:07 in 100 years 17:04:10 everyone will have Aspergers 17:04:11 so it's arbitrary dimensions, not infinite 17:04:20 ehird: Infinite = 65535 on 16-bit platforms 17:04:25 as you CANT GO MOAR 17:04:34 ehird: Hans Asperger's work described a disorder similar to autism, with a few differing features. 17:05:05 Such as most people with the syndrome being of average or above average intelligence, and a lack of a delay in speech. 17:05:25 I'd also argue that "light" autism is different from "severe" autism, and only the latter is actually a condition as opposed to simply another combination of neural structure + personality. 17:05:44 (Zefram (yes, the nomic Zefram) wrote a fun little thing on this... http://www.fysh.org/~zefram/allism/allism_intro.txt) 17:06:07 there's asiekierkism, too 17:06:14 It still astounds me what a ridiculously bad idea empathy is. 17:06:16 Anyhow. 17:06:26 http://i.imgur.com/wdcUK.jpg trippy 17:06:27 I'd note that any psychologist worth his/her salt only gives a flying fuck about a disorder if it actually causes problems. 17:06:56 Oh, and that people suck. That's a nice thing to note, as well. 17:07:02 -!- FireFly has quit (Read error: 60 (Operation timed out)). 17:07:06 yeah 17:07:55 pikhq: And uses actual neural properties instead of the Holy Lord of Let's Make This a Disorder, the DSM. 17:07:55 http://i.imgur.com/wdcUK.jpg trippy <-- a pitty it doesn't join up well for the lower picture 17:08:20 pikhq: And by that correct definition, the percentage of psychologists worth their salt is less than 10%. 17:08:21 (it isn't perfect for the upper image, but much better) 17:08:45 Psychology is almost entirely based on consensus, not evidence; rubbish, not science. 17:08:48 And it's a damn shame. 17:09:11 ehird: Quite. 17:09:15 That sounds like the same idea as http://isnt.autistics.org/ 17:09:22 Sgeo: It links to it at the end. 17:09:31 But allism has some truth behind the joke. 17:09:52 Most of the effects of allism are negative. 17:12:51 "It's also possible that you thought many-worlds means "all the worlds I can imagine exist" and that you decided it'd be cool if there existed a world where Jesus is Batman, therefore many-worlds is true no matter what the average physicist says. In this case you're just believing for general contrarian reasons, and you're probably more likely to believe in homeopathy as well." 17:12:51 -!- FireFly has joined. 17:15:59 i believe there's a world where i'm not an idiot 17:16:38 That world is one in which you are not you. 17:17:03 well, the many-worlds theory I believe 17:17:14 is that when anything happens at any given microsecond 17:17:21 Shut up. 17:17:28 You are about to demonstrate your severe physics-related ignorance. 17:17:30 the universe splits into two: the version where it happened and the version where opposite did 17:17:35 I don't want to believe the many-worlds theory, but not for any good logical reason. I just hate the implications for time travel 17:17:42 by "i believe" i mean "i like and could be useful for games" 17:17:51 Many worlds is the only thing that would make time travel possible. 17:20:20 -!- FireFly has quit (Read error: 60 (Operation timed out)). 17:20:58 I think *one* of the problem with the many universe stuff is that people have a problem remembering the difference between a potential phase-space and "actually exists" 17:21:01 Many worlds is the only interpretation that leaves travelling backwards feasible... 17:21:47 What about something like Nomikov's self consistency princible, or whatever it's called 17:21:52 pikhq: Beware; Sgeo's next argument will be "but it means that I will never see my REAL parents again if I ever travel in time!!!" 17:22:07 Which is, of course, dualism. 17:22:12 (travelling forward in time is, of course, merely a matter of relativity) 17:22:17 I wonder if it'll be possible to travel to the other worlds if many-worlds are true 17:22:21 Sgeo becomes scientifically absurd in T-10 seconds 17:22:31 so i can see myself as not an idiot and destroy the multiverses! 17:22:50 by paradoxingous 17:23:05 Sgeo: the Novikov self-consistency principle does not help at all 17:23:19 Sgeo: As per chaos theory, more or less ANYTHING you do back in time will change the future. 17:23:25 Thus violating the principle. 17:23:47 Ergo, all time travel beyond perhaps sending a microscopic, instantly-evaporating black hole into a backwater region of space would be impossible. 17:24:59 what about sending your soul back in time 17:25:01 is that possible 17:25:20 There is no such thing as a soul. 17:25:27 lies 17:25:32 No, truths. 17:25:38 lies 17:25:50 fairies exist, too 17:26:26 As does Russell's Teapot. 17:26:44 I bet the FSM put it there 17:27:25 No, it was the Invisible Pink Unicorn, heathen! 17:27:32 No, it was ME! 17:27:40 heretics 17:28:06 ehird: It depends on how you define "soul". 17:28:32 soul, n. a word used to signal that the person referring to it as existing is a dualist. 17:28:40 dualist: see idiot 17:29:03 "The exact state of everything within your body that affects the nervous system" might be a usable definition of "soul". 17:29:15 Granted, said definition is rarely, if ever, used. 17:29:29 Brain + spine is probably enough to count as your "soul" 17:29:49 Mmm, probably. 17:30:05 brain + quantum stuff 17:30:30 asiekierka: Said quantum stuff that is relevant is entirely in the brain... 17:31:02 "quantum stuff" 17:31:08 DING DING DING QUANTUM MYSTICIST DETECTED 17:31:16 DISPOSAL MECHANISM INITIALISATING 17:31:20 -!- kwertii has joined. 17:31:26 *INITIALISING 17:32:12 no 17:32:14 ehird: I seem to recall that the functioning of neurons did kinda rely upon quantum mechanics (though I may be wrong in that). ... Of course, "rely upon quantum mechanics" is quite different from "QUANTUM MEANS ITS TRUE." 17:32:14 INITALISATING 17:32:33 Everything relies upon quantum mechanics. :P 17:32:49 Well... True. :P 17:33:50 But anyways... 17:35:00 Kinda meant something like "work in ways only explained by quantum mechanics, not by classical mechanics". 17:36:24 you know 17:36:42 you could say that [random word] is quantum mechanics 17:37:19 "x is quantum mechanics" really doesn't mean anywhere near as much as people think it does. 17:37:45 "Oh no, the probabilistic effects of individual particles makes a difference!" 17:41:37 -!- FireFly has joined. 17:41:52 -!- MizardX- has joined. 17:41:54 -!- MizardX has quit (Read error: 104 (Connection reset by peer)). 17:42:43 -!- MizardX- has changed nick to MizardX. 17:43:28 so, ehird 17:43:39 you define a soul as a sign that a person is a dualist 17:43:45 as in an idiot 17:43:55 if you think a soul exists you're a dualist, obviously 17:43:55 what about a soul dualist (they believe more than 1 soul exists in a body which is insane) 17:43:56 that's the definition 17:44:03 is he a dualist dualist 17:44:05 dual = 2, not >1 17:44:06 or an idiot dualist 17:44:12 also, he's asiekierka being annoying 17:44:15 Soul dualism or a dualistic soul concept is a range of beliefs that a person has two (or more) kinds of souls. 17:45:11 yes 17:45:14 i took it from wikipedia 17:45:17 do not bother googling 17:46:43 pikhq: you're right re: quantum brain stuff. cf Roger Penrose and Stuart Hameroff's work on http://en.wikipedia.org/wiki/Orch-OR#The_quantum_level 17:47:35 kwertii: that's not the same thing 17:47:56 penrose just hates the idea of an algorithmic brain 17:48:04 pikhq was just talking about how neurons physically work 17:48:40 ehird: their theory talks about that, too. they postulate that microtubules in neurons, whose function is unknown, actually conduct quantum-level calculations 17:49:22 Seems like grasping at straws to avoid a deterministic, algorithmic mind. 17:49:23 based on the observation that information propagates through the brain far faster than a chemically mediated neural network would allow 17:53:00 -!- MigoMipo has quit ("Quitter!"). 17:54:53 ehird: if people do have algorithmic minds, then 99.999999999% of them are seriously broken. 17:55:08 fallacy 17:55:16 observation 17:55:16 minds are algorithmic != minds can be irrational 17:55:24 algorithmic does not mean we are bayesian rationalists. 17:55:25 ##philosophy 17:55:28 I didn't say that it implied a contradiction 17:55:33 just an empirical observation 17:55:43 our minds are not broken, they are just adjusted to different things than we might want them to be 17:56:18 ehird: how do the Goedel and Tarski incompleteness theorems fit into your model? 17:57:09 If we don't have a deterministic, algorithmic mind, then we have a random mind. I don't see how quantum randomness is likely to affect something on the scale of neurons, though 17:57:18 Gödel, Escher, Bach had some stuff about that, positing that sentience arises from Gödel's incompleteness theorem 17:57:26 I'm not so sure about that 17:57:28 lament, do something 17:57:33 this philosophy talk hurts 17:57:38 my own bra---oh wait 17:57:43 that'll encourage them to talk more 17:57:50 in an attempt to make my brain blow up 17:58:06 asiekierka: sadly this stuff is mildly on-topic 17:58:09 if anyone would prefer to discuss brainfuck coding, I will yield the floor :p 17:58:20 -!- MigoMipo has joined. 17:58:29 I'm willing to discuss PSOX (*everyone runs*) 17:58:35 lament: if you hate 90% of what goes on in this channel why do you stay :) 17:58:57 looking for better excuses to ban you all 17:59:18 * Sgeo laments the fact that lament wants to ban us 17:59:49 ehird: there must be an op here stupid 18:00:33 ehird: essentially, Tarski proved a more general version of Goedel, that any logically coherent system capable of defining its own syntax is incapable of defining semantic notions such as "truth" itself, necessarily requiring extrinsic stipulations. This would seem to imply that a purely logical and deterministically algorithmic brain is impossible, given that we have such notions. 18:02:48 Who said that are brains are purely logical? 18:02:59 Sgeo: ehird 18:03:03 deterministically algorithmic does not imply logical 18:03:26 Sgeo: interesting, please clarify how a system can be deterministic without being logical 18:04:06 * Sgeo might have misread. Thought that you were implying that people were logical, not the system 18:04:16 -!- anmaster_l has joined. 18:04:27 argh my other connection is lagging out 18:04:29 Sgeo: well, my own personal position is that people are mostly irrational :) 18:05:04 ehird, see /msg 18:05:25 back 18:05:33 asiekierka: fizzie is an op stupid 18:05:37 kwertii: what does rationality have to do with logic 18:05:43 Everythingg. 18:05:46 *Everything 18:05:47 ehird: this channel needs more than one op stupid 18:05:53 -!- AnMaster has quit (farmer.freenode.net irc.freenode.net). 18:05:58 lament: euh? 18:05:58 ehird: thanks to offtopic derailers like thou 18:06:01 ehird: and mii 18:06:12 asiekierka: except op powers are very rarely used 18:06:24 * kwertii wants a T-shirt that says "What does rationality have to do with logic" now 18:06:29 kwertii: well what does it? 18:06:40 kwertii: please define rationality and see for yourself that it's not much. 18:06:55 rationality is applied logic 18:07:23 lament: according to commonly used definitions and mores, ehird is correct, rationality is logic applied to some decisionmaking process 18:07:59 lament: etymologically, rationality is "that which has to do with ratios", which are (logically defined) mathematical constructs 18:09:53 * Sgeo becomes a fervent supporter of fractionism 18:10:09 kwertii: what does it mean "to apply logic to a process"? 18:10:11 -!- AnMaster has joined. 18:10:21 lament: you're the one who told us to fuck off to ##philosophy 18:10:30 why are you dragging us into less and less meaningful and concrete realms? 18:10:55 please everyone calm down, mkay? 18:11:14 now shake each other hands. Without holding one of those prank buzzers 18:11:26 NO. WE HATE BEING CALM. 18:11:40 ... Prank buzzers? 18:11:47 pikhq, yeah 18:11:52 I don't know the correct name 18:11:57 lament: to make an attempt to analyze a process in an internally consistent (i.e. not self-contradictory) manner consistent with the rules of logic.. 18:11:58 Okay. I'll use an industry-grade buzzer. 18:11:58 pikhq: little electric shock thingy you hold in your hand 18:12:07 ehird, no you don't ;P 18:12:17 -!- adam_d_ has joined. 18:12:32 kwertii: BUT. WHAT. IS. "LOGIC" 18:12:35 kwertii: well, ok. You don't need any notions of truth for that. You just need a notion of consistency. 18:12:39 I prefer lethal buzzeers. 18:12:39 ehird: Yes, I know. 18:12:41 AND WHAT IS A "CONTRADICTION" — REALLY 18:12:42 -!- adam_d has quit (Nick collision from services.). 18:12:45 -!- lament has set channel mode: +b *!*n=ehird@91.105.101.*. 18:12:46 -!- adam_d_ has changed nick to adam_d. 18:13:00 lament: who said you need a notion of truth? :p 18:13:14 -!- ehird has quit (Client Quit). 18:13:16 kwertii: you did, when you were talking about Tarski 18:13:25 -!- ehird has joined. 18:13:27 -!- lament has set channel mode: -b *!*n=ehird@91.105.101.*. 18:13:32 lament: 2 + 2 = 5 is a logically consistent but false statement 18:13:34 lament: interestingly enough, I know how to change my username. 18:14:01 2 + 2 = 5 isn't logically consistent given PA :P 18:14:25 lament: the essence of the Tarski/Goedel proofs is that there are statements like "This statement is false" which are syntactically consistent but which cannot be evaluated for truth value because they are paradoxical 18:14:42 kwertii: sure. but truth value is irrelevant to rationality by your definition. 18:14:53 lament: I said extrinsic, not irrelevant 18:15:02 -!- lament has set channel mode: +b %*!*@91.105.101.*. 18:15:06 -!- AnMaster has changed nick to AnMaster_. 18:15:42 lament: my original point was that the brain could not be purely logical, as ehird suggested, because we have these very relevant notions like truth that cannot be logically defined and must be extrinsic to any logical system 18:16:36 kwertii: "truth" is a very high-level notion and there's little evidence that it actually exists in the brain as such 18:16:56 kwertii: on the other hand, bayesian probability gives a very good model of how such a notion could be constructed mathematically 18:17:24 what's more, there's experimental evidence that shows that bayesian probability is pretty much how actual humans evaluate truth 18:17:41 lament: sure, but you need some a priori stipulation of what data is "true" to train your bayesian model.. 18:18:43 no, you need some a priori stipulation of what data is "likely" 18:19:02 the exact label doesn't matter 18:19:18 it does if you're going to confuse the notions of likelihood and of truth in the formal logic sense 18:19:29 in an evolutionary sense, we can say the brain trains statistically on survivable behaviors based on the environment 18:19:46 and in a longer timeframe, genes do the same 18:20:09 kwertii: that's reasonable, and has nothing to do with formal logic whatsoever 18:20:18 but we are still left with the question of "pure" truths like 2+2=4 that are divorced from the environment, or at least seem to be 18:22:35 if we're in the business of making machines that run programs, this is a very important question. how do we distinguish 2+2=4 versus 2+2=5? 18:23:40 -!- atrapado has quit (farmer.freenode.net irc.freenode.net). 18:23:40 -!- lifthrasiir has quit (farmer.freenode.net irc.freenode.net). 18:23:40 -!- puzzlet has quit (farmer.freenode.net irc.freenode.net). 18:23:40 -!- Deewiant has quit (farmer.freenode.net irc.freenode.net). 18:23:41 -!- mtve has quit (farmer.freenode.net irc.freenode.net). 18:25:33 -!- Deewiant has joined. 18:26:18 http://i.imgur.com/hF6mS.jpg 18:26:51 -!- ehird has quit (Client Quit). 18:27:02 -!- Deewiant has quit (Client Quit). 18:27:13 -!- Deewiant has joined. 18:28:20 -!- atrapado has joined. 18:28:20 -!- lifthrasiir has joined. 18:28:20 -!- puzzlet has joined. 18:28:20 -!- mtve has joined. 18:28:46 lament : :D 18:29:03 God I hate Haskell 18:29:59 No! You shall not hate Haskell! 18:30:04 hahaha 18:30:23 * uorygl grabs a cloak and dagger. 18:30:41 something tells me that pic was made by a haskell fan :) 18:30:43 don't tell God about your hatred either. he might smite you. 18:31:03 This is a completely legal cloak and dagger. 18:31:23 I just don't get all of the cells, though 18:31:35 Unfortunately, that means that the word "and" means its legal sense, "i.e.". It's a single object that's both a cloak and a dagger. 18:32:24 -!- osaunders has quit. 18:34:06 -!- lament has set channel mode: -b %*!*@91.105.101.*. 18:34:12 someone also provided http://imgur.com/P9RnL 18:35:02 -!- AnMaster_ has changed nick to AnMaster. 18:37:18 someone also provided http://imgur.com/P9RnL <-- hahah 18:38:26 Gracenotes: nice 18:39:18 -!- ehird has joined. 18:39:53 the whole idea is rather ridiculous.. there's an obvious conflation of the languages and those who use them, and attempts at illustrating the former look rather flimsy 18:40:27 Gracenotes: er.. I think it's a joke :p 18:40:42 NEEDS MOAR QUALITY 18:41:01 the haskell one where they're all einstein is the superior one 18:41:19 the whole joke is that what people hate about haskell is what haskellers love about it 18:41:34 and where is the Lisp column? 18:41:41 zomg 18:41:56 ehird: it's more funny but it's hardly an unbiased comparison :) 18:42:05 http://twitter.com/SarahPalinUSA/status/6823906156 what 18:42:09 lament: nor is the other image :P 18:42:28 kwertii: lisp is (((((((((((((((((((((((((((((((((((((((((((((((((((((((((( for everyone but lispers; they have a guru meditating 18:42:36 ehird, fail at spelling too 18:42:38 oh, wait 18:42:42 it is unreadable 18:42:47 for haskellers lisp is, uh, something else 18:42:47 (to me) 18:42:56 for haskellers lisp would be yet another train wreck 18:43:05 perhaps the babel tower? 18:43:05 For Haskell people, Lisp is a Rube Goldberg machine. 18:43:11 lament, what about erlang? 18:43:27 AnMaster: translation from twitterfied retardese to retardese: "Earth saw climate change for eons; will continue to see changes. Our duty is to responsibly develop resources for humankind and not pollute and destroy, but you can't alter natural change.@ 18:43:29 *change." 18:43:39 uorygl: erm no 18:43:48 lisp is universally acknowledged as minimalist, well not common lisp okay, but still 18:43:51 I'm pretty much a Haskell person; when I look at Lisp, I think, "Aiee! Side effects! Incomprehensible evaluation semantics! That's not a REAL functional programming language!" 18:43:54 not a rube goldberg machine 18:44:07 ehird, I don't get the black box for php fans / haskell 18:44:07 Lisp's evaluation semantics are trivial 18:44:12 Okay, it's a Rube Goldberg machine made out of hundreds of copies of a single device. :-P 18:44:17 AnMaster: look up black box 18:44:18 Yes, but I'm a Haskell person! I don't know that! 18:44:29 ehird, flight recorder 18:44:31 http://www.reddit.com/r/reddit.com/comments/ahixe/twitter_account_of_a_9_year_old/c0hl7ey?context=1 18:44:33 and yes also 18:44:33 Whoa; hivemind. 18:44:34 uorygl: when Lispers look at Haskell, we think, "Ah, a convoluted subset of some of the stuff Lisp can do, but with a more obtuse syntax" :p 18:44:39 something you can't see how it works inside 18:45:07 haskell is a superset of lisp actually 18:45:18 actually, hmm, no 18:45:20 they're equal 18:45:26 also poor that tron person who has been used for "mad mad nerd" everywhere 18:45:29 assuming haskell includes template haskell 18:45:51 Different type system, Haskell enforces purity, and rather different syntax. 18:46:24 (Haskell goes for "readability", rather than "trivial parsing") 18:46:27 Bah, I'm itching for some OSery. 18:46:29 If a tree falls in a forest without side effects, does it make a sound? 18:46:39 Lisp is readable enough, I just don't find it so writable 18:46:55 ehird: Yeah, but readability is not what it's optimised for. 18:47:12 ehird: emacs autoindent and auto-paren matching helps immensely 18:47:24 kwertii: I've used paredit, don't think I'm ignorant of Lisps. 18:47:39 I stand by what I said, though. 18:47:47 ehird: if you think it's hard to write, you're doing it wrong. let the computer worry about the hard part 18:48:00 kwertii: Yes, I too once parroted the typical Lisper slogans. 18:48:18 I still stand by my informed opinion. :) 18:48:20 I think the ability to define infix operators in Haskell is a great feature. I think Lisp doesn't exactly have that feature. 18:48:24 If your editor needs to be that freaking smart just to make the editing tolerable, the syntax sucks. 18:48:26 It's not the parens that make it difficult, btw. 18:49:21 uorygl: you could write infix operators in a DSL with macros if you really wanted to... 18:49:43 kwertii: that argument is akin to the Turing-Equivalence Argument for Language Irrelevance 18:49:55 yes, you can do that, but it's Bad Lisp and the Lispers will verily Kill You with Forks and Pitches Thereof 18:50:05 In Haskell, you write infix operators as follows: foo & bar = -- code here 18:50:05 yeah, why would you want to? is my point 18:50:14 kwertii: so let's examine that argument structure 18:50:18 "I like to be able to do X." 18:50:23 Or: foo `bar` baz = -- code here 18:50:33 "Lisp can do X if you don't care about conventions at all. This demonstrates my point that you wouldn't want to." 18:50:40 that...doesn't really make sense at all 18:50:46 Or (&) foo bar = -- code here, or bar foo baz = -- code here! 18:50:49 kwertii: Which is more readable: 2 + 2, or (+ 2 2)? 18:51:01 ehird: rather, he said he didn't think Lisp could do X. I clarified that it can. (with tangential side comment about why would you want to) 18:51:02 uorygl: Yes, that is the desugaring. 18:51:11 Math notation arguments are silly. 18:51:24 Have I already said that I like to avoid parentheses for grouping? 18:51:25 It's not hard to read parenthesised prefix mathematical notation. 18:51:35 -!- atrapado has quit (farmer.freenode.net irc.freenode.net). 18:51:35 -!- lifthrasiir has quit (farmer.freenode.net irc.freenode.net). 18:51:35 -!- puzzlet has quit (farmer.freenode.net irc.freenode.net). 18:51:35 -!- mtve has quit (farmer.freenode.net irc.freenode.net). 18:51:36 The question is whether prefix notation is better elsewhere. 18:52:01 kwertii: Well, technically it *can't* do X. 18:52:01 ehird: Yeah, it's not the math that makes it absurdly difficult.... 18:52:01 you can't make (2 + 2) work without modifying the compiler (which is cheating) 18:52:03 Just takes a bit of getting used to. 18:52:07 pikhq: I actually prefer a unitary syntax. instead of foo(x, y) and x foo y and xfoo, there's just (foo x y). 18:52:14 Humans aren't (made (to (figure (out (what (the correct (number (of parentheses is.)))))))) 18:52:15 You can make (infix 2 + 2) work, but that isn't the same. 18:52:24 ehird: sure it can. macros allow you to rewrite the language at runtime. if you want infix notation, you can have it 18:52:26 uorygl: rubbish argument 18:52:29 editors can do that 18:52:34 please, let's have a legit debate about lisp 18:52:37 not a schoolkid one 18:52:43 all the default arguments are stunningly borring 18:52:44 *boring 18:52:54 I feel like there's more to my argument than you countered. 18:52:59 kwertii: you can't make (2 + 2) work unless you wrap it in a macro of some sort that walks the code tree 18:53:10 ehird: ....so? 18:53:31 So, you cannot implement infix operators in Lisp. 18:53:39 Here, take this: (a (b (c (d (e (f (g (h (i (j (k l))))) m)))))) 18:53:45 Which function is the one taking three arguments? 18:53:45 ehird: macros that walk the "code tree" are part of Lisp by definition 18:53:49 Unless you use the Lispers' retarded definition made so that they can claim it's possible. 18:53:54 kwertii: Yes. That's not the point. 18:54:05 ehird: plus, you get -10 points each for the ad hominems and appeals to boringness :p 18:54:35 Ad hominem? 18:54:35 uorygl: copypaste to emacs, meta-q and you can see that instantly 18:54:38 When did I insult *anyone*? 18:54:52 I think we need a new fallacy, ad ad hominem. 18:54:55 * Sgeo feels like a mad scientist 18:54:56 Neat, so with the correct software, it's perfectly readable. 18:55:17 ehird: 10:47a member:kwertii: Yes, I too once parroted the typical Lisper slogans. 18:55:40 uorygl: a . b . c . d . e . f . g $ h (i . j (k l) m -- That? 18:55:42 This is already perfectly readable without any software: a . b . c . d . e . flip f m . g . h . i . j . k $ l 18:55:54 Erm. h (i . j (k l) m) 18:56:06 kwertii: that is not what an ad hominem is 18:56:13 pikhq: or something like that, yeah. 18:56:13 kwertii: furthermore, you ignored the line after in that quote 18:56:17 which fundamentally changes its meaning 18:56:34 i.e., your quote, though snappy and, at face value, appealing, contradicts my experience. 18:56:48 ehird: you argued that I was merely parroting typical slogans, ie. that I did not really understand what I was saying and was just repeating something because it was fashionable, thus insulting me rather than speaking to the content of my argument. 18:56:51 by saying I used to say it too, I was informing you that no, I'm not some lisp-ignorant newbie 18:56:59 kwertii: That was not my intention. 18:57:50 ehird: perhaps a better word choice would help to make your intentions clearer, then 18:58:10 kwertii: As I have just explained what I said in longhand, I do not think that is necessary. 18:58:31 It would be nice if we had a language in which we had to state our points clearly rather than connoting them. 18:58:35 Naturally, this is impossible. 18:59:02 To me, what I said was perfectly reasonable. 18:59:40 uorygl: I hear this Leibniz guy has a "calculus" that he developed for the purpose of resolving all disputes in a logical manner without emotional encroachment. he says it'll even solve religious and political questions. let's all use that! 19:00:22 kwertii: Out of curiosity, does Lisp have a type system that makes most bugs disappear? 19:00:37 pikhq: careful 19:00:44 you have plenty of bugs in haskell 19:00:50 pikhq: err... no. no language that I'm aware of has a type system that makes most bugs disappear :) 19:00:51 they're just harder to detect thus making you think you have less 19:01:06 just call me the reasonability referee :P 19:01:25 ehird: "Most". Huge swaths of types of bugs are very tricky to make... 19:01:39 Yes, but they're boring, easily-fixed ones. 19:01:41 So that's a bit of a "meh". 19:01:59 If you want to advocate the type system, advocate from the angle that it increases expressivity (which it does). 19:02:04 It's an addition, not a restriction. 19:02:06 Boring, easily-fixed, tedious, and still difficult to find one. 19:02:17 s/one/ones/ 19:02:22 -!- olsner has joined. 19:02:47 pikhq: common lisp and some other lisps have optional type declarations for optimization, and as always, if you really want a hard type system, you can write one yourself. 19:02:55 Of course, yes, it also increases expressiveness so very nicely. 19:03:13 kwertii: *facepalm* 19:03:34 wow, yet another "LISP CAN DO THAT! notthatyouwanttoCOUGHbutiwontjustifythispartbecauselispcandothatCOUGH" argument 19:03:58 Yes, and C can do lambda. That doesn't mean that C is a functional programming language. 19:04:49 incidentally, be careful with the requires-editor-equals-bad argument, haskell strays dangerously close to that 19:05:14 ehird: ... How so? The only tricky bit is the indentation, and that's not too hard. 19:05:18 (not to mention optional) 19:05:35 the indentation takes up most of my time when coding haskell in a non-tailored editor 19:05:59 an aligned { foo = bar, newline, tab tab tab oops a bit too many backspace backspace , quux = 19:05:59 Try using braces? :P 19:06:05 pikhq: non-idiomatic 19:06:07 and ugly 19:06:15 Fair enough. 19:06:22 Are braces ugly in other languages? 19:06:33 uorygl: Python. :P 19:06:52 Does indentation also take up most of one's time when coding Python in a non-tailored editor? 19:07:02 Probably. 19:07:22 the editor argument is kind of specious. I'm sure in 1955 some computer scientists were having the same argument about whether using a language that requires a compiler to be able to create programs was a negative point. 19:07:26 Actually, the same is true of any language where indentation is idiomatic... 19:07:28 I guess I wouldn't notice these things, as I use Notepad for everything. 19:08:00 pikhq: no, not probably 19:08:15 in python, it's always a multiple of one indentation width 19:08:18 but since haskell aligns, not so 19:08:25 and that is a bitch if you're not using emacs or yi 19:08:48 * pikhq tries to find a rather good example of Haskell's type system making things nicer to work with... 19:08:58 I think I'm going to have to go with Parsec. 19:09:13 yep, monads are a great example of something you can't really do properly without strong types 19:09:23 and parsec is an excellent example of monads 19:09:43 pikhq: I've written a bunch of code in both static and dynamic languages. in my experience, there's very little difference in terms of avoiding bugs but on the other hand I have to introduce 50 million type casts or equivalent all over the place in the static languages. 19:10:06 kwertii: ... Which static languages have you written in? 19:10:19 I'm guessing ones with C-like type systems. 19:10:20 my coworker has notoriously bad spelling 19:10:22 pikhq: C and Java, mostly, and a few other minor languages 19:10:32 he's having to use javascript right now and really suffers 19:10:35 Weak static typing, then. 19:10:37 because he can't spell the variables consistently 19:10:48 which in javascript means hard-to-debug runtime errors 19:10:57 Ever heard of "type inference"? 19:11:19 pikhq: Java's strong-typed 19:11:29 kwertii: not really. 19:11:34 kwertii: 19:11:36 kwertii: Not really. 19:11:40 whatever strong typing means, java is probably not it 19:11:52 given that you need to cast things to Object to do anything :) 19:12:13 Wikipedia says it is :p *watches as 5 people simultaneously edit the Java (programming language) article to change that* 19:12:14 -!- osaunders has joined. 19:13:04 kwertii: if you're criticising haskell's strong typing based on java, just... give up 19:13:12 ehird: I didn't say anything at all about Haskell 19:13:21 this whole argument is about haskell vs lisp 19:13:41 ehird: er.. no, I haven't mentioned Haskell once, actually, since I know almost nothing about it. 19:13:56 Well everyone else has been arguing about Haskell vs Lisp. 19:13:57 I know of one good argument for dynamic typing 19:14:14 it makes it easier to change the design of the program as you're writing it 19:14:33 lament: yes, exactly 19:14:55 and without it, you have to go through and change the 50 million casts everytime you make a design change 19:14:59 haskell lets you do that too; you just have to change the way the program is structured to account for it 19:15:07 seriously, NONE of us is arguing for java 19:15:19 kwertii: 50 million casts are not a typical feature of static typing. 19:15:27 they're a typical feature of Java. 19:15:37 that's why java sucks so bad 19:15:43 same thing in C 19:15:51 right, it's also why C sucks so bad 19:16:01 Once, when I tried to write something in Haskell, the typing got in the way. 19:16:02 C is particularly bad when it comes to the type system 19:16:10 Only oncce. 19:16:19 what does strong typing without casting (like Haskell, presumably?) buy me as a coder? 19:16:32 A whole hell of a lot. 19:16:49 kwertii: the ability to reason about the program and its constituent parts better. 19:17:05 kwertii: for example, given a type signature of a function, you can often tell what the function does. 19:17:27 e.g. (a -> b) -> [a] -> [b] 19:17:37 lament: I've never really had a problem with that in a dynamic language.. and how does that differ from, say, Java or C on that point? 19:17:50 -!- jpc has joined. 19:18:03 good luck writing a function with signature (a -> b) -> [a] -> [b] in C or Java 19:18:13 you can do it in java, with generics... shudder 19:18:25 what's (a -> b) in Java? 19:18:25 kwertii: this argument will probably only end if we either give up or we end up teaching you all of haskell 19:18:34 lament: please pardon my ignorance of Haskell syntax. what does that mean? 19:18:38 the type system really is totally different in haskell 19:18:45 kwertii: this type signature is of the function map 19:18:46 lament: Func or Func I forget 19:18:48 kwertii: do you know map? 19:18:53 assuming Func is a genericed class with 19:18:56 -!- sebbu has joined. 19:18:57 B call(A x); 19:18:58 erm 19:19:00 yeah 19:19:02 lament: I know the Lispish function map.. is that what you mean? 19:19:05 kwertii: yes 19:19:09 and you do the ugly new Func(){{ thingy 19:19:14 The ability to write a parser as follows: toplevel = do {x <- sepEndBy expr space;eof;return x};expr = choice [comment,sexp,string "" >> return Null];comment = do {string ";;";skipMany (noneOf "\n");return Null};sexp = List <$> between (char '(') (char ')') (choice [token, sexp, comment] `sepBy` spaces);token = Node <$> many1 alphaNum 19:19:18 it's possible, just awful 19:19:20 and it's not a closure 19:19:26 kwertii: in lisp, map takes a function and a list of stuff, and applies a function to each element of the list 19:19:28 you can only access final (immutable) vars from the upper scope 19:19:35 map has been done in java 19:19:42 http://functionaljava.org/ 19:19:45 as well as monads 19:19:47 but jesus is it ugly 19:19:55 kwertii: in haskell, map takes a function that converts values of type a to values of type b, and a list of values of type a 19:20:01 and produces a list of values of type b 19:20:19 that's what (a -> b) -> [a] -> [b] says 19:20:46 lament: ok.. so does this buy me anything over Java, other than syntactic sugar? 19:20:48 the compiler ensures that there won't be type errors as you apply it. 19:21:07 kwertii: there's no sane map in Java, you'd need a for loop or something 19:21:09 -!- atrapado has joined. 19:21:09 -!- lifthrasiir has joined. 19:21:09 -!- puzzlet has joined. 19:21:09 -!- mtve has joined. 19:21:09 kwertii: you cannot express that function in java 19:21:18 you can do it if you let (a -> b) be a function 19:21:20 The compiler ensures that there won't be any other affects of the function. 19:21:20 but it's a closure 19:21:27 it is, literally, impossible in Java 19:21:30 pikhq: *effects 19:21:49 (a function with other effects would be: (a -> b) -> [a] -> IO [b]) 19:21:58 -!- olsner has quit (farmer.freenode.net irc.freenode.net). 19:21:58 -!- Deewiant has quit (farmer.freenode.net irc.freenode.net). 19:21:58 -!- adam_d has quit (farmer.freenode.net irc.freenode.net). 19:22:04 -!- sebbu3 has quit (Read error: 60 (Operation timed out)). 19:22:14 -!- adam_d has joined. 19:22:16 you know what would be fun? 19:22:26 a program that you give a type signature, and it tries to find out if it's doing something evil 19:22:32 (a -> IO b) -> [a] -> [b] 19:22:33 EVIL! 19:22:35 a -> b 19:22:36 EVIL! 19:22:47 other than closing over variable bindings, you can write a Java fn that takes, say, a typed array and an anonymous method and applies it to produce an array of a guaranteed return type.. can't you? 19:23:04 kwertii: technically, yes, with five pages of code 19:23:16 kwertii: right, you can, but there's a reason nobody does it 19:23:18 haskell has other tricks up its sleeve, though, and not just convenience-related ones 19:23:35 kwertii: it's very much going against the grain of the language 19:23:36 kwertii: Can you also ensure that there the function does nothing else, by merit of seeing nothing other than the type signature? 19:23:53 for instance, typeclasses handle both java's generics AND a good portion of problems usually solved with OOP 19:23:59 oh, and Java interfaces too 19:24:01 well yea, I'm not arguing that Java doesn't suck, I'm just trying to learn about Haskell. 19:24:05 "So... yeah." 19:24:15 kwertii: what pikhq said is a big selling point 19:24:22 pikhq: so Haskell forces you to declare whether there are side effects? 19:24:26 yes 19:24:28 kwertii: sort of 19:24:32 that's kind of cool 19:24:32 it does, but it's not a language feature 19:24:38 everything with side effects is of type IO a 19:25:14 kwertii: it not only forces you to declare it, but it verifies it during type-checking 19:25:22 addFromInput :: Integer -> IO Integer 19:25:22 addFromInput n = do m <- imaginaryFunctionThatReadsAndParsesAnInteger 19:25:23 return (n+m) 19:25:34 kwertii: or rather, it doesn't force you to declare it, it just verifies it :) 19:25:35 or more succintly, addFromInput n = imaginaryFunctionThatReadsAndParsesAnInteger >>= (n+) 19:25:46 kwertii: the important thing to realise is that "IO a" isn't just a silly tag applied to a 19:25:57 in fact, IO a doesn't mean "a, but with some side-effects" 19:25:58 kwertii: in haskell you don't usually have to declare types at all, because the compiler figures them out itself 19:26:17 it means "some IO thingies that, when run on a side-effecting computer, produces a value of type a" 19:26:19 kwertii: but a function with side effects and a function without side effects have different types, so you can't accidentally interchange them 19:26:30 in haskell, the language is 100% pure, no IO 19:26:36 what happens is that the haskell runtime system calls main() 19:26:38 well, main 19:26:54 but think of it as main(), it's actually just a lazily-evaluated value, not a function of no arguments; they're equivalent in a lazy language 19:26:58 It then evaluates the result of main. 19:27:00 then, it traverses the tree of IO computation 19:27:10 doing each IO operation and feeding the result back in to the rest 19:27:29 this runs the program bit by bit doing IO as it goes instead of the whole thing at once because haskell is lazily evaluated; only runs computations that it absolutely needs to right now 19:27:42 which is why [1..] works; it's the same as 1:(1:(1:... 19:27:53 but it looks like to haskell, which if you examine the head becomes 1: 19:28:01 if you examine the head of the tail it becomes 1:(1:) 19:28:01 etc 19:28:11 1:(2:(3:..., rather 19:28:24 erm, right 19:28:24 very interesting 19:28:28 numbers mixed with frowny faces 19:28:30 Yeah, 1:(1:(1:... is fix (1:) 19:28:32 1 :( 2 :( 3 :( 19:28:32 and, finally, IO is actually a monad; which have nothing to do with side-effects at all, despite some mistaken conceptions 19:28:50 things like the "do a; b; c" stuff and the >>= functions have nothing to do with i/o 19:28:51 ehird: i'm pretty sure you lost kwertii already 19:29:01 in fact, even lists are a monad; the point is, you don't have to understand what a monad is 19:29:15 I'm just trying to demonstrate that in haskell, side-effects aren't bolted on 19:29:20 they arise from other parts of the system 19:29:24 lament: I don't get the details, but it's interesting that the program is structured around the operations necessary to do IO 19:29:34 (you don't have to understand the parts to do IO in haskell, though, it's easy) 19:29:40 ehird: i'm pretty sure that side effects ARE bolted on :) 19:29:51 well everything is bolted on if you use a silly definition 19:30:03 well 19:30:03 -!- olsner has joined. 19:30:03 -!- Deewiant has joined. 19:30:07 lament: No, side effects aren't even part of the language. :P 19:30:12 the point is that without lazy evaluation, and monads, it'd be more awkward; it's a happy coincidence that monads map to IO, but actually that just reveals the inner power and usefulness of monads 19:30:14 something runs main 19:30:17 this "something" isn't haskell 19:30:18 and how useful lazy evaluation is 19:30:20 it's some bolted-on bit 19:30:27 lament: well, yes, but that's not the sense I meant 19:30:31 I mean that "IO" fits into the language 19:30:31 ehh, Lisp can do that. *joke* 19:30:45 kwertii: right, it can't 19:31:13 kwertii: blah, just learn haskell already :P 19:31:23 there are monad libraries in Lisp.. If you wanted to, you could write macros that would force programs to be structured like that.. *ducks* 19:31:29 oh the humanity 19:31:34 kwertii: everybody's favourite motivating examples: 19:32:09 factorial :: Integer -> Integer 19:32:16 factorial n = product [1..n] 19:32:46 isprime n = not . any (\p -> mod n p == 0) . takeWhile (\p -> p^2 <= n) $ primelist 19:32:46 primelist = 2 : [p | p <- [3,5..], isprime p] 19:32:46 kwertii: this program gives a function, isprime, which tells you whether an integer is prime, and a list, primelist, which is an infinite-length list of every prime. isprime looks at primelist to find primes, and primelist asks isprime to add new primes to the list 19:32:48 and yes, it works 19:32:52 fibs :: Integer 19:32:53 fibs = 0 : 1 : zipWith (+) fibs (tail fibs) 19:32:53 LAZY EVALUATION IN YOUR FACE 19:33:02 lament's is the same general idea, but with less head-binding 19:33:03 (fibs) 19:33:42 Clojure has lazy evaluation 19:33:48 >_< 19:33:52 lament: fibs :: [Integer] 19:33:59 oh whoops 19:34:02 duh 19:34:19 and there are lazy eval libraries for Common Lisp... 19:34:38 scheme has it builtin too 19:34:44 not the same kind 19:34:46 no, it doesn't 19:34:48 in haskell, everything is lazy 19:34:53 lament: well it has promises which are ... half-similar 19:34:56 then I'm not getting something. what does Haskell do that Scheme or Clojure don't? 19:34:57 kwertii: give me an infinite list in Scheme 19:35:06 kwertii: in haskell, every single construct is lazy 19:35:13 the implicitness makes it *far* more expressive 19:35:37 kwertii: for example, the list of natural numbers in Haskell is [1..]. You can perform any list operation on it. 19:35:43 kwertii: What's the Scheme equivalent? 19:35:46 lament: streams are infinite lists in Scheme 19:35:48 or Common Lisp or whatever 19:35:54 kwertii: exactly, they're different things 19:35:56 that's the whole point 19:36:03 I'm not good at Scheme. but infinite lists are baked into Clojure 19:36:11 kwertii: exactly, they aren't lists, and you can't use list operations on them 19:36:24 lament: http://www.cs.aau.dk/~normark/prog3-03/html/notes/eval-order_themes-delay-stream-section.html#eval-order_streams_title_1 19:36:41 yes i'm aware 19:37:03 kwertii: Write the following: fibs = 0:1:zipWith (+) fibs (tail fibs) 19:37:10 (cycle [1 2 3]) ;; infinite list of 1 2 3 1 2 3. ..... 19:37:12 pikhq: he'll just use streams and a mass of (delay)s 19:37:36 what astonishes me is that kwertii is proving that he can't actually consider any language might be superior to lisp, because his brain just shows that it can be done in lisp 19:37:38 it's like a trap! 19:37:39 pikhq: http://en.wikibooks.org/wiki/Clojure_Programming/Examples/Lazy_Fibonacci 19:37:55 ehird: -10 points, ad hominem 19:38:03 wasn't submitting it as an argument 19:38:08 was merely making an observation 19:38:22 (defn fib ([] (concat [0 1] (fib 0 1))) ([a b] (lazy-cons (+ a b) (fib b (+ a b))))) 19:38:29 I'm not arguing for superiority at all. Just trying to wrap my head around what Haskell can do that Lisp can't. As I said, I know almost nothing about Haskell 19:38:35 looks like a direct equivalent of the Haskell definition 19:38:36 lament: ... Eeeeew. 19:38:43 no language can do anything that lisp can't, at all 19:38:46 kwertii: so in haskell, it's the same thing, but statically typed 19:38:48 well apart from super-tc languages 19:38:59 kwertii: so you know that it's a list of integers, and you know that no side effects are performed while evaluating it 19:39:04 except clojure isn't very lispy 19:39:07 kwertii: without seeing the code 19:39:08 * pikhq notes that "fibs" isn't a function. 19:39:09 and in fact, it takes all these things from haskell 19:39:12 ehird, low level register setting? 19:39:17 "I don't need Haskell for that, this language that took it from Haskell has it!" 19:39:17 It is literally just a list. 19:39:35 I readily admit it's cool that you can instantly know whether a fn has side effects, and I like the idea of computing a program as a sequence of functions necessary to produce the desired IO. 19:40:16 Or other.. low level C trickery? 19:40:26 * Sgeo waves his hand around a bit 19:40:48 kwertii: and yes you can do all this stuff in other languages, but in haskell it's the main way of working 19:41:05 so.. correct me if I'm wrong.... Haskell is essentially a strongly statically typed version of Clojure? Is that a good way of looking at it? 19:41:11 and the combination of all of them being part of the language leads to code that's more concise, and Haskellers find more readable, for a lot of tasks, practical and theoretical 19:41:22 kwertii: with better syntax, yes 19:41:23 and indeed the type system does eliminate a lot of bugs 19:41:26 kwertii: sort of 19:41:29 kwertii: clojure isn't all lazy 19:41:32 it has lazy lists 19:41:33 but it isn't lazy 19:41:40 I love Lisp syntax, so we'll leave syntax aside :) 19:41:46 haskell's ubiquitous laziness is really fundamental 19:41:55 kwertii: you could use Liskell. 19:41:58 NOT THAT YOU'D WANT TO :p 19:42:02 ooh, Liskell 19:42:06 don't, it's crappy 19:42:15 better just use clojure then 19:42:16 they just added parentheses and a different macro system to Haskell 19:42:20 the former isn't really all that lispy 19:42:26 the latter is worse than Template Haskell 19:42:26 so, a functional language similar to Clojure but with pervasive laziness and strong static typing 19:42:34 kwertii: and monads. 19:42:39 Lisp has monads 19:42:41 specifically, monadic IO is the language feature 19:42:45 main = getContents >>= foo x >= putStr -- There, a program that filters stdin through foo x and outputs stdout. Lazily. 19:42:51 or can have them, more specifically. lots of libs for that 19:42:53 kwertii: the typing is not just strong and static 19:42:55 pikhq: >>= not >= :P 19:43:01 kwertii: lisp doesn't use monadic io 19:43:06 kwertii: it's very expressive, or tries to be 19:43:14 can you write macros in Haskell? 19:43:16 i think it is lament probably disagrees :P 19:43:19 kwertii: yes, with template haskell 19:43:27 http://en.wikipedia.org/wiki/Template_Haskell 19:43:28 ehird: XD 19:43:31 As of version 6.10, Template Haskell provides support for user-defined quasi-quoters, which allows users to write parsers which can generate Haskell code from an arbitrary syntax. This syntax is also enforced at compile time. For example, using a custom quasi-quoter for regular expressions could look like this: 19:43:32 digitsFollowedByLetters = [$re| \d+ \s+ |] 19:43:48 kwertii: it's a bit of a pain to write monads, and sure the syntax for using them isn't the most pretty, but the thiing is 19:43:50 *thing 19:43:52 kwertii: there's a kind of a goal to make the type checker do as much work as possible 19:43:56 because of haskell's pervasive laziness and monadic IO 19:44:03 a lot of things that would be macros in lisp... are functions in haskeell 19:44:06 *haskell 19:44:12 and what can be simpler than writing a function? 19:44:15 kwertii: so many of "design patterns" elsewhere end up being types 19:44:24 kwertii: and their common features are abstracted 19:44:26 kwertii: oh, and if Java is your benchmark, note that you don't have to declare types in haskell 19:44:39 kwertii: (monads are one such pattern) 19:44:55 you can do (let a = 3 in a+4) and it all works, you can even have (do c <- getChar; print (ord c)) (ord = unicode codepoint number of character) 19:44:55 -!- bsmntbombdood_ has joined. 19:45:05 -!- bsmntbombdood has quit (Nick collision from services.). 19:45:07 cool. 19:45:10 -!- bsmntbombdood_ has changed nick to bsmntbombdood. 19:45:19 people annotate the types of their top-level definitions, though (functions and other things) 19:45:23 because it's basically documentation 19:45:37 if you know a function's name as a type, you're like 90% of the way there to using it properly 19:45:42 *name and a type 19:45:49 so, anyone have any ideas on how to create a bittorrent like protocol that is more anonymous? 19:46:02 but less so than freenet 19:46:06 also, if you declare the type, of course it means if your function breaks the type (and thus compatibility) it complains 19:46:21 bsmntbombdood: maybe have the swarm act as a Tor-style network 19:46:29 except without exit nodes 19:46:33 thanks for the info, guys, I am adding Haskell to the list of ∫things to look into. 19:46:34 ehird: too slow 19:46:38 that way, you can have a list of everyone participating in the torrent 19:46:41 but not who did what 19:46:46 kwertii: fthings! 19:46:57 kwertii: http://www.lisperati.com/landoflisp/ 19:47:02 lament: oh god, not that comic :P 19:47:16 might as well be called Land of Uninformed Haskell Bashing (I know the author knows Haskell) 19:47:29 (but he wildly misrepresents it in that comic; I wouldn't mind if people didn't use it in substitute of an argument quite often) 19:47:35 ehird: i can't believe how retarded you are 19:47:43 kwertii: if you do decide on haskell, btw, Real World Haskell is the best place to start. 19:48:07 ehird: thanks, I'll take a look 19:48:11 -!- sebbu2 has joined. 19:48:11 if your mind is tuned somewhere in the vicinity of tolerance of _why's style, http://www.learnyouahaskell.com/ is in that area too 19:48:20 it only covers the basics, but beyond that real world haskell works 19:48:35 well hmm since I last checked it expanded 19:48:39 covers a bit more than the basics then 19:48:45 still no monads though :-D 19:49:20 (real world haskell is free online here http://book.realworldhaskell.org/) 19:51:51 -!- sebbu3 has joined. 19:52:20 lament: haha. awesome. 19:54:51 ehird: Yeah, I can't recommend LYAH enough. It doesn't cover the whole language, but what it covers it covers well. 19:55:07 pikhq: djinn doesn't know lists does it? 19:55:17 ehird: djinn can't do recursive types. 19:55:36 djinn isn't all that smart. 19:56:00 -!- sebbu2 has quit (Read error: 60 (Operation timed out)). 19:56:02 kwertii: anyway, here's a haskell party trick 19:56:07 /query lambdabot and try these two lilnes 19:56:09 *lines 19:56:11 @djinn (a -> b) -> b -> Maybe a -> b 19:56:12 and 19:56:19 @djinn (a -> b -> c) -> b -> a -> c 19:56:22 the former is 19:56:33 given f, a function taking a and returning b, and x, a default value 19:56:42 plus m, which is either Just (something of type a) or Nothing, 19:56:56 either return (f (the thing in the Just)) or x 19:57:06 &/ab 19:57:07 err 19:57:08 failk 19:57:10 i.e., it's "if there's a value in here, pass it through this function; otherwise, use this default" 19:57:10 fail* 19:57:25 the latter one takes a function taking two arguments, and returns one that takes two arguments, but flipped 19:57:31 i.e. f(a,b) = g(b,a) 19:57:46 tl;dr @djinn takes a type, and works out a function for you 19:57:56 ehird, copying 500 MB at 590 kb/s is irritating 19:57:59 (well, not any old type, but meh) 19:58:27 kwertii: summarizing ehird: http://en.wikipedia.org/wiki/Curry-Howard_Isomorphism 19:58:36 naturally 19:58:38 kwertii: if that doesn't get you excited about static types, nothing will :) 19:58:45 but the point is that haskell types *are* that 19:59:06 and it works for types of useful, concrete functions ;-) 19:59:13 admittedly, not that many, and it's not the most useful application of the isomorphism 19:59:16 but it sure is neat 20:00:45 ehird: where do you get x in those function definitions? 20:01:00 kwertii: if you use a name for a type, it doesn't mean that's the name for a variable 20:01:03 take the function 20:01:11 f :: a -> a -> Integer 20:01:13 f a b = 3 20:01:23 both the arguments must be of the same type 20:01:27 but what type it is can be any 20:01:39 -!- sebbu has quit (Read error: 110 (Connection timed out)). 20:01:45 basically, a lowercase name as a type means "any type", but if you use it twice it's the same type 20:01:58 ok, I'm confused due to my lack of knowledge of Haskell syntax. You wrote "@djinn (a -> b) -> b -> Maybe a -> b" and then started talking about x. I see no x 20:02:10 ah, I was just giving names to the arguments 20:02:12 kwertii: the curry-howard isomorphism is a good example of an idea that's only possible when types are explicit 20:02:16 let me restate it more verbosely 20:02:27 kwertii: though of course it doesn't have much to do with programming 20:02:50 lament: funny, I was just reading about automated theorem proving the other day. a very cool idea. 20:03:00 The function takes values of the types 20:03:01 (a -> b) — "transformer". A function taking a value of type a, and returning a value of type b. 20:03:01 b — "default". 20:03:01 Maybe a — "container". 20:03:01 and returns a value of type b. 20:03:05 but it partly explains why there's a strong mathy flavour in the haskell community 20:03:08 data Maybe a = Just a | Nothing 20:03:19 i.e., a value of type (Maybe a) is of the form of either 20:03:22 Just (a value of type a) 20:03:22 or 20:03:23 Nothing 20:03:25 kwertii: right, @djinn is an automatic theorem prover 20:03:27 This reminds me of a pun.. 20:03:35 if "container" is a Just 20:03:40 kwertii: a very simple one admittedly, but the cool part is that it works on haskell types 20:03:48 take the value from inside "container", and pass it to "transformer"; return the result. 20:03:53 Otherwise, return "default". 20:04:03 think of (Maybe a) as like this java 20:04:03 ehird: please define "Maybe" and "Just" in this context 20:04:10 MyType foo = null; 20:04:14 MyType bar = new MyType(); 20:04:21 kwertii: in haskell this would be expressed as 20:04:26 foo :: Maybe MyType 20:04:28 foo = Nothing 20:04:33 bar :: Maybe MyType 20:04:38 bar = Just (makeMyType) 20:04:50 kwertii: Just and Nothing are just constructors of Maybe 20:05:02 so "Maybe x" is either "x or nil" and "Just x" is "x, but not nil"? 20:05:13 ah, I see how you are confused 20:05:17 no, (Maybe a) is a type 20:05:20 (Just x) is a value 20:05:24 of type (Maybe (type of x)) 20:05:47 (obviously you can only write one or the other when the syntax expects a type or a value) 20:06:37 Just x instantiates a new x? 20:06:55 lament: help, I'm in a hole I dug and can't climb out 20:07:01 ehird, a question: know any open source photo manager or such. For doing stuff like grouping raw photos on exposure time and getting an overview of them 20:07:03 It takes x and wraps Just around it. 20:07:04 no worries, I'll go read a Haskell book 20:07:06 kwertii: I tell you what, forget that @djinn invocation 20:07:08 the one in ubuntu is laughably bad 20:07:12 (fspot) 20:07:17 if you don't understand it, focus on the other one, which just returns a function with the argument places swapped :P 20:07:28 kwertii: yep. i suggest http://www.learnyouahaskell.com/ to start with then going onto real world haskell, as i said 20:07:42 learnyouahaskell gets down to the practical stuff very fast, so you should grok Maybe soon enough if you read it 20:07:55 and it is written by a better teacher than I... 20:08:09 AnMaster: write a program photoq(1) 20:08:18 photoq exposure foo.jpg bar.jpg 20:08:23 If the type of x is y, then Just x has a type of Maybe y 20:08:25 then use the shell :-) 20:08:38 example use 20:08:42 alias pq=photoq 20:08:46 -!- MigoMipo has quit ("Quitter!"). 20:08:55 $ photoq size foo.jpg bar.jpg 20:09:00 erm 20:09:03 $ pq size foo.jpg bar.jpg 20:09:08 foo.jpg: 1600x1200 20:09:12 bar.jpg: 640x480 20:09:15 $ pq size foo.jpg 20:09:17 1600x1200 20:09:29 * ehird , master of theoretically pure solutions! 20:09:36 hmm actually I'd omit the trailing colon on the filenames 20:09:45 wait, no 20:09:53 you'd not really want to parse that, just call pq multiple times in a loop 20:10:24 AnMaster: by overview do you mean thumbnails? 20:10:31 if so nautilus shows them :P 20:10:51 and you can query information about a group of photos identified by their thumbnails by selecting them and dragging them to a terminal after "pq theproperty "! 20:15:39 AnMaster summarily ignores me! 20:16:40 -!- MizardX has quit ("zzz"). 20:17:55 back 20:18:02 :-D 20:18:04 ehird, sorry I had to leave for a few seconds 20:18:08 AnMaster: i went all unix elitist on you 20:18:10 ehird, due to not feeling weel at all 20:18:13 first as a joke 20:18:17 I think I might have some flu 20:18:18 but at the end started thinking it was pretty cool 20:18:19 or something 20:18:22 :( 20:18:25 Pearl flu 20:18:39 ehird, mongoose flu! 20:18:47 whoosh maybe 20:18:54 ehird, not at all 20:19:02 okay, tell me what i was referencing 20:19:12 ehird, no I wasn't continuing it. 20:19:22 I was referencing "pearls before swine" 20:19:26 I was already typing that when you said pearl flu 20:19:34 ehird, we have that idiom in Swedish too 20:19:37 good 20:19:42 kasta pärlor för svinen 20:19:42 !hsoohw 20:20:12 literally: throw pearls in front of the swines 20:20:32 photoq exposure foo.jpg bar.jpg 20:20:34 you know 20:20:38 I use a shell script atl 20:20:40 atm* 20:20:42 using exiftool 20:20:44 to read the data 20:20:53 well make pq a wrapper around exiftool 20:20:58 ehird, I just wanted to do something else 20:21:02 then use my nautilus for thumbnails + drag and drop to terminal :P 20:21:06 solution 20:21:27 well i don't know if that works in nautilus i think it doees 20:21:27 does 20:21:30 does in os x anyway 20:22:06 It wooshed over my head 20:22:10 And is still wooshing 20:22:24 Sgeo: what did 20:22:27 oh 20:22:29 -!- Asztal has quit (Read error: 60 (Operation timed out)). 20:22:31 i said pearl flu 20:22:34 pearls before swine 20:22:35 swine flu 20:22:46 I don't know what "pearls before swine" is supposed to mean 20:22:56 irrelevant to the pun 20:23:16 "Pearls before swine refers to a quotation from the discourse on holiness, a section of Jesus Christ's Sermon on the Mount, implying that things should not be put in front of people who don't appreciate their value." 20:23:24 more like INTERCOURSE ON HOLINESS 20:23:27 ehird, it is for i in *.MRW; do exp=$(exiftool "$i" | awk '/Exposure TimeExposure Tim/ {print $NF}'); mv "$i" "${i//.MRW/THM}" "${exp/\//_}" 20:23:29 ; done 20:23:49 well 20:23:50 AnMaster: pfft, that only works for exposure! 20:23:51 minus the typos 20:23:54 PQ PQ PQ 20:24:01 / $/d 20:24:28 ehird, well yes 20:24:55 ehird, also I need to sort it by motive this time 20:25:00 since they are not all in the same direction 20:25:04 your mom is a motive 20:25:58 err that was Swedishism maybe 20:26:10 ehird, what do you can the thing a picture depicts 20:26:14 in Swedish it is "motiv" 20:26:23 motiv sounds like motif 20:26:29 but uh 20:26:31 subject? 20:26:35 "what do you can the" 20:26:36 ehird, ah maybe 20:26:43 my language parser gave up there 20:26:43 ehird, oops 20:26:48 what do you call* 20:26:49 and just parsed the rest of the sentence 20:26:55 ehird, s/can/call/ 20:26:59 subject, probably— uh, do cameras give that information? 20:27:03 I didn't know they could identify shapes. 20:27:04 ehird, no they don't 20:27:05 which 20:27:11 is why I need a photo manager 20:27:16 not so 20:27:22 EXIF is extensible, right? 20:27:31 ehird, doesn't change that my camera doesn't do it 20:27:34 and yes there is MakerNotes 20:27:38 and neither can a photo manager 20:27:44 you're going to have to enter the subjects yourself 20:27:46 where the vendor can put whatever it wants 20:27:50 ehird, exactly 20:27:52 so! make a field Subject 20:27:55 and put the subject in 20:27:59 then do $ pq subject ... 20:28:01 TADA 20:28:12 ehird, actually my camera allows you to make short sound annotations 20:28:14 :D 20:28:20 with it's built in mic 20:28:25 Combine with speech recognition! 20:28:35 *snap* "Cat." 20:28:41 *goes on computer* 20:28:48 Recognition failed. 20:28:52 "FUCK!" 20:28:56 ehird, actually here it was "section 1 of the panorama" "section 2 of the panorama" 20:28:57 and so on 20:28:57 Recognition succeeded. 20:29:00 "Fuck" 20:29:07 Erm, that last line is confusing. 20:29:10 Let's rewrite it: 20:29:11 > Fuck 20:29:17 Eh, that's still confusing. 20:29:28 The point is that the computer recognises "fuck" but not "cat". Now laugh, fool. 20:29:32 hah 20:29:39 ehird, fuck the cat? 20:29:44 "calling police" 20:29:56 Hot cat-on-cat(1) action. 20:30:01 XD 20:30:01 "Meeeow." "Meeeow." 20:30:17 "You're so like me." "You're so like me." 20:33:46 ehird, idea: make a program that can construct a partial 3D image given two photos from two different locations 20:33:51 using the parallax 20:34:03 that's called red and blue glasses 20:34:15 ehird, well no it isn't. I want a 3D model I can load into blender 20:34:24 that would be unlikely to work very well :P 20:34:26 it is called "cheap-skate (sp?) 3D scanner" 20:34:59 I remember using a program that could do something like that, a long time ago 20:35:23 Sgeo, oh? 20:35:28 AnMaster: it'd fail horribly e.g. on spheres 20:36:02 ehird, well yes. You could only get an image covering a bit more than 180 degrees 20:36:05 AnMaster, I don't remember much, except you had to help it, I think by specifying points on both images that are supposed to match up 20:36:13 ehird, and yes it would be hard to detect a sphere 20:36:30 Sgeo, well yes that is given 20:36:36 I would expect to have to do that too 20:36:46 oh 20:36:47 lame 20:37:12 ehird, well that or give it the distance between the camera positions 20:37:12 also 20:37:19 you could automate point finding 20:37:21 easily 20:37:28 -!- MigoMipo has joined. 20:37:30 there are already tools to do so 20:37:35 used for panorama making 20:37:45 -!- MigoMipo has quit (Remote closed the connection). 20:37:54 modify the algorithms a bit maybe to account for the now wanted parallax 20:38:03 and you have a point finding algorithm 20:38:06 ehird, ^ 20:39:01 * ehird decides to play around with debian sid 20:40:20 * AnMaster ponders saying "tried it years ago" but decides not to 20:40:31 Of course I've used it before. 20:40:37 I just feel like some Debian tinkering. 20:40:43 ehird, well yes. I just said I decided not to say it 20:41:05 Anyway, clearly the metric is how young you are when you first used it. 20:41:06 (yes I'm aware of the issue in that sentence, thank you very much) 20:41:07 Therefore, I win. 20:41:13 AnMaster: no issue 20:41:15 ehird, hm. 12 or so 20:41:18 or maybe 13 20:41:20 I forgot 20:41:24 what, sid? 20:41:29 that's like doing drugs when you're 4 20:41:35 ehird, I tried red hat when I was 11 20:41:36 YOU HAVE NO CONCERN FOR YOUR OWN HEALTH 20:41:40 red hat 5.something 20:41:47 red hat is like, uh, something bad 20:41:51 came on a cd with some computer magazine 20:41:56 ehird, yes. But I didn't know that back then 20:42:00 and that had RPM hell 20:42:09 tried debian a bit later. sid too iirc 20:42:10 thankfully nobody uses rpm these days 20:42:11 then slackware 20:42:17 (in the same way that nobody uses dpkg) 20:42:51 ehird, also wait a sec... 20:42:54 that's like doing drugs when you're 4 20:43:00 First distro I used was Slackware... 20:43:00 aren't you like 14? 20:43:02 so 20:43:02 using sid at such an early age 20:43:08 14 IS LIKE BEING 18 OKAY 20:43:10 it would be just as bad for you 20:43:15 ehird, but you said you used it before! 20:43:17 which is when hard drugs become legal in Falsebekiztan 20:43:24 AnMaster: SHUT UP 20:43:33 YOUR WORDS BOUNCE OFF ME THEY DO NOT HURT 20:43:56 ehird, this reminds me of a Marty Feldman (sp?) sketch 20:44:10 now using gentoo when you're 4, is like doing heroin before you're even conceived 20:44:18 ehird, agreed 20:44:19 continuously 20:45:06 ehird, but I only started with gentoo when I was maybe 16 or so 20:45:09 or 15 20:45:19 I remember it was in late 2004 anyway 20:45:30 * AnMaster is too tired to work out that 20:46:05 -!- adam_d_ has joined. 20:46:13 ooh, linode just became an appealing vps provider 20:46:18 -!- asiekierka has quit (Connection timed out). 20:46:20 they have a facility in london 20:46:22 why is my mouse suddenly slippery 20:46:26 and it's (a) fast, (b) low-latency 20:46:29 * AnMaster gets something to clean it 20:46:45 now if only their rates weren't kinda shitty 20:47:36 Linode 19.95 $: 360 MiB of RAM, 16 G(i?)B of storage, 200 G(i?)B transfer 20:47:36 prgmr 20 $: 1024 MiB of RAM, 24 GiB of storage, 160 GiB transfer 20:48:16 on the other hand, their performance is nice: http://journal.uggedal.com/vps-performance-comparison 20:49:19 inexplicably 32-bit is faster than 64-bit for smaller linode nodes, apparently 20:49:43 ehird, memory usage? 20:49:59 irrelevant since he ran actual benchmarks, not single tasks 20:50:06 oh 20:50:07 you mean 20:50:07 no 20:50:09 speed-wise 20:50:10 http://journal.uggedal.com/vps-performance-comparison 20:50:15 linode guys said the same 20:50:22 hm 20:50:29 no wait 20:50:30 "x86 performs better on smaller nodes (360) our experience." 20:50:33 not said by a linode guy 20:50:34 but still 20:50:36 so, yeah 20:50:37 strange 20:50:46 ehird, well yes it could be that more fits into ram there 20:50:51 if it doesn't have a lot of ram 20:50:51 doubtful 20:50:55 benchmarks don't tend to be huge 20:51:01 AnMaster: 360 MiB of RAM running linux? 20:51:11 ehird, so more can be cached 20:51:12 that can surely fit an entire benchmark, it's not like it's a 3d rendering test or anything 20:51:16 hm 20:51:21 anyway, he ran several benchmarks 20:51:24 most of which were not ram-intensive 20:51:35 ehird, okay I saw postgresql there. Which would be cache-dependant in part 20:51:57 also in-memory sqlite 20:52:00 hmm, linode lets you install your own distro instead of just a predefined list 20:52:05 which was a nice thing about prgmr 20:52:06 ehird, what about more fitting into cpu cache? 20:52:07 quite tempting 20:52:10 that *is* possibke 20:52:14 possible* 20:52:18 -!- adam_d__ has joined. 20:52:19 AnMaster: look how drastic the differences are, though 20:52:31 in most of the benchmarks, i686 blasts away x86_64 on linode 20:52:42 "Django test suite on in-memory SQLite" x86_64 wins? 20:53:00 "most" 20:53:10 right 20:53:15 "Microsoft loses patent appeal; Word and Office to be barred from sale starting January 11" 20:53:18 anyway both are way over any other host 20:53:19 And nothing of value was lost. 20:53:30 AnMaster: which is better 20:53:41 indeed 20:53:43 well on most 20:53:48 yeah 20:53:51 depends on the benchmark, confusingly :P 20:53:55 haha 20:54:00 but more importantly, linode is also among the most predictable 20:54:14 amazon, prgmr and amazon are about as stable as each other, performance-wise 20:54:17 "Microsoft loses patent appeal; Word and Office to be barred from sale starting January 11" <-- long live that judge? 20:54:20 well 20:54:33 1. amazon and prgmr 2. linode 3. rackspace 20:54:43 4. slicehost (really really bad last place) 20:54:55 AnMaster: ehh 20:54:55 ehird, are those patents important? 20:54:59 yes 20:55:08 well 20:55:13 they're shitty patents 20:55:14 ehird, oh? at what level? as in can't open saved files without it? 20:55:16 shouldn't have been granted 20:55:22 AnMaster: as in fundamental to the .docx format 20:55:25 or as in "can't use simne gui thingy" 20:55:28 well, all .*x 20:55:33 hm 20:55:35 interesting 20:55:41 ehird, what does the patent patent? 20:55:49 AnMaster: something like "using XML to do out-of-band formatting" 20:55:49 that is 20:55:52 you have 20:55:53 Hello, world! 20:55:54 foo 20:55:56 and you have 20:56:01 format first N characters: bold and big 20:56:06 wait a second 20:56:09 format N to N+foo: italic 20:56:10 that patents xslt 20:56:12 doesn't it? 20:56:14 not really 20:56:16 it's more like 20:56:35 ehird, using out of band formatting like that *is* shitty 20:56:38 -!- FireFly has quit (Read error: 110 (Connection timed out)). 20:56:47 HiYo 20:57:00 ehird, that is a shitty way to specify it 20:57:07 the patent is too general; there was prior art; it shouldn't have been granted; software patents are abhorrent; patents are abhorrent; and the judge should have invalidated the patent 20:57:11 no one sane would do it 20:57:15 so it's a shitty result, but it still amuses me 20:57:31 AnMaster: there's a difference beyond representation of the same data I think, I forget what though 20:57:36 anyway 20:57:39 that was just from memory 20:57:40 I might be wrong 20:57:52 anyway yeah it was wrong but yeah it amuses me 20:58:23 ehird, will they pay for using the patent do you think? 20:58:28 or will they change format? 20:58:35 Neither. 20:58:40 oh? 20:58:47 ehird, they will appeal again? 20:59:21 -!- FireFly has joined. 20:59:21 They'll take the prosecution into a ditch at midnight, stab them repeatedly, cut their eyes out, slit their throat, rape them until they're unconscious, and tell them to drop it or they'll kill them. So the prosecution drops it, and Microsoft kills them anyway. 20:59:43 heh 20:59:54 well yes similar maybe. but with suits 21:00:21 Nah, out-of-court. 21:00:27 ah 21:00:27 Microsoft is a psycopath. 21:00:31 *psychopath 21:00:48 hah 21:00:49 If that fails they'll just force the price down to peanuts. 21:01:10 ehird, I almost hope the other company will refuses such things 21:01:13 [["we have been preparing for this possibility since the District Court issued its injunction in August 2009 and have put the wheels in motion to remove this little-used feature from these products. Therefore, we expect to have copies of Microsoft Word 2007 and Office 2007, with this feature removed, available for U.S. sale and distribution by the injunction date."]] 21:01:15 Little-used? 21:01:18 Microsoft you are full of shit. 21:01:22 AnMaster: then they will die. 21:01:26 and microsoft will go ahead 21:01:39 ehird, what about that person who owns it 21:01:45 might be harder then 21:01:50 It's a company. 21:01:59 -!- osaunders has quit ("Bye"). 21:02:02 ehird, they could move it to the inventor in question? 21:02:03 no? 21:02:10 The patent is granted to the company. 21:02:11 well inventor within quotes here 21:02:21 ehird, what happens if the company dies? 21:02:28 or goes bankrupt rather 21:02:29 What happens if the inventor dies? 21:02:32 I suppose the patent expires. 21:02:38 ehird, hm 21:02:47 Patents are shit anyway. 21:02:52 agreed 21:03:01 but it would be funny to use it to take down microsoft 21:03:24 You can't really defeat such a large corporation in today's corporatist society. 21:03:30 hm 21:03:39 ehird, another large company could? 21:03:42 or a group of them 21:03:50 That would be... bloody. 21:03:53 say, IBM, HP, Dell, Intel combined 21:04:05 ehird, and yes it would 21:04:07 That would be suicidal for all those companies. 21:04:15 -!- adam_d has quit (Read error: 110 (Connection timed out)). 21:04:19 ehird, throw in maybe 3-4 more large companies? 21:04:22 Intel relies on Windows to make moneey. 21:04:25 *money 21:04:29 So do Dell and HP. 21:04:39 IBM would be damaged, but probably not killed. 21:04:41 ehird, what if microsoft *did* go down. what would happen instead 21:04:47 apple? 21:04:58 I don't think society would ever let that happen. 21:05:07 ehird, well suppose it *does*. 21:05:11 this is a thought experiement 21:05:14 what would happen 21:05:25 Probably Apple and Ubuntu would launch the biggest marketing campaigns they possibly could because fuck it, they have the rest of eternity to profit from the results. 21:05:38 ehird, hah 21:06:16 ehird, still, I suppose what could happen would be for MS to loose market share over a extended period of time 21:06:27 until it is less than 40 % or so 21:06:35 That would just be Microsoft fading. 21:06:39 ehird, yah 21:06:41 -!- adam_d_ has quit (Read error: 110 (Connection timed out)). 21:06:42 That is already happening at a sub-glacial pace. 21:06:48 well yes 21:06:48 The outcome is boring and predictable. 21:06:54 But Microsoft dying in one go? 21:06:55 ehird, and what is the outcome? 21:06:58 The world collapses. No exaggeration. 21:07:03 that apple and linux replaces them? 21:07:05 Every-fucking-thing in the world relies on Windows. 21:07:14 Society would probably collapse until it's resolved. 21:07:17 finally the year of the linux desktop? 21:07:19 AnMaster: Or a new competitor. 21:07:38 (which has been predicted for so long) 21:07:54 I bet some new competitor will emerge, probably based on Linux or something, but replacing X11 and all that, and with a Windows-style frontend. 21:07:59 Drive letters and all that. 21:08:07 drive letters? 21:08:10 * AnMaster pukes 21:08:16 Linux being chosen only because it's a base that's stable and easy to build upon. 21:08:22 well yes 21:08:26 AnMaster: The masses require familiarity. 21:08:51 ehird, I also think apple would grow by a lot. Not taking a majority but at least 10-20% more or so 21:09:17 I dunno man, most people won't pay that much for a computer. 21:09:18 ehird, also windows only needs one drive letter: c: 21:09:24 AnMaster: CD-ROMs 21:09:25 you can mount other stuff in directories 21:09:27 Cameras 21:09:30 etc 21:09:35 ehird, sure you can't mount those in directories ? 21:09:40 I don't think so. 21:09:44 AnMaster: The public knows filesystems as purely physical. 21:09:44 hm okay 21:09:48 Folders and files are literarl. 21:09:54 *files are literal 21:09:58 They don't even use shortcuts, themself. 21:10:01 *themselves 21:10:04 ehird, well on macs they show up on the desktop, no? 21:10:07 Have you ever seen a Windows user create a shortcut? 21:10:17 AnMaster: People are confused by Macs. 21:10:22 They sit at one and have no idea how to do anything. 21:10:22 ehird, yes. My dad. created one for the floppy way way back 21:10:24 I'm not joking. 21:10:32 AnMaster: Okay, but you get my point. 21:10:38 ehird, he isn't a computer literate really. He knows two programs: word and SPSS 21:10:44 the latter is some statistical thingy 21:10:50 oh and eudora (lol) 21:10:55 forgot eudora 21:10:57 he still uses it 21:11:06 "A drive is a thing, either the computer (C: to you and I), a camera, or a CD-ROM." 21:11:30 * AnMaster twitches at c: being the computer 21:11:31 "A thing contains files, which are like letters or photos. You can put files into folders, which are like folders." 21:11:55 -!- zzo38 has joined. 21:13:23 hi zzo38 21:13:27 Is this a proper way to write a C code? It seems to work (is it portable?). struct _test_sizes { void*short_size[sizeof(short)==2?1:-5]; void*int_size[sizeof(int)>2?1:-5]; void*long_size[sizeof(long)==4?1:-5]; } 21:13:40 Yes, that is portable and valid. 21:13:41 zzo38, to begin with I would use more newlines 21:13:48 AnMaster: stfu 21:13:48 but yes it looks portable and valid 21:13:54 he's zzo38, he can code however he wants 21:13:57 wait a sec, sizeof test in there? 21:14:02 There is actual newlines in the actual code. But I pasted it here without newlines 21:14:19 zzo38: Any reason for the -5s? 21:14:29 pikhq, the -5 would be invalid code 21:14:29 Oh, 21:14:33 zzo38: that's invalid 21:14:41 yes it should be invalid IMO 21:14:41 you can't have foo[-n] 21:14:46 arrays must be of positive length 21:14:51 and so, your entire code is invalid 21:15:03 Array declarations must be have naturals. 21:15:11 and what pikhq said 21:15:14 oh, I think what he's trying to do is make it fail to compile if those sizes don't match 21:15:14 ... English is hard today, apparently. 21:15:20 zzo38: in which case, I'd suggest doing 21:15:29 pikhq, unless it is in a function and C99 21:15:30 #if sizeof(long)!=4||sizeof(blah)!=blah 21:15:31 pikhq, VLAs 21:15:34 #error DING DONG 21:15:35 #endif 21:15:40 ehird, you can't use sizeof() in #if iirc? 21:15:45 You can't use sizeof in preprocessor 21:15:48 AnMaster: I didn't say they must be constant. 21:15:51 ugh 21:16:00 zzo38: I see your intent 21:16:11 zzo38, you could use gnu autoconf 21:16:18 AnMaster: NO 21:16:22 stop destroying zzo38's artistry :P 21:16:23 Of course, struct _test_sizes is not used anywhere else in the program. It is defined and then ignored 21:16:28 zzo38, also relying on those sizes for short int and long in a program is damn stupid 21:16:38 zzo38: so, we need a constant expression that is valid if a sizeof is correct, and invalid if it is incorrect 21:16:43 but, as a whole, is correct 21:16:43 zzo38, for example I have 4 byte int and 8 byte long 21:16:51 The reason I did it this way is because sizeof can't be used in preprocessor 21:17:16 zzo38: if it works then use it, who cares about standards compliance for a lil hack :P 21:17:26 ehird, I was joking about autoconf 21:17:26 duh 21:17:31 zzo38: Might I suggest testing against the macros in limits.h? 21:17:32 I think this is standard compliant 21:17:38 AnMaster: i know that 21:17:42 but the other ones, still 21:17:57 pikhq, very good idea 21:18:06 ehird, see pikhq's suggestion 21:18:15 Actually, long is used only by GLK, so I put #ifdef UI_GLK so that the long_size element won't be defined if UI_GLK is not set 21:18:55 zzo38, no reason to break it if size varies. define some types like myuint64 or whatever 21:18:59 for each size 21:19:06 unless you use C99, then use stdint.h 21:19:10 If it isn't standard compliant, please tell me why it isn't standard compliant. What I read in the book, is that you can use sizeof in constants and that this can use constant 21:19:14 #if USHRT_MIN != 1<<(2*CHAR_BIT) - 1 21:19:16 #error DINGDONG 21:19:18 #endif 21:19:25 pikhq, doesn't that assume two-complement? 21:19:30 pikhq, what if we have sign bit instead? 21:19:32 -!- jpc has quit (Read error: 104 (Connection reset by peer)). 21:19:32 AnMaster: ... Yes. 21:19:39 ... Actually, no. 21:19:41 -!- jpc has joined. 21:19:48 USHRT_MIN is the unsigned short type. 21:19:51 c requires 2-complement doesn't it 21:20:00 ehird: No. 21:20:00 ehird, C doesn't iirc 21:20:06 meh 21:20:09 pikhq, it wouldn't break with one complement I think. But what about sign bit 21:20:18 oh ushort 21:20:19 hm 21:20:31 pikhq, also that #error will give a syntax error 21:20:33 :D 21:20:37 XD 21:20:42 pikhq, you want #error "DINGDONG" 21:20:47 Yes. 21:21:21 The only reason I care that sizeof(short)==2 is so that */fwrite(rstack,sizeof(cell),0x100,fp);/* will be compatibility with all computers. However, I have to check endianness too. Possibly I can do something I have seen in somewhere else, use */if(elvis!=0xDEAD)/* for endianness check of the file 21:21:57 zzo38, err wait why do you need that sizeof(short) == 2 for that fwrite call? 21:22:11 Because otherwise the file won't be readable on another computer 21:22:32 idea: system independent stdint.h dropin for C89/C90 compilers 21:22:34 you could write sizeof(short) inn the file 21:22:38 so that it can read like that 21:22:40 basically a huge mess of ifs and what not 21:22:40 but meh 21:22:59 I have #define cell unsigned short 21:23:05 In case you didn't know what "cell" was 21:23:17 zzo38, anything wrong with typedef? Just wondering 21:23:23 And *this* is why UNIX tends to serialise things as text. :P 21:23:26 No, nothing wrong with typedef 21:23:35 and what pikhq said 21:23:51 zzo38, if you use C99 use stdint.h 21:23:55 For all structures other than struct _test_sizes I used typedef struct (name) { } (name) 21:23:58 otherwise try to write some logic to find it 21:24:16 zzo38, thing is. that code is rather unportable. the case of short will probably work 21:24:28 but anything above that you can't depend on 21:24:32 zzo38: he meant for typedef unsigned short cell; 21:24:34 as opposed to #define 21:24:35 especially not long 21:24:42 ehird, yep 21:24:47 no big deal though 21:24:59 in fact cpp is probably faster than introducing a type alias to the c compiler 21:25:08 ehird, just find typedef cleaner, since for one thing that shows the typedefed type in gdb 21:25:15 which IMO makes debugging easier 21:25:16 zzo is probably above debuggers :P 21:25:17 -!- MigoMipo has joined. 21:25:22 ehird, good point 21:25:30 What you would do, is if it makes a negative array error when you try to compile it, you change the #define cell to make it work, and then try to compile it again 21:25:50 heh, fun 21:25:58 zzo38: or even just pass -Dcell=... to the compiler 21:26:03 well, that would require that you do 21:26:09 #ifndef cell 21:26:09 #ifndef cell 21:26:09 #define cell unsigned short 21:26:09 #endif 21:26:10 yeah 21:26:27 autoconf is dead; -D= is the new configuration system! xD 21:26:36 ehird, does compilers for cell processors define cell I wonder 21:26:41 lol 21:26:46 well it should be __cell__ or __cell or such 21:26:48 but who knows 21:26:56 Yes, I guess I should do #ifndef cell so that you can change it 21:26:59 "and what if I had a computer named i?@ 21:27:02 *i?" 21:27:05 "that did #define i 1?" 21:27:08 "WHAT THEN, BITCHES?" 21:27:08 I think probably compilers for cell processors might define CELL but not cell 21:27:17 ehird, syntax error probably 21:27:20 zzo38: old macintosh compilers did #define macintosh, for some odd reason 21:27:31 AnMaster: ANY CODE NAMING A VARIABLE i IS UNPORTABLE 21:27:49 ehird, :) 21:28:08 ehird, 21:28:10 $ echo | gcc -dM -E - | grep -v '#define __' 21:28:10 #define _FORTIFY_SOURCE 2 21:28:10 #define unix 1 21:28:10 #define linux 1 21:28:10 #define _LP64 1 21:28:12 debian-installer is nice 21:28:20 well, for desktops it's too involved; for servers, though, it's smoooth 21:28:24 ehird, at least you can't name a variable unix or linux! 21:28:25 specifically the graphical interface 21:28:28 AnMaster: ha 21:28:36 there should be a #define NO_SHITTY_DEFINES 21:28:42 which stops definitions like that 21:28:48 ehird, -ansi? 21:28:55 nah 21:28:58 ehird, -ansi removes them 21:28:59 just fyi 21:29:00 the logic would be simple 21:29:03 any variable all in lowercase 21:29:08 and not preceded by _ 21:29:09 ehird, so does -std=c99 21:29:10 is turned into 21:29:13 _SHITTY_DEFINE_(name) 21:29:25 in fact it'd probably have to be a cpp command 21:29:27 #NO_SHITTY_DEFINES 21:29:28 ehird, augh 21:29:40 ehird, #pragma no_shitty_defines 21:29:41 rather 21:29:47 INSUFFICIENTLY UPPERCASE 21:29:58 ehird, pragmas are generally lower case though 21:30:01 not my fault 21:30:06 INSUFFICIENTLY UPPERCASE 21:30:31 ehird, why don't we do #DEFINE then 21:30:48 (apart from that that is probably a syntax error) 21:31:31 #YEEAAAAAAAAAAAAAAAAAAAAAAAAAAAH 21:31:55 #pragma no-really-no-fucking-shitty-defines 21:32:15 what about adding functions in the pre-processor 21:32:31 while we are at it 21:32:34 making it more useful 21:32:49 like the author of the synthesis OS suggested 21:33:45 Why not just replace the damned thing? 21:33:54 * ehird tries to figure out whether Stephen Fry will live to complete QI 21:34:01 "To my surprise, I found that there are some things that were distinctly easier to do using Synthesis assembler than using C. In many of these, the powerful macro processor played an important role, and I believe that the C language could be usefully improved with this macro processor. One example is the procedure that interprets receiver status code bits in the driver for the LANCE Ethernet controlle 21:34:01 r chip. Interpreting these bits is a little tricky because some of the error conditions are valid only when present in conjunction with certain other conditions. One could always use a deeply-nested if-then-else structure to separate out the cases. It would work and also be quite readable and maintainable. But a jump-table implementation is faster. Constructing this table is difficult and error-prone. 21:34:02 So we use macros to do it. The idea is to define a macro that evaluates the jump-address corresponding to a constant status-value passed as its argument. This macro is defined using preprocessor "#if" statements to evaluate the complex conditionals, which is just as readable and maintainable as regular if statements. The jump-table is then constructed by passing this macro to a counting macro which r 21:34:04 we're on the seventh letter, G, and it's been going for 75 months 21:34:09 epeatedly invokes it, passing it 0, 1, 2, ... and so on, up to the largest status register value (128)." 21:34:11 21:34:11 = 10.71 months per letter 21:34:14 ehird, ^ 21:34:21 and pikhq ^ 21:34:38 so, with 19 letters left 21:34:51 it will take 203 and a half months for qi to complete 21:35:02 which is a little over 17 years 21:35:13 ehird, who is that person and what is QI? 21:35:22 -!- FireyFly has joined. 21:35:23 When I did: echo | gcc -dM -E - | grep -v '#define __' 21:35:23 so, assuming stephen fry lives until at least 69 and doesn't find anything better to do in the interim, we're okay 21:35:36 -!- FireFly has quit (Read error: 110 (Connection timed out)). 21:35:45 zzo38, yes? 21:35:49 I got: _WIN32 _stdcall _cdecl _fastcall _X86_ WIN32 WINNT i386 _INTEGRAL_MAX_BITS 21:35:50 AnMaster: Stephen Fry is a British national treasure, hilarious, and the host of QI. 21:36:02 britain's favourite homo 21:36:02 zzo38, well those with a single _ in front is no issue 21:36:07 that leaves 21:36:11 He's on TV. He did some stuff with Hugh Laurie of House fame in the past few decades. But mostly he's hilarious. 21:36:12 WIN32 WINNT i386 21:36:14 as bad ones 21:36:16 Pthing: not saying much 21:36:30 there's a lot of competition 21:36:38 AnMaster: QI is a comedy loosely disguised as a quiz show. 21:36:43 ah 21:36:55 ehird, and where does the getting to letter G and such come into it 21:37:11 The basic premises being he asks a question, someone (usually Alan Davies) gives the obvious answer, sirens drone, he waffles on for a few minutes about the correct answer, and the episode ends with most players on negative points. 21:37:15 *premise 21:37:24 AnMaster: one series = topics starting with that letter in the alphabet 21:37:28 ah 21:38:03 here, wikipedia sums it up in more words, but more eloquently, than I can and I should have just copy-pasted this to start with: 21:38:10 [[Most of the questions are extremely obscure, making it unlikely that the correct answer will be given. To compensate, points are awarded not only for right answers, but also for interesting ones, regardless of whether they are right or even relate to the original question. Conversely, points are deducted from a panellist who gives, "answers which are not only wrong, but pathetically obvious",[6] typically answers that are generally believed to be true but 21:38:10 not.]] 21:38:45 ehird, so that will take 'Q'-'G' number of episodes? 21:39:02 AnMaster: whut 21:39:12 ehird, if it was one letter per episode? 21:39:15 or what did you mean 21:39:18 one letter per series 21:39:20 oh 21:39:23 (season, whatever your country calls it) 21:39:24 how long is a series? 21:39:40 ehird, season % Swedish spelling 21:39:44 http://en.wikipedia.org/wiki/List_of_QI_episodes#Series 21:39:54 I guess I should work out the average length of a series and go from there 21:40:11 rather than just time/# of seasons 21:40:56 ehird, it seems to vary 21:41:16 first one three months, second one two months, third one three months, fourth one three months, fifth one three months, sixth one four months 21:41:21 and seventh one four monthsh 21:42:02 so on average, 3.14 (!!) months per season 21:42:06 ehird, there was one series per year to begin with 21:42:12 then later two? 21:42:21 oh, well spotted 21:42:31 "QI is a 26-year-long project" says wikipedia anyway 21:42:34 -!- augur_ has changed nick to augur. 21:42:38 okay 21:43:01 so fry should be 72 when it's finished 21:43:12 some chance of him dying, but not too great 21:43:18 large chance of him getting bored and doing sosmething else 21:43:42 "Everything, Etc." 21:43:44 hah 21:44:11 "Fingers and Fumbs" <-- that one was quite nice too 21:44:18 ehird, is it good? 21:44:19 episode 77: "Ganimals" 21:44:21 the series 21:44:22 AnMaster: yes 21:44:38 "Ganimals"... that's stretching it a bit I think.. 21:45:08 Presumably, animals starting with G. 21:45:13 "A Galimaufrey of Gingambobs" 21:45:18 can you explain that one 21:45:21 the title I mean 21:45:24 it has yet to be aired 21:45:32 -!- zzo38 has left (?). 21:45:41 No idea. 21:45:59 I have heard thingambobs. 21:46:02 iirc you said it 21:46:12 but what could Galimaufrey be a typo of 21:46:29 * ehird wonders whether his unix realname should be ehird or Elliott Hird 21:46:33 AnMaster: http://www.google.com/search?hl=en&safe=off&client=safari&rls=en&ei=Ez4xS7PxOsui4QbGndGqCA&sa=X&oi=spell&resnum=0&ct=result&cd=1&ved=0CA4QBSgA&q=gallimaufry&spell=1 21:46:35 galimaufrey (Grose 1811 Dictionary) 21:46:35 galimaufrey 21:46:35 A hodgepodge made up of the remnants and scraps of the larder. 21:46:38 heh 21:46:47 "A hotchpotch, jumble or confused medley." 21:46:54 if my realname is ehird, then emails get sound out as ehird 21:47:07 ehird, what? 21:47:07 i guess it depends how much I identify with ehird vs Elliott Hird 21:47:13 AnMaster: unix real name field 21:47:17 ah 21:47:19 *get sent out 21:47:21 aha 21:47:29 From: realname 21:47:31 ehird, well the sent thing explains a LOT 21:47:32 :P 21:47:33 is the unix mail system 21:47:39 AnMaster: wat 21:47:43 ehird, the sound be seriously confused me 21:47:47 s/be/bit/ 21:47:47 right :P 21:47:56 not that I manage very well either 21:48:19 i guess i identify as Elliott Hird if you ask me what my name is... 21:48:36 but on the other hand, I'd say "I'm ehird" on IRC or whatever if for some reason someone couldn't see my nick 21:48:40 (even if they knew my real name too) 21:49:51 * AnMaster changes format string 21:49:57 ehird, now I can't see your nick ;P 21:50:00 (temporarily 21:50:01 ) 21:50:13 I just see <> for everyone, well I see myself due to different colour 21:50:19 I want a game where you get lines from an irc channel and have to identify who said them 21:50:28 ehird, I could manage zzo :) 21:50:36 I bet for recent chat in here (say 2008 onwards) I could get >70% accuracy 21:52:16 try this one 21:52:29 did i say 100% accuracy 21:52:30 <########> ehird, now I can't see your nick ;P 21:52:36 ooh ooh 21:52:37 I guess 21:52:39 lament 21:52:47 lament said "<########> ehird, now I can't see your nick ;P" 22:01:55 any English speakers: what is the past tense of seek? 22:02:20 Sought. 22:03:34 pikhq, ah 22:03:41 pikhq, seeked sounded so wrong 22:03:56 Isn't English wonderful? 22:04:09 pikhq, aye it is 22:07:02 Anyone use Debian sid? 22:10:08 pikhq? 22:10:10 Or used, even. 22:10:25 I do, but I'm not very much here at the moment. 22:10:58 fizzie: How likely is installing sid directly via netinstall from the http://www.debian.org/devel/debian-installer/ page to work? 22:11:11 ehird: Nah; when I used Debian for my desktop, I'd use testing with a few packages from sid. 22:11:21 fizzie: And lastly, are all the mirrors equally up-to-date for sid, or just the *.debian.org mirrors, or just a few of them, or just the US one? 22:12:31 Weird spam: "50% of on luxary sex farm" 22:12:36 yes the typo was there 22:12:55 and already deleted 22:15:03 Hrm, well; I guess it's pretty likely to work, though I've usually just installed testing (probably etch on this box) with the devel/debian-installer version, then changed sources.list and aptitude-updated to sid. 22:16:05 As for mirrors, I've used ftp.fi.debian.org exclusively, but never worried about up-to-dateness; I would guess it is quick to refresh, though. 22:16:29 Do you think mirrorservice.org in the UK will be up to date as the official UK mirror? 22:18:23 "Just because a site is secondary doesn't necessarily mean it'll be any slower or less up to date than a primary site." Notably, they do not say that it will *not* be that, so... 22:18:58 fizzie, aren't mirrors supposed to sync on a specific schedule? 22:19:02 the gentoo ones are 22:19:27 as in, every half hour such that the minutes modulo 30 is between 0 and 5 22:19:49 (that means between whole our and 5 minutes past and half hour and half hour + 5 minutes) 22:29:36 AnMaster: I'm sure there's some sort of guidelines for the primary mirrors (that have ftp..debian.org names), but the list has a bazillion "secondary mirrors" for which the requirements might be less strict. 22:29:48 ah 22:30:22 The mirror list says for primary mirrors just "They are all automatically updated whenever there are updates to the Debian archive." 22:31:06 And the mirror submission form has a "frequency of mirroring" field that has the options "push-triggered", "twice a day", "daily", "less often", but I don't see that information actually listed in the list. 22:31:19 hm 22:31:32 fizzie, push-triggered would be the fastest ones indeed 22:46:31 -!- MigoMipo has quit ("Quitter!"). 22:47:19 * ehird ponders an FRP OS 22:49:11 -!- adam_d__ has changed nick to adam_d. 22:50:36 It would be... interesting. 23:06:35 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 23:07:59 AnMaster: are erlang bit pattern things two-way? 23:08:07 i.e. say you have 23:08:26 <> 23:08:39 can you do somefunc(that, X=foo, Y=bar) 23:08:43 and get some binary data back? 23:09:10 or is it simply <> is the binary data when used as an expression? 23:10:12 ehird: I'm pretty sure you can pattern-match them, yes. 23:10:22 That's the whole point. 23:10:28 I mean can you produce binary through them? 23:10:43 I thought so. 23:11:26 1> <<1:1>>. 23:11:26 <<1:1>> 23:11:28 Jury's out 23:11:33 How do you print in Erlang :P 23:12:27 io:fwrite( foo ) 23:13:34 3> io:fwrite(<<97:8>>). 23:13:34 aok 23:13:39 I guess everything's a-OK! 23:14:05 5> X=3, io:fwrite(<>). 23:14:06 ^Cok 23:14:07 Tee hee cock 23:14:40 So, yes, it works that way. 23:15:43 But do you have to write it out twice or can you store it so it can somehow be used as a pattern matcher AND an expression? 23:15:46 Probably the former 23:15:47 -!- FireyFly has quit (Read error: 110 (Connection timed out)). 23:15:53 Not too much of a big deal, I guess: 23:16:33 parse(<>) -> {vars}. 23:16:48 deparse({vars}) -> <>. 23:16:51 Still, it would be nice. 23:18:14 back 23:18:32 AnMaster: are erlang bit pattern things two-way? <-- you can use bit patterns both to construct and to match 23:18:35 if that is what you mean 23:18:41 AnMaster: Yes. 23:18:42 One question though. 23:18:53 -!- olsner has quit (Read error: 110 (Connection timed out)). 23:19:02 If I have some binary format, and want parse(binary) -> {vars} 23:19:06 and deparse({vars}) -> binary 23:19:13 do I really have to write out the binary syntax thing <<>> twice? 23:19:49 I think so. :/ 23:20:06 ehird, hm... no you can use a macro. But I believe the left side of = vs right side of = is a big distiction 23:20:25 ehird, macros are relatively clean in erlang 23:20:33 for one thing they have a separate namespace 23:20:44 nothing will be macro expanded without a ? in front 23:20:49 like ?MYMACRO 23:21:26 Okay, gimme an example macro definition then? 23:25:12 ehird, sec 23:25:40 -define(REGISTER_NAME, {global, ?SERVER}). 23:26:26 does that define SERVER or REGISTER_NAME? 23:26:43 REGISTER_NAME. 23:26:56 is the global thing part of the expansion? 23:27:23 REGISTER_NAME evaluates to {global, ?SERVER}, yes... 23:28:32 well it could be like an option whether to define it as global or local or something 23:28:33 I don't know 23:28:57 -!- FireFly has joined. 23:29:24 1> -define(PROTOCOL, <>). 23:29:25 * 1: variable 'PROTOCOL' is unbound 23:29:34 Yes, thus why you asked the question. And it was answered... 23:30:17 * pikhq notes that the prompt seems to dislike statements beginning with a - 23:30:27 pikhq: I asked the question but the answer only asked more 23:30:46 I could very well see -define(FOO, {global, bar}) meaning "define FOO as a macro in the global scope with expansion bar" 23:30:49 Fair 'nough. 23:30:57 Pity that it doesn't. 23:31:07 That'd imply a much more flexible macro system. 23:31:16 Macros in Erlang have file scope. 23:31:23 x_x 23:32:04 And that's just "define FOO as a macro with expansion {global, bar}" 23:32:19 <<...>> is called a bitstring, isn't it 23:32:35 Yes. 23:32:50 hmm 23:32:54 is there an operator to concatenate them 23:33:05 like, you can do <<97:8>> ++ <<98:8>> and get ab 23:33:17 Probably, but I'm not sure what it is. 23:33:22 ... It might actually be ++. 23:33:27 or f(<<97:8>> ++ <<98:8>>) == f(<<97:8, 98:8>>) 23:33:42 2> <<97:8>> ++ <<98:8>>. 23:33:42 ** exception error: bad argument 23:33:42 in operator ++/2 23:33:42 called as <<"a">> ++ <<"b">> 23:34:50 * ehird wonders what the counterpart to header/prelude at the end of a format is 23:34:54 epilogue? 23:37:15 -!- jpc has quit (Read error: 60 (Operation timed out)). 23:39:00 Postlude. 23:39:02 Has to be! 23:40:33 Wait, such a thing actually exists? http://en.wiktionary.org/wiki/postlude says so. Oh well, I guess it was too obvious a construction. 23:55:26 well it could be like an option whether to define it as global or local or something <-- it was passed as parameters in an OTP behaviour 23:55:34 and it was globally registered 23:55:45 the otp gen_server I mean 23:56:12 brb 23:56:36 pikhq, Gregor: either of you there 23:56:42 emergency 23:56:45 No. 23:57:48 pikhq, as you may know, Mike Riley (author of rc/funge) is planning to commit suicide. I wonder if you, as living in US, could contact the relevant samaritans or whatever. 23:57:59 we know he lives in Las Vegas, Nevada 23:58:11 and that he is probably 39 or a bit more 23:58:44 pikhq, are you saying no to doing that? 23:59:05 I'm doubting the feasibility of such a thing... 23:59:10 Las Vegas is freaking huge. 23:59:20 pikhq, problem is, they only seem to have phone numbers, not emails, and it seems I'm unable to call outside Sweden on my phone 23:59:31 pikhq, well we know his name too 23:59:44 there is a high probability it is probably his real name 23:59:50 Additionally, I don't have much in the way of ability to call long distance. 23:59:58 pikhq, we also know he lived in Zurich some years ago