00:01:06 <Sgeo> Does it have keywords? How many of such could not be redone by the user in @lang in such a way as to look syntactically similar? 
00:03:20 <Herobrine> Sgeo: I need to ask a question before I answer that. 
00:03:31 <Herobrine> Sgeo: *Is that actually a major factor in your opinion of a language.* 
00:03:35 -!- pikhq has joined. 
00:04:26 <Sgeo> Your answer should be independent of my answer, unless you make something up to either push me towards or, more likely, away from @lang 
00:04:38 <Herobrine> Sgeo: I won't, but I do want an answer from you first. 
00:04:56 <Sgeo> It's... nice to have syntactic simplicity 
00:05:21 <Sgeo> j-invariant, which is why I prefer 0 
00:05:32 <Herobrine> Sgeo: It has syntax, yes. More than 0 keywords. 
00:05:40 <Herobrine> 0 keywords is not a virtue, it aids nothing of value. 
00:05:51 <Herobrine> j-invariant: For me to give a few concrete answers :) 
00:06:34 <Herobrine> Sgeo: But yes the syntax is pretty extensible. 
00:07:07 <Herobrine> You can't have random macros that look like function calls, though. 
00:07:24 <Herobrine> (Almost everything can be done as a function call, but macros are always distinguishable from function calls without context.) 
00:08:01 <Sgeo> http://jfm3.org/phosphorous.pdf 
00:10:25 <Herobrine> Sgeo: Let me guess, you saw that and think it's the best idea ever. 
00:10:57 <Sgeo> It's obviously a joke 
00:11:59 <Herobrine> Sgeo: @lang is kind of like Ur but BETTER 
00:12:27 <Sgeo> The Ur reference gives me a headache, and so does the Ur/Web tutorial 
00:13:33 <Sgeo> Herobrine, not literally 
00:13:39 <Sgeo> I just mean I don't understand it 
00:13:54 <Herobrine> Right. Well if you don't understand Ur you'll never understand @lang, which is a great reason to keep asking questions. 
00:15:31 <j-invariant> Sgeo: try making something with Ur, that will probably be easier 
00:16:58 <Sgeo> I imagine the functional-ness of Ur/Web means readable URLs are just natural? 
00:18:25 <j-invariant> don't think there's a connection between those two things 
00:20:21 <Sgeo> I think I just crashed the Ur demo 
00:20:45 <Herobrine> Also, I have no idea how you relate functional-ness and readable URLs. 
00:20:48 <Sgeo> It was working, and now it's not 
00:21:12 <Sgeo> That's what I meant 
00:22:07 <Sgeo> I uploaded a .WAgame file 
00:22:21 <Sgeo> Shouldn't it just have rejected it? 
00:22:57 <Sgeo> function always returns the same thing -> link to a function -> URL contains function's name and arguments 
00:31:17 <Sgeo> Someone called Newspeak a farce 
00:31:40 <Sgeo> http://lambda-the-ultimate.org/node/4112 
00:32:18 <Herobrine> Vorpal: XChat help fail: " Usage: NOTICE <nick/channel> <message>, sends a notice. Notices are a type of message that should be auto reacted to" 
00:32:46 <Herobrine> Sgeo: He also called Oberon and Common Lisp farce. You are perhaps missing some humour. 
00:33:04 <Herobrine> Sgeo: Clearly you cannot even read the summary: 'Object-Orientation is now over forty years old. In that time, Object-Oriented programming has moved from a Scandinavian cult to a world-wide standard. In this talk I’ll revisit the essential principles — myths — of object-orientation, and discuss their role in the evolution of languages from SIMULA to Smalltalk to C++ to Java and beyond. Only by keeping the object-oriented faith can we ensu 
00:33:04 <Herobrine> re full-spectrum object-oriented dominance for the next forty years in the project for a new object-oriented century!" 
00:35:14 <Herobrine> Sgeo: Can you /notice #esoteric test for me? 
00:36:44 <Sgeo> Maybe I should go learn Sel 
00:37:09 <Herobrine> Sgeo: No, ask more @lang questions. 
00:39:26 <Sgeo> Self doesn't run on Windows 
00:41:38 <Sgeo> What language did I see where every object has a URI? Or something referencing that idea? Or some variation thereof? 
00:42:12 <Herobrine> j-invariant: well, depends how it's executed. 
00:42:14 <j-invariant> it might be useful in a specific circumstance 
00:44:10 <Sgeo> Well, I saw something somewhere using that idea 
00:44:16 <Sgeo> For the life of me, I can't find it 
00:44:31 <Sgeo> And I'm not referring to Virtuality or whatever that thing's called 
00:44:40 <Sgeo> Although I might be confusing what I'm thinking of with that 
00:45:25 <Herobrine> Uh oh, looks like I have to ask the owner of this to degroup it. 
00:45:30 <Sgeo> http://interreality.org/ <==not what I was thinking of 
00:46:18 <Herobrine> Gregor: Here's a language to learn. http://www.enchiladacode.nl/ 
00:46:36 <Herobrine> Its author was in here a while ago. 
00:47:26 <Sgeo> So my mind is not just making shit up now 
00:47:28 <Sgeo> Glad to hear it 
00:47:46 <Sgeo> I had no clue if wwhat I was imagining even existed. I could swear it did, but 
00:47:53 <Sgeo> This inability to find the bloody thing 
00:48:40 <Sgeo> Herobrine, you're reinforcing my perception that it exists 
00:48:52 <Sgeo> <Herobrine> Its author was in here a while ago. 
00:48:52 <Sgeo> <Herobrine> But I'd seen it before. 
00:49:44 <Sgeo> Lemme go kill Chrome 
00:50:13 <Sgeo> Why is a Java applet loading? 
00:52:56 <Sgeo> "Information cannot be destroyed." 
00:53:03 <Sgeo> This will be interesting 
00:53:14 <Herobrine> It is one of the oddest languages I know of. 
00:54:26 -!- cheater00 has joined. 
00:54:44 -!- poiuy_qwert has quit (Read error: Connection reset by peer). 
00:55:26 <Sgeo> TODO: explain this isn't a problem 
00:55:40 <Sgeo> (referring to the size of the hashes, not to anything j-invariant said) 
00:55:57 <Herobrine> That's probably in response to me and cpressey being uneasy about it in here to him. :) 
00:56:47 <Herobrine> (tl;dr we care about the fact that theoretically, the language is completely broken from the start; he cares about the fact that in practice, it will never break, and the fact that if you just accept the (impossible) uniqueness of SHA-512, there is no theoretical problem with the language.) 
00:57:01 <Herobrine> That's a bit "yikes" but whatever... 
00:57:06 <Herobrine> Even @ assigns a hash to every object. 
00:57:14 -!- cheater- has quit (Ping timeout: 240 seconds). 
00:57:28 <Herobrine> "The current version is written in Scala and compiled against the JVM 1.5. Other (but now defunct) implementations include Java, Factor and Haskell implementations." 
00:57:53 <Herobrine> (The state of being irrationally addicted to languages.) 
00:59:15 <Sgeo> But unlike me, he's actually DONE stuff in a variety of languages 
00:59:50 -!- poiuy_qwert has joined. 
01:01:17 <Herobrine> "The most general rule is the equational rule that holds for all A, B and X that are Enchilada expressions: 
01:01:41 <Herobrine> Hmm, maybe it's just phrased wrong. 
01:02:25 -!- FireFly has quit (Quit: swatted to death). 
01:02:31 <Sgeo> Or maybe he's deluded 
01:02:52 <Herobrine> Sgeo: Rather quick to jump to conclusions, aren't we. 
01:02:58 <Herobrine> No, it's definitely just stated wrong. 
01:03:11 <Herobrine> "forall A B, (forall X, A X == B X) <=> A == B" 
01:03:56 <Sgeo> Herobrine, huh? 
01:04:19 <Herobrine> Sgeo: (forall x y, (forall f, f(x) = f(y)) <-> x = y) is a law of logic. 
01:04:59 <Herobrine> Hey, Stevan Apter and Sjoerd Visscher helped with Enchilada. 
01:10:18 -!- Herobrine has set topic: Esoteric programming languages | http://esolangs.org/wiki/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 
01:10:23 <Herobrine> (Making us presentable for a possible visitor...) 
01:10:47 <Herobrine> The author of this nick is asking about the bot, long story. 
01:11:44 -!- Herobrine has set topic: minecraft channel. 
01:11:58 -!- Herobrine has set topic: Esoteric programming languages | http://esolangs.org/wiki/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 
01:13:15 <Sgeo> I think I like homoiconic languages 
01:14:35 <Sgeo> C's "\n" is defined in some compilers as "\n"? 
01:14:40 -!- Herobrine has changed nick to elliott. 
01:19:26 -!- elliott has changed nick to Herobrine. 
01:19:41 -!- Herobrine has changed nick to elliott. 
01:19:42 <Sgeo> "One of the infamous features of the standard Unix C compiler (I don't know if it is true of gcc) was that the definitions for the characters like \n were not explicit. When you got to the part of the compiler that defined them, they were defined in terms of themselves. Somewhere in time there had to have been a compiler that gave the numeric values of these characters, but it had been rewritten to be just a tiny bit metacircular." 
01:20:38 <elliott>   case 'n': realchar = '\n'; break; 
01:20:43 <elliott>   case 't': realchar = '\t'; break; 
01:20:56 <elliott> So whatever the compiler that's compiling the C compiler thinks \n is, gets used as the value. 
01:21:06 <elliott> gcc is probably far too anal for this and uses 10 and the like to make SURE the values are right. 
01:22:10 -!- updog has quit (Remote host closed the connection). 
01:22:30 -!- j-invariant has quit (Quit: leaving). 
01:37:51 <elliott> Sgeo: To explain the driver thing: with @, code in @lang can do anything it wants. 
01:38:07 <elliott> Sgeo: For instance, you can easily write a program that overwrites the entire contents of memory, and then sends garbage data to every IO port on the system. 
01:38:16 <elliott> Sgeo: What stops you is the security model. 
01:38:34 <elliott> Even drivers don't get access to all the RAM; they'll be given precisely the regions they need to communicate with some memory-mapped hardware device. 
01:38:45 <elliott> (That's for direct access; they can use more memory by allocating things, of course.) 
01:39:04 <Sgeo> How does the OS know what regions the driver needsA? 
01:39:19 <elliott> Sgeo: The driver tells it. 
01:39:33 <elliott> (If you're thinking "but what if it lies?" -- ever checked any of your drivers lately? They can access EVERYTHING.) 
01:39:59 <elliott> Sgeo: Of course, the user has to allow it to access such memory. 
01:40:31 <elliott> Sgeo: Oh, and if @ can query the system as to, say, what ports are assigned to which devices, or the like, then it can automatically grant permission for those; any requests for more will be considered suspicious. 
01:40:43 <elliott> Sgeo: Here's another language for you. http://will.thimbleby.net/misc/ 
01:41:13 <elliott> Yes! Just like Enchilada! Oh joy! 
01:41:13 <Sgeo> That sounds Lua-like 
01:41:22 <Sgeo> How is it just like Enchilada? 
01:41:38 <elliott> In MISC, all your code is maps. 
01:42:42 <Sgeo> I dislike prefix notation. Not strongly enough to stop me learning MISC 
01:42:58 <elliott> Sgeo: You realise that almost all your programs consist of prefix notation... 
01:43:04 <elliott> Arithmetic is honestly a minor special case :-P 
01:43:16 <elliott> OK, so OOP turns it on its head a little, but really it just turns (f x y z) into (x f y z). 
01:43:48 <Sgeo> Smalltalk-like languages turn it into something like (x f y f z) 
01:44:20 <elliott> Sgeo: BTW, here's Herobrine's code: 
01:44:25 <elliott> log http://sprunge.us/SDKY 
01:44:31 <elliott> httpserv http://sprunge.us/KHVi 
01:44:43 <elliott> (I run the HTTP server as root to use port 80, which is laughable but I'm lazy.) 
01:45:10 <Sgeo> I haven't written that much code in a very, very long time 
01:45:35 <elliott> It's a 45-minute hack job. (log is a 5 minute hack job, and httpserv got out of control.) 
01:46:04 <elliott> But hey, you can link to individual lines in a log! 
01:47:20 -!- poiuy_qwert has quit (Read error: Connection reset by peer). 
01:48:21 <elliott> Sgeo: Gah, I feel like making my own little homoiconic language, and blame you. 
01:48:38 <elliott> Enchilada-sequences and MISC-maps are taken, maybe I'll base mine on sets. 
01:50:09 -!- poiuy_qwert has joined. 
01:51:46 * Sgeo wants MISC to take over the world 
01:52:50 <Sgeo> No, I did not actually die. 
01:53:33 <elliott> Sgeo: seriously want it to take over the world? 
01:53:58 <Sgeo> I would like to see something like it in wider use perhaps. Maybe. 
01:54:21 <Sgeo> I haven't gone through the tutorial yet 
01:55:07 -!- j-invariant has joined. 
01:55:26 <Sgeo> I must say I am appreciative of the lack of special forms 
01:56:04 <elliott> Lambda is just quoted data :P 
01:56:12 <elliott> Haha, this is totally going to be ridiculous based on set theory. 
01:56:28 <elliott> I wonder if I'll use Wiener's or Kuratowski's ordered pair definition. 
01:56:34 <elliott> Wiener's is uglier but lets me avoid duplicating data. 
01:56:59 <elliott> http://en.wikipedia.org/wiki/Ordered_pair#Wiener's_definition 
01:57:08 <elliott> j-invariant: i'm not going to use set theory, I'm amusing myself by creating the language: 
01:57:25 <elliott> Enchilada : sequences :: MISC : associative maps :: my language : sets 
01:57:31 <elliott> It will be HILARIOUSLY SILLY 
01:57:39 <elliott> just explaining what i'm doing 
01:57:46 <j-invariant> I don't know hwy people don't use category theory 
01:58:01 <elliott> wait, Wiener's doesn't quite work I don't think...possibly 
01:58:14 <elliott> how do you extend Kuratowski to longer tuples? 
01:59:33 <Sgeo> Dear Tutorial: Ctrl-C did not in fact stop evaluation 
01:59:56 <elliott> (a, b)reverse := {{b}, {a, b}}; 
01:59:56 <elliott> (a, b)short := {a, {a, b}}; 
01:59:56 <elliott> (a, b)01 := {{0,a}, {1, b}}. 
02:00:16 <elliott> i guess you can extract it from that 
02:01:42 <elliott> obviously i need some weird syntax to succeed 
02:01:56 <elliott> I'll define "a => b" to be "[a; b]" 
02:04:13 <elliott> Sgeo: {0=>false; x=>true} --> {[0; false]; [x; true]} --> { {{0}; {0; false}}; {{x}; {x; true}} } --> {{{{}}; {{}; false}}; {{x}; {x; true}}} --> {{{{}}; {{}; {}}}; {{x}; {x; {{}}}}} --> {{{{}}}; {{x}; {x; {{}}}}} 
02:04:21 <elliott> Sgeo: so {{{{}}}; {{x}; {x; {{}}}}} is the function "is not zero" 
02:04:24 <elliott> Sgeo: do you like this language it is homoiconic 
02:06:46 <elliott> Sgeo: how can you say that, it is the most beautiful 
02:06:58 <elliott> probably i should figure out a way to make the symbolic expression "x" a variable 
02:07:42 <elliott> j-invariant: best language i have here?? 
02:09:18 -!- variable has quit (Quit: Daemon escaped from pentagram). 
02:10:28 -!- variable has joined. 
02:14:51 <elliott> j-invariant: lol sets are the worst 
02:16:55 <elliott> Sgeo: "Prefix notation might not be to your taste. Luckily writing a standard math parser is simple." 
02:16:59 <Sgeo> I'd like to see someone develop a ... more used language based off of it, although without scrapping the purity. The thing is, I don't see what's wrong with taking MISC as it is and just .. more libraries, etc. 
02:17:10 <Sgeo> More real-world use 
02:17:11 <elliott> And that requires forking the language...why? 
02:17:16 <Sgeo> elliott, it doesn't 
02:17:20 <elliott> This shit gets no real-world use because nobody cares, Sgeo. 
02:17:44 <elliott> Sgeo: OK, let me try and use an analogy only a YouTube user could understand. Put yourself in the mind of a YouTube user momentarily. 
02:18:09 <elliott> Sgeo: "I'd like to see someone make a ... more popular album based off of Justin Bieber's, although without scrapping the talent. Just ... more real world." 
02:18:19 -!- poiuy_qwert has quit (Read error: Connection reset by peer). 
02:18:20 <elliott> Correct response: "Quality > popularity." 
02:18:32 <elliott> Incorrect response: "I wish [BAND] would take over the world instead of Justin Bieber!!!!!!!!!" 
02:19:28 <elliott> Sgeo: Are you... understanding? 
02:20:11 -!- poiuy_qwert has joined. 
02:20:28 <elliott> j-invariant: he's talking about MISC now. 
02:20:46 <elliott> j-invariant: I'm attempting to explain that aiming for popularity gets you mediocrity. 
02:20:59 <elliott> Sgeo: You know the people in your course? 
02:21:10 <elliott> *They, or people only marginally better than them, are MOST PROGRAMMERS.* 
02:21:16 <Sgeo> How about at least Haskell-like popular 
02:21:34 <Sgeo> Is that a reasonable goal? 
02:21:36 <elliott> The set of people who actually use Haskell in actual products or software like checking out niche langs too. 
02:21:48 <elliott> Most people who claim to be a fan of Haskell ostensibly read a tutorial but have never actually written a program longer than 10 lines. 
02:21:54 <j-invariant> Sgeo: not really, Haskell is incredibly popular 
02:22:07 <Sgeo> elliott, um, I might fall in that set 
02:22:16 <Sgeo> Well, that BF interp I guess 
02:22:23 <elliott> Sgeo: Why do you care so much about popularity? Would you rather have created a pile of shit that the whole world loves, or a beautiful gem that only a handful see? 
02:22:34 <Sgeo> I tend to just read a lot of tutorials 
02:22:47 <Sgeo> Because a good language would make everyone's lives easier 
02:23:16 <elliott> 90% of programmers are SHIT. They can fuck up _any_ language. 
02:23:24 <j-invariant> The trick is to make something good that people like 
02:23:29 <elliott> And until you significantly improve the whole corporate structure and hiring process, and the whole CS education system, that will never change. 
02:23:40 <elliott> Getting good programmers to like something is a real achievement. 
02:23:44 <elliott> Getting bad programmers to like something is a failure. 
02:24:08 <j-invariant> 02:28 < elliott> Getting bad programmers to like something is a failure. 
02:24:10 <Sgeo> I have to admit, I do see some things unlikable about MISC 
02:24:10 <elliott> Sgeo: In fact, a good language getting too popular with the majority of -- bad -- programmers will dilute it, as they pollute the ecosystem with their bad practices. 
02:24:26 <elliott> j-invariant: `addquote <elliott> Getting bad programmers to like something is a failure. 
02:24:31 <elliott> j-invariant: you run it or it'll log it as me adding my own quote :> 
02:25:42 * Sgeo wonders if there could exist a language in which there was no bad practices 
02:25:51 <Sgeo> All things that could be bad practice are not doable 
02:25:59 <elliott> Sgeo: Yes, it's called Omega. 
02:26:01 <j-invariant> `addquote <elliott> Getting bad programmers to like something is a failure. 
02:26:04 <elliott> Sgeo: The Singularity is the only compiler. 
02:26:07 <elliott> It rejects your code if it's bad. 
02:26:16 <elliott> That is the _only_ way that will _ever_ happen. 
02:26:19 <elliott> There is one language satisfying that. 
02:26:28 <elliott> Unfortunately, there are no good practices either. 
02:26:49 <HackEgo> 268) <elliott> Getting bad programmers to like something is a failure. 
02:26:53 <Sgeo> http://lambda-the-ultimate.org/node/4088 ? 
02:27:37 * Sgeo 's eyes glaze over 
02:27:48 <elliott> I DIDN'T MEAN THAT OMEGA GOD DAMMIT 
02:28:15 <j-invariant> also: DOesn't that omega suck? or was it made before Agda? 
02:28:29 <j-invariant> because I guess it is okay if it was a precursor to agda 
02:28:49 <Sgeo> forall strings S: There exists a language named S 
02:29:10 <elliott> j-invariant: well you realise that dependent types come with their disadvantages... 
02:29:15 <elliott> in Omegamega, you never have to write long proofs :P 
02:31:48 <elliott> j-invariant: summary from comments: "AFAIU, the point of Omega is to keep the standard FP model, and only augment it with some more or less modest extensions, whereas Epigram requires a very different programming model." 
02:32:59 <elliott> i love lambda-the-ultimate 
02:33:04 <elliott> everywhere should be lambda-the-ultimate 
02:38:34 <elliott> Sgeo: i have figured out the language that will seize your heart 
02:38:55 <elliott> Sgeo: prototype-based, homoiconic, immutable, everything-is-a-map, higher order language with no builtins 
02:39:08 <elliott> Sgeo: and also a complicated module system 
02:39:29 <Sgeo> The only reason I expressed interest in Seph's immutable stuff is that you seem convinced that mutability is evil 
02:39:33 <Sgeo> I personally don't care 
02:39:35 <elliott> Sgeo: IF I MAKE IT WILL YOU BE HAPPY AND STOP LOOKING FOR ANOTHER LANGUAGE 
02:40:31 <elliott> Sgeo: That's a no, but it sounds interesting enough that I will anyway. 
02:40:36 <elliott> TO MY LOGREADING SELF: ^^^^ DO THAT 
02:40:42 <elliott> Sgeo: You get to remind me if I don't logread. 
02:41:19 <elliott> Sgeo: If I add "symbolic" to the features pile will you be even happier? 
02:41:33 <Sgeo> I'm not 100% sure what you mean by that 
02:42:26 <elliott> Sgeo: As in, x+x is valid code that just sits there, and you can replace x by 2 as an operation and it'll turn into 4. 
02:42:39 <Sgeo> Interesting... 
02:43:17 <elliott> Sgeo: Oh, I forgot, every object has a URI. 
02:43:44 <elliott> They have URNs based on their hash, and you publish modules by putting them at a URL, which you can then use as an object inside the interpreter. 
02:43:45 <Sgeo> elliott, I don't care so much about that, as I care about finding what system put me in mind of that 
02:44:05 <elliott> Sgeo: I'm just going to pack in every possible feature, because I want to make sure you never go looking for another language. 
02:44:47 <elliott> Sgeo: Oh, I forgot, it'll have hotswapping too. 
02:44:48 <Sgeo> Good luck packing in both static and dynamic typing 
02:44:50 <elliott> Sgeo: What else do you like? 
02:45:01 <elliott> Also, clearly I'll just have OPTIONAL static typing. 
02:46:07 <Sgeo> It needs to take over the world 
02:46:38 <elliott> Sgeo: You're in charge of that. 
02:46:44 <elliott> Sgeo: Oh, and I'll help you create an Active Worlds binding. 
02:46:56 <elliott> Then maybe you will stop talking about languages. Forever! 
02:47:00 -!- elliott has quit (Quit: Leaving). 
02:55:55 <Sgeo> " is built on top of the CPython VM, compiling to Python bytecode." 
02:56:01 <Sgeo> So Python ISN'T safe 
02:56:38 <variable> The Art of Computer Programming, Volume 4A 
02:57:35 <Sgeo> elliott probably hates Logi 
02:57:55 <Sgeo> "Logix is no longer under development, and the original author, Tom Locke, has moved on to other projects." 
02:58:06 <Sgeo> elliott, new requirement: Development is not allowed to cease. 
02:58:38 <pikhq> Yup. First volume in *38 years*. 
03:00:33 <pikhq> At the current rate, immortality will need to be invented for Knuth to finish. 
03:02:05 <variable> http://www-cs-staff.stanford.edu/~uno/news.html 
03:09:30 <j-invariant> I swear I couuld yhear the minecraft song playing... but I don't have minecraft open 
03:09:53 <variable> j-invariant, you are forever lost\ 
03:14:45 <j-invariant> why do I stay up until 3 am I have ot get up early 
03:17:17 -!- poiuy_qwert has quit (Read error: Connection reset by peer). 
03:18:55 -!- poiuy_qwert has joined. 
03:24:56 <Gregor> Why is it so friggin' difficult to set up a webdav subversion server X_X 
03:25:15 <j-invariant> N. Davidson (pers. comm., Sept. 7, 2004) found 
03:25:52 <j-invariant> Gregor: that seems weird because normally svn is pretty good 
03:26:28 <Gregor> Subversion is pretty mediocre, but as server-client VCS go, it's tolerable. 
03:27:53 -!- j-invariant has quit (Quit: leaving). 
03:28:01 <Sgeo> This looks interesting 
03:28:02 <Sgeo> http://boom.cs.berkeley.edu/ 
03:30:21 <Sgeo> It was a web framework 
03:30:41 <Sgeo> The objects as URI thing that I saw recently was some ... document describing a web framework 
03:30:45 <Sgeo> Or some text, anyway 
03:37:17 -!- poiuy_qwert has quit (Read error: Connection reset by peer). 
03:38:57 -!- poiuy_qwert has joined. 
03:39:36 <Gregor> Finally got it working. svn sucks X_X 
03:42:39 <Gregor> However, when you want a repository for nothing but friggin' enormous files ... yeah, SVN :P 
03:42:49 <Gregor> (friggin' enormous /binary/ files) 
03:43:53 -!- variable has quit (Quit: Daemon escaped from pentagram). 
03:45:00 -!- variable has joined. 
03:57:16 -!- poiuy_qwert has quit (Read error: Connection reset by peer). 
03:58:56 -!- poiuy_qwert has joined. 
03:59:06 -!- copumpkin has joined. 
04:01:41 <Sgeo>  ::=> is a WONDERFUL operator for something described as _bidirectional_ 
04:01:52 <Sgeo> </talking-about-things-he-doesn't-understand-yet> 
04:01:59 <Sgeo> http://coherence-lang.org/EmergingLangs.pdf 
04:15:57 <Sgeo> http://subtextual.org/subtext2.html I get a http://tvtropes.org/pmwiki/pmwiki.php/Main/TooIncompetentToOperateABlanket feel from the first few minutes 
04:21:10 <pikhq> SVN is best described as "CVS but better". 
04:21:31 <pikhq> Which isn't to say it's *good*. 
04:26:23 * Sgeo wants to see a good dataflow language 
04:30:23 <copumpkin> pikhq: isn't that their mission statement? 
04:30:31 <pikhq> copumpkin: Probably. 
04:54:46 <Sgeo> comex is in the Nimrod channel 
04:56:31 <Sgeo> "Whole program dead code elimination: Only used functions are included in the executable." 
04:57:36 <quintopia> what's wrong with trimming out functions that can't possibly be called? 
04:59:08 * pikhq would like to take this opportunity to mock Sony. 
04:59:18 <pikhq> Guess what encryption scheme the PSP uses? 
05:00:02 <pikhq> Private key encryption, with the key actually part of the CPU's mask. 
05:00:28 <pikhq> Now, normally this would be really *hard* to break, what with electron scanning microscopes being a rarity. 
05:00:41 <pikhq> However, they also stuck a PSP emulator into the PS3. 
05:00:55 <pikhq> And said emulator handles encryption just the same as the PSP. 
05:01:13 <pikhq> So now that the PS3 is hacked, the PSP is hacked and even *more* impossible to fix than the PS3. 
05:01:15 <coppro> oh man, iagoldbe would love this 
05:02:04 <pikhq> It's basically hacked to the same extent the Dreamcast is now. 
05:05:50 <Sgeo> "Case is insignificant in Nimrod and even underscores are ignored: This_is_an_identifier and ThisIsAnIdentifier are the same identifier. This feature enables you to use other people's code without bothering about a naming convention that conflicts with yours. It also frees you from remembering the exact spelling of an identifier (was it parseURL or parseUrl or parse_URL?)." 
05:06:12 <Sgeo> I want to quote what someone said in #nimrod but I haven't gotten a response 
05:07:43 <Sgeo> Indenting a comment wrong is a syntax error 
05:08:13 -!- poiuy_qwert has quit (Read error: Connection reset by peer). 
05:08:31 <Sgeo> There's a lot to laugh about, but I still want to be intrigued by this language 
05:08:45 <Sgeo> Supposed to compile nicely, has Python-like syntax, and Lisp-like macros 
05:10:03 <quintopia> wow, that is a terrible idea...i can understand disallowing variables that are too similar in that way by autocorrecting them to the declared form in the IDE...but making the parser not discriminate at all?  i hope that the IDE at least matches all identifiers no matter how you format it... 
05:10:29 <coppro> what is the name for the attack on a compiler where you backdoor it 
05:10:31 <coppro> perfect something attack? 
05:10:54 <Sgeo> <Sgeo> "Whole program dead code elimination: Only used functions are included in the executable." 
05:10:54 <Sgeo> <Sgeo> I assume that's not making the claim that every single function that will never be called is always removed 
05:10:54 <Sgeo> <manveru> Sgeo: it is 
05:11:01 <Sgeo> coppro, Trusting Trust 
05:12:34 <Sgeo> http://force7.de/nimrod/tut1.html 
05:15:13 <quintopia> sgeo: lawl.  i suspect it just means that every function that they can prove will never be called is removed,  in fact, i suspect it means that every function that doesn't actually get called anywhere in the code is removed as that is the laziest sort of heuristic to implement. 
05:18:19 <Sgeo> I think maybe I should NOT treat that person like an idiot 
05:18:55 <Sgeo> When it became clear what I was getting at, ... actually, he didn't know what I was getting at, because my examples weren't really clear violations 
05:20:45 <Sgeo> "Every variable, procedure, etc. needs to be declared before it can be used. (The reason for this is compilation efficiency.) " 
05:21:23 <Sgeo> Hey, it's better than the situation in Python! (Nimrod has forward declarations) 
05:21:37 <Sgeo> Although admittedly, Python has an excuse. It's not a compiled language 
05:22:07 <Sgeo> And yes, I know that C and C++ do the same thing. That doesn't make it good 
05:23:35 <Sgeo> "Thus it cannot represent an UTF-8 character, but a part of it. The reason for this is efficiency: for the overwhelming majority of use-cases, the resulting programs will still handle UTF-8 properly as UTF-8 was specially designed for this." 
05:27:48 <Sgeo> I want to like this language 
05:34:04 <Sgeo> I think I'm subconsciously taking the comment thing as a slur against the language, when really it's not 
05:37:53 <coppro> then attempt to use it 
05:38:11 <coppro> if you enjoy it and find it useful 
05:38:19 <Sgeo> elliott has limited bearing over whether or not I end up actually using a language 
05:38:27 <Sgeo> (The answer is, I usually don't) 
05:38:56 <Sgeo> He does have a significant bearing over whether I look at it longingly or turn away a bit too abruptly 
05:52:07 <Vorpal> <Herobrine> Vorpal: XChat help fail: " Usage: NOTICE <nick/channel> <message>, sends a notice. Notices are a type of message that should be auto reacted to" <-- XD 
05:53:14 <Sgeo> Mathnerd314's learning about Atomo? 
05:53:54 <Mathnerd314> Sgeo: no, arguing over some language details 
05:55:06 <Mathnerd314> I've been nitpicking ever since I found out about the language :p 
06:02:15 <quintopia> guys, opinion: which compiled language has the most pleasant syntax? 
06:05:41 <pikhq> So. Joule Unlimited claims to have created cheap, renewable hydrocarbons. Such as gasoline. 
06:06:02 <pikhq> Requiring little more than sunlight and CO₂ to function... 
06:06:45 <pikhq> By "cheap", I mean "approx. the equivalent of $30/barrel crude oil." 
06:08:11 <pikhq> (crude oil is currently trading at $90/barrel) 
06:10:18 <quintopia> unless they can harvest thr CO2 from the atmosphere to do it 
06:10:39 <pikhq> quintopia: Photosynthesis. 
06:10:59 <Sgeo> pikhq, surely at least H2O or something is needed, if this is real> 
06:11:10 <pikhq> Sgeo: Oh, sorry, *and water*. Duh. 
06:11:20 <quintopia> pikhq: as yet, photosynthesis is incredibly inefficient for market purposes 
06:11:31 -!- Wamanuz3 has quit (Ping timeout: 264 seconds). 
06:11:33 <pikhq> quintopia: Not when your bacteria are directly outputting fuel. 
06:11:53 <Ilari> Yeah, there's not that much sunlight coming to this planet (in terms of power density)... 
06:12:31 <Ilari> Okay, on the order of 1GW per square kilometre, but square kilometre is quite a big area... 
06:12:40 <pikhq> They are *claiming* that at full scale, they could get 15,000 gallons of diesel per acre per year. 
06:12:58 <Ilari> Or actually, the average power is something like 200MW... 
06:13:06 <pikhq> In lab, they are achieving 40% of that. 
06:13:33 <pikhq> Also, no need for the land to actually be agriculturally useful... 
06:13:45 <pikhq> Death Valley would work quite nicely. 
06:14:42 <Ilari> Land can be useful for growing food without being agriculturally useful... But there are lands that aren't useful in any way, yes... 
06:15:55 <Mathnerd314> hmm, they're making diesel - better get a diesel car 
06:16:06 <Ilari> Except that in death valley, there's not that much water available... 
06:16:18 <pikhq> Mathnerd314: Arbitrary hydrocarbons. 
06:16:46 <pikhq> Ilari: So you'd probably want somewhere with plenty of sunlight, plenty of water, and no real other use. 
06:17:05 <Mathnerd314> pikhq: "can produce renewable diesel fuel" 
06:18:02 <pikhq> Mathnerd314: They can also produce ethanol. 
06:18:49 <quintopia> what is the the energy content of 15000gal of biodiesel? 
06:18:52 <Mathnerd314> pikhq: ok... but what about gasoline, the main alternative to diesel? 
06:19:01 <Ilari> ... There aren't exactly many such places... 
06:19:32 <pikhq> Mathnerd314: Well, without much work a gasoline engine can burn ethanol. 
06:20:01 <Ilari> Well, lands that have been totally destroyed by agriculture could do... 
06:20:13 <pikhq> Mathnerd314: Pretty much all you need to do is replace hoses where fuel runs, as ethanol can dissolve them. 
06:20:47 <pikhq> Granted, a bit labor-intensive, but entirely practical. 
06:20:50 <Mathnerd314> this sounds much harder than just using diesel... 
06:21:23 <pikhq> Where you get a brand new car? 
06:22:21 <Ilari> Also with bioethanol, where are you going to get it in massive scale and with good EROEI? Algae could possibly do, but the technology is quite immature... 
06:22:28 <Mathnerd314> yeah, buying a well-made car is much easier than customizing an existing one 
06:24:06 -!- Wamanuz3 has joined. 
06:24:57 <pikhq> Ilari: They're claiming to have it *right now*... 
06:25:19 <Mathnerd314> pikhq: but it's only commercial in 2012 or later 
06:25:34 <quintopia> if the diesel they rpoduce has the energy content of most other biofuel 
06:25:42 <pikhq> Mathnerd314: Yes; I'm just saying they have the tech working and affordable right this instant. 
06:25:58 <quintopia> and they can produce 15000 gal per acre-year 
06:26:34 <quintopia> then less than 64 acres are needed to replace all the world's current fossil fuel usage 
06:27:19 <Ilari> That's something like 85 million barrels per DAY. 
06:28:11 <Ilari> The amount they are claiming is something like 360 barrels per year from one acre. 
06:30:19 <Ilari> So you would need about 350 000 km^2... 
06:30:39 <pikhq> BTW, they don't *seem* to be crackpots. Among other things, they've got George Church (Professor of Health Sciences and Technology at MIT and Harvard; invented genome sequencing; helped initiate the Human Genome Project) and Jim Collins (Professor of Biomedical Engineering at Boston University; essentially *invented* genetic engineering) on board... 
06:32:27 <quintopia> i found a mistake in my calculation 
06:33:16 <quintopia> i was assuming without realizing it that a gallon of biodiesel would last a whole year of continuous usage :P 
06:33:53 <quintopia> why do they give the energy content of fuel instead of the raw power available? 
06:35:21 <Ilari> Haha... "The results suggest there is a weak correlation, but better or larger studies are needed to really tell one way or the other."... "$415 million were spent on this study, there won't be another bigger study." 
06:36:41 <Sgeo> " It was supposed to be random in all direction, but Notch mixed up degrees with radians" 
06:36:55 <Sgeo> Of course he did 
06:37:38 <Sgeo> http://www.minecraftwiki.net/wiki/TNT 
06:40:37 <pikhq> Huh. It's possible to destroy bedrock. 
06:43:24 <pikhq> Bedrock has finite TNT resistance. 
06:43:31 <pikhq> *Large*, but finite. 
06:45:36 <Ilari> How can you concentrate enough explosive power to one spot? AFAIK, you can only drop about 250 TNT blocks to one spot... 
06:46:39 <Ilari> And TNT blocks only explode few blocks away, so you could maybe cause few thoursand TNT explosions to reach given spot at once... 
06:47:22 <pikhq> http://www.youtube.com/watch?v=VFZKtvHQSNY Well, this guy managed to. 
06:47:33 <pikhq> The ball o' TNT there is just above ground. 
06:47:38 <pikhq> The primed TNT just fell enough. 
06:51:22 <Ilari> That's tall... Note that clouds clip it... 
06:52:20 <pikhq> Yes, it's really big. 
06:52:33 <pikhq> The point is that it's *possible*, not that it's sane to destroy bedrock. :) 
06:54:57 <Sgeo> That's an earlier version of MC 
06:57:22 <Sgeo> Cover up the crater with lots of dirt except for a well-hidden shaft 
06:57:37 <Sgeo> Watch victim-players fall in 
06:58:22 <coppro> The One MC: http://farm2.static.flickr.com/1260/593523075_33d187df39.jpg 
06:59:06 -!- MigoMipo has joined. 
07:01:20 <copumpkin> that huge ball o' TNT looks awesome 
07:01:38 <Ilari> The material surrounding the central pool is bedrock? 
07:03:14 <Ilari> Eh, it is not water... 
07:06:26 <Ilari> Then fill that hole with TNT and ignite it? :-) 
07:08:10 -!- FireFly has joined. 
07:09:50 -!- Mathnerd314 has quit (Ping timeout: 240 seconds). 
07:22:52 -!- jix has quit (Read error: Connection reset by peer). 
07:23:09 -!- jix has joined. 
07:27:39 <Sgeo> The creator of a language should know whether non-macros are allowed insde macros 
07:30:44 <Ilari> Back in 60's people sure were more optimistic about spaceflight: Calling for manned mars flight by end of the century... Now there's no idea how long that would take (most probably never given present conditions). 
07:47:46 -!- calamari has quit (Ping timeout: 265 seconds). 
07:55:10 <Ilari> APNIC allocations/delegations (in latest report): 2x/8, 1x/9, 46x/10, 43x/11, 100x/12, 201x/13, 415x/14, 577x/15, 1588x/16, 630x/17, 874x/18, 1613x/19, 1744x/20, 1503x/21, 764x/22, 72x/23, 172x/24. 
07:59:59 -!- clog has quit (ended). 
08:00:00 -!- clog has joined. 
08:00:39 -!- calamari has joined. 
08:01:13 -!- calamari has quit (Client Quit). 
08:14:12 -!- sftp has quit (Ping timeout: 240 seconds). 
08:20:02 <Ilari> For total of 757 220 352 IPs (45.13x/8). Logaritmic allocation size /2.50. 
08:21:42 <Ilari> Logaritmic size of the entiere IPv4 global unicast space is about /0.21 
08:59:19 <fizzie> What about that 240/4 set, is no-one going to use that thing ever? I mean, yes, yes, "reserved for future use", but there's not going to be any call for that in a totally IPv6 world. :p 
09:08:08 <Ilari> Nobody is ever going to use them... 
09:09:35 <Ilari> That means 588 316 672 addresses are not usable for global unicast. 
09:13:35 <Ilari> BTW: Some addresses are pretty much unusable due to OS bug... 
09:15:22 <Ilari> IIRC, there are around 2M of such addresses... 
09:16:55 <Ilari> Like assigning IP address of e.g. 195.221.52.255 to Windows box isn't going to go very well (at least earlier versions of Windows couldn't have that address). 
09:34:40 -!- sftp has joined. 
09:36:43 -!- MigoMipo has quit (Read error: Connection reset by peer). 
09:52:52 -!- oerjan has joined. 
10:44:06 -!- ais523 has joined. 
10:44:56 -!- copumpkin has quit (Ping timeout: 240 seconds). 
10:45:22 -!- copumpkin has joined. 
11:20:54 -!- cheater00 has quit (Ping timeout: 240 seconds). 
11:21:05 -!- cheater- has joined. 
11:38:12 -!- Tritonio has joined. 
12:06:12 -!- FireFly has quit (Quit: swatted to death). 
12:57:27 -!- azaq23 has joined. 
13:11:28 -!- asiekierka_ has joined. 
14:02:49 -!- asiekierka_ has quit (Ping timeout: 255 seconds). 
14:03:28 -!- oerjan has quit (*.net *.split). 
14:03:37 -!- Ilari_antrcomp has quit (*.net *.split). 
14:03:43 -!- fizzie has quit (*.net *.split). 
14:03:45 -!- Deewiant has quit (*.net *.split). 
14:03:49 -!- fungot has quit (*.net *.split). 
14:03:52 -!- fizzie has joined. 
14:03:52 -!- Deewiant has joined. 
14:04:12 -!- ais523 has quit (Remote host closed the connection). 
14:04:23 -!- ais523 has joined. 
14:04:36 -!- oerjan has joined. 
14:04:42 -!- Ilari_antrcomp has joined. 
14:14:02 -!- FireFly has joined. 
14:15:17 -!- augur_ has joined. 
14:15:41 -!- cheater- has quit (Ping timeout: 240 seconds). 
14:16:04 -!- augur has quit (Ping timeout: 240 seconds). 
14:16:44 -!- cheater- has joined. 
14:28:11 -!- elliott has joined. 
14:28:11 -!- elliott has quit (Changing host). 
14:28:11 -!- elliott has joined. 
14:28:11 -!- myndzi has quit (Read error: Connection reset by peer). 
14:28:16 -!- myndzi has joined. 
14:28:56 -!- elliott has changed nick to 17SAARPFQ. 
14:28:56 -!- elliott has joined. 
14:28:57 -!- elliott has quit (Client Quit). 
14:29:12 <Gregor> Debian Software Freedom for Debian Goodness 
14:29:17 <17SAARPFQ> -NickServ- elliott!~elliott@91.105.75.160 has just authenticated as you (elliott) * You are now known as 17SAARPFQ 
14:29:17 <17SAARPFQ> * elliott (~elliott@91.105.75.160) has joined #esoteric-minecraft 
14:29:17 <17SAARPFQ> <elliott> Yay, my logbot stayed up. 
14:29:21 <17SAARPFQ> <17SAARPFQ> What... the... fuck... 
14:29:24 <17SAARPFQ> I said those things *when I first joined*. 
14:29:31 <17SAARPFQ> Neither clog nor my logbot saw them. 
14:29:40 <17SAARPFQ> I... have no fucking clue what just happened. 
14:29:44 <17SAARPFQ> oerjan: no, that was in -minecraft 
14:29:47 -!- 17SAARPFQ has changed nick to elliott. 
14:30:01 -!- poiuy_qwert has joined. 
14:30:18 <ais523> elliott: anonymity reference? 
14:30:30 <ais523> Tritonio: we split the channel into minecraft and non-minecraft discussion 
14:30:44 <ais523> because although minecraft is actually a valid esolang, people normally weren't discussing it as one 
14:30:46 <Tritonio> minecraft discussions on esoteric??? sinc when? 
14:30:58 <ais523> Tritonio: for weeks now 
14:31:07 <Ilari> IRC server force-renicking? 
14:31:10 <Tritonio> i suppose redstone is what makes it a language? 
14:31:50 <elliott> ais523: no, see my lines I pasted 
14:31:53 -!- sftp has quit (Remote host closed the connection). 
14:31:57 <Ilari> Also, there are at least 1 482 CAs trusted by Firefox / Windows 7... Nifty. 
14:32:07 <ais523> *** elliott is now known as 17SAARPFQ. 
14:32:10 <elliott> we've just been talking about it as players :P 
14:32:16 <elliott> <17SAARPFQ> -NickServ- elliott!~elliott@91.105.75.160 has just authenticated as you (elliott) * You are now known as 17SAARPFQ 
14:32:16 <elliott> <17SAARPFQ> * elliott (~elliott@91.105.75.160) has joined #esoteric-minecraft 
14:32:16 <elliott> <17SAARPFQ> <elliott> Yay, my logbot stayed up. 
14:32:16 <elliott> <17SAARPFQ> <elliott> Or maybe not. 
14:32:16 <elliott> <17SAARPFQ> <elliott> Erm... 
14:32:16 <ais523> forced renicking is normally to guest-number, isn't it? 
14:32:18 <elliott> <17SAARPFQ> * elliott has quit (Client Quit) 
14:32:20 <elliott> <17SAARPFQ> <17SAARPFQ> What... the... fuck... 
14:32:22 -!- sftp has joined. 
14:32:22 <elliott> <17SAARPFQ> I said those things *when I first joined*. 
14:32:24 <elliott> <17SAARPFQ> Neither clog nor my logbot saw them. 
14:32:25 <ais523> yes, you pasted it already 
14:32:30 <elliott> ais523: yes, but it makes no sense! 
14:33:03 <elliott> ais523: so basically, I joined, said things, nothing else saw them, not even me connecting; reconnected, now things could see me, got booted off my nick, saw my own ghost connect, said the lines I originally did, and then quit 
14:33:06 -!- ais523_ has joined. 
14:33:34 <ais523> elliott: that makes no sense 
14:33:40 <elliott> ais523: THAT'S WHAT I SAID 
14:33:59 <elliott> ais523: I suspect some Freenode system glitch, maybe to do with server-to-server communication. 
14:34:03 -!- ais523_ has quit (Client Quit). 
14:34:09 <oerjan> elliott: i _did_ see <elliott> clog is down?   (and so did clog :D) 
14:34:20 <elliott> oerjan: yep, that's when everything started working 
14:34:35 <ais523> hmm, it seems that the current nickserv actually recommends using /ns ghost in order to get rid of someone impersonating you 
14:34:40 <ais523> most nickservs have a separate command for that 
14:35:58 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 
14:36:10 <elliott> ais523: what do you call a person who, after writing a logbot, realises they need a way to serve the logs, and decides to write their own HTTP server, handling the protocol themselves, with a built-in log formatter, in Ruby? 
14:36:41 <ais523> hmm, Martin would work well 
14:36:53 * elliott is now known as MartinGeorge 
14:37:15 <elliott> ais523: at least I didn't reinvent the wheel in log storage, and stole loggic's format instead 
14:37:28 <elliott> except that I omitted the date from the timestamps as i have a file per date 
14:39:25 <ais523> loggic stole its format from the IRC standard 
14:39:31 <elliott> ais523: nuh uh, it added dates 
14:39:46 <ais523> that was just date(1), I think 
14:39:46 <oerjan> elliott: did you see anyone else while this weird stuff was happening?  maybe you just accidentally joined a split server and got renicked when it unsplit again 
14:39:59 <ais523> aha, that might make sense 
14:40:09 <ais523> elliott on both sides of the split server, and the real elliott was newer than the logbot 
14:40:43 <elliott> hmm, looks like i don't put "stopped logging" messages in the log properly 
14:40:52 <elliott> also, I've forgotten to set the encoding to utf-8 
14:41:51 <ais523> original encoding would make sense for actual storage 
14:45:34 <elliott> hmm, i want to recreate my log formatter for clog, now 
14:45:43 <elliott> http://208.78.103.223/2011-01-18 is just so much easier to read than the plain text files 
14:45:50 <elliott> although it could do with some nicer wrapping behaviour 
14:47:10 <elliott> 21:37:50 <coppro> Sgeo: /ignore elliott 
14:47:10 <elliott> 21:37:53 <coppro> then attempt to use it 
14:47:10 <elliott> 21:38:11 <coppro> if you enjoy it and find it useful 
14:47:10 <elliott> 21:38:20 <coppro> then go for it 
14:47:10 <elliott> yes I'm an evil demon sent from hell that kicks puppies and eats kittens, interestingly though for the past N days the only things you have said in channel have been "WAAH MINECRAFT TALK :(" and "LOL ELLIOTT SUXX0Rz" 
14:48:14 <ais523> elliott: I think you've annoyed most of the language fanboys in the world by using non-Rails Ruby to serve a website 
14:48:20 <elliott> 20:54:46 <Sgeo> comex is in the Nimrod channel 
14:48:23 <elliott> Sgeo: apparently he uses it 
14:48:44 <elliott> ais523: oh, there are plenty of silly ruby webframeworks, i just went past rejecting web frameworks and rejected even using the http server library that ships with ruby 
14:49:11 <ais523> elliott: I was making a reference to Rails fanboys in particular, who are some of the more obnoxious language fanboys 
14:49:17 <elliott> ais523: here's a (slightly old but essentially the same) version of the http server code to demonstrate just how ugly it is: http://sprunge.us/KHVi 
14:49:21 <elliott> and they're probably fuming 
14:49:49 <elliott> ^ you can make requests to this http server with "<space>/foo" 
14:49:53 <elliott> ^ you can make requests to this http server with "<space>/foo<newline>" 
14:50:13 <ais523> hmm, I've just had an insane idea 
14:50:31 <ais523> you know how many IRC clients color nicks, or color lines by nick 
14:50:38 <ais523> so that different people look different? 
14:50:53 <ais523> that runs into problems due to colors clashing, or else not staying consistent from use to use 
14:51:03 <elliott> 21:10:54 <Sgeo> <Sgeo> "Whole program dead code elimination: Only used functions are included in the executable." 
14:51:04 <elliott> 21:10:54 <Sgeo> <Sgeo> I assume that's not making the claim that every single function that will never be called is always removed 
14:51:04 <elliott> 21:10:54 <Sgeo> <Sgeo> Is it? 
14:51:04 <elliott> 21:10:54 <Sgeo> <manveru> Sgeo: it is 
14:51:07 <elliott> Sgeo: What on earth is wrong with that... 
14:51:09 <ais523> so the idea is: you color logs by nick, but very gradually change the colors from one color to another 
14:51:26 <ais523> so that people get the same color as they had when they left when rejoining, but it now magically doesn't clash with anything else 
14:51:34 <elliott> Sgeo: if the language doesn't have eval you can do that 
14:51:44 <elliott> manveru is a rubyist i think...or at least used to be 
14:52:08 <ais523> elliott: if it doesn't have eval, and doesn't have construction of function pointers at runtime 
14:52:15 <elliott> Sgeo: indeed, manveru is the guy behind ramaze (the _original_ Yet Another Ruby Web Framework) 
14:52:25 <ais523> although calling dead code via constructing the function pointer manually is dubious at best 
14:52:32 -!- Tritonio has quit (Quit: Leaving). 
14:52:34 <ais523> and I suppose would work just as well to call dead code inside a conditional 
14:52:47 <elliott> 21:23:35 <Sgeo> "Thus it cannot represent an UTF-8 character, but a part of it. The reason for this is efficiency: for the overwhelming majority of use-cases, the resulting programs will still handle UTF-8 properly as UTF-8 was specially designed for this." 
14:52:47 <elliott> you've developed a pattern of saying "fuck you" to any feature you don't like 
14:52:49 <ais523> I've lost count of the number of times I've done if (0) { label: ... } in C 
14:52:56 <Ilari> (unless dead code elimination eliminates that). 
14:53:00 <elliott> pretty sure you should be nicer to language designers unless they're really terrible 
14:53:11 <ais523> Ilari: we're discussing absurd failure modes of dead code elimination 
14:53:58 <ais523> elliott: bug: /me (CTCP ACTION) leaves the trailing \x01 in 
14:54:01 <Ilari> If linker is doing dead function elimination, it better be sure that the functions really are dead... 
14:54:09 <ais523> is your logger still running, btw? 
14:54:29 <ais523> wow, clog actually replied 
14:54:43 <elliott> ais523: i'll fix that bug, thankfully it's a bug in the http server 
14:54:47 <elliott> an advantage of logging raw 
14:54:58 <ais523> [14:59] [CTCP] Sending CTCP-TEST request to #esoteric. 
14:55:00 <ais523> [14:59] [CTCP] Received CTCP-ERRMSG reply from clog: unknown CTCP: TEST. 
14:55:17 <ais523> bah, clog doesn't reply to ctcp source 
14:55:34 <ais523> [15:00] [CTCP] Sending CTCP-ERRMSG request to clog. 
14:55:36 <ais523> [15:00] [CTCP] Received CTCP-ERRMSG reply from clog: unknown CTCP: ERRMSG. 
14:55:45 <ais523> elliott: but is it on an FTP server? 
14:55:59 <ais523> CTCP SOURCE is specifically specified to specify an FTP server 
14:56:02 <elliott> maybe i'll donate the copyrights to the FSF to become a GNU project 
14:56:10 <ais523> umm, that sentence wasn't even deliberate 
14:56:21 <elliott> (apparently, you automatically become a GNU project by doing that) 
14:56:32 <ais523> `addquote [CTCP] Received CTCP-ERRMSG reply from clog: unknown CTCP: ERRMSG. 
14:56:48 <HackEgo> 269) [CTCP] Received CTCP-ERRMSG reply from clog: unknown CTCP: ERRMSG. 
14:56:55 <HackEgo> 91) <apollo> Actually, he still looks like he'd rather eat her than have sex with her. 
14:57:07 <elliott> I don't remember that quote existing 
14:57:10 <HackEgo> 112) <songhead95> think of all the starving kids in china who don't have rotting sea life to eat 
14:57:19 <HackEgo> 10) <reddit user "othermatt"> So what you're saying is that I shouldn't lick my iPhone but instead I should rub it on my eyes first and then lick my eyeballs? 
14:57:27 <ais523> that's an entirely different QDB! 
14:57:35 <elliott> we can break the rules as much as we want! 
14:57:42 <elliott> there's already Sine quotes in there, so who cares :P 
14:57:51 <ais523> oh, what happened to the old one? 
14:57:58 <elliott> ais523: an entirely different qdb? 
14:58:04 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.28226 
14:58:12 <elliott> ais523: I /did/ trim a lot of the rubbish ones, but that was ages ago now 
14:58:15 <elliott> and most of them are still there 
14:58:40 <elliott> ais523: incidentally, if you can exploit the http server, you'll get root on rutian, since i cba to drop privileges after binding to port 80 
14:59:17 <ais523> it seems a little unlikely there'd be an arbitrary code exploit in a Ruby program of that length 
14:59:23 <ais523> also, don't I have root on rutian anyway, in theory? 
14:59:31 <ais523> or is it a different rutian? 
14:59:49 <elliott> ais523: well, I wiped it to run updog before, so "no", but yes, you could get it trivially 
15:00:10 <ais523> hmm, is updog like dupdog? 
15:00:22 <quintopia> ohey.  where did updog go and what did it do while it was here? 
15:00:34 <elliott> I took it down, and it replied to messages containing updog with "What's updog?" 
15:00:57 <elliott> and now, I must design the language to trap Sgeo forever so that he shall never go looking for another language again 
15:01:02 <elliott> time to consult the logs as to what I need to put in it 
15:01:02 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 
15:01:03 <ais523> what's the logbot called again? 
15:01:14 <ais523> the one you just wrote, I mean? 
15:01:33 <elliott> ais523: Herobrine, after http://www.minecraftwiki.net/images/6/68/1283223082465.jpg (warning: image of mostly text) 
15:02:00 <ais523> elliott: I suppose that's better than accidentally trying to watch a video in xterm 
15:02:42 <ais523> I wanted vlc, so I used command-not-found to install it 
15:02:51 <ais523> and it seems there's a command-line version of vlc that doesn't do graphics 
15:03:01 <ais523> now, I had aalib installed for a different reason 
15:03:04 <elliott> mplayer once played a video with -- yep 
15:03:08 <elliott> except i think it was libcaca 
15:03:19 <elliott> if only I had a 1920x1080 terminal 
15:03:25 <elliott> ais523: probably libcaca, then 
15:03:35 <ais523> probably was color actually, I doubt this screen was manufactured in the UK 
15:03:55 <elliott> "I'm sorry, I can't view your colour photograph, I only have an American monitor" 
15:04:53 <ais523> I need to try something along those lines on someone who's being really obtusely stupid at some point 
15:05:12 <elliott> now, I need to get into the language-creating ZONE 
15:05:22 <elliott> let's see... looking at my secret plans 
15:05:55 <elliott> prototype-based homoiconic immutable everything-is-a-map symbolic URI-based hash-based language with complicated module system and an Active Worlds binding 
15:06:06 <elliott> I think that's all I need to trap Sgeo forever 
15:06:26 <ais523> for some reason, I mentally interpreted "homoiconic" as "only uses one character" 
15:06:37 <ais523> but I doubt that would help 
15:06:45 <ais523> also, what specifically is immutable? 
15:08:11 <oerjan> <ais523> wow, clog actually replied <-- it replies to unknown ctcps but doesn't actually log them iirc 
15:08:39 <Ilari> Hmm... "See here, I began my practice as a cardiologist in 1921 and never saw an Myocardial Infarction (heart attack) patient until 1928."... Heart attacks were pretty rare back then... 
15:09:15 <elliott> 22:40:37 <pikhq> Huh. It's possible to destroy bedrock. 
15:09:15 <elliott> 22:43:24 <pikhq> Bedrock has finite TNT resistance. 
15:09:16 <elliott> 22:43:31 <pikhq> *Large*, but finite. 
15:09:23 <elliott> pikhq: Impossible, you can't get a big enough explosion in one place. 
15:09:39 <elliott> pikhq: ...also, #esoteric-minecraft 
15:10:45 <Ilari> I saw video where huge amount of TNT blew a hole in the minecraft _world_ floor. 
15:10:51 <ais523> aha, great discussion in thedailywtf sidebar 
15:10:58 <ais523> they're busy talking about security holes in the .java format 
15:11:13 <ais523> (not in Java programs themeselves; rather, malicious .java files that do nasty things if opened in an IDE) 
15:11:29 <ais523> who cares about malicious binaries when you can have malicious source? 
15:11:42 <elliott> Ilari: this seems to be that video 
15:13:50 <ais523> hmm, massive virtual explosions are more interesting than malicious source files :( 
15:13:59 -!- cheater- has quit (Ping timeout: 240 seconds). 
15:14:23 <oerjan> <quintopia> ohey.  where did updog go and what did it do while it was here? <-- we also suspect it of doing some secret message passing, thereby annoying elliott :D 
15:14:37 <elliott> ais523: I was waiting for details 
15:14:57 <elliott> but yes, explosions are pretty interesting 
15:15:09 <quintopia> ais523: what's the name of the thread? 
15:15:24 -!- cheater- has joined. 
15:15:42 <ais523> the idea is, most Swing controls distinguish plaintext from html by looking for <html> at the start 
15:15:59 <ais523> so you can randomly put bold or italics into your labels, or whatever, just by changing your internationalisation files 
15:16:25 <ais523> this basically lets you XSRF arbitrary form controls with user-controllable text 
15:16:42 <ais523> now, if an IDE is displaying, say, a list of methods in a class 
15:17:12 <ais523> then you can put HTML in their documentation, and use the <img> element to get it to GET arbitrary URLs 
15:17:42 <ais523> the thread confirmed that it works on both Eclipse and NetBeans 
15:17:50 <elliott> ais523: i'm designing an ostensible esolang, for the sake of ontopicness you have to help 
15:17:57 <elliott> also, Eclipse doesn't use Swing... 
15:18:08 <ais523> indeed, but apparently what it does use has the same feature 
15:18:16 <Ilari> Security gets really fun when you can have maliscous programs (not just maliscous input to honest programs). 
15:18:31 <ais523> Ilari: this is malicious input to honest programs, though 
15:18:41 <ais523> the malicious input happens to be program source code 
15:19:01 <oerjan> <elliott> I think that's all I need to trap Sgeo forever <-- suggested name: goldbars 
15:19:05 <ais523> it's like... imagine you had a compiler that was setuid for some reason, and there's a program you could feed it as input in order to get local root escalation 
15:19:09 <Ilari> Reminds me when I found some security holes in one runtime (could be exploited by program doing some insane things). 
15:19:38 <ais523> Ilari: generally if a security hole exploit isn't insane, it's found quickly by chance 
15:19:47 <ais523> so most of the ones that aren't found for a while are 
15:20:46 <Ilari> Like dereferencing suitable indexes in array (and those indexes were huge). 
15:21:29 <oerjan> <Ilari> I saw video where huge amount of TNT blew a hole in the minecraft _world_ floor. <-- they should stick some _really_ nasty monsters under there :D 
15:21:39 <elliott> ais523: hmm, you just passed up an opportunity to get the channel on topic 
15:21:53 <elliott> oerjan: that may be unwise; map areas generated before halloween have holes dotted about the place in it :D 
15:22:09 <ais523> elliott: I'm willing to help, just not sure how 
15:23:11 <elliott> well, a lot of it is similar enough to http://enchiladacode.nl/ and http://will.thimbleby.net/misc/ which Sgeo responded positively to (especially MISC), which is where most of the feature list comes from, and so I'll probably end up stealing a bit of them 
15:23:14 <Ilari> Like a monster that spits lit TNT blocks? :-> 
15:23:28 <elliott> Ilari: That's just a slightly scarier creeper :P 
15:23:41 <elliott> i kind of expect sgeo to completely change what he likes in a language before i manage to get this done, but who cares, it's for science 
15:25:05 <Ilari> And of course has some completely ridiculous amount of HP... 
15:25:48 <quintopia> elliott:  i know you don't have the attention span, but if you could implement such a language...and then specifically disinclude a handful of things that you know he'd want to do as even being /possible/ to do, while making the rest such a joy to use that he gets hooked on it anyway, then you would have the best language evar. 
15:26:40 <quintopia> Ilari: no, the FSM should float below the level, and stick his noodly appendages up through the holes to grab anything moving 
15:26:41 <elliott> quintopia: maybe i'll make a language that is SO GOOD, but only usable to people not at SUNY Farmingdale 
15:26:58 <quintopia> elliott: that would just be doing him a favor :P 
15:27:28 <Ilari> First reaction to monster like that (spits TNT blocks) would be RUN! 
15:27:54 <ais523> it should spit blocks that after a few seconds either split into two blocks, or become lit TNT blocks, at random 
15:28:06 <quintopia> second reaction: oh.  wait.  it'll kill itself eventually. *sit and wait* 
15:28:25 <ais523> with the chance chosen such that it has a nonzero chance (around 50:50) that a single such block lasts indefinitely and eventually destroys the world 
15:28:54 <Ilari> And of course it flies so high that TNT blasts won't damage it... 
15:29:23 <quintopia> also the creature that does this should be hydra like so that killing it produces two of the original 
15:29:36 <quintopia> and it should have very low HP so it kills itself with its own TNT all the time 
15:30:01 <elliott> dear god you people, #esoteric-minecraft :-) 
15:30:07 <elliott> or coppro will literally explode 
15:30:20 <ais523> elliott: causing him to become two coppros? 
15:31:21 <elliott> okay. in the zone. IN THE ZONE! ais523: can i direct my stream-of-thought about the language to you? monologuing feels so strange 
15:31:25 <elliott> you can turn off ping notifications if you want 
15:31:49 <ais523> if you like I'll even make random comments so that you don't think you're monologuing 
15:32:59 <elliott> ais523: Obviously everything should be a map (and maps are ordered? Like Enchilada? Possibly, possibly not, MISC doesn't have them), and integers should be done similar to Enchilada, perhaps, everything should be a map, strings will be represented as just lists of integers, functions are probably just maps with symbolic elements so that they're kind of like a lazy infinite map? that way map access and function calls are the same i.e. a function is  
15:32:59 <elliott>  from input to output and if undefined values look up as nil which will be the empty map [], then every function is total too 
15:33:18 <ais523> "ordered map" sounds worryingly like PHP 
15:33:28 <elliott> PHP doesn't have ordered maps. 
15:33:33 <elliott> it just does arrays as index -> value 
15:33:38 <elliott> and that's hardly the worst thing about PHP by far 
15:33:39 <ais523> it has arrays, which are key/value but ordered 
15:34:02 <elliott> ais523: Enchilada has that funky thing where both keys and values are optional so it represents 0 as [], 1 as [=], 2 as [=;=] 3 as [=;=;=] etc. 
15:34:08 <ais523> then why is it possible to sort them whilst keeping the keys and values the same? 
15:34:13 <elliott> I should possibly steal that except that it seems a bit strange to be able to omit both keys and values, 
15:34:43 <elliott> ...so then the choice is possibly between Enchilada style lists -- [=1;=2;=3] (same as [1;2;3]), no keys, but it's ordered and you can have duplicates OR 
15:34:52 <elliott> MISC style [0:1 1:2 2:3] i.e. index:value 
15:34:56 <elliott> ais523: good point I forgot about that 
15:35:05 <ais523> a PHP array is like [1="one";2="two";3="three"] IIRC 
15:35:08 <ais523> or maybe it starts at 0 
15:35:15 <ais523> I don't know, it's PHP, it's unlikely to be consistent 
15:35:17 <elliott> MISC maps are unordered though 
15:35:24 <elliott> ...and so really this comes down to the choice of the basic structure again 
15:35:40 <elliott> Enchilada maps are ordered trees of (key,value) pairs where both key and value are optional 
15:35:41 <ais523> also, why is Google down? 
15:35:43 <elliott> MISC maps are just associative maps 
15:36:04 <elliott> ais523: it's not: http://www.downforeveryoneorjustme.com/google.co.uk 
15:36:16 <ais523> <php.net> An array in PHP is actually an ordered map 
15:36:26 <elliott> Oh yeah, Enchilada sequences also have a sign, but that's just crazy. 
15:36:29 <elliott> It's how they do negative numbers. 
15:36:30 <ais523> Yahoo!'s second result was the one I wanted, anyway 
15:36:41 <ais523> elliott: heh, I have no idea how to do negative numbers in Underlambda 
15:36:53 <elliott> ais523: with Enchilada, [] and _[] are distinct, for every sequence [] 
15:36:58 <ais523> I think I might just assume they don't exist, and have a library that does sign/magnitude, much like you might have a library to do floats 
15:37:00 <elliott> ais523: and every operation works on both positive and negatives 
15:37:25 <elliott> ais523: for operations that are arithmetic generalised to sequences, they work properly on negatives 
15:37:31 <elliott> others use the sign to overload their behaviour 
15:37:46 <elliott> Sgeo: Which do you prefer, prefix or postfix syntax? 
15:38:11 <ais523> wow, this PHP documentation is full of special cases that don't make sense 
15:39:00 <ais523> appending to an array picks the index after the previous last index for the next element, except if it's negative where what happens depends on what version of PHP you use 
15:39:23 <ais523> also, there are a lot of statements saying things like "you cannot do X, if you do it causes a warning" 
15:39:23 <elliott> ais523: Oh I forgot an extra-important feature, SANDBOXING, because Sgeo loves that, did I mention hotswapping too? Because hotswapping 
15:39:40 <ais523> you just give your language few capabilities 
15:39:50 <elliott> ais523: Naw, I'll do it PROPERLY. 
15:40:27 <ais523> As mentioned above, if no key is specified, the maximum of the existing integer indices is taken, and the new key will be that maximum value plus 1. If no integer indices exist yet, the key will be 0 (zero). 
15:40:28 <ais523> Note that the maximum integer key used for this need not currently exist in the array. It need only have existed in the array at some time since the last time the array was re-indexed. The following example illustrates: 
15:40:53 <ais523> really, worst array object ever 
15:41:04 <ais523> they should have just made it work like JS's; that one is also slightly insane, but not nearly that bad 
15:41:13 <elliott> when I used PHP, I /didn't understand/ the concept of a library 
15:41:42 <ais523> oh, I've been having various ideas for ( 
15:42:13 <ais523> it's a language that's superficially similar to C, but with all the semantics subtly different 
15:42:40 <elliott> ais523: bonus points if you can make it obey the C standard to the letter 
15:42:47 <ais523> such that they're a) more useful in practice, although further from the system, but b) cause programs to break randomly if their programmer tried to slip into C habits 
15:43:06 <ais523> nah, that doesn't let me do fun things by making the language call-by-name 
15:43:13 <elliott> that's more useful in practice? :D 
15:43:39 <ais523> as it's more general, and can trivially simulate by-reference or by-value, which are the most commonly wanted conventions 
15:43:52 <elliott> ais523: they're all equivalent 
15:43:59 <elliott> oh, wait, you have mutability? how quaint! 
15:44:30 -!- copumpkin has joined. 
15:44:46 <ais523> elliott: not quite: with immutability but with side effects, by-name and by-value are different 
15:45:09 <elliott> ais523: the world is state, immutability precludes changing it 
15:45:10 <ais523> as by-name doesn't force the evaluation of an argument unless it's actually used 
15:45:22 <elliott> ais523: in the same way that the IO monad isn't purely functional 
15:45:42 <elliott> wow, /me swears we've had that exact same exchange before, while I was in the exact same place on the minecraft server 
15:45:43 <ais523> I was referring to languages like idealised algol in which you couldn't directly reference anything not immutable 
15:46:01 <ais523> but you could have, say, pointers to mutable memory (which cannot be accessed except via the pointer) 
15:46:13 <ais523> OCaml works like that too 
15:46:21 <ais523> as do, I expect, other MLs 
15:47:24 <quintopia> elliott: did you get deja vu on the previous occasion also? 
15:47:31 <elliott> ais523: but not Amethyst! (Sgeo's language needs a name, if it turns out he doesn't like amethyst I'll rename it) 
15:47:34 <ais523> gah, why on earth does this page about arrays have a discussion on why you should quote constant strings that you're using as array keys, but not the names of variables when you want to use their values as array keys? 
15:47:45 <ais523> elliott: I thought you were calling it goldbars? 
15:47:55 <elliott> ais523: that was oerjan's suggestion :P 
15:48:00 <elliott> ais523: but, yes, sethinitely. 
15:48:32 <ais523> still, why on earth would official documentation need to explain the distinction between a variable and a string in the definition of an entirely unrelated concept 
15:48:46 <ais523> not to mention, at all, except once to explain the syntax for specifying a string? 
15:49:23 <elliott> ais523: in /Amethyst/, strings are just maps! 
15:49:53 <ais523> haha, that's similar to the view of the world that I like in esolangs 
15:50:15 <elliott> ais523: this is disturbingly close to Ursala actually :) 
15:50:33 <ais523> newtype t = ([t] -> [t]) 
15:50:39 <ais523> is basically the Underlambda view of the world 
15:50:54 <elliott> ais523: *newtype T = T ([T] -> [T]) 
15:51:03 <ais523> haven't used Haskell in a while 
15:51:07 <elliott> ais523: surely it also has a nil element? 
15:51:16 <ais523> err, no, it doesn't need one 
15:51:54 <ais523> the second is a much better choice for a nil the way underlambda works 
15:51:57 <elliott> http://rosettacode.org/wiki/Category:Ursala i blame ais523 
15:51:58 <ais523> that actually represents the number 1 
15:52:07 <ais523> elliott: I didn't write that! 
15:52:15 <elliott> ais523: you probably made all those examples! 
15:52:21 <ais523> Ursala's fun to laugh at at a distance 
15:52:27 <ais523> but I wouldn't want to actually /write/ in it 
15:52:57 <elliott> ais523: sometimes, I worry that languages like Ursala are actually more brilliant than all of us ... then I wake up the next day, sober 
15:53:17 <elliott> http://rosettacode.org/wiki/Y_combinator#Ursala 
15:53:31 <ais523> I don't think there's anything particularly insane about the basic concepts, it's just the execution is just wrong in so many ways 
15:54:00 <ais523> oh right, I forgot that ursala used double-quotes for lambda variables 
15:54:09 <ais523> I forget what it uses for strings 
15:54:15 <elliott> hmm, any objections to me putting Herobrine in here? 
15:54:21 <elliott> the log interface is nicer than clog's... 
15:54:40 <ais523> I have no objection, multiple logbots is a good thing 
15:54:40 <elliott> I'll even convert the clog logs into raw IRC format if I can 
15:54:44 <ais523> ofc we should have clog logging as well 
15:54:54 <elliott> since there has been no formatted interface to the logs in a long time 
15:55:05 <elliott> remember going to ircbrowse.com? me too 
15:55:26 <ais523> why does Ursala let you hot-swap fixed-point implementations for use in compiling recursive functions? 
15:55:36 <ais523> it took me a while to realise that the operation even made sense 
15:55:55 <ais523> it does at a logical level, in that there's no great implementation impediment to that being possible 
15:56:01 <ais523> but I still can't figure out why you'd want to do it 
15:56:37 <ais523> hmm, TIL that Ursala "x". means the same thing as Haskell \x -> 
15:57:11 <ais523> "The fixed point combinator defined above is theoretically correct but inefficient and limited to first order functions, whereas the standard distribution includes a library (sol) providing a hierarchy of fixed point combinators suitable for production use and with higher order functions. A more efficient alternative implementation of my_fix would be general_function_fixer 0 (with 0 signifying the lowest order of fixed point combinators), or if that' 
15:57:13 <ais523> s too easy, then by this definition." 
15:57:33 <ais523> oh, I see, various fixed-point combinators only work on a subset of functions 
15:57:54 <ais523> which worryingly implies that Ursala functions don't work quite the same way as mathematical ones 
15:58:01 <elliott> ais523: oh, that actually makes sense 
15:58:29 <elliott> ais523: it's talking about _all_ fixed points, not just the fix(f) := \x. f(fix(f))(x) definition 
15:58:52 <elliott> ais523: e.g., fix(/2) == 0, but the above fix wouldn't find it, obviously 
15:59:27 <oerjan> http://taw.chaosforge.org/amethyst/ 
15:59:48 <ais523> meh, just pick a name that's already in use and use that 
16:00:03 -!- MigoMipo has joined. 
16:00:07 <elliott> I'll stick with Amethyst for now 
16:00:21 <ais523> hmm, the PowerShell fixedpoint is pretty scary too 
16:00:22 <elliott> ais523: uh oh, I think I've found something that doesn't fit into my glorious maps-all-the-way-down structure 
16:00:37 <ais523> yes it does, just shoehorn it in 
16:00:50 -!- asiekierka_ has joined. 
16:00:55 -!- Phantom_Hoover has joined. 
16:01:27 <asiekierka_> ais523 Vorpal : what happened to yesterday's Vorpal vs. elliott battle? 
16:01:46 <elliott> ais523: well, one thing I'm stealing from Enchilada is symbolic-ness 
16:02:12 <ais523> asiekierka_: I thought you were there at the time? 
16:02:20 <elliott> ais523: now, Enchilada does lambdas like {a b=b a} for swap 
16:02:35 <elliott> ais523: but the way /I/ see it, functions are just infinite maps! 
16:02:41 <asiekierka_> it ended in a giant while of silence and battle over the thread 
16:02:55 <elliott> ais523: you should be able to say [a=a], and then whenever you look up 2, it notices that there's a symbolic key, and does the obvious 
16:02:57 <ais523> elliott: I was teaching someone Perl, they decided that hashes were just non-infinite functions 
16:03:01 <elliott> ais523: the problem is: what is "a", as maps? 
16:03:05 <elliott> also, they sound quite bright 
16:03:26 <elliott> ais523: did you then ruin their worldview with side-effects? :-) 
16:03:28 <ais523> used to program a few decades ago but had dropped out of the field for a while 
16:03:36 <ais523> so quite used to side-effects 
16:04:04 <ais523> programming had moved on a lot since, but I restricted myself to demonstrating what imperative langs were like nowadays as it's all they needed for what they were doing 
16:04:19 <elliott> ais523: anyway, I /could/ make [a=a] be the same as ["a"="a"], as in, a string 
16:04:23 <ais523> and Perl because what they wanted to do was insanely suited to it 
16:04:28 <elliott> ais523: but, of course, that would stop you using maps as maps from strings to values 
16:04:34 <ais523> elliott: gah no, putting lambda variables in double quotes is an Ursala thing 
16:04:36 <elliott> and also stops you using them for namespaces 
16:04:39 <ais523> and you don't want to copy features from there 
16:04:58 <elliott> ais523: hmm, if I gave every map a sign like in Enchilada, then [a=a] could be the same as [_"a"=_"a"] 
16:05:15 <elliott> i.e., a negative map from integers to integers is a symbolic variable 
16:05:16 <ais523> <Rosetta Code> Note that Perl 6 doesn't actually need a Y combinator because you can name anonymous functions from the inside: 
16:05:32 <ais523> that sort-of makes sense, actually 
16:05:38 <ais523> you could do that in Overload too, via pointer arithmetic 
16:05:46 <ais523> (this is the sort of reason why Overload never got anywhere) 
16:06:25 <ais523> although Overload was better in that you could name the entire call stack like that 
16:06:40 <ais523> (probably you can in Perl 6 too, using an extended version of caller or something) 
16:07:22 <ais523> hmm, should I go add INTERCAL examples to Rosetta Code? 
16:07:23 <elliott> ais523: but negative maps seem so... ugly! 
16:07:28 <ais523> now is a bad time, but it seems like it should be done sometime 
16:07:43 <elliott> hmm, perhaps a singleton list of a string is a symbolic variable 
16:07:45 <ais523> elliott: reminds me of Underload's distinction between quoting and non-quoting lists 
16:07:57 <ais523> Underload doesn't do anything quite that insane 
16:08:09 <elliott> http://www.w3.org/html/logo/ HTML5 logo unveiled, ugly 
16:08:14 <ais523> but that is, incidentally, the reason Underload bans the <> characters 
16:08:31 <elliott> ais523: I need everything to be only one wonderful unified structure, for homoiconicity! 
16:08:33 <ais523> wow, that logo's like an old-fashioned superhero logo 
16:08:50 <elliott> Why does it... NEED a logo? 
16:08:50 <fizzie> It looks like an energy drink. 
16:09:10 <ais523> elliott: Overload's almost homoiconic: everything's either a list (quoting or non-quoting), or a pointer 
16:09:16 <elliott> The H stands for Hyper, the T stands for Teamwork, the M stands for Multiple banned ingredients, the L stands for LOTS OF MONEY FOR US. 
16:09:34 <fizzie> The page also renders wrong in this Firefox 3.6.13 I have at work. 
16:09:39 <ais523> adding pointers was probably what lead to the sheer insanity of the language 
16:09:52 <ais523> imagine a language that is mostly purely functional, except a) you can modify code at runtime, and b) it has goto 
16:10:21 <fizzie> (Oh, that was just the lack of scripts. Works with those.) 
16:10:26 <ais523> oh, and calling a function's done by adding a goto at the end of it that jumps back to where you called it from 
16:10:34 <ais523> if you want to call a function more than once, you copy it first 
16:10:40 -!- ais523 has quit (Write error: Broken pipe). 
16:11:40 <fizzie> Is it just me, or is the JavaScript support machinery -- http://www.w3.org/html/logo/js/modernizr.js -- behind that logo pretty ugly? 
16:11:52 <fizzie>   bodyElem.innerHTML = body.innerHTML.replace(tagRegExp, '<$1font'); 
16:11:56 <variable> fizzie, do you know what modernizer is? 
16:12:08 <elliott> Modernizr is some kind of backport-HTML5-to-bad-browsers thing. 
16:12:13 <fizzie> Well, it says what it is right at the top. 
16:12:20 -!- ais523 has joined. 
16:12:22 <fizzie> And it's not "modernizer", it's "modernizr". 
16:12:22 <elliott> LOL WEB DEVELOPMENT SUCKS DICK 
16:12:24 <ais523> [16:16] <ais523> this way, you can figure out the callstack inside a function by first using the command that returns a pointer to itself (i.e. when you call the command, you get a pointer to that specific instance of the command in question), then moving it to the end of the list, then following 
16:12:33 <elliott> fizzie: Not according to its website! 
16:12:37 <elliott> I guess they COMPRESSED THE FILENAME 
16:13:19 <ais523> I can't even remember what the command was to get a pointer to follow another (i.e. the operation which in C would be written as *p = **p), but it was probably the same as the command for getting the head of a list or something like that 
16:13:23 <fizzie> I don't see the e anywhere in http://www.modernizr.com/ either. 
16:13:53 <variable> fizzie, I admit I added an "e" - ARE YOU HAPPY NOW ? 
16:14:01 <fizzie> "modernizr" is a silly choice; it's still >8 characters. Should've been "mdrnzr". 
16:14:20 <variable> fizzie, "mdrnzr" is silly. it should have been m. 
16:14:32 <ais523> hmm, the Y combinator in J is crazy, almost as bad as the powershell one 
16:14:46 <ais523> because J restricts functions to second-order 
16:14:47 <fizzie> MDRNZR16.JS; see there's even space for version numbers. 
16:14:54 <elliott> ais523: technically, not really 
16:15:04 <elliott> ais523: it has verbs, and adverbs 
16:15:09 <elliott> obviously, you can't verb verbs 
16:15:15 <elliott> but you can adverb a verb to get another verb 
16:15:22 <elliott> verbs have both subject and object 
16:15:24 <ais523> elliott: yes, that's second order 
16:15:34 <variable> elliott, they don't even use their own logo! 
16:15:43 <ais523> so if you want to write a Y combinator in J, you have to do things like serialise the verbs so that verbs can act on them 
16:15:54 <elliott> ais523: J already has a fixed-point combinator, though... 
16:16:10 <ais523> the exercise was about implementing Y specifically 
16:16:11 <elliott> At least I recall one existing. 
16:16:19 <elliott> ais523: that's more alien to J than it is to C 
16:16:26 <elliott> ais523: since you... don't loop or recurse, just about ever 
16:16:40 <elliott> Phantom_Hoover: functions taking first-order functions and outputting first-order functions 
16:16:44 <elliott> first-order functions just take non-function values 
16:16:48 <ais523> Phantom_Hoover: functions that take first-order functions as arguments 
16:17:01 <ais523> elliott: actually, taking a non-function as an argument and outputting a first-order function is arguably first-order 
16:17:08 <elliott> ais523: kdb, an extremely-high-performance database widely used in the financial industry for millions and millions of records, written in J's cousin, K, purportedly contains not a single loop 
16:17:17 <ais523> elliott: that doesn't surprise me 
16:17:39 <ais523> well, it depends on what you mean by "loop", but I doubt it contains any imperative loops, they wouldn't make much sense in a lang that works like that 
16:18:00 <elliott> ais523: nor functional loops (i.e. recursion) 
16:18:14 <elliott> the closest you get to a loop in these languages are folds, and IIRC K doesn't actually have folds 
16:18:25 -!- copumpkin has quit (Ping timeout: 264 seconds). 
16:18:33 <ais523> what about Unassignable-style loops, where data structures implicitly know how to iterate themselves? 
16:19:32 <ais523> the most useful data structure in Unassignable is a "do X n times" constant where X is immutable, but n can be changed 
16:19:36 <elliott> ais523: it's basically all done with the built-in array functions, a very common pattern is to add extra dimensions to an array to store various transformations on it, and then collapse them down 
16:19:52 <ais523> elliott: hmm, that pretty much is looping, really 
16:20:01 <ais523> it's sort-of like a map, just more structured 
16:20:28 <Phantom_Hoover> http://www.reddit.com/r/Minecraft/comments/f4dih/first_awesome_cave_find/ 
16:20:59 <ais523> wait, someone wrote Y in POP-11? 
16:21:02 <ais523> this makes no sense at all 
16:21:05 <elliott> ais523: well, you'd be hard-pressed to find a string of J code and point to a part and say, "there's the loop" 
16:21:18 <ais523> the loops are everywhere 
16:21:18 <oerjan> <ais523> elliott: actually, taking a non-function as an argument and outputting a first-order function is arguably first-orde 
16:21:37 <elliott> ais523: the loops are everywhere == the loops are nowhere :) 
16:21:45 <elliott> ais523: even "1+array" is a "loop" in J 
16:21:48 <ais523> oerjan: arguably as in I'm prepared to argue it, if someone takes the other side of the argument 
16:22:06 <oerjan> ais523: i was about to say, that's just currying 
16:22:27 <ais523> oerjan: well indeed, it is just currying 
16:22:32 <ais523> which is why it shouldn't increase the order 
16:23:18 <ais523> oerjan: do you consider constant values, like constant integers, to be effectively zero-order functions? 
16:23:21 <ais523> I can't remember if I do or not 
16:24:26 -!- ais523 has left (?). 
16:24:29 -!- ais523 has joined. 
16:24:35 <elliott> and they are, therefore, not functions 
16:24:48 <ais523> elliott: aha, but you can't find a -1-order function to apply them /to/ 
16:25:13 <elliott> ais523: sure, you can make everything a function if you redefine the definition of function 
16:25:24 <elliott> but integers aren't functions by any reasonable definition (ignoring e.g. church numerals) 
16:26:19 <ais523> in Idealised Algol, all uses of integers in a program are effectively functions that take no argument and return the integer in question 
16:26:28 <oerjan> well it's sort of degenerate anyway.  in the same way they are 0-_argument_ functions 
16:26:41 <elliott> oerjan: There is only one type of function, 1-argument :) 
16:26:46 <ais523> same in all sorts of languages 
16:27:12 <oerjan> elliott: but if you define n-argument functions for n > 1 then n=0 naturally means a non-function 
16:27:51 <ais523> oerjan: well if you allow side-effects, 0-arg functions can be useful 
16:28:02 <oerjan> i'm pretty sure we've quarreled about this before ;D 
16:28:49 <ais523> meanwhile, it turns out that the people giving me the handouts for my Java tutorials snuck a regular expression into what was otherwise very simple code 
16:29:13 <oerjan> ais523: hm yes.  e.g. scala uses them for its call-by-name syntax iirc 
16:29:24 <ais523> scala does call-by-name? 
16:29:57 <ais523> (note: I'm really quite somewhat of a call-by-name advocate for any language with side effects, using that as your model for everything in your day job does that to you) 
16:30:04 <elliott> oerjan knows anything about Scala? 
16:30:15 <elliott> isn't he too...grumpy to look at new things? 
16:30:34 <ais523> <Rosetta code> What makes this work is that all Clojure functions (thus rosetta-code defined here) implement the java.util.Comparator interface. 
16:30:47 <oerjan> if you have an argument whose type is a 0-argument function, but write an expression that is of the type of its _result_ in its place, then it's implicitly converted to a function 
16:30:55 <ais523> implementing a dynamically typed language on the JVM is done by getting everything to implement everything? 
16:31:09 <oerjan> elliott: i looked at scala before i got this grumpy 
16:31:25 <elliott> oerjan: oh, I forgot Scala is actually 2003 vintage 
16:31:48 <ais523> oerjan: Algol-68 works a bit like that, it has some really complex rules to determine whether to coerce a function to its return type, then to void, or whether to just coerce it directly to void 
16:31:48 * elliott ponders rewriting Herobrine in Haskell 
16:31:51 <elliott> after all, everything should be written in Haskell 
16:32:31 <ais523> oh right, this reminds me of something 
16:32:48 <ais523> my boss was trying to argue to me a while back that Haskell contained imperative-style assignable variables, as long as you used the IO monad 
16:33:09 <elliott> the IO monad is an imperative language 
16:33:13 <elliott> an imperative, mutable language 
16:33:19 <elliott> it is my least favourite part of haskell :) 
16:33:25 <ais523> and gave "do { x <- 1; x <- x + 1; return x }" as an example, corrected for me misremembering syntax and types 
16:33:49 <ais523> the statement about the IO monad is incidentally correct (although State would work better), the example is massively missing the point 
16:34:03 <ais523> hmm, I think we had to insert some extra return statements in there to make it type 
16:34:23 <ais523> but the point is that that isn't assignable variables at all, that's just SSA with lambda bindings 
16:35:49 <ais523> I failed to come up with a counterexample blatant enough to prove that that's not how Haskell worked at all, though 
16:36:19 <ais523> I tried removing the syntactic sugar but it didn't help 
16:36:43 <ais523> also, apparently Mathematica's compare functions use True for greater than and False for less than 
16:36:51 <ais523> I'm not sure what they use for equal, if anything 
16:36:58 <elliott> http-server library: A library fro writing Haskell web servers. 
16:37:27 <ais523> (in ), attempting to compare floating-point numbers is undefined behaviour if they happen to be exactly equal, unless one or both of them has multiple values at the time) 
16:38:08 <ais523> mental auto-bracket-balancer caught me out there 
16:38:39 <ais523> you can do, say, float f = 4; float g = 4.5; f += (0 || 1); if (f > g) printf("f > g\n"); if (f < g) printf("f < g\n"); 
16:38:41 <ais523> and get both lines to print 
16:39:02 <elliott> ais523: why is it that every language designer ends up inventing superposed variables eventually? 
16:39:12 <ais523> elliott: I didn't invent them, I stole them from Perl 6 
16:39:19 <elliott> I always used to hate that I couldn't say, in PHP, ($x == (0 || 1 || 2)) 
16:39:47 <ais523> because it was necessary for something as simple as floating-point >= to not be as dangerous as gets 
16:40:00 <ais523> (using it without superposing one of the variables /is/ gets-dangerous) 
16:40:13 <ais523> you see, in (, floating point numbers are infinite precisoin 
16:40:23 <ais523> and the way that's achieved, is via calculating them lazily 
16:40:33 <elliott> ais523: erm you do know that equality on computable reals is undecidable? 
16:40:35 <ais523> comparisons are the only thing that force them 
16:40:45 <ais523> elliott: indeed, it is undecidable, that's precisely why it's undefined behaviour 
16:41:05 <elliott> oerjan: can you attempt to convey to ais523 exactly what rabbit hole he's entered by using computable reals? :) 
16:41:13 <ais523> elliott: not a deep one at all 
16:41:22 <ais523> because you can compute them to any number of decimal places 
16:41:27 <oerjan> UNDECIDABILITY OF EQUALITY 
16:41:40 -!- copumpkin has joined. 
16:41:44 <elliott> ais523: YOU DO REALISE YOU BASICALLY NEED PROOFS TO DO THINGS PROPERLY 
16:41:53 <ais523> now, what > does is just keep calculating decimal places of both numbers until it finds a mismatch 
16:42:10 <ais523> this is guaranteed to happen eventually if you superpose with addition of a nonzero number 
16:42:25 <ais523> if you don't, well, I warned you you might get an infinite loop 
16:42:28 <oerjan> also, UNDECIDABILITY OF DECIMALS IF NOT INFINITE 
16:42:50 <oerjan> e.g. you cannot distinguish 1 from 0.9999999999999999999999999999999... 
16:42:59 <ais523> yes, I'm aware of that 
16:43:13 <ais523> this is actually just a limitation of the language, it's there explicitly as a trap for programmers 
16:44:04 <ais523> but even if one number's on a knife-edge between 1 and 0.9 recurring, that doesn't block comparisons unless the other number is as well 
16:44:10 <ais523> in which case it's undefined behaviour 
16:45:12 <ais523> elliott: can you not just let me do something that's theoretically insane, then push all the problems onto the user and claim it's their fault? 
16:45:37 <elliott> i thought you said it was meant to be more useful in practice :D 
16:45:52 <ais523> elliott: well, it /is/, for sufficient values of useful in practice 
16:46:01 <ais523> umm, sufficiently small 
16:46:39 <ais523> there are other things like arrays automatically expanding when you address outside or before them 
16:46:50 <ais523> with all pointers being tied to a particular array 
16:47:00 <ais523> (and all variables being implicitly inside a 1-element array) 
16:47:13 <ais523> this sounds useful, but messes up some corner cases with pointer arithmetic quite badly 
16:47:24 <ais523> mostly involving multidimensional arrays 
16:49:23 <oerjan> `addquote <elliott> i thought you said it was meant to be more useful in practice :D  <ais523> elliott: well, it /is/, for sufficient values of useful in practice  <ais523> umm, sufficiently small 
16:49:24 <HackEgo> 270) <elliott> i thought you said it was meant to be more useful in practice :D  <ais523> elliott: well, it /is/, for sufficient values of useful in practice  <ais523> umm, sufficiently small 
16:50:02 <ais523> elliott: basically the strategy I'm going with is similar to the one the C++ committee is using 
16:50:12 <ais523> think of a feature that's at least mostly backwards-compatible 
16:50:15 <elliott> ais523: so you're going to be insane all on your own? 
16:50:20 <ais523> then just add it without worrying about the implications 
16:50:42 <ais523> although in this case, insufficiently many negative implications are a drawback 
16:51:37 <ais523> oh, luckily the C course is mostly over, although I still have two exercises to mark 
16:51:51 <ais523> this term I'm still teaching Java, but also GPGPU programming 
16:52:01 <ais523> which I don't know that much about, but which I know more about than the students I'm helping 
16:52:08 <ais523> most of them, at least 
16:52:22 <Phantom_Hoover> ais523, what did you actually /do/ when they did that sizeof thing? 
16:52:33 <elliott> dammit, there appears to be no ogdl parser for ruby 
16:52:47 <ais523> Phantom_Hoover: sizeof of a function argument in order to determine how large the array in question is? 
16:53:05 <ais523> nothing but shake my head sadly afterwards and tell everyone on IRC, as that was one of the other tutors 
16:53:24 <ais523> at least, pointed out the mistake 
16:53:33 <ais523> but gave up when they said it had to be incorrect because netbeans didn't autocomplete it 
16:54:25 -!- jcp has quit (Excess Flood). 
16:54:59 <elliott> ais523: wow, Ruby supports using a newline as the q delimiter, does perl? 
16:56:15 <ais523> elliott: it skips the newline and interprets the next character as the q delimiter instead 
16:56:27 <ais523> which means that you can actually use letters as a q delimeter that way 
16:57:01 <elliott> hmm, oerjan: can you kick the user that's about to come in? I want to test something 
16:57:10 -!- hellobar has joined. 
16:57:17 <hellobar> I'm elliott and I'm EVIL, kick me 
16:57:22 <ais523> elliott: it would be hilarious if a newbie joined just then 
16:57:52 <ais523> elliott: your invisible friend is hacking your router again! 
16:59:44 <ais523> wow, I'm only about 20% of the way through PHP's documentation for the array type 
16:59:48 <ais523> how can it be that complicated? 
17:00:01 <elliott> ais523: are you an op in here? 
17:00:17 -!- jcp has joined. 
17:00:40 <ais523> hmm, apparently in PHP you get to choose what index your arrays start from when creating them 
17:01:45 <elliott> ais523: tell oerjan to kick hellobar 
17:01:57 <ais523> why would I do such a thing? 
17:02:01 <Phantom_Hoover> elliott, wait, your invisible friend has hacked your router before? 
17:02:23 <elliott> ais523: because I need to see for Herobrine, dammit 
17:02:34 <elliott> hmm, i could make shutup come back in here and get it kicked 
17:02:36 <ais523> Herobrine isn't actually here 
17:03:12 <elliott> ais523: he's going to come in to log 
17:03:15 <elliott> but I'm revamping the impl first 
17:03:19 <elliott> to do thinsg like support multiple channels 
17:03:33 <ais523> well, are you personally logging this in herobrine format? 
17:03:40 <ais523> if not, you won't get the example you're looking for 
17:03:55 -!- hellobar has quit (Ping timeout: 240 seconds). 
17:04:20 -!- hellobar has joined. 
17:04:22 <ais523> that would explain why you pinged out, at least 
17:04:34 <hellobar> KICKMEKICKMEKICKEMCIEMCIKECIEMCIE OERJAN OERJAN OERJAN 
17:04:50 <ais523> however, does the text you see when you're kicked compare to the text you see when someone else is kicked? 
17:05:10 <ais523> also, what if someone decides to take over your computer via a remote terminal keybinding injection attack? 
17:05:43 <hellobar> I just want to see what it looks like when you get parted from a channel, so Herobrine can rejoin 
17:05:49 <hellobar> (not necessarily because of being kicked) 
17:05:58 <ais523> can't you just part it, then? 
17:06:11 <ais523> the part command works over nc too... 
17:06:22 -!- ais523 has left (?). 
17:06:23 -!- ais523 has joined. 
17:06:29 <hellobar> *you *are parted*, not when you *part* 
17:07:04 <ais523> is there any cause but a kick for that? 
17:07:10 -!- Phantom_Hoover has left (?). 
17:07:10 -!- Phantom_Hoover has joined. 
17:08:51 -!- hellobar has quit (Client Quit). 
17:11:11 <elliott> ais523: more Amethyst design: 
17:12:00 <elliott> ais523: every object has a URI. usually this URI will just be a URN like urn:amethyst:... 
17:12:05 <elliott> where ... is, say, a sha-512 hash of the object 
17:12:46 <ais523> I didn't even think of applying hash-based URLs to that 
17:12:50 <elliott> ais523: now, the syntax <...> (or perhaps (...)) parses (not evaluates) to the object of that URI 
17:13:06 <elliott> ais523: for instance, say version 1.0 of the standard library is urn:amethyst:deadbeef 
17:13:09 <ais523> even though a while ago, I was wondering about a programming language where everything was pointers into a massive hash table that took up all of memory 
17:13:21 <elliott> Stdlib: <urn:amethyst:deadbeef> 
17:13:27 <elliott> will let you use the Stdlib map 
17:13:41 <elliott> if the interpreter doesn't have something with that hash cached, that's a parse error 
17:14:03 <elliott> hmm, it should be urn:sha512: 
17:14:16 <elliott> actually, forget the urn thing 
17:14:33 <elliott> what if you want to point the interpreter to tell it where it can get a hold of that map? 
17:14:36 <ais523> wouldn't that require bruteforcing hashes? 
17:14:47 <elliott> ais523: no, it only works if the interpreter has something with the hash deadbeef cached 
17:14:54 <elliott> e.g., in /usr/lib/amethyst/deadbeef 
17:15:09 <elliott> Stdlib: <deadbeef=http://amethyst.org/stdlib/1.0> 
17:15:12 <elliott> that URL would contain Amethyst code 
17:15:16 <elliott> and the resulting object must hash to deadbeef 
17:15:26 <elliott> <foo> is shorthand for <foo=urn:sha512:foo> 
17:15:43 <elliott> ais523: this also provides security against tampering 
17:15:48 <elliott> if the stdlib is changed to have malware in it, the verification will fail 
17:15:56 -!- ChanServ has set channel mode: +o oerjan. 
17:16:04 <ais523> also makes it impossible to upgrade a system ever again? 
17:16:04 <elliott> oerjan: you kick /hellobar/ 
17:16:11 <elliott> ais523: but-- what if you only want a certain API, not a defined implementation? 
17:16:20 -!- oerjan has set channel mode: -o oerjan. 
17:16:21 <elliott> ais523: you use an "API hash" 
17:16:39 <elliott> ais523: which is, essentially, a hash of a hash like: 
17:16:58 <elliott> [SomeName:[open:[]; close:[]]] 
17:17:11 <elliott> ais523: and it'd have open and close in it 
17:17:21 <ais523> wait, you're currently hashing hashtables 
17:17:26 <ais523> and abbreviating both to "hash" 
17:17:30 <elliott> they're not hashtables, they're trees 
17:17:33 <ais523> this is making the conversation more confusing than it should be 
17:17:59 <elliott> if you have saf98y495jgkz cached locally 
17:18:08 <elliott> and its object evaluates to have meta-info (every map has a meta-map) like this: 
17:18:18 <elliott> [...]@[provides:[SomeName:[open:[]; close:[]]]] 
17:18:24 <elliott> and that provide thing hashes to deadbeef 
17:18:29 <elliott> then that would be used as the implementation 
17:18:30 <oerjan> hashish tables are r/trees 
17:18:43 <elliott> SomeName: ~deadbeef <oidjgs0=http://...> 
17:18:48 <elliott> ais523: which means, if you don't have a preferred implementation, use this one 
17:19:15 <elliott> ais523: now, note how module names are *unbreakably* unique, modulo the hash function 
17:19:31 <elliott> ais523: oh come on, that's not enterprisey, that's hideously impractical but fu 
17:20:26 <oerjan> functions otoh are just functionally unique 
17:20:38 <elliott> ais523: actually this is basically enchilada's system but modified 
17:20:53 <elliott> (P1asW6BED++fOl4o86DsE5DVYdU=) == 1 2 3 
17:20:54 <elliott> if the interp knows where to find that hash 
17:20:59 <elliott> with mine, I just turn it into a module system using URIs 
17:21:14 <ais523> elliott: I just tried to interpret that hash as Ursala 
17:21:16 <elliott> ais523: see, if you were Sgeo, you'd be going "oooooh", and that's my design goal 
17:21:26 <ais523> and failed, mostly because I don't know Ursala well enough 
17:22:02 <elliott> ugh, my program needs a total restructuring to do this 
17:22:17 <ais523> you're actually /writing/ Amethyst? 
17:22:50 <elliott> ais523: but yes, I plan to! 
17:22:58 <elliott> ais523: the horrible thing is, some of these ideas are actually /good/ 
17:23:12 <elliott> ais523: for instance, functions as just maps with symbolic keys 
17:23:31 <ais523> elliott: that's the case with all esolangs 
17:23:35 <ais523> INTERCAL is full of bad ideas 
17:23:43 <ais523> just it has even more bad ideas 
17:24:09 <ais523> I'd love to see modern INTERCAL's control structure in something that didn't have such hideously unusable expressions 
17:24:44 <elliott> ais523: "fib: ^[0:0; 1:1; [+ n 2]: [+ [fib [+ n 1]] [fib n]]]" 
17:25:08 <elliott> because every [f ...] is a regular function application 
17:25:13 <oerjan> don't believe him, he's just fibbing you 
17:25:20 <elliott> in this case, [+ n 2] evaluates to [+ n 2], because n is symbolic 
17:25:20 <ais523> quote being a function rarely makes sense anyway 
17:25:29 <ais523> unless it's like a in Underload 
17:25:32 <elliott> and the right-hand-side just evaluates to [+ [fib [+ n 1]] [fib n]] 
17:25:36 <ais523> and just requoting something that's already data 
17:25:46 <elliott> it runs out of options, finds the symbolic one 
17:25:54 <elliott> fills in "1" for n, thus binding n to 1 
17:25:56 <elliott> and looks at the right hand side 
17:26:21 <elliott> ais523: this also means that all of a function's body which /can/ be constant-folded /is/ 
17:26:25 <elliott> because the body is actually evaluated 
17:26:38 <ais523> elliott: hey, doing italics like that is my thing! 
17:26:49 <ais523> also, at least one Underload interp works like that 
17:26:55 <elliott> ais523: interestingly, this can actually memoise automatically trivially 
17:27:05 <elliott> as in, when you resort to a symbolic expression, store the new result in the tree 
17:27:56 <elliott> ais523: actually, I think you can avoid that evaluation 
17:28:31 <elliott> test: ^[x: ^[+ ,x 1]]; test2: ^[x: [eval [test x]]] 
17:28:46 <elliott> ais523: obviously, ^[+ ,x 1] -> ^[+ ,x 1], because, again, symbolic 
17:28:53 <ais523> hmm, esolang idea: an esolang which is relatively simple and not unusual at all, and easy to implement, perhaps a BF derivative 
17:28:55 <elliott> but when you fill an x in, it turns into the _map_ [+ 3 1] for instance 
17:29:03 <ais523> with the only unusual feature being that programs aren't actually run 
17:29:07 <elliott> [test 3] is-the-same-code-as ^[+ 3 1] 
17:29:11 <ais523> a correct interp just reads the program and ignores it 
17:29:22 <ais523> although programs still have their semantics defined 
17:29:29 <elliott> test2's [eval [test x]] becomes [eval ^[+ ,x 1]] 
17:29:32 <elliott> which then ... eh, I'm confused myself 
17:29:37 <elliott> the expansion _doesn't_ happen at compile-time 
17:29:40 <elliott> because the function is quoted, of course 
17:30:30 <elliott> ais523: this language is very confusing 
17:30:50 <ais523> elliott: that could be said about basically any esolang, and a lot of non-eso langs too 
17:31:04 <ais523> and it's not going to get anywhere near as confusing as Feather 
17:31:17 <elliott> incidentally, I ran into the same "issue" MISC did and fixed it in I think the same way 
17:31:32 <ais523> isn't there an esolang called MISC? 
17:31:34 <elliott> basically, you think that 2 is (say) [[]:1] = [[]:[[]:[]]] 
17:31:37 <elliott> yes, but it's not that one 
17:31:39 <ais523> some OISC variant, IIRC 
17:31:46 <elliott> you could define a variable named [[]:[[]:[]]] 
17:31:50 <elliott> because variable definitions are just map entries 
17:31:55 <elliott> 2 is _actually_ ^[[]:[[]:[]]] 
17:32:01 <elliott> but then how do you reference the variable named 2? 
17:32:10 <elliott> yes, that's right: [eval 2] != 2 
17:32:26 <elliott> usually, [eval 2] = 0, in fact, because 0 = [] = nil, and that's what an undefined lookup results in 
17:32:28 <ais523> [eval x] != x barring a huge coincidence 
17:32:36 <elliott> ais523: (eq? (eval 2) 2) in Scheme 
17:32:48 <elliott> because (eval 'x) is the same as x, and 2 is the same as '2 
17:32:53 -!- Tritonio has joined. 
17:32:55 <elliott> ais523: eval doesn't operate on strings here 
17:33:12 <ais523> it initialises #4 to 4, etc 
17:33:23 <ais523> that's what Scheme's doing there, setting constants to their own values 
17:33:43 <ais523> there's no reason why a constant's value should be equal to the constant itself... 
17:33:59 <elliott> oh man, I'm an awful person, I looked at the MISC guy's homepage, saw "MacSword: A bible reading program, for Mac OS X.", and my mind got indignant 
17:34:05 <elliott> oerjan is more right than I'd like him to be 
17:34:16 <elliott> ais523: hmm, one issue with ^ 
17:34:31 <elliott> isn't that non-homoiconic? 
17:35:02 <ais523> homoiconicity doesn't imply you don't have syntax errors 
17:35:13 <elliott> ais523: why should ^^[1 2 3] be a syntax error 
17:35:18 <elliott> every expression should be quotable 
17:35:25 <ais523> same reason ''(1 2 3) is in Lisp 
17:35:47 <ais523> quoting's a compile-time thing, not a run-time thing 
17:35:52 <elliott> ais523: ''(12 3) is NOT a syntax error in Lisp, dude... 
17:36:08 <elliott> ais523: it results in the list (quote (1 2 3)) 
17:36:36 -!- Tritonio has quit (Client Quit). 
17:36:48 <ais523> as is quote pretending to be a function at all 
17:37:08 <elliott> I realise you like to define "Lisp" as "my pet language almost, but not entirely, unlike Lisp", but that is not relevant. 
17:37:48 <ais523> well, (quote (+ 1 2 3)) would obviously return the same thing as (quote 6) if quote were a function 
17:37:57 <elliott> ais523: But anyway, if ^^[1 2 3] is a syntax error, presumably there is no object that corresponds to the syntax "^[1 2 3]" 
17:38:02 <elliott> ergo, the language is not homoiconic 
17:38:15 <elliott> ais523: (f ...) is not just function application in lisp, so there is no pretending 
17:38:18 <elliott> <elliott> ais523: But anyway, if ^^[1 2 3] is a syntax error, presumably there is no object that corresponds to the syntax "^[1 2 3]" 
17:38:18 <elliott> <elliott> ergo, the language is not homoiconic 
17:38:22 <ais523> hmm, I think I give up trying to figure out what homiconic actually means 
17:38:29 <ais523> Phantom_Hoover: if is a special form? 
17:38:49 <elliott> Phantom_Hoover: don't talk to ais523 about Lisp, he becomes a troll 
17:38:50 <ais523> setq I can understand, it's a weird abbreviation for set ' that doesn't actually save characters 
17:39:08 <ais523> is cond an actual function, at least? 
17:39:12 <elliott> ais523: how can you write a program that transforms an arbitrary Amethyst program into another? 
17:39:18 <elliott> ais523: are you saying that ^[foo ^x] is invalid? 
17:39:24 <elliott> because that's /ridiculous 
17:39:33 <elliott> ais523: what object does ^[foo ^x] result in? 
17:39:40 <Phantom_Hoover> ais523, in CL, if is a special form and cond is a macro that uses if 
17:39:48 <elliott> ais523: so why is ^^[1 2 3] a syntax error 
17:39:53 <elliott> rather than resulting in ^[1 2 3] 
17:39:56 <elliott> Phantom_Hoover: CL is not defined that way 
17:40:04 -!- Vorpal_ has joined. 
17:40:06 <ais523> I think, because it's on the LHS 
17:40:07 <elliott> special forms can be implemented as macros 
17:40:23 <ais523> elliott: what object does [[1 2 3] 4] result in? 
17:40:39 <elliott> or if it is, show me it, written in map form 
17:40:49 <ais523> so [[1 2 3] 4] results in the same object as ^[[1 2 3] 4]? 
17:41:09 <elliott> The whole point of homoiconicity is that you don't need to condition on what type of node your transformer is receiving 
17:41:12 <elliott> if there are two data types 
17:41:18 <elliott> then this is completely destroyed 
17:41:29 <ais523> I still don't understand part of this, though 
17:41:36 <ais523> ^[[1 2 3] 4] results in [[1 2 3] 4], right? 
17:41:48 -!- Vorpal has quit (Ping timeout: 272 seconds). 
17:41:53 <elliott> [[1 2 3] 4] tries to apply 1 to 2 3, and then the result to 4 
17:41:59 <elliott> which will almost certainly result in nil 
17:42:00 -!- Vorpal_ has changed nick to Vorpal. 
17:42:02 <elliott> Phantom_Hoover: please, stop confusing the issue 
17:42:06 <Vorpal> this hardware is haunted or something 
17:42:10 <ais523> Phantom_Hoover: it depends on what quote means, which I'm not sure I understand 
17:42:38 <elliott> ais523: What I'm saying is that ^x _must_ be the same as [quote x] or similar. 
17:42:55 <elliott> Or homoiconicity is ruined and the language's purity is completely gone, it introduces a huge swathe of special-cases. 
17:42:58 <Vorpal> which language are you talking about? 
17:43:03 <elliott> Vorpal: Amethyst, and don't bother googling 
17:43:10 <elliott> it's the language I will entrap Sgeo in forever 
17:43:41 <Vorpal> elliott, Amber, Amethyst. Hm a pattern! 
17:43:44 <elliott> ais523: consider this program transformer, that lets you write RPN 
17:43:58 <ais523> hmm, does [a [b c]] in Amethyst work much like (a (b c)) in Lisp? as in, is [b c] evaluated and then a evaluated with the result, or is a evaluated with [b c], or something else? 
17:44:07 <elliott> ais523: [rpn ^[[1 2 *] 3 4 +]] --> [+ [* 1 2] 3 4] 
17:44:10 <Vorpal> elliott, except it turns out Amber isn't really stone. And for entrapping Amber would be more suitable. ;P 
17:44:12 <elliott> ais523: I can easily write this: 
17:45:03 <elliott> ais523: rpn: ^[prog: [if [== [first prog] ^quote] prog [cons [last prog] [map rpn [all-but-last prog]]]]]]]]]]]]lots of ]s 
17:45:21 <elliott> ais523: if ^x is not the same as [quote x], then we can't process all code as one data structure 
17:45:26 <elliott> and homoiconicity is ruined 
17:45:37 <elliott> but yes, [a [b c]] is the same as (a (b c)) pretty much 
17:45:40 <ais523> but I'm trying to work out how [quote x] can possibly quote anything at all 
17:45:44 <elliott> incidentally you can do keyword arguments like this 
17:45:47 <ais523> because surely x would be evaluated first? 
17:45:53 <elliott> ais523: no, because it's a special-case 
17:46:09 <elliott> ais523: the same way processing ^ differently to any other character, or [, or ], or :, or ; is a special case 
17:46:11 <ais523> doesn't that just defeat the whole point? 
17:46:29 <ais523> hmm, I think you can remove the special case by making the lang call-by-name 
17:46:30 <elliott> ais523: Maybe it makes the point less perfect, but it's a hell of a lot better than not being able to nest quotes! 
17:46:39 <elliott> ais523: that's the Io solution 
17:46:41 <elliott> pass all arguments unevaluated 
17:46:48 <ais523> in fact, the only purpose of call-by-name seems to be to remove special cases 
17:46:51 <elliott> Sgeo liked that, so maybe I'll do it :) 
17:47:04 <elliott> ais523: so then it'd be "quote: [x: x]", right? 
17:47:24 <ais523> err, you seem to have changed syntax 
17:47:27 <Vorpal> ais523, call by name? as opposed to call by address? 
17:47:29 <ais523> quote works just fine call-by-name 
17:47:36 <ais523> Vorpal: do you know what call-by-name actually is? 
17:47:37 <elliott> ais523: show me an impl of quote in call-by-name 
17:48:08 <Sgeo> #ioke is currently being spammed by a bot 
17:48:22 <elliott> Sgeo: Prefix notation or postfix notation, which do you prefer. 
17:48:30 <ais523> elliott: \f -> \x -> f x 
17:49:11 <elliott> Sgeo: What were the DISLIKEABLE things you saw in MISC? 
17:49:14 <ais523> elliott: because all quoting does is prevent something being evaluated instantly, right? 
17:49:14 <Sgeo> I suppose I should describe what I like in a name 
17:49:20 <Sgeo> I like Googleability 
17:49:26 <ais523> oh, wait, I really screwed up there 
17:49:29 <elliott> Sgeo: in a _name_? answer my damn question! 
17:49:36 <elliott> ais523: that's either the same as (\f -> f), or you broke eta-expansion, congrats 
17:50:25 <ais523> elliott: eta-expansion is broken anyway in a lang with side effects, I muddled up quote with something else 
17:51:08 <Sgeo> Function definions seemed a bit long-winded. Lambda should probably be called something like \, and it should come with a function that takes the same arguments lambda takes, plus a name, and puts it in the environment. Unless I'm misunderstanding, and there's no way to put functions in the environment 
17:51:11 <ais523> Sgeo: is Googleability the only factor? 
17:51:30 <Sgeo> ais523, in a name? 
17:51:59 <oerjan> the The programming language 
17:52:58 <elliott> Sgeo: Here's a squaring fucntion in Amethyst: [x: [* x x]] 
17:53:21 <elliott> Sgeo: Here's a squaring function in Amethyst except that squaring 2 gets you -3 because why not: [-2: -3; x: [* x x]] 
17:53:45 <Sgeo> What about multi-argument functions? Also, that example confuses me 
17:54:01 <elliott> Sgeo: Why does it confuse you? 
17:55:22 -!- myndzi has quit (Ping timeout: 255 seconds). 
17:55:22 <Sgeo> Because -2 is a constant that the function treats specially, but x is just a variable name for use inside the thing 
17:55:29 <Sgeo> Also, why is it call-by-name? 
17:55:31 -!- ais523 has quit (Ping timeout: 240 seconds). 
17:55:46 <elliott> Sgeo: Don't you worry your head about that, we haven't solidified the details. But it means less special cases. 
17:55:49 <elliott> Sgeo: Anyway, that's due to symbolicness! 
17:56:07 <elliott> Sgeo: In fact, that function is the same as a map. 
17:56:11 <elliott> Sgeo: It's just an infinite, lazy map. 
17:56:40 <elliott> Sgeo: Whenever a value is looked up, it'll decide it's not -2, notice the symbolic entry works if we set x=4 or whatever our input is, and evaluate the right-hand side with that value substituted. 
17:56:43 <Sgeo> What does [-2: -3; x: [* x x]; y: [y - 1]] do?/ 
17:56:44 <elliott> Sgeo: The best thing is, it then remembers! 
17:56:50 <elliott> [x: intensive computation] 
17:56:54 <elliott> Calling it for any x will then cache the result. 
17:56:57 -!- ais523 has joined. 
17:57:01 -!- myndzi has joined. 
17:57:08 <elliott> This means that a naive Fibonacci implementation is O(n), not O(fib(n)). 
17:57:10 <elliott> ais523: hmm, how would you extend loggic to handle multiple channels? 
17:57:33 <elliott> Sgeo: Not sure. One possibility is that would never look at the y case, because the map is ordered. 
17:58:03 <ais523> elliott: have it join multiple channels, split them later 
17:58:14 <elliott> Sgeo: Another possibility is that it would be a syntax error, or the same as [-2: -3; y: [- y 1]], because the latter overrides the former at parse time. 
17:58:26 -!- j-invariant has joined. 
17:58:32 <ais523> nick-change methods might be a little problematic as they only happen once, though, and aren't pegged to the channel 
17:58:51 <ais523> elliott: anyway, I figured out how I did quote in my Unlambda to Underlambda compiler 
17:59:06 <elliott> Sgeo: Did I mention this has macros? 
17:59:18 <ais523> I did it by adding an unquote function to every single other command, with quote being the only function that didn't have it 
17:59:28 <ais523> making quote not a special case is hard; but making unquote not a special case is easy 
17:59:43 <ais523> and quote literally was an eta-expanded identity there 
17:59:48 <elliott> Sgeo: In fact, call semantics are like Io and Ioke. 
17:59:56 <elliott> Sgeo: Functions get the unevaluated code as their parameter. 
18:00:28 <elliott> Sgeo: Did I mention it's lazy? 
18:00:33 <elliott> Sgeo: Let me tell you about the module system now. 
18:00:41 <elliott> Sgeo: Naming collisions are *completely impossible*. 
18:00:56 <elliott> Sgeo: DO YOU WANT TO KNOW MORE? 
18:01:42 <elliott> Sgeo: Every object has a URI. 
18:01:49 <elliott> Sgeo: Usually, this URI just looks like urn:sha512:longhashgoeshere. 
18:02:09 <elliott> Sgeo: But if you publish an object (map) on, say, the web, by putting its source code up you can refer to that object with that URI. 
18:02:17 <elliott> olsner: ssh, I'm stopping Sgeo ever using another language again 
18:02:29 <elliott> Sgeo: Here's how you refer to an object at a URI. 
18:02:51 <elliott> Sgeo: (hashgoeshere|http://amethyst.org/stdlib/1.0) 
18:02:55 <Sgeo> What about that problem you previously noted... oh 
18:02:58 <elliott> Stdlib: (hashgoeshere|http://amethyst.org/stdlib/1.0) 
18:03:07 <elliott> Sgeo: This checks that the stdlib has the correct hash. 
18:03:15 <olsner> hmm, the language is "assembly", and the tool you assemble it with is an "assembler"? I use them interchangeably 
18:03:16 <Sgeo> Hence me saying oh 
18:03:23 <elliott> Sgeo: But if the implementation has it cached, it will use that instead. 
18:03:27 <elliott> Sgeo: For instance, you could just say: 
18:03:37 <elliott> and if the implementation has that hash (as it would, for the standard library), it will use it. 
18:03:41 <elliott> This can also be used as a database. 
18:03:47 <ais523> olsner: the language is assembly language or assembler; the tool is always an assembler 
18:03:53 <elliott> Sgeo: But! What if a bug in the stdlib was fixed without changing the interface? 
18:03:56 <ais523> and "an assembly" is a .NET-related term 
18:04:07 <elliott> Sgeo: This is handled with an "API hash". 
18:04:20 <elliott> Sgeo: An API hash for the standard library might look like this, assuming the only functions in it were foo and bar: 
18:04:28 <j-invariant> I thoguht you said... This is handled with an API pattern 
18:04:39 -!- oerjan has quit (Quit: leaving). 
18:04:42 <elliott> Sgeo: [[Stdlib; 1]: [foo: []; bar: []]] 
18:04:52 <elliott> Sgeo: The _hash of this map_ is the "API hash". 
18:05:01 <elliott> Sgeo: Say it's foobarbaz. You could use the stdlib like this: 
18:05:02 <olsner> ais523: sweet, then I've been right all along when coding in assembler 
18:05:13 <elliott> Stdlib: (~foobarbaz|http://amethyst.org/stdlib/1.0) 
18:05:23 <elliott> Sgeo: The integer in [Stdlib; 1] would be incremented every time a breaking API change is made. 
18:05:38 <elliott> Sgeo: But, you say, how would a module declare that it supports this interface? Easy. 
18:05:45 <elliott> Sgeo: You know how in MISC, every map has another map attached to it, as metadata? 
18:06:11 <elliott> Sgeo: The same applies to Amethyst. Let's call the map [[Stdlib; 1]: [foo: []; bar: []]] "StdlibAPI", for conciseness. 
18:06:32 <elliott> Sgeo: You would write: [...the stdlib implementation...]@[provides: [StdlibAPI; AnotherAPI; Etc]] 
18:06:44 <elliott> Sgeo: Amethyst would check that it does indeed obey the API requested. 
18:06:58 <elliott> Sgeo: All this is done sandboxed, so a malicious library (if you just specify an API hash and not a map hash) can't do anything the program doesn't let it. 
18:07:19 <Sgeo> Will this language ever be implemented? 
18:07:37 <elliott> Sgeo: Have you FALLEN IN LOVE yet, or do I need to tell you about the HOTSWAPPING? 
18:08:01 <Sgeo> I want to hear about it 
18:08:19 <elliott> Sgeo: You can hotswap. Any questions? 
18:09:27 -!- Tritonio has joined. 
18:09:28 <elliott> Sgeo: Here's something you might like that I'm considering: Infix math by default. 
18:09:48 <Sgeo> Only if I could easily and sens.. actually 
18:09:55 <Sgeo> I really don't see how that would work 
18:10:14 <elliott> Sgeo: I'll explain it simply. 
18:10:20 <Gregor> I am holding in my hand one of those many Apple display adaptors. Someone explain to me its existence. This one is a DVI-to-DVI adapter. Yes, that's right ... one end DVI male, one end DVI female, it is in essence a 1-inch DVI extension. It's not even like either side is some weird Apple I-Can't-Believe-It's-Not-DVI, both are normal DVI. 
18:10:40 <elliott> Sgeo: The name "2" is bound to a function that takes a function, and another object, and does [function 2 object]. 
18:10:41 <ais523> Gregor: is it wired straight? 
18:10:43 <ais523> it might change the pinout 
18:11:00 <ais523> you can imagine a patch to null-modem serial adapter which would have that sort of pinout 
18:11:05 <Gregor> ais523: That ... is a horrifying possibility. I don't really have the necessary components to test that theory. 
18:11:06 <elliott> Sgeo: Since 2 is actually shorthand for ^[the map that represents 2], and ^ is quote, when you normally mention 2, it just turns into... well, 2! 
18:11:16 <elliott> Sgeo: But when you apply it as a function, it gets looked up as a name. 
18:11:22 <Gregor> I'll have to take it home and test it with my computer. 
18:11:24 <ais523> Gregor: a couple of wires and a multimeter can test it quite easily 
18:11:38 <Gregor> ais523: I'm a computer scientist, not an electrical engineer :P 
18:11:40 <Sgeo> Well, that's... interesting 
18:11:53 <elliott> Sgeo: I'm sorry, do you not like it? I can remove it if you want. 
18:12:00 <elliott> Sgeo: Can you tell me what you would like to see in a language? 
18:13:21 <elliott> Sgeo: BTW, just like in Enchilada, INFORMATION CANNOT BE DESTROYYYED 
18:13:31 <elliott> Sorry, sorry, I accidentally held shift down. 
18:13:40 <Sgeo> elliott, I don't know how that works in Enchilada 
18:13:47 <Sgeo> I didn't even begin to understand it 
18:13:55 <elliott> Sgeo: Is "it" = "Enchilada"? 
18:14:15 <Sgeo> Well, "it" is "how Enchilada works" I guess 
18:15:59 <ais523> (note: that's the same smiley as (:(  ) 
18:16:17 <j-invariant> trying to troll reddit getting 504s F£WTFW 
18:17:38 <ais523> according to Wikipedia, it happens when you contact one of a site's proxies, but the proxy couldn't contact the actual data source 
18:18:04 <j-invariant> elliott: http://www.reddit.com/r/atheism/comments/f4kc0/you_are_never_asked_to_prove_a_negative_then_why/ 
18:18:17 <olsner> A pizza with depth a and radius z has a volume of pi z z a. 
18:18:29 <j-invariant> reddit best questions of the year  right there 
18:18:43 <elliott> j-invariant: oh god why would you ever post that 
18:19:28 <j-invariant> im interesetd in what people will ahve to say 
18:21:26 <Sgeo> I may just be forced to abandon #ioke 
18:22:16 <Sgeo> Which seems to believe it's supposed to be opped 
18:22:42 <ais523> Sgeo: if there are no ops available to kick it, go into #freenode and ask for help 
18:22:47 <elliott> "These logs were automatically created by IokeStormBot on irc.freenode.net using the Java IRC LogBot." 
18:22:53 <elliott> considering the naming similiarity 
18:22:55 <elliott> I suspect it's a legit bot 
18:22:59 <elliott> that really is meant to be opped 
18:23:03 <ais523> "the Java IRC LogBot"? is there only one? 
18:23:16 <ais523> well, a malfunctioning bot is bad for a channel even if legitimate 
18:23:29 <Sgeo> It's not like anyone else is even in the channel 
18:23:30 <elliott>   "hello, #{name}!" println) 
18:23:36 <elliott> ALLOW ME TO REWRITE THIS IN AMETHYST 
18:24:15 <elliott> Sgeo: MOST BEAUTIFUL THING??? 
18:24:28 <ais523> sub hello ($name) { say "hello, $name!"; } 
18:25:13 <Sgeo> <IokeHurricane> elliott: Yes, but only because Jesus once said, Blessed are the refried, for they shall inherit the southwest United States. 
18:25:21 <elliott> Sgeo: What do you think the perfect expression of 
18:25:21 <elliott> <elliott> hello = method(name, 
18:25:21 <elliott> <elliott>   "hello, #{name}!" println) 
18:25:25 <elliott> Please type it out for me. 
18:25:30 <ais523> elliott: well, yes, I just translated your code into perl 6 
18:28:15 <Sgeo> First off, just [hello: whatever] how is it clear that that map globally assigns stuff? 
18:29:36 <elliott> Sgeo: I'm not asking for Amethyst. 
18:29:44 <elliott> I'm asking for how you would want to write that function. 
18:30:14 <elliott> ais523: hmm, gah, I can't think of any sane way to handle nickname changes in a logbot 
18:30:17 <Sgeo> Probably similar to Ioke, except making it clearer that the second argument is code 
18:30:21 <ais523> elliott: there isn't one 
18:30:28 <elliott> ais523: how does clog do it? 
18:30:44 -!- pumpkin has joined. 
18:30:50 <Sgeo> How does the deceased IokeStormBot do it? 
18:30:58 <ais523> it constantly keeps a membership list for each channel, when it gets a NICK message it places a nickname change message in each channel that nick was a member of 
18:31:29 -!- copumpkin has quit (Ping timeout: 240 seconds). 
18:31:43 <elliott> I should make Herobrine do NAMES #channel every time the server pings it 
18:31:47 <elliott> just to avoid desynchronisation 
18:33:53 <elliott> ais523: wow, logging is Hard 
18:34:35 <elliott> ais523: hard enough that I'm going to implement botte first 
18:36:05 <elliott> I KNOW WHAT I SHOULD WRITE BOTTE IN 
18:37:38 <ais523> elliott: write Amethyst in Feather, using scapegoat as your VCS 
18:37:40 <elliott> hey ais523, what's the perfect database system, 
18:37:52 <ais523> err, depends on what you want to use it for, I suppose 
18:38:27 -!- poiuy_qwert has joined. 
18:38:30 <elliott> ais523: I basically want something like Datalog :P 
18:38:57 <elliott> ais523: it's Prolog, but sub-TC 
18:39:02 <elliott> with an efficient algorithm for finding results 
18:39:11 <ais523> hmm, so going the other way from Proud 
18:40:10 <elliott> $ time (grep butts big | wc -l) 
18:40:14 <elliott> (big is the combined clog logs) 
18:40:25 <elliott> unfortunately, doing this with, say, Ruby, even without regexps, produces something much slower 
18:40:32 <elliott> so I can't really just use a linear array 
18:41:11 -!- poiuy_qwert has quit (Client Quit). 
18:46:02 <Vorpal> <elliott> I should make Herobrine do NAMES #channel every time the server pings it <-- err 
18:46:14 <Vorpal> elliott, just track PART, JOIN, QUIT, KICK? 
18:46:38 <elliott> Vorpal: Except that each day is in a different file. 
18:46:43 <elliott> I suppose I could make it do NAMES on each new day. 
18:49:31 <Vorpal> elliott, that would work. And after reconnect of course 
18:49:58 <Sgeo> What if, in a thousand years, there end up being genuine worshippers of Inglip? 
18:50:19 <elliott> I'll do the same for TOPIC, just in case. 
18:50:40 <Vorpal> elliott, you could just load history when you need to work out who was there? 
18:51:15 <Vorpal> elliott, and for internal state it would presumably keep track of that elsewhere when running 
18:52:36 <elliott> Vorpal: The log bot is really dumb, it just responds to pings and logs to a file. 
18:52:39 <elliott> The formatter does all the grunt work. 
18:54:27 <j-invariant> elliott: why is jmcarthur being .. like that? 
18:57:56 -!- sebbu2 has joined. 
19:00:16 -!- oerjan has joined. 
19:00:35 -!- sebbu has quit (Ping timeout: 240 seconds). 
19:09:03 -!- asiekierka_ has quit (Remote host closed the connection). 
19:14:18 -!- Herobrine has joined. 
19:14:37 <Sgeo> elliott, what are your thoughts on Nimrod? 
19:14:48 <elliott> i have none as it looks boring. the variable naming thing is whack 
19:20:30 -!- cal153 has quit (Ping timeout: 240 seconds). 
19:30:37 -!- Herobrine has quit (Remote host closed the connection). 
19:30:46 -!- Herobrine has joined. 
19:35:12 -!- Herobrine has quit (Remote host closed the connection). 
19:35:30 -!- Herobrine has joined. 
19:37:15 -!- Herobrine has quit (Remote host closed the connection). 
19:37:26 -!- Herobrine has joined. 
19:39:19 -!- acetoline has joined. 
19:40:28 <Tritonio> Would you guys be interested in a 2D war game where you program insects in Brainfuck? 
19:40:54 <elliott> Sounds interesting enough. 
19:42:00 <Tritonio> the insects are not real insects... They will give birth to other insects though, that's why I used the metaphor. :-P 
19:42:06 <oerjan> I for one welcome our new insect overlords 
19:43:11 -!- calamari has joined. 
19:43:56 <Gregor> It's too bad that the only sexual lifeform in existence is insects :P 
19:44:16 <Gregor> (Also, insects don't "give birth") 
19:44:26 <Gregor> calamari: Also, they're DIRECTORIES. 
19:45:17 -!- elliott has set topic: Esoteric programming languages | Wiki: http://esolangs.org/wiki/ | Logs at http://tunes.org/~nef/logs/esoteric/?C=M;O=D or http://208.78.103.223/esoteric/ (formatted). 
19:45:29 <Gregor> WHY'D YOU LAME UP THE TOPIC AGAIN 
19:45:54 <elliott> Gregor: EXCUSE ME WE HAVE FORMATTED LOGS NOW THIS IS GOOD? 
19:46:00 <elliott> Gregor: Also, it was because we could possibly have had a visitor. 
19:46:04 <elliott> I was justifying me getting the name Herobrine from its owner. 
19:46:15 <Gregor> elliott: Yeah, but you got rid of our support group :( 
19:46:18 <elliott> Which involved "mumble mumble #esoteric offshoot channel Minecraft". 
19:46:26 <calamari> Gregor: hey, I call them directories too, why the misdirected rage? lol 
19:46:28 <elliott> Gregor: I DID NOT WANT MR. RANDOM NICKOWNER TO GET A BAD IMPRESSION OF US 
19:47:01 <elliott> I will probably convert the clog logs to the format of this sometime. 
19:47:03 <Gregor> calamari: Oh, I had forgotten who I was arguing with about that on the Book of Faces, thought it was you X-P 
19:47:19 <calamari> but... I call them directories because that's how I learned to call them in Microsoft's MS-DOS, so that probably doesn't help you :) 
19:47:37 <elliott> As opposed to Apple's MS-DOS? 
19:47:58 -!- ais523 has quit (Remote host closed the connection). 
19:48:39 <Sgeo> mkdir "a folder that is not a poorly named directory" 
19:49:27 -!- cheater- has quit (Ping timeout: 240 seconds). 
19:51:15 -!- cal153 has joined. 
19:57:48 -!- calamari has quit (Quit: Leaving). 
19:58:15 -!- calamari has joined. 
19:59:00 <calamari> elliott: I was stressing the "Microsoft"ness of it.. which I think is the true reason he doesn't like "folder" lol 
19:59:21 <elliott> Gregor WORKED for Microsoft, that's why he loves FOLDERS. 
19:59:37 <calamari> he worked for ms... must disown 
19:59:49 <Gregor> I worked for Microsoft RESEARCH 
19:59:54 <calamari> oh.. I worked for ms.. guess that cancels out :( 
20:00:27 <calamari> I took tech support calls for win9x 
20:00:45 <elliott> calamari: Ha ha, Gregor was higher up the Microsoft pecking order than you-uu 
20:00:53 <elliott> Gregor was a research monkey, you were a telephone monkey. 
20:00:57 <elliott> (Ballmer is just a monkey.) 
20:01:18 <calamari> it was a goood paying job while I was going thru school, no real regrets 
20:01:29 -!- oerjan has quit (Remote host closed the connection). 
20:01:38 -!- oerjan has joined. 
20:01:59 <elliott> calamari: Gregor was 4 when he worked at MS Research. 
20:02:07 -!- cheater- has joined. 
20:02:14 <Vorpal> elliott, so he is like 5 or 6 now? 
20:02:14 <elliott> He just looks abnormally old for his age, which is why he looks 80 now; he's actually only 20-something. 
20:02:26 <elliott> Isn't that right, Gregor? Or should I say: GRANDPA? 
20:02:29 <Vorpal> elliott, he worked for MS Research last year? 
20:02:41 <elliott> No, 16+n years ago for n < 10. 
20:03:10 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 
20:03:14 -!- Phantom__Hoover has joined. 
20:03:31 <calamari> argh.. stupid Java.. just frigging flush 
20:03:32 <Vorpal> elliott, indeed. n is a value between 0 and 1 even 
20:03:59 <elliott> Yeah, Gregor is just 21. thousand years old 
20:04:03 <Vorpal> elliott, any opinions on the AVR family of the CPUs? 
20:04:12 <Vorpal> well not CPUs, system on a chip rather 
20:04:16 <Gregor> Are we done loonying me yet? :P 
20:04:34 <elliott> Gregor: Have you taken your meds lately, gramps? 
20:05:54 <Vorpal> elliott, no? What ISAs do you have opinions on then? And I mean apart from "sucks, go back to lisp machine style where it is tailored for high level language" 
20:07:27 <Vorpal> elliott, so you don't think ARM is better than x86 for example? 
20:09:14 <Gregor> JavaScript is better than ARM. 
20:09:26 -!- cheater- has quit (Ping timeout: 240 seconds). 
20:10:19 <Gregor> elliott: I SEE WUT U DID THAR 
20:10:24 <elliott> 6501 man, I had it on vinyl 
20:10:47 <elliott> "The 6502 is a 6501 with the pins re-arranged following a lawsuit by Motorola over the 6501's pin arrangement." 
20:11:10 <elliott> I had it BEFORE they sold out and rearranged the pins. 
20:11:19 <Gregor> A lawsuit ... about pin arrangement. 
20:12:43 <pikhq> God I can't wait for Wayland to replace X. 
20:14:10 <elliott> pikhq: #esoteric-minecraft! BECAUSE THEY OPPRESS US IN HERE 
20:15:14 <Gregor> GET YER MINECRAFT TALK OUTTA HERE YA MINECRAPPERS 
20:15:26 <Vorpal> <pikhq> God I can't wait for Wayland to replace X. <-- what happened 
20:15:34 <Vorpal> that made you say that I meant 
20:15:43 <Vorpal> <Gregor> A lawsuit ... about pin arrangement. <-- yes old 
20:16:46 <pikhq> Vorpal: Nothing much, I'm just still annoyed at X's really annoying design. 
20:17:32 <Vorpal> pikhq, can you do wayland forwarding btw? 
20:17:51 <elliott> Vorpal: No, but you can do gtk/qt forwarding. 
20:17:56 <Vorpal> (note: I actually used X forwarding for seriouss applications like twice) 
20:18:01 <elliott> (Well, you will be able to roughly at the time their Wayland support will become stable.) 
20:18:11 <calamari> I guess I can wait.. as I'm currently connected to my laptop with ssh -X and x2x 
20:18:14 <elliott> Vorpal: Wayland's position is that it belongs at the toolkit level to improve throughput and performance. 
20:18:19 <pikhq> Vorpal: Nobody has *written* it, but it's entirely possible to write a Wayland remote access system. 
20:18:29 <Vorpal> elliott, good thinking 
20:18:41 <elliott> But I don't think you could do it per-window "generically". 
20:18:45 <pikhq> elliott: VNC or RDP style if you want it generic. 
20:18:49 <Gregor> If you can have a VNC-headed Wayland server, and also can share your current Wayland session via VNC, then it has everything I need :P 
20:19:14 <pikhq> elliott: Basically write a Wayland compositor that shoves it out via your protocol of choice. 
20:19:42 <Gregor> pikhq: That still puts it decades ahead of Windows and Mac :P 
20:19:46 <pikhq> Not quite as nice as X for stuff using the actual X drawing primitives, but almost surely beats X otherwise. 
20:20:00 <elliott> Gregor: Windows has VNC, dude :P 
20:20:12 <elliott> It seems like I might have to start maintaining gnome-panel soon... 
20:20:27 <pikhq> (Remote X for GTK/Qt is *such a pain*, as they just treat the X display as a framebuffer...) 
20:20:54 <Gregor> elliott: With Remote Desktop (and the money to fork out for it), you can have a limited number of otherwise-headless sessions. On Mac OS X, to my knowledge, you simply can't. On anything X-based, arbitrary users can start VNC-headed X sessions just for giggles. It's not even comparable. 
20:21:06 <Gregor> s/Remote Desktop/Terminal Services or whatever/ 
20:21:16 -!- calamari has left (?). 
20:21:19 <elliott> Gregor: Dood, there are third-party server/clients :P 
20:21:25 -!- calamari has joined. 
20:21:26 <elliott> Sorry calamari, but I can't answer questions if you're not here. 
20:21:46 <Gregor> elliott: There are third-party servers/clients that share your CURRENT desktop, not establish new ones. (Unless I'm wrong, I've been out of Windows for a long time) 
20:21:49 <pikhq> elliott: The idea is to create arbitrary *additional* sessions, which you straight up can't do on Windows without Remote Desktop. 
20:21:52 <elliott> calamari: No, I don't, but gnome-panel is being deprecated in favour of the awful GNOME Shell monstrosity. I think they're replacing Nautilus too, although I'm not sure about that. 
20:22:04 <elliott> calamari: And, well, I want to keep using gnome-panel. 
20:22:11 <elliott> And I don't trust it not to bitrot :P 
20:22:15 <pikhq> And you can still do to your heart's content on Unix. 
20:22:32 <pikhq> Even with Wayland. 
20:23:09 <pikhq> Even makes it easier to create a VNC server. No need to deal with a 50-ton code base! 
20:23:17 <calamari> elliott: can you add a Run option on the gome menu while you're at it? 
20:24:07 <elliott> calamari: You can also add "Run Application..." to the panel as an applet :P 
20:24:39 <calamari> yeah, I used to have that but my panel space is precious 
20:24:47 <calamari> I'll have to try to remember alt-f2 
20:25:09 <elliott> calamari: Apparently gnome-panel-control --run-dialog works if you have that installed, so you could just add that to the menu. 
20:25:21 <elliott> The program 'gnome-panel-control' is currently not installed.  You can install it by typing: 
20:25:21 <elliott> sudo apt-get install openbox 
20:25:24 <elliott> It might be some openbox tool. 
20:25:29 <elliott> You can probably do it with DBus... 
20:25:51 <calamari> sorry.. I was mostly just joking, I know that didn't come across well 
20:26:05 <elliott> calamari: I'm actually just curious myself :P 
20:26:10 <elliott> I always assumed it was a separate program. 
20:26:14 <Vorpal> <elliott> The program 'gnome-panel-control' is currently not installed.  You can install it by typing: 
20:26:14 <Vorpal> <elliott> sudo apt-get install openbox 
20:26:27 <calamari> it was one of the things that got me to ditch Gnome years ago.. well that and the menu didn't have a decent editor.. well and a lot of other stuff that was hosed 
20:26:29 <Vorpal> elliott, yes I'm lost for speech 
20:26:37 <Vorpal> elliott, "gnome" "openbox" 
20:26:40 <elliott> Openbox works with GNOME panels and the like. 
20:26:45 <elliott> calamari: The menu has a decent editor now :P 
20:27:03 <calamari> yeah, I decided to give gnome another chance on my laptop and it seems fine again 
20:27:10 <Sgeo> comex seems interested in Nimrod 
20:27:20 <elliott> He's used it, says pumpkin. 
20:27:43 <elliott> calamari: This program pops up the run dialog: http://www.codefu.org/people/darkness/gnome-run.c ...how ridiculously overcomplicated 
20:27:44 <calamari> I love how kde 3 gives me a ton of options :) 
20:27:53 <elliott> pumpkin: Just responding to Sgeo... 
20:27:55 -!- Phantom__Hoover has changed nick to Notch. 
20:28:55 -!- Notch has changed nick to Phantom_Hoover. 
20:28:58 <elliott> Notch: You're banned from #esoteric-minecraft :P 
20:29:24 <Sgeo> You know there's a #minecraft channel on Freenode... 
20:29:37 <calamari> you guys are java masters, right?  why is the data sent from my java client socket not getting to the server until after I disconnect?  some buffer that I need to flush? 
20:29:40 <elliott> He means to go in there as Notch. 
20:29:42 <elliott> calamari: No, we all hate Java. 
20:29:47 -!- Phantom_Hoover has changed nick to Notch. 
20:29:49 <elliott> calamari: But yeah, try flushing :P 
20:30:05 <calamari> yeah I flushed, don't like to leave things floating around 
20:30:55 <calamari> I guess it's not strictly Java.. it's Dalvik 
20:31:10 <calamari> could be they didn't implement flush 
20:31:47 <elliott> Sgeo: they think it's really him. 
20:32:33 <Gregor> The UK mail tracker says my package is in the US, the US mail tracker says my package is in the UK. 
20:34:57 <Sgeo> I think they stopped believing rather quickly 
20:36:16 <Vorpal> Gregor, guess: it just left UK but hasn't arrived in US yet thus not registered there yet 
20:36:34 <Gregor> Vorpal: It's been in this state since Thursday :P 
20:36:35 <Notch> Gregor, neither country wants to own up to having it. 
20:36:49 <Gregor> Or they sent it by ship. 
20:36:49 <Vorpal> Gregor, what is it? (if I may ask) 
20:36:53 <elliott> Notch: That's what I was going to say. 
20:37:04 <Vorpal> Gregor, isn't that what they usually do? Send it by ship 
20:37:04 <Gregor> Vorpal: EVIL. In a box. With a little bit of hope in it. 
20:37:13 <Gregor> Vorpal: ... yes. In the 1800s. 
20:37:41 <Vorpal> Gregor, so they fly the packets now? Don't you need to pay extra for that? 
20:37:57 <elliott> They fly the TCP packets and what decade is Vorpal living in. 
20:38:14 <Gregor> Vorpal: It's either ground or air, there is no ship shipping. 
20:38:24 <Vorpal> elliott, I seem to remember stickers saying "air mail" you had to put on the envelopes 
20:38:27 <Notch> Sgeo, FWIW, I really hope they don't think I'm really Notch. 
20:38:41 <Sgeo> This is douchebaggy 
20:38:49 <Notch> I mean, my hostname is "unaffiliated/Phantom_Hoover/x-<numbers>" 
20:38:57 <Notch> Sgeo, if they believe me, they are idiots. 
20:39:00 <Notch> And hence fair game. 
20:39:10 <Notch> <Yetanotherx> Notch: I don't have a problem per se... I'm just so starstruck right now so I'm saying hi. :D 
20:39:30 <elliott> Oh dear god this is the best. 
20:39:31 <Vorpal> Gregor, you need to cross water to get to US. So that explains the speed. I never heard of a fast sea bed driving vehicle! 
20:39:37 <elliott> Sgeo: Seriously, they're believing without even checking if he's authenticated with services. 
20:39:42 <elliott> Without even looking at his hostname. 
20:39:45 <Sgeo> Some of them are believing it 
20:40:09 -!- calamari has changed nick to Phantom_Hoover. 
20:40:24 -!- Phantom_Hoover has changed nick to calamari. 
20:40:31 <Gregor> Notch: But ur my HEROO 
20:40:47 <elliott> <elliott> Banning Notch? What evil! 
20:40:51 -!- Notch has changed nick to Phantom_Hoover. 
20:41:10 <elliott> <Yetanotherx> (best update ever, btw.) 
20:41:17 <elliott> (That was before you got banned.) 
20:41:32 <elliott> <TkTech> FYI, he changed his nick and didn't even bother changing his connected username. 
20:41:32 <elliott> <FoolsRun> TkTech: huh. Werid that it was crashing then. 
20:41:32 <elliott> <TkTech> Hello Phantom_Hoover, aka fake notch. 
20:41:48 <calamari> In the early 90's, we would have some adolescent fun with that.. could have chains of 5 or 6 people with the wrong nicks, trying to talk like the real person would 
20:42:07 <Phantom_Hoover> And say that I didn't actually expect anyone not to notice my hostname. 
20:42:07 <elliott> Phantom_Hoover: I said "<Phantom_Hoover> say hello back from me." 
20:42:50 <elliott> The reddit server thinks I'm a 4channer who took down the server for two minutes, #minecraft thinks Phantom_Hoover is an evil Notch impersonator, we're even :P 
20:43:09 <elliott> Phantom_Hoover: You could just /msg TkTech with it or something, unlikely you'll get unbanned though. 
20:43:44 -!- TkTech has joined. 
20:43:44 <Vorpal> Phantom_Hoover, the real jeb? 
20:44:04 <TkTech> Phantom_Hoover: Really, why would you troll the channel regardless? 
20:44:54 <Vorpal> Phantom_Hoover, I presume you have your channel list world visible 
20:44:55 -!- elliott has set topic: http://esolangs.org/wiki/. 
20:45:00 <TkTech> <-- Been here 4 years, friends with most sysops. 
20:45:01 <Vorpal> you need to set some mode to prevent that 
20:45:15 <TkTech> Vorpal: He does not have them visible, neither does elliott 
20:45:16 <Sgeo> elliott, logged channels are supposed to have logs in the topic 
20:45:19 <elliott> I always knew freenode sysops weren't very professional 
20:45:31 <elliott> Sgeo: The logs are down right now. 
20:45:34 <TkTech> Says the people who just trolled a channel. 
20:45:44 <Vorpal> TkTech, anyway I doubt anyone would believe he was notch. The "~phantomho@unaffiliated/phantom-hoover/x-3377486" kind of makes it obvious he isn't 
20:46:06 <TkTech> Vorpal: Regardless, most users in #minecraft would not know how to check nor noticei t. 
20:46:17 <elliott> Shouldn't it be ##minecraft anyway? 
20:46:38 <Vorpal> TkTech, well that is their issue. If people don't read the manual then they have only themselves to blame 
20:46:56 <TkTech> Vorpal: No, they have occasional dickwads to blame and their own sense of trust :) 
20:47:17 <TkTech> Phantom_Hoover: dickroll? 
20:47:43 -!- Tritonio has quit (Quit: Leaving). 
20:47:44 <Vorpal> TkTech, uh. wrong. Also "their own sense of trust" just amounts to the same as what I said. They only have themselves to blame. 
20:47:50 * Gregor sips tea while watching this bizarre drama unfold. 
20:47:50 <Sgeo> I have to admit.. after PH /nicked to Notch, I vaguely mentioned #minecraft's existence 
20:47:56 <Sgeo> So I feel a bit guilty 
20:47:58 <TkTech> elliott: by those same channel naming guidlines, this should be ##esoteric as it's a topic :) 
20:48:05 <elliott> Sgeo has the biggest guilty conscience I have ever seen. 
20:48:11 <Gregor> elliott: Yeah, it's weird. 
20:48:15 <elliott> TkTech: Minecraft is ownable, esoteric programming languages are not :P 
20:48:21 <elliott> Sgeo: You realise everyone knows #minecraft exists... 
20:48:26 <Vorpal> TkTech, this is actually old enough to predate those rules 
20:48:32 <elliott> TkTech: Besides, we're 2002 vintage, it's Freenode's problem, not ours 
20:48:55 <elliott> Our teeth are made out of pure whiskey and we ban people for breakfast! 
20:49:03 <TkTech> Vorpal: If a company or OS group with a strong presence asks for it and can prove they use the name, your channel can be moved :) 
20:49:09 <Vorpal> elliott, frozen? I doubt such teeth would work 
20:49:20 <Vorpal> TkTech, nice trolling there :P 
20:49:23 <elliott> TkTech: Good thing no company is called Esoteric Enterprises then 
20:49:44 * Gregor founds The Esoteric Academy of Esoterica and petitions Freenode. 
20:49:49 <TkTech> elliott: http://www.bizfind.us/5/1503046/esoteric-enterprises/san-francisco.aspx 
20:50:08 <Gregor> I'm betting ... sex toy shop. 
20:50:09 -!- elliott has set topic: ESOTERIC ENTERPRISES, SAN FRANCISCO, CORPORATE CHANNEL. 
20:50:18 <Gregor> Oh, it lists the category :P 
20:50:20 -!- elliott has set topic: ESOTERIC ENTERPRISES, SAN FRANCISCO, CORPORATE CHANNEL | SERIOUSNESS EXCLUSIVELY. 
20:50:40 <Gregor> TkTech: Sex toys are the best kind of clothing. 
20:50:56 <Sgeo> *children's clothing 
20:50:57 <elliott> Women's child's clothing, so if you're not the child of a woman, you can go fuck yourself. 
20:50:59 <TkTech> Wonder if they just looked up random dictionary words to form a name. 
20:51:58 <TkTech> Phantom_Hoover: Certainly 
20:52:19 -!- Gregor has set topic: ESOTERIC ENTERPRISES, SAN FRANCISCO, CORPORATE CHANNEL | SERIOUSNESS EXCLUSIVELY | We do not make sex toys, and discourage you from going behind the black curtain labeled "There are no adult products in this store" | Logs at http://tunes.org/~nef/logs/esoteric/?C=M;O=D or http://208.78.103.223/esoteric/ (formatted). 
20:53:24 -!- elliott has set topic: ESOTERIC CORPORATION PTY LIMITED | http://www.esotericcorp.com.au/. 
20:53:49 -!- elliott has set topic: ESOTERIC CORPORATION PTY LIMITED | http://www.esotericcorp.com.au/ | Service to businesses looking for personal attention and a high degree of accounting expertise. Smiling people around a circular table.. 
20:53:49 <calamari> what's so good about minecraft anyways? just a fad? 
20:54:02 <TkTech> Lego, just crashes more 
20:54:04 <elliott> calamari: It's like Lego, except you can blow stuff up. 
20:54:10 <Sgeo> comex, what's your opinion of Nimrod? 
20:54:15 <Phantom_Hoover> Anyone have any idea about zzo's Dirac notation-in-accounting. 
20:54:16 <elliott> The crashing is usually correlated with blowing stuff up. 
20:54:22 <Vorpal> <Phantom_Hoover> Accountants. <-- yes it makes no sense. at all 
20:54:25 <elliott> Phantom_Hoover: Nobody has any idea about zzo38 anything. 
20:54:30 <calamari> haven't played any lego games on my computer 
20:54:33 <Vorpal> elliott, not that either! 
20:54:41 <Vorpal> elliott, but I meant accounting + "esoteric" in the name 
20:54:43 <elliott> calamari: That's another disadvantage to Minecraft, it requiers a computer. 
20:54:46 <calamari> my kids have ton of actual legos tho heh 
20:54:48 <Vorpal> Phantom_Hoover, hah indeed 
20:54:56 <elliott> calamari: We were talking about actual lego :P 
20:55:59 <Vorpal> speaking of which. If anyone need to figure out how to get a cross compiler toolchain to the Lego RCX unit I can help 
20:56:00 <elliott> If only Notch was here to frown upon people. 
20:56:08 <elliott> Vorpal: I think nobody will EVER need that :P 
20:56:38 <Vorpal> elliott, well I actually wrote that guide for myself to reference mostly. Since I needed to do it again on another computer 
20:56:48 <TkTech> elliott: ;\ I have gcc set to cross-compiler C to my old 2002 RCX 
20:56:55 <elliott> OK, well anyone who matters. >__> 
20:57:47 <Phantom_Hoover> Anyone who doesn't appreciate the HILARITY of posing as Notch. 
20:57:55 <Vorpal> TkTech, don't remember when mine is from 
20:57:58 <Gregor> I didn't realize they ever made a GCC->RCX X-compiler. 
20:57:58 <TkTech> Vorpal: I think, haven't touched it in a long while 
20:58:02 <Gregor> I just remember seeing about Java for it. 
20:58:07 <Vorpal> TkTech, anyway using bibo, not brickOS these days 
20:58:08 <TkTech> Vorpal: one of the first-gen yellow bricks 
20:58:15 <Sgeo> Hey, this time me causing someone to come to this channel was only very, very indirect! 
20:58:16 <elliott> MY LEGOS ARE MADE OUT OF PLASTIC DAMMIT 
20:58:19 <elliott> THEY STICK TOGETHER AND VERY LITTLE ELSE 
20:58:41 * calamari swaps elliotts legos for best locks  
20:58:51 <Vorpal> TkTech, well I have two. One from RIS 1.5 and one from RIS 2.0. The one from RIS 1.5 is dead. No clue how, it worked when I put it away for some years. Was dead when I took it out of the box last year. 
20:58:53 <TkTech> Sgeo: I was here years ago, I think I first posted a whitespace interpreter what, 4 years ago 
20:58:59 <elliott> Phantom_Hoover: THEY BREAK IF YOU SNAP THEM 
20:58:59 <calamari> ha ha, now they don't even stick together 
20:59:15 <elliott> TkTech: DON'T THINK YOUR STATEMENTS WILL GO UNVERIFIED 
20:59:17 <elliott> I AM RUNNING GREP AS WE SPEAK 
20:59:35 <TkTech> elliott: I'd <3 logs if you have them 
20:59:44 <elliott> Nobody has any logs, sorry, especially not Gregor in an hg repository. 
20:59:47 <Vorpal> > select * from irc.logs where nick = 'TkTech'; 
20:59:47 <Vorpal>  serial | tstamp | nick | target | uhost | type | body 
20:59:48 <Vorpal> --------+--------+------+--------+-------+------+------ 
20:59:49 <lambdabot>   <no location info>: parse error on input `where' 
21:00:11 <Gregor> Vorpal: ... you have IRC logs in a DB? 
21:00:18 <elliott> Gregor: fizzie set it up first to do ANALYSIS. 
21:00:21 <Vorpal> Gregor, this is old news. fizzie made the script to begin with 
21:00:23 <elliott> Then Vorpal copied like always. 
21:00:35 <Vorpal> elliott, yes like you copied mcmap 
21:00:44 <Vorpal> I ported it to postgre 
21:00:49 <Vorpal> way faster than sqlite 
21:01:22 <Vorpal> TkTech, nothing case insensitive either 
21:01:30 <Vorpal> TkTech, got any other nick suggestion? 
21:01:38 <elliott> Does his claim really need verification :P 
21:01:45 <elliott> It's not the most outrageous one I've heard 
21:01:49 <TkTech> Vorpal: linuxhq? Searching google for references to this nick pre-2007 
21:01:54 <Sgeo> Scott Adams can verify his clam, if needed 
21:01:55 <TkTech> Vorpal: not having much luck 
21:02:09 <Vorpal> no nick like linuxhq either 
21:02:10 <elliott> pikhq: So how are Pik/Linux relations? 
21:02:18 <TkTech> Apparently I was interested in Lua in 2007 
21:02:19 <elliott> Are you at peace with the linuxhq? 
21:02:49 <Vorpal> well I conclude that your claim about having been here before is false if your claim about using the same nick is also true 
21:03:28 <j-invariant> this things prints sqrt(2)^2 + 2 sqrt(2) + x^2 for (x+sqrt(2)x)^2 
21:03:47 <oerjan> <elliott> calamari: It's like Lego, except you can blow stuff up. <-- technically you _could_ blow up LEGO® bricks, just saying 
21:03:56 <elliott> oerjan: But not with other lego bricks that look like TNT. 
21:04:09 <elliott> That look like dynamite with "TNT" written on them :P 
21:04:45 <Phantom_Hoover> I love the way that MC combines three different explosives into one. 
21:07:00 -!- copumpkin has joined. 
21:07:49 -!- pumpkin has quit (Ping timeout: 240 seconds). 
21:12:23 * oerjan thinks the nick linuxhq vaguely rings a bell 
21:13:19 <TkTech> I've been googling for a bit, I can find mentions back to 2007 but it doesn't appear as if I specifically visited this #esoteric ;-( 
21:13:33 <Gregor> There are other #esoterics? :P 
21:13:55 <elliott> There's the original EFNet #esoterica that got used for all of a day before lament told andreou to come to freenode :P 
21:13:57 <Phantom_Hoover> No appearance of the string "linuxhq" in the codu logs. 
21:14:02 <elliott> Phantom_Hoover: :slowpoke: 
21:14:18 <elliott> We should write a creation story based on our history, that would be... uh... stupid. 
21:14:31 <TkTech> #osdev's would be more enteraining 
21:14:43 <TkTech> Including the 12 year troll. 
21:14:53 <TkTech> Really, gr00ber's been trolling it before freenode. 
21:15:00 -!- MigoMipo has quit (Ping timeout: 240 seconds). 
21:15:19 <TkTech> Phantom_Hoover: A slightly disturbed fellow whose stalked the channel and the ops for over a decade, before the move to freenode 
21:15:23 <calamari> elliott: but I don't want to write about graue :( 
21:15:34 <TkTech> Phantom_Hoover: Routinely gets k-lined by tomaj 
21:15:42 <elliott> Graue has nothing to do with this IRC channel, that comes way after that. 
21:15:50 <elliott> I've always stayed away from osdev as I suspect them to be slightly insane. 
21:15:53 <oerjan> It is pitch dark.  You might be eaten by a graue. 
21:16:02 <Gregor> elliott: By that logic, you have nothing to do with this IRC channel :P 
21:16:09 <elliott> Gregor: Its founding, no :P 
21:16:16 <elliott> calamari: Does *anyone* get along with Graue? :-) 
21:16:56 <Gregor> I don't get along with him because he creates another layer of Gregor/Gracenotes ambiguity :P 
21:17:10 -!- elliott has changed nick to Gregori. 
21:17:15 -!- Gregori has changed nick to elliott. 
21:17:31 <calamari> I remember when a guy left to go fight in the war and gave me the keys to esolangs.org.. that must have really shined him on lol 
21:18:39 <Phantom_Hoover> <elliott> calamari: Does *anyone* get along with Graue? :-) ← well, I had a cordial email conversation with him a while ago. 
21:19:45 <calamari> too many vowels in a row, it's immediately irritating.. kinda like people that use their first name as their nick .. oh wait 
21:20:12 <elliott> That change to [[Tepir]] was me, nobody revert it :P 
21:20:21 -!- MigoMipo has joined. 
21:21:33 * oerjan swats calamari -----### 
21:21:45 <oerjan> YOU JUST BE GLAD I DIDN'T BAN YOU 
21:21:47 <Gregor> Calamari Jones is a self-hating squid. 
21:22:17 <elliott> Phantom_Hoover: it was eating up all of his time 
21:23:26 <Sgeo> http://progopedia.com/ 
21:23:32 <Sgeo> This cannot be good 
21:24:09 <Sgeo> Meh, it's too new to be that interesting 
21:26:26 -!- revenantphx has joined. 
21:26:45 -!- revenantphx has left (?). 
21:27:00 <oerjan> Phantom_Hoover: WHAT IS THIS NONSENSE ON THE WIKI ABOUT TRYING TO GET THE CHANNEL ON TOPIC 
21:27:53 <calamari> it has my lame Hanoi Love language but not Linguine.. bummer 
21:27:58 <elliott> oerjan: my edit was not a revert 
21:28:45 <oerjan> (i actually just said that to Phantom_Hoover to make sure elliott checked the wiki) 
21:28:53 -!- quintopia has quit (Remote host closed the connection). 
21:30:08 -!- quintopia has joined. 
21:30:08 <oerjan> SOMEONE SEEMS TO HAVE AN ANGER PROBLEM 
21:33:21 -!- augur_ has changed nick to augur. 
21:34:14 <oerjan> MUST BE THOSE TEEN HORMONES 
21:34:58 <olsner> yay, context switching works 
21:35:08 * olsner punches Phantom_Hoover 
21:35:12 <elliott> olsner: now give it a transparent GUI and a tcp stack 
21:35:45 <olsner> it's missing a *few* things before that can be worked on though 
21:36:47 <elliott> olsner: so you implemented context switching in userspace right? :D 
21:36:55 <Vorpal> Phantom_Hoover, uh. Good thing I had my hard hat on 
21:37:15 <Vorpal> just slightly disoriented there for a few seconds 
21:38:01 <elliott> Sgeo: what is your preferred data structure for everything to be, an ordered map where both keys and values are optional or an unordered map 
21:38:06 * oerjan poisons Gregor's tea while everyone else is watching the brawl 
21:38:21 <Gregor> Good thing I don't actually drink tea. 
21:38:24 <olsner> elliott: well, what I have actually done is a yield syscall that switches to the next runnable process 
21:38:46 <olsner> and I have a flag for whether a suspended process can just be sysret:ed to or if all the registers need to be restored 
21:38:48 <calamari> really?  I thought all liberals drank tea 
21:38:54 <elliott> olsner: Now make a user-space process that forcibly inserts such syscalls into its children :D 
21:39:15 * Sgeo installs Nimrod 
21:39:24 <oerjan> * Gregor sips tea while watching this bizarre drama unfold. <-- SOMEONE IS NOT TELLING THE TRUTH 
21:39:34 <olsner> elliott: hehe, right... and then solve the halting problem to figure out where those syscalls are required 
21:39:50 <elliott> olsner: no, just insert them every N instructions 
21:39:52 <Gregor> Phantom_Hoover: Same way I don't drink coffee, beer, wine or ... whatever else you like. 
21:39:59 <elliott> olsner: and make sure you insert one before every jump 
21:40:11 <elliott> Gregor drinks liquid babies. 
21:40:22 <Gregor> Phantom_Hoover: Other than tea. 
21:40:24 <Phantom_Hoover> You'll hang from the highest yard-arm in Leith docks for that slight! 
21:40:27 <oerjan> Gregor: DO YOU KNOW HOW HARD IT'S TO GET HOLD OF CHROMIUM CYANIDE?!=\ 
21:40:44 <Gregor> oerjan: Bravo on the reference :P 
21:41:06 <Gregor> However, the irritation from the chromium seems rather pointless what with the cyanide. 
21:42:11 <Gregor> Phantom_Hoover: ... I didn't? 
21:42:15 <olsner> elliott: make every branch cost a syscall == awesome 
21:42:27 <Phantom_Hoover> <Gregor> Phantom_Hoover: Same way I don't drink coffee, beer, wine or ... whatever else you like. 
21:42:42 <Gregor> Phantom_Hoover: Yes, whatever other than tea that you like ... 
21:42:44 <elliott> Cyanide & Chromium Happiness 
21:43:23 <Gregor> Also, I'm as American as <highly-American thing> 
21:43:25 <Phantom_Hoover> Gregor, my point was that English pansies drink tea, not that I like tea! 
21:43:28 <Sgeo> elliott, I don't know. having potentential ordering seems like it would add more, potentially uneeded, complexity 
21:43:32 <elliott> Gregor: Smallpox blankets? 
21:43:38 <quintopia> could there be a language which contains no other instructions than LOAD, STORE, and TRAP that uses no memory-mapped I/O or arithmetic, as it depends on the OS to do all that for it?  if yes, which OS could do it? 
21:43:42 <Gregor> Phantom_Hoover: In that case, I'm as American as <highly-American thing> 
21:43:44 <elliott> Sgeo: Sure, but it lets you express some things easier. 
21:44:02 <Gregor> Phantom_Hoover: My Jewish genes beat it out. 
21:44:05 <elliott> What Phantom_Hoover is saying, Gregor, is that you're gay. 
21:44:29 <Phantom_Hoover> Evidence: Jon Ronson is Jewish, and he's an English pansy. 
21:44:30 <Gregor> elliott: Pfff, you English pansies are far more pansy than our American gays. 
21:44:48 <Vorpal> elliott, your suggestion for syscall based thing works except you don't need a syscall. I believe erlang does what you suggested per scheduler (and it runs one scheduler per CPU) 
21:45:06 <elliott> Vorpal: In @, the compiler inserts the instructions :P 
21:45:11 <Vorpal> elliott, but since you know what you execute then you can just do a cheap decrement of a counter and a check 
21:45:15 <Vorpal> elliott, yes so same thing applies to you 
21:45:16 <Gregor> That being said, I'd much rather have the word "pooftah" in my lexicon than "faggot", but I guess that's because, as mentioned, I'm American :P 
21:45:27 <elliott> Gregor: Shut up, pofftah faggot. 
21:45:28 <Vorpal> elliott, you don't need a full syscall 
21:45:41 <Vorpal> elliott, well that is a different system 
21:45:42 <Gregor> elliott: Wow. Gay on both sides o' the pond :P 
21:45:50 <elliott> Sgeo: The thing is, I can't have optional keys with an unordered thing. 
21:45:55 <olsner> elliott: my OS will be disappointingly traditional for you 
21:45:56 <elliott> Sgeo: So arrays have to be 0 -> first elem; 1 -> second elem 
21:45:59 <elliott> -> first elem; -> second elem 
21:46:12 <olsner> once it gets running programs, it's going to have a SHELL 
21:46:18 <Sgeo> Ok, I guess, I don't see anything terrible about ordered keys 
21:46:26 <Vorpal> olsner, so does it boot in an emulator yet? 
21:46:30 <Sgeo> Wait, why can't ypu? 
21:46:45 <elliott> Sgeo: Because how would you look up a key... 
21:46:59 <Sgeo> elliott, implied keys, MISC style 
21:47:01 <elliott> It needs to be ordered to represent [a; b; c] as (=> a, => b, => c) 
21:47:05 <elliott> Sgeo: i.e., keys aren't optional. 
21:47:24 <Vorpal> <Gregor> Phantom_Hoover: In that case, I'm as American as <highly-American thing> <-- G. W. Bush? 
21:47:43 <olsner> Vorpal: yeah, it's been booting since several years back - the difficult part is doing something useful after booting 
21:47:47 <Vorpal> elliott, yes it was a cheap attack :P 
21:47:50 <Sgeo> But syntactically they are optional. Note that I'm insisting on nothing, just confused 
21:48:00 <Gregor> I'm as Canadian as apple pie is American! 
21:48:09 <Vorpal> elliott, at least I didn't say "highschool massacres" 
21:48:11 <olsner> or, at least I think it was already booting when I picked it up after elliott got me interested in os-writing again 
21:48:16 <Vorpal> elliott, I *could* have done that 
21:48:22 <elliott> Gregor: *as Canadian as murder 
21:48:24 <Vorpal> elliott, no they are American 
21:48:39 <Vorpal> elliott, [citation needed] 
21:48:54 <Gregor> I should write a script for my IRC client that terminates every line with "[citation needed]" 
21:48:56 <elliott> Vorpal: Protocols of the Learned Elders of Zion 
21:48:56 <olsner> but since I've rewritten it now, all the timestamps are new and I don't remember how old the code was 
21:49:11 <Vorpal> elliott, what the heck is that? 
21:49:26 <elliott> Isn't that RIGHT Gregor?!?!24783 
21:49:43 <Gregor> elliott: Only the uninteresting parts. 
21:49:50 <Gregor> elliott: Kinda doesn't matter since you don't know the REAL secrets. 
21:49:52 <Vorpal> elliott, I never heard of it. Has it been peer-reviewed by the mainstream science? 
21:49:58 <elliott> Like killing all the RACISTS?!>!$@O%65UY WITH eAR JUICE??? 
21:50:06 <Phantom_Hoover> You know, I've concluded that Jew's ear Juice must actually be juice from the ear of a Jew. 
21:50:15 <elliott> Vorpal: Shut up, you filthy kike. 
21:50:33 <Phantom_Hoover> Since if it was juice that Jews put into their ears it would be apostrophised "Jews' ear Juice". 
21:50:40 <Vorpal> elliott, I have no idea what "kike" means so thus I'm not offended by it 
21:50:45 <elliott> Vorpal: It means you're a JEW. 
21:50:45 <Vorpal> but I guess it would be otherwise 
21:50:50 <Gregor> Phantom_Hoover: And clearly that Chinese Engrish can would get its apostrophes right. 
21:51:05 <Vorpal> elliott, well no I don't believe in that religion 
21:51:23 <elliott> That's because he's a fag. 
21:51:32 <elliott> Gregor: GO PRAISE ALLAH, TERRORIST 
21:52:04 -!- Mathnerd314 has joined. 
21:52:09 <oerjan> Phantom_Hoover: it's juice made from the ears of their enemies, silly 
21:52:09 -!- MigoMipo has quit (Ping timeout: 240 seconds). 
21:52:17 <calamari> Gregor is a Scientologist, you should know that 
21:52:37 <Gregor> Phantom_Hoover: Also, http://9gag.com/gag/29876/ it's "The Jew's ear juice" 
21:52:54 <Gregor> Phantom_Hoover: So, still ambiguous. It's just owned by the Jew. 
21:53:12 <olsner> hah! found a backup! Vorpal: the code has been booting since at least 8 and a half years 
21:53:21 <elliott> olsner: I didn't even EXIST that long ago. 
21:53:23 <olsner> but protected mode and anything remotely useful only started working in november 
21:53:37 <elliott> olsner: No I didn't! I'm 3! 
21:55:16 <Gregor> pikhq: I don't suppose you can recognize any of these symbols? http://9gag.com/gag/29876/ 
21:57:20 <Vorpal> <olsner> hah! found a backup! Vorpal: the code has been booting since at least 8 and a half years <-- eh? what about the backup? 
21:57:32 <calamari> now go look them up in the unicode table :P 
21:57:44 <olsner> Vorpal: to find the pre-2010 timestamps of the code 
21:57:51 <Gregor> calamari: Good job, Human OCR. 
21:57:54 <Vorpal> olsner, no version control? 
21:58:07 <calamari> actually I cheated and used this page http://newatlasbev.com/450/juice/jews-ear-juice/ 
21:58:16 <Vorpal> olsner, also will it work on a SATA based no-legacy system? 
21:58:28 <Gregor> Chinese to English translation 
21:58:29 <olsner> there was (*was*) a CVS repository for it... on a different computer... running windows 
21:58:32 <Vorpal> elliott, yes but it is better than no version control at all 
21:58:34 <Gregor> ... well, that's even worse :P 
21:59:28 <elliott> no, version control is unacceptable 
22:00:32 <oerjan> http://en.wikipedia.org/wiki/Auricularia_auricula-judae 
22:01:00 <olsner> (as in, the CVS repository was running on a different computer running windows that I no longer have) 
22:05:01 -!- TkTech has changed nick to TkTech|Busy. 
22:05:57 <Vorpal> just use /away, less spammy 
22:08:31 <elliott> we're just looking for an excuse to ban you forever 
22:08:35 <Vorpal> TkTech|Busy, well still they are spammy in the nick 
22:08:42 -!- elliott has changed nick to elliott|flossing. 
22:08:53 -!- TkTech|Busy has left (?). 
22:09:07 -!- elliott|flossing has changed nick to elliott. 
22:09:10 <elliott> Sgeo: oh come on, we don't like him 
22:09:21 <Vorpal> elliott, well that solved the issue :) 
22:09:49 <Vorpal> Vorpal saved the day yet again! 
22:12:07 <oerjan> wait, that means we are doomed, right? 
22:17:02 <Vorpal> elliott, big news: I did not spawn on a beach. 
22:17:13 <Vorpal> elliott, however I did spawn at the edge of a desert biome! 
22:17:22 <elliott> Vorpal: BUT WERE YOU STANDING ON SAND 
22:17:46 <Vorpal> elliott, just on the edge of the desert biome. No water near 
22:18:01 <Vorpal> elliott, wait, there is water very far away on far 
22:18:51 <Vorpal> elliott, but well I can upload the screenshots. My old ~/bin/ompload seems broken. Any idea for some automated command line upload? 
22:19:02 <elliott> Vorpal: uuencode to sprunge 
22:19:02 <Vorpal> for the series of screenshot 
22:19:08 <Vorpal> elliott, too much work 
22:19:13 <Vorpal> elliott, now seriously 
22:19:25 <Vorpal> elliott, no upload then of screenshots 
22:19:43 <Vorpal> elliott, yes I won't start browser however 
22:19:48 <Vorpal> elliott, can't when minecraft runs 
22:20:09 <Vorpal> elliott, dude just give me url to an automated program for it. That's all 
22:20:23 <Vorpal> w3m is too tedious to use 
22:20:29 <Vorpal> elliott, to upload image to some image hosting site! 
22:20:39 <elliott> Just use w3m, it takes two seconds... 
22:20:46 <Vorpal> elliott, well I won't. No upload for you then 
22:20:56 <Vorpal> I have the screenshots saved 
22:21:01 <Vorpal> in case you change your mind 
22:21:30 <elliott> Vorpal: OK, so basically "I want to make things hard for you so I'm going to waste more effort than I would end up spending if I just did what he said complaining that it's too much effort". 
22:21:57 <Vorpal> elliott, actually such a tool will be useful further on 
22:33:33 <Ilari> Paper about finetuning of the Plank constant. That of course assumes dark energy really exists and is not just an atefact of GR being incorrect... 
22:35:43 -!- Tritonio has joined. 
22:42:58 <elliott> tswett: I SEE YOU WITH MY EYES 
22:43:08 <Sgeo> I may have accidentally driven the Nimrod dev insane 
22:43:37 <Sgeo> Introduced him to the AW SDK 
22:44:02 <elliott> Sgeo: How has that driven him insane. 
22:44:15 <Sgeo> elliott, have you ever seen AW SDK code? 
22:45:10 <Sgeo> http://wiki.activeworlds.com/index.php?title=SDK_Sample_Program_1 
22:46:41 <elliott> Sgeo: Doesn't seem that unreasonable... 
22:47:46 <tswett> elliott: I am seen by you with your eyes.  Your eyes are seen with by you of me. 
22:48:28 <elliott> tswett: More like "you know someone I know and I did not know they knew you and this fact has been communicated to my brain via imagery". 
22:48:42 <elliott> But yes, I see your physical manifestation with my eyes due to witchcraft. 
22:48:45 <elliott> Don't let facts get in the way of it. 
22:48:47 <tswett> elliott: oh, I see.  So who's our mutual knowee? 
22:56:55 <Sgeo> My step-mom's giving my dad grief about the cell phone plan, so my dad wants to give me a regular phone and a small wifi portable hotspot thing 
22:57:30 <elliott> Sgeo: "The cell phone plan"? 
22:57:45 <Sgeo> Having a data plan, I guess 
23:00:33 <tswett> Whew.  My Less Wrong karma has finally risen above 799. 
23:00:46 <tswett> elliott: also, I don't actually look like that. 
23:01:08 <elliott> tswett: You are quite clearly a Warrigal mouse. 
23:01:14 <elliott> Actually that might have been a rat. 
23:01:55 -!- sftp has quit (Ping timeout: 240 seconds). 
23:02:37 <quintopia> tswett why were you shooting for 800? 
23:03:18 <tswett> Because I was at 799, an annoying number. 
23:03:21 <tswett> And 800 is a power of two. 
23:03:39 <elliott> It's the 9.64th power of two. 
23:03:53 <tswett> Specifically, it's 6668014432879854274079851790721257797144758322315908160396257811764037237817632071521432200871554290742929910593433240445888801654119365080363356052330830046095157579514014558463078285911814024728965016135886601981690748037476461291163877376. 
23:03:55 -!- Mathnerd314 has quit (Ping timeout: 240 seconds). 
23:04:05 <elliott> tswett: Indeed, 800 = 6668014432879854274079851790721257797144758322315908160396257811764037237817632071521432200871554290742929910593433240445888801654119365080363356052330830046095157579514014558463078285911814024728965016135886601981690748037476461291163877376 
23:04:15 <lambdabot>   666801443287985427407985179072125779714475832231590816039625781176403723781... 
23:04:46 -!- sftp has joined. 
23:04:55 <quintopia> that's the 800th power of two, whereas 800 is the ... 
23:05:18 <lambdabot>   Not in scope: `ln'Not in scope: `ln' 
23:06:10 <quintopia> the 9.643856189774725...th power of 2 
23:06:55 <oerjan> > logBase 2 800 :: CReal 
23:06:56 <lambdabot>   9.6438561897747246957406388589787803517297 
23:07:32 <Sgeo> elliott, do you know any dataflow languages that I would like? 
23:07:42 <Sgeo> ANIC-like, but actually existing, perhaps 
23:08:33 <elliott> "Try to imagine, if you will, the amount of time and effort it would take you to write a bug-free, efficiently multithreaded real-time clock + infix calculator hybrid application in a language like C." 
23:09:18 <elliott> "To those more technically inclined, anic compiles source-specified pipeline definitions down to object code modules, which are linked with a runtime providing initialization code and a root arbitrator thread; the arbitrator spawns worker threads which are dynamically dispatched to the compiled pipelines in such a way that there are no memory conflicts." <-- this is also almost entirely devoid of detail 
23:09:23 <elliott> The author seems a bit...fanatical. 
23:09:54 <Sgeo> There's something about it having two standard libraries 
23:11:01 <elliott> Not only is it the worst language, but even its most ardent fans agree that the toolchain situation is beyond fucked. 
23:11:07 <elliott> (For the toolchain stuff.) 
23:11:19 <elliott> The reason it's a bad language is because it's basically C++ done slightly better with heaps and heaps of shit piled on top :P 
23:11:23 <elliott> And also there's a D1/D2 divide. 
23:11:35 <elliott> So there's two languages, two standard libraries, and seven compilers of which none work. 
23:11:38 <Gregor> There are at least six Ds. 
23:11:45 <Gregor> None of them are compatible with any other. 
23:11:58 <Gregor> The community is so fractured as to be useless to help rectify this situation. 
23:12:09 <Sgeo> Aren't the two stdlibs supposed to be compatible in D2? 
23:12:11 <Gregor> Maybe in some years, five or more Ds will die, leaving a good D. Until then, stay away. 
23:12:14 <Sgeo> (reading wikipedia) 
23:12:35 <elliott> Yeah, and faeries are friends with the demonic legions of hell. 
23:12:44 <Gregor> Oh, and as of the last time I looked, D2 had easily the worst const system in any language. 
23:12:48 <elliott> It is almost impossible to get a "modern" D toolchain running on any OS. 
23:13:01 <Phantom_Hoover> <elliott> Yeah, and faeries are friends with the demonic legions of hell. ← well traditionally... 
23:13:03 <elliott> And that toolchain will be on one of the six Ds :P 
23:13:26 <elliott> Hey guys, I use gdc from sourceforge with gcc 3.0 and Phobos 
23:13:29 <Sgeo> How are there 6 Ds? 
23:13:43 <Sgeo> 2 versions * 2 stdlibs = 4 
23:13:50 <elliott> Sgeo: + compiler differences and shit 
23:14:06 -!- Phantom_Hoover has quit (Remote host closed the connection). 
23:14:10 <elliott> but it looks like you've already made up your mind to like D anyway, so I don't bother 
23:14:17 <Gregor> Sgeo: The different compilers are wildly incompatible, as are D+Windows from D+Mac from D+Linux, mostly for author-has-never-written-portable-code reasons. 
23:14:38 <Sgeo> What are some D-like languages that don't have these issues? 
23:14:51 <elliott> There are no "D-like languages". 
23:14:55 <elliott> D is a gigantic ball of mud. 
23:15:03 <Gregor> D has some very nice properties. 
23:15:08 <elliott> Gregor: It has no _unique_ properties. 
23:15:19 <elliott> You cannot look at a random language and say "oh, it's like D" because D is like everything. 
23:15:24 <Gregor> It has the right features from Java and the right features from C++. I know of no other language with as nice of a mix. 
23:15:39 <Sgeo> What's Dylan like? 
23:15:41 <elliott> Right, Java + C++, that's exactly what I've been looking for. 
23:15:49 <elliott> Sgeo: Scheme with an object system and bad syntax. 
23:15:56 <elliott> (The syntax was added to make it more accessible.) 
23:16:02 <elliott> (It was originally just a Scheme.) 
23:16:36 <elliott> Gregor: tailconst headconst what the fuck is this shit 
23:16:41 -!- Mathnerd314 has joined. 
23:17:21 <Gregor> <Gregor> Oh, and as of the last time I looked, D2 had easily the worst const system in any language. <-- s'truth :P 
23:17:41 <Gregor> It makes C++'s const types look downright peachy. 
23:17:54 <elliott> Gregor: My const types are declared like this: 
23:17:57 <elliott> Gregor: And errors look like: 
23:18:45 -!- sftp has quit (Ping timeout: 255 seconds). 
23:18:47 <Sgeo> Wiki on Dylan programming langage seems to be written for someone who has never seen a CLOS-like system before 
23:20:54 <elliott> And with that sentence, tswett constructs the most complicated Lojban sentence anyone ever has. 
23:20:56 <Sgeo> How to know if I would like a Scheme variant for reasons that elliott would deem irrational: It distinguishes itself from "just another Scheme" in the minds of the general programming project 
23:21:05 <Sgeo> Hence Racket and Dylan 
23:21:23 <Sgeo> [Yes, I'm considering a name change to be enough of a distinction] 
23:22:30 <elliott> Sgeo: Amethyst isn't a Scheme, you can tell because of the name. 
23:22:57 <Sgeo> Or because of everything you told me about it thus far 
23:23:12 <elliott> Sgeo: Hey, it's homoiconic. Like Scheme! 
23:23:37 -!- calamari has quit (Ping timeout: 276 seconds). 
23:23:41 <elliott> Sgeo: It has keyword arguments, does this not make you happy 
23:23:58 <Sgeo> It makes me happy, why wouldn't it? 
23:24:18 <elliott> Sgeo: In fact, even "[replace foo with: bar]" works. Like SMALLTALK. 
23:26:14 -!- poiuy_qwert has joined. 
23:30:07 -!- Tritonio has quit (Ping timeout: 276 seconds). 
23:32:52 -!- sftp has joined. 
23:33:24 <elliott> Sgeo: In fact, every argument is a keyword argument. 
23:36:54 <Ilari> 1.79x/8 for APNIC... Wonder how long IANA is taking to process the request... Well, probably involves at least few meetings... 
23:38:26 <Sgeo> Wait, the last available IPs have been requested? 
23:38:50 <elliott> After this request, they'll have been allocated. RIR depletion will take a month or two, I think. 
23:39:03 <elliott> And then the actual "we can't allocate shit" point will be about a month after that? 
23:39:40 <elliott> Gregor: Did you ever get gcc running on jsmips? 
23:40:24 <lambdabot> forall b a. (Int -> b) -> [a] -> b 
23:40:28 <Gregor> Just never really got that far *shrugs* 
23:40:49 <Gregor> elliott: My project-o-the-moment (again) is ZEE. 
23:40:58 <tswett> Here's a more complicated Lojban sentence: 
23:40:59 <Gregor> Please wait a full cycle before expecting JSMIPS again :P 
23:41:04 <elliott> Is that actually being worked on, Gregor? :P 
23:41:06 <tswett> coi gregor .i mo mo mo mo mo mo mo mo mo mo mo mo 
23:41:24 <Gregor> elliott: It's making progress by some semi-reasonable definition. 
23:41:25 <tswett> That has, like, eleven layers of nesting. 
23:41:39 <Gregor> tswett: Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo Buffalo buffalo buffalo. 
23:42:34 <Ilari> Maybe first RIR (APNIC) would run out (actually, enter phase 3 with allocations restricted) something like 6-9 months after IANA depletion... 
23:42:37 -!- Tritonio has joined. 
23:43:30 <tswett> lo la bafalos visnda poi terpa lo la bafalos visna cu se terpa lo la bafalos visnda poi terpa lo la bafalos visna 
23:44:47 <Sgeo> Timber's supposed to be used in embedded systems? 
23:49:49 <pikhq> Gregor: Those symbols are: black, tree, ear, and ... I dunno. Juice is entirely plausible. 
23:50:01 <pikhq> Gregor: (from http://9gag.com/gag/29876/) 
23:50:22 <Gregor> pikhq: Well, Jews are a black tree. 
23:51:15 <Ilari> Third phase has fun restrictions like maximum allocation size being 1024 addresses at once(!). 
23:51:43 <pikhq> According to jisho.org, I should *know* what 露 is, and it can, depending on context, mean: dew, expose, Russia, and tears. 
23:52:13 <pikhq> With dew as the primary semantics for it. 
23:52:54 <Gregor> So "juice" is presumably by metaphor with "dew" 
23:53:03 <Gregor> And "Jews" is by metaphor with "black tree" 
23:53:10 <pikhq> And in Japanese it's a homophone for a somewhat rare word meaning either "juice" or "soup". 
23:54:06 <pikhq> So, it's no wonder the English is so fucking weird. The Chinese, unless I'm missing something, is "Black tree ear dew". 
23:54:45 -!- poiuy_qwert has quit (Read error: Connection reset by peer). 
23:55:19 <pikhq> BTW, Google Translate comes up with "Black fungus Lu". 
23:55:54 * Sgeo wonders about using Timber in Second Life 
23:56:22 -!- poiuy_qwert has joined. 
23:56:57 <pikhq> For all the complaints about Notch, you must admit: it's significantly better-written than Second Life. 
23:57:29 <oerjan> Gregor: i reiterate, http://en.wikipedia.org/wiki/Auricularia_auricula-judae 
23:58:14 <pikhq> oerjan: Oh holy god. 
23:58:17 <Gregor> oerjan: Oh, I didn't see that :P 
23:58:26 <pikhq> "Jew's Ear" in Japanese is 木耳. 
23:58:41 <Gregor> So ... it's actually an accurate translation? X-D 
23:59:00 <pikhq> In Chinese, it's "黑木耳". 
23:59:08 <elliott> The name was criticised by mycologist Curtis Gates Lloyd, who said "Auricularia auricula-Judae is cumbersome and in addition is a slander on the Jews". 
23:59:16 <pikhq> So, yes, "Jew's Ear Juice" is an *entirely valid* translation.