00:00:55 (cur) (last) 22:20, 13 July 2011 Taneb (Talk | contribs) (Replaced with new esolang) 00:00:55 (cur) (last) 21:53, 13 July 2011 Taneb (Talk | contribs) (Numberwang moved to Numberwang (brainfuck derivative)) 00:00:59 I find this precedent disturbing 00:01:13 I'm going to invent a language called brainfuck and move the old article away 00:01:20 (perhaps to Brainfuck (brainfuck derivative)) 00:01:54 21:51:26: motion that people stop thinking i'm a wiki admin 00:01:54 NEVER 00:01:58 oerjan: delete a page for me plz 00:02:35 I'm going to invent a language called brainfuck and move the old article away 00:02:44 Yeah, but I told him to try it and see if anyone stopped him. 00:02:51 I WILL STOP HIM WITH MY POWERS 00:02:54 22:36:07: * Rugxulo is not interested in searching months of backlogs ... 00:02:54 22:36:21: I probably missed some interesting stuff ... is fizzie here now? perhaps he can sum it up for me 00:03:00 fizzie: your true purpose in life revealed. 00:03:15 Oh, you're just before the gay stuff. 00:03:19 Poor Taneb. 00:03:25 My cringing is ready. 00:03:58 22:44:14: You don't know what gender I am 00:04:03 i forget what i was giong to say 00:06:08 22:47:39: I am regretting joining this chat 00:06:08 I am regretting reading this log. 00:08:22 -!- copumpkin has joined. 00:10:43 22:57:18: Taneb: although funnily i can only recall two people on the channel who are openly gay. (augur being one, of course.) 00:10:44 wait who's the other I KEEP A REGISTRY 00:10:56 elliott: you, ofcourse 00:11:15 22:59:11: `addquote ive been in #haskell and #agda primarily, recently So is #agda now full of dependently-typed gay sex? 00:11:15 FOLLOW THE FUCKING RULES 00:11:19 `delquote 503 00:11:21 ​*poof* 00:11:26 `addquote ive been in #haskell and #agda primarily, recently So is #agda now full of dependently-typed gay sex? 00:11:28 503) ive been in #haskell and #agda primarily, recently So is #agda now full of dependently-typed gay sex? 00:11:48 elliott: whats the rules 00:11:55 is that a double space 00:12:16 oic 00:12:17 I can't see because it breaks the line and I'm too lazy to adjust my terminal 00:13:13 yes 00:15:28 elliott: wait what 00:15:36 oerjan: ? 00:15:38 the two spacing rule 00:16:11 elliott: it _was_ two spaces O_O 00:16:27 i have no idea why you didn't see that 00:16:39 oh was it 00:16:45 hm 00:16:46 logs stripped it 00:16:46 heh 00:16:56 bad logs 00:17:57 elliott: also, slereah 00:18:29 I pronounce 'Slereah' as 'Slerah' in my head for some reason. 00:18:42 -!- kwertii has quit (Quit: bye). 00:18:54 Of course, I thought 'Fibonacci' was 'Fibocanni' for quite some time, so I'm not terribly good at that. 00:19:26 http://esolangs.org/wiki/Nthern_archive 00:19:30 itt: userspace 01:08:04 O...K... 01:08:09 I hear seagulls outside. 01:08:18 This suggests that it is uncomfortably close to morning. 01:08:24 * Phantom_Hoover → sleep 01:08:26 -!- Phantom_Hoover has quit (Quit: Leaving). 01:08:34 It's two am, you idiot. 01:29:05 -!- Sgeo_ has joined. 01:30:45 -!- Sgeo has quit (Ping timeout: 255 seconds). 01:35:49 "More than 6,000 people with pillow-related injuries check into U.S. emergency rooms every year!" 01:36:00 Thanks, I really, really, wanted to know that 01:37:18 Do you have... pillowphobia. 01:37:36 pobia 01:38:05 No, but I've never feared dying from pillow before 01:38:18 and now you do 01:38:38 you're probably more likely to die in a pillow-related accident than by shark bite. especially if you never swim in the ocean. 01:50:46 Guys how does Maven even work. 01:51:00 -!- hagb4rd has quit (Ping timeout: 240 seconds). 01:54:25 how can you "die from pillow"? 01:54:52 you know that thing in the movies where they put a pillow on someone's face and try to suffocate them 01:54:57 that doesn't work. 01:55:13 a pillow fight gets violent 01:55:16 we tried that with my ex once, but we just couldn't kill each other that way 01:55:27 you can just breathe through it or slightly tilt your head 01:55:32 you know that thing where you sneak rocks into your snowballs because you're mean 01:55:37 it works with pillows too 01:55:44 ah 01:56:04 im a porks 01:58:03 `addquote you know that thing in the movies where they put a pillow on someone's face and try to suffocate them that doesn't work. we tried that with my ex once, but we just couldn't kill each other that way 01:58:04 504) you know that thing in the movies where they put a pillow on someone's face and try to suffocate them that doesn't work. we tried that with my ex once, but we just couldn't kill each other that way 02:01:54 oklopol: it is possible to suffocate someone with a pillow though. you have to shove it down her throat. hard. just because the movies do it wrong doesn't mean it can't be done. 02:04:52 well right or you could set the pillow on fire and then shoot the girl 02:18:29 -!- derrik has joined. 03:02:23 -!- azaq23 has quit (Quit: Leaving.). 03:15:54 -!- oerjan has quit (Quit: Good night). 03:22:49 -!- derrik has quit (Quit: left). 03:24:08 -!- yorick has quit (Ping timeout: 240 seconds). 03:25:23 -!- jix has quit (Ping timeout: 240 seconds). 03:28:00 -!- ralc_ has quit (Remote host closed the connection). 03:29:27 -!- jix has joined. 03:37:15 ...wait 03:37:22 what? 03:40:50 ? 03:47:48 would you touch a boob that was on fire? 03:48:05 Gregor: Debian are always right, right? 03:48:21 #!/usr/bin/make -f says no. 03:48:40 What? 03:48:59 That's the first line of boilerplate in pretty much every debian/rules file. 03:49:07 ...so? 03:49:32 My point is, "Their packaging scheme is absurd." 03:49:45 That's just the most easy to spot absurdity. 03:52:01 -!- yorick has joined. 03:55:06 Gregor: OI 04:01:02 Gah, someone else answer :P 04:01:08 Is Apache Two a DFSGLSGLSG-ok license? 04:01:47 elliott: It's DFSG, FSF, and OSI approved. 04:01:53 In addition to being GPLv3 compatible. 04:02:21 Really, it's only a non-copyleft license with a patent clause. 04:02:46 THEN WHY ISN'T INTELLIJ IDEA IN DEBIAN (As someone suffering with Java, I am trying to find a tool to make it as bearable as possible, and Intellij IDEA looks well-liked :P) 04:03:31 DFSG is pretty good 04:03:36 Probably because it became free software only a couple years ago. 04:03:42 debian packaging scheme is ridiculous 04:03:51 Oh boy, their Linux distribution is a tar.gz. 04:03:52 but then again, so are all packaging schemes 04:03:56 INSTALLATION INSTRUCTIONS 04:03:56 Unpack the idea-10.0.tar.gz file using the following command: tar xfz idea-10.0.tar.gz 04:03:56 Run idea.sh from the bin subdirectory. 04:04:09 coppro: Some more so than others. 04:04:15 Maybe I'll just try NetBeans; that has the advantage of being packaged in my distribution. 04:04:29 Most the source-based distros have at least *respectable* packaging schemes. 04:04:38 s/Most t/T/ 04:05:01 (I might just stick with Eclipse if I can get a tolerable build system working with it :P) 04:05:25 And I give Slackware props for simplicity, though Slackbuild scripts are way too complicated for my tastes. 04:05:50 (mostly due to being *entirely standalone*) 04:07:12 Oh, good, IDEA doesn't install globally. 04:07:19 It... just has no installation script. 04:07:26 elliott: try Groovy 04:07:31 That's a language. 04:07:32 -!- oklopol has quit (Ping timeout: 252 seconds). 04:07:41 (in relation to your Java suffering) 04:07:44 It's also a fairly crappy one, but more importantly, an excruciatingly slow one. 04:08:11 Plus I'd have to bundle the entirety of Groovy in. 04:08:13 java? aren't there other languages that run on the jvm and can interface with java, or are they bad too, or do you really have to use java 04:08:26 groovy is one such language. 04:08:42 monqy: I'm writing a Bukkit plugin, so it has to be JVM based; any language will add heaps to my filesize; and I don't know of any languages that run on the JVM that are sufficiently good to make this worthwhile. 04:08:44 and Clojure 04:08:53 elliott: ah 04:09:00 Scala is a mess. Clojure is also a mess. 04:09:08 Jython! 04:09:14 Python is... Python. 04:09:14 python is a mess 04:09:32 is there a perl for jvm 04:09:39 doubt it 04:09:43 there's only one perl. :) 04:09:46 jerl 04:09:51 Jacl. 04:09:56 jaskell 04:09:58 aren't there multiple perl6s at least 04:10:03 there's only one perl. :) 04:10:08 http://www.perlmonks.org/?node_id=272641 04:10:16 right parrot 04:10:19 rather dead now, I think 04:10:43 what other languages exist 04:10:46 elliott: http://jtcl.kenai.com/ 04:10:48 bancstar 04:10:52 pikhq_: "lol" 04:11:01 elliott: why not just code in JVM. 04:11:08 -!- oklopol has joined. 04:11:10 like a real programer. 04:11:16 ...yes, with one m 04:11:21 Or, more realistically, write your own Forth for JVM. 04:11:22 zepto for jvm 04:11:26 j zepto 04:11:31 Jepto. 04:11:36 WARNING: You are launching IDE using OpenJDK Java runtime 04:11:37 no that ruins it 04:11:37 THIS IS STRICTLY UNSUPPORTED DUE TO KNOWN PERFORMANCE AND GRAPHICS PROBLEMS 04:11:59 ugh IDEA why are you using ugly Javaish text rendering 04:12:00 ... I was unaware there was any notable difference between OpenJDK and Sun JDK. 04:12:06 also, ugly javaish ui 04:12:12 pikhq_: there is 04:12:19 elliott: Like? 04:12:29 known performance and graphics problems 04:12:33 openjdk = java seven backported to work with previous java versions 04:12:39 with a bunch of proprietary stuff rewritten 04:13:00 http://en.wikipedia.org/wiki/Category:JVM_programming_languages 04:13:38 are any of them minimal 04:14:08 Pizza is a superset of Java. 04:14:10 IDEA you are not being nice to me. 04:14:26 jscheme is r4rs is r4rs any good is jscheme any good 04:14:31 with generics, function pointers, and "class cases and pattern matching (a.k.a. algebraic types)" 04:14:41 oh, pizza == gj predecessor 04:14:51 "It was designed by Gilad Bracha, Martin Odersky, David Stoutamire, and Philip Wadler to offer developers a smoother transition and better Java compatibility than the Pizza programming language, previously created by Odersky and Wadler." 04:14:53 big names 04:14:54 pizza tastes good 04:16:32 GJ? 04:16:41 And only one I recognize is Bracha :/ 04:16:42 why is there php for jvm 04:16:53 the only one I recognize is odersky 04:17:06 does this make me a bad person 04:17:47 Sgeo_: you don't recognise odersky? wadler? 04:18:02 elliott, I only recognize Bracha because of Newspeak, tbh 04:18:11 odersky is the scala guy right 04:18:20 if I ever knew who wadler is, I forget now 04:18:38 monqy: odersky = creator of Scala, Wadler = populariser of monads in functional programming, populariser in general of functional programming, influential in development of Haskell, author of "Theorems for free!", which popularised the study of parametricity in functional languages 04:19:17 Larry Wall = God of teh computers 04:19:17 sounds decent 04:19:22 impressive 04:19:23 CakeProphet: r u srs 04:19:31 teh is a serious word 04:19:36 ya srsly 04:19:58 bleh, IDEA is complex 04:20:06 I dislike IDEs 04:20:08 what does it stand for? 04:20:16 IDEA, I think 04:20:23 monqy: yeah but with Java it's not an IDE so much as... 04:20:26 monqy: the real language 04:20:36 what 04:20:37 would it be possible to change the D to a K and make furniture puns? 04:20:45 elliott, um, it's not Smalltalk.. 04:20:48 monqy: you might see , but the actual language behind it is is [File → New → Class] 04:21:07 it just erases that information after you write it, because java is stupid 04:21:11 so you can't reify intentions 04:21:28 can you do it with reflection 04:21:34 that's a joke right 04:21:36 yes 04:21:45 I was going to continue it 04:21:49 and make it better 04:21:53 but then you killed it 04:21:54 ok 04:21:57 monqy: go on 04:21:57 basically the answer to any problem in Java is "define a class" 04:22:00 let's pretend i said nothing 04:22:01 I can't 04:22:02 it's dead 04:22:04 gone 04:22:08 :< 04:22:23 IntelliJ IDEA Q[ampersand]A for Eclipse Users 04:22:23 Q: What happened to my Workspace? Where are all my projects? 04:22:23 A: They're OK, but in a slightly different way. 04:22:34 they're in a better place 04:22:40 they have been converted into a hilarious furniture themed interface! 04:23:01 Q: I feel that the editor behaves differently. Am I right? 04:23:01 A: Yes, you are. 04:23:15 these answers are so helpful. 04:24:37 all of your files are in drawers, the current file being edited is on the table. You have a handy wardrobe of tools, and you compile with the coffee cup. 04:24:59 there's longer answers below :P 04:25:43 IDEA what are you doing, you confuse me even more than Emacs :( 04:25:45 CakeProphet: the homespring of ides? 04:25:56 asterisk HOtMEfSPRIbNG 04:26:02 I can't bother to remember that 04:26:23 elliott can always be bothered. 04:26:44 This is his youthful superpower 04:26:51 apparently jaskell is a thing but instead of being like haskell it's weird 04:26:55 young whipper-snapper 04:27:19 Nice apparently has ideas from ML and Haskell 04:27:29 but that's all I know about it. Also I think it's dying. 04:27:48 ...I wish io wasn't dead. Such a good idea.. 04:27:50 oh god yeah jaskell 04:27:52 we found that before 04:27:53 it's amazing 04:28:05 it has like, literlaly nothing to do with haskell? 04:28:05 does anyone know what its deal is 04:28:07 literally 04:28:10 literally 04:28:38 There's OCaml-Java 04:29:20 Erjang, and Micro Focus JVM Visual COBOL 04:29:29 IDEA is upsetting me 04:29:29 these are your best choices. 04:29:31 JOBOL 04:29:32 like 4 java schemes, 2 java phps, 3 java clisps, two cobols, awk, ada, 2 logos, 3 luas, 2 pascals, perl6 04:29:44 i'll write it in logo then 04:29:46 or pascal 04:29:50 cobol 04:29:50 twice 04:29:52 I probably missed some interesting stuff ... is fizzie here now? perhaps he can sum it up for me <-- Just paste the last year of logs into Microsoft Word and use the "auto-summarize" option. 04:30:08 there's a C to JVM compiler... 04:30:08 oh wow IDEA wasn't joking about letting you place the cursor outside of a line boundary 04:30:25 you know what IDEA reminds me of 04:30:27 IDEA reminds me of J 04:31:00 I've never bothered to understand J 04:31:14 no the other J 04:31:17 oh 04:31:21 Alef++, a programming language inspired by Perl and Lisp. 04:31:24 Sounds good to me. 04:31:24 J the language is awesome you sohuld understand it. 04:31:29 CakeProphet: ahahahaha what 04:31:36 There are two Js? 04:31:44 http://en.wikipedia.org/wiki/List_of_JVM_languages 04:31:45 I'll put J in my reading pile 04:31:51 under "New JVM languages" 04:31:56 http://alefpp.sourceforge.net/ 04:32:04 how can a language have ++ in its name that's obscene 04:32:11 how can a language be influenced by both perl and lisp 04:32:14 that's obscene 04:32:40 oh, IDEA is kind of slow when i type, prolly cause of openjdk 04:32:41 i think 04:32:42 that i 04:32:44 am going to try netbeans 04:33:09 I use Eclipse for Java IDEs.. 04:33:16 me too, it sucks 04:33:27 I remember J is related to APL and it's good for golf and it's "function-level" but that's it 04:33:29 it's the best one I've found. I don't like netbeans at all. 04:33:36 ok it wouldn't suck if i had the patience to get the build system working 04:33:55 elliott: be a snob and use emacs for everything. 04:33:56 investigating alef++ now 04:33:58 monqy: it's actually a really powerful paradigm and understanding it brings a great insight into why programs in it are so short 04:34:02 monqy: J, that is 04:34:14 monqy: hint: J would be just as good as golf if every operator had a word-long name 04:34:39 function-level is a misnomer, it basically just has higher-order functions (every function is an operator, functions have one or two arguments only) 04:34:40 elliott: yeah it's on my reading pile. I read about that function-level paradigm once but I never really tried doing anything with it. I will. eventually. 04:34:46 not full higher-order functions, just second-level 04:34:52 but it has things like forks 04:35:17 (unopa binopb unopc) x = (unopa x) binopb unopc x 04:35:24 Now if only the functions were even slightly possible to remember 04:35:25 I remember there are no values things in "function-level" languages and that's it 04:35:29 wrong 04:35:31 that's bullshit 04:35:34 oh 04:35:36 Sgeo_: they are. 04:35:43 Hmm, maybe I should make an Ahnk deck thing 04:35:55 monqy: so sum is +/%# = +/ % # 04:35:58 % is division 04:36:02 # is length 04:36:05 erm 04:36:08 monqy: mean 04:36:08 not sum 04:36:13 / is over (fold) 04:36:17 mm 04:36:20 Sgeo_: they are hard to remember forever without making a mnemonic. they are easy to remember while you're actually reading and using it. 04:36:23 so it's just (sum fold) divide length 04:36:23 *or 04:36:37 monqy: and basically, every operation is lifted to arrays 04:36:41 i.e. array+array does the obviousa 04:36:45 (arrays are N-dimensional) 04:36:50 (and fixed-size) 04:37:02 yes, they always have 7 elements 04:37:04 :D 04:37:14 monqy: basically the J approach to solving problems is to look at the problem so that everything is an array, and then you just construct the array operation out of the primitives. :) 04:37:24 you very rarely see explicit loops or recursion of any sort 04:37:32 yeah I need to learn this. I'll do it after I finish my busy. 04:37:32 I think they have this thing called map that kind of works like that. 04:37:37 and fold.. 04:37:37 monqy: busy is a bad thing to do. 04:37:42 and zip 04:37:46 CakeProphet: yes, and J takes that idea to the entire language. 04:38:51 oh right and I'm suspending my busy until I get on this alef++ thing. good time management. 04:39:17 Why "Alef++"? 04:39:17 Well, some day I'm bored -- no project no idea --, but magically, i Googling a magical words "Creating my own programming language", by finding, reading, and testing some Open Source projects based in Java Virtual Machine like ObjectScript, Sleep, JRuby ..., i want to create my own dynamic programming language with a design like Perl. but recently, Artificial Intelligence has attracted my curiosity by programming with Lisp. 04:39:23 After, i decided to forge a revolutionary design for a programming language, between my imagination and (Perl, Lisp) syntax, by giving birth for Alef++. 04:39:26 is this for serious 04:40:06 * elliott attempts to counteract the horrible with http://inamidst.com/pluvo/ 04:40:17 a Perl-influenced language that's actually interesting 04:40:45 onto the reading pile 04:41:05 * elliott barf all over netbeans 04:41:35 eclipse it is 04:41:47 alef++ is, unsurprisingly, horrible 04:42:00 "Its syntax owes much to Bash" ;; hehe, these words rarely signify goodness 04:42:03 I demand a J/Perl hybrid. 04:42:10 actually I demand that there be Perl hybrids of every language. 04:42:20 perl/lisp oh wait 04:42:24 perl/per 04:42:25 l 04:42:35 actually alef++ doesn't seem anything like lisp to me 04:42:37 what am I missing 04:42:39 FOR THE LOVE OF ALL THAT IS HOLY WHY WOULD ANYONE WANT BASH INSPIRED SYNTAX 04:42:44 hi sgeo 04:42:48 Sgeo_: pluvo is actually good, shut your trap. 04:43:05 even alef++'s website is broken wtf 04:43:09 Oh, thought we were talkig about a different language 04:43:25 logic 04:43:39 Alef++, is a new programming language like Perl and Lisp syntax, with a many changing in classical languages designs, her specification designed to be implemented for any VM, by default can access to any private/protected/default Java fields or methods. 04:43:55 lolwhat 04:44:00 alef++ 04:44:01 Can access any private Java field? 04:44:41 ...don't tell me encapsulation isn't enforced at the JVM level.. or is it workaround-able like in Ruby? 04:45:04 conclusion of my java ide exxxploration: everything sucks, eclipse slightly lessso 04:45:06 I believe access modifiers are compile-time only. 04:45:20 CakeProphet: They definitely exist on the bytecode level in Java. 04:45:21 elliott: I have reached the same conclusion. 04:45:35 I vaguely recall you can go around them with the reflection API, though. 04:45:36 fizzie: oh, well, shows what I know about JVM. :P 04:46:07 oh hey, you can configure eclipse to use less ugly tabs 04:46:40 http://radio.javaranch.com/val/2004/05/18/1084891793000.html "Hack any Java class using Reflection" (first Google hit on some relevant keywords) 04:46:43 * elliott configures Eclipse to automatically close tabs. good idea. 04:47:00 okay enough alef++ for me 04:47:41 "[X] Show affordance in hover on how to make it sticky" 04:47:42 what 04:47:50 elliott: oh hey Pluvo looks pretty cool. 04:48:30 i just wish Eclipse was slightly less laggy than it is 04:48:33 the syntax looks like someone mixed Haskell and Perl. 04:49:08 a good idea 04:49:09 but I suspect this is superficial. 04:49:19 "You put shit in my jelly!" "You put jelly in my shit!" 04:49:47 syntax is good at being superficial 04:50:01 does eclipse really rebuild every project whenever i save a file 04:50:24 monqy: superficial in some sense, but not superficial in the "unimportant" sense. 04:51:54 it's mostly concrete syntax that invites superficial; abstract syntax is nice and structurey 04:54:07 concrete syntax is concerned with layout, abstract syntax is the structure. I think both are important. 04:54:37 one thing that makes Haskell nice is the user-defined infix operators. A small change in syntax layout that improves the coding experience. 04:55:25 notice the subtle difference between "is" and "is good at being"/"invites" 04:56:33 yes it's important (at least at some level), but it invites lots of concern/hype/whatever about things that really don't matter 04:56:38 wow, Eclipse actually wraps to eighty chars by defaul 04:56:38 t 04:57:32 monqy: depends on what you think matters. The concrete layout of the syntax is important to me, especially as the semantics become more complex. 04:59:15 reiteration: it matters, but is, in my opinion, more prone to invite superficial nonsense than other aspects of language design 05:00:13 elliott: awesome 05:00:35 CakeProphet: Because a ***<>* b makes code so clear 05:00:55 ha, no, not quite. 05:01:06 I mostly prefer things to be convenient. This is why I don't like Java. 05:01:07 coppro: "awesome"? 05:01:12 elliott: yes 05:01:19 coppro: i too use a vtonehundred 05:01:26 Having short infix operators composed of just a few symbols is rather convenient. 05:01:45 elliott: 80cols is important for putting multiple files up simultaneously 05:01:59 elliott: also reducing horizontal scan 05:02:11 CakeProphet: Yes except all the good ones are taken 05:02:11 this is java 05:02:17 eightycols just makes boilerplate spread across multiple lines 05:02:22 I dislike infix operators due to alignment/precedence/yuck issues but I don't know of anything better :( 05:02:41 coppro: I very rarely run into wanting to name an operator a name that's already taken in Haskell 05:02:50 I don't believe it's an issue that exists in practice 05:03:09 The only duplicates I get are for Parsec, which has names identical to ones in Control.Applicative for backwards-compat, but they do the exact same thing as the Applicative ones 05:03:11 So that's not even a conflict 05:03:27 When I see code using operators like ||| or *** I cringe 05:03:35 I don't even have a fucking clue what they are supposed to do 05:03:38 I've used *** 05:03:38 they're just symbols 05:03:40 not ||| yet 05:03:49 For me it's Java syntax that mostly ruins Java for me. Semantically I actually consider somewhat elegant due to the minimalism, but the syntax is verbose and that makes simple things very inconvenient. 05:03:50 I'd much rather `infix` operators at that point 05:03:50 coppro: (***) is called split 05:03:54 somehow I don't think that would enlighten you either 05:03:59 ....not that I like Java semantics, I was just comparing it to the syntax. 05:04:09 coppro: Before you learned , you didn't have a fucking clue what was supposed to do. 05:04:16 Except by familiarity with things you already know. 05:04:17 monqy: ||| is used in xmonad for composing layout strategies or whatever they call them 05:04:19 Learning curves are not bad. 05:04:34 coppro: oh I know (|||) from the ArrowChoice or whatever it is definition 05:04:35 elliott: This is true 05:04:42 coppro: (and (***) from Arrow) 05:04:48 The only reason you could possibly think learning curves are bad is because you have rarely strayed outside your circle of knowledge, i.e. you've only used languages that are really no improvement on what you know. 05:04:49 elliott: 05:05:12 Programming languages are... well, languages; they should optimise for concision for powerful/general/useful/common operators. 05:05:40 see: Perl. :D 05:05:45 *elliott: However I find that the Haskell community's treatment of abstract symbols are an unnecessary addition to the learning curve 05:05:47 The Arrow options are pretty much as general as they come, so they have short, concise names; some of them are infix operators because any alphabetic name would either be far too long, or incomprehensible. 05:06:05 also alphabetic names for everything suck. see: Java 05:06:14 *sucks 05:06:17 coppro: I hear that complaint a lot, but never from someone who actually uses Haskell for actual projects. 05:06:37 I find that, usually, valid complaints are echoed from within a community; certainly for Haskell there are many valid complaints that are echoed within the community. 05:06:50 (Actually most valid complaints about Haskell are heard /only/ within the community because they require an understanding of the language to form.) 05:07:31 When using Haskell I basically never think "oh, these infix operators sure are a drag"; usually, replacing infix operators with alphabetic ones would make my code's structure harder to see. 05:07:33 I agree with these statements, elliott.. 05:08:00 I must congratulate you on one of the most lucid arguments I have heard you make 05:08:30 elliott: now extend the arguments to complaints about Perl, plz. :) 05:08:40 Although I would say that part of the reason these sorts of complaints don't get heard as much within the community are that the learning curve is steep enough to discourage the people who would complain about that sort of thing 05:08:43 Compare (f `blahBlah` g) with (f >>+ g); you may not know what (>>+) does, but you probably wouldn't know what blahBlah does either; you're pretty much going to have to look it up no matter what you do. At least with the latter, those who know the operator can more easily scan the code, because the symbols make a distinction between "branch"/"structural" elements and "leaf" elements of a tree of compositional-style code. 05:08:48 perl is a mess end of argument 05:08:48 CakeProphet: not on your life 05:09:37 elliott: perhaps this is an implicit goal of the haskell community 05:09:38 coppro: Certainly true, but the Haskell community is big enough that I feel that just about any argument should have someone arguing for it from within. For chrissakes, I even saw someone argue, on /r/haskell -- someone who actually used Haskell to write actual code -- that nobody uses the monads that aren't basically StateT IO, and that they should be removed. 05:10:24 hahahaha 05:10:24 yeah, no one uses [] or Maybe... 05:10:44 or -> 05:10:57 The closest thing I ever wrote to a real project in Haskell used Parsec 05:11:09 sometime I should learn what the (-> a) monad instance means 05:11:12 and I still consider Parsec to be one of the greatest things about Haskell 05:11:26 coppro: Another thing on infix operations: If you read a paper about Haskell, the operators are almost universally prettied up with LaTeX along with the rest of the code, 05:11:29 [asterisk]code. 05:11:37 f >>= g a = g (f a) a 05:11:41 coppro: <*> is a lot nicer when you see it as "star in a circle". 05:11:43 return = const 05:11:49 That's basically a limitation of ASCII, though. 05:12:02 Ideally we'd write Haskell programs on whiteboards. :p 05:12:06 I dunno; the angle bracket shape is pretty groovy 05:12:39 Parsec is certainly a great way of showing how Haskell's abstractions help in writing actual code. 05:13:29 and also how infix operators help to make code more concise. 05:13:31 elliott: out of curiosity, how familiar are you with category theory in the rigorous sense? 05:13:53 coppro: Not nearly as much as I'd like to be, but learning it properly isn't on my short-term todo list. 05:13:59 *proper use of infix operators 05:14:06 elliott: ok 05:14:29 coppro: I feel a little twinge of disappointment in myself every time Edward Kmett posts something and I don't "get" it. :) 05:14:40 Not "get" as in understand why the code works, but "get" in a more abstract sense. 05:14:48 (my experience with Haskell tells me I would be best served learning proper category theory and considering Haskell to be an application of the category theory) 05:14:49 does perl properly use infix operators, or is that just unary prefix and those wacky sigil things and whatever /// and friends are? 05:14:55 a: no 05:15:09 monqy: a useful function is ap. ap f g = (\a -> f a (g a)) 05:15:18 coppro: There are a significant number of prominent Haskell programmers that consider the category theory relation to not actually be that useful to understanding Haskell code 05:15:33 I wouldn't be able to say who's right, though. 05:15:33 > ap(++)show$"ap(++)show" 05:15:35 "ap(++)show\"ap(++)show\"" 05:15:36 CakeProphet: S is nice, yes; I usually use (<*>) instead though 05:15:49 But there is obviously much of Haskell that does not actually originate from category theory. 05:15:55 and return is K 05:16:03 There's only a handful of main abstractions from category theory to understand, I would say. 05:16:03 right. 05:16:05 Maybe two handfuls. 05:16:24 Does anyone know how to get Eclipse to unindent blank lines as soon as I leave them? 05:16:31 It really irks me to have those tabs lying around. 05:16:34 Tab characters, that is. 05:16:44 I know that Clean Up does it, but that's another step. 05:16:56 and I think fmap is composition 05:17:06 can't remember anything else at the moment 05:17:09 monqy: not familiar with how <*> works for the (e ->) instnace 05:17:17 monqy: correct. 05:17:22 :t fmap.($) 05:17:23 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 05:17:31 ugh 05:17:37 :t flip (flip fmap.($)) 05:17:38 forall a b a1. (a -> b) -> (a1 -> a) -> a1 -> b 05:18:00 CakeProphet: (<*>) is literally ap but defined as a part of applicative functors rather than in terms of monad stuff 05:18:19 sigh, we really need a better hierarchy for those typeclasses 05:18:36 monqy: oh, so it's identical. 05:18:48 but <*> looks a lot nicer than `ap` 05:18:51 right. 05:19:19 and <*> is more general, assuming someone bothered to define applicative instances for every monad 05:19:19 elliott: or perhaps something better than typeclasses.. 05:19:30 CakeProphet: perl allusion? 05:19:44 I have done no alluding to Perl.... 05:20:00 or? 05:20:03 what are you talking about? 05:20:18 I was asking if you were in the process of alluding to perl 05:20:22 oh, no. 05:20:22 apparently not 05:20:32 Typeclasses are pretty good. 05:20:38 no Haskell has generally figured shit out better than Perl has. 05:20:54 it would be silly to allude to Perl as a means to improve Haskell. 05:21:15 silly is good so long as not everyone is serious 05:21:17 05:21:20 eclipse, u r being bad. 05:21:24 meaning of good depending on who is serious 05:21:40 hehe ant 05:22:05 all I know about it is it uses xml 05:22:13 it sucks 05:22:17 if you had dynamic typing like Perl, then typeclass hierarchies wouldn't even be an issue! 05:22:31 monqy: how was that? 05:22:39 if you had loose typing like forth, type errors wouldn't even be an issue! 05:22:46 I've seen antfiles and heard stuff and stuff 05:22:57 elliott: notwithstanding the dumbstupid bits of design whereby Haskell concepts don't map cleanly onto category-theoretic ones, my main issue with Haskell is simply one of comphrehending the reason each particular abstraction exists 05:23:19 who thought xml was a good idea suited to build process definition or whatever the term is for what antfiles do 05:23:22 abstraction for the sake of abstraction, duh. 05:23:34 coppro: I feel like "issue" places the blame unnecessarily on Haskell, since the problem seems to be mainly one of ignorance 05:23:53 elliott: sorry, yes, that was phrased badly 05:24:04 Perl fixes all of these issues by not allowing you to define other data structures besides the ones it provides you. 05:24:17 then it gives you oop 05:24:17 coppro: I mean, understanding why monads are useful is pretty easy (IMO; way too much emphasis is placed on monads as being a Thing in writings about Haskell by people who don't know Haskell, which is unfortunate) 05:24:22 and my small experience with formal category theory tells me that this is the best approach. I shall eventually follow it up with learning examples (both in mathematics and in Haskell) 05:24:36 agreed on that point 05:24:37 e.g. Alternative is an abstraction that is very easy to understand the use of: 05:24:40 class Applicative f => Alternative f where 05:24:41 empty :: f a 05:24:41 (<|>) :: f a -> f a -> f a 05:24:41 some :: f a -> f [a] 05:24:41 many :: f a -> f [a] 05:24:52 if you know Parsec, you understand Alternative's use, and can easily visualise its generalisation to failure handling of various kinds 05:25:03 if you know the list monad, you can come up with the implementation pretty easily 05:25:29 (well, some and many are confusing, but they have defaults) 05:25:54 the shame with Alternative is that it's separate from Monoid and MonadPlus, sigh 05:26:11 but I mean, sure some abstractions are difficult to see teh application of 05:26:14 what's arrowplus' deal; I forget 05:26:17 but it's hard to think of a solution to that other than reading a bunch of code 05:26:28 or does it have a different name like arrowadd 05:26:40 elliott: it would be nice if the only thing that mattered was the type of the function and not the name for the purposes of being an instance, but I think that would create some ambiguity. 05:26:48 CakeProphet: uhhhh, yeah. 05:26:49 elliott: I'm sorry, but I have to be honest; the defintion of Alternative provides me little insight into what it does 05:26:56 coppro: well it has documentation, I elided it 05:27:02 coppro: it "does" nothing, it is a typeclass 05:27:11 coppro: you've used Parsec, you know what <|> does 05:27:15 empty is the failure value 05:27:20 some and many are irrelevant (they have defaults) 05:27:42 i wish i hadn't picked it now since it's part of the Great Number of Typeclasses That are Actually Just Monoids, sigh 05:27:48 elliott: I'm lookingat the documentation 05:27:53 the list implementation is empty = []; (<|>) = (++) btw 05:28:11 elliott: what do some and many do? 05:28:18 @src ArrowPlus 05:28:19 Source not found. Are you on drugs? 05:28:27 :( 05:28:37 coppro: like I said, they're basically just library functions; they're in the typeclass so you can give them more efficient implementations 05:28:38 fungot: why is lambdabot so mean? 05:28:38 CakeProphet: i'll bet that lurking further down the road is some sort of magic shell script that gives you ( complaints/ bugs to: 05:28:49 they're irrelevant for this quickly-becoming-disasterous example 05:28:54 ooh ArrowPlus is actually split up into ArrowZero and ArrowPlus 05:28:55 snazzy 05:29:25 -!- elliott has left ("Leaving"). 05:29:32 -!- elliott has joined. 05:29:42 may your example rest in peace 05:29:53 guh, Eclipse's generated ant build.xmls are so ugly 05:29:53 elliott: ok let's pretend you did MonadPlus then 05:30:04 coppro: that's just as bad. 05:30:11 only Monoid should exist :P 05:30:20 elliott: ok fine 05:30:30 elliott: monoid it is 05:30:31 (oh hey, new homestuck albums) 05:30:36 I really think that Monoid would be vastly improved by having (++) instead of mappend 05:30:39 coppro: well, you know whawt a monoid is. 05:30:41 presumably.c 05:30:44 CakeProphet: hysterical raisins 05:30:48 base sucks, get used to it :P 05:31:00 caleskell caleskell 05:31:43 also, since monoids are pretty common, it seems expected that there would be a number of typeclasses that are supersets of Monoid. 05:31:54 elliott: This is a real complaint about the Haskell community: They let the abstract algebra leak into 'how to program in this language' way too quickly 05:32:01 at least they use better names like (<|>) instead of mappend... 05:32:06 CakeProphet: supersets/identical???????? 05:32:11 Thankfully I enjoy abstract algebra so I am not significantly discouraged by this 05:32:19 CakeProphet: except requiring a different kind 05:32:28 coppro: every other language lets sloppy engineering leak into "how to program in this language" way too quickly 05:32:55 but for newbies, the Monoid a => Monoid (Maybe a) instance documentation is horrendous 05:32:56 monqy: well yes, some are identical. It's nice to not have to newtype for every possible monoid. 05:33:02 (for instance) 05:33:09 instances need documentation? 05:33:19 elliott: I think so, yes. 05:33:36 well, some types have more than one possible instance for a typeclass 05:33:40 but most of the time they don't 05:33:45 so any documentation would be... boilerplate. 05:33:55 isn't Maybe like that 05:34:03 so there's what First and Last 05:34:05 > Just 2 `mappend` Just 3 05:34:06 Ambiguous type variable `t' in the constraints: 05:34:06 `Data.Monoid.Monoid t' 05:34:06 ... 05:34:13 use +++ 05:34:14 I mean 05:34:15 ++ 05:34:16 elliott: "Lift a semigroup into Maybe forming a Monoid according to http://en.wikipedia.org/wiki/Monoid: "Any semigroup S may be turned into a monoid simply by adjoining an element e not in S and defining e*e = e and e*s = s = s*e for all s S." Since there is no "Semigroup" typeclass providing just mappend, we use Monoid instead. " 05:34:17 bleugh 05:34:19 :t (++) 05:34:20 forall m. (Monoid m) => m -> m -> m 05:34:25 coppro: ok, I agree that's ugly inline 05:34:42 monqy: wait, (++) = mappend? Is that standard Haskell? 05:34:46 CakeProphet: caleskell 05:34:51 coppro: it's wrapped in the code which is slightly better http://hackage.haskell.org/packages/archive/base/4.3.1.0/doc/html/src/Data-Monoid.html#Monoid 05:35:02 coppro: but basically ... well 05:35:06 coppro: ok, what you're saying is: 05:35:16 :t (.) 05:35:17 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 05:35:20 coppro: that documentation is not helpful for a newbie who doesn't know abstract algebra 05:35:21 CakeProphet: caleskell 05:35:39 which is true, but the newbie probably either doesn't want to use the instance, or will just use it without the documentation by experimentation 05:35:55 sometimes just a brief explanation of how a particular instance works would be nice. 05:36:02 coppro: But remember that this is an API reference, not a tutorial 05:36:07 elliott: This is true 05:36:14 CakeProphet: tbh, I find sourcediving the quickest way to answer such wishes 05:36:21 yes, that's normally what I do. 05:36:30 elliott: Thus it becomes apparent that knowing the abstract algebra is useful 05:36:39 still it doesn't describe intent/use-cases and such. 05:36:43 coppro: I agree that the Haskell... "experience" for a newbie could use improvement, but on the other hand, I don't really care much about the experiences of people coming from "traditional" imperative languages. 05:37:18 I mean, not that they're bad people or anything, I just think that "dumbing down" Haskell to make it easier for them would miss the point of Haskell 05:37:27 I didn't find Haskell to be particularly difficult to learn, at least the basics anyways. 05:37:38 haskell wasn't difficult at all for me 05:37:48 Not saying I want to be "elitist" about it or anything -- god I love scare quotes -- but I find, e.g. a mathematician wanting to learn Haskell a much more interesting origin to optimise for. 05:37:49 most of the learning curve is in the abstractions that are built from a fairly simple language. 05:38:13 coppro: I also don't think that belittling "traditional" programmers by hiding the abstract algebra, etc. underpinnings of things a good idea, either. 05:38:32 Sure, there are a lot of programmers who would dismiss it as abstract nonsense, but let's be honest, they probably wouldn't end up using Haskell anyway. 05:38:39 elliott: true 05:39:14 (Unfortunately this kind of we're-all-practical-and-those-guys-are-so-abstract-ho-ho superiority complex seems to be distressingly common with programmers on the internet, but well... this is the internet, everyone is an asshole.) 05:39:43 see: Perl programmers 05:39:47 We're "practical" — we believe malloc is cheap and garbage collection expensive. 05:40:05 coppro: I think your criticism is definitely valid, but at the same time I think that the Haskell community should focus on making the language nicer for existing users is more important than making it nicer for newbies, at least in the short-ish term. 05:40:08 what do php programmers think 05:40:13 monqy: Nothing. 05:40:13 elliott: ok 05:40:15 php programmers don't think anything.... 05:40:18 Their heads are entirely empty. 05:40:33 Do they also have a hat full of bomb? 05:40:47 PHP programmers are programmers who are too stupid to be Perl programmers. 05:40:54 or who are paid to be PHP programmers. 05:41:04 who pays someone to program in php 05:41:08 lots of people... 05:41:12 see: the internet 05:41:16 elliott: One thing I wish was possible was a better way to handle cases where a single type may have multiple instances of a typeclass, as with Monoid 05:41:20 sadist? idiot? are there other reasons? 05:41:34 like I said, money. 05:41:47 coppro: Typeclasses are a trade-off: You avoid passing a record to every single function you're using, but you can only have one instance. 05:42:02 but really every PHP script in the world should be replaced with Perl. 05:42:11 elliott: Well you can get around that with newtype 05:42:12 coppro: Actually I hear that ML programmers laughed at Haskell typeclasses to start with, because "ho ho only one instance", but then it turns out that passing around records is a huge gigantic pain and typeclasses are so much more convenient. 05:42:20 coppro: IMO, if there is more than one possible instance, either: 05:42:29 newtype newtype newtype! 05:42:34 - There is one instance that is much more useful than the other, and the other should be provided with a newtype; 05:42:45 - Or both are equally useful, and there should be _no_ instance for the base type, only two newtypes. 05:43:03 It's not ideal, but usually there's only one instance you would actually want to use, so it works out. 05:43:08 Unfortunately the latter seems to be a path not often taken. 05:43:57 elliott: I agree in concept; I just wish the syntax was better 05:44:23 Yeah. 05:44:31 newtype is a pain :'( 05:44:57 Just have Monoid1, Monoid2, Monoid3, ... :) 05:45:02 what could be simpler. 05:45:18 CakeProphet: Actually, not really. 05:45:21 (Note: 'everything else' is not a valid response) 05:45:22 CakeProphet: There'd be only one Monoid. 05:45:44 CakeProphet: There'd be ConcatList and ZipList, though. 05:46:23 (note, not Monoid implementations. My brain sucks at thinking of a more relevant example.) 05:46:28 elliott: for instance, getSum $ mconcat $ map Sum [1..10] 05:46:48 coppro: http://hackage.haskell.org/packages/archive/newtype/0.2/doc/html/Control-Newtype.html 05:46:54 "ala Sum" 05:47:29 elliott: nice, didn't know about that 05:47:32 Conor McBride: always the best? 05:47:33 (Yes.) 05:47:38 that does look very nice 05:48:17 Make Ant easy with Eclipse --http://www.ibm.com/developerworks/opensource/tutorials/os-ecl-easyant/ 05:48:21 `quote have become 05:48:23 498) elliott: You have become the very thing you fought for! 05:48:34 elliott: I /think/, however, you could work this into the type system somehow 05:48:34 -!- cal153 has joined. 05:48:42 this thing is 9 pages lol 05:48:43 elliott: perhaps I should write a paper on it, or do those exist? 05:48:55 coppro: Probably :-P 05:48:58 -!- cal153 has quit (Client Quit). 05:49:15 elliott: Where is a good repo of Haskell papers 05:49:53 http://www.haskell.org/haskellwiki/Research_papers ? 05:49:57 thanks 05:50:02 You should basically just read anything McBride has ever written and be done with it. 05:50:26 coppro: But really, a blog post would accomplish at least as much as far as whatever idea you have goes. 05:51:14 elliott: sure 05:51:23 elliott: but I can do one better with a paper 05:51:33 if I actually go and explain detailed semantics, etc. 05:51:39 You said "sure", then immediately contradicted yourself :) 05:51:50 ok, fine then 05:51:51 I disagree 05:51:53 You can put anything you can put in a paper in a blog post :P 05:52:12 elliott: no one wants a multipage blog post 05:52:14 * pikhq_ is not quite getting what ala Sum would do 05:52:20 coppro: I do. 05:52:36 coppro: This is Haskell, we expect multipage blog posts :) 05:52:46 I'm sure most of Conal's posts count as multi-page. 05:53:11 Some of ezyang's oto. 05:53:13 too. 05:55:40 I mean, would that "getSum $ mconcat $ map Sum [1..10]" example be written as "ala Sum (\_ -> mconcat)", or what? 05:56:07 Erm, "ala Sum (\_->mconcat) [1..10]" 05:57:11 you'd use foldMap, not mconcat 05:57:36 :t foldMap 05:57:37 Not in scope: `foldMap' 05:57:57 @hoogle foldMap 05:57:58 Data.Foldable foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m 05:57:58 Data.Traversable foldMapDefault :: (Traversable t, Monoid m) => (a -> m) -> t a -> m 06:04:37 elliott: my approach to multiple instances would be to basically allow the type system to implicitly create a complex type where multiple instances exist, and then disambiguate it later. Operations on the typeclass would be lazy and thus not performed until at least the disambiguation occurs. There's some deep type system magic that it would entail though. 06:05:04 possibly the issues are actually unresolvable 06:05:28 "Lazy" is way too vague in this context; what you mean is that it'd add a context like 06:05:35 (Num Integer) => Integer -> Integer -> Integer 06:05:48 to the disambiguated signature of (+) whenever you used + on Integer arguments, right? 06:06:02 Where the Integer arguments there are actually the same Integer as that Num instance. 06:06:05 It's really vague :P 06:06:08 Maybe something like 06:06:10 nah 06:06:13 (Num t, t ~ Integer) => t -> t -> t 06:06:22 I mean something like trying to make mconcat [1..10] be well-defined 06:06:29 but useless until you perform getSum or getProduct on it 06:06:31 :t mconcat [1..10] 06:06:32 forall t. (Num t, Enum t, Monoid t) => t 06:06:35 It is. 06:06:40 > mconcat [1..10] 06:06:41 Ambiguous type variable `a' in the constraints: 06:06:41 `Data.Monoid.Monoid a' 06:06:41 ... 06:06:46 > mconcat [1..10] :: [Integer] 06:06:47 No instance for (GHC.Enum.Enum [GHC.Integer.Type.Integer]) 06:06:47 arising from ... 06:06:52 Meh, you can make an instance 06:07:10 well sure you can. 06:10:00 I think it could be done by making a type which is a supertype of Integer, Sum Integer, and Product Integer, and the underlying machinery would actually make an mconcat instance on that type. The actual evaluation semantics would depend on whether you attempt to use the result as a Sum Integer or a Product Integer; an attempt to use it as an Integer would be illegal 06:10:19 actually wait that makes no sense 06:10:36 :) 06:10:41 basically I want the magic type-inference disambiguation of Num 06:10:59 as it works on constants 06:13:10 except applying to ambiguous applications of polymorphic functions 06:13:23 (and this is not the same as overloading, I'll note) 06:16:22 I want Perl contexts in Haskell. :) 06:16:31 except you can define your own contexts. 06:17:22 -!- azaq23 has joined. 06:18:08 basically I want the magic type-inference disambiguation of Num 06:18:08 as it works on constants 06:18:15 not magic; "9" simply doesn't mean "9::Integer" 06:18:21 it means Prelude.fromInteger (9::Integer) 06:18:26 sorry, it means Prelude.fromInteger (9::Prelude.Integer) 06:18:30 ah 06:18:37 there's also IsString with recent ghc and -XOverloadedStrings 06:18:40 from Data.String 06:18:44 that lets you overload string literals too 06:18:56 ah ok 06:19:02 then "x" means Data.String.fromString ("x"::Prelude.[] Char) :P 06:19:08 it wouldn't work quite like that then 06:19:12 it's kind of ad-hoc, but... 06:19:15 although I guess it could 06:19:16 hmm 06:19:25 :t fromString 06:19:25 Not in scope: `fromString' 06:19:33 :t Data.String.fromString 06:19:34 forall a. (Data.String.IsString a) => String -> a 06:19:57 this is a beautiful thing. 06:20:29 as that is pretty much the same thing as read. 06:20:36 Uhh. 06:20:40 No, no it is not. 06:20:47 :t read 06:20:48 forall a. (Read a) => String -> a 06:20:51 hmm 06:20:55 IT HAS THE SAME TYPE OBVIOUSLY THE SAME FUNCTION OMFGWTFBQBQ 06:21:03 For one, the argument to fromString is not expected to be a piece of valid Haskell cod.e 06:21:04 code. 06:21:16 right, this is even better. 06:21:26 It's... 06:21:28 Literally completely unrelated. 06:21:33 It is only for string types like ByteString and Text. 06:21:47 because it means I can take an arbitrary data structure, and implicitly parse a domain-specific language into that data structure. 06:21:54 > fromString "hello" :: String 06:21:54 Not in scope: `fromString' 06:21:56 That is not what IsString is for. 06:22:00 > Data.String.fromString "hello" :: String 06:22:01 Not in scope: `Data.String.fromString' 06:22:03 oops 06:22:04 elliott: k. 06:22:28 but there is nothing stopping this usage is there? so... 06:22:47 CakeProphet: Yes, there is; my real-world ability to club you if you do that. 06:22:51 Do not expect me to back down on this. 06:23:30 I don't see the harm in taking a risk here... 06:24:15 I mean, it's obviously a language extension that needs ridiculous exploiting. 06:24:39 hi, I know someone who thinks it's a good idea to use -XOverloadedStrings so that strings can act as a DSL for any data structure whatsoever. please give me appropriate threats to use in response. thanks 06:24:50 #haskell is on the case 06:25:30 incidentally he also likes perl 06:25:33 "go write perl" seems like an appropriate dismissal 06:25:35 CakeProphet: craet 06:25:43 caret. 06:25:49 ^ 06:27:09 elliott: so I think this is doable within the type system, but not with the existing language constructs 06:27:39 It's way too ad-hoc for me to support it ;D 06:28:08 elliott: since it requires a transparent supertype 06:28:16 Haskell has no supertyping :P 06:28:21 Or, well, subtyping. 06:28:25 I don't think you are using "supertype" correctly. 06:28:26 Not explicitly 06:28:34 You mean: data type with one type argument. 06:28:37 No 06:28:48 I mean "type whose set of values is a superset of the other's" 06:28:57 Right, Haskell does not have those at all. 06:29:03 Sure it does 06:29:04 No. 06:29:06 elliott: I see nothing wrong with my idea. 06:29:18 in fact it is an excellent abuse of a wonderful language extension. 06:29:27 CakeProphet: That's because Perl has removed your sense of taste. 06:29:36 elliott: what type is fromInteger 06:29:40 err sorry 06:29:49 0 06:29:58 (you know what I meant the first time) 06:30:16 pikhq_: but it has given me a newfound appreciate of convenience. :) 06:30:21 *appreciation 06:30:36 dying 06:30:43 coppro: 06:30:43 :t 0 06:30:44 forall t. (Num t) => t 06:30:45 you haven't lived until you've died. 06:30:55 coppro: just like the type of 06:31:00 cool well-designed macros are like convenience except elegant 06:31:02 woah 06:31:05 :t (fromInteger (0::Integer) +) 06:31:06 forall a. (Num a) => a -> a 06:31:07 coppro: is that. 06:31:14 coppro: not subtyping at all, just syntactic sugar. 06:31:16 if you define 06:31:17 CakeProphet: We're talking about a language that enforces a variant of Hungarian notation. Except more confusing. 06:31:25 data Integer = Neg Nat | Zero | OnePlus Nat 06:31:28 data Nat = Z | S Nat 06:31:29 then 06:31:35 0 === fromInteger Zero 06:31:43 see? nothing that even looks like subtyping 06:31:52 template haskell sounds more pleasant than abusing overloaded strings 06:32:02 to me 06:32:06 pikhq_: I'm not even sure if that's the right way to describe sigils. 06:32:15 coppro: well, there is a very shallow form of subtyping; every type has _|_ 06:32:18 monqy: At the very least, Template Haskell is *intended for that*. 06:32:25 coppro: typeclasses are kind of like subtyping, but only if you look at them wonky :) 06:32:36 elliott: Yeah, every type has bottom 06:33:30 what's the fuss about? It is completely harmless to use OverloadedStrings to my own advantage. 06:33:44 elliott: Every type that has an instance of Read also has the type of read 06:33:46 for example, in live coding, it would reduce the amount of typing required to do something. 06:33:47 CakeProphet: I'm crying 06:33:59 CakeProphet: itwould increase the crying 06:34:03 coppro: category error: types don't... have types. 06:34:07 rephrase thx 06:34:11 (pedantic? yup, but so is this discussion :P) 06:34:17 elliott: *value 06:34:20 CakeProphet: just use quasiquotation or something actually meant for what you want to do 06:34:26 coppro: that's overloading, not subtyping 06:34:31 CakeProphet: you know about template haskell, right? 06:34:41 right? 06:34:43 -!- azaq23 has quit (Quit: Leaving.). 06:34:51 monqy: why is the intent of a feature important when the actual utility of the feature is completely exposed for a certain use? 06:35:06 dead 06:35:08 i really want to ban CakeProphet from using haskell 06:35:34 send him to #agda 06:35:34 monqy: and yes I know about it. 06:35:48 what did he do 06:35:49 do you know about quasiquotation specifically 06:36:02 Vorpal: bad things. 06:36:03 if anything, the intent is a completely meaningless assertion. Call me a language anarchist, I guess. :P 06:36:09 elliott, such as? 06:36:13 perlist 06:36:26 CakeProphet: wow are you serious 06:36:28 this has nothing to do with Perl... 06:36:38 Vorpal: bad 06:36:47 CakeProphet: i guess we really do need coq 06:36:56 you actually _cannot_ trust some people to respect non-codified laws. 06:37:04 * CakeProphet was abusing Python's featured for unintended purposes before he ever learned Perl. 06:37:13 *features 06:37:15 you're a bad person 06:37:18 guido is crying too 06:37:20 nonsense. 06:37:32 Vorpal: he wants to use -XOverloadedStrings to use string literals as arbitrary DSLs 06:37:42 I'm merely apathetic to the designers concerns. 06:37:45 because quasiquotation is uncool 06:37:56 instance IsString (IO ()) where fromString = compileAndRunWithGHC 06:37:57 elliott, whoa 06:37:58 CakeProphet: "Apathetic to design", more like. 06:38:03 main = "print ()" 06:38:07 elliott, what does -XOverloadedStrings do now again? 06:38:12 Vorpal: 06:38:15 ?src IsString 06:38:15 Source not found. This mission is too important for me to allow you to jeopardize it. 06:38:16 ugh 06:38:19 elliott: k we're both wrong 06:38:22 Vorpal: class IsString a where fromString :: String -> a 06:38:27 especially when they haven't implemented a means to restrict the usage to the one they intended. It is purely vapor... 06:38:28 Vorpal: "a" == fromString ("a"::String) 06:38:33 elliott, eeeer whoa 06:38:36 Vorpal: just like integer literals are overloaded 06:38:39 Vorpal: it's for ByteString + Text 06:38:39 errrrr* 06:38:43 + other similar packages 06:38:44 nothing wrong with it 06:38:46 elliott, nice 06:38:47 unless you let CakeProphet near it 06:38:51 elliott, I see 06:39:00 elliott, yeah I can imagine where that is heading 06:39:02 one time I read a bug report involving someone using it to embed XML 06:39:04 it was a mess 06:39:06 elliott: I got the relation backwards 06:39:10 elliott, fits into perl though. But not haskell 06:39:15 CakeProphet: You're the kind of person who would use undefined behavior in C because it works with your compiler. 06:39:25 pikhq_: no, that's different. 06:39:37 pikhq_: the difference is that the language spec forbids that :P 06:39:58 that has actual negative consequences. 06:40:14 being clubbed in the head is an actual negative consequence. 06:40:15 please remember this. 06:40:19 i can find out where y oulive. 06:40:29 CakeProphet, I can sell you an iron helmet 06:40:34 CakeProphet: Assume that the next person who will maintain your code is a serial murderer who knows where you live. 06:40:46 they are (it's me) 06:40:48 why would anyone maintain my code? 06:40:50 this is silly. 06:40:55 so i can club you 06:40:58 to be concerned with things that aren't going to happen. 06:41:22 Serial murderer. Who knows where you live. 06:41:24 elliott, ooh what will be required to make you maintain cfunge in the future!? 06:41:29 elliott, pikhq_: hartnell or tennant 06:41:33 Vorpal: loss of soul 06:41:36 elliott, ah 06:41:39 coppro: hartnellant 06:41:42 coppro: an abomination against nature. 06:41:45 elliott, who's soul? 06:41:46 elliott: if anything, you should club whoever designed OverloadedStrings 06:41:47 Vorpal: mine. 06:41:51 elliott, aaah 06:41:51 CakeProphet: no, they were trusting. 06:41:59 why would they ever do that? 06:41:59 elliott: no seriously I have to watch something 06:42:02 HOW DO YOU SPLIT ECLIPSE WORKSPACES 06:42:08 coppro: which episodes are under consideration 06:42:48 trusting anyone and everyone to use something exactly as you intended is like... writing an IRC bot with a command that executes bash outside of a sandbox. 06:42:51 argh, i have no ide ahow you're actually meant to use workspaces. 06:42:55 is anyone an eclipse expert. 06:43:09 CakeProphet: how the fuck are they meant to prevent what you are trying to do? 06:43:12 it's a strong AI problem 06:43:18 CakeProphet: is your fascination with breaking OverloadedStrings just because you want to defy something, or do you just not know about how quasiquotation is what you really want and so much better 06:43:23 elliott: uh.. next up for Hartnell is the Aztecs. Next up for Tennant is start of series 3 06:43:30 CakeProphet: This is like complaining about the design of unsafePerformIO because someone wants to define foo = unsafePerformIO killAllOfHumanity `seq` undefined 06:43:43 elliott, by defining it to be undefined behaviour 06:44:11 coppro: Smith and Jones is, as I recall, quite good; The Aztecs sounds like it'll be cringingly sixties-racist 06:44:14 go for tennant 06:44:35 k 06:44:39 monqy: no, I'm not fascinated. I just see a possible use case that is pretty simple to implement, but really if I need TH I'll use that instead. 06:44:49 on the one hand, this gets me closer to finishing the new series. on the other hand, it doesn't get me any closer to Baker 06:45:14 CakeProphet: This is worse than my C lambda macros. 06:45:33 pikhq_, how so 06:45:37 elliott: why is I am the Doctor only in the 11th doctor episodes 06:46:11 coppro: i haven't seen many of them, so i don't know what you're talking about 06:46:23 Vorpal: There's already something in the language that does this, but better and doesn't involve murder! 06:46:33 elliott: the awesome music 06:46:46 coppro: presumably because it wasn't written until then 06:46:49 pikhq_: but unsafePerformIO doesn't have some arbitrary vaporous restriction attached to it. It is intended to break the rules where appropriate because sometimes it's a good idea. 06:47:06 what 06:47:13 but it does 06:47:23 elliott: I believe I linked it to you 06:47:50 also, I'm not saying OverloadedStrings is a bad idea. I am stating the opposite. 06:47:52 the "arbitrary vaporous restriction" is that application should be referentially transparent 06:48:28 or however the proper terminology says it 06:48:50 that is a perfectly reasonable restriction, in that case. :) 06:49:03 elliott: also yes it was only written by then. But it will probably go away for the twelfth :( 06:49:08 why 06:49:20 And what's so unreasonable about overloaded strings being supposed to represent textual data? 06:50:03 DOES ANYONE USE ECLIPSE HALP;P 06:50:06 no 06:50:14 because you could use it safely for other purposes. 06:50:16 HA;LPERGKJ 06:50:26 elliott: because it is the eleventh doctor's action theme 06:51:11 CakeProphet: safely? If there's any sort of parsing going on, you can't check the wellformedness until runtime 06:51:17 elliott, read the docs? 06:51:23 elliott, try google? 06:51:45 Vorpal: docs don't answer nebulous questions of life 06:51:51 coppro: oh is smith retirin' 06:51:51 I mean 06:51:55 any parsing that might fail 06:51:55 elliott, oh google does 06:51:58 Yeaaah, it pretty much eliminates static guarantees. 06:52:01 Vorpal: no i tried 06:52:14 elliott: well he will eventually 06:52:25 compare template haskell which is good at actually happening at compile time 06:52:32 monqy: well, not safe in that sense, no. 06:52:40 safe in the sense that it's a reasonable use... 06:52:43 no 06:52:45 it isn't 06:52:52 what does reasonable mean 06:53:16 Well, hmm, maybe a (Read a) => String -> IO a? 06:53:18 sane, useful, not buggy. I don't know. 06:53:36 unsafeParse :: (Read a) => String -> IO a 06:54:15 not sane; we already covered buggy; usefulness is covered by template haskell (or just making a function to do the parsing for you) 06:54:26 iWantToKillAndMurderCakeProphet :: (Killing a) => a 06:54:29 it denotes exactly the value you want 06:54:32 in that specific situation 06:54:37 just define an instance and off you go 06:54:47 -!- pikhq has joined. 06:54:47 you have to state your intent to kill and murder CakeProphet to use it though 06:54:51 HOPEFULLY THIS SHOULD BE AN ADEQUATE DETERRENT 06:55:05 intent is meaningless 06:55:13 monqy: but but, quasiquotation involves at least three more characters : ' CRYNIIG ( 06:55:18 [f|uck|] 06:55:59 monqy: how would calling the function explicitly eliminate the horrible possibility of a runtime error. 06:56:20 CakeProphet: it doesn't but it eliminates a good bit of the insanity 06:56:32 a good thing 06:56:58 -!- pikhq_ has quit (Ping timeout: 240 seconds). 06:58:09 http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=how+do+i+use+eclipse+and+workspaces+and+what+is+it+and+also+should+i+have+just+one+per+like+bukkit+plugin+i+am+writing+or+multiple+in+one+or%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F+FUCK+YOU+SHIT+HEAD+HELP+ME 06:58:11 it isn't working 06:58:23 Vorpal: help 06:58:55 http://www.google.com/search?q=eclipse+workspaces does this help i have no clue help me help you 06:59:12 Wait, what does CakeProphet want to do? Complex value literals via overloaded strings? 06:59:18 yes 06:59:27 monqy: i dont .'t;,mk know 06:59:31 im look at eclipse documentation 06:59:41 im also cry 07:00:11 Why even use that instead of (read "Whatever")? 07:00:24 Or, um 07:00:30 Better yet, not use a string 07:00:31 because read is intended to be Haskell code!! 07:00:31 Sgeo_: the better question is why even use that instead of template haskell 07:00:36 Sgeo_: becaue CakeProphet is a trrible ipersonje 07:00:54 what if i just ate my keyboard 07:01:32 CakeProphet, do you object to 60 * 60 * 24 in code? 07:01:47 basically I am thinking it would be useful as a way to describe a rhythm in a library for creating music. 07:01:55 yes, I can just define a function to do that. 07:02:00 and not use overloaded strings. 07:02:08 [rhythm|dumf ook dumf dumf ook|] 07:02:11 "TOO LONG" 07:02:14 [r|dumf ook|] 07:02:26 too long 07:02:26 [r|damf pluk|] --> compile time error 07:02:42 let runtime handle it 07:02:46 monqy im crying irl how do i eworksapce 07:02:50 no, that's fine really. I just didn't consider TH as something to consider. 07:02:58 i should try actually crying irl 07:03:01 maybe it would help ease my suffering 07:03:17 elliott, listen to Nightmare repeatedly 07:03:28 The welcome page is the first page you see when you first launch eclipse. Its purpose is to introduce you to the product. Welcome content will vary from one Eclipse based product to another, it typically includes an overview of the product and its features, tutorials to guide you through some basic tasks, samples to get you started, etc. 07:03:28 There are many possible forms of welcome, ranging from simple static text to elaborate extendable multi-page presentations. The Eclipse platform and platform SDK uses a form known as Universal Welcome, which defines a common page structure, allowing several products to share the welcome space. If your product is using the Universal Welcome, you can customize its appearance using the "customize page" button. Products which use universal welcome w 07:03:28 ill display a welcome page the first time they are restarted after new features with welcome content are installed and highlight the new welcome content. 07:03:31 i dont even know what a workspace is whats ecluispe...... 07:03:43 monqy: ecluispe sounds like the best ide 07:03:59 http://www.google.co.uk/search?hl=en&safe=off&q=good+java+ide&aq=f&aqi=g-c2g-b1&aql=&oq= 07:04:02 help it still shows eclipse 07:04:05 elliott is quickly learning all the programs. 07:04:32 imjust looking at my screen crying softly 07:04:36 http://www.google.com/search?q=bad+java+ide hth 07:04:49 monqy: NO STUOPD MAKING ME CRY 07:04:50 Is that "hope that" helps or "happy to help"? 07:04:51 STOPS 07:04:55 Java IDE ? Or should I even use Java? - YoYoGames Forums 07:05:33 http://gaming.stackexchange.com/questions/26210/my-pet-is-a-public-menace-what-did-i-do-wrong 07:05:39 i saw this ad on stackoverflow w/o it specifying gaming subreddit 07:05:41 i was like wow 07:05:46 so now im not crying any more 07:07:58 so I'm thinking it would be a good idea to write a Perl interpreter as an instance of IsString 07:08:27 unsafePerformIO . runperl 07:08:31 CakeProphet, if by good you mean "insane". Insane isn't bad, of course, just please keep it away from regular projects 07:08:43 don't encourage him 07:09:35 people like IntelliJ IDEA so much 07:09:37 I'm pretty sure that at this point CakeProphet is joking 07:09:49 -!- Lymia has joined. 07:09:56 but you responded so seriously 07:10:04 im confused 07:10:07 :-; 07:10:13 what is :-; 07:10:15 but I should add that I intend all of the Perl code used with this interpreter to be referentially transparent. 07:10:18 ;_; 07:10:31 also ;-; 07:10:39 ....he's 100% serious. And apparently intending to use it in a project? 07:10:41 but i hit the rwong key 07:10:50 Or, no, I'm just reading too much into that 07:11:05 But 100% serious. I'm going to have nightmares now. 07:11:26 [Note: I will not literally have nightmares due to this. I think.] 07:11:26 yeah obviously he's serious 07:11:32 youuve jused good logi =c to that 07:11:38 IM GONNA PUNCH A JAVA SHIT FUCK 07:11:41 kjnmfglhjk;tdrmknohgtreghmtrhn 07:11:49 -!- Lymee has quit (Ping timeout: 240 seconds). 07:11:52 * elliott CRYS; EXTENSIVELY; 07:11:56 * CakeProphet is always serious. 07:12:06 * CakeProphet opens Eclipse. 07:12:16 use a preprocessor or something like that instead of an ide 07:12:16 IntellJ IDEA. I use to have this project with some 2,000 classes and tons of libraries. I swapped from Eclipse to IntellJ, bacause I hated so much the project and I though it was Eclipse fault. The result was Idea was very slow. Workaround? I create a module and use IDEA anyway. :) Idea is awsome!! – OscarRyz Oct 1 '08 at 2:08 07:12:20 im doint like you 07:12:25 CakeProphet: HOW DO I USE WORKSPACES 07:12:30 DO I USE ONE PER ACTUAL LIKE END PRODUCT 07:12:32 OR?////////// 07:12:42 yes. 07:12:42 IM MAKE A BUNCH OF BUKKIT PLUGINS DO I WANT ONE WORKSPACE PER PLUGIN 07:12:47 workspace = project 07:12:49 EBCAUSE THAT SEEMS LIKE A LOT OF WORKSPOCES 07:12:57 CakeProphet: thats clearly bull taken literally 07:13:05 CakeProphet: because a Project is something you create inside a workspace 07:13:15 i guess some big programs are made up of more than one project????? 07:13:15 er, not what I meant. 07:13:22 but it feels like 07:13:23 eclipse 07:13:27 wants you to just use one workspace 07:13:31 like the default is ~/workspace 07:13:37 whats a prbleject 07:13:37 oh, right. 07:13:38 and switching workspaces is kind of a pain??? 07:13:40 but 07:13:43 at the ame time 07:13:46 yeah you normally only use one workspace. 07:13:49 monqy: aksjdg 07:13:52 it's just the... location of all of your projects. 07:13:57 CakeProphet: but thats really weird because like 07:14:02 and each plugin should have its own project probably. 07:14:04 if you import the same builder into two separate java projects 07:14:09 it actually renames them 07:14:13 to have (number) after 07:14:15 since it considers itt a conflict 07:14:16 and im like 07:14:19 these are completely separate 07:14:20 why are you doing that 07:14:21 and like 07:14:23 if the build fails in one 07:14:28 it bothers you whenver you make a change to another plugin 07:14:29 and im like 07:14:35 this is coupling these projects together way more than i want 07:14:35 ...I have never imported a builder. I'm not even sure what that means. 07:14:40 am i meant to use two different workspaces???? 07:14:45 CakeProphet: well i said other things 07:15:26 oh you mean you're importing a package into two different projects? 07:15:38 SEGWAYS 07:16:02 CakeProphet: no 07:16:14 Eclipse can't remotely be called an IDE to my opinion. Okay that's exaggerated, I know. It merely reflects my intense agony thanks to eclipse! Whatever you do, it just doesn't work! You always need to fight with it to make it do things the right way. During that time, you're not developing code which is what you're supposed to do, right? eclipse and maven integration: unreliable! Eclipse and ivy integration: unreliable. WTP: buggy buggy buggy! Ec 07:16:14 lipse and wstl validation: buggy! It complains about not finding URL's out of the blue even though they do exist, and a few days later, without having changed them, it suddenly does find them etc etc. I Could write a frakking book about it. To answer your question: NO ECLIPSE IS NOT EVEN CLOSE THE BEST IDE!!! IntelliJ is supposed to be MUCH better! 07:16:38 how does java 07:16:44 * elliott weep 07:16:54 elliott, why do you need an IDE again? 07:17:00 because java 07:17:02 sucks 07:18:01 I don't know what a "builder" in Eclipse-land is either; but I'd probably still at least try to put multiple plugins in the same workspace as long as there's at least something that could be shared. I wouldn't put any "serious" completely unrelated projects to the same workspace though. 07:18:16 theres nothing that will be shared pretty much 07:18:23 fizzie: a builder is like... 07:18:26 if you build your project with ant 07:18:28 then you have an ant builder 07:18:31 and theres the built in Java Builder 07:18:33 also I believe you merge workspaces by closing Eclipse, merging the two directories, and opening Eclipse again. 07:18:35 each project has a bunch of builders 07:18:39 CakeProphet: no id want to split eclipse 07:19:11 elliott: I can see that; but I've just been using Ant without any "builders". I mean, you can run the tasks from a build.xml just like that. 07:19:20 fizzie: that's not automatic 07:19:47 elliott: I'm sorry, you're probably want some kind of IDE to handle that for you. 07:19:55 CakeProphet: um i mean i want to split workspaces 07:20:03 Yes, well, I only use the ant thing to make .jars and other sort of "releases", I don't see why that should happen automatically. 07:20:18 fizzie: I need jars every single change because that's how bukkit plugins are packaged 07:20:29 so i can't test without the jar being created, at all 07:20:33 elliott: as far as I know Eclipse only uses one workspace at a time... 07:20:59 ffff 07:21:03 i want to make a workspace into two workspaces 07:21:05 because i put too mcuh in one 07:21:28 you could make two directories, but I don't think you can work with both workpaces at the same time. 07:21:43 be productive make a language that compiles to java..... 07:21:44 elliott: It's still just one more click to run the ant task. Presumably you need to do something to reload the plugin in Bukkit too; amortized in that it's not much. 07:21:49 just to get rid of boilerplate 07:22:02 CakeProphet: i dont want to. 07:22:08 it sounds much more pleasant than using an ide 07:22:13 fizzie: i thought an ide was meant to save me work 07:22:15 well then file > switch workspaces > Other.. 07:22:20 ides are hell 07:22:22 CakeProphet: I WANT TO SPLIT A WORKSPACE 07:22:25 god's sake 07:22:27 that is not hard to understand 07:22:34 elliott: man mv 07:22:39 ffs 07:22:44 it has metadata files with references to projects 07:22:49 haha ides 07:22:50 haha 07:23:00 elliott: "cp -a workspace anotherWorkspace"; then delete half of one, switch to the other, delete the other half? 07:23:06 fizzie: gross, but fine 07:23:20 then clean up the metadata? 07:23:35 find would probably be good for that. 07:23:48 deleting things, that is. 07:24:44 About the builder thing, I don't really know; I wouldn't want to run my horrible ant packaging mess after *every* change, just when I'm ready to test it, so I'd keep it non-automatic anyway. 07:24:48 I think you probably just want to use sh from now on instead of Eclipse... 07:24:56 fizzie: Horrible mess = single task to create a jar 07:25:06 -!- Lymia has changed nick to Lymee. 07:25:15 Lymee: WHAT IDE DO YOU US 07:25:16 E 07:25:53 elliott: Still, it feels stupid to build a .jar every time a single file changes. But that's probably just me. 07:26:09 fizzie: It builds the Java files whenever a file changes; why not build the .jar too? 07:26:18 I mean, every time I save, I'm going to alt-tab, /reload, and test it; why add more steps? 07:26:22 If I could make it automatically /reload, I would 07:27:12 you might be confusing Eclipse with something that does everything slightly tedious for you. 07:27:34 that's called automation, yes, and it's what a computer is for. 07:27:50 well, right. 07:28:08 I'm not saying it isn't possible. I'm just Eclipse probably isn't going to do that for you. 07:28:10 -!- Taneb has joined. 07:28:15 *just saying 07:28:22 Hello 07:28:33 I tend to have to make changes to multiple files before a "thing" is ready to test, possibly because of the all-classes-in-separate-files. But anyway, I really suppose it's just my peculiarities why I don't want it to automatically keep updating the .jar file. 07:28:34 hi 07:28:57 Maybe I'd feel differently if it was clever enough to actually update it instead of throwing it out and rebuilding it completely. 07:29:30 What does everyone think of Numberwang? 07:29:33 I also hate how you have to re-import a builder every time it changes for the changes to take effect, sigh. 07:29:34 Hmm... 07:29:39 Maybe I'll just make the single build.xml build all the projects. 07:29:50 Even though that's kind of gross. 07:30:02 sometimes programming is like surgery. 07:30:04 fizzie: I thought you didn't know how to use Ant any other way than incrementally :-P 07:30:12 CakeProphet: What; kind of gross? 07:30:15 yes. 07:30:24 What kind of gross? 07:30:56 ..the kind that makes elliott not want to do something? I don't know. 07:31:05 elliott: That was in the "compiling Java" context. :p 07:31:57 :t if' 07:31:57 Not in scope: `if'' 07:32:14 From the web it sounds like a builder can be "interested in" multiple projects, so having a single all-plugins builder might be possible to automatate properly. 07:32:29 @pl (\c a b -> if c then a else b) 07:32:30 if' 07:32:34 fizzie: Right; that seems like it'd have a lot of duplicated code with Ant though 07:32:36 i.e. one per project. 07:33:07 ah, so it's not standard, pl is just telling you to define that function. 07:33:21 ?hoogle if' 07:33:21 No results found 07:33:24 Meh 07:33:28 elliott: It sounds like it should be possible to re-use a single task but change some properties between the invocation of it. 07:33:48 fizzie: Meh, possibly. It really feels like Eclipse wants me to use one workspace per project if I'm going to bring the BIG GUNS of Ant in. 07:33:50 You mean like a function? 07:34:06 With different stuff put in? 07:34:10 Taneb: this is Ant, it lacks such civilised concepts. 07:34:26 Oh what, is this article kidding me or does the ant builder stuff not actually have compile-on-svae. 07:34:28 God I hate java. 07:34:47 svae 07:34:48 elliott: Having a separate buildfile for each plugin sounds like a lot of duplicated Ant code too, except duplicated in separate files, not in one file. Unless you go into pulling stuff in from some common file, and so on. 07:34:59 fizzie: they all have the same build.xml 07:35:02 So I just store it in a "common" project 07:35:07 > let if' c a b = if (c a b) then a else b in zipWith (if' (>)) [1,3,7,2,45,7,2,4,2,234,4,1,4,-4] [7,3,7,23,5,213,1,5,2356,35,24,21] 07:35:08 [7,3,7,23,45,213,2,5,2356,234,24,21] 07:35:51 not really if' as pl defines it, it's more like a generalization of max and min... 07:37:12 Anyway, there's an task which runs a target from the same build.xml with some defined parameters; that way you could have a single ... and then one-line per plugin. But again I don't know about hooking the Ant builder to the auto-build system. 07:37:27 Ugh this is all so gross. 07:37:32 ISTR that running Ant's awfully slow (more than one second) anyway. 07:38:13 @pl (\f a b -> g (f a b) a b) 07:38:13 flip flip id . (ap .) . (flip . (g .) =<<) 07:39:25 Vorpal: help <-- ? 07:39:33 > let if' c a b = if c then a else b; compareWith = flip flip id . (ap .) . (flip . (if' .) =<<) in compareWith (==) [1,3,7,2,45,7,2,4,2,234,4,1,4,-4] [7,3,7,23,5,213,1,5,2356,35,24,21] 07:39:34 [7,3,7,23,5,213,1,5,2356,35,24,21] 07:41:18 @hoogle Bool -> a 07:41:18 Control.Exception assert :: Bool -> a -> a 07:41:18 Control.OldException assert :: Bool -> a -> a 07:41:19 Control.Exception.Base assert :: Bool -> a -> a 07:41:26 fizzie, I think bukkit uses maven instead 07:41:30 which looks about as bad 07:41:50 elliott: yeah, unfortunately using other peoples stuff can get ugly. 07:43:03 -!- Phantom_Hoover has joined. 07:43:07 ISTR that running Ant's awfully slow (more than one second) anyway. 07:43:09 ugh 07:43:13 Vorpal: yeah i am tempted to use maven myself 07:43:17 elliott, idea for stupid esolang: generic brainfuck variant. Basically you feed a file with string->command mappings for brainfuck and a program to be translated. 07:43:37 :D 07:43:42 that's actually brilliant 07:43:47 meta-turing-complete, too! 07:43:58 elliott, wait what? 07:44:04 meta-turing-complete? 07:44:29 it is just a simple lookup table to translate, say, ook or whatever, into brainfuck, and then it is executed 07:44:32 whoosh 07:44:45 http://esolangs.org/wiki/Talk:Meta_Turing-complete 07:45:09 oh tehz 07:45:10 right 07:45:38 Vorpal: I'm in the slow process of specifying a regular expression based language that would basically be a superset of that. 07:45:48 the mapping file is the program string, the program to translate is the input string. 07:45:49 many languages are subsets of that 07:45:53 ...yes. 07:45:56 *supersets 07:46:07 but also subsets, I guess. 07:46:23 elliott, was " that's actually brilliant" a joke too? I presume so 07:46:36 no 07:46:38 its hilarious 07:46:58 elliott, well I lost my wiki account, you can put it up on the wiki and attribute it to me 07:47:14 yeah but i'll actually spec it so its BY EHIRD WITH INSPIRATION FROM VORPAL 07:47:17 MINOR INSPIRATION 07:47:19 (REALLY MINOR) 07:47:22 ((LIKE, HE SNEEZED)) 07:47:24 wait 07:47:24 (((AT THE TIME))) 07:47:31 elliott, I'll define it more 07:47:35 elliott, file format: 07:47:36 /ignore Vorpal 07:47:42 CANT FUCKING HEAR YOU 07:47:46 fizzie: how does maven work thx 07:47:51 07:47:53 elliott, ^ 07:48:09 followed by newline 07:48:19 http://maven.apache.org/eclipse-plugin.html HWICH DOES I USE 07:48:22 elliott, that is all there is to it 07:48:33 "you should define it like this... 07:48:35 So, it's a brainfuck equivalent creation tool? 07:48:55 Taneb, basically yes 07:48:57 Taneb, :D 07:49:07 ("string to be used" -> "bf code")* 07:49:16 followed by a newline, or.. not 07:49:18 CakeProphet, why that format? 07:49:19 this is the best syntax for it 07:49:23 because it is the best. 07:49:26 why 07:49:39 because then it will be a subset of a language I am working on. :) 07:49:48 CakeProphet, not a valid reason 07:49:55 it is the best reason.. 07:50:08 I suggest string := <4 byte with length of string> 07:50:08 I wonder if it would be possible to make a language using that syntax that's barely like brainfuck at all 07:50:22 then the file is made up with pairs of strings 07:50:24 of* 07:50:37 it should be 07:50:42 /string/bf code/ 07:50:45 because then it's a subset of /// 07:50:49 elliott, :D 07:50:57 wait, bf code can have comments 07:50:59 ok then it's literally /// 07:51:18 elliott: Brainfuck code must have matched [] 07:51:34 elliott, eh the interpreter needs two inputs: language definition and program-to-translate 07:51:52 pikhq: yeah but 07:51:56 you can define loop equivalents with this 07:51:56 elliott, hm we need to be rather advanced to do bitfuck, so that it out of the scope 07:51:57 so 07:53:18 If it could output an interpreter, that would be good 07:53:45 though I might define ->* in a prelude-esque file that is equivalent to (... -> ...)* 07:55:03 Taneb, hm that could work yeah 07:55:10 Has anyone used Maven with Eclipse, I have literally become an insane. 07:55:30 elliott, don't look at me. I don't use eclipse at all 07:56:17 -!- monqy has quit (Quit: hello). 07:56:51 I blame Lymee. 07:57:15 elliott, why 07:58:21 Because she didn't tell me what IDE she uses for Bukkit development which would obviously completely solve my problems by way of expertosity. 07:58:27 okay so I have encountered a problem... 07:58:43 I don't think I can define global substition in terms of single substition and *.. 07:59:01 unless single substition consumes all input up to the point of substition... 07:59:05 which is bad. 07:59:42 Add some sort of multiplication thing 07:59:55 well that is kind of what * is. 08:00:11 Oh, okay 08:00:18 Add some sort of wildcard thing 08:01:07 okay, so everything has a string result, numeric result, and a success or failure value. pattern* repeats pattern zero or more times until it fails. The numeric result of * is the addition of the numeric results of each subpattern invocation, and the string result is the concatenation of the subpattern's string results. 08:01:35 -> is the substition pattern. Originally I intended to make it zero-width, meaning it doesn't consume any input. 08:02:07 but if it doesn't consume input (i.e. "move forward" in the input string), then each invocation of -> within a * will start at the beginning of the input string. 08:02:21 which is inefficient and will lead to strange things happening.. 08:02:35 possible infinite loops and such, which is generally not good. 08:03:16 however, if I make -> work so that it consumes all input up to the point of substition, then that means that using -> by itself will almost never happen. I will have to always enclose within a backtrack operator. 08:03:51 so I think I should define them seperately, as much as I don't want to... 08:04:03 have a -> and a ->* 08:04:26 with ->* not being defined in terms of -> 08:05:05 I'm just gonna wait until Lymee appearss. :p 08:05:43 but I find this exceptionally lame, as the idea is that you should be able to use general-purpose combinators to do complex things with basic expressions. 08:06:46 elliott: in the meantime you should help me with this. :P 08:06:48 no 08:07:19 but you always have good ideas for these types of problems... 08:07:50 Don't define -> without the backtrack operator? 08:08:17 so you're saying make -> inherently zero-width, right? 08:09:06 I have no idea what's going on, I'm just trying to say things so something happens 08:09:06 Maybe 08:09:12 .. 08:09:32 okay so basically I want to define global substition in terms of single substition (->) and * 08:09:58 but to do that I need to make -> not be zero-width.. 08:10:22 because if it's zero-width then things like ('a' -> 'ab')* will loop infinitely. 08:10:58 You could lock text that's been substituted in this cycle 08:11:15 so I either need to change the semantic model, or change -> so that it is not zero-width but instead consumes input, which is lame because then there will be backtrack operations everywhere. 08:11:28 CakeProphet: rename -> to => and make it not zero-width 08:11:38 then make a->b an alias for backtrack(a=>b) 08:11:52 that's a possibility. 08:12:02 that's the obvious possibility. 08:12:04 :p 08:12:14 but couldn't I create some hackish semantic model? 08:12:15 lol 08:12:32 implicit shenanigans. 08:13:13 I think I would prefer --> to =>, or something. 08:13:20 because I am using => for something else. :) 08:14:19 => is a kind of variable modifier thing. The left hand side is a variable name and the right hand side is a pattern. The pattern is evaluated with the string result of the variable as the input string. 08:15:04 and the pattern modifies the contents of the variable. it's basically defined in terms of another operator that I haven't named yet. 08:15:30 I am sure this makes perfect sense to everyone. 08:16:31 ~> looks like a good name for it. left-hand sides result string is used as the input string for the right-hand pattern. 08:17:12 I'm seeing what the Numberwang program 0! 1! does 08:17:21 the a => b := (a = (a ~> b)) 08:17:24 *then 08:17:37 So far, it's into its second Numberwang 08:17:59 I am finding the name Numberwang somewhat hilarious. 08:18:41 CakeProphet: http://www.youtube.com/watch?v=qjOZtWZ56lc 08:19:36 ...what the hell is this. 08:19:49 A sincere and legitimate British institution throughout the ages. 08:20:06 CakeProphet: http://www.youtube.com/watch?v=-r6NY4Kl8Ms 08:20:09 This should be enlightening. 08:21:12 these laugh track things are unnerving. 08:22:20 philosopher and magician Bertrand Russell... 08:27:31 Graaah! I need a numberwang debugger 08:27:34 And a shower 08:27:39 brb 08:27:46 That's Numberwang! 08:27:47 -!- Taneb has changed nick to TanebIsNotHere. 08:31:10 CakeProphet: http://www.youtube.com/watch?v=qjOZtWZ56lc <-- like Mornington Crescent right? But even more senseless 08:31:16 @hoogle (Read a) => String -> Maybe a 08:31:16 Network.CGI.Protocol maybeRead :: Read a => String -> Maybe a 08:31:16 Network.CGI readCookie :: (Read a, MonadCGI m) => String -> m (Maybe a) 08:31:17 Network.CGI readInput :: (Read a, MonadCGI m) => String -> m (Maybe a) 08:32:03 @hoogle String -> Bool 08:32:03 Network.URI isAbsoluteURI :: String -> Bool 08:32:03 Network.URI isIPv4address :: String -> Bool 08:32:03 Network.URI isIPv6address :: String -> Bool 08:37:39 !addinterp numberwang haskell flip when (putStrLn "That's Numberwang!") =<< (any (all isDigit) =<< getContents) 08:37:40 ​Interpreter numberwang installed. 08:37:52 !numberwang 22 34 83 08:38:21 hmmm, parse error. 08:39:53 !delinterp numberwang 08:39:54 ​Interpreter numberwang deleted. 08:46:57 Hello 08:47:01 -!- TanebIsNotHere has changed nick to Taneb. 08:48:15 he;lo 08:51:04 @hoogle f (a -> f b) -> f a -> f b 08:51:04 Prelude (=<<) :: Monad m => (a -> m b) -> m a -> m b 08:51:04 Control.Monad (=<<) :: Monad m => (a -> m b) -> m a -> m b 08:51:04 Prelude (>>=) :: Monad m => m a -> (a -> m b) -> m b 08:51:20 o rly? 08:52:47 none of those appear to match 08:53:00 indeed not 08:54:17 um, yes they do 08:54:23 well, close enough :) 08:54:32 :t (join .) . (=<<) 08:54:33 forall (m :: * -> *) a a1. (Monad m) => (a1 -> m (m a)) -> m a1 -> m a 08:54:40 :t join . (=<<) 08:54:40 Occurs check: cannot construct the infinite type: m = (->) (m a) 08:54:40 Probable cause: `=<<' is applied to too few arguments 08:54:41 In the second argument of `(.)', namely `(=<<)' 08:54:43 hmm wait 08:54:56 ?pl \f x -> f >>= \f' >>=x >>= \x' -> f' x' 08:54:56 (line 1, column 19): 08:54:56 unexpected ">" 08:54:56 expecting operator, pattern or "->" 08:55:06 ?pl \f x -> f >>= \f' -> x >>= \x' -> f' x' 08:55:07 (. (>>=)) . (>>=) 08:55:10 heh 08:55:16 wait hmm 08:55:19 ?hoogle () 08:55:19 Parse error: 08:55:19 --count=20 () 08:55:19 ^ 08:55:20 someone do that plz 08:56:47 @hoogle (<*>) 08:56:47 Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b 08:57:51 right 08:57:55 :t (join .) . () 08:57:56 parse error on input `)' 08:57:57 someone do that also. 08:58:06 :t (join .) . (<*>) 08:58:07 forall (m :: * -> *) a a1. (Monad m, Applicative m) => m (a1 -> m a) -> m a1 -> m a 08:58:36 see 08:58:38 now u r the planet 08:59:04 @unpl (join .) . (<*>) 08:59:04 (\ d i -> (d <*> i) >>= \ e -> e) 08:59:31 ......? 08:59:38 >>= id? 08:59:40 yes. 08:59:41 that's join. 08:59:42 :t join 08:59:43 forall (m :: * -> *) a. (Monad m) => m (m a) -> m a 09:00:00 -!- elliott has quit (Remote host closed the connection). 09:00:10 gah I was just about to ask him something 09:06:56 @pl do { f <- when <$> (any isDigit <$> return "22"); f . putStrLn $ "That's numberwang!"} 09:06:56 (line 1, column 4): 09:06:56 unexpected "{" 09:06:56 expecting variable, "(", operator or end of input 09:07:04 aw... 09:08:48 !addinterp numberwang haskell do { f <- when <$> (any isDigit <$> getContents); f . putStrLn $ "That's numberwang!"} 09:08:49 ​Interpreter numberwang installed. 09:08:52 !numberwang 22 09:09:15 I am so bad at this it's ridiculous. 09:10:59 !addinterp numberwang haskell do { c <- (any isDigit <$> getContents); when c $ putStrLn "That's numberwang!"} 09:11:00 ​There is already an interpreter for numberwang! 09:11:06 !!! 09:11:10 !delinterp numberwang 09:11:10 ​Interpreter numberwang deleted. 09:11:12 !addinterp numberwang haskell do { c <- (any isDigit <$> getContents); when c $ putStrLn "That's numberwang!"} 09:11:12 ​Interpreter numberwang installed. 09:11:20 !numberwang I hate you 23 09:11:39 !numberwang 12 09:11:53 it's got a parse error... 09:12:13 !addinterp ! haskell putStrLn "I really hope this works." 09:12:14 Phantom_Hoover: You have 4 new messages. '/msg lambdabot @messages' to read them. 09:12:14 ​Interpreter _ installed. 09:12:16 !! 09:12:18 !_ 09:12:19 I really hope this works. 09:12:21 I really hope this works. 09:12:21 Dammit. 09:12:25 Wait, no 09:12:27 !! 09:12:29 I really hope this works. 09:13:04 you could speed it up by using an interpreted language, since it compiles Haskell every use. 09:13:14 !delinterp ! 09:13:14 ​Interpreter _ deleted. 09:13:35 !delinterp numberwang 09:13:36 ​Interpreter numberwang deleted. 09:15:36 !addinterp numberwang perl print q(That's numberwang!) if grep /\d/, <> 09:15:37 ​Interpreter numberwang installed. 09:15:39 !numberwang 22 09:15:40 That's numberwang! 09:15:43 I succumbed... 09:16:12 !numberwang hello 09:16:23 !numberwang 12 09:16:23 That's numberwang! 09:16:32 I suppose a "That's not numberwang!" would be appropriate. 09:16:50 Or "Sorry, but Brazil isn't a vegetable!" 09:17:07 !delinterp numberwang 09:17:08 ​Interpreter numberwang deleted. 09:18:00 !addinterp numberwang perl print (grep /\d/, <>)? q(That's numberwang!) : q(I'm sorry, but Brazil isn't a vegetable!) 09:18:00 ​Interpreter numberwang installed. 09:18:18 !numberwang when is that? 09:18:23 ... :o 09:18:25 !numberwang 2 09:18:26 2 09:18:28 lol 09:18:58 I believe you have made an error 09:19:03 yes I believe so as well. 09:19:13 http://www.reddit.com/r/Minecraft/comments/iot8b/dear_miners_and_notch_think_bigger/c25jyoh 09:19:16 !delinterp numberwang 09:19:16 ​Interpreter numberwang deleted. 09:19:23 Please please please tell me this person isn't right. 09:19:31 Because if so I'll have to shoot every programmer ever. 09:20:02 !addinterp numberwang perl print (grep /\d/, <> ? q(That's numberwang!) : q(I'm sorry, but Brazil isn't a vegetable!)) 09:20:02 ​Interpreter numberwang installed. 09:20:06 -!- Nisstyre has quit (Ping timeout: 255 seconds). 09:20:07 !numberwang what is this? 09:20:12 :( 09:20:31 !numberwang 44 09:20:52 !delinterp numberwang 09:20:52 ​Interpreter numberwang deleted. 09:21:11 !addinterp numberwang perl print (grep (/\d/, <>) ? q(That's numberwang!) : q(I'm sorry, but Brazil isn't a vegetable!)) 09:21:11 ​Interpreter numberwang installed. 09:21:15 !numberwang 44 09:21:15 That's numberwang! 09:21:18 !numberwang q 09:21:19 I'm sorry, but Brazil isn't a vegetable! 09:21:40 !numberwang I'll give you a tenner if this is Numberwang 09:21:40 yeah, I have a bad habit of not using parentheses on operators... 09:21:40 I'm sorry, but Brazil isn't a vegetable! 09:23:27 Okay, now there's three esolangs called Numberwang 09:23:44 Four, although my one doesn't count. 09:23:46 !numberwang 12! 09:23:46 That's numberwang! 09:23:57 I guess I could have used "" instead of q() but... I'd like to think that I'm making the code more efficient by not interpolating. :) 09:24:14 !numberwang 12! 2! 42.4! 09:24:15 That's numberwang! 09:25:00 Phantom_Hoover: Make your version 09:25:18 Taneb, I want to, but it's not an easy task. 09:26:19 Just say it's imperatively functional and build from there 09:26:50 So how does one make a numberwang programming language? 09:27:24 Step 1: Have an idea 09:27:39 but, what makes it themed off of numberwang? 09:27:43 Step 2: Share idea 09:27:43 Step 3: Build on idea 09:27:43 Step 4: Publish idea 09:27:43 Step 5: ... 09:27:43 Step 6: PROPHET! 09:28:03 Hmm... 09:28:13 It's like calvinball, but with numbers 09:29:06 -!- myndzi has quit (Ping timeout: 246 seconds). 09:30:45 CakeProphet: You could've used '', it's literally the same as q(). 09:31:08 fizzie: well, right, but I used it to escape escaping the ' in the string 09:31:11 My Numberwang has something that's a bit like eval(12!4.4!92!10!49.8!2!2!2!) 09:31:32 For the program 0!1! it's in at least 7 nested ones of those 09:32:33 After 14 instructions 09:33:06 -!- myndzi has joined. 09:34:52 I have no idea if it is Turing-Complete or not 09:35:19 I am interested in defining a language for which the halting problem is solvable, and where programs can halt or not halt. 09:35:27 obviously the halting problem is solvable for a language if it always halts... 09:36:14 Have all loops by definition infinite 09:36:22 If it has any loops, it does not halt 09:36:25 Otherwise, it does 09:37:29 -!- myndzi has quit (Ping timeout: 240 seconds). 09:37:46 -!- myndzi has joined. 09:38:21 Oh dear 09:38:22 Instruction 16 is a successful goto 09:38:34 Taneb: or you could have a finite loop and an infinite loop. The finite loop could not be infinite. 09:39:02 but then there's the problem of conditionals 09:39:11 Like, it exits after n iterations where n is finite? 09:39:14 what if you conditionally infinite loop on the input? 09:39:18 Taneb: right. 09:39:56 I don't think this language will be Turing-Complete 09:41:30 well, the halting problem would still be solvable with conditionals. 09:41:52 what you would do is execute the program, and when you come across an infinite loop construct then you say the program does not halt 09:41:59 if you reach the end of the program, then it does halt. 09:42:31 and the only way to not reach the end of the program would be to use an infinite loop construct. 09:42:43 -!- myndzi has quit (Ping timeout: 258 seconds). 09:43:21 True 09:44:09 so there'd be no conditional loop, only a conditional, a repetition loop, and an infinite loop. 09:44:45 so it probably isn't possible to implement brainfuck since you have no way to implement [] 09:45:20 So it isn't Turing Complete 09:45:22 hmmm, well, you might be able to compile it... 09:45:37 Otherwise, you'd be given lots of money by Cambridge University 09:45:55 but compiling bf does not make your language turing complete. 09:46:36 You can compile HQ9+ into Brainfuck 09:47:41 Here's a almost entirely irrelevant question: 09:48:10 I wonder if you could prove that /any/ Turing complete language cannot have the halting problem solved for it. 09:48:12 How should a goto line number command work with non-integer values? 09:48:41 most likely by mapping each non-integer value to an integer. 09:48:57 this is what a label does essentially. 09:49:02 I wonder if you could prove that /any/ Turing complete language cannot have the halting problem solved for it. <-- hm 09:49:09 CakeProphet, can you explain what you mean 09:49:42 For any Turing-Complete language p, it is impossible to solve the halting problem 09:49:47 Is that statement provable? 09:50:09 depends on if oracle machines can exist surely? 09:50:49 For any program p with input i in Turing-complete language l, it is impossible to solve the halting problem. 09:50:58 the input string is important. 09:51:56 the halting problem itself only asserts that you can't determine whether all programs and inputs halt or not. 09:52:03 CakeProphet, well you could given a program that consists of only the symbol "halt" say that it halts. 09:52:27 right, but it also has to be turing complete. 09:52:34 CakeProphet, or take C, it is trivial to say that #include \nint main(void) { return 0; } halts 09:52:44 I think this was why Alan Turing invented his famous machine 09:52:45 From Wikipedia: "Alan Turing proved in 1936 that a general algorithm to solve the halting problem for all possible program-input pairs cannot exist. A key part of the proof was a mathematical definition of a computer and program, what became known as a Turing machine. " 09:52:59 because the idea is that we want to prove that it's impossible for all turing complete languages. If we can't, then it may be possible that a Turing complete language exists for which the halting problem is solvable. 09:54:09 As any Turing Complete language by definition can be translated into any other 09:54:53 I think that we can't tell whether any program for turing complete language p will halt on input i 09:55:35 ah, yes, that makes sense. 09:56:18 so essentially the inability to determine whether an arbitrary program halts in a turing complete language is built-in to being turing complete... 09:56:23 I also think I need to walk my dog 09:56:23 Bye, everyone 09:56:23 -!- Taneb has changed nick to TanebIsNotHere. 09:56:23 -!- TanebIsNotHere has changed nick to TanebIsAway. 09:56:23 Oh, I've dissappeared 10:00:17 -!- myndzi has joined. 10:02:49 -!- TanebIsAway has quit (Ping timeout: 240 seconds). 10:12:51 -!- tswett_ has quit (Ping timeout: 264 seconds). 10:20:00 so essentially the inability to determine whether an arbitrary program halts in a turing complete language is built-in to being turing complete... 10:20:18 iirc the halting problem is not solvable for some simpler models of execution either 10:39:32 It's not solvable for any model of execution that allows a self interpreter, basically. 10:49:47 CakeProphet, look up the proof on the Wikipedia article; it's very simple. 11:04:44 I'm surprised Wikipedia doesn't have an article on code golf 11:04:52 instead "code golf" redirects to Perl. 11:05:10 Not GolfScript? 11:05:41 well, I think the practice of code golfing might have originated in the Perl community, but it's since become a more general phenomenon 11:10:27 @P=split//,".URRUU\c8R";@d=split//,"\nrekcah xinU / lreP rehtona tsuJ";sub p{ 11:10:27 Unknown command, try @list 11:10:27 @p{"r$p","u$p"}=(P,P);pipe"r$p","u$p";++$p;($q*=2)+=$f=!fork;map{$P=$P[$f^ord 11:10:27 ($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/&& 11:10:27 Unknown command, try @list 11:10:30 close$_}%p;wait until$?;map{/^r/&&<$_>}%p;$_=$d[$q];sleep rand(2)if/\S/;print 11:12:41 ''=~('(?{'.('-)@.)@_*([]@!@/)(@)@-@),@(@@+@)' 11:12:42 ^'][)@]`}`]()`@.@]@%[`}%[@`@!#@%[').',"})') 11:12:44 ...what? 11:12:57 I don't even understand how people come up with these. 11:15:37 What, no pack/unpack pair? 11:19:25 http://search.cpan.org/dist/Acme-EyeDrops/lib/Acme/EyeDrops.pm 11:21:49 !perl @{sub b{[@b=(abs||No,bottle.'s'x!!++$_,of,beer),on,the,wall]}b} 11:25:52 !help 11:25:52 ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . 11:25:56 hm it is there 11:30:32 -!- tswett has joined. 11:33:08 -!- Sgeo_ has quit (Read error: Connection reset by peer). 11:41:45 * CakeProphet drinks cow milk like a baby cow 11:44:21 Except I am a large bipedal furless ape. 11:46:23 Meh, a mammal's a mammal. 11:48:35 But as a string-parsing ape creature, I feel strange about stealing delicious fluids from mama cows. 11:48:59 so much so that I am generating strings about it. :) 11:49:36 For some reason I found that whole string-generation thing hilarious. 11:49:45 "Oh look, it's generating strings all flustered there!" 11:50:14 Anyway, it's the cow's fault somehow. It always is. 11:50:41 yes, because their strings do not suggest that they care. 11:51:01 they're all "moooo" 11:51:07 "meeeeh". 11:51:30 I like how one of the 18 pictures in the Mammal_Diversity_2011.png main illustration of Wikipedia's "Mammal" article is the meeting of Nixon and Brezhnev. 11:52:16 Diverse indeed. 11:52:47 Also, a cow: http://isometric.sixsided.org/data/strips/only_when_youre_ready/21.gif 11:53:24 (I had a dot-matrix printer rendition of that on my wall as a decoration, not more than 9 years ago.) 11:56:15 -!- oerjan has joined. 11:56:27 oerjan: Welcome to the cow channel. 11:56:52 Moo! 11:56:58 Correct! 11:57:07 yay 11:59:39 For some reason I found that whole string-generation thing hilarious. 12:00:37 now i am imagining sentient^Wsapient spiders communicating with silk strings 12:02:17 They could form... a SPIDER NETwork! 12:05:52 Step 6: PROPHET! 12:05:59 sounds dangerous. 12:13:41 00:27:50 > let if' c a b = if (c a b) then a else b in zipWith (if' (>)) [1,3,7,2,45,7,2,4,2,234,4,1,4,-4] [7,3,7,23,5,213,1,5,2356,35,24,21] 12:13:45 00:27:51 [7,3,7,23,45,213,2,5,2356,234,24,21] 12:13:45 in fact... 12:13:47 00:28:34 not really if' as pl defines it, it's more like a generalization of max and min... 12:14:09 > zipWith max [1,3,7,2,45,7,2,4,2,234,4,1,4,-4] [7,3,7,23,5,213,1,5,2356,35,24,21] 12:14:10 [7,3,7,23,45,213,2,5,2356,234,24,21] 12:17:14 The zipWith Camel, a famous World War 1 era airplane. 12:24:01 `addquote The zipWith Camel, a famous World War 1 era airplane. 12:24:04 505) The zipWith Camel, a famous World War 1 era airplane. 12:27:06 I was trying to come up with some sort of add-on, maybe a known function that sounded like "Camel" and a related pun, but failed. 12:59:56 :t zipWith (zipWith f) 12:59:57 forall a b c. (Show a, Show b, SimpleReflect.FromExpr c) => [[a]] -> [[b]] -> [[c]] 13:00:48 :t zipWith zip 13:00:48 forall a b. [[a]] -> [[b]] -> [[(a, b)]] 13:00:52 what else would you zip with? 13:10:58 :t zipWith zip3 13:10:59 forall a b c. [[a]] -> [[b]] -> [[c] -> [(a, b, c)]] 13:11:02 A reasonable type. 13:29:41 -!- derrik has joined. 13:30:09 -!- derrik has left. 13:30:59 In 1920, H. G. Wells referred to the Mediterranean race as the Iberian race. He regarded it as a fourth subrace of the Caucasian race, along with the Aryan, Semitic, and Hamitic subraces. He stated that the main ethnic group that most purely represented the racial stock of the Iberian race was the Basques, and that the Basques were the descendants of the Cro-Magnons. 13:40:48 -!- ais523 has joined. 13:53:18 :t zapWith (zapWith zipWith) 13:53:19 Not in scope: `zapWith' 13:53:19 Not in scope: `zapWith' 13:53:27 :t zipWith (zipWith zipWith) 13:53:28 forall a b c. [[a -> b -> c]] -> [[[a]]] -> [[[b] -> [c]]] 13:55:55 -!- Taneb has joined. 13:56:26 Hello! 13:57:10 hi 13:57:13 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:02:47 What's happening in the world of esoteric programming? 14:03:41 well i think i just proved DigFill TC, see wiki 14:04:21 I've been thinking about Anarchy again 14:05:18 Anarchy? 14:05:40 it's a programming language I'm working on, possibly an esoteric one, I'm not sure (it's near the boundary) 14:05:44 so far, just thoughts, no code 14:06:04 it's based on algebraic data types where type constructors can mean different things at different points in the program 14:06:12 which is a feature that's both insane, and badly missing from Haskell and OCaml 14:06:23 it's just one of ais523's methods to suppress thinking of fe *hit by falling anvil* 14:07:05 Meta type constructors? 14:07:55 i never m *anvil rolls on top of him again* 14:08:33 that's quite the pesky anvil... 14:08:41 yes. 14:15:12 oerjan: is that a mezzacotta reference (with an indirect reference behind it)? 14:15:46 hm not that i recall 14:15:58 Everything's a mezzacotta reference 14:16:06 There's a lot of it to reference 14:16:14 It's the Turing Oracle of Webcomics 14:17:12 the problem is of course _finding_ the reference. 14:20:28 -!- copumpkin has joined. 14:20:28 -!- copumpkin has quit (Changing host). 14:20:28 -!- copumpkin has joined. 14:22:22 Why can't my German-made French-published game with Italian characters run on my Japanes-designed Chinese-made laptop with a South African OS based on a kernel designed by a Swedish speaking FInn? 14:23:06 The game also has Norwegian and... Argentinian? characters 14:23:29 ah there's the problem. the chinese currently hate the norwegians. 14:23:54 they _really_ didn't like the last nobel peace prize. 14:25:41 That explains 14:25:44 it 14:25:54 I pressed return compulsively... 14:26:30 newline is a punctuation mark on IRC 14:26:37 but one that several channels discourage people from using 14:26:44 also, people tend not to be completely consistent on its meaning 14:27:36 it means "i despise you so much i'm going to steal your screen real estate despite not really saying much." hth. 14:27:58 * oerjan feels out of character. 14:28:25 But yeah, Settlers IV doesn't run on Ubuntu on my Toshiba 14:28:42 what OS is it intended for? 14:28:46 Windows 14:28:55 oerjan: wow, that was out of character for you 14:29:04 Numberwang should clearly just be a stupidly computationally expensive algorithm for generating sequences of numbers. 14:29:21 I could think of a fix, but it's easier just to nick my brother's laptop with Windows 14:29:23 ais523: YOU THINK? 14:29:59 maybe elliott is taking over my brain. except he does the return thing too... 14:30:51 Phantom_Hoover: hey turing proved all computation is really just generating sequences of numbers. well, more or less. 14:31:15 Any data can be encoded as a sequences of ones and zeroes 14:31:42 Taneb, depends on how you define 'data', I suppose. 14:32:45 Give me a definition that you can't 14:33:08 * oerjan gets the virtual popcorn 14:33:20 Well, if you allow arbitrary reals to be data, you can't. 14:33:20 I'm just curious 14:33:44 Can you encode reals as anything, though? 14:34:02 a real is perfectly encodeable as a sequence of ones and zeroes. it just has to be infinite. 14:34:12 oerjan, OK then, P(R). 14:34:36 fiendish. 14:34:54 Just stick Ps on until it gets big enough. 14:37:07 i think if you define data as something you can extract any part of in finite time, Taneb's point may still stand. 14:37:47 I had a really good argument if you said something like "the feeling of happiness" 14:37:56 But it's no use now 14:38:06 And pretty... psychopathic 14:38:36 Um... 14:38:43 Or is it sociopathic? 14:38:51 homeopathic 14:39:05 Oh, right, that actually does make sense. 14:40:54 -!- ais523_ has joined. 14:42:33 Phantom_Hoover: What, homeopathy? 14:42:44 No, what you said. 14:42:51 I thought you'd just gone slightly mad. 14:43:06 Nah, not gone. 14:43:11 And not slightly 14:43:13 -!- ais523 has quit (Ping timeout: 255 seconds). 14:43:15 * oerjan googles for that quote again 14:45:40 "The next time you decide to stab me in the back, have the guts to do it to my face"? 14:45:54 no 14:46:06 "Alice: But I don't want to go among mad people. 14:46:06 The Cat: Oh, you can't help that. We're all mad here. I'm mad. You're mad. 14:46:06 Alice: How do you know I'm mad? 14:46:06 The Cat: You must be. Or you wouldn't have come here. 14:46:07 " 14:46:11 Who's stabbing who in the back? 14:46:23 i was trying to find a version without line breaks, but i gave up 14:46:28 Jayne Cobb and Captain Mal Reynolds 14:46:32 If there's any backstabbing going on, I want to be in on it. 14:46:39 Oh god not Firefly. 14:47:54 That'll be the last Firefly I quote, I promis 14:47:57 e 14:50:37 * oerjan does his regular thursday taneb stalking 14:50:46 -!- ais523_ has changed nick to ais253. 14:50:49 -!- ais253 has changed nick to ais523. 14:50:55 wow, someone else has ais253 registered 14:51:01 stop registering typos of my name, ais253! 14:51:07 ais523: wat 14:51:13 Maybe it's you? 14:51:18 haha, I know who it is, too 14:51:27 it's someone I know from another channel, they must have set that up to troll me 14:52:00 i wonder if e has ever been here without us noticing it... 14:52:27 Just got a 416 error on the wiki 14:52:32 Recent Changes page 14:52:55 it sometimes gets a bit flaky 14:53:02 Never had one of those before 14:53:06 Taneb, the internet is collapsing around you. 14:53:11 Civilisation is at its end. 14:53:24 loads for me 14:53:28 We are actually just chatbots to keep you occupied until you can fulfil your purpose. 14:53:39 4xx errors are client-side 14:53:40 what does 416 even mean? 14:53:50 "Requested Range Not Satisfiable" 14:54:02 Something to do with asking for stuff after EOF or something 14:55:53 It's just the recent changes page 14:57:53 Hang on 14:57:58 My purpose? 14:58:13 Your Destiny 14:58:22 Does it come with a sword? 14:58:40 either that, or a spaceship, i'm not sure which. 14:58:56 Oh, like in Arthur King of Space and Time? 14:59:04 or possibly, a horse and a gun. 14:59:51 if you discover it is a laser sword and a space horse, run away as fast as you can. 15:00:42 I'll keep that in mind 15:03:20 wtf 15:03:25 eiffel in gmail ads 15:03:56 oerjan, on the space horse? 15:04:20 Phantom_Hoover: i'd not recommend that. at least unless you also have a space suit. 15:04:32 Or a terraformed planet 15:04:56 well the trouble here, you see, is keeping the horse _on_ the planet 15:05:12 Taneb, what, you mean I ride away on my space horse on a terraformed planet. 15:10:15 Here's a problem: Is Taneb's Numberwang Turing Complete? 15:10:57 I suspect it is 15:11:05 That's numberwang! 15:13:11 -!- augur has quit (Remote host closed the connection). 15:14:23 ℼ 15:14:28 * oerjan makes it a table so he doesn't need to scroll 15:17:38 hm digital root, so there is a fundamental mod 9 operation in most cases 15:17:52 And a subsequent mod 4 15:18:24 what precisely is "the value of the current command" in command 2? 15:18:57 If your program was 0, 7, 2, and you were on the 7, it would be 7 15:19:16 ok so before any of that summing and moduloing stuff 15:19:42 Yeah 15:20:01 i was a little confused by the "this value" a bit above that, which means something else 15:20:34 (and can only be 1-9 afaict) 15:20:58 I use the word value to mean three different things 15:21:07 I think I'll change the second to number 15:25:43 i think this will not be too hard if you make sure all jumps are by multiples of 9, so the step number is always in synch with the position 15:27:00 oerjan: I have encountered a problem involving my regular expression language I would like to submit to you.. 15:27:27 argh, i mean hm? 15:28:23 Taneb: do step numbers and positions start at 0 or 1? 15:28:45 0 15:28:59 okay so basically the language is composed of patterns, which can also take subpatterns as arguments. A pattern has a string result and a numeric result, which can be based on the string/numeric results of their subpatterns... 15:29:09 so I have -> as a substition operator. It takes the first occurence of the left-hand pattern in the input string and replaces it with the string result of the right-hand side. 15:29:43 I would like to define global substition (s/.../.../g) in terms of ->, as (a -> b)* 15:29:59 where * is similar to * in other regexp languages. 15:30:13 however... 15:30:16 Taneb: ok so if jumps are ensured to be mod 9, then the adjustment to each command is predictable (mod 9) from position: 0,2,4,6,8,1,3,5,7,0 etc. 15:30:55 if -> is zero-width then upon each repetition it will start at the beginning of the input string, which is undesirable because it means patterns like ('a' -> 'ab')* would loop infinitely. 15:30:59 Jumps are mod length of program 15:31:04 I think 15:31:18 Taneb: er *0 (mod 9) 15:32:14 if the length of the program is _not_ divisible by 9, then you should be able to jump from any position 15:32:19 however, if -> consumes the input string after the point of substition, then I can define global substition as * applied to ->, but then.... it consumes the input string that I just made substitions upon, which is generally not desirable. 15:32:37 so I'd have to explicitly backtrack. 15:33:38 so I'm just trying to figure out how to make this work... 15:33:59 -!- augur has joined. 15:34:06 perhaps I need a second method of traversing the input string rather than literally consuming it.. 15:34:22 CakeProphet: i'm afraid my brain refuses to switch context to your problem 15:34:24 or different backtracking semantics... or multiple substition operators. 15:34:30 oerjan: haha, okay. That's fine. 15:34:50 it's obscenely late in the morning for me to be thinking about this. 15:36:11 I may have to ditch defining global substition in terms of a repetition of single substition, and just have -> and a separate ->* defined as built-ins. 15:37:18 elliott suggested a zero-width version and a consuming version of ->.. but a consuming substition operator seems pointless unless the semantics of the backtracking operator magically preserve side-effects of things when backtracking... 15:37:40 which might be undesirable in other cases.. 15:38:05 turns out making a systematically elegant regular expression language is difficult. 15:40:01 You know what would make everything much more confusing? 15:40:26 Making Numberwang have ternary cells 15:41:01 hmmm, perhaps I could add more contextual return values for expressions. Yes, this sounds fun. 15:41:14 string result, numeric result, and NEXT ITERATION RESULT. 15:41:16 ... 15:41:20 no, this is a terrible idea. 15:41:49 Taneb: ternary isn't terribly confusing, but I don't know how numberwang works so... 15:42:20 It's binary 15:42:51 3,6,0, oh hum 15:43:17 With similar changing commands to one of the BF Minimization things 15:43:29 oerjan: what would be awesome about (a -> b)* is that * defines its string result as the concatenation of each iteration of the subpattern, and the numeric result as the addition of the subpattern's numeric results.. 15:44:01 -!- monqy has joined. 15:44:09 -> could return the number of substitions that occurs for the numeric result, which would be either 0 or 1 15:44:23 thus the * would return the total number of substitions... 15:44:40 this is awesome, you see. 15:45:08 I've had a crazy idea for making an esolang 15:45:15 We all say stuff, and see what sticks 15:45:50 http://www.esolangs.org/wiki/Adjudicated_Blind_Collaborative_Design_Esolang_Factory 15:46:59 not an imperative language those are boring if they don't have really good gimmicks 15:47:03 sadly no one ever tried to sort out that mess :P 15:47:38 :( 15:47:51 Taneb: positions 2,5 or 8 (mod 9) are ideal jump points for numberwang, as when the step number and command value are all of the same kind, that gives a jump 15:48:13 Okay 15:48:20 So, this crazy idea 15:48:32 ABCDEF... G 15:48:56 G? 15:49:08 * oerjan swats Taneb for the heinous crime of abbreviating Adjudicated Blind Collaborative Design Esolang Factory 15:49:14 * -----### 15:49:20 (forgot the swatter) 15:49:22 I never abbreviated that 15:49:34 WELL YOU GOT DANGEROUSLY CLOSE 15:50:07 I abbreviated Abbreviation Because Crazy Declarative Esoteric Fantasy... Groans 15:50:12 adjudicated blind collaborative design esolang factory garden 15:50:23 O KAY 15:50:25 garden is a good word 15:50:32 Gaiden? 15:51:18 That means like a spin-off 15:51:37 oerjan: I enjoy your submission the most. :D 15:51:38 oh wait i'm miscalculating, because a jump should go to a position _after_ the current one (mod 9) 15:51:52 an adjudicated blind collaborative design garden of esolang factories 15:52:07 or is it a garden of adjudicated blind collaborative design esolang factories 15:52:29 It's the garden that is attached to an adjudicated blind collaborative design esolang factory 15:55:39 1,4,7, whoops 15:56:04 Taneb: ok my miscalculation corrected, there actually _aren't_ any perfect jump points 15:56:29 I think it's possible to jump from anywhere to anywhere, though 15:56:52 Taneb: it still should work if the length of the program is not 0 (mod 9) 15:57:39 Taneb: the thing is i'm trying to do this without step numbers getting out of synch 15:58:55 it's easy to make it 4 (mod 9) instead, by appending a NOP 1,0,1,0 15:59:33 anyway, later 15:59:36 -!- oerjan has quit (Quit: leaving). 15:59:36 bye 16:00:52 Taneb: the language has only numbers as values 16:01:12 in string contexts, an inverse hash function is applied to the number to get a string. 16:01:24 the hash function is implementation defined. 16:01:48 All functions take strings 16:04:25 all numbers are quantum numbers that can be composed of a possibly infinite number of superpositions. The superpositions collapse based on what context the value is used in. For example, in string context the collapse occurs as the concatenation of the inverse hash value of each superimposed number. 16:06:08 http://shrike.depaul.edu/~mhendri5/CSC394/ConceptDemo/projectManager.html Professor Elliott - 2 l's and 2 t's. 16:06:27 for every context there is an anti-context in which an inverse collapsing operation occurs. For every defined context an anti-context must also exist. 16:07:12 There is one context that is its own anti-context 16:07:41 CakeProphet, are you working on figuring out ABCDEF? 16:07:59 Vorpal: we are defining a language collaboratively via logs. :) 16:08:07 and I am sleep deprived enough to come up with some crazy ideas. 16:08:18 CakeProphet, uh, logs of who and from which time span? 16:08:25 Logs of us, and now 16:08:34 ah 16:09:10 CakeProphet, Taneb whatever it is, the source code (if such exists) should exist on a hyperbolic surface 16:10:58 the anti-string context is the union of each superposition in string-context. There is an operator to induce the anti-context of whatever context an expression is in. 16:11:45 numeric context is the summation of the superpositions. anti-numeric context is the subtraction of each superposition in left-associative order 16:12:27 there is nothing horrible about any of this. 16:12:30 :) 16:12:54 If a context and its anticontext are used in the same function, that function is from thence forth outputs infinity on any input 16:13:11 Why are you discussing hyperbolic surfaces? 16:14:23 Making an esolang 16:15:10 the null superposition is a special value that is empty. It represents the identity element for whatever context it is being evaluated in. 16:15:55 Are you trying to make the semantics as complicated as possible? 16:15:59 yes. 16:16:57 All operations are nondeterministic. 16:17:08 In list context the superposition is merely a linked list. This is the natural state of the superposition. The anti-context of this context is identical. 16:17:09 Except the rand() function 16:17:10 You have to make sure that all eventualities lead to the same outcome. 16:17:24 Which always outputs four 16:17:27 -!- MigoMipo has joined. 16:18:07 In boolean context, only the null superposition is false, all other superpositions are true. The anti-context is the logical negation of this. 16:19:13 In list context the superposition is merely a linked list. This is the natural state of the superposition. The anti-context of this context is identical. <-- shouldn't the anti-context be the reversed list? 16:19:29 -!- MigoMipo has quit (Read error: Connection reset by peer). 16:19:31 well, I guess that would make sense... 16:19:31 Vorpal, did you need to paste the last line of chat to reply to it? 16:19:38 -!- Nisstyre has joined. 16:19:42 Phantom_Hoover, it wasn't the last line 16:19:44 Oh, wait. 16:19:45 Right. 16:20:05 -!- MigoMipo has joined. 16:20:22 CakeProphet, it would make sense? Perhaps we can think of something else then 16:20:24 I think I've got Settlers IV working on Ubuntu 16:20:44 Got a splash and my CD drive is whirringh 16:21:04 And flashinh 16:21:15 You can figure out what I mean 16:22:00 operators can only be named as numbers. 16:22:18 Names can only be numbered as operators 16:22:32 what does that even mean 16:22:38 http://esolangs.org/w/index.php?title=Brainfuck&curid=961&diff=23689&oldid=23593 uhm, can we just split the "implementations" section to the separate comparison page? it is becoming hard to manage. 16:23:10 in function context, a superposition acts as the function with the same name. The result is the superposition of each function in the superposition applied to all of the arguments specified. 16:23:27 The superposition of two superpositions is their concatenation concatenation. 16:23:54 with columns like "implemented in", "targets", "cell size", "behavior on EOF" etc. 16:24:08 thus an infinite superposition of 1s will apply the function 1 infinitely many times to its arguments. 16:24:41 Vorpal: If I wanted to assign a number to a name (like Vorpal is number 6) I would have to say "Vorpal is +" or something 16:24:47 CakeProphet, how would you write such a superposition in the source? 16:24:54 Taneb, ah 16:25:08 Vorpal: just put the bits on your hard drive into quantum entanglement 16:25:12 Vorpal: shenanigans. Probably via some repeat function. 16:25:16 -!- augur has quit (Remote host closed the connection). 16:25:19 which is probably recursive. 16:25:25 ais523, or that yes 16:25:25 Numbers can only been operated as names 16:25:56 it's like... a hybrid between Haskell and Perl. :) 16:26:01 -!- augur has joined. 16:26:06 And befunge 16:26:23 yes, there needs to be more two-dimensionality somewhere... 16:26:43 It's on a hyperbolic surface, isn't it? 16:26:54 I don't even know what that means. 16:27:07 Taneb, suggestion: if you write "foo is" without anything after (except statement delimiter such as newline) it should be assigned a default implementation defined value out of the set {-42, 0, 42, 2-5} 16:27:33 It's not my language, there's nothing I can do to stop it 16:27:34 okay, so that's the extent of my idea-vomit. I am probably going to sleep now. 16:27:39 It's everybody's language 16:27:43 Goodnight 16:28:03 Not only is it two-dimensional, it's non-euclidean 16:28:05 CakeProphet, not sure either. But I guess that mean parallel lines aren't like in an Euclidan geometry 16:28:26 as in, I suggest a hyperbolic geometry (which one: implementation defined) 16:29:45 I don't even know what that means. 16:30:04 Basically, hang on 16:30:09 You can get one by taking a standard triangular tiling and putting seven triangles around a point rather than six. 16:30:10 >v 16:30:12 ^< 16:30:14 Isn't an infinite loop 16:30:18 numbers are delicious fruit. Thus subtraction is the devouring of a number of fruit from a pool of fruit by the interpreter or object code. Negative fruit is fruit owed and thus accumulates compound interest over time. 16:30:20 But does sort of work 16:30:40 Numbers can fall in any direction 16:32:17 Taneb, BtW, I assume you're referring to http://en.wikipedia.org/wiki/Order-5_square_tiling as the tiling used. 16:32:34 That works 16:33:08 (Is it just me or is that projection not a Poincare disc?) 16:33:17 (The lines near the centre seem too straight.) 16:33:57 Oh, never mind. 16:35:28 bbl 16:38:55 negative numbers accumulate continuous compound interest, with an interest rate that is implementation defined. The interest rate must be available to programs as a built-in constant. 16:40:31 -!- MigoMipo has quit (Read error: Connection reset by peer). 16:41:11 -!- foocraft has joined. 16:42:33 local usury laws wherever the program is being run provide a cap for the interest rate. 16:43:06 so...basically, negative numbers get more negative proportional to their magnitude 16:43:12 yes 16:43:35 one can get an exponentially large number by subtracting one, nopping for a while, and then absing 16:43:40 sounds useful 16:43:45 with respect to local legislature on the matter. 16:43:49 -!- Taneb has quit (Ping timeout: 255 seconds). 16:44:08 local usury laws wherever the program is being run provide a cap for the interest rate. 16:44:17 So it's impossible to use in the Islamic world? 16:44:44 is it possible for a program that is destitute and performing nothing but nops to collect unemployment? 16:45:46 I don't know, is it? 16:45:55 is it possible for a program with a large fruit debt to go bankrupt? 16:46:17 Phantom_Hoover: I would presume that in those countries it would either be simple interest or no interest at all. 16:46:23 (knowing that its credit score will weaken and it will be unable to store negative values until it performs well for a while) 16:47:30 would it be possible for it to store a positive value (over some minimum value) in a savings register and collect interest on it? 16:47:49 these are complex financial and legal matters. You will need to contact your program's lawyer and accountant on the matters. 16:48:22 quintopia: sounds resonable. 16:49:19 perhaps also a mutual fund with net loss/earnings based on regional stock quotes. 16:51:06 ABCDEFG, a context, quantum, hyperbolic, numeric, and finance oriented language. 16:51:58 CakeProphet, it's not going to be very helpful for anything hyperbolic, TbH. 16:52:23 Ooh, wait, if it has Befunge-style mutable program space it can construct geometrical things. 16:54:56 well, it might be possible, but perhaps not globally. 16:55:07 making it a fungeoid constricts the syntax to single characters. 16:55:24 but incorporated a 2D code grid as part of the language would be interesting. 16:55:30 *incorporating 16:56:17 code that manipulates quantum superpositions of fruit and fruit-loans, no doubt. 16:56:44 CakeProphet: if it's finance oriented, all output should be as advertising. thus, it must be paid for and associated with some commodity. the value of that commodity will rise depending on the investment in advertising. 16:57:22 I think fruit is a good commodity. 16:57:30 as it is delicious. 16:57:31 all input should be as market research, and may not be possible for some users depending on whether they are in the target demographic 16:57:40 the preferred input method will be multiople choice surveys 16:57:50 ..... 16:58:01 I lol'd 16:59:00 (the nice thing about surveys is that sometimes they include "select all that apply" questions, thus making it possible to input superpositions) 17:01:25 making it a fungeoid constricts the syntax to single characters. <-- unicode is large 17:01:40 CakeProphet, anyway you could construct source lines on the surface or something 17:02:04 CakeProphet, oh and... hm... perhaps the gravity of the program deforms the geometry? 17:02:10 for sufficiently large programs 17:04:22 quintopia, there is only one free text input per program, which is so annoying to get at, that most programs will promptly discard it? 17:05:40 Vorpal: rather, the user can provide as much input as s/he likes, but the program pays by the character to read it 17:05:58 you can have n-character-wide commands too 17:06:00 eventually, this cost is passed on to the user 17:06:04 nothing wrong with that 17:07:49 Phantom_Hoover: well, actually i wanted something like this: http://esolangs.org/wiki/User:Tokigun/Brainfuck_Implementations 17:12:07 lifthrasiir, sure, but it's good to have them out of the main article before experimenting. 17:12:36 yes. that's exactly why i set it up in my user page. 17:48:40 -!- Taneb has joined. 17:48:48 Hello 17:53:01 hi 17:53:02 Laughing at where the esolang I suggested has gone 17:53:14 A context, quantum, hyperbolic, numeric, and finance oriented language? 18:00:43 -!- cheater__ has joined. 18:03:57 -!- cheater_ has quit (Ping timeout: 240 seconds). 18:08:23 -!- MigoMipo has joined. 18:09:58 -!- MigoMipo has quit (Read error: Connection reset by peer). 18:10:32 -!- MigoMipo has joined. 18:31:15 -!- Sgeo has joined. 19:02:57 -!- oerjan has joined. 19:08:58 CakeProphet, are you working on figuring out ABCDEF? 19:09:17 no, ABCDEFG. there is no such thing as a language abbreviated ABCDEF. 19:09:29 * oerjan readies the swatter in case someone disagrees. 19:09:45 It's actually abbreviated ABCDEF...G 19:09:52 The ellipsis is important 19:09:53 aha 19:10:24 However, it can be replaced by a newline in some contexts 19:10:58 -!- cheater__ has quit (Ping timeout: 255 seconds). 19:11:23 also, i realized my former idea of perfect jump points in numberwang works again if the program has an initial 2!, to put things into the correct phase initially 19:11:36 Ooh, brilliant 19:14:15 and then we can put the "real" instructions at spots that are position 2 (mod 9), and pad between with 1,0,1,0,1,0,1,0 nops (although one might manage to put something other than a nop in there too) 19:14:59 since 0 and 1 commands can be achieved easily anywhere 19:15:40 Yeah 19:17:38 How is ... the thing that ABCDEF is not an abbreviation for? 19:17:56 Inactive 19:18:02 Confusing 19:18:06 Self-contradicting 19:18:39 rest in peace abcdef 19:18:49 * oerjan swats monqy -----### 19:18:51 oerjan? 19:19:03 Just as I expected 19:19:29 i guess it was inevitable 19:19:50 rest in peace that thing for which abcdef is not an abbreviation, too 19:23:20 it is also possible to put jumps at positions 5 and 8 (mod 9), although they can only jump to other instructions with consistent phase (lest you make the phase inconsistent :P) 19:24:29 -!- cheater__ has joined. 19:25:30 those jumps can be to next instruction, so you can insert nops that way 19:25:41 *the next 19:25:54 This is too easy to program in 19:26:02 eek 19:26:57 well it looks obvious that you can automatically translate a Wang B-machine to this now 19:27:09 Hence it is Turing Complete 19:28:30 Damn 19:32:25 is it meant to be sub-TC? 19:32:27 hm actually it's not exactly the same, numberwang flips bits while the B-machine only sets them (and the W-machine also clears) 19:32:44 It's meant to be really hard to prove 19:33:12 but nothing really difficult there i guess 19:33:31 It's practically usable 19:33:54 Oozlybub and Murphy is a good example of hard to prove 19:35:41 yes but in a somewhat unsatisfactory way 19:36:11 are there any satisfactory examples 19:37:10 Not off the top of my head 19:37:14 Piet? 19:37:23 well no one has attempted my Malbolge Unshackled yet afaik :P 19:37:30 (not me, for sure) 19:40:29 How can I complicate this? 19:41:02 I want its computational class to be "probably Turing Complete..." 19:41:52 All programs much reach Numberwang so many times? 19:42:13 what does numberwang do 19:42:35 http://esoteric.voxelperfect.net/wiki/Numberwang 19:42:41 I mean 19:42:50 Oh, ok 19:42:50 12! 4.4! 92! 10! 49.8! 2! 2! 2! 19:42:57 Depends when it happend 19:43:00 *happens 19:43:03 right 19:43:18 but does it necessarily have any effects? 19:43:30 It's an almost certainty 19:44:12 -!- ais523 has quit (Remote host closed the connection). 19:44:33 Like, I have no idea what the program 3! does 19:46:30 -!- MigoMipo has quit (Remote host closed the connection). 19:48:02 Taneb: is the digital root of 4.4 or 49.8 defined? 19:48:23 It is, but the most common algorithm doesn't work 19:48:30 8 and 3 respectively 19:48:35 okay 19:49:01 Multiply by 10 until n % 1=0 19:49:03 so that it only affects the interpretation of instruction 2, right? 19:49:09 Yeah 19:49:34 then what on the earth is the command at the fractional index? :p 19:49:52 (given the current cell is marked) 19:49:58 I haven't worked that out yet 19:50:52 i guess some kind of interpolation will be fine... 19:50:58 I think you do the * 10 until n % 1 = 0 19:52:00 e.g. if you go to the offset 4.2 which is between the command 92 and 10, then it is interpreted as the command 26.4 19:52:40 That works, too! 19:52:43 since the initial commands are always integers multiplied with 10^-k (k integer) 19:52:51 there is no problem with recurring decimals etc. 19:53:25 All commands are k/(2^j)*(5^l) 19:53:48 that is k'/10^max(j,l) for some k'. :p 19:54:07 ugh, 19:54:18 no don't mind. 19:54:30 my expression parser seems to be broken 19:56:25 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 19:59:39 Your suggestion is now canon 20:00:01 hi 20:00:07 Hello 20:00:08 anyone know what encoding this page is in? http://www.john-a-harper.com/tubes201/ 20:00:40 * cheater__ eyes fizzie 20:00:52 UTF-8? 20:01:05 HTML 3.2? 20:01:25 GIF? 20:01:26 I don't think HTML 3.2 is an encoding 20:01:42 Sgeo, any ideas? 20:01:49 Pretty sure it's UTF-8 20:02:14 With HTML 3.2 markup and images as GIFs 20:02:15 can you search for the text "is a constant for a given electrode geometry. In other words, the actual plate voltage is divided by" ? 20:02:32 does a \mu character show up? 20:02:36 nice 20:02:41 No 20:02:43 Yeah, the "broken" characters seem to be UTF-8 "missing character" symbols. 20:03:11 � ...encoding...:( 20:03:40 looks like U+FFFD in UTF-8. 20:03:56 There's the byte sequence EF BF BD (which is UTF-8 for the U+FFFD) for both the degree signs and the supposedly-µ. 20:04:12 So it's not something you could reverse back to anything sensible. 20:07:16 wtf is an element? 20:07:22 i'm looking at the source of this 20:07:26 Google has a quick-view of a PDF version, second hit for me for the "How Vacuum Tubes Really Work" (in quotes) search. 20:07:46 fizzie, yeah i decided to change everything by hand 20:07:48 i guess someone sent non-UTF-8 to a program that was expecting UTF-8, and the unknown characters were turned into that 20:07:57 And the and tags are used to denote insertations and deletions in a document. 20:09:31 oh oh 20:10:25 20:11:02 I could make a better website with Wine Notepad and a packet of crisps! 20:11:11 By better, I mean better HTML 20:11:17 Not better content 20:11:36 the preview has all the right characters 20:12:04 Replace your mu characters with μ 20:12:51 &moo;. 20:13:21 yeah i will 20:13:29 what's the degree one? ° right? 20:13:54 °, yeah 20:14:00 The semicolon is important 20:24:13 i realize, but it's part of sgml, not the entity 20:24:26 funnily enough i have had to use two different encodings for the mu character 20:24:35 Why? 20:24:36 &mu and µ for different contexts 20:24:41 Huh 20:25:02 mu is used for the prefix "micro" in units as well as for a variable called "mu" 20:25:15 as in "Vari-mu", "low-mu", "high-mu" 20:25:32 What does a zen cow say? 20:25:34 Mu! 20:27:01 why did the kitten stay on the hot tin roof longer than the adult cat? 20:27:07 it had a higher mu! 20:28:17 that made no sense 20:29:01 Today I have ice cream, so I take it away from you. 20:29:12 Tomorrow I have no ice cream, so I give it to you. 20:29:19 This is an ice cream koan 20:37:50 today i had lots of beer 20:37:53 i am a koanhead 20:38:36 I seem to finally have working webernauts. 20:41:04 -!- Taneb has quit (Ping timeout: 264 seconds). 20:46:56 -!- Phantom_Hoover has joined. 20:53:07 -!- Sgeo has quit (Ping timeout: 255 seconds). 20:55:34 -!- Sgeo has joined. 21:03:55 -!- boily has quit (Ping timeout: 255 seconds). 21:04:18 * Phantom_Hoover notes that he just clicked on a YouTube video called "Mitchell & Webb Mac Adverts" on the assumption it would be a parody. 21:05:02 -!- hagb4rd has joined. 21:06:34 * oerjan recalls someone posted an animated gif of a mac advert on reddit the other day 21:07:10 from a norwegian online newspaper 21:16:31 -!- cheater__ has quit (Ping timeout: 255 seconds). 21:17:35 -!- elliott has joined. 21:23:03 something is wrong, elliott joined and the channel is _still_ silent 21:23:12 im logreading -minecraft first is why 21:23:17 ah. 21:23:20 :D 21:23:30 morning 21:23:34 mroing 21:24:18 mwrong 21:29:23 -!- cheater__ has joined. 21:35:19 * oerjan figures -minecraft must have been _really_ active today. 21:35:39 no im just scrolling dwon to find ten am 21:35:44 when i left 21:35:47 down 21:36:37 * oerjan uses ^F for that 21:36:59 ur an f 21:38:20 what's your angle? 21:38:32 14:06:23: it's just one of ais523's methods to suppress thinking of fe *hit by falling anvil* 21:38:32 14:07:05: Meta type constructors? 21:38:33 14:07:55: i never m *anvil rolls on top of him again* 21:38:33 :D 21:38:35 pet anvil 21:38:52 aww :D 21:39:14 14:22:22: Why can't my German-made French-published game with Italian characters run on my Japanes-designed Chinese-made laptop with a South African OS based on a kernel designed by a Swedish speaking FInn? 21:39:14 14:23:06: The game also has Norwegian and... Argentinian? characters 21:39:14 which south african os? 21:39:18 "hihihi here i come oerjie" "AAAAAAARGH!" 21:39:24 oerjie 21:39:42 14:27:36: it means "i despise you so much i'm going to steal your screen real estate despite not really saying much." hth. 21:39:43 oerjan: why 21:39:44 don't 21:39:44 you 21:39:46 love 21:39:47 ME???????????? 21:40:17 14:28:25: But yeah, Settlers IV doesn't run on Ubuntu on my Toshiba 21:40:17 Ubuntu is South African only by very dubious measures :-P 21:40:19 nothing personal, you're just evil newline-spamming scum, is all. 21:40:49 14:34:02: a real is perfectly encodeable as a sequence of ones and zeroes. it just has to be infinite. 21:40:49 14:34:12: oerjan, OK then, P(R). 21:40:49 14:34:36: fiendish. 21:40:49 14:34:54: Just stick Ps on until it gets big enough. 21:40:50 :D 21:41:18 I think domesticated anvils will be made of light metals and have some form of truss-like interior instead of being solid metal 21:41:47 they're just not that cuddly when they still weigh a ton or two (or a half) 21:42:46 http://esolangs.org/wiki/Surface 21:42:56 ITA: Madk doesn't understand fundamental polygons. 21:43:04 aww now i want a pet anvil :D 21:43:20 anvils are not pets! 21:43:23 Phantom_Hoover: I am going to revert your [[Brainfuck implementations]] change 21:43:29 Why? 21:43:34 I had CONSENSUS. 21:43:41 because you moved every single implementation, including the /original/ 21:43:42 they are fierce creatures who hate puns 21:43:42 oerjan: pet anvils are pets 21:43:54 really it would be kind of sad, it moves by jumping so everyone always yells at it if it moves too much because it makes this huge noise :( 21:44:05 elliott, consider simply moving that into the article, rather than moving the whole thing. 21:44:18 And it _is_ an implementation regardless. 21:44:25 and when it tries to come greet its master, it will just often step on his feet and get yelled at again :( 21:45:28 14 July 2011 21:45:28 (diff) (hist) . . Brainfuck implementations‎; 21:44 . . (-8,084) . . Ehird (Talk | contribs) (...better organisation than the current section. I will do a proper move later today or tomorrow.) 21:45:28 (diff) (hist) . . Brainfuck‎; 21:44 . . (+8,024) . . Ehird (Talk | contribs) (Revert; while I support the separation of implementations into a separate article, ''notable'' implementations (e.g. original distribution, esotope) should stay. And any such page should have...) 21:45:33 Phantom_Hoover: (read backwards) 21:46:03 elliott: tokigun is already working on a better implementation listing 21:46:13 -!- cheater__ has quit (Ping timeout: 255 seconds). 21:46:20 oerjan: citation? 21:46:22 not got very far, mind you 21:46:24 oh, I see 21:46:27 i wish i had 100 million moneys 21:46:30 I find that format much worse, I'm afraid 21:46:37 especially since we don't have wikipedia's table sorting JS 21:46:47 i could buy a pet anvil AND pillow shoes for it 21:50:22 oklopol: oh it's all fun and games until one day you want to meet a pun and then *BAM* 21:50:47 -!- sidhe has joined. 21:51:08 :\ 21:51:08 * oerjan smells an elf 21:51:20 -!- pikhq_ has joined. 21:51:47 the name sidhe rings a bell 21:51:56 dresden files 21:52:50 wat 21:53:00 i mean from here. 21:53:22 -!- oklofok has joined. 21:53:52 oerjan: are you the chairman of the "former pet anvil owners who've had enough" club or something? 21:53:57 i was just on ##nomic for a few seconds due to forgetting the name of this channel 21:54:12 one 21:54:13 olsner: no, i never met any other survivors 21:54:14 hundred 21:54:15 million 21:54:16 moneys 21:54:23 though i've never been here before using this nick. 21:54:38 also it's not my pet 21:55:16 -!- pikhq has quit (Ping timeout: 258 seconds). 21:55:25 -!- oklopol has quit (Ping timeout: 240 seconds). 21:55:56 -!- cheater__ has joined. 21:58:03 -!- sidhe has left. 21:58:28 Lymee: OK SERIOUSLY HOW DOES MAVEN EVEN WORK. 21:58:47 elliott: maven? isn't that some java crap? 21:58:52 yes. 21:59:06 lymee is our resident expert on java crap. 21:59:11 olsner: i gather it's less crap than ant, though 21:59:12 but do you really want to know how it works? 21:59:19 elliott, Maven works with magic. 21:59:19 well i need to use it, yes, so i can avoid using ant. 21:59:24 Magic is bad 21:59:30 Lymee: do you have a better suggestion 21:59:30 *shrug* 21:59:33 :-P 21:59:36 I let Eclipse deal with maven. 21:59:45 So, "loldunno 21:59:46 Yeah, but there's two different plugins and no indication of which one to use :-( 21:59:52 It's like fascism. 22:00:38 I get the impression that maven does things that ant users find useful, and it uses xml 22:00:47 Lymee: http://maven.apache.org/eclipse-plugin.html Which one ;_; 22:02:19 *shrug* 22:03:02 Clearly you want me to suffer. 22:03:03 * elliott cries. 22:03:16 No, that's Apache. 22:03:24 -!- cheater__ has quit (Ping timeout: 250 seconds). 22:04:02 Which one do you have installed, I just want something that works :P 22:04:09 Ant has completely melted down under its own shittiness. 22:04:23 Also I think Maven is meant to be a bit faster than Ant, which is nice because Ant is dog slow. 22:06:18 http://www.vjn.fi/temporary%20shit/anvie.png 22:06:22 Maven Integration. 22:06:47 Lymee: Thanks. 22:06:55 oklofok: awwwwww 22:07:30 Now I just have to figure out how to write Maven files :( 22:07:32 oklofok: you drew that? 22:07:40 or is it a photograph? 22:07:54 photograph 22:08:35 yeah i photographed it using my mspaint brand camera 22:09:49 IT'S A TRAP 22:10:30 it's soooooo cute when it bounces around :D 22:11:08 i wish i was awesome at animating shit, hope you're imagining what i'm imagining 22:11:41 bleh, it looks like my eclipse version is too old to use m2e 22:11:50 I blame Lymee for probably not using Linux 22:12:01 I'm just going to blame every Bukkit plugin development problem I have on Lymee 22:12:09 Makes things super easy 22:12:25 oklofok: bouncy bouncy :D 22:12:55 it's like the antidog in the sense that it loves to scratch you with its horn 22:13:22 (it can actually move that thing a bit) 22:13:39 oklofok: also think of the floor repair bills 22:13:59 in fact it wiggles and waggles it like a dog does with its tail, although the movement is slightly slower and much smaller 22:15:11 "The Eclipse software development kit is the development environment used to develop plug-ins for the Eclipse platform." 22:15:18 Eclipse is like the most incestuous piece of software imaginable. 22:15:28 Its main distribution is a tool to extend itself. 22:16:18 elliott, Lymee does use Linux. 22:16:36 PAH 22:17:01 I'm having problems; the only conceivable way anyone else could not be having problems is if they are inferior to me. 22:17:56 holy shit what the hell is maven 22:18:32 a monster raven 22:19:53 awww that's so cute :D 22:20:10 this is like using martian software, if martians were idiots 22:20:33 conclusion, oklofok thinks everything that can kill you is cute 22:32:09 http://www.vjn.fi/temporary%20shit/monsterravie.png 22:32:21 that's my fursona 22:33:44 erm updating a bit 22:34:22 realized i had two ground levels 22:35:03 no thats good 22:35:14 i prefer the new one 22:35:36 * oerjan is disappointed that http://www.vjn.fi/permanent%20shit/ doesn't exist 22:36:32 we emptied vjn.fi, and moved stuff to our new domain, but missed the deadline for cancelling the webhotel thingie we had for it so now we'll just have an empty domain standing there for about a year 22:37:01 so it turns out i love drawing shit 22:37:09 why have i never drawn anything :\ 22:37:31 because you're no good at it? 22:38:10 eh, did you see the pics? 22:38:18 Lymee: if I steal CommandBook's pom.xml and modify it to my own nefarious purposes, do you promise not to tell? 22:38:35 -!- aloril has quit (Ping timeout: 258 seconds). 22:38:51 :3 22:39:02 i don't think i've ever seen a cuter monster raven 22:39:16 or a more terrifying anvil 22:45:57 -!- azaq23 has joined. 22:46:13 Wow OK Maven is literally the slowest thing. 22:46:18 Is it... downloading every dependency each time? 22:46:29 This is the least Zepto I have ever felt. 22:47:44 are you still eclipsimng 22:48:42 elliott, if it is... 22:49:33 What is Maven? 22:50:03 Lymee: It isn't. 22:50:04 the worst build system evern 22:50:05 Phantom_Hoover: Confusing. 22:50:14 [sic] 22:50:21 Mavern. 22:50:24 monqy: Yes. 22:51:02 why haven't you just made something to replace ides yet 22:51:29 or is an ide actually required for whatever you're doing is it a bukkit plugin I don't even know what that is 22:52:25 -!- aloril has joined. 22:53:19 Phantom_Hoover: you can also check you my picture of maven 22:54:05 oklofok, did. 22:54:08 It was best. 22:54:40 i love how paint adds a smoothing touch around every line so that the filler fucks up 22:55:00 of course it would have been hard to have a wing otherwise, but still sorta ugly 22:55:30 Sweet Maven and Hella Oklopol. 22:56:30 X-D 22:56:40 Maven has to download maven-clean-plugin just to clean the repository out. 22:56:42 Beautiful. 22:58:52 14/07/11 23:57:54 BST: [WARN] Some problems were encountered while building the effective model for net.pyralspite:hostilechunks:jar:0.1 22:58:52 14/07/11 23:57:54 BST: [WARN] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 49, column 12 22:58:53 14/07/11 23:57:54 BST: [WARN] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing. @ line 58, column 12 22:58:53 14/07/11 23:57:54 BST: [WARN] The expression ${artifactId} is deprecated. Please use ${project.artifactId} instead. 22:58:55 BLARRRRRRRRRR 23:00:04 :( 23:05:10 WHAT 23:05:19 Lymee: wat 23:05:29 14/07/11 23:57:54 BST: [WARN] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 49, column 12 23:05:35 *boggles* 23:05:39 WHY IS THIS A PLUGIN!? 23:05:41 Yeah, you have to tell Maven the exact versions of every Maven component you want. 23:05:44 It's so great. 23:05:53 Lymee: Like I said, "mvn clean" actually downloaded maven-clean-plugin. 23:05:57 rm -r: a plugin 23:06:19 Enterprisey, eh? 23:06:36 I'm this close to replacing my build system with a shell script and getting Eclipse to run it. 23:06:41 I can understand that level of modularization, but not not including it by default. 23:06:46 including core modules* 23:07:22 But... 23:07:41 If you do that, the only reason you'd remove core modules is for slimmed down bundled releases. 23:08:58 http://www.reddit.com/r/math/comments/iph88/mathematics_questions_over_on_raskscience_are_met/ 23:09:10 r/math vs. r/AskScience: place your bets! 23:09:22 Why you should use the Maven Ant Tasks instead of Maven or Ivy 23:09:23 MARCH 8, 2009 BY PETER THOMAS 21 COMMENTS 23:10:03 oerjan, incidentally, is it possible to have a non-Euclidean space where there is a circle constant which works like it does in Euclidean space? 23:10:44 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 23:10:47 Since radius:circumference clearly isn't constant in an elliptical space, and ISTR it's not constant in hyperbolic space either. 23:10:54 Lymee: hmm, does Maven kill Eclipse's automatic error-highlighting for you, too? 23:11:24 that's actually a kind of interesting question 23:11:49 elliott, havn't used it with anything I actively modified a lot. 23:12:21 Phantom_Hoover: what i recall is that in both hyperbolic and elliptic geometries the limit is the usual pi when you let the radius approach zero 23:12:42 oerjan, sure, but it's not the case for *all* circles. 23:13:06 no, but i mean neither gives the possibility of anything _other_ than pi being special 23:14:39 oerjan, OK, but is it possible to have a space where all circles have radius:circumference = k, k != pi? 23:14:53 hm if you do it around poles in the complex plane don't you get a multiple of pi... although that's just at that point 23:15:28 bleh, i know way too little about lesser mathematics to even *try* to construct such a space 23:15:33 sorry non-discrete mathematics 23:15:48 obviously i don't know the answer either 23:15:55 what's a circle? 23:16:03 i would certainly love to know the exact rules 23:16:09 we talking 2d manifold? 23:16:23 oklofok, that's what I had in mind. 23:16:51 and then some metric for it k 23:16:57 oklofok: Isn't it something like "a set of points equidistant from a given point in a given 2d product space" or some such? 23:17:07 what's a 2d product space? 23:17:11 you mean 23:17:11 i expect it must always be pi in the limit for a riemannian manifold 23:17:14 nono 23:17:21 don't be silly 23:17:27 not a product space 23:17:49 what's a riemannian manifold? 23:18:08 the problem is what's a circumference in general? 23:18:33 maybe the 1-dimensional measure of the radius 1 sphere 23:18:52 assuming its hausdorff dimension is 1 23:19:03 can you define something like that? 23:19:21 hmm 23:19:22 riemannian manifolds are obvious spaces in which you can at least define a circumference (because you have a metric and differentiation) 23:19:36 yeah 23:19:48 hausdorff measure can be supplied with a dimension right 23:19:53 mind you i don't know that much about them 23:20:09 "a rational number is a quotient of two integers. 10 is not an integer." 23:20:34 iirc the hausdorff measure of a set is always 0 or infinite except for at most one dimension 23:20:49 oerjan: how can you define circumference based on a metric and differentiation? 23:20:56 is there a concept of angle? 23:21:06 "A Riemannian metric makes it possible to define various geometric notions on a Riemannian manifold, such as angles, lengths of curves, areas (or volumes), curvature, gradients of functions and divergence of vector fields. 23:21:15 (http://en.wikipedia.org/wiki/Riemannian_manifold) 23:21:49 " iirc the hausdorff measure of a set is always 0 or infinite except for at most one dimension" yes and circumferences should have dimension 1 and their length as the measure in the euclidean case 23:21:59 erm 23:22:01 spheres 23:22:04 *circles 23:22:32 oerjan: i don't see how that still necessarily lets you measure the length of a circle 23:23:41 it lets you measure the length of a differentiable curve 23:23:54 so... what curve do you measure? 23:24:16 we have a set 23:24:23 the set of points at a certain distance 23:25:06 ok i guess i don't know for sure whether that _does_ form a curve 23:25:39 for each point there is an r such that you get a curve out of the r-sphere or smaller i think 23:25:39 although i'm sure someone who actually knew this stuff could answer 23:25:50 that may be 23:25:57 because the metric is compatible with the topology and you need to have R^2 in some neighborhood 23:26:18 so you get something that's homeomorphic to the usual sphere for small enough radius (?) 23:26:20 "In what year was your Gandi account created?" -- worst possible security question 23:26:33 takes exactly /twelve/ tries to beat at most :D 23:26:38 blergh i don't know shit about this stuff 23:26:39 wait no, eleven 23:28:52 https://www.gandi.net/static/contracts/en/whois/pdf/ObfuscatedWhois_1_1.pdf 23:28:56 someone read this for me, thnx 23:29:17 hmm actually i'm pretty sure a circle is a curve 23:29:22 umm 23:29:23 Resell 23:29:23 yesno 23:29:23 Our contract with ICANN requires that we sell our WHOIS database to any party that requests it. However, you have the right to refuse the sending of your personal data in such an event. Only click on YES and proceed to the next form if you accept that your personal data may be sold. 23:29:29 does this mean that it won't let me go past if i don't say yes :D 23:29:58 in any manifold with a metric compatible with the topology, i think it's a path 23:30:13 hmm 23:30:34 well actually dunno, blergh 23:31:03 oerjan: hey btw recall that really interesting thing we proved the other day? 23:31:08 we generalized it yesterday! 23:31:12 now we know it for all chains 23:31:42 (and it seems it's not true for anything else by a simple counterexample) 23:31:51 O KAY 23:31:58 :D 23:32:13 im a chain 23:33:31 basically it just becomes a question of homomorphism from S^n to S where S is a lattice. for chains these are just projection to one coordinate + homomorphism 23:34:05 but there's a nontrivial homo from D^2 to D for the diamond D 23:34:08 -!- copumpkin has joined. 23:34:32 *finding homomorphisms 23:36:43 so what i'm thinking is if you have a diamond (you do if it's not a chain) and take like a minimal one in some sense, then you might be able to homo the whole S^2 into that one diamond 23:37:23 well haven't given it thought really but sounds like it should be doable, solving the problem completely, in a sense 23:38:28 so as everyone here prolly already knows a subshift that's also a group is easily shown to be an SFT 23:38:43 a more recent result is that it is in fact a full shift (or conjugate to one at least) 23:39:06 so perhaps there is something similar for lattices 23:40:02 oklofok: what's my telephone number 23:40:17 a non-trivial binary subshift that's a lattice always contains the all-0 and all-1 points (proof: it's obvious), and if there's a 0-finite or 1-finite point then it's the full shift 23:40:23 elliott: dunno. 23:40:49 but that's all we know so far 23:41:03 but i have a hunch it's really simple as well 23:42:17 like, take a point and shift it a bit, and and or it with itself, if you get something trivial then the point is periodic and otherwise maybe you get something interesting 23:44:26 (i don't actually know if it has to be periodic if what i said happens)