00:00:16 hope about i just do both 00:00:33 s/hope/how/g 00:00:57 I probably just introduced several typos in previous posts though. 00:01:11 "posts" 00:01:12 OK but you must kill yourself after Homestuck ends. 00:01:23 implying we'll even be alive by then 00:01:33 Which is basically the only logical course of action because life will be as unto a pale shadow after Homestuck ends. 00:01:42 CakeProphet: Have I mentioned that Homestuck gets about ten times better after the first act or two. 00:01:52 no, but I assumed so. 00:02:03 (It gets about a hundred times better every few hundred pages from thereon out.) 00:02:42 elliott: hey elliott! elliott! check out this thing I want you to hear: http://www.youtube.com/watch?v=5pr6AbJ9Ij0 00:02:54 you have to hear it, or your life is incomplete. 00:03:10 *exlucsive-or 00:03:19 #c 00:03:24 *+ 00:03:24 Sorry I can only consume Homestuck all other forms of media are invalid by default. 00:03:27 (Note: This is not technically true.) 00:04:17 -!- pikhq has joined. 00:04:51 what, why is there an MS paint adventures wiki 00:05:11 CakeProphet: You don't want to read that. 00:05:17 CakeProphet: You have no idea how many spoilers are ahead of you. 00:05:41 Homestuck is... about five thousand times more complicated and plotful than Problem Sleuth. 00:05:44 are they really spoilers as long as they're ahead of you? 00:05:57 CakeProphet, also don't look at any Homestuck stuff on Youtube. 00:06:04 Sgeo learned this the hard way. 00:06:10 Phantom_Hoover: RIP Bic 00:06:12 The best pen. 00:06:28 He died the way he lived. 00:06:31 Inky. 00:06:34 Frustrating people. 00:06:46 * Phantom_Hoover → sleep 00:06:48 -!- Phantom_Hoover has quit (Quit: Leaving). 00:07:55 Sometimes you feel like you are trapped in this room. Stuck, if you will, in a sense which possibly borders on the titular. 00:08:10 20:13:26: gah, I'm getting a burst of Sgeoism from my parents, who have basically banned the family from eating vegetables because of the E. coli outbreak in Germany 00:08:19 ais523: have you taken the non-Sgeo solution to this problem 00:08:25 which is to ignore them? 00:08:32 that's one part of it :P 00:08:40 I'm thinking about it 00:09:08 at least it's a "relatively" minor temporary thing 00:12:10 20:25:24: floating point arithmetic's avoided like the plague in computer games, except in graphics routines, generally speaking 00:12:15 ais523: "embedded" games, maybe 00:12:24 I doubt C++ desktop games are so rabid 00:12:27 I thought in games in general 00:12:29 even desktop games 00:12:32 Well, I dunno 00:12:47 many 8-bit consoles completely lack an FPU 00:12:58 20:36:37: Wow. Fedora 16 is going to have btrfs as its default filesystem. 00:12:59 20:36:53: It doesn't have an fsck yet. 00:13:11 Fedora, upgrading rashly without thinking to be OMG MODERN because it's basically RedHat: The Pre-Alpha? 00:13:12 SHOCKING 00:13:31 dude, Ubuntu's new interface is so bad 00:13:32 don't ever use it. 00:13:42 obviously btrfs doesn't need fsck, it just won't break the file system 00:13:46 it wants to be Apple so hard. 00:16:44 elliott: Well, at least the Fedora devs are busy writing btrfsck. 00:17:02 that reads as ... butterfuck 00:17:18 They are also fucking butter. 00:17:54 MOTHS: THE WOGS OF THE TAPS 00:17:57 YEAH 00:18:05 wogs of the taps? 00:18:12 moths? 00:18:13 wat? 00:18:29 YES 00:18:30 FUCK YOU 00:18:49 Ã¥lrajt 00:18:57 shtut up swede bot 00:19:10 swede architecture the worst architecture 00:19:33 elliott person the worst person 00:19:40 olsner: DIE ASS 00:20:03 ASS DYE 00:20:10 TARSKI REBEL 00:20:22 sometimes 00:20:24 i say the best things 00:20:27 such as 00:20:28 always 00:20:38 elliott: http://cdn.jimonlight.com/wp-content/uploads/2009/08/infart1.jpg 00:20:50 infart rum 00:20:53 the best rum 00:24:55 lol, oracle saying: "In line with our strategy towards a more open Java ecosystem, ..." 00:25:14 when did they stop actively preventing an open java ecosystem? 00:25:23 that instant 00:25:27 then they started again immediately after 00:26:36 well towards is a synonym of against, right? 00:27:26 hmm, in swedish it would be a simple typo actually 00:27:39 and most people don't even know which is which :( 00:29:48 CakeProphet: btw you should watch this: http://www.mspaintadventures.com/?s=6&p=003701 ... it'll convince you reading homestuck is an excellent idea :P 00:29:54 (You won't understand a single thing, so it's not spoilery.) 00:33:56 -!- ais523 has quit (Read error: Connection reset by peer). 00:35:11 -!- ais523 has joined. 00:38:02 Sgeo: Hey Homestuck just updated again. 00:38:07 Yes again. 00:38:50 apparently train tracks are turing complete 00:42:50 http://esoteric.voxelperfect.net/wiki/Chalcraft-Greene_train_track_automaton 00:43:25 is this about http://wadler.blogspot.com/2011/06/combinator-library-for-design-of.html ? 00:43:44 apparently not - the wiki page is a lot older than the blog post 00:43:50 i think he means augur 00:43:54 i mean augur's mention 00:44:03 oerjan: yes 00:44:18 first comment 00:45:15 elliott: the queue fetch modus is even more hilarious. 00:45:38 CakeProphet: DID YOU WATCH THAT PANEL I LINKED I SPENT A WHOLE THREE SECONDS GOOGLING IT DOWN YOU KNOW 00:45:40 HARD WORK I TELL YOU 00:45:54 NOPE I AM READING SHIT IN ORDER DOG 00:45:59 part of your life was wasted. 00:46:06 RIP that part of my life. 00:46:08 Died of being wasted. 00:46:43 If you decide to give up reading watch it, it has deluded many upon many a person into thinking reading nearly four thousand panels of comic is an excellent idea. 00:46:53 (Sorry did I say deluded I mean convinced of the true fact that.) 00:47:31 Hold onn 00:47:45 I am holding onn. 00:47:47 CakeProphet is holding unn. 00:47:51 You will have to handle enn. 00:50:01 According to my dad, the entire purpose of raves is to get people into the drug culture 00:50:08 True 00:50:12 enn sÃ¥ lenge 00:50:18 That is the terrible secret of raves 00:50:46 Actually I've gone to a rave and consumed no drugs. 00:50:54 Impossible 00:50:56 and am even "into the drug culture" 00:50:58 TAKE THAT. 00:51:14 dad. 00:51:16 -!- pikhq has quit (Ping timeout: 240 seconds). 00:51:32 -!- pikhq has joined. 00:51:57 but yes most people go to raves to take some kind of drug and dance for hours. 00:52:06 CakeProphet: Oh man 2037 is right ahead of you. 00:52:06 but not everyone. 00:52:16 Savour the moment for you can only experience that music for the first time once in your life. 00:52:27 elliott: I'm on 2053 now 00:52:32 I hope you savoured it 00:52:53 yes it was quite savoury. 00:53:12 god, these pesterlogs make panels MOVE SO SLOWL. 00:53:13 Y 00:53:31 Hahaha the pesterlogs at this point are about one thirtieth of what they become, lengthwise. 00:53:38 Note: I am terrible at estimating such ratios, but yeah. 00:53:51 THIS IS A SIMPLE TIME AND YOU SHALL REGARD IT AS A SIMPLE PLEASURE FOR UNASSUMING FOLK 00:54:29 I like to use trees. It's not not exceptionally practical. But I think they are elegant. 00:54:46 >not not 00:55:00 Wait did it take you several minutes just to read 2053. 00:55:02 HAVE YOU READ BOOKS BEFORE 00:55:16 no it took me several minutes to talk on IRC and do nothing. 00:55:22 I waste a lot of time that way. 00:55:22 That usually takes a while yes. 00:59:25 -!- Hammi13 has joined. 00:59:32 Hammi13: what did you do to the other hammis. 00:59:40 Hiii 01:00:43 Hey Hammi13 01:04:17 -!- Patashu has joined. 01:04:35 -!- Hammi13 has left. 01:04:40 lmao 01:04:42 :D 01:04:45 i lemonparty'd 01:11:26 -!- zzo38 has joined. 01:11:37 How much do you know of LLVM? 01:11:55 Some of the documentation seems to be incomplete, such as the documentation for the bitcode format. 01:12:26 ask coppro 01:12:29 comex: you're welcome 01:13:08 coppro has 46575 seconds idle. 01:13:21 hes just shy 01:13:46 about half a day, maybe he'll be back from sleep/work/school soon then 01:17:49 Do you know how well LLVM currently works? 01:18:10 what a vague questoin 01:18:19 currently? I'd say about 4, geographically speaking 01:18:19 But regardless, lack of documentation makes it difficult to use 01:18:27 OS X uses the clang compiler for all stock userspace applications, so it's definitely mature 01:18:56 it has better diagnostics than gcc, supports almost all the language extensions gcc does, and has similar runtime code execution speed 01:19:07 so LLVM is good enough for a C compiler :P 01:19:37 but pikhq might yell at you or something. 01:19:39 zzo38: i know that ghc has deprecated its C backend because the LLVM backend got better than it 01:19:44 CakeProphet: eh? 01:19:47 CakeProphet: No, clang > gcc. 01:20:08 You mentioned something about bootloading before. 01:20:12 (C ~ gcc, there) 01:20:25 Boot*strapping*. There is a difference. 01:20:27 No, I mean for writing LLVM codes. However, some documentation missing makes it difficult. Such as, some sections of the document about bitcode format seems incomplete. 01:20:33 define LLVM codes 01:20:48 you're not meant to write bitcode, anyway 01:20:52 you're meant to use the API 01:20:53 lol bitcode 01:20:56 or at least write LLVM IR 01:20:58 It is *presently* not feasible to build a Linux system with clang as *the* C and C++ compiler. 01:21:01 (LLVM IR is the name for their assembly, right?) 01:21:06 0 = print 0 1 = launch missiles 01:21:09 (pikhq?) 01:21:11 However, it soon will be. 01:21:32 elliott: Yeah, LLVM IR is the name for the assembly language and the bytecode resulting from assembly thereof. 01:22:01 zzo38: right, use the API or output LLVM IR; bitcode is essentially an internal API 01:23:32 (!!) [0, unsafePerformIO launchMissiles] 01:23:44 er wait 01:23:49 * flip (!!) [0, unsafePerformIO launchMissiles] 01:24:01 er 01:24:01 ([0, unsafePerformIO launchMissiles] !!) 01:24:17 elliott: that doesn't type, does it? 01:24:24 types as well as oerjan's 01:24:25 or is launchMissiles of type Num x => IO x? 01:24:26 ERROR, BRAIN DUMPED 01:24:54 picky, picky 01:25:10 [0, unsafePerformIO launchMissiles `seq` 0] 01:25:18 clearly it returns the number of missiles succesfully launched 01:25:22 If you use the API with C, then can it also be used to run some LLVM codes at compile-time as well? In that case it would be helpful. 01:25:22 *+s 01:25:27 oerjan: also 0 was meant to be print 01:25:28 not... 0 01:25:40 zzo38: Yes, you can compile things to memory and run them directly. 01:25:40 elliott: print 0 01:25:43 LLVM is a JIT in this way. 01:25:45 zzo38: Yes, LLVM JITs. 01:25:58 !acro 01:26:05 And is actually even the basis of a JVM implementation. 01:26:06 ASSE 01:26:16 lulz 01:26:18 But the FAQ does also say you can emit LLVM assembly or LLVM bitcode. 01:26:27 zzo38: Note that LLVM is C++ and so is its library, but there are bindings to just about every language. There might not be a C binding, but you can write a simple layer yourself for the functions you need with extern "C". 01:26:31 !acro 01:26:32 Also, that's interesting, I didn't realise. 01:26:36 BCJE 01:26:38 Still, bitcode would be pretty painful to generate compared to the API. 01:26:41 (it's not *that* good, because the JDK is from SPACE) 01:26:54 there is a C binding 01:26:58 olsner: oh, good then 01:27:08 which I believe is the base of the haskell binding 01:27:26 or one of them anyway 01:27:38 The Haskell binding is pretty neat, FWIW. 01:28:35 Generate LLVM functions at runtime and then use them as standard Haskell functions without any real effort. 01:29:31 obligatory: http://augustss.blogspot.com/2009/06/more-llvm-recently-someone-asked-me-on.html 01:29:58 for my llvm-outputting compiler I chose to just write llvm assembly instead of figuring out how to make stuff with the expected types at runtime 01:30:32 loser 01:30:47 Where is document for API with C? 01:30:52 yes. I think it was before that blog post where august does pretty much exactly what I needed done 01:31:10 olsner: What compiler did you do? Did you make some compiler? 01:32:35 not an esolang, and not a known language either 01:33:12 olsner: Then what is it? 01:36:19 horriblysecretlang 01:36:36 or was that horriblesecretlang 01:36:45 it's only "secret" because it's terribly uninteresting 01:37:17 Did you do it just for practice? 01:38:12 well, it's not done yet 01:38:53 If there is C binding, where is the document about the C binding? 01:39:19 in the headers of the C binding, probably 01:39:22 The tutorial is only for C++ and Objective Caml. 01:40:53 -!- FireFly has quit (Quit: swatted to death). 01:41:57 -!- clog has joined. 01:43:46 elliott: act 2 01:44:35 CakeProphet: sweet. 01:46:15 CakeProphet: you clicked the link on http://mspaintadventures.com/?s=6&p=002148 right? 01:46:22 (A stupid question, but yes, people seriously fail to.) 01:46:39 yes. 01:46:41 HERP DERP WHAT'S A LINK OH I DUNNO ITS DEFINITELY NOT FOR CLICKING THOUGH 01:46:45 (Historical reenactment) 01:48:15 elliott: that advice is kind-of useless, if we didn't know to click the link on the page, we wouldn't know to click it on IRC either 01:48:21 (not that I actually /did/ click the link on IRC) 01:48:35 ais523: It was directed to CakeProphet 01:48:40 [asterisk]at 01:48:56 There's a link where the narration usually is, and I guess some people assume it's just irrelevant or something :P 01:50:34 elliott: I know 01:52:45 also elliott is implying that I'm too daft for link clicking. 01:52:57 * CakeProphet is going to call a WAAAAAMbulance 01:53:10 CakeProphet: Hey now, I've had to deal with Sgeo reading Homestuck. 01:53:13 I HAVE LEARNED TO ASSUME NOTHING. 01:53:31 the clunky flash game thing was kind of cool 01:53:37 but nothing really happens. 01:53:55 The Flash games get much less clunky. Oops, did I just say something? 01:53:55 In some games something happens 02:14:23 hmm, this is annoying 02:20:04 -!- pikhq_ has joined. 02:20:53 Oh WTF some spammer managed to get an arbitrary image to appear in th Newspeak forums 02:21:08 Or at least in the RSS feed 02:21:30 -!- pikhq has quit (Ping timeout: 260 seconds). 02:21:34 oh noes 02:22:15 http://forums.newspeaklanguage.org/index.php?topic=297.0 02:22:20 Road to the Truth can be found at the following address: truenewworld.com 02:22:20 (attention, it is not the ad of the site - it is the ad of the Truth). 02:22:48 this guy has painting skils 02:22:52 http://truenewworld.com/Newworld.jpg 02:24:18 Everyone should be required to read what they write online. Not for accuracy or sensibility, but just checking that their eyes don't glaze over at a wall of text 02:24:30 (Yes, I know such a thing is impossible, so shut up) 02:25:47 http://www.wolfsearch.org/gfeed/img0/teen+sex/10_teenx1.png 02:25:52 compare prices on millions of products 02:29:56 there is no teen sex on the other side of that link, just a blank page 02:30:18 AdBlock? 02:30:32 Idiotic porn spam site block? 02:30:42 no teen sex!? link is broken! 02:31:05 Sgeo: yeah maybe my dad has installed one for me 02:31:55 i guess the pixel must be white because i can't see it 02:32:22 ...this spammer cross-references the spam post with other spam posts 02:32:28 X-D 02:32:45 yeah it is white 02:32:47 Unless those "forums" are just spam shills, I guess 02:33:00 worst teen sex ever 02:34:05 http://forums.newspeaklanguage.org/index.php?topic=300 [NSFW] 02:34:14 thx for telling me its nsfw lol 02:34:19 Description: Sasha notices that this guy's car is dirty, and she offers to wash it "for a ride." We all know that when girls say they want a ride, what they really mean is that they want to saddle up on top of a bologna pony and bounce their tight pussies on it until they cum. Sasha is no exception. She gives us a nice little strip tease, complete with hosed-down boobies as she washes his car. Then she buffs this guy's cock with her mouth. Sasha 02:34:20 bends over the hood of his car and gets fucked like a good girl, bouncing her ass on his prick and squealing like a little fuck-doll. 02:34:26 "We all know that when girls say they want a ride, what they really mean is that they want to saddle up on top of a bologna pony and bounce their tight pussies on it until they cum." 02:34:31 i... 02:34:49 Sasha notices that this guy's car is dirty, and she offers to wash it "for a ride." We all know that when girls say they want a ride, what they really mean is that they want to saddle up on top of a bologna pony and bounce their tight pussies on it until they cum. 02:34:52 oh 02:34:54 yeah 02:35:01 im slo 02:35:28 just... "bologna pony" are you serious 02:36:14 i have no idea what that means so dunno 02:36:52 unless, of course, it just means... bologna pony 02:36:52 penis apparently 02:36:58 oh. 02:37:00 nh 02:37:14 but... what... 02:38:17 makes perfect sense if you think about it 02:42:46 ... 02:42:54 it was immediately obvious, without thinking, actually. 02:43:45 they why it is a pony remains to be seen. 02:43:49 s/they/though 02:43:54 to me, bologna is just a random city in italy 02:44:09 and i don't see why any city + pony should imply penis 02:44:12 bologna is also a type of sausage in the states. 02:44:31 oh 02:44:34 freakin' Europeans. How can you not know this shit. 02:45:00 then it's also obvious why it's a pony 02:45:24 the only reason I see is for it to rhyme. 02:45:28 bologna is tomato sauce with ground beef 02:45:34 ah, well, nevermind. I see. :P 02:45:34 then you're kind of slow 02:45:59 just, halfway paying attention 02:46:03 i guess i should go to sleep, being even more of an asshole than usual :D 02:46:17 as I am about to go get ridiculously drunk, and this is what is currently on my mind. 02:46:31 makes sense 02:46:40 in fact, I shall go do that now. Goodbye. I will likely be on in a little while. 02:46:43 bologna ponys is what's on your mind? 02:46:50 oh yeah, baby. 02:51:57 -!- CakeProphet has quit (Ping timeout: 276 seconds). 03:19:12 Does anyone know how to make the lines that separate vim... windows? panes? less ugly? 03:21:02 see :help status-line, maybe? 03:22:27 the vertcial separator 03:22:32 it's a line of inverted | chars 03:22:34 which is just hideous 03:22:51 oh, i only use horizontal 03:27:07 Do any .S3M players crash if you have overlapping sample data? 03:28:17 hm and setting configuration variables for scripts is "let Foo=n" right? 03:29:50 i think let is for actual variables, set is for options. but i haven't made any scripts beyond simple .vimrc 03:30:16 right 03:30:18 this is vimrc 03:30:23 configuring a script 03:30:24 isn't working though 03:30:37 oh, works now 03:31:14 -!- ais523 has quit (Read error: Connection reset by peer). 03:31:53 I happen to know that the script for CWEB programming has some bugs. Such as, if you type in a variable name "do_something" then it colors "do" as a reserved word. There are other problems too. Although, you can type in ":syn off" to turn off syntax highlighting and then it works OK. 03:31:58 the default one for windows only uses let inside a defined function, set otherwise 03:32:32 -!- ais523 has joined. 03:33:17 There is also a script for WEB although I think it is even worse. 03:36:44 elliott: hl-vertsplit seems relevant 03:36:51 oerjan: thanks 03:36:56 *hl-Vertsplit 03:37:00 er 03:37:04 *hl-VertSplit 04:06:34 -!- ais523 has quit (Read error: Connection reset by peer). 04:07:51 -!- ais523 has joined. 04:07:57 o no the ais523 04:08:21 for some reason freenode keeps disconnecting on me 04:08:26 and my client automatically reconnecting 04:09:22 it's your peers, they keep resetting it. 04:09:45 you should give them a stern talk 04:10:25 the net's gone all peershaped 04:10:47 it's quite peerplexing 04:11:07 stupid peer pun 04:11:52 puns can't all be peerfect 04:11:55 I'm glad I'm not the last scandinavian awake anyway 04:12:25 http://esolangs.org/wiki/Talk:Underload#Why_the_reserved_characters.3F 04:12:25 hth 04:14:41 olsner is also me 04:14:48 i'm everyone who starts with an o 04:15:06 ais523: i guess only you can give a real answer to maharba's question 04:15:32 what was it? it's not in nearby scrollback unless I'm missing something 04:15:36 oh, on the wiki? 04:16:03 ais523: if you don't get it, it's a link 04:16:04 oerjan: i know the answer 04:16:09 i just wanted to be an ass instead 04:16:16 i'll make a real answer 04:16:17 -!- CakeProphet has joined. 04:16:18 -!- CakeProphet has quit (Changing host). 04:16:18 -!- CakeProphet has joined. 04:16:35 what's the answer? 04:16:39 elliott: noo, be an ass, don't answer 04:16:41 is it something convoluted and cool 04:16:50 say something fun instead 04:17:05 yes and remember to use funny words like poo 04:17:07 I've answered 04:17:12 oklofok: poo! 04:17:15 xD 04:17:17 and should really tell elliott to stop trolling 04:17:18 me too 04:17:20 elliott: stop trolling 04:17:25 ais523: that wasn't trolling, that was a joke :( 04:17:28 difference 04:17:29 well, OK 04:17:34 it wasn't /funny/ 04:17:38 but who says jokes have to be funny 04:17:46 ais523: I did troll by referring to ais vapourware in my response though 04:17:51 so hey how's Feather going 04:17:57 it's simple, really, when elliott says something it isn't trolling 04:18:00 badly, or well, depending on your point of view 04:18:11 tending towards the non-insanity-inducing side 04:18:23 * elliott resists temptation to add Feather to [[Category:Shameful]] 04:20:40 hey nothing shameful in preventing the collapse of the universe 04:21:00 maybe the universe is *meant* to collapse 04:21:08 preventing that would be shameful 04:21:23 olsner: it was, until feather reset that 04:21:28 ooh, maybe ais523 only thought about Feather on order of Doc Scratch THIS IS A PLAUSIBLE THEORY... 04:21:40 one day I will stop relating everything to that darn webcomic that hasn't updated in entire HOURS ugh what is his PROBLEM 04:21:52 elliott: hey, the article is a pretty good one describing the current state of the language 04:21:54 so glad i don't use my f-five key to refresh or it'd be burned out 04:22:08 ais523: i only wanted to do it to annoy you :D 04:22:11 and there's only an article about it at all because people kept asking 04:22:24 ok yeah I'm fairly sure if you ever get a Feather interp ais523 04:22:31 running it will end the universe and summon Lord English 04:22:32 don't do it 04:22:59 i'm sure it will be nothing as comprehensible as english 04:23:29 No, ignore that message about that running it will end the universe and so on. If you write the program, you can run it. 04:23:33 oerjan: "english" in this case is a reference to a pool term 04:24:06 anyway, ais523 will probably get feather finished just before christmas next year 04:24:13 oh dear 04:24:20 oerjan: How much do you want to bet? 04:24:27 if I do finish it, I'll aim for april 1 04:24:29 And in what country's currency? 04:24:36 ais523: dude, december twentytwelve is the best idea :D 04:24:41 six quatloos 04:24:41 then people generally won't believe me, which may manage to let them survive through it 04:24:45 Release notes: 04:24:46 - Sorry. 04:24:52 wtf's going on right now in mspa 04:25:01 Patashu: things 04:25:07 can i just tell you you are being so hilarious i cannot concentrate on playing my guitar 04:25:12 i'm going to close the screen -> 04:25:17 oklofok: donk 04:26:00 Patashu: you remind me of that onion skit where some stuff is happening 04:26:14 "skit", is that a word? I seem to think it is 04:26:24 pretty sure it is 04:26:36 yeah skit's a word 04:27:40 also nynorsk for shit, anyway 04:28:08 and swedish for shit, indeed 04:28:11 well bokmÃ¥l too if you mean the verb 04:28:35 also works as the imperative form of the verb 04:29:01 you're a bok mal 04:29:37 elliott: no, you're the mal and you're bok 04:31:45 The S3M official documentation says channel type 16..31 corresponds to Adlib channels (9 melody + 5 drums). But 9+5=14 it doesn't add up to 16. Do you know how it works? 04:32:33 addition? afaict you did it correctly there 04:32:38 must be their fault 04:35:24 I am trying to write the program that reads the file format. I also have a S3M file open in a hex editor so that I can see some things. But I have no Adlib S3M files (actually I don't know if any even exist, nor of any programs that can play them). 04:37:00 Do you know anything about the Adlib sound card, or about S3M? 04:37:11 nope 04:39:49 It also says bit 0-7 for channel type and bit 8 for channel enabled, but that is clearly wrong. It should be bit 0-4 for channel type and bit 7 for channel enabled. 04:40:01 obviously 04:41:12 The table for the header says channel settings for 32 channels, which is 32 bytes long in total, where 255=unused and +128=disabled, so that would agree with my texts, and also agrees with the actual S3M file. 04:45:25 Like DVItype can be used as a correct document for DVI format as well as a program to test it, so can my program be used to do similar thing for S3M file. 04:46:23 Probably you would get less errors in documentation for file formats if you did them like this. 04:50:02 oerjan: hm I am surprised there is no such thing as OverloadedLists... 04:52:26 Just ((:>) 0 ((:>) 0 VNil)) 04:52:32 oh fer chrissakes, how do you do showsPrec again... 04:53:40 (As far as I know, Knuth is the only other person who documents formats in this way; this has resulted in his documentation being extremely accurate.) 04:56:14 :t showsPrec 04:56:15 forall a. (Show a) => Int -> a -> String -> String 04:56:42 first argument is precedence level, second what to show, third string to pretend it to 04:56:54 The file I have claims to be the OFFICIAL documentation for the Scream Tracker file format...... 04:57:55 elliott: i think i recall there was some ListLike class in the iteratee stuff 04:58:20 oerjan: in this case, it encodes the length so that's not really worthwhile 04:58:23 as in 04:58:25 probably not possible 04:58:31 first argument is precedence level, second what to show, third string to pretend it to 04:58:34 pretend it to :D 04:58:41 *prepend 04:59:00 PREPEND I SAID THAT INSTEAD 04:59:24 I think I'm going to need both unary and binary numbers here. 04:59:52 hey oerjan, http://sprunge.us/JMUb 05:00:01 (I realise there's already a Data.TypeLevel on hackage but it sucks it uses undefiend and the like) 05:00:37 The document says the number of orders should be even. The file I am testing it with has an odd number of orders. 05:00:53 -!- Sgeo has quit (Ping timeout: 260 seconds). 05:04:51 Could not deduce (Succ (ToBinary n0) ~ Succ (ToBinary n)) 05:04:53 r u srs 05:05:34 * oerjan cannot precisely help without seeing code 05:05:47 elliott: make it deductible 05:06:02 olsner: deduct yourself 05:06:08 oerjan: i'm hacking it on my own :P 05:06:16 no big problem right now 05:06:20 just a day's type-level work 05:06:37 just another day in the type system 05:11:24 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 05:13:43 oerjan: can you believe that you can do all this vector stuff fine with unary type-level nats for the length 05:13:46 but if you make it binary 05:13:48 it all gets ugly as shit 05:13:48 :( 05:13:54 like even 05:13:55 instance (Eq a) => Eq (Vec n a) where 05:13:55 VNil == VNil = True 05:13:56 (x :> xs) == (y :> ys) = x == y && xs == ys 05:13:56 don't type 05:13:59 [asterisk]won't type 05:14:37 oerjan: because 05:14:39 (:>) :: a -> Vec n a -> Vec (Succ n) a 05:14:41 Succ is a type family 05:14:45 and it's just hard to deduce anything about it 05:14:46 ok wait 05:14:49 what if I just do the really ugly 05:14:53 hm if you make it binary, make the Vec's into binary trees i suggest 05:14:58 data Vec n a = LolHiddenConstructor [a] 05:15:17 oerjan: heh, what would the type of the branch constructor be then? 05:16:37 Br1 :: Vec n a -> Vec n a -> Vec (Twice n) a 05:16:51 oerjan: um but what is Twice... 05:17:01 Br2 :: Vec n a -> Vec n a -> a -> Vec (TwiceAndABit n) a 05:17:02 oh, just the 0 digit? 05:17:06 I call it O and I 05:17:18 oerjan: this is actually tempting, but I dislike a bit how it changes the runtime representation 05:17:34 the worst part though is 05:17:42 class FromList n where fromList :: [a] -> Maybe (Vec n a) 05:17:45 instance FromList Z where ... 05:17:52 instance (FromList n) => FromList (S n) where ... 05:17:55 good luck doing that with binary 05:18:09 eek 05:18:27 * elliott tries the binary tree idea before the cheating "let's just make it unsafe internally" 05:18:55 oerjan: hm the leaves would just be nil here, right? 05:19:18 hm what about Br1 :: Vec n (a,a) -> Vec (0 :> n) a 05:19:27 wat 05:19:28 *Br0 i guess 05:19:34 what's that for 05:20:10 well it's a standard trick for forcing trees to be balanced by type 05:20:18 don't your two constructors already achieve that? 05:20:28 "(0 :> n)" I assume you mean (O n) 05:20:42 ok 05:20:48 but -- don't your two constructors already achieve that? 05:20:57 the typed-safe balancedness, that is 05:21:25 ok that's not the precise thing achieved, but: 05:21:38 with that you can do FromList easier 05:21:43 ah 05:21:48 do I still need BrTwo with that? 05:21:55 yes 05:22:12 data Vec :: * -> * -> * where 05:22:12 VLeaf :: Vec BZ a 05:22:12 VBr0 :: Vec n (a,a) -> Vec (O n) a 05:22:12 VBr1 :: a -> Vec n (a,a) -> Vec (O n) a 05:22:13 erm 05:22:14 I n 05:22:16 for the latter 05:22:32 great, the Eq instance derives now, but not the Ord instance 05:22:55 Couldn't match type `BZ' with `BO n1' 05:22:55 Inaccessible code in 05:22:55 a pattern with constructor 05:22:55 VLeaf :: forall a. Vec BZ a, 05:22:55 in a case alternative 05:22:55 In the pattern: VLeaf {} 05:22:57 In a case alternative: VLeaf {} -> GT 05:22:59 wat 05:23:21 sigh, it is generating code that does not respect the fancy type magic 05:25:17 (+>) :: a -> Vec n a -> Vec (Succ n) a 05:25:17 a +> VLeaf = VBr1 a VLeaf 05:25:17 a +> VBr0 b = VBr1 a b 05:25:17 a +> VBr1 a b = whoops look at my coding energy drain away 05:25:18 im a good programmer 05:27:23 a +> VBr1 a' b = VBr0 ((a,a') +> b), i think 05:28:21 heh, I just hit upon that now :) 05:28:48 *Main> 0 +> 9 +> 0 +> 9 +> VLeaf 05:28:48 VBr0 (VBr0 (VBr1 ((0,9),(0,9)) VLeaf)) 05:28:48 *Main> 0 +> 9 +> 0 +> 9 +> 0 +> VLeaf 05:28:48 VBr1 0 (VBr0 (VBr1 ((9,0),(9,0)) VLeaf)) 05:28:50 that doesn't look right... 05:29:36 or no wait it does 05:29:38 looks right to me 05:29:43 oerjan: heh, now I just have to write a dest (opposite of cons) function... 05:29:48 this is going to be pretty slow runtime-wise, isn't it 05:30:19 MAAAYBE 05:30:37 well hm 05:30:46 vhead (VBr0 b) = fst (vhead b) 05:30:47 it's just rebalancing a tree, isn't it 05:30:52 vhead (VBr1 x b) = x 05:30:53 right? 05:31:12 because, lol, that doesn't type :) 05:31:13 think so 05:31:18 because 05:31:21 Could not deduce (n1 ~ Succ n0) 05:31:22 from the context (Succ n ~ BO n1) 05:31:22 fucking Succ 05:31:27 i'm going to try and make succ a typeclass intsead 05:31:51 -!- Patashu has quit (Ping timeout: 276 seconds). 05:33:17 lol didn't work 05:33:47 this sucks :/ 05:34:07 oerjan: wanna give it a shot? I can give you the code :P 05:34:09 you need bijection between Pred and Succ, i guess 05:34:14 mwahaha 05:34:15 I have no Pred 05:34:26 maybe you need it 05:34:33 where? 05:34:45 for vhead? 05:34:55 vhead :: Vec (Succ n) a -> a 05:34:59 not bothering with a full vdest right now 05:35:02 just a head 05:35:34 well you said that didn't type 05:35:48 it doesn't, but if vhead doesn't, making it do even more won't either 05:36:11 i meant vhead 05:37:11 right 05:37:14 i don't see what you are saying 05:37:17 what type do you want vhead to have 05:37:21 isn't there something you supposedly can do with ~ and type families to force things to be bijections 05:37:41 i don't actually know that, mind you 05:38:03 vhead :: Vec (Succ n) a -> a 05:38:03 vhead (VBr0 b) = fst (vhead (unsafeCoerce b)) 05:38:03 vhead (VBr1 x b) = x 05:38:04 nailed it 05:38:14 O_o 05:38:26 unfortunately "vhead foo" fails because of the type family :D 05:38:31 for foo = 0 +> VLeaf 05:38:34 oerjan: haha i scared you 05:40:12 sort of ruins the point of type level programming, doesn't it :P 05:40:28 oerjan: well in this case I've lost the ability to care about how safe the internals are 05:40:31 so long as the exposed API is safe 05:41:33 "According to Calver, the cheese at this point had "a caramel nose, a sweet twiggy greenness and a creamy good length of flavour...lemony, with a certain 'spritziness'"." 05:42:04 that was just before he started hallucinating from the mold, i take 05:42:26 my prediction: it actually just tasted like cheddar 05:42:26 or possibly just after 05:44:14 can't you make Succ into a GADT somehow 05:44:28 um that would result in it having constructors 05:44:36 that... makes no sense, really 05:44:40 hm... 05:44:51 phantom GADT :D 05:45:21 ooh, wait 05:45:29 oerjan: your constructors are _bad_ 05:45:35 :( 05:45:38 Leaf == VBr0 Leaf == VBr0 (VBr0 Leaf) == ... 05:45:50 and in fact (VBr0 Leaf) produces the forbidden type (BO BZ) 05:45:56 (all zeroes must be normalised to Z) 05:46:04 well that's your job :P 05:46:09 >:| 05:46:13 oerjan: this causes _actual problems_ 05:46:18 that's why we can't recurse 05:46:19 in the VBr0 branch 05:46:24 because we might be doing (vhead VLeaf) 05:47:11 fine, make a Vec1 which cannot be zero length 05:48:31 move VBr0 and VBr1 to it, but not Leaf 05:48:48 yeah OK, in a minute 06:05:11 -!- oerjan has quit (Quit: Good night). 06:15:38 -!- lifthrasiir has quit (Ping timeout: 240 seconds). 06:17:07 I have this horrible temptation to write a patcher. 06:51:00 -!- cheater8 has quit (Ping timeout: 260 seconds). 06:53:19 -!- cheater8 has joined. 07:01:18 -!- ais523 has quit (Remote host closed the connection). 07:06:07 -!- CakeProphet has quit (Ping timeout: 276 seconds). 07:26:22 -!- monqy has quit (Quit: hello). 07:28:47 -!- augur has quit (Remote host closed the connection). 07:30:24 -!- augur has joined. 07:32:35 -!- augur has quit (Remote host closed the connection). 07:33:41 -!- Vorpal has joined. 07:39:51 -!- augur has joined. 07:45:32 -!- Phantom_Hoover has joined. 08:09:17 -!- Sgeo has joined. 08:12:32 -!- zzo38 has quit (Quit: zzo38). 08:22:01 -!- CakeProphet has joined. 08:23:52 ?hoogle evaluate 08:23:53 Control.Exception evaluate :: a -> IO a 08:23:53 Control.OldException evaluate :: a -> IO a 08:23:53 Test.QuickCheck evaluate :: Testable a => a -> Gen Result 08:36:18 -!- lifthrasiir has joined. 08:43:55 http://www.youtube.com/watch?v=JAWuMd6GOfs&feature=related 08:43:55 Phantom_Hoover: You have 5 new messages. '/msg lambdabot @messages' to read them. 08:44:03 Ohmygodacatinzergog 08:44:34 a cat in zer gog 08:45:00 Phantom_Hoover: That cat looks surprisingly comfortable with the environment. 08:45:19 http://www.reddit.com/r/askscience/comments/hwv1e/computer_scientists_do_you_consider_syntax_to_be/ 08:45:33 Presented without comment. 08:46:17 Ow. 08:57:53 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 08:58:00 "loseth abacus . sup you can get a htc hd7 for putting in your email at" 08:59:11 " but who says jokes have to be funny" <<< poo 09:03:22 yeah 09:06:34 nothing worse than sitting comfy in your armchair and then didididididiiii hello i'm an alarm clock on the other side of room hihihihi come touch me :)))))))))))))))))))))))))))))))))))¨ 09:06:46 *-¨ 09:08:24 well actually many worse. 09:08:33 but not all worse? certainly not. 09:10:27 -!- Phantom_Hoover has joined. 09:19:18 :t execState 09:19:19 forall s a. State s a -> s -> s 09:22:47 !help 09:22:47 ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . 09:37:02 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 09:38:02 -!- Phantom_Hoover has joined. 09:43:08 -!- MigoMipo has joined. 09:43:28 -!- Patashu has joined. 10:05:23 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 10:10:06 -!- CakeProphet has quit (Ping timeout: 240 seconds). 10:12:59 -!- Timwi has joined. 10:20:30 -!- Timwi has changed nick to Timwi-Away. 10:23:43 -!- Timwi-Away has quit. 10:37:19 -!- CakeProphet has joined. 11:16:12 -!- MigoMipo has quit (Remote host closed the connection). 11:29:02 -!- elliott has quit (Remote host closed the connection). 11:29:14 -!- elliott has joined. 11:31:37 -!- pikhq has joined. 11:31:47 -!- pikhq_ has quit (Ping timeout: 255 seconds). 11:34:49 -!- FireFly has joined. 11:50:02 05:04:43: ehird: Now write an editor that distinguishes alignment from indentation and actually maintains your alignment in the correct tab/space ratio while you write code. 11:50:02 many editors can do this >:| 11:50:04 past gregor sucks 12:04:18 -!- Phantom__Hoover has joined. 12:13:03 "Multi-penised, six-legged, two-anused piglet given silly name" --Metro 12:21:38 -!- ralc has joined. 12:23:31 http://www.reddit.com/r/askscience/comments/hwqzc/dear_asksci_in_todays_age_we_can_create_light/ 12:24:48 lol 12:25:26 Sgeo eagerly awaiting you trying to defend this guy 12:26:45 TIL That all money is debt & that most money doesn't actually exist. :) (unpac.ca) 12:26:47 this person is a good poster 12:27:09 'create light from photons' 12:27:12 photons aren't light :O 12:27:13 Didn't occur to me to try to defend him 12:27:24 apparently river song is marilyn munroe 12:27:28 til from this person 12:28:33 But: Not everyone has a basic knowledge of elementary science. They see articles about making virtual photons real (if I understand the linked article correctly) and misinterpret it. It's entirely understandable that to someone who doesn't know what a photon is, it sound the way he described it. 12:30:06 lol 12:30:11 when isa id 12:30:13 eagerly awaiting 12:30:14 i meant 12:30:16 fucking dont 12:36:09 pikhq, wrt the "huge" kernel on ubuntu: seems like ubuntu builds with debug symbols 12:38:13 apparently river song is marilyn munroe 12:38:41 That actually seems plausible given the sheer idiocy of her character. 12:39:25 Sgeo, it does occur to me that they might possibly be talking about that entanglement thing. 12:39:39 they made link things in heir comments 12:40:10 "How long does a pig's orgasm last?" 12:40:14 Possibly the best question. 12:40:33 * Sgeo sorts his feeds into Fast, Click, and Slow 12:41:03 click 12:41:45 Click is for those feeds where I have to open externally to have any idea what's going on 12:41:52 Or not "any idea" 12:42:10 Um, like SMBC, due to the votey, or MSPA 12:42:40 * Phantom__Hoover notes that of the links in today's IWC annotation, "Pencil" is the only one he has previously seen. 12:43:05 I should read IWC's archive 12:43:10 Then start reading it regularly 12:43:44 * Phantom__Hoover notes that of the links in today's IWC annotation, "Pencil" is the only one he has previously seen. <-- do you mean "seen the wikipedia page" or "seen the word"? 12:43:53 Vorpal, seen the WP page. 12:43:55 ah 12:44:06 Sgeo, it's like Homestuck. 12:44:10 Except with Lego. 12:44:12 And science. 12:44:18 And no sprites 12:44:21 Or games 12:44:21 And even slower-moving plots. 12:44:22 Or 12:44:22 Or 12:44:23 Somehow. 12:44:23 Phantom__Hoover, and less weird troll romances 12:44:27 It's like Homestuck but not Homestuck. 12:44:33 It is similar in that it is: 12:44:34 - long; 12:44:37 - a web comic. 12:44:46 -!- quintopia has quit (Ping timeout: 240 seconds). 12:45:06 elliott, well it does manage to have about 20 parallel plots which move at a rate of about 5 in-comic seconds per month. 12:45:06 elliott, by that measure, schlock is quite similar to homestuck too! 12:45:19 isn't schlock the one drawn by a mormon 12:45:45 elliott, is he? I don't know. 12:46:44 elliott, I found another similarity between homestuck, iwc and schlock: they use long story-arcs. 12:46:58 so you need to read a large part of the archive for anything to make sense. 12:47:02 homestuck doesn't have story arcs 12:47:05 it is all one gigantic arc 12:47:17 as far as i know, not a single homestuck arc can be legitimately said to have ended 12:47:34 elliott, yeah, one huge story arch is a degenerate case of long story arcs :P 12:47:34 elliott, the Intermission wrapped up pretty well. 12:47:54 Phantom__Hoover: POINT 12:48:02 Does it count a wrapped up if there's something like a prequel? 12:48:36 No. 12:49:22 has any "story arc" in iwc actually ended so far? 12:49:30 maybe espionage... 12:49:41 isnt the whole point of iwc that nothing ever happens and the plots will never advance 12:49:59 except by dramatic intervention by, like, killing everyone 12:50:02 elliott, come on, they reached the dragon after all. That was actually something happening 12:50:04 -!- quintopia has joined. 12:50:04 -!- quintopia has quit (Changing host). 12:50:04 -!- quintopia has joined. 12:50:09 elliott, the whole point of IWC is to get more comics than Calvin & Hobbes. 12:50:11 True fact. 12:50:17 Phantom__Hoover: yes and then it will end 12:50:24 Vorpal, yes, and then they turned around and went to a pub. 12:50:25 (gives oerjan nightmares) 12:50:36 Phantom__Hoover, true 12:50:40 elliott, on that day the annotation will explain the GUT. 12:50:49 Phantom__Hoover, but it was still some sort of advancing. 12:50:57 Phantom__Hoover, GUT? 12:51:01 -_- 12:51:03 Gran Unified Theory 12:51:06 ah 12:51:09 *Grand 12:51:10 right 12:51:32 Grain Unified Theory 12:52:13 bran flakes theory 12:53:28 Candidates include Fruit Loop Gravity. 13:22:49 -!- copumpkin has joined. 14:04:26 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:09:52 -!- copumpkin has joined. 14:18:20 -!- copumpkin has quit (Ping timeout: 246 seconds). 14:37:10 ?t foldl 14:37:10 Maybe you meant: tell thank you thanks thx ticker time todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc topic-tail topic-tell type . ? @ ft v 14:37:13 :t foldl 14:37:13 forall a b. (a -> b -> a) -> a -> [b] -> a 14:37:18 hmm 14:37:23 ?src concatMap 14:37:23 concatMap f = foldr ((++) . f) [] 14:37:26 in terms of fold come on 14:37:28 woot 14:37:42 :t foldl ((++) . f) (9,[]) 14:37:42 forall t a. (Monoid t, Num t, Show a, SimpleReflect.FromExpr (t, [a])) => [(t, [a])] -> (t, [a]) 14:38:00 :t foldl (\(a,x) r -> f a x ++ r) (9,[]) 14:38:01 forall t a. (Num t, Show a, SimpleReflect.FromExpr (t, [a]), Monoid t) => [(t, [a])] -> (t, [a]) 14:38:06 :t foldl (\(a,x) r -> ?f a x ++ r) (9,[]) 14:38:06 forall t a. (?f::t -> [a] -> (t, [a]), Monoid t, Num t) => [(t, [a])] -> (t, [a]) 14:38:19 ?hoogle concatMapM 14:38:19 ?thanks foo 14:38:19 No results found 14:38:20 you are welcome 14:38:23 -_- 14:45:10 :t ask 14:45:11 forall (m :: * -> *) r. (MonadReader r m) => m r 14:56:22 * Phantom__Hoover attempts to remember how to pronounce "mamihlapinatapai". 14:56:37 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 15:13:28 ?undo do { fx <- f x; gmapM (everywhereM' f) fx } 15:13:28 f x >>= \ fx -> gmapM (everywhereM' f) fx 15:13:33 ?pl f x >>= \ fx -> gmapM (everywhereM' f) fx 15:13:33 gmapM (everywhereM' f) =<< f x 15:17:55 :t gmapM (everywhereM' f) =<< f x 15:17:55 Not in scope: `everywhereM'' 15:18:42 :t everywhere 15:18:43 forall a. (Data a) => (forall a1. (Data a1) => a1 -> a1) -> a -> a 15:18:57 tswett: that's the definition of everywhereM' 15:19:01 er 15:19:02 -!- Sgeo has quit (Ping timeout: 255 seconds). 15:19:03 twice11: 15:19:05 misping 15:19:19 -- ndm hates this, but I don't know how to code his descendM 15:19:19 everywhereM' :: (Monad m) => GenericM m -> GenericM m 15:19:19 everywhereM' f x = f x >>= gmapM (everywhereM' f) 15:19:19 :) 15:19:20 it's syb stuff 15:19:38 Ah, recursive. 15:20:35 I just wanted to test whether "f x >>= gmapM (everywhereM' f)" is equivalent to the point{less,free} output produced by ?pl 15:20:42 Obviously it is. 15:20:46 Yeah, it is 15:20:56 I dunno why ?pl likes =<< so much 15:21:00 I guess to try and preserve "applicative order" 15:21:06 It can be kind of ugly IMO 15:21:17 Probably because ?pl also likes . for non-monadic code. 15:21:46 Ah, precedence stuff? 15:22:28 Maybe that too, but I just thought about shared code for producing monadic =<< and non-monadic dots. 15:22:37 Right. 15:22:46 Well, it is ?undo that created the >>=. 15:22:50 ?pl just flipped it around to =<<, inexplicably. 15:22:51 (line 1, column 30): 15:22:51 unexpected "," 15:22:51 expecting white space or simple term 15:23:06 twice11: btw, haven't seen you around here before -- come from the wiki? 15:23:17 or has someone been blabbing in #haskell again :) 15:23:44 I have been around here (or whatever was the esolang wiki recommended channel at that time) in 2007. 15:23:56 It's always been this place, AFAIK 15:24:09 The channel is quite a bit older than the wiki 15:24:29 I met oerjan already at that time, and we made the proof that 0x29A is turing complete. 15:25:01 I came here to ask about the claim of turing-completeness, as I was unable to see how it works. 15:25:33 ah, cool 15:25:37 are you the inventor of 0x29A? 15:25:47 Now a friend slightly hinted me to get here again - and I thought it might be a good idea. 15:26:15 No, I didn't invent it, it just stumbled upon it randomly browsing the esolang wiki. 15:26:19 I bet it was ralc. You can never trust that ralc. 15:26:25 Sitting there idling, plotting our downfall quietly. 15:27:08 rambling again, eh? 15:27:21 All two lines of ramble. 15:27:32 No, I was not pointed here by ralc. 15:27:50 And if I should cause downfall of the channel, feel free to kick me. 15:28:14 If you cause the downfall of this place it might be a bit tricky to kill you, since we'll presumably all be gone. 15:28:17 Er, kick you. 15:28:22 I swear that was a typo. 15:28:41 My endpoint does not support RSP, so no problem ;) 15:28:49 RSP == remote strangulation protocol. 15:29:07 Hmm, I've always preferred the UDP Disintegration Laser. 15:30:11 Hmm, never heard of, neither did google. 15:30:37 Yes, well, someone had to make up the remote strangulation protocol too, didn't they. :p 15:34:41 elliott, TbH, the TCP Orbital Bombardment always tickled my fancy more. 15:37:07 -!- pikhq has quit (Ping timeout: 258 seconds). 15:37:11 -!- pikhq_ has joined. 15:46:37 -!- augur has quit (Remote host closed the connection). 15:52:09 -!- elliott has quit (Read error: Connection reset by peer). 15:56:24 -!- hiato has quit (Ping timeout: 250 seconds). 16:14:45 -!- Sgeo has joined. 16:22:56 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net). 16:23:45 -!- elliott has joined. 16:24:14 -!- augur has joined. 16:47:14 -!- Phantom__Hoover has quit (Ping timeout: 255 seconds). 16:48:18 -!- augur has quit (Remote host closed the connection). 16:48:39 -!- oerjan has joined. 16:50:36 (gives oerjan nightmares) 16:50:42 AYEEE 16:51:51 nothing worse than sitting comfy in your armchair and then didididididiiii hello i'm an alarm clock on the other side of room hihihihi come touch me :)))))))))))))))))))))))))))))))))))� 16:52:29 wow 16:52:41 i am sorry, but you are clearly misspelling "in the room of your housemate on the other side of the wall, and he is not home..." 16:57:03 12:40:10: "How long does a pig's orgasm last?" 16:57:13 "Long enough". HTH, HAND. 16:58:33 also, how can the channel be this silent when elliott is here 16:58:47 i was too busy composing the greatest musical masterpiece ever to be created 16:59:14 ah. i guess that's a proper excuse. 16:59:30 -!- augur has joined. 16:59:43 oerjan: for your wonderful concern, you get to listen to it 16:59:45 SO 16:59:46 LUCKY 17:00:07 14:12:46: hi everyone 17:00:08 14:22:53: or noone 17:00:08 14:23:01: pity 17:00:09 14:23:13: maybe I could just sit here monologuing until someone tells me to stop spamming 17:00:35 elliott's musical mode of choice is gangsta rap. 17:00:40 And those are the words. 17:00:58 I will offer a five quadrillion dollar bounty to anyone who can rap those lines to this thing. 17:03:27 -!- Phantom__Hoover has joined. 17:06:46 -!- monqy has joined. 17:08:11 -!- Timwi-Away has joined. 17:08:15 -!- Timwi-Away has changed nick to Timwi. 17:09:55 -!- augur has quit (Remote host closed the connection). 17:12:39 -!- azaq23 has joined. 17:16:02 -!- augur has joined. 17:22:21 -!- augur has quit (Remote host closed the connection). 17:24:52 -!- augur has joined. 17:29:07 -!- oerjan has quit (Quit: Later). 17:29:25 -!- Tritonio has joined. 17:31:19 -!- elliott has quit (Remote host closed the connection). 17:34:07 -!- elliott has joined. 17:35:29 -!- Tritonio has quit (Quit: Leaving). 17:37:46 -!- zzo38 has joined. 17:50:14 -!- augur has quit (Remote host closed the connection). 18:10:56 -!- Phantom__Hoover has quit (Ping timeout: 255 seconds). 18:13:17 -!- Phantom__Hoover has joined. 18:13:54 -!- MigoMipo has joined. 18:22:44 -!- augur has joined. 18:24:49 I am trying to figure out how to shorter C code for selecting numbers 1 to 300 that have digit 3 or divisible by 3 18:26:16 golfing? or just shorter? 18:26:44 Golfing 18:27:15 I have 22 bytes of a expression that makes 0 for numbers that meet this criteria. 18:28:34 I know of operator precedence and order, a few mathematical things about modulo and multiplication and stuff, but still I did not figure it out 18:30:28 That is, if there is any shorter expression for that! 18:33:55 What’s the 22 bytes expression you already got/ 18:34:01 / => ? 18:35:33 x%3&&x%10-3&&x/10%10-3 18:35:56 But maybe is possible to change other parts of the program, although it doesn't seem to help from what I can figure out 18:36:26 Right, so x needs to be divisible by 3 — I thought you meant it should contain *digits* divisible by 3 18:37:11 Either divisible by three or at least one digit is 3. 18:37:19 maybe you could generate all matching numbers, dunno if that'll be shorter though 18:37:20 Sounds like a fizzbuzz variant. 18:37:28 Yeah 18:38:28 -!- Timwi has quit. 18:38:54 Also, someone made a C program output "Success" with 21 bytes, the most obvious way I can figure out is 24 bytes. I can figure out how to make "Success" to standard error with 18 bytes, but not to standard output with 21 bytes. 18:39:22 zzo38: Your expression seems to fail on 311 18:39:34 twice11: It only has to be OK for numbers 1 to 100 18:39:39 s/100/300/ 18:39:52 Ah, OK. In that case... 18:41:20 I noticed that it seems the C standard functions will have the same address twice if you run the program twice. That doesn't seem to help, though. (This is for "Success" problem) 18:41:40 Hmm. 24 bytes is obvious. 18:41:57 Ah, perror for the stderr case - clever. 18:42:45 what if you dup'd the fd then perrored 18:42:50 i guess that would still go over though 18:42:55 Try to find out the address where the string for perror is stored. 18:43:07 And then puts that address. 18:43:10 heh 18:43:17 twice11: I thought of that, but could not figure it out. 18:43:40 Do you get access to stderr/stdout of failed programs? 18:44:09 And even if not - you get the address from strerror. 18:44:24 In the worst case you need to do a binary search. 18:44:51 No further hints here - *you* want to win the golfing. 18:45:14 Yes you do get access to stderr/stdout of failed programs. 18:45:38 But I do suppose you are correct. Still, all of those are things I have already thought of. It is OK if you want to give no further hints. 18:45:52 So what is your problem? 18:46:10 O, I just wanted to mention it, is all. 18:46:25 It should be straight-forward to apply my hints. 18:46:34 Especially if you get stdout/stderr. 18:47:02 there is no guarantee the address is predictable though 18:47:24 Who cares at golfing. 18:47:31 i mean, 18:47:33 It needs to pass the judge system once. 18:47:34 it might differ enough between runs 18:47:39 Addresses of "puts" and "strerror" and that stuff themself seem to always be the same each time (I have tried it). 18:47:54 twice11: well actually there have been proposals for a rejudge button on anagolf :) 18:48:22 There are even time()-dependent golf entries around... 18:48:53 twice11: the cheat entries (random+resubmit spam ones) are a really bad problem at anagolf 18:48:55 thus the rejudge proposals 18:49:07 It is one reason why I dislike endless problems. 18:49:09 basically if you're ok hammering the server for a few minutes chance will get you pretty much anywhere 18:50:32 On my system, the strerror result is not constant. Did you try on the judge system? 18:50:36 However, in any case, what I prefer to do, is I can post multiple solutions if I have it, some for random or time dependent, others with embed, cheat, genuine, alnum-only, symbols-only, etc. 18:50:53 twice11: The strerror result is not a constant pointer. 18:51:04 Too bad :( 18:51:07 The address of the result changes with each run. 18:51:28 I was suggesting to hardcode that. 18:51:32 zzo38: they might be doing a 18:51:35 main="machine code"; 18:51:37 trick, you know 18:51:39 -!- pikhq has joined. 18:51:50 I already had all of these ideas (elliott: except your last one) 18:52:02 -!- pikhq_ has quit (Ping timeout: 252 seconds). 18:52:10 elliott: That will store a pointer at the main location. 18:52:20 You need at least char main[]="machine code"; 18:52:44 Yeah yeah :) 18:52:45 main[] should do 18:52:47 without char 18:52:58 Maybe a global variable from libc has a constant offset from the "Success" string... 18:53:10 main[] declares an array of ints. 18:53:24 Are you sure you can initialize that with a string?! 18:53:28 yep, but if you can do with every other byte being 0... 18:53:31 it... might work :) 18:53:42 or maybe, if you put a L before the string 18:53:46 twice11: I also thought of those things too, I tried subtraction... 18:53:48 or an LL i gues 18:53:48 s 18:53:50 then maybe it will work fine? 18:53:52 unicode-y 18:54:28 elliott: Isn't 0x00 a noöp on x86? :) 18:54:35 0x90 is a nop. 18:54:37 No, I don't think so 18:54:38 0x00 not. 18:54:43 The fuck is 0x00, then? 18:54:47 but yeah i think 18:54:49 main[]=LL"..." 18:54:52 might actually work 18:54:58 0x00 is NOP in z80, though, I think. 18:55:03 And why would you ever want 0x00 to not be NOP? 18:55:41 Oh, wait, x86. x86 hates you. 18:55:44 pikhq: In case the way of all command and the electronics and stuff works, makes it help to not have 0x00 to be NOP, like, some pattern, etc 18:55:48 0x00 is the first byte of a bunch of add instructions, but by itself means nothing to x86 18:56:08 You see? x86 hates you. 18:56:09 I understand the request for NOP at 0xFF (unprogrammed ROM celss are NOPs), but what does 0=NOP help in practice? 18:56:20 twice11: C string programming :D 18:56:33 twice11: Uninitialised pages! 18:56:41 I think usually nop is an alias for a completely different instruction that just happens to have no effect 18:56:43 twice11: If that is the case, then maybe 0xFF should be debug trap command. 18:56:53 ... Presuming you have a kernel that has just-allocated pages as 0. 18:57:01 olsner: FEH 18:57:11 0xFF as space for hotpatching is what I had in mind. 18:57:17 Without erasing. 18:57:45 For 0-initialized pages, crash-on-NUL would be nice. 18:57:59 twice11: O, that makes sense, then. 18:58:20 It would be useful if 0xFF to be NOP in case of hotpatching. 18:58:25 0 should be hcf 18:58:30 that'll teach low-level programmers to make memory errors 18:58:52 Isn't on Z80 the typical NOP encoding one of 0x40/0x49/0x52/0x5B/0x64/0x6D/0x76/0x7F? 18:59:14 Z80, hoggin' all the nops 18:59:15 But maybe 00 is a NOP, too... 18:59:20 on x86, 0x90 aka nop is actually xchg ax,ax (or xchg eax,eax) 18:59:23 http://www.reddit.com/r/askscience/comments/hx40e/scientists_of_reddit_whats_the_most_disastrous/c1z3xo2 18:59:30 olsner: I love how it needs special-casing in sixty-four bit mode 18:59:30 I misread that as "cut her into half" 18:59:35 You and your LOGIC 18:59:35 elliott: yeah :) 18:59:44 Those are LD A,A; LD B,B and so on Z80 18:59:55 on x86, mov ax,ax would be two bytes. 19:00:12 elliott: plus I think the special case only applies for the ax/eax opcode, not for all the other nops for the other registers :) 19:00:25 olsner: yeah :D 19:00:29 great for assemblers 19:00:30 so logicla 19:00:32 logical 19:00:48 NOP needs to be special-cased for 64 bit? 19:00:58 twice11: yes, otherwise it would clear the high bits of rax 19:01:08 it would xchg eax with eax, which would clear the top thirty-two bits of rax 19:01:25 so the opcode gets special-cased to mean a true nop 19:01:35 found a bochs bug a while ago, test eax,eax clears the higher bits of rax 19:02:04 I hope the bug was that the bits are cleared... 19:02:19 yes, ordinary cpus don't clear them 19:02:29 So 0x90 is no longer a nop, but you would need a 64-bit-prefix on that? 19:02:44 no no: 0x90 is still a nop, that's the special case 19:02:51 OK, finally got it. 19:03:42 to get the real xchg eax,eax behavior (clearing the upper bits) you have to use a different encoding of xchg 19:04:36 -!- Timwi has joined. 19:04:58 and eax,0ffffffffh should work to. 19:05:12 hey zzo38 19:05:15 try sys_errlist[0] 19:05:22 yes, and take 5 bytes or so 19:06:17 hmm, how do you do a syscall from linux assembly again? :p 19:06:36 You guys still discussing the golf? 19:06:40 oh wait 19:06:41 elliott: oh, there are many ways to do that :) 19:06:44 dup2 isn't a syscall 19:06:44 is it 19:06:52 Timwi: i'm having a go at doing it incredibly nonportably :) 19:07:01 pretty sure it is, the file descriptors live in the kernel 19:07:25 but maybe it shares a syscall with dup3 19:07:41 oh, it is a syscall 19:07:54 what's the shortest byte-count way to syscall, then :p 19:08:16 probably the interrupt, int 81h iirc 19:08:32 or is that 81 not-hex, hmm 19:08:48 0x80 it is on linux 19:08:50 elliott: int 80h. 19:08:59 right 19:09:24 hmm 19:09:32 If you're *also* willing to actually set up vdso access, then it'd be a call to the appropriate system call. 19:09:35 (note: PITA) 19:09:41 it occurs to me I have no idea how I would go about finding the machine code of /just/ the main function I defined 19:10:06 Stop! We try to get something below 24 bytes! 19:10:50 elliott: what do you mean? 19:11:00 olsner: like, i can get an ELF .o from nasm 19:11:04 and link that with libc with gcc 19:11:10 but i just want to extract the specific bytes of main from there 19:11:14 and that seems like a pain 19:11:28 elliott: objdump is your friend. 19:11:36 just output a flat binary from nasm? 19:11:40 Or that. 19:11:45 olsner: that doesn't support external libc references 19:11:47 but uh 19:11:54 I can't find the header with syscall numbers :( 19:11:56 on here 19:12:00 so i can't use the syscall thing afaik 19:12:05 how would you get those libc references into your char array anyway? 19:12:12 true 19:12:35 um wait 19:12:38 perror isn't a system call 19:12:42 nope :) 19:12:42 elliott: sys/syscall.h 19:15:26 Hrm. Apparently glibc 2.14 actually breaks ABI. Hard-core. 19:15:55 ugh now why isn't this working 19:16:10 Because it’s not esoteric enough 19:16:17 so which glibc is everyone using now, and which century will they be using 2.14? 19:16:49 olsner: It's "just" dropping the RPC interfaces. 19:17:15 it has RPC interfaces? 19:17:23 Had. 19:18:10 They're being dropped because a) that's fucking STUPID b) the damned thing really fucked with builds, and wouldn't cross-compile right. 19:18:32 Also, as far as I know, the absolute oldest glibc you'll still find is going to be something like 2.10. 19:18:34 gah, even the machine code is long for write 19:18:36 (see RHEL) 19:20:52 Huh. 19:21:00 Apparently Ulrich Drepper no longer works for Red Hat. 19:21:12 He is VP, Technology Division at Goldman Sachs. 19:21:52 Since October 2010 :-p 19:21:58 Yup. 19:36:33 -!- kovacs1 has joined. 19:59:09 -!- CakeProphet has quit (Ping timeout: 252 seconds). 20:00:58 -!- CakeProphet has joined. 20:00:59 -!- CakeProphet has quit (Changing host). 20:00:59 -!- CakeProphet has joined. 20:05:27 Thank you for making many great points in this conversation. 20:05:56 -!- Tritonio has joined. 20:06:59 yes 20:09:52 Is it possible in LLVM to tell it to use different settings for optimization for different parts of the code? 20:10:18 -!- oerjan has joined. 20:10:25 I think so, but I'm no expert 20:10:38 No, but you can split your code into separate bitcode files, optimize each one however you like, and link them together 20:11:18 Is that so even if the API is used? 20:11:28 That I'm not sure about 20:11:40 I did find the header files for using LLVM API with C 20:11:41 The API may allow more fine-grained control 20:13:10 I do see a lot of things in those header files. But I do not understand all of it. 20:13:17 A lot of useful things are in there. 20:15:39 -!- CakeProp1et has joined. 20:15:52 -!- CakeProphet has quit (Ping timeout: 276 seconds). 20:18:54 -!- Tritonio has quit (Quit: Leaving). 20:21:45 -!- MigoMipo has quit (Remote host closed the connection). 20:23:48 -!- CakeProp1et has quit (Ping timeout: 240 seconds). 20:24:22 -!- CakeProphet has joined. 20:24:23 -!- CakeProphet has quit (Changing host). 20:24:23 -!- CakeProphet has joined. 20:25:01 Wow! 20:25:55 Sorry. Wrong window... 20:26:13 No CakeProphet is truly a wondrous thing. 20:26:25 there you see him, there you don't 20:26:31 -!- kovacs1 has quit (Ping timeout: 260 seconds). 20:27:24 #define __NR_fcntl64 221 20:27:24 #define __NR_gettid 224 20:27:26 oops 20:27:29 #define __NR_fcntl64 221 20:27:29 /* 223 is unused */ 20:27:30 #define __NR_gettid 224 20:27:33 :o 20:31:15 hmm, how about 222? 20:31:23 heh 20:31:26 good point 20:31:50 i'm sure poor 223 feels left out too 20:32:00 oh wait 20:32:06 -!- pikhq has quit (Ping timeout: 240 seconds). 20:32:16 -!- pikhq has joined. 20:32:26 Y U NO READING COMPREHENSION 20:32:35 olsner, we don't talk about 222 in this channel. 20:33:02 it's a third of evil 20:33:48 the number of the 1.33 quarterbeasts 20:44:03 -!- aloril has quit (Ping timeout: 250 seconds). 20:44:22 http://en.wikipedia.org/wiki/Oil_drop_experiment#Millikan.27s_experiment_and_cargo_cult_science this is downright creepy 20:46:35 Sgeo, THE CHARGE ON THE ELECTRON IS RISING 20:46:35 And why would you ever want 0x00 to not be NOP? 20:46:47 WE'RE ALL GOING TO DIE 20:47:13 in case you accidentally run into zeroed memory, it might be nice not to have a NOP. theoretically. 20:47:32 -!- cheater8 has quit (Ping timeout: 246 seconds). 20:47:40 that's one reason to make 0 a HCF instruction instead of NOP 20:47:49 or debug breakpoint or something 20:48:04 yeah but zeroing memory is arbitrary :D 20:49:14 otoh, a non-zero pattern is better for clearing memory area that you don't want used accidentally, like msvc fills with 0xcc (int3/debug breakpoint) 20:52:37 -!- kovacs1 has joined. 20:53:29 *Clearly* it should be filled with int 80h. 20:53:49 pikhq: but that's a two byte instruction 20:54:22 BAH 20:55:25 there are a couple of reserved undefined instructions though 20:56:03 they are, eh, defined as undefined instruction 1 and 2 or something like that 20:57:01 best instructions 20:57:02 and their behaviour would be defined as causing the undefined instruction exception 20:57:40 -!- aloril has joined. 20:58:13 defined things as "undefined" something is probably the best way to define anything ever :> 20:58:23 *defining things 21:04:26 hehe, the f00f bug is listed on wikipedia as an HCF instruction :) 21:04:55 -!- CakeProphet has quit (Ping timeout: 244 seconds). 21:05:02 i'm a purist 21:05:10 it's not an hcf unless the cpu actually catches on fire 21:05:23 > let things = undefined in things 21:05:23 *Exception: Prelude.undefined 21:05:32 -!- kovacs1 has quit (Ping timeout: 255 seconds). 21:06:06 halt, conquer france 21:06:28 -!- CakeProphet has joined. 21:06:28 -!- CakeProphet has quit (Changing host). 21:06:28 -!- CakeProphet has joined. 21:06:38 > let things = undefined in things 21:06:38 *Exception: Prelude.undefined 21:06:44 spent a minute waiting for oerjan to correct his pun code there 21:06:45 >_< 21:06:55 :D 21:09:42 elliott: maybe it's a NOPUR then - no operation until reset 21:09:53 no purring 21:09:57 its forbiten 21:10:15 but it might be doing memory stuff while it's looping, so not sure if it's really no operation 21:11:32 -!- CakeProphet has quit (Ping timeout: 240 seconds). 21:11:34 God. Banshee is a fucking *revolting* media player. 21:11:44 I couldn't use it for 2 minutes. 21:12:37 Why would you *want* it to display albums by the artist tag (as opposed to the album artist tag)? 21:12:59 -!- CakeProphet has joined. 21:13:15 Seriously, I should not have albums under [dialog] simply because some live album happens to have a track of dialog. 21:13:51 [dialog] is an artist? 21:14:39 It's a psuedo-artist for tracks of general dialog not really attributable to anything sane in MusicBrainz. 21:15:40 that track should have the artist set to whoever is doing the dialog, shouldn't it? 21:15:45 -!- variable has quit (Remote host closed the connection). 21:16:18 olsner: Who the hell are you going to attribute something like "AND WITHOUT FURTHER ADO, THE FOO BARS" to, anyways? 21:16:38 find the announcer's name obvs 21:16:42 exactly 21:16:46 personally id just attribute it to the album artist 21:16:54 Also, that scheme *really* fucks up on albums where the album artist is Various Artists. 21:17:06 how many such albums have dialogue tracks 21:17:12 elliott: Not that many. 21:17:13 how many such albums are worth listening to 21:17:14 The Foo Bars feat. Announcer - Announcing the Foo Bars 21:17:53 Person Who Said "And Without Further Ado, The Foo Bars" 21:18:13 That *too* would screw up on Banshee. 21:18:27 It would list *the album* under Person Who Said "And Without Further Ado, The Foo Bars". 21:18:35 In addition to being under The Foo Bars. 21:18:43 The Foo Bars feat. Person Who Said "And Without Further Ado, The Foo Bars" - Person Who Said "And Without Further Ado, The Foo Bars" saying "And Without Further Ado, The Foo Bars" 21:19:11 olsner: id buy that single 21:19:53 So, yeah. When it takes me all of 15 seconds to find a *major* flaw in your handling of tags, your music program sucks. 21:20:12 -!- variable has joined. 21:20:34 Though, good on it for at least sorting by the artistsort tag and displaying by artist. Can't manage to get Quod Libet to do that. 21:21:03 have you tried Clementine lately? 21:21:13 Tempting. 21:21:31 it was so disappointing using amarok 2 for the first time :/ 21:21:33 like... why did you do this 21:21:38 Ah, heck, I will. 21:21:51 before that amarok was like itunes done properly 21:21:57 one thing I really miss from clementine is a way to get to related music from the currently playing song, or a song listed in the playlist 21:21:58 Yeah, Amarok 2 was saddening. 21:21:59 -!- variable has quit (Remote host closed the connection). 21:22:17 Amarok 1 was fucking t3h awesome. With any luck, so's Clementine. 21:22:17 e.g. good song playing from shuffle, rightclick to list all stuff from the same artist 21:22:25 olsner: how did that actually work anyway? 21:22:26 genre tags? 21:22:40 http://upload.wikimedia.org/wikipedia/commons/7/73/Amarok_2.4.png <-- seriously who even designed this 21:22:50 spotify does that particular part quite well since artists and albums are clickable links 21:22:53 -!- variable has joined. 21:22:54 nobody wants to fucking read a wikipedia article in the centre of their ugly media player 21:22:56 the whitespace is all fucked up 21:22:58 the left pane is almost useless 21:23:06 and the useful shit at the right is stripped down to the point of unusability 21:23:07 why 21:23:12 oh because its FANCY KDE PANEL WIDGETS 21:23:45 Seriously people, *just eat your fucking dog food*. that alone would solve so many usability woes. 21:23:45 elliott: I didn't mean any fancy stuff though, just the *really obvious* stuff that you can do with a media library 21:23:47 e.g. good song playing from shuffle, rightclick to list all stuff from the same artist 21:24:00 if clementine has any kind of smart browser functionality, which i'm like 99.999 percent sure it does, this should actually be like 21:24:04 a sixty line patch 21:24:18 exactly 21:24:25 have a go at it :P 21:24:33 or just make an issue. 21:24:59 http://www.clementine-player.org/ 21:25:00 wow 21:25:01 pretty fancy site 21:25:17 i find it amusing that the most native-looking screenshots are on windows 21:25:41 oh man 21:25:51 doing it myself? it'll be horrible code and then I'd have to get all involved in their "community" to send a patch in and meh... I don't want anything more to do with it than have this particular thing fixed anyway 21:25:52 did they clone the amarok ... whats even the name for the bar visualisation 21:25:53 that everything has 21:25:55 probably winamp started it 21:26:00 isn't it a fork of amarok? 21:26:00 they cloned it identically, awesome :D 21:26:06 olsner: no, "rewrite" 21:26:12 olsner: they basically recreated amarok onepointfour in qtfour 21:26:15 from scratch 21:26:32 (But Better, one presumes) 21:26:39 sigh 21:26:49 olsner: um you realise that amarok onepointfour was tied to kde? 21:26:54 and clementine is meant to be cross-platform 21:26:58 so forking it would just not be tenable 21:27:03 you'd have to port from qtthree + kdethree -> qtfour 21:27:08 which would involve rewriting most of it anyway 21:28:13 well theres http://code.google.com/p/clementine-player/issues/detail?id=273&q=similar&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary%20Stars 21:28:15 I used amarok in !kde just fine, but still in X of course 21:28:19 not quite the same thing though 21:28:23 http://code.google.com/p/clementine-player/issues/detail?id=1162&q=similar&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary%20Stars 21:28:23 similar 21:28:28 olsner: still depends on a shitload of kde libs and daemons 21:29:16 Dammit; one issue with Clementine. Can't sort by one tag and display a different. 21:29:42 pikhq: how often do you actually care about the exact ordering of your artists? its not like type-to-search isnt faster 21:29:47 and most of the time i just use shuffle anyway 21:30:18 elliott: For artists, it's a minor thing. For albums, I *really* want it to sort by date. 21:30:42 why not just sort by date then 21:31:19 It doesn't have the concept of sorting by things. It has the concept of grouping by things. 21:37:49 In short, it's too stupid for its own good. 21:38:34 > [x | x <- [1..10], then group by x `mod` 3] 21:38:35 Illegal transform or grouping list comprehension: use -XTransformListCompNo... 21:38:40 darn 21:38:54 oerjan: "then group by" 21:38:57 Oh, yeah, and it also seems to struggle with the concept of album artists. 21:38:57 hasql? 21:39:27 If an album has multiple artists on it, but a single album artist, it gets filed under "Various Artists". 21:39:28 !haskell {-# LANGUAGE TransformListComp #-} main = print [x | x <- [1..10], then group by x `mod` 3] 21:39:34 ​/tmp/input.23664.hs:1:13: unsupported extension: TransformListComp 21:39:56 pikhq, saw this and thought of you: http://www.cracked.com/blog/5-reasons-internet-access-in-america-disaster/ 21:39:57 what's that *No up there 21:40:23 !haskell {-# LANGUAGE TransformListCompNot #-} main = print [x | x <- [1..10], then group by x `mod` 3] 21:40:26 ​/tmp/input.23757.hs:1:13: 21:40:47 hm... 21:40:55 !haskell main = print [x | x <- [1..10], then group by x `mod` 3] 21:41:13 Gregor: UPGRADE 21:41:29 grmble 21:44:23 -!- pikhq_ has joined. 21:44:28 (http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#generalised-list-comprehensions, anyway) 21:45:49 -!- copumpkin has joined. 21:46:05 > groupBy ((==) `on` (% 3)) [1..10] -- old style 21:46:06 [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10]] 21:46:17 hm that's not very well grouped 21:46:40 groupBy only groups adjacent elements 21:46:44 i know 21:47:04 -!- pikhq has quit (Ping timeout: 252 seconds). 21:47:09 there's just no short way to express this without the extension i guess 21:47:33 > groupBy ((==) `on` (% 3)) $ sortBy (comparing (% 3)) [1..10] -- old style 21:47:34 [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10]] 21:47:39 er what 21:47:48 :t comparing 21:47:49 forall b a. (Ord a) => (b -> a) -> b -> b -> Ordering 21:48:01 oh duh :P 21:48:14 > groupBy ((==) `on` (`mod` 3)) $ sortBy (comparing (`mod` 3)) [1..10] -- old style 21:48:15 [[3,6,9],[1,4,7,10],[2,5,8]] 21:48:29 > 1 % 3 21:48:30 1 % 3 21:48:33 heh 21:48:46 that's actually haskell's fraction notation 21:48:59 > 1%2 + 1%3 21:49:00 5 % 6 21:49:12 yeah realized about the time I saw your oh duh and revised code 21:50:55 > scanl1 (+) $ map recip [1 :: Int ..] 21:50:55 No instance for (GHC.Real.Fractional GHC.Types.Int) 21:50:55 arising from a use o... 21:51:03 oh hm 21:51:11 > scanl1 (+) $ map (1%) [1 :: Int ..] 21:51:12 [1 % 1,3 % 2,11 % 6,25 % 12,137 % 60,49 % 20,363 % 140,761 % 280,7129 % 252... 21:51:31 > scanl1 (+) $ map (1%) [1 ..] 21:51:32 [1 % 1,3 % 2,11 % 6,25 % 12,137 % 60,49 % 20,363 % 140,761 % 280,7129 % 252... 21:51:42 > scanl1 (+) $ map (1%) [1000 :: Int ..] 21:51:43 [1 % 1000,2001 % 1001000,1503001 % 501501000,2009011003 % 503005503000,6300... 21:51:55 > scanl1 (+) $ map (1%) [1000000 :: Int ..] 21:51:56 [1 % 1000000,2000001 % 1000001000000,1500003000001 % 500001500001000000,200... 21:52:06 darn short lines 21:52:35 lambdabot seems to run on a 64 bit system. 21:53:00 > (1 :: Integer) == (1 :: Int64) 21:53:00 Couldn't match expected type `GHC.Integer.Type.Integer' 21:53:01 against inf... 21:53:08 > (1 :: Integer) == (1 :: Int32) 21:53:09 Couldn't match expected type `GHC.Integer.Type.Integer' 21:53:09 against inf... 21:53:11 oh wait 21:53:16 > (1 :: Int) == (1 :: Int64) 21:53:17 Couldn't match expected type `GHC.Types.Int' 21:53:17 against inferred type ... 21:53:21 > (1 :: Int) == (1 :: Int32) 21:53:22 Couldn't match expected type `GHC.Types.Int' 21:53:22 against inferred type ... 21:53:29 huh 21:53:32 oerjan: That can't work. 21:53:42 Int, Int32 and Int64 are distinct types. 21:53:47 -!- CakeProphet has quit (Ping timeout: 240 seconds). 21:53:51 i'd have imagined one of the types to be a synonym 21:53:55 > maxBound :: Int64 21:53:55 9223372036854775807 21:54:00 maxBound :: Int 21:54:13 ... 21:54:21 > maxBound :: Int 21:54:22 9223372036854775807 21:54:25 that'd be a bad idea since it'd make some haskell programs subtly dependent on the local word size 21:54:30 what olsner said 21:54:45 olsner: um they _already_ do that if they use Int 21:54:58 yes but not in a way 21:55:01 that could make it type on one machine 21:55:02 but not another 21:55:03 that's just _sick_ 21:55:07 hm 21:55:16 instead it types on all, but runs differently :) 21:55:34 well I would consider using more than the allowed range for Ints unportable/undefined anyway 21:55:34 gross but less so 21:55:47 i.e., you can do it as long as you acknowledge you are creating a "GHC program" that only works on some machines 21:56:00 the allowed range = by the report that is 21:56:09 > scanl1 (+) $ map (1%) [1000000 :: Int32 ..] 21:56:10 [1 % 1000000,666667 % (-242126656),353137899 % 820529344,(-1022068671) % (-... 21:56:16 MUCH BETTER 21:56:19 yeah, you can't count on more than 31 bits in an Int anyway 21:56:31 Do they really guarantee 31? 21:56:39 yes 21:56:45 that's the number I remember yes 21:56:47 IIRC not only ocaml, but also haskell have just 28 bits or so. 21:56:51 thirty-two with a tag bit for GC :) 21:56:59 twice11: no it's thirtysomething 21:57:04 Oh, 31 including sign. That's possible. 21:57:16 -!- zzo38 has quit (Remote host closed the connection). 21:57:29 does anyone use a sign bit ever 21:57:45 ghc of course doesn't put the tag bit in the same word, so uses 2^n size 21:58:06 The finite-precision integer type Int covers at least the range [ - 229, 229 - 1]. 21:58:08 --haskell ninety-eight 21:58:13 that's two to the power of twenty nine 21:58:17 oerjan: u lied 21:58:19 monqy: um two's complement is the most common representation 21:58:20 or wait 21:58:25 that's thirty bits, right? 21:58:26 elliott: darn 21:58:31 oh right 21:58:31 so that's 30 bits of two's complement 21:58:31 oerjan: yeah that's what I thought 21:58:31 so two tag bits, weir 21:58:31 d 21:59:09 monqy: and you can consider one bit as sign, although it isn't just negating what it would be without it of course 21:59:29 oh right 22:00:36 ROBOTS EAT PEOPLE 22:00:37 elliott: verbatim is pronounced ver-bay-tim, right? but can you say verb-a-tim instead or is that definitely wrong? 22:00:37 RUN 22:01:03 olsner: i dont even know with pronunciation and like wtf 22:01:04 `quote like wtf 22:01:08 131) alise: why internet is like wtf 22:01:09 olsner: I've never heard anyone pronounce it the latter way, I probably wouldn't recognize that pronunciation. 22:01:18 verb-a-tim is my mental pronunc 22:01:22 elliott: two tag bits is used for some mark and sweep algorithms, isn't it 22:01:23 but then im a socially isolated weirdo 22:01:36 Gregor, verbatim is how I'd pronounce it, and I'm fairly sure I've said it at some point. 22:01:43 Phantom__Hoover: congrats on conveying 0 information 22:01:48 "verbatim" 22:01:52 I wonder how the romans pronounced it 22:01:55 I pronounce "verbatim" "verbatim" too 22:02:19 *facepalm* 22:02:26 I pronounce "verbatim" "roman" 22:02:28 olsner, werbahtim, I assume. 22:02:37 we're 'bating 22:02:52 elliott: with that three color thing it requires 2 tag bits 22:02:55 mastur? 22:03:04 http://www.haskell.org/haskellwiki/Amb THIS CODE IS STILL AS COOL AS IT WAS WHEN I WROTE IT THREE YEARS AGO 22:03:16 POLYMORPHIC LIST MONAD TRANSFORMER WITH CUT AWW YEAH 22:05:43 olsner: the a in the second last syllable is long, so it carries the stress (although the romans iirc considered the length more important than the stress) 22:06:08 http://en.wiktionary.org/wiki/verbatim#Latin 22:06:48 (their poetry was based on long vs. short syllable meters) 22:08:59 so verbum means word, and -atim is an adverbial suffix, so basically it's "wordly"? 22:09:47 http://en.wiktionary.org/wiki/-atim#Latin 22:09:52 by the word, i guess 22:10:08 or wait 22:10:13 word by word 22:10:30 so there are more than this particular adverbial suffix and it adds additional meaning? 22:10:56 so it seems 22:11:19 I think latin suddenly became too hard to bother with 22:12:04 but I wonder, how do we know how the romans pronounced things? preserved mp3:s on millenia-old memory sticks? 22:12:04 heh my impression is that it has scores of little words and stuff 22:12:29 i don't think we actually know precisely 22:13:38 maybe there is an ancient pronunciation guide preserved, i don't know 22:14:56 "Pronunciation of Latin by the Romans in ancient times has been reconstructed from a variety of data, such as the evolution of features of the Romance languages, the representation of Latin words in other languages, such as Greek, the metrical patterns of Latin poetry, and more." 22:15:09 http://en.wikipedia.org/wiki/Latin#Phonology 22:15:37 hm i recall seeing metrical patterns mentioned as a guide 22:16:05 basically since latin script doesn't tell you which vowels are long and short, you need to use poetry to find out :P 22:16:54 olsner: did you know latin doesn't actually have one word for "yes"? you have to express it using one of several methods 22:17:37 oerjan: I did not know 22:18:07 * oerjan doesn't actually know enough latin to speak 22:18:21 -!- Lymia has quit (Ping timeout: 240 seconds). 22:18:55 -!- Lymia has joined. 22:19:37 i think "sic" (thus) is the one that evolved into what modern romance languages use 22:26:14 -!- Timwi has quit. 22:40:52 -!- ralc has quit (Quit: Leaving). 22:45:54 http://en.wikipedia.org/wiki/Anatoli_Bugorski 22:46:00 This raises so many questions. 22:46:36 Like, "how stupid do you have to be to stick your head into a proton beam even if the safety mechanisms fail?" 22:47:33 Excuse me he is awesome. 22:48:08 -!- elliott has quit (Quit: Leaving). 22:48:29 Oh god please don't tell me elliott has left to find the nearest proton beam. 22:48:35 "remained a poster boy for Soviet and Russian radiation medicine" ... basically he randomly survived due to his own awesomeness with no help from his doctors, and now he's a poster child for great medicine? 22:48:43 -!- elliott has joined. 22:48:54 olsner, it was Soviet Russia after all. 22:53:02 -!- augur has quit (Remote host closed the connection). 23:01:22 in soviet russia, radiation survives you! 23:04:19 -!- pikhq has joined. 23:05:25 -!- Patashu has joined. 23:06:08 -!- augur has joined. 23:07:33 -!- pikhq_ has quit (Ping timeout: 258 seconds). 23:17:29 -!- Wamanuz3 has quit (Read error: Connection reset by peer). 23:20:52 Wait "lascivious" is spelt that way. 23:21:03 I always thought it was "laviscious". 23:21:38 This is nearly as bad as the time I thought "Fibonacci" was spelt "Fibocanni". 23:21:41 -!- Wamanuz has joined. 23:22:57 a viscous lie indeed 23:23:27 * oerjan gets annoyed by people spelling it fibbonaci too 23:24:17 Ugh, I can't prove it, don't quite have the patience and statistics, but I suspect there is no difference in minimum functional gravity between altitudes 23:24:42 Minimum functional gravity? 23:24:42 That is, the least amount of gravity such that gravity doesn't stop pulling once it's started 23:24:55 OK your explanation makes even less sense. 23:25:09 Gravity... doesn't stop pulling... once it's started? 23:25:16 Gravity is *always* pulling. 23:25:19 That's how it works. 23:25:22 As far as I can tell, sometimes, gravity starts pulling, but then stop 23:25:23 stops 23:25:26 Sgeo: You seem to have a very, very confused idea of how gravity works. 23:25:32 Um... Sgeo. 23:25:32 This is in SL 23:25:37 Oh, never mind. 23:25:37 I thought this was obvious 23:25:43 You should really really really have clarified that. 23:26:14 Linden Labs seems to have a very confused idea of how gravity should be implemented. 23:26:17 :P 23:26:26 They just use Havok 23:26:59 That's new. 23:27:04 -!- CakeProphet has joined. 23:27:04 -!- CakeProphet has quit (Changing host). 23:27:04 -!- CakeProphet has joined. 23:27:14 Phantom__Hoover: um he's been speaking about it several times before 23:27:29 Sgeo, isn't it because they use FP for everything? 23:27:41 Phantom__Hoover, yes 23:27:42 oerjan, he's also developed an interest in /r/AskScience, so either was plausible. 23:27:44 I think 23:27:54 heh 23:35:11 -!- augur has quit (Remote host closed the connection). 23:38:06 Cold War protest stuff is quite interesting in hindsight. 23:38:49 > ("fi"++).concat<$>sequence[id,join((:).head)]`sequence`["bo","na","ci"] 23:38:50 Couldn't match expected type `[a]' against inferred type `a1 -> a1' 23:40:45 > ("fi"++).concat<$>sequence[id,join((:).head)]`mapM`["bo","na","ci"] 23:40:47 ["fibonaci","fibonacci","fibonnaci","fibonnacci","fibbonaci","fibbonacci","... 23:40:54 -!- zzo38 has joined. 23:41:03 -!- zzo38 has quit (Remote host closed the connection). 23:41:28 -!- pikhq_ has joined. 23:41:28 -!- pikhq has quit (Ping timeout: 246 seconds). 23:41:52 > let ncycle a b = map ((+a) . (`mod` (a+b)) [1..] in ncycle 10 15 23:41:53 : parse error on input `in' 23:42:04 > let ncycle a b = map ((+a) . (`mod` (a+b))) [1..] in ncycle 10 15 23:42:05 [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,10... 23:42:22 er, no. 23:42:47 > let ncycle a b = map ((`mod` b).(+a)) [1..] in ncycle 10 15 23:42:48 [11,12,13,14,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,0,1,2,3,4,5,6,7,8,9,10,11,1... 23:42:58 ....bleh, nevermind. :P 23:43:13 * CakeProphet just woke up, and did not think that one through. 23:43:20 Sgeo: if they use FP, why is their scripting language an imperative hack :( 23:44:12 whoosh 23:44:39 elliott: yeah yeah i _guessed_ that's not what the acronym is for :P 23:45:01 > let ncycle a b = liftM2 (:) head (takeWhile.(/=).head <*> tail) $ map ((`mod` b).(+a)) [1..] in ncycle 10 15 23:45:04 [11,12,13,14,0,1,2,3,4,5,6,7,8,9,10] 23:45:30 fp can stand for too many things it makes me sad :( 23:45:46 My regular expression language is now called FP. 23:45:53 * oerjan wonders what CakeProphet and Deewiant are actually trying to make 23:46:04 I was trying to make a more efficient cycle over numeric ranges. 23:46:22 but using mod doesn't work for that... 23:46:34 or at least not the way I'm using it. 23:46:40 what's wrong with cycle [10..15] 23:46:51 I have a latent fear of ++ 23:47:00 it comes from programming in Python long ago. 23:47:45 CakeProphet, why, the O(n) execution? 23:47:49 yours can easily be _more_ inefficient spacewise, since it doesn't use a cyclic structure 23:48:14 Phantom__Hoover: yes. 23:48:24 unless it's a really long cycle which you _don't_ want to hold on to, i guess 23:48:39 it's just a strange reflex I have from programming in Python, where one of the rules of thumb is to never chain together large amounts of list concatenation. 23:48:56 basically, optimization in Python consists of relying on as many C built-ins as possible, or writing your own. 23:49:04 CakeProphet: note that cycle doesn't actually _do_ a large amount of ++, just a single one 23:49:08 @src cycle 23:49:08 cycle [] = undefined 23:49:08 cycle xs = xs' where xs' = xs ++ xs' 23:49:28 oerjan: it does as many ++'s as you traverse... 23:49:38 because that's a recursive definition there. 23:49:54 CakeProphet: well it does the length of xs if that's what you mean 23:51:24 once you reach the end of the cycle it uses sharing 23:51:52 oh, so there's some optimization afoot. 23:52:18 CakeProphet: That's why it's not defined as 'cycle xs = xs ++ cycle xs' 23:52:20 it's not really optimization, it's just the fact that xs' is referred to inside itself 23:52:45 hm... 23:52:58 -!- augur has joined. 23:53:15 well, space efficiency wasn't the concerning as much as execution. 23:53:26 CakeProphet: it is quite possible that ghc does _actual_ optimization on the result, though 23:53:48 if you use cycle in the right way, it might be inlined as an actual loop 23:54:12 Ah, I see. 23:54:19 !show acro 23:54:19 haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!) 23:54:24 any idea why this is so slow? 23:54:33 or is it just egobot taking a long time? 23:54:35 !acro 23:54:40 OJMWQZQOLE 23:54:44 night 23:54:51 * CakeProphet waves. 23:54:52 -!- elliott has quit (Quit: Leaving). 23:56:39 CakeProphet: well egobot recompiles it each time 23:56:52 ah okay, that's probably it. 23:57:02 I've actually notice slowness with all of the Haskell userinterps so that makes sense. 23:57:09 *noticed 23:57:34 what's more it tried to compile it as an expression first before as a module 23:57:37 *tries 23:58:50 hm...