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.