00:00:28 Well it's either that, or get a ham radio operator's license, clearly. 00:00:38 -!- relet1 has quit (Quit: Leaving.). 00:00:49 Ligature! 00:01:03 Phantom_Hoover: Quite so. 00:01:17 cpressey, you use Libertine too? 00:01:36 Nope. But I know you're excited about it. 00:01:56 Ligatures! 00:01:58 I use a font called (I think) "Crap Windows Font" 00:02:54 How crap. 00:03:15 I was going to s/// on that, but it's way better that way. 00:07:41 ‏heyo 00:08:12 Incidentally, why is Basic generally viewed as an offence to computing? 00:08:12 Ooh. I dunno about your client, but my client displays that right-justified. 00:08:30 What? 00:08:34 Phantom_Hoover: Because the masses do not understand the beauty of GOTO. 00:08:54 cpressey, pff. Goto is the poor man's call/cc. 00:09:16 Phantom_Hoover: Hey, you asked. 00:10:12 I will design a language and put up a sign that says "DO NOT WRITE CRAP CODE IN THIS LANGUAGE" and it will be the best language. 00:10:35 Heh. 00:11:08 How about make it reject any programs with spelling or grammatical errors in the comments or procedure names? 00:14:38 10 REM O HAI 00:17:00 GOTO is sometimes useful. But sometimes there is better ways, depending on what programming language you use and what you are trying to do with it. 00:17:36 zzo38, goto is an offence against god! 00:18:26 Phantom_Hoover: I disagree. 00:18:39 zzo38, HERETIC 00:20:38 I want to write a feat and spell in D&D game called "Merciful to Gibbering Mouthers", so that my character can have that feat and that spell. 00:26:44 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 00:31:22 If you play D&D game which class/race/feat/spell you should prefer to use instead? 00:35:08 -!- tombom__ has quit (Quit: Leaving). 00:38:41 Poet. 00:38:43 .quit 00:38:49 Or, y'know 00:38:50 -!- cpressey has quit (Quit: Leaving.). 00:47:23 * Sgeo still has yet to wrap his mind around thisContext 00:48:09 it's always either this or that 00:49:13 Sgeo: it's a souped-up continuation 00:49:17 basically a first-class representaiton of the call stack 00:49:28 Is it always a MethodContext, or can it be a BlockContext? 00:49:42 Presumably the latter if you say thisContext in side of a block. Maybe. 00:49:43 Not sure. 00:49:47 Maybe blocks inherit it upwards for convenience. 01:04:51 -!- Killerkid has joined. 01:10:54 Killerkid: So you're a kid that kills? 01:13:05 Killerkid: And apparently doesn't speak. 01:15:08 -!- Wamanuz has quit (Remote host closed the connection). 01:20:24 -!- AnMaster has quit (Quit: ZNC - http://znc.sourceforge.net). 01:20:31 Quite. 01:20:35 Quite Quit, Quine. 01:20:37 Quill. 01:20:42 Quirks. 01:27:31 I'm going to bite the bullet and try Squeak proper 01:29:30 if it squeaks, it's not a real bullet. i think. 01:32:14 Hmm. Now I have a good *reason* to typeset public domain books. 01:32:32 Now to wonder what the optimal dimensions are for a PDF on here. 01:34:07 Public Domain Format 01:36:38 Sgeo: Pharo IS Squeak proper. 01:36:40 Sgeo: Literally. 01:36:45 Sgeo: They just improved a lot. 01:36:56 Sgeo: In fact, practically nobody recommends plain Squeak any more. Pharo is where it's at. 01:37:05 Telemorphic looks fun 01:37:18 Pharo doesn't have its own tools or anything, it just bundles good shit that you'll use anyway, makes it look less like it was drawn with crayons, and is basically ongoing development. 01:38:20 But does Pharo have stable FFI yet? I mean, it's the Squeak VM, yet somehow it seems up in the air 01:38:43 Squeak doesn't have a stable FFI either. 01:38:56 ??? 01:39:03 Alien? Native FFI thingy? 01:39:27 Well, yeah, okay, so it is stable. 01:39:33 Pharo supports it too. 01:39:35 Pharo is based on Squeak, you know ... 01:39:37 Recent Squeak. 01:39:46 I was just making a snarky reference to FFIs sorta being anti-Smalltalk. 01:45:17 alise: DEBIAN FOREVARZ 01:53:18 -!- alise has quit (Remote host closed the connection). 01:53:54 -!- alise has joined. 01:53:58 Quite. 01:59:53 Hmm, afaict, what was meant on the Pharo homepage was the possibility of being included with the default image 02:00:51 * Sgeo mutters about structs whose size is determined at runtime 02:01:52 phar out 02:01:55 Gregor: lulz 02:02:07 Hm 02:02:17 * Gregor wonders why he just got a "lulz" 02:02:27 Due to Alien limitations, I might need to write some C for this 02:02:43 Gregor: For saying "DEBIAN FOREVARZ" 02:02:57 Ah. I thought that's what "Quite." was to X-P 02:03:14 Quiet lulz. 02:03:24 I don't think you can write structs whose size is determined at runtime, in C, you have to fake it. (GNU C offers some ways to fake it) 02:03:56 WHYY WON'T MY DNS CACHE FLUSH SO I CAN BE RID OF OPENDNS 02:03:59 n/m possibly 02:04:01 zzo38: JUST USE MALLOC 02:04:07 I AM WRITING IN UPPER CASE, LIKE THE ROMANS DID. 02:04:13 -!- nooga_ has joined. 02:04:18 hi 02:04:21 CTO http://theendisnear.no-ip.org/index.html 02:04:24 THAT IS BECAUSE I AM ROMAN; HENCEFORTH ALL OCCURENCES OF THE LETTER "U" SHALL BE REPLACED BY "V". 02:04:30 VRANVS IS A PLANET 02:04:46 FVCK 02:05:00 -!- nooga_ has changed nick to nooga. 02:05:00 VRANVS? FVCK THAT 02:06:04 alise: You can use malloc but that doesn't change the size of a struct, it only changes the size of the memory allocated for it. GNU C allows you to have array size to be zero so that you can add the size 02:06:18 romans invaded england 02:06:33 you're not roman, you're english 02:06:43 FVCK YOV 02:06:52 SVRE 02:07:24 VERILY I HAVE DISCOVERED VPON OCCASION THAT TALKING LIKE THIS IS THE MOST RELAXING THING A MEMBER OF MODERN SOCIETY CAN DO 02:07:51 THAT'D BE VNTRVE 02:08:47 the mostrelaxing way of taling is talking like a troll 02:08:55 talking* 02:09:06 QVITE INACCVRATE MY GOOD SIR 02:09:30 I BEG TO DIFFER 02:10:19 SHVT VP 02:10:19 I BEG FOR MERCY 02:10:26 GREGOR: DENIED 02:10:34 Gregor: OK 02:11:00 THY DENIAL OF MERCY HAST CURS'T THOU TO A LIFE MOST FOVL. 02:11:22 Dam nit 02:11:25 *damn it 02:11:26 "THOV" 02:11:31 THOV XD 02:11:42 GREGOR: CVRST, TOO 02:11:47 But I am different. I hav enot deny some mercy 02:11:49 I svck at this :( 02:11:51 THY DENIAL OF MERCY HAST CVRST THOV TO A LIFE MOST FOVL 02:11:52 s/hav enot/have not/ 02:12:05 GREGOR: I SVGGEST VSING SED OR PERL 02:12:29 alise: THAT IS SO LAME. THERE ARE NO EWES IN THESE SENTENCES. 02:13:06 VERILY I HAVE DISCOVERED THAT VPON OCCASION THE FOLLOWING PERL SCRIPT IS VSEFVL: 02:13:08 PERL -PE 'S/[VV]/V/G' | TR 'A-Z' 'A-Z' 02:13:18 TRANSLATION TO NONROMAN FORM LEFT AS AN EXERCISE TO THE READER 02:13:28 lvlz 02:14:14 http://en.wikipedia.org/wiki/Certificate_in_Advanced_English 02:14:32 i'm going to pass that 'with flying colours' 02:14:38 how cool is that!? 02:14:52 I DO NOT KNOW OF WHAT THE PVRPOSE IS TO THIS CERTIFICATE BVT HOWEVER I SVGGEST THAT IT IS INFERIOR TO THE CERTIFICATE IN STANDARD ROMAN 02:14:55 -!- alise has changed nick to ALISE. 02:15:02 VERILY 02:15:03 oh 02:15:05 well 02:15:07 nooga: Going to? 02:15:14 yeah 02:15:27 Getting a little bit ahead of ourselves? 02:15:34 what? :P 02:15:56 GETTING A HEAD OF YOVRSELF IS A POPVLAR ROMAN EVPHEMISM FOR AVTOFELLATIO 02:16:02 it's just called ADVANCED 02:16:10 okay 02:16:14 I WILL 02:16:18 better? 02:16:22 No 02:16:35 awesome :/ 02:16:39 S 02:16:40 Don't count your chickens before they've hatched? 02:16:42 SOMEBODY LAVGH AT MY HILARIOVS GETTING A HEAD OF YOVRSELF JOKE 02:16:53 alise: I refvse. 02:17:03 vvvv 02:17:14 -!- Gregor has changed nick to NO_V. 02:17:15 This is the code you have to use, instead: l@>>perl.$> vvvv@d for(;;)}}{{{ ===@m ll.$THISISNOTAPIPE | pipetex texpipe | 02:17:17 * NO_V takes a vow. 02:17:24 Errr 02:17:24 *uow 02:17:26 Bow ... 02:17:33 OH THE IRONY 02:17:37 OH THE BEAVTIFVL IRONY 02:17:38 * Sgeo installs Alien with a lot of help from #squeak 02:17:48 -!- NO_V has changed nick to Gregor. 02:17:57 * pikhq has determined that it is basically just painful to create a PDF for reading on a phone 02:18:06 pikhq: I'll bet. 02:18:13 Then don't create a PDF for reading on a phone 02:18:21 IT IS FVNNY BECAVSE YOVR NAME IS "NO_V" 02:18:34 facite iudicium et iustitiam et liberate 02:18:34 vi oppressum de manu calumniatoris et advenam et pupillum et viduam nolite 02:18:34 contristare neque opprimatis inique et sanguinem innocentem ne effundatis 02:18:35 in loco isto 02:18:40 Use gzipped DVI format encoded in QR code 02:18:54 this is from the city hall of my city 02:19:00 how cool is that?! 02:19:25 YET YOV VTILISED THE LETTER "V" 02:19:36 VROLOGY 02:19:49 VULNERABLE 02:19:50 FACITE IVDICIVM ET IVSTITIAM ET LIBERATE 02:19:51 VI OPPRESSVM DE MANV CALVMNIATORIS ET ADVENAM ET PVPILLVM ET VIDVAM NOLITE 02:19:52 CONTRISTARE NEQVE OPPRIMATIS INIQVE ET SANGVINEM INNOCENTEM NE EFFVNDATIS 02:19:52 IN LOCO ISTO 02:20:01 VVLNERABLE 02:20:03 -!- zzo38 has quit (Remote host closed the connection). 02:20:13 Let's see about a reader of free eBooks, then. 02:20:30 PIKHQ: WHY DID YOV BVY A CRAPPY PHONE? 02:20:42 ALISE: $0.00 02:20:51 PIKHQ: HOW COME 02:21:12 PIKHQ ALSO I HAVE NOW ABANDONED THE VSE OF PVNCTVATION IT IS VNROMANLIKE 02:25:00 -!- augur has quit (Remote host closed the connection). 02:25:13 -!- augur has joined. 02:25:18 ALISE 02:25:21 * ALISE PLAYS FIVE CLICKS TO JESVS 02:26:06 PLEASE TRANSLATE MY QUOTE FORM CITY HALL ELEVATION 02:26:11 VVOULD YOU? 02:26:20 "VVOULD" 02:26:24 FAIL 02:26:32 I VNFORTNATELY CANNOT READ LATIN 02:26:34 VV -> W ? 02:26:51 DOUBLE V? ISN'T IT? 02:27:03 TOVCHE 02:27:13 nooga: YES, THAT IS THE ETYMOLOGY 02:27:27 VVOVLD YOV 02:27:38 OH 02:27:43 nooga: AND IT USED TO BE WRITTEN AS "VV" OR (ABOMINATION) "UU". 02:27:58 CRAPULUS 02:28:03 Gregor: [[Christianity in the United States]] does not link to Jesus. Can you believe that? 02:29:09 Gregor: Why is 5CTJ so slow? 02:29:38 pikhq: where are you from? 02:30:06 are you a native speaker of english? 02:30:39 us, yes 02:30:43 i like to answer people's questions for them 02:30:44 -!- ALISE has changed nick to alise. 02:31:41 this thread is about cut vs uncut nao! 02:32:07 x_x 02:32:19 Let's assume you're talking about films! 02:32:45 nooga: United States of America, and native speaker. 02:32:56 I ALREADY ANSWERED THE QUESTION FOR YOU 02:33:04 WHO DO YOU THINK YOU ARE, ANSWERING YOUR OWN QUESTIONS 'N SHIT 02:33:05 pikhq: that's so rad 02:33:15 I'm a native speaker too, is that rad? 02:33:20 it is 02:33:23 sure 02:33:32 Yay radness 02:33:53 i'm so awkward in using your native tongue 02:33:57 heh 02:34:27 Don't worry, so are we. 02:34:53 :| 02:36:23 i can't understand Scots :| 02:36:48 nor can we! 02:36:55 yeah 02:37:02 the best laid plans o' mine an' men / gang aft agley 02:37:06 *mice 02:37:08 first line: okay 02:37:14 i've been to a scottish house party with some guys from london 02:37:17 second line: gonna assume that's "gong", aft sounds like "oft"... Agley?! 02:37:17 alise: Because it is lame. 02:37:20 What the fuck, Burns? 02:37:28 Gregor: Make it cool. 02:37:35 "Cheez (music)" HOW DO I GET TO JESUS 02:38:16 -> some country -> religion in some country -> Christianity -> Jesus 02:38:33 Yeah, it should be harder. 02:38:36 Like "find the longest path to Jesus". 02:39:08 Gregor: It doesn't allow category pages :( 02:39:15 "Five clicks to Stalin" 02:39:26 Five clicks to FPGA 02:39:28 and then i was stoned and i was talking with the londoners and trying to pick up a scottish girl and i failed because i couldn't understand her speaking 02:39:34 sooo ... 02:39:34 Five clicks to autoerotic asphyxiation 02:40:18 jive! 02:42:40 Five clicks to Wikipedia 02:44:15 pive clicks to hell 02:44:20 f 02:44:24 darn 02:44:36 i'm too tired 02:45:40 Five clicks to Where You Started 02:46:03 Five clicks to Special:Random 02:46:40 alise: one thing, how did you've manage to get from fpga to erotic asphyxiation? 02:47:05 i didn't 02:47:07 oh 02:47:09 sry 02:47:10 although i gotta try that now 02:47:17 Gregor: new challenge 02:47:18 :P 02:47:19 now i see 02:47:38 too tired 02:48:13 i was coding for 8 hours straight, i guess i'm not in the best shape 02:50:24 Field-programmable gate array -> Ross Freeman -> Michigan -> United States of America -> Sexual revolution -> Sexuality -> Human sexuality -> Index of human sexuality articles -> Sexual fetishism -> 02:51:33 Field-programmable gate array -> Ross Freeman -> Michigan -> United States of America -> Sexual revolution -> Sexuality -> Human sexuality -> Index of human sexuality articles -> Sexual fetishism -> List of paraphilias -> Autoerotic asphyxiation 02:51:43 That's 10 clicks from FPGA. 02:51:52 Gregor: nooga: FPGA to autoerotic asphyxiation in less than 10 clicks. Go. 02:54:54 awesome 02:55:04 i'll try that 02:57:58 alise: I feel that I'm close ... 02:58:06 TMI 02:58:53 United States of America -> Sexual revolution -> Sexuality -> Human sexuality -> Index of human sexuality articles -> Sexual fetishism -> List of paraphilias -> Autoerotic asphyxiation 02:59:01 USA -> deviation 02:59:07 nooga: wha? 02:59:09 you start at FPGA 02:59:11 not USA 02:59:14 "List of sex positions"'s picture of fellatio is of gay fellatio. I approve :P 02:59:31 In fact, its picture of cunnilingus is also gay. I also approve. 02:59:39 huh 03:00:00 Gregor: are you gay? :D 03:00:14 Depends who's asking :P 03:00:26 lol 03:01:31 Gregor: How many clicks? 03:01:43 alise: I haven't gotten there yet, I got distracted by Wikipedia porn :P 03:01:54 The highest-quality of all porn! 03:02:54 http://en.wikipedia.org/wiki/BDSM <- not about Badly Developed Sadol Machine ;| 03:03:39 FPGA -> medical imaging -> organ (anatomy) -> sex organs -> sex -> category: human sexuality -> same as yours from here. 03:03:47 So nine 03:04:25 but look at the rich references 03:05:39 Gregor: Categories are cheating dude 03:05:45 alise: So's your face. 03:07:19 beh 03:07:19 gn8 03:07:19 G'neight. 03:07:19 -!- nooga has quit (Quit: Lost terminal). 03:07:19 Actually, every picture on "List of sex positions" that's meaningful for gay couples is gay. Bahahahaha. 03:07:21 Including "cunnilingus"! 03:07:34 FPGA -> Bredboard -> Cutting board -> Vegetable -> 03:07:35 Uhh, yes. 03:07:40 I sure hope I can rely on Wikipedia's perversity. 03:08:08 FPGA -> Breadboard -> Cutting board -> Vegetable -> Seed -> 03:08:33 FPGA -> Breadboard -> Cutting board -> Vegetable -> Seed -> Seed (disambiguation) -> 03:08:41 This is going to suck 03:09:29 FPGA -> Breadboard -> Cutting board -> Vegetable -> Seed -> Seed (disambiguation) -> Semen -> 03:09:57 FPGA -> Breadboard -> Cutting board -> Vegetable -> Seed -> Seed (disambiguation) -> Semen -> Autofellatio -> 03:10:04 If nothing else, this will be an amusing route. 03:10:16 FPGA -> Breadboard -> Cutting board -> Vegetable -> Seed -> Seed (disambiguation) -> Semen -> Autofellatio -> Autoeroticism -> 03:10:43 I give up. 03:11:41 haha @ seed (disambiguation) 03:11:42 that's nice 03:11:58 I was sort of going for the humour angle that time. :P 03:14:01 Well... I had best be going soon. 03:14:07 Have to be up at 8 and all. 03:15:15 -!- sshc_ has joined. 03:17:15 I AM TOTALLY GONE LOL (i'm not) 03:18:07 -!- sshc has quit (Ping timeout: 258 seconds). 03:21:19 I will now be disapparating. 03:21:24 Hopefully. 03:21:48 Bye. 03:21:50 -!- alise has quit (Quit: Leaving). 04:01:08 http://www.cs.purdue.edu/people/images/graduate_students/gkrichar.jpg Wow, this is like, the worst picture of me ever. 04:01:18 Why has my face shrunk into the center of my head? 04:01:23 * Sgeo reads about Newspeak 04:01:34 While the model sounds fun, I'm not grokking the syntax 04:01:41 And afaict, it's not particularly mature 04:02:04 the syntax is doubleplusgood. duh. 04:02:28 -!- cpressey has joined. 04:02:41 Actually, how does E handle security? With capabilities like Newspeak? 04:02:58 Gregor: facehuggers 04:03:11 common side effect 04:04:51 Daaaaaayamn. 04:09:33 Sgeo: E has capabilities as central concept... 04:13:40 I take is this is not Wouter's E under discussion... 04:13:49 I hate piracy. And not for any typical reasons. 04:14:03 I hate piracy because MP3 is still the default, not FLAC. 04:15:04 MP3 -> FLAC is a pretty insane jump to imagine. 04:15:09 Let's imagine MP3 -> AAC 04:15:11 That's more feasible. 04:15:58 ButbutbutFLAC 04:20:25 http://codu.org/pics/main.php?cmd=imageorig&var1=Assorted%2Fmyeye-2010-08-07-4.jpg I ANSWER YOU WITH AN EXTREME CLOSEUP OF MY EYE 04:23:16 No R package for Intrepid, it seems. Pity. 04:24:28 "R is an implementation of the S programming language..." OMG, that's like my pet peeve *in reverse*. 04:24:55 At least they're up front about it being an environment. 04:24:57 Your pet peeve is ... languages and implementations being one in the same? 04:25:06 s/in the/and the/ 04:25:15 Si, senor. 04:25:27 Plof's implementation is named cplof, do I win a cookie? 04:25:44 Si, señor. 04:26:50 YAY COOKIE 04:30:16 "configure: error: No F77 compiler found 04:30:31 I... that's interesting. 04:31:29 I often see configure *check* for the existing of a Fortran compiler, but I've never seen it actually *care* before. 04:32:18 A... yup. R requires Fortran 77. Noice. 04:32:42 And I found the Ubuntu package, so... tempting as it is to build from source... 04:34:29 WOW 04:34:32 R requires Fortran? 04:34:47 Yes! Selecting the package selected a bunch of F77 packages as deps... 04:34:48 I've used R. The combination of how terrible R is with the fact that it requires Fortran makes me feel ... so dirty ... 04:35:07 Ooh. It's terrible you say? Now I'm even more intriughed. 04:35:45 * cpressey stops himself from typing *intrigued. 04:36:25 I figure it must have miserable string processing, so I was wondering how bad it would be for esolang implementation. 04:38:49 I love having root on my phone. 04:40:18 Hmm. Now, should I start by replacing my kernel? 04:42:31 Any opinions on Newspeak programming language? 04:50:17 Newspeak fails to excite me. It could be OK. 04:52:48 Neko, Boo, Pure. 04:53:18 Y'know, one could make a programming language whose programs consist only of the names of other programming languages. 04:54:17 using fortran's comment convention looks like a good bet, then, iirc 04:55:29 we have Go for flow control 04:57:49 Boo presumably throws an exception... 04:58:27 Logo should be good for picture data 04:59:22 The Palm Pixi becomes pretty awesome when you "jailbreak" it. 04:59:37 (and by "jailbreak" I mean "use the official SDK") 05:00:00 Disconnecting soon 05:00:20 Or not 05:00:23 I'm weak 05:00:57 -!- oerjan has quit (Quit: Boo!). 05:01:04 > paste("pika","chu",sep="") 05:01:04 [1] "pikachu" 05:01:23 String concatenation in R! Yes, 'sep=""' is required. Otherwise you get "pika chu". 05:09:59 And now, a terminal... 05:11:44 And SSH. 05:13:21 And to get output to stdout without implementation-added noise, you have to say write(5,file=""). I'm noticing a pattern here... 05:27:39 Newspeak or E? 05:27:51 I like Newspeak's "no static data" stuff 05:47:36 -!- cpressey has quit (Quit: quit()). 06:28:43 -!- GreaseMonkey has joined. 06:39:23 -!- myndzi\ has joined. 06:40:22 -!- myndzi has quit (Ping timeout: 260 seconds). 06:41:46 -!- myndzi\ has changed nick to myndzi. 06:43:11 ... GAH 06:43:19 My fucking phone runs Pulseaudio. 06:43:24 No joke, they put Pulseaudio on here. 06:44:48 Hyuk 06:45:19 pikhq: why is that bad? 06:45:31 Mathnerd314: Pulseaudio is the daemon that breaks your audio! 06:45:49 not according to their FAQ 06:46:07 I hate abstraction layers on top of abstraction layers. 06:47:01 well, Pulseaudio is probably the final layer 06:47:22 ... Most programs then abstract the audio further. 06:47:40 http://upload.wikimedia.org/wikipedia/commons/0/00/Pulseaudio-diagram.svg 06:47:46 You may now vomit. 06:47:47 curses, I knew I should have used the word "penultimate" 06:48:10 *You see how there are further daemons in there*? 06:48:38 daemons are cheap 06:49:22 And the Pulseaudio thing in the middle there is busy doing nothing that couldn't be done in ALSA or OSS. 06:50:26 (granted, some of it isn't *being* done there, but this is a flaw in the base audio stack, not something deserving of a behemoth-in-the-middle) 06:50:42 the problem is scale. That diagram should have entries sized by LOC 06:51:24 The problem is that you get nearly-equivalent functionality without pulseaudio. 06:51:46 It is literally sitting there wasting CPU time. 06:51:52 Hey, my phone runs PulseAudio too. Everyone's doing it. 06:52:46 pikhq: your computer is sitting there wasting CPU time right now, unless you're doing some distributed computing 06:53:17 Mathnerd314: When there is not any CPU time being *used*, the CPU sits *idle*. 06:53:34 When it's being used for no *reason*, the CPU is acting as a *space heater*. 06:54:16 (well, when it's being used at all, it acts as a space heater. Just soley as such when there's no point in it being used.) 06:55:21 so... in your perfect universe, a computer uses no energy when you're using it, even if it's turned on. 06:56:35 It's reasonably close to that already; when idle, it uses a small-ish fraction of what it does when doing stuff. 06:56:50 When idle, most of it actually is off. 06:57:28 If this *weren't* true, there'd be hardly any temperature fluctuations based on usage... 06:57:34 even with PulseAudio... 06:58:08 (I don't know if PulseAudio's CPU use is a very terrible thing, though, it's more of a principle thing. And Pulse's at least idle when you're not bleeping audio out or in.) 06:58:27 Pulseaudio does work that doesn't need to be done. Hence, it is the single most retarded kind of thing, even if it doesn't effect all that much. 06:58:58 well, good luck removing it 06:59:03 Trivial. 06:59:10 *affect 06:59:21 My desktop system has never ran Pulseaudio. 06:59:53 Linux audio works just fine without Pulseaudio being involved. 07:01:02 I do like the "you get a nice tool which can pipe the audio of different apps to different places" thing you get with it. I mean, yes, most apps do let you change the alsa device string somewhere, but it is often very clumsy. 07:01:33 pikhq: The funny thing is that pulseaudio came into popularity JUST in time to be useless. 07:01:42 pikhq: A couple years earlier and it would have been useful. 07:01:48 -!- sshc_ has changed nick to sshc. 07:02:08 fizzie: Yeah, but that really ought to be done in the libalsa layer... 07:02:43 Gregor: Yeah, before Alsa's mixing stopped being a pain. 07:03:24 (well. It has never been a pain if you had hardware mixing. As I did until a couple years ago. :P) 07:05:12 I also would've liked the network audio thing a couple of years ago, and I wouldn't necessarily stuff that into ALSA, but that's a bit specialized use-case. 07:10:32 -!- cheater99 has quit (Read error: Operation timed out). 07:13:55 -!- Slereah has quit (Ping timeout: 265 seconds). 07:15:11 -!- cheater99 has joined. 07:16:28 -!- Slereah has joined. 07:39:08 -!- augur has quit (Remote host closed the connection). 07:40:25 Also: last night I had a dream, where Gregor banned me and fungot from the channel, because he wanted to run something called OpenFungot; I think it was some sort of fungot variant that anyone could edit with a browser. (Although wouldn't that be called hackungot or something?) First #esoteric dream, I think, at least out of those I recall. 07:40:26 fizzie: why isn't this working? please tell me. 07:40:50 fungot: Don't ask me, ask Gregor; he's the one whose idea it was! 07:40:52 fizzie: get a perl one lying around on your build machine, which involves hacking the command processor full scheme? you're presenting a seemingly unfounded argument and then does everythign else on the hill or a new version 07:50:15 -!- augur has joined. 07:51:16 fact: I love arpeggios 07:51:21 -!- augur has quit (Remote host closed the connection). 07:51:26 -!- augur has joined. 07:53:12 It's the Jxy effect in Impulse Tracker. 07:53:39 (Sorry, I forgot the "fact:" prefix.) 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:01:28 -!- cheater99 has quit (Ping timeout: 260 seconds). 08:18:04 -!- GreaseMonkey has quit (Quit: New quit message. Entering 2006 in style.). 08:20:34 -!- Sgeo_ has joined. 08:21:33 -!- Sgeo has quit (Ping timeout: 240 seconds). 08:33:09 -!- Phantom_Hoover has joined. 09:33:48 -!- fruitbag` has joined. 09:35:33 fruitbag`! 09:36:34 Huntom_Phaever! 09:36:46 -!- MigoMipo has joined. 09:39:40 Obviously, fizzie is Lumenos 09:49:53 -!- olsner has joined. 09:53:12 -!- Phantom_Hoover has quit (Quit: Leaving). 09:53:27 -!- Phantom_Hoover has joined. 09:53:39 fizzie is Lumenos! 09:53:44 It all makes sense! 09:54:30 what's lumenos? 09:54:37 Also, dark matter is actually peanut butter! 09:54:49 (It makes approximately as much sense.) 09:55:45 fizzie, my god! 09:57:49 my god, it's full of peanut butter! 09:58:30 olsner: You have a weird sort of god. 09:59:17 -!- augur has quit (Remote host closed the connection). 09:59:32 -!- augur has joined. 09:59:34 fizzie, 2001? 10:00:02 Phantom_Hoover: Yes, yes, but I find it more amusing to interpret it as a peanut-buttery god. 10:04:20 -!- GreaseMonkey has joined. 10:31:38 -!- augur has quit (Quit: Leaving...). 10:31:43 -!- augur has joined. 10:38:19 "Next, Melissa would have to ask you, "Can I have a direct connection to the Internet?" At this point only the most naive user would fail to realize that this email message, no matter how strong the claim that it came from a friend, is up to no good purpose. You would say "No!"" 10:38:22 AHAHAHAHAHAHAHA 10:38:38 http://wiki.erights.org/wiki/Walnut/Complete#Melissa 10:43:08 So their security system is to drive you insane with things asking for permissions, causing you to instinctively click "yes" every time a dialogue pops up? 10:43:37 As such: "Can I have your bank account details?" "YESJUSTSHUTUP" 10:48:18 * Sgeo_ ponders making his computer unbootintowindowsable during certain times 10:49:08 Sgeo_, s/certain/all/ 10:52:02 Bye 10:57:07 -!- Sgeo_ has quit (Ping timeout: 265 seconds). 11:15:08 -!- GreaseMonkey has quit (Quit: New quit message. Entering 2006 in style.). 11:15:20 Ligature! 11:16:22 -!- Wamanuz has joined. 11:24:00 A metal band used to attach a reed to the mouthpiece of a clarinet or saxophone? 11:33:37 That is indeed what a Phantom_Hoover is. 11:38:32 †7. The state of being bound; suspension of the intellectual or physical powers (see quots.). Obs. 1727-41 CHAMBERS Cycl., Ligature, among mystic divines, signifies a total suspension of the superior faculties, or intellectual powers of the soul... This passive state of these contemplative people they call their ligature. Ligature, is also used for a state of impotency, in respect to venery, caused by some charm, or witchcraft. 11:38:59 OED is the most useful thing ever for willful misunderstandings. 11:39:28 Qufiffle. 11:40:47 Although that "dictionary of euphemisms" I got from a random bookstore visit is also useful. Except that half the entries map to a penis. 11:42:41 Also a review describes that book as "unputdownable", which is quite a word. 11:55:37 -!- pikhq has quit (*.net *.split). 11:58:16 -!- pikhq has joined. 12:31:52 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds). 12:39:18 -!- Phantom_Hoover has joined. 12:42:04 -!- tombom has joined. 12:57:23 How is the bitness of a processor even decided? 12:58:06 Is it the size of the GPRs? The length of the types operated on by the instructions? The size of the addresses? 12:59:09 Size of the GPRs, usually. It's a bit vague. 12:59:37 Indeed... 12:59:42 6502, for example, is usually considered an 8-bit CPU, since the instructions operate on 8-bit data (regs and memory), even though addresses are 16 bits. 13:00:05 Well, the 8086 had 20-bit addresses, but was a 16-bit processor. 13:00:56 How is "GPR" defined in this context? 13:01:16 That's also a bit vague. The sort of registers that are usually involved in arithmetic-related opcodes? 13:01:36 -!- ais523 has joined. 13:01:59 I'm not sure what Z80 is; the general-purpose regs are 8-bit (A, B, C, D, E, H, L), but the instruction set also has some (but not as many as 8-bit) 16-bit arithmetic opcodes that treat the registers as pairs BC, DE, HL. And the memory-indexing registers IX and IY are 16-bit only (unless you count undocumented opcodes), as are addresses. 13:02:09 fizzie, so does that include x86-32's 96-bit FP registers and 128-bit SSE registers? 13:02:35 I don't think those count as general-purposey enough. 13:02:41 Although you can't really use either for normal arithmetic. 13:03:00 Wikipedia categorizes Z80 as "an 8-bit microprocessor", still. 13:03:16 A majority of the instruction set operates on 8-bit data, maybe that's what counts there. 13:04:17 Probably, yes. 13:05:03 -!- Sgeo has joined. 13:05:50 Another random Wikipedia bit: "A CPU can be classified on the basis of the data it can access in a single operation. An 8-bit processor can access 8 bits of data in a single operation, as opposed to a 16-bit processor, which can access 16 bits of data in a single operation." 13:06:49 just when you thought the SCO situation couldn't get any more fun: they've just applied to the bankruptcy court for permission to hire a firm to help them with their tax returns, because they no longer have any employees who understand how to do it and they still haven't paid taxes for 2008 yet 13:07:04 Well then, x86 with SSE is a 128-bit architecture. 13:07:06 That's a bit vague too, and you could start arguing the Z80 as a 16-bit CPU on that basis. 13:09:27 The "arithmetic operations" definition is probably the best I've heard so far. 13:10:20 Another definition-that-is-not-a-definition: ask N people (where N is sufficiently large) what the "bitness" of a particular CPU is, then pick the majority opinion. 13:11:45 Well, the SSE and FP registers on x86 cannot be used with integers the same size of the register. 13:11:53 s/of/as/ 13:12:21 So you can only use 32- or 64-bit ints with a single instruction. I think. 13:12:45 On the other hand, the 80-bit FPU regs do contain 80 value bits. But maybe floating-point doesn't count. 13:12:57 (It's 80, not 96.) 13:13:00 Would E style promises work out any better than the usual sort of promises? 13:13:01 fizzie, is it 80? Oops. 13:13:30 Anyway, that's what I was getting at. You can't add the 80-bit integer in ST0 to the 80-bit integer in ST1. 13:13:38 The "long double" type is sometimes 96 bits, for alignmenty reasons, but the actual format is 80 bits. 13:14:46 And the SSE registers contain vectors of various types, so you can't add the whole register to another in a single instruction. 13:15:52 Right; though I think even x86-32's SSE supports 64-bit integers in the registers, so you could start to argue that x86-32 is a 64-bit CPU there. 13:16:08 fizzie, good point. 13:16:51 OTOH SSE is an optional extension in x86-32, but I think it's part of x86-64. 13:16:58 It is, yes. 13:17:54 -!- oerjan has joined. 13:18:24 The older optional extension, MMX (which uses the 80-bit FPU regs as 64-bit SIMD regs) only supports sizes up to (two elements of) 32 bits, I think. 13:26:03 There must be something wrong with this definition... 13:27:03 What is your exact definition right now? 13:27:59 "The size of the integers in the arithmetic operations." 13:29:32 With something about the minimum necessary for the specification, to get around the x86-32 SSE thing. 13:31:38 There's also the 16-bit Z80 thing, but only if you want to put Z80 into the 8-bit camp. (I guess most people would put it there, though.) 13:32:09 How does the Z80 do 16-bit stuff 13:32:14 s/$/?/ 13:32:42 Ah, concatenating 8-bit registers. 13:34:40 Yes. And there are no 16-bit bitshifts or rotates, for example. But there's add, adc, sbc, inc and dec for the 16-bit pairs. 13:34:56 No multiplication? 13:35:07 It doesn't have 8-bit multiplication either. 13:35:15 Really? 13:35:28 "Don't you know how much a multiplier costs? We're not made out of money!" 13:35:29 Really. 13:35:48 wow, security update for w3m 13:36:03 apparently you could fool its https authentication by putting literal NULs in the certificate 13:36:09 ais523, yeah, noticed that. 13:36:41 fizzie, so it was ridiculously slow at anything approaching mathematics? 13:36:59 No slower than its competitors, which didn't do hardware multiplication either. 13:37:22 How much does a multiplier cost? 13:37:41 Phantom_Hoover: the issue is that a fast multiplier takes up a lot of chip space 13:38:05 if you want a one-cycle 32-bit multiplier, say, you can do it but it'll take up as much space as a few kilobits of memory 13:38:22 Ah. 13:38:28 if you're happy to spend 32 cycles to multiply your 32 bits, it can be done much more efficiently 13:38:36 But an 8 bit multiplier? 13:38:49 but at that sort of speed, you may as well just do it in software 13:38:50 8 bits isn't /so/ bad, but it's still bad 13:39:31 The 8086 MUL instruction, for example, takes 70..118 cycles according to this here manual. (And IDIV takes 101..165.) 13:40:29 that seems plausible 13:40:54 especially if it's being done in microcode rather than hardware 13:41:07 It seems to be, yes. 13:41:40 Multiplication is a matter of shifts and ands, isn't it? 13:43:46 -!- Phantom_Hoover has quit (Quit: Leaving). 13:44:13 A hit-and-run question. 13:44:44 -!- Phantom_Hoover_ has joined. 13:44:57 Phantom_Hoover_: shifts, ands, and addition 13:45:06 Yes, of course 13:45:15 the addition is the hard part 13:45:51 because if you just string all the additions together in the obvious way, it takes ages for the carries to propagate 13:46:46 To quote: "Older multiplier architectures employed a shifter and accumulator to sum each partial product, often one partial product per cycle, trading off speed for die area. Modern multiplier architectures use the Baugh–Wooley algorithm, Wallace trees, or Dadda multipliers to add the partial products together in a single cycle. The performance of the Wallace tree implementation is sometimes improved by modified Booth encoding one of the two multiplicands, wh 13:46:46 ich reduces the number of partial products that must be summed." 13:46:58 (It's always a bad sign when things start to get named after people.) 13:48:32 Fizzie's law 13:48:53 * oerjan cackles evilly 13:49:22 Aaaanyway, back to the original issue, something I was going to add: Z80 also does 16-bit memory loads and stores to/from the register pairs, and the stack ops (push, pop) only work with 16-bit quantities. 13:50:19 In which case the register pairs are rather similar to the 8086 having AX split into AH and AL, yes? 13:50:46 Well, in a sense. But 8086 can do just about everything to AX, including bitwise stuff. 13:51:17 True, but the 8086 had a MUL instruction, so that hardly counts. 13:51:39 We're defining "arithmetic operations" as plus and minus, it would appear. 13:52:11 Right, well, in that sense Z80 would be a badly limited sort of 16-bit CPU. 13:53:02 16/8-bit hybrid? 13:53:15 It's not a very uniform place. The 8-bit accumulator A isn't part of any register pair, and the HL register actually isn't strictly speaking a pair, because you can't access H or L directly; the 8-bit register-accessing opcodes only do A, F, B, C, D, E. And sometimes you can use AF as a pair too. (F is the flag register.) 13:53:17 -!- Phantom_Hoover_ has changed nick to Phantom_Hoover. 13:54:27 Hmm, no, actually scratch that about HL; H and L were separately accessible just well. 13:55:24 -!- Wamanuz has quit (Read error: Connection reset by peer). 13:55:48 It was just the IX and IY registers that were indivisible. (And actually you could undocumentedly stick the IX/IY prefix bytes to many instructions that would normally access H and L, to access their bytes separately too. I seem to recall most assemblers called those register halves IXH/IXL/IYH/IYL.) 13:55:49 -!- Wamanuz has joined. 13:57:46 There's a bit of a funny thing in that most things that take a 8-bit register operand use a three-bit register field in the opcode; seven of the possible values map to A, B, C, D, E, H and L, but the one that'd "naturally" be F instead does indirection and fetches the byte pointed by HL. 13:58:48 Well, that kind of thing tends to be weird. 13:59:10 I mean, x86 does truly terrible things for ESP indirection. 14:01:07 There's also the RLD instruction, which rotates nybbles; the four low bits of A go to the low nybble of the byte pointed by HL; that byte itself shifts left by 4 bits; and the out-falling 4 bits go to low bits of A. The four highest bits are not touched. (There's also the opposite-direction RRD.) 14:01:25 I wouldn't be surprised if it was some sort of BCD-motivated thing. 14:01:28 Deeply weird. 14:01:48 (There's also the X86 DAA included, though I think with another name.) 14:01:54 x86 has obsolete and underused BCD instructions. I feel sorry for them. 14:02:13 Decimal adjust accumulator! What a great name. 14:04:26 SCASB? 14:04:33 Scan stream byte? 14:04:39 LODSB? 14:04:59 Incidentally, x86 DAA is invalid in 64-bit mode; its friends might also be. 14:05:12 MOVGE? 14:05:25 Move if greater than or equal to? 14:05:32 fizzie, poor things. 14:05:37 Doesn't the S in scasb/lodsb stand for "string"? 14:05:49 Same difference. 14:06:33 And the conditional moves are nice, though it's not like some architectures where you can add condition codes to absolutely any instruction. 14:06:56 Which arcitectures? 14:07:06 s/arcitectures/architectures/ 14:07:40 ARM in non-Thumb mode, IIRC. 14:07:57 With some exceptions that use the condition code field for encoding extra stuff. 14:09:33 And Thumb has a "if-then" instruction; "ITxxxx cc", where cc is any condition code, and xxxx is an arbitrary sequence of T/F (for true/false), and it executes the four next opcodes conditionally if the T/F matches the value of the condition. But you don't have to use this manually; you can just put condition codes into any instruction, and the assembler will add IT's as necessary. 14:10:03 Neat. 14:12:23 Oh, and FirePath does conditional SIMD; if you do a "cmphib p0, r1, r2", it compares eight bytes of r1 against the eight bytes of r2, and sets each bit of p0 to the result of the comparison; then you can do "p0.movb r2, r1" which will move only those bytes for which the comparison was true. 14:15:04 I've done very little of ARM asm, but I do recall doing a conditional RET once. 14:21:06 Except that hmm, maybe it wasn't ARM? Because ARM's "call" is in fact "bl", branch-with-link, which jumps somewhere and puts the return address into the link register; so a ret is just "bx lr", a unconditional branch to the link register. I distinctly recall a "RETcc" opcode in something, but it's not x86. 14:21:59 fizzie, if it stores the return address in a register, what happens when the callee wants to call something? 14:22:25 The usual procedure prologue pushes the link register into stack, I think. 14:24:18 Except if you're a leaf function, in which case you omit that bit. 14:26:17 Or if you're a function that only does a tail call, in which case you also don't need to store lr, and can do that tail call with just a non-linking branch. 14:33:28 Also, if you stick lr on stack at the top of the function, you can return by loading it directly to pc; lr and pc are just special names for two general-purpose registers. 14:33:30 So you can do a "stmdb sp!, {r4, r5, r6, lr}" to save the return address and r4..r6 (which are callee-saved), and then exit the function with a single "ldmia sp!, {r4, r5, r6, pc}". 14:34:58 (Or "push {r4, r5, r6, lr}" and "pop {r4, r5, r6, pc}", which are aliases for that, but I wanted to get the exclamation marks there, I think they're funny.) 14:40:16 -!- Phantom_Hoover_ has joined. 14:41:37 -!- oerjan has quit (Quit: Later). 14:42:12 Did you miss my nifty ARM monologue? 14:42:51 No. 14:43:05 Well, I got to funny exclamation marks at least. 14:43:34 Okay, that's good then. 14:44:20 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds). 14:47:31 fruitbag`, ARM is being discussed. 14:57:56 Phantom_Hoover_: Here's the sort of frames gcc does: http://sprunge.us/YIbI (ignore the path to gcc, I'm in the progress of organizing files) 14:59:23 For "tail", it's just a single branch; for a leaf function, it's the code (add r0, r0, #42) and a "bx lr"; for a full function, it uses the stack, though a bit differently for some reason. 15:01:04 So you have an ARM computer? 15:01:16 -!- freshmeat has joined. 15:01:23 Hello? 15:01:37 Phantom_Hoover_: I have that Nintendo DS, it's an ARM thing. (The "ds" in the path was referring to that.) 15:01:49 What region of memory does the BF pointer point to initially? 15:02:39 freshmeat, wherever. 15:02:51 It's a uniform, zeroed tape. 15:02:56 *unbounded 15:02:57 Alright, so this is what I do to transfer contents... 15:03:12 [->+<] 15:03:15 Right? 15:03:24 I guess BF isn't very well standardized; it's not always an unbounded tape, it might be a loopy tape too. (Zeroed it does tend to be.) 15:03:29 Well, it's a destructive transfer, but yes. 15:03:40 -!- Flonk has joined. 15:03:43 fizzie, zeroing is almost always assumed. 15:04:16 -!- Phantom_Hoover_ has changed nick to Phantom_Hoover. 15:04:38 Guys, may I ask something? Don't be offended... 15:05:00 If the tape isn't unbounded, the pointer will usually point at the "beginning" of it, in the sense of < moving towards the start. Though if it wraps it's a bit arbitrary, because how could you tell where it points? 15:06:12 So, we are at the source cell, and as it is decremented to zero, we move to the next cell for each decrement and increment its contents by one, then move back. 15:06:23 Is my statement correct? 15:06:34 [->+<] 15:06:48 Yes, that sounds like an accurate description. 15:07:13 Alright, so that's cutting. What about copying? 15:07:24 You need to use a spare cell for that. 15:07:42 [->+>+<<] adds the value of the starting cell to the next and the one after that. 15:08:04 Then you can move the cell at >> back to the original place with a [-<<+>>] if you want. 15:08:06 Fascinating stuff 15:08:11 Guys, do you know what I feel like doing? 15:08:28 A BF compiler for the 6502 15:09:43 >[-]>[-]<<[->+>+<<]>>[-<<+>>]<< is I think a reasonably general "p[1] = p[0]; p[2] = 0;", where p[0] is the starting cell, p[1] one step to right, and so on. 15:10:06 Except if you're running on a bignum brainfuck and have a negative number there somewhere. 15:10:39 6502's so popular, you'd think there is one already. But who knows. 15:12:16 There's one interpreter, but maybe no compilers yet. Are you going to write it in BF? 15:12:30 6502 assembly 15:12:47 freshmeat, to raw machine code or to assembly? 15:13:08 raw machine code 15:14:43 What would be an elegant way to swap the contents of two memory cells 15:15:18 The equivalent of "tmp = a; a = b; b = tmp;", most likely; that can use a destructive sort of = already. 15:16:08 [->>+<<]>[-<+>]>[-<<+>>] with maybe a zeroing there if you're not sure the spare cell is already zero. 15:17:06 On the topic of brainfuck implementations, let's mention awib again. It's a brainfuck/C/bash polyglot -- most of it brainfuck -- which compiles brainfuck to Linux/i386 ELF files, or C/Ruby/Go source. 15:17:15 Any thoughts here on writing an assembler in BF? 15:17:35 A 6502 assembler entirely in BF 15:17:49 Or, more simply, a general binary search algorithm in BF 15:18:41 (Away for now, must relocate self to another place.) 15:20:10 -!- FireFly|n900 has joined. 15:20:35 freshmeat, it would be extraordinarily difficult, but certainly possible. 15:24:59 -!- Wamanuz2 has joined. 15:28:12 -!- Wamanuz has quit (Ping timeout: 240 seconds). 15:28:46 -!- sebbu has joined. 15:34:07 -!- cpressey has joined. 15:42:04 -!- relet has joined. 15:47:54 fizzie: I don't even have ops :P 15:48:11 fizzie: So I couldn't ban you to run OpenFungot 15:48:15 fizzie: Thanks for the idea though. 15:48:20 MUAHAHAHAHA 15:48:36 Gregor, huh? 15:49:09 Do yer own log-trawling :P 15:49:18 I can guess 15:50:53 fungot, don't worry, we'll protect you. 15:50:53 Phantom_Hoover: the latter. in the language that could consistently win both speed and size. :) 16:01:05 Hang on, I thought fizzie was an op... 16:08:22 -!- FireFly|n900 has quit (Ping timeout: 252 seconds). 16:10:51 -!- ais523 has quit (Remote host closed the connection). 16:11:13 -!- ais523 has joined. 16:14:26 Phantom_Hoover: Yeee-es... it didn't seem relevant in the dream. 16:15:52 Dreams is weird. 16:21:44 -!- derdon has joined. 16:24:26 Agh, I hate software that requires a nominal charge. 16:32:15 -!- FireFly|n900 has joined. 16:37:03 -!- freshmeat has quit (Ping timeout: 264 seconds). 16:37:31 -!- FireFly|n900 has quit (Ping timeout: 252 seconds). 16:40:32 -!- freshmeat has joined. 16:59:33 -!- MigoMipo_ has joined. 17:00:00 wow, the US Senate just passed "The ______Act of____." 17:00:07 because they forgot to fill in the name, and nobody noticed 17:02:08 Right ON. 17:03:04 -!- MigoMipo has quit (Ping timeout: 240 seconds). 17:05:35 As for what's in the bill, well that appears to be as mysterious as the name. It was officially announced as a bill to tax bonuses to execs who received TARP money. But then someone simply deleted the entire bill and replaced it with text about aviation security. And then it was deleted again, and replaced with something having to do with education. 17:13:44 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds). 17:14:35 -!- FireFly|n900 has joined. 17:24:49 -!- FireFly|n900 has quit (Ping timeout: 252 seconds). 17:33:04 -!- freshmeat has quit (Ping timeout: 246 seconds). 17:34:19 -!- fruitbag` has quit (Ping timeout: 276 seconds). 17:34:20 -!- tombom has quit (Quit: Leaving). 17:37:32 -!- fruitbag` has joined. 17:37:47 -!- fruitbag` has quit (Client Quit). 17:39:53 -!- cheater99 has joined. 17:44:26 ais523: *groan* 17:44:39 -!- MigoMipo_ has quit (Remote host closed the connection). 17:45:10 -!- MigoMipo_ has joined. 17:52:28 Duck typing: It looks like a duck, it walks like a duck, so it is actually a goose, we think -- at any rate, it is quite fowl. 17:53:53 -!- Phantom_Hoover has joined. 17:56:57 -!- calamari- has joined. 17:58:40 -!- calamari- has quit (Client Quit). 18:03:00 -!- FireFly|n900 has joined. 18:21:58 Has anyone else here heard of Introversion Software? 18:23:55 I remember that DEFCON game of theirs -- if this is the same thing. Not that I played it or anything, just looked at it. 18:24:46 Oh, and Uplink was also theirs? 18:25:07 And Darwinia, it seems. 18:25:27 Uplink, Darwinia and Defcon, yeah. 18:26:17 I know of all three, and played a bit with Uplink, but that's about it. 18:28:37 -!- FireFly|n900 has quit (Ping timeout: 252 seconds). 18:41:31 I've played with the demo of Uplink before 18:41:35 I love the music 18:42:11 -!- ais523 has quit (Read error: Connection reset by peer). 18:42:45 -!- ais523 has joined. 18:44:51 -!- augur has quit (Remote host closed the connection). 18:45:11 -!- augur has joined. 18:46:36 -!- FireFly|n900 has joined. 18:48:59 -!- deschutron has joined. 19:09:21 -!- augur has quit (Remote host closed the connection). 19:09:26 -!- augur has joined. 19:15:01 Tuples suck. 19:15:24 cpressey, in Haskell? 19:15:44 In programming in general. In mathematics -- I'll turn a blind eye. 19:16:06 cpressey, "tuple" means completely different things in different languages. 19:16:13 Oh, not *completely*. 19:16:34 -!- kar8nga has joined. 19:16:37 -!- kar8nga has quit (Read error: Connection reset by peer). 19:16:39 Well, they can have more than one thing in them; that's more or less where it stops. 19:17:19 The things in them don't have names. Tuples with the same number of things in them are considered the same type. 19:17:30 cpressey, not in Haskell. 19:17:41 (Int, Int) /= (Char, Char) 19:18:02 Fine, same number *and type* of things in them. (Int, Int) = (Int, Int). 19:18:22 cpressey, what else would make *sense*? 19:18:38 Records 19:18:50 cpressey, fine for some things, bad for others. 19:19:41 Yes well I'll just take your word for that. 19:19:43 -!- cpressey has quit (Quit: Leaving.). 19:23:22 Well, that was weird. 19:24:00 yeah 19:24:07 for the record, I like tuples, in maths at least 19:24:23 Hey, deschutron! 19:24:31 hey phantom hoover 19:24:52 I still don't get his point about tuples in programming, though. 19:24:52 i finished my thesis in june 19:25:19 the type checking seems wrong for what he's trying to do i guess 19:25:32 Particularly as tuples in Haskell and tuples in Python are utterly, utterly different. 19:25:33 i haven't used Haskell 19:26:13 Well, if he's having type checking problems in GHC I pity him. 19:26:27 !haskell return 3 19:26:58 3 19:27:02 what's GHC? 19:27:27 deschutron, primary Haskell compiler. 19:27:33 Glasgow Haskell Compiler 19:27:47 i just checked on Wikipedia 19:27:47 It has very annoying type errors. 19:29:17 i see 19:29:31 In any case, using records instead of tuples in Haskell is... really stupid. 19:33:11 my first guess is maybe he'll sleep on it 19:33:24 i don't know what timezone he's in though 19:33:29 Seems improbable, since it's mid-afternoon for him at the latest 19:33:36 oh 19:33:56 well, he might hack at it for eight hours and then sleep on it 19:34:08 On the other hand, people here have very weird sleep schedules, so... 19:34:34 hmm yeah 19:35:09 about the idea of appropriating a linux kernel for a custom OS, i found a lead today 19:35:32 I installed Archlinux on my computer, and put the boot directory on its own partition as recommended 19:35:41 And? 19:36:04 I poked around my initrd, but it was a bit complex. 19:36:12 and then made an empty partition containing nothing but the files the kernel requires and a custom init program 19:36:28 and booted the custom partition with the boot partition 19:36:30 and it worked 19:36:36 Neat. 19:37:03 I figure, all we need is the boot folder from an existing linux distribution 19:37:47 i.e. /boot? 19:37:50 yes 19:39:26 i noticed in the Grub entry for Archlinux, the drive to use as the root directory for Linux is passed as an argument to the kernel 19:42:34 I assume your boot partition contains a kernel image and a ramdisk image. 19:46:48 It does. 19:47:27 I didn't put it together. It is part of Archlinux. 19:49:47 I just saw your Silly Emplosions idea on the Esolangs wiki. 19:49:52 Me? 19:50:00 yes 19:50:13 * Phantom_Hoover doesn't remember that 19:50:23 http://esolangs.org/wiki/Silly_Emplosions 19:50:40 wait a minute 19:50:52 That looks like a zzo38 idea. 19:50:56 The best kind of idea! 19:51:01 As it indeed is. 19:51:27 Not Phantom Hoover's, my mistake 19:52:01 Anyway, the idea of variables that expire after a time delay looks interesting 19:52:14 I don't think I've ever invented a language. 19:52:34 I had a half-baked idea involving neural networks once, but that never went anywhere. 19:52:41 -!- MigoMipo_ has quit (Read error: Connection reset by peer). 19:53:09 -!- MigoMipo has joined. 19:53:38 What was your neural networks idea? 19:54:09 deschutron, something along the lines of program specifies a fitness metric, compiler trains a network to that metric. 19:54:40 That sounds more like a generic neural-network tool than a programming language. 19:54:41 i see 19:54:45 -!- cpressey has joined. 19:55:18 the choice of evolutionary algorithm used would make a big difference 19:55:22 fizzie, I suppose. But I planned to shoehorn it into an esolang. 19:55:33 i think 19:56:00 -!- cpressey has quit (Client Quit). 19:56:21 deschutron, yes. I started reading literature on the subject, but I got bored and real life got in the way. 19:57:41 oh yeah 19:57:45 -!- oklopol has joined. 19:57:55 hello everyone my name is oklopol 19:58:02 that's sounds like the way in this community 19:58:06 oklopol, I DON'T BELIEVE YOU 19:58:16 deschutron, sad but true. 19:58:30 hello oklopol my name is not oklopol 19:58:41 Everything is being done for fun, so when it gets boring we tend to stop. 19:58:42 (This is a special occasion; I left out the punctuation.) 19:58:43 fizzie: hello fizzie what is your name then 19:59:00 oklopol: they call me fizzie *beep* 19:59:17 i think it tends to move ahead, but slowly 19:59:20 I don't know, for some reason I imagine those things out loud in the "robot voice". 19:59:27 fizzie: after your smiley face the other day no one is gonna notice a missing zero dimensional object 19:59:33 -!- tombom has joined. 19:59:45 what's the way in this community 19:59:58 oklopol, starting on stuff, then getting bored and stopping. 20:00:09 just checking 20:00:22 people get really into something one day, work on it a bit, and then return to their lives 20:00:35 and the thing is left alone for months 20:00:46 so i wasn't here have you read the newest P!=NP proof yet 20:01:03 no 20:01:03 i hear this time it's for real! 20:01:29 Oh, yeah, it's a bit boring at the start but once it gets going it's unputdownable! 20:01:37 in 2012, the solution will be perfected, and the universe will reset 20:02:51 and god will be all like wow that was fast, took like a billion years for the sludgemonkeys in the last universe 20:03:31 yeah, unlike the sludgemonkeys, we did it in polynomial time 20:03:57 :DD 20:03:58 How can you work out P=NP in polynomial time? 20:04:03 There's no input size. 20:04:49 good point 20:04:52 i didn't realize that 20:04:57 haha 20:05:03 I wouldn't let that get in the way of a good joke. 20:05:21 there is an input size... 20:05:31 it's the size of the P and NP sets 20:06:04 yeah obviously god runs the test for all sizes, for a given species 20:06:16 we just have to count through all the decision problems in P and compare them against the ones in NP 20:06:49 But they're infinite... 20:06:51 the biggest problem is deciding which to compare first. 20:06:59 what do you mean? 20:07:02 And anyway, the end will be with the Reimann Hypothesis. 20:07:10 That's where the sludgemonkeys got it wrong. 20:07:47 ironically, the phantom hoovers are the current record holder. 20:08:25 Well, yeah. We're superturing, you know. 20:12:02 -!- AnMaster has joined. 20:21:09 -!- augur has quit (Remote host closed the connection). 20:21:21 -!- augur has joined. 20:24:13 -!- deschutron has left (?). 20:27:09 -!- cheater99 has quit (Ping timeout: 245 seconds). 20:33:20 -!- cheater99 has joined. 20:40:17 -!- oerjan has joined. 20:40:25 -!- augur has quit (Remote host closed the connection). 20:40:31 -!- augur has joined. 20:40:47 -!- jcp has quit (Ping timeout: 260 seconds). 20:43:59 wow, the US Senate just passed "The ______Act of____." <-- awesome 20:45:21 In programming in general. In mathematics -- I'll turn a blind eye. 20:45:39 I didn't get it either. 20:45:46 Tuples suck. 20:45:56 *^v 20:46:12 He then advocated using records instead. 20:46:33 there's actually a point in that recent P=NP proof where it does something with tuples, that may actually be a fatal flaw in the proof 20:46:45 or so i've read 20:46:50 er, *P != NP 20:47:15 it's not the only thing the experts are pouncing on, though 20:48:07 -!- augur has quit (Remote host closed the connection). 20:48:13 -!- augur has joined. 20:48:27 -!- jcp has joined. 20:49:53 !haskell return 3 20:49:57 hm... 20:50:08 what's this about tuples problems? 20:50:08 !haskell return 3 :: IO Integer 20:50:09 3 20:50:13 Yeah, I forgot that GHCi casts to IO. 20:50:34 Well s/casts/does that :: thing/ 20:50:37 !haskell 3 20:50:37 thought so, it's in the IO monad and ghci is set (it's an option i think) to print the result of IO actions 20:50:39 3 20:51:03 oklopol: which tuples problems? 20:51:11 " there's actually a point ..." 20:51:19 why are tuples fatal 20:51:24 and why are blind eyes turned 20:51:47 oklopol, cpressey was complaining about tuples in programming. 20:51:55 oh so not related? 20:52:26 oklopol, no. 20:52:29 -!- sshc has quit (Ping timeout: 252 seconds). 20:52:54 -!- sshc has joined. 20:52:58 well he also said something about blind eye in mathematics so i thought i'd just point out that tuples can be problematic there too :D 20:53:02 i checked the wp page for the highlights of the proof, but the only word i understood was FO 20:53:18 oerjan, I still have no idea what he was going on about. 20:53:20 is "FO" even a word? 20:53:30 it's an abbrec 20:53:30 Or why he hates tuples but not lists and arrays. 20:53:32 Is now. 20:53:32 oklopol: in my very vague understanding, apparently the proof depends on the solutions having exponentially or so many clusters in the graph of possibilities, but when you pass to tuples you accidentally ruin that property 20:53:32 *v 20:53:48 ais523: first order iirc 20:53:54 yeah first order 20:53:55 that's two words 20:54:23 He also said he preferred records to tuples 20:54:26 also "something that only quantifies over scalars" is multiple words 20:54:27 ais523: it's a very low complexity class, the languages definable by first order logic statements 20:55:19 however if you add things to it you can get more, and a least fix point (LFP) operation apparently allows you to define all languages in P 20:55:28 on pretty much any universes, it's equivalent to "threshold counting" 20:55:29 taht is 20:55:30 *that is 20:55:47 you have some fixed size "ball" (with the reachability metric given by your relations) 20:55:56 and a fixed threshold 20:56:27 oklopol: um i though FO was equivalent to AC not TC, although i'm very vague on these things that i've only very recently heard about 20:56:28 and given a model, you calculate the number of different balls, each only up to the threshold, and based on that you decide whether the model is OK 20:56:37 what's AC? 20:56:46 i learned about this stuff like last week 20:56:47 :P 20:57:04 circuits with unbounded fanin OR and AND, as well as NOT 20:57:16 i haven't seen the proofs yet, because the only place i know where they are is a book i only have in german 20:57:23 Wow. There's 1.1 billion US dollar coins, hardly any of them in circulation... All because Congress commissioned dollar coins, didn't stop the printing of dollar bills, and people won't use dollar coins. 20:57:33 hm maybe AC^0, or AC^1, the indices are about the depth of the circuit 20:57:35 i've been told you can read math in any language, but sofar i haven't had much luck 20:58:21 This makes me feel that I need to ask the bank for dollar coins on a regular basis. 20:58:44 i don't really know AC, although i have heard about that kind of circuits 20:58:48 Phantom_Hoover: lists and arrays usually have only one type of thing in them, and it makes some sense to refer to them only by number index 20:59:04 i don't know what that means exactly, though, like how does the circuit depend on input size 20:59:15 oerjan, Python tuples? 21:00:42 Phantom_Hoover: haskell is like that. python probably confuses everything by being dynamically typed so you can use tuples almost as immutable lists? 21:01:07 oerjan, tuples *are* immutable lists in Python. 21:01:17 There is no other difference. 21:01:25 oklopol: polynomial size of the circuit in input size is usual. the depth is then log^n where n is the index you put on things 21:01:35 oerjan: no there's a crucial difference, the type checking functions give you a different string for tuples and lists. 21:02:48 oklopol: i guess your threshold counting is something different than TC (which is what you get if add unbounded fanin _threshold_ functions as your basic gates) 21:03:27 oklopol: that's not crucial to what cpressey was discussing, i think. both tuples and lists allow arbitrary typed _contents_ in python 21:04:49 -!- FireFly|n900 has quit (Ping timeout: 252 seconds). 21:05:04 i was being joking 21:05:06 err 21:05:13 and then there is uniformity, which is when you put restrictions on how hard the circuits are to construct (say, can be constructed by a LOGSPACE TM) 21:05:19 yeah i don't know what thresholds imply for circuits 21:05:28 i didn't read about this in complexity theory context 21:05:44 but in logic context 21:05:51 but gotta go -> 21:05:56 it means you can tell whether >= k of the input bits are 1 21:06:06 i know the definition, not what it implies 21:06:13 but, -> 21:07:11 -!- augur has quit (Remote host closed the connection). 21:07:18 -!- augur has joined. 21:08:06 In any case, using records instead of tuples in Haskell is... really stupid. 21:08:46 not at all, it gives additional type safety, and gives you names to hint what's _supposed_ to be in them (well, ideally) 21:09:59 of course the downside is verbosity 21:15:06 oerjan: You can fight that by using only single-letter identifiers anywhere. 21:15:35 It'll be obvious what the q, z, t and p fields are from the name of the record (R). 21:15:37 thus ruining half my first point :D 21:16:00 (i guess that's your joke) 21:16:10 Yes, if you can call it that. 21:19:24 oerjan, defining a record for every tuple used is NaZi-level type safety. 21:20:08 sure if you only use it once... 21:21:01 That's why I said "instead", i.e. doing just what I described. 21:25:59 I still don't see why tuples *suck*. 21:29:22 i guess you'll have to wait for cpressey to return for that :) 21:30:52 well see what if one of your functions wants to return one more thing than the others 21:30:57 if you're using tuples 21:31:00 then you're fucked 21:31:14 but if you use lists then all is good 21:32:23 ah but if one of your functions wants to return one thing of a different type than the others, then it's the reverse 21:32:54 (and if both, you need another data type anyhow) 21:33:52 -!- cheater109 has joined. 21:35:08 yeah but see you can use additional cells of lists to move secret data around, you know like inheritance, the lower level functions only know about the first two cells, and you can use the third one for your evil purposes. how great is that?!? 21:35:17 with tuples you'd have to actually add another field 21:35:25 and then there's all that bureaucracy 21:35:44 This seems like what monads are for. 21:35:46 you can't just add another field like that, but you can always silently return more data 21:36:55 oklopol: i think ocaml has records that allow such things, but the haskell community could never agree on which improved record system to use 21:37:43 -!- cheater99 has quit (Ping timeout: 276 seconds). 21:38:07 i was actually joking because what i was describing was a rather horrible thing to do 21:38:18 well 21:38:28 assuming you do it in an insane way, like i was thinking 21:38:37 like 21:38:45 there are many functions that use the basic data type 21:38:53 and they all have their secret data transmission schemes 21:39:11 everyone has their own protocol for using the secret fields 21:39:35 and people randomize a number between 0 and 65535 to see which field they should use, so there are no collisions 21:41:02 oklopol: well by "such things" i meant passing fields that the receiver does not need to know about unless they use it 21:42:26 right 21:42:44 i guess that's pretty central to ocaml allow object-oriented programming 21:42:50 -!- Flonk_ has joined. 21:43:04 although my memory of ocaml's finer type features is very vague 21:43:13 *allowing 21:44:43 -!- Flonk has quit (Ping timeout: 246 seconds). 21:44:48 -!- Flonk_ has changed nick to Flonk. 21:46:01 -!- benguestdegilim has joined. 21:46:07 -!- benguestdegilim has left (?). 21:55:36 -!- augur has quit (Remote host closed the connection). 21:55:42 -!- augur has joined. 21:59:13 fungot, 21:59:13 Phantom_Hoover: fnord, ( and i do a large system compiled as a static analysis of aliasing. 22:05:15 ^style 22:05:15 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube 22:05:38 ^style c64 22:05:38 Selected style: c64 (C64 programming material) 22:05:45 fungot, well? 22:05:46 Phantom_Hoover: purpose: restore default system and basic. this interrupt can occur when using a pal system 02 frequency of oscillator i with a byte associated with them. it is the cassette byffer when being written or read. 22:06:01 "cassette byffer" 22:06:16 That is on my list of words to use again. 22:11:22 the latest comments on the godel's letter blog indicate that the P != NP proof may have been withdrawn by the author :( 22:11:31 due to being incorrect? 22:11:45 YAY! 22:11:55 * Phantom_Hoover wants P=NP. 22:11:58 presumably, it's not clear but someone said his homepage no longer mentions it 22:12:15 (although some links still work) 22:16:30 You know, it would be neat if, instead of having a negation sign, we had a ten's complement sign. 22:17:06 So instead of writing -3, you'd write ‡7; instead of -256, you'd write ‡744; and so on. 22:18:55 Warrigal, that's not really ten's complement. 22:19:04 No? 22:19:19 I'm pretty sure it's ten's complement. 22:19:20 * oerjan has this manual adding/subtraction device stored away, with a stylus to move the digits, that works something like that 22:19:35 Ten's complement would probably be ~x+9, if two's complement is anything to go by. 22:20:34 Nope. Ten's complement is the complement plus one. 22:21:57 So one's complement? 22:22:16 similar to these http://www.calculi.nl/subpages.php?pageid=24138 22:22:23 Well, the term "ones' complement" technically only applies to binary, but yeah. That plus one. 22:22:30 (i don't think the exact model is there) 22:22:57 nine's complement plus one 22:25:51 God, everything looks classy in this font. 22:26:07 actually it might be one of those german Addiators 22:29:27 here's a big picture of a different model http://www.science.uva.nl/museum/produx.html 22:31:19 i think of ten's complement because that's essentially what happened if you tried to subtract more than you had, you would be left with an unsettled borrow indicator and the rest of the numbers would be like that 22:31:41 (with such a device) 22:32:58 -!- derdon has quit (Ping timeout: 276 seconds). 22:34:29 iirc each slide has each digit twice, once in black and once in red, and if you got a red one you were supposed to drag it all the way up or down and turn it into a carry/borrowing 22:35:24 (there was addition on one side of the device and subtraction on the other) 22:39:31 -!- Flonk has changed nick to knolF. 22:40:04 actually carry/borrowing is always up. then you slide your stylus across the bend to the carry/borrowing at the left 22:41:13 it's quite intuitive really, although it only does addition/subtraction 22:42:16 -!- GreaseMonkey has joined. 22:42:26 -!- cheater109 has quit (Read error: Operation timed out). 22:45:12 so I was talking to dbot lately, and one of the things he said was "1,2 + 4 = 5,7". 22:45:35 I can't conceive of an esolang where this is valid code/results 22:46:25 Sounds vaguely J-like 22:46:33 Except that it's readable 22:46:50 Mathnerd314: why not? 22:46:55 Mathnerd314, + is overloaded to call map? 22:47:09 !haskell [1,2,3] >>= (+1) 22:47:24 Or the language is smart enough to know to use map in these circumstances? 22:47:45 !haskell [1,2,3] >>= return . (+1) 22:47:47 [2,3,4] 22:48:08 problem is, it's not map 22:48:18 more like accumulate 22:48:33 Hmm, like fold, but it keeps the intermediates. 22:49:04 * Mathnerd314 hoogle's 22:49:15 Haskell calls it scanl 22:49:40 So 1,2,3 + 1 = 2,4,7? 22:50:13 !haskell :i scanl 22:50:15 scanl :: (a -> b -> a) -> a -> [b] -> [a] -- Defined in GHC.List 22:50:25 !haskell scanl (+) 4 [1,2] 22:50:27 [4,5,7] 22:50:39 that's at least the right numbers 22:51:04 "1,2 + 4 = 5,7" <<< i don't get it 22:51:15 is it a typo? 22:51:26 oklopol: it's a puzzle: design a language where this is true 22:51:34 j uses a map just like that 22:51:37 Phantom_Hoover: x >>= return . f = fmap f x (or liftM f x) 22:51:43 except different syntax, and 2+4 is 6 in j 22:51:49 oerjan, GO AWAY 22:51:59 oh okay 22:52:06 accumulate, so not a typo 22:52:07 Phantom_Hoover: BOO! 22:52:11 It mightn't be an instance of Functor! 22:52:20 Phantom_Hoover: therefore liftM 22:52:29 oerjan, SHUT UP 22:52:32 * Phantom_Hoover sobs 22:52:53 * Phantom_Hoover sticks crayons up his nose 22:53:40 *MWAHAHAHA* 22:54:02 +\ or something similar will actually sum the prefiCes of a list in j, but i don't know if a l +\ 4 will sum 4 to those prefices 22:54:18 oerjan, hang on, fmap can work without bind, obviously. 22:54:41 * Sgeo can't believe he didn't realize the 2+4 thing >.> 22:54:45 Phantom_Hoover: naturally, that's why Functor is a different typeclass than Monad 22:54:50 if someone has j then try 22:55:00 Sgeo: i can't believe i didn't realize it sums prefixes 22:55:17 -!- cpressey has joined. 22:55:29 -!- MizardX has quit (Read error: Connection reset by peer). 22:55:53 identify parr0t 22:55:58 It is very similar to foldl, actually. 22:56:00 Well, f!()^&()@^ 22:56:07 !haskell :t foldl 22:56:07 -!- cpressey has left (?). 22:56:10 foldl :: (a -> b -> a) -> a -> [b] -> a 22:56:31 -!- MizardX has joined. 22:56:35 Phantom_Hoover: it's scanl 22:56:38 !haskell foldl (+) 4 -> [1,2] 22:56:40 -!- cpressey has joined. 22:56:43 !haskell :t scanl 22:56:45 scanl :: (a -> b -> a) -> a -> [b] -> [a] 22:56:51 !haskell scanl (+) 4 [1,2] 22:56:53 [4,5,7] 22:56:57 Mathnerd314, oops. 22:57:03 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:57:34 Mathnerd314, on the other hand, that has a superfluous item at the end. 22:57:45 beginning 22:57:56 !haskell drop $ scanl (+) 4 [1,2] 22:58:19 !haskell :t drop 22:58:21 drop :: Int -> [a] -> [a] 22:58:49 -!- cpressey has changed nick to cpressey_. 22:58:49 -!- knolF has changed nick to Flonk. 22:58:57 !haskell tail $ scanl (+) 4 [1,2] 22:58:59 [5,7] 22:59:13 Phantom_Hoover: ^ always mix up those two... 22:59:14 Well, exceptLast xs = drop (length xs -1) xs 22:59:29 Mathnerd314, that's not how tail works, is it? 22:59:36 !haskell tail [1,2,3] 22:59:37 [2,3] 22:59:44 -!- cpressey_ has quit (Client Quit). 23:00:50 !haskell drop =<< subtract 1 . length $ scanl (+) 4 [1,2] 23:01:22 !haskell (drop =<< subtract 1 . length) $ scanl (+) 4 [1,2] 23:01:33 -!- cpressey has joined. 23:02:21 lambdabot is 10x better... 23:02:23 =<< is a parse error, apparently. 23:02:48 probably didn't import Control.Monad 23:02:57 Just tried that. 23:04:31 !haskell import Control.Monad; drop =<< subtract 1 . length $ scanl (+) 4 [1,2] 23:04:33 !haskell init [1,2,3] 23:04:36 [1,2] 23:04:39 -!- CakeProphet has joined. 23:05:07 Phantom_Hoover: cannot use import with ghci modus, you need a main 23:05:39 !haskell init $ scanl (+) 4 [1,2 23:05:41 !haskell init $ scanl (+) 4 [1,2] 23:05:43 [4,5] 23:05:55 although that import was redundant away 23:06:04 !haskell scanl (+) 4 [1,2] 23:06:06 [4,5,7] 23:06:25 Wait, it's been the *first* one we wanted to drop all alone 23:06:33 * Phantom_Hoover takes the crayon out of his nose 23:06:55 !haskell tail $ scanl (+) 4 [1,2] 23:06:56 !haskell :t (=<<) 23:06:58 (=<<) :: (Monad m) => (a -> m b) -> m a -> m b 23:06:58 [5,7] 23:08:23 also init works on infinite lists too, calculating length ruins that (as well as general laziness) 23:09:24 fungot, 23:09:24 Phantom_Hoover: a secondary address of character memory occupies the first number, and can be extended by nesting them ( having one function call. if one is found in the 23:09:35 oerjan, how can it work on infinite lists? 23:09:56 well since there's no last element, it just returns the list itself, conceptually 23:10:10 ... 23:10:29 (although it probably cannot share in practice) 23:11:20 !haskell take 3 . init $ 1:2:3:4:undefined 23:11:21 [1,2,3] 23:11:49 -!- relet has quit (Quit: Leaving.). 23:11:55 laziness almost _demands_ that it works on infinite lists too 23:12:51 basically init (x:y:rest) = x : init (y:rest) 23:13:25 Clever. 23:13:48 !haskell take 3 (init [1..]) 23:13:50 [1,2,3] 23:16:19 !haskell let r x = init (r x) in r [1..] 23:16:23 *** Exception: stack overflow 23:16:45 !haskell init [] 23:16:49 *** Exception: Prelude.init: empty list 23:17:40 r x = init (r x) is just r x = let y = init y in y except without the actual sharing 23:18:05 in particular it never gets around to looking at x at all 23:18:16 cpressey, incidentally, what was your thing about monads? 23:18:27 s/monads/tuples/ 23:18:30 My "thing"? 23:18:33 Sorry... 23:20:08 cpressey, why do you think tuples suck? 23:20:10 -!- ais523 has quit (Remote host closed the connection). 23:20:13 Because I can think of so few cases where something that identifies its contents with names wouldn't be better. 23:21:45 cpressey, well, zip? 23:23:00 -!- CakeProphet has quit (Ping timeout: 265 seconds). 23:24:27 -!- CakeProphet has joined. 23:24:57 Phantom_Hoover: Is that supposed to be a counterexample? 23:25:16 cpressey, using a custom type for zip seems... excessive. 23:25:33 zipmap (\x y -> ...) [1, 2, 3] [4, 5, 6] 23:26:28 aka zipWith 23:26:28 Sure 23:26:29 although I can't forgive them the break in name orthogonality for that 23:26:30 mapWith :) 23:30:15 !haskell :i (,) 23:30:17 data (,) a b = (,) a b -- Defined in Data.Tuple 23:31:26 that's a fake one 23:32:14 (as in, not actually legal data syntax) 23:32:45 !haskell :i [] 23:32:47 data [] a = [] | a : [a] -- Defined in GHC.Base 23:33:01 that too 23:34:39 o 23:34:40 o 23:35:45 That tooo? 23:35:49 toooo 23:38:04 cpressey, well, [1,2,3] is just syntactic sugar for 1:2:3:[] 23:39:05 Yes, I am aware of that. 23:39:37 "That toooo?" was re oklopol. 23:39:47 Hang on, types are first class objects in Python... 23:40:02 * Phantom_Hoover wonders if you can do dependent types with that. 23:40:40 in python everything is just a big heap of shit you can do whatever you want to 23:40:41 Sure, you *could*, if you felt like writing a proof-checker that could operate on Python programs. 23:40:58 just like c except completely different 23:41:21 and dependent types can do it 23:41:33 also haskell 23:42:28 -!- Gregor-P has joined. 23:42:29 Well, it'd definitely be esoteric... 23:42:52 Anybody got a vaguely interesting program in dc? 23:43:10 0 23:43:15 Gregor-P, someone had a program that printed pi in hex. 23:43:33 -!- cheater99 has joined. 23:44:13 Printing pi in hex is much easier than in decimal, though. 23:45:18 I suppose this program doesn't terminate... 23:45:23 No. 23:45:35 Well, until you run out of space for the bigints. 23:46:24 Gregor-P: Why do you ask? 23:46:32 Gregor-P: WHY MUST YOU ASK? 23:46:42 cpressey: IT'S A SECRET 23:46:45 cpressey, because dc is the standard Unix esolang? 23:47:22 Can someone please clean the molten lead off the gymnasium floor? kthx 23:48:08 fungot, do it. 23:48:22 f..f..fungot? 23:48:26 FUNGOOOOOOT! 23:48:50 Don't you love me any more, fungot? 23:49:21 Ted Stevens died? 23:50:09 NOOOOOOOOOOOO 23:50:17 NOT TED STEVENS! 23:50:56 * Phantom_Hoover looks up who Ted Stevens was 23:51:12 Mr. Unix Socket Programming? 23:51:36 No, a senator for Alaska? 23:51:56 Stupid Alaska, North-West-Eastmost state. 23:52:08 The socket Stevens is a Richard, it seems. 23:52:28 The series of tubes guy 23:52:34 Oh! Yeah him 23:52:41 NOOOOOOOOOOOOOOOOOOOOOOo 23:52:52 So, farewell 23:52:54 then 23:52:57 Ted Stevens 23:53:06 "A series of tubes" 23:53:08 That was 23:53:13 Your catchphrase 23:53:16 But now 23:53:19 You 23:53:21 are 23:53:52 on a big truck 23:54:10 — E.J. Thribb (17½) 23:54:16 flushed down the tube 23:54:27 oerjan, better. 23:58:09 * Phantom_Hoover is crap at Thribbing 23:59:19 Thribbing? 23:59:54 Sgeo, I suppose you don't get the editor's esteemable organ in the US.