←2009-12-21 2009-12-22 2009-12-23→ ↑2009 ↑all
00:03:07 -!- zzo38 has quit ("----------------------------------------------------------------------------------------------------------------------------").
00:12:52 <ehird> You know, I could really do with 2560x1440 pixels of screen real estate.
00:41:53 -!- coppro has joined.
00:44:34 <ehird> http://nodejs.org/ this is cool beans
01:03:00 <coppro> /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 <snakbar> do you know where i can find sources of bacical linux commands like grep, cat, ls and stuff
02:05:14 <soupdragon> yes
02:06:04 <soupdragon> http://www.gnu.org/software/
02:06:36 <soupdragon> http://savannah.gnu.org/search/?words=grep&type_of_search=soft&Search=Search&exact=1#options
02:06:51 <soupdragon> http://ftp.gnu.org/gnu/grep/
02:14:48 <ehird> :( gnu tools r teh sux
02:14:59 <ehird> snakbar: look at the bsd implementations or sth
02:15:11 <soupdragon> GNU > U
02:15:54 <snakbar> thank you very much
02:19:23 -!- FireFly has quit ("Leaving").
02:19:29 <ehird> 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 <snakbar> what does it mean, underpinning?
03:05:42 <ehird> same as "backbone" if you know that idiom
03:07:50 -!- immibis has joined.
03:08:10 <snakbar> nope :p
03:10:01 <ehird> snakbar: basically... the underlying concepts
03:10:11 <ehird> the thing that makes it all work in the way it does, the unifying idea
03:10:18 <snakbar> okay
03:10:38 <snakbar> so you're saying that linux is not an Unix system?
03:11:07 <soupdragon> snakbar GNU is not unix
03:11:46 <snakbar> ah yes ^^ that's right
03:12:45 <soupdragon> :)
03:13:03 <snakbar> shit, i'm going to try bsd
03:13:23 <soupdragon> BSDs something different
03:13:27 <snakbar> wait
03:13:31 <snakbar> it's not unix too ?
03:13:32 <snakbar> xD
03:13:34 <soupdragon> :P
03:13:48 <ehird> snakbar: when i say unix i mean the unix philosophy
03:14:05 <ehird> tools that do only one task, that are the same from a terminal or piped to another process, etc
03:32:07 <pikhq> BSD is, in fact, UNIX.
03:33:44 <pikhq> 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 <ehird> BIU
03:33:48 <ehird> not very catchy acronym
03:34:18 <pikhq> But accurate.
03:34:45 <ehird> bsd is eunuchs
03:38:56 <pikhq> 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 <ehird> Ihttp://www.loper-os.org/?p=55
04:44:28 <ehird> http://www.loper-os.org/?p=55
04:44:30 <ehird> 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 <asiekierka> fizzie?
12:20:34 <fizzie> Haven't seen any fizzies around.
12:20:41 -!- MizardX has quit ("Dead pixels in the sky.").
12:21:38 <asiekierka> lol
12:21:43 <asiekierka> is it you that made fungot?
12:21:44 <fungot> asiekierka: fnord anyway. :p what a great language for fnord.
12:22:18 <fizzie> Yes.
12:23:05 <asiekierka> gah
12:23:13 <asiekierka> any sources you recommend on lerning Befunge or any other esolang
12:23:17 <asiekierka> cuz i want to make a minecraft server..
12:23:20 <asiekierka> ..yeah, in an esolang
12:24:31 <asiekierka> anything you recommend
12:24:58 <asiekierka> (i could code a network extension, dont worry)
12:26:05 <fizzie> 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 <asiekierka> and for Befunge-93
12:26:20 <asiekierka> there's one
12:26:23 <asiekierka> Also
12:26:23 -!- Sgeo has joined.
12:26:27 <asiekierka> what esolang would you recommend
12:26:29 <asiekierka> except befunge
12:26:29 <asiekierka> if any
12:28:42 <fizzie> 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 <asiekierka> heh
12:29:30 <asiekierka> i'll attempt to mod Piet then
12:29:34 <asiekierka> so at least i can have a work of ART
12:29:49 <fizzie> 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 <asiekierka> that's not just you
12:30:13 <asiekierka> xDD
12:31:30 <asiekierka> about the graphical ones
12:31:41 <asiekierka> (not counting BF mods)
12:31:45 <asiekierka> there's Piet, Piet-Q, Deltaplex, Omegaplex...
12:33:34 <fizzie> Mycelium, though I don't think it's an especially elegant one.
12:34:04 <asiekierka> Ow
12:36:25 <asiekierka> I would do it in Piet
12:36:31 <asiekierka> but i'm scared of the network layer
12:40:47 <asiekierka> Is the network layer any easy in Befunge-98?
12:42:31 <fizzie> 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 <fizzie> I guess they're pretty reasonable, as far as those things go.
12:43:01 -!- osaunders has joined.
12:49:47 <asiekierka> Just out of kicks
12:50:06 <asiekierka> 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 <Sgeo> Well, brainfuck can be given server capacities with PSOX
12:53:17 <Sgeo> 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 <AnMaster> fizzie, btw I think I beat you at "crazy things to do with hugin"
13:07:28 <fizzie> I wasn't aware that we had a competition going on.
13:07:32 <AnMaster> fizzie, a photo of an xmas tree composed out of over 40 pictures
13:07:40 <AnMaster> we have now ;P
13:07:53 * AnMaster will upload said tree in a minute
13:09:49 <AnMaster> 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 <fizzie> 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 <fizzie> (Just one, didn't bother taking the full view this time.)
13:12:07 <AnMaster> fizzie, the second is higher res?
13:12:20 <fizzie> The second is directly from the phone with no scalings.
13:12:32 <fizzie> The sort of thing that was the source material for the first.
13:12:45 <AnMaster> fizzie, funny gimp bug:
13:13:34 <AnMaster> "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 <AnMaster> identity conversion!
13:16:24 <AnMaster> fizzie, uploading...
13:16:58 <AnMaster> fizzie, and yes that is quite reduced visibility
13:17:06 <AnMaster> http://omploader.org/vMzIxZQ/xmas_tree_8bit.jpg
13:18:05 <AnMaster> fizzie, not a panorama because there would be way parallax without a panoramic head.
13:18:23 <AnMaster> (I'm considering getting one maybe)
13:18:58 <fizzie> The magical balls of light look nice.
13:23:19 <AnMaster> fizzie, huh?
13:23:38 <AnMaster> fizzie, oh around the electric lamps thingies?
13:23:42 <AnMaster> well yes
13:23:57 <fizzie> Yes. They look like special effects for glowy magic things in a fantasy whatever.
13:24:02 <AnMaster> heh
13:25:04 <AnMaster> 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 <AnMaster> then all the "denoised" pictures were merged into the final HDR image
13:25:56 <AnMaster> fizzie, sadly the reduction to 8 bits removed some fine details from the lamp in the background
13:26:02 <AnMaster> it has a rather nice pattern on it
13:26:45 <fizzie> All that effort for a christmas tree?-)
13:28:13 <AnMaster> hah
13:29:56 <fizzie> I don't think I have anything very photogenic around to play Hugin/panotools tricks with.
13:30:06 <AnMaster> heh
13:30:11 <AnMaster> fizzie, no xmas tree?
13:30:38 <fizzie> Nah, the cat would probably just try to eat it and/or the decorations. It does that to anything new.
13:31:00 <fizzie> The cat would be a good subject for photography experiments, but it doesn't quite understand the "staying still" thing.
13:31:07 <AnMaster> ah
13:31:40 <AnMaster> 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 <AnMaster> for example mine has 12 bits per channel
13:32:28 <fizzie> Yes, I think that's what my camera shoots too.
13:34:18 <fizzie> Hrm, "dcraw -i -v" doesn't say about bit depths; just the image size, filter pattern and some strange multiplier values.
13:34:31 <AnMaster> fizzie, I use ufraw
13:35:12 <AnMaster> 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 <fizzie> 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 <AnMaster> ah
13:35:50 <AnMaster> anyway for editing there are two options basically: cinepaint and krita
13:35:56 <AnMaster> since gimp doesn't do more than 8 bits per channel
13:36:36 <fizzie> Oh, cinepaint's what used to be film-gimp? Didn't know that.
13:37:05 <AnMaster> 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 <AnMaster> so I stuck with krita, which isn't too fun either
13:37:30 <AnMaster> (but which at least has an ubuntu package)
13:38:32 <AnMaster> 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 <AnMaster> (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 <asiekierka> guys
13:41:52 <asiekierka> web servers run on everything these days
13:42:00 <asiekierka> 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 <FireFly> asiekierka, go for it
15:28:28 <asiekierka> does it have IR?
15:28:44 <asiekierka> also if youre serious
15:28:45 <asiekierka> donate one
15:28:52 <FireFly> I don't think so, and no, wasn't serious :P
15:28:59 <FireFly> CPU8 bit, 4 MHz custom
15:29:03 <asiekierka> why not?
15:29:09 <asiekierka> people ran web servers on a PIC
15:29:18 <asiekierka> and an Atari
15:29:19 <asiekierka> and a C64
15:29:24 <asiekierka> the C64 is 4 times slower than this
15:29:31 <asiekierka> yet it reliably runs webservers
15:30:21 <FireFly> 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 <ehird> http://newyork.craigslist.org/mnh/m4w/1520403262.html
16:06:11 -!- FireFly has quit (Read error: 60 (Operation timed out)).
16:08:22 <ehird> aaaaand http://i.imgur.com/hF6mS.jpg
16:10:38 <ehird> "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 <ehird> Hey, Opera.
16:10:48 <ehird> Did... did you just do the right, difficult thing, and become respectable?
16:10:54 <ehird> I, uh... wow.
16:13:50 <ehird> Oh hey, the icon is less horribly ugly now too.
16:17:08 -!- FireFly has joined.
16:17:21 <ehird> FireFly: you're now less ridiculously silly for using opera!
16:17:48 <FireFly> Hm?
16:18:00 <ehird> "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 <ehird> 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 <AnMaster> ehird, any news?
16:34:18 <ehird> AnMaster: no reply—worryingly, but then not everybody spends all day on the computer
16:34:26 <ehird> especially if they're not preparing to kill themselves
16:34:29 <AnMaster> true
16:35:45 -!- ehird has quit.
16:35:57 -!- ehird has joined.
16:41:14 -!- BeholdMyGlory has joined.
16:41:51 <ehird> "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 <ehird> RIP Reddit's Lack of Having Completely, Utterly and Irreversibly Jumped the Shark, 2005—2009
16:45:40 <Asztal> I unsubscribed from /r/atheism a long time ago, problem solved!
16:45:58 <Asztal> For definitions of "solved" close enough to "ignored"
16:46:01 <asiekierka> i am bored guys
16:46:08 <asiekierka> give me something to do
16:46:19 <asiekierka> involvig either esolangs or old computers
16:46:22 <asiekierka> involving*
16:49:17 <ehird> Asztal: Yess, but the cancer, it doth spread.
16:49:36 <ehird> asiekierka: Take over Rc/Funge! Wait, no. Don't do that.
16:50:02 <asiekierka> Why not create Infinitunge
16:50:18 <asiekierka> with an infinite number of dimensions
16:50:26 <asiekierka> actually
16:50:28 <asiekierka> i'll do it right now
16:50:54 <ehird> oklopol has experience with infinite-dimensional things
16:51:03 <asiekierka> wait
16:51:05 <asiekierka> shh, im coding
16:51:23 <ehird> You do not have to listen.
16:52:23 <Asztal> Popping infinite scalars from the stack when you want a vector will be fun.
16:52:47 <ehird> asiekierka: befunge-93 or -98?
16:53:03 <ehird> I'd suggest adapting -93 because the "meat" of the problems you'll face will be in the -93 stuff
16:53:15 <ehird> also, make it 80x24x80x24x80x24x... :-D
16:53:21 <asiekierka> no
16:53:26 <ehird> Whyever not?
16:53:28 <asiekierka> it's infinite in all directions
16:53:29 <asiekierka> I.E.
16:53:35 <ehird> That's boring, asiekierka — because
16:53:38 <asiekierka> InfxInfxInfxInfxInfxInfxInf...
16:53:40 <ehird> that way you don't have to use the dimensions to be TC
16:53:52 <asiekierka> well, whatever
16:53:55 <ehird> If it's 80x24x80x24x..., not only does it respect Befunge heritage,
16:53:55 <asiekierka> i'm done
16:54:03 <ehird> but it means you have to fiddle with the dimensions to get TCness
16:54:16 <asiekierka> well too late
16:54:16 <asiekierka> as i said
16:54:18 <asiekierka> i finished coding it
16:54:23 <asiekierka> it should work on every PC
16:54:29 <asiekierka> i'm worried about RAM requirements though... D:
16:55:17 <ehird> there is no way you coded a working version in that time
16:55:21 <ehird> because there are many subtle issues to address
16:55:34 <asiekierka> yes there is
16:55:39 <asiekierka> imagine a child with undiagnosed ADHD
16:55:41 <asiekierka> on caffeine
16:55:46 <pikhq> 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 <asiekierka> http://asiekierka.boot-land.net/inffunge.exe
16:55:57 <Asztal> there could be an infinite amount of dimensions that you can't actually access
16:55:59 <asiekierka> here you go
16:56:27 <ehird> "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 <ehird> pikhq: it's been steadily increasing since the epoch
16:56:54 <pikhq> True.
16:56:56 <ehird> asiekierka: It should work on every PC running Windows, you mean.
16:57:02 <asiekierka> Yes
16:57:06 <asiekierka> Or Wine on Linux
16:57:06 <ehird> Which is a low percentage of PCs in this channel.
16:57:07 <AnMaster> how do you know if it is ADHD if it is undiagnosed?
16:57:09 <ehird> In conclusion, source of GTFO.
16:57:10 <AnMaster> just curious
16:57:15 <asiekierka> use Wine on Linux
16:57:19 <asiekierka> as i'm not offering source code
16:57:20 <pikhq> asiekierka: Source or GTFO.
16:57:20 <ehird> AnMaster: because people on the internet think they know about things like that
16:57:21 <asiekierka> as i'm evil
16:57:35 <asiekierka> the source code is so advanced
16:57:40 <ehird> "I have asperger's syndrome! Therefore it's ALL YOUR FAULT! I CAN'T HELP BEING A SMARMY RETARD!"
16:57:41 <asiekierka> leaking it would destroy the universe
16:57:48 <ehird> asiekierka: the door is that way →
16:57:51 <asiekierka> I have asperger's syndrome!
16:57:54 <ehird> we are not interested
16:57:55 <AnMaster> ehird, btw you commented on bad picture yesterday. I'm creating a better one. Macro photography rocks
16:57:56 <asiekierka> Therefore it's ALL YOUR FAULT!
16:57:56 <ehird> and no you don't
16:58:00 <asiekierka> I CAN'T HELP BEING A SMARMY RETARD!
16:58:04 <ehird> yes yoou can
16:58:07 <ehird> *you
16:58:10 <asiekierka> you just said i cant
16:58:17 <asiekierka> Okay, i will leak the source code
16:58:18 <asiekierka> geh
16:58:33 <pikhq> I have actual autism, you cock. Don't claim pretend Asperger's syndrome. :P
16:59:07 <asiekierka> http://asiekierka.boot-land.net/inffunge.pas - i think my FTP connection glitched, not sure if it works
16:59:46 <asiekierka> im not reuploading it
16:59:53 <asiekierka> as i made enough space-time distortions doing it once
17:00:05 <asiekierka> one happens per each byte
17:00:17 <pikhq> Pascal must be pretty impressive, to make language implementations in two lines.
17:00:24 <asiekierka> as i said
17:00:29 <asiekierka> i think my FTP connection died for a second
17:00:33 <asiekierka> and the file might be corrupt
17:00:46 <asiekierka> I would reupload it
17:00:50 <asiekierka> but... yeah
17:00:53 <asiekierka> i'm too lazy
17:01:08 <ehird> So can we all agree that asiekierka is an idiot, socially retarded and annoying?
17:01:08 <asiekierka> also spaec-tiem distortionz
17:01:12 <asiekierka> Yes
17:01:24 <asiekierka> OKAY OKAY
17:01:28 <ehird> 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 <asiekierka> I WILL UPLOAD THAT SOURCE CODE
17:01:35 <ehird> but it's probably a retarded prank that asiekierka thinks is funny?
17:01:40 <ehird> And that the door is over there?
17:01:42 <asiekierka> i dont think it's funny
17:02:25 <asiekierka> http://asiekierka.boot-land.net/inffunge.pas
17:02:34 <pikhq> 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 <asiekierka> also
17:03:01 <asiekierka> it was meant to work like this:
17:03:04 <asiekierka> ^ Go up
17:03:06 <asiekierka> < Go left
17:03:08 <asiekierka> > Go right
17:03:10 <asiekierka> v Go down
17:03:13 <asiekierka> (or something)
17:03:23 <asiekierka> h - Increase the number of the dimension operating on
17:03:28 <asiekierka> l - Decrease it
17:03:30 <ehird> 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 <asiekierka> a - Move left in the dimension you're on
17:03:51 <asiekierka> d - Move right in the dimension you're on
17:03:51 <ehird> 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 <ehird> asiekierka: that way you can only work in finite dimensionns
17:04:07 <asiekierka> in 100 years
17:04:10 <asiekierka> everyone will have Aspergers
17:04:11 <ehird> so it's arbitrary dimensions, not infinite
17:04:20 <asiekierka> ehird: Infinite = 65535 on 16-bit platforms
17:04:25 <asiekierka> as you CANT GO MOAR
17:04:34 <pikhq> ehird: Hans Asperger's work described a disorder similar to autism, with a few differing features.
17:05:05 <pikhq> 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 <ehird> 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 <ehird> (Zefram (yes, the nomic Zefram) wrote a fun little thing on this... http://www.fysh.org/~zefram/allism/allism_intro.txt)
17:06:07 <asiekierka> there's asiekierkism, too
17:06:14 <ehird> It still astounds me what a ridiculously bad idea empathy is.
17:06:16 <ehird> Anyhow.
17:06:26 <ehird> http://i.imgur.com/wdcUK.jpg trippy
17:06:27 <pikhq> 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 <pikhq> 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 <asiekierka> yeah
17:07:55 <ehird> pikhq: And uses actual neural properties instead of the Holy Lord of Let's Make This a Disorder, the DSM.
17:07:55 <AnMaster> <ehird> http://i.imgur.com/wdcUK.jpg trippy <-- a pitty it doesn't join up well for the lower picture
17:08:20 <ehird> pikhq: And by that correct definition, the percentage of psychologists worth their salt is less than 10%.
17:08:21 <AnMaster> (it isn't perfect for the upper image, but much better)
17:08:45 <ehird> Psychology is almost entirely based on consensus, not evidence; rubbish, not science.
17:08:48 <ehird> And it's a damn shame.
17:09:11 <pikhq> ehird: Quite.
17:09:15 <Sgeo> That sounds like the same idea as http://isnt.autistics.org/
17:09:22 <ehird> Sgeo: It links to it at the end.
17:09:31 <ehird> But allism has some truth behind the joke.
17:09:52 <ehird> Most of the effects of allism are negative.
17:12:51 <ehird> "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 <asiekierka> i believe there's a world where i'm not an idiot
17:16:38 <ehird> That world is one in which you are not you.
17:17:03 <asiekierka> well, the many-worlds theory I believe
17:17:14 <asiekierka> is that when anything happens at any given microsecond
17:17:21 <ehird> Shut up.
17:17:28 <ehird> You are about to demonstrate your severe physics-related ignorance.
17:17:30 <asiekierka> the universe splits into two: the version where it happened and the version where opposite did
17:17:35 <Sgeo> 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 <asiekierka> by "i believe" i mean "i like and could be useful for games"
17:17:51 <ehird> 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 <AnMaster> 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 <pikhq> Many worlds is the only interpretation that leaves travelling backwards feasible...
17:21:47 <Sgeo> What about something like Nomikov's self consistency princible, or whatever it's called
17:21:52 <ehird> 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 <ehird> Which is, of course, dualism.
17:22:12 <pikhq> (travelling forward in time is, of course, merely a matter of relativity)
17:22:17 <asiekierka> I wonder if it'll be possible to travel to the other worlds if many-worlds are true
17:22:21 <ehird> Sgeo becomes scientifically absurd in T-10 seconds
17:22:31 <asiekierka> so i can see myself as not an idiot and destroy the multiverses!
17:22:50 <asiekierka> by paradoxingous
17:23:05 <ehird> Sgeo: the Novikov self-consistency principle does not help at all
17:23:19 <ehird> Sgeo: As per chaos theory, more or less ANYTHING you do back in time will change the future.
17:23:25 <ehird> Thus violating the principle.
17:23:47 <ehird> 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 <asiekierka> what about sending your soul back in time
17:25:01 <asiekierka> is that possible
17:25:20 <ehird> There is no such thing as a soul.
17:25:27 <asiekierka> lies
17:25:32 <ehird> No, truths.
17:25:38 <asiekierka> lies
17:25:50 <asiekierka> fairies exist, too
17:26:26 <ehird> As does Russell's Teapot.
17:26:44 <Asztal> I bet the FSM put it there
17:27:25 <ehird> No, it was the Invisible Pink Unicorn, heathen!
17:27:32 <asiekierka> No, it was ME!
17:27:40 <asiekierka> heretics
17:28:06 <pikhq> ehird: It depends on how you define "soul".
17:28:32 <ehird> soul, n. a word used to signal that the person referring to it as existing is a dualist.
17:28:40 <ehird> dualist: see idiot
17:29:03 <pikhq> "The exact state of everything within your body that affects the nervous system" might be a usable definition of "soul".
17:29:15 <pikhq> Granted, said definition is rarely, if ever, used.
17:29:29 <ehird> Brain + spine is probably enough to count as your "soul"
17:29:49 <pikhq> Mmm, probably.
17:30:05 <asiekierka> brain + quantum stuff
17:30:30 <pikhq> asiekierka: Said quantum stuff that is relevant is entirely in the brain...
17:31:02 <ehird> "quantum stuff"
17:31:08 <ehird> DING DING DING QUANTUM MYSTICIST DETECTED
17:31:16 <ehird> DISPOSAL MECHANISM INITIALISATING
17:31:20 -!- kwertii has joined.
17:31:26 <ehird> *INITIALISING
17:32:12 <asiekierka> no
17:32:14 <pikhq> 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 <asiekierka> INITALISATING
17:32:33 <ehird> Everything relies upon quantum mechanics. :P
17:32:49 <pikhq> Well... True. :P
17:33:50 <pikhq> But anyways...
17:35:00 <pikhq> Kinda meant something like "work in ways only explained by quantum mechanics, not by classical mechanics".
17:36:24 <asiekierka> you know
17:36:42 <asiekierka> you could say that [random word] is quantum mechanics
17:37:19 <pikhq> "x is quantum mechanics" really doesn't mean anywhere near as much as people think it does.
17:37:45 <pikhq> "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 <asiekierka> so, ehird
17:43:39 <asiekierka> you define a soul as a sign that a person is a dualist
17:43:45 <asiekierka> as in an idiot
17:43:55 <ehird> if you think a soul exists you're a dualist, obviously
17:43:55 <asiekierka> what about a soul dualist (they believe more than 1 soul exists in a body which is insane)
17:43:56 <ehird> that's the definition
17:44:03 <asiekierka> is he a dualist dualist
17:44:05 <ehird> dual = 2, not >1
17:44:06 <asiekierka> or an idiot dualist
17:44:12 <ehird> also, he's asiekierka being annoying
17:44:15 <asiekierka> 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 <asiekierka> yes
17:45:14 <asiekierka> i took it from wikipedia
17:45:17 <asiekierka> do not bother googling
17:46:43 <kwertii> 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 <ehird> kwertii: that's not the same thing
17:47:56 <ehird> penrose just hates the idea of an algorithmic brain
17:48:04 <ehird> pikhq was just talking about how neurons physically work
17:48:40 <kwertii> 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 <ehird> Seems like grasping at straws to avoid a deterministic, algorithmic mind.
17:49:23 <kwertii> 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 <kwertii> ehird: if people do have algorithmic minds, then 99.999999999% of them are seriously broken.
17:55:08 <ehird> fallacy
17:55:16 <kwertii> observation
17:55:16 <ehird> minds are algorithmic != minds can be irrational
17:55:24 <ehird> algorithmic does not mean we are bayesian rationalists.
17:55:25 <lament> ##philosophy
17:55:28 <kwertii> I didn't say that it implied a contradiction
17:55:33 <kwertii> just an empirical observation
17:55:43 <ehird> our minds are not broken, they are just adjusted to different things than we might want them to be
17:56:18 <kwertii> ehird: how do the Goedel and Tarski incompleteness theorems fit into your model?
17:57:09 <Sgeo> 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 <ehird> Gödel, Escher, Bach had some stuff about that, positing that sentience arises from Gödel's incompleteness theorem
17:57:26 <ehird> I'm not so sure about that
17:57:28 <asiekierka> lament, do something
17:57:33 <asiekierka> this philosophy talk hurts
17:57:38 <asiekierka> my own bra---oh wait
17:57:43 <asiekierka> that'll encourage them to talk more
17:57:50 <asiekierka> in an attempt to make my brain blow up
17:58:06 <lament> asiekierka: sadly this stuff is mildly on-topic
17:58:09 <kwertii> if anyone would prefer to discuss brainfuck coding, I will yield the floor :p
17:58:20 -!- MigoMipo has joined.
17:58:29 <Sgeo> I'm willing to discuss PSOX (*everyone runs*)
17:58:35 <ehird> lament: if you hate 90% of what goes on in this channel why do you stay :)
17:58:57 <lament> looking for better excuses to ban you all
17:59:18 * Sgeo laments the fact that lament wants to ban us
17:59:49 <asiekierka> ehird: there must be an op here stupid
18:00:33 <kwertii> 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 <Sgeo> Who said that are brains are purely logical?
18:02:59 <kwertii> Sgeo: ehird
18:03:03 <Sgeo> deterministically algorithmic does not imply logical
18:03:26 <kwertii> 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 <anmaster_l> argh my other connection is lagging out
18:04:29 <kwertii> Sgeo: well, my own personal position is that people are mostly irrational :)
18:05:04 <anmaster_l> ehird, see /msg
18:05:25 <ehird> back
18:05:33 <ehird> asiekierka: fizzie is an op stupid
18:05:37 <lament> kwertii: what does rationality have to do with logic
18:05:43 <ehird> Everythingg.
18:05:46 <ehird> *Everything
18:05:47 <asiekierka> ehird: this channel needs more than one op stupid
18:05:53 -!- AnMaster has quit (farmer.freenode.net irc.freenode.net).
18:05:58 <kwertii> lament: euh?
18:05:58 <asiekierka> ehird: thanks to offtopic derailers like thou
18:06:01 <asiekierka> ehird: and mii
18:06:12 <ehird> 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 <lament> kwertii: well what does it?
18:06:40 <lament> kwertii: please define rationality and see for yourself that it's not much.
18:06:55 <ehird> rationality is applied logic
18:07:23 <kwertii> lament: according to commonly used definitions and mores, ehird is correct, rationality is logic applied to some decisionmaking process
18:07:59 <kwertii> 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 <lament> kwertii: what does it mean "to apply logic to a process"?
18:10:11 -!- AnMaster has joined.
18:10:21 <ehird> lament: you're the one who told us to fuck off to ##philosophy
18:10:30 <ehird> why are you dragging us into less and less meaningful and concrete realms?
18:10:55 <anmaster_l> please everyone calm down, mkay?
18:11:14 <anmaster_l> now shake each other hands. Without holding one of those prank buzzers
18:11:26 <pikhq> NO. WE HATE BEING CALM.
18:11:40 <pikhq> ... Prank buzzers?
18:11:47 <anmaster_l> pikhq, yeah
18:11:52 <anmaster_l> I don't know the correct name
18:11:57 <kwertii> 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 <ehird> Okay. I'll use an industry-grade buzzer.
18:11:58 <ehird> pikhq: little electric shock thingy you hold in your hand
18:12:07 <anmaster_l> ehird, no you don't ;P
18:12:17 -!- adam_d_ has joined.
18:12:32 <ehird> kwertii: BUT. WHAT. IS. "LOGIC"
18:12:35 <lament> kwertii: well, ok. You don't need any notions of truth for that. You just need a notion of consistency.
18:12:39 <pikhq> I prefer lethal buzzeers.
18:12:39 <pikhq> ehird: Yes, I know.
18:12:41 <ehird> 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 <kwertii> lament: who said you need a notion of truth? :p
18:13:14 -!- ehird has quit (Client Quit).
18:13:16 <lament> 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 <kwertii> lament: 2 + 2 = 5 is a logically consistent but false statement
18:13:34 <ehird> lament: interestingly enough, I know how to change my username.
18:14:01 <ehird> 2 + 2 = 5 isn't logically consistent given PA :P
18:14:25 <kwertii> 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 <lament> kwertii: sure. but truth value is irrelevant to rationality by your definition.
18:14:53 <kwertii> 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 <kwertii> 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 <lament> 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 <lament> kwertii: on the other hand, bayesian probability gives a very good model of how such a notion could be constructed mathematically
18:17:24 <lament> what's more, there's experimental evidence that shows that bayesian probability is pretty much how actual humans evaluate truth
18:17:41 <kwertii> lament: sure, but you need some a priori stipulation of what data is "true" to train your bayesian model..
18:18:43 <lament> no, you need some a priori stipulation of what data is "likely"
18:19:02 <kwertii> the exact label doesn't matter
18:19:18 <lament> it does if you're going to confuse the notions of likelihood and of truth in the formal logic sense
18:19:29 <kwertii> in an evolutionary sense, we can say the brain trains statistically on survivable behaviors based on the environment
18:19:46 <kwertii> and in a longer timeframe, genes do the same
18:20:09 <lament> kwertii: that's reasonable, and has nothing to do with formal logic whatsoever
18:20:18 <kwertii> 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 <kwertii> 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 <lament> 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 <Slereah> lament : :D
18:29:03 <Slereah> God I hate Haskell
18:29:59 <uorygl> No! You shall not hate Haskell!
18:30:04 <lament> hahaha
18:30:23 * uorygl grabs a cloak and dagger.
18:30:41 <lament> something tells me that pic was made by a haskell fan :)
18:30:43 <Gracenotes> don't tell God about your hatred either. he might smite you.
18:31:03 <uorygl> This is a completely legal cloak and dagger.
18:31:23 <Gracenotes> I just don't get all of the cells, though
18:31:35 <uorygl> 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 <Gracenotes> someone also provided http://imgur.com/P9RnL
18:35:02 -!- AnMaster_ has changed nick to AnMaster.
18:37:18 <anmaster_l> <Gracenotes> someone also provided http://imgur.com/P9RnL <-- hahah
18:38:26 <lament> Gracenotes: nice
18:39:18 -!- ehird has joined.
18:39:53 <Gracenotes> 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 <kwertii> Gracenotes: er.. I think it's a joke :p
18:40:42 <Gracenotes> NEEDS MOAR QUALITY
18:41:01 <ehird> the haskell one where they're all einstein is the superior one
18:41:19 <ehird> the whole joke is that what people hate about haskell is what haskellers love about it
18:41:34 <kwertii> and where is the Lisp column?
18:41:41 <kwertii> zomg
18:41:56 <lament> ehird: it's more funny but it's hardly an unbiased comparison :)
18:42:05 <ehird> http://twitter.com/SarahPalinUSA/status/6823906156 what
18:42:09 <ehird> lament: nor is the other image :P
18:42:28 <ehird> kwertii: lisp is (((((((((((((((((((((((((((((((((((((((((((((((((((((((((( for everyone but lispers; they have a guru meditating
18:42:36 <AnMaster> ehird, fail at spelling too
18:42:38 <ehird> oh, wait
18:42:42 <AnMaster> it is unreadable
18:42:47 <ehird> for haskellers lisp is, uh, something else
18:42:47 <AnMaster> (to me)
18:42:56 <lament> for haskellers lisp would be yet another train wreck
18:43:05 <lament> perhaps the babel tower?
18:43:05 <uorygl> For Haskell people, Lisp is a Rube Goldberg machine.
18:43:11 <AnMaster> lament, what about erlang?
18:43:27 <ehird> 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 <ehird> *change."
18:43:39 <ehird> uorygl: erm no
18:43:48 <ehird> lisp is universally acknowledged as minimalist, well not common lisp okay, but still
18:43:51 <uorygl> 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 <ehird> not a rube goldberg machine
18:44:07 <AnMaster> ehird, I don't get the black box for php fans / haskell
18:44:07 <ehird> Lisp's evaluation semantics are trivial
18:44:12 <uorygl> Okay, it's a Rube Goldberg machine made out of hundreds of copies of a single device. :-P
18:44:17 <ehird> AnMaster: look up black box
18:44:18 <uorygl> Yes, but I'm a Haskell person! I don't know that!
18:44:29 <AnMaster> ehird, flight recorder
18:44:31 <ehird> http://www.reddit.com/r/reddit.com/comments/ahixe/twitter_account_of_a_9_year_old/c0hl7ey?context=1
18:44:33 <AnMaster> and yes also
18:44:33 <ehird> Whoa; hivemind.
18:44:34 <kwertii> 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 <AnMaster> something you can't see how it works inside
18:45:07 <ehird> haskell is a superset of lisp actually
18:45:18 <ehird> actually, hmm, no
18:45:20 <ehird> they're equal
18:45:26 <AnMaster> also poor that tron person who has been used for "mad mad nerd" everywhere
18:45:29 <ehird> assuming haskell includes template haskell
18:45:51 <pikhq> Different type system, Haskell enforces purity, and rather different syntax.
18:46:24 <pikhq> (Haskell goes for "readability", rather than "trivial parsing")
18:46:27 <ehird> Bah, I'm itching for some OSery.
18:46:29 <kwertii> If a tree falls in a forest without side effects, does it make a sound?
18:46:39 <ehird> Lisp is readable enough, I just don't find it so writable
18:46:55 <pikhq> ehird: Yeah, but readability is not what it's optimised for.
18:47:12 <kwertii> ehird: emacs autoindent and auto-paren matching helps immensely
18:47:24 <ehird> kwertii: I've used paredit, don't think I'm ignorant of Lisps.
18:47:39 <ehird> I stand by what I said, though.
18:47:47 <kwertii> 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 <ehird> kwertii: Yes, I too once parroted the typical Lisper slogans.
18:48:18 <ehird> I still stand by my informed opinion. :)
18:48:20 <uorygl> 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 <pikhq> If your editor needs to be that freaking smart just to make the editing tolerable, the syntax sucks.
18:48:26 <ehird> It's not the parens that make it difficult, btw.
18:49:21 <kwertii> uorygl: you could write infix operators in a DSL with macros if you really wanted to...
18:49:43 <ehird> kwertii: that argument is akin to the Turing-Equivalence Argument for Language Irrelevance
18:49:55 <ehird> 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 <pikhq> In Haskell, you write infix operators as follows: foo & bar = -- code here
18:50:05 <kwertii> yeah, why would you want to? is my point
18:50:14 <ehird> kwertii: so let's examine that argument structure
18:50:18 <ehird> "I like to be able to do X."
18:50:23 <pikhq> Or: foo `bar` baz = -- code here
18:50:33 <ehird> "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 <ehird> that...doesn't really make sense at all
18:50:46 <uorygl> Or (&) foo bar = -- code here, or bar foo baz = -- code here!
18:50:49 <pikhq> kwertii: Which is more readable: 2 + 2, or (+ 2 2)?
18:51:01 <kwertii> 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 <pikhq> uorygl: Yes, that is the desugaring.
18:51:11 <ehird> Math notation arguments are silly.
18:51:24 <uorygl> Have I already said that I like to avoid parentheses for grouping?
18:51:25 <ehird> 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 <ehird> The question is whether prefix notation is better elsewhere.
18:52:01 <ehird> kwertii: Well, technically it *can't* do X.
18:52:01 <pikhq> ehird: Yeah, it's not the math that makes it absurdly difficult....
18:52:01 <ehird> you can't make (2 + 2) work without modifying the compiler (which is cheating)
18:52:03 <pikhq> Just takes a bit of getting used to.
18:52:07 <kwertii> 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 <uorygl> Humans aren't (made (to (figure (out (what (the correct (number (of parentheses is.))))))))
18:52:15 <ehird> You can make (infix 2 + 2) work, but that isn't the same.
18:52:24 <kwertii> 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 <ehird> uorygl: rubbish argument
18:52:29 <ehird> editors can do that
18:52:34 <ehird> please, let's have a legit debate about lisp
18:52:37 <ehird> not a schoolkid one
18:52:43 <ehird> all the default arguments are stunningly borring
18:52:44 <ehird> *boring
18:52:54 <uorygl> I feel like there's more to my argument than you countered.
18:52:59 <ehird> 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 <kwertii> ehird: ....so?
18:53:31 <ehird> So, you cannot implement infix operators in Lisp.
18:53:39 <uorygl> Here, take this: (a (b (c (d (e (f (g (h (i (j (k l))))) m))))))
18:53:45 <uorygl> Which function is the one taking three arguments?
18:53:45 <kwertii> ehird: macros that walk the "code tree" are part of Lisp by definition
18:53:49 <ehird> Unless you use the Lispers' retarded definition made so that they can claim it's possible.
18:53:54 <ehird> kwertii: Yes. That's not the point.
18:54:05 <kwertii> ehird: plus, you get -10 points each for the ad hominems and appeals to boringness :p
18:54:35 <ehird> Ad hominem?
18:54:35 <kwertii> uorygl: copypaste to emacs, meta-q and you can see that instantly
18:54:38 <ehird> When did I insult *anyone*?
18:54:52 <ehird> I think we need a new fallacy, ad ad hominem.
18:54:55 * Sgeo feels like a mad scientist
18:54:56 <uorygl> Neat, so with the correct software, it's perfectly readable.
18:55:17 <kwertii> ehird: 10:47a member:kwertii: Yes, I too once parroted the typical Lisper slogans.
18:55:40 <pikhq> uorygl: a . b . c . d . e . f . g $ h (i . j (k l) m -- That?
18:55:42 <uorygl> 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 <pikhq> Erm. h (i . j (k l) m)
18:56:06 <ehird> kwertii: that is not what an ad hominem is
18:56:13 <uorygl> pikhq: or something like that, yeah.
18:56:13 <ehird> kwertii: furthermore, you ignored the line after in that quote
18:56:17 <ehird> which fundamentally changes its meaning
18:56:34 <ehird> i.e., your quote, though snappy and, at face value, appealing, contradicts my experience.
18:56:48 <kwertii> 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 <ehird> by saying I used to say it too, I was informing you that no, I'm not some lisp-ignorant newbie
18:56:59 <ehird> kwertii: That was not my intention.
18:57:50 <kwertii> ehird: perhaps a better word choice would help to make your intentions clearer, then
18:58:10 <ehird> kwertii: As I have just explained what I said in longhand, I do not think that is necessary.
18:58:31 <uorygl> 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 <uorygl> Naturally, this is impossible.
18:59:02 <ehird> To me, what I said was perfectly reasonable.
18:59:40 <kwertii> 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 <pikhq> kwertii: Out of curiosity, does Lisp have a type system that makes most bugs disappear?
19:00:37 <ehird> pikhq: careful
19:00:44 <ehird> you have plenty of bugs in haskell
19:00:50 <kwertii> pikhq: err... no. no language that I'm aware of has a type system that makes most bugs disappear :)
19:00:51 <ehird> they're just harder to detect thus making you think you have less
19:01:06 <ehird> just call me the reasonability referee :P
19:01:25 <pikhq> ehird: "Most". Huge swaths of types of bugs are very tricky to make...
19:01:39 <ehird> Yes, but they're boring, easily-fixed ones.
19:01:41 <ehird> So that's a bit of a "meh".
19:01:59 <ehird> If you want to advocate the type system, advocate from the angle that it increases expressivity (which it does).
19:02:04 <ehird> It's an addition, not a restriction.
19:02:06 <pikhq> Boring, easily-fixed, tedious, and still difficult to find one.
19:02:17 <pikhq> s/one/ones/
19:02:22 -!- olsner has joined.
19:02:47 <kwertii> 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 <pikhq> Of course, yes, it also increases expressiveness so very nicely.
19:03:13 <pikhq> kwertii: *facepalm*
19:03:34 <ehird> wow, yet another "LISP CAN DO THAT! notthatyouwanttoCOUGHbutiwontjustifythispartbecauselispcandothatCOUGH" argument
19:03:58 <pikhq> Yes, and C can do lambda. That doesn't mean that C is a functional programming language.
19:04:49 <ehird> incidentally, be careful with the requires-editor-equals-bad argument, haskell strays dangerously close to that
19:05:14 <pikhq> ehird: ... How so? The only tricky bit is the indentation, and that's not too hard.
19:05:18 <pikhq> (not to mention optional)
19:05:35 <ehird> the indentation takes up most of my time when coding haskell in a non-tailored editor
19:05:59 <ehird> an aligned { foo = bar, newline, tab tab tab oops a bit too many backspace backspace , quux =
19:05:59 <pikhq> Try using braces? :P
19:06:05 <ehird> pikhq: non-idiomatic
19:06:07 <ehird> and ugly
19:06:15 <pikhq> Fair enough.
19:06:22 <uorygl> Are braces ugly in other languages?
19:06:33 <pikhq> uorygl: Python. :P
19:06:52 <uorygl> Does indentation also take up most of one's time when coding Python in a non-tailored editor?
19:07:02 <pikhq> Probably.
19:07:22 <kwertii> 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 <pikhq> Actually, the same is true of any language where indentation is idiomatic...
19:07:28 <uorygl> I guess I wouldn't notice these things, as I use Notepad for everything.
19:08:00 <ehird> pikhq: no, not probably
19:08:15 <ehird> in python, it's always a multiple of one indentation width
19:08:18 <ehird> but since haskell aligns, not so
19:08:25 <ehird> 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 <pikhq> I think I'm going to have to go with Parsec.
19:09:13 <ehird> yep, monads are a great example of something you can't really do properly without strong types
19:09:23 <ehird> and parsec is an excellent example of monads
19:09:43 <kwertii> 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 <pikhq> kwertii: ... Which static languages have you written in?
19:10:19 <pikhq> I'm guessing ones with C-like type systems.
19:10:20 <lament> my coworker has notoriously bad spelling
19:10:22 <kwertii> pikhq: C and Java, mostly, and a few other minor languages
19:10:32 <lament> he's having to use javascript right now and really suffers
19:10:35 <pikhq> Weak static typing, then.
19:10:37 <lament> because he can't spell the variables consistently
19:10:48 <lament> which in javascript means hard-to-debug runtime errors
19:10:57 <pikhq> Ever heard of "type inference"?
19:11:19 <kwertii> pikhq: Java's strong-typed
19:11:29 <lament> kwertii: not really.
19:11:34 <pikhq> kwertii:
19:11:36 <pikhq> kwertii: Not really.
19:11:40 <lament> whatever strong typing means, java is probably not it
19:11:52 <lament> given that you need to cast things to Object to do anything :)
19:12:13 <kwertii> 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 <ehird> kwertii: if you're criticising haskell's strong typing based on java, just... give up
19:13:12 <kwertii> ehird: I didn't say anything at all about Haskell
19:13:21 <ehird> this whole argument is about haskell vs lisp
19:13:41 <kwertii> ehird: er.. no, I haven't mentioned Haskell once, actually, since I know almost nothing about it.
19:13:56 <ehird> Well everyone else has been arguing about Haskell vs Lisp.
19:13:57 <lament> I know of one good argument for dynamic typing
19:14:14 <lament> it makes it easier to change the design of the program as you're writing it
19:14:33 <kwertii> lament: yes, exactly
19:14:55 <kwertii> and without it, you have to go through and change the 50 million casts everytime you make a design change
19:14:59 <ehird> haskell lets you do that too; you just have to change the way the program is structured to account for it
19:15:07 <ehird> seriously, NONE of us is arguing for java
19:15:19 <lament> kwertii: 50 million casts are not a typical feature of static typing.
19:15:27 <lament> they're a typical feature of Java.
19:15:37 <lament> that's why java sucks so bad
19:15:43 <kwertii> same thing in C
19:15:51 <lament> right, it's also why C sucks so bad
19:16:01 <uorygl> Once, when I tried to write something in Haskell, the typing got in the way.
19:16:02 <lament> C is particularly bad when it comes to the type system
19:16:10 <uorygl> Only oncce.
19:16:19 <kwertii> what does strong typing without casting (like Haskell, presumably?) buy me as a coder?
19:16:32 <pikhq> A whole hell of a lot.
19:16:49 <lament> kwertii: the ability to reason about the program and its constituent parts better.
19:17:05 <lament> kwertii: for example, given a type signature of a function, you can often tell what the function does.
19:17:27 <lament> e.g. (a -> b) -> [a] -> [b]
19:17:37 <kwertii> 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 <lament> good luck writing a function with signature (a -> b) -> [a] -> [b] in C or Java
19:18:13 <ehird> you can do it in java, with generics... shudder
19:18:25 <lament> what's (a -> b) in Java?
19:18:25 <ehird> kwertii: this argument will probably only end if we either give up or we end up teaching you all of haskell
19:18:34 <kwertii> lament: please pardon my ignorance of Haskell syntax. what does that mean?
19:18:38 <ehird> the type system really is totally different in haskell
19:18:45 <lament> kwertii: this type signature is of the function map
19:18:46 <ehird> lament: Func<A,B> or Func<A><B> I forget
19:18:48 <lament> kwertii: do you know map?
19:18:53 <ehird> assuming Func is a genericed class with
19:18:56 -!- sebbu has joined.
19:18:57 <ehird> B call(A x);
19:18:58 <ehird> erm
19:19:00 <ehird> yeah
19:19:02 <kwertii> lament: I know the Lispish function map.. is that what you mean?
19:19:05 <lament> kwertii: yes
19:19:09 <ehird> and you do the ugly new Func(){{ thingy
19:19:14 <pikhq> 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 <ehird> it's possible, just awful
19:19:20 <ehird> and it's not a closure
19:19:26 <lament> 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 <ehird> you can only access final (immutable) vars from the upper scope
19:19:35 <ehird> map has been done in java
19:19:42 <ehird> http://functionaljava.org/
19:19:45 <ehird> as well as monads
19:19:47 <ehird> but jesus is it ugly
19:19:55 <lament> 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 <lament> and produces a list of values of type b
19:20:19 <lament> that's what (a -> b) -> [a] -> [b] says
19:20:46 <kwertii> lament: ok.. so does this buy me anything over Java, other than syntactic sugar?
19:20:48 <lament> the compiler ensures that there won't be type errors as you apply it.
19:21:07 <lament> 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 <ehird> kwertii: you cannot express that function in java
19:21:18 <ehird> you can do it if you let (a -> b) be a function
19:21:20 <pikhq> The compiler ensures that there won't be any other affects of the function.
19:21:20 <ehird> but it's a closure
19:21:27 <ehird> it is, literally, impossible in Java
19:21:30 <ehird> pikhq: *effects
19:21:49 <pikhq> (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 <ehird> you know what would be fun?
19:22:26 <ehird> a program that you give a type signature, and it tries to find out if it's doing something evil
19:22:32 <ehird> (a -> IO b) -> [a] -> [b]
19:22:33 <ehird> EVIL!
19:22:35 <ehird> a -> b
19:22:36 <ehird> EVIL!
19:22:47 <kwertii> 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 <ehird> kwertii: technically, yes, with five pages of code
19:23:16 <lament> kwertii: right, you can, but there's a reason nobody does it
19:23:18 <ehird> haskell has other tricks up its sleeve, though, and not just convenience-related ones
19:23:35 <lament> kwertii: it's very much going against the grain of the language
19:23:36 <pikhq> 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 <ehird> for instance, typeclasses handle both java's generics AND a good portion of problems usually solved with OOP
19:23:59 <ehird> oh, and Java interfaces too
19:24:01 <kwertii> well yea, I'm not arguing that Java doesn't suck, I'm just trying to learn about Haskell.
19:24:05 <ehird> "So... yeah."
19:24:15 <lament> kwertii: what pikhq said is a big selling point
19:24:22 <kwertii> pikhq: so Haskell forces you to declare whether there are side effects?
19:24:26 <lament> yes
19:24:28 <ehird> kwertii: sort of
19:24:32 <kwertii> that's kind of cool
19:24:32 <ehird> it does, but it's not a language feature
19:24:38 <ehird> everything with side effects is of type IO a
19:25:14 <lament> kwertii: it not only forces you to declare it, but it verifies it during type-checking
19:25:22 <ehird> addFromInput :: Integer -> IO Integer
19:25:22 <ehird> addFromInput n = do m <- imaginaryFunctionThatReadsAndParsesAnInteger
19:25:23 <ehird> return (n+m)
19:25:34 <lament> kwertii: or rather, it doesn't force you to declare it, it just verifies it :)
19:25:35 <ehird> or more succintly, addFromInput n = imaginaryFunctionThatReadsAndParsesAnInteger >>= (n+)
19:25:46 <ehird> kwertii: the important thing to realise is that "IO a" isn't just a silly tag applied to a
19:25:57 <ehird> in fact, IO a doesn't mean "a, but with some side-effects"
19:25:58 <lament> kwertii: in haskell you don't usually have to declare types at all, because the compiler figures them out itself
19:26:17 <ehird> it means "some IO thingies that, when run on a side-effecting computer, produces a value of type a"
19:26:19 <lament> 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 <ehird> in haskell, the language is 100% pure, no IO
19:26:36 <ehird> what happens is that the haskell runtime system calls main()
19:26:38 <ehird> well, main
19:26:54 <ehird> 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 <pikhq> It then evaluates the result of main.
19:27:00 <ehird> then, it traverses the tree of IO computation
19:27:10 <ehird> doing each IO operation and feeding the result back in to the rest
19:27:29 <ehird> 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 <ehird> which is why [1..] works; it's the same as 1:(1:(1:...
19:27:53 <ehird> but it looks like <thunk> to haskell, which if you examine the head becomes 1:<thunk>
19:28:01 <ehird> if you examine the head of the tail it becomes 1:(1:<thunk>)
19:28:01 <ehird> etc
19:28:11 <lament> 1:(2:(3:..., rather
19:28:24 <ehird> erm, right
19:28:24 <kwertii> very interesting
19:28:28 <lament> numbers mixed with frowny faces
19:28:30 <pikhq> Yeah, 1:(1:(1:... is fix (1:)
19:28:32 <lament> 1 :( 2 :( 3 :(
19:28:32 <ehird> and, finally, IO is actually a monad; which have nothing to do with side-effects at all, despite some mistaken conceptions
19:28:50 <ehird> things like the "do a; b; c" stuff and the >>= functions have nothing to do with i/o
19:28:51 <lament> ehird: i'm pretty sure you lost kwertii already
19:29:01 <ehird> in fact, even lists are a monad; the point is, you don't have to understand what a monad is
19:29:15 <ehird> I'm just trying to demonstrate that in haskell, side-effects aren't bolted on
19:29:20 <ehird> they arise from other parts of the system
19:29:24 <kwertii> 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 <ehird> (you don't have to understand the parts to do IO in haskell, though, it's easy)
19:29:40 <lament> ehird: i'm pretty sure that side effects ARE bolted on :)
19:29:51 <ehird> well everything is bolted on if you use a silly definition
19:30:03 <lament> well
19:30:03 -!- olsner has joined.
19:30:03 -!- Deewiant has joined.
19:30:07 <pikhq> lament: No, side effects aren't even part of the language. :P
19:30:12 <ehird> 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 <lament> something runs main
19:30:17 <lament> this "something" isn't haskell
19:30:18 <ehird> and how useful lazy evaluation is
19:30:20 <lament> it's some bolted-on bit
19:30:27 <ehird> lament: well, yes, but that's not the sense I meant
19:30:31 <ehird> I mean that "IO" fits into the language
19:30:31 <kwertii> ehh, Lisp can do that. *joke*
19:30:45 <lament> kwertii: right, it can't
19:31:13 <lament> kwertii: blah, just learn haskell already :P
19:31:23 <kwertii> 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 <ehird> oh the humanity
19:31:34 <lament> kwertii: everybody's favourite motivating examples:
19:32:09 <lament> factorial :: Integer -> Integer
19:32:16 <lament> factorial n = product [1..n]
19:32:46 <ehird> isprime n = not . any (\p -> mod n p == 0) . takeWhile (\p -> p^2 <= n) $ primelist
19:32:46 <ehird> primelist = 2 : [p | p <- [3,5..], isprime p]
19:32:46 <ehird> 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 <ehird> and yes, it works
19:32:52 <lament> fibs :: Integer
19:32:53 <lament> fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
19:32:53 <ehird> LAZY EVALUATION IN YOUR FACE
19:33:02 <ehird> lament's is the same general idea, but with less head-binding
19:33:03 <ehird> (fibs)
19:33:42 <kwertii> Clojure has lazy evaluation
19:33:48 <ehird> >_<
19:33:52 <Deewiant> lament: fibs :: [Integer]
19:33:59 <lament> oh whoops
19:34:02 <lament> duh
19:34:19 <kwertii> and there are lazy eval libraries for Common Lisp...
19:34:38 <kwertii> scheme has it builtin too
19:34:44 <ehird> not the same kind
19:34:46 <lament> no, it doesn't
19:34:48 <ehird> in haskell, everything is lazy
19:34:53 <ehird> lament: well it has promises which are ... half-similar
19:34:56 <kwertii> then I'm not getting something. what does Haskell do that Scheme or Clojure don't?
19:34:57 <lament> kwertii: give me an infinite list in Scheme
19:35:06 <ehird> kwertii: in haskell, every single construct is lazy
19:35:13 <ehird> the implicitness makes it *far* more expressive
19:35:37 <lament> kwertii: for example, the list of natural numbers in Haskell is [1..]. You can perform any list operation on it.
19:35:43 <lament> kwertii: What's the Scheme equivalent?
19:35:46 <kwertii> lament: streams are infinite lists in Scheme
19:35:48 <lament> or Common Lisp or whatever
19:35:54 <ehird> kwertii: exactly, they're different things
19:35:56 <ehird> that's the whole point
19:36:03 <kwertii> I'm not good at Scheme. but infinite lists are baked into Clojure
19:36:11 <lament> kwertii: exactly, they aren't lists, and you can't use list operations on them
19:36:24 <kwertii> 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 <lament> yes i'm aware
19:37:03 <pikhq> kwertii: Write the following: fibs = 0:1:zipWith (+) fibs (tail fibs)
19:37:10 <kwertii> (cycle [1 2 3]) ;; infinite list of 1 2 3 1 2 3. .....
19:37:12 <ehird> pikhq: he'll just use streams and a mass of (delay)s
19:37:36 <ehird> 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 <ehird> it's like a trap!
19:37:39 <kwertii> pikhq: http://en.wikibooks.org/wiki/Clojure_Programming/Examples/Lazy_Fibonacci
19:37:55 <kwertii> ehird: -10 points, ad hominem
19:38:03 <ehird> wasn't submitting it as an argument
19:38:08 <ehird> was merely making an observation
19:38:22 <lament> (defn fib ([] (concat [0 1] (fib 0 1))) ([a b] (lazy-cons (+ a b) (fib b (+ a b)))))
19:38:29 <kwertii> 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 <lament> looks like a direct equivalent of the Haskell definition
19:38:36 <pikhq> lament: ... Eeeeew.
19:38:43 <ehird> no language can do anything that lisp can't, at all
19:38:46 <lament> kwertii: so in haskell, it's the same thing, but statically typed
19:38:48 <ehird> well apart from super-tc languages
19:38:59 <lament> 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 <ehird> except clojure isn't very lispy
19:39:07 <lament> kwertii: without seeing the code
19:39:08 * pikhq notes that "fibs" isn't a function.
19:39:09 <ehird> and in fact, it takes all these things from haskell
19:39:12 <Sgeo> ehird, low level register setting?
19:39:17 <ehird> "I don't need Haskell for that, this language that took it from Haskell has it!"
19:39:17 <pikhq> It is literally just a list.
19:39:35 <kwertii> 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 <Sgeo> Or other.. low level C trickery?
19:40:26 * Sgeo waves his hand around a bit
19:40:48 <ehird> 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 <kwertii> 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 <ehird> 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 <lament> kwertii: with better syntax, yes
19:41:23 <ehird> and indeed the type system does eliminate a lot of bugs
19:41:26 <ehird> kwertii: sort of
19:41:29 <ehird> kwertii: clojure isn't all lazy
19:41:32 <ehird> it has lazy lists
19:41:33 <ehird> but it isn't lazy
19:41:40 <kwertii> I love Lisp syntax, so we'll leave syntax aside :)
19:41:46 <ehird> haskell's ubiquitous laziness is really fundamental
19:41:55 <ehird> kwertii: you could use Liskell.
19:41:58 <ehird> NOT THAT YOU'D WANT TO :p
19:42:02 <kwertii> ooh, Liskell
19:42:06 <ehird> don't, it's crappy
19:42:15 <lament> better just use clojure then
19:42:16 <ehird> they just added parentheses and a different macro system to Haskell
19:42:20 <ehird> the former isn't really all that lispy
19:42:26 <ehird> the latter is worse than Template Haskell
19:42:26 <kwertii> so, a functional language similar to Clojure but with pervasive laziness and strong static typing
19:42:34 <ehird> kwertii: and monads.
19:42:39 <kwertii> Lisp has monads
19:42:41 <ehird> specifically, monadic IO is the language feature
19:42:45 <pikhq> main = getContents >>= foo x >= putStr -- There, a program that filters stdin through foo x and outputs stdout. Lazily.
19:42:51 <kwertii> or can have them, more specifically. lots of libs for that
19:42:53 <lament> kwertii: the typing is not just strong and static
19:42:55 <ehird> pikhq: >>= not >= :P
19:43:01 <ehird> kwertii: lisp doesn't use monadic io
19:43:06 <lament> kwertii: it's very expressive, or tries to be
19:43:14 <kwertii> can you write macros in Haskell?
19:43:16 <ehird> i think it is lament probably disagrees :P
19:43:19 <ehird> kwertii: yes, with template haskell
19:43:27 <ehird> http://en.wikipedia.org/wiki/Template_Haskell
19:43:28 <pikhq> ehird: XD
19:43:31 <ehird> 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 <ehird> digitsFollowedByLetters = [$re| \d+ \s+ |]
19:43:48 <ehird> 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 <ehird> *thing
19:43:52 <lament> kwertii: there's a kind of a goal to make the type checker do as much work as possible
19:43:56 <ehird> because of haskell's pervasive laziness and monadic IO
19:44:03 <ehird> a lot of things that would be macros in lisp... are functions in haskeell
19:44:06 <ehird> *haskell
19:44:12 <ehird> and what can be simpler than writing a function?
19:44:15 <lament> kwertii: so many of "design patterns" elsewhere end up being types
19:44:24 <lament> kwertii: and their common features are abstracted
19:44:26 <ehird> kwertii: oh, and if Java is your benchmark, note that you don't have to declare types in haskell
19:44:39 <lament> kwertii: (monads are one such pattern)
19:44:55 <ehird> 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 <kwertii> cool.
19:45:10 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
19:45:19 <ehird> people annotate the types of their top-level definitions, though (functions and other things)
19:45:23 <ehird> because it's basically documentation
19:45:37 <ehird> 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 <ehird> *name and a type
19:45:49 <bsmntbombdood> so, anyone have any ideas on how to create a bittorrent like protocol that is more anonymous?
19:46:02 <bsmntbombdood> but less so than freenet
19:46:06 <ehird> also, if you declare the type, of course it means if your function breaks the type (and thus compatibility) it complains
19:46:21 <ehird> bsmntbombdood: maybe have the swarm act as a Tor-style network
19:46:29 <ehird> except without exit nodes
19:46:33 <kwertii> thanks for the info, guys, I am adding Haskell to the list of ∫things to look into.
19:46:34 <bsmntbombdood> ehird: too slow
19:46:38 <ehird> that way, you can have a list of everyone participating in the torrent
19:46:41 <ehird> but not who did what
19:46:46 <ehird> kwertii: fthings!
19:46:57 <lament> kwertii: http://www.lisperati.com/landoflisp/
19:47:02 <ehird> lament: oh god, not that comic :P
19:47:16 <ehird> might as well be called Land of Uninformed Haskell Bashing (I know the author knows Haskell)
19:47:29 <ehird> (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 <lament> ehird: i can't believe how retarded you are
19:47:43 <ehird> kwertii: if you do decide on haskell, btw, Real World Haskell is the best place to start.
19:48:07 <kwertii> ehird: thanks, I'll take a look
19:48:11 -!- sebbu2 has joined.
19:48:11 <ehird> 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 <ehird> it only covers the basics, but beyond that real world haskell works
19:48:35 <ehird> well hmm since I last checked it expanded
19:48:39 <ehird> covers a bit more than the basics then
19:48:45 <ehird> still no monads though :-D
19:49:20 <ehird> (real world haskell is free online here http://book.realworldhaskell.org/)
19:51:51 -!- sebbu3 has joined.
19:52:20 <kwertii> lament: haha. awesome.
19:54:51 <pikhq> 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 <ehird> pikhq: djinn doesn't know lists does it?
19:55:17 <Deewiant> ehird: djinn can't do recursive types.
19:55:36 <pikhq> djinn isn't all that smart.
19:56:00 -!- sebbu2 has quit (Read error: 60 (Operation timed out)).
19:56:02 <ehird> kwertii: anyway, here's a haskell party trick
19:56:07 <ehird> /query lambdabot and try these two lilnes
19:56:09 <ehird> *lines
19:56:11 <ehird> @djinn (a -> b) -> b -> Maybe a -> b
19:56:12 <ehird> and
19:56:19 <ehird> @djinn (a -> b -> c) -> b -> a -> c
19:56:22 <ehird> the former is
19:56:33 <ehird> given f, a function taking a and returning b, and x, a default value
19:56:42 <ehird> plus m, which is either Just (something of type a) or Nothing,
19:56:56 <ehird> either return (f (the thing in the Just)) or x
19:57:06 <anmaster_l> &/ab
19:57:07 <anmaster_l> err
19:57:08 <anmaster_l> failk
19:57:10 <ehird> i.e., it's "if there's a value in here, pass it through this function; otherwise, use this default"
19:57:10 <anmaster_l> fail*
19:57:25 <ehird> the latter one takes a function taking two arguments, and returns one that takes two arguments, but flipped
19:57:31 <ehird> i.e. f(a,b) = g(b,a)
19:57:46 <ehird> tl;dr @djinn takes a type, and works out a function for you
19:57:56 <anmaster_l> ehird, copying 500 MB at 590 kb/s is irritating
19:57:59 <ehird> (well, not any old type, but meh)
19:58:27 <lament> kwertii: summarizing ehird: http://en.wikipedia.org/wiki/Curry-Howard_Isomorphism
19:58:36 <ehird> naturally
19:58:38 <lament> kwertii: if that doesn't get you excited about static types, nothing will :)
19:58:45 <ehird> but the point is that haskell types *are* that
19:59:06 <ehird> and it works for types of useful, concrete functions ;-)
19:59:13 <ehird> admittedly, not that many, and it's not the most useful application of the isomorphism
19:59:16 <ehird> but it sure is neat
20:00:45 <kwertii> ehird: where do you get x in those function definitions?
20:01:00 <ehird> kwertii: if you use a name for a type, it doesn't mean that's the name for a variable
20:01:03 <ehird> take the function
20:01:11 <ehird> f :: a -> a -> Integer
20:01:13 <ehird> f a b = 3
20:01:23 <ehird> both the arguments must be of the same type
20:01:27 <ehird> but what type it is can be any
20:01:39 -!- sebbu has quit (Read error: 110 (Connection timed out)).
20:01:45 <ehird> basically, a lowercase name as a type means "any type", but if you use it twice it's the same type
20:01:58 <kwertii> 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 <ehird> ah, I was just giving names to the arguments
20:02:12 <lament> kwertii: the curry-howard isomorphism is a good example of an idea that's only possible when types are explicit
20:02:16 <ehird> let me restate it more verbosely
20:02:27 <lament> kwertii: though of course it doesn't have much to do with programming
20:02:50 <kwertii> lament: funny, I was just reading about automated theorem proving the other day. a very cool idea.
20:03:00 <ehird> The function takes values of the types
20:03:01 <ehird> (a -> b) — "transformer". A function taking a value of type a, and returning a value of type b.
20:03:01 <ehird> b — "default".
20:03:01 <ehird> Maybe a — "container".
20:03:01 <ehird> and returns a value of type b.
20:03:05 <lament> but it partly explains why there's a strong mathy flavour in the haskell community
20:03:08 <ehird> data Maybe a = Just a | Nothing
20:03:19 <ehird> i.e., a value of type (Maybe a) is of the form of either
20:03:22 <ehird> Just (a value of type a)
20:03:22 <ehird> or
20:03:23 <ehird> Nothing
20:03:25 <lament> kwertii: right, @djinn is an automatic theorem prover
20:03:27 <Sgeo> This reminds me of a pun..
20:03:35 <ehird> if "container" is a Just
20:03:40 <lament> kwertii: a very simple one admittedly, but the cool part is that it works on haskell types
20:03:48 <ehird> take the value from inside "container", and pass it to "transformer"; return the result.
20:03:53 <ehird> Otherwise, return "default".
20:04:03 <ehird> think of (Maybe a) as like this java
20:04:03 <kwertii> ehird: please define "Maybe" and "Just" in this context
20:04:10 <ehird> MyType foo = null;
20:04:14 <ehird> MyType bar = new MyType();
20:04:21 <ehird> kwertii: in haskell this would be expressed as
20:04:26 <ehird> foo :: Maybe MyType
20:04:28 <ehird> foo = Nothing
20:04:33 <ehird> bar :: Maybe MyType
20:04:38 <ehird> bar = Just (makeMyType)
20:04:50 <ehird> kwertii: Just and Nothing are just constructors of Maybe
20:05:02 <kwertii> so "Maybe x" is either "x or nil" and "Just x" is "x, but not nil"?
20:05:13 <ehird> ah, I see how you are confused
20:05:17 <ehird> no, (Maybe a) is a type
20:05:20 <ehird> (Just x) is a value
20:05:24 <ehird> of type (Maybe (type of x))
20:05:47 <ehird> (obviously you can only write one or the other when the syntax expects a type or a value)
20:06:37 <kwertii> Just x instantiates a new x?
20:06:55 <ehird> lament: help, I'm in a hole I dug and can't climb out
20:07:01 <AnMaster> 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 <Deewiant> It takes x and wraps Just around it.
20:07:04 <kwertii> no worries, I'll go read a Haskell book
20:07:06 <ehird> kwertii: I tell you what, forget that @djinn invocation
20:07:08 <AnMaster> the one in ubuntu is laughably bad
20:07:12 <AnMaster> (fspot)
20:07:17 <ehird> 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 <ehird> kwertii: yep. i suggest http://www.learnyouahaskell.com/ to start with then going onto real world haskell, as i said
20:07:42 <ehird> learnyouahaskell gets down to the practical stuff very fast, so you should grok Maybe soon enough if you read it
20:07:55 <ehird> and it is written by a better teacher than I...
20:08:09 <ehird> AnMaster: write a program photoq(1)
20:08:18 <ehird> photoq exposure foo.jpg bar.jpg
20:08:23 <Sgeo> If the type of x is y, then Just x has a type of Maybe y
20:08:25 <ehird> then use the shell :-)
20:08:38 <ehird> example use
20:08:42 <ehird> alias pq=photoq
20:08:46 -!- MigoMipo has quit ("Quitter!").
20:08:55 <ehird> $ photoq size foo.jpg bar.jpg
20:09:00 <ehird> erm
20:09:03 <ehird> $ pq size foo.jpg bar.jpg
20:09:08 <ehird> foo.jpg: 1600x1200
20:09:12 <ehird> bar.jpg: 640x480
20:09:15 <ehird> $ pq size foo.jpg
20:09:17 <ehird> 1600x1200
20:09:29 * ehird , master of theoretically pure solutions!
20:09:36 <ehird> hmm actually I'd omit the trailing colon on the filenames
20:09:45 <ehird> wait, no
20:09:53 <ehird> you'd not really want to parse that, just call pq multiple times in a loop
20:10:24 <ehird> AnMaster: by overview do you mean thumbnails?
20:10:31 <ehird> if so nautilus shows them :P
20:10:51 <ehird> 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 <ehird> AnMaster summarily ignores me!
20:16:40 -!- MizardX has quit ("zzz").
20:17:55 <AnMaster> back
20:18:02 <ehird> :-D
20:18:04 <AnMaster> ehird, sorry I had to leave for a few seconds
20:18:08 <ehird> AnMaster: i went all unix elitist on you
20:18:10 <AnMaster> ehird, due to not feeling weel at all
20:18:13 <ehird> first as a joke
20:18:17 <AnMaster> I think I might have some flu
20:18:18 <ehird> but at the end started thinking it was pretty cool
20:18:19 <AnMaster> or something
20:18:22 <AnMaster> :(
20:18:25 <ehird> Pearl flu
20:18:39 <AnMaster> ehird, mongoose flu!
20:18:47 <ehird> whoosh maybe
20:18:54 <AnMaster> ehird, not at all
20:19:02 <ehird> okay, tell me what i was referencing
20:19:12 <AnMaster> ehird, no I wasn't continuing it.
20:19:22 <ehird> I was referencing "pearls before swine"
20:19:26 <AnMaster> I was already typing that when you said pearl flu
20:19:34 <AnMaster> ehird, we have that idiom in Swedish too
20:19:37 <ehird> good
20:19:42 <AnMaster> kasta pärlor för svinen
20:19:42 <ehird> !hsoohw
20:20:12 <AnMaster> literally: throw pearls in front of the swines
20:20:32 <AnMaster> <ehird> photoq exposure foo.jpg bar.jpg
20:20:34 <AnMaster> you know
20:20:38 <AnMaster> I use a shell script atl
20:20:40 <AnMaster> atm*
20:20:42 <AnMaster> using exiftool
20:20:44 <AnMaster> to read the data
20:20:53 <ehird> well make pq a wrapper around exiftool
20:20:58 <AnMaster> ehird, I just wanted to do something else
20:21:02 <ehird> then use my nautilus for thumbnails + drag and drop to terminal :P
20:21:06 <ehird> solution
20:21:27 <ehird> well i don't know if that works in nautilus i think it doees
20:21:27 <ehird> does
20:21:30 <ehird> does in os x anyway
20:22:06 <Sgeo> It wooshed over my head
20:22:10 <Sgeo> And is still wooshing
20:22:24 <ehird> Sgeo: what did
20:22:27 <ehird> oh
20:22:29 -!- Asztal has quit (Read error: 60 (Operation timed out)).
20:22:31 <ehird> i said pearl flu
20:22:34 <ehird> pearls before swine
20:22:35 <ehird> swine flu
20:22:46 <Sgeo> I don't know what "pearls before swine" is supposed to mean
20:22:56 <ehird> irrelevant to the pun
20:23:16 <ehird> "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 <ehird> more like INTERCOURSE ON HOLINESS
20:23:27 <AnMaster> 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 <AnMaster> ; done
20:23:49 <AnMaster> well
20:23:50 <ehird> AnMaster: pfft, that only works for exposure!
20:23:51 <AnMaster> minus the typos
20:23:54 <ehird> PQ PQ PQ
20:24:01 <ehird> / $/d
20:24:28 <AnMaster> ehird, well yes
20:24:55 <AnMaster> ehird, also I need to sort it by motive this time
20:25:00 <AnMaster> since they are not all in the same direction
20:25:04 <ehird> your mom is a motive
20:25:58 <AnMaster> err that was Swedishism maybe
20:26:10 <AnMaster> ehird, what do you can the thing a picture depicts
20:26:14 <AnMaster> in Swedish it is "motiv"
20:26:23 <ehird> motiv sounds like motif
20:26:29 <ehird> but uh
20:26:31 <ehird> subject?
20:26:35 <ehird> "what do you can the"
20:26:36 <AnMaster> ehird, ah maybe
20:26:43 <ehird> my language parser gave up there
20:26:43 <AnMaster> ehird, oops
20:26:48 <AnMaster> what do you call*
20:26:49 <ehird> and just parsed the rest of the sentence
20:26:55 <AnMaster> ehird, s/can/call/
20:26:59 <ehird> subject, probably— uh, do cameras give that information?
20:27:03 <ehird> I didn't know they could identify shapes.
20:27:04 <AnMaster> ehird, no they don't
20:27:05 <AnMaster> which
20:27:11 <AnMaster> is why I need a photo manager
20:27:16 <ehird> not so
20:27:22 <ehird> EXIF is extensible, right?
20:27:31 <AnMaster> ehird, doesn't change that my camera doesn't do it
20:27:34 <AnMaster> and yes there is MakerNotes
20:27:38 <ehird> and neither can a photo manager
20:27:44 <ehird> you're going to have to enter the subjects yourself
20:27:46 <AnMaster> where the vendor can put whatever it wants
20:27:50 <AnMaster> ehird, exactly
20:27:52 <ehird> so! make a field Subject
20:27:55 <ehird> and put the subject in
20:27:59 <ehird> then do $ pq subject ...
20:28:01 <ehird> TADA
20:28:12 <AnMaster> ehird, actually my camera allows you to make short sound annotations
20:28:14 <AnMaster> :D
20:28:20 <AnMaster> with it's built in mic
20:28:25 <ehird> Combine with speech recognition!
20:28:35 <ehird> *snap* "Cat."
20:28:41 <ehird> *goes on computer*
20:28:48 <ehird> Recognition failed.
20:28:52 <ehird> "FUCK!"
20:28:56 <AnMaster> ehird, actually here it was "section 1 of the panorama" "section 2 of the panorama"
20:28:57 <AnMaster> and so on
20:28:57 <ehird> Recognition succeeded.
20:29:00 <ehird> "Fuck"
20:29:07 <ehird> Erm, that last line is confusing.
20:29:10 <ehird> Let's rewrite it:
20:29:11 <ehird> > Fuck
20:29:17 <ehird> Eh, that's still confusing.
20:29:28 <ehird> The point is that the computer recognises "fuck" but not "cat". Now laugh, fool.
20:29:32 <AnMaster> hah
20:29:39 <AnMaster> ehird, fuck the cat?
20:29:44 <AnMaster> "calling police"
20:29:56 <ehird> Hot cat-on-cat(1) action.
20:30:01 <AnMaster> XD
20:30:01 <ehird> "Meeeow." "Meeeow."
20:30:17 <ehird> "You're so like me." "You're so like me."
20:33:46 <AnMaster> ehird, idea: make a program that can construct a partial 3D image given two photos from two different locations
20:33:51 <AnMaster> using the parallax
20:34:03 <ehird> that's called red and blue glasses
20:34:15 <AnMaster> ehird, well no it isn't. I want a 3D model I can load into blender
20:34:24 <ehird> that would be unlikely to work very well :P
20:34:26 <AnMaster> it is called "cheap-skate (sp?) 3D scanner"
20:34:59 <Sgeo> I remember using a program that could do something like that, a long time ago
20:35:23 <AnMaster> Sgeo, oh?
20:35:28 <ehird> AnMaster: it'd fail horribly e.g. on spheres
20:36:02 <AnMaster> ehird, well yes. You could only get an image covering a bit more than 180 degrees
20:36:05 <Sgeo> 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 <AnMaster> ehird, and yes it would be hard to detect a sphere
20:36:30 <AnMaster> Sgeo, well yes that is given
20:36:36 <AnMaster> I would expect to have to do that too
20:36:46 <ehird> oh
20:36:47 <ehird> lame
20:37:12 <AnMaster> ehird, well that or give it the distance between the camera positions
20:37:12 <AnMaster> also
20:37:19 <AnMaster> you could automate point finding
20:37:21 <AnMaster> easily
20:37:28 -!- MigoMipo has joined.
20:37:30 <AnMaster> there are already tools to do so
20:37:35 <AnMaster> used for panorama making
20:37:45 -!- MigoMipo has quit (Remote closed the connection).
20:37:54 <AnMaster> modify the algorithms a bit maybe to account for the now wanted parallax
20:38:03 <AnMaster> and you have a point finding algorithm
20:38:06 <AnMaster> 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 <ehird> Of course I've used it before.
20:40:37 <ehird> I just feel like some Debian tinkering.
20:40:43 <AnMaster> ehird, well yes. I just said I decided not to say it
20:41:05 <ehird> Anyway, clearly the metric is how young you are when you first used it.
20:41:06 <AnMaster> (yes I'm aware of the issue in that sentence, thank you very much)
20:41:07 <ehird> Therefore, I win.
20:41:13 <ehird> AnMaster: no issue
20:41:15 <AnMaster> ehird, hm. 12 or so
20:41:18 <AnMaster> or maybe 13
20:41:20 <AnMaster> I forgot
20:41:24 <ehird> what, sid?
20:41:29 <ehird> that's like doing drugs when you're 4
20:41:35 <AnMaster> ehird, I tried red hat when I was 11
20:41:36 <ehird> YOU HAVE NO CONCERN FOR YOUR OWN HEALTH
20:41:40 <AnMaster> red hat 5.something
20:41:47 <ehird> red hat is like, uh, something bad
20:41:51 <AnMaster> came on a cd with some computer magazine
20:41:56 <AnMaster> ehird, yes. But I didn't know that back then
20:42:00 <AnMaster> and that had RPM hell
20:42:09 <AnMaster> tried debian a bit later. sid too iirc
20:42:10 <ehird> thankfully nobody uses rpm these days
20:42:11 <AnMaster> then slackware
20:42:17 <ehird> (in the same way that nobody uses dpkg)
20:42:51 <AnMaster> ehird, also wait a sec...
20:42:54 <AnMaster> <ehird> that's like doing drugs when you're 4
20:43:00 <pikhq> First distro I used was Slackware...
20:43:00 <AnMaster> aren't you like 14?
20:43:02 <AnMaster> so
20:43:02 <ehird> using sid at such an early age
20:43:08 <ehird> 14 IS LIKE BEING 18 OKAY
20:43:10 <AnMaster> it would be just as bad for you
20:43:15 <AnMaster> ehird, but you said you used it before!
20:43:17 <ehird> which is when hard drugs become legal in Falsebekiztan
20:43:24 <ehird> AnMaster: SHUT UP
20:43:33 <ehird> YOUR WORDS BOUNCE OFF ME THEY DO NOT HURT
20:43:56 <AnMaster> ehird, this reminds me of a Marty Feldman (sp?) sketch
20:44:10 <ehird> now using gentoo when you're 4, is like doing heroin before you're even conceived
20:44:18 <AnMaster> ehird, agreed
20:44:19 <ehird> continuously
20:45:06 <AnMaster> ehird, but I only started with gentoo when I was maybe 16 or so
20:45:09 <AnMaster> or 15
20:45:19 <AnMaster> 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 <ehird> ooh, linode just became an appealing vps provider
20:46:18 -!- asiekierka has quit (Connection timed out).
20:46:20 <ehird> they have a facility in london
20:46:22 <AnMaster> why is my mouse suddenly slippery
20:46:26 <ehird> and it's (a) fast, (b) low-latency
20:46:29 * AnMaster gets something to clean it
20:46:45 <ehird> now if only their rates weren't kinda shitty
20:47:36 <ehird> Linode 19.95 $: 360 MiB of RAM, 16 G(i?)B of storage, 200 G(i?)B transfer
20:47:36 <ehird> prgmr 20 $: 1024 MiB of RAM, 24 GiB of storage, 160 GiB transfer
20:48:16 <ehird> on the other hand, their performance is nice: http://journal.uggedal.com/vps-performance-comparison
20:49:19 <ehird> inexplicably 32-bit is faster than 64-bit for smaller linode nodes, apparently
20:49:43 <AnMaster> ehird, memory usage?
20:49:59 <ehird> irrelevant since he ran actual benchmarks, not single tasks
20:50:06 <ehird> oh
20:50:07 <ehird> you mean
20:50:07 <ehird> no
20:50:09 <ehird> speed-wise
20:50:10 <ehird> http://journal.uggedal.com/vps-performance-comparison
20:50:15 <ehird> linode guys said the same
20:50:22 <AnMaster> hm
20:50:29 <ehird> no wait
20:50:30 <ehird> "x86 performs better on smaller nodes (360) our experience."
20:50:33 <ehird> not said by a linode guy
20:50:34 <ehird> but still
20:50:36 <ehird> so, yeah
20:50:37 <ehird> strange
20:50:46 <AnMaster> ehird, well yes it could be that more fits into ram there
20:50:51 <AnMaster> if it doesn't have a lot of ram
20:50:51 <ehird> doubtful
20:50:55 <ehird> benchmarks don't tend to be huge
20:51:01 <ehird> AnMaster: 360 MiB of RAM running linux?
20:51:11 <AnMaster> ehird, so more can be cached
20:51:12 <ehird> that can surely fit an entire benchmark, it's not like it's a 3d rendering test or anything
20:51:16 <AnMaster> hm
20:51:21 <ehird> anyway, he ran several benchmarks
20:51:24 <ehird> most of which were not ram-intensive
20:51:35 <AnMaster> ehird, okay I saw postgresql there. Which would be cache-dependant in part
20:51:57 <AnMaster> also in-memory sqlite
20:52:00 <ehird> hmm, linode lets you install your own distro instead of just a predefined list
20:52:05 <ehird> which was a nice thing about prgmr
20:52:06 <AnMaster> ehird, what about more fitting into cpu cache?
20:52:07 <ehird> quite tempting
20:52:10 <AnMaster> that *is* possibke
20:52:14 <AnMaster> possible*
20:52:18 -!- adam_d__ has joined.
20:52:19 <ehird> AnMaster: look how drastic the differences are, though
20:52:31 <ehird> in most of the benchmarks, i686 blasts away x86_64 on linode
20:52:42 <AnMaster> "Django test suite on in-memory SQLite" x86_64 wins?
20:53:00 <ehird> "most"
20:53:10 <AnMaster> right
20:53:15 <ehird> "Microsoft loses patent appeal; Word and Office to be barred from sale starting January 11"
20:53:18 <AnMaster> anyway both are way over any other host
20:53:19 <ehird> And nothing of value was lost.
20:53:30 <ehird> AnMaster: which is better
20:53:41 <AnMaster> indeed
20:53:43 <ehird> well on most
20:53:48 <AnMaster> yeah
20:53:51 <ehird> depends on the benchmark, confusingly :P
20:53:55 <AnMaster> haha
20:54:00 <ehird> but more importantly, linode is also among the most predictable
20:54:14 <ehird> amazon, prgmr and amazon are about as stable as each other, performance-wise
20:54:17 <AnMaster> <ehird> "Microsoft loses patent appeal; Word and Office to be barred from sale starting January 11" <-- long live that judge?
20:54:20 <ehird> well
20:54:33 <ehird> 1. amazon and prgmr 2. linode 3. rackspace
20:54:43 <ehird> 4. slicehost (really really bad last place)
20:54:55 <ehird> AnMaster: ehh
20:54:55 <AnMaster> ehird, are those patents important?
20:54:59 <ehird> yes
20:55:08 <ehird> well
20:55:13 <ehird> they're shitty patents
20:55:14 <AnMaster> ehird, oh? at what level? as in can't open saved files without it?
20:55:16 <ehird> shouldn't have been granted
20:55:22 <ehird> AnMaster: as in fundamental to the .docx format
20:55:25 <AnMaster> or as in "can't use simne gui thingy"
20:55:28 <ehird> well, all .*x
20:55:33 <AnMaster> hm
20:55:35 <AnMaster> interesting
20:55:41 <AnMaster> ehird, what does the patent patent?
20:55:49 <ehird> AnMaster: something like "using XML to do out-of-band formatting"
20:55:49 <ehird> that is
20:55:52 <ehird> you have
20:55:53 <ehird> Hello, world!
20:55:54 <ehird> foo
20:55:56 <ehird> and you have
20:56:01 <ehird> format first N characters: bold and big
20:56:06 <AnMaster> wait a second
20:56:09 <ehird> format N to N+foo: italic
20:56:10 <AnMaster> that patents xslt
20:56:12 <AnMaster> doesn't it?
20:56:14 <ehird> not really
20:56:16 <ehird> it's more like
20:56:35 <AnMaster> 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 <ehird> <doc><txt>HiYo</txt><bold from="0" to="2"/><italic from="2" to="4"/></doc>
20:57:00 <AnMaster> ehird, that is a shitty way to specify it
20:57:07 <ehird> 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 <AnMaster> no one sane would do it
20:57:15 <ehird> so it's a shitty result, but it still amuses me
20:57:31 <ehird> AnMaster: there's a difference beyond representation of the same data I think, I forget what though
20:57:36 <ehird> anyway
20:57:39 <ehird> that was just from memory
20:57:40 <ehird> I might be wrong
20:57:52 <AnMaster> anyway yeah it was wrong but yeah it amuses me
20:58:23 <AnMaster> ehird, will they pay for using the patent do you think?
20:58:28 <AnMaster> or will they change format?
20:58:35 <ehird> Neither.
20:58:40 <AnMaster> oh?
20:58:47 <AnMaster> ehird, they will appeal again?
20:59:21 -!- FireFly has joined.
20:59:21 <ehird> 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 <AnMaster> heh
20:59:54 <AnMaster> well yes similar maybe. but with suits
21:00:21 <ehird> Nah, out-of-court.
21:00:27 <AnMaster> ah
21:00:27 <ehird> Microsoft is a psycopath.
21:00:31 <ehird> *psychopath
21:00:48 <AnMaster> hah
21:00:49 <ehird> If that fails they'll just force the price down to peanuts.
21:01:10 <AnMaster> ehird, I almost hope the other company will refuses such things
21:01:13 <ehird> [["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 <ehird> Little-used?
21:01:18 <ehird> Microsoft you are full of shit.
21:01:22 <ehird> AnMaster: then they will die.
21:01:26 <ehird> and microsoft will go ahead
21:01:39 <AnMaster> ehird, what about that person who owns it
21:01:45 <AnMaster> might be harder then
21:01:50 <ehird> It's a company.
21:01:59 -!- osaunders has quit ("Bye").
21:02:02 <AnMaster> ehird, they could move it to the inventor in question?
21:02:03 <AnMaster> no?
21:02:10 <ehird> The patent is granted to the company.
21:02:11 <AnMaster> well inventor within quotes here
21:02:21 <AnMaster> ehird, what happens if the company dies?
21:02:28 <AnMaster> or goes bankrupt rather
21:02:29 <ehird> What happens if the inventor dies?
21:02:32 <ehird> I suppose the patent expires.
21:02:38 <AnMaster> ehird, hm
21:02:47 <ehird> Patents are shit anyway.
21:02:52 <AnMaster> agreed
21:03:01 <AnMaster> but it would be funny to use it to take down microsoft
21:03:24 <ehird> You can't really defeat such a large corporation in today's corporatist society.
21:03:30 <AnMaster> hm
21:03:39 <AnMaster> ehird, another large company could?
21:03:42 <AnMaster> or a group of them
21:03:50 <ehird> That would be... bloody.
21:03:53 <AnMaster> say, IBM, HP, Dell, Intel combined
21:04:05 <AnMaster> ehird, and yes it would
21:04:07 <ehird> That would be suicidal for all those companies.
21:04:15 -!- adam_d has quit (Read error: 110 (Connection timed out)).
21:04:19 <AnMaster> ehird, throw in maybe 3-4 more large companies?
21:04:22 <ehird> Intel relies on Windows to make moneey.
21:04:25 <ehird> *money
21:04:29 <ehird> So do Dell and HP.
21:04:39 <ehird> IBM would be damaged, but probably not killed.
21:04:41 <AnMaster> ehird, what if microsoft *did* go down. what would happen instead
21:04:47 <AnMaster> apple?
21:04:58 <ehird> I don't think society would ever let that happen.
21:05:07 <AnMaster> ehird, well suppose it *does*.
21:05:11 <AnMaster> this is a thought experiement
21:05:14 <AnMaster> what would happen
21:05:25 <ehird> 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 <AnMaster> ehird, hah
21:06:16 <AnMaster> ehird, still, I suppose what could happen would be for MS to loose market share over a extended period of time
21:06:27 <AnMaster> until it is less than 40 % or so
21:06:35 <ehird> That would just be Microsoft fading.
21:06:39 <AnMaster> ehird, yah
21:06:41 -!- adam_d_ has quit (Read error: 110 (Connection timed out)).
21:06:42 <ehird> That is already happening at a sub-glacial pace.
21:06:48 <AnMaster> well yes
21:06:48 <ehird> The outcome is boring and predictable.
21:06:54 <ehird> But Microsoft dying in one go?
21:06:55 <AnMaster> ehird, and what is the outcome?
21:06:58 <ehird> The world collapses. No exaggeration.
21:07:03 <AnMaster> that apple and linux replaces them?
21:07:05 <ehird> Every-fucking-thing in the world relies on Windows.
21:07:14 <ehird> Society would probably collapse until it's resolved.
21:07:17 <AnMaster> finally the year of the linux desktop?
21:07:19 <ehird> AnMaster: Or a new competitor.
21:07:38 <AnMaster> (which has been predicted for so long)
21:07:54 <ehird> 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 <ehird> Drive letters and all that.
21:08:07 <AnMaster> drive letters?
21:08:10 * AnMaster pukes
21:08:16 <ehird> Linux being chosen only because it's a base that's stable and easy to build upon.
21:08:22 <AnMaster> well yes
21:08:26 <ehird> AnMaster: The masses require familiarity.
21:08:51 <AnMaster> 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 <ehird> I dunno man, most people won't pay that much for a computer.
21:09:18 <AnMaster> ehird, also windows only needs one drive letter: c:
21:09:24 <ehird> AnMaster: CD-ROMs
21:09:25 <AnMaster> you can mount other stuff in directories
21:09:27 <ehird> Cameras
21:09:30 <ehird> etc
21:09:35 <AnMaster> ehird, sure you can't mount those in directories ?
21:09:40 <ehird> I don't think so.
21:09:44 <ehird> AnMaster: The public knows filesystems as purely physical.
21:09:44 <AnMaster> hm okay
21:09:48 <ehird> Folders and files are literarl.
21:09:54 <ehird> *files are literal
21:09:58 <ehird> They don't even use shortcuts, themself.
21:10:01 <ehird> *themselves
21:10:04 <AnMaster> ehird, well on macs they show up on the desktop, no?
21:10:07 <ehird> Have you ever seen a Windows user create a shortcut?
21:10:17 <ehird> AnMaster: People are confused by Macs.
21:10:22 <ehird> They sit at one and have no idea how to do anything.
21:10:22 <AnMaster> ehird, yes. My dad. created one for the floppy way way back
21:10:24 <ehird> I'm not joking.
21:10:32 <ehird> AnMaster: Okay, but you get my point.
21:10:38 <AnMaster> ehird, he isn't a computer literate really. He knows two programs: word and SPSS
21:10:44 <AnMaster> the latter is some statistical thingy
21:10:50 <AnMaster> oh and eudora (lol)
21:10:55 <AnMaster> forgot eudora
21:10:57 <AnMaster> he still uses it
21:11:06 <ehird> "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 <ehird> "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 <ehird> hi zzo38
21:13:27 <zzo38> 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 <ehird> Yes, that is portable and valid.
21:13:41 <AnMaster> zzo38, to begin with I would use more newlines
21:13:48 <ehird> AnMaster: stfu
21:13:48 <AnMaster> but yes it looks portable and valid
21:13:54 <ehird> he's zzo38, he can code however he wants
21:13:57 <AnMaster> wait a sec, sizeof test in there?
21:14:02 <zzo38> There is actual newlines in the actual code. But I pasted it here without newlines
21:14:19 <pikhq> zzo38: Any reason for the -5s?
21:14:29 <AnMaster> pikhq, the -5 would be invalid code
21:14:29 <ehird> Oh,
21:14:33 <ehird> zzo38: that's invalid
21:14:41 <AnMaster> yes it should be invalid IMO
21:14:41 <ehird> you can't have foo[-n]
21:14:46 <ehird> arrays must be of positive length
21:14:51 <ehird> and so, your entire code is invalid
21:15:03 <pikhq> Array declarations must be have naturals.
21:15:11 <AnMaster> and what pikhq said
21:15:14 <ehird> oh, I think what he's trying to do is make it fail to compile if those sizes don't match
21:15:14 <pikhq> ... English is hard today, apparently.
21:15:20 <ehird> zzo38: in which case, I'd suggest doing
21:15:29 <AnMaster> pikhq, unless it is in a function and C99
21:15:30 <ehird> #if sizeof(long)!=4||sizeof(blah)!=blah
21:15:31 <AnMaster> pikhq, VLAs
21:15:34 <ehird> #error DING DONG
21:15:35 <ehird> #endif
21:15:40 <AnMaster> ehird, you can't use sizeof() in #if iirc?
21:15:45 <zzo38> You can't use sizeof in preprocessor
21:15:48 <pikhq> AnMaster: I didn't say they must be constant.
21:15:51 <ehird> ugh
21:16:00 <ehird> zzo38: I see your intent
21:16:11 <AnMaster> zzo38, you could use gnu autoconf
21:16:18 <ehird> AnMaster: NO
21:16:22 <ehird> stop destroying zzo38's artistry :P
21:16:23 <zzo38> Of course, struct _test_sizes is not used anywhere else in the program. It is defined and then ignored
21:16:28 <AnMaster> zzo38, also relying on those sizes for short int and long in a program is damn stupid
21:16:38 <ehird> zzo38: so, we need a constant expression that is valid if a sizeof is correct, and invalid if it is incorrect
21:16:43 <ehird> but, as a whole, is correct
21:16:43 <AnMaster> zzo38, for example I have 4 byte int and 8 byte long
21:16:51 <zzo38> The reason I did it this way is because sizeof can't be used in preprocessor
21:17:16 <ehird> zzo38: if it works then use it, who cares about standards compliance for a lil hack :P
21:17:26 <AnMaster> ehird, I was joking about autoconf
21:17:26 <AnMaster> duh
21:17:31 <pikhq> zzo38: Might I suggest testing against the macros in limits.h?
21:17:32 <zzo38> I think this is standard compliant
21:17:38 <ehird> AnMaster: i know that
21:17:42 <ehird> but the other ones, still
21:17:57 <AnMaster> pikhq, very good idea
21:18:06 <AnMaster> ehird, see pikhq's suggestion
21:18:15 <zzo38> 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 <AnMaster> zzo38, no reason to break it if size varies. define some types like myuint64 or whatever
21:18:59 <AnMaster> for each size
21:19:06 <AnMaster> unless you use C99, then use stdint.h
21:19:10 <zzo38> 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 <pikhq> #if USHRT_MIN != 1<<(2*CHAR_BIT) - 1
21:19:16 <pikhq> #error DINGDONG
21:19:18 <pikhq> #endif
21:19:25 <AnMaster> pikhq, doesn't that assume two-complement?
21:19:30 <AnMaster> pikhq, what if we have sign bit instead?
21:19:32 -!- jpc has quit (Read error: 104 (Connection reset by peer)).
21:19:32 <pikhq> AnMaster: ... Yes.
21:19:39 <pikhq> ... Actually, no.
21:19:41 -!- jpc has joined.
21:19:48 <pikhq> USHRT_MIN is the unsigned short type.
21:19:51 <ehird> c requires 2-complement doesn't it
21:20:00 <pikhq> ehird: No.
21:20:00 <AnMaster> ehird, C doesn't iirc
21:20:06 <ehird> meh
21:20:09 <AnMaster> pikhq, it wouldn't break with one complement I think. But what about sign bit
21:20:18 <AnMaster> oh ushort
21:20:19 <AnMaster> hm
21:20:31 <AnMaster> pikhq, also that #error will give a syntax error
21:20:33 <AnMaster> :D
21:20:37 <pikhq> XD
21:20:42 <AnMaster> pikhq, you want #error "DINGDONG"
21:20:47 <pikhq> Yes.
21:21:21 <zzo38> 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 <AnMaster> zzo38, err wait why do you need that sizeof(short) == 2 for that fwrite call?
21:22:11 <zzo38> Because otherwise the file won't be readable on another computer
21:22:32 <AnMaster> idea: system independent stdint.h dropin for C89/C90 compilers
21:22:34 <ehird> you could write sizeof(short) inn the file
21:22:38 <ehird> so that it can read like that
21:22:40 <AnMaster> basically a huge mess of ifs and what not
21:22:40 <ehird> but meh
21:22:59 <zzo38> I have #define cell unsigned short
21:23:05 <zzo38> In case you didn't know what "cell" was
21:23:17 <AnMaster> zzo38, anything wrong with typedef? Just wondering
21:23:23 <pikhq> And *this* is why UNIX tends to serialise things as text. :P
21:23:26 <zzo38> No, nothing wrong with typedef
21:23:35 <AnMaster> and what pikhq said
21:23:51 <AnMaster> zzo38, if you use C99 use stdint.h
21:23:55 <zzo38> For all structures other than struct _test_sizes I used typedef struct (name) { } (name)
21:23:58 <AnMaster> otherwise try to write some logic to find it
21:24:16 <AnMaster> zzo38, thing is. that code is rather unportable. the case of short will probably work
21:24:28 <AnMaster> but anything above that you can't depend on
21:24:32 <ehird> zzo38: he meant for typedef unsigned short cell;
21:24:34 <ehird> as opposed to #define
21:24:35 <AnMaster> especially not long
21:24:42 <AnMaster> ehird, yep
21:24:47 <ehird> no big deal though
21:24:59 <ehird> in fact cpp is probably faster than introducing a type alias to the c compiler
21:25:08 <AnMaster> ehird, just find typedef cleaner, since for one thing that shows the typedefed type in gdb
21:25:15 <AnMaster> which IMO makes debugging easier
21:25:16 <ehird> zzo is probably above debuggers :P
21:25:17 -!- MigoMipo has joined.
21:25:22 <AnMaster> ehird, good point
21:25:30 <zzo38> 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 <ehird> heh, fun
21:25:58 <ehird> zzo38: or even just pass -Dcell=... to the compiler
21:26:03 <ehird> well, that would require that you do
21:26:09 <ehird> #ifndef cell
21:26:09 <AnMaster> #ifndef cell
21:26:09 <ehird> #define cell unsigned short
21:26:09 <ehird> #endif
21:26:10 <AnMaster> yeah
21:26:27 <ehird> autoconf is dead; -D= is the new configuration system! xD
21:26:36 <AnMaster> ehird, does compilers for cell processors define cell I wonder
21:26:41 <ehird> lol
21:26:46 <AnMaster> well it should be __cell__ or __cell or such
21:26:48 <AnMaster> but who knows
21:26:56 <zzo38> Yes, I guess I should do #ifndef cell so that you can change it
21:26:59 <ehird> "and what if I had a computer named i?@
21:27:02 <ehird> *i?"
21:27:05 <ehird> "that did #define i 1?"
21:27:08 <ehird> "WHAT THEN, BITCHES?"
21:27:08 <zzo38> I think probably compilers for cell processors might define CELL but not cell
21:27:17 <AnMaster> ehird, syntax error probably
21:27:20 <ehird> zzo38: old macintosh compilers did #define macintosh, for some odd reason
21:27:31 <ehird> AnMaster: ANY CODE NAMING A VARIABLE i IS UNPORTABLE
21:27:49 <AnMaster> ehird, :)
21:28:08 <AnMaster> ehird,
21:28:10 <AnMaster> $ echo | gcc -dM -E - | grep -v '#define __'
21:28:10 <AnMaster> #define _FORTIFY_SOURCE 2
21:28:10 <AnMaster> #define unix 1
21:28:10 <AnMaster> #define linux 1
21:28:10 <AnMaster> #define _LP64 1
21:28:12 <ehird> debian-installer is nice
21:28:20 <ehird> well, for desktops it's too involved; for servers, though, it's smoooth
21:28:24 <AnMaster> ehird, at least you can't name a variable unix or linux!
21:28:25 <ehird> specifically the graphical interface
21:28:28 <ehird> AnMaster: ha
21:28:36 <ehird> there should be a #define NO_SHITTY_DEFINES
21:28:42 <ehird> which stops definitions like that
21:28:48 <AnMaster> ehird, -ansi?
21:28:55 <ehird> nah
21:28:58 <AnMaster> ehird, -ansi removes them
21:28:59 <AnMaster> just fyi
21:29:00 <ehird> the logic would be simple
21:29:03 <ehird> any variable all in lowercase
21:29:08 <ehird> and not preceded by _
21:29:09 <AnMaster> ehird, so does -std=c99
21:29:10 <ehird> is turned into
21:29:13 <ehird> _SHITTY_DEFINE_(name)
21:29:25 <ehird> in fact it'd probably have to be a cpp command
21:29:27 <ehird> #NO_SHITTY_DEFINES
21:29:28 <AnMaster> ehird, augh
21:29:40 <AnMaster> ehird, #pragma no_shitty_defines
21:29:41 <AnMaster> rather
21:29:47 <ehird> INSUFFICIENTLY UPPERCASE
21:29:58 <AnMaster> ehird, pragmas are generally lower case though
21:30:01 <AnMaster> not my fault
21:30:06 <ehird> INSUFFICIENTLY UPPERCASE
21:30:31 <AnMaster> ehird, why don't we do #DEFINE then
21:30:48 <AnMaster> (apart from that that is probably a syntax error)
21:31:31 <ehird> #YEEAAAAAAAAAAAAAAAAAAAAAAAAAAAH
21:31:55 <pikhq> #pragma no-really-no-fucking-shitty-defines
21:32:15 <AnMaster> what about adding functions in the pre-processor
21:32:31 <AnMaster> while we are at it
21:32:34 <AnMaster> making it more useful
21:32:49 <AnMaster> like the author of the synthesis OS suggested
21:33:45 <pikhq> 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 <AnMaster> "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 <AnMaster> 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 <AnMaster> 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 <ehird> we're on the seventh letter, G, and it's been going for 75 months
21:34:09 <AnMaster> epeatedly invokes it, passing it 0, 1, 2, ... and so on, up to the largest status register value (128)."
21:34:11 <AnMaster> </spam>
21:34:11 <ehird> = 10.71 months per letter
21:34:14 <AnMaster> ehird, ^
21:34:21 <AnMaster> and pikhq ^
21:34:38 <ehird> so, with 19 letters left
21:34:51 <ehird> it will take 203 and a half months for qi to complete
21:35:02 <ehird> which is a little over 17 years
21:35:13 <AnMaster> ehird, who is that person and what is QI?
21:35:22 -!- FireyFly has joined.
21:35:23 <zzo38> When I did: echo | gcc -dM -E - | grep -v '#define __'
21:35:23 <ehird> 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 <AnMaster> zzo38, yes?
21:35:49 <zzo38> I got: _WIN32 _stdcall _cdecl _fastcall _X86_ WIN32 WINNT i386 _INTEGRAL_MAX_BITS
21:35:50 <ehird> AnMaster: Stephen Fry is a British national treasure, hilarious, and the host of QI.
21:36:02 <Pthing> britain's favourite homo
21:36:02 <AnMaster> zzo38, well those with a single _ in front is no issue
21:36:07 <AnMaster> that leaves
21:36:11 <ehird> 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 <AnMaster> WIN32 WINNT i386
21:36:14 <AnMaster> as bad ones
21:36:16 <ehird> Pthing: not saying much
21:36:30 <Pthing> there's a lot of competition
21:36:38 <ehird> AnMaster: QI is a comedy loosely disguised as a quiz show.
21:36:43 <AnMaster> ah
21:36:55 <AnMaster> ehird, and where does the getting to letter G and such come into it
21:37:11 <ehird> 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 <ehird> *premise
21:37:24 <ehird> AnMaster: one series = topics starting with that letter in the alphabet
21:37:28 <AnMaster> ah
21:38:03 <ehird> 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 <ehird> [[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 <ehird> not.]]
21:38:45 <AnMaster> ehird, so that will take 'Q'-'G' number of episodes?
21:39:02 <ehird> AnMaster: whut
21:39:12 <AnMaster> ehird, if it was one letter per episode?
21:39:15 <AnMaster> or what did you mean
21:39:18 <ehird> one letter per series
21:39:20 <AnMaster> oh
21:39:23 <ehird> (season, whatever your country calls it)
21:39:24 <AnMaster> how long is a series?
21:39:40 <AnMaster> ehird, season % Swedish spelling
21:39:44 <ehird> http://en.wikipedia.org/wiki/List_of_QI_episodes#Series
21:39:54 <ehird> I guess I should work out the average length of a series and go from there
21:40:11 <ehird> rather than just time/# of seasons
21:40:56 <AnMaster> ehird, it seems to vary
21:41:16 <ehird> 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 <ehird> and seventh one four monthsh
21:42:02 <ehird> so on average, 3.14 (!!) months per season
21:42:06 <AnMaster> ehird, there was one series per year to begin with
21:42:12 <AnMaster> then later two?
21:42:21 <ehird> oh, well spotted
21:42:31 <ehird> "QI is a 26-year-long project" says wikipedia anyway
21:42:34 -!- augur_ has changed nick to augur.
21:42:38 <AnMaster> okay
21:43:01 <ehird> so fry should be 72 when it's finished
21:43:12 <ehird> some chance of him dying, but not too great
21:43:18 <ehird> large chance of him getting bored and doing sosmething else
21:43:42 <AnMaster> "Everything, Etc."
21:43:44 <AnMaster> hah
21:44:11 <AnMaster> "Fingers and Fumbs" <-- that one was quite nice too
21:44:18 <AnMaster> ehird, is it good?
21:44:19 <ehird> episode 77: "Ganimals"
21:44:21 <AnMaster> the series
21:44:22 <ehird> AnMaster: yes
21:44:38 <AnMaster> "Ganimals"... that's stretching it a bit I think..
21:45:08 <ehird> Presumably, animals starting with G.
21:45:13 <AnMaster> "A Galimaufrey of Gingambobs"
21:45:18 <AnMaster> can you explain that one
21:45:21 <AnMaster> the title I mean
21:45:24 <AnMaster> it has yet to be aired
21:45:32 -!- zzo38 has left (?).
21:45:41 <ehird> No idea.
21:45:59 <AnMaster> I have heard thingambobs.
21:46:02 <AnMaster> iirc you said it
21:46:12 <AnMaster> 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 <ehird> 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 <AnMaster> galimaufrey (Grose 1811 Dictionary)
21:46:35 <AnMaster> galimaufrey
21:46:35 <AnMaster> A hodgepodge made up of the remnants and scraps of the larder.
21:46:38 <AnMaster> heh
21:46:47 <ehird> "A hotchpotch, jumble or confused medley."
21:46:54 <ehird> if my realname is ehird, then emails get sound out as ehird
21:47:07 <AnMaster> ehird, what?
21:47:07 <ehird> i guess it depends how much I identify with ehird vs Elliott Hird
21:47:13 <ehird> AnMaster: unix real name field
21:47:17 <AnMaster> ah
21:47:19 <ehird> *get sent out
21:47:21 <AnMaster> aha
21:47:29 <ehird> From: realname <username@host>
21:47:31 <AnMaster> ehird, well the sent thing explains a LOT
21:47:32 <AnMaster> :P
21:47:33 <ehird> is the unix mail system
21:47:39 <ehird> AnMaster: wat
21:47:43 <AnMaster> ehird, the sound be seriously confused me
21:47:47 <AnMaster> s/be/bit/
21:47:47 <ehird> right :P
21:47:56 <AnMaster> not that I manage very well either
21:48:19 <ehird> i guess i identify as Elliott Hird if you ask me what my name is...
21:48:36 <ehird> 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 <ehird> (even if they knew my real name too)
21:49:51 * AnMaster changes format string
21:49:57 <AnMaster> ehird, now I can't see your nick ;P
21:50:00 <AnMaster> (temporarily
21:50:01 <AnMaster> )
21:50:13 <AnMaster> I just see <> for everyone, well I see myself due to different colour
21:50:19 <ehird> I want a game where you get lines from an irc channel and have to identify who said them
21:50:28 <AnMaster> ehird, I could manage zzo :)
21:50:36 <ehird> I bet for recent chat in here (say 2008 onwards) I could get >70% accuracy
21:52:16 <lament> try this one
21:52:29 <ehird> did i say 100% accuracy
21:52:30 <lament> <########> ehird, now I can't see your nick ;P
21:52:36 <ehird> ooh ooh
21:52:37 <ehird> I guess
21:52:39 <ehird> lament
21:52:47 <ehird> lament said "<########> ehird, now I can't see your nick ;P"
22:01:55 <AnMaster> any English speakers: what is the past tense of seek?
22:02:20 <pikhq> Sought.
22:03:34 <AnMaster> pikhq, ah
22:03:41 <AnMaster> pikhq, seeked sounded so wrong
22:03:56 <pikhq> Isn't English wonderful?
22:04:09 <AnMaster> pikhq, aye it is
22:07:02 <ehird> Anyone use Debian sid?
22:10:08 <ehird> pikhq?
22:10:10 <ehird> Or used, even.
22:10:25 <fizzie> I do, but I'm not very much here at the moment.
22:10:58 <ehird> fizzie: How likely is installing sid directly via netinstall from the http://www.debian.org/devel/debian-installer/ page to work?
22:11:11 <pikhq> ehird: Nah; when I used Debian for my desktop, I'd use testing with a few packages from sid.
22:11:21 <ehird> 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 <AnMaster> Weird spam: "50% of on luxary sex farm"
22:12:36 <AnMaster> yes the typo was there
22:12:55 <AnMaster> and already deleted
22:15:03 <fizzie> 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 <fizzie> 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 <ehird> Do you think mirrorservice.org in the UK will be up to date as the official UK mirror?
22:18:23 <fizzie> "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 <AnMaster> fizzie, aren't mirrors supposed to sync on a specific schedule?
22:19:02 <AnMaster> the gentoo ones are
22:19:27 <AnMaster> as in, every half hour such that the minutes modulo 30 is between 0 and 5
22:19:49 <AnMaster> (that means between whole our and 5 minutes past and half hour and half hour + 5 minutes)
22:29:36 <fizzie> AnMaster: I'm sure there's some sort of guidelines for the primary mirrors (that have ftp.<country>.debian.org names), but the list has a bazillion "secondary mirrors" for which the requirements might be less strict.
22:29:48 <AnMaster> ah
22:30:22 <fizzie> The mirror list says for primary mirrors just "They are all automatically updated whenever there are updates to the Debian archive."
22:31:06 <fizzie> 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 <AnMaster> hm
22:31:32 <AnMaster> 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 <ehird> It would be... interesting.
23:06:35 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
23:07:59 <ehird> AnMaster: are erlang bit pattern things two-way?
23:08:07 <ehird> i.e. say you have
23:08:26 <ehird> <<X:1,Y:4,1:1>>
23:08:39 <ehird> can you do somefunc(that, X=foo, Y=bar)
23:08:43 <ehird> and get some binary data back?
23:09:10 <ehird> or is it simply <<X:1,Y:4,1:1>> is the binary data when used as an expression?
23:10:12 <pikhq> ehird: I'm pretty sure you can pattern-match them, yes.
23:10:22 <ehird> That's the whole point.
23:10:28 <ehird> I mean can you produce binary through them?
23:10:43 <pikhq> I thought so.
23:11:26 <ehird> 1> <<1:1>>.
23:11:26 <ehird> <<1:1>>
23:11:28 <ehird> Jury's out
23:11:33 <ehird> How do you print in Erlang :P
23:12:27 <pikhq> io:fwrite( foo )
23:13:34 <ehird> 3> io:fwrite(<<97:8>>).
23:13:34 <ehird> aok
23:13:39 <ehird> I guess everything's a-OK!
23:14:05 <ehird> 5> X=3, io:fwrite(<<X:8>>).
23:14:06 <ehird> ^Cok
23:14:07 <ehird> Tee hee cock
23:14:40 <pikhq> So, yes, it works that way.
23:15:43 <ehird> 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 <ehird> Probably the former
23:15:47 -!- FireyFly has quit (Read error: 110 (Connection timed out)).
23:15:53 <ehird> Not too much of a big deal, I guess:
23:16:33 <ehird> parse(<<blah>>) -> {vars}.
23:16:48 <ehird> deparse({vars}) -> <<blah>>.
23:16:51 <ehird> Still, it would be nice.
23:18:14 <AnMaster> back
23:18:32 <AnMaster> <ehird> AnMaster: are erlang bit pattern things two-way? <-- you can use bit patterns both to construct and to match
23:18:35 <AnMaster> if that is what you mean
23:18:41 <ehird> AnMaster: Yes.
23:18:42 <ehird> One question though.
23:18:53 -!- olsner has quit (Read error: 110 (Connection timed out)).
23:19:02 <ehird> If I have some binary format, and want parse(binary) -> {vars}
23:19:06 <ehird> and deparse({vars}) -> binary
23:19:13 <ehird> do I really have to write out the binary syntax thing <<>> twice?
23:19:49 <pikhq> I think so. :/
23:20:06 <AnMaster> 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 <AnMaster> ehird, macros are relatively clean in erlang
23:20:33 <AnMaster> for one thing they have a separate namespace
23:20:44 <AnMaster> nothing will be macro expanded without a ? in front
23:20:49 <AnMaster> like ?MYMACRO
23:21:26 <ehird> Okay, gimme an example macro definition then?
23:25:12 <AnMaster> ehird, sec
23:25:40 <AnMaster> -define(REGISTER_NAME, {global, ?SERVER}).
23:26:26 <ehird> does that define SERVER or REGISTER_NAME?
23:26:43 <pikhq> REGISTER_NAME.
23:26:56 <ehird> is the global thing part of the expansion?
23:27:23 <pikhq> REGISTER_NAME evaluates to {global, ?SERVER}, yes...
23:28:32 <ehird> well it could be like an option whether to define it as global or local or something
23:28:33 <ehird> I don't know
23:28:57 -!- FireFly has joined.
23:29:24 <ehird> 1> -define(PROTOCOL, <<X:4, 0:1, Y:4>>).
23:29:25 <ehird> * 1: variable 'PROTOCOL' is unbound
23:29:34 <pikhq> 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 <ehird> pikhq: I asked the question but the answer only asked more
23:30:46 <ehird> 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 <pikhq> Fair 'nough.
23:30:57 <pikhq> Pity that it doesn't.
23:31:07 <pikhq> That'd imply a much more flexible macro system.
23:31:16 <pikhq> Macros in Erlang have file scope.
23:31:23 <ehird> x_x
23:32:04 <pikhq> And that's just "define FOO as a macro with expansion {global, bar}"
23:32:19 <ehird> <<...>> is called a bitstring, isn't it
23:32:35 <pikhq> Yes.
23:32:50 <ehird> hmm
23:32:54 <ehird> is there an operator to concatenate them
23:33:05 <ehird> like, you can do <<97:8>> ++ <<98:8>> and get ab
23:33:17 <pikhq> Probably, but I'm not sure what it is.
23:33:22 <pikhq> ... It might actually be ++.
23:33:27 <ehird> or f(<<97:8>> ++ <<98:8>>) == f(<<97:8, 98:8>>)
23:33:42 <ehird> 2> <<97:8>> ++ <<98:8>>.
23:33:42 <ehird> ** exception error: bad argument
23:33:42 <ehird> in operator ++/2
23:33:42 <ehird> 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 <ehird> epilogue?
23:37:15 -!- jpc has quit (Read error: 60 (Operation timed out)).
23:39:00 <fizzie> Postlude.
23:39:02 <fizzie> Has to be!
23:40:33 <fizzie> 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 <AnMaster> <ehird> 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 <AnMaster> and it was globally registered
23:55:45 <AnMaster> the otp gen_server I mean
23:56:12 <ehird> brb
23:56:36 <AnMaster> pikhq, Gregor: either of you there
23:56:42 <AnMaster> emergency
23:56:45 <pikhq> No.
23:57:48 <AnMaster> 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 <AnMaster> we know he lives in Las Vegas, Nevada
23:58:11 <AnMaster> and that he is probably 39 or a bit more
23:58:44 <AnMaster> pikhq, are you saying no to doing that?
23:59:05 <pikhq> I'm doubting the feasibility of such a thing...
23:59:10 <pikhq> Las Vegas is freaking huge.
23:59:20 <AnMaster> 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 <AnMaster> pikhq, well we know his name too
23:59:44 <AnMaster> there is a high probability it is probably his real name
23:59:50 <pikhq> Additionally, I don't have much in the way of ability to call long distance.
23:59:58 <AnMaster> pikhq, we also know he lived in Zurich some years ago
←2009-12-21 2009-12-22 2009-12-23→ ↑2009 ↑all