00:00:35 <oerjan> bsmntbombdood: See the Minsky machine article on the wiki
00:06:00 <bsmntbombdood> although, it would be nice if they didn't have to be multiplied/divided by an arbitrary constant
00:11:48 -!- sebbu2 has quit ("Leaving").
00:12:15 <oerjan> I think http://en.wikipedia.org/wiki/Counter_machine#Two-counter_machines_are_Turing_powerful is related.
00:13:34 <oerjan> Basically, the third step can be alternatively seen as reducing to a single counter with extra operations.
00:22:03 -!- ShadowHntr has joined.
00:53:49 -!- Figs_ has joined.
00:59:19 -!- Figs has quit (Read error: 110 (Connection timed out)).
01:20:46 -!- Sgeo has joined.
01:35:56 -!- calamari has quit ("Leaving").
01:46:52 -!- dog4 has quit ("over and out.").
02:00:18 <oklopol> the wiki is sloooooooooooooooooooooooooooooow :<
02:08:40 -!- Pikhq has joined.
02:27:28 <oklopol> ~raw privmsg #esoteric :bar
02:27:49 <oerjan> ~exec self.raw("PRIVMSG #esoteric :bar")
02:27:55 <bsmnt_bot> SyntaxError: EOL while scanning single-quoted string
02:28:21 <oklopol> i'm too slow... maybe it's time to sleep :)
02:28:49 <oklopol> hmm who am i kidding, i just drank almost a liter of coffee :F
02:29:31 <oklopol> i'll try anyway, night -------->
02:29:45 <bsmntbombdood> I'm wondering about extracting caffeine from tea/coffee
02:30:09 <oklopol> might be cheaper than pills
02:30:56 <oerjan> ah, coffee. _that's_ what i need.
02:31:58 <bsmntbombdood> I read something about dissolving it in ethanol, filtering the solution, evaporating, recrystalizing the residue in a solution of ethanol and water
02:33:19 <oerjan> given that those pills probably _are_ extracted from coffee..
02:33:54 <bsmntbombdood> The method used there is probably not feasible on the small scale
02:40:36 <Figs_> in less than 200 bytes of code
02:40:40 <Figs_> http://rafb.net/p/orWqgE84.html
02:41:16 <Figs_> my output is smaller than my source :P
02:42:36 <Figs_> I could have made a smaller example
02:42:47 <Figs_> but I like my print function
02:43:05 <bsmntbombdood> function pointers in asm are just the address where the code starts, no?
02:44:00 <Figs_> what I did was reserve a word for the address of the function I wanted to call
02:44:18 <Figs_> first I set it to the address of the HELLO proc
02:44:39 <Figs_> and then later in my MAIN proc, I switch it with the address of GOODBYE
02:44:46 <Figs_> but since I call it the same way both times
02:45:03 <Figs_> I've effectively got a function pointer
02:45:27 <Figs_> and I could replace the functionality of VMSG at any point
02:45:53 <Figs_> this is why I started working on asm again
02:46:00 <Figs_> so much easier to use this than C
02:46:22 <Figs_> not for the print stuff
02:46:35 <Figs_> but just for the function pointer stuff
02:46:38 <Figs_> it's so much easier
02:47:11 -!- jix has quit ("This computer has gone to sleep").
02:49:07 -!- wooby has joined.
02:50:00 <Figs_> on the other hand... I do weird stuff
02:50:31 <Figs_> I should have said C++
02:51:28 <Figs_> What I guess I mean is, a lot of things like changing around the interfaces of functions
02:52:06 <Figs_> a decent amount of it
02:52:20 <Figs_> mostly, they put too many things in the same place without thinking how all the pieces interact
02:52:27 <Figs_> (patching the language)
02:53:02 <Figs_> templates, multiple inheritance, variadic functions from C, etc
02:53:34 <Figs_> I've found some behavior that is just *weird*
02:53:48 <Figs_> because it uses so many features of the language at the same time
02:53:53 <Figs_> you have no idea what it is doing
02:54:26 <Figs_> let me see if I can find my code...
02:54:38 <Figs_> it had to do with operator overloading and templates, I think...
02:55:35 <oklopol> Figs_ you've already shown some pretty weird stuff :)
02:57:31 <Figs_> am I showing up as Figs_ again?
02:57:34 -!- Figs_ has changed nick to Figs.
02:58:37 <oklopol> hmm, i'll retry the sleeping thing -------->
03:01:30 -!- Pikhq has quit ("Leaving.").
03:02:19 <Figs> I can't find it
03:09:15 -!- Pikhq has joined.
03:26:15 -!- gg_ has joined.
03:31:40 <Figs> or New Jersey?
03:32:48 <Figs> Virginia, but pretty close to DC, yeah
03:33:14 <gg_> Oregon and NJ aren't that close though :)
03:33:32 <gg_> but, Oregon.
03:33:44 <Figs> a trace route gives me eugine, and then something, and then a firewall? and then you
03:34:06 <Figs> but when I looked it up, I got new jersey :P
03:35:43 <Figs> I get Comcast Region NJ when I use locators :P
03:37:40 <gg_> That shouldn't make any difference :)
03:38:10 <Figs> you would think
03:38:13 -!- Sukoshi has quit ("とても変な夢を見た、あの20分眠間に。").
03:38:28 <gg_> I'm talking about whether it's OR or NJ.
03:38:50 * Pikhq envies Sukoshi's Japanese IME magic
03:38:58 <Figs> I think we're talking about two different things
03:39:50 * gg_ is bored, but hungry too.
03:40:03 <Figs> I was that way until recently
03:40:11 <Figs> and then I remedied it with some yogurt
03:40:25 <Figs> now I'm just bored
03:40:42 <Figs> I should probably finish one of the projects I've started
03:40:48 * Figs is bad about that
03:41:12 <Figs> I do get a bit distracted by tangents :P
03:41:33 * Figs wonders why he is criticising himself in public
03:41:42 <gg_> tangents? as in math?
03:42:49 <Figs> Working on a program to chat online... and then going off to write a compiler, getting bored working on the parser, so start working on asm to impliment function pointers...
03:43:32 <Figs> I just finished that last one
03:43:40 <Figs> I should probably finish the first bi
03:43:45 <Figs> since its the easiest
03:43:51 <Figs> and I've been working on it since January
03:44:27 <Figs> I just really don't like programming in GM any more :P
03:44:32 <Figs> it's too limiting
03:44:56 <gg_> never heard of it.
03:45:00 <Figs> Most people haven't
03:45:05 <Figs> www.gamemaker.nl
03:45:20 <Figs> they're going through a little insanity at the moment with version 7.0
03:45:42 <Figs> I've been using it since about 3.0
03:45:49 <Figs> and I'm about ready to move on
03:46:12 <Figs> except that it just does so much to reduce the complexity of apps...
03:46:22 <Figs> until you find something you can't do
03:46:28 <Figs> then it gets to be annoying as hell
03:46:45 <Figs> I mean, it has functions like,
03:47:00 <Figs> draw_text("whatever string",x,y);
03:47:18 <Figs> you don't have to do anything with the window handling
03:47:51 <Figs> has timers up to I think 10 or 12 built in for each object you define
03:47:58 <Figs> if you need them
03:48:13 <Figs> automatic game loop
03:48:27 <Figs> although you can modify the behavior if need be
03:48:41 <Figs> it was designed for teaching programming concepts in an interesting way
03:48:56 <Figs> but the community is basically pushing for it to become a general purpose dev tool
03:49:13 <Figs> but that's probably more than you ever cared to know :P
03:49:45 <gg_> heh no it's good to know that... but I don't think I'll ever write a game (coz I'll probably never finish it!)
03:49:52 <gg_> at least if it's a "real" game.
03:50:09 <Figs> I doubt I will
03:50:14 <CakeProphet> it looks kind of weird... like graphical C.
03:50:36 <Figs> you can do the entire thing with buttons and drag and drop
03:51:00 <Figs> and then move onto a scripting language inside once you need the more powerful features
03:51:17 <Figs> most of the community seems to be in the 10-20 range
03:51:40 <Figs> pre-college, and, in too many cases, pre-manners :P
03:52:47 <Figs> I like a lot of stuff that GM does
03:52:55 <Figs> (probably since I learned how to program in it)
03:53:05 * gg_ goes to do a little bit more stumbling in firefox (that's how I ended up here anyway) before running for some food...
03:53:16 <Figs> yeah, that's how I got here too :)
03:53:42 <Figs> If you like language design, it's a good place to be
03:53:44 <CakeProphet> I basically just downloaded a Python interpreter... scanned through the turotial in a confused manner... and started playing around.
03:53:45 <gg_> I kinda like this place, so I'll probably see you guys later.
03:54:22 <Figs> In GM, each object effectively has code that gets executed each step (step event)
03:54:38 <Figs> there are create events, destroy events, keyboard press/release/check events
03:54:59 <Figs> you can add 'methods' by defining user events
03:55:04 <Figs> but the documentation on this isn't very good
03:55:10 <Figs> and it's not very easy (I think)
03:55:19 <Figs> though I have done it a couple times
03:55:39 <Figs> it effectively has 2 types of data
03:55:43 <Figs> strings and reals
03:56:07 <CakeProphet> from Python I read up on Perl, Lisp, a little bit of C++, then I discovered esolangs, Smalltalk, Ruby, and then too many to count from there.
03:56:21 <Figs> how many do you know well?
03:56:34 <CakeProphet> I've never actually used anything but Python... but I'd like to move to something new once I'm not so busy with my current project (a MUD)
03:56:46 <CakeProphet> ...I only know the surface of those langs.
03:56:55 <Figs> I have a friend who is writing a MUD...
03:56:58 <CakeProphet> well... except esolangs... which are easy to pick up usually.
03:57:41 <Figs> I know 2.5 languages well
03:58:15 <Figs> I almost never do anything with pure C
03:58:37 <Figs> but it would not be too hard for me to use it
03:58:47 <Figs> I can code in Java... because I know C and C++
03:58:56 <Figs> because I don't know it deeply
03:59:00 <CakeProphet> Most of those languages I know quite well... I'm just completely unfamiliar with the builtin libraries and stuff.
03:59:22 <Figs> (but I do know enough to confuse my friend who is in AP Computer Science :P)
03:59:24 <CakeProphet> I read a lot of language specs... I can just never find the time to use them.
03:59:29 <Figs> do-while loops, ftw
04:00:12 <Figs> I know enough about the C-derived languages that I can effectively work in any of them with a reference manual, google, and a decent amount of time
04:00:29 <Figs> (by my standards of 'decent' ;P)
04:00:54 <Figs> I started playing around with Prolog a bit a couple days to a week ago
04:00:58 <Figs> and it was hard
04:01:06 <Figs> because I'm so used to C-derived programming
04:02:00 <Figs> Assembly is a pain in the ass though
04:02:08 <Figs> because there are endless levels of it
04:02:43 <Figs> I know enough that I can write interesting ways to do hello-world programs
04:03:08 <Figs> but how do those characters end up in the console?
04:03:17 <Figs> I sort of know
04:03:25 <Figs> but not enough to figure it out from scratch
04:04:26 <Figs> it gives you a bit more appreciation for what Windows actually gets right
04:06:24 <Figs> they have an os
04:06:41 <Figs> that is basically works with most hardware reasonable well
04:07:35 <Figs> security flaws aside
04:07:46 <Figs> it mostly does what it is supposed to
04:08:16 <Figs> I talked to a friend of mine who was working on an OS
04:08:52 <CakeProphet> -nod- OS is a pretty big chunk of features. :)
04:09:05 <lament3> Figs: yes, but so does every other OS
04:09:31 <Figs> DOS doesn't do what windows does
04:09:38 <lament3> it's not much of an achievement to have a properly functioning multitasking OS
04:10:01 <lament3> when people say "windows sucks", they are not comparing it with DOS (usually)
04:10:23 <Pikhq> Actually, IMO, DOS *is* a better OS than Windows (from a usability standpoint).
04:10:23 <lament3> windows is a multitasking operating system that sucks
04:10:31 <lament3> DOS is not a multitasking operating system at all
04:10:36 <lament3> so it's not very fair to compare them
04:11:20 <CakeProphet> Figs, yeah... watch out here - we're fuill of Linux patriots.
04:11:25 <Pikhq> DOS does what you tell it to do. Windows does jack.
04:11:39 <Figs> Where's your properly functioning multitasking OS rivalling windows, lament?
04:11:46 <CakeProphet> Mention Windows at all with a grain of positiveness and you shall be PUMMELED. :)
04:11:55 <Pikhq> lament3: DOS is, for a singletasking OS, nice. . .
04:12:03 <Pikhq> Especially the more modern FreeDOS. . .
04:12:20 <Pikhq> Figs: It's called "UNIX".
04:12:24 <lament3> Pikhq: i would strongly disagree with that, OS is shit, but i am not aware of any better alternatives, because the whole notion of a "single-tasking OS" is fairly ridiculous
04:12:52 <Pikhq> lament3: Nah, single-tasking OSes were quite common in the early days of computing.
04:13:07 <Pikhq> *cough*batch computing*cough*
04:13:17 <lament3> Pikhq: you mean, early days of personal computers
04:13:34 <Figs> Pikhq, I meant _lament3_'s own personally written Windows rival
04:13:52 <lament3> Figs: why do you want me to write a windows rival? I don't understand your point.
04:14:18 <Figs> [17:07:23] lament3: it's not much of an achievement to have a properly functioning multitasking OS
04:14:27 <CakeProphet> now now everybody... let's turn the thermostate down a touch. :/
04:14:38 <lament3> Figs: you were saying how you appreciated how windows "got things right" in terms of talking to hardware
04:14:56 <Pikhq> Figs, writing an implementation of the UNIX kernel is considered a rite of passage for UNIX hackers. . .
04:15:09 <CakeProphet> Windows sucks, Windows is great, Lament needs to write his own OS, Lament doesn't need to write his own OS, vim is superior to emacs and vice versa. ALL THINGS ARE TRUE IN THE FACE OF A WINDOWLESS ROOM.
04:15:09 <lament3> Figs: first of all, it didn't - in that unix does it much more sanely; but second of all - it's not much of an achievement for something to do the very bare basics of what it's supposed to do
04:15:35 <Pikhq> And the UNIX kernel, by itself, does multitasking (fine, needs a process to fork();. . .)
04:15:40 <lament3> Figs: i'm not saying it's easy to write an OS
04:16:02 <lament3> Figs: i'm saying it makes no sense to praise windows for something it absolutely has to do as an OS
04:16:31 <lament3> it's like saying "hey, it's a pretty crappy plane, but you have to give it credit - it flies". Of course it flies. Duh. It's a plane.
04:16:51 <CakeProphet> ...I think he was just praising Windows for existing... not necessarily for being better than other OSes. Let's all settle down a bit.
04:16:54 * Pikhq is saying it doesn't take arcane wizardy to do so; just about a year or so's work for a single coder (for very simple definitions of "OS")
04:16:54 <Figs> I didn't say it was "good" :P
04:17:10 <Figs> Just that I'm impressed that it gets itself to work
04:17:27 <Figs> and how much is going on and has to be dealt with
04:17:31 <lament3> Pikhq: probably less than that. There're textbooks on how to do it.
04:18:01 <CakeProphet> ...this conversation reminds me of "attachment causes suffering".
04:18:16 <Figs> Cake, I'm not really praising windows :P
04:18:27 <Pikhq> lament3: That's "from scratch, with nothing more than the ability to do ASM and C".
04:18:29 <lament3> i will stop opening attachments then
04:18:45 <lament3> Pikhq: you cheat quite a bit by allowing yourself to use C :)
04:19:02 <lament3> but yeah, there're textbooks on how to do that.
04:19:10 <Pikhq> So, Windows is a bit like a dog that can dance: it's not that it does it well, but that it does it at all?
04:19:30 <CakeProphet> more or less... an attachment to any ideology (be it Windows-hating or Windows-loving... or Islam or a great love for Emacs)
04:19:46 <Figs> it's more like the dog that can dance that's made billions and billions of dollars
04:20:09 * CakeProphet sesnses a proprietary software conversation coming.
04:20:10 <Figs> GNU/Linux is just as impressive (if not more so for working better)
04:20:11 <lament3> not sure how that's relevant to the conversation
04:20:45 <lament3> in a very real sense, Windows is a better OS than linux
04:21:05 <lament3> it's more user-friendly :)
04:21:11 <Figs> I agree with that
04:21:13 * Pikhq considers GNU/Linux a good deal more impressive, for being made mostly off of the effort of people who care about programming
04:21:22 <Figs> but Linux does some stuff much better
04:21:34 <Pikhq> . . . this, of course, is because I'm one of the users that Windows is distrustworthy of. ;)
04:21:38 <lament3> Pikhq: windows programmers don't care about programming? :)
04:21:52 <Pikhq> lament3: They're doing it because it's a *job*.
04:22:51 * CakeProphet trashes the sidewalks and dances around in circles rubbing his bellybutton
04:23:09 <Pikhq> And GNU/Linux has been developed in large part by people who design stuff simply because that's *what they like to do*.
04:23:10 <Figs> heh, I didn't mean to open this whole can of worms
04:23:29 <Figs> I was just appreciating modern OSes. Windows in particular since I'm most familiar with it.
04:23:39 <CakeProphet> I think vim... is probably the best text editor out there for developers.
04:24:01 <Figs> What, no notepad? :P (jk)
04:24:14 <Pikhq> I think that the only manly editor is a dick-controlled electromagnet to write bits on the drive.
04:24:17 <CakeProphet> and emacs... is a terrible mishmash of shortcut keys and an ancient funky AI language with too many parenthesis
04:24:25 <lament3> at least appreciate something useful, like photoshop :)
04:24:27 <Figs> dick-controlled O.o???
04:24:35 <Figs> photoshop is annoying
04:24:50 <Figs> I mean, the back-end stuff is impressive
04:24:55 <Pikhq> CakeProphet, Lisp is ancient simply because *it has lasting power*.
04:25:00 <Figs> but I really hate their interface
04:25:08 <Pikhq> Figs, the "dick controlled" part is just to make it truly manly. XD
04:25:16 <Figs> oh, I thought that was a typo
04:25:39 <CakeProphet> Lisp is the worst thing to happen to comptuer programming since.... COBOL.
04:25:55 * CakeProphet snickers and hides in the bushes as chaos ensues.
04:25:57 <Pikhq> Which is *really* odd, since Lisp predates COBOL.
04:26:13 <Figs> Lisp is what... `58?
04:26:15 <Pikhq> Lisp hails from the 50's.
04:26:30 <CakeProphet> -snicker- you're making this too easy for me.
04:26:54 <Figs> he's trolling, Pikhq :P
04:27:02 <lament3> Figs: look at how unix does hardware. The whole "everything is a file" thing.
04:27:39 <Pikhq> Figs: I'm fond of troll-baiting. Adds activity to the room.
04:28:12 <CakeProphet> I've been liking Perl a lot lately... which made me realize that, for the most part, the "everything is a <something>" languages are fairly annoying.
04:28:14 <Pikhq> CakeProphet: Yeah. Stuff sort of evolved onto UNIX without thought towards the /dev/ stuff. . .
04:28:24 <Figs> I agree with that
04:28:26 <Figs> but for hardware
04:28:29 <Pikhq> Thus why CakeProphet doesn't like Lisp. . .
04:28:32 <Figs> it (usually) makes more sense
04:28:45 <CakeProphet> Pikhq, I like Lisp... it's pretty and easy to learn...
04:28:53 <Figs> if I can write to the screen as if it was a file
04:29:03 <Figs> if I can write to an internet connection as if it was a file
04:29:04 <CakeProphet> but... it's a tad too fanatical for my tastes.
04:29:07 <Figs> it makes life a lot easier
04:29:18 <Pikhq> Figs: I get the feeling you'd like the Hurd. . .
04:29:21 <Figs> but of course, there's always going to be something that fucks it up :P
04:29:38 <Figs> I rather dislike the everything is ___.
04:29:47 <Figs> but for hardware, it seems convenient
04:30:01 <Figs> for software, it isn't right.
04:30:09 <CakeProphet> well yeah... most hardware has some sort of IO quality... that can be dubbed down to the operations of a file.
04:30:34 -!- lament3 has changed nick to lament.
04:30:40 <Pikhq> The Hurd is mostly just "hardware is a file, and hell. . . The hardware over in that computer way over there is *also* a file."
04:31:07 <Figs> what exactly is this Hurd?
04:31:10 * CakeProphet is conceptualizing an OS himself... but it'll be a while before he can attempt to even start on it.
04:31:23 <Pikhq> It's the GNU Project's take on a kernel.
04:31:39 <Figs> I think I get it
04:31:59 <Figs> distributed computing
04:32:04 <Pikhq> Unfortunately, it's got some political issues preventing some coders from actually getting stuff *in CVS*.
04:32:44 <Pikhq> I think that Plan9 is a better OS for that sort of thing. . . It's actually got active development, and has things generally implemented better.
04:32:51 <Figs> who the hell came up with recursive acronyms? :P
04:33:03 <CakeProphet> Linux could do better... I think... with high-level structures.
04:33:14 <Pikhq> Plan9, BTW, is the successor to UNIX. ;)
04:34:07 <CakeProphet> The everything is a file thing sort of drops out any possibility for data structured files... and table-ish files.
04:34:55 <Figs> I've seen 'everything is a table' languages too :P
04:34:59 <CakeProphet> You can't say "hey this is a tree" or "hey this is a table"... without forcing every program that reads it to do some parsing.
04:35:39 <CakeProphet> ...and there's no versioning system... to keep track of old edits.
04:36:16 <Figs> have you guys tried writing a general purpose tree?
04:36:31 <Figs> (slightly different topic)
04:36:57 <Figs> like, a C++ style library for tree structures like vectors, lists, maps, etc
04:37:16 <Figs> it's a pain in the ass!
04:37:32 <CakeProphet> well.... Lisp is pretty well-suited for trees... it uses linked lists internally.
04:38:00 <CakeProphet> or you could get all hyper-OO and make a tree object... if you're bat-fucking insane.
04:38:12 <Figs> I've done it CP :P
04:38:47 <Figs> using Boost::Any to defeat the type system
04:39:35 <CakeProphet> Python defeats C's type system by representing everything as pointers.
04:39:59 <Figs> I should learn python then
04:40:12 <Figs> they stole my idea! (before I had it, even)
04:40:33 <Figs> I could probably learn it quickly enough
04:40:42 <CakeProphet> ..kind of bland though... but easy to write.
04:41:17 <Figs> I need to get around to learning all these scripting languages
04:41:23 <Figs> Lua, Python, Perl, Tcl
04:41:51 <Figs> Javascript (yes, I don't know javascript! Can you believe it?)
04:42:10 <Pikhq> I recommend Tcl. :)
04:42:13 <Figs> I'm just too lazy to learn it
04:44:03 <Figs> http://rafb.net/p/QXov1k68.html
04:45:17 <Figs> output of the program, btw, is:
04:45:18 <Figs> a(b(d(i,j,k),e),c(f,g,h))
04:45:18 <Figs> a(b(d(i,j,k),e),c(f,g,h),a(b(d(i,j,k),e),c(f,g,h)))
04:46:35 <CakeProphet> I'd have trouble calling Python a "scripting language".... as I've never actually used it to write "scripts" (programs that you'd call to do simple tasks from a shell)
04:47:01 <Figs> it's interpretted, right?
04:47:19 <CakeProphet> a little of both.... but it's considered interpreted.
04:47:48 <Figs> what C++ really needs is a type-traits system
04:48:12 <Figs> typed data is not a bad thing
04:48:39 <Figs> you can do that in some cases
04:48:43 <Figs> but it isn't the answer to everything
04:48:52 <Pikhq> What C++ really needs is one function:
04:49:05 <Pikhq> void dwim(void); // Do what I mean
04:50:11 <Figs> It makes more sense to me to have types, because then you can be sure that you're actually dealing with data properly
04:50:38 <CakeProphet> I'm just not exactly sure what static typing is supposed to accomplish... other than maybe some pre-run errors...
04:50:42 <Figs> take the example of those guys who were working on that probe that screwed up
04:50:50 <Figs> because one part of the team was working in metric units
04:50:55 <Figs> and the other in imperial units
04:51:05 <CakeProphet> dynamic typing doesn't mean "no types at all".
04:52:13 <Figs> all it does is it adds a layer of checking to make sure you're using things the way they are supposed to be used.
04:52:25 <Figs> what I mean is...
04:52:38 <Figs> suppose you get a great new function to convert objects
04:52:48 <Figs> and it's expect you to hand it a plate
04:52:55 <Figs> and you give it a banana
04:53:14 <Figs> you'll get shit all over the floor
04:53:24 <CakeProphet> you either A. intended for it to do something or B. something will screw up and you'll know about it.
04:53:47 <Figs> you don't always know about it
04:53:55 <Figs> most problems in a program are my own mistakes :P
04:54:03 <Figs> I'd rather find them as quick as possible, wouldn't you?
04:54:17 <Figs> rather than testing, testing, testing to make sure data is moving around right
04:54:48 <Figs> that's what I hated about whatever that program was called (second version of Klik but before Fusion or whatever)
04:54:59 <Figs> GamesFactory or something
04:55:03 <Figs> you'd play the game
04:55:13 <CakeProphet> see.... types don't really mean anything...
04:55:15 <Figs> and when it encountered an unknown event, it'd prompt you what to do
04:55:53 <Figs> I'm talking about typing where typing matters: putting in things you expect into interfaces and getting things back out from interfaces that you expect...
04:56:24 <Figs> if you're trying to call a function to print a string
04:57:02 <Figs> it's much more convenient to be able to know that it takes a _____ rather than a _____.
04:57:26 <Figs> I admit, it makes less sense for some applications than others
04:57:41 <CakeProphet> but see.... what if you have something that acts exactly like a string... but it isn't really a string. Are you supposed to create an entirely different library for this string-like thing when you could easily borrow functions that strings use?
04:57:44 <Figs> C/C++'s got it wrong
04:58:07 <Figs> you say it has the traits of a string when you interface with it by X
04:58:51 <Figs> that's why C++ has type conversion operators
04:59:14 <Figs> glad you enjoy :)
04:59:24 <CakeProphet> Figs, all of that sort of just sounds like "ways around static typing".
04:59:44 <bsmntbombdood> 10 times, (play 2 octave harmonic scale, each note .015 seconds)
05:00:04 <Figs> it's a way of keeping static typing where you want static typing, and removing it, but only where you need to remove it and explicitly say how it deals with it
05:00:27 <Figs> its essentially more control
05:00:59 <CakeProphet> welll... a lot of dynamically typed languages are starting to move towards optional static typing... which I think makes more sense.
05:01:17 <Figs> which is basically what I'm saying
05:01:24 <Figs> the point that C missed
05:01:30 <Figs> because it's not designed for it
05:01:37 <Figs> is type traits
05:01:50 <Figs> (actually, they were hacked back in by the boost guys but I've never been able to get them to work properly)
05:01:53 <CakeProphet> Perl is going towards optional static typing... and there's talk about it for Python 3 (thought currently no demonstrations of how it would work)
05:02:16 <Figs> you already gave the exact example
05:02:25 <Figs> of why type traits are essential
05:02:36 <CakeProphet> I'd go with just pure duck typing with optional type checks/conversions on function signatures.
05:02:37 <Figs> I have a function that deals with ____.
05:02:45 <CakeProphet> none of this "typed variables" mumbo jumbo. :)
05:02:46 <Figs> XYZ is a lot like ____, I wish it could deal with it too
05:03:13 <Figs> cake, how do you deal with objects of complex type in duck-typing systems?
05:03:30 <Figs> what I like about C is that I can do
05:03:41 <Figs> struct Employee
05:04:17 <Figs> no, I just tryed putting in //etc directly
05:04:27 <Figs> and had to type out the /msg #esoteric
05:04:41 <Figs> forgot about that
05:04:41 <Pikhq> I'm used to just hitting "/ /..."
05:05:48 <Figs> what's the point of using OO if you can't keep related information together?
05:05:55 <Figs> that's not really OO
05:06:05 <Figs> the problem is
05:06:07 <CakeProphet> what I like about duck typing... is that I can sketch up a class with read() and write() methods and pretty much plug it in anything that expects a file and have it work as I expect it to.
05:06:33 <Figs> ok, now you're getting into what I'm talking about
05:06:41 <CakeProphet> I can replace stdin and stdout with my own special classes... and every read and write operation will be changed.
05:06:42 <Figs> except I deal with things a bit differently
05:07:05 <Figs> currently, in type systems, the way to say things are related is to inherit
05:07:12 <Figs> X inherits from Y
05:07:18 <Figs> and shares its interface
05:07:58 <Figs> it's a pain in the ass if I write code that expects an object with read() and write() but gets one that doesn't
05:08:21 <Figs> well, how would your code react to it?
05:08:26 <Figs> most likely throw an exception
05:08:30 <Figs> or some equivalent
05:08:49 <Figs> which means you have to keep checking for the error
05:08:52 <CakeProphet> You'd just get an error something and the program would exit. Fix it.. and move on.
05:08:58 <CakeProphet> The world doesn't end if you get a runtime error. ;)
05:09:02 <Figs> that's what I object to.
05:09:15 <Figs> is having to go through
05:09:19 <Figs> FIND the error
05:09:26 <Figs> (by accident, most likely)
05:09:34 -!- ShadowHntr has quit ("End of line.").
05:10:01 <oerjan> well, in Ocaml you can sketch up a class with read and write methods and plug it into anything which expects that. It's still statically typed.
05:10:13 <Figs> compile errors say, "Oh, there's something wrong with this program go fix it now"
05:10:14 <CakeProphet> bsmntbombdood, from what I understand you can't pass arbitrary types through functions without there being some inheritance relation of some kind defined.
05:10:21 <Figs> instead of waiting for me to run into it
05:10:24 <Figs> assuming that I do
05:10:38 <CakeProphet> Figs, that's not any different than a runtime error... you're just compiling instead of running.
05:10:39 <Figs> (if I don't, John Doe down the road probably will after I release my project)
05:10:53 <Figs> I want the error when I compile :)
05:11:21 <bsmntbombdood> in python, you forget to import a module and it ends up showing up at runtim
05:11:22 <Figs> the first is that I KNOW there's a problem
05:11:36 <Figs> as soon as I try test
05:11:43 <Figs> not 30 minutes later
05:11:47 <CakeProphet> -shrug- most errors I get in Python are obviously bad... those I KNOW there's a problem.
05:11:53 <Figs> after doing X,Y,Z and a ton of other stuff
05:12:02 <Figs> where the error could be _anywhere_
05:12:21 <Figs> for some types of problems,
05:12:28 <Figs> you don't get an exception and an exit
05:12:34 <Figs> because of the way the system is designed
05:12:46 <Figs> in Game Maker, variables can be either strings or reals
05:12:55 <CakeProphet> Figs, some simple problem solving can usually find the source of the error. sure, it might require some thinking... but it's usually pretty obvious.
05:12:58 <Figs> but they are not explicitly declared as one or the other
05:13:33 <Figs> I can't count the number of times I've done something stupid like trying to show a message containing a number without first telling it to convert its representation
05:13:41 <Figs> and it doesn't usually crash when I do that
05:13:49 <Figs> I just get the mysterious message "0"
05:13:58 <Figs> instead of whatever I expected it to output
05:14:15 <Figs> that's the behavior it's supposed to do because of its weak type system
05:14:48 <Figs> (the error system is a different issue)
05:14:54 <Figs> actually I think I need to go for a while...
05:15:14 <Figs> (shower, and my dad's probably gonna get mad at me for staying up so late... again...)
05:15:31 <Figs> I'll come back if I can to chat about this more, since this is really useful for me
05:31:31 <Figs> I was misunderstanding what you meant by duck typing
05:31:46 <Figs> I was thinking of something different
05:33:43 <Figs> I need to learn OCaml
05:36:11 <Figs> I don't know how much I like dynamic typing
05:36:19 <Figs> but I like the ideas behind duck typing
05:36:40 <Figs> and I'd prefer to have as much as possible of it dealt with at compile time
05:42:01 -!- wooby has quit.
05:42:40 <Figs> like, saying a function takes as argument any object that can be used with ToString()
05:44:53 <Figs> any object that can be use with ToString(), has a method foo() and a member variable bar.
05:45:20 <Figs> essentially, you specify interfaces
05:46:08 <Figs> the nice thing about that is
05:46:16 <Figs> if you have a library from VenderX
05:46:29 <Figs> you can make it work with VenderY's library easily
05:46:38 <Figs> by specifying ways to convert
05:48:13 <Figs> lets say VenderX provides a cross-platform error handling and logging library
05:49:13 <Figs> and VenderY is a game inventory system that produces ErrorTransactional objects when you try to buy or sell something you can't afford
05:49:57 <Figs> buy* (drop the 'or sell' ... that didn't make sense :P)
05:50:16 -!- Sgeo has quit ("Leaving").
05:50:49 <Figs> let's also say, like in most proprietary C libraries, you can't modify the definition of ErrorTransactional or the code in the logging/error routines
05:52:38 <CakeProphet> -nod- what did you think I meant by duck typing?
05:53:01 <Figs> if the language lets you specify a way to interpret ErrorTransactions as XErrorString...
05:53:13 <Figs> (or whatever the other proprietary format is)
05:53:40 <Figs> I was thinking of a different sort of weakly typed system, I don't remember the name (if it has one)
05:54:04 <CakeProphet> http://deadbeefbabe.org/paste/4188 <-- a very simple Tree like structure in Python
05:54:58 <Figs> not sure I understand it
05:55:25 <Figs> (I don't know python's syntax)
05:56:04 <Figs> class Tree(list):
05:56:12 <Figs> I assume you're declaring the clas Tree
05:56:16 <Figs> but what is the (list)?
05:56:21 <Figs> derives from list?
05:56:35 <gg_> man if there's one thing I like about Python, it's the fact that indentation is enforced.
05:56:51 <gg_> makes it look clean.
05:57:23 <gg_> (yeah, I just jumped out of nowhere)
05:57:59 <Figs> I think I'm gonna go to sleep
05:59:10 -!- Figs has left (?).
06:00:59 <CakeProphet> it's nice... but it's probably one of the few things I like.
06:01:11 * CakeProphet is starting to get sick of his own native language. :(
06:02:45 <CakeProphet> my main complaint about Python is that it doesn't give you... any options.
06:03:05 <CakeProphet> The entire design goal is "there is one obvious way to do it"...
06:03:42 <CakeProphet> heh... I haven't figured out how you would use a real for loop any different.
06:03:52 <CakeProphet> I almost always see it used just as pythons for loop.
06:04:16 <CakeProphet> syntax constructs are trivial... I just dislike the entire design method... if doesn't let the programmer choose what they want to do.
06:05:14 <bsmntbombdood> loop through a list, if the current item is 0, skip the next one
06:05:19 <Pikhq> bsmntbombdood: Inherited from gaim.
06:05:59 <CakeProphet> well... yeah I guess... a weird requirement... but I suppose it would be more difficult.
06:06:56 <CakeProphet> for item in (x for index,x in enumerate(SomeList) if index != 1): ...a bit long-winded, but do-able.
06:07:55 <CakeProphet> you mean... if the current ITEM... not the current index.
06:08:20 <CakeProphet> ...you could use a variable in the loop to keep track of the condition.
06:09:07 <CakeProphet> (always annoys me when I say "you can't do this" and then someone finds an ugly workaround as thought it were compensation)
06:09:56 <CakeProphet> ...ideally there should be multiple forms.
06:10:14 <CakeProphet> as I'd die before I had to type out C-style for loops each time I meant to use them like Python for loops.
06:10:27 <CakeProphet> ...but not having the option at all isn't good either.
06:38:26 <GregorR> Pikhq: Care to give me an opinion on something I'm mulling over for Plof2?
06:39:23 <GregorR> Pikhq: I'm trying to free up the + operator on objects so that operator overloading will be useful, but that means I don't have an operator for object combination. I'm thinking of using the null operator, e.g. var A = :[...]; var B = :[...]; var C = A B;
06:39:38 <GregorR> Anyone else can feel free to chime in too :-P
06:40:23 <GregorR> bsmntbombdood: That doesn't really make any sense for the language. That being said, if a function consists only of a single expression, it just returns the value of that expression, as in functional languages.
06:41:07 <GregorR> Oh wait, you mean my object combination suggestion?
06:41:13 <oerjan> hm... what is the : operator?
06:41:44 <GregorR> oerjan: It's not an operator, it's a modifier. :[...] is an object, [...] is an associative array (I don't like this and will probably change it, but this reflects the current state of the language :P)
06:41:51 <Pikhq> Gregor: I don't really like that idea. . . ~ operator?
06:42:09 <Pikhq> Yeah, go for a null op.
06:42:23 <oerjan> what about letting A : B be object combination?
06:42:24 <Pikhq> var D = :[...] :[...]; I assume makes sense?
06:42:48 <GregorR> oerjan: Confusing with ternary condition: foo ? bar : baf
06:43:03 <GregorR> [Yes, I buckled and added ternary conditionals :(]
06:43:14 <oerjan> ah, but in that case nullary will _also_ confuse it
06:43:32 <GregorR> That syntax is meaningless at the moment.
06:43:42 <bsmntbombdood> if if can return a value, you don't need ternary ?
06:43:44 <Pikhq> I fail to see how the null op would confuse it.
06:43:47 <GregorR> bsmntbombdood: I'm trying to reduce the number of special compiler-provided functions.
06:44:07 <GregorR> oerjan: : [ is not the same as :[
06:44:25 <GregorR> oerjan: In the same way that 1 - -3 is not the same as 1-- 3
06:44:57 <GregorR> And anyway, like I said, I don't like that particular syntax, it will probably change ;)
06:45:23 <GregorR> bsmntbombdood: "if if can return a value, you don't need ternary ?" < this makes no sense at all
06:45:41 <bsmntbombdood> if "if" can return a value, you don't need ternary "?".
06:46:26 <GregorR> Well, if is a function in the Plof standard namespace which is provided by the compiler ... I'm just trying to reduce the number of those. I suppose nobody really cares except me, so maybe I need to not do that ^^
06:46:39 <bsmntbombdood> C needs ternary "?" because you can't say x = if(p){..}else{...}
06:47:43 <GregorR> You're dancing on the functional side of the functional-imperative gap, I'm dancing on the imperative side.
06:47:53 <Pikhq> I, personally, don't like having a huge amount of builtins.
06:48:04 <GregorR> Hence why I was removing one :-P
06:48:05 <Pikhq> I *like* being able to see the interface in stdlib.plof.
06:48:12 <oerjan> you could have a +: operator.
06:48:36 <GregorR> oerjan: For object combination?
06:48:45 <GregorR> bsmntbombdood: I intend to.
06:49:01 <bsmntbombdood> I would like to see the ability to overload _any_ operator
06:49:10 <GregorR> oerjan: How is that different from Pikhq's earlier ~ suggestion?
06:49:29 <Pikhq> The main issue with ~ is that it's used in C as a bitwise operation. . .
06:49:33 <GregorR> bsmntbombdood: Well, there are two operators that it makes NO sense to overload with how Plof works: assignment and object combination.
06:52:41 <Pikhq> It's 20070401. What do you expect?
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:19:12 -!- wooby has joined.
08:47:39 -!- oerjan has quit ("leaving").
08:50:38 -!- wooby has quit.
08:51:32 -!- wooby has joined.
08:51:39 -!- wooby has quit (Remote closed the connection).
09:08:59 <GregorR> My cats are playing an April fool's day joke on me O_O
09:39:19 -!- sebbu has joined.
09:43:15 -!- nazgjunk has joined.
10:52:32 -!- dog4 has joined.
11:19:45 -!- anonfunc has joined.
12:01:09 -!- ais523 has joined.
12:19:49 -!- nazgjunk has quit ("Bi-la Kaifa").
12:34:11 -!- helios24_ has joined.
12:34:51 -!- helios24 has quit (Read error: 113 (No route to host)).
12:40:10 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
12:40:12 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
12:41:18 <EgoBot> 118 +++++++++++++++[>+++++>+++++++>+++>++++++++<<<<-]>---.>----.+++++++..+++.>-.------------.>-.<<.+++.------.--------.>+. [294]
12:42:24 <ais523> ~bf +++++++++++++++[>+++++>+++++++>+++>++++++++<<<<-]>---.>----.+++++++..+++.>-.------------.>-.<<.+++.------.--------.>+.
12:55:41 -!- wooby has joined.
12:59:52 <oklopol> i should never leave this channel unguarded :)
13:00:57 * oklopol started his day with a bit of coding :P
13:00:59 <oklopol> http://www.vjn.fi/pb/p622623512.txt
13:02:32 <oklopol> conceptually trivial, but without any kind of syntax highlighting my feeble brain gets quite overloaded
13:03:11 <ais523> I don't recognize the language
13:03:26 <oklopol> python, and because no one is going to read that, it's brianfuck with lambdas
13:03:35 <oklopol> ...why is it always brian?
13:04:23 <oklopol> that was too easy... i though i'd be busy for hours :\
13:04:39 -!- anonfunc has left (?).
13:04:47 <oklopol> i'd like to know how oerjan did that with unlambda
13:05:44 <oklopol> unfortunately i don't have the faintest clue how to do anything with unlambda even though i know most of the language
13:05:59 * ais523 has a P`` interpreter in Unlambda somewhere
13:06:22 <ais523> I generated it from a lambda-calculus version, though, so it's crappy auto-generated Unlambda
13:06:50 -!- jix has joined.
13:07:29 <oklopol> hmm, i could convert that to pure lambda...
13:07:56 <oklopol> actually, i won't, i have a better idea
13:08:51 <wooby> anyone tinkered with javascript?
13:09:19 <ais523> I wrote the reference Underload implementation in JavaScript
13:10:43 <wooby> it's interesting i think lol
13:11:10 <ais523> it's good as a counterexample to all the statments Java and UML teachers make about object-oriented programming
13:11:29 <ais523> the concept of a two level class/object hierarchy is outmoted
13:11:51 <ais523> in JavaScript, you can come up with one-level or three-level or any-number-of-level hierarchies
13:16:08 <wooby> i'm working on a preprocessor in JS that lets you use most of the java oop keywords though lol
13:41:24 -!- anonfunc has joined.
13:42:19 * ais523 has just written Brainfuck in Thutu2
13:42:22 <ais523> http://pastebin.ca/419548
13:43:00 <ais523> compiled into Perl, it's http://pastebin.ca/419550
13:43:50 -!- ais523 has quit ("in search of lunch").
15:07:34 <CakeProphet> ...it looks like ais523 discovered prototype OO. :P
15:13:49 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
15:27:03 -!- Sgeo has joined.
15:42:28 -!- Pikh1 has joined.
15:42:40 -!- Pikh1 has changed nick to Pikhq.
15:43:07 <Sgeo> I pledge, for this year, to only learn programming languages that an employer will be likely to have me use.
15:43:09 <Sgeo> Who is with me?
15:45:57 <Pikhq> Realise that some employers will be willing to let you code in esolangs: they don't understand jack, anyways.
16:08:12 <oklopol> haha, that'd be so cool :D
16:08:37 <oklopol> i big 3d-game programmed in bitwise cyclic tag
16:11:08 -!- ais523 has joined.
16:11:19 <ais523> msg nickserv identify 523kk
16:11:38 <ais523> Damn, I'll have to change my password now
16:11:52 <oklopol> yeah... we'd so take your auth
16:13:03 * Pikhq contemplates writing a word processor in BFM using PESOIX. :p
16:13:15 <ais523> I've changed it now anyway, just in case a logreader decides to impersonate me
16:13:19 <ais523> (as unlikely as that seems)
16:15:21 * ais523 was trying to release the latest version of INTERCAL
16:15:28 <ais523> but failed due to the lack of anywhere to put it
16:16:16 <ais523> so it's safely cooped up on my hard drive now, unable to unleash its esotericness on the world
16:16:43 <ais523> I still sent a slightly modified version of my prepared message to alt.lang.intercal anyway though, letting people know why they couldn't obtain it
16:16:44 -!- jix has quit (Read error: 104 (Connection reset by peer)).
16:17:35 <Pikhq> How's about posting it in alt.lang.intercal?
16:20:26 <ais523> you can't post binaries to a text newsgroup
16:20:33 <ais523> and besides it's over 300KB long
16:20:52 <ais523> (even when compressed)
16:22:51 <Pikhq> Carrier pigeon? :p
16:25:23 -!- jix has joined.
16:27:58 <ais523> one of the only IP standards with an average packet return time of 5222806.6 milliseconds
16:30:15 <Pikhq> Read the implementation.
16:33:20 <CakeProphet> ...I've never actually had a programming job before.
16:33:23 -!- bsmntbom1dood has joined.
16:33:36 -!- jix has quit (zelazny.freenode.net irc.freenode.net).
16:33:36 -!- Pikhq has quit (zelazny.freenode.net irc.freenode.net).
16:33:37 -!- GregorR has quit (zelazny.freenode.net irc.freenode.net).
16:33:37 -!- bsmntbombdood has quit (zelazny.freenode.net irc.freenode.net).
16:33:46 -!- jix has joined.
16:33:46 -!- Pikhq has joined.
16:33:46 -!- GregorR has joined.
16:35:24 <CakeProphet> If there's anything I could turn into a career... it's programming. Especially since you can do it at home.
16:40:26 -!- Pikhq has quit (zelazny.freenode.net irc.freenode.net).
16:40:26 -!- jix has quit (zelazny.freenode.net irc.freenode.net).
16:40:26 -!- GregorR has quit (zelazny.freenode.net irc.freenode.net).
16:40:27 <ais523> there should be more of a market for esolang programmers
16:40:45 -!- GregorR has joined.
16:40:45 -!- jix has joined.
16:40:45 -!- Pikhq has joined.
16:41:00 <ais523> the original INTERCAL manual suggests that INTERCAL may be useful for maintaining job security
16:42:19 <ais523> because nobody else will be able to edit your code
16:57:51 -!- Pikhq has quit (zelazny.freenode.net irc.freenode.net).
16:57:51 -!- jix has quit (zelazny.freenode.net irc.freenode.net).
16:57:51 -!- GregorR has quit (zelazny.freenode.net irc.freenode.net).
16:59:25 -!- GregorR has joined.
16:59:25 -!- jix has joined.
16:59:25 -!- Pikhq has joined.
17:44:57 -!- Pikhq has quit (zelazny.freenode.net irc.freenode.net).
17:44:57 -!- jix has quit (zelazny.freenode.net irc.freenode.net).
17:44:57 -!- GregorR has quit (zelazny.freenode.net irc.freenode.net).
17:46:28 -!- GregorR has joined.
17:50:01 -!- jix has joined.
17:50:01 -!- Pikhq has joined.
18:02:04 * SimonRC likes this AFJ: http://www.msnbc.msn.com/id/17879317/site/newsweek/
18:11:35 -!- Sukoshi has joined.
18:17:01 -!- Sgeo has quit ("Leaving").
18:19:41 <ais523> anyway, my INTERCAL distribution finally found a host: http://intercal.freeshell.org/download
18:29:00 -!- Pikhq has quit (zelazny.freenode.net irc.freenode.net).
18:29:00 -!- jix has quit (zelazny.freenode.net irc.freenode.net).
18:35:27 -!- jix has joined.
18:36:38 <SimonRC> this one is even better: http://news.bbc.co.uk/1/hi/uk/6515701.stm
18:47:27 -!- ais523 has quit ("I spend all this trouble registering so I can have a quit message, and then I don't want to put anything in it").
19:00:33 -!- dog4_ has joined.
19:09:14 -!- dog4 has quit (Connection timed out).
19:27:43 -!- Pikhq has joined.
19:30:42 <Sukoshi> I use a mice for like, 5 activities.
19:32:01 <Sukoshi> Maybe I can release RUT today.
19:32:13 <Sukoshi> If exams weren't coming up, I could spend more time.
19:32:45 -!- nazgjunk has joined.
19:33:25 -!- bsmntbom1dood has changed nick to bsmntbombdood.
20:43:04 -!- Arrogant has joined.
20:48:32 -!- lament has changed nick to Eidplos.
21:19:05 -!- Figs has joined.
21:38:49 -!- calamari has joined.
21:42:34 -!- Arrogant has quit (Read error: 60 (Operation timed out)).
21:52:01 -!- Sgeo has joined.
22:01:10 -!- anonfunc has quit.
22:05:03 -!- Eidplos has changed nick to lament.
22:08:04 <Figs> http://religiousfreaks.com/2007/03/02/religious-freaks-distraught-over-miracle-pizza-pan/
22:28:24 <Figs> http://www.biggeekdaddy.com/sitebuilder/images/Virgins_in_Heaven-637x242.jpg <-- wtf?
22:30:08 <Figs> http://www.cooperativeindividualism.org/calvin-on-scientific-law.gif
22:55:02 -!- oerjan has joined.
22:59:15 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
22:59:40 -!- nazgjunk has joined.
23:26:56 -!- nazgjunk has quit (Remote closed the connection).
23:39:42 -!- richie12790 has joined.
23:40:33 -!- richie12790 has left (?).
23:56:17 <Pikhq> I've seen multiple implementations.
00:02:56 <CakeProphet> I think I might need to do a genetic algorithm for this...
00:04:18 <oerjan> well, you need to decide on a metric
00:04:52 <oerjan> (metric=distance function)
00:05:50 <oerjan> is this something like finding a minimal set of changes?
00:08:42 -!- calamari has quit ("Leaving").
00:09:45 <bsmntbombdood> CakeProphet: There is an algorithm for that in the python stdlib
00:13:47 <bsmntbombdood> get_close_matches is a cool function from that module
00:18:02 <bsmntbombdood> gives 2*<sum of maximal lengths of common substrings>/<combined length>
00:18:09 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
00:19:16 -!- CakeProphet has quit (Success).
00:21:03 -!- calamari has joined.
00:25:36 <calamari> well, I think I'm a kde convert
00:29:56 -!- CakeProphet has joined.
00:30:28 -!- sebbu has quit ("@+").
00:44:54 -!- Figs_ has joined.
00:45:24 -!- Figs has quit (Nick collision from services.).
00:45:47 -!- Figs_ has changed nick to Fogs.
00:45:51 -!- Fogs has changed nick to Figs.
00:49:57 -!- dog4_ has quit ("This computer has gone to sleep").
01:14:36 -!- anonfunc has joined.
01:33:51 <Figs> is that like hamming distance? O.o
01:35:11 <oerjan> ratio("abcde", "edcba")
01:36:36 -!- Figs has left (?).
01:36:38 <oerjan> no consideration of swapping
01:38:36 <oerjan> i don't think the python library handles swapping either, if i read the documentation correctly
01:39:31 <bsmntbombdood> difflib.SequenceMatcher("abcde", "edcba").ratio() => 0
01:40:21 <bsmntbombdood> i dunno how to remove the matches from strings after they are counted
01:42:02 <oerjan> an idea might be to sum something like squares of lengths
01:43:37 <oerjan> then a reversed sequence would match completely in pieces, but the sum would not add up to as much as for equal strings
01:46:25 <oerjan> on the other hand, matching "abcdef" with "acdebf" might give an unintuitive result if you simply remove the match and match the remainder
01:46:46 <oerjan> because after removing "cde", the strings become equal
01:48:07 <bsmntbombdood> simply removing the matches gives ratio("abcde", "edcba") => 1.0
01:48:32 <oerjan> because every piece matches somewhere
01:49:02 <CakeProphet> except this one uses a decision tree to find the shorted possible way to do it.
01:49:15 <oerjan> that's what my square suggestion meant to fix
01:51:26 <bsmntbombdood> and just removing common substrings as we find them
01:55:31 <CakeProphet> ...I could actually split off the recursions into threads... if necessary
02:00:01 -!- anonfunc has quit.
02:00:51 <oerjan> you need to find the _longest_ match first
02:00:55 <CakeProphet> modification to hamming distance tend to work nicely.
02:01:30 <oerjan> you seem to be matching single characters
02:03:47 <CakeProphet> hmmm.... mine works really well for what I'm using it for (finding the closest match to a string within a list of strings)
02:45:49 -!- calamari has quit ("Leaving").
02:59:03 <oerjan> a function for black people with braids?
02:59:46 <bsmntbombdood> methinks python ints should have an __iter__ method
03:01:17 <CakeProphet> hmmm.... don't think that would make much sense
03:02:00 <CakeProphet> makes me think of "every possible floating point value of 6"... which would go on forever.
03:09:19 -!- calamari has joined.
03:19:39 -!- Figs has joined.
03:19:48 <Figs> you guys seen this, right?
03:19:50 <Figs> http://www.nata2.info/d/pictures/f/americans.gif
03:23:26 <Figs> http://www.glowfoto.com/viewimage.php?y=2007&m=03&img=30-224100L&t=jpg&rand=2971&srv=img4
03:41:55 <GregorR> I doubt highly that that's real. (The first one)
03:43:35 <oerjan> http://www.snopes.com/military/lighthse.htm
03:46:50 -!- Arrogant has joined.
03:47:08 <lament> is there an esoteric programming group?
03:48:45 -!- Figs_ has joined.
03:49:58 -!- Figs has quit (Nick collision from services.).
03:50:01 -!- Figs_ has changed nick to Figs.
03:58:10 <lament> there isn't even a brainfuck group :(
04:02:08 -!- jix has quit ("This computer has gone to sleep").
04:02:46 <GregorR> So, I'm thinking of allowing function overloading by allowing calls to arrays of functions.
04:04:51 -!- Pikhq has joined.
04:08:21 -!- Arrogant has quit ("Leaving").
04:14:24 <GregorR> ... you know, multiple functions with the same names, differentiated by their signature...
04:16:00 <GregorR> ... what was that no to? :-P
04:16:29 <bsmntbombdood> <GregorR> ... you know, multiple functions with the same names, differentiated by their signature...
04:16:49 <oerjan> i understand plof is dynamically typed, so the functions would have to check argument types and backtrack to the next function on failure.
04:17:34 <GregorR> oerjan: Plof is dynamically typed with some static typing operators. There is such an operator in function signatures, which enforces that the function is called with the proper arguments.
04:18:16 <GregorR> e.g.: var println = (x as string){...}
04:18:16 <oerjan> ic, so you can declare signatures.
04:19:04 <oerjan> if you wanted you could probably extend that to pattern matching
04:19:15 -!- Figs has left (?).
04:21:46 <GregorR> Um, would pattern matching in that scenario not be a guard by definition?
04:22:57 <oerjan> except a pattern could also deconstruct arguments into variables, and a guard could be a general boolean expression
04:23:27 <GregorR> I think that's getting a bit more complicated than is actually valuable :)
04:24:16 <oerjan> just guards then, perhaps.
04:26:39 <oerjan> say, (x as inrange(1,10))
04:27:23 <oerjan> actually it would be a function to boolean
04:27:27 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
04:27:30 <GregorR> Especially if I implement function overloading as above.
04:28:44 <oerjan> could even have an alternative syntax: (x where x >= 1 and x <= 10)
04:35:01 -!- calamari has quit ("Leaving").
04:49:23 -!- CakeProphet_ has joined.
05:04:14 -!- CakeProphet has quit (Connection timed out).
07:02:02 -!- oerjan has quit ("leaving").
07:02:11 -!- Sgeo has quit ("Ex-Chat").
07:02:31 -!- helios24_ has changed nick to helios24.
07:16:59 -!- GreaseMonkey has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:12:56 <Sukoshi> ObjC is nothing to :3 about.
08:13:23 <Sukoshi> It's like someone grafted on two dissimilar things together into one weird ununiform conglomerate.
08:13:32 <Sukoshi> Of course, it's a lot better than C++, so there you go.
08:14:12 <Sukoshi> My theory about Java is that a long time ago, Java programmers didn't suck and Java ran reliably. I coded a whole bunch of signal processing and NN tools for it, and it was really fast/light.
08:14:53 <Sukoshi> It worked with 64-bit precision numbers the whole time too, and processed about 6 MB of data per-pass, averaging somewhere in the millions for number of passes.
08:16:17 <Sukoshi> My conclusion was that, because Java is the New Thing (TM), every bum coder and his mentally addled half-cousin he slept with ends up using Java and turning codebase into poop. That and I don't like Java's emphasis on New Technologies and the annoying abbreviation technologies.
08:17:44 <Sukoshi> CL would probably be like that too if it had caught on.
08:29:52 -!- ShadowHntr has joined.
08:30:10 -!- Sukoshi has quit ("愛してた。アンタの高い姿を見たことの最初から、見とれた。アンタの真っ黒髪が風の勝手).
09:01:36 -!- ShadowHntr has quit ("End of line.").
09:08:35 -!- dog4 has joined.
09:08:44 -!- dog4 has quit (Remote closed the connection).
09:27:46 -!- Sukoshi has joined.
09:46:14 -!- calamari has joined.
09:59:38 -!- sebbu has joined.
10:24:42 -!- nooga has joined.
10:26:24 <nooga> what happened with that c2bf compiler?
10:45:33 -!- GreaseMonkey has quit ("yays for stack-based thingies!").
10:47:51 -!- calamari has quit (Remote closed the connection).
10:51:21 -!- evilC has joined.
10:51:55 -!- evilC has left (?).
12:00:21 -!- jix has joined.
12:35:58 -!- dog4 has joined.
13:19:04 -!- nazgjunk has joined.
13:22:52 -!- RodgerTheGreat has joined.
13:32:49 -!- jix has quit (Read error: 104 (Connection reset by peer)).
13:33:53 -!- jix has joined.
15:32:45 -!- _filippo_ has joined.
15:32:47 <nooga> i've got my raytracer in sadol working
15:37:07 <nooga> http://pastebin.ca/419385 :D
15:37:34 -!- dog4 has quit ("This computer has gone to sleep").
15:40:14 -!- _filippo_ has left (?).
15:42:06 <nooga> oklopol: echo "2" | BDSM2 raytracer.sad > output.ppm
15:42:24 <nooga> and then open the pm file with some graphic viewer
15:42:45 <oklopol> i had an exam today, but i slept over it
15:43:01 <oklopol> i have one tomorrow as well, hope i have better luck with the alarm
15:43:40 -!- crathman has joined.
15:43:45 -!- crathman has quit (Client Quit).
16:14:54 -!- crathman has joined.
19:10:06 -!- calamari has joined.
19:58:17 <GregorR> Changes for Plof2: 1) Ability to call arrays of functions for overloading, 2) null operator for object combination, 3) Remove ternary comparison and re-add builtin if et cetera, 4) Change return rules: If a value returned from a thin function is actually used (e.g. on the right side of an assignment), it does not continue to fall through. This will allow if() and pals to be used in both the imperative sense and the functional sense.
20:08:12 <GregorR> I see that you're all endlessly fascinated :-P
20:14:46 <oklopol> i think the return thing works but STILL i don't like it
20:15:27 <oklopol> i find it quite unintuitive it checks whether it's used for something
20:16:48 <oklopol> still can't find any problem with it
20:16:56 <GregorR> I'm trying to find a nice middle ground, but can't *sigh*
20:17:05 <GregorR> So I'm going for a good-enough middle ground ;)
20:17:28 <oklopol> i'm pretty sure some kind of quoting might help, but i'm having a hard time grasping the concept fully even
20:17:40 <oklopol> since that's rarely an issue with languages :)
20:18:20 <GregorR> Basically, here's what it would mean:
20:18:50 <GregorR> var foo = :{ if(:{1 == 1}, {return(3);}, else, {return(4);}); }; // returns 3
20:19:01 <GregorR> var foo = :{ var a = if(:{1 == 1}, {return(3);}, else, {return(4);}); }; // sets a to 3
20:20:58 <oklopol> var foo's level's a of foo's a?
20:21:34 <oklopol> will foo become something like struct{int a(==3);}
20:23:50 <oklopol> the "else" thing is quite confusing imo :)
20:24:56 <oklopol> but so... hmm, why does the second one have :{ in the beginning?
20:26:03 <oklopol> ":{" means ":{expression without ; and implicit return }" and "{" means "{ expression; expression; etc.; insert return issue here; }" ?
20:26:59 <GregorR> :{ is a thick function, a function that the return will conclude at. A { is a thin function. I may be able to remove this distinction with my latest change, or not :)
20:27:20 <GregorR> And because I said "var a", I was declaring an a at that scope, so it sets that a. Not very useful :)
20:27:56 <oklopol> ah, so foo will become nothing in the latter?
20:28:03 <oklopol> because you don't return anything
20:28:11 <GregorR> It's a contrived example :P
20:30:24 <GregorR> The thin/thick functions is a concept which helped make returning less ridiculous, but didn't necessarily make it less confusing >_>
20:30:27 <GregorR> I'm still working on it :P
20:30:44 <oklopol> var foo = if(:{1==1}, :{return "1 equals 1!";}, {return "the whole function failed"});
20:30:55 <oklopol> couldn't thick/thin fix the if problem
20:31:01 <oklopol> like that i mean ^^^^^^^^^^^^
20:31:15 <GregorR> The problem is, if is going to be calling those functions.
20:31:30 <GregorR> So the return value will go to 'if'.
20:31:31 -!- helios24_ has joined.
20:31:49 <GregorR> Not (in your example) to foo.
20:32:12 <GregorR> That's what the whole problem with returns was :)
20:32:57 -!- helios24 has quit (Read error: 104 (Connection reset by peer)).
20:33:04 <oklopol> well, obviously... this is too hard for me, i should think about this quite a lot to even be of help at brainstorming :)
20:33:29 <GregorR> I hate how, no matter what concept of programming you follow, there's always a nasty corner :P
20:35:24 <oklopol> : == evaluate at upper level -> :{ would be a normal return given to an "if"... since it would do an expression level return, while a ::{ function would evaluate at the function's level the if is claled at
20:35:38 -!- helios24_ has changed nick to helios24.
20:35:51 <GregorR> It's totally legitimate to pass in functions that you didn't write in right there.
20:35:59 <GregorR> So where the bork would they return to :)
20:36:32 <oklopol> well, they obviously wouldn't be upperlevelized with :
20:49:38 <CakeProphet_> hmmm... you could like... use a bunch of different concepts... perhaps thwarting nasty corners where they breed.
20:50:55 <GregorR> The nasty corner comes from the merging of two concepts :-P
20:51:00 <GregorR> Namely functional and imperative.
20:51:31 <GregorR> Or rather, "every-block-is-a-function" and imperative programming.
21:02:10 <oklopol> i do quite the same thing with oklotalk actually, but i do everything functionally, just let functions modify upper level variables
21:03:06 <oklopol> i'm not sure what i do differently, but there are no problems.... might just be the fact i've not thought that much about that side of the language :P
21:03:23 -!- Sgeo has joined.
21:13:33 -!- ShadowHntr has joined.
21:18:04 <nooga> oklopol: how's your learning?
21:18:37 <oklopol> oh the studying... i browsed through the first 50 pages or so :D
21:20:03 <nooga> echo "10" | BDSM2 raytracer.sad > test.ppm
21:20:14 <nooga> it will output 1200x900 image
21:20:58 <GregorR> That interpreter name makes my brain bleed.
21:21:08 <oklopol> 1. relink it, i've lost the page, 2. i assume i write that on this channel, specify where otherwise :)
21:21:31 <nooga> i'm porting it to SymbianOS 9
21:21:45 <nooga> oklopol: you run it in bash
21:26:04 -!- jix__ has joined.
21:26:56 <nooga> GregorR: i could name the interpreter "CSI - Cool Sadol Interpreter" but it wouldn't be such funny
21:27:25 <oklopol> nooga no windows way to do it? :P
21:28:02 <nooga> BDSM2 ray.sad > test.ppm
21:28:16 <nooga> and then input some number from 1 to 10
21:28:27 -!- crathman has quit ("Chatzilla 0.9.77 [Firefox 2.0.0.3/2007030919]").
21:28:42 <nooga> and open test.ppm in irfanview or such thingy
21:30:32 <nooga> http://pastebin.ca/419385
21:32:33 <oklopol> hmm so... bdsm2.exe takes for 1. argument the source and for second argument the arguments for the sadol program?
21:34:36 -!- jix has quit (Read error: 110 (Connection timed out)).
22:19:00 <SimonRC> call them "function" and "block"?
22:34:30 <CakeProphet_> you would use blocks as loops and conditions and all that jazz... and functions would be your... well... functions.
22:35:20 <SimonRC> maybe you could make functions into thin sugar around blocks
22:36:11 <SimonRC> blocks would need a stack anyway, I suspect, so you could just say that a function is a variable containing a block with a little invisible code in it or something.
22:36:33 <SimonRC> in haskell, a function is just an expression with arguments, after all...
22:36:35 <CakeProphet_> they could always just be... separate entities entirely... :) :) :)
22:37:42 <CakeProphet_> I always find things work strangely when you attempt to de-primitify your primitives.
22:38:44 <CakeProphet_> Alright... so an integer is an object... so what part of the object gives it its value? What gives a string object its value? ...no one seems to know. :P
22:39:42 <lament> what do you mean 'what part'?
22:40:11 <lament> integers are objects, clearly
22:40:18 <CakeProphet_> ...just... a part... with all the vagueness entailed.
22:40:29 <oklopol> well, you have special egofield for that, <object>.__value__=<object>
22:40:30 <lament> i'm not sure if integers have any 'parts' to speak of
22:41:28 <CakeProphet_> hmmm... so would the __value__ of 5 be? 5? hehe... makes sense in a strange way.
22:41:40 <oklopol> but, CakeProphet_, i don't see why you'd have to know the field, an object hides it's value, integer hiding it's value is essentially that value
22:42:00 <bsmntbombdood> INCREMENT CakeProphet_ BY CakeProphet_ GIVING TOQO
22:42:44 <CakeProphet_> mostly that question arises when I subclass an integer... when your working in the integers enternals there's nothing directly accessible that gives 5 its 5ness.
22:43:35 <lament> that's just a matter of representing your integers nicely.
22:43:50 <CakeProphet_> the whole "everything is an object" notion is infinitely recursive... you have objects consisting of objects.... the tree needs leaves at some point.
22:44:01 <lament> the problem is that preferred representations in math care about operations more than about objects themselves
22:44:24 <lament> "Integers are a set (of featureless objects, that is) that behaves in a certain way under certain operations)"
22:44:37 <lament> however, you can define them in different ways, for example peano arithmetic
22:44:55 <lament> you have a magical singleton object zero
22:44:58 <oklopol> CakeProphet_ what's wrong with infinite recursions?
22:45:05 <lament> and then you have objects with field 'pred'
22:45:13 <CakeProphet_> ...it would make more sense to me to simply have an unexplained axiom... the integer... the string... there's nothing more under the hood to know.
22:45:17 <oklopol> it's just a conceptual recursion and does not do any harm
22:45:18 <lament> and if your objects pred is zero, then you know the object is one
22:46:21 <lament> but in most cases, math treats integers as labeled "points" with no content
22:47:29 <lament> two integers are distinguishable if their labels are different
22:47:43 <lament> you can't say anything more than that unless you define operations on the integers
22:47:58 <CakeProphet_> there's nothing wrong with a conceptual recursion... in msot cases. It really doesn't harm anything... it just seems silly to confuse everything with the notion that everything needs an underlying explaination.
22:48:41 <lament> CakeProphet_: "needs an underlying explanation" is different from "consists of parts"
22:49:46 <lament> i think it's pretty silly for integers to have "properties", certainly
22:51:56 <CakeProphet_> consisting of parts amounts to an explaination... What's a bench? Wood and metal.. What's wood? Cellulose. What's Cellulose? (C6H10O5)n. What's Carbon? 6 electrons. What's an electron? <insert crazy quantum physics shit>
22:52:21 <lament> electrons, however, don't consist of parts
22:52:33 <lament> we can still "explain" them by detailing their behavior
22:53:37 <CakeProphet_> derailing from computer science... this would get into notions of identity, THE LEAVES OF THE REALITY GRAPH, and human cognition. -wiggles his philosophers hat pre-emptively-
22:56:09 <lament> fortunately integers are not 'real' in any way :)
22:56:24 <lament> PUN NOT INTENDED AND I SHALL SMITE YOU IF YOU MAKE IT
22:58:40 <oklopol> lament: ACTUALLY INTEGERS ARE REALS, THEY'RE A SUBSET OF REALS
23:01:33 -!- ChanServ has set channel mode: +o lament.
23:01:37 -!- oklopol has joined.
23:01:43 -!- lament has set channel mode: -o lament.
23:02:58 <CakeProphet_> and now stuff is defined by what its a part of.
23:02:58 <oklopol> can't we do that tomorrow? :|
23:03:14 <lament> CakeProphet_: that's Prolog i think
23:03:22 <lament> CakeProphet_: the "is a" relationship :)
23:03:29 <lament> oh, i guess that's different
23:03:37 <CakeProphet_> well.... is a is something like... a type check
23:03:57 * CakeProphet_ is just having a little thought experiment here.
23:03:59 <lament> object a contains fields foo and bar
23:04:06 <lament> fields foo and bar are contained in object a
23:04:09 <lament> it's the same thing...
23:05:45 <lament> a is a part of the universe.
23:06:27 <CakeProphet_> hmmm... same thing essentially... just... backwards. HMMMM HOW SURPISING
23:06:33 <CakeProphet_> THAT SOMETHING REVERSED IS THE SAME THING REVERSED.
23:07:44 <lament> let's close the loop while we're at it.
23:07:55 <lament> The universe is a part of an integer :)
23:08:46 -!- helios24 has quit (zelazny.freenode.net irc.freenode.net).
23:08:46 -!- calamari has quit (zelazny.freenode.net irc.freenode.net).
23:08:46 -!- Sukoshi has quit (zelazny.freenode.net irc.freenode.net).
23:08:46 -!- GregorR has quit (zelazny.freenode.net irc.freenode.net).
23:08:47 -!- sekhmet has quit (zelazny.freenode.net irc.freenode.net).
23:08:47 -!- SimonRC has quit (zelazny.freenode.net irc.freenode.net).
23:08:47 -!- ShadowHntr has quit (zelazny.freenode.net irc.freenode.net).
23:08:48 -!- bsmnt_bot has quit (zelazny.freenode.net irc.freenode.net).
23:08:48 -!- tokigun has quit (zelazny.freenode.net irc.freenode.net).
23:08:48 -!- RodgerTheGreat has quit (zelazny.freenode.net irc.freenode.net).
23:08:48 -!- nazgjunk has quit (zelazny.freenode.net irc.freenode.net).
23:08:48 -!- CakeProphet_ has quit (zelazny.freenode.net irc.freenode.net).
23:08:48 -!- gg_ has quit (zelazny.freenode.net irc.freenode.net).
23:08:50 -!- Sgeo has quit (zelazny.freenode.net irc.freenode.net).
23:08:50 -!- lament has quit (zelazny.freenode.net irc.freenode.net).
23:08:51 -!- puzzlet has quit (zelazny.freenode.net irc.freenode.net).
23:08:51 -!- sp3tt has quit (zelazny.freenode.net irc.freenode.net).
23:08:51 -!- wooby has quit (zelazny.freenode.net irc.freenode.net).
23:08:51 -!- Izzy7 has quit (zelazny.freenode.net irc.freenode.net).
23:08:52 -!- cmeme has quit (zelazny.freenode.net irc.freenode.net).
23:08:52 -!- meatmanek has quit (zelazny.freenode.net irc.freenode.net).
23:09:10 -!- Sgeo has joined.
23:09:10 -!- lament has joined.
23:09:10 -!- puzzlet has joined.
23:09:10 -!- sp3tt has joined.
23:09:16 -!- calamari has joined.
23:09:16 -!- Sukoshi has joined.
23:09:16 -!- GregorR has joined.
23:09:16 -!- sekhmet has joined.
23:09:16 -!- SimonRC has joined.
23:09:23 -!- helios24 has joined.
23:09:26 -!- wooby has joined.
23:09:26 -!- Izzy7 has joined.
23:09:26 -!- cmeme has joined.
23:09:26 -!- meatmanek has joined.
23:09:29 -!- dog4 has joined.
23:09:29 -!- ShadowHntr has joined.
23:09:29 -!- bsmnt_bot has joined.
23:09:29 -!- tokigun has joined.
23:10:02 -!- RodgerTheGreat has joined.
23:10:02 -!- nazgjunk has joined.
23:10:02 -!- CakeProphet_ has joined.
23:10:02 -!- gg_ has joined.
23:10:24 -!- dog4 has left (?).
23:11:27 -!- wooby has quit.
23:17:06 <lament> to see the world in a grain of sand
23:17:10 <lament> and heaven in a wild flower
23:17:17 <lament> hold infinity in the palm of your hand
23:17:22 <lament> and eternity in an hour
23:17:37 <lament> i never realized that poem was about OOP.
23:21:14 <oklopol> oh i do, now that i think about it
23:23:13 <CakeProphet_> .....I just think this is incredible. http://en.wikipedia.org/wiki/Attosecond
23:28:20 * oklopol has a hard time keeping up with all this intellectualism
23:28:40 <lament> CakeProphet_: what's incredible?
23:47:54 <bsmntbombdood> 1 attosecond is the amount of time it takes for light to travel the length of three hydrogen atoms
00:05:55 -!- calamari has quit ("Leaving").
00:11:21 <CakeProphet_> an attosecond is to one second what one second is to the age of the universe.
00:11:31 <CakeProphet_> ...just a sort of jaw-drop thing that wasn't expecting.
00:18:16 -!- ihope has joined.
00:18:24 <ihope> Unlimited! Indefinite! Arbitrary!
00:33:32 <ihope> Limited! Definite! Finite! Uh... inarbitrary!
00:49:00 <ihope> Because infinite is not finite! :-)
00:55:31 -!- sebbu2 has joined.
01:03:39 -!- Sukoshi has quit ("あの女の子。").
01:14:54 -!- sebbu has quit (Read error: 110 (Connection timed out)).
01:18:31 -!- sebbu2 has quit (Client Quit).
01:30:04 -!- nazgjunk has changed nick to na[zZz]gjunk.
01:33:14 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
01:59:03 -!- helios24 has quit (zelazny.freenode.net irc.freenode.net).
02:01:07 -!- helios24 has joined.
02:03:01 -!- Sukoshi has joined.
02:22:51 -!- Sukoshi has quit ("休み時間もう来た!さあぁぁぁ!").
03:01:03 <CakeProphet_> I found a joke module that fully implements goto and come from in Python
03:18:37 -!- ShadowHntr has quit ("End of line.").
03:19:35 -!- CakeProphet_ has changed nick to CakeProphet.
03:59:06 -!- ihope has quit (Read error: 145 (Connection timed out)).
04:41:23 -!- CakeProphet_ has joined.
04:42:17 -!- gg_ has quit (zelazny.freenode.net irc.freenode.net).
04:42:17 -!- RodgerTheGreat has quit (zelazny.freenode.net irc.freenode.net).
04:42:17 -!- CakeProphet has quit (zelazny.freenode.net irc.freenode.net).
04:42:17 -!- na[zZz]gjunk has quit (zelazny.freenode.net irc.freenode.net).
04:42:21 -!- CakeProphet_ has changed nick to CakeProphet.
04:42:27 -!- CakeProphet has quit (Killed by sagan.freenode.net (Nick collision)).
04:42:27 -!- RodgerTheGreat has joined.
04:42:27 -!- na[zZz]gjunk has joined.
04:42:27 -!- CakeProphet has joined.
04:42:27 -!- gg_ has joined.
04:43:00 -!- CakeProphet_ has joined.
04:54:33 -!- nooga_ has joined.
04:59:15 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
05:00:36 -!- nooga has quit (Read error: 110 (Connection timed out)).
06:14:06 <GregorR> To anybody interested, #plof
06:24:41 -!- Sgeo has quit ("Ex-Chat").
06:27:42 -!- ShadowHntr has joined.
07:03:02 <bsmntbombdood> CakeProphet_: the code for that module is interesting
07:11:06 <bsmntbombdood> http://www.python.org/doc/current/lib/module-tokenize.html
07:11:26 <bsmntbombdood> looks like it could implement some crude macro capabilities
07:13:06 <bsmntbombdood> i don't think conditional comefroms will work in that module
07:54:39 -!- Sukoshi has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:13 -!- ShadowHntr has quit (Read error: 145 (Connection timed out)).
08:34:51 -!- sebbu has joined.
09:20:36 -!- dog4 has joined.
09:26:24 -!- na[zZz]gjunk has changed nick to nazgjunk.
09:38:38 -!- sebbu2 has joined.
09:53:25 -!- GreaseMonkey has joined.
09:58:10 -!- sebbu has quit (Read error: 110 (Connection timed out)).
10:00:37 -!- sebbu2 has changed nick to sebbu.
10:36:10 -!- GreaseMonkey has quit (Client Quit).
10:41:47 -!- dog4 has left (?).
11:40:18 -!- oerjan has joined.
11:53:40 <oerjan> GregorR: it looks like you really want lexically scoped return
11:55:42 <oerjan> that would at least solve the if problem
11:56:19 <oerjan> (hm, i guess it's still middle of the night over there)
11:58:05 <oerjan> so, return would go to the lexically enclosing thick function
12:05:14 -!- Sgeo has joined.
12:05:56 <oerjan> oklopol: I think that bash command that troubled you was also perfectly legal DOS
12:07:23 -!- jix__ has joined.
12:42:36 -!- nazgjunk has quit ("Bi-la Kaifa").
12:49:22 -!- nazgjunk has joined.
13:38:09 <nooga_> i wanted to make normal programming language
13:51:10 -!- oerjan has quit ("Later").
14:14:34 -!- UnrelatedToQaz has joined.
14:16:56 -!- sebbu has quit ("reboot").
14:22:27 -!- UnrelatedToQaz has left (?).
14:35:44 -!- sebbu has joined.
14:41:09 <nooga_> i'm thiinking about writing a photon tracer
14:41:49 <nooga_> a sort of raytracer but it would trace photons FROM the lights
14:42:58 -!- CakeProphet_ has quit ("haaaaaaaaaa").
15:07:47 <nooga_> like famous photon soup
15:17:15 -!- crathman has joined.
15:47:20 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)).
16:31:19 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
16:31:48 -!- nazgjunk has joined.
16:36:40 -!- IslandHopper973 has joined.
16:37:02 -!- IslandHopper973 has changed nick to UnrelatedToQaz.
16:37:09 -!- UnrelatedToQaz has left (?).
17:13:06 -!- nazgjunk has quit ("Bi-la Kaifa").
17:16:54 -!- nazgjunk has joined.
17:25:44 -!- CakeProphet has joined.
17:47:45 -!- oerjan has joined.
18:24:51 <GregorR> nooga_: Sooooooooooo ... you want to create the universe in a simulation?
18:25:06 <GregorR> [The reason ray-tracers go in reverse is that it's soooooooooooo much more efficient]
18:25:45 <GregorR> Also, a photon tracer would need arbitrary bounds, but anyway.
18:26:36 <lament> ray tracing starts with a pixel on the screen?
18:27:02 <GregorR> Since you may as well not emulate photons that never occur :-P
18:54:57 * Sgeo wonders when we'll have real-time raytracing
18:55:32 <oerjan> it's already available, just not well-distributed
18:55:49 <lament> Sgeo: just limit the number of pixels, and it's easy.
18:55:55 <lament> for example, limit it to one.
18:56:07 <lament> or, one thing i always dreamt of doing: a Flatland FPS
18:56:08 <Sgeo> real-time high-res raytracing then
18:56:29 <lament> a regular first-person-shooting, but it's completely 2d and hte display is just a single horizontal line of pixels
18:56:40 <lament> the rest of the screen is just black
18:56:51 <oerjan> i read about a demonstration recently, i vaguely recall "cebit"
18:58:50 <oerjan> google for "realtime raytracing"
19:00:57 <Sgeo> You know, I once predicted that VRML would never have gravity..
19:01:28 <Sgeo> Since I didn't see a reasonable way for gravity to be defined
19:02:34 <Sgeo> and bye for now
19:07:04 -!- Sgeo has quit ("Ex-Chat").
19:23:42 -!- oerjan has quit ("Giving up").
20:20:12 <lament> there's no reasonable way to define gravity?
20:21:53 -!- nazgjunk has quit ("Bi-la Kaifa").
20:25:38 -!- nazgjunk has joined.
20:55:11 <oklopol> "<lament> a regular first-person-shooting, but it's completely 2d and hte display is just a single horizontal line of pixels" i've done a 2d ~ 3d flying game
20:56:06 <oklopol> though it was not a straight one line of pixels, the closer an object is, the wider it is from the middle of the screen
20:56:21 <oklopol> and objects further away go black, close ones are red
20:56:49 <oklopol> so it actually looks quite 3d, though my crappy math made it crooked :)
20:57:00 <oklopol> not crooked, but distorted
21:13:35 -!- atrapado has joined.
21:16:03 * GregorR psychically predicts that atrapado is using OpenSolaris.
21:17:40 * atrapado is not using opensolaris, only planning to install
21:18:09 <GregorR> *snaps* ... your mask is opensol@... :-P
21:20:49 <lament> is your nick spanish or portuguese?
21:21:27 <atrapado> yes. spanish. it could be portuguese also
21:22:10 <lament> most people's nicks are monolingual though :)
21:22:42 <GregorR> My nick is Scottish and (transliterated) Russian :-P
21:23:39 <lament> my nick is Unga-Bungish for "happy song"
21:24:31 -!- lament has changed nick to happy_song.
21:24:57 -!- GregorR has changed nick to _D6Gregor1RFeZi.
21:29:33 -!- _D6Gregor1RFeZi has changed nick to GregorR.
21:35:09 -!- jix__ has quit (Read error: 110 (Connection timed out)).
21:35:39 -!- jix__ has joined.
22:46:28 -!- bsmnt_bot has joined.
22:46:31 <bsmntbombdood> Hi guys i'm showing my programming teacher bsmntbombdood
22:47:21 <happy_song> okay, we'll stop talking about sex and drugs then
22:48:07 <bsmntbombdood> ~exec self.register_raw("\S+ PRIVMSG #esoteric :~foo.*", lambda x,y: bot.raw("PRIVMSG #esoteric :hello, world"))
22:48:37 <bsmnt_bot> 0: 'time.sleep(200)', 1.99 seconds
22:48:51 <bsmnt_bot> 0: 'time.sleep(200)', 15.96 seconds, killed
22:56:31 -!- Sgeo has joined.
23:17:25 <nazgjunk> oh wait, that's half an hour old
23:20:59 -!- nazgjunk has quit ("sleep gah").
23:32:00 -!- oerjan has joined.
23:35:49 <oerjan> Does that mean we can start talking about sex and drugs again?
23:36:29 -!- CakeProphet has quit (Read error: 113 (No route to host)).
23:55:32 <bsmntbombdood> for example, "aaaaaaaa" and "bbbbbbbb" are pretty similar
23:57:35 <oerjan> seems like a form of kolmogorov complexity again: what is the shortest program that can produce both strings
23:59:25 <happy_song> too bad you can't compress in the first place
00:05:45 <bsmntbombdood> "8 repitions of 'a'" and "8 repitions of 'b'", while not any smaller than the original strings, still help to compare them
00:08:42 <oerjan> but it requires human interpretation.
00:10:51 <oerjan> a computer just dumbly comparing programs would not be able to tell why that was essentially better than ["aaaaaaaa","bbbbbbbb"]!!0 and ["aaaaaaaa","bbbbbbbb"]!!1
00:11:40 <bsmntbombdood> 8b1f 0008 de47 4612 0300 4c4b 0084 002e 66b6 add7 0009 0000
00:11:52 <bsmntbombdood> 8b1f 0008 de52 4612 0300 4a4b 0082 002e 0d07 d1d7 0009 0000
00:12:01 -!- crathman has quit (Read error: 113 (No route to host)).
00:12:13 <bsmntbombdood> the first is 8 a's gziped, the second is 8 b's gziped
00:13:39 <oerjan> rather lousy compression :)
00:15:38 <oerjan> that method will not show similarity of strings, anyhow, unless you are very lucky with how the strings and gzip interact.
00:17:04 <oerjan> what you might do is to compare the compressed lengths of the two strings concatenated and each of them.
00:17:29 <oerjan> that might at least give some information
00:17:34 <bsmntbombdood> You could use a custom compression algorithm that is designed for this purpose
00:18:11 <bsmntbombdood> "aaaaaaaabbbbbbbb" gziped is 8b1f 0008 e00d 4612 0300 4c4b 8084 2824 02e0 1100 a19d 11b8 0000 0000
00:18:46 -!- CakeProphet has joined.
00:19:14 <happy_song> what if one of my strings is digits of pi, and the other is digits of 4-pi?
00:19:43 <oerjan> however gzip doesn't help with things that have no characters in common, does it?
00:23:01 <bsmntbombdood> the similarity of A and B could be the length of a program to convert A into B
00:26:36 -!- atrapado has quit ("multiverse?").
00:29:11 <oerjan> which reduces to kolmogorov complexity in the case A=""
00:49:18 -!- wooby has joined.
01:26:31 -!- sebbu has quit ("@+").
01:27:25 -!- oerjan has quit ("Good night").
01:51:48 <bsmntbombdood> I think levenshtein distance of compressed strings is a good similarity metric
02:08:24 -!- Pikhq has joined.
02:49:21 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
03:04:53 * Pikhq almost has an IME set up. . .
03:05:08 <Pikhq> Just need to figure out how to get KDE to start with some environment variables exported.
03:07:07 -!- Pikhq has left (?).
03:11:39 -!- Pikhq has joined.
03:12:32 <GregorR> ARRRRRRRRR, TEH NOT ENGLISH
03:12:39 <GregorR> [You don't have #plof on autojoin :( :P]
03:16:42 <GregorR> ARRRRRRRRR, TEH NOT ENGLISH
03:16:53 <Pikhq> It's for the other Japanese speaker in here.
03:54:04 <bsmntbombdood> ok, maybe min(levenshtein(a, b), levenshtein(compress(a), compress(b)))
03:57:24 <CakeProphet> polyglots with C and any language with #-style comments is so easy :)
03:58:07 <bsmntbombdood> because levenshtein(compress.compress()"the quick brown fox jumped over the fence"), compress.compress("the quic brown fox jumped over the fence")) => 6
04:08:51 <CakeProphet> ....I want to write an operating system as a polyglot of a bunch of languages.
04:10:12 -!- ShadowHntr has joined.
04:11:49 <bsmntbombdood> removing headers and shit from the gzipping should help
04:12:37 -!- happy_song has changed nick to lament.
04:13:00 <CakeProphet> most polyglots play around with comments to achieve polyglotness.
04:13:51 <CakeProphet> C works well with bash-comments... you can make macros tha won't break the languages that treat it as comments.
04:14:17 <GregorR> The ones that don't take advantage of comments take advantage of the intersection of language syntax :-P
04:14:47 <CakeProphet> heh... like... Python floor division and...... C comments????
04:15:28 <GregorR> You probably aren't going to find any between C and Python ...
04:15:33 <GregorR> I'm talking about things like C++ and Java.
04:16:03 <CakeProphet> yeah Python and C are tough... especially because of the differences in blocks.
04:16:09 -!- maverickbna has joined.
04:16:26 -!- ShadowHntr has quit (Nick collision from services.).
04:16:40 -!- maverickbna has changed nick to ShadowHntr.
04:17:25 -!- calamari has joined.
04:25:04 <GregorR> Perl is write-only, PHP is domain-specific (no matter what strange people want to do with it)
04:30:01 <GregorR> They miserably failed to draw "the line."
04:31:59 * CakeProphet draws the line _________________________________________
04:36:06 <bsmntbombdood> ok, CakeProphet, I think i've satisfactorily implemented an algorithm to compare strings
04:36:17 -!- ShadowHntr has quit (Connection timed out).
04:36:22 -!- lament has changed nick to happy_song.
04:41:11 <bsmntbombdood> note, that's the distance between strings, not a ratio of similarity
04:48:14 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
05:26:04 -!- ShadowHntr has joined.
05:46:16 -!- Sgeo has quit (Read error: 131 (Connection reset by peer)).
05:57:53 <CakeProphet> bsmnt, no I mean... do you want to find typos... or do you want "pure" difference in characters?
05:59:26 <bsmntbombdood> it'll recognize typos, sure, but i wanted to create an algorithm that recognizes strings like "aaaaaaaaa" and "bbbbbbbbb" as similar
05:59:27 -!- FSi has joined.
05:59:55 -!- FSi has changed nick to Arrgh.
06:00:20 -!- Arrgh has changed nick to FSi.
06:01:14 -!- FSi has changed nick to Hardley.
06:04:23 -!- Hardley has quit.
06:07:32 <CakeProphet> for typos... addings a transposition operation does wonders.
06:15:09 <CakeProphet> data compression is the art of finding similarities
06:19:40 <CakeProphet> I wonder how effective "macro-like" compression would be.
06:20:09 <CakeProphet> say you split data up and then check each of their similarities.
06:21:04 <CakeProphet> you could find parts that are similar to a large number of these chunks... and abstract that as a "macro"... which can take arguments corresponding to the differences.
06:24:18 <CakeProphet> you could compress anything that had that pattern into a macro like x(World) x(Goats) etc
06:27:45 -!- ShadowHntr has quit (Read error: 145 (Connection timed out)).
06:37:28 <bsmntbombdood> or you could just make the decompressor an interpreter for a turing complete language...
06:40:27 -!- GreaseMonkey has joined.
06:58:31 -!- CakeProphet has quit (Read error: 113 (No route to host)).
06:58:37 <bsmntbombdood> I'd like to see a step by step view of bzip2 compressing something
07:26:42 -!- GreaseMonkey has changed nick to CCC^.
07:28:35 -!- CCC^ has changed nick to GreaseMonkey.
07:31:42 -!- nooga has joined.
07:31:51 <nooga> GregorR: not universe
07:32:03 <nooga> only a scene with bounds
07:32:38 <GregorR> Wow, that's so many conversations ago O_O
07:33:01 <nooga> photons would disappear when they are absorber or they leave the boundaries or hit the virtual photographic film
07:33:32 <GregorR> I believe I mentioned something about an "arbitrary bounds"
07:35:04 <nooga> http://en.wikipedia.org/wiki/Photon_tracing
07:35:14 <nooga> it was done in java
07:35:32 <nooga> i would code in C with inline asm
07:37:26 <nooga> http://www.cpjava.net/raytraces/DRUN.GIF
07:37:34 <nooga> results r stunning
07:40:37 <nooga> i think the best part of fun will be collecting computers for distributed rendering
07:49:25 <happy_song> i woludn't exactly call that picture stunning.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:21:26 -!- calamari has quit ("Leaving").
08:56:05 -!- nazgjunk has joined.
09:15:06 -!- sebbu has joined.
09:39:36 -!- sebbu2 has joined.
09:51:19 -!- sebbu has quit (Nick collision from services.).
09:51:22 -!- sebbu2 has changed nick to sebbu.
10:37:02 -!- GreaseMonkey has quit ("one day to go, then school's out").
11:47:01 -!- happy_song has quit (Read error: 60 (Operation timed out)).
11:47:57 -!- happy_song has joined.
12:20:39 -!- jix__ has joined.
12:48:12 <SimonRC> # I don't feel like dancing #
12:48:41 <SimonRC> Sorry about the pink text, but that guy has the most irritating falsetto voice ever.
13:10:31 * SimonRC indicates that this might be of some interest to people here: http://jededag.blogspot.com/
13:10:45 <SimonRC> I know more than a little about the story behind it
14:27:15 -!- helios_ has joined.
14:27:21 -!- helios_ has quit (Client Quit).
15:17:17 -!- crathman has joined.
15:18:12 -!- crathman has quit (Remote closed the connection).
15:20:03 -!- crathman has joined.
15:21:09 -!- crathman has left (?).
16:44:32 -!- happy_song has quit (Read error: 110 (Connection timed out)).
18:08:42 -!- CakeProphet has joined.
18:59:39 <CakeProphet> I need a server... so I can host a Subversion repository.
19:02:59 <CakeProphet> or.. maybe find a free host... do such things exist?
19:15:42 -!- nooga has quit (Read error: 110 (Connection timed out)).
19:27:31 -!- nooga_ has quit (Connection timed out).
19:32:42 -!- atrapado has joined.
19:42:56 -!- oerjan has joined.
19:44:38 -!- ShadowHntr has joined.
19:45:15 -!- CakeProphet has quit ("haaaaaaaaaa").
19:52:31 -!- CakeProphet has joined.
20:16:25 -!- nooga has joined.
20:40:56 -!- LookA has joined.
20:41:41 -!- fax has joined.
20:42:38 <fax> why are tunes logging this
20:43:25 <GregorR> Some people wake up in the morning and read #esoteric logs instead of the newspaper.
20:46:41 * oerjan points out that he reads #esoteric logs _and_ the newspaper.
20:47:47 <oerjan> although truth be told, i usually read #esoteric logs first.
21:11:16 <oerjan> The ! must be first on line
21:22:50 -!- LookA has left (?).
21:29:47 -!- sebbu2 has joined.
21:35:17 -!- jix__ has quit (Read error: 110 (Connection timed out)).
21:35:39 -!- jix__ has joined.
21:48:05 -!- sebbu has quit (Read error: 110 (Connection timed out)).
22:01:03 -!- dub_ has joined.
22:16:29 -!- lament has joined.
22:20:29 -!- atrapado has quit (Nick collision from services.).
22:20:39 -!- dub_ has changed nick to atrapado.
22:22:05 -!- Ryacko has joined.
22:24:41 <Ryacko> Please say "Hello, World!"
22:25:04 -!- Ryacko has left (?).
22:30:07 <fax> oh hi bsmntbombdood
22:30:59 <fax> you are welcome to join #lispcafe as is everyone else here :D
22:32:00 <fax> bsmntbombdood: yet another lisp channel, but there is good discussion a lot of the time
22:45:40 <RodgerTheGreat> it'd be an emo-person based programming language called "Theirspace"
22:46:35 <RodgerTheGreat> they can exchange messages via comments, and internally store opinions of other enodes (an endex, or emo-index).
22:46:53 <RodgerTheGreat> endices are naturally the product of what other people say about a specific person
22:47:25 <RodgerTheGreat> so comments can include phrases with specific meanings like "you suck" or "this person sucks" that influence endices.
22:48:18 * oerjan ponders the effect of the message "NN always lies about other people"
22:48:51 <RodgerTheGreat> and enodes can also store rules imparted via comments from enodes they respect, like "don't listen to <name>" or "tell people who write poetry to kill themselves"
22:49:33 -!- sebbu2 has changed nick to sebbu.
22:49:53 <RodgerTheGreat> rules can also be obeyed or ignored based on the cliques enodes belong to
22:52:18 <oerjan> it seems like it requires AI
22:52:24 <fax> it would be interesting if you could acutally execute myspace.com
22:53:11 <RodgerTheGreat> oerjan: what do you mean? The enodes would just be looking for and generating sequences of canned phrases
22:53:23 <RodgerTheGreat> it would only be designed to *resemble* online conversations.
22:55:14 <RodgerTheGreat> although, I guess you could use Markov chains or something to make it more spontaneous
22:55:53 <RodgerTheGreat> and generate a garbled mishmash of words resembling random emo-speak
23:04:13 -!- wooby has quit (Read error: 104 (Connection reset by peer)).
23:04:28 -!- wooby has joined.
23:38:11 <CakeProphet> is there anything better than Windows command prompt out there?
23:38:26 <CakeProphet> ...and if you say bash I will FUCKING KILL YOU
23:39:23 <CakeProphet> ...because I can't get my network adapter to work for Linux.
23:39:36 <CakeProphet> ...and because I don't think Linux is too much better than Windows.
23:41:20 <atrapado> CakeProphet, try cygwin , a unix environment for windows
23:42:00 <lament> your mom is kinda clumsy
23:55:20 -!- calamari has joined.
00:01:40 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
00:03:47 <lament> it allows you to use bash on windows, for one.
00:15:04 -!- oerjan has quit ("Gah, I'm tired").
00:31:21 <calamari> lament: I installed Linux on my work machine
00:32:36 -!- atrapado has quit ("can you turing-complete me").
00:35:18 -!- nazgjunk has changed nick to na[zZz]gjunk.
00:37:26 -!- ihope has joined.
00:37:43 <ihope> Say, that reminds me of something.
00:38:02 <ihope> It reminds me of the word "symbioses".
00:38:22 <fax> hmm synergy comes to mind
00:38:44 <bsmntbombdood> I need to figure out how to model computation with genetics
00:39:04 <fax> I need to figure out J's computation model :S
00:39:07 <fax> its really hard..
00:39:28 <ihope> Wow. Apparently humans have thousands of species of bacteria living inside them.
00:39:44 <ihope> Meaning... YOU'RE NOT REALLY HUMAN. (At least, not fully.)
00:41:49 <ihope> Now, that's interesting.
00:41:52 <ihope> It's also really gross.
00:42:57 <ihope> Here we go, then: "Bacteria make up . . . 60% of the mass of feces." http://en.wikipedia.org/wiki/Gut_flora
00:44:02 <ihope> What makes up the remaining 40%?
00:44:11 <RodgerTheGreat> and it certainly shows that there's no such thing as "waste"
00:44:56 <ihope> Let's eat some cellulose-digesting bacteria!
00:47:24 <RodgerTheGreat> we'd have to engineer it to survive in the very specific heat and ph conditions in the human intestinal tract
00:48:22 <ihope> Say, do you know how protein digestion works? Surely we don't have enzymes that go around breaking down every protein in sight.
00:49:33 <RodgerTheGreat> well, in most cases, you have enzymes designed to lyse specific amino acid bonds
00:50:11 <ihope> Only found in certain areas?
00:50:16 <RodgerTheGreat> this happens after the proteins have been denatured by stomach acid, so they're in strands rather than complex folded shapes
00:50:37 <RodgerTheGreat> long strands get cut into shorter, more manageable strands progressively
00:50:51 <ihope> Stomach acid denatures them... indeed, it would. Just what is denaturing?
00:51:06 <RodgerTheGreat> it's when a change in ph alters the folding of a protien
00:51:58 <RodgerTheGreat> this is why proteins have to be designed to operate in a very specific range, near which they operate at reduced capacity, and beyond which they completely cease functioning
00:53:58 <RodgerTheGreat> that's related to why humans run fevers when we get sick
00:54:52 <RodgerTheGreat> the nervous system reacts to infection by raising body temperature- running hot- in order to decrease the efficiency of or destroy invading viruses/bacteria
00:55:26 <RodgerTheGreat> but if body temperature gets too high, it can start to damage human tissues
00:56:23 <RodgerTheGreat> biology is something that just kinda clicks for me, so feel free to ask if you have any other questions
01:03:53 <ihope> I'm good with biology too.
01:04:09 <ihope> And with languages and math, for that matter. :-P
01:04:33 <ihope> On the second day, did God also create bacteria?
01:05:32 <fax> I dont think god created anything..
01:06:38 <ihope> Both English and other.
01:06:48 <ihope> Not that I'm actually fluent in any other languages.
01:07:12 <RodgerTheGreat> on the first day, there was nothing. And from nothing came matter, energy, the forces of the universe. Long this universe was sterile and barren, until a chance arrangement of molecules began to self-replicate. That was the moment everything changed.
01:07:56 <ihope> Earth changed plenty. I don't think the other planets noticed.
01:12:54 <RodgerTheGreat> ironically, the two things the human mind is incapable of truly grasping are polar opposites- Nullity and Infinity. I hypothesize that these failings are the root of the perceived requirement for an initial moment, a "beginning of time".
01:14:02 <RodgerTheGreat> we can manipulate these concepts symbolically, inferring their meanings from their connections to different ideas, but ultimately they just don't fit into people's worldviews.
01:16:04 -!- wooby has quit.
01:23:26 <GregorR> Let's put "its" in it's purest form, eh?
01:23:51 <ihope> Zero has a purest form?
01:24:13 <ihope> Is it the empty set, then?
01:24:22 <RodgerTheGreat> fer cryin' out loud, I was speaking figuratively! Can I wax poetic every once in a while?
01:24:38 <GregorR> Not unless you use proper grammar.
01:24:56 <ihope> Infinity: that which is greater than every integer.
01:25:42 <GregorR> Errr, I would say "number" there.
01:26:01 <GregorR> It's feasible that one could define irrational numbers greater than the greatest integer but smaller than infinity.
01:26:24 <GregorR> Mind you, I don't know of any :-P
01:27:10 <ihope> There is no good mathematical definition of "number".
01:27:38 <GregorR> Sure there is ... it's the union of the sets "rational number" and "irrational number"
01:27:48 <ihope> That's "real number".
01:28:09 <ihope> And besides, for every real number, there's a bigger integet.
01:28:11 <GregorR> Err, damn, that's what I was thinking X_X
01:28:13 <ihope> s/integet/integer/
01:29:30 <GregorR> My head is melting over my attempts to make sensible reference semantics for Plof :(
01:30:15 <ihope> Reference semantics?
01:30:45 <GregorR> So that I can do things like: associativeArray.element(3) = foo;
01:33:14 <bsmntbombdood> GETHASH returns a regular value, but it's somehow a valid lvalue too
01:33:59 <ihope> GregorR: make a function called element* or some such that returns a pointer, then have the function element automatically return what it points to?
01:34:35 <GregorR> OH, are you talking about in the implementation? I'm not worried about the implementation, I'm talking about the language itself.
01:34:48 <ihope> Make that statement equivalent to associativeArray.element*(3, foo);?
01:34:57 <ihope> Essentially, have a "set" function.
01:36:09 <bsmntbombdood> make the assignment operator assign to whatever address the lhs returns
01:36:21 <ihope> bsmntbombdood: that's pointers, isn't it?
01:36:29 <ihope> What's wrong with pointers, now?
01:37:10 <GregorR> I don't want to do something special with assignment, I'd rather have a generally useful semantic for references ... if possible >_>
01:37:28 <ihope> GregorR: so... pointers?
01:37:33 -!- Pikhq has joined.
01:37:41 <GregorR> Well, pointer (to me) imply pointer arithmetic.
01:38:53 <GregorR> You've lost a bit of context here X-P
01:39:15 <ihope> Well then, call them references instead and don't allow pointer arithmetic.
01:39:25 <GregorR> ihope: That doesn't solve my original problem.
01:39:36 <GregorR> I'd like to be able to do: someobject.blah(3) = 4;
01:40:26 <ihope> GregorR: references wouldn't allow that?
01:40:38 <GregorR> Not the ones you're describing, they'd need an explicit dereference.
01:41:12 <ihope> You could make = always implicitly dereference.
01:41:36 <ihope> Or do you want someobject.blah(3) to return an "assignable integer" or something like that?
01:41:39 <Pikhq> Or you could make them real pointers.
01:42:11 <ihope> Either you have an explicit dereference or you have an implicit dereference. Or set functions.
01:42:11 <GregorR> Here's the crux: I need to return a reference, and that reference needs to have different semantics as an rvalue than it does as an lvalue. However, returning involves passing a value into the return function, so it's an rvalue X_X
01:42:56 <GregorR> Anything that isn't an lvalue :)
01:43:10 <GregorR> Something which can be assigned to.
01:43:30 <GregorR> bsmntbombdood: I can't overload "=" because of the very nature of Plof.
01:43:32 <bsmntbombdood> when assigning to an object x, put the value in &x
01:43:53 <GregorR> That would make simple variable assignment ambiguous X_X
01:43:54 <ihope> So it needs to have different semantics when it can't be assigned to and when it can?
01:44:18 <GregorR> My definition wasn't very accurate ...
01:44:39 <ihope> Then give an accurate one?
01:44:54 <GregorR> If you have a variable 'a' with the value 3, 'a' is a valid lvalue, but evaluated as an rvalue it's 3.
01:45:05 <GregorR> I'm tryin', I'm tryin' X-P
01:45:18 <bsmntbombdood> GregorR: Have them evaluate the same way, is what i'm saying
02:10:09 <GregorR> Err, that's a valid question here :P
02:10:15 <GregorR> Variables are an example of lvalues.
02:10:25 <GregorR> Basically, if it /could/ appear on the left of a =, it's an lvalue.
02:15:05 * ihope codes up the union of BF and vanilla regexes
02:16:19 <Pikhq> Why not just the bastard child of Lisp and C?
02:17:17 <ihope> That would be too complex.
02:18:41 <Pikhq> Well, we've already got the child of Smalltalk and C++ going in #plof. . . ;)
02:25:41 -!- ihope has quit (Read error: 104 (Connection reset by peer)).
02:32:45 -!- sebbu has quit ("@+").
03:17:19 -!- ShadowHntr has quit ("End of line.").
04:16:40 -!- calamari has quit ("Leaving").
04:38:30 <Pikhq> ぼくは日本語でとても上手じゃない、よ。
04:39:07 <bsmntbombdood> heh, xterm knows how to render that, but xchat doesn't
04:41:56 -!- Pikhq has quit ("Leaving.").
04:42:34 <Sukoshi> さあ、上手にななってみるねぇぇ。エレガントな気持だわ。
04:43:12 -!- Pikhq has joined.
04:43:23 <Sukoshi> さあ、上手にななってみるねぇぇ。エレガントな気持だわ。
04:43:50 <Sukoshi> とにかく、昨日、アンタは私を聞いたいことがあった。何か、あの質問?
04:45:14 <Pikhq> Sorry, but my Japanese really *isn't* that good.
04:45:58 <Pikhq> En esperanto: Mi estas japana lingva komencanto.
04:50:01 <Sukoshi> You wanted to ask me something in Japanese yesterday.
04:50:51 <Pikhq> I just wanted to say that I got my IME working. . .
04:50:55 <Pikhq> And that's all I said.
04:51:34 <Pikhq> Unless, of course, you think 「やった!」is a question. . . XD
05:00:43 <Sukoshi> Oh, I could've sworn you asked me something *shrug*.
05:11:33 <CakeProphet> YOU ALL GET A ROSE - http://i83.photobucket.com/albums/j316/adamadamadamamiadam/rose.jpg
05:21:27 * lament changes the channel name to #flowers
05:23:39 <CakeProphet> mmmm.... C-like include stuff is kind of bad methinks
05:23:54 <CakeProphet> er... wrong channel... but we're all pretty much over on #plof too
05:25:18 <Pikhq> Of course, my personal language has a #include-like "source" command.
05:35:18 -!- GreaseMonkey has joined.
05:55:10 -!- ShadowHntr has joined.
06:09:18 <RodgerTheGreat> so I was working on the operator listing for Bullet, and this is really looking out of hand:
06:13:07 <RodgerTheGreat> I was kinda considering overloading the bitwise and logical operations on top of each other with some type of syntax to specify that the operations are working in a particular mode, but that doesn't simplify anything
06:15:44 <RodgerTheGreat> I'm considering completely removing the assignment operator family in favor of a different way of structuring commands that are entirely assignments.
06:16:07 <RodgerTheGreat> because when you really get down to it, they aren't conventional "operators"
06:17:13 <GreaseMonkey> e.g. if((i=getidx())>=0){ printf("Name: %s\n",array[i]); }
06:17:50 <RodgerTheGreat> well, getting rid of =/== differences could dramatically reduce a number of types of coding errors.
06:18:37 <RodgerTheGreat> and while that one-liner is clever, it doesn't really demonstrate good coding practice. It doesn't ultimately save any operations once it runs through a compiler.
06:19:02 <GreaseMonkey> hmm, i think it cuts out an instruction or two
06:19:21 <GreaseMonkey> doing i=getidx() on its own reloads i entirely, i think
06:20:32 <GreaseMonkey> hmm, i find it still faily readable, and less cluttering
06:20:44 <GreaseMonkey> though i prefer if(){ oneline; } to if() oneline;
06:21:25 <RodgerTheGreat> in fact, I'm definitely going to make block delimiters for one-liners required.
06:21:34 -!- Arrogant has joined.
06:21:49 <RodgerTheGreat> it improves readability if tabbing gets fucked up or someone has odd whitespace conventions
06:22:52 <GreaseMonkey> with my old plan for tomato and new plan for potato, you had no choice because anything between {} is a function, and if was like if(cond,{stuff;});
06:23:11 <GreaseMonkey> doing if(cond,stuff); would make stuff execute unconditionally
06:24:00 <RodgerTheGreat> here's another thing- do you think powering should be a primitive operator?
06:24:04 <GreaseMonkey> for some weird-ass reason, stuff from plof seems to have seeped into tomato which potato is based on
06:24:39 <Pikhq> And you'd be right. . .
06:25:04 <RodgerTheGreat> it's almost never used (and I'd say never necessary) for logical expressions, but a bitwise version would be handy
06:25:15 <GreaseMonkey> if it's algebra-intensive, it should be an operator
06:25:57 <RodgerTheGreat> there are a lot of floating point things about that op that could get complex
06:26:37 <RodgerTheGreat> so, a bitwise XOR should be added for sure, and we'll see about powering
06:28:19 <RodgerTheGreat> inc and dec aren't really *necessary* and once again don't act like most operators, (they're in the assignment family) but they would help the compiler along a bit
06:28:24 <GreaseMonkey> bsmntbombdood: "NOT" is declared as '!' - this ain't LUA
06:28:48 <GreaseMonkey> but "INC eax" is faster and smaller than "ADD eax,0x00000001"
06:31:20 <GreaseMonkey> seeing as there's SHL eax,(param) , and it shouldn't be too hard, yes
06:34:22 <RodgerTheGreat> my idea for assignments is to do them in blocks like "set parameter as expression" or "set [parameters] as [expression]"
06:35:04 <RodgerTheGreat> which is consistent with function call syntax of "do [parameters] to [parameters]"
06:36:37 <GreaseMonkey> i just love how i can just punch in a math function into C and BASIC
06:37:14 <GreaseMonkey> most good programming languages use standard math
06:37:31 <RodgerTheGreat> BASIC one-ups C with the cool feature of being an interpreted language- eval().
06:38:07 <RodgerTheGreat> but most BASICs are lacking in bitwise operators- vital for a language that'll be compiling to machinecode
06:38:08 <Pikhq> But Tcl one-ups Basic with the cool feature of having functions.
06:38:39 <Pikhq> I assume, of course, traditional "burnt into microcomputer's ROM" BASIC. ;)
06:39:34 <Pikhq> . . . Fine. Tcl's got this funny thing called "a sane syntax".
06:39:44 <RodgerTheGreat> BASIC has had functions nearly since it's conception, dude. TINYBASIC implementations for minicomputers with 4k of ram were what gave everyone a bad impression of the language
06:40:16 -!- ShadowHntr has quit (Client Quit).
06:40:25 <Pikhq> Call me up when they've got good list processing functions.
06:40:53 <RodgerTheGreat> you have completely missed the point of BASIC. congratulations.
06:41:10 <Pikhq> I'm being sarcastic. -_-'
06:41:27 * Pikhq started out on BASIC. . . Which is, of course, the whole point
06:42:09 <RodgerTheGreat> hm. I'm not sure if the convenience of just "set parameter as expression" for single assignments outweighs its inconsistencey.
06:42:46 <RodgerTheGreat> I might stick with simply "set [parameters] as [expressions]" at all times for that sake.
06:45:31 * Sukoshi slaps GreaseMonkey with a trout.
06:45:56 <RodgerTheGreat> I'm a CS, but I'm reasonably handy with electronics. Think I might be able to help?
06:46:28 <Sukoshi> When applying Kirchoff's Rules, is there one I per loop?
06:46:50 <Sukoshi> Electricity/magnetism has captured my heart.
06:47:01 <Sukoshi> Yes, I love it more than computers :P
06:47:47 <Pikhq> He's named Jesus, not What. :p
06:47:47 <Sukoshi> Do I have to go to #esoteric-ee now ? :(
06:47:56 <RodgerTheGreat> how can physics be more fascinating than a deterministic logic engine?
06:49:17 <Pikhq> How can nondeterminism be more fascinating to a Vulcan mindset than determinism?
06:50:09 <Sukoshi> Because you can mount a set of permanent magnets on the opposite sides of a doorknob, and place a wire loop connected to a switch to a battery surrounding the doorknob, in which one end perpendicular to a magnetic field is mounted inside of an insulator (but still allowing the magnetic field to exert the force), causing the wire to rotate and effectively causing a lock on the doorknob, if you have current running through the switch.
06:50:22 <Sukoshi> And you can make that lock with a few calculations, and $0.05 stuff.
06:50:58 <RodgerTheGreat> I just like fiddling with things in my junk drawer and my multitool until they work properly.
06:50:59 <Pikhq> Yes, but *I* can devise a simulation of that door and make a virtual room with a wall of locked doors.
06:51:10 <Arrogant> Nondeterministic is far more fascinating to me
06:51:25 <Sukoshi> I dunno, I got the engineering bug.
06:51:38 <Sukoshi> I who've been interested with such impractical things all my life. It feels weird to even me.
06:52:08 <RodgerTheGreat> physics are just mechanical systems to me, whereas a computer is a meta-machine that translates intangible information into action
06:52:12 <Sukoshi> Pikhq: But that virtual door won't stop your sister from turning off the lights while you're doing homework, or stop your parents from spying on you at night when you're supposed to be ``sleeping''.
06:52:28 <Pikhq> Sukoshi: No, it won't.
06:52:37 <Pikhq> It'll make them afraid of doing so.
06:53:02 <Pikhq> Intellectually, I pwn everyone around here. . .
06:53:04 <RodgerTheGreat> but engineering is a highly creative, yet productive process. It's not surprising your interests could move in that direction from programming
06:53:07 <Arrogant> It'll stop your virtual sister
06:53:25 <Pikhq> Were I really, truly angry, I would be able to exact revenge without hurting a single physical object.
06:53:29 <Sukoshi> My parents don't need to care about that.
06:53:49 <Pikhq> My parents are electronics-dependant.
06:53:52 <Sukoshi> Gawrsh, those are pretty pictures. *Plugs out computer*. You're supposed to be a mindless Indian engineer who hates her job! Fool!
06:54:35 <Pikhq> I could, if necessary, instate a ransom on all of their data. . . And they'd either follow through or be broke.
06:54:50 <Pikhq> I've not done so simply because they're not jerks, and therefore not deserving.
06:55:13 * Pikhq has just gotten a cracker streak. . . Where the hell did that come from?!?
06:55:38 <RodgerTheGreat> that's a nasty little superiority complex you have stewing there. You might want to get your antisocial tendencies looked at.
06:56:01 <Sukoshi> I blame my friend when I asked him to help me with < $0.05 easy to hide antenna designs.
06:56:42 <Pikhq> I might want to wonder WTF I'm thinking.
06:56:56 <Pikhq> Brain, please synchronise with reality.
06:57:39 <Pikhq> Or at least make intellectual arrogance less blatant.
06:58:05 <RodgerTheGreat> there's nothing like spending 6 hours bringing life to a tiny machine only to have it stab you in the finger and then fall off the table.
06:58:30 <RodgerTheGreat> they're usually tough little critters but not so much when I install solar cells.
07:00:31 <RodgerTheGreat> BEAM robotics really creates a new perspective on how complex a machine has to be to "survive" as insects do. Once you try making something with just a handful of transistors that you can just release in your yard and find alive weeks later you wind up having an epiphany.
07:02:01 <RodgerTheGreat> Sukoshi: please tell me you'll try BEAMbotics. It's friggin' awesome.
07:02:23 * Pikhq goes to sleep in hopes of waking up a lesser idiot
07:03:11 <RodgerTheGreat> the wiki article is a pretty good intro: http://en.wikipedia.org/wiki/BEAM_robotics
07:04:23 -!- CakeProphet has quit (Read error: 113 (No route to host)).
07:06:51 <RodgerTheGreat> I'm really only a beginner with "bicore" analog neural networks, but I find them fascinating
07:18:16 -!- Arrogant has quit ("Leaving").
07:53:58 <oklopol> "<RodgerTheGreat> but then, we could eat wood." you can eat wood.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:13:43 -!- na[zZz]gjunk has changed nick to nazgjunk.
09:09:36 -!- sebbu has joined.
11:10:52 -!- GreaseMonkey has quit ("skoolz owt fank yu").
11:26:18 <SimonRC> bsmntbombdood: Common Lisp has a quite neat setters and getters system. Haskell has the cleanest system for mutable variables I have every seen, though it is rather verbose. You could also look at bash for ideas. (different name for varibles when setting than when getting) And False (esolang) has a good system too.
11:27:03 <SimonRC> and RodgerTheGreat and GreaseMonkey were having a conversation that was seriously insulting to the intelligence of compiler-writers last night
11:34:01 * SimonRC calculates the power density of the sun
11:34:18 <SimonRC> it is humerously low: 0.27 W/m^3
11:34:59 <SimonRC> No wonder the people building fusion reactors are having such a hard time.
12:00:14 -!- jix__ has joined.
12:37:50 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
13:56:59 -!- fax has quit (" ").
14:50:53 <bsmntbombdood> Sukoshi: you think you could create a strong enough force like that?
15:02:39 <bsmntbombdood> My gut tells me that it takes a lot of torque to stop a doorknob from turning
15:07:36 <oklopol> might be easier to just use a lock
15:07:49 <oklopol> unless i somehow misunderstood the point :)
15:44:26 <oklopol> can you attain noticeable forces without using a month's worth of electricity?
15:45:08 <oklopol> with just making coils from the wire :P
15:45:25 -!- crathman has joined.
16:46:20 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
18:15:49 -!- ShadowHntr has joined.
18:56:14 -!- atrapado has joined.
19:15:11 -!- CakeProphet has joined.
19:15:36 -!- ShadowHntr has quit (Read error: 145 (Connection timed out)).
19:31:34 -!- RodgerTheGreat has quit.
19:53:48 -!- dub__ has joined.
19:53:54 -!- atrapado has quit (Nick collision from services.).
19:54:03 -!- dub__ has changed nick to atrapado.
20:51:20 -!- crathman has quit ("ChatZilla 0.9.78 [Firefox 2.0.0.3/2007030919]").
20:55:48 <GregorR> Despite my general disdain for decentralized SCM, I'm starting to quite like darcs >_>
21:29:49 -!- sebbu2 has joined.
21:47:13 -!- jix__ has joined.
21:48:53 -!- sebbu has quit (Read error: 110 (Connection timed out)).
21:55:22 -!- oerjan has joined.
21:58:13 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
21:58:14 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
22:03:12 -!- bsmntbombdood has joined.
23:07:58 -!- kbrooks has joined.
23:08:20 <oerjan> it's about weird programming languages
23:08:23 <kbrooks> Please leave this channel, and rejoin.
23:08:43 <kbrooks> Please, some one write the first 16 numbers of the Fibonacci Sequence.
23:09:06 <kbrooks> oerjan, ok, so thats a exception...
23:10:41 <oerjan> 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 and why did i do this by hand...
23:12:11 <kbrooks> Some code generation magic in IRP.
23:12:30 <kbrooks> "Please show me the 'Hello World' program in C"
23:12:57 <kbrooks> -> int main() { printf("Hello World\n"); return 0; }
23:13:37 <oerjan> wow, parallel processing
23:15:14 <bsmntbombdood> hahahaa http://texas.clubsi.com/Aaron/ClubSi/CB.JPG
23:17:19 * oerjan wonders if you could make one for innumerates...
23:17:51 <lament> 3.141592653589793238462643383279 and why did i do this by hand....
23:19:50 <oerjan> especially since no one asked...
23:20:08 <lament> bsmntbombdood: that's 30 digits i think
23:20:18 <lament> i couldn't be bothered to go to 50
23:20:22 <oerjan> and i do _not_ have fibonacci numbers memorized beyond 13
23:20:34 <bsmntbombdood> 3.141592653589793238462643383279502884197169399375105
23:21:03 <bsmntbombdood> I don't have pi memorized to 51 decimal places, I just calculated it on the fly
23:21:27 <oerjan> i thought you were a snob or something ;)
23:22:09 <jix__> 3.1415926 i don't know more digits
23:22:14 <jix__> like when does one need more?
23:23:08 <oerjan> when you are writing an infinite precision trigonometry library, i guess
23:23:55 <oerjan> for that pesky sin(10^1000)
23:24:54 <jix__> that's about 0.6533597982103698569480994680397685742659165408154051592053714008289739109316094727701317615597375546
23:26:10 <oerjan> how did you calculate it?
23:26:17 <jix__> oerjan: i typed it into mathematica
23:26:42 <bsmntbombdood> http://www.acc.umu.se/%7Ezqad/cats/index.html?view=1168702253-1167481579703.png
23:38:07 -!- Pikhq has joined.
01:01:01 -!- sebbu2 has quit ("@+").
01:17:56 -!- atrapado has quit ("sumaesuma").
01:21:31 -!- nazgjunk has quit ("Away for the weekend, don't expect me back until sunday evening CET, at the very earliest").
02:47:03 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
03:15:15 -!- Pikhq has quit ("Leaving.").
03:16:54 -!- Pikhq has joined.
03:23:44 -!- Sukoshi has quit ("Yah.").
03:24:31 -!- oerjan has quit ("Good night").
03:36:06 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
03:44:34 -!- Sgeo has joined.
04:03:41 -!- Figs has joined.
04:04:04 <Figs> http://www.faisal.com/geek/opcodes.txt
04:22:18 -!- GreaseMonkey has joined.
05:02:44 -!- ShadowHntr has joined.
05:03:03 -!- bsmnt_bot has joined.
05:13:57 <GregorR> If you brought your bot in, that'd be three ...
05:14:54 <GreaseMonkey> just as long as there are more people than bots (except #botpark ), it's fine
05:35:19 -!- Sukoshi has joined.
06:12:41 <GreaseMonkey> operbot = a bot that does op stuff for your chan
06:13:04 <lament> will it ban everybody from #esoteric?
06:13:24 <GreaseMonkey> no it won't unless you make it do that in the source
06:14:13 <lament> so yeah, like chanserv
06:18:29 <lament> chanserv can op people
06:18:36 <lament> as well as set channel modes and stuff
06:19:36 <lament> it can still op you and then you kick the person yourself.
06:19:46 <lament> and kicking is practically useless anyway.
06:20:13 <GreaseMonkey> note that `kick foo is faster than /cs op greasemonkey then /kick #chan foo
06:20:15 <Figs> access of 8 for voice? O.o
06:20:35 <Figs> `kb foo barmsg
06:21:23 <Figs> (+v all good citizens, +m channel)
06:22:01 <lament> i still fail to see how is this useful
06:22:24 <Figs> it's useful because you flex your coding muscles :P
06:22:25 <lament> if you want to kick people so badly
06:22:42 <lament> or do you want to be an undercover op that jumps out and kicks people randomly?
06:22:44 <Figs> whoo! Hydrogen.
06:22:49 <GregorR> lament: I WANNA KICK PEOPLE! Can I have ops ZOMG 8-D
06:23:08 -!- ChanServ has set channel mode: +o GregorR.
06:23:32 <lament> the reign of terror!!!
06:23:47 -!- bsmnt_bot has joined.
06:24:24 -!- GregorR has set channel mode: +b %bsmnt_bot!*@*.
06:24:40 <Figs> you guys have access at 30? O.o
06:24:46 -!- GregorR has set channel mode: -b %bsmnt_bot!*@*.
06:24:52 -!- GregorR has set channel mode: -o GregorR.
06:25:22 <lament> taaus hasn't been here for 2 years :(
06:25:43 <Figs> 2y 8w 3d 14h 45m 41s
06:25:50 <lament> aardappel for a year and a half... :(
06:26:06 <Figs> as of 4/5/07 19:22:13 GMT-10
06:26:09 <lament> aardappel is a genius, taaus is just cool
06:28:27 <Figs> I have to log in? :(
06:28:51 <Figs> and no bmn access!
06:36:50 <Sukoshi> I propose a non-esoteric project.
06:36:58 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
06:37:03 <Sukoshi> In a non-esoteric language.
06:37:19 <Figs> I'm already working on it :D
06:37:30 <Figs> http://student.hpa.edu:16080/weblog/cmcfarland/ProgrammingDesign/
06:37:38 <Sukoshi> A cross-platform PDF viewer.
06:37:49 <Figs> I'm not working on it :P
06:37:58 <Sukoshi> Completely cross-platform. Maybe a little bit of bootstrap code per platform, but hopefully not.
06:38:15 <Sukoshi> Language of design: ObjC, OCaML, or Java -- in order of speed.
06:38:35 <Figs> Wot? No C++? :(
06:38:54 <Figs> yeah, yeah, yeah... :P
06:38:59 <Sukoshi> No. I said no esoteric languages :P
06:39:15 <Figs> you should see some of the weirder stuff I write in C++...
06:39:45 <Sukoshi> I once attempted to wrap a SWIG wrapper around C++ code that heavily used Boost and templates.
06:39:55 <Sukoshi> I suddenly found a new disrespect for the language.
06:40:15 <Figs> well, templated/boost code can get very hard to read if you aren't careful
06:40:25 <Sukoshi> SWIG lets you use C/C++ code in languages that support SWIG wrappers without a specific FFI built-in for the language.
06:40:26 <Figs> (although things like boost::any are quite clean, imo.)
06:40:35 <Sukoshi> I mean, I'm not an actual C++ coder after all.
06:40:58 <Sukoshi> Someone proposed OCaML earlier.
06:41:27 <Figs> I'm a C++ coder... it's what I know :P
06:41:41 <Sukoshi> So it's the only thing your head has enough room left for :P
06:42:01 <Figs> are you kidding?
06:42:24 <Figs> I wouldn't say it's _terrible_
06:42:31 <Figs> but it is rather annoying sometimes
06:43:14 <Sukoshi> That's what makes it terrible.
06:43:35 <Sukoshi> I like languages which I don't have to devote my entire life to to code in.
06:45:13 <Figs> I haven't devoted my whole life to C++
06:45:16 <Figs> I'm only 18 :P
06:45:40 <Figs> although admittedly, it's taken me about 5 years to get "good" at it
06:46:09 <Figs> ... I wish C++ had a 'finally' key word :|
06:46:16 <GregorR> http://www.digitalmars.com/d/
06:46:19 <Figs> it'd save so much fucking trouble
06:46:27 <GregorR> and http://dgcc.sourceforge.net/
06:47:22 <Sukoshi> I'm younger than you, and I don't want to be your age by the time I become profficient at it :P
06:47:35 <Sukoshi> The reason I don't want to use D is that it's not well-enough-known yet.
06:47:50 <Sukoshi> I want something that compiles to a lot of platforms.
06:48:33 <Sukoshi> I'm tired of having either Xpdf and I-leak-memory-like-a-burst-blood-vessel Poppler in t3h *nix world and Adobe's locked-in proprietary thingamabobber in Windows.
06:49:59 <Sukoshi> Plus it has Advanced Add-Ons you can pay for.
06:50:45 <Figs> it bothers me too a bit
06:51:19 <Figs> you should program your pdf viewer in brainfuck :)
06:51:23 <Sukoshi> So, any takers for the project?
06:51:43 <Figs> google code has project hosting?
06:51:46 <Sukoshi> Well, I was also seriously considering Forth, because it's stack-based just like PS/PDF so....
06:52:13 <Figs> C++ has stacks :D
06:53:07 <Sukoshi> C++ probably has Your Mom also.
06:53:49 <Figs> ^^^ -- there's the point!
06:53:51 <Sukoshi> No. That's a period/full-stop.
06:54:06 <Figs> I can call it a 'point' if I really want to ... :)
06:54:12 <Sukoshi> A point has an infinitely small thickness, remember?
06:54:24 <Figs> "This project currently has no issues."
06:54:58 <bsmntbombdood> Sukoshi: shouldn't be hard to make it cross platform
06:56:09 -!- Sgeo has quit ("Ex-Chat").
06:56:48 <Sukoshi> Work will begin after AP tests finish.
06:56:53 <Figs> My feet are hairy.
06:57:03 <Figs> I just realized this.
06:57:12 <GregorR> .....................................
06:57:43 <Sukoshi> What about Java, bsmntbombdood? :P
06:57:53 <Figs> GregorR: I'd hope so... otherwise you'd be bald.
06:58:04 <Sukoshi> It's not that bad, if you code correctly.
06:58:17 <Figs> Sukoshi: That's what they say about C++ :)
06:58:39 <Sukoshi> The only reason Java might not fly is speed.
06:58:40 <Figs> Java is mostly C++ with a few changes.
06:58:53 <Sukoshi> You mean, a syntax that doesen't make you barf?
06:58:53 <Figs> don't write your project in Java
06:59:30 <Sukoshi> Garbage collection. Exceptions.
06:59:38 <Sukoshi> No explicit memory management.
06:59:43 <Sukoshi> C++ has garbage collection?
06:59:46 <GregorR> Java has eliminated everything that doesn't fit their "OO is the only way" concept.
07:00:15 <Figs> there are a couple ways of doing GC either directly in C++ or on top of it
07:00:28 <Sukoshi> There are ways of doing GC in C too.
07:00:43 <Figs> although it isn't built in, but neither is std::vector
07:01:06 <GregorR> <-- officially no longer part of this conversation.
07:01:17 * Sukoshi officially pulls Gregor back in.
07:01:34 <Figs> heh, I didn't say C++ was better than java
07:01:46 <Figs> I just said it was about the same in terms of the way it's built. there's a difference ;)
07:01:56 <Sukoshi> C++ isn't in my list of languages. So there.
07:02:15 <Sukoshi> Java, OCaML, ObjC and why.
07:02:24 <Sukoshi> bsmntbombdood: Mmmm. I beg to differ.
07:02:35 <Figs> Sukoshi: have you used open-office?
07:02:36 <Sukoshi> Ever coded a significant application yourself?
07:02:48 <Sukoshi> Rather than rely on cr** code other people make?
07:03:06 <Sukoshi> Yeah. I coded an NN framework and a small signal process framework in it.
07:03:26 <Sukoshi> Both fast and light, and this is an aging machine. (1.6 GHz, 256 MB RAM).
07:03:54 <Sukoshi> Even while using double-point floats almost everywhere.
07:04:13 <GregorR> Blah blah blah, this is better that is better, blah blah blah, my god has a bigger penis than your god, blah blah blah.
07:04:40 <Sukoshi> Anyways, I have Physics to cram for. Squabble it out for yerselves.
07:05:58 <Figs> GregorR: Your god has a penis? :P
07:06:36 <GregorR> Figs: In a totally non-homoerotic way.
07:06:50 <bsmntbombdood> GregorR: my penis has a bigger god than brainfuck's
07:07:25 <GregorR> Figs: Then my god does have a bigger penis than your god. Therefore I win all arguments.
07:07:49 <Figs> I don't have a god, therefore the argument is 'N/A' :P
07:08:05 <Figs> your god can't have a bigger penis than something that doesn't exist ;)
07:08:13 <Figs> even imaginatively ;)
07:08:56 <Figs> that's like saying an apple is bigger than the number zero.
07:09:18 <Figs> it is. It's an illogical comparison ;)
07:13:59 <GregorR> I declare this conversation over.
07:14:51 <GregorR> Now, everybody go talk about how whootsy http://www.codu.org/plof/ is :)
07:14:55 <GregorR> (The language, not the web site ;)
07:15:38 <Figs> but F is the null pointer!
07:16:06 <Figs> if there is no x in F?
07:16:28 <Figs> my empty set is bigger than your empty set?
07:16:31 <Figs> Oh yeah? Prove it.
07:19:50 <Figs> Vacuous: noun. (1) Emptied of or lacking content. (2) marked by lack of ideas or intelligence: stupid, inane.
07:21:33 <Figs> John found good igloos?
07:22:06 <Figs> jfgi? webster. :P
07:22:41 <Figs> and if you meant your argument, no thanks. I don't want penis in my browser. :P
07:23:07 * Figs changes the subject
07:23:37 <Figs> put lead on food?
07:24:14 <Figs> I saw function <linebreak>thick
07:24:17 <Figs> and I read "fuck"
07:24:27 <Figs> "Fuck is a keyword???"
07:25:13 <Figs> pitiful licking of french fries!
07:25:51 -!- ShadowHntr has quit ("End of line.").
07:26:03 <GregorR> bsmntbombdood: ~ is concatenation. ~= is to ~ as += is to +
07:27:26 <bsmntbombdood> should the function in foreach be given the current element?
07:28:19 <GregorR> That's commented out because I don't have an implementation of it yet :P
07:28:36 <GregorR> That was from the leading edge of Plof1.
07:31:17 <Figs> `night bsmntbombdood
07:33:38 -!- nazgjunk has joined.
07:35:02 <Figs> go get some zzz.
07:36:38 <Figs> ZZZ!!!! <BANG>
07:36:55 <Figs> *the ZZZ-machine has explosmed.*
07:59:11 -!- nazgjunk has quit ("Bi-la Kaifa").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:54:42 -!- CakeProphet has joined.
09:18:53 -!- sebbu has joined.
09:23:28 -!- gg_ has left (?).
09:31:28 <Figs> do you know the meaning of the word 'deasil'?
09:36:58 <Figs> anyone here who cares enough to look the word up :P
09:37:25 <Figs> hint: it's the opposite of widdershins
09:37:43 <Sukoshi> I don't think there are any you's here then.
09:42:29 <Sukoshi> Figs: Go and spend that time doing something useful.
09:42:33 <Sukoshi> Like making more Esolangs.
09:43:35 <Figs> abscotchalater: n. one hiding from the police.
10:05:08 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
10:34:38 -!- Figs has left (?).
10:44:08 -!- GreaseMonkey has quit ("gnight, and remember to troll the #teamloosh channel on irc.bluehell.org").
10:48:52 -!- CakeProphet has joined.
11:19:49 -!- CakeProphet has quit ("haaaaaaaaaa").
11:35:00 -!- jix__ has joined.
13:19:52 -!- Pikhq has joined.
13:41:40 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
14:19:58 -!- puzzlet has quit (Read error: 60 (Operation timed out)).
14:48:24 -!- nooga has quit (Read error: 145 (Connection timed out)).
15:05:15 -!- nooga has joined.
15:07:46 -!- sebbu2 has joined.
15:09:45 -!- sebbu has quit (zelazny.freenode.net irc.freenode.net).
15:09:45 -!- sp3tt has quit (zelazny.freenode.net irc.freenode.net).
15:09:49 -!- sebbu2 has changed nick to sebbu.
15:10:11 -!- sp3tt has joined.
16:02:05 -!- UnrelatedToQaz has joined.
16:02:34 -!- UnrelatedToQaz has quit (Client Quit).
16:30:55 -!- puzzlet has joined.
16:51:39 -!- CRathman has joined.
17:16:10 -!- kbrooks has quit (Remote closed the connection).
17:58:47 -!- CakeProphet has joined.
18:19:31 -!- Pikhq has joined.
18:28:40 -!- helios24 has quit (Read error: 148 (No route to host)).
19:33:42 -!- CRathman_ has joined.
19:41:47 -!- CRathman has quit (Read error: 60 (Operation timed out)).
19:44:10 -!- helios24 has joined.
19:44:46 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
20:08:37 -!- atrapado has joined.
20:43:46 -!- ihope has joined.
20:44:41 <ihope> Is there a formal definition of Turing-completeness?
20:46:26 <atrapado> ihope, yes: turing machines, lambda calculus
20:46:46 <ihope> Is "Turing machines, lambda calculus" it?
20:48:23 -!- bsmntbombdood has quit (Read error: 131 (Connection reset by peer)).
20:48:25 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
21:14:19 -!- Pikhq has joined.
21:17:05 <lament> ihope: look up the church-turing thesis on wikipedia...
21:21:52 <ihope> I don't see a definition there, other than "Any non-interactive computer program can be translated into a Turing machine, and any Turing machine can be translated into any Turing complete programming language".
21:24:42 <lament> i suppose there's a more formal statement of the thesis by the saints themselves
21:25:48 <ihope> Turing-completeness, not the Church-Turing thesis...
21:26:20 -!- jix has joined.
21:27:00 <ihope> Related, yes, but I'm looking for a definition of Turing-completeness.
21:28:49 -!- Sgeo has joined.
21:34:34 -!- jix__ has quit (Read error: 110 (Connection timed out)).
21:41:59 -!- ShadowHntr has joined.
22:26:12 -!- bsmnt_bot has joined.
22:26:36 -!- bsmntbombdood has joined.
22:30:02 -!- sebbu2 has joined.
22:33:40 -!- ShadowHntr has quit ("End of line.").
22:37:58 -!- sebbu has quit (Read error: 145 (Connection timed out)).
22:38:00 -!- sebbu2 has changed nick to sebbu.
22:38:56 -!- oerjan has joined.
22:42:28 <Sukoshi> Which should I use for a PDF viewer: Java, OCaML, or ObjC and why?
22:42:53 * oerjan ponders the nonexistence of the CFC (Catch Fire and Continue) instruction.
22:43:47 <oerjan> ocaml because it pwns all the others mentioned
22:44:59 <oerjan> alternatively you could use Scala if you want JVM support.
22:45:41 <Sukoshi> The language has to be relatively common.
22:47:19 <CRathman_> python has a nice pdf library available
22:47:22 <ihope> oerjan: f00f (or so it's called) comes close.
22:47:28 <ihope> Erm, wait a minute.
22:47:35 <Sukoshi> I don't want to depend on an external library.
22:49:27 <ihope> I mean... ah, never mind.
22:51:36 * oerjan thought for a moment ihope was responding to the PDF question and wondered what programming language f00f was...
22:52:22 <ihope> Maybe I'll design an esolang and call it f00f, and add a CFC instruction.
22:52:38 <ihope> It also damages the ozone layer!
22:52:50 <oerjan> ah yes! and added bonus.
23:00:43 <Sukoshi> No-one's lobbying languages.
23:02:48 <ihope> Let's write a programming language that has a market economy instead of a command economy.
23:03:37 <ihope> There are a bunch of individuals, which are issued... things which they can trade to each other.
23:03:41 <ihope> bsmntbombdood: you did?
23:03:49 <bsmntbombdood> <bsmntbombdood> ObjC, because it's fast and looks interesting
23:04:38 <Sukoshi> No-one's lobbying other than bsmntbombdood :(
23:04:51 <Sukoshi> And <oerjan> ocaml because it pwns all the others mentioned
23:05:34 <ihope> Objective-C has a market economy?
23:08:17 <ihope> ...maybe the individuals go around reproducing and evolving and dying and stuff, and the only way you can do anything is by controlling the Fed.
23:13:10 <ihope> "If you output this character, I'll give you a dollar."
23:14:03 <ihope> Just make it so that the only trade you can do is buying and selling. That way, no trade can happen unless there's money in the world.
23:15:03 <ihope> The amount of money determines the amount of trade: if there's only one indivisible unit of money in the world, everything is either available for free, not available, or available for the price of one unit.
23:15:05 -!- CRathman_ has quit ("ChatZilla 0.9.78 [Firefox 2.0.0.3/2007030919]").
23:15:52 <ihope> Stuff with utility probably won't be free, so that means that which is available costs one unit.
23:17:29 <oerjan> btw i suspect Scala is as portable as Java, being built on top of it.
23:18:33 <oerjan> i wouldn't know for sure, since i have never actually tried it.
23:23:39 -!- atrapado has quit ("atra pa do").
23:26:19 <ihope> main = getContents >>= putStr
23:26:26 <ihope> Haskell is very different indeed.
23:26:59 <ihope> I very much hope you can write a better cat program than that in Python.
23:27:35 <ihope> Or is that not only copy-input-to-output but a concatenator?
23:28:17 <ihope> oerjan: that too, yes.
23:28:44 <ihope> main = getContents >> putStr ""
23:28:48 <CakeProphet> that was actually a library for Python generators I was messing with... making a cat program out of it sounded like a good test.
23:28:52 <ihope> A different kind of zero program.
23:29:18 <oerjan> that getContents seems somewhat redundant
23:31:40 <oerjan> main = getChar >>= putChar >> main
23:34:48 <Sukoshi> I can write a shorter one in BASH.
23:38:35 <ihope> I'd say main=interact id is the winner.
23:39:02 <ihope> This is not a quine: main=main
23:40:13 <oerjan> import System.Environment; main = getArgs >>= mapM_ (putStr . readFile)
23:43:24 <oerjan> import System.Environment; main = getArgs >>= mapM_ ((putStr =<<) . readFile)
23:48:28 <ihope> Indeed, good luck putStr'ing that.
23:49:05 <oerjan> what, something wrong with it?
23:49:15 <bsmntbombdood> import readline, sys; for i in readline.readline(): sys.stdout.write(i)
23:49:46 <ihope> You corrected it for a reason, aye?
23:59:24 <oerjan> main = flip mapM_ [putStr, print] $ flip ($) "main = flip mapM_ [putStr, print] $ flip ($) "
00:02:08 <ihope> main = putStr x >> print x where x = "main = putStr x >> print x where x = "
00:02:45 <oerjan> hah, old and boring. we should aspire to being flipping mad
00:05:01 <ihope> main = flip mad (putStr x) (print x) where mad = (<<); x = "main = flip mad (putStr x) (print x) where mad = (<<); x = "
00:06:52 <ihope> Hey, even better: main = flip mad (print x) (putStr x) where mad = (>>); x = "main = flip mad (print x) (putStr x) where mad = (>>); x = "
00:12:38 <oerjan> main = sequence_ $ [putStr, print] >>= return . flip ($) "main = sequence_ $ [putStr, print] >>= return . flip ($) "
00:14:14 * oerjan points out this is _not_ a _shortest_ quine contest. We did that last time.
00:51:28 -!- sebbu has quit ("@+").
00:57:29 <ihope> Let's do a BF busy beaver!
00:57:48 <ihope> See how much you can output in a 10-character program.
00:58:20 <ihope> My entry: ..........
00:58:44 <oerjan> and the program must halt.
00:58:51 <ihope> Ooh, here's a better one: +++[....-]
00:59:40 <Pikhq> If one uses a wrapping implementation, it never ends.
01:00:16 <ihope> Does it end in a wrapping implementation?
01:00:19 <oerjan> if one uses a non-wrapping implementation, it never ends either.
01:00:59 <Pikhq> oerjan: It would crash if it doesn't wrap but only allows 8-bit cells.
01:01:05 <ihope> How about we say the tape is infinite in both directions, each cell can hold any non-negative integer, and decrementing 0 yields 0?
01:01:21 <ihope> Crashing doesn't count!
01:01:47 <Pikhq> It only crashes if cell size is limited but doesn't wrap.
01:01:57 <ihope> Either that, or you're not allowed to decrement 0.
01:02:07 <Pikhq> My implementation doesn't decrement at all.
01:02:22 <ihope> We don't want any -[.-] here.
01:02:34 <ihope> Nor +[.+], for that matter. :-)
01:02:37 <oerjan> why not have unbounded negative?
01:02:45 <ihope> oerjan: convenience?
01:03:04 <Pikhq> But +[.+] isn't an infinite loop, like my program. ;)
01:03:05 <ihope> Then again, allowing unbounded negative is probably fine.
01:03:07 <oerjan> all it does is making 0 decrementing weird.
01:03:28 <ihope> The tape is infinite in both directions and each cell can hold any integer.
01:03:39 <Pikhq> (unless nonwrapping and unbounded cells)
01:03:42 <ihope> Is it possible to do better than +++[....-] (12)?
01:04:20 <ihope> Pikhq: what about unbounded wrapping?
01:04:33 <Pikhq> ihope: That's an oxymoron.
01:04:43 <Pikhq> Wrapping only has a meaning with bounded cell size.
01:05:37 <Pikhq> It'd only loop once.
01:06:12 <ihope> 0, 6, 10, 12, 10, 6, 0!
01:06:45 <ihope> I vote for impossible.
01:07:07 <Pikhq> Unless, of course, one is objected to infinite loops.
01:07:29 <ihope> That doesn't output anything at all.
01:07:33 <oerjan> one is. a BB problem by definition looks at halting programs only.
01:07:51 <ihope> If you skip infinite loops, that is.
01:08:34 <Pikhq> ihope: I can only find alternate ways of expressing an equivalent program in 10 chars. . .
01:09:12 <Pikhq> . . . Unless one allows for 8-bit wrapping cells.
01:09:14 <ihope> +++[-....] (12), +++[..-..] (12), etc.
01:09:27 <ihope> Pikhq: cells can hold any integer.
01:09:40 <ihope> And the tape is infinite in both directions.
01:09:41 <Pikhq> In which case, the max possible is the entire ASCII table.
01:09:49 <Pikhq> ihope: Which is why I can't make anything better.
01:10:01 <ihope> So have we pretty much agreed on 12?
01:10:26 <ihope> Should be impossible to do better than 9 in nine characters, then: +++[...-] (9)
01:10:48 <ihope> Alternatively, ......... (9)
01:11:27 <ihope> How about we try eleven characters, then? To start off: ++++[....-] (16)
01:12:21 <Pikhq> I sense a pattern.
01:14:59 <oerjan> the pattern breaks once you get enough room to use two cells.
01:15:21 <ihope> The sequence is uncomputable.
01:16:10 <oerjan> brainfuck is wordy enough that it may take a while before we reach the uncomputable stage
01:16:50 <ihope> Well, let's see here: +[>+[.-]<-] (11,1)
01:17:09 <ihope> I think it doesn't get any better than 16.
01:18:12 <Pikhq> ihope: The sequence as a whole is uncomputable, but finite segments of it *are* computable.
01:18:40 <ihope> Now for twelve: there's +++++[....-] (12,20) and ++[>+[.-]<-] (12,2). Thirteen: +++++[.....-] (13,25) and ++[>++[.-]<-] (13,4).
01:18:50 <ihope> Pikhq: surely "a finite segment".
01:20:20 <ihope> Fourteen: ++++++[.....-] (14,30) and ++[>++[..-]<-] (14,8). Fifteen: ++++++[......-] (15,36) and +++[>++[..-]<-] (15,12)... eh.
01:21:04 <oerjan> the two-cell version has 5 char overhead which needs to be overcome
01:21:23 <ihope> (14,30), (15,36), (16,42), (17,49), (18,56), (19,64)...
01:22:45 <ihope> That's for the one-cell version. For the two-cell: (11,1), (12,2), (13,4), (14,8), (15,12), (16,18), (17,27), (18,36), (19,48)...
01:23:03 <ihope> Indeed, doing it that way is probably much easier.
01:23:44 <ihope> (By (x/2), do you mean ((x-3)/2)?)
01:24:07 <oerjan> i didn't include the overhead for the 1-cell version
01:24:51 <oerjan> also it is slightly approximate if the divisions are not exact
01:27:32 <ihope> I'm seeing more like an 8-cell overhead.
01:27:48 <oerjan> if you add the 3 to the 5, yes
01:29:24 <ihope> According to mbot, the switchover ideally happens at about 20.961944507581496 characters.
01:31:27 <ihope> Let's try a bit more "manual" stuff: (20,72) and (20,64), (21,81) and (21,80), (21,90) and (21,100).
01:31:47 <oerjan> i'm writing a haskell program
01:32:27 <ihope> bsmntbombdood: now do one that uses cells that can hold any integer!
01:34:04 <ihope> bsmntbombdood: -1 is an integer.
01:36:10 <bsmntbombdood> that's what it's usually defined as in the turing machine BB
01:36:53 <ihope> You want @ instead?
01:37:19 <oerjan> the haskell script says two cells work from 22, giving 100 > 99
01:37:59 <oerjan> 21 just barely misses at 81 vs. 80
01:38:20 * ihope studies the winner of S(3,2)
01:38:34 <bsmntbombdood> and shouldn't it be non-zeros on the tape instead of printing?
01:39:20 <ihope> bsmntbombdood: the existence of a . is pretty convenient, eh?
01:39:24 <oerjan> er, you already had that
01:46:25 <ihope> bsmntbombdood: BF is imperative, so you can have an output command.
01:46:50 <ihope> You can add one to a Turing machine too, but it doesn't look quite as nice.
01:48:08 <ihope> You can also do that.
01:51:57 <ihope> "If the cell is 1, halt; otherwise, set it to 1 and move right. Then, if the cell is 0, set it to 1 and move left. Repeat until the cell is 1. Then, if the cell is 0, set it to 1 and move left. Repeat until the cell is 1, then move left and start over."
01:52:13 <ihope> All cells start out as zero. What happens?
01:53:27 <Pikhq> It halts *eventually*.
01:53:45 <bsmntbombdood> Repeat until the cell is 1. Then, if the cell is 0, set it to 1 and move left.??
01:54:37 <Pikhq> bsmntbombdood: Bad description.
01:55:29 <ihope> "If the cell is 1, halt; otherwise, set it to 1 and move right. Then, if the cell is 0, set it to 1 and move left. Repeat until the cell is 1, then set it to 0 and move right. Then, if the cell is 0, set it to 1 and move left. Repeat until the cell is 1, then move left and start over."
02:54:46 <CakeProphet> ...what's the UNIX command for replacing stuff in files with other stuff?
02:56:14 <oerjan> does each stuff span more than one line?
02:57:43 <oerjan> then find/grep + sed/perl should work.
02:58:19 <CakeProphet> >.> I really don't know enough about shell commands to take that and turn it into a command.
02:58:52 <CakeProphet> ...I guess I could I just write a program that does it.
02:59:49 <Pikhq> bsmntbombdood: Lowercase find.
03:02:11 <oerjan> perl -i -e 's/from/to/' `grep -l -r from .`
03:04:17 <oerjan> and test carefully first.
03:04:51 <CakeProphet> ....yeah... I don't want to... fuck up my entire source... which I'm pretty sure won't happen... but
03:05:29 <oerjan> maybe the argument list generated by the grep will be too long
03:08:14 <CakeProphet> I FEAR GOING OUT OF MY COMFORTABLE STATUS QUO SHUT UP MAN
03:09:48 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
03:13:49 <CakeProphet> ...anything in this that makes it look like it's going to explode? http://deadbeefbabe.org/paste/4270
03:15:30 <CakeProphet> okay... http://deadbeefbabe.org/paste/4270 ... now with pathnames properly joined.
03:16:32 <oerjan> um... does f.read() read the whole file?
03:17:48 <oerjan> i guess since the replacement is longer you won't leave any junk at the end.
03:19:04 -!- bsmntbombdood has quit (Read error: 145 (Connection timed out)).
03:19:10 <oerjan> but you should still test first :)
03:19:43 <CakeProphet> ....hmmm... now sure how to test... other than by simulating walk() and putting in sample strings.
03:20:33 <oerjan> you could split it into two subroutines, one to iterate and one to change a file
03:21:40 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)).
03:21:42 <oerjan> YOUR HARDDRIVE IS ALL GONE!!!!!111
03:23:18 <CakeProphet> well.... I did a recursive count of all occurances of both words.
03:23:27 <CakeProphet> MUCH TO MY SURPRISE... MUDBALL IS NOT IN ANY OF THE FILES
03:23:37 -!- ihope has quit (Connection timed out).
03:24:00 <CakeProphet> ah... computer programming... making life easier for us all.
03:25:43 <CakeProphet> ...now I shall perform more sweeping changes to my MUD.
03:26:48 <CakeProphet> okay... so this change makes all the files shorter? How do I ensure lack of junk?
03:27:23 <CakeProphet> .... I could do f.truncate(0) beforehand. :)
03:30:29 <CakeProphet> ...I apparently don't have enough permission to... truncate my own files.
03:30:55 <oerjan> maybe put it after seek?
03:31:34 <CakeProphet> nope... trunace() is independent of the current position.
03:31:58 <oerjan> what i mean is sometimes you must do seek between read and write
03:35:05 <oerjan> why did it work the first time then?
03:35:44 <CakeProphet> the first one was r+... then for the count check I set it to r...
05:46:58 -!- bsmntbombdood has joined.
06:08:17 -!- oerjan has quit ("gaudy knight").
07:24:12 <CakeProphet> BEAUTIFUL http://sophiamu.googlecode.com/svn/trunk/
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:22 -!- bsmntbombdood has quit (Remote closed the connection).
08:13:32 -!- Sgeo has quit ("Ex-Chat").
08:21:18 -!- bsmntbombdood has joined.
08:35:21 -!- CakeProphet has quit (Read error: 113 (No route to host)).
08:56:46 -!- sebbu has joined.
09:05:02 -!- sebbu2 has joined.
09:13:03 -!- sebbu has quit (Read error: 60 (Operation timed out)).
09:26:22 <Sukoshi> bsmntbombdood: I've decided on ObjC.
10:09:06 <nooga> http://sophiamu.googlecode.com/svn/trunk/ what's that?
10:17:49 <nooga> bsmntbombdood huh?
11:03:42 -!- oklopol has quit (Read error: 110 (Connection timed out)).
13:48:27 -!- jix__ has joined.
16:44:29 -!- ihope has joined.
16:48:55 -!- Sgeo has joined.
17:04:28 -!- sebbu has joined.
17:06:22 -!- sebbu2 has quit (Read error: 60 (Operation timed out)).
17:12:55 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
17:34:18 <ihope> You know, an esolang based on fluid dynamics would be pretty cool.
17:34:30 <Sukoshi> Because I'm bad at that topic.
17:34:43 <Sukoshi> An esolang based on electricity and magnetism would be pretty cool though.
17:35:30 <ihope> How about an esolang based on macrophysics?
17:35:44 <ihope> You know. All of macrophysics.
17:36:21 <Sukoshi> We can take inspiration from the other project in this domain.
17:36:22 <ihope> If you can't accurately simulate an underwater light bulb exploding due to the fact that it contains flammable gases, it's not all of macrophysics.
17:37:14 <ihope> Let's see... you need to simulate chemical reactions, because burning is a chemical reaction, and fluid dynamics, and electric stuff...
17:43:39 <ihope> Pretty easy to implement, you say?
17:48:07 * nooga is learning python
17:52:54 <Pikhq> ihope: The chemical reactions are microphysics. ;)
17:53:16 * Pikhq calls it microphysics about when quantum mechanics become relevant
17:53:34 <ihope> Make the light bulb explode because the filament gets too hot, then.
17:53:50 <Pikhq> That's remarkably easy.
17:54:39 <Pikhq> Resistance of the filament allows one to know how much energy it puts out. . . This energy gets applied to the gas inside, increasing temperature and therefore pressure. . . Once the pressure gets high enough, it a'splodes.
17:54:50 <Pikhq> Only requires two laws, I think.
17:55:20 <ihope> Two laws to describe how the glass fragments and how the water flows in?
17:55:32 <Sukoshi> Depends on the circuit, the gas inside the bulb, the heat capacity of the bulb, and the plastic limit of the bulb.
17:55:32 <Pikhq> That's the hard part.
17:56:00 <Pikhq> But it's easy to see the laws which could apply.
17:56:12 <Pikhq> Sukoshi: I was simplifying it a bit. . .
17:56:29 <Sukoshi> So Pikhq, wanna join the PDF viewer development crew?
17:56:40 <Pikhq> The *point*, though, is that a moderately skilled programmer/physics major could handle it.
17:57:05 <Pikhq> Sukoshi: What's the point? xpdf/kpdf/gpdf works just as well.
17:57:17 <Sukoshi> And they're all based on the same library.
17:57:47 <Pikhq> The core library should run on OS X, and can be made to work on Cygwin. . .
17:57:53 <Sukoshi> Ports are flaws/limitations/differences in design ideology.
17:58:13 <Pikhq> All one would need to do is define a new UI, which the xpdf source base is designed to handle.
17:58:42 <Sukoshi> Well, Xpdf's renderer is sometimes not very ideal.
17:59:14 <Pikhq> Hell, I wouldn't be surprised if xpdf has a GNUstep UI already. . . In which case, getting it to run in Cocoa is a matter of recompilation.
17:59:48 <Pikhq> Fine. Maybe fork from the Ghostscript renderer?
18:00:08 <Sukoshi> I'll be using GS as inspiration and probably taking bits out of it, yeah.
18:00:12 <Sukoshi> But PDF is a lot simpler than PS.
18:00:33 <Sukoshi> Remember Wilson called the American people to Halt the Hun? Null the C++.
18:01:56 <Pikhq> Yeah, but, IIRC, PDF is a subset of PS, allowing Ghostscript code to be very useful.
18:03:46 <Sukoshi> So there's a debate there whether I should implement the whole PS standard and then PDF after, or PDF then expand to PS.
18:06:18 <Pikhq> I think doing the whole PS standard would make for a more robust chunk of code than PDF first.
18:07:04 <Sukoshi> I'll be only getting 2, maybe 3 hours of programming time until my AP testing finishes.
18:07:15 <Sukoshi> This is, to quote Marimite, my way of ``running away'' from exams :P
18:12:32 <Pikhq> Likewise, I fear (except on weekends). . .
18:12:43 <Pikhq> I've also got prom stuff to work on, so. . .
18:13:57 <Sukoshi> I skipped out on Junior Prom for Physics.
18:14:03 <Sukoshi> Yes, I love electricity more than Prom. Sue me.
18:14:53 <Sukoshi> If you're a Senior though, then it's important.
18:16:05 <Pikhq> Who's already got a date to the prom. . .
18:19:03 <Pikhq> I could probably create a PS parser in the next 5 minutes. . .
18:19:32 <Sukoshi> Each individual part of the project isn't as hard as managing it altogether.
18:20:03 * Pikhq showers before going to go get a tux
18:20:11 <Sukoshi> And abstracting each part sufficiently so we can change the design in one part and not alter other parts sufficiently, and keeping it all as platform-independant as possible, or at least seperating out platform-independant components from platform-dependant ones.
18:20:21 <Pikhq> Sukoshi: Yeah. . . Thus why well-defined interfaces between parts is a good idea.
18:20:34 -!- bsmntbombdood has quit (Read error: 60 (Operation timed out)).
18:48:50 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
19:38:26 -!- CakeProphet has joined.
19:44:32 -!- ShadowHntr has joined.
19:45:29 -!- calamari has joined.
19:56:34 -!- helios_ has joined.
19:58:48 -!- helios_ has quit (Client Quit).
20:09:13 -!- Pikhq has joined.
20:19:32 -!- bsmntbombdood has joined.
20:21:05 -!- bsmnt_bot has joined.
20:22:19 <Sukoshi> bsmntbombdood: You're early.
20:26:17 <Sukoshi> I'm learning ObjC, I'm learning PS/PDF, I'm learning GTK.
20:26:21 <Sukoshi> This is a learning project.
20:26:31 <Sukoshi> I hope you aren't daunted, being a regular of #esoteric :)
20:27:30 <Sukoshi> Well, what do you want to do, write something yourself via SDL?
20:27:44 <Sukoshi> Err, no sarcasm meant there.
20:28:51 <Sukoshi> Go and google SDL. It's a cross-platform graphics engine.
20:30:47 <Sukoshi> Hmmm. ObjC seems very unsupported...
20:30:51 <Sukoshi> I'm considering switching...
20:32:26 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
20:34:17 <bsmntbombdood> using something low level might be easier for drawing pdfs
20:36:34 <bsmntbombdood> I think figure out the design first, then pick whatever fits best
20:36:59 <Sukoshi> One final tally: ObjC then?
20:37:10 <Sukoshi> We might use D actually. I dunno.
20:39:11 <Sukoshi> http://libfoundation.opendarwin.org/ <-- We'll be using this.
20:43:30 <Sukoshi> There's little alternative, or else we'll have to code the base Object class ourselves.
20:49:53 -!- atrapado has joined.
20:51:42 <Sukoshi> I was contemplating. How is it?
20:52:33 <calamari> otherwise.. why? there are already so many hehe
20:53:14 <ShadowHntr> http://en.wikipedia.org/wiki/Cairo_(graphics)
20:55:28 -!- calamari has quit ("Leaving").
21:03:33 <Sukoshi> So we can wrap it ourselves.
21:05:18 -!- sebbu2 has joined.
21:24:42 -!- sebbu has quit (Success).
21:34:23 -!- atrapado has quit ("allserv quit").
21:37:55 <Sukoshi> Just read the documentation.
21:41:52 -!- oerjan has joined.
21:44:28 -!- ihope has joined.
21:55:48 <ihope> You know, a Thue busy beaver would be pretty cool.
21:56:48 <ihope> How much can you fit in an 80-by-24 box using only printable ASCII characters and newlines?
21:58:23 <GregorR> Uh, presumably 80x24x(number of printable characters)?
21:59:00 <ihope> Rather, how long of a string can you produce doing that?
21:59:21 <ihope> I guess there are often multiple ways of running a Thue program.
22:01:26 <ihope> How about a Sortle busy beaver?
22:20:39 <bsmntbombdood> Debian's package management is begining to tire me
22:21:21 <oerjan> i read about a new system on Lambda the Ultimate recently. purely functional package management.
22:22:02 <oerjan> http://lambda-the-ultimate.org/node/2176
23:36:26 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)).
23:37:32 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
23:38:17 -!- jix__ has joined.
23:38:40 -!- bsmntbombdood has joined.
23:39:33 -!- bsmnt_bot has joined.
23:39:51 <bsmntbombdood> (display ((lambda (x) (list (quote display) (list x (list (quote quote) x)))) (quote (lambda (x) (list (quote display) (list x (list (quote quote) x)))))))
23:48:26 <bsmntbombdood> I see the early days of #esoteric were quite quiet
23:48:44 <lament> no, the early days were just fine.
23:48:57 <lament> the middle ages were quiet.
23:49:38 <lament> all secular thought was suppressed.
23:50:20 <oerjan> shorter: ((lambda (x) (display (list x (list (quote quote) x)))) (quote (lambda (x) (display (list x (list (quote quote) x))))))
00:10:12 <Pikhq> Someone care to link to the logs?
00:38:23 -!- jix__ has changed nick to jix.
00:52:44 <GregorR> I dun wrote something in Smalltalk zomg 8-D
00:54:31 -!- sebbu2 has quit ("@+").
00:58:26 -!- calamari has joined.
01:07:50 <bsmntbombdood> @'print-hello [" world" "hello" @swap + print] @object %inherit add-method done create print-hello
01:11:00 * Pikhq is currently working on creating an incredibly modular distro. . .
01:11:52 <GregorR> Pikhq: http://www.nongnu.org/sps/
01:12:44 <GregorR> Pikhq: (Or better:) http://savannah.nongnu.org/projects/sps/
01:13:43 <Pikhq> My thoughts involve something like Slax's .mo files for packages, except that each file would be able to auto-install dependencies. . .
01:13:54 <Pikhq> The core OS would include:
01:14:04 <Pikhq> Package manager (in .sh)
01:15:56 <Pikhq> Basically, the core system is about. . . Nothing.
01:16:29 <GregorR> Pikhq: Seriously, click my link above ... it's a packaging system I wrote that could aid you greatly.
01:16:49 <Pikhq> GregorR: Describe it; the page doesn't detail much.
01:17:52 <GregorR> Pikhq: Heh. Each package is installed to /sps/<name>/<version>. In /bin there is only a bunch of symlinks to a special tool which runs the appropriate program. To do so, it checks the user's environment for overrides and such. So, any user can have in their environment whatever selection of programs and libraries they please, and whatever version they please, simply by modifying one file.
01:18:40 <ihope> Oh, and how modular is Busybox?
01:18:43 <GregorR> Installing a package onto the system is as simple as extracting it, installing a package into an environment is as simple as echo bash >> ~/.spsenv (or whatever I named that file)
01:19:00 <Pikhq> ihope: It's a single package.
01:19:04 <GregorR> ihope: What aspect of busybox?
01:19:06 <Pikhq> Thus, it's the core module.
01:19:32 <ihope> GregorR: well, Busybox is an executable and a bunch of symbolic links, right?
01:19:41 <Sukoshi> So it's a global repository of packages?
01:20:00 <ihope> And the symbolic links don't carry much information, so most of BusyBox is in that one executable.
01:20:04 <Pikhq> GregorR: I *love* that idea.
01:20:11 <ihope> So how does one go about changing the functionality of that one executable?
01:20:24 <GregorR> Pikhq: So do I, that's why I wrote it - but I let it languish. If you're interested, I'll revive it. I figure it would help with the design you're talking about.
01:20:28 <Pikhq> Thus why it's the core of the system.
01:20:46 <Pikhq> GregorR: I'm *very* interested.
01:20:56 <Sukoshi> It sounds a *lot* like Klik.
01:21:01 <GregorR> Unfortunately, I wrote it in perl >_> ... I was unenlightened at the time <_<
01:21:09 <GregorR> Sukoshi: And it's not even the least like Klik ...
01:21:37 <Sukoshi> Well, other than the fact that Klik keeps its stuff in a local sandwhich.
01:22:23 <Pikhq> I *wish* it was written in a compilable language, making things easier to set up, though.
01:22:34 <Pikhq> As-is, the core system would have to include 3 packages:
01:22:35 <GregorR> Pikhq: If I revive it, I will almost certainly rewrite it in C.
01:22:41 <GregorR> I don't know why I wrote it in Perl :P
01:22:47 <GregorR> It was a bad, bad choice ^^
01:22:55 <Sukoshi> Is there any dependancy tracking?
01:23:14 <GregorR> Sukoshi: SPS isn't that part of the packaging system.
01:23:30 <GregorR> Sukoshi: But not in terms of installation, SPS doesn't do installs :)
01:23:32 -!- calamari has quit ("Leaving").
01:23:41 <GregorR> Sukoshi: But if you add a tool to your environment, it adds all of its dependencies as well.
01:23:50 <Sukoshi> GregorR: Ah... so similar to the Slackware package manager?
01:23:59 <Pikhq> GregorR: Does it automagically download the dependencies as well?
01:24:19 <Sukoshi> Dependancy tracking is annoying to implement.
01:24:21 <GregorR> Pikhq: It doesn't do anything regarding installation, only use. I intended for the installation/dependency grabbing/whatever portion to be a differnet tool.
01:24:44 <Pikhq> GregorR: Try to make it easy to have SPS automagically call that tool, then.
01:24:51 <Sukoshi> In fact, I propose a small shift of SPS's focus.
01:25:09 <Sukoshi> Make it manage many versions of one application.
01:25:18 <Sukoshi> Like, Firefox 1 and Firefox 2 for example.
01:25:22 <GregorR> Sukoshi: That's what it does.
01:25:34 <Sukoshi> GregorR: But I thought it was a *total* package manager...
01:25:37 <Pikhq> It sounds *almost* like installation would be as simple as drag-drop, but dependency grabbing would require an external tool.
01:25:54 <GregorR> Sukoshi: SPS packages are installed to /sps/<name>/<version>
01:25:58 <Sukoshi> Who needs dependency tracking?
01:26:04 <Sukoshi> Dependencies are for nubs :P
01:26:04 <Pikhq> Well, my dependency idea is simple. . .
01:26:06 <GregorR> Sukoshi: So you can have any number of versions of the same package installed.
01:26:17 <GregorR> Sukoshi: And choose which one to use by specifying it in your .spsenv file.
01:26:39 <GregorR> I'll rewrite it in C this week.
01:26:47 <GregorR> Can't this weekend, too dern much homework >_>
01:26:51 <Pikhq> Make each package have an on-install script, which checks for appropriate versions of dependencies, and installs them.
01:27:36 <Pikhq> bsmntbombdood: Not quite.
01:28:07 <Pikhq> Unless your package manager involves "copy package into /sps/ to install", that is.
01:28:45 <Pikhq> That bit is a very, very Hurdish idea.
01:29:01 <GregorR> SPS represents a part of the package manager that doesn't exist in conventional package management ...
01:29:01 <Pikhq> (seriously, that *is* the Hurd package manager)
01:29:13 <GregorR> Realistically, you could set dpkg, rpm, whatever on top of it.
01:29:35 <lament> what does sps stand for?
01:29:38 <Pikhq> Right *now*, I'm thinking of just having a *very* simple package manager.
01:29:45 <GregorR> lament: The Segregated Packages System
01:30:01 <GregorR> Because it segregates the packages :P
01:30:06 <Pikhq> I'll probably just build a script-based package manager for now. . .
01:31:11 <Sukoshi> Let's make the package system modular.
01:31:33 <Sukoshi> So if you're a hard-line Slacker (like me), you don't bother with that dependency tracking guffaw that these youngsters cook up.
01:31:58 <Pikhq> ATM, I think my package manager will consist of a installer script which calls the script to install a specific package. . .
01:32:35 <Pikhq> Sukoshi: My *current* dependency manager consists of "each package just automagically downloads and installs what it needs". . .
01:33:35 <Pikhq> Not quite what you want, but I'm just wanting a temporary solution ATM.
01:33:40 <Sukoshi> Are we reinventing portage?
01:34:08 <Pikhq> Binary portage. . .
01:34:30 <Pikhq> Sorry; I'm too much of a Gentoo man for my own good.
01:34:38 <Sukoshi> You very rarely see novel ideas in package management nowadays.
01:34:56 <Pikhq> I'd argue that's because a lot of good ones have already been made.
01:36:13 <Sukoshi> I'm not disagreeing there.
01:36:27 <Sukoshi> PPDF may switch from ObjC.
01:36:32 <Sukoshi> Seeing that libFoundation is refusing to compile :D
01:38:24 <Pikhq> I'm also thinking about making the core system run in RAM, and have UnionFS be used to merge in either an RW or RO root partition. . .
01:39:10 <Pikhq> It's used in LiveCDs to allow one to combine an RW and RO filesystem into one. . .
01:39:11 <bsmntbombdood> Sukoshi: That's because libFoundation doesn't compile
01:39:33 <Sukoshi> bsmntbombdood: No, it has makefiles.
01:39:55 <Pikhq> In Knoppix, it merges a ramdisk and the root FS on CD to allow one to write to the filesystem even though the core system is on a RO media.
01:40:07 <Sukoshi> bsmntbombdood: Friendly person at #objc tells me to use GnuStep.
01:40:39 <Sukoshi> You're implementing a LiveCD, Pikhq ?
01:41:04 <Pikhq> Sukoshi: No, just something which is easy to make into a LiveCD.
01:41:14 <Pikhq> By merit of the core system just being an initrd.img.
01:41:32 <Pikhq> . . . Which merges itself with another filesystem.
01:42:25 <Sukoshi> I've been feeling pricked of late to try a versioning FS.
01:42:30 <Sukoshi> At least for my source directories.
01:44:35 <bsmntbombdood> I've got gnu step, but I can't find the right headers
01:48:29 <Sukoshi> I was tempted to make a bad your-mom joke.
01:50:46 <Sukoshi> I just lost in corniness :D
01:51:18 <Sukoshi> We're not implementing PS unless you can give me a good argument to.
01:51:52 <Sukoshi> If you do, I suggest you grab the GS source and take a look at the amount of files in src/ .
01:52:25 <Sukoshi> Have you looked over the PDF Reference?
01:52:43 <Sukoshi> (Use the reference from '01 (the second newest), the newest adds BS like animation that nobody uses.)
01:53:19 <Sukoshi> http://www.adobe.com/devnet/pdf/pdfs/PDFReference16.pdf <-- Fifth, which I suggest we implment first and http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf <-- Sixth.
01:53:53 <Sukoshi> Choose wisely, my friend :)
01:54:52 <Sukoshi> 1.7 == 6th ed., 1.6 == 5th ed. Don't ask me why.
01:55:05 <Sukoshi> Yeah but it's pretty light reading actually.
01:55:13 <Sukoshi> Skim over the syntax, the objects, and such.
01:55:44 <Sukoshi> .... And SVN is still pulling stuff from GNUStep.
01:56:32 <Sukoshi> I've been spending the morning reading Apple's introduction to Object Oriented Programming.
01:56:51 <Sukoshi> I have to say, it addresses one of my biggest problems with OOP.
01:57:16 <Sukoshi> When to use a class over a struct and functions.
01:57:37 <Sukoshi> In a language like Java, the choice is moot, because *everything* is a class, but when you have a choice it gets a bit tricky.
01:58:16 <Sukoshi> ObjC is not much actually. Just a thin veneer over C and is very C-like.
01:59:25 <Sukoshi> It doesen't as much as the document gives you a general guideline.
02:00:17 <Sukoshi> They say that only use OOP when you either A) Need the design to be modular B) Have a reason to hide the implementation C) Want to encapsulate code with a set interface.
02:00:42 <Sukoshi> But you should read the ObjC concept of the dynamic runtime. A very nifty idea.
02:00:52 <bsmntbombdood> well, if you have a bunch of functions that all take the same struct, that's an object
02:01:12 <Sukoshi> But the syntax to use the struct and objects is not the same.
02:01:31 <bsmntbombdood> I'm reading apple's "the objective-c programming language"
02:01:37 <Sukoshi> The main reason I wanna use OOP for this project is that OOP gives the advantage of syntactically thorough encapsulated state.
02:01:52 <Sukoshi> We're reading the same book :)
02:02:45 <Sukoshi> I also want to seperate certain components cleanly so that replacements can be coded if needed.
02:03:17 <Sukoshi> The graphics system is the main seperate component. We might also want to seperate parts of the rendering engine and such.
02:03:30 <Sukoshi> Now. Which portion do you think we should write first?
02:03:55 <bsmntbombdood> I don't know anything about the pdf format, but i'm going to say parser
02:06:46 <Sukoshi> That's going to be the easiest.
02:07:00 <Sukoshi> It's very similar to Forth.
02:07:19 <Sukoshi> Since it's all pseudo-RPN, there's very little to tokenize.
02:08:30 <Sukoshi> Take a look at internal page 48 in the 5th ed. PDF standard.
02:11:06 <Sukoshi> I'll take leave myself in a bit, and won't be back on 'till 9.
02:11:14 <Sukoshi> I may be doing homework at that time too, so bleh.
02:11:42 <Sukoshi> I have to cram all of electricity in a month, you know.
02:12:09 <Sukoshi> I started without knowing an Amp from a Watt, and I've gotten about half the college semester done in 2.5 weeks.
02:12:23 <Sukoshi> Now I have to finish up magnetism and start on AP practice tests.
02:13:15 <Sukoshi> ObjC is actually pretty esoteric in some ways. Probably due to SmallTalk.
02:13:24 <Sukoshi> This channel needs some large OCaML project too :)
02:17:32 * Pikhq has his i386 Debian chroot up to use as a modlinux host. . .
02:23:28 <Sukoshi> I forget, do you enjoy functional programming Pikhq ?
02:24:11 <Pikhq> I'm more of an imperative thinker.
02:25:29 <Sukoshi> That just means you haven't found the Right Language (TM).
02:25:49 <Sukoshi> OCaML is supposedly good for imperative thinkers too. I dunno, haven't tried it meself.
02:26:04 * Pikhq gets kernel 2.6.16.46
02:28:04 <Pikhq> I've grown fond of Plof. . .
02:28:19 <Sukoshi> I'm waiting for Plof to mature :)
02:30:02 <Pikhq> It's interpreted ATM.
02:37:03 <CakeProphet> ...I killed my RAM with a 301327046 byte string. :)
02:39:38 <Sukoshi> Dear god why would you allocate that much?
02:39:51 <CakeProphet> >>> x = "hahaha".replace("", "hu").replace("", "hu")
02:39:54 <CakeProphet> 'huhhuuhuhhuhhuuhuahuhhuuhuhhuhhuuhuahuhhuuhuhhuhhuuhuahuhhuuhu'
02:39:56 <CakeProphet> >>> x = x.replace("", "hu");x = x.replace("", "hu"); x = x.replace("", "hu");x = x.replace("", "hu");x = x.replace("", "hu");x = x.replace("", "hu");x = x.replace("", "hu");x = x.replace("", "hu");x = x.replace("", "hu");x = x.replace("", "hu");x = x.replace("", "hu");x = x.replace("", "hu");x = x.replace("", "hu");x = x.replace("", "hu");
02:40:26 <Sukoshi> Yay weird unchecked languages.
02:40:28 <CakeProphet> ....my computer is running as if it got kicked in the balls.
02:41:24 <CakeProphet> apparently there are thousands of empty strings between the characters of a string.... HOW THOUGHT-PROVOKING
02:44:20 <ihope> Isn't everything inside itself?
02:45:08 <ihope> Also: x.replace("", x)
02:46:04 <CakeProphet> 'Hello, World!HHello, World!eHello, World!lHello, World!lHello, World!oHello, World!,Hello, World! Hello, World!WHello, World!oHello, World!rHello, World!lHello, World!dHello, World!!Hello, World!'
02:48:01 <Pikhq> Mmkay, just need to build Busybox to have my core system up. . .
02:48:29 <Pikhq> Will take a lot more work to get a build environment, at which point I'll try to make everything be self-hosted. . .
02:48:52 <Sukoshi> What's the point of the project?
02:50:31 <Pikhq> To create a distro that I like.
02:50:50 <Pikhq> Really, it's basically called "I'm bored".
02:50:50 <ihope> Pff, distro. Why not create a whole operating system?
02:51:11 <Pikhq> I've got the core binaries.
02:51:15 <ihope> Say, where are you going to host this distro?
02:51:27 <Pikhq> I'll probably use my nonlogic account.
02:52:33 <ihope> Wasn't there a nonlogic IRC channel somewhere once?
02:55:21 <CakeProphet> ...will probably be years before I ever start though... I've got ideas brewing.
02:56:01 <ihope> CakeProphet: you too?
02:56:49 <Pikhq> Sukoshi: The *paying* members of nonlogic own it.
02:57:10 <Pikhq> Sukoshi: I can't remember the full list. . .
02:57:25 <bsmntbombdood> ihope: its creator wants to turn it into "the universal operating system"
02:57:28 <CakeProphet> ihope, I DARE SAY WE SHOULD COMBINE OUR EFFORTS
02:57:37 <Pikhq> Quite a few people on nonlogic have paid, so are allowed to vote on all issues for the nonprofit.
02:57:38 <ihope> CakeProphet: I was just about to say that.
02:57:51 <Pikhq> (I *think* that's the general gist of the nonprofit charter)
02:58:06 <Pikhq> Free shell server/web host.
02:58:14 <ihope> It's going to be called YAOS and all the source code is going to be public domain and it's going to implement the principle of least authority. Right?
02:58:19 <ihope> CakeProphet: ...wait?
02:58:22 <Sukoshi> Did you pay for Nonlogic also, Pikhq ?
02:58:24 <ihope> CakeProphet: ...what?
02:58:33 <ihope> bsmntbombdood: universal operating system, eh?
02:58:52 <Pikhq> Sukoshi: I've not.
02:59:12 <Pikhq> The payment is just to be a voting member. . . Joining costs nothing.
02:59:27 <ihope> bsmntbombdood: Linux binaries, sure, but isn't Windows Wine's job?
02:59:48 <CakeProphet> ihope, Discordianism. I'd like to make a Discordian OS... either that or an anti-Discordian OS. Either erisean or anerisean... or indifferent to both persuasions. or at least incorporating something similar - or another such combination of any of those factors.
03:00:09 <ihope> CakeProphet: can you define "discordian" and "erisean" for me?
03:00:19 <ihope> bsmntbombdood: who's "him"?
03:00:28 <Sukoshi> So you're ready to stard devving bsmntbombdood?
03:00:36 <Sukoshi> I seem to have lost over half the keys for this keyboard.
03:00:52 <Sukoshi> Where could they have gone, gah.
03:00:54 <CakeProphet> ihope, nope... but you can define it yourself if you like. But don't.
03:01:41 <CakeProphet> then we're getting to New Age bullshit - "DISCORDIANISM IS WHATEVER YOU DEFINE IT TO BE" ...and we all know what New Age does to things.
03:01:53 <CakeProphet> ...it PROPELS IT INTO THE AGE OF AQUARIUS... which is a no-no.
03:02:04 <ihope> You're getting weird.
03:02:17 * oerjan will propel things into the age of Aquarius for food.
03:03:18 <CakeProphet> ihope, http://principiadiscordia.com/book/1.php
03:03:45 <CakeProphet> read that... or just read some of it if you're time is short.
03:04:27 <ihope> I'm not time is short!
03:04:56 <Sukoshi> It turns out that some of the keys markings dissolved to the point where the masquerade other keys.
03:05:13 <Sukoshi> I still can't figure out why I have three 7's.
03:10:29 <Sukoshi> bsmntbombdood: You didn't realize that already? :P
03:11:26 <Sukoshi> I need a project that I can tell college recruiters that ``I didn't take AP Comp-Sci but I'm still a more awesome programmer than j00.'' and I also think the world needs beter PDF readers that can be ported across platform with no/minimal hastle.
03:11:48 * oerjan has this feeling some people here are out of grammar.
03:11:52 <Sukoshi> And I've been wanting to do a major project a while because, IMO, little programming projects get boring after a while.
03:12:36 <Sukoshi> I would've taken it this year as an aside, but I already have 5 AP tests to take.
03:13:05 <Sukoshi> Nah. I hear it's a pretty accurate reading of what Freshman CS is like in college.
03:13:14 <Sukoshi> AKA Let's sleep through Freshman year!
03:13:37 <ihope> CakeProphet: how about you find a place to host everything, then I start writing the kernel and all, or something?
03:13:40 <Sukoshi> Good thing I'm going to apply for EE, which is a lot more interestin :P
03:13:58 <ihope> I'm working on this operating system, though I'm doing it very slowly.
03:14:49 <CakeProphet> ihope, .....googlecode would work... except they have no public domain option... largely because you can't just release stuff to public domain. Apparently ideas aren't free by default. >.<
03:15:29 <ihope> Whether or not it's possible to release stuff into the public domain is much debated.
03:15:45 <Sukoshi> bsmntbombdood: That's tough :P
03:15:59 <Sukoshi> I doubt I can get in to MIT just like that.
03:16:06 <Sukoshi> I do want to eventually do graduate studies there though.
03:16:33 <bsmntbombdood> I get bad grades and can't pay for it, so I probably won't be able to get it
03:18:59 <CakeProphet> ihope, ....I really should like... learn how to do assembly or C well...
03:19:31 <CakeProphet> I'd go with a microkernel architecture... and have most of the stuff in "user space" or whatever...
03:19:57 <ihope> Wikipedia pretty much says that it's possible to release things into the public doamin.
03:20:02 <Sukoshi> Once you start C you just can't stop.
03:20:13 <ihope> Everybody but GregorR says that this means an automatic disclaimer.
03:20:24 <ihope> However, I haven't seen this backed up anywhere.
03:21:48 <CakeProphet> ....I find it highly unlikely that I'll ever get hooked to C.
03:22:51 <CakeProphet> ...I imagine it would be kind of fun... but hard to work with.
03:23:00 <ihope> What do you do everything in?
03:24:27 <CakeProphet> I'm most familiar with Python... meaning that I've rarely used anything else despite doing entirely too much reading on other languages and procrastinating doing a large project in one.
03:24:40 <Sukoshi> He works in Python, if I'm not mistaken.
03:25:00 <Sukoshi> Gah, this keyboard is so .... feedback-less.
03:25:15 <Sukoshi> How people live without feedback on their keyboards I will not know.
03:25:27 <Sukoshi> Oh well, it is the future!
03:25:31 <CakeProphet> ...after a quick read over some of the standard library of C... I could probably code in it decently.
03:25:46 <bsmntbombdood> each page in the spec is going to take like 500 lines to implement
03:26:38 * Pikhq wonders how Slackware packages are made. . .
03:26:47 <CakeProphet> ihope, did you have the name for your OS yet? I wanted to go with something like Sophia (I use variations of it for almost all my projects)
03:27:15 <ihope> CakeProphet: the plan for a while has been to call it YAOS.
03:27:20 <Sukoshi> bsmntbombdood: Just 500 lines?
03:27:30 <ihope> Yet another operating system whose name ends in "OS".
03:27:44 <ihope> CakeProphet: ouch.
03:28:18 <ihope> What about YAOSNS, the "NS" standing for "named Sophia"?
03:28:20 <Sukoshi> The parser won't be too difficult, mabe 200 lines. Some stuff wil probably be in the 700 line mark though.
03:28:29 <Sukoshi> Hey, if the libpoppler people could do it, then so can we!
03:29:06 <bsmntbombdood> Just to turn the file into an object that can be rendered will take a while
03:29:28 <CakeProphet> ihope, it has a nice sound coming out... although there's so many yet-anothers out there that I'd be tempted to call it YAYAOSNS
03:29:36 <Sukoshi> So, I ask once more, where shall we begin? :)
03:29:42 <ihope> Yet another YAOS named sophia?
03:29:55 <ihope> That would be very redundant.
03:30:20 <CakeProphet> I WILL NOT TOLERATE SCRAMBLING OF TITLE CASE
03:30:34 <CakeProphet> ...why not an OS name that... doesn't end in OS?
03:30:46 <ihope> Is "Sophia" a good name?
03:30:47 <Sukoshi> Five Factorial Times Thirty.
03:31:03 <Sukoshi> Five Factorial Times Hundred.
03:31:21 <bsmntbombdood> I propose that we have a PDFDoc object, that is the result of parsing, decompressing, decrypting... the file
03:31:34 <CakeProphet> naostewos ...not another OS ending with OS.... but that name sucks
03:31:52 <ihope> CakeProphet: are we trying seriously to come up with a name here?
03:32:16 <Sukoshi> bsmntbombdood: Would would it internally represent?
03:32:19 <ihope> My proposals are "YAOS" and "Sophia".
03:32:34 * CakeProphet likes to intermingle seriousness and joking... as he often finds that most serious things are huge joke.
03:33:01 <ihope> If we can't agree on a name, it'll be YAOS by default. >:-)
03:33:10 <CakeProphet> ...well... if you want a "weird" name... I can do that easily.
03:33:13 <ihope> Just like how Linus didn't want to call Linux "Linux".
03:33:24 <ihope> CakeProphet: oh, I just want a name.
03:33:32 <ihope> "YAOS" was somehting I came up with and thought funny.
03:33:35 -!- CakeProphet has changed nick to SevenInchBread.
03:33:53 <ihope> So have we agreed on Sophia?
03:34:01 <SevenInchBread> it's old enough to be kind of pretentious at this point.
03:35:11 <oerjan> Abrasax is related to Sophia, and ends in X.
03:35:42 <Sukoshi> bsmntbombdood: What will it internally represent?
03:35:54 <ihope> SevenInchBread: indeed we can.
03:35:59 <Sukoshi> Like, what does PDFDoc have in it?
03:36:11 <ihope> And we can go with the hybrid "YAOSophia" if we get desperate.
03:37:01 <Sukoshi> Yet Another Operating Sophia?
03:37:10 <bsmntbombdood> Sukoshi: the result of reading a file, parsing it, turning the data structures into their unencoded and easily usable data structures
03:37:22 <oerjan> (http://en.wikipedia.org/wiki/Gnosticism)
03:37:40 <ihope> Sukoshi: who said that "YAO" stood for "Yet Another Operating"?
03:37:48 <ihope> Incidentally, it does. Therefore, :-)
03:38:09 <Sukoshi> bsmntbombdood: Well, what do you suggest we code first?
03:38:17 <ihope> Now, what's this about Abrasax?
03:38:21 <Sukoshi> In 3 minutes, I start my daily Japanese homework.
03:38:22 <ihope> Is that another suggested name?
03:38:37 <SevenInchBread> ...and Sophia. So we shall call it by both names... and many more that we like.
03:38:39 <Sukoshi> How about YMMV as the name?
03:38:49 <SevenInchBread> BECAUSE NAMES ARE ABUNDANT... DESPITE THE POPULAR BELIEF THAT ALL THE GOOD ONES ARE TAKEN.
03:39:00 <ihope> Yet my mother's Volkswagen?
03:39:22 <ihope> SevenInchBread: so "Abrasax" is another suggested name?
03:41:01 <Sukoshi> bsmntbombdood: Uh... think small :P
03:41:05 <ihope> You're creating a Sourceforge thingy for it?
03:41:24 <Sukoshi> Parser, stacks, internal object representation...
03:41:33 * ihope throws dextrose tablets at GregorR
03:41:34 <Sukoshi> ihope: Your Mileage May Vary.
03:42:16 <Sukoshi> Because who said OS's are equally lovable? :P
03:42:27 <SevenInchBread> ...I've never liked the categorization of people into classes like "developer" and "end user".
03:42:34 <bsmntbombdood> converting pdf strings to strings, converting dictionaries to hash tables...
03:43:24 <bsmntbombdood> some kind of modular system for adding compression, encryption
03:43:35 <Sukoshi> SevenInchBread: It's OS Communism!
03:43:52 <SevenInchBread> ...we sort of keep te "end user" dump by classifying them as an "end user" and doing everything possible to prevent them from exposure to computer-related stuff.
03:44:08 <Sukoshi> bsmntbombdood: I say we defer compression and encryption for later.
03:44:38 <bsmntbombdood> I'm just saying we need to allow for a way to add the "filters" cleanly later
03:45:01 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
03:45:09 <Sukoshi> Well, we can just as internal objects around to filters.
03:45:47 <Sukoshi> So, how do you suggest we tokenize this, in 2 minutes?
03:46:37 <bsmntbombdood> start with the cross reference table, build all the indirect objects
03:46:50 <SevenInchBread> ihope, yeah... no huge monolithic kernel for this one... too messy.
03:47:12 <bsmntbombdood> we use indexes into an array for those when we get to them in the doc
03:47:46 <Sukoshi> bsmntbombdood: Talk here. I start Japanese now.
03:47:50 <ihope> Sukoshi: find me a platform for it and we can start work building an operating system for it.
03:47:51 <Sukoshi> See you some time later :P
03:48:13 <ihope> Sukoshi: x86 is not esoteric.
03:48:38 <SevenInchBread> well... I wouldn't worry about being esoteric in the hardware.
03:48:48 <ihope> bsmntbombdood: what's subleq?
03:49:00 <ihope> SevenInchBread: "platform" need not refer to the hardware.
03:49:23 <ihope> bsmntbombdood: is that URISC?
03:49:33 <SevenInchBread> we can easily be esoteric (and Discordian... which works SURPRISINGLY well with esoteric) in the emergent behavior of our stale and bland platform
03:49:43 <Sukoshi> bsmntbombdood: PM me your ideas on tokenizing, and maybe we can get a basic tokenizer written up today.
03:49:51 <SevenInchBread> THE SYSTEM... THE HIVEMIND... IT IS THE CENTER OF EVERYTHING AND IT IS DISPERESED WIDELY.
03:50:19 <bsmntbombdood> Sukoshi: I've only read up to the objects used in the pdf file
03:50:43 <ihope> Well, I certainly don't see anything called Abrasax on SourceForge right now.
03:51:04 <ihope> Is it okay if I call it SourceForce every once in a while, or SourgeForce or SourgeForge?
03:51:39 <SevenInchBread> Sourceforge asks a bunch of questions... all of them optional though
03:52:30 <ihope> All of them are optional?
03:52:53 <ihope> Does SourceForge.net offer a fancy public domain thing?
03:53:03 <SevenInchBread> ...it would be nice to have a virtual machine language that we could compile everything to... so everything can work together despite being different programming languages.
03:53:49 <Pikhq> Try the Java Virtual Machine.
03:54:25 <SevenInchBread> ...but that's because I have a silly bias toward Java.
03:54:33 <Pikhq> It's just the virtual architecture which Java is usually compiled to.
03:54:49 <SevenInchBread> I like Parrot... on the shallow basis that it has a cooler name.
03:54:55 <Pikhq> Other languages *can* be compiled to it, but aren't commonly. . .
03:55:04 <Pikhq> One could even write in JVM ASM if you wished.
03:55:56 <SevenInchBread> but either way... the main way I think we could make it easier for programming languages to communicate togethr is via some high-level structures in the OS. Like instead of just passing around bytes we pass around lniked lists and hash tables. I've got lots of ideas for inter-process communication here.
03:56:20 <ihope> bsmntbombdood: doesn't Esolang have something about URISC?
03:57:52 <SevenInchBread> ...but that's all filesystem/process-level stuff... not the bare bones.
03:58:13 <ihope> bsmntbombdood: doesn't Wikipedia have something about URISC?
03:58:23 <SevenInchBread> probably one of the first things we'd want is a way to spit stuff out to a terminal... for breadcrumbing/testing OS stuff.
04:01:06 <ihope> Does the OISC page mention URISC?
04:01:41 <ihope> SevenInchBread: a way to spit stuff out to a terminal... is this YAOS/Sophia/Abrasax we're talking about?
04:02:00 <SevenInchBread> like... a way to shoot stuff out... so we can test stuff.
04:02:35 <ihope> Well, we'll want to plan some stuff out
04:03:10 <ihope> What's this about Multiboot and modules?
04:03:52 <Pikhq> Multiboot is a standardised interface for a bootloader to access an OS kernel.
04:04:16 <Pikhq> It's main user is the Hurd. . .
04:04:53 <Pikhq> Using Multiboot for an OS project is an easy way to make the kernel bootable via GRUB.
04:05:05 <ihope> The kernel, upon starting, loads all its modules as drivers.
04:05:13 <Pikhq> (the other way being to use the Linux bootloader interface)
04:05:33 <ihope> Or maybe one of its modules would act as a config file.
04:05:53 <ihope> And that config file would tell what to do with the rest of the modules.
04:07:29 <ihope> Suddenly, it's time for bed. Does everyone have some idea of my email address?
04:08:07 <SevenInchBread> ihope, do we want everything Public Domain? If so, then I don't think we can use a lot of GNU stuff... which is fine with me - I like making new stuff.
04:09:27 <ihope> SevenInchBread: we'll make the core stuff public domain and find a way to add the GNU stuff, then we'll gradually eliminate the GNU stuff in favor of public domain stuff.
04:09:38 <SevenInchBread> and here's the description I gave the Sourceforge people...
04:09:39 <SevenInchBread> Abrasax is basically just an open source OS kernel being developed by a hoard of time bandits. Some goals include general weirdness, cool ideas, high-level inter-process communication, a versioned filesystem, full Unicode support, complete Public-Domain-ness, and general awesomeness. We're still mostly planning in planning.
04:10:12 <ihope> I thought it was "horde".
04:10:28 <ihope> And I see you have lots of your own ideas.
04:11:12 <SevenInchBread> yeah... I've been thinking about this a lot. ...any of them that sound like something you wouldn't like?
04:12:29 <ihope> General weirdness may be iffy, cool ideas are probably fine but somewhat iffy, high-level inter-process communication may be iffy, a versioned filesystem is a little iffy, full Unicode support may be a litle iffy, and complete Public-Domain-ness would be generally awesome.
04:12:50 <ihope> Rather, general weirdness is iffy.
04:13:22 <SevenInchBread> I think they all sound great........ which is obvious - since I wrote them. What all did you have in mind?
04:14:38 <ihope> Principle of least authority, Linux application compatibility...
04:14:56 <SevenInchBread> I like the idea of a versioned file system... you can revert changes easily. and high-level structures sounds cool to me so you can do things like output hash tables.
04:15:19 <ihope> Why output hash tables when you can serialize them and send them as plain old bytes?
04:15:20 <SevenInchBread> ihope, sounds great to me. compatibility hasn't been much of a concern for me... but nothing that I'm against
04:15:28 <ihope> Not that I actually know that "serialize" means what I think it does.
04:15:30 <bsmntbombdood> SevenInchBread: IPC is usually acheived by shared memory. you can put hash tables in memory
04:15:36 <ihope> Versioned file system... that one's an idea.
04:15:47 <ihope> SevenInchBread: very true.\
04:16:08 <ihope> Let's implement EVERYTHING!
04:16:25 <ihope> And find a way to do all this in a microkernel.
04:16:26 <SevenInchBread> I'm all for it actually... I'm only lazy when it comes to stuff I don't want to do.
04:16:43 <ihope> Lemme think... kernel loads drivers according to a config file...
04:16:55 <ihope> Ah yes. Processes need to be able to register services.
04:17:02 <bsmntbombdood> I think it would be neat to have finer-grained execute controls
04:17:10 <ihope> Hard drive access might be a service, for example.
04:17:14 <ihope> bsmntbombdood: to have what?
04:17:43 <bsmntbombdood> linux uses a single bit to control execution (executable or not executable)
04:17:47 <SevenInchBread> ihope, with a microkernel... you basically just have memory and process stuff as "the kernel"... while everything else (like file system manipulation) as separate processes
04:17:59 <ihope> Invoking certain services with certain arguments might be a privilege.
04:18:12 <ihope> SevenInchBread: would handling privileges also be a separate process?
04:18:12 <bsmntbombdood> finer grained would be "allow this proccess to execute but don't let it write to any disk"
04:18:34 <SevenInchBread> SevenInchBread, hmmm... I kind of consider priveledges a form of "authority".
04:18:41 <ihope> That may well mean invoking a process everytime anything makes a system call.
04:18:57 <ihope> SevenInchBread: what's this about privileges and authority?
04:19:00 <SevenInchBread> ihope, nope. You just have them as processes that are always around.
04:19:02 <ihope> Rather, what did I say to the contrary?
04:19:32 <ihope> SevenInchBread: well, yes, but you'd use the process every time something makes a system call.
04:19:45 <SevenInchBread> ihope, oh... accidentally implied that we were using privledges... which I kind of consider a form of control... and/or security depending on how anarchist I'm feeling.
04:20:21 <ihope> I'm Gmail's ihope127, by the way, in case anybody wants to email me for some reason... like operating system development.
04:20:38 <ihope> SevenInchBread: the operating system is definitely going to have privileges.
04:20:59 <ihope> Oh, also, to prevent forkbombs and such, every process will pretty much be responsible for its "children".
04:21:15 <ihope> If a process invokes another process, chances are they're going to share time slices.
04:21:51 <SevenInchBread> ...I see the shell working something like a Smalltalk-ian programming language.
04:22:27 <SevenInchBread> definetely with more features than UNIX-style pass-strings-around shell scripting.
04:23:36 <SevenInchBread> ihope, I've just never seen much need for them... other than to keep other people out of your stuff... and like - protecting access from mean hacker-types.
04:23:58 <SevenInchBread> ...but that's because no one else uses this computer... and I've never have a security breach.
04:24:48 <ihope> SevenInchBread: privileges are very necessary.
04:25:02 <ihope> Every process must have a set of privileges.
04:25:17 <SevenInchBread> eh... probably... I've just never found use for them myself.
04:25:36 <SevenInchBread> my email is adamadamadamamiadam@gmail (it's long... but probably easy to remember)
04:26:56 <SevenInchBread> ihope, what kind of priveledges? I usually think of priveledge systems as ways to keep me out of messing with shit..
04:27:12 <ihope> Adam adam adam ami adam?
04:27:27 <ihope> SevenInchBread: every system call is a privilege.
04:27:34 <ihope> And every process has privileges.
04:27:49 <ihope> That's to make it so that running malicious software doesn't end up doing anything bad.
04:27:56 <ihope> And by malicious, I might mean buggy/
04:29:01 <SevenInchBread> eh... you could just make everything fairly unbreakable to start with...
04:29:21 <SevenInchBread> as long as everything is open-ended unless explicitly blocked.
04:30:15 <ihope> SevenInchBread: "everything is open-ended unless explicitly blocked" meaning "if you run it, it can do anything unless you say otherwise"?
04:30:32 <ihope> And how do you make something immune to formatting the hard drive, say?
04:31:08 <ihope> I still like the principle of least authority.
04:31:54 <ihope> By default, programs aren't allowed to do anything that's potentially harmful.
04:32:08 <SevenInchBread> oh... originally I thought it meant something like "principle of no authority"./
04:32:18 <ihope> If you run it, you're granting it some CPU time, memory, and maybe hard disk space and a slot in your window manager.
04:33:43 <ihope> SevenInchBread: then sudo is for you.
04:34:00 <ihope> How do Windows and Linux CPU time distribution things work?
04:34:05 <oerjan> as i understand it, one of the ideas behind the principle is that even if someone manages to break into your program, they cannot get control of anything the program doesn't normally use
04:34:15 <SevenInchBread> as long as something isn't completely blocked from access... then having some security features is nice.
04:34:37 <ihope> SevenInchBread: it's not like you'd want to run a program and then not grant it any CPU time.
04:34:48 <ihope> Nor grant it CPU time but not the ability to make any system calls at all.
04:35:10 <ihope> Unless you want the program to do nothing but sit there and compute.
04:35:44 <SevenInchBread> the securest computer in the world is also the most useless computer in the world.
04:36:52 <Sukoshi> I'll bet Babbages computer was more secure than any computer today!\
04:37:20 <oerjan> being unbuilt _is_ pretty secure, you have to admit.
04:37:23 <SevenInchBread> yeah okay then... I see no problem with having configurable security stuff then... I usually don't reformat my hard drive on a regular basis... and as long as I still have free access to everything then it doesn't matter to me.
04:37:26 <ihope> SevenInchBread: yes, well, we don't want the most secure computer in the world.
04:37:50 <ihope> And there will in fact be a way for you to do whatever you want, as long as it's not configured to keep everyone out.
04:38:02 <ihope> Nor configured to keep you out.
04:39:24 <SevenInchBread> ihope, basically I like microkernals because they're not huge and messy...
04:39:36 <ihope> I think we can manage a microkernel.
04:39:52 <ihope> So let's see here... kernel loads processes. We need the kernel to handle processes.
04:40:14 <ihope> So it has to handle time slices, loading of processes, calling of processes, and system calls.
04:40:24 <ihope> And handling system calls means handling privileges.
04:40:26 <SevenInchBread> does it need to handle inter-process commmunication. IPC is really something I'd like to focus on.
04:40:46 <ihope> IPC could be provided using a service.
04:40:54 <ihope> We'll also want the kernel to handle services.
04:41:13 <ihope> And I think that's just about everything our kernel needs.
04:41:16 <ihope> Aren't what the same thing?
04:41:39 <SevenInchBread> I've always interpreted service/daemon to mean "stuff that spends most of its time sitting around making itself available"
04:42:14 <ihope> Service = something which a process makes available and can be invoked by other processes.
04:42:47 <ihope> You could invoke the processes themselves, yes.
04:43:12 <ihope> But what if you want a process to provide multiple services?
04:43:37 <ihope> A service is essentially some type of interface for something.
04:44:06 <SevenInchBread> the syntax - to put it into shell parlance - might be something like "processname message"
04:44:19 <ihope> Indeed it could be.
04:44:34 <SevenInchBread> so.... if there was an "fs" process... that did the filesystem.
04:44:35 <ihope> So that means services = IPC?
04:45:07 <SevenInchBread> you could do "fs cd foo/bar" or "fs list (foo/bar, foo/bar2, foo/bar3)"
04:45:20 <ihope> Nah, we have to give it a GUID. Call it {f4f5ff04-45eb-40d1-b206-63913b5468d6}.
04:45:40 <ihope> I mean, we don't want collisions, do we?
04:45:49 <ihope> I guess calling it "fs" isn't a bad idea.
04:46:06 <SevenInchBread> don't see why not... collisions can be handled by some sort of priveledge.
04:46:26 <ihope> How would that work?
04:46:55 <SevenInchBread> so if some malicious HackerHarrison tries to split off a process named "fs"... some nifty NameLessPriveledge of the existing fs can keep that from happening.
04:47:16 <ihope> Oh, just keep process naming privileged.
04:47:45 <ihope> But I guess you'd have the kernel issue random, boring names to whoever needs one.
04:47:49 <SevenInchBread> or it could go the other way around... other processes can have a "override names" priv
04:48:03 <SevenInchBread> that way you have the option to stuff like... create a new filesystem process.
04:48:15 <ihope> Well, what if someone sets up an fs privilege and someone else uses it before the real fs can kill it?
04:49:42 <ihope> Well, we want this operating system to be airtight.
04:50:38 <SevenInchBread> referring to processes by number is pretty crappy of UNIX... I must say.
04:50:55 <ihope> bsmntbombdood: is it?
04:51:05 <oerjan> if someone can set up an fs privilege then they shouldn't pass it around to someone non-trusted.
04:51:21 <SevenInchBread> ...but UNIX doesn't focus much on processes... it puts more focus on files.
04:51:53 <ihope> SevenInchBread: indeed, isn't "everything's a file" some sort of UNIX philosophy?
04:52:43 <SevenInchBread> I SAY WE ADOPT A "everything reminds SevenInchBread of Smalltalk-like objects"... WHICH WE SEEM TO BE DOING QUITE WELL.
04:53:05 <ihope> You know, this isn't all too different from letting processes register services that other processes can use...
04:53:28 <bsmntbombdood> iirc, you can access the IP stack by writing to a file in /proc
04:53:33 <SevenInchBread> not too different at all... processes are pretty much services... from my experience.
04:53:48 <ihope> bsmntbombdood: you can access the what?
04:54:13 <SevenInchBread> they do stuff... when given some input. UNIX and Windows just do it by spitting out a process each call... but you could easily have the processes sitting around performing actions as they receive them.
04:54:42 <ihope> SevenInchBread: how about we go with an "everything is a service" philosophy?
04:54:52 <ihope> Or "everything is a file", if you want to go that route.
04:55:20 <SevenInchBread> we shall go with the "everything is something" phiolosophy.
04:55:41 <ihope> Do the capital letters indicate sarcasm?
04:55:50 <SevenInchBread> I'm feeling Perl-esque... and in backlash of all this "everything is <foo>" nonsense.
04:56:27 * Sukoshi goes back to Japanese studies.
04:56:39 <Sukoshi> bsmntbombdood: Don't forget to brainstorm more on ppdf.... :(
04:56:46 <SevenInchBread> I AM PERSON, AND THAT IS A ROCK... BUT I'M ALSO CARBON... EVERYTHING IS ANYTHING YOU FUCKING WANT IT TO BE. THAT'S HOW IDENTITY WORKS.
04:56:46 <ihope> SevenInchBread: "everything is something"? So maybe filesystem access is a service while networking is a system call, and miscellaneous inter-process communication is a file?
04:57:19 <SevenInchBread> ihope, I see system calls working as messages to services... which all have convient names attached to them.
04:58:22 <ihope> SevenInchBread: eh.
04:58:44 <ihope> How about we discuss this via email? It's midnight and there seems to be school tomorrow.
04:59:13 <ihope> It's Sunday today?
04:59:16 <Sukoshi> bsmntbombdood: Do you want to change the project ...? :(
04:59:36 <SevenInchBread> "fs del (one, two, buckle, my shoe)" ...which is a system call in typical parlance... but basically it would just be input to the fs process... with the comma-separate list thing being an actual data-structure being sent here. :)
04:59:54 <ihope> Rather, it's on the borderline between Sunday and Monday right now?
05:00:35 <bsmntbombdood> ihope: you must live in crazy other-side-of-the-world land
05:01:07 <ihope> Does crazy other-side-of-the-world land include Michigan?
05:01:34 <SevenInchBread> ...hmmm... actually fs might just receive "del" and then output something to handle like... the (one, two, buckle, my, shoe)
05:01:34 <ihope> I have a feeling my clock is wrong.
05:01:57 <ihope> SevenInchBread: it's eastern time over there?
05:02:06 <ihope> Is it Sunday/Monday or Saturday/Sunday?
05:02:26 <Sukoshi> MENTALLY CHALLENGED PEOPLE NOT ABLE TO COMPREHEND TIMEZONE!!!
05:03:07 <SevenInchBread> ....I say we get rid of timezone... they were only good back when we had trains and because people liked there clocks to look the same in different parts of the world.
05:03:23 -!- ihope has quit (Read error: 104 (Connection reset by peer)).
05:03:40 <bsmntbombdood> me and a freind are going to drop out and start a commune
05:04:13 <oerjan> you mean we should go back to local time?
05:04:24 <SevenInchBread> bsmntbombdood, I've had plans at separating from the US for some time. TO CREATE A DISCORDIAN AND HUMOR-BASED NATION... THAT WILL ENFORCE ITS BULLSHIT IDEOLOGY ON THE WORLD.
05:04:39 -!- ihope has joined.
05:04:58 <ihope> Anyway, apparently my computer thinks it's December.
05:04:59 <oerjan> how would that be different from the US?
05:05:21 <Sukoshi> ihope sounds like me on summer vacation.
05:05:24 <SevenInchBread> and if its daylight at 3 AM in the UK then world will not implode
05:05:30 <Sukoshi> ``Darn it, it's Tuesday? I thought it was Sunday :(''
05:05:49 <Sukoshi> Yes it will SevenInchBread.
05:05:56 * ihope adjusts his clock to April and one minute, 30 seconds forward
05:06:15 <SevenInchBread> oerjan, no no it's alright... talking about how much the US sucks is a great way to get brownie points with any United Statesian.
05:06:37 <SevenInchBread> ...well... unless they're like... a freakish unpatriotic USA-lover person.
05:06:37 * ihope casts his vote for "US American"
05:06:54 <Sukoshi> Yeah. You can't be a patriot and like the current administration.
05:07:01 <ihope> So there is in fact not any school today/tomorrow.
05:07:32 <ihope> But regardless, I'll be going to bed now, so if anybody wants to say anything, it'll have to be via email.
05:07:38 * SevenInchBread thinks oppression of freedom should be done with A GOOD CHUCKLE
05:08:18 <ihope> Also, I think once this operating system's written, we'll look back and say "wow, that was easy". Maybe.
05:08:32 <Sukoshi> I think it'll go by the way of ESOS.
05:08:33 <oerjan> yes, i guess the bush administration may not be big on the humor part.
05:08:39 <ihope> But mailing lists are more useful when there's more than two people.
05:08:47 <ihope> Even with three we can get by easily.
05:08:58 <SevenInchBread> Sukoshi, not without me pushing for it forever... this has been a serious project on my mind for some time now.
05:09:06 <ihope> And four and five. Once you get people joining too fast to keep track of them all, you need a mailing list or something.
05:09:19 <ihope> A mailing list, a forum, a chatroom, and a wiki.
05:09:24 <Sukoshi> SevenInchBread: Will this be serious? I'll join then.
05:09:26 <SevenInchBread> I just thinking a mialing list would be nice so information doesn't get all fragmented.
05:09:33 <ihope> I happen to already have #yaos registered for this. :-)
05:09:36 <Sukoshi> SevenInchBread: Only on the condition that we support some non-C language at a basic level.
05:09:46 <Sukoshi> When I see the letters ``yao'' I think ``yaoi''.
05:09:53 <SevenInchBread> Sukoshi, ...probably. Since I don't know C all tha twell.
05:09:58 <ihope> Should I register #aspirin and #sophia as well?
05:10:16 <Sukoshi> The genre of Boys-love in Japanese Animation.
05:10:32 <Sukoshi> Look, don't blame the bishounen for being hawt. They just are.
05:10:51 <ihope> oerjan: just like the Staff of Eucalyptus.
05:11:04 <ihope> And the Eye of Tapioca.
05:11:08 <SevenInchBread> with IRC... only the people around to hear you get the message.
05:11:17 <SevenInchBread> with a mailing list you can be sure everyone gets the word.
05:11:25 <ihope> It's something you say when you don't remember what the word actually is.
05:11:59 <Sukoshi> What do you program in SevenInchBread ?
05:12:12 <ihope> Anyway, when I said "now" there, I probably meant the now that's actually now. Send each other (and me) lots of emails so that this will suddenly become a real project.
05:12:30 <SevenInchBread> Python... but I feel oddly confident that I could work with a host of other languages... even though I've never really used them.
05:12:44 <SevenInchBread> even though I'm sure I'd suck in all of them from the start.
05:13:11 * oerjan still does not understand what aspirin is a mispeling of.
05:13:41 <SevenInchBread> so it'll take the sourceforge people about 1 or 2 days to reject our project.
05:14:15 <SevenInchBread> googlecode doesn't require approval... but it doesn't have the public domain option.
05:14:20 <Sukoshi> Python: For Idiots and Cakeprophets.
05:14:41 <Sukoshi> bsmntbombdood: Now I really leave but, is there any project you'd rather do than a PDF Viewer that's moderately complex?
05:14:49 <SevenInchBread> Sukoshi, Yeah... despite being waaay too familiar with it... I hate it completely.
05:16:04 <Sukoshi> Ok, does anyone here have any ideas for moderately complex practical projects?
05:16:06 <oerjan> only fixed in the sense "corrupt"
05:17:52 <SevenInchBread> ...it reminds me of like... the filesystem part of an OS... minus all the heavy-duty hardware and memory shit... and all the speed concerns...
05:18:00 <SevenInchBread> ...and on a network. So basically almost nothing like an OS.
05:18:48 <SevenInchBread> but there's a hierarchy of things within other things.... and some commands. so it's vaguely like a virtual filesystem.
05:19:01 <Sukoshi> So it's like a .... a ... a .... game?
05:20:01 <oerjan> breakfast? i thought you were in the US...
05:20:09 <SevenInchBread> but in return... you have to call befunge a board game.
05:20:45 <SevenInchBread> oerjan, ...the US has breakfast... just not at regular intervals.
05:21:07 -!- ihope has quit (Read error: 60 (Operation timed out)).
05:26:38 <Sukoshi> Does anyone else have any practical ideas that don't involve eating the discussioners along the way?
05:36:47 <Pikhq> So, from the middle of dry hands?!?
05:46:58 <Sukoshi> It's a quote from a song, heh.
05:48:08 <Sukoshi> We all are when we're next to the things we love.
05:48:18 <Sukoshi> I start hopping around when I see a baloon and some magnets.
05:48:35 <Sukoshi> I like tike induce a charge in the balloon and then spin the magnets around to cause the balloon to move.
05:50:00 <Sukoshi> Oh yah, I forgot what happened about Reiser.
05:50:11 <Sukoshi> He made a 5 minute blip on our local news some months ago.
06:11:16 <SevenInchBread> yeah... forced OOP can lead to overcomplicated designs... but used just right it can make really simple designs.
06:12:22 <SevenInchBread> mmm... I don't know... I always think of Smalltalk doing OOP the "right way"... at least with the builtin stuff. What people add on to it might be something totally different.
06:12:48 <SevenInchBread> ...Python's logging module is a very good reminder of when OO can go to far.
06:14:35 <Sukoshi> That's pretty much what Java is.e
06:15:48 <SevenInchBread> when I first saw the logging module it permanently tied a little ribbon around me... reminding me of how horrible OO can get.
06:18:41 -!- calamari has joined.
06:42:39 -!- oerjan has quit ("Gsvensk").
06:52:26 -!- SevenInchBread has quit (Read error: 145 (Connection timed out)).
07:20:40 -!- calamari has quit ("Leaving").
07:22:48 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:13:53 -!- maverickbna has joined.
08:14:15 -!- maverickbna has quit (Client Quit).
08:20:36 -!- ShadowHntr has quit (Read error: 145 (Connection timed out)).
09:39:44 -!- sebbu has joined.
10:42:30 -!- Sgeo has quit ("Ex-Chat").
13:43:08 -!- Pikhq has joined.
14:31:54 -!- ihope has joined.
14:35:14 <ihope> Well, that's certainly one way to do it.
14:46:54 <ihope> And it's certainly not a bad way, either.
14:54:08 -!- Pikhq has quit (Read error: 60 (Operation timed out)).
14:54:52 -!- Pikhq has joined.
15:23:28 * ihope ponders system calls and services
15:26:51 -!- ihope_ has joined.
15:34:48 -!- ihope has quit (Read error: 60 (Operation timed out)).
15:35:24 -!- ihope_ has changed nick to ihope.
15:38:04 -!- oklopol has joined.
16:12:49 -!- jix__ has joined.
16:13:18 -!- jix__ has changed nick to jix.
16:52:09 -!- Sgeo has joined.
16:53:46 -!- ihope has quit (SendQ exceeded).
16:54:05 -!- ais523 has joined.
16:54:18 -!- ihope_ has joined.
16:54:27 -!- ihope_ has changed nick to ihope.
16:57:19 * ais523 is now known as ais523
16:57:33 <ais523> I was wondering if it would let me type that without distinguishing it in some way
16:57:48 <ais523> but of course, it shows up styled differently anyway
16:58:08 <ihope> Yeah, /me generally shows up differently.
16:59:28 <ais523> by the way, what's been happening to the esoteric OS idea that's been popping up in the logs now and again
17:00:14 <ais523> (I'm having Internet access problems at the moment, so can't come online as often as I'd like and have resorted to logreading (which I do anyway))
17:01:50 <ihope> ais523: well, nobody seems to have decided on an esoteric platform.
17:02:22 <ais523> In the C-INTERCAL distribution there were notes about making a microprocessor that ran INTERCAL natively
17:02:29 <ais523> although I don't think anyone ever managed that
17:29:02 -!- puzzlet has quit (Remote closed the connection).
18:09:04 -!- jix has quit ("This computer has gone to sleep").
18:51:12 -!- jix__ has joined.
18:54:15 -!- jix__ has quit (Client Quit).
18:55:17 -!- meatmanek has quit (Connection timed out).
18:56:52 -!- ais523 has quit.
19:15:24 -!- nazgjunk has joined.
19:43:09 -!- atrapado has joined.
19:46:23 -!- meatmanek has joined.
20:22:29 -!- helios24 has quit (Read error: 104 (Connection reset by peer)).
20:22:40 -!- helios24 has joined.
20:27:52 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
20:31:02 -!- nazgjunk has joined.
21:02:25 -!- sebbu2 has joined.
21:05:32 -!- helios24 has quit (Remote closed the connection).
21:06:15 -!- helios24 has joined.
21:08:19 -!- helios24 has quit (Remote closed the connection).
21:09:09 -!- helios24 has joined.
21:09:30 -!- sebbu has quit (Read error: 60 (Operation timed out)).
21:16:20 -!- jix__ has joined.
21:17:09 -!- ShadowHntr has joined.
21:20:36 -!- jix_____ has joined.
21:20:48 -!- jix_____ has changed nick to jix.
21:21:31 -!- sebbu2 has changed nick to sebbu.
21:30:43 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
21:33:52 -!- jix__ has quit (Read error: 110 (Connection timed out)).
21:39:21 -!- nazgjunk has joined.
22:10:20 -!- oerjan has joined.
22:20:59 -!- maverickbna has joined.
22:21:50 -!- ShadowHntr has quit (Nick collision from services.).
22:27:08 -!- maverickbna has changed nick to ShadowHntr.
22:49:21 <GregorR> Apple's C-acting-like-smalltalk.
22:58:40 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
23:06:45 -!- atrapado has quit ("pinj timeout").
23:08:27 <bsmntbombdood> @synchronized(someobject){ code that uses someobject}
23:11:05 -!- nazgjunk has quit ("sick >.<").
23:13:53 <GregorR> lament: I was under the impression that Objective C was designed by Apple ... at the very least, Apple <3 ObjC
23:14:54 <lament> as i understand, they use a weird mixture of C, C++ and ObjC these days, and it's quite horrible.
23:27:44 -!- SevenInchBread has joined.
23:30:32 <SevenInchBread> I'm not sure I understand the difference between a service and a process.
23:32:47 <oerjan> in principle several processes could handle the same service, and vice versa.
23:33:48 <oerjan> a service is what the client sees. a process is a way of implementing various tasks, including services.
23:37:30 <SevenInchBread> how would the service know which process to delegate the task to?
23:37:38 <SevenInchBread> I've always thought of it as a one-to-one kind of mapping.
23:39:14 <oerjan> well in practice there may usually be a single process handling the initial connection, unless it is truly distributed.
23:41:28 <SevenInchBread> no no... I mean... give processes a hierarchy and refer to them by name.
23:41:49 <SevenInchBread> using numbers to refer to processes just doesn't sound... very useful.
23:42:12 <oerjan> named pipes exist and are slightly similar.
23:43:39 <oerjan> essentially processes attached to the filesystem, with reading/writing going to the process stdin/out
23:45:20 <SevenInchBread> In Windows parlance, a service is something like a daemon in unix.
23:48:32 <oerjan> it sounds like something unixes can probably already do, although they aren't optimized for it.
23:49:33 <oerjan> symbolic links to /proc, maybe
23:50:12 * oerjan is not versed in the details of this.
23:50:45 <SevenInchBread> it would be harder to map out processes in a directory structure based on childness.
23:52:29 <oerjan> for a more fundamental approach, i guess forks/execs should take a filename argument to place each process.
23:54:47 <oerjan> and persistence would be a natural part of this.
23:57:44 <ihope> A service here is an interface provided by a process.
23:58:14 <ihope> A process can register a service, then other processes can request them.
00:10:05 <oerjan> bf default is 16-bit, so you would be hard pressed getting either a halt or a newline out of that
00:10:35 <oerjan> i.e. nothing will be printed until buffer overflows, i think.
00:11:09 <SevenInchBread> ihope, oh alright... so with my idea I'm basically saying every process is a service... and the organizational structure is kind similar to a filesystem hierarchy.
00:12:49 <ihope> SevenInchBread: I'm thinking letting processes offer more than one service or none at all would add a little versatility.
00:13:16 <ihope> Why should every process be a service?
00:13:33 <ihope> How would it know which service it's doing?
00:13:48 <ihope> A process pretty much chooses what services to provide.
00:14:22 <ihope> The process is told what service has been called with what data.
00:14:24 <SevenInchBread> yeah... if one process was registered as two services with two fundamentally different tasks... and you used one - how would the process know which one it's handling.
00:14:37 <oerjan> you could have the process register streams at different addresses.
00:15:19 <ihope> What's this about streams?
00:15:20 <SevenInchBread> ah... that's a good idea. Except the stream part. :) I think Erlang "mailbox"-ish IO mechanisms would work nicely.
00:15:47 <oerjan> instead of having just stdin and stdout as interface, which i think is what is confusing here
00:16:15 <ihope> Why be mailboxish when you can have your processes provide procedures that can be called directly?
00:16:29 <ihope> (I'm talking Pascal now for some reason, aren't I?)
00:16:46 <oerjan> this leads then to the conclusion that procedures should also be placed in the filesystem
00:17:26 <ihope> SevenInchBread: if you provide procedures like that, the program can handle mailboxes by itself.
00:17:31 <oerjan> and before long we have arbitrary objects (in a general sense)
00:17:47 <ihope> oerjan: placing procedures in the filesystem?
00:17:48 <SevenInchBread> I was just saying... instead of the stream of bytes... you have a queue of.... stuff.
00:18:16 <SevenInchBread> the data gets partitioned... instead of jumbled alltogether in a huge chain.
00:18:39 <ihope> Did I say something to the contrary?
00:18:43 <oerjan> given that each service should have at least one spot in the filesystem, if i understand SevenInchBread correctly
00:19:00 <ihope> Services need not be invoked with plain old bits and bytes.
00:19:08 <ihope> oerjan: but I haven't agreed to that. :-P
00:19:18 <ihope> Putting services in the filesystem isn't a bad idea, though.
00:19:30 <SevenInchBread> well... kinda. Maybe not -literally- in the filesystem... but I was much wanting processes to be organized in a structure that resembled a filesystem.
00:19:34 <ihope> But that's a job for the filesystem handler, not for the kernel.
00:20:19 <ihope> Having processes arranged in trees is... well, what's the reason behind that?
00:20:41 <SevenInchBread> basically... it's an implication of giving processes names.
00:20:58 <ihope> Apart from its use in rationing CPU time.
00:21:10 <SevenInchBread> if we gave them names and didn't organize the names into some kind of scope... it would have all the problems of a flat filesystem.
00:21:46 <ihope> Couldn't you just put slashes in there or something?
00:22:26 <ihope> We can still have foo/bar/baz isn't if it's not baz inside bar inside foo.
00:22:42 <SevenInchBread> well... in my examples... I just used spaces... ala-Smalltalk message-passing (which is a similar concept).
00:24:51 <ihope> Why not just have another service called fs/cd and/or have cd be part of the message to the fs service?
00:25:38 <SevenInchBread> the "cd" part is literally just a string being passed to fs
00:25:45 <SevenInchBread> fs can choose to do whatever the hell it wants with it.
00:27:25 <SevenInchBread> if you like your names nice and flat... making some macros wouldn't be too impossible.
00:28:40 <ihope> So is there really any reason to put services in a tree like that/
00:28:41 <SevenInchBread> ...or you could borrow another concept from file hierarchies and do "current processes"
00:28:58 <SevenInchBread> -shrug- not really... it's not really all that necessary.
00:29:38 <ihope> By the way, how's the SourceForge coming?
00:31:04 <ihope> I notice that Google Groups does offer some storage space?
00:31:07 <SevenInchBread> oh, and another benefit of microkernels is that we have no obligation to write everything in one language.
00:31:11 <ihope> What about representing time?
00:31:17 <ihope> Indeed, that's true.
00:31:29 <SevenInchBread> the code behind fs or any other process major OS process could be any language.
00:31:59 <SevenInchBread> well... it would be kind of stupid to do time like all the major OSes... since it's going to run out of ticking power by 2032
00:33:51 <ihope> 64-bit won't go bad for a while.
00:34:02 <SevenInchBread> you could do like.... a base-256 numeral system... in reverse order (the smallest place values come first)
00:34:08 <ihope> Though bignums aren't bad.
00:34:30 <SevenInchBread> so the length can be arbitarry... and you won't ever have to worry about it.
00:34:56 <ihope> "(2^64) seconds = 5.84554531 * 10^11 years"
00:35:12 <ihope> We won't be the ones to worry about it.
00:35:26 <oerjan> terminate with a null? then it would be buggy
00:36:24 <SevenInchBread> maybe have a special byte for the terminator... and have do base-255. but for the OS, 64-bit should be enough.
00:36:52 <ihope> If we use 256 bits, we'll be good until all protons in the universe have decayed.
00:37:07 <oerjan> Time Error: Date is beyond Universe Heat Death
00:38:29 <oerjan> how long do red dwarf stars live again, hm...
00:39:12 <SevenInchBread> I sometimes wonder what the computer world would be like if we could specify the size of our bytes.
00:39:17 <ihope> That'll be enough.
00:39:21 <oerjan> ah, 64 bit won't be enough for that then.
00:40:02 <ihope> In 500,000,000,000 years, somebody'll have invented a way to translate everything up to 128 bits.
00:40:37 <ihope> I doubt Abrasax/YAOS/Sophia will still be in use by then, anyway.
00:40:48 <SevenInchBread> ....pretty sure the Earth or at the very least humans will be gone by that time.
00:41:55 <oerjan> ah, a misanthrope. or a misgean?
00:42:29 <ihope> How about we stay on topic, eh?
00:42:52 <ihope> We can always take this into #off-topic.
00:43:05 <ihope> Now, just how will we compile our kernel?
00:44:08 <oerjan> we will load it into the atmosphere of a red dwarf.
00:44:15 <SevenInchBread> erm.... I don't know. I've never actually used a compiler before.
00:45:11 <SevenInchBread> oerjan, kinda. I have a love-hate relationship with humanity.
00:45:28 <ihope> I suggest we steal the "Multiboot example".
00:46:03 <SevenInchBread> anything specific about memory management we want to do? What about paging?
00:46:14 <ihope> See http://www.gnu.org/software/grub/manual/multiboot/multiboot.html#Example-OS-code
00:46:30 <ihope> The kernel will probably have to handle memory management.
00:46:35 <ihope> Or at least some of it.
00:46:46 <ihope> It can't leave loading processes up to a process it can't load.
00:47:18 <SevenInchBread> yeah yeah... one of the main jobs of the kernel is memory management.
00:48:00 <ihope> I'm not that familiar with how memory works.
00:48:20 <SevenInchBread> buddy system allocation, paging files, etc.... the usual stuff.
00:48:34 <ihope> Buddy system allocation?
00:49:13 <ihope> I know a little bit about processes.
00:49:52 <SevenInchBread> I don't know how processes interact with the kernel to get memory though... I just know bits and pieces of HOW the kernel can go about handing out memory.
00:50:42 <ihope> Wouldn't that be done via system calls?
00:52:39 <SevenInchBread> memory management is kind of weird... you've got to find the best way to package a bunch of little blocks so that they can be picked up quickly
00:53:05 <ihope> We may have to find an expert.
00:53:32 <SevenInchBread> paging is probably the way to go.... all the big OSes use it... so its tried and testing
00:54:53 <SevenInchBread> we just need to write the program that reacts to a page fault.
00:55:35 <ihope> I think you know more than I do on the subject.
00:57:31 <SevenInchBread> a large amount of OS performance relies on a good paging algorithm.
00:59:01 <ihope> Think you can handle it?
01:00:53 <SevenInchBread> probably the other factor in the performance of this OS will be how quickly it can handle IPC... which is a bit more important to a micro kernel.
01:04:59 <ihope> Think we should recruit an expert, then?
01:05:05 <SevenInchBread> but... IPC doesn't mean shit if the process isn't scheduled to execute at the proper time.
01:05:36 <ihope> Why do processes need to be scheduled to run at the right time?
01:06:11 <ihope> Indeed, failure results in learning.
01:06:18 <SevenInchBread> well... one of the OSes jobs is to schedule which processes get to run and at one time. There's only so many processes that can run at any given time.
01:07:33 <ihope> You mean multiple processes can run at the same time?
01:08:01 <SevenInchBread> well... I mean... there's only so many processes that can be "active" at any given time.
01:08:25 <ihope> Just what is being "active", now?
01:08:37 <ihope> I suggest you remember, seeing as how I have doubts.
01:08:46 <SevenInchBread> http://en.wikipedia.org/wiki/Process_states <--LOL MORE LINKS
01:10:03 <ihope> Argh, process swapping.
01:10:21 <ihope> How about we leave *that* up to a process?
01:10:52 <SevenInchBread> well... to a certain extent OSes do... Windows for example lets me set the process priority.
01:11:21 <ihope> Indeed, failure results in learning, but aren't we aiming for success?
01:11:27 <SevenInchBread> ....so... I can set "firefox.exe" to realtime... and then it'll take me a good hour to try to move my mouse back to set it back to normal.
01:12:49 <ihope> I'd rather succeed the first time around. :-)
01:12:59 <ihope> Unless we can go faster by learning.
01:13:28 <SevenInchBread> see... the problem is that if you set the priority of a process extremly high, but keep all the processes that it accesses at normal... then the high-priority process will be spending most of its time waiting for its dependencies to become active.
01:14:00 <SevenInchBread> so... probably the best priority scheme is one based on a combination of reaction time as well as independence.
01:14:06 <ihope> We could let processes switch to other processes.
01:14:16 <SevenInchBread> the mouse... for example... should be highly responsive...
01:14:41 <ihope> Invoke a service provided by a process, then switch to that process.
01:16:04 <SevenInchBread> because processes are fairly asynchronous... there is no "return value".
01:16:43 <ihope> There's no return value?
01:17:33 <SevenInchBread> I mean... processes don't wait for the results of other processes... they're all running at the same time.
01:18:04 <SevenInchBread> the simplest scheduling algorithm is an equal time algorithm... which ensures that each processes gets a chance to execute...
01:18:23 <SevenInchBread> we can start with that one... and then find one that finds more efficient uses of time later.
01:18:24 -!- sebbu has quit ("@+").
01:19:36 <SevenInchBread> the only real reason equal-time scheduling doesn't work is because not all processes need an equal share.
01:19:38 <ihope> They're not all running at the same time.
01:20:09 <ihope> What's keeping us from adding a system call saying "spend the rest of this time slice on that process"?
01:20:11 <SevenInchBread> an HTTP server - which spents most of its time waiting for something to send it a request... doesn't need near as much time as a video game.
01:20:32 <SevenInchBread> ihope, that's just a specific situation... it doesn't solve the whole problem.
01:21:02 <ihope> Couldn't the HTTP server end its time slice early?
01:23:18 <bsmntbombdood> well, while it's blocking, the OS needs to put an entry in the ptable that says it's not available for scheduling
01:24:26 <ihope> Blocking is something I'm going to have to understand, isn't it?
01:25:26 <bsmntbombdood> blocking is when a proccess waits for some external input
01:25:42 <oerjan> it seems to me that the HTTP server problem is if a process has two "states" - one where it does immediate work in response to a request, and one where it does occasional work while otherwise waiting.
01:25:44 <bsmntbombdood> obviously, when a proccess is blocking, the scheduler shouldn't give it any proc time
01:26:00 <SevenInchBread> ihope, yeah that works fine... but you can't expect the process to handle itself... programmers don't want to have to think about time slices.
01:26:04 <oerjan> then they may need different priorities.
01:26:24 <ihope> SevenInchBread: so how do we know whether it's blocking or not?
01:27:08 <ihope> Blocking can only be the result of a system call?
01:27:51 <oerjan> you could of course have a system call that did nothing but end the current time slice
01:27:54 <SevenInchBread> if my program splits off a subprocess... I can explicitly say "wait for this process to return a result"
01:28:28 <ihope> Well then, the HTTP server invokes a service that waits for an incoming connection. The process that handles the service does all the work--right?
01:29:02 <ihope> Wait for process termination?
01:29:20 <ihope> Or "wait for service to return a result"? :-)
01:29:46 <ihope> Where do you come up with the names?
01:29:51 <bsmntbombdood> SevenInchBread: single words (ints) are much nicer
01:29:54 <SevenInchBread> alright then.... in Sophia the file system shall reference files by number.
01:29:59 <ihope> Indeed, they're pretty convenient.
01:30:09 <ihope> SevenInchBread: let's not violate WP:POINT here.
01:30:20 <ihope> Not that this would be a WP:POINT violation even if this were Wikipedia.
01:30:34 <ihope> Rather, let's not use slippery slope arguments or whatever they're called.
01:31:05 <SevenInchBread> ....I just can't fathom how numbers are more convient than names.
01:31:08 <oerjan> that's just inodes isn't it?
01:31:21 <ihope> When I create a file, I usually have a name in mind for it. If I don't have a name in mind, I might choose a number. When I create a process, I usually don't have a name in mind for it.
01:31:25 <SevenInchBread> indeed... we have DNS because names are more convient than numbers.
01:31:37 <ihope> SevenInchBread: it's easier to store a name than it is to store a number.
01:31:45 <ihope> Names are for things that persist.
01:32:05 <ihope> s/name/number/ and vice verse.
01:32:11 <ihope> s/verse/versa/ :-P
01:32:17 <ihope> SevenInchBread: why is what important?
01:32:23 <oerjan> naturally the name would be optional, and initialized like a temporary file name if not provided
01:32:33 <ihope> (Alternatively: s/easier/harder/)
01:32:48 <bsmntbombdood> system calls are numbers, file descriptors are numbers, permissions are numbers...
01:32:57 <ihope> Oh, names are fine.
01:33:02 <ihope> But why have them?
01:33:40 <SevenInchBread> but why? A number has no referential meaning to a human... they're only convient for the computer - which is fine in some cases.
01:33:44 <oerjan> however if the OS supports process persistence (and otherwise, why go to all this trouble?) then you might run out of numbers.
01:34:35 <ihope> It's not especially often you need to refer to a process by ID.
01:34:46 <SevenInchBread> to help the stupid computers work with the stupid humans.
01:35:17 <ihope> I could say "the process providing the 'fs' service" or "the process that's an instance of /foo/bar" or "the process that's using all the CPU time".
01:35:51 <SevenInchBread> heh... I've been referring conceptually to fs being the actual process.
01:36:15 <ihope> If the process that's using all the CPU time is the only instance of the executable, we refer it to is as "the process that's an instance of /foo/bar". Otherwise, how do we come up with names for all the instances?
01:36:33 <ihope> If you let the processes name themselves, you end up with things like processes named "_________________________".
01:36:51 <ihope> And processes named "ø".
01:37:06 <SevenInchBread> names are useful for persistance of any kind.... fs will always remain fs each time it is around... that way we have a quick and global reference to it.
01:37:18 <ihope> fs is the name of the service, not the name of the process.
01:37:24 <SevenInchBread> ihope, is that any more troublesome than "the process 242"
01:37:43 <ihope> SevenInchBread: well, you have to copy and paste the underscores rather than typing them by hand.
01:37:59 <ihope> Can you tell how many underscores there are without doing something tedious?
01:38:13 <ihope> I can copy "242" much more easily.
01:38:24 <ihope> My example or yours?
01:38:49 <SevenInchBread> yes indeed... someone could name their process "asfkjskdljdklgjdlkgjlkdgkldfjgkljdfg".... but then they're fucking retarded.
01:39:04 <ihope> Well, there are people in the world who are fucking retarded.
01:39:05 <SevenInchBread> and you probably don't want whatever that process does.
01:39:15 <ihope> And that means you need to kill it.
01:39:35 <ihope> I'd rather type 242 than copy-and-paste that thing.
01:40:50 <SevenInchBread> okay... so then you can simply have numbers AND names. like file descriptors and file names.
01:41:17 <ihope> Why have process names, again? Service names, sure, but why process names?
01:42:06 <SevenInchBread> I'm talking about a unique reference name and a unique ID number.
01:42:35 <SevenInchBread> basically... a service IS a process.... a process with a name in front of it.
01:42:36 <ihope> I'm thinking giving every process a name is like giving every inode or whatever you call it a name.
01:42:51 <SevenInchBread> maybe not in UNIX... in UNIX the service name -creates- a new process each time it's referred to.
01:43:06 <ihope> Well, yes. The services act as the names, so what reason is there to give each process another name?
01:43:10 <SevenInchBread> but I don't think we're doing that... unless we want to spawn a process each time we refer to "fs"
01:44:26 <ihope> Users and application developers need to know "fs", the service name. They don't need to know the name of the process.
01:44:40 <bsmntbombdood> SevenInchBread: what you describe is message passing OO
01:45:05 <bsmntbombdood> proccesses have private data and can be sent messages. they are objects.
01:45:11 <SevenInchBread> ...I just don't like the concept of the service. I just like... the concept of "a name for a process"... the name can optional sure, but it's not a separate entity from the process itself.
01:45:38 <ihope> Well, that's pretty much what a service is, really.
01:45:54 <ihope> Except that you can attach multiple services to a process.
01:45:59 <SevenInchBread> bsmntbombdood, what I described is the desktop metaphor... it's also a good bedtime story and makes for a damn good sexual joke. Is that an apple or a red fruit?
01:46:06 <ihope> And not every process needs a service at all.
01:46:29 <ihope> How what would work?
01:46:51 <SevenInchBread> having multiple names for a process... each doing something different.
01:47:16 <ihope> When the service is invoked, the process is told what service it was.
01:48:10 <ihope> Well, I should get to bed. There's school tomorrow.
01:48:23 <SevenInchBread> ...I think I'd just like there to be a persistent name for processes. A service does this nicely... but then how difficult does it become to create a new name for your process?
01:48:54 <ihope> [And then somebody yells "Let's get going!", and "Walking On Sunshine" by Katrina and the Waves starts playing.]
01:49:57 <SevenInchBread> bsmntbombdood, the weird apple-red-fruit thing was referring to the notion of identity.
01:50:07 <SevenInchBread> Something is only OO if we decide to refer to it as such.
01:50:12 <ihope> SevenInchBread: the process requests permission to use that service name, something grants permission, and the process registers that service name.
01:50:30 <ihope> Or the process already has permission, in which case it simply registers it.
01:56:05 <lament> booting is for rewimps
02:02:34 <ihope> SevenInchBread: services aren't preserved when rebooting, but permissions may be.
02:03:24 <ihope> See "'default' permissions".
02:03:38 <ihope> SevenInchBread: well, indeed, services could be preserved when rebooting.
02:03:49 <ihope> But that would mean processes being preserved when rebooting.
02:03:55 <ihope> We all know that's iffy.
02:07:29 <ihope> "Default" permissions are stored in along with the executable, somehow, and therefore preserved when rebooting.
02:08:22 <ihope> Record-based filesystems?
02:08:38 <SevenInchBread> yeah... instead of storing files as streams you store them as hash-table-like things
02:11:15 <ihope> What's this about hash tables?
02:11:30 <SevenInchBread> I think it makes a shitload more sense than cramming all the info into a stream and having to parse out all the data
02:12:09 <ihope> So the filesystem handler does all the parsing instead of the client?
02:13:01 <SevenInchBread> eh... sorta kinda.... depends on how its stored on the disc
02:13:17 <ihope> Depends on how it's stored on the disk?
02:13:44 <SevenInchBread> yeah... instead of using bytes to delimit record entries you can use some physical property of the disk sector or something...
02:13:56 <SevenInchBread> but, generally speaking, the filesystem does all the work for you.
02:14:49 <ihope> We could always have a "hash table handler".
02:15:48 <SevenInchBread> there's also sequantial access... which works something like a linked list instead of a hash table
02:16:07 <SevenInchBread> so... data that's split up into lines could give each line a record.
02:16:45 <ihope> Time for me to go to bed.
02:36:15 -!- ihope has quit (Connection timed out).
03:03:20 <Pikhq> I friggin' hate glibc.
03:03:29 <Pikhq> frodo:/source/glibc-build# /source/glibc-2.5/configure --prefix=/usr --disable-profile --enable-addons --enable-kernel=2.6.0 --libexecdir=/usr/lib/glibc
03:03:30 <Pikhq> configure: error: cannot find install-sh or install.sh in scripts /scripts
03:16:42 <Pikhq> I'm making a distro. What else am I supposed to do?
03:17:16 <Pikhq> Actually, that's a pretty decent thought.
03:20:58 <Pikhq> Maybe make this sucker use really, *really* small packages.
03:22:29 <bsmntbombdood> use "make the lazy bastards code it themselves"libc
03:25:59 <Pikhq> I'm using buildroot to create the initial root tree. . .
03:26:25 <Pikhq> I'll then use the buildroot environment to compile my own packages, overwriting everything eventually.
03:50:28 -!- SevenInchBread has quit (Read error: 110 (Connection timed out)).
05:02:02 -!- ShadowHntr has quit ("End of line.").
05:22:19 -!- oerjan has quit ("ZZZ").
07:50:27 -!- wooby has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:04 -!- Sgeo has quit ("Ex-Chat").
08:30:55 -!- nazgjunk has joined.
08:33:42 <Sukoshi> How about a cellular automata VM?
09:34:19 -!- sebbu has joined.
10:36:27 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
10:36:55 -!- nazgjunk has joined.
10:48:52 -!- puzzlet has joined.
10:59:10 -!- sebbu2 has joined.
11:09:00 -!- ihope_ has joined.
11:09:20 -!- ihope_ has changed nick to ihope.
11:18:41 -!- sebbu has quit (Read error: 110 (Connection timed out)).
11:18:41 -!- sebbu2 has changed nick to sebbu.
13:11:04 -!- jix__ has joined.
13:20:46 -!- jix__ has changed nick to jix.
13:24:52 -!- jix has changed nick to jix____.
13:27:09 -!- jix____ has changed nick to jix.
15:09:53 -!- falseep has joined.
15:18:54 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
15:19:16 -!- nazgjunk has joined.
15:40:21 -!- falseep has quit (Read error: 104 (Connection reset by peer)).
16:11:09 -!- jix__ has joined.
16:19:24 -!- jix has quit (Read error: 110 (Connection timed out)).
16:41:36 -!- jix__ has changed nick to jix.
17:19:19 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
17:19:53 -!- nazgjunk has joined.
18:01:54 <Sukoshi> bsmntbombdood: Dunno, we'd have to reduce every simple cellularo automota to VM commands.
18:13:13 -!- jix has quit (Read error: 104 (Connection reset by peer)).
18:16:02 -!- jix__ has joined.
18:24:41 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
18:31:07 -!- calamari has joined.
18:33:50 -!- ShadowHntr has joined.
18:37:43 -!- digital_me has joined.
19:16:46 -!- atrapado has joined.
19:25:08 -!- jix__ has changed nick to jix.
19:55:59 -!- calamari has quit ("Leaving").
20:32:02 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
20:33:31 -!- nazgjunk has joined.
20:42:49 -!- Sgeo has joined.
20:50:38 -!- calamari has joined.
20:58:22 -!- ShadowHntr has quit ("End of line.").
21:01:43 -!- nazgjunk has quit (Dead socket).
21:02:37 -!- nazgjunk has joined.
21:06:32 -!- atrapado has quit (Read error: 60 (Operation timed out)).
21:06:43 -!- dub_ has joined.
21:07:09 -!- dub_ has changed nick to atrapado.
21:11:54 -!- ihope has joined.
21:12:36 <ihope> I be an IRC pirate!
21:15:44 -!- ihope_ has joined.
21:16:04 <ihope_> I be a disconnected IRC pirate!
21:21:22 <ihope_> Anyway, I half-officially declare the name of "the operating system project" to be Abrasax,
21:21:45 <ihope_> We could have trademark issues with Sophia.
21:22:05 <ihope_> And the half-official IRC channel is #abrasax.
21:25:19 <ihope_> http://groups.google.com/group/AbraSophia
21:26:18 * GregorR nods as if he has an effing clue what's going on.
21:26:33 <ihope_> It's an operating system project,
21:33:04 -!- ihope has quit (Read error: 110 (Connection timed out)).
21:51:51 <ihope_> I think I'll be the one to do all the "dirty work" of getting the basic bit of kernel down.
22:22:23 -!- dub_ has joined.
22:23:43 -!- atrapado has quit (Nick collision from services.).
22:23:46 -!- dub_ has changed nick to atrapado.
22:36:48 <ihope_> Wow. A lot happened on March 26, according to the logs.
22:40:08 <ihope_> I love how Google can do things like "0x4000 bytes in kilobytes"
22:42:18 <ihope_> "# define EXT_C(sym) _ ## sym"
22:42:20 <bsmntbombdood> google will end up as a natural language interpreter
22:42:33 <ihope_> Does that _ ## mean anything special to the preprocessor?
22:43:12 <bsmntbombdood> ## is either concatenation or turning into a string
22:43:37 <ihope_> What's it do in this case?
22:45:20 <ihope_> So what's "movl $(stack + STACK_SIZE), %esp" do?
22:47:18 <bsmntbombdood> I'm guessing it puts the address of the top of the stack in esp
23:06:57 -!- nazgjunk has quit ("Bi-la Kaifa").
23:07:39 -!- oerjan has joined.
23:19:48 <Sukoshi> Gah. I'm finding ObjC less and less attractive.
23:20:08 <oerjan> ah, the end of initial infatuation
23:20:29 <Sukoshi> Well, I had thought that ObjC was a simple object layer wrapped around C.
23:20:45 <Sukoshi> The dynamic runtime stuff is interesting ... but it's said to be slow.
23:21:17 <Sukoshi> Why doesen't someone implement a generic function based OOP extension to C? It would be easier to code than a message-passing one.
23:22:18 <Sukoshi> Now I'm paralyzed between Java and D for a new project. I need GregorR to shower me with D's advantages once more.
23:23:25 -!- nazgjunk has joined.
23:24:42 <Sukoshi> Isn't GregorR our resident parser god anyways?
23:25:51 <Sukoshi> Well, if I had the experience with writing language parsers, I'd like to create a simple superset of C for generic functions.
23:26:35 <oerjan> C has dirty corners in its parsing.
23:26:46 <Sukoshi> Well, this would parse it into straight C.
23:27:40 <Sukoshi> That would be an interesting project in fact. A light OOP extension to C without major additions to the language and huge stdlibs.
23:30:41 <Sukoshi> Well, here's how I see it:
23:31:01 <Sukoshi> You can create classes as a set of slots. It'll be done in the same syntax as a struct, except we'll call it object.
23:31:28 <Sukoshi> (So you have something like ``object hi { int a; char b; } ''
23:32:59 <Sukoshi> You then define a method using a syntax like ``void display (hi obj, int x, int y)'' and then you can add_generic() a function pointer.
23:33:14 <Sukoshi> *function pointer to display()
23:33:41 <Sukoshi> .... We don't need a parser for this ... do we?
23:34:06 <Sukoshi> Oh but we have to grab the method signature somehow.
23:34:33 <Sukoshi> Well, when you use call_generic(display), it'll have to lookup display.
23:34:45 <bsmntbombdood> that is practically the same algorithm as objc message passing
23:35:01 <Sukoshi> But it avoids the annoying dynamic runtime of ObjC.
23:35:18 <Sukoshi> And based on the parameters you give call_generic, it needs to be able to match the correct function.
23:35:24 <Sukoshi> I need to pull up my C reference, hold on.
23:37:17 <Sukoshi> But the difference in ObjC is the whole business with id.
23:38:07 <bsmntbombdood> and running through a linked list to find a method doesn't seem very slow
23:38:19 <Sukoshi> It is, almost all the spare links on ObjC say so.
23:38:38 <Sukoshi> They all advise keeping method invocations to a minimum because it slows the program down.
23:38:58 <bsmntbombdood> think about it [obj message] -- obj->isa, hash table lookup, obj->isa->super, hash table lookup, obj->isa->super->super...
23:39:14 <Sukoshi> That's what the weblinkse I've read say *shrug*.
23:41:52 <bsmntbombdood> all a method invocation needs to do is a lookup in a hash table
23:42:04 <bsmntbombdood> maybe a few hash tables if the inheritance is deep
23:43:06 <Sukoshi> The ObjC runtime doesen't type check at compile time for message passing, in case you want to change stuff later.
23:43:19 <Sukoshi> Which is part of what leads to the slowdown.
23:45:47 <bsmntbombdood> looking up a method in objc is the same as looking up a variable in a interpreted language
23:47:01 <Sukoshi> I'm looking for something just a tad bit slower than C.
23:47:24 <Sukoshi> Google says that Java is faster.
23:47:47 <Sukoshi> Java is by no means slow if programmed correctly, you know.
23:47:55 <Sukoshi> And the sheer amount of work done on the runtime is incredible.
23:48:10 <Sukoshi> I think JVM, SqueakVM, and ParrotVM are the most worked on in this respect.
23:48:42 <Sukoshi> The Java runtime has been optimized incredibly.
23:49:13 <Sukoshi> I mean if you think about it logically, people (for good or for ill) have been putting work into the runtime for 10 years.
23:49:36 <Sukoshi> But it hasn't been continually developed is the problem.
23:50:10 <Sukoshi> I don't think you see many changes to the g++ code on a daily basis.
00:02:54 -!- ShadowHntr has joined.
00:04:37 -!- sebbu has quit ("@+").
00:06:28 -!- ShadowHntr has quit (Client Quit).
00:09:37 <Sukoshi> Any people willing to help with the parser?
00:21:46 <Sukoshi> But yacc isn't a person :P
00:23:07 <bsmntbombdood> o speed the messaging process, the runtime system caches the selectors and addresses of methods as they are used
00:23:40 <bsmntbombdood> so searching through the superclasses only happens once
00:24:02 <Sukoshi> I guess we should write sample code before we judge.
00:27:37 -!- atrapado has quit (Read error: 110 (Connection timed out)).
00:35:36 <ihope_> OSKit sounds like a useful thing.
00:41:16 <bsmntbombdood> http://svn.gna.org/viewcvs/gnustep/libs/libobjc/trunk/objc/
00:52:39 -!- EgoBot has quit (K-lined).
00:52:40 -!- GregorR has quit (K-lined).
00:54:15 <ihope_> ...Uh, did GregorR just get K-lined?
00:55:11 <Sukoshi> That's one of my problems. ObjC has almost no development going in it.
01:03:53 -!- calamari has quit ("Leaving").
01:13:23 <bsmntbombdood> it would be nice if instance variables were dynamic like messages are
01:19:24 <bsmntbombdood> You can't access instance variables if the object is typed id
01:19:26 <bsmntbombdood> http://svn.gna.org/viewcvs/gnustep/libs/libobjc/trunk/sendmsg.c?rev=22341&view=auto
01:20:47 <Sukoshi> Well that's because it's a class object then.
01:26:25 <bsmntbombdood> I think the message sending function looks up the method from a linked list of methods
01:28:11 <Sukoshi> I would hope so, because you can make a tree based on parameters.
01:29:10 <Sukoshi> Wait. Nevermind. I was thinking of the system I had in mind.
01:29:36 <bsmntbombdood> objc_class has both a objc_method_list*, a aaray, and a sarray*, a hash table/sparse array
01:30:52 <Sukoshi> So, are we using libobjc from GCC or GNUStep ?
01:31:14 <Sukoshi> Are we using Foundation from GNUStep or just subclassing from libobjc?
01:32:53 <Sukoshi> Are we going to use Foundation stuff?
01:33:56 <Sukoshi> Now. Cellular Automata VM?
01:35:07 <oerjan> i assume you mean Virtual Machine rather than Virtual Memory?
01:40:44 <Sukoshi> We'd have to create a set of assembler commands that can define cellular automata.
01:41:11 * oerjan ponders adding extra time dimensions to ALPACA.
01:41:31 <ihope_> I don't think cellular automata are imperative.
01:42:15 <ihope_> Just build a universal constructor and have the program be instructions to it.
01:42:18 <oerjan> (and space dimensions too, of course)
01:43:20 * oerjan envisions an ALPACA bytecode would do.
01:44:04 <oerjan> the cellular automaton description language
01:44:24 <ihope_> http://esoteric.voxelperfect.net/wiki/ALPACA
01:44:55 <Sukoshi> Wait. Is this a practical project? :P
01:45:12 <oerjan> ALPACA has already been implemented.
01:45:13 <ihope_> Once "Game of Life" hardware becomes common, you'll really want that constructor stuff.
01:45:22 <ihope_> (And "once" is just my fancy way of saying "if".)
01:45:38 <oerjan> i guess it could be a practical project.
01:45:52 <Sukoshi> That's a fancy way of saying no, isn't it?
01:47:41 * oerjan generally says no to projects. Or at least his hands do.
01:49:10 <bsmntbombdood> I wonder what the best way to implement a sparse array is
01:49:22 -!- calamari has joined.
01:52:39 <oerjan> insert "balanced" at appropriate spot.
01:52:59 <oerjan> then remove "O(n) worst".
01:53:55 -!- ShadowHntr has joined.
01:54:08 <oerjan> which they probably would be if read from a file. But if you know they are sorted you can use a different algorithm.
01:55:30 <oerjan> making the tree balanced immediately.
01:55:45 <ihope_> (I saw the accidental "ly" before I sent that, but I decided to leave it in.)
01:55:58 <ihope_> Of course, it's about Abrasax, not this, so... yah.
01:58:42 <oerjan> recursively: make 2^n-1 first elements into one subtree, then read middle, then 2^n-1 next into another, then put together.
02:01:19 -!- calamari has quit ("Leaving").
02:03:18 <oerjan> if you are going to worry about log n, then you need to read serious literature, not ask on IRC. :)
02:03:48 <oerjan> unless you find a channel with the real experts.
02:04:48 <oerjan> chances are at that level you need to worry about things like cache behavior.
02:05:00 -!- graue has joined.
02:05:30 <ihope_> Did you hear about GregorR getting K-lined?
02:05:31 <graue> oh, i wondered why you were incredulous
02:05:46 <ihope_> What's this about incredulity?
02:06:36 <ihope_> graue: what's this about incredulity?
02:06:50 <graue> since you said hello with a question mark, i thought you were like "what?! GRAUE is here?! how can this be!!!"
02:07:01 <Pikhq> Gregor got K-lined?1?
02:07:06 <graue> also, i need to learn to use my irc client, because i just answered you in a different channel
02:07:13 <oerjan> Ave Graue, Morituri Te Salutant!
02:07:21 <oerjan> or something like that
02:07:40 <graue> why'd that happen?
02:07:47 <ihope_> Apparently it was for spamming.
02:08:21 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
02:09:05 <ihope_> Ah, indeed, an EgoBot bug may cause spamming.
02:09:28 <ihope_> Rather, may have caused.
02:10:56 <bsmntbombdood> "Broken client, apparently .. not sure the details", "I'm speculating, but usually that reason means it was disconnecting/reconnecting/etc.. or joining/rejoining/etc.."
02:12:12 <ihope_> Apparently you got a better answer than I did.
02:12:29 <oerjan> but there were no disconnections before the k-line.
02:13:32 <ihope_> That'd be join/part stuff, then, which EgoBot doesn't do.
02:13:46 <graue> you guys have too much free time.
02:13:58 <graue> freenode people aren't arbitrary
02:14:04 <graue> i'm sure gregor can work it out with them
02:14:18 <ihope_> Well, the freenode person did say "usually".
02:14:28 <ihope_> Would the freenode people not being arbitrary mean it wasn't bot spam that caused this?
02:16:24 <ihope_> But if GregorR's been K-lined for EgoBot, I'm surprised you haven't been K-lined for bsmnt_bot or something. :-)
02:16:54 <Pikhq> ihope_: Not been reported for spamming.
02:17:03 <Pikhq> bsmntbombdood: Nor was EgoBot.
02:17:21 <ihope_> ~exec while 1: __import__("time").sleep(2); self.raw("PRIVMSG ihope_ :Ya!")
02:17:41 <bsmnt_bot> 0: 'while 1: __import__("time").sleep(2); self.raw("PRIVMSG ihope_ :Ya!")', 18.34 seconds
02:17:52 <ihope_> Tell me how to kill it, will you?
02:18:29 <ihope_> I have UNFILTERED set.
02:19:13 <ihope_> ~exec while 1: __import__("time").sleep(2); self.raw("PRIVMSG ihope_ :Ya!")
02:19:27 <bsmntbombdood> :orwell.freenode.net 505 bsmnt_bot :Private messages from unregistered users are currently blocked due to spam problems, but you can always message a staffer. Please register! ( http://freenode.net/faq.shtml#privmsg )
02:19:46 <ihope_> Yeah, I'm thinking it's definitely the UNFILTERED.
02:25:35 <Sukoshi> In Curses, if you use mvwaddch, does it go to the absolute y and x, or relative to the origin of the window?
02:50:10 -!- ihope_ has quit (Connection timed out).
02:53:39 <oerjan> The routines prefixed with mv require a y and x coordinate to move to before performing the appropriate action. The mv routines imply a call to move before the call to the other routine. The coordinate y always refers to the row (of the window), and x always refers to the column. The upper left-hand corner is always (0,0), not (1,1).
03:40:19 <bsmntbombdood> We should design an esolang for human-human communication
03:43:03 -!- Pikhq has quit (Read error: 60 (Operation timed out)).
03:55:53 -!- bsmntbombdood has changed nick to xor.
04:08:21 -!- xor has changed nick to bsmntbombdood.
04:11:01 -!- Sukoshi has left (?).
04:56:03 -!- Bigcheesegs has joined.
05:14:09 -!- graue has quit (Read error: 110 (Connection timed out)).
05:46:58 -!- oerjan has quit ("leaving").
05:51:22 -!- digital_me has quit (Read error: 60 (Operation timed out)).
07:25:21 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
07:38:59 -!- GreaseMonkey has joined.
07:54:50 -!- maverickbna has joined.
07:55:22 -!- maverickbna has quit (Client Quit).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:12:59 -!- ShadowHntr has quit (Read error: 110 (Connection timed out)).
08:40:19 -!- GregorR-Foo has joined.
08:43:23 <GregorR-Foo> Idonno ... apparently spamming. I looked through all the logs for bots-gone-crazy, and there are none, so what the bork :(
08:43:36 <GregorR-Foo> All my logs suggest that I was not spamming.
08:43:59 <GreaseMonkey> hmm... what line did you get put onto? z-line? g-line?
08:44:45 <GreaseMonkey> if it was from more than a fortnight before you got the ban, someone hates you
08:49:08 <GreaseMonkey> actually: z-line = ip-block, g-line = ban-on-login
08:51:46 <GregorR-Foo> I don't know, that's what's so confusing - none of my logs have the actual K-line.
08:51:59 <GregorR-Foo> Just "disconnection", then upon reconnecting it says I'm K-lined.
08:52:30 <GreaseMonkey> i would advise a raw-log for next time something stupid happens
08:54:11 <GregorR-Foo> I doubt highly that the small area of messages that that would catch that I don't currently catch would help.
08:54:51 <GreaseMonkey> perhaps: ERROR :You have been K-Lined by renfield
08:55:17 <GreaseMonkey> (i picked renfield cos he's the worst ircop on bluehell)
08:56:26 <GregorR-Foo> The response will probably be: "Idonno, we don't log it. You'll be allowed to connect in seven years."
08:56:52 <GreaseMonkey> otherwise they should jack hyperion up the ass and switch to unreal
09:35:04 -!- sebbu has joined.
09:54:30 -!- GregorR has joined.
09:57:31 -!- Sephh has joined.
09:59:43 -!- Bigcheesegs has quit (Read error: 113 (No route to host)).
10:41:48 -!- meatmanek has quit (Connection timed out).
11:01:20 -!- GreaseMonkey has quit ("YAYS! I achieved something cool today!").
11:02:11 -!- meatmanek has joined.
11:04:50 -!- Pikhq has joined.
11:14:47 -!- ihope_ has joined.
11:36:01 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
11:36:26 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
11:36:49 -!- nazgjunk has joined.
11:44:18 -!- jix__ has joined.
12:13:39 -!- ihope_ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
14:08:39 -!- nazgjunk has quit ("Bi-la Kaifa").
14:10:46 -!- nazgjunk has joined.
14:59:25 -!- sebbu has quit (Connection timed out).
15:07:11 -!- sebbu has joined.
15:29:09 -!- CRathman has joined.
15:47:11 -!- sebbu has quit ("reboot").
15:49:32 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
15:49:58 -!- nazgjunk has joined.
16:04:06 -!- sebbu has joined.
16:20:42 -!- jix__ has quit (Read error: 110 (Connection timed out)).
16:21:17 -!- jix__ has joined.
17:23:47 -!- Sukoshi has joined.
17:26:27 -!- jix__ has changed nick to jix.
17:42:03 -!- CRathman has quit ("ChatZilla 0.9.78 [Firefox 2.0.0.3/2007030919]").
17:46:14 -!- sebbu2 has joined.
17:53:19 -!- sebbu has quit (Read error: 60 (Operation timed out)).
18:21:19 -!- sebbu2 has quit (Connection timed out).
18:25:59 <bsmntbombdood> GregorR: I asked a staff they said it was probably spamming/client problems
18:28:39 <GregorR> bsmntbombdood: I also asked a staff (shocker)
18:36:14 -!- nazgjunk has quit (Client Quit).
18:36:45 -!- sebbu has joined.
18:38:16 -!- nazgjunk has joined.
19:00:31 -!- oerjan has joined.
19:35:02 -!- Pikhq has joined.
19:36:39 -!- sebbu2 has joined.
19:39:33 -!- atrapado has joined.
19:55:18 -!- sebbu has quit (Connection timed out).
20:25:05 -!- GregorR-Foo has quit ("leaving").
20:33:23 -!- sebbu2 has changed nick to sebbu.
20:50:48 -!- Sgeo has joined.
21:34:42 -!- nazgjunk has quit ("Bi-la Kaifa").
21:38:02 -!- nazgjunk has joined.
21:46:03 <Sukoshi> Did you see my ideas for an OO extension to C?
21:46:34 <GregorR> I was K-lined for no good reason, so I haven't seen anything in a while (I didn't log my other persona)
21:47:17 <Sephh> A usefull OO extention to C?
21:47:20 <Sukoshi> I've refined my idea. So here it is, it's a minimal extension to C to support OOP using generic functions.
21:47:34 -!- Sephh has changed nick to Bigcheesegs.
21:47:50 <Sukoshi> It adds 4 keywords to the language, ``generic'', ``specific'', ``class'', and ``continues''.
21:48:06 <Sukoshi> If you're familiar with the concept of generic function OOP....
21:48:22 * GregorR will read the log, must leave now.
21:48:27 <Sukoshi> ``generic'' defines a function generic ( generic void display(a, b); )
21:48:54 <Sukoshi> ``specific'' specialized on the generic ( specific void display (int a, char b); specific void display (int a, int b); )
21:49:19 <Sukoshi> ``class'' declares a class in struct form ( class Player { int xpos, ypos; } )
21:49:48 <Sukoshi> ``continues'' designates that the specialized generic function calls the next-less-specific specialized method for the generic it is assosciated too.
21:50:08 <Sukoshi> Very simple, and not very hard to implement, if only I knew the GCC parser-foo.
21:50:53 <Bigcheesegs> So is there a purpose other than just trying to create it? we already have c++ :P
21:51:07 <Sukoshi> Do you know what you're talking about?
21:51:27 <Sukoshi> C++ follows an incredibly different object model, is very unclean, and favors its own big/bulky style.
21:51:46 <Bigcheesegs> I don't find it that way, I think it's damn sexy.
21:52:25 <Sukoshi> You may like C++ and its ``Do Everything My Way or NULL way'' philosophy, but this is designed to be a very small extension to C.
21:52:47 <Sukoshi> And the C++ object model is message passing, so it has to have all this annoying stuff like polymorphism/operator overloading.
21:53:16 <Sukoshi> Something a C coder can pick up in a few minutes and work with, like everything else in the C language.
21:55:49 -!- crathman has joined.
21:56:43 -!- Sukoshi has left (?).
22:12:05 -!- Sukoshi has joined.
22:30:57 -!- nazgjunk has quit ("Bi-la Kaifa").
22:32:23 -!- nazgjunk has joined.
22:32:32 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
22:39:31 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:49:56 -!- nazgjunk has joined.
22:54:12 -!- ihope has joined.
23:05:00 -!- nazgjunk has left (?).
23:17:39 <Sukoshi> bsmntbombdood: Not all that difficult.
23:19:18 <Sukoshi> bsmntbombdood: Classes are just structs with type information. Generic methods are determined and then less-specific behavior is inlined if the function is ``continues'', and these are all kept either in a virtual method table or a tree that matches based on parameter.
23:19:55 <Sukoshi> Oh, I think we need an ``inherits'' keyword too, to subclass.
23:20:28 <Sukoshi> Subclassing basically copies the fields of the super-class's struct directly into the derived class.
23:20:40 <bsmntbombdood> so with a generic call, the compiler looks up the correct method based on the objects' type?
23:21:16 <Sukoshi> The runtime has to be able to keep type information.
23:21:29 <Sukoshi> Well, actually no it doesen't.
23:21:52 <Sukoshi> We can parse it so that arguments to generics are wrapped in structs that contain type information.
23:22:16 <bsmntbombdood> defining a method uses some kind of name mangling, then at compile time method(object) is replaced with <object type>_method(object)
23:23:13 <oerjan> not always possible to do at compile time
23:23:55 <oerjan> because the actual object might be of a subclass.
23:25:05 <bsmntbombdood> if you type an object as one of its superclasses, you can only call methods defined in its superclass
23:25:38 <oerjan> sure, but the actual version of the method may be overridden by the subclass.
23:28:57 <Sukoshi> Remember, this is generic functions based. Subclasses don't override methods. If you mean it defines a wholly different specialization, then, so ?
23:29:06 -!- sebbu has quit ("@+").
23:30:10 <oerjan> however, the specialization depends on the actual runtime class, not the compile time class.
23:31:32 <oerjan> so it requires runtime information to select the right specialization
23:31:53 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").
23:35:41 <Sukoshi> Inheritance only pulls in fields of the parent struct.
23:36:43 <bsmntbombdood> Well there's no point if it requires runtime support
23:38:11 <Sukoshi> Unless we restrict it away from runtime changing classes.
23:38:21 <Sukoshi> So your classes can't be dynamic.
23:38:50 <Sukoshi> Specifying classes during runtime == dynamic.
23:39:32 <Sukoshi> Then it should be fine still.
23:40:09 <oerjan> wait a minute. do you mean that a subclass object cannot be passed as an object of the superclass?
23:41:01 <Sukoshi> Haven't you played with CLOS, oerjan ?
23:41:24 <oerjan> but common lisp is dynamically typed...
23:41:28 <Sukoshi> Quick overview of a generic method system.
23:41:49 <Sukoshi> Classes only hold slots, basically struct fields.
23:42:16 <Sukoshi> Generic functions are defined that only define the number of arguments (and in this case the return type) of a function.
23:43:10 <Sukoshi> After, you define specific implementations of the generic function based on different types. In this case, if you define that specialized function with the keyword ``continues'' it automatically calls the assosciated specialization for the next-less-specific specialization.
23:43:47 <Sukoshi> To simplify things, I want no multiple inheritance, because I can see maybe only a few rare cases where multiple inheritance works, and it's cleaner to simulate it with abstract classes.
23:43:53 <oerjan> all of this makes perfect sense with dynamical typing, but not with static typing.
23:44:09 <Sukoshi> But why wouldn't it work with static typing?
23:45:10 <oerjan> well it would work like haskell typeclasses, but not like an object-oriented system.
23:45:16 -!- atrapado has quit ("a tra pa da").
23:45:56 <Sukoshi> But when using C, 9/10 the only reason you need OOP is to manage state and to abstract away method calls to superclasses.
23:46:02 <Sukoshi> This creates that framework with a minimum of overhead and a minimum of language extension.
23:46:34 <oerjan> because with dynamical typing, you can pass a subclass object and treating it like an overridden superclass object.
23:47:20 <oerjan> so common lisp _behaves_ as if subclasses can override, although technically they don't.
23:48:12 <oerjan> (at least that is my guess from your description)
23:49:00 <Sukoshi> That's the beauty of the system.
23:49:40 <oerjan> indeed, not without passing around some of the same information at runtime that CL needs.
23:50:14 <Sukoshi> The overlap of the generalized-method framework simulates operator overloading and polymorphism.
23:50:14 <Sukoshi> While actually abstracting the implementation to make it much more trivial to implement.
23:51:52 -!- bsmntbombdood has changed nick to xor.
23:52:29 <Sukoshi> Which things? I'll be wrapping my head around magnetization vectors while y'all talk.
23:54:33 <oerjan> essentially runtime type information. since this is multiple dispatch, the class struct doesn't contain enough information.
00:04:55 <Sukoshi> Well, we can wrap the extra info needed, no?
00:05:40 <oerjan> just a tag for the actual class, somehow, i guess.
00:20:25 -!- GreaseMonkey has joined.
00:25:37 -!- oerjan has quit ("Reboot").
00:27:32 -!- oerjan has joined.
00:37:47 <xor> but that's runtime
00:42:21 <Sukoshi> But they can easily be hardcoded into the source.
00:42:33 <Sukoshi> Oh by the way, any Pascal users?
00:42:51 * oerjan gets the impression Sukoshi hasn't understood anything we were saying
00:43:25 <lament> lots of people used pascal. They're all dead now.
00:44:04 <Sukoshi> Cap guns don't hurt, lament.
00:45:51 <Sukoshi> The sound-cap guns, I mean.
00:46:23 * lament brings in the 500W amplifier
00:46:46 <Sukoshi> How is Pascal compared to C, oerjan ?
00:47:22 <oerjan> common lisp is essentially duck typed. objects that implement the same generic function can be mixed and matched. essentially, an object of a subclass can be treated as a member of the superclass, and passed to functions that expect the superclass, while still using the subclass specialization for any calls to the generic function.
00:48:28 <Sukoshi> If I understand what you mean, then no, this will not have that feature.
00:48:46 <Sukoshi> Methods can *only* be executed linearly up the specific tree. No cast-avoiding.
00:49:19 <GregorR> http://www.codu.org/plof/ :-P
00:49:51 <oerjan> so in other words, in your model the class is an attribute of the variable, not of the object.
00:50:18 <Sukoshi> The concept ``class'' is just a container.
00:50:32 <Sukoshi> Unlike a struct, it contains some special type information. But that's all.
01:05:03 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)).
01:09:53 -!- xor has quit (Read error: 104 (Connection reset by peer)).
01:11:47 -!- GregorR_ has joined.
01:11:48 -!- GregorR has quit (Read error: 104 (Connection reset by peer)).
01:12:01 -!- calamari has joined.
01:14:18 -!- bsmntbombdood has joined.
01:29:32 -!- GregorR_ has changed nick to GregorR.
01:32:05 <ihope> GregorR: has anybody said anything about the K-line?
01:32:56 <GregorR> ihope: Yeah, I got a response, but the person who responded said that the person who K-lined me wasn't active at the time.
01:33:22 <ihope> What was it for, exactly?
01:33:28 <ihope> Did EgoBot go insane?
01:33:35 <GregorR> ihope: Yeah, I got a response, but the person who responded said that the person who K-lined me wasn't active at the time.
01:33:42 <GregorR> Do I have to change my emphasis a bit?
01:33:53 <GregorR> ihope: Yeah, I got a response, but the person who responded said that /the person who K-lined me wasn't active at the time/.
01:34:03 <GregorR> Read: He didn't know why I was K-lined.
01:34:16 <ihope> The person who K-lined you, you mean?
01:34:29 <GregorR> I haven't talked to the person who K-lined me.
01:34:53 <ihope> Do you know who that person is?
01:41:28 <Pikhq> You mean objects. :p
01:42:29 * ihope summons CakeProphet
01:42:31 <GregorR> Pikhq: "Prototype" is a term which specifies a class of objects, so my terminology was perfectly accurate :P
01:42:50 <GreaseMonkey> var cow = [ age = 3, speak = { print("Moo"); }, shoot = { printf("MOOOOO! *splats*"); } ];
01:44:42 <Pikhq> var Bessy = new(cow);
01:45:43 <Pikhq> Bessy.age = 5;Bessy.speak = { print("Mooooo!") };Bessy.shoot = { print("I'm a milk cow");return(1); };
01:46:21 <GregorR> You might want to println, and you definitely need to learn the new colon-ish syntax for functions and objects :P
01:47:07 <ihope> Semicolons are also nice, as are dashes.
01:47:14 <Pikhq> GregorR: I'm obviously used to Plof 1. ;)
01:47:19 <ihope> Dashes are wonderful. Commas are annoying.
01:47:29 <GregorR> Plof supports a , operator :P
01:49:20 <ihope> Does it form tuples?
01:49:45 <Pikhq> I don't think a tuple is even a datatype in Plof.
01:49:55 <GregorR> There are no builtin tuples. I tried to minimize the number of builtin types as much as is possible with a prototype-based object system.
01:50:33 <GregorR> The ',' operator does exactly the same thing as the ';' operator, but at a lower precedence.
01:50:58 <oerjan> higher, don't you mean?
01:51:42 <GregorR> I always forget which term is used to mean it falls lower on the tree :P
01:52:36 <GregorR> It's more useful for separating parameters/arguments :P
01:58:19 * Pikhq scraps pretty much all plans for his distro, opting to instead make it a Slackware fork. . .
01:58:23 -!- calamari has quit ("Leaving").
02:01:18 <Pikhq> GregorR: I'm redoing the Slackware package manager. . . That enough work for you?
02:02:05 <Pikhq> I'm going to see exactly how many branches UnionFS can handle. . .
02:05:06 -!- SevenInchBread has joined.
02:05:07 <Pikhq> Because my packaging system resembles Slax, I'll try to see what use I can put some of their scripts to. . .
02:07:12 <Pikhq> . . . Fine, I must confess. . .
02:07:23 <Pikhq> I'm just using Slax modules, except more. . . Modular.
02:07:51 <GregorR> I forgot my own package's name X-P
02:07:59 <GregorR> SLS = Softlanding Linux System X-P
02:08:06 <Pikhq> I'll use that later on.
02:08:27 <ihope> That's one hour minus 37 minutes minus 22 seconds, or 22 minutes and 34 seconds.
02:08:38 <ihope> So that was a 22-minute-and-34-second summons.
02:08:45 <ihope> SevenInchBread: HELLO
02:09:03 <Pikhq> GregorR: Would SPS happen to work well with the concept of each package just getting unified with /?
02:09:04 <SevenInchBread> I've gotten are "format version - machine architecture"
02:09:07 <Pikhq> SevenInchBread: Try ELF.
02:09:12 <oerjan> ihope: When summoning, always remember to sacrifice the chicken.
02:09:23 <GregorR> Pikhq: Not really, since the whole idea is it's different per user/environment.
02:09:30 <ihope> ELF using a certain interrupt for system calls?
02:09:34 <ihope> oerjan: ah, right, forgot that.
02:09:35 <GregorR> Pikhq: Maybe if that was done by a user-configurable FUSE FS.
02:10:00 <SevenInchBread> doesn't the format need our system calls in it? Or can we just use the ones that ELF use and map them to our devices.
02:10:01 <Pikhq> GregorR: Well, I *could* use the FUSE versions of UnionFS. . .
02:10:16 <Pikhq> SevenInchBread: Actually, I don't think ELF specifies system calls.
02:10:27 <Pikhq> It just specifies the actual *format*. ;)
02:10:39 <ihope> SevenInchBread: can I call you Sev since my tab completion isn't working?
02:10:54 <ihope> And interrupts for system calls?
02:11:29 <ihope> To do a system call, put certain stuff in certain registers, then do the instruction "int".
02:11:30 <Pikhq> GregorR: Hmm. I need to see some details on the SPS internals. . .
02:11:34 <SevenInchBread> hmmm... so... is it possible to define a bunch of "hooks" that we can use all throughout the operating system?
02:11:35 <ihope> Except we need an interrupt number.
02:11:43 <ihope> Sev: to do whatnow?
02:11:46 <SevenInchBread> ...I know static languages are kind of weird with stuff like that...
02:11:58 <Pikhq> SevenInchBread: That would be called 'system calls'.
02:12:05 <SevenInchBread> basically a list of programs (I'm assuming executables or possibly processes...) to summon up in a certain situation.
02:12:24 <ihope> Programs to summon up in a certain situation?
02:12:41 <Pikhq> Presumably you mean. . . functions?
02:13:36 <ihope> Interactions with the kernel are pretty much done via system calls.
02:13:41 <SevenInchBread> the "keyboard filter" hook would get spammed when a user types, and each program/process on the hook will be called in a sequential order based on priority - with three things as input: the keyboard being typed on, the original key, and key once modified.
02:14:00 <ihope> Sev: that would be handled by the keyboard handler process.
02:15:03 <Pikhq> I see that these two are busy reinventing UNIX poorly. . .
02:15:04 <ihope> A process that wants to use the keyboard invokes the keyboard handler service telling it what to do when a key is pressed.
02:15:21 <ihope> The poor UNIX reinventors.
02:16:03 <ihope> I'm doing this out of laziness.
02:16:17 <Pikhq> Boredom, you mean?
02:16:37 * SevenInchBread wanted nifty hooks... so he could slap random programs onto basic operations.
02:16:43 <ihope> It'll make me feel proud of myself.
02:17:03 <ihope> Sev: don't sacrifice simplicity for niftiness.
02:17:31 <SevenInchBread> >.> it wouldn't that complicated. I've done something similar on countless other projects... and it works wonderfully.
02:17:33 <Pikhq> SevenInchBread: I see that you want a microkernel design.
02:18:06 <SevenInchBread> ....a bit easier in something like Python though.... since it's not an... OS.
02:19:09 <ihope> If it's not for the kernel, use whatever you want.
02:19:43 <ihope> I can be SO USEFUL!
02:20:55 <Pikhq> GregorR: Really, what I want in the end is something along the lines of "To install, copy the squashfs image into /pkgs. To uninstall, remove the squashfs image.".
02:22:00 <ihope> That's why we want the kernel to be small.
02:22:24 <SevenInchBread> ihope, ...one of the few things I like about windows is that I can be completely lazy when it comes to installing new stuff - I just need to get the binary and it'll work almost 100% of the time.
02:22:39 <ihope> Step one: write the kernel. Step two: write the compiler. Step three: write the programs.
02:23:05 <ihope> Well, getting the binary and it working is naturally an ideal.
02:23:21 <ihope> I'm thinking it shouldn't be hard.
02:23:30 <ihope> Just make sure the programs are compatible with the services.
02:23:38 <SevenInchBread> my experience with Linux hasn't been too grand in that aspect... I usually have to compile shit and worry about a lot of dependencies first.
02:25:20 <ihope> Well, if we implement Linux binary support, Linux binaries will be supported.
02:27:55 <ihope> Just have the kernel support Linux-style system calls as well.
02:28:15 <ihope> You don't need to actually implement them.
02:29:09 * Pikhq will have cp as the package manager. . . >:D
02:30:48 <Pikhq> Just copy the package into /pkgs and the filesystem takes care of the rest.
02:31:19 <ihope> PLEASE JOIN OUR OS PROJECT! I mean, hi.
02:31:35 <Pikhq> They could use some fresh blood.
02:32:11 <ihope> Also, 0672304759 looks really cool.
02:32:23 <Pikhq> But you don't want to be part of an arcane sacrificial rite?
02:33:21 <ihope> I thought that was exactly what we were doing. :-P
02:34:17 <SevenInchBread> ....the Hurd does sound nifty though... even though I've never seen.
02:34:32 * SevenInchBread shall implement many a steganographic filesystem in it.
02:37:23 <Pikhq> The Hurd's got a nifty design, but not much coding impetus.
02:38:50 <SevenInchBread> I personally can't do a lot of C... which puts me a quite a disadvantage when it comes to making an OS.
02:40:04 -!- GreaseMonkey has quit (Read error: 110 (Connection timed out)).
02:40:41 -!- GreaseMonkey has joined.
02:41:14 <SevenInchBread> ihope, we could always use somebody elses microkernel.
02:41:49 <ihope> Preferably a public domain one, since being public domain is part of Abrasax philosophy... isn't it?
02:44:12 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
02:44:47 <ihope> Hmm, a Google search for 'public domain microkernel' turns up nothing obvious. That means we get to claim it.
02:47:27 <ihope> Hmm. 2. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
02:47:41 <ihope> If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works.
02:48:26 <ihope> Those seem to be the big viral clauses of the GPL.
02:48:37 <SevenInchBread> so... if we like... use parts of the program we can take off the licence?
02:49:06 <Pikhq> SevenInchBread: No, what the GPL is stating is that you specifically *can't* do that.
02:49:11 <ihope> If you use part of something that's GPL'd in something else, that something else is GPL'd.
02:49:29 <ihope> With that, I'm out for bed. Isn't the Google Groups thing wonderful? ;-)
02:53:28 <Pikhq> That's the whole *point* of the license. . .
02:54:44 <Pikhq> http://www.gnu.org/philosophy/pragmatic.html For a description of the copyleft mechanism used within the GNU GPL.
02:55:29 <Pikhq> Read the linked text.
02:55:44 <Pikhq> At least realise the purposes behind the GPL before criticising it.
02:55:46 <SevenInchBread> My licence of choice has always been http://allritesreserved.com/ - mainly because it's legally ambiguous
02:56:57 <Pikhq> http://www.gnu.org/philosophy/why-copyleft.html is a shorter description. . .
02:59:15 <SevenInchBread> there has to be a better way to make something virally free than by simply making everything virally GPL.
03:00:07 <Pikhq> The public domain means, basically, that one could incorporate your work into one's program in any way, shape, or form, without having to even mention your authorship. . .
03:00:55 <Pikhq> The GPL is the model of making something guaranteed free. . .
03:01:20 <SevenInchBread> ...isn't that sort of the definition of "free" though?
03:01:43 <Pikhq> The "freedom to enslave" is not generally regarded as a freedom.
03:02:17 <Pikhq> (except in the southern US. :p)
03:02:45 <SevenInchBread> -shrug- ultimately I don't care what people want to do with my stuff. You can copy it verbatin - claim it as yours - and make billions of dollars selling it for all I care.
03:03:22 <Pikhq> Whereas I typically view things more along the lines of "Your freedom to swing your fist around ends where my face begins". . .
03:05:13 <SevenInchBread> the only way I think a proprietary rip-off of free software could ever become popular is through sheer advertising muscle.
03:05:29 <SevenInchBread> as long as everyone is aware of both alternatives... the choice would be obvious.
03:05:45 <Pikhq> Allow me to introduce you to a couple of these rip-offs. . .
03:05:52 <Pikhq> Microsoft Windows and Mac OS X.
03:06:20 <Pikhq> Both have copied code from BSD (Windows has a BSD networking stack, among other things, and OS X *is* a BSD).
03:08:19 -!- ihope has quit (Read error: 110 (Connection timed out)).
03:08:22 <Pikhq> Enabling this is fairly devastating to the free software community. . . It allows our competition to take from us without giving a damned thing back, in essence.
03:09:44 <SevenInchBread> ...how is that devestating to a community that doesn't make any profit in the first place? It's not like they can totally steal your programs out from under you.
03:11:01 <SevenInchBread> the mere existance of free software is devestating to "the enemy".
03:11:22 <Pikhq> *cough* Um, yeah. . . That's exactly what Microsoft is making a rather signifigant effort to do.
03:11:53 <Pikhq> And it's devastating for another reason than just profit. . .
03:12:05 <Pikhq> The free software movement strives to encourage the use of free software.
03:12:23 <Pikhq> Helping nonfree software is detrimental to this. . .
03:12:42 <SevenInchBread> it also, however, no longer makes your software totally free.
03:12:58 <Pikhq> Which right does it remove?
03:13:03 <Bigcheesegs> Windows is't a ripoff of anything... It may have some code from other places but honestly, do you realy think even 10000 lines of code means anything to windows?
03:13:46 <SevenInchBread> not "the right to have free access to this software to do free stuff with it"
03:13:46 <Pikhq> The freedom to run the program, for any purpose (freedom 0).
03:14:02 <Pikhq> The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
03:14:13 <Pikhq> The freedom to redistribute copies so you can help your neighbor (freedom 2).
03:14:31 <Pikhq> The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.
03:14:37 <Pikhq> http://www.gnu.org/philosophy/free-sw.html
03:15:07 <SevenInchBread> there's "the freedom"... and then there's a list of rules. You can't list out freedoms.
03:15:07 <GregorR> Is there seriously a licensing battle going on in here? X_X
03:15:44 <GregorR> I use OpenOffice for all my programming.
03:15:47 <Pikhq> Actually, as an Emacsite, I must inform you that Vim usage is not a sin.
03:15:54 <Pikhq> It is, after all, free software.
03:16:01 <Pikhq> (it is, however, a penance)
03:16:24 <Bigcheesegs> Sooooo, whats everyone think about Visual Studio?
03:16:46 <Pikhq> First, it's nonfree software. Second, it's a fuckin' horrible development environment.
03:16:56 <Pikhq> Third, it doesn't run on my OS of choice.
03:17:17 <GregorR> And fourth OH MY GOD ALL OF THESE TOPICS MAKE ME WANT TO KILL EVERYONE
03:17:55 <Pikhq> For the same reason that having to search through a menu for really, really basic commands is a bad idea for *any* program. . .
03:18:20 <GregorR> Let's talk about, ohhh, esoteric programming languages :P
03:19:08 <Bigcheesegs> Ok, I find them mostly a waist of time that could be spent writing real code...
03:19:11 <Pikhq> A development environment should be about the efficiency of the human side of the equation. . . Which involves terse-seeming commands, simply because they are much faster to input.
03:19:49 <Pikhq> Thus why either Vim or Emacs actually make for a good development environment: the important things you need are available within a millisecond's notice.
03:20:40 <Pikhq> Never need to get your hands off of the keyboard.
03:21:05 <Bigcheesegs> TBH, i've never used vi/m to do real dev work
03:21:08 <Pikhq> One can go from entering in a command to find a certain segment of code to typing actual code instantly in either editor.
03:21:13 <SevenInchBread> well... I think vim and emacs are a pain in the ass to learn... because there's nothing very visual explaining this arcane spellbook of key combinations.
03:21:25 <Bigcheesegs> so I don'y realy know how well they work once you learn how to use them
03:21:29 <SevenInchBread> sure... once you're like... totally used to the program you can start cranking out key combos... but not from the start.
03:21:38 <Pikhq> SevenInchBread: Well, yeah. . . They've got a steep learning curve.
03:21:56 <Bigcheesegs> SevenInchBread: err, try using vi with no prior exp
03:22:10 <SevenInchBread> ...should probably like... have some visual interface.
03:22:18 <Bigcheesegs> I almost killed my /etc/inittab with it :P
03:22:43 <Pikhq> IMO, the programs that are really quick to use usually have a steep learning curve out of necessity.
03:22:58 <oerjan> but - gvim is a visual interface.
03:23:24 <SevenInchBread> you can easily have vim or emacs with a GUI... same exact stuff just with some stuff that makes it easier to learn it.
03:23:26 <GregorR> Must ... kill ... everyone
03:24:02 <Bigcheesegs> Ne way, I like code completion... Also like not having to learn the 1000 compiler switches for gcc/++
03:24:04 * oerjan wonders if we should ask to get that k-line back, for our own safety.
03:24:20 <Pikhq> IDEs are great for the beginner, but honestly. . . Do you *want* a beginner as your developer?
03:25:13 <Pikhq> Bigcheesegs: First, it's nowhere near that many. Second, you need to know very few of them as a developer. . .
03:25:19 * SevenInchBread uses an IDE... simply because it bits the shit out of notepad anyday.
03:25:46 <Pikhq> Most of them are to placate the "OMG -Oinfinity OMGOMG!!!" audience.
03:25:55 <Bigcheesegs> Lol, that reminds me some one on a forum was like, omg im 1337 because I code with notepad!
03:26:07 <Pikhq> That's a sign of n00bness.
03:27:00 <Pikhq> Bigcheesegs: emacs is ideal for the adept; a true magician, deep within their craft. ;)
03:27:18 <Pikhq> The same applies to the vast majority of command-line UNIX, to be honest. . .
03:27:42 <Pikhq> And yes, VI-users, Vi is a similar sort of thing. . .
03:27:46 -!- Sukoshi has left (?).
03:27:53 <Bigcheesegs> command lines are like... 50 years old? not that old is bad, it's just that new is also not bad :P
03:28:35 <Pikhq> I'm a faster typist than mouser.
03:28:50 <Pikhq> Call me up when you are able to mouse at 70wpm.
03:28:57 <Bigcheesegs> wtf, why cant mIRC handle japanese text...
03:29:22 <Bigcheesegs> Pikhq: don't make mistakes, then you never need to use a mouse :P
03:29:52 <Pikhq> Bigcheesegs: Yeah, actually, I don't need a mouse. . .
03:30:29 <Bigcheesegs> ya, well I use magnets to set the bits on my harddrive to program :P
03:31:26 <SevenInchBread> web browsing... for example... is generally nicer with a GUI.
03:31:34 <Pikhq> SevenInchBread: Check out Conkeror.
03:31:41 <Bigcheesegs> ya, so all i know is you said "boku wa shichinai"
03:31:59 <SevenInchBread> Pikhq, Conkeror? I think I've used it... but it kinda sucked.
03:32:36 <Pikhq> SevenInchBread: It's an Emacs-style interface to Firefox.
03:32:59 <SevenInchBread> Firefox however... does not suck to me. and thus I think this has taught me a lesson.
03:33:23 <Pikhq> Konkeror is the KDE web browser.
03:33:56 <Sgeo> Konqueror is to KDE what IE is to Windows
03:34:14 <Pikhq> I don't know is what I said.
03:34:58 <Pikhq> From "知る", to know. . .
03:35:21 <Pikhq> And conjugated into plain negative form. . .
03:35:43 <Pikhq> Bigcheesegs: That's formal negative of "わかる", to understand.
03:36:08 <Bigcheesegs> Programming for fun is the best kind there is :)
03:36:13 <SevenInchBread> "there being a bunch" has never stopped me from redoing it in the past. :)
03:36:44 <Pikhq> Bigcheesegs: Yeah.
03:37:08 <Bigcheesegs> and what IME are you using, i'm trying to find one to put on my nix box
03:37:24 <Bigcheesegs> im working on a lineage II server emulator
03:37:25 <Pikhq> I'm *currently* on gaim. . . I've not gotten ratpoison, irssi, and bitlbee set up since my reinstall.
03:37:32 <Pikhq> And my IME is skim.
03:38:08 * SevenInchBread plays roleplay-intensitive MUDs... so by default he considers MMOs a work of the devil.
03:39:44 <Bigcheesegs> I would use GNU/Linux as my main desktop, but I'm so used to windows and everything works without any effort :P
03:40:02 <Bigcheesegs> I don't feal like spending the days to learn how to get stuff i want to work
03:40:37 <Pikhq> The 2 weeks are so are worth it (that 2 weeks includes the majority of the command line learning curve)
03:40:40 <Bigcheesegs> I've learned how to do that, but only on a GUI with suse
03:40:44 <GregorR> Last time I used Windows I found it to be a huge PITA.
03:40:51 <GregorR> And bloated beyond belief.
03:40:52 <Pikhq> Agreed, Gregor. . .
03:41:02 <SevenInchBread> I know a surprising number of commands... and coming from MUDs it's really not alien feeling too me. :)
03:41:20 <GregorR> Also, Vista is a terrible (both in quality and ethics) ripoff of OS X.
03:41:22 <Pikhq> My current extremely fancy KDE setup isn't using much RAM in terms of Window's normal usage.
03:41:33 <Bigcheesegs> I have 5 pcs in my room atm, 3 running windows, 1 running openSUSE and one installing fedora
03:41:54 <Pikhq> . . . I stand corrected.
03:42:11 <Pikhq> My 40-or-so tabbed Firefox session is using most of my gig of RAM. XD
03:42:24 <GregorR> Yeah, Firefox does that :P
03:42:31 <Bigcheesegs> most tabes i've had before i restart ff is like 10...
03:42:59 <Pikhq> Oh well; at least everything else is really rather light, allowing Firefox to take all it wants.
03:43:26 <Pikhq> Didn't even notice until I looked at my RAM usage.
03:43:36 <Bigcheesegs> I think it's cool that you can start up linux in command like, run a ps and only 2 processes are running
03:43:53 <Pikhq> ps only lists the processes in your current session.
03:44:13 <Pikhq> Try "ps -ae | less".
03:44:25 * Bigcheesegs remembers that it was 85 degress in his room and his nix pc over heated
03:44:48 * Pikhq hugs his AMD system. . .
03:44:51 <Bigcheesegs> ya, i got to open up that pc before i fry another pcu
03:44:57 <Pikhq> The thing runs at, like, room temperature.
03:45:17 <Pikhq> GreaseMonkey: What? less != less?
03:45:58 <Bigcheesegs> unless less is volitile and you're doing multi threading w/o sync :P
03:46:34 <Bigcheesegs> makes server sofware so much simpler, and more concurrent
03:46:45 <Pikhq> Declare it as volatile, and I think GCC would warn you about that. . . (IIRC).
03:47:29 <Pikhq> Probably not. . . But it warns about what things it can detect.
03:47:48 <Bigcheesegs> hmm, btw, any sugestions for a good code profiler?
03:47:48 <Pikhq> (I don't do threads in GCC, so this is coming from the GCC docs, not from personal experience)
03:48:14 <Bigcheesegs> trying to find that 20% of code thats running 80% of the time :P
03:48:49 <Pikhq> See the GCC documentation (under Gcov) for details on how to use it. . .
03:49:49 <Bigcheesegs> It can do code profiling, but it wont show you the results ;/
03:50:39 <Pikhq> Then. . . What the hell is the *use*?
03:51:01 <Bigcheesegs> moves commenly called functions close to each other
03:51:09 <Bigcheesegs> and does more aggressive inlining where needed
03:51:40 <Pikhq> Yeah. . . That's really a useless feature compared to "getting the coder to simplify sqrt(abs(x^2))". :p
03:53:28 <Bigcheesegs> but the compiler cant tell how many times you're going to call func() and from where
03:53:50 <Pikhq> I was just trying to find an example of something that the coder would need to do to optimize things. . .
03:56:29 <Bigcheesegs> Well, nice chat, I'm going to sleep now, so later.
03:57:21 -!- calamari has joined.
04:36:19 -!- SevenInchBread has quit ("haaaaaaaaaa").
04:40:16 -!- wooby has quit (Remote closed the connection).
04:41:32 -!- oerjan has quit ("leaving").
04:49:25 -!- RodgerTheGreat has joined.
04:58:56 -!- bsmntbombdood has joined.
05:20:57 <Sgeo> With floats at higher numbers, are there certain numbers that it can store, and nearby numbers that it cannot? Is that how precision works?
05:21:03 <Sgeo> i.e. something similar to being able to hold, say, 1e20 but not 1e20+1 ?
05:22:53 <Sgeo> "something like that"?
05:26:59 -!- bsmntbombdood has quit (Remote closed the connection).
05:42:02 -!- bsmntbombdood has joined.
05:42:55 -!- bsmnt_bot has joined.
05:43:58 -!- bsmntbombdood has quit (Remote closed the connection).
05:44:52 -!- bsmntbombdood has joined.
06:09:06 <GregorR> Sgeo: Precisely like that, actually.
06:09:27 <GregorR> It effectively stores it in (x)e(y) format.
06:12:08 * Sgeo predicts the existence of "atmospheric shells" in SL
06:12:36 <Sgeo> But for now, g'night
06:13:16 -!- Sgeo has quit ("Ex-Chat").
06:24:24 -!- thematrixeatsyou has joined.
06:25:24 -!- GreaseMonkey has quit (Nick collision from services.).
06:25:42 -!- thematrixeatsyou has changed nick to GreaseMonkey.
06:28:25 -!- wooby has joined.
06:54:41 -!- calamari has quit ("Leaving").
07:12:01 -!- calamari has joined.
07:56:08 -!- calamari has quit ("Leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:49:49 -!- calamari has joined.
09:26:36 -!- calamari has quit ("Leaving").
10:38:45 -!- GreaseMonkey has quit ("ROFL = Really old frikkin laugh-message").
11:08:58 -!- ihope has joined.
12:15:42 -!- SimonRC has quit ("Darned Debain upgrade did funny things to screen so letters keep going missing in my old screen sessions.").
13:35:03 -!- SimonRC has joined.
13:35:32 -!- SimonRC has quit (Client Quit).
13:42:03 -!- wooby has quit.
13:44:50 -!- SimonRC has joined.
14:07:31 -!- puzzlet_ has joined.
14:19:39 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
14:23:28 -!- nazgjunk has joined.
14:24:59 -!- nazgjunk has quit (Connection reset by peer).
14:25:11 -!- nazgjunk has joined.
15:03:28 -!- nazgjunk has changed nick to n[a]zgjunk.
15:37:54 -!- jix__ has joined.
15:39:43 -!- jix__ has changed nick to jix.
15:39:55 -!- crathman has joined.
16:11:32 -!- jix__ has joined.
16:15:44 -!- jix has quit (Nick collision from services.).
16:15:46 -!- jix__ has changed nick to jix.
16:32:06 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
16:56:41 -!- RodgerTheGreat has quit.
16:59:27 -!- Pikhq has joined.
17:24:16 -!- sebbu has joined.
17:29:09 -!- sebbu2 has joined.
17:36:48 -!- sebbu has quit (Read error: 60 (Operation timed out)).
17:55:18 -!- Bigcheesegs has quit (Read error: 104 (Connection reset by peer)).
18:03:22 -!- Bigcheesegs has joined.
18:11:31 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
18:30:37 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").
19:12:03 -!- atrapado has joined.
19:18:12 -!- atrapado has quit ("tele fo no").
19:22:58 -!- atrapado has joined.
21:11:49 -!- crathman has joined.
21:19:07 -!- calamari has joined.
21:31:29 -!- n[a]zgjunk has changed nick to nazgjunk.
21:31:59 -!- nazgjunk has quit ("Bi-la Kaifa").
21:34:03 -!- nazgjunk has joined.
21:39:39 -!- sebbu has joined.
21:46:35 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:47:07 -!- sebbu2 has quit (Read error: 60 (Operation timed out)).
22:24:35 -!- calamari has quit ("Leaving").
22:24:55 -!- IslandHopper973 has joined.
22:30:21 -!- IslandHopper973 has changed nick to UnrelatedToQaz.
22:32:24 -!- UnrelatedToQaz has left (?).
22:32:42 -!- UnrelatedToQaz has joined.
22:33:51 -!- UnrelatedToQaz has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").
22:49:38 -!- Pikhq has joined.
23:03:57 -!- sebbu has quit ("@+").
23:36:26 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
23:48:12 -!- Pikhq has joined.
23:55:26 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").
00:01:22 -!- SevenInchBread has joined.
00:26:17 -!- atrapado has quit (Read error: 110 (Connection timed out)).
00:40:10 -!- Bigcheesegs has quit ("isoGames - The New Leader In Online Spectator Sports - /server -m irc.isoGames.com").
00:45:20 -!- Bigcheesegs has joined.
00:54:30 -!- calamari has joined.
00:58:07 -!- calamari has quit (Client Quit).
02:41:22 -!- oerjan has joined.
02:51:24 -!- ihope has quit (Read error: 110 (Connection timed out)).
04:03:27 -!- Rugxulo has joined.
04:04:58 -!- Rugxulo has left (?).
04:09:58 -!- SevenInchBread has quit (Read error: 113 (No route to host)).
05:23:35 -!- calamari has joined.
05:50:26 -!- oerjan has quit ("leaving").
05:52:30 -!- calamari has quit ("Leaving").
07:35:54 -!- ShadowHntr has joined.
07:57:46 -!- maverickbna has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:07:22 -!- ShadowHntr has quit (Nick collision from services.).
08:07:26 -!- maverickbna has changed nick to ShadowHntr.
08:41:17 -!- jix has joined.
08:52:54 -!- GreaseMonkey has joined.
09:04:15 <GreaseMonkey> up for acrowars? http://www.acrowars.com/uncyclopedia it's heaps of fun, just set up a disposable acct and you're good to go
10:09:28 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
10:22:45 -!- ShadowHntr has quit ("End of line.").
10:25:28 -!- helios24 has quit (Remote closed the connection).
10:51:42 -!- GreaseMonkey has quit ("ISRAWY = In Soviet Russia, acronym writes YOU!!").
11:16:09 -!- ihope has joined.
11:31:33 -!- ihope has quit (Read error: 54 (Connection reset by peer)).
12:03:01 -!- helios24 has joined.
13:11:26 -!- Sephh has joined.
13:23:19 -!- helios24 has quit (Remote closed the connection).
13:24:24 -!- Bigcheesegs has quit (Read error: 113 (No route to host)).
13:25:02 -!- helios24 has joined.
14:16:29 -!- Figs has joined.
14:16:48 <Figs> Proof that I need a life:
14:16:49 <Figs> http://student.hpa.edu/~cmcfarland/Classics.exe
14:16:59 -!- Bigcheesegs has joined.
14:17:07 <Figs> I hard-coded Mario and Zelda themes
14:17:10 <Figs> using Windows Beep()
14:17:29 <Figs> Will post source if desired
14:17:44 * Figs pokes Bigcheesegs
14:20:38 <Figs> http://rafb.net/p/QQKEbi39.html
14:21:16 -!- helios24 has quit (Remote closed the connection).
14:24:03 <Figs> if anyone cares :P
14:25:09 -!- helios24 has joined.
14:27:16 <Figs> hello helios24
14:27:31 -!- Sephh has quit (Read error: 113 (No route to host)).
14:28:03 <Figs> Guess no one likes mario and zelda any more :(
14:42:24 * Pikhq should get started on actually making his distro. . .
14:43:33 <Bigcheesegs> crap, i have to go, ill look at it later :P
15:07:04 -!- helios24 has quit (Remote closed the connection).
15:07:08 -!- helios24 has joined.
15:20:22 -!- helios24_ has joined.
15:21:26 -!- helios24 has quit (Read error: 113 (No route to host)).
15:21:42 -!- crathman has joined.
15:26:49 -!- helios24 has joined.
15:27:51 -!- helios24_ has quit (Read error: 113 (No route to host)).
15:31:25 -!- jix has joined.
16:09:57 -!- meatmanek has quit (Success).
16:12:15 -!- jix__ has joined.
16:12:30 -!- jix has quit (Nick collision from services.).
16:12:34 -!- jix__ has changed nick to jix.
16:26:30 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
16:36:01 -!- Pikhq has joined.
17:37:19 -!- sebbu has joined.
17:56:31 -!- meatmanek has joined.
18:47:14 -!- Figs has left (?).
19:19:51 -!- atrapado has joined.
20:20:17 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
20:20:48 -!- nazgjunk has joined.
20:41:22 -!- dub_ has joined.
20:43:12 -!- atrapado has quit (Nick collision from services.).
20:43:20 -!- dub_ has changed nick to atrapado.
21:40:18 -!- sebbu2 has joined.
21:52:44 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:59:07 -!- sebbu has quit (Connection timed out).
22:35:00 -!- ihope has joined.
22:46:33 -!- Sgeo has joined.
23:35:16 -!- atrapado has quit ("toki pona").
00:06:54 -!- wooby has joined.
00:10:41 -!- crathman has quit (Read error: 113 (No route to host)).
00:34:30 -!- nazgjunk has quit ("Bi-la Kaifa").
00:53:04 -!- sebbu2 has quit ("@+").
02:17:06 -!- ihope has quit (Read error: 104 (Connection reset by peer)).
02:54:38 -!- SevenInchBread has joined.
04:10:14 -!- SevenInchBread has quit ("haaaaaaaaaa").
04:12:54 -!- Figs has joined.
04:13:05 <Figs> http://student.hpa.edu/~cmcfarland/Classics.exe
04:13:09 <Figs> I've improved it!
04:13:19 <Figs> Mario, Zelda, and Fur Elise
04:13:34 <Figs> source is almost 2000 lines of code
04:16:15 <Figs> http://rafb.net/p/IjMZTq94.html
04:38:23 -!- oerjan has joined.
04:43:10 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
05:56:22 -!- Figs has quit (Read error: 104 (Connection reset by peer)).
05:56:50 -!- Figs has joined.
06:04:17 -!- wooby has quit.
06:14:14 -!- GreaseMonkey has joined.
06:17:02 -!- oerjan has quit ("leaving").
06:47:51 <GreaseMonkey> would anyone here know much about SKI combinator calculus?
06:51:47 <Figs> I do know, however, that I got my music program working :D
06:52:07 <Figs> Zelda, Mario, and Fur Elise FTW
06:55:02 <GregorR> <-- does not care about your Windows-only program.
06:55:22 <Figs> well if anyone knows how I can make a portable beep, I will :P
06:56:45 <GreaseMonkey> http://greasemonkey.nonlogic.org/lsq101002.tar.gz
06:57:17 <Figs> uses the computer internal speaker?
06:57:37 <Figs> I don't know what .VGM is :P
07:19:08 <oklopol> hmm... i should make my musical brainfuck possibility of making tones... since it now only handles raw data... maybe ':' & ';'
07:21:20 <oklopol> actually.... i made ',' a stream of sin wave... but it turned out it's not that easy to slow a wave down in brainfuck :P
07:22:29 <oklopol> there were 3 streams, square, saw and sine, which one you use depending on the value in current cell when calling ','
07:22:46 <oklopol> but... school, REALLY ----->
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:01 <Figs> http://www.flightpad.net/images/firefoxfoxfoxfox.jpg
08:08:58 -!- Sgeo has quit ("Ex-Chat").
09:53:49 -!- Figs has left (?).
11:08:09 -!- GreaseMonkey has quit ("gnight").
12:12:29 -!- Pikhq has joined.
12:57:02 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
13:36:32 -!- nazgjunk has joined.
13:44:38 -!- Pikhq has joined.
14:30:50 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
14:32:21 -!- Pikhq has joined.
15:45:30 -!- crathman has joined.
15:52:17 -!- jix has joined.
16:56:58 -!- sebbu has joined.
18:20:03 -!- Sukoshi has joined.
18:37:41 -!- calamari has joined.
19:10:44 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)).
19:19:34 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
19:41:52 <Sukoshi> I'll ask again: Anyone use Pascal here?
19:46:34 <GregorR> I'm sorry, I think you've confused #esoteric with #1978
19:57:43 <Sukoshi> Hey, people talk about Forth here too.
19:57:54 <Sukoshi> Plus lots of Roguelikes are still written in Pascal.
19:59:37 <lament> forth is pretty esoteric.
20:03:52 <crathman> spent years with an obscure version of Pascal... but many moons have passed
20:16:38 -!- nazgjunk has quit ("Bi-la Kaifa").
20:18:03 -!- nazgjunk has joined.
20:38:17 <calamari> Sukoshi: I have a pascal book, maybe it knows? :)
20:38:55 <calamari> "Advanced Turbo Pascal Version 4"
20:39:42 <calamari> I keep it around because it shows how to implement a recursive descent parser
20:40:31 <calamari> see, it used to be that advanced actually meant advanced :)
20:43:56 -!- nazgjunk has quit ("Bi-la Kaifa").
20:56:39 <oklopol> what's a "recursive descent parser"?
21:01:17 -!- nazgjunk has joined.
21:13:53 -!- crathman_ has joined.
21:15:12 -!- jix__ has joined.
21:19:16 <nooga> forth is hella werid
21:23:43 -!- jix has quit (Read error: 110 (Connection timed out)).
21:29:45 -!- crathman has quit (Read error: 110 (Connection timed out)).
21:30:13 <Sukoshi> Am I the only one who thinks it isn't? :P
21:31:12 <Sukoshi> If you factor correctly, it shouldn't be that bad.
21:36:38 <Sukoshi> Check out the PDF document "Programming Forth".
21:40:12 <Sukoshi> It's just that Forth encourages a lot more factoring than C/Pascal does.
22:18:44 -!- Pikhq has quit ("Leaving.").
22:20:17 -!- calamari has quit ("Leaving").
22:32:14 -!- SevenInchBread has joined.
22:37:40 -!- calamari has joined.
22:38:25 -!- ihope has joined.
22:57:13 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:59:17 -!- iano has joined.
23:00:51 -!- sebbu has quit ("@+").
23:01:36 -!- calamari has quit ("Leaving").
23:19:24 -!- iano has quit.
23:24:40 -!- Pikhq has joined.
23:29:24 -!- iano has joined.
23:39:10 -!- iano_ has joined.
23:46:33 -!- iano has quit (Read error: 60 (Operation timed out)).
23:50:13 -!- Bigcheesegs has quit ("isoGames - The New Leader In Online Spectator Sports - /server -m irc.isoGames.com").
23:58:51 <Pikhq> Sukoshi, would you happen to know which Slackware package contains chroot (and where chroot is?)
00:02:36 -!- crathman_ has quit (Read error: 113 (No route to host)).
00:04:11 -!- bsmntbombdood has joined.
00:06:34 <Pikhq> Nevermind, found it.
00:06:40 <Pikhq> Package browser; imagine that.
00:33:00 * Pikhq is *attempting* to get his distro up and running
00:37:34 <Pikhq> And failing horribly.
00:48:07 -!- calamari has joined.
00:55:10 -!- calamari has quit ("Leaving").
00:58:36 <Sukoshi> I'm writing a farming roguelike.
00:58:50 <Sukoshi> (After spending 3 hours reading about magnetism/electricity.)
01:00:36 <lament> you mean the hero is a farmer
01:01:11 <Sukoshi> No, it's a roguelike with inspiration from Harvest Moon.
01:01:11 <ihope> Are you going to farm magnetic carrots?
01:03:15 <Sukoshi> The Glorious Empire is waging war against the Evil Enemies of the Empire. The Empire has given a call to all of its citizens to help with the Empire's Exploits. Rather than taking to the frontlines, you have decided to help your Empire in the other way -- to farm. Each and every crop you harvest is distributed out to the Citizens and the Empire compensates your efforts. To aid your effort, the Empire allows you to purchase Indentured
01:03:15 <Sukoshi> Servants (prisoners of the Glorious War) to help out on the farm. In order to prove your worth to the Empire, you must successfully set up your own empire of farms.
01:03:43 <lament> that does not sound like a roguelike.
01:05:32 <Sukoshi> To further aid your exploits, Magical Engineers constantly perform research on technological Improvements. Of course, Research is accelerated with Donations. Use your money effectively to purchase Indentured Servants and place skillful Donations for the benefit of the Empire.
01:06:02 <lament> that sounds very much like an economic simulation and not at all like a roguelike.
01:06:16 <Sukoshi> But it's being done in curses.
01:06:33 <lament> that's just the interface
01:06:37 <lament> anything can be done in curses
01:06:41 <Sukoshi> Except that you actually interactively farm.
01:06:58 <Sukoshi> (Until you hire the indentured servants you need, of course.)
01:07:14 <Sukoshi> (Then you purchase another farm off struggling farmers.)
01:12:01 <SevenInchBread> ...you could make it online... and turn it into a MUD. :)
01:12:28 * SevenInchBread already has a big partially complete python library for MUDs
01:14:46 <ihope> We're abandoning Abrasax, aren't we?
01:22:40 -!- calamari has joined.
01:26:24 <SevenInchBread> I think we'll be able to do Abrasax as long as we're willing to put in some work.
01:26:50 <SevenInchBread> all else fails... we can go with the power of numbers and join up with an existing OS project that might be having problems.
01:35:06 -!- calamari has quit ("Leaving").
01:36:39 <ihope> And then have an "upper kernel" handle permissions and such?
01:36:59 <SevenInchBread> basically just like.... talking to the MMU and dispatching interupts... and maybe some other stuff.
01:37:17 <SevenInchBread> ihope, eh... not necessarily. But yeah... basically just breaking down all the functions into different parts.
01:38:12 <ihope> Dividing into "lower kernel" and "upper kernel" doesn't really seem a bad idea.
01:38:54 <ihope> Have the lower kernel handle all the dirty work, and then the upper kernel can do it "cleanly" by calling the lower one?
01:39:35 <SevenInchBread> I was jsut thinking like.... a really small kernel... and then.... everything else in userville
01:40:48 <ihope> So the lower kernel's division of privileges goes no farther than "this program can do anything at all" vs. "this program can only talk to other programs"?
01:46:05 <ihope> You mean the lower kernel doesn't have division of privileges at all?
01:48:05 <SevenInchBread> no... it basically sends interupts off to other places... and manages memory. Privledges wouldn't even make sense there.
01:48:19 <ihope> Sends interrupts off to other places and manages memory...
01:48:41 <ihope> So it's a library containing the OS's entry point?
01:49:05 <Sukoshi> Non-interactive programming is for nubs.
01:50:10 <ihope> What's interactive programming?
01:50:24 <SevenInchBread> it's just... the kernel. It just handles the most basic hardware stuff and delegates it to other software.
01:52:00 <SevenInchBread> that's the most basic function of the operating system... to assign crap as callbacks. All other functionality emerges from that.
01:52:21 <ihope> So it provides some "system calls"?
01:54:11 <Sukoshi> So you dismiss it to non-interactive just like that?
01:54:23 <Sukoshi> Interactive programming, like a REPL.
01:55:12 <SevenInchBread> no no... not system calls... those aren't callbacks - they're simply subroutines because they're always present.
01:55:27 <Sukoshi> Uggh, are you listening to me, you stupid piece of cake? :P
01:55:45 <SevenInchBread> you can't do anything with system calls if there's nothing around to call them. You can't create anything to call systems calls without having an input device
01:56:03 <SevenInchBread> Sukoshi, THERE WILL BE NO INTERACTIVE. OUR OPERATING SYSTEM WILL BE LIKE A FRIDGID SEX PARTNER
01:56:11 * Sukoshi things of a clock to control current.
01:57:54 <Sukoshi> I'm probably thinking of the wrong side of the sex SevenInchBread.
01:59:59 <ihope> SevenInchBread: subroutines?
02:00:06 <ihope> So it's like a library or module?
02:00:54 <Sukoshi> Uggh, make it interactive.
02:01:15 <ihope> Sukoshi: what do you mean?
02:01:21 <Sukoshi> Like, create a Forth-level interface to interrupts and just start building up the rest in Forth words.
02:01:57 <Sukoshi> You only need to implement a stack, some way to fetch memory, and some way to store words, plus interrupt-based words.
02:02:03 <ihope> I think we want "the rest" to be very modular and easy to do in any programming language.
02:02:24 <Sukoshi> In any non-REPL language :(
02:02:37 <Sukoshi> You can compile to Forth words, you know?
02:04:36 <Sukoshi> http://www.amresearch.com/v6/
02:04:48 <SevenInchBread> basically I just want to kernel to do things like "oh cool... an interrupt! CONTEXT SWITCH POWERS ACTIVATE!"
02:05:08 <Sukoshi> Compilers can compile to Forth words, which are basically supported by a barebones kernel.
02:05:34 <ihope> Sukoshi: you seem a little Forth-obsessed lately.
02:05:44 <ihope> Does it have closures, whatever they are?
02:05:45 <Sukoshi> ihope: Well, you seem very non-interactive obsessed.
02:06:11 <ihope> Sukoshi: I... still don't get what you mean by "interactive".
02:06:21 <Sukoshi> ihope: Have you never played with a Lisp or a Forth before?
02:06:35 <ihope> I've played with a Lisp or two.
02:07:16 <Sukoshi> Play with gForth. It's an experience.
02:07:42 -!- calamari has joined.
02:07:45 <Sukoshi> It's just a prompt that lets you type in Forth words, which are then just looked up.
02:08:11 <Sukoshi> It doesen't have to be *Forth*, but you seem to be gearing this for a non-interactive base.
02:08:17 <Sukoshi> SevenInchBread: Yes. Crazy isn't it?
02:08:35 <Sukoshi> A barebones microkernel drops you into that. OpenBoot does something similar.
02:08:39 <ihope> Suddenly, I want to combine Thue with something roughly Forth-like.
02:09:06 <SevenInchBread> I use python's shell interpreter all the time... it's nothing amazing.
02:09:33 <ihope> Commands are taken from the left and executed. Any results are put back on the left.
02:09:38 <Sukoshi> Plus Python's shell interpreter doesen't execute machine code directly.
02:09:52 <ihope> "Other" computation is done with Thue-like replacement rules.
02:31:24 -!- iano_ has quit (Read error: 104 (Connection reset by peer)).
02:32:06 -!- iano has joined.
03:32:46 -!- ihope has quit (Read error: 110 (Connection timed out)).
03:35:31 -!- calamari has quit ("Leaving").
03:58:05 -!- Sukoshi has left (?).
04:26:58 -!- Sgeo has joined.
05:09:10 -!- oerjan has joined.
05:37:02 -!- Sukoshi has joined.
05:38:33 -!- Sgeo has quit ("Ex-Chat").
05:49:10 <Sukoshi> oerjan: You said you used Pascal.
05:49:13 <oerjan> note that it must not read/write the shell std streams
05:49:27 <Sukoshi> Do you think it is better than C?
05:52:25 <Sukoshi> Uggh. Why doesen't Radio Shack give the Maximum Energy Product (or Magnetic Field) of their magnets? -_-''
05:53:59 <SevenInchBread> oerjan, anyway to prevent that without... recompiling the program?
05:54:27 <oerjan> yes, you use > and < to redirect I/O.
05:54:49 <Sukoshi> SevenInchBread: ``ls > grep -i hi''
05:55:14 <Sukoshi> ... And that's not an example of IO rediirection ....
05:55:18 -!- GreaseMonkey has joined.
05:55:23 <Sukoshi> | is the piping character.
05:55:33 <Sukoshi> It pipes stdiout of the first application to stdin of the second.
05:55:44 <SevenInchBread> so... how would I tell the program to redirect output to.... hmmmmm... /dev/null... or just nowhere
05:56:16 <oerjan> anyhow, i have little opinion on C/Pascal, they both seem old to me, C's advantage is that it has enormous support and libraries.
05:57:04 <Sukoshi> > redirects output to an FD.
05:57:12 <oerjan> SevenInchBread: ignore Sukoshi :)
05:58:02 <oerjan> on a shell line, <file tells to use file for stdin, >file for stdout.
05:58:26 <SevenInchBread> a friend is complaining about the shell window for a server app being unable to close without shutting the whole thing down
06:00:31 <oerjan> ah yes, &>file takes both stdout and stderr, at least in bash
06:01:19 <oerjan> on the other hand, the redirection may not be necessary for X commands.
06:01:31 <oerjan> they rarely write to the terminal, I think.
06:01:58 <oerjan> cannot check as i am on windows these days.
06:02:45 * SevenInchBread just wants the shell window to go away without the MUD crashing
06:02:47 <oerjan> except for ssh'ing to my old unix account.
06:02:52 <Sukoshi> Yeah, like Firefox tells me (in Japanese, because I use that locale so my Japanese fonts are nice) that it can't find the 'hicolor' font every so often.
06:03:16 -!- Bigcheese has joined.
06:04:36 <Sukoshi> You can tell him to write a mini-app that creates a little GUI window that forks the input to a shell.
06:04:39 <oerjan> i think something more than background might be needed for that.
06:09:07 <oerjan> hm... try the daemon command.
06:09:21 <Sukoshi> .... What command is that oerjan ?
06:09:35 <oerjan> oh wait, it was a function
06:09:47 <oerjan> my eyes skipped that part
06:11:33 <oerjan> anyhow, have you tried "command &>/dev/null </dev/null &" ?
06:14:03 <oerjan> that's the closest i can think of, removing all connections to the terminal i hope
06:15:25 <SevenInchBread> that's not the problem though... it just needs to run without the shell being there
06:15:45 <Sukoshi> Your WM should have the feature in a ``run'' thing or whatever.
06:16:01 <Sukoshi> Or I'll bet you can find some small app written just for this purpose, if not write it yourself.
06:25:57 <oerjan> GregorR: maybe you could recolor your red fez picture to test...
06:26:22 <Sukoshi> What about semi-purple fez?
06:30:10 <oerjan> http://www.codu.org/hats/RedFez-med.jpg
06:31:48 <GregorR> My red fez picture is a uniquely bad picture of me XP
06:31:49 <oerjan> and that's GregorR unless he's fooling us. :)
06:33:21 <oerjan> so not only do you need to recolor it, you also need to graft it onto another picture of you :)
06:34:03 <oerjan> _might_ be simpler to get a physical sample, then.
06:35:09 <oerjan> but then, a new picture of the red one seems in order.
06:37:21 <GregorR> I think I'll take a picture of me in my new green fez and then recolor that X-P
06:40:37 <oerjan> Mein Hut, es hat drei Ecken Drei Ecken hat mein Hut...
06:41:38 <GregorR> We have that saying, but in English.
06:41:46 <GregorR> Err, saying == song lyric IIRC
06:41:55 <oerjan> and in norwegian, but I think the German is original.
06:43:27 <oerjan> somewhat disturbing that the google hits all spell it differently...
06:44:55 <oerjan> unless austrian, the y should be shifted somewhat towards a
06:49:29 <oerjan> basically, the rules for pronouncing ie and ei in English and German are approximately opposite of each other.
06:51:08 <GregorR> We can thank the Great Vowel Shift for that (probably)
07:02:28 <GregorR> AND THAT LANGUAGE SHOULD BE ENGLISH
07:02:38 <GregorR> IF ENGLISH WAS GOOD ENOUGH FOR JESUS, IT'S GOOD ENOUGH FOR TEXAS
07:02:58 <bsmntbombdood> english is the language of god, because it's what the bible is written in
07:04:53 <oerjan> and besides, the spelling of Hebrew seems to be even worse.
07:06:16 -!- iano has quit.
07:29:24 <oerjan> i've read that beginners need to have vowel signs added, and it take years to be able to read anything without them.
07:29:44 <lament> the former is true; the latter isn't
07:29:53 <lament> you get used to it very quickly
07:32:42 <GregorR> Why can't I find a good skimmer for under $100 X_X
07:34:16 <oerjan> thank god for wikipedia disambiguation.
07:35:03 <oerjan> allowing me to find out what "skimmer" may mean
07:36:43 <oerjan> although if it had been anyone but you i would _still_ not know :)
07:37:07 <GregorR> Well, y'know, I want a sea bird.
07:38:47 <oerjan> yeah yeah, and you have this nice bridge you have to sell.
07:40:14 <oerjan> are skimmers handmade perhaps?
07:40:43 <GregorR> It used to be a very popular style of hat, but I presume they're no longer made en masse.
07:41:56 <oerjan> as i said, if it had been anyone but GregorR... :)
07:42:17 <GregorR> Well, I saw one at my usual online hat shop while looking for a tricorn.
07:42:34 <GregorR> So I googled, and they're all that expensive >_O
07:54:53 -!- nooga has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:21:30 -!- SevenInchBread has quit ("haaaaaaaaaa").
08:52:26 <Sukoshi> If soemone wants to buy me rare Earth magnets, they should.
08:57:04 <GregorR> Funny, I was JUST having the compulsion to buy rare Earth magnets for somebody I barely know online!
09:05:54 <Sukoshi> Just for these sorts of moments.
09:06:23 <Sukoshi> Look, people in hormone-filled teenage chatrooms buy clothes for people they barely know.
09:06:47 <Sukoshi> Why can your hormones cloud you to the same level of idiocy? :(
09:07:11 <GregorR> I have no hormones. I am an android.
09:12:26 <oerjan> hey, at least Sukoshi is not asking for fissible substances :)
09:19:38 <oerjan> but then, who knows what a denizen of #esoteric could do with a rare Earth magnet.
09:22:03 <Sukoshi> It was for a generator, but I could think of more sinister things
09:22:53 -!- nooga has joined.
09:45:03 -!- oerjan has quit ("leaving").
10:26:49 -!- sebbu has joined.
10:31:58 -!- sebbu2 has joined.
10:33:20 -!- sebbu3 has joined.
10:49:48 -!- sebbu has quit (Read error: 110 (Connection timed out)).
10:53:15 -!- sebbu2 has quit (Connection timed out).
11:02:29 -!- sebbu3 has quit (Connection timed out).
11:02:59 -!- GreaseMonkey has quit ("My bot can beat up your bot. Wait, sorry, *I* can beat up your bot *through* my bot.").
11:07:00 -!- jix__ has joined.
11:07:44 -!- Sukoshi has left (?).
11:11:30 -!- sebbu has joined.
11:20:42 -!- nazgjunk has quit ("Bi-la Kaifa").
11:25:33 -!- nazgjunk has joined.
12:08:24 -!- sebbu3 has joined.
12:26:48 -!- sebbu has quit (Connection timed out).
12:37:53 -!- sebbu has joined.
12:39:52 -!- sebbu2 has joined.
12:57:39 -!- sebbu3 has quit (Read error: 110 (Connection timed out)).
12:59:35 -!- sebbu has quit (Connection timed out).
13:14:26 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
13:19:36 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
13:26:39 -!- sebbu has joined.
13:42:41 -!- jix__ has changed nick to jix.
14:09:50 -!- sebbu2 has joined.
14:10:52 -!- sebbu3 has joined.
14:29:36 -!- sebbu has quit (Read error: 110 (Connection timed out)).
14:31:45 -!- sebbu2 has quit (Connection timed out).
14:32:30 -!- sebbu3 has quit (Connection timed out).
14:48:02 -!- ihope has joined.
16:17:26 -!- sebbu has joined.
17:56:42 <ihope> You know, if I want to write a kernel, I'm really going to have to learn more about x86.
18:25:00 <Pikhq> Or write for a different architecture.
18:25:48 <Pikhq> I hear that linux-linux-gnu makes for a useful one (Linux runs on it, at least). :p
18:33:13 -!- SevenInchBread has joined.
18:35:04 -!- calamari has joined.
18:36:12 <ihope> Pikhq: linux-linux-gnu?
18:36:34 <SevenInchBread> the basic kernel should basically just... take hardware interupts and place them on a queue that can be accessed by like... a hardware-dispatch process of some kind
18:37:51 <ihope> Still sounds like a kernel library/module.
18:37:54 <SevenInchBread> I see privledges being arbitrary flags that can be set on processes.
18:38:22 <SevenInchBread> they don't do anything on their own... other stuff just needs to check to see if certain flags are set.
18:40:37 <Pikhq> ihope: Yes: GNU/Linux running on Linux.
18:40:47 <Pikhq> (AKA Usermode Linux)
18:41:58 <SevenInchBread> hmmm.... the kernel could also handle system call interupts.... it would handle some of the memory allocation calls... but most of the other ones would be delegated to some userland process
18:42:20 <ihope> Would it also handle processes?
18:42:37 <ihope> The kernel, I mean?
18:42:55 <SevenInchBread> processes are basically just bits of code attached to interupts... and since the kernel will be handling interupts... probably.
18:43:13 <ihope> Bits of code attached to interrupts?
18:43:24 <ihope> So they're subroutines run whenever you get an interrupt?
18:43:40 <SevenInchBread> it won't -schedule- the processes or anything... it'll just provide the operations for moving them around in memory.
18:44:05 <SevenInchBread> -nod- that's what interupts do. They're kind of like exceptions in the programming language universe.
18:44:17 <ihope> So what does schedule the processes?
18:45:58 * ihope scribbles all over SevenInchBread
18:46:25 <ihope> How about the kernel handles process scheduling, memory, and system calls, and then there aren't very many system calls?
18:46:47 <ihope> And maybe interrupts too.
18:47:05 <SevenInchBread> it would impossible to do the operating system if the kernel didn't handle interupts.
18:48:26 <SevenInchBread> I want the kernel only what it needs to do - which is interupts and memory.
18:48:32 -!- calamari has quit (Remote closed the connection).
18:48:52 -!- calamari has joined.
18:49:15 <ihope> So it handles interrupts and contains the instructions for a couple system calls?
18:49:29 <ihope> And the rest is left up to the "upper kernel"?
18:50:21 * SevenInchBread doesnt't like the "upper kernel" terminology... but whatever. The "upper kernel" is basically a bunch of processes
18:50:32 <Pikhq> Try just 'userspace'.
18:50:45 <Pikhq> That is what every other microkernel calls it.
18:50:48 <ihope> So process scheduling and system calls will be handled by processes...
18:51:04 <ihope> Pikhq: what every other microkernel calls what?
18:51:17 <Pikhq> ihope: The set of processes which support the rest of the system.
18:51:24 <SevenInchBread> well.... system calls are interupts... which go to the kernel... which then triggers some other process
18:51:42 <ihope> SevenInchBread: hmm...
18:52:16 <SevenInchBread> that's basically what makes a microkernel a microkernel.... it doesn't handle all the system calls
18:54:45 <SevenInchBread> so... once the kernel receives a system call interupt... I think it should delegate to call to a list of programs that have associated themselves with the system call which get executed in some order of priority.... that way you can redefine the system calls any way you want.
18:55:13 <Pikhq> SevenInchBread: A microkernel is a kernel design where almost everything is handled by userspace processes.
18:56:28 <Pikhq> Usually, a microkernel *will* handle all the system calls. . . The thing being, they have very, very few system calls (usually just things like exec(char *); and send_message(pid_t);).
18:56:31 <ihope> What would you call a kernel that handles all the system calls but whose system calls are pretty basic?
18:56:43 <Pikhq> That would be a microkernel.
18:57:02 <Pikhq> That would be the usual form of a microkernel, in fact.
18:57:07 <SevenInchBread> when we design the microkernel... we just need to make it as general as possible. Don't worry about the specifics... the microkernel should be pluggable into any kind of OS design.
18:57:20 <ihope> Execute process and send message, eh?
18:57:32 <ihope> How would things like hardware interaction be done?
18:58:07 <SevenInchBread> which get put on like... a "hardware signal" queue or whatever
18:58:15 <Pikhq> Depends upon the kernel. . . Mach, at least, provides a very, very basic interface to hardware via syscalls. Mach, though, is rather monolithic for a microkernel. . .
18:58:16 <ihope> And how do you make sure not every process can interact with all hardware?
18:58:28 <SevenInchBread> and a system call for checking out recent hardware signals
18:59:00 <Pikhq> ihope: All the Mach variants, including GNU Mach.
18:59:01 <ihope> Oh. The Mach microkernel.
18:59:15 <Pikhq> (they all come from the same original project)
18:59:45 <Pikhq> *GNU* Mach's hardware interface is a subset of the Linux module API. . .
19:00:46 <SevenInchBread> ihope, don't need to worry about that till other stuff. I don't think the microkernel itself needs to worry about privledges
19:01:12 <SevenInchBread> it does however... need an interface to allow other crap to worry about privledges for it.
19:01:44 <ihope> So under the exec and send_message thing, does the kernel handle processes?
19:02:03 <ihope> If so, surely some processes have permission to do things that other processes don't have the permission to do.
19:02:24 * ihope gets out his list of system calls
19:03:33 <SevenInchBread> yeah.... you'll probably have to get used to me not worry about permissions at all.... since I don't really care about them either way.
19:05:02 <ihope> Enter supervisor mode, switch to other process, end time slice, add permission to process, remove permission from process, check process for permission, invoke service, register service, unregister service, grab service, allocate memory, deallocate memory...
19:05:30 <ihope> Oh, and create process.
19:05:56 <ihope> That and some ways of interacting with process scheduling should do it.
19:06:23 <ihope> Get process permissions, set process permissions instead of those fancy ways of doing things?
19:06:34 -!- calamari has quit ("Leaving").
19:06:41 <SevenInchBread> I'd X out the permission stuff, the service stuff, aaaand... the switch-to-other-process... since you don't need it because of interupts
19:07:04 <ihope> Switch-to-other-process can be done with interrupts?
19:07:48 <ihope> The process invokes a certain interrupt which switches to the other process without help from the kernel?
19:08:19 <SevenInchBread> no... the kernel handles the interupts. So it's like a system call in certain regards
19:08:47 <SevenInchBread> the difference is kind of trivial anyways. system calls are interupts too
19:09:18 <ihope> Well, if we want to be able to switch to another process manually, what ways are there of doing that besides a system call?
19:10:44 <ihope> So system calls are needed?
19:11:13 <ihope> Needed for manual process switching, I mean.
19:12:03 <SevenInchBread> so.... alloc, deloc, talk, waik, and some sort of check-hardware system call(s)
19:12:30 <ihope> The permission stuff is needed unless you want almost all permission stuff to be handled by another process, which means system calls being handled by another process.
19:12:37 <SevenInchBread> you don't need enter supervisor mode... I don't think.
19:12:59 <ihope> You don't need to let processes enter supervisor mode if you provide some other way of accessing hardware.
19:13:24 <SevenInchBread> wrong... the kernel handles system calls... however it can still let another process check permissions for it
19:13:45 <ihope> Is that in response to what I just said about hardware?
19:13:59 <ihope> ...Well, no, obviously not.
19:14:17 <ihope> The kernel can indeed handle system calls, but it would need another process to do the permission thing.
19:14:36 <ihope> I guess I can't argue either way about that.
19:15:00 <ihope> Except that you still need some level of permissions in the kernel, even if it's just an omnipotence flag.
19:15:18 <ihope> Services are for inter-process communication. How else are you going to do that?
19:15:49 <ihope> Well... I guess you could share memory.
19:15:52 <SevenInchBread> services are names... set to processes. Not too terribly kernel-required
19:16:23 <ihope> What else is going to handle them?
19:16:40 <ihope> How else will a process send a message to the process that handles them?
19:17:19 <ihope> Will it send a message to the process telling it to send a message to itself?
19:18:34 <ihope> How else will a process send a message to the process that handles them?
19:18:40 <ihope> That handles messages, I mean.
19:20:53 <ihope> And what handles those names? The kernel?
19:22:18 <ihope> Can you think of a way it could be otherwise?
19:22:56 <SevenInchBread> either that... or you could just have a process that handles "services"
19:23:49 <ihope> If names are handled by the kernel, and you let processes have multiple names, and then call the names services...
19:24:23 * ihope scratches "grab service"
19:25:05 * SevenInchBread refuses to call anything "sevice"... through sheet pig-headed dislike of the word.
19:26:09 <ihope> How about calling them interfaces, then?
19:26:34 -!- nooga has quit ("Lost terminal").
19:27:43 <ihope> Hey, that's a good idea!
19:28:25 <SevenInchBread> or if we want to sound more intellectual... we can go with "memes"
19:28:43 <ihope> Why would we do that?
19:29:07 <ihope> How about we call them vistas?
19:29:37 <ihope> Calling them names sounds fine.
19:30:13 <ihope> So have we concluded that "invoke name, register name, unregister name" are kernel-worthy?
19:30:50 <SevenInchBread> not sure about invoke name... isn't that the same as switch-process?
19:31:59 <ihope> Invoke name sends stuff to a process, switch switches to that process so it can handle the stuff.
19:32:04 <ihope> And what's your idea?
19:32:12 <SevenInchBread> permissions.... can be a set of programs that must return a success for a certain program.
19:33:50 <ihope> Permissions can be handled by having every process without the "omnipotent" flag invoke a name and switch instead of actually doing the system call.
19:34:40 <SevenInchBread> so... invoke("canRead", 5, some/file) ...which shoots off a series of processes that either exit with success or failure
19:35:08 <SevenInchBread> these processes could in turn.... do things like invoke("has flag", 5) ...and fail or succeed bassed on that
19:35:14 <ihope> Why shoot off a series of processes when you can just invoke one name?
19:35:28 <ihope> One name which handles everything else?
19:36:23 <SevenInchBread> yeah... canRead can be registered to one process... which handles all the other processes... or whatever
19:37:01 <SevenInchBread> but yeah... my basic idea is to have flags... for putting values on processes and files.... but with a "permission check" being an operation that checks a number of registered processes for a success or failure
19:37:24 <SevenInchBread> so you could expand or decrease the meaning of certain permission checks
19:37:43 <ihope> Would this be part of the kernel?
19:37:49 <SevenInchBread> hehe, sorry, just finding any possible way to add potential play-around-ability.
19:38:17 <SevenInchBread> not really... the only part that's a system call would be the invoke-name part
19:38:26 <ihope> If not, you've nicely reduced the permission system calls to "get omnipotence flag" and "set omnipotence flag".
19:39:23 <ihope> Enter supervisor mode, create process, switch to other process, end time slice, get omnipotence flag, set omnipotence flag, invoke name, register name, unregister name, allocate memory, deallocate memory, create process?
19:39:35 <ihope> SevenInchBread: so that we can control the omnipotence flag?
19:40:33 <ihope> Is the kernel going to invoke a process in order to determine whether a process is omnipotent?
19:40:44 <ihope> Sounds easier to just have a flag for it.
19:41:02 <SevenInchBread> >.> makes sense to me. why do we need an omnipotence flag though?
19:41:42 <ihope> Do you want to make all processes omnipotent?
19:42:06 <ihope> Do away with permissions completely and let any process do anything.
19:43:13 <SevenInchBread> -shrug- sounds like we could integrate that into the rest of the permissions stuff....
19:44:04 <ihope> Well, the "big permission handler process" checks for permission and then makes the call, right?
19:44:34 <ihope> If we try to integrate that into the rest of the permission stuff, the call that the BPHP makes has to go through the BPHP.
19:44:53 <SevenInchBread> that execute a number of programs... to check for a certain condition.
19:46:27 <ihope> You mean the process says "yes" or "no" instead of making the call itself?
19:46:36 <SevenInchBread> and then the canread process executes a number of other programs that have been configured to it... the default one being something like invoke("hasflag", some/file, "readable")
19:47:46 <SevenInchBread> what the permission allows control of... is entirely dependent on when and where it is being checked
19:49:06 <SevenInchBread> ...it also gives you the option to make your own permissions... and use them as you please.
19:49:07 <ihope> Well, we may not want the process to have to exit every time it has to give a yes/no answer.
19:49:49 <ihope> Maybe we could have an "allow/deny" system call.
19:49:56 <SevenInchBread> that's true... I've been thinking of ways to give processes the ability to send replies to specific requests... instead of spitting out its answers to a single queue...
19:51:26 <ihope> Actually, "allow/deny/sdeny", sdeny denying the request but not telling the process that it's been denied.
19:52:13 <ihope> <ihope> Maybe we could have an "allow/deny" system call.
19:52:53 <SevenInchBread> I mean.. I don't see how allow/deny makes any sense as syscalls
19:53:11 <ihope> <SevenInchBread> that's true... I've been thinking of ways to give processes the ability to send replies to specific requests... instead of spitting out its answers to a single queue...
19:53:22 <ihope> allow/deny/sdeny is how you send the reply.
19:53:38 <SevenInchBread> no no... I mean... generic replies... not just allow or deny
19:54:04 <ihope> Maybe plain old allow/deny, and make the BPHP tell the process the result of the system call?
19:54:26 <SevenInchBread> like... if A send "ls" to B... then B will receive the message in its message box... and then be able to reply to that message with "hello \n world \n"
19:54:56 <ihope> That's what I've been saying.
19:55:44 <ihope> A makes the system call, B gets it, B allows or denies it, B sends the result back to A.
19:56:05 <ihope> We also need to be able to set an active/inactive flag on processes to make sure that they don't check the result of a system call before there is a result.
19:56:32 <ihope> Is what you said related to handling permissions, then?
19:56:48 <SevenInchBread> you can handle that with polling... and a "waitreply" ability (not necessarily a system call... but an option in the IPC api)
19:57:19 <SevenInchBread> I mean... the reply thing will be used to answer permission requests... but that's not its specific purpose.
19:57:24 <ihope> I'm starting to confuse myeslf.
19:58:06 <SevenInchBread> so "calling" a process is a combination of sending a message and then immediately waiting for its reply.
19:58:28 <ihope> Let's pick up on this later, shall we?
19:58:30 <SevenInchBread> not sure if the kernel should be responsible for replies though....
20:10:06 <oklopol> what's it called in math when something is part of a group or whatever they're called in math?
20:10:23 <oklopol> like x E R with a cool-looking e & r
20:11:49 <ihope> oklopol: being an element of a set?
20:11:54 <ihope> Or a member of a set.
20:13:01 <ihope> The set containment symbol in Unicode is ELEMENT OF, or U+2208.\
20:14:13 <oklopol> does the 'set containment symbol' have a _more official sounding_ name?
20:19:28 <ihope> Just like there's no "more official-sounding" name for the Unicode character INFINITY.
20:21:08 <oklopol> that's a lot more official
20:40:27 <SevenInchBread> so... I know how we can encapsulate permissions into all the kernel functions
20:40:29 <Bigcheese> Are we still on about microkernel?
20:41:23 <oklopol> lolzbig is much better that infzorz, i shall use that one from now on
20:41:51 <SevenInchBread> ihope, see... applications won't be system calls normally... operations like alloc and dealloc can be handled by userspace processes that have special access to the kernel.
20:42:09 <ihope> And what would that special access consist of?
20:42:13 <SevenInchBread> something like a "givemagichat" syscall... that gives a process access to the basic syscalls.
20:43:05 <SevenInchBread> so you have a process called "mm"... that handles memory allocation, and has the magic hat
20:44:39 <SevenInchBread> oh... and for the problem we've been having with our name: Abrasax can be the name of the entire operating system... and Sophia can be the name of the microkernel project.
20:45:34 <ihope> As long as there aren't any interfering trademarks on "Sophia".
20:47:28 <lament> actually, I have trademarked "Jesus Christ".
20:47:49 <GregorR> I've trademarked "NAME", SevenInchBread ... cease and desist.
20:48:04 <ihope> USPTO.gov has 129 trademarks matching "Sophia".
20:48:23 * SevenInchBread is so fed up with copyright stuff at this point... that he just disregards the cnocept all together.
20:49:12 <ihope> Multiple of them are for just "Sophia",.
20:50:02 <ihope> You ignore copyrights?
20:50:11 <Bigcheese> SevenInchBread: just like most ppl
20:50:36 <SevenInchBread> civil disobedience is the best way to bring about a change... if I want to get rid of copyright altogether - I stop obeying copyright laws.
20:50:43 <ihope> I often obey copyright law.
20:51:27 <Bigcheese> GNUHurd is the most compleet microkernel atm right?
20:51:39 <SevenInchBread> pretty soon... if everyone stops obeying copyright laws (which is happening more often)... then copyriight won't be around anymore.
20:51:45 <GregorR> Bigcheese: Mmmmmmm, doubtful ... but maybe.
20:52:05 <SevenInchBread> there's quite a few fully complete microkernels out there.
20:52:46 <Bigcheese> l4 is, thats what GNUHurd is bassed on
20:53:12 <ihope> Now, trademark and copyright aren't the same thing, naturally.
20:53:19 <ihope> Trademark is pretty much a good thing.
20:53:28 <Bigcheese> Unless it's used for retarted things
20:54:03 <ihope> Bigcheese: what do you mean, used for retarded things?
20:55:05 <ihope> Indeed, those can be annoying.
20:55:29 <Bigcheese> Same with pattents, just about every thing is pattented atm.
20:55:32 <lament> trademarks are highly annoying
20:55:39 <lament> the company i'm working for
20:55:45 <SevenInchBread> patents are retarded. They don't encourage competition at all.
20:56:07 <lament> has an online app that we wanted to call "Vista"
20:56:15 <ihope> Bigcheese: tabs on computers or actual tabs?
20:56:22 <lament> and then we were threatened to be sued by... Visa
20:56:29 <lament> and had to change the name
20:57:15 <ihope> Hmm. Trademark 74423619 is on "SOPHIA" as applied to "computers and computer programs", but it's dead.
20:57:19 <SevenInchBread> ihope, hmm.... with this layout... we can take names out of the kernel. Names are purely a userspace invention...
20:57:33 <SevenInchBread> ihope, the "syscalls aren't usually called directly by applications" layout
20:58:27 <ihope> There's also a trademark on "SOPHIA" as applied to "computer hardware, in-circuit emulators and computer software relating to microprocessor development systems".
20:58:32 <ihope> It's number 74148425.
21:00:25 <SevenInchBread> we've got alloc, dealloc, magichat, demagichat, kill, hmmmm.... what else do we need... fork?
21:00:57 <ihope> Either we use a different name or we risk trademark infringement.
21:01:04 <SevenInchBread> except I don't like the name kill... let's call it zap. It sounds more like wizardy than murder.
21:01:27 <ihope> SevenInchBread: maybe you could create a list of system calls and exactly what they do and show it to me.
21:01:36 <SevenInchBread> ihope, if we risk trademark infringement... then I'm fully liable. That sound good to you?
21:02:24 <ihope> Serial number 73501942 is for "SOPHIA" as applied to "Computer System Analyzers and Peripherals Therefor", and it's dead.
21:04:05 <SevenInchBread> ihope, the root process.... the one that first has magichat set can be called overmind... at PID 0
21:04:32 <SevenInchBread> PID 1 can be Mother... serving a purpose similar to init... as the parent of all top-level processes
21:05:22 <ihope> You could write a spec for this kernel.
21:13:44 <SevenInchBread> ... I've never used memory allocation manually... so I need to read up on it to learn how it's usually done through system call
21:15:37 -!- jix__ has joined.
21:18:15 <SevenInchBread> ihope, hmmmm... I wonder how alloc and dealloc should work... I think the mm process could handle a lot of the allocation algorithm... and maybe the kernel could provide the basic "create a block of memory within a certain range of memory addresses" syscall for it
21:19:57 <GregorR> That's the Windowsesque way.
21:20:11 <SevenInchBread> and mm could provide the actual interface that programs would use.
21:20:58 <SevenInchBread> GregorR, Any problems with it? I mean... I don't expect actual application programs to use that... just the mm process.
21:21:16 <GregorR> I don't have any positive or negative opinion on it *shrugs*
21:21:21 <GregorR> It certainly would work fine.
21:22:52 <GregorR> That extends the break. There is a single "line" in the memory space between "allocated" and "unallocated" memory.
21:23:53 -!- jix has quit (Read error: 110 (Connection timed out)).
21:25:33 <SevenInchBread> well... I'll leave it up to mm... and just have this one as the most fundamental mechanism.
21:25:42 <SevenInchBread> It's probably the most basic form of memory allocation I could think of.
21:27:58 -!- ihope has quit (Nick collision from services.).
21:28:32 -!- ihope has joined.
21:59:50 <SevenInchBread> ihope, hmmm.... I'm trying to organize stuff in a way that makes sense... like...
22:00:15 <SevenInchBread> I've got "address spaces" and "threads"... as different concepts.... with a process being a combination of the two.
22:01:42 <bsmntbombdood> what happens when a bunch of guys who know nothing about OS design try to design an OS
22:07:10 -!- calamari has joined.
22:08:33 -!- Sgeo has joined.
22:38:19 <SevenInchBread> ihope, hmmm... what kind of operations does Linux allow on threads?
22:41:20 <Bigcheese> But basicly start, stop, eatcheese
22:42:24 <Bigcheese> join gets the return value of a thread and frees it's memory
22:42:44 <SevenInchBread> >.> hmmm... threads have memory independent of the process?
22:42:51 <SevenInchBread> I thought all threads on a process shared the same memory.
22:43:40 <SevenInchBread> ah... you mean... "the memory containing information about the thread"
22:44:12 <Bigcheese> like if you declare an int in a function
22:44:32 <Bigcheese> (well, it could be in a register, but w/e
22:45:05 <Bigcheese> http://en.wikipedia.org/wiki/Stack-based_memory_allocation
22:49:38 -!- sebbu2 has joined.
22:57:29 -!- sebbu has quit (Read error: 60 (Operation timed out)).
23:13:32 <SevenInchBread> Bigcheese, ...hmmm... does the kernel need to deal with the threads stack... or is it something that could be implemented another way?
23:14:55 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
23:15:15 -!- nazgjunk has joined.
23:33:30 <ihope> bsmntbombdood: so you're saying we're probably going to create a terrible operating system?
23:35:07 <ihope> Bigcheese: do you know anything about operating system design?
23:37:21 <ihope> If so, I will... make some odd half-attempt at paying you to help us out!
23:43:57 -!- sebbu2 has quit (Client Quit).
23:55:12 -!- ihope__ has joined.
00:06:34 <SevenInchBread> I think we could make a good nanokernel.... they're much easier to develop.
00:08:47 <ihope__> Let's make a Multiboot-compliant boot loader that runs on top of GRUB!
00:10:35 <GregorR> ihope__: So, multiboot compliant in both senses? :P
00:10:53 <SevenInchBread> I think a lesson could be had from hardware interupts.... you could fill the entire system with a number of asynchronous callback sturcture things....
00:11:18 <SevenInchBread> instead of doing stupid things like.... polling the kernel constantly for hardware signals.
00:11:22 <ihope__> Actually, can't GRUB run directly from GRUB?
00:11:44 <ihope__> SevenInchBread: poll the kernel for hardware signals. If you didn't get any, forfeit your time slice.
00:12:00 <ihope__> SevenInchBread: GRUB has a chainloader feature.
00:12:31 <SevenInchBread> bsmntbombdood, ...did you intend for that to sound smart-ass-ish? :P
00:12:32 -!- ihope has quit (Connection timed out).
00:13:34 <SevenInchBread> ihope__, in my experience... polling never works as good as interrupts and exceptions and the like
00:13:36 <bsmntbombdood> SevenInchBread: system calls are powered by interupts (at least on x86 linux)
00:14:00 <SevenInchBread> bsmntbombdood, yes I know... but you can plug any number of callbacks onto them.
00:14:08 <bsmntbombdood> you put the system call number in one of the registers and call int 0x80
00:16:04 <SevenInchBread> hooks are probably one of the most awesomel plug-in-new-features things I've ever seen.
00:19:16 -!- Pikhq has quit (Read error: 110 (Connection timed out)).
00:30:24 -!- ihope__ has changed nick to ihope.
00:44:50 -!- Figs has joined.
00:45:07 <Figs> I got a nice bit of code for you all today
00:45:08 <Figs> http://rafb.net/p/j5n3ZG98.html
00:45:21 <Figs> good luck figuring out what it does (without compiling)
00:46:20 <Figs> I have no fucking idea.
00:46:24 <Figs> but it compiles
00:46:37 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
00:49:50 <Figs> I ran it to see what it does
00:50:01 <Figs> and I can't for the life of me figure out how the output came out as it did
00:54:48 -!- Figs has quit (Read error: 104 (Connection reset by peer)).
00:54:54 -!- Figs_ has joined.
00:54:54 -!- Figs_ has changed nick to Figs.
00:57:53 <Figs> got disconnected there
00:58:00 -!- Figs has changed nick to F.
00:58:04 -!- F has changed nick to Figs.
01:04:23 <Figs> the first part of it, at least
01:30:14 <SevenInchBread> ihope, since the filesystem will be versioned... it makes it nearly impossible to lose data due to a faulty operation.
01:30:44 <ihope> Are we taking a break from the kernel stuff?
01:30:57 <ihope> Say, I don't suppose you have a spec for the kernel...
01:31:09 <SevenInchBread> in fact... you could probably define macro-like operation scripts... and if any of the smaller parts fail... the filesystem process automatically reverts the operation.
01:31:34 <SevenInchBread> but... it wasn't complete... as there was a lot of unanswered things in it.
01:31:47 <SevenInchBread> which means I'll probably never summon the willpower to write another.
01:52:59 <ihope> They say something about fruits of labor. I dunno what.
01:53:20 <ihope> First you decide whether you want to do something, then you act on your decision.
01:59:50 <SevenInchBread> I decided that I -didn't- want to rewrite that kernel spec... because I'm a lazy bastard... and then acted (gleefully) upon my decision.
02:30:38 <Bigcheese> ihope: I know nothing about OSs :P
02:32:39 <ihope> You, bsmntbombdood?
02:35:17 <Bigcheese> see, the problem with operating systems, is you have to write 34930493094830984 drivers for it to be usefull
02:35:35 <ihope> Actually, you only need 3.
02:35:59 <ihope> Actually, like 85% of statistics, that number was pulled out of the space between my ears.
02:36:10 <ihope> Your dad wrote an operating system, eh?
02:37:17 <Figs> I need a funny one-liner or couplet
02:38:31 <Figs> obfuscated program I'm working on
02:38:34 <Figs> (as the output)
03:15:35 -!- Pikhq has joined.
03:49:52 -!- GreaseMonkey has joined.
03:56:57 <Figs> bah ba bah di baaa bah... Bah?
04:06:49 <ihope> Gimme an A! Gimma a T! Gimme a P! What's that spell? ATP!
04:08:08 <GregorR> Gimme a P! Gimme an O! Gimme an R! Gimme an N!
04:08:23 <Figs> at first I thought you were spelling PORK
04:08:28 <Figs> but then I saw then N
04:09:01 <Figs> Gimme an R! Gimme an O! Gimme an F! Gimme an L!
04:12:20 <Figs> Gimme an S! Gimme an T! Gimme an F! Gimme an U!
04:12:45 <SevenInchBread> Bigcheese, either that... or you create a wrapper that can interface with the 34930493094830984 drivers that already exist.
04:13:22 <GregorR> Gimme a H! Gimme a E! Gimme a L! Gimme a L! Gimme a O! Gimme a comma! Gimme a space! Gimme a W! Gimme a O! Gimme a R! Gimme a L! Gimme a D!
04:15:47 <Figs> Gimme a Gimme an L when I have no Z in X.
04:16:21 <ihope> For characters we can use their Unicode thingies.
04:16:59 <ihope> Gimme a LATIN CAPITAL LETTER H! Gimme a LATIN SMALL LETTER E! Gimme a LATIN SMALL LETTER L! ...
04:17:21 <GregorR> Gimme a UNICODE CHARACTER 0133!
04:17:53 <ihope> No, it has to be Gimme a LATIN SMALL LIGATURE IJ!
04:19:11 <ihope> Gimme a LATIN CAPITAL LETTER F! Gimme a LATIN SMALL LETTER R! Gimme a LATIN SMALL LETTER A! Gimme a LATIN SMALL LETTER N! Gimme a LATIN SMALL LETTER C WITH CEDILLA! Gimme a LATIN SMALL LETTER A! Gimme a LATIN SMALL LETTER I! Gimme a LATIN SMALL LETTER S!
04:19:52 <SevenInchBread> We've got <flag>, yes we do! we've got <flag>, how bout you?
04:19:56 <ihope> For outputting BugSophia: Gimme a RUNIC LETTER STAN!
04:19:58 <Figs> Gimme a JAPANESE KANJI ichi.
04:20:08 <ihope> Bigcheese: no, Français.
04:20:53 <Figs> Gimme a JAPANESE KANJI KIN.
04:20:54 <ihope> Figs: that's a Unicode character?
04:21:42 <ihope> Gimme a RUPTURE, SPLIT APART, COLLAPSE!
04:22:10 <ihope> So what's this JAPANESE KANJI ichi look like in UTF-8?
04:23:00 <SevenInchBread> ....you know... they don't have to be gimme a somethings
04:23:08 <Bigcheese> im trying to get mIRC to send unicode
04:23:17 <ihope> SevenInchBread: only the characters. :-)
04:23:21 <GregorR> mIRC can barely /receive/ Unicode :P
04:23:57 <ihope> Gimme a <CJK Ideograph, First>!
04:24:17 <Figs> Gimme a KOREAN man!
04:25:48 <Figs> Gimme a KOREAN HANGEUL
04:26:01 <Figs> http://www.omniglot.com/images/langsamples/smp_hangeul.gif
04:26:05 <ihope> Gimme a HEBREW LETTER ALEF! Gimme a LOW LINE! Gimme a DIGIT ZERO!
04:26:29 <SevenInchBread> <team name> don't <do something that rhymes with the last flag name>
04:26:35 <Figs> We've got Spirt! Yes we do! We've got Spirit, how `bout you? <branch YES> : <branch NO>
04:27:23 <Figs> what will we call this esolang?
04:27:31 <Pikhq> ihope: The kanji "Ichi" looks something like this (my IME is temporarily borken): -
04:27:55 <Pikhq> Bigcheese: Well, yeah.
04:28:29 <Figs> that's not question marks :P
04:28:42 <ihope> Pikhq: Unicode calls that thing a <CJK Ideograph, First>.
04:29:06 <Figs> whoo. Dawkins.
04:29:12 <Figs> two hour video
04:29:32 <Pikhq> Figs: Your IRC client is borken: it doesn't send Unicode at all.
04:29:49 <Figs> but I've talked to people in Unicode
04:33:21 <Figs> I get a w/ ~, box, ", a~, box, <<, a~, ... etc
04:33:41 <Pikhq> Figs: Do you happen to *use* Unicode at all?
04:34:02 <Figs> Me personally? or the software I use?
04:34:56 -!- Figs has quit (Connection reset by peer).
04:35:15 <Pikhq> BTW, that's こんにちは。
04:36:06 <Bigcheese> i have to set an unreadable font for it to work
04:36:14 -!- Figs_ has joined.
04:36:19 <Figs_> wtf? "There's no great leap, really. You can think of chimps as MS-DOS and humans as Windows 2000."
04:36:46 <Pikhq> Figs_: Inapt comparison. ;)
04:36:59 <Pikhq> Perhaps chimps == Windows, humans == anything else? :p
04:37:00 <Figs_> I'm quoting a dawkins video
04:38:01 <Pikhq> In other news, 1 = 2; all mathematicians resign.
04:38:27 <Pikhq> You forgot a verb.
04:38:48 <Figs_> It doesn't show up here
04:38:54 <Pikhq> Either "です" or "だ".
04:39:23 <Bigcheese> im reading http://www.guidetojapanese.org/
04:39:35 <Pikhq> What you're saying is roughly equivalent to "I student."
04:39:58 <Pikhq> You actually screwed the second one up even more.
04:40:07 <Figs_> which version of Japanese are you using?
04:40:16 -!- Figs_ has changed nick to Figs.
04:40:24 <Pikhq> Figs_: He must be using /dev/urandom/Japanese.
04:40:32 <Figs> there are multiple ways of encoding Japanese :|
04:40:34 <Pikhq> Bigcheese: Verbs in Japanese go at the *end* of the sentence.
04:40:50 <Pikhq> Figs: He said "watasi da gakusei."
04:41:29 <Figs> and no desu :P
04:41:42 <Pikhq> In the wrong place.
04:41:50 <Pikhq> (da is plain form desu, after all)
04:42:12 <Pikhq> That, while informal, is perfectly correct.
04:42:28 <Figs> he meant "Watashi wa gakusei da."
04:42:42 <Pikhq> And he finally got around to saying just that.
04:42:57 <Figs> never heard of a cast system
04:43:00 <Figs> another term maybe
04:43:14 <Bigcheese> http://en.wikipedia.org/wiki/Cast_system
04:44:01 <Figs> that's usually "caste"
04:44:14 <Figs> I thought you meant like
04:44:37 <Figs> (cheese*)&Swiss;
04:44:46 <Figs> And so I was scratching my head there :P
04:44:48 <Bigcheese> thats what i was thinking when i wrote it
04:45:27 -!- RodgerTheGreat has joined.
04:46:13 <Figs> talking about Nihongo, Unicode, and making a cheering esolang
04:46:30 <Figs> (although I think they were joking about that)
04:46:49 <Figs> Nihon = Japan, go = language
04:47:02 <RodgerTheGreat> I can see how that can lead into discussions about Unicode
04:47:14 <Figs> it was sort of the other way
04:47:22 <Figs> Cheering -> Unicode/Japanese
04:47:44 <Figs> oh, you're gonna do it?
04:48:18 <Figs> well, we have possible branch and print...
04:48:22 <Figs> what else do we need...?
04:49:24 <RodgerTheGreat> "Gimme a [single letter variable names] ... What does it spell?" could be some kind of group evaluation
04:49:25 <Figs> Gimme an H! Gimme an E! Gimme an L! Gimme an L! Gimme an O! Gimme a SPACE! Gimme a W! Gimme an O! Gimme an R! Gimme an L! Gimme an D!
04:49:48 <Figs> Flush the buffer? :P
04:50:04 <Bigcheese> I want a usefull lang, that looks like that :P
04:50:37 <Bigcheese> ok, first someone list out a bunch of cheers
04:50:42 <Figs> well, the What's that Spell?
04:50:45 <Figs> can be the Print
04:50:48 <Figs> and the Gimme a/an
04:50:54 <Figs> can be a way to build strings
04:51:12 <Figs> I can't hear you!
04:51:39 <Figs> use "I can't hear you!" for inpu
04:51:56 <RodgerTheGreat> "I can't hear you" could be used to repeat a block of code, perhaps?
04:51:56 <Figs> (telling the user to "Speak up" :P)
04:52:04 <Figs> that's another possibility
04:52:35 <RodgerTheGreat> but it'd need to take a parameter of some kind to be a useful (FOR...NEXT) style loop
04:52:53 <Figs> I CAN'T HEAR YOU! AGAIN! AGAIN! AGAIN!
04:53:03 <Figs> I CAN'T HEAR YOU! LOUDER!
04:53:06 <RodgerTheGreat> just a repeat isn't very handy unless we can self-modify
04:53:33 <Bigcheese> Gimme an INT how do you spell it? i
04:58:51 <RodgerTheGreat> "IF YOU THINK WE'RE THE BEST, [insert enthusiastic action here]"
04:59:07 <RodgerTheGreat> actions could include standing up, clapping, cheering, etc
04:59:26 <RodgerTheGreat> and then you could have "EVERYBODY STANDING UP, [action]" and the like
05:00:08 <RodgerTheGreat> ooh! you could also have certain actions be triggered by someone in the "game" "scoring"
05:04:36 <Bigcheese> If you think i is 5, Go and do foo!
05:05:39 <RodgerTheGreat> some cheers start out with an "exposition" of sorts- like "Hey, we're from [insert high school], and we're ready to rock" etc.
05:05:56 <RodgerTheGreat> that could be used for variable declaration and initialization of some kind
05:06:35 <RodgerTheGreat> and if we provide enough control structures, function calls aren't really *necessary*
05:06:51 <Bigcheese> but hard too do in esoteric i guess
05:07:26 <RodgerTheGreat> esoteric functions are only for when you want to do stuff recursively, which often serves as a replacement for iteration
05:10:11 <RodgerTheGreat> flow control-wise, we could get by with just a "repeat block X times" structure and a "start over" command, given a couple flavors of conditional
05:12:38 <Bigcheese> all you realy need is an if and a jump
05:13:58 <RodgerTheGreat> actually, if you have an unconditional jump, math operations, variables, and a halt instruction, you can also be TC
05:13:59 -!- Pikhq has quit ("Leaving.").
05:14:18 <RodgerTheGreat> that unconditional jump can just be a while(true) {} loop, even
05:14:35 <Bigcheese> ya, but i dont want this to be harder than it must be :P
05:15:27 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
05:15:57 -!- nazgjunk has joined.
05:17:30 -!- Pikhq has joined.
05:21:50 <calamari> gmail working for anyone else?
05:27:22 -!- Pikhq has quit ("Leaving.").
05:28:52 <calamari> guess my connection is just flaky then
05:29:39 -!- pikhq has joined.
05:51:22 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
05:51:57 -!- nazgjunk has joined.
05:54:52 -!- ihope has quit (Connection timed out).
06:05:14 -!- Figs has left (?).
06:46:05 -!- Sgeo has quit ("Ex-Chat").
06:48:14 -!- NefariousPrior has joined.
06:48:31 -!- calamari has quit ("Leaving").
06:50:54 <pikhq> In *theory* there could be a whole lot of useful ones.
06:51:08 <RodgerTheGreat> there are a few things that are equivalent to various commandline utilities
06:51:11 <pikhq> In practice, we've got the Lost Kingdom, some Brainfuck implementations, and a hell of a lot of fun.
06:51:43 * pikhq has *written* a Brainfuck compiler in Brainfuck.
06:51:51 <pikhq> . . . Fine, I cheated, using BFM. . .
06:53:20 <pikhq> It is implemented very inefficiently, though. . .
06:54:10 <RodgerTheGreat> BF is turing complete, macro systems for BF exist, people have too much free time. These three facts, taken together would tend to indicate that almost *anything* you can do with just stdio and stdout, somebody has coded or will code in BF.
06:56:26 <RodgerTheGreat> I'm certain there will be an explosion of nontrivial applications in BF once somebody finished a reasonably complete C->BF compiler
07:09:51 -!- Sukoshi has joined.
07:12:45 <Sukoshi> I'm going to (probably) link to a blog post where I spew a lot of kool-aid tonight.
07:12:54 <Sukoshi> About what I feel is the future of programming.
07:13:48 <Sukoshi> Well, it's a conclusion I've come to about the direction of programming, and this isn't just a hopeful-programmer type of thing either.
07:13:57 <Sukoshi> (Like thinking magically that Pascal will come back from the grave.)
07:14:41 <Sukoshi> Well, that's the hopeful part of me :P
07:14:41 <RodgerTheGreat> "if you asked me what programming would be like 100 years from now, I couldn't tell you what the language would be like
07:15:31 <RodgerTheGreat> if you ask me, the future of programming is going to be a language free of the plague of undefined behavior, one way or another
07:16:07 <Sukoshi> My essential thrust is that it will be an interactive one (like Forth, Smalltalk, and Lisp).
07:16:20 <Sukoshi> Except I'll be developing the thesis more effectively by giving a whole bunch of modern examples.
07:16:47 <Sukoshi> And yes, Windows is a stepping stone in it :P
07:16:51 <RodgerTheGreat> does this imply hardware more suited to these languages?
07:17:39 <RodgerTheGreat> Smalltalk and Lisp aren't very efficient on normal computers at a hardware level. FORTH, on the other hand *belongs* on bare metal.
07:17:43 <Sukoshi> In terms of on-the-metal implementations today: Forth has ColorForth (which still seems very hobbyist), Lisp has Movitz (which is going somewhere), and Smalltalk has something whose name I forgot (which is the most mature of them all by a long shot).
07:18:00 <Sukoshi> Smalltalk is, from what I've read, because the language is based off a VM.
07:18:15 <Sukoshi> Lisp isn't, but the designs for the old Symbolics processors still exist so.
07:18:51 <Sukoshi> Yup. One guy is writing simulators for it.
07:19:03 <Sukoshi> Oh, links for this sort of thing:
07:19:21 <RodgerTheGreat> I'm not saying hardware to run those languages is impossible, but my point is about their performance on commodity hardware: x86 and PPC.
07:20:02 <Sukoshi> http://common-lisp.net/movies/slime.mov Slime/CL, http://www.simberon.com/smalltalkdemo.avi VW Smalltalk, http://www.lemonodor.com/archives/misc-gems/lispm.mov.gz Lisp Machine movie.
07:20:35 <Sukoshi> My gut tells me that Smalltalk will be the one used, only because it seems the most mature in almost every arena, even though I'm a Lisper at heart.
07:22:43 <RodgerTheGreat> it's really funny watching the Slime/CL video, because the terminal window looks like one of mine hovering over the browser window
07:23:10 <Sukoshi> But I mean, interactive programming is just such a concept. The paper's point is to prove that it's more than just an academic concept.
07:24:40 <Sukoshi> I feel sad that the Forth community and Lispers have been unable to get much work done to create a complete solution.
07:25:10 <RodgerTheGreat> mmm. I still see the need for a language to fill C's niche, if not C itself. Languages like this will never be suitable for embedded systems programming, a rising field, and I don't think they'll be very effective for things like writing drivers.
07:25:14 <Sukoshi> Recently Lisp's really been thrumming but Forth really died on every platform but embedded for reasons I can't see other than the lack of a standard library and nobody's motivation to write one.
07:25:27 <Sukoshi> Well that's true. My paper is meant for the *desktop*.
07:26:07 <RodgerTheGreat> ah. well, in that case, aside from the underpinnings written in a language like what I'm developing, an interactive programming language would be highly advantageous
07:27:16 <Sukoshi> I have a feeling pikhq will disagree with some points because I do try and fit closed-source in it too, only because I don't think realistically that everything can be open. (Of course, just about everything the programmer cares about can be open though.)
07:28:01 <RodgerTheGreat> rather like the discussions we had regarding an esoteric OS- we need a low-level language suited to compilation into machinecode, which is then used to bootstrap a profusion of higher level languages in which useful software is written
07:28:31 <Sukoshi> What can I say? I love my private property :P
07:28:54 <Sukoshi> (I'm a social capitalist. I believe that socialism is the means for a cleaner capitalism.)
07:29:05 <RodgerTheGreat> I don't feel that anyone should be *obligated* to release the source of something they make. It should remain their choice.
07:29:58 <Sukoshi> I'm going to plug in the end, and not because I'm an Apple fan (I don't own any Apple products, in fact), Apple because (and I'll explain why) they're doing the most work to make this vision happen with Google at close second.
07:29:59 <RodgerTheGreat> enforced Open-Source is incompatible with *personal* freedom, which is part of my beef with the GPL and its viral propagation tactics
07:30:35 <Sukoshi> GPL is nice, but some of its advocates are a bit on the GPL-way-or-high-way bit.
07:30:45 <RodgerTheGreat> I personally make everything I release available under the WTFPL or retain it as my own property- one or the other.
07:31:19 <RodgerTheGreat> I say, if you're only going to give source away conditionally, you should ask yourself why you're giving it away in the first place. ;)
07:31:56 -!- NefariousPrior has left (?).
07:32:04 <Sukoshi> I feel that it should be a moral obligation for people to release source, but not a physical one. And I can definitely see situations where open source is not profitable. But those situations are a lot rarer than what is considered ``safe'' by today's standards.
07:33:56 <RodgerTheGreat> as an individual, I freely give away most of my tinkerings. However, as a company, I'd view any GPLed code as a liability- it's just a ticking time-bomb that can take away my ability to control what I make and profit fairly from my own work.
07:35:18 <RodgerTheGreat> in addition, I have some serious doubts as to the reliability of the FSF.
07:37:11 <RodgerTheGreat> y'know, this lispmachine video reminds me a little bit of Sketchpad. Are you familiar with that system?
07:38:40 <Sukoshi> FSF was actually very very good, once upon a time.
07:39:08 <RodgerTheGreat> there's a video of sketchpad online- rather long, but an absolutely fascinating piece of history
07:39:11 <Sukoshi> Nowadays they've sorta gone complacent (and the real source of open reliability has shifted to Ubuntu, which I have a few philosophical problems with), but they were great once upon a time.
07:39:50 <Sukoshi> I'll spend the rest of this hour writing an annoying essay about poetry.
07:40:01 <RodgerTheGreat> I just see them as untrustworthy, in light of the power they wield via the GPL and its adherents.
07:40:22 <Sukoshi> Ah. That is unmistakably true.
07:40:37 <Sukoshi> Geeks tend to be odd that way. They all seem to unanimously trust Google too.
07:40:44 <Sukoshi> Heaven forbid if Google turns on the open community.
07:41:17 <RodgerTheGreat> I actually hope the GPLv3 generates a rift in the community- it could help immensely to destabilize an increasingly consolidated open-source community and allow for more variety.
07:41:54 <RodgerTheGreat> oh, Google undoubtedly will eventually "eat its parents" in a metaphorical sense- the question is *when*.
07:42:14 <Sukoshi> Well, Geeks don't seem to learn from past failures.
07:42:43 <RodgerTheGreat> there is a difference between "obsessing over past failures" and "learning from past failures", eh? :)
07:46:10 <RodgerTheGreat> well, it was nice having a chance to talk to you- I think I need to crawl into bed before I pass out. I'll be certain to check out your treatise tomorrow or whenever you provide a link
07:46:35 -!- RodgerTheGreat has changed nick to RodgerTheZzz.
07:59:23 -!- mtve has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:19:34 -!- ShadowHntr has joined.
08:41:35 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
08:42:04 -!- nazgjunk has joined.
08:44:44 -!- sebbu has joined.
09:05:27 -!- pikhq has quit (Read error: 60 (Operation timed out)).
09:18:03 -!- ShadowHntr has quit (Client Quit).
09:21:22 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
09:22:04 -!- nazgjunk has joined.
09:51:33 -!- mtve has joined.
10:31:35 -!- sebbu2 has joined.
10:32:25 -!- puzzlet has joined.
10:50:23 -!- sebbu has quit (Read error: 110 (Connection timed out)).
11:00:32 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
11:41:25 -!- GreaseMonkey has quit (Read error: 110 (Connection timed out)).
12:29:13 -!- sebbu2 has changed nick to sebbu.
12:43:01 -!- Sukoshi has quit ("じゃな、ブロッグのことを後で話すね。").
12:55:06 -!- jix__ has joined.
12:59:38 -!- jix__ has quit (Client Quit).
12:59:59 -!- jix__ has joined.
13:21:08 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
13:21:42 -!- nazgjunk has joined.
13:33:42 -!- nazgjunk has quit (Remote closed the connection).
13:43:00 -!- nazgjunk has joined.
14:38:28 -!- ihope__ has joined.
14:38:46 -!- ihope__ has changed nick to ihope.
14:55:23 -!- pikhq has joined.
15:09:25 -!- jix__ has changed nick to jix.
15:17:03 -!- RodgerTheZzz has changed nick to RodgerTheGreat.
15:31:13 -!- Sephh has joined.
15:32:47 <ihope> I like exponentiation by squaring.
15:40:34 -!- Bigcheese has quit (Read error: 113 (No route to host)).
16:14:40 <ihope> It's useful when dealing in modular arithmetic.
16:15:47 <RodgerTheGreat> I remember how I first learned to use MOD- the redcode instruction set
16:21:24 <ihope> That stuff allows a person to calculate Graham's number.
16:21:55 <ihope> It's 87, give or take some multiple of 100.
17:49:52 -!- RodgerTheGreat has quit.
18:07:30 -!- SevenInchBread has quit ("haaaaaaaaaa").
18:10:15 -!- Sephh has changed nick to Bigcheesegs.
18:13:58 -!- RodgerTheGreat has joined.
18:17:04 <bsmntbombdood> ihope: so you know its base 10 representation ends in 87
18:18:09 <lament> and its base 2 representation ends in 1!
18:18:26 <lament> and its base 5 representation ends in 2!
18:18:31 <lament> coincidence? i think not!!!
18:19:52 <ihope> bsmntbombdood: yep.
18:26:46 <bsmntbombdood> i wonder if there's a way to efficiently calculuate a**(b**n) mod x
19:00:40 <tokigun> however you have to find y so a**(b**n) mod x == a**(b**n mod y) mod x
19:01:20 <tokigun> that is not hard thing if you know number theory
19:02:43 <oklopol> plus, you can replace a with (a mod x) of course
19:03:10 <oklopol> because (a * b)(mod x) = (a (mod x))(b (mod x))
19:04:13 <oklopol> i made a program for that just now, actually, but inserted a=30, b=30, n=80, x=7.... and it crashed, whaddyaknow
19:06:26 -!- SevenInchBread has joined.
19:22:46 -!- oerjan has joined.
19:32:00 -!- calamari has joined.
19:39:42 -!- pikhq has quit ("leaving").
19:43:07 -!- pikhq has joined.
19:43:29 -!- pikhq has quit (Client Quit).
19:43:41 -!- pikhq has joined.
20:06:32 <ihope> x^y mod n = (x mod n)^(y mod n') mod n where n' is the totient of n
20:08:52 <oerjan> it reminds me of the last time i thought about fermat's little theorem
20:10:15 <oerjan> and if i could remember the counterexample...
20:10:36 <oerjan> y = n' + 1, for a start
20:12:42 <oerjan> because for y > 1, x^y == 0 (mod n) then
20:15:40 <oerjan> so that is a counterexample for any prime p.
20:17:10 <oerjan> i.e. p^(p*(p-1)+1) mod p^2 = 0, but p^1 mod p^2 = p
20:26:36 <oerjan> i assumed so. but it works regardless - i came up with this when trying to find a totient that gave a^(t+1) mod n = a mod n, and it simply does not exist.
20:29:01 <oerjan> oh, mind you if gcd(x,n) = 1 then it works as ihope said.
20:29:57 <oklopol> isn't that te definition of totient?
20:30:12 <oerjan> because n' is the size of the multiplicative group of those
20:30:34 <oerjan> the totient is the number of x such that gcd(x,n) = 1 yes
20:31:02 <oerjan> and the order of a group element in a finite group always divides the group size
20:31:06 <oklopol> ah indeed, a bit different... i'm a bit off having learned about totient 5 minutes ago
20:32:10 <oerjan> (i.e. a^|G| = 1 for a finite group G)
20:32:37 * ihope scribbles franctic(al)ly
20:34:23 <ihope> Mm, you're sure it doesn't work when the exponent is 1?
20:34:48 <ihope> It seems to work just fine there with a modulus of 10.
20:35:03 <oerjan> you cannot make p^k mod p^2 = p with any k > 1.
20:35:32 <oerjan> ah yes, because 10 is a square-free number
20:35:40 -!- sebbu2 has joined.
20:35:50 <ihope> It works for all square-free numbers?
20:36:00 <ihope> Square-free moduli, I should say.
20:36:24 <ihope> bsmntbombdood: a square-free number is one that has no square factors except 1, I think.
20:36:39 <ihope> One that has no prime factor twice.
20:37:51 <oerjan> you can easily prove it by proving it for each prime factor
20:38:03 <oerjan> and combining with the chinese remainder theorem
20:38:41 <oerjan> because the totient of n has all p-1 as factors
20:39:51 <oerjan> this is just about what i did find out the last time i thought about fermat's little theorem a few months ago.
20:48:32 <ihope> It'd be quite nice if everything to the fourth power ended up having 1 as the last digit.
20:48:54 <ihope> Naturally, this doesn't work for things not coprime to 10.
20:49:20 <oerjan> of course, but you can use it as a test for coprimality
20:49:44 <ihope> Then again, everything does come close.
20:50:11 <ihope> Even numbers that don't end in 0 to the fourth power seem to all end in 6.
20:50:16 <ihope> Subtract 5 and you get 1.
20:50:47 <oerjan> indeed, that follows because they must be right mod 5
20:50:48 <ihope> And if it ends in 5, the result is also going to end in 5: subtract 2 twice and you get 1.
20:53:28 <oerjan> it is 1 modulo each prime that isn't a factor and 0 modulo the rest.
20:53:54 <oerjan> this is enough to find it if you know which primes are factors
20:54:14 -!- sebbu has quit (Read error: 110 (Connection timed out)).
20:54:27 <oerjan> (again, by the chinese remainder theorem)
20:54:37 <ihope> Can this be turned into a factoring algorithm?
21:00:26 * SevenInchBread is proposing an addition for Python 3 that combines some stuff from interfaces as well as automatic type conversion stuff
21:01:26 <SevenInchBread> what would you call something that can convert certain objects to a certain quality... or just match a type of quality.
21:01:51 * pikhq is proposing that GNU adopt a different kernel for the GNU system
21:02:17 <pikhq> That's one example. . .
21:02:51 <pikhq> One thing I *think* would be a deciding factor in kernel choice would be FUSE support. . . ATM, most of the cool stuff in Hurd could be implemented around FUSE.
21:02:59 <pikhq> bsmntbombdood: That's the current one, and it's spelt HURD.
21:03:31 <pikhq> So, that limits the kernel choices to Linux, kFreeBSD, and kNetBSD.
21:03:40 <pikhq> . . . And HURD. :p
21:04:36 <pikhq> It currently has the driver support of a braindead Linux 2.0 system with the speed of an i386 running Windows Vista.
21:05:25 <pikhq> And its politics involve less efficiency than Congress.
21:06:31 <pikhq> The best feature of the HURD I could probably write in FUSE in a week or less. . .
21:06:56 <pikhq> StowFS. Pretty much UnionFS + pkginstall on crack.
21:08:38 <ihope> The HURD has politics?
21:09:34 <ihope> Does it elect a president every four time slices?
21:09:56 <pikhq> No, they're too busy arguing.
21:10:27 <pikhq> The idea for my proposition is to go straight to rms, and override said politics. ;)
21:11:13 <ihope> Computational systems based on capitalism are better!
21:12:05 <pikhq> Yeah. Let Microsoft compute it all.
21:12:53 <ihope> If we have Microsoft compute at all, they're charge us lots of money.
21:13:28 <pikhq> But they're the only computing entity.
21:13:31 <ihope> If we split it between 30 companies, chances are they'll all charge fair prices.
21:13:49 <ihope> If they're the only computing entity, then theoretically, anyone who makes another will become rich.
21:14:21 <pikhq> But what if they're the only people who know math?
21:14:40 <ihope> Then anyone who learns will become rich.
21:15:49 <pikhq> Should MS want to keep their monopoly, no, that person won't.
21:17:31 <oerjan> hm... i think if k is the highest power of any prime factor of n, then x^(y+k) mod n = x^(y mod tot(n) + k) mod n.
21:18:19 <pikhq> "Get The Facts: The *Truth* About Mathix and Their Bad Math"
21:18:36 <oerjan> because after k only parts relatively prime to n will change
21:18:39 <ihope> Microsoft will say that the learner does math badly?
21:19:03 <pikhq> And the business world listens.
21:19:30 <ihope> "Get The Facts: The *Truth* About Microsoft and Their Crazy Rumors"
21:20:43 <pikhq> ihope: Read "The Feeling of Power" (short story by Asimov). . . Think about what that world would be like if it were run by Microsoft.
21:20:47 <pikhq> Come back, and discuss.
21:24:06 -!- jix has quit (Read error: 110 (Connection timed out)).
21:42:38 <bsmntbombdood> Please output a prime with 2096 binary digits in decimal
21:44:20 <pikhq> [Error: programmer doesn't want to.]
21:46:02 <RodgerTheGreat> the story pikhq linked to is actually *about* IRP in one sense
21:47:29 <oerjan> didn't someone here have mathematica? i'm sure it must have a large prime function.
21:47:56 <oerjan> or maybe it's not the calculation that is the problem here :)
21:48:24 <Bigcheesegs> you could just look up primes on a prime table
21:48:29 <RodgerTheGreat> although, I don't know how to use it to generate arbitrary primes without programming a sieve or something
21:49:16 <oerjan> RodgerTheGreat: just pick a few random numbers of the right size.
21:49:24 <bsmntbombdood> RodgerTheGreat: random number, set first and last bits, while not prime, add 2
21:49:28 <oerjan> ok, maybe a few thousand.
21:49:44 <bsmntbombdood> use something like miller-rabin for testing primality
21:50:05 <oerjan> i'm definite mathematica has an isprime function or something.
21:50:38 <RodgerTheGreat> if anyone wants to write a function for mathematica based on the manuals, I'd be glad to evaluate it
21:50:45 <oerjan> by the prime number theorem, about ln(10^2096) numbers will be needed.
21:50:54 -!- jix has joined.
21:58:37 <oerjan> < bsmntbombdood> Please output a prime with 2096 binary digits in decimal
22:06:02 <ihope> Do you think it's possible to compute with prime numbers?
22:10:04 <ihope> Maybe we could create a computing system out of adding them.
22:10:17 <ihope> Or just incrementing them.
22:11:22 <ihope> You have a zero-tailed string of integers, and your two operations are "increment" and "truncate". When the string is truncated, the head will go into a Minsky machine register.
22:11:26 <ihope> You only get one such register.
22:21:13 <pikhq> Someone print a prime of the form "n^m", where n and m are integers.
22:21:40 <pikhq> ... integers greater than 2.
22:31:15 <ihope> Nah, just make it a Gaussian integer.
22:31:32 <ihope> Gimme a Gaussian prime.
22:39:45 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:46:38 <ihope> 2 is a Gaussian prime?
22:51:58 <oerjan> (1 + i) (1 - i) = 2, maybe
22:53:27 <ihope> Yes, they're equal.
22:53:59 <oerjan> my powers of mental calculation are a bit exhausted after trying to fix a wikipedia article
22:54:43 <oerjan> 3 may be a Gaussian prime then
22:57:52 <ihope> 2^2 - 1^2, or (2 + 1)(2 - 1), except that's really 3*1.
22:58:29 <ihope> "Those rational primes which are congruent to 3 (mod 4) are Gaussian primes; those which are congruent to 1 (mod 4) are not."
22:59:01 <oklopol> is an integer a gaussian integer?
23:01:33 <oerjan> a gaussian integer is m + n i where m and n are integers.
23:10:45 -!- sebbu2 has quit ("@+").
23:48:03 -!- ShadowHntr has joined.
23:55:35 -!- ihope__ has joined.
00:05:48 <oklopol> hmm, how can i dl a picture in python if i have the url?
00:13:04 -!- ihope has quit (Success).
00:26:38 <oerjan> of course if m^2 + n^2 is an ordinary prime then m + n i is a Gaussian one.
00:28:07 <oerjan> because when you multiply two gaussian integers, their m^2 + n^2 are also multiplied, being their squared moduli
01:22:00 -!- nazgjunk has changed nick to na[zZz]gjunk.
01:31:20 <oerjan> oh. according to mathworld, if m and n are non-zero then that is equivalent.
02:05:17 -!- GreaseMonkey has joined.
02:11:00 -!- oerjan has quit ("leaving").
03:03:17 -!- Sukoshi has joined.
03:27:18 -!- calamari has quit ("Leaving").
03:32:14 -!- Sukoshi has left (?).
03:46:03 -!- SevenInchBread has quit (Read error: 113 (No route to host)).
04:07:59 -!- pikhq has quit (Read error: 110 (Connection timed out)).
05:01:26 -!- RodgerTheGreat has quit.
06:05:03 -!- bsmnt_bot has joined.
06:59:49 -!- na[zZz]gjunk has changed nick to nazgjunk.
07:08:22 -!- ShadowHntr has quit ("End of line.").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:17:00 -!- Figs has joined.
10:17:37 -!- Figs has left (?).
10:17:49 -!- Figs has joined.
10:38:18 -!- Figs has quit (Read error: 104 (Connection reset by peer)).
10:44:59 -!- Figs has joined.
11:03:12 -!- GreaseMonkey has quit (Read error: 110 (Connection timed out)).
11:03:29 -!- GreaseMonkey has joined.
11:03:35 -!- oerjan has joined.
11:23:31 -!- GreaseMonkey has quit (Client Quit).
11:38:44 -!- Figs_ has joined.
11:38:54 -!- Figs has quit (Read error: 104 (Connection reset by peer)).
12:14:26 -!- Figs_ has quit ("Trillian (http://www.ceruleanstudios.com").
12:31:46 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
12:32:01 -!- UpTheDownstair has joined.
13:04:15 -!- oerjan has quit ("leaving").
13:27:51 -!- Bigcheese has joined.
13:32:26 -!- pikhq has joined.
13:36:48 -!- Bigcheesegs has quit (Read error: 110 (Connection timed out)).
14:56:46 -!- crathman_ has joined.
14:56:49 -!- crathman_ has changed nick to crathman.
14:58:28 -!- crathman has quit (Client Quit).
14:58:45 -!- jix has joined.
16:50:55 -!- UpTheDownstair has changed nick to nazgjunk.
16:53:54 -!- jix has quit (Read error: 104 (Connection reset by peer)).
16:54:55 -!- jix has joined.
17:22:44 -!- pikhq has quit (Read error: 60 (Operation timed out)).
17:33:58 -!- oerjan has joined.
17:49:39 -!- sebbu has joined.
18:19:58 -!- oerjan has quit ("leaving").
18:46:33 -!- oklopol has quit (Read error: 145 (Connection timed out)).
19:42:55 -!- ville_ has joined.
19:43:32 -!- ville_ has changed nick to oklopol.
21:22:32 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:33:53 -!- calamari has joined.
22:02:36 <SimonRC> I think you can tell a loony by the length of the front page of their website.
22:02:52 <SimonRC> e.g. the time cube guy has a long front page
22:03:05 <SimonRC> as do many conspiracy-theorists
22:04:35 -!- Bigcheese has changed nick to Bigcheesegs.
22:07:24 <ihope__> I didn't know Canadian money had websites.
22:25:56 -!- ihope__ has changed nick to ihope.
22:30:06 -!- RodgerTheGreat has joined.
22:38:07 <ihope> Or by "loony" did you mean "crazy person"?
23:07:39 -!- sebbu has quit ("@+").
23:17:24 -!- SevenInchBread has joined.
23:27:21 -!- GreaseMonkey has joined.
23:56:00 -!- ihope__ has joined.
00:03:37 -!- ihope has quit (Read error: 60 (Operation timed out)).
00:37:28 <bsmntbombdood> http://bsmntbombdood.mooo.com/hyper4_imag1_2big.png
00:38:11 -!- ihope__ has changed nick to ihope.
00:39:19 -!- pikhq has joined.
00:49:19 <ihope> Yay, we have a kernel spec thingy!
00:51:58 <ihope> Close enough, anyway.
00:52:19 <ihope> What you posted on AbraSophia some while ago.
00:55:57 <SevenInchBread> if problems come up or if something was unaddressed (like hardware)... I'll just add it later.
00:57:33 <SevenInchBread> hardware interupts will probably be handled by the kernel via an immediate context switch to a driver or something.
00:58:12 <SevenInchBread> ...maybe not immediately... hardware is important, but you don't want to freeze up everything because of a slow hardware operation.
00:59:24 <SevenInchBread> spaces handle pretty much any information about memory you could want...
01:01:29 <SevenInchBread> ....but... I have no clue how to implemetn all of this into low-level registers.
01:05:39 <SevenInchBread> some of the system calls I'm thinking of are alloc, dealloc, context switch... and maybe some kind of interrupt/hook setting thing.
01:07:04 <SevenInchBread> ...but hooks can be done in processes. you could register hardware interupts to a handler... which, in the case of abrasax, will probably delegate behavior to a hook process. (...if that's cool with you)
01:19:46 -!- Bigcheesegs has quit (Read error: 104 (Connection reset by peer)).
01:20:22 -!- Bigcheese has joined.
01:20:51 -!- Bigcheese has changed nick to Bigcheesegs.
01:34:23 <GreaseMonkey> it's called BrassMonkey but it has the UnBot nick to save reregistration
01:47:55 <SevenInchBread> hmmm... files aren;t though? I thought all the data in a file was right close together.
01:48:18 <pikhq> Although some filesystems try to avoid fragmentation.
01:50:38 <SevenInchBread> but wait... isn't fragmentation only a problem when you read the data sequentially?
01:50:59 <pikhq> And when you try to write more to a file. . . (that's how fragmentation occurs)
01:52:09 <SevenInchBread> no no, I know the -cause-... but does it really matter that much if you're not reading the data sequentially?
01:52:39 <SevenInchBread> yeah... will probably go with a swap partition though... simply because it avoids fragmentation altogether I guess.
01:52:51 <pikhq> Unfortunately, sequential data reads is rather common.
01:54:12 <pikhq> SevenInchBread: If you've got large programs, make that large sequential strips.
01:54:58 <SevenInchBread> yeah okay... I'm out of arguments... for something I don't really think would make sense.
01:55:02 <pikhq> I recommend that you try using a filesystem which avoids fragmentation. . .
01:55:19 <pikhq> In addition to a swap partition.
01:56:39 <pikhq> (most Unix filesystems. ;))
02:01:38 <pikhq> I'll port ext2 sometime later, so you can get a decent quality filesystem.
02:02:10 <pikhq> . . . If I( care enough to.
02:02:11 <SevenInchBread> sure... if all goes right the filesystem wouldn't be hard at all to change.
02:02:39 <SevenInchBread> ....still haven't written a single program for this OS though... I need to practice assembly/C
02:05:22 <SevenInchBread> probably one of the best ways to figure out how to prevent fragmentation is to take a sample of general trends in file sizes and directory location.
02:05:58 <SevenInchBread> the elphant-sized files... your images, audio, video stuff.
02:06:19 <SevenInchBread> will usually be close together in a directory tree.... usually. I have no empircal evidence to back that up.
02:06:28 <SevenInchBread> but I assume people put there music together in one place.
02:09:53 <SevenInchBread> ...you could even get fancy with it and have the OS "remember" how files tend to be accessed.
02:15:23 <ihope> How about system calls that don't require a magic hat are called "hatless" and those that do require one are called "hatful"?
02:15:46 <ihope> Unless you have a compelling argument against it, that's what we'll do, okay? :-)
02:19:28 <ihope> I have three hatless system calls here...
02:19:43 <ihope> And two of them may be unnecessary.
02:20:58 <ihope> Actually, every system call I've put down so far except one are probably unnecessary.
02:21:09 <ihope> Maybe two are necessary.
02:23:15 <lament> the only needed system calls are 's', 'k', and 'i'
02:23:20 <lament> and 'i' is just for optimization.
02:23:41 <ihope> Don't you want a ` system call as well?
02:24:15 <ihope> Really, all you need is * and i... or 0 and 1.
02:24:24 <ihope> Depends on whether you want your kernel to be Iota or Jot.
02:25:00 <pikhq> I prefer the system call "Lambda".
02:25:10 -!- Sgeo has joined.
02:28:50 <SevenInchBread> ihope, well... I do kind of have an objection. The purpose of the hat thing is so that you use processes to build the API,.
02:29:20 <ihope> SevenInchBread: what are you saying?
02:29:38 <SevenInchBread> the kernel provides the low-level details... but rarely will those low-level details be directly called by anything other than a select few processes. mem will call memory allocation stuff, etc.
02:29:53 <ihope> How will processes communicate?
02:30:12 <ihope> And sending a message isn't a system call?
02:31:45 <SevenInchBread> addd that to the spec... with a brief explaination of why.
02:32:22 <SevenInchBread> so far the only hatless one is the message passing... but I'm sure there are a few more.
02:33:16 <SevenInchBread> the other reason for a hat level is... well... the microkernel doesn't use any other form of privledges... the API handles all of that.
02:33:39 <SevenInchBread> it's a prviledge flag on processes that determines whether or not they can use certain system calls.
02:33:54 <SevenInchBread> originally it was ALL system calls... but I forgot that certain calls are pretty much necessary.
02:34:12 <SevenInchBread> the full term is "magic hat"... simply because it sounds cool.
02:35:39 <SevenInchBread> ihope, and I think the filesystem should recognize file types... like osx does now.
02:36:17 <SevenInchBread> file extension associates work fine for recognizing file types on the top level.... but they really can't assist the filesystem in preventing things like fragmentation.
02:37:31 <SevenInchBread> if the filesystem recognizes content types... then it can be smart about handling them. audio is typically large, and edited infrequently... while a swap file stays roughly the same most of the time, but will be written and read from frequently.
02:39:27 <SevenInchBread> ...images, on the other hand... are generally read, decompressed to bitmap, edited, and then saved back all in one huge write.
02:45:23 <SevenInchBread> ....text will change size and byte value often... but the reads and writes will be along the same pace as image writes.
02:47:55 <SevenInchBread> http://en.wikipedia.org/wiki/Delayed_allocation <-- this is an interesting technique
04:06:16 -!- calamari has quit ("Leaving").
04:07:16 -!- pikhq has quit (Read error: 54 (Connection reset by peer)).
04:07:46 -!- pikhq has joined.
04:08:12 -!- ShadowHntr has joined.
04:32:09 -!- SevenInchBread has quit (Read error: 113 (No route to host)).
06:10:12 -!- Sgeo has quit (Success).
06:14:22 -!- pikhq_ has joined.
06:16:47 -!- pikhq has quit (Read error: 113 (No route to host)).
06:37:37 -!- pikhq_ has quit (Read error: 110 (Connection timed out)).
06:40:16 -!- ShadowHntr has quit ("End of line.").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:20:53 -!- GreaseMonkey has quit ("feel the power of a dynamic bot: http://rafb.net/p/xUFMl288.html | line buffer code: http://rafb.net/p/2JIiTz98.html").
10:36:08 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
10:36:38 -!- nazgjunk has joined.
13:10:57 -!- Bacta has joined.
13:11:20 <Bacta> Hi I'm developing an OS in Brainfuck ... any advice?
13:12:14 -!- Bacta has left (?).
13:16:07 -!- pikhq has joined.
13:48:59 -!- oerjan has joined.
14:38:19 -!- jix has joined.
15:54:21 -!- ihope__ has joined.
15:55:22 -!- ihope___ has joined.
16:10:03 -!- ihope has quit (Success).
16:12:47 -!- ihope__ has quit (Connection timed out).
16:44:36 -!- sebbu has joined.
16:54:19 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
16:54:53 -!- nazgjunk has joined.
17:06:02 -!- RodgerTheGreat has quit.
17:18:47 -!- crathman has joined.
17:48:23 -!- pikhq has quit (Read error: 60 (Operation timed out)).
18:02:47 -!- oerjan has quit ("Later").
18:26:30 -!- Izzy7 has quit (Read error: 101 (Network is unreachable)).
20:01:49 -!- alex89ru has joined.
20:03:28 -!- alex89ru has left (?).
20:06:33 -!- atrapado has joined.
20:07:28 -!- Izzy7 has joined.
20:42:09 -!- oerjan has joined.
20:58:13 -!- Bigcheesegs has quit ("isoGames - The New Leader In Online Spectator Sports - /server -m irc.isoGames.com").
21:02:47 -!- SevenInchBread has joined.
21:07:26 -!- ihope___ has changed nick to ihope.
21:13:40 <SevenInchBread> ihope, there won't be a read permissions for files. All files are readable by anyone.
21:15:40 <SevenInchBread> ....why not? how can you have something that's public domain and read-protected?
21:15:56 * oerjan smacks SevenInchBread with a hammer.
21:16:36 <SevenInchBread> and reading can't corrupt the data in the file... so it's a pretty safe operation compared to writing and executing.
21:18:01 <SevenInchBread> the ONLY reason... you would set a read-protect... is to prevent something from seeing something. ...but right now I can't think of any good purpose for wanting to do that.
21:18:43 <oerjan> anti-chinese government propaganga?
21:19:13 <SevenInchBread> oerjan, ...that's actually a good point. I guess privacy would be nice.
21:19:45 <oerjan> i guess you _could_ get away from it with a good encryption system.
21:19:56 <SevenInchBread> Does linux have password protection built into its filesystem?
21:20:04 <oerjan> which might actually be safer in case someone stole your harddisk. hm...
21:20:52 <oerjan> linux has ownership protection, and various ways of authorizing logins.
21:20:54 <SevenInchBread> well... not a stego filesystem... but... a filesystem that lets you hide the existence of something.
21:21:21 <SevenInchBread> I think password protection would be a good addition to the filesystem. (haha... talk about a change of heart)
21:21:31 <oerjan> i've never really looked into encryption filesystems other than knowing they exist.
21:21:59 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:22:21 <oerjan> actually passwords are pretty weak. i am almost thinking having _just_ encryption and no read permissions is an improvement.
21:22:50 <SevenInchBread> if you hide porn in the least signifigant bits of family photos... you can easily deny that you ever put it there, in the rare case that someone would event attempt to look for it.
21:23:45 <SevenInchBread> I don't like read permissions... but passwords (for locking stuff away from people) and encryption (for locking stuff away from machines) would be nice.
21:24:31 <oerjan> passwords -> passphrases for encryption
21:24:48 <SevenInchBread> -nodnod- but they're succeptable to brute-force searches.
21:25:02 <oerjan> they should be long passphrases.
21:25:36 <SevenInchBread> heh... my universal password for everything consists of five letters...
21:25:51 <SevenInchBread> there... you now have pretty much have access to everything I do.
21:26:54 <oerjan> well mine are about 8-10, but i am somehow assuming the important ones are not available for brute-force search.
21:28:09 <SevenInchBread> some global mode type things would be useful too... so you know how to optimize.
21:28:46 <oerjan> like "keep this file compressed"?
21:29:14 <SevenInchBread> a system with low-memory can have a generic "low-memory" flag set... or a "high-memory" for the opposite. If the system has a lot of memory, then the filesystem stuff can afford to do more caching of file reads/writes, for example.
21:29:38 <SevenInchBread> ...but it's a pain in the ass to do the check every time.
21:30:43 <SevenInchBread> since what "low memory" is... varies from application to application.
21:30:53 <oerjan> well, you could have a process that could register requests to know if memory went low, with limits given by the requesting process
21:31:15 <SevenInchBread> -nod- yeah, include it into some sort of "stats" process...
21:31:47 * SevenInchBread wants to add a lot of nifty gadgets... even at the expense of simplicity.
21:32:01 <SevenInchBread> a simple interface is important... a simple implementation not so much.
21:33:31 <ihope> I'd say read permissions are essential.
21:34:04 <oerjan> why not go with a full capability system? It seems to me they are all the rage over at Lambda the Ultimate
21:36:11 <ihope> For protecting data.
21:36:28 <ihope> Anything that needs protection.
21:36:38 <oerjan> of course it goes with the Principle of Least Authority, so it's fairly heavy security
21:36:59 <SevenInchBread> well... the only reason I would use a read permission is privacy... HOWEVER.
21:37:23 <SevenInchBread> it doesn't protect the file.... write permissions protect a file. You can't hurt a file by looking at it.
21:38:00 <ihope> Privacy isn't endangered by changing a file.
21:38:38 <SevenInchBread> read - privacy. write - protection. execute - non-fuck-up-your-computer-acy
21:38:42 <ihope> If you want to store passwords, you need read permissions.
21:39:30 <SevenInchBread> it is, linguistically speaking, a permission to read. but it's not a "unix read permission".
21:40:03 <SevenInchBread> passwords, methinks... are also easier to manage than read permissions for privacy.
21:40:21 <oerjan> encryption can do most of the read protection, but you need somewhere to store the system's initial codes...
21:40:27 <SevenInchBread> now instead of having to add a new user the read permission... you can just tell her the password.
21:40:51 <ihope> What if she doesn't want to remember the password?
21:40:58 <ihope> Or type it in all the time?
21:41:26 <ihope> I guess all you need is one password.
21:41:30 <oerjan> i mean if you want the system to be able to startup without user interaction, it must have access to at least one unencrypted password or code
21:41:43 <SevenInchBread> I would also say a password is more secure from people than a user permission.
21:41:52 <SevenInchBread> if you leave your computer... someone can't sneak up and look at the file.
21:42:07 <ihope> That's why operating systems have a "lock" feature.
21:42:14 <SevenInchBread> not from computers though... most passwords can be cracked with a brute-force search. ...for that you use full-blown encryption of the data.
21:42:59 <SevenInchBread> passwords ensure that the password is entered each time.... or (optionally) once in a certain span of time.
21:43:22 <ihope> SevenInchBread: it could well be more convenient to hit a key every time you leave the computer than to type in a password every time you... do certain things.
21:43:41 <ihope> I guess theoretically you only need one password.
21:43:47 <oerjan> seriously, no one wants to enter passwords all the time.
21:43:52 <SevenInchBread> people rarely make something private out of convience.
21:44:31 <ihope> Now, if you're the only one with access to a computer, passwords aren't needed at all.
21:44:42 <SevenInchBread> if you don't want to type in a password... then don't give it a password.
21:44:48 <ihope> Push the button and boom, you're logged in already.
21:44:54 <oerjan> i had this idea of a program that could check your typing patterns and lock the computer if it changed...
21:45:02 <ihope> If you don't give it a password, then other processes will be able to get at it.
21:45:21 <ihope> You want to keep things safe from other processes if not other users.
21:46:05 <SevenInchBread> I don't know of anyone who wants to be lazy about keeping something hidden.
21:46:34 <ihope> Even if being lazy has no effect on security?
21:47:00 <ihope> Now, if read permissions are implemented, you could always disable them.
21:47:09 <SevenInchBread> there's no way you can convince me that user-based permissions are of equal security to read-based password locks.
21:47:51 <SevenInchBread> ...of course... this little squabble has a fairly simple compromise. Both are possible at the same time. :P
21:48:00 <ihope> I keep forgetting why encryption is more secure than user-based stuff...
21:48:41 <ihope> I didn't say passwords.
21:48:57 <SevenInchBread> -nodnod- I was just saying... not necessarily in opposition.
21:49:37 <ihope> My conclusion is that they're equal, since one can easily simulate the other.
21:50:00 <ihope> As long as you don't let every process read every other process's memory.
21:50:02 <oerjan> they are not equal if someone can get direct read access to your disk
21:50:03 <SevenInchBread> I see a huge difference.... but I also see the comparitive benefits and drawbacks of both.
21:50:50 <ihope> If there are user-based or process-based permissions, that doesn't stop you from encrypting everything.
21:51:15 <ihope> And the lack thereof doesn't keep you from simulating them, as long as you can supply a password.
21:51:47 <SevenInchBread> if you want to be lazily private (somehow...).. use read permissions. If you want full-blown guaranteed privacy from most humans... use password protection.
21:52:47 <oerjan> no, if you are insanely paranoid, you would encrypt your entire hard disk and insist on a 256 character passphrase. or something like that.
21:53:02 <ihope> Are you saying that everyone who uses both is insanely paranoid?
21:53:41 <SevenInchBread> well... I think it makes sense for user file permissions to be set on the file.... and process-based permissions to be set on the process (...the default permissions values being set on the executable that originated the process)
21:54:34 <ihope> So if you use both and don't have a huge secret, you're paranoid.
21:54:46 <SevenInchBread> mainly because PIDs aren't persistent... so it wouldn't make any sense to set a "PID 5 can't write on me" on a file.
21:55:56 <ihope> So we couldn't just offer read permissions and let the non-paranoids without huge secrets choose between those and encryption?
21:56:36 <ihope> I see this boiling down to "read access can be restricted" vs. "read access can't be restricted", though encryption naturally has to be taken into account.
21:57:49 <SevenInchBread> >.> I thought we decided to do both? but it seems like we're still debating for some reason...
21:58:22 <ihope> Offer them but don't force them, in other words?
21:59:05 <SevenInchBread> <SevenInchBread>I see a huge difference.... but I also see the comparitive benefits and drawbacks of both.
21:59:26 <ihope> Indeed. We'll offer them.
22:00:07 <SevenInchBread> password-protect write and execute too? Might as well have the option to use it.... even though I see them being comparatively less useful.
22:01:23 <SevenInchBread> the most complicated part of designing the filesystem, I think, will be version control.
22:02:32 <SevenInchBread> but basically I see two operations for that... reverting a file modification... or reverting a data modification.
22:02:55 <SevenInchBread> like the difference between ctime and mtime in unix... but with versioning.
22:03:41 <SevenInchBread> ...and then a way to associate names/numbers to certain snapshots.... like tags in svn.
22:15:56 <SevenInchBread> I also like the whole "filesystem macro" thing... so you could define a macro on the fs process... when the macro operation fails, the entire thing is reverted - thus making it fully atomic.
22:40:07 -!- sebbu2 has joined.
22:53:59 -!- sebbu2 has quit ("@+").
22:59:14 -!- sebbu has quit (Connection timed out).
23:21:13 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").
00:04:19 -!- GreaseMonkey has joined.
00:21:44 -!- lament has changed nick to glament.
00:23:21 -!- atrapado has quit (Read error: 110 (Connection timed out)).
00:24:06 -!- glament has changed nick to lament.
00:32:34 -!- pikhq has joined.
00:37:56 -!- ShadowHntr has joined.
01:24:30 -!- Sgeo has joined.
01:36:27 -!- oerjan has quit ("leaving").
02:11:55 <GreaseMonkey> make sure you agree with the guy with a seven inch bread
02:53:31 -!- nazgjunk has quit (zelazny.freenode.net irc.freenode.net).
03:02:24 -!- nazgjunk has joined.
03:28:48 -!- SevenInchBread has quit ("haaaaaaaaaa").
03:44:55 * pikhq has actually done some work on BFM. . .
03:59:25 <pikhq> First time in months.
05:14:29 -!- calamari has joined.
05:17:38 -!- ShadowHntr has quit ("End of line.").
06:16:40 -!- lament has quit (zelazny.freenode.net irc.freenode.net).
06:17:02 -!- lament has joined.
06:51:24 -!- Sgeo has quit (Remote closed the connection).
06:51:36 -!- calamari has left (?).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:27:56 -!- jix__ has joined.
10:47:02 -!- jix__ has changed nick to jix.
10:53:07 -!- helios24 has quit ("leaving").
10:55:22 -!- helios24 has joined.
10:58:29 -!- helios24 has quit (Client Quit).
10:59:56 -!- helios24 has joined.
11:19:59 <SimonRC> :-S http://heresabunnywithapancakeonitshead.com/
11:25:08 * SimonRC cannot follow what thatpython code does
11:26:53 <SimonRC> passing a function a lambda that contains that function, and to which that function will be passed, is one of the most confusing control structures ever
11:34:26 -!- GreaseMonkey has quit (Read error: 110 (Connection timed out)).
12:39:17 -!- oerjan has joined.
13:19:01 -!- pikhq has quit (Read error: 60 (Operation timed out)).
13:32:58 -!- oerjan has quit ("leaving").
14:35:51 -!- ihope has quit (Connection timed out).
15:06:52 -!- nazgjunk has quit (Read error: 110 (Connection timed out)).
15:45:57 -!- crathman has joined.
16:05:43 -!- meatmanek has quit (Connection timed out).
16:08:26 -!- meatmanek has joined.
16:49:39 -!- sebbu has joined.
17:21:18 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").
19:33:26 -!- oerjan has joined.
20:17:12 -!- oerjan has quit (Remote closed the connection).
20:17:21 -!- oerjan has joined.
21:04:22 -!- atrapado has joined.
21:06:35 -!- nazgjunk has joined.
21:21:43 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:35:07 -!- atrapado has quit (Read error: 110 (Connection timed out)).
22:25:58 -!- ihope___ has joined.
22:31:46 -!- oerjan has quit ("Because they're EVIL!").
23:04:23 -!- GreaseMonkey has joined.
23:06:23 -!- ihope___ has changed nick to ihope.
23:12:48 -!- sebbu has quit ("@+").
00:02:17 -!- UpTheDownstair has joined.
00:02:36 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
00:29:46 -!- pikhq has joined.
00:38:54 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
00:38:56 -!- pikhq_ has joined.
00:52:06 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
01:52:28 -!- pikhq_ has changed nick to pikhq.
03:51:12 -!- Sgeo has joined.
05:49:31 -!- calamari has joined.
06:18:02 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
06:49:18 -!- UpTheDownstair has changed nick to nazgjunk.
07:19:27 -!- calamari has quit (Read error: 104 (Connection reset by peer)).
07:37:08 -!- calamari has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:40:04 -!- fax has joined.
08:40:44 <fax> maybe not the best place to ask, but does anyone have any examples of small TeX programs producing lots of interesting output?
08:43:00 <fax> I think I saw the output of a TeX pi & e generator once
08:44:58 <GregorR> This is actually an excellent place to ask that, but I'm afraid I don't have any :P
08:45:41 <fax> well me neither, and im bloody stuck
08:45:49 <fax> anyway, If I do find any.. ill link it
08:52:55 <fax> argh!!!! http://home.imf.au.dk/grove/tex.html
08:58:55 <GregorR> According to archive.org, it's been like that since 2001 :P
09:01:46 <GreaseMonkey> you said the magic word, now anything you say will be accepted for bash.org
09:04:27 <fax> anyone know how to use tr to replace some char with unicode?
09:04:37 <fax> i tried like LC_CTYPE=UTF-8 ; echo hello | tr e \343\201\204
09:04:39 <fax> no luck :|
09:11:26 -!- calamari has quit ("Leaving").
09:25:44 -!- Rodger has joined.
09:25:55 <Rodger> how's it going, everyone?
09:26:40 <fax> Rodger: dide
09:27:16 * fax verry annoyed at tr
09:28:07 <fax> I want to replace some ASCII chars with unicode characters
09:28:11 <fax> I cant get tr to do it
09:28:18 <fax> have to use fucking perl or somthing
09:28:24 <fax> but i really need to do it with tr
09:29:42 <Rodger> I wasn't aware that tr had unicode support
09:29:50 <fax> it doesnt afaict
09:30:02 <fax> & cant abuse it into doing what I want :|
09:31:47 <fax> man fuck this
09:31:56 <fax> I have to string together like 16 sed commands
09:32:24 <Rodger> sounds oddly appropriate for this channel
09:32:29 <fax> hrm sed y/// might work
09:32:56 <fax> sed: 1: "y/x/つ/
09:32:56 <fax> ": transform strings are not the same length
09:33:23 <fax> why is unix so crap?!
09:35:49 <fax> I have a horrible hack
09:36:03 <fax> echo "xyz" | sed -e 'y/xyz/\343\201\244/'
09:36:07 <fax> produces some unicode
09:36:23 <fax> so I suppose I can replace every letter with a corresponding 3 char code
09:36:36 <Rodger> a better question than "why is unix so crap?" would be "why doesn't unix natively support Unicode?" The answer is that Unix is friggin *old*.
09:37:14 <fax> to do that id have to string together multiple sed expressions
09:37:22 <fax> and I may as well replace w/ unicode directly
09:37:26 <fax> so actually, thats no use :|
09:38:41 <fax> sed -e -e -e -e -e it is
09:44:18 -!- jix__ has joined.
09:45:15 <fax> while true ; do dd if=/dev/urandom bs=1200 count=1 2>/dev/null | md5 ; done | sed -e s/0/ロ/ -e s/1/東/ -e s/2/京/ -e s/3/ス/ -e s/3/ス/ -e s/4/オ/ -e s/5/ラ/ -e s/6/カ/ -e s/7/ス/ -e s/8/ケ/ -e s/9/ト/ -e s/a/ダ/ -e s/b/㐭/ -e s/c/㤸/ -e s/d/㒵/ -e s/e/㤵/ -e s/f/㬲/
09:45:24 <fax> its replacing _most_ of the characters
09:45:28 <fax> thats just awful.
09:45:32 <fax> I think I give up
09:45:47 <fax> oh wait im thick
09:45:53 <fax> has to be s///g
09:46:27 <fax> while true ; do dd if=/dev/urandom bs=1200 count=1 2>/dev/null | md5 ; done | sed -e s/0/ロ/g -e s/1/東/g -e s/2/京/g -e s/3/ス/g -e s/3/ス/g -e s/4/オ/g -e s/5/ラ/g -e s/6/カ/g -e s/7/ス/g -e s/8/ケ/g -e s/9/ト/g -e s/a/ダ/g -e s/b/㐭/g -e s/c/㤸/g -e s/d/㒵/g -e s/e/㤵/g -e s/f/㬲/g
09:46:34 <fax> matrix effects: D
10:00:25 <fax> Rodger: did you run it? did it work?
10:00:37 <fax> id love to know if its possible to replace all that sed crap with a single tr
10:05:34 -!- fax has quit (" ").
10:11:29 -!- Rodger has changed nick to RodgerTheGreat.
10:26:33 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
11:04:50 -!- GreaseMonkey has quit ("/dev/dsp sucks for recording :\").
11:57:12 -!- RodgerTheGreat has quit (Remote closed the connection).
14:32:04 -!- oerjan has joined.
14:50:30 -!- oerjan has quit ("Scheduled power failure").
15:20:53 -!- jix__ has joined.
16:57:53 -!- sebbu has joined.
17:28:06 -!- crathman has joined.
17:52:57 -!- lament has changed nick to elamnt.
18:12:50 -!- jix__ has changed nick to jix.
19:16:55 -!- calamari has joined.
19:22:57 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
19:44:07 -!- elamnt has changed nick to lament.
20:38:42 -!- nazgjunk has joined.
20:45:17 <calamari> something for your esoteric reading pleasure: http://www.saint-andre.com/jabber/telnet.txt
20:59:49 -!- calamari has quit ("Leaving").
21:12:34 <GregorR> How Jabber users transfer images: http://www.codu.org/rxml.php
21:34:21 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:40:11 -!- nazgjunk has quit ("Bi-la Kaifa").
21:40:46 -!- nazgjunk has joined.
21:41:01 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
21:49:09 -!- nazgjunk has joined.
21:49:17 -!- ihope has joined.
21:52:34 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
21:54:34 -!- nazgjunk has joined.
21:55:51 -!- Sgeo has joined.
22:00:14 -!- nazgjunk has quit ("Bi-la Kaifa").
22:08:32 -!- nazgjunk has joined.
22:22:22 -!- pikhq has quit (Read error: 60 (Operation timed out)).
22:23:03 -!- ihope_ has joined.
22:27:01 -!- nazgjunk has quit ("Bi-la Kaifa").
22:39:41 -!- sebbu has quit ("@+").
22:41:09 -!- ihope has quit (Read error: 110 (Connection timed out)).
22:47:14 -!- Sgeo has quit ("Ex-Chat").
23:21:23 -!- pikhq has joined.
01:01:41 -!- crathman has quit (Read error: 110 (Connection timed out)).
01:32:47 -!- GreaseMonkey has joined.
01:40:36 -!- RodgerTheGreat has joined.
04:18:38 -!- calamari has joined.
04:29:33 -!- Figs has joined.
04:34:21 <calamari> c++ is the most esoteric language of them all :/
04:35:34 <Figs> are you sure? :P
04:35:35 <pikhq> It stops being esoteric when knowledge of it is a normal requirement for a CS course.
04:35:38 <Figs> C can be worse
04:35:49 <pikhq> (although it can still be fucking weird as hell)
04:36:11 <Figs> http://static.flickr.com/120/304387877_3fb38f8156.jpg
04:36:24 <Figs> "My God! It's full of cars!"
04:37:03 <Figs> kudos if you know what webcomic that's used as side-joke in
04:37:15 <Figs> and what language they were refering to.
04:37:25 <pikhq> The *language* is Lisp.
04:37:35 <Figs> pikhq gets half a kudo.
04:37:44 <Figs> what's the comic? :)
04:37:53 <pikhq> *Could* be xkcd. . .
04:38:00 <pikhq> But I'm not sure 'bout that.
04:38:31 <Figs> http://xkcd.com/c224.html
04:38:34 <pikhq> http://xkcd.com/c224.html I'm right, indeed.
04:40:16 <Figs> True or False: "props" can be used as a verb.
04:40:47 <pikhq> "He props up the sign"
04:40:59 <Figs> What case/tense is that?
04:41:24 <pikhq> I could tell you were it in one of my *non*native languages. :p
04:42:03 <Figs> Finnish apparently has ___ grammatical cases?
04:43:20 <Figs> I think it's 15...
04:44:08 <pikhq> Don't speak Finnish; can't help you.
04:44:30 <Figs> but some wikipedians apparently do
04:44:44 * pikhq does Japanese and Esperanto (to varying degrees of ability)
04:45:58 <Figs> what is the past tense of 'eat' in esperanto?
04:48:44 <Figs> La hundo vendis horlo^goj.
04:49:09 <Figs> ^g --> g with ^
04:49:48 <Figs> If I ever go back to designing languages
04:50:15 <Figs> I won't put those obnoxious extra characters into it :P
04:50:27 <Figs> I'd either make my own alphabet
04:50:38 <Figs> or use one of the already working ones :P
04:58:08 <Figs> can anyone give me a list of 20 words in English that stay the same in the past participle?
05:24:44 <Figs> sorry for the slow reply -- I left for dinner
05:24:56 <Figs> any way, you can find a list here:
05:25:00 <Figs> http://en.wikipedia.org/wiki/English_irregular_verbs
05:32:18 * pikhq returns for not very long. . .
05:32:35 <pikhq> If I could remember the infinitive of 'eat', I could tell you.
05:32:43 <Figs> La hundo vendis horlogo.
05:32:48 <pikhq> Mi estas esperanta komencanto. . .
05:33:10 <pikhq> Kaj mia esperanto ne bonas.
05:34:38 <Figs> I barely even know any :P
05:34:51 <Figs> so even if you are a newbie, it's ok :P
05:34:58 <Figs> (that's the meaning, right?)
05:35:17 <Figs> "I'm an esperanto newbie, and my esperanto isn't good."?
06:14:19 -!- Figs has quit (Read error: 110 (Connection timed out)).
06:25:58 -!- goban has joined.
06:27:16 -!- Figs has joined.
06:41:57 -!- GreaseMonkey has changed nick to GreazeMonkey.
06:42:55 -!- GreazeMonkey has changed nick to zannze.
06:54:38 -!- zannze has changed nick to GreaseMonkey.
06:58:01 -!- Figs_ has joined.
06:58:11 -!- Figs has quit (Nick collision from services.).
06:58:15 -!- Figs_ has changed nick to Figs.
06:58:37 -!- Figs has left (?).
06:58:44 -!- Figs has joined.
07:25:34 -!- jix__ has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:21:56 -!- jix__ has changed nick to jix.
08:22:00 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
08:35:30 -!- Figs has left (?).
10:30:18 -!- goban has quit (Connection timed out).
10:32:39 -!- goban has joined.
11:14:49 -!- GreaseMonkey has quit ("MITM attacks are so evil.").
12:56:37 -!- jix__ has joined.
13:00:10 -!- jix__ has changed nick to jix.
13:48:14 -!- calamari has quit ("Leaving").
13:56:15 -!- RodgerTheGreat has quit.
14:34:28 -!- RodgerTheGreat has joined.
15:14:50 -!- crathman has joined.
15:39:49 -!- goban has quit (Connection timed out).
15:53:20 -!- goban has joined.
16:22:46 -!- pikhq has quit (Connection timed out).
16:48:00 -!- sebbu has joined.
17:54:44 -!- thorat has joined.
17:55:24 -!- thorat has left (?).
18:01:53 -!- goban has quit (Read error: 110 (Connection timed out)).
19:33:25 -!- goban has joined.
19:44:28 -!- goban has quit (SendQ exceeded).
19:50:47 -!- goban has joined.
20:41:33 -!- LeaLeaLea has joined.
20:46:11 -!- goban has quit (Read error: 54 (Connection reset by peer)).
20:53:05 -!- goban has joined.
21:17:36 -!- LeaLeaLea has changed nick to RainbowTrout.
21:27:18 -!- goban has quit (Connection timed out).
21:35:36 -!- Sgeo has joined.
21:36:55 -!- oerjan has joined.
21:42:02 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:43:09 -!- goban has joined.
21:53:22 -!- RainbowTrout has left (?).
22:00:22 -!- calamari has joined.
22:00:46 -!- goban has quit (Read error: 104 (Connection reset by peer)).
22:03:44 -!- goban has joined.
22:23:21 -!- ihope__ has joined.
22:23:28 -!- ihope__ has changed nick to ihope.
22:34:06 <SimonRC> did I tell you I calculated the power density of the Sun? 0.27 W/m^3. No wonder the hot-fusion people are have such a hard time.
22:41:24 -!- ihope_ has quit (Connection timed out).
22:53:17 -!- sebbu2 has joined.
23:08:44 -!- sebbu has quit (Connection timed out).
23:19:39 <SimonRC> A: any one where the TLD is .gr !
23:19:45 <SimonRC> (urn = Universal Resource Name .. a superset of URLs)
23:19:45 -!- SevenInchBread has joined.
23:19:47 <SimonRC> (not the ususal punchline, eh?)
23:20:57 <oerjan> lessee, the sun is not optimized for producing the most possible effect.
23:21:21 <oerjan> rather, i assume it produces just enough to compensate for gravitation.
23:21:57 <oerjan> then, the fact that there exist much larger stars indicates that more effect is possible.
23:22:29 <oerjan> also, i think fusion only happens in the core.
23:23:39 <lament> oerjan: i suspect the larger ones have lower output per area.
23:25:41 <oerjan> i doubt it. i understand blue giants live much shorter, which means they must burn faster.
23:47:10 -!- fax has joined.
23:47:26 * fax joins random IRC channels in the hope of finding somthing exciting happning
23:47:45 <oerjan> i thought i saw you here before in the logs?
23:47:52 <fax> well yeah ive been here a few times
23:48:04 <fax> but Im no good with esoteric languages so I feel bad
23:48:08 <oerjan> in fact you had some question. hm.
23:48:25 <fax> oh regarding tr? I gave up and used the less elegant sed commands..
23:49:00 <fax> well I was sleep deprived and manic
23:49:10 <fax> so I end up writing a one liner matrix screensaver
23:49:20 <oerjan> i was going to say that perl has a tr command too, but i don't know if it does Unicode any better.
23:49:22 <fax> & whats more thats the only line of code I wrote in a week :/
23:49:32 <fax> if I used perl's tr, It would look stupid
23:49:39 <fax> like "Why doesnt he just do it all in perl"
23:49:52 <fax> I think anyway..
23:50:14 <oerjan> that is one possible syntax.
23:50:19 <fax> bsmntbombdood: translate ASCII characters to unicode, it might be possible by setting local env vars or somthing..
23:50:24 <fax> I didnt bother
23:50:27 <fax> (to find ot)
23:50:41 <fax> another (ugly) solution is sed to replace each ASCII with 3 ASCII chars, then tr should work
23:50:45 <fax> but thats really.. stupid
23:50:53 <fax> a single sed expression or a sed & a tr
23:51:04 <oerjan> i guess tr/a/b/ is more usual.
23:52:11 <oerjan> on the other hand, why _don't_ you just do it all in perl.
23:52:52 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").
23:53:56 <fax> oerjan: 'cos anyone could do it in perl :p
23:54:07 <fax> im just trying to accumulate lots of interesting "Bash one liners"
23:56:11 <oerjan> hm... you could use sed to build the sed command.
23:56:34 <fax> oo I like that
23:57:09 <fax> thats crafty :D
00:02:55 <fax> I dont know sed as well as I should :p
00:02:58 * fax looks somthing up
00:05:00 <fax> my sed doesnt support \| :/
00:06:31 <oerjan> what would you need that for?
00:06:48 <fax> for like this\|that, to match "this" or "that"
00:06:54 <fax> I suppose ill have to use two expressions then
00:06:57 <fax> thats a shame
00:07:43 <oerjan> if you are matching single characters, just use []
00:07:57 <fax> its either a single space, or 3 characters
00:08:11 -!- sebbu2 has quit ("@+").
00:10:33 <oerjan> does your sed support the -r option?
00:10:45 <fax> what a crap sed
00:11:02 <fax> i think ill just take out spaces
00:11:30 -!- Sgeo has quit ("Ex-Chat").
00:15:03 <fax> why can I have a fucntion named : but not a variable: |
00:16:02 <fax> x=sed`echo '0ヰ1東2京3ス4ス5オ6ラ7カ8ス9ケaトbダcガd㒵eジfヤ' | sed -e 's/\(.\)\(...\)/ -e s\/\1\/\2\/g/g'` && while true ; do dd if=/dev/urandom bs=1200 count=1 2>/dev/null | md5 ; done | $x
00:16:06 <fax> a lot shorter! thanks :D
00:16:44 * fax tries to find a secretive name for the variable
00:21:48 <bsmntbombdood> while true ; do dd if=/dev/urandom bs=1200 count=1 2>/dev/null | md5 ; done | sed`echo '0ヰ1東2京3ス4ス5オ6ラ7カ8ス9ケaトbダcガd㒵eジfヤ' | sed -e 's/\(.\)\(...\)/ -e s\/\1\/\2\/g/g'`
00:22:21 <fax> bsmntbombdood: thanks a lot
00:22:26 <fax> I didnt actually know that you could do that
00:25:35 -!- pikhq has joined.
00:28:25 <fax> md5 generates a fixed length string from the characters 0-9a-z
00:28:31 <fax> so just hash random data then transform it
00:28:34 <fax> makes a matrix effect lol
00:31:52 -!- Sgeo has joined.
01:07:43 -!- oerjan has quit ("leaving").
01:08:12 <fax> so hey this is a good place to ask :D
01:08:18 <fax> I was wondering what the most simple languages are
01:08:43 <fax> lambda calculus has 3 cases to consider, brainfuck has 7 (if you ignore inputs) and life has 8 cases
01:08:50 <fax> but am I missing anything?
01:09:00 <fax> wht about 2 4 5 and 6?
01:13:48 <fax> that sounds very interesting
01:18:05 <fax> how can I find out more?
01:19:34 <pikhq> I can't remember the name, but there's a functional language with 2.
01:20:21 <pikhq> Although I'd argue that as far as instruction set goes, Life is the simplest. :p
01:20:47 <pikhq> Life has 2 states.
01:21:03 <pikhq> And instructions for transformations between these 2 states.
01:21:06 <fax> yeah, but the rules of evaluation are somewhat more complex I think
01:21:14 <pikhq> Not all that complex, really.
01:21:56 <pikhq> Really just a 2 dimensional analog of a Turing machine.
01:36:51 <bsmntbombdood> pikhq: iota is one that's written up, but there are better ones
01:37:46 <fax> http://ling.ucsd.edu/~barker/Iota/
01:55:38 <ihope> Insert enthusiastic shout of "SevenInchBread!" here.
01:56:35 <lament> fax: are you aware of OISC?
01:56:49 <pikhq> One instruction computing.
01:57:13 <pikhq> The options for that one instruction range from SBN to MOV.
02:00:34 <pikhq> It's Turing complete.
02:00:38 <fax> thats weird
02:00:39 <pikhq> And yeah, it is sweet.
02:01:09 <pikhq> MOV is Turing complete by having special addresses in the CPU. . .
02:01:24 <pikhq> And SBN just gets one instruction that does multiple things.
02:01:34 <pikhq> It subtracts *and* conditionally branches.
02:01:36 <pikhq> bsmntbombdood: Yeah.
02:02:25 <fax> bloody hell!
02:02:28 <fax> thats really crazy
02:02:41 <fax> I mean about MOV
02:02:48 <fax> I never thought of thta
02:02:52 <fax> I mean like
02:02:55 <fax> impressive
02:03:06 <pikhq> A MOV OISC has been implemented in Wireworld, BTW.
02:03:21 <pikhq> (thereby proving Wireworld's Turing completeness)
02:05:35 <fax> thats neat
02:06:24 <pikhq> That kind of stuff is why we're here in #esoteric. :)
02:53:02 -!- goban has quit ("Leaving").
03:01:56 <SevenInchBread> so... what are all the options that a context switch system call might need?
03:02:48 <SevenInchBread> but you could do things like "until system call" or "until sends a messge" or something
03:04:38 <ihope> Keep the system calls to a minimum?
03:04:46 <RodgerTheGreat> erm, what precisely do you mean by a "context switch system"?
03:05:30 <SevenInchBread> a system call that switches the context of CPU execution to another processes state
03:06:23 <SevenInchBread> ihope, I don't care about the number of system calls -- that doesn't determine how small your kernel is.
03:06:57 <SevenInchBread> you NEED a context switch system call if you don't want the scheduling algorithm in the kernel itself.
03:07:46 <SevenInchBread> but hardware interupts are implied... and I've got a way to handle them.
03:09:55 <RodgerTheGreat> do you have a method for flagging processes (or whatever) at different priority levels?
03:10:02 -!- RainbowTrout has joined.
03:10:28 <SevenInchBread> RodgerTheGreat, I've got a way to set attributes... so the scheduler can set a priority attribute if it wants.
03:10:48 <SevenInchBread> RainbowTrout, YOU CAN ALREADY TELL THIS CONVERSATION IS A BLAST
03:25:36 <RodgerTheGreat> ah, then you should have some interesting/painful hardware features to play with for this
03:29:40 <RodgerTheGreat> I find the "barrel processor" approach to multitasking fascinating- with well designed software, very efficient. http://en.wikipedia.org/wiki/Barrel_processor
03:30:07 <SevenInchBread> .....why do I twitch whenever I hear the word "efficient"
03:30:28 <RodgerTheGreat> probably because it should *always* be conditionalized
03:30:59 <SevenInchBread> I just think of annoying business people and uptight engineer nerd people and SUICIDE
03:31:52 <bsmntbombdood> RodgerTheGreat: what if there's less than enough threads?
03:32:33 <bsmntbombdood> and how do you put proccesses at different priorities?
03:32:50 <RodgerTheGreat> you might be able to design your OS to prevent that from happening, or at least make use of empty threads
03:32:51 <SevenInchBread> ...I don't think it's intended to be the... high-level part.
03:33:35 <bsmntbombdood> it would be nice if they just had a array of pointers to threads
03:33:49 <bsmntbombdood> so you could fill that array fully with one thread to run it constantly
03:35:12 <RodgerTheGreat> the nice thing is that a CPU like that would be shit-tons harder to deadlock
03:35:13 <bsmntbombdood> SevenInchBread: same way you use them in software?
03:35:36 <bsmntbombdood> RodgerTheGreat: the os breaks in every timer interupt...
03:36:02 <bsmntbombdood> if the kernel wants to stop you from running, it only has to wait 1/60 second
03:38:49 <SevenInchBread> hmmm, you could do a dual core processor... one being a single-thread "master" CPU... and a second barrel processor.
03:40:18 -!- bd_ has joined.
03:40:20 -!- RProgrammer has joined.
03:40:42 <ihope> SevenInchBread: meet RProgrammer. :-)
03:41:13 <ihope> And bd_ too, for that matter.
03:41:24 <fax> Does anyone use J?
03:41:39 <fax> its kinda based on APL
03:41:42 <ihope> RProgrammer: do you know much about programming for the x86?
03:41:51 <fax> its not really esoteric..
03:41:55 * pikhq needs a true test of geekiness. . .
03:42:00 <fax> http://www.jsoftware.com/
03:42:05 <fax> I found it cool
03:42:06 <pikhq> Knowledge of Brainfuck?
03:42:07 <ihope> bd_: do you know much about programming for the x86?
03:45:25 * pikhq much prefers less esoteric architectures than IA32.
03:47:00 <GregorR> pikhq: Your definition of "esoteric" is clearly incorrect. Regardless of how sensible or nonsensical an architecture is, if it's popular, it's not esoteric.
03:47:20 <pikhq> GregorR: I'm obviously kidding.
03:47:42 <pikhq> What I really mean is, of course, that IA32 is a nonsensical architecture, worthy of being esoteric.
03:49:22 <pikhq> The current IA32 system I'm using supports IA16, IA32, and AMD64. . . Somehow.
03:54:55 <ihope> My opinion is objective and is therefore perfect.
03:57:00 * calamari creates a subclass of ihope, adds functions, and is now more perfect than ihope
03:58:00 <ihope> Perfection is achieved not when nothing can be added but when nothing can be removed.
03:58:13 <ihope> Therefore, I must be JObject or TObject or whatever fancy thing it is.
03:59:18 <RodgerTheGreat> If I were part of the Java API, I'd want to be java.util
03:59:41 <RodgerTheGreat> it contains so many of my good friends, like Vector and Random.
04:03:19 <bsmntbombdood> But I suppose a nuclear reactor would be best for power
04:05:54 <RodgerTheGreat> so this is becoming more of an underground complex than a room.
04:06:16 <RodgerTheGreat> underground complexes are awesome for a number of reasons.
04:07:31 <RodgerTheGreat> I've always thought it'd be pretty awesome to live in a renovated nuclear bunker.
04:15:48 * pikhq wants an underground complex for house/server warehouse
04:16:47 <pikhq> Sure; just pay me for the power usage.
04:16:57 <pikhq> And bandwidth, of course.
04:17:06 <pikhq> Should give you some rock-solid stability.
04:17:23 <RProgrammer> Pfft, bandwidth, just hack some guy's satellite internet
04:17:28 <pikhq> Survive the nuclear war, it will.
04:17:39 <pikhq> RProgrammer: We're talking "500 T3 lines"
04:17:53 <bsmntbombdood> pikhq: but the internet and power distribution networks won't, so it doesn't matter
04:18:17 <pikhq> bsmntbombdood: Nuclear power in-bunker. . .
04:18:23 <pikhq> The Internet link?
04:18:44 <pikhq> Well, if there's a nuclear war, I'm going to be more about *surviving* than about watching Homestar.
04:18:57 <pikhq> RProgrammer: Fine. In the same mountain.
04:19:13 <pikhq> . . . Hell; I'd just like to take over Cheyenne Mountain. :p
04:19:44 <RProgrammer> No, I mean by definition, unless you want to put every network node in your mountain, Internet will always be the first to go
04:19:45 <pikhq> Don't have to leave town, get an underground bunker. . .
04:19:53 <pikhq> RProgrammer: Yeah.
04:20:10 <pikhq> Obviously, the idea at that point is to live, not to be online.
04:20:48 <pikhq> Your server will *still* have rock-solid stability. . . Although nobody else will be able to tell, since they'll be dead.
04:20:52 <bsmntbombdood> We just have to lock ourselves in, and they'll never take it back from us
04:21:02 <RProgrammer> So, before it goes down, you download 73% of the internet into your 3 Petabytes of in-bunker storage
04:21:09 <pikhq> bsmntbombdood: Sure; only maybe an hour from here. :p
04:21:18 <pikhq> RProgrammer: Screw 3 petabytes.
04:21:35 <pikhq> I could afford at *least* 100 with all of the co-op deals I'd be getting.
04:21:36 <bsmntbombdood> http://en.wikipedia.org/wiki/Image:NORADBlast-Doors.jpg
04:22:19 <pikhq> RProgrammer: That, um, doesn't matter anymore. . .
04:22:35 <RodgerTheGreat> if there's a nuclear war, I'm going to want a couple good novels and an offline copy of Wikipedia
04:22:45 <pikhq> The addressing limit was gotten around for hard drives on 32 bit systems. . . In the late 90s.
04:23:15 <pikhq> And there aren't exactly many OSes which mmap the *entire drive*.
04:23:54 <RodgerTheGreat> RProgrammer: that's my point- it's rather simple to do, and it'd be *awesome* to have in such a situation
04:24:16 <pikhq> RProgrammer: Who said anything about NFS? I can use a *much* better system than that. . .
04:24:41 <RodgerTheGreat> plus maybe a complete dump of Bash.org for entertainment purposes and remembering the good 'ol days of IRC
04:24:50 * pikhq hems and haws. . . RAID using network block devices?
04:25:03 <RProgrammer> I despise ambiguous brand names (HD DVD, ...)
04:25:32 <pikhq> Hell. Just get an *orbiting* bunker. . . Large enough to contain everyone you care about.
04:26:01 <RodgerTheGreat> that's not at all the same and you know it. Underground is where it's at, unless by "orbiting", you mean "on the moon"
04:26:19 <pikhq> And one needn't worry about that, anyways; that only applies to addressing.
04:26:32 <pikhq> RodgerTheGreat: The moon is orbiting, isn't it?
04:26:45 <pikhq> Although I may want an orbiting *Mars-sized* bunker.
04:26:58 <pikhq> Carry the half of the planet you care about. :p
04:27:10 <pikhq> It's a very, very large one.
04:27:15 <RProgrammer> With that you wouldn't have to worry about the internet...
04:27:32 <RProgrammer> But you would have to worry about your own nuclear wars
04:27:35 <pikhq> Of course, it'd defeat the purpose by that point.
04:27:38 <RodgerTheGreat> and at that scale, you'd have a very large risk of nuclear war *inside* the bunker, which just creates the same problem all over again
04:28:17 <RProgrammer> Unless you rule a race of genetically engineered little people whose sole religion is to pay tribute in server space...
04:29:24 <pikhq> Or if I pick out only those who aren't a nuclear war risk.
04:29:37 * pikhq will avoid Vi users. :p
04:31:55 <RodgerTheGreat> "first rule of DynaMars station: Do not talk about the implausibility or inefficiency of DynaMars station."
04:32:16 <bsmntbombdood> http://static.wikipedia.org/downloads/November_2006/en/
04:32:53 <pikhq> Bit more for MySQL and MediaWiki.
04:34:03 <bsmntbombdood> ah crap, loading the list of pages crashed firefox
04:34:06 <pikhq> I'd still prefer a database dump.
04:34:11 <pikhq> Bit more flexible.
04:34:36 <RodgerTheGreat> the database dump would be more useful long-run, but the HTML would be handy for portable viewing
04:34:38 * pikhq is the kind of person who already *has* MySQL running, just for the hell of it.
04:35:03 <RProgrammer> 5.4 GB Compiled to HTML! And is that only Deflate, not even GZip?!
04:35:24 * RodgerTheGreat is the kind of person that'd want to view the archive from a Zaurus or something
04:35:38 <pikhq> Gzip is a compression format which uses the DEFLATE algorithm. . .
04:36:18 <RProgrammer> pikhq: I thought it was slightly better than LZ77
04:37:53 <RodgerTheGreat> I've found it *extremely* handy in the past having a copy of the Java API docs on my laptop
04:38:19 <fax> just noticed you can download wikipedia
04:38:51 <RProgrammer> Wiki markup uses templates, ultimate compression
04:39:03 <fax> information entropy ;(
04:39:09 <fax> think of the entropy?!
04:39:15 <RodgerTheGreat> I prefer to think of templates as "pre-compressing" data
04:39:19 <bsmntbombdood> I'm having trouble finding the sizes for the db dumps
04:39:28 <pikhq> And the Wiki database, IIRC, has compression on the live database.
04:39:32 <RodgerTheGreat> they do some of the same things a normal compression engine would do
04:39:48 <pikhq> (I could, of course, be wrong as fuck)
04:40:30 <RProgrammer> I'm having trouble uncloging my tubes (it's not a truck!), I accidently clicked on the 261M file and, note to others: Firefox loads it as text
04:41:58 <RProgrammer> Browsers should consider Content-Length, not just Content-Type when choosing to view or download
04:42:17 <RProgrammer> I would file a feature request if I wasn't lazy
04:42:52 <RodgerTheGreat> "Did you want to save this file to disk, instead of viewing it in your browser? [view] [download]"
04:45:44 <pikhq> "This file is 2000 Petabytes. Would you like to: [view] [download] [cancel request]"
04:46:08 <GregorR> Feels like a good moment to link http://www.codu.org/rxml.php
04:47:54 <bsmntbombdood> wow, "As of February of 2007, the entire collection of images produce a compressed tar.gz file of over 213 GB (gigabytes)."
04:47:57 <fax> thats like img2<Table>
04:49:03 <pikhq> bsmntbombdood: I think it uses something like:
04:49:21 <pikhq> <image src="base64:BASE64-STUFF" />
04:49:38 <pikhq> RProgrammer: That's a tarball of the JPEGs, PNGs, and SVGs.
04:49:41 <fax> why dont they just use SQL
04:49:53 <pikhq> fax: They also offer MySQL dumps.
04:50:16 <bsmntbombdood> http://meta.wikimedia.org/wiki/Data_dumps#What_happened_to_the_SQL_dumps.3F
04:50:24 <pikhq> . . . Apparently not.
04:50:56 <RProgrammer> Ok, my question is answered now, that site has monthly wikipedia HTML dumps. Up to April 2007
04:52:09 <pikhq> That's part of the idea.
04:56:31 <RodgerTheGreat> well, you could automate culling of stubs, but they often contain at least a small amount of information on the most esoteric topics on the Wikipedia
05:15:24 <bsmntbombdood> read line by line, searching the <title>...</title> lines, scan ahead to the <text ...>, display until </text>
05:16:02 -!- RProgrammer has left (?).
05:16:27 <fax> i have a HTML parser in CL if you want
05:16:43 <fax> well its not a full parser :P
05:18:50 <pikhq> And you need an XML parser, anyways.
05:22:45 -!- Sgeo has quit ("Ex-Chat").
05:26:53 -!- RainbowTrout has quit ("Chatzilla 0.9.77 [Firefox 1.5.0.11/2007031202]").
06:19:43 -!- calamari has quit ("Leaving").
06:56:45 -!- fax has changed nick to operator.
07:03:25 -!- operator has changed nick to fax.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:40:30 -!- sebbu has joined.
09:46:07 -!- calamari has joined.
09:51:56 -!- goban has joined.
10:32:12 -!- calamari has quit ("Leaving").
11:04:21 -!- sebbu2 has joined.
11:23:55 -!- sebbu has quit (Read error: 110 (Connection timed out)).
12:56:48 -!- sebbu2 has changed nick to sebbu.
15:43:50 -!- SevenInchBread has quit ("haaaaaaaaaa").
16:46:44 -!- jix__ has joined.
16:51:16 -!- jix__ has changed nick to jix.
16:58:20 -!- ihope__ has joined.
16:59:24 -!- pikhq has quit (Read error: 54 (Connection reset by peer)).
17:06:19 -!- ihope has quit (Read error: 60 (Operation timed out)).
17:39:37 -!- nazgjunk has joined.
18:26:06 -!- Sgeo has joined.
18:27:28 * SimonRC imagines the cartoon parkland scene from Mary Poppins, but with the music _Poisoning Pigeons in the Park_
18:49:46 -!- ihope__ has changed nick to ihope.
18:54:44 -!- oerjan has joined.
18:59:49 -!- fax has quit (" ").
20:01:39 -!- ihope has quit (Read error: 110 (Connection timed out)).
20:08:27 -!- pikhq has joined.
21:06:45 -!- ihope__ has joined.
21:06:56 -!- ihope__ has changed nick to ihope.
21:32:07 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:46:17 -!- bd_ has left (?).
22:32:30 -!- ihope has quit (zelazny.freenode.net irc.freenode.net).
22:32:30 -!- sebbu has quit (zelazny.freenode.net irc.freenode.net).
22:32:44 -!- ihope has joined.
22:32:44 -!- sebbu has joined.
22:35:29 -!- ihope__ has joined.
22:53:30 -!- ihope has quit (Connection timed out).
23:02:43 -!- ihope__ has changed nick to ihope.
23:03:32 -!- sebbu has quit ("@+").
23:09:04 -!- SevenInchBread has joined.
23:43:48 -!- calamari has joined.
23:59:54 -!- Sgeo has quit ("Ex-Chat").
00:16:10 -!- xtofs has joined.
00:17:02 <xtofs> are there any functional esoteric languages ?
00:17:43 <xtofs> like lambda calculus with full blown higer order functions closures first class environements ?
00:17:57 <xtofs> cool i look into those
00:18:06 <oerjan> actually those i mentioned are combinator calculus
00:20:04 <oerjan> i am pretty sure there are some more lambda like but i haven't paid much attention to them
00:20:04 <oerjan> well there is one called Lambda, should be a safe bet
00:20:15 <xtofs> i would like to implement something realy cool in like the minimum lines of codes :)
00:22:31 <xtofs> unlambda seems verry nice :)
00:22:37 <oerjan> good luck my languages end up so complex i never get them implemented :)
00:24:18 <xtofs> i have writen a language but it not realy a hard one
00:24:27 <xtofs> maybe i just change the syntax :)
00:25:50 <xtofs> who of you like postscript ?
00:26:43 <xtofs> the dictionary stack is something i had not seen before
00:27:10 <xtofs> not that it is that shocking but manipulate it is quite cool
00:27:47 <xtofs> the dictionary stack ?
00:28:12 -!- BigBoom has joined.
00:28:15 <xtofs> the bindings of your variables and where to look them up
00:29:40 -!- hans has joined.
00:29:47 -!- hans has changed nick to bla.
00:29:53 -!- bla has changed nick to xtofss.
00:30:03 <SevenInchBread> it's the kind of binding structure I would probably use.
00:30:09 <oerjan> sounds like it means dynamically scoped variables
00:30:16 -!- BigBoom has quit (Client Quit).
00:30:34 <xtofss> oerjan hmm not nessasarly
00:30:47 <xtofss> you can just keep your environment arround :)
00:31:13 <xtofss> say you want to evaluate a function in a specific environment you push it on and call the function
00:31:25 <xtofss> when its done you save it
00:32:16 <oerjan> but are environments passed by reference? otherwise you won't get proper closures for mutable variables
00:33:48 <xtofss> not that you have a chose but when you take a environment and pop it of its not a copy
00:34:15 <xtofss> or some kind of evaluation of it what that might mean :)
00:34:56 <xtofss> who has his own language here ?
00:37:53 <xtofss> I have written one i can run on my mobile phone :)
00:38:46 <oerjan> i think someone mentioned something like that here once
00:39:08 <SevenInchBread> oddly enough, I have very few of the interpreters on disk.
00:39:55 <SevenInchBread> http://esoteric.voxelperfect.net/wiki/User:CakeProphet has the full list... but not all of them are implemented.
00:40:31 <SevenInchBread> and the only one I can find of Dupdog is in some illegible compiled Perl stuff.
00:42:11 <oerjan> well there is my incomplete Haskell one
00:42:21 * oerjan never finishes anything
00:46:32 -!- xtofs has quit (Read error: 110 (Connection timed out)).
00:47:15 <oerjan> http://oerjan.nvg.org/esoteric/Dupdog.hs + FingerTree.hs. You can in theory use it if you can put the right functions together...
00:51:06 <oerjan> oh right, i _did_ finish Malbolge Unshackled. Too bad no one has written any programs in it.
00:51:49 -!- calamari has quit ("Leaving").
00:53:46 <SevenInchBread> oerjan, so... how do you optimize the duplication part?
00:53:57 <SevenInchBread> you can do reverse with a flag... but what about duplicate?
00:54:45 <oerjan> by using the FingerTree module which implements lazily concatenated sequences
00:56:39 <oerjan> (it is the same as Data.Sequence, but less restricted)
00:58:59 -!- xtofss has quit (Read error: 110 (Connection timed out)).
00:59:50 <oerjan> i suppose you could do such a structure with some simpler kind of tree, you need duplication, push and pop at both ends
01:00:58 <oerjan> a simple class Concatenated(sub1,sub2)
01:01:41 <oerjan> and purely functional push and pop
01:02:23 <SevenInchBread> a lot of optimization can be had by using specialized data structured instead of raw byte-moving
01:02:55 <oerjan> the main point is that most of the duplicated parts should be shared
01:04:29 <oerjan> actually you don't need push for Dupdog...
01:06:16 -!- fax has joined.
01:08:46 <oerjan> so then your classes need methods popStart and popEnd that return a tuple containing the popped element and an object representing the remainder
01:10:00 <oerjan> and the Concatenated class recurses on the relevant subpart
01:14:04 <SevenInchBread> oerjan, hmm... reverse lookup is hard to handle with tree concatenation
01:14:44 <SevenInchBread> if you use a reverse flag to signify that the source has been reversed.
01:15:21 <oerjan> well that is why you want both popStart and popEnd (or pop(direction))
01:16:33 <SevenInchBread> >.> but with a tree you need to recurse the entire tree to get the very last character
01:17:14 <oerjan> you must recurse in any case unless you use the very clever FingerTree stuff
01:17:42 <oerjan> i believe that works by rebalancing the tree so the ends are always shallow
01:18:13 <oerjan> however as i understand duplication gives a log(n) overhead anyway
01:19:01 <oerjan> which is the same as for lookup in a naive tree
01:20:58 <oerjan> as far as i am concerned that is still a big improvement over n when n is the size of an exponentially growing data structure
01:21:20 -!- SevenInchBread has quit (Read error: 104 (Connection reset by peer)).
01:21:46 -!- SevenInchBread has joined.
01:21:48 -!- nazgjunk has changed nick to na[zZz]gjunk.
01:24:46 <ihope> SevenInchBread: have you found an x86 person?
01:31:08 <SevenInchBread> oerjan, I think the main rationale for using trees in memory.
02:15:52 -!- Figs has joined.
02:24:08 <oerjan> i don't think that works.
02:25:03 <Figs> can anyone tell me a stupider title than this?
02:25:08 <Figs> "Inventors turn creations into cash"
02:25:17 <Figs> NO SHIT, SHERLOCK!
02:25:35 <oerjan> i think you are popping off both ends all the time
02:26:17 <ihope> Thutu? When did that happen?
02:26:36 <ihope> And both Thubi and /// are mentioned in the first paragraph! I'm famous!
02:28:08 * oerjan has no idea which paragraph ihope is referring to
02:28:14 <Figs> www.DamnInteresting.com is pretty well designed
02:28:29 <ihope> oerjan: that of the wiki page on Thutu.
02:29:40 <SevenInchBread> oerjan, ah... I might need to change the self.indlist.pop(0) part based on the revflag
02:30:16 <oerjan> i am afraid it will not work, because the popping should be at only one end too
02:31:21 <oerjan> essentially i think the tree will creep back in
02:31:31 <Figs> plans for a flying saucer
02:32:58 <Figs> who the fuck sells jet engines for $35?
02:34:13 <Figs> it's blue prints
02:34:26 <oerjan> SevenInchBread: and i think the IndexError is wrong too, because there is no reason why the end of a duplicated part should be either end of the original source
02:35:56 <oerjan> you could have pops off both ends before a duplication
02:36:37 <Figs> found plans for DIY jet engine
02:36:45 <Figs> wouldn't it be neat to build your own flying saucer?
02:37:10 <oerjan> gimme a flying teapot!
02:37:15 <SevenInchBread> oerjan, a duplication just saves the current index... because that's all you need to mimic a duplication... however... you may be right about IndexError being the wrong way to check for when we've reached a duplicated part.
02:37:20 <Figs> equipped with blinking LEDs, and sound-track from sci-fi, of course
02:38:05 <oerjan> the duplication needs to save the index for both ends.
02:38:41 <SevenInchBread> the last index is always.... the last index of the source code.
02:38:58 <Figs> any physics majors here?
02:39:38 <SevenInchBread> oerjan, but you do see where I'm going with this right?
02:40:08 <Figs> if I built a cone like /\
02:40:17 <Figs> and blew into the /\ bottom with jets
02:40:22 <Figs> would it produce lift?
02:40:40 <Figs> (and lift evenly, provided it's a decently even cone?)
02:40:56 <oerjan> yes, you want to save indexes instead of trees.
02:40:58 <fax> you need a hole in it ?
02:41:03 <fax> ^ like that
02:41:16 <fax> I meant / \
02:41:36 <fax> oh wait probably not actually
02:41:53 <Figs> I'm pretty sure it'd do enough for at least a hover craft
02:42:00 <Figs> from air cushioning
02:42:12 <SevenInchBread> basically... firing a jew engine against a cone would be like.... blowing EXTREMLY HARD into a big bag.
02:42:13 <Figs> but I don't know if it'd work for real flying
02:43:16 <Figs> if I spin the engines
02:43:36 <Figs> ring holding code
02:43:50 <Figs> with engines sucking air from above and blowing into the cone
02:44:18 <Figs> it'd make a gyroscopic sort of stability, right?
02:45:25 <Figs> might not be a fast form of transport, but imagine flying your gf above say, NY and having everyone think you're aliens :P
02:48:04 <ihope> Ring holding code!
02:48:31 <ihope> SevenInchBread: "hatful"
02:50:32 <Figs> I corrected that one :P
02:51:34 <Figs> "Let me be the first to say that the prospect of drunk fliers crashing into my roof is enough to be thankful that we can not have one of these craft as easily as we can go out and buy a car."
02:52:09 <Figs> yeah... we don't want people FUI (fooey!)
02:53:49 <Figs> http://youtube.com/watch?v=6-3lQ4L_36c
02:56:19 -!- RainbowTrout has joined.
03:08:40 <Figs> did you know Irrlicht is the German word for "Will-o-the-wisp"?
03:16:19 <Figs> D Harmonic minor
03:17:14 * oerjan somehow never considered D Harmonic minor an ooh subject
03:18:32 <Figs> http://www.tonalcentre.org/Harmminchords.mid C harmonic minor!
03:19:38 -!- oerjan has quit ("Good night").
03:31:38 -!- Sgeo has joined.
04:19:13 -!- RainbowTrout has quit ("Chatzilla 0.9.77 [Firefox 1.5.0.11/2007031202]").
04:28:22 -!- ihope has quit (Remote closed the connection).
04:41:03 -!- Figs has left (?).
05:04:50 -!- pikhq has quit ("leaving").
05:05:59 -!- pikhq has joined.
06:54:48 -!- Sgeo has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:13 -!- sebbu has joined.
09:01:58 -!- sebbu2 has joined.
09:21:09 -!- sebbu has quit (Read error: 110 (Connection timed out)).
09:29:36 -!- fax has quit (Remote closed the connection).
09:51:41 -!- na[zZz]gjunk has changed nick to nazgjunk.
10:03:50 -!- sebbu has joined.
10:09:33 -!- jix__ has joined.
10:22:33 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
13:08:29 -!- nazgjunk has quit ("i really have to get off irc for now, if i don't write this stuff i won't pass my exams >.<").
13:58:12 -!- xtofs has joined.
14:28:58 -!- xtofs has quit ("Leaving").
15:24:17 -!- nazgjunk has joined.
15:30:41 -!- nazgjunk has quit ("back to school shit").
15:47:20 -!- nazgjunk has joined.
17:21:22 -!- helios24 has quit ("leaving").
17:21:37 -!- helios24 has joined.
17:22:24 -!- helios24 has quit (Remote closed the connection).
17:22:32 -!- helios24 has joined.
17:23:26 -!- helios24 has quit (Client Quit).
17:23:31 -!- helios24 has joined.
17:45:00 -!- jix__ has changed nick to jix.
18:06:11 -!- ihope has joined.
18:24:22 -!- _jol_ has joined.
18:24:57 -!- _jol_ has quit (Client Quit).
20:34:32 -!- oerjan has joined.
21:07:07 -!- pikhq_ has joined.
21:16:10 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:19:35 <SimonRC> I assume that anyone who is unable to use SPaG on usenet or similar is a retarded 12-year-old. Am I a bad person?
21:21:08 <oerjan> i don't know. how do you use Society for the Promotion of Adventure Games on Usenet?
21:21:28 <SimonRC> "Spelling, Punctuation and Grammar"
21:21:29 -!- pikhq has quit (Read error: 110 (Connection timed out)).
21:22:05 <lament> if they're retarded, they don't have to be 12 years old.
21:22:37 <oerjan> hm, synchronicity, i just read Mark CC's review of a kook's book with really bad language
21:24:10 <oerjan> if you consider _really_ severe dyslexia retarded... (so bad that you cannot even say if your spell checker's suggestions are correct)
21:57:14 -!- pikhq_ has changed nick to pikhq.
21:59:38 <oerjan> pikhq: don't you know how to disconnect one of your nicks?
22:01:28 <pikhq> I didn't realise that I was logged in as pikhq_ until I saw pikhq time out.
22:04:02 -!- ShadowHntr has joined.
22:08:00 -!- atrapado has joined.
22:42:16 -!- Sgeo has joined.
23:13:53 -!- atrapado has quit ("Saliendo").
23:15:37 * GregorR *stab* beryl and beryl users
23:22:46 -!- sebbu has quit ("@+").
23:33:28 -!- pikhq has quit ("leaving").
23:33:45 -!- pikhq has joined.
00:34:16 <pikhq> Just do some plugins to Beryl.
00:34:33 <SevenInchBread> DO NOT TELL ME ABOUT ITS EXTENSIBILITY... I SHALL MAKE MY OWN
00:35:32 * SimonRC prefers the default KigDos window managed
00:37:00 -!- ShadowHntr has quit (Connection timed out).
00:37:12 <pikhq> I'd start by implementing PESOIX.
00:38:49 -!- nazgjunk has quit ("Bi-la Kaifa").
00:42:54 -!- ShadowHntr has joined.
00:46:36 * SimonRC wonders what the esoteric window manager would be
00:53:29 <pikhq> Which could be done if one just implements PESOIX and adds on a networking namespace.
00:58:30 * SimonRC puts a curse on all who put right-to-left markers in their nicknames
01:27:32 -!- ihope has changed nick to i.
01:27:37 -!- i has changed nick to ihope.
01:28:02 -!- ihope has changed nick to i.
01:28:05 -!- i has changed nick to ihope.
01:40:06 -!- nazgjunk has joined.
01:55:21 * pikhq really ought to try that
02:15:20 -!- ShadowHntr has left (?).
02:39:30 -!- ihope has quit (Read error: 110 (Connection timed out)).
03:03:04 -!- pikhq has quit (Read error: 110 (Connection timed out)).
03:32:38 -!- pikhq has joined.
03:50:46 -!- SevenInchBread has quit ("haaaaaaaaaa").
04:05:39 -!- oerjan has quit ("Good night").
04:46:25 -!- Sgeo has quit ("Ex-Chat").
05:01:56 -!- calamari has joined.
07:13:13 -!- calamari has quit (Remote closed the connection).
07:51:53 -!- jix has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:16:26 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
08:25:59 -!- goban has quit ("Leaving").
11:17:10 -!- helios24 has quit (Remote closed the connection).
11:46:08 -!- helios24 has joined.
11:54:08 -!- helios24 has quit (Remote closed the connection).
12:10:14 -!- helios24 has joined.
12:39:21 -!- nazgjunk has quit ("Bi-la Kaifa").
12:40:36 -!- nazgjunk has joined.
13:20:10 -!- pikhq_ has joined.
13:20:18 -!- pikhq has quit (Read error: 110 (Connection timed out)).
13:39:54 -!- helios24 has quit (Read error: 113 (No route to host)).
13:44:43 -!- helios24 has joined.
13:52:50 -!- pikhq_ has changed nick to pikhq.
14:24:20 -!- oerjan has joined.
14:55:31 -!- oerjan has quit ("leaving").
15:36:26 -!- Gu1ll4um3r0m41n has joined.
15:36:41 -!- Gu1ll4um3r0m41n has quit (Client Quit).
16:01:23 -!- nazgjunk has quit ("Bi-la Kaifa").
16:46:27 -!- sebbu has joined.
16:48:22 -!- nazgjunk has joined.
16:52:34 -!- nazgjunk has quit (Client Quit).
16:59:57 -!- nazgjunk has joined.
17:47:41 -!- puzzlet has joined.
17:51:21 -!- jix__ has joined.
17:51:47 -!- jix__ has changed nick to jix.
19:20:19 -!- puzzlet_ has joined.
19:28:51 -!- puzzlet has quit (Read error: 60 (Operation timed out)).
19:33:40 -!- puzzlet has joined.
19:42:13 -!- puzzlet_ has quit (Read error: 60 (Operation timed out)).
19:46:43 -!- RodgerTheGreat has quit.
21:39:35 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:51:53 -!- oerjan has joined.
22:01:14 -!- ihope has joined.
22:22:49 -!- sebbu has quit ("@+").
00:39:11 -!- calamari has joined.
00:46:11 <ihope> Wait, no, never mind.
00:54:38 <ihope> Wait, no, I just enthusiastic(al)ly yelled that a few minutes ago.
01:50:03 -!- oerjan has quit ("leaving").
02:42:47 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
03:24:48 -!- SevenInchBread has joined.
03:25:57 -!- SevenInchBread has changed nick to CakeProphet.
04:06:00 -!- Sgeo has joined.
04:10:22 -!- CakeProphet has quit (Read error: 113 (No route to host)).
05:06:15 -!- zazen has joined.
05:06:28 -!- zazen has quit (Client Quit).
05:14:41 -!- calamari has quit ("Leaving").
05:16:36 -!- calamari has joined.
05:33:38 -!- Sgeo has quit (Remote closed the connection).
06:10:41 -!- calamari has quit ("Leaving").
07:06:57 -!- jix__ has joined.
07:07:43 -!- jix__ has changed nick to jix.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:38:53 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
10:29:04 -!- helios24_ has joined.
10:29:44 -!- helios24 has quit (Read error: 113 (No route to host)).
10:31:21 -!- helios24_ has quit (Remote closed the connection).
10:33:02 -!- helios24 has joined.
10:47:28 -!- jix__ has joined.
11:21:16 -!- helios24 has quit (Remote closed the connection).
11:22:01 -!- helios24 has joined.
12:09:21 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
12:14:01 -!- helios24 has quit (Remote closed the connection).
12:15:50 -!- helios24 has joined.
12:56:09 -!- jix__ has joined.
12:56:45 -!- jix__ has changed nick to jix.
16:44:45 -!- sebbu has joined.
17:48:27 -!- jix has quit ("This computer has gone to sleep").
18:21:03 <lament> lalalalalalalalalalala
18:35:34 <lament> what's the best material for nylon-core bass strings for a guitar?
19:05:59 -!- UnrelatedToQaz has joined.
19:18:41 -!- UnrelatedToQaz has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").
19:54:08 -!- pikhq has quit (Read error: 110 (Connection timed out)).
19:56:23 -!- crathman has joined.
20:56:44 -!- oerjan has joined.
21:00:17 * oerjan wonders if EgoBot is banned.
21:09:32 <GregorR> Nobody ever got back to me on why I was K-lined.
21:09:36 <GregorR> But I have to assume it was EgoBot.
21:09:42 <GregorR> And with no further information, there's not much I can do.
21:10:08 <oerjan> I suppose you could throttle it harder...
21:12:02 <oerjan> But if you have no record of it sending any dubious messages...
21:12:21 <GregorR> Not even any bad protocol commands.
21:12:51 <oerjan> Is there any chance the ban could have been caused by another person sharing ISPs?
21:13:22 <GregorR> And my IP (and thereby hostname) haven't changed for months.
21:17:10 <oerjan> but you are here on that hostname, so i take the k-line was lifted.
21:18:36 <GregorR> Yeah, I emailed them. The guy who responded lifted the K-line, but wouldn't tell me anything about why it was there.
21:26:13 -!- jix__ has joined.
21:35:56 -!- ihope has joined.
21:38:42 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:00:53 -!- CakeProphet has joined.
22:01:47 -!- ihope_ has joined.
22:10:02 -!- goban has joined.
22:19:50 -!- ihope has quit (Read error: 110 (Connection timed out)).
22:20:10 -!- ihope_ has changed nick to ihope.
23:00:00 -!- CakeProphet__ has joined.
23:00:36 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
23:00:38 -!- CakeProphet__ has changed nick to CakeProphet.
23:08:31 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").
23:39:38 -!- sebbu has quit ("@+").
00:21:58 -!- CakeProphet has changed nick to SevenInchBread.
01:24:01 -!- nazgjunk has quit (Remote closed the connection).
01:40:31 -!- pikhq has joined.
01:48:45 <ihope> Gah! Darn Google Groups.
01:52:04 <ihope> Luckily enough, I can get this down in three sentences.
01:52:22 <GregorR> pikhq: Do you think I should remove the special scope-reassignment of functions with assignment in Plof?
01:52:50 <GregorR> pikhq: It occurs to me that I'm not actually using function reassignment much, and it may be more confusing than it's worth.
01:53:05 <pikhq> Given that I didn't know that was *there*. . .
01:53:36 <GregorR> var someObject = :[ /* content */ ]; someObject.newFunction = :{ /* this function will run in someObject's scope, not this one */ };
01:54:15 <pikhq> Um, that's actually useful.
01:54:18 <GregorR> Unfortunately, the side effect is that I can't do things like:
01:54:27 <pikhq> It might be nice to use a different syntax, though.
01:54:30 <GregorR> var a = (x as function):{ var x2 = x; x2(); };
01:54:49 <GregorR> (As x2 would have a different scope than x was intended to be called in)
01:55:04 <pikhq> var someObject = someObject : :[newFunction = :{ /* Here's your function. */ }];
01:55:21 <pikhq> Remove the var bit.
01:55:40 <GregorR> That would have the same effect, but would change someObject, which would be bad if you had child objects of it.
01:58:10 <pikhq> someObject.newFunction = someObject.:{};?
01:58:37 <GregorR> Explicitly specifying the scope of an object at definition time.
01:58:47 <pikhq> Yeah. It *may* work.
02:01:17 <GregorR> Doesn't parse very cleanly with that syntax, but that's solvable.
02:01:42 <pikhq> It's a matter of getting a parsable syntax for it, after all. . .
02:02:30 <GregorR> someObject.newFunction = someObject:::{...};
02:16:04 <GregorR> SevenInchBread: Just syntax.
02:17:33 <SevenInchBread> assigns a function to a variable in a different scope...
02:18:11 <GregorR> someObject.:{}; is difficult to parse as it is, since '.' and '{' are at the same precedence.
02:18:29 <GregorR> Trying to figure out what to change to get syntax something like that without making parsing any more complex.
02:18:39 <GregorR> The problem there is this:
02:18:48 <GregorR> var a = (x as function):{ var x2 = x; x2(); };
02:19:32 <GregorR> Ideally, x2() would be the same as x().
02:19:48 <GregorR> Well, the problem is that that would reassign the scope.
02:19:59 <GregorR> But in that case, you don't want to reassign the scope.
02:20:02 <SevenInchBread> hmmm... well.... what kind of scoping is it? global-by-default?
02:20:45 <GregorR> By the current convention, x is in the scope that it was defined, and x2 is in the scope of function a.
02:21:30 <SevenInchBread> well... variables are implicitly local, or am I wrong?
02:21:46 <GregorR> They have the scope in which they were defined.
02:23:57 <SevenInchBread> hmm.... if you have a direct reference to the object... would it be much of a problem what scope you're in?
02:25:41 <GregorR> If you want to make a function be in a prototype object, the function as-declared will not have a direct reference to the object upon which it is run.
02:26:29 <SevenInchBread> ah.... I see.... so you need a sort of implicit way to add members/attributes/whatever to the prototype.
02:26:50 <GregorR> Currently, that's easy because the scope will be reassigned.
02:26:57 <GregorR> But it causes problems elsewhere.
02:28:26 <SevenInchBread> self being the scope from which the function was accessed.... maybe?
02:29:09 <GregorR> Umm, if I call someObject.foo(), I'm calling it from a scope which would not be an appropriate 'self' ...
02:29:21 <SevenInchBread> makes swapping methods between objects easier.... since self always refers to the containing scope for that function.
02:29:43 <SevenInchBread> no I mean.... make self implicitly the object from which foo was accessed
02:30:00 <SevenInchBread> .....not sure how you would program that to make sense though
02:30:30 <GregorR> I'm not sure if that solves the base problem :P
02:31:49 <GregorR> var a = (x as function):{ var x2 = x; x2(); }; // as Plof is currently designed, this is useless, and worse, an equivalent can't be easily defined.
02:32:18 <SevenInchBread> ...I don't understand the syntax... what's the colon for?
02:32:35 <GregorR> Don't worry about that, just know that it's a function accepting a function as an argument.
02:33:58 <GregorR> It's then assigning that function to its own variable, x2. But by the current definition, that changes the scope in which x2 will be run, so x2 won't work (as expected).
02:34:30 <GregorR> But the alternative makes adding functions to prototypes not work well.
02:34:45 <SevenInchBread> so the problem sems to be.... you have a fairly simple way to designate where variables are READ... but not a clear way ro specify where they're WRITTEN.
02:35:16 <GregorR> ............................. what?
02:37:00 -!- ihope has quit (Read error: 110 (Connection timed out)).
02:37:05 <SevenInchBread> just find where the variable is declare... and that's the scope to assign it to?
02:37:07 <GregorR> I don't think the problem that you think is the problem is the problem X-P
02:37:21 <GregorR> That's what's done right now.
02:37:45 <GregorR> ............................. OK, so I'll remove the colon, it's functionally equivalent :P
02:37:54 <GregorR> var a = (x as function){ var x2 = x; x2(); };
02:38:12 <GregorR> It's irrelevant what it does in this case X_X
02:38:24 <GregorR> I don't want to add to the confusion of trying to discuss a totally unrelated problem.
02:38:41 <SevenInchBread> >.> if I don't get the syntax... I can't decipher what's going on...
02:39:11 <GregorR> There are no colons in that example! :P
02:39:30 <GregorR> Is it "the colon thing" you don't understand, or the syntax in general?
02:40:27 <SevenInchBread> I figured out the colon thing... thin and thick functions right?
02:40:58 <SevenInchBread> ....now I just don't know what that means... you've defined an anonymous function next to a type casted function?
02:41:35 <SevenInchBread> ah wait.... do function calls require parenthesis? If not.... then you're calling (x as function) with {stuff} as the only argument, yes?
02:42:04 <oerjan> um, i think he is defining a function with one argument, x
02:43:06 <SevenInchBread> I thought it was... something being evaluated just before the lambda.
02:43:55 <GregorR> As it is, when I assign x to x2, x2 gets the content of the function, but the scope when called will be different.
02:44:41 <GregorR> Yeah. And it was necessary for me to do that for adding functions to objects to work properly.
02:44:46 <GregorR> But it has a nasty side-effect :(
02:45:06 <SevenInchBread> is it possible to have lexical functions and dynamic functions?
02:45:15 <SevenInchBread> or have lexical variables and dynamic variables perhaps?
02:45:21 <oerjan> a language without lexical scoping is not Properly Functional (TM)
02:46:04 <SevenInchBread> the variables that are undefined in the function are... basically dynamically gotten.
02:46:10 <GregorR> The default scope of a function is the scope in which it was defined, e.g. lexical scoping.
02:46:20 <GregorR> But, as a functional language, Plof is Ridiculously Impure (TM).
02:46:21 <oerjan> the problem is how to refer to variables of the current object.
02:46:44 <oerjan> and something self-like might be cleaner.
02:47:15 <GregorR> /Getting/ self would be nasty at best.
02:47:33 <SevenInchBread> I think having lexically defined or dynamically defined variables would be interesting.
02:47:43 <oerjan> the python solution seems to work well.
02:48:10 <GregorR> It's not really comparable.
02:48:14 <oerjan> i don't necessarily mean all of it.
02:48:33 <oerjan> just the part about binding functions to methods with the x.f construction
02:48:37 <SevenInchBread> like... you can't assign arbitrary functions to a Python object and expect them to work like methods.
02:49:11 <oerjan> well, you can do it to a class
02:49:48 <SevenInchBread> yeah... wouldn't work out well..... hmmm... how does IO fix this dilemma?
02:49:52 <oerjan> i suppose the problem is you might want to access unbound methods too
02:50:50 <SevenInchBread> a function that doesn't access self is effectively unbound
02:51:05 <oerjan> ok, simply have an assignment that tags a function as a method.
02:51:41 <GregorR> e.g., an assignment operator which changes scope.
02:52:06 <oerjan> not all of the scope just the self
02:52:06 <SevenInchBread> like there's a really simple way to just make it all work with one assignment operator.
02:52:40 <SevenInchBread> couldn't all assignments with functions treat functions as methods?
02:53:03 <GregorR> oerjan: As it is, functions defined within an object have a parent scope of the object, and so 'self' is unnecessary. It would be confusing for adjunct methods to require 'self', but internal methods not to. Also, it would mean you couldn't copy a method from one object to another.
02:53:14 <SevenInchBread> ....that's basically what Ruby does... a function is a method that simply never refers to self.
02:54:17 <oerjan> i know, but i think it would be problematic in any case. what if you copy to an object that has a different set of fields, some of which have the same name as globals?
02:54:35 <GregorR> I suppose I may have to *sigh*
02:54:58 <SevenInchBread> what's the problem with making anonymous functions bound to the scope they get assigned to?
02:55:16 <oerjan> that you then don't get closures.
02:55:18 <GregorR> var a = (x as function){ var x2 = x; x2(); };
02:55:29 <GregorR> ^ That's the problem with it :)
02:56:13 <SevenInchBread> I'm not sure I understand... wouldn't x2 be called in the scope of the "module" (or whatever plof calls it)
02:56:39 <GregorR> ... x2 is called in the scope of the function assigned to a.
02:57:22 <SevenInchBread> which has access to... the global scope in which a is defined, right?
02:57:36 <GregorR> Right. But 'x' was presumably defined in some other scope.
02:57:44 <GregorR> And will be expecting variables from it.
02:57:55 <oerjan> this resembles the lisp mess with lambda vs. function, doesn't it?
02:58:34 * GregorR is not familiar with that particular mess ... not very familiar with LISP.
02:58:52 <SevenInchBread> hmmmm..... if x2 is lexically scoped, what's the problem?
02:58:57 <oerjan> lambda is dynamically scoped, function is lexical, i think
02:59:07 <GregorR> SevenInchBread: x2 was assigned x.
02:59:26 <GregorR> SevenInchBread: So x2 will be called with a's scope, rather than x's scope. However, the function is still x.
03:00:00 <SevenInchBread> right... the interpreter would make no distinction between literal lambda assignment and variably expanded assignment.
03:00:43 <SevenInchBread> ...so, what's the difference between thin and thick functions again?
03:01:00 <GregorR> When you return from a function, it falls through all the thin functions and returns from the nearest thick function.
03:01:46 <GregorR> There are no blocks but functions. But if you do:
03:01:54 <SevenInchBread> a return in a thin function...... returns from the thin function it's defined in.
03:02:06 <SevenInchBread> it's so you can do things like return in an if statement
03:02:20 <GregorR> Since you're really passing 'if' a function.
03:02:34 <GregorR> It is hackish, but it's not as bad as what I had in Plof1 :P
03:02:44 <GregorR> It's the intersection between functional and imperative programming X_X
03:03:00 <SevenInchBread> could you maybe do return if(whatever, {blah;blah;blah;return x}, {return whatever});
03:03:16 <SevenInchBread> have the if statement return the return value of the executed function.
03:03:29 <GregorR> What if you only want one side of the if to return?
03:03:59 <GregorR> Like I said, intersection between functional and imperative :)
03:04:19 <SevenInchBread> I thought thick and thin functions were something like ios blocks and methods....
03:04:50 <GregorR> They're sort of similar, but far more interchangeable.
03:05:20 <oerjan> what if you make it so only thick functions get reassigned scope?
03:05:49 <SevenInchBread> heh... basically what if you make thin functions dynamical and thick functions lexical. :)
03:06:03 <oerjan> no, the other way around
03:06:27 <GregorR> var a = (x as thick):{ var x2 = x; x2(); }; // why shouldn't this work?
03:06:59 <oerjan> because a thick function becomes a method...
03:07:40 <SevenInchBread> hmm... typecasting thin and thick functions sounds like tricky business.
03:07:43 <oerjan> you could have automatic conversion between them.
03:08:29 <oerjan> (x as thin) would mean, don't reassign scope for x
03:08:48 <GregorR> Except that it would also mean that it's a thin function X_X
03:09:22 <oerjan> yes, but encapsulation is trivial
03:10:24 <SevenInchBread> that example.... or is it just as a "doesn't it just make sense that it should work this way" example.
03:10:29 <oerjan> if we take the smalltalk option that return can only return from methods...
03:11:05 <GregorR> I don't want to make this distinction between "methods" and "functions," especially since there are plenty of global functions that return.
03:11:45 <SevenInchBread> ah okay yeah... you want thick and thin functions to be largely interchangable thanks to type conversion
03:13:06 <SevenInchBread> heh.... this is nothing.... I had the insane idea of defining list-splits, attribute-access, and function calls with the same operator.
03:13:44 <oerjan> whitespace overloading anyone?
03:13:51 <SevenInchBread> object attribute (called series of list (items with (subcalls)) huge parsing dillemma)
03:16:21 <oerjan> actually that resembles some thoughts i have been having on ALPACA's syntax
03:17:18 <SevenInchBread> it was... quite strictly... "all functions are one argumented"
03:18:17 <oerjan> you do know about combinatory logic, right?
03:19:01 <SevenInchBread> I simplified things quite muchly with good-ol comma-separate lists.
03:21:06 <SevenInchBread> [do stuff to things] if (x > 3) else [do (other stuff) to things] ....although if I figure out some crazy way to unify expressions with functions... I can make it look like
03:21:22 <SevenInchBread> (do stuff to things) if (x > 3) else (do (other stuff) to things)
03:22:56 <SevenInchBread> ....actually I just figured out how... but it's a little unintuitive to explain the semantics.
03:26:55 <SevenInchBread> basically you have expression wrapped up in an expression object of sorts.... and if the message isn't defined on the expression, the expression is evaluated and it gets sent to the returned object.
03:27:44 <oerjan> now if you let obj meth = meth obj, (i.e. objects applied to things reversely apply them back) and use currying, then attribute access and function application _can_ have the same syntax.
03:30:21 <SevenInchBread> functions are objects that accept one message, and puts it into the source code.
03:30:47 <oerjan> now if you interpret (a b c) as \f. f a b c, then you can make lists of attributes interpolate
03:31:13 <SevenInchBread> and... since lists are single messages... (you, can, pass, multiple, arguments)
03:32:30 <oerjan> eh, are we talking about the same thing?
03:32:50 <oerjan> i was describing my ideas about ALPACA.
03:33:47 <oerjan> ALPACA conditions, suitably generalized, sort of look like a list of attributes applied iteratively.
03:34:03 <oerjan> but sometimes a function argument gets thrown in.
03:34:58 <oerjan> like ^ is an attribute to find the cell above the current one
03:36:48 <oerjan> except i don't think the original ALPACA allows you to iterate them - you have to stay within the 8-cell neighborhood.
03:37:04 <oerjan> but that is what i mean by suitably generalized.
03:37:14 <SevenInchBread> I'm trying to make creating objects suitably convient... because I think you could do a lot of nifty stuff with constructions... instead of the typical return-the-desired-value-immediately thing.
03:38:09 <SevenInchBread> like (x + 1) if (x > 3) will return a structure of sorts that works like a typical expression... but with an added else method.
03:38:38 <SevenInchBread> if the next message is defined on the expression... it's execute... otherwise the expression is evaluated and the message delegated to the return.
03:40:48 <oerjan> everything is guaranteed to behave as if nothing is evaluated until it is needed.
03:40:48 -!- helios24 has quit (Read error: 104 (Connection reset by peer)).
03:41:34 <SevenInchBread> oerjan, hmmm... does it preserve the evaluation... so it only evaluated once instead of everytime it's needed?
03:41:58 <oerjan> in any reasonable implementation yes
03:42:23 -!- helios24 has joined.
03:42:32 <oerjan> although evaluating it _every_time_ happens to be equivalent except in speed, so strictly speaking that is legal too
03:42:35 <SevenInchBread> depends on how you define the lanauge.... in the case of Sophia... it's whenever a message is passed to it.
03:44:30 <oerjan> in Haskell a value is needed when it is investigated by something that is itself needed.
03:45:05 -!- Sgeo has joined.
03:45:31 <oerjan> if a function call f x is needed, the function f will be. x may or may not be.
03:46:41 <SevenInchBread> hmm... so nothing is evaluated until something that is being evaluated needs it to be evaluated in order for it itself to be evaluated?
03:47:18 <oerjan> indeed, starting from the Main.main function, which is the only thing automatically needed.
03:47:44 <oerjan> or from whatever you give interactively if using a repl
03:49:47 <oerjan> or rather, main is evaluated to an IO action, which is performed, which may cause further evaluations.
03:51:35 <oerjan> there are however a couple of functions to get around lazy evaluation.
03:52:32 <oerjan> seq a b pretends to need a, evaluating it, then evaluates b and returns it.
03:53:04 <oerjan> and f $! x = seq x (f x)
03:55:19 <oerjan> also you can annotate record fields with ! so that they are automatically evaluated when the whole record is.
04:05:44 -!- SevenInchBread has quit (Read error: 113 (No route to host)).
04:57:22 -!- Sgeo has quit ("Ex-Chat").
05:39:13 -!- oerjan has quit ("leaving").
07:00:15 -!- FunnyMan3595 has joined.
07:03:54 -!- FunnyMan3595 has left (?).
07:19:19 -!- jix__ has joined.
07:39:43 -!- fax has joined.
07:47:42 -!- jix__ has quit ("This computer has gone to sleep").
07:50:07 -!- jix__ has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:22:36 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
09:22:01 -!- puzzlet_ has joined.
09:33:35 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
10:32:16 -!- puzzlet_ has quit (zelazny.freenode.net irc.freenode.net).
10:32:17 -!- sp3tt has quit (zelazny.freenode.net irc.freenode.net).
10:34:40 -!- puzzlet_ has joined.
10:34:40 -!- sp3tt has joined.
11:09:07 -!- ihope_ has joined.
11:09:16 -!- ihope_ has changed nick to ihope.
13:10:44 -!- pikhq has quit (Remote closed the connection).
13:11:03 -!- pikhq has joined.
14:11:12 * SimonRC hav drewn a pikcher: http://compsoc.dur.ac.uk/~sc/art/langs.png
14:16:59 <fax> I love it!!!!
14:17:14 <fax> thats going on my wall as soon as I fing a printer
14:19:41 <SimonRC> They vary between the languages themselves and their stereotypical users
14:20:05 <SimonRC> Perl and Java are based on people I know.
14:20:32 <fax> do APL and stuff
14:21:02 * fax reads about epigram
14:21:09 <SimonRC> I am not sure what they should look like
14:21:24 <fax> APL is an anarchist
14:22:49 <fax> wow epigram looks interesting
14:23:28 <SimonRC> I know one of the main developers, otherwise I would not know about it.
14:24:05 <SimonRC> I recommend learning Haskell, then learning the GADT extension to haskell before trying to tackle Epigram.
14:24:35 <fax> I wrote a LOGO interpreter in haskell
14:24:40 <fax> but its the only program I wrote
14:33:45 <SimonRC> the fact that you can write that as your first program shows what a poerful language Haskell it :-P
14:35:03 <fax> http://fax.twilightcoders.net/files/LOGO.zip
14:35:09 <fax> I think its awful code
14:35:40 <fax> this is the usermanual http://img293.imageshack.us/img293/449/logovz4.png
14:37:18 -!- ihope has quit (Read error: 110 (Connection timed out)).
14:40:05 <fax> I got really pissed off with the state of implementations of scheme
14:40:15 <fax> & went on a rampage & wrote this
14:40:29 <fax> in scheme48 I could use glut but not networking at the same time
14:47:26 <SimonRC> OTOH, you got a head-start as you knew scheme and the libraries you were using
14:47:53 <SimonRC> I don't use {;} much. maybe once every few hundred lines to fit something all on one line
14:49:08 <SimonRC> I would have said "type M = ReaderT (Map String Float, Map String Function)"
14:49:09 <fax> I dunno I think that I wrote really bad haskell because I dont have any exp like writing things well
14:49:17 <fax> Whats that for?
14:50:00 <fax> M is what?
14:50:10 <fax> oh variables and functions
14:51:06 <SimonRC> do you knw about monad transformers?
14:51:35 <fax> I wanted to write a monad so I could make the turtle move 20 pixels per second
14:51:37 <fax> but I gave up by then
14:51:42 <fax> maybe ill do it sometime
14:54:27 <SimonRC> M would allow you to have the current bindings available without haveing to explicitly pass them around so much
14:54:49 <SimonRC> There's a tutorial about making a lisp interpreter that explains that sort of thing
14:55:08 <fax> oh yeah I skimmed the tutorial, I think ill read that properly then
14:55:27 <fax> http://halogen.note.amherst.edu/~jdtang/scheme_in_48/tutorial/overview.html
15:02:31 -!- jix__ has joined.
15:07:53 -!- jix__ has changed nick to jix.
15:12:44 <SimonRC> The problem with colonising other planets via STL means is that if you can build the damn colony ships there is no point sending them out of Earth orbit.
15:20:20 -!- crathman has joined.
15:21:22 -!- ihope_ has joined.
15:21:30 -!- ihope_ has changed nick to ihope.
15:37:25 <SimonRC> The Daily WTF is launching OMGWTF -- "The Olympiad of Misguided Geeks at Worse Than Failure Programming Contest"
15:39:45 -!- goban has quit (Connection timed out).
15:47:11 -!- ihope has quit (Read error: 104 (Connection reset by peer)).
16:17:14 -!- goban has joined.
16:39:45 -!- goban has quit (Connection timed out).
16:43:22 -!- sebbu has joined.
16:51:52 -!- pikhq has quit (Read error: 110 (Connection timed out)).
16:54:40 -!- helios24 has quit (zelazny.freenode.net irc.freenode.net).
16:54:41 -!- bsmntbombdood has quit (zelazny.freenode.net irc.freenode.net).
16:54:41 -!- SimonRC has quit (zelazny.freenode.net irc.freenode.net).
16:54:43 -!- bsmntbombdood has joined.
16:54:44 -!- SimonRC has joined.
16:54:46 -!- helios24 has joined.
16:58:27 -!- pikhq has joined.
17:27:05 -!- goban has joined.
17:52:43 -!- goban has quit (Connection timed out).
17:53:01 -!- goban has joined.
21:01:11 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:38:41 -!- oerjan has joined.
21:47:19 <oerjan> SimonRC: those _are_ horns on the Cobol guy, right?
21:47:50 * oerjan wants to be a mix of the Scheme, Intercal and Epigram guy
22:14:09 <SimonRC> he just has a bad combover
22:19:14 -!- goban has quit (Connection timed out).
22:22:51 -!- nazgjunk has joined.
22:29:15 -!- puzzlet has joined.
22:29:54 -!- puzzlet_ has quit (Read error: 54 (Connection reset by peer)).
23:35:43 -!- goban has joined.
23:46:26 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").
00:19:09 -!- sebbu has quit ("@+").
00:26:14 -!- goban has quit (Connection timed out).
00:39:56 -!- goban has joined.
01:10:49 -!- bsmntbombdood has changed nick to e^.
01:10:59 -!- e^ has changed nick to e.
01:11:25 -!- e has changed nick to bsmntbombdood.
01:12:17 -!- bsmntbombdood has changed nick to e_tothe_[pi_i].
01:27:07 -!- e_tothe_[pi_i] has changed nick to bsmntbombdood.
01:40:08 -!- fax has quit (" ").
01:56:49 -!- SevenInchBread has joined.
03:06:08 <oerjan> hmph, it doesn't look more similar to C than to anything else vaguely C-like
03:08:30 <oerjan> on the other hand, i believe it is somewhere between C and perl, historically.
03:09:55 -!- SevenInchBread has changed nick to CakeProphet.
03:10:01 -!- CakeProphet has quit ("haaaaaaaaaa").
03:10:26 -!- CakeProphet has joined.
03:19:04 -!- CakeProphet has quit ("haaaaaaaaaa").
03:19:29 -!- CakeProphet has joined.
03:22:02 <bsmntbombdood> Someone asks about pronouns in if statements, and someone gives a few lines of CL macro to do exactly that
03:23:24 <bsmntbombdood> http://compilers.iecc.com/comparch/article/00-02-149
03:40:13 -!- CakeProphet has quit ("haaaaaaaaaa").
04:09:46 -!- pikhq has quit ("leaving").
04:10:41 -!- pikhq has joined.
04:37:36 -!- oerjan has quit ("fnord").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:22:03 -!- jix__ has joined.
12:06:15 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
13:12:46 -!- pikhq has quit (Read error: 110 (Connection timed out)).
13:20:21 -!- pikhq has joined.
14:11:26 -!- jix__ has joined.
14:41:56 -!- jix__ has changed nick to jix.
16:40:55 -!- sebbu has joined.
18:32:24 -!- crathman has joined.
18:42:45 -!- nazgjunk has quit (Read error: 131 (Connection reset by peer)).
18:43:20 -!- nazgjunk has joined.
20:17:51 -!- nazgjunk has quit ("Bi-la Kaifa").
20:18:37 -!- nazgjunk has joined.
21:06:12 -!- UnrelatedToQaz has joined.
21:29:17 -!- fax has joined.
21:30:19 <fax> ⣓⣚⣝⣵⣩⣸⣾⣾⡿⡳⡩⡸⡬⡦⡽⡢⣴ <-- braillefuck program to print 99 bottles of beer on the wall song</lame-joke>
21:41:28 <fax> someone said that common lisps format string was turing complete
21:41:32 <fax> because it has goto
21:41:46 <fax> (complete without using // or whatver to call lisp functions that is)
21:42:43 <fax> I can kind of imagine how
21:42:50 <fax> & it has a conditional operator
21:43:14 <fax> im not really sure how you might do anything with it but ill probably try at some point
21:43:37 <fax> quasi because they dont take parameters?
21:50:09 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:16:18 -!- UnrelatedToQaz has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").
22:32:37 -!- oerjan has joined.
22:47:19 -!- puzzlet_ has joined.
22:59:33 <fax> I think its impossible
22:59:52 <fax> pjd suggested writing the output to the input, which would work really nicley
23:00:01 <fax> if you could do a function call with an infinite number of parameters :/
23:00:13 <fax> of course with applicative order, cant happen :/
23:00:24 <fax> applicative order evaluation*-
23:00:31 <fax> so I think ill give u p
23:01:04 <fax> lament: I mean like you can use ~? to use the next argument as a format string
23:01:21 <fax> streams wouldnt be helpful in this situation
23:01:42 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
23:08:37 -!- crathman has quit (Read error: 148 (No route to host)).
23:17:20 -!- sebbu has quit ("@+").
23:26:18 <fax> I dont think its turing complete without ~//
23:26:22 <fax> e..g calling back into lip
23:27:29 <bsmntbombdood> does it have sequence, conditionals, and repitition?
23:28:31 <fax> dude I dunno
23:28:36 <fax> maybe but I think possibly not
23:39:55 <SimonRC> what about unbounded storage?
23:40:11 <fax> you can make a resizeable string
23:40:20 <fax> and use it as a parameter as well as output
23:40:28 <fax> but eve with that I cant see how to do this
23:40:44 <fax> I could maybe do stuff withh it if I could funcall with infinite number of parameters
23:40:48 <fax> but thats impossible :/
23:41:53 <oerjan> can someone point me to an actual description of format?
23:42:30 <fax> http://www.gigamonkeys.com/book/a-few-format-recipes.html & http://www.lisp.org/HyperSpec/Body/sec_22-3.html
00:12:21 <oerjan> can't you funcall with infinite number of parameters by using a cyclic list?
00:12:55 <fax> oerjan: I tried (apply #'format t "..." infinite-list)
00:12:59 <fax> which didnt work
00:13:05 <fax> but I think you are rihgt
00:13:11 <fax> I could just call it without apply
00:13:16 <fax> may work, im not sure
00:13:28 <fax> depends on the behavior of ~?
00:13:37 <fax> (which im not totally sure about)
00:13:49 <oerjan> might be implementation-defined
00:16:11 <oerjan> even then i have a sense you get limited to a pushdown automaton since the positions in the formats and argument lists are your only changeable data that i can see
00:18:28 <oerjan> except, perhaps, if you use the extensible output string as your format string in some clever way...
00:20:45 <oerjan> something like Smith or Muriel
00:22:16 -!- crathman has joined.
00:22:48 -!- crathman has quit (Remote closed the connection).
00:39:40 * fax writes thhis (format nil "~{~^~?~}" '("<~?>" ("[~a]" ("y")))) → <[y]>
00:39:43 * fax gives up again
00:48:17 -!- ihope has joined.
02:01:35 * pikhq has discovered that Gentoo provides an easy way to get GDC working. . .
02:01:47 <pikhq> Add "d" to USE, recompile GCC; voila.
03:42:45 -!- ihope has quit (Read error: 110 (Connection timed out)).
04:29:15 <SimonRC> If you ever wondered how virtual methods worked, this paper has an excellent explanation, AFAICT: http://www.cs.ucsb.edu/~urs/oocsb/papers/oopsla96.pdf
04:55:55 -!- oerjan has quit ("leaving").
05:32:19 <bsmntbombdood> virtual methods being ones that need to be defined in a subclass?
05:54:15 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
06:03:45 -!- puzzlet has joined.
06:04:32 -!- puzzlet has quit (Client Quit).
06:05:18 -!- Arrogant has joined.
06:07:54 -!- puzzlet has joined.
06:12:56 -!- puzzlet_ has joined.
06:13:49 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
06:45:11 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
07:56:07 -!- Arrogant has quit ("Leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:07:51 -!- fax has quit (" ").
11:59:16 -!- ihope has joined.
12:36:20 -!- ihope_ has joined.
12:54:50 -!- ihope has quit (Read error: 110 (Connection timed out)).
12:58:19 -!- pikhq has quit (Read error: 110 (Connection timed out)).
14:28:00 -!- goban has quit (Read error: 104 (Connection reset by peer)).
14:48:00 -!- pikhq has joined.
14:50:23 -!- jix__ has joined.
15:22:15 -!- crathman has joined.
15:26:16 -!- helios24 has quit (Read error: 113 (No route to host)).
15:54:07 -!- jix__ has changed nick to jix.
16:15:52 -!- fax has joined.
16:38:50 -!- sebbu has joined.
17:18:22 <pikhq> http://omg.worsethanfailure.com/ Anyone else going to work on this?
18:16:03 -!- Arrogant has joined.
18:45:10 -!- ihope_ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
19:00:45 -!- Arrogant has quit (Read error: 113 (No route to host)).
19:21:36 <bsmntbombdood> contest: write a program to print the decimal representation of the 435 fibonacci number
19:23:51 -!- helios24 has joined.
19:26:20 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
19:28:18 <fax> then do [fbs=.,&fbs+/0 1{fbs 435 times
19:28:28 <fax> then take elemt 0
19:32:14 <fax> bsmntbombdood: whats the 8th fib number?
19:32:29 <fax> its 21 right?
19:34:11 <lament> of course, you're probably using Perl :)
19:35:21 <lament> 39, hasekll: let f=0:1:zipWith(+)f(tail f)in f!!435
19:35:43 <fax> damn i I knew how to do somthing several times..
19:36:41 <fax> whats that?!
19:40:41 <fax> what language
19:41:44 -!- fax has changed nick to faux.
19:44:21 <faux> ugh I dont know J well enough to write this
19:45:01 <faux> oh maybe I know what to do
19:55:01 <faux> 0{((2 0{(,+/))^:(435-2))1 1
19:55:04 <faux> thats mine though
19:55:09 <faux> probably possible to make it shorter
19:55:17 <faux> the answer is 3.63194e90?
20:03:01 <sebbu> faux, what's your language ?
20:03:35 <faux> but I dont really know J .. Its hard
20:36:39 -!- faux has changed nick to fax.
21:24:30 <fax> OK I told every other channel... I made a parody of http://www.linuxsoftware.co.nz/containerchoice.png ..... http://img410.imageshack.us/img410/5972/lispcontainerchoicelp9.gif
21:24:41 <fax> can you tell im bored?
21:54:47 <pikhq> Too many damned things I should work on. . .
21:55:09 <pikhq> I still want to try my hand at that Linux distro I've been thinking about. . .
21:58:28 <GregorR> pikhq: My improved Plof interpreter works now :)
21:58:44 <pikhq> GregorR: Speaking of which, I've now got a working D compiler.
21:58:58 <GregorR> Now all you need is Tango and DSSS, and you can compile it ;P
22:00:23 <pikhq> Could you please do me a favor and either remove that dependency or actually bother with the amd64 port you said you'd work on?
22:00:42 <GregorR> I can't really remove the dependency on Tango.
22:02:13 <pikhq> So, I should work on getting myself a nice, shiny new distro instead.
22:02:38 <GregorR> ... or just compile with -m32?
22:02:45 <pikhq> . . . That'd be too easy.
22:05:05 <GregorR> Do you have 32-bit libs installed?
22:05:59 <GregorR> Just grab this binary: http://downloads.dsource.org/projects/tango/0.97/tango-0.97-forDSSS-gdc-i686-pc-linux-gnu-withDSSS-withGDC.sh
22:06:21 <pikhq> The 32-bit libc actually comes out of the box in Gentoo now. . .
22:06:29 <GregorR> That's either nifty or awful.
22:06:39 <pikhq> It's just so that gcc -m32 works.
22:06:48 <pikhq> It's not *used* at all unless you install more packages.
22:07:21 <pikhq> (I *think* it's just for simplicity's sake; easier to get the libc package to do both than to have multiple packages which only need to be cared about for x86_64)
22:08:02 <pikhq> . . . Unless maybe busybox is linked against the 32 bit libs?
22:26:21 <fax> bsmntbombdood: by me?
22:27:08 <pikhq> What language is that?
22:27:39 <fax> Im sure it could be done better though
22:27:43 <fax> Im not really any good at J
22:27:44 <pikhq> If we're allowed to use *any* language for that competition, then I can *surely* find something that'd win.
22:27:55 <fax> yeah Fibonacci++ :P
22:28:14 <pikhq> Turing complete, I'd assume. . .
22:29:09 <pikhq> +++>++++>+++>+++++<<<F
22:30:31 <pikhq> Now a Perl implementation would be interesting. . .
22:30:42 <pikhq> Probably get something like a large string of numbers.
22:30:49 <fax> I bet you guys have seen this a million times
22:30:51 <fax> but incase you havent
22:30:57 <fax> http://montreal.pm.org/tech/neil_kandalgaonkar.shtml
22:31:05 <fax> primeality test regex
22:31:10 <fax> I thought that was great
22:31:15 <pikhq> Not surprised at all.
22:31:39 <pikhq> In such uses, Perl counts as an esolang. . .
22:31:46 <pikhq> Kind of like what IOCCC can be.
22:32:06 <pikhq> m(){n;f(h=1;h<=b;d=1);f(c=2;c<=b;c++)i(e){p("%i\n",c);f(h=c*c;h<=b;h+=c)g=0;}}
22:32:14 <pikhq> That's my personal example.
22:33:06 <pikhq> The list of defines on the command line is about as long as that code. . .
22:35:22 <pikhq> X is defined as something else via -D.
22:35:34 <pikhq> -D "n=int a[b]" -D f=for -D p=printf -D m=main -D b=10000 -D "c=(a[1])" -D "d=a[h++]" -D e=a[c] -D g=a[h] -D "h=(*a)" -D i=if
22:35:35 <fax> thats cheating
22:35:43 <pikhq> There; the list of defines for my line of C.
22:35:51 <fax> you can use GCC as a brainfuck compiler like that
22:36:06 <pikhq> It really doesn't get any better after preprocessing. . .
22:37:47 <pikhq> As proof: http://pikhq.nonlogic.org/bar.c
22:37:55 <pikhq> My line after preprocessing and indent.
22:38:50 <pikhq> First person to figure out what it does and how wins a prize.
22:40:09 <fax> I have no idea
22:43:28 <pikhq> It's a prime number generator.
22:43:40 <fax> see i thought it might be
22:43:41 <pikhq> Now how, I leave as an exercise for the reader.
22:43:47 <fax> but then I thought.. no way
22:43:52 <pikhq> (just name the algorithm)
22:44:19 <pikhq> fax: Why'd you think 'no way'?
22:46:00 <fax> no % anywhere!
22:46:31 <pikhq> Who needs that operation?
22:46:43 <pikhq> And there *is* a %. . . In the printf call.
22:50:26 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
22:53:59 -!- pikhq has joined.
23:03:04 -!- pikhq has quit ("leaving").
23:03:21 -!- pikhq has joined.
23:07:07 -!- oerjan has joined.
23:26:32 <oerjan> i think there is an off by one error in the first for, for starters
23:27:14 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").
23:30:27 -!- Sgeo has joined.
23:30:34 <oerjan> basically, i think all the <= 10000 should be < 10000
23:35:29 <oerjan> other than that it looks like an Erasthotenes's sieve
00:01:08 -!- Tweek888 has joined.
00:03:52 <Tweek888> could someone slap fax and cmeme with a trout?
00:03:56 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
00:05:23 <pikhq> oerjan: It's Eratosthene's sieve, indeed.
00:05:53 <pikhq> And that suggestion, while not making a difference as far as the algorithm is concerned, makes the code shorter. . .
00:07:01 <Tweek888> do I just say functions in plain english?
00:07:19 <pikhq> . . . Scratch that, it doesn't work with <=.
00:08:10 <oerjan> it should make a difference, because you are otherwise using the element a[10000] which doesn't exist
00:08:26 <pikhq> I ended up using = instead of <.
00:08:51 <pikhq> I think that why it works is pure chance. . .
00:09:06 <oerjan> in principle the old version has a memory access error
00:09:10 <pikhq> m(){n;f(h=1;h<b;d=1);f(c=2;c<b;c++)i(e){p("%i\n",c);f(h=c*c;h<b;h+=c)g=0;}}
00:13:43 <Tweek888> please print pi to the ten thousandths place.
00:16:14 <Tweek888> please enumerate pi to the ten thousandths place and newline say :O
00:20:02 <Tweek888> print currently playing song from media player
00:20:23 <lament> error: term 'media player' undefined
00:21:35 -!- Sgeo has joined.
00:22:21 <pikhq> Relient K - For The Moments I Feel Faint - The Anatomy of the Tongue in Cheek. 2001.
00:22:57 <pikhq> Who said anything about it being *your* media player?
00:24:20 <Tweek888> print what user Tweek888 is thinking
00:24:49 <lament> sex sex sex sex sex drugs sex
00:24:53 <pikhq> ERROR: libpsychic.so.1 cannot be found.
00:32:29 <pikhq> ERROR: libsexychic.so.1 can be found; psychic != sexychic.
00:38:05 -!- pikhq_ has joined.
00:43:20 -!- Tweek888 has quit (Remote closed the connection).
00:46:05 -!- Robdgreat has joined.
00:46:41 <fax> crazy stuffff
00:47:09 <oerjan> or possibly irp spyware
00:48:38 -!- Sgeo has quit ("Ex-Chat").
00:49:17 -!- pikhq has quit (Read error: 110 (Connection timed out)).
00:50:03 <GregorR> My new DPlof interpreter can run PlofPlof properly!
00:50:08 <GregorR> No more deep recursion for me :P
00:52:15 <pikhq_> Could you link to the D compiler again, please?
00:53:36 <GregorR> http://downloads.dsource.org/projects/tango/0.97/tango-0.97-forDSSS-gdc-i686-pc-linux-gnu-withDSSS-withGDC.sh
00:54:14 <GregorR> pikhq_: My intention is to use DPlof just to get Plof (the one in Plof) working. Then I'll make Plof target C (as well as interpretation), and bingo, CPlof.
00:54:32 <pikhq_> What does PlofPlof compile to now?
00:55:02 <lament> compiles to plof, obviously
00:55:19 <GregorR> I had to leave it for a while because DPlof couldn't run it X-P
00:55:20 <pikhq_> I assume you wouldn't mind my help in PlofPlof?
00:56:12 <GregorR> DPlof is damn slow, but like I said, it's temporary.
00:57:42 <pikhq_> builtins.d:31: module Stdout cannot read file 'tango/io/Stdout.d'
00:58:37 <GregorR> (Hint: The correct way is `dsss build`)
00:59:30 <pikhq_> Would it kill you to use standard build tools?
01:00:02 <GregorR> Whatever build tool you think is standard, it isn't for D.
01:01:11 <pikhq_> Um. . . You're not allowed to use make and autoconf?
01:01:23 <GregorR> Make and autoconf are the way they are because of limitations in C.
01:02:06 <GregorR> [Oh, and, no, autoconf does not work with D]
01:02:18 <pikhq_> Autoconf, not surprised; that is C-specific. . .
01:02:29 <GregorR> Make is nothing-specific, and that's what's so bad about it.
01:02:38 <GregorR> Could I use make? Yes. But it would be a gigantic pain in the ass.
01:02:41 <oerjan> well make a dummy makefile then
01:02:57 <pikhq_> Make, a pain in the ass?
01:03:15 <pikhq_> Looking at dsss.conf. Jebus, that's handy.
01:03:52 <GregorR> D has a more pure way of listing dependencies in source files.
01:03:59 <GregorR> As such, listing all source files in a Makefile is redundant.
01:04:23 <pikhq_> Now if only I could get the damned thing to build.
01:04:42 <pikhq_> /tmp/ccdreAhw.s:7624: Error: suffix or operands invalid for `push'
01:04:42 <pikhq_> /tmp/ccdreAhw.s:7634: Error: suffix or operands invalid for `pop'
01:04:55 <GregorR> ... this is building dplof?
01:05:34 <GregorR> Could you try `dsss build -m32` ?
01:06:06 <pikhq_> I get the feeling something weird is happening.
01:06:15 <GregorR> Hm. I'm thinking maybe that binary's gdc expects a 32-bit only ld.
01:06:48 <pikhq_> And I, in my stupidity, overwrote /usr/bin/gdc.
01:07:43 <GregorR> I usually install stuff to /opt/whatever :)
01:07:53 <pikhq_> You think I could get a binary tarball of Dplof?
01:08:01 <bsmntbombdood> GregorR> pikhq_: My intention is to use DPlof just to get Plof (the one in Plof) working. Then I'll make Plof target C (as well as interpretation), and bingo, CPlof.
01:08:12 <pikhq_> bsmntbombdood: That's called "Self-hosting".
01:08:58 <pikhq_> Even Brainfuck can self-host. Why not Plof?
01:09:30 <pikhq_> Damned useful, actually.
01:09:31 <bsmntbombdood> it _can_ do it, but that doesn't mean someone should write it all
01:09:43 <GregorR> bsmntbombdood: Compiling to C is quite useful.
01:09:48 <pikhq_> And I bet that Plof'd get more popularity if Dplof weren't a build requirement.
01:09:54 <GregorR> bsmntbombdood: The fact that that gives me Plof in C for free is just a side-effect.
01:10:10 <pikhq_> It just happens to be in Plof.
01:11:13 <pikhq_> Dplof will be abandoned once Plof works.
01:11:30 <GregorR> pikhq_: http://www.codu.org/plof.tar.gz
01:11:38 <GregorR> pikhq_: http://www.codu.org/dplof.tar.gz
01:13:09 <GregorR> Disclaimer: dplof may have (and probably does have) obscure bugs :)
01:13:46 <pikhq_> Like file IO segfaulting?
01:14:15 <lament> plof looks pretty boring
01:14:37 <GregorR> Oh no, I am so offended, blah blah etc?
01:16:14 <GregorR> pikhq_: I'm not seeing fileio segfaulting ...
01:16:32 <pikhq_> GregorR: It's probably an issue with multilib.
01:17:05 -!- sebbu has quit ("@+").
01:18:07 <pikhq_> . . . Except stdio works.
01:18:43 <pikhq_> Moral of the story: Dplof and x86_64 don't mix.
01:19:02 <pikhq_> CPlof should be easier to get to mix, though.
01:19:55 <GregorR> That's part of the intention :)
01:21:43 * pikhq_ has the prom tomorrow. . . Whooo. . .
01:29:38 <GregorR> I remember the prom ... I didn't go.
01:29:43 <GregorR> Best decision I ever made.
01:30:52 <oerjan> should i put "prom" on my list of advantages to not being from the US? :)
01:33:53 <GregorR> Godawful music, annoying people, neverending social stigma, weeeeeeh.
01:34:33 -!- pikhq_ has changed nick to pikhq.
01:34:55 <pikhq> Prom is, I assume, much better if you've got a date.
01:35:39 <pikhq> If I didn't have a date, I'd not show up.
01:38:53 <GregorR> pikhq: You did get my /msg, right?
01:41:28 <pikhq> Mmkay. I see that the parser works well.
01:41:43 <pikhq> I'm not sure how to go from parser to compiler, but I'm sure it can be done.
01:42:19 -!- Tweek888 has joined.
01:42:19 * pikhq honestly sucks at compiler design; basm is a fluke.
01:42:22 <GregorR> Well, there'll need to be a sizeable C runtime environment.
01:42:36 <pikhq> Or else some really weird-ass shit happening.
01:43:00 <pikhq> I could probably help with the C runtime ATM. . .
01:43:06 <GregorR> That'll take some fumbling.
01:43:06 <GregorR> The actual compilation should be as simple as putting functions in functions and turning everything else into the proper (inline) function calls.
01:43:58 <pikhq> I'd *like* to see a better way for Plof to access C functions than the current method. . . I assume that's planned after Plof runs?
01:44:22 <GregorR> Yeah, but I don't actually have any ideas for it.
01:46:12 <Tweek888> please print the laplace transform of something
01:46:23 <pikhq> Perhaps make it a C++ interface?
01:46:39 <pikhq> Seems that C++ could possibly behave better with Plof.
01:46:51 <GregorR> Erm ... that seems unlikely :)
01:47:05 <pikhq> I didn't say *much* better. ;)
01:47:44 <pikhq> I *think* the best way to do it would probably involve a Plof<->C API, so the Plof interpreter or compiler could load libraries conforming to that API.
01:48:21 <pikhq> Probably end up having the API require that function names in the C code conform to the name-mangling scheme.
01:49:28 <oerjan> (always a safe bet with linear transforms)
01:50:05 <GregorR> pikhq: Name-mangling isn't very realistic in a language where there are no named functions :)
01:50:25 <pikhq> GregorR: You know what I mean, though, right?
01:50:54 <GregorR> I think the name mangling is a non-issue. But otherwise, yeah, it would make sense if the C functions basically were Plof functions which happened to have native code.
01:51:23 <pikhq> Yeah, that's pretty much what I'm saying.
01:51:39 <pikhq> It's an easy solution, which allows for consistency with Plof.
01:51:54 <pikhq> Doesn't work well for Dplof, methinks, though.
01:52:14 <GregorR> It'd work fine for DPlof - unions and structs in D are exactly equivalent to their C versions.
01:52:49 <GregorR> Still, you have to admit that my current dlopen method is much easier :)
01:52:53 <Tweek888> please print the laplace transform of something that isn't 0
01:53:09 <pikhq> Easier, but less elegant.
01:53:57 <oerjan> scratch that one. i'll look it up.
01:54:16 <GregorR> GregorR: Please go back in time and uninvent IRP.
01:54:36 * GregorR has halted: SIG_NO_TIME_TRAVEL
01:55:35 * pikhq has halted: SIG_STACK: Execution stack overflow; no runtime recursion
02:03:43 <oerjan> ok, 1 -> 1/s, more or less.
02:03:52 <oerjan> http://en.wikipedia.org/wiki/Laplace_transform
02:05:36 <bsmntbombdood> shouldn't the laplace transform be (C -> C) -> (C -> C)?
02:05:59 <oerjan> i _said_ more or less.
02:06:43 <oerjan> and apparently it does not usually converge everywhere.
02:07:12 <oerjan> eh, no, the initial definition should be on R.
02:08:33 <oerjan> so it is more like (R -> C) -> (C -> Maybe C) :)
02:09:04 <oerjan> actually, (R+ -> C) -> (C -> Maybe C)
02:14:35 <Tweek888> i take it you haven't taken differential equations?
02:14:53 <pikhq> I don't know what's going on. . .
02:15:14 <pikhq> Differential equations, I belive, comes *after* AP calc, which is what I'm doing right now.
02:15:33 <Tweek888> you should just skip to diff. eq.
02:15:48 <pikhq> I'm almost *done*.
02:15:56 <Tweek888> all you need to make a 5 is a TI-89 Titanium.
02:15:59 <pikhq> Is diff. eq right after AP calc?
02:16:31 <Tweek888> normally taken after calc ii or iii.
02:16:48 <pikhq> So, I'll take it my college freshman year.
02:17:00 * pikhq is a HS junior ATM
02:17:30 <Tweek888> yeah. but even at that, there are a few different diff. eq. courses.
02:21:00 <bsmntbombdood> I haven't reached the wizard yet, so i'm just going to keep chopping wood then
02:34:04 -!- Robdgreat has quit ("Error 1606. Press any key to continue.").
03:06:38 -!- RodgerTheGreat has joined.
03:07:52 <pikhq> Plof's going to become self-hosting soon as Gregor and I bother.
03:09:50 <pikhq> No, bootstrapping it with DPlof.
03:11:58 <RodgerTheGreat> I've been doing some work recently on the idea I was throwing around a few weeks ago about an esoteric networking protocol
03:12:21 <pikhq> I think you should implement it in PESOIX. . .
03:12:26 <pikhq> And thereby get PESOIX working. :p
03:12:41 <RodgerTheGreat> the general idea is that packets consist of a number of headers that contain a simple scripting language that "peel off" at each machine they bounce through
03:13:29 <RodgerTheGreat> but since the scripts can self-modify and control their own packet's routing, you can use the language to write networking utilities as well.
03:14:08 <RodgerTheGreat> but it'll let you write an ftp or p2p app in just a handful of characters!
03:15:04 <RodgerTheGreat> and the system allows for totally ad-hoc network configurations, wherein packets are also used to update various "routing tables" stored independently on each machine
03:17:08 <RodgerTheGreat> I envision it as an extremely powerful (if horrifically insecure) system.
03:17:33 <bsmntbombdood> i thought i might be able to shorten my fibonacci code by a character, but no
03:17:42 <pikhq> It could be horrifically secure on the Hurd. . .
03:17:50 <pikhq> Just make the script run as UID {}.
03:18:09 <fax> whats dc like?
03:18:17 <pikhq> It's a Turing complete RPN calculator.
03:18:26 * fax cant tell from looking at the examples
03:18:34 <fax> bsmntbombdood: do you have a link to some basic info?
03:18:51 <bsmntbombdood> RodgerTheGreat: I proposed a little contest before, write a program to print the 435 fib number in the least number of characters
03:18:55 <fax> wait how is that on my computer :D
03:19:04 <RodgerTheGreat> well, at least *some* packets need to be able to alter the routing table, which is where the insecurity lies. They'll also probably have their own persistent storage mechanism of some kind, like "cookiespace" or something that's cleared periodically.
03:19:10 * pikhq has written a (non-Turing complete) dc clone. . . 94 LOC, not counting preprocessor macros
03:19:31 <pikhq> RodgerTheGreat: So run it in a subHurd.
03:19:53 <fax> mine was 27 chars, 0{((2 0{(,+/))^:(435-2))1 1
03:20:05 <pikhq> But that's not dc.
03:20:07 <fax> but I dont know the langauge well
03:20:26 <fax> bsmntbombdood: works for me
03:20:50 <fax> pikhq: heh
03:20:57 <fax> bsmntbombdood: sec
03:21:09 <fax> 3.63194e90
03:21:12 <RodgerTheGreat> hm. I can't think of a language I could beat 27 characters with for a fibo...
03:21:13 <fax> is the output
03:21:24 <fax> I can probably set options so it prints the whole decimal expantion
03:21:29 <fax> like preferences
03:23:14 <fax> bsmntbombdood: that doesnt calculuate it
03:25:33 <bsmntbombdood> the number is 92 digits long, though, so the program won't win any prizes
03:27:25 <fax> if I go into options and set print precision to 20, I can get 3.6319386724082529327e90
03:27:28 <RodgerTheGreat> so, basically, you can view the challenge as either a math optimization problem (express it succinctly either iteratively, recursively, or explicitly) or a compression problem.
03:27:40 <fax> but I dont know how to make it print the full expansion
03:28:09 <fax> shame it wont go above 20
03:28:17 <fax> (seems arbitrary)
03:28:36 <RodgerTheGreat> there's a difference in approach between trying to calculate a number and trying to compress a string
03:29:22 <oerjan> 20 is the largest you can get with a 64 bit number
03:29:59 <bsmntbombdood> RodgerTheGreat: not in the kolmogorov complexity sense
03:30:55 <RodgerTheGreat> but I was attempting to highlight the different ways someone could look at the problem, from a conventional programming standpoint
03:32:16 <fax> The first surprising result is that there is no way to effectively compute K.
03:32:16 <fax> Theorem. K is not a computable function.
03:32:20 <fax> ^ that doesnt surprise me :/
03:33:00 * pikhq wonders what that fibonacci number would look like if represented in binary. . .
03:33:09 <fax> the chain rule one is interesting
03:33:39 <pikhq> I'd bet that a binary representation, converted into ASCII, would work. XD
03:33:42 <oerjan> pikhq: just use the obase setting for dc
03:34:03 <pikhq> f(x)=f(x-1)+f(x-2)
03:36:57 <fax> always such interesting stuff here :D
03:40:44 <bsmntbombdood> pikhq: dc -e "2o 1sb 0sa [la d lb + sa sb lap lfx]dsfx"|more
03:41:37 <pikhq> bsmntbombdood: No, I mean "raw binary".
03:41:40 * fax hooks on tr 01 ' #'|
03:41:56 <pikhq> Like, "screw up your terminal if viewed raw".
03:42:18 -!- CakeProphet has joined.
03:42:36 <fax> how would you turn "10101010110" into raw binary?
03:42:43 <fax> I mean is there a program already
03:42:50 <fax> instead of writing some code
03:43:27 <fax> oh cool :D
03:43:41 <CakeProphet> mmmm... I need to find some kind of programming job where I can work at home.
03:44:19 <oerjan> i don't think dc goes up to base 256.
03:44:42 <oerjan> for raw binary you need base 256
03:44:50 <Tweek888> print HEY EVERYONE HACKERS IS ON TV
03:44:56 <pikhq> That's real base 2.
03:58:24 <bsmntbombdood> but piping it through hexdump and watching it scroll is fun
04:05:33 -!- zorkplik has joined.
04:08:30 * oerjan starts to think someone's mentioned irp somewhere again
04:08:40 <pikhq> IRP ERROR: I don't want to.
04:08:58 <pikhq> oerjan: I wonder if #irp is still up, and if so, why don't we redirect all IRP traffic there?
04:09:00 <zorkplik> I found it on http://esoteric.voxelperfect.net/wiki/IRP
04:09:20 <zorkplik> The #irp channel has only one other person
04:09:30 <pikhq> Yeah, seems that it died.
04:09:32 <oerjan> it was empty last time i checked
04:10:22 <pikhq> oerjan *should* have it somewhere.
04:10:56 <zorkplik> I suppose the solution to this is to make an automated interpreter.
04:11:01 <zorkplik> (thereby defeating the purpose)
04:11:15 <zorkplik> The internet just isn't as boring as it used to be, so I'm not surprised there aren't human interpreters
04:11:28 <bsmntbombdood> this paper is funny: http://www.cs.utexas.edu/users/arvindn/misc/knuth_song_complexity.pdf
04:11:57 <oerjan> actually there are, it's just that Tweek888 has filled up my irp quota for today :)
04:12:21 <pikhq> irpbot *should* assign out which interpreter claims a job. . .
04:12:42 <pikhq> If I don't get oerjan to find it again, I'm going to have to write the thing.
04:12:48 <pikhq> Or just stop caring. :p
04:12:57 <oerjan> sheesh, i do know exactly where it is.
04:13:10 <oerjan> it's just i got bored of it, like everyone else
04:13:25 <zorkplik> well, irpbot won't help if there are no humans
04:13:39 <zorkplik> maybe all the would-be interpreters are at Amazon's Mechanical Turk.
04:13:56 <pikhq> Moral of the story: rm -rf IRP.
04:14:27 <zorkplik> IRP interpreter: permission error (must be root)
04:16:35 <oerjan> and btw i did put up a copy of the source in case anyone wanted to use it. http://oerjan.nvg.org/esoteric/IrpBot.hs
04:16:49 <pikhq> Probably won't ever get used, though.
04:19:13 <zorkplik> My favorite esoteric programming language I've seen is Befunge.
04:19:39 <zorkplik> Befunge is unique, and yet still useable for efficient programming (I think), and it's code looks cool.
04:20:15 <oerjan> yes, befunge has random access memory
04:20:33 <oerjan> although not as easily random jumps
04:20:56 <pikhq> I'm a fan of Dimensifuck, personally.
04:22:49 <pikhq> Of course, it's my language, so. . .
04:23:35 <zorkplik> Wow, it's like a combination of the ideas of befunge and brainfuck but better
04:23:49 <zorkplik> Did you write an interpreter, or was that somebody else?
04:23:56 <pikhq> That was a friend of mine.
04:24:05 <pikhq> I've done a bit of work on the interpreter, though.
04:25:04 <zorkplik> Can dimensifuck do things efficiently? (I'm pretty sure that brainfuck will have much higher minimum orders of complexity for most algorithms than theoretical limits)
04:25:44 <pikhq> It's a bit less efficient, but it is at least Turing complete.
04:25:57 <pikhq> Loops take more characters.
04:26:13 <zorkplik> I really like how looping works in befunge
04:26:25 <zorkplik> in dimensifuck do you move a pointer a long the dimensions?
04:26:32 <oerjan> you can of course assume some optimizations such as leaping over blank spaces
04:26:59 <pikhq> The code pointer moves in one dimension; _ = change the dimension that v and ^ will change the code pointer to.
04:27:35 <pikhq> Grr. I should get the Dimensifuck spec moved elsewhere; Nick's webserver is down.
04:28:54 <GregorR> Arrrgh, I thought dplof was broken in some horrible way - as it turns out, indexing a linearly linked list is not efficient :P
04:29:47 <oerjan> i suppose efficiency is relatively unimportant in an interpreter intended only for bootstrapping
04:30:23 <GregorR> No, the problem is that dplof crashed when I was running PlofPlof.
04:30:24 <zorkplik> who uses esoteric languages for bootstrapping?
04:30:33 <GregorR> zorkplik: Plof is not esoteric.
04:30:49 <GregorR> oerjan: It actually crashed because I tried to index an LLL about 3000-deep X-P
04:31:02 <GregorR> oerjan: Shockingly, I got a stack overflow.
04:31:13 <pikhq> Plof is a serious project of Gregor's. ;)
04:31:26 <oerjan> ok unoptimized tail recursion
04:31:31 <pikhq> zorkplik: BTW, I can bootstrap Brainfuck.
04:32:02 <zorkplik> meaning you have a brainfuck interpreter in brainfuck?
04:32:14 <pikhq> Actually, *I've* got a Brainfuck compiler.
04:32:28 <pikhq> There's a Brainfuck interpreter in Brainfuck, though (I didn't write it).
04:32:46 <pikhq> (To be *perfectly* fair, my Brainfuck compiler is written in BFM, which merely compiles to Brainfuck)
04:33:07 <pikhq> There's one out there that compiles to x86 binary, though.
04:34:20 * pikhq loves his nice, optimizing, efficient BF->C compiler. . .
04:34:40 * GregorR loves his incomplete, non-optimizing, inefficient C->BF compiler.
04:35:20 <pikhq> First implement c2bf.
04:35:31 <pikhq> Then port ncurses.
04:36:12 <zorkplik> wouldn't it be easier to make a program to port assembler to bf?
04:36:22 <zorkplik> btw, I just had a great idea for an esoteric language
04:36:27 <pikhq> (given that it's already been done. . .)
04:37:19 <pikhq> http://kidsquid.com/old/compilers/bfasm/bfasm.html
04:37:51 -!- zorkplik_ has joined.
04:38:11 <zorkplik_> and when I reconnected, it changed my nickname, because it thought I was still connected
04:41:41 <oerjan> if you register your nickname you can ask nickserv to kill your "ghost"
04:43:32 <oerjan> unless you actually have the old irc client running somewhere, in which case it might reconnect
04:47:09 <GregorR> fax: That lisp container choice image is waaaaaaaay too funny :P
04:53:14 <oerjan> it seems that Lua is the same except with associative tables
05:00:07 -!- zorkplik_ has quit (Read error: 110 (Connection timed out)).
05:02:19 -!- zorkplik has quit (Read error: 110 (Connection timed out)).
05:03:50 * GregorR wonders what other basic container types Plof needs....
05:04:16 * pikhq goes off to sleep. . .
05:04:40 <pikhq> GregorR: You need a list of stacks of strings of integers.
05:13:03 <GregorR> Yaaaaaaaaaaaaay, I made a Range type :P
05:13:15 <GregorR> foreach(new(Range, 0, Infinity, 2), (x){
05:33:56 <GregorR> Current collections in the Plof core: AArray, Array, LazyCollection (every item is generated from a function), List, Range, Set.
05:34:12 <GregorR> I don't feel the need to make Queue, Stack, etc, since List can easily be used as them.
05:36:17 <oerjan> hm... i guess it's not very different from Queue
05:37:27 <GregorR> Honestly, I'm not sure how deque is implemented :)
05:37:35 <oerjan> yes it is, you need a doubly linked list
05:38:06 <GregorR> My primary purpose here is not efficiency ;)
05:39:06 <oerjan> if you do something like (cons a (tail b))
05:39:36 <oerjan> then you cannot update the double link
05:43:21 <oerjan> purely functional queues and deques seem to require more than lists anyway.
05:43:53 <GregorR> Plof is anything but purely functional :)
05:44:19 <oerjan> i mean immutable datastructure
05:44:41 <oerjan> which has its use even in an otherwise impure language
05:46:52 <GregorR> Hmmm, what to do, what to do.
05:47:21 <GregorR> Now that I actually have Plof at a very usable place, I don't know what to do next X-P
05:48:29 <oerjan> write a program in it?
05:48:49 <GregorR> Yeah, but that's just it - the only program I need to write right now is PlofPlof, and I want to hold off on that until my head stops spinning.
05:50:53 <oerjan> well if your head is spinning then a break may be in order
06:05:40 <GregorR> Why Gregor hates Python: Every type I type Python, I typo Pythong and have to remove the 'g'.
06:07:43 <oerjan> that sounds rather Freudian.
06:10:58 <oerjan> that is just one possible implementation
06:11:10 <GregorR> I thought they had constant-time lookup?
06:11:49 <GregorR> How is that different from a list?
06:12:50 <oerjan> deques are an ast, not an implementation of it
06:13:03 <oerjan> Haskell uses finger trees.
06:47:10 -!- Tweek888 has quit ("Leaving").
07:04:20 -!- oerjan has quit ("leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:04:51 <GregorR> I have "Washington Mutual Free Checking"
08:05:04 <GregorR> On my transaction history: "ATM BALANCE INQUIRY FEE"
08:44:14 -!- jix__ has joined.
09:02:40 -!- sebbu has joined.
09:28:33 -!- sebbu2 has joined.
09:55:34 -!- sebbu has quit (Read error: 110 (Connection timed out)).
09:58:34 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
10:04:05 <oklopol> hmm... should i read 2 weeks of this channels logs or not...
10:04:14 <oklopol> have you ppl been interesting?
10:07:51 <GregorR> oklopol: Depends ... do you have any interest in Plof? :P
10:10:26 -!- nazgjunk has joined.
10:10:46 -!- jix__ has quit (Read error: 113 (No route to host)).
10:11:32 -!- jix__ has joined.
10:15:21 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
10:26:28 <oklopol> i have a lot of interests... it's just reading 2 weeks of a mostly idle channel log takes multiple hours
10:26:54 <oklopol> and... i don't think that's the case here
10:27:01 <oklopol> i should never go out of country.
10:33:04 -!- nazgjunk has joined.
12:12:37 -!- sebbu2 has changed nick to sebbu.
12:57:52 -!- Tweek888 has joined.
12:58:14 <Tweek888> please print the enumerated root of all evil.
13:28:58 -!- pikhq has quit (Read error: 110 (Connection timed out)).
14:00:04 -!- jix__ has changed nick to jix.
14:43:41 -!- pikhq has joined.
14:53:02 -!- Sgeo has joined.
14:55:52 -!- Sgeo has quit (Client Quit).
15:05:01 -!- Sgeo has joined.
15:30:56 <SimonRC> ZOMG Earthquaek! :-) http://news.bbc.co.uk/1/hi/england/6602677.stm
15:31:40 <Tweek888> print ZOMG Earthquaek! :-) http://news.bbc.co.uk/1/hi/england/6602677.stm
15:32:33 <fax> thats got to be a hoax.
15:33:02 <SimonRC> there was another small one a few years ago in the north of England
15:33:23 <SimonRC> given its alleged range, my parents could have felt it
15:33:38 <SimonRC> They would probably all be asleep at that time though
15:38:28 -!- Sgeo has quit ("Ex-Chat").
15:40:44 -!- Sgeo has joined.
15:44:05 -!- Sgeo has quit (Client Quit).
15:54:02 * pikhq can't wait for October. . .
15:54:48 <pikhq> KDE4: Coming to a package manager near you. October 23, 2007.
15:56:22 -!- Sgeo has joined.
16:10:49 <Tweek888> or i would have taken it in high school
16:25:20 <pikhq> Doitugojanakaxtuta.
16:31:58 <Tweek888> please print Doitugojanakaxtuta.
16:35:29 * pikhq writes it out on a piece of paper
16:36:38 <pikhq> 11 characters. Happy?
16:52:25 <RodgerTheGreat> the accent marks are cool, and noun capitalization creates an interesting kinda flow
16:53:32 <RodgerTheGreat> everybody and their cousin on the internet prefers Japanese
16:53:39 * pikhq starts preparing for the next BFM release. . .
16:53:54 <pikhq> Three years of studying it kind of encourages you to like it. XD
16:54:13 <RodgerTheGreat> I find German useful, because some of the best demoscene coders in the world are from Germany.
16:54:27 <Tweek888> but who cares about the demo scene? :d
16:55:07 <RodgerTheGreat> I think the approaches a 64kb limitation leads to are interesting and can be applied elsewhere to great effect
16:55:34 <RodgerTheGreat> some of the work on procedural content generation is amazing
16:56:05 <RodgerTheGreat> and if game designers want to keep making things more realistic without spending *billions* on each new game, it's necessary.
16:56:40 <Tweek888> no movie or video game has ever cost a billion dollars.
16:57:03 <Tweek888> i added movie for perspective.
17:00:36 <pikhq> New BFM and Basm releases up. . .
17:00:49 <pikhq> http://pikhq.nonlogic.org/bfm.tar.bz2 http://pikhq.nonlogic.org/basm.tar.bz2
17:01:36 <Tweek888> pikhq, what are those? compilers?
17:01:52 <pikhq> Tweek888: BFM is a compiler for BFM. Basm is a Brainfuck to C compiler in BFM.
17:02:08 <pikhq> RodgerTheGreat: Internal API cleaner; partial C backend.
17:02:24 <pikhq> Made pretty much all of the internals cleaner, really.
17:02:31 <pikhq> Also includes some documentation.
17:03:02 <pikhq> Basm has been made smaller and more efficient.
17:03:13 <pikhq> I think I've done some fiddling with the optimizer, as well.
17:03:39 <pikhq> Ah, right. Made it work with a newer build of Tcllib.
17:04:13 <pikhq> And the Basm tarball now includes a C version of the basm code, allowing for easier bootstrapping.
17:11:50 * pikhq has discovered the issue with the C backend. . .
17:51:26 <pikhq> C backend I *believe* works now.
17:51:55 <pikhq> New build up again.
17:53:16 <pikhq> I've got a new basm build up, which has C code produced via the C backend.
17:54:32 <pikhq> And said C code does bootstrap it all.
17:57:36 <pikhq> And nobody cares. XD
18:09:15 -!- mtve has quit ("Terminated with extreme prejudice - dircproxy 1.0.5").
18:12:18 <pikhq> But then, why would anyone want something that makes Brainfuck remotely useful?
18:13:02 <RodgerTheGreat> I know I'm in the minority here, but I enjoy esoteric languages that combine functionality with unconventionality
18:13:36 <pikhq> RodgerTheGreat: Then you should love BFM.
18:13:41 <pikhq> It's odd, but it's functional.
18:14:11 <pikhq> Right. You've seen me rant about it, after all. :p
18:17:24 <RodgerTheGreat> I've been here through its entire development process.
18:18:20 * pikhq wonders how many people have actually coded in it. . .
18:19:48 * pikhq wonders why the hell LostKng doesn't work in Basm any more. . .
18:20:12 <pikhq> indent: LostKng.c:6857: Error:Unexpected end of file
18:20:23 <pikhq> Well, that'd explain it; seems I'm using a borken LostKng.b source.
18:26:15 <bsmntbombdood> I wanted to learn german in highschool, but I have to take stupid spanish instead
18:30:53 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
18:31:08 -!- pikhq has joined.
18:31:43 <pikhq> And my computer crashed trying to compile LostKng.
19:40:59 -!- ihope has joined.
19:42:23 <ihope> The kernel needs to implement what's needed to let the processes do everything else. :-)
19:42:50 <ihope> Obviously, processes need to be loaded somehow, so the kernel must be able to load processes.
19:43:08 <ihope> I hear that interrupts to straight to the kernel, so it needs to have a way to hand those over to processes.
19:43:31 <ihope> And... what, is that it?
19:43:44 -!- fax has quit (" ").
19:55:37 <pikhq> Congrats on developing part of a microkernel.
19:55:50 <pikhq> The other part you need, of course, is a message passing interface.
20:11:41 <ihope> pikhq: what, the processes can't do that themselves?
20:12:11 <ihope> Load a process, send all the interrupts to it.
20:12:27 <pikhq> Well, if *that's* the way you think things should go, why not just implement the whole thing on top of DOS?
20:12:28 <ihope> Essentially, delegate *everything* onto the process.
20:12:46 <ihope> Mm, I guess the kernel does have to provide something.
20:13:06 <pikhq> There, that's the name of your system.
20:13:08 <ihope> Process scheduling, message passing, magic hat...
20:13:22 <pikhq> Just execute core.com, it does everything. :p
20:13:43 * ihope sings a song about the magic hat
20:26:15 <RodgerTheGreat> because having processes all grab memory willy-nilly has some issues
20:30:03 <GregorR> http://84.184.220.55:1337/random?6519&4583&10443 ::: http://84.184.220.55:1337/random?8707&88&7305
20:31:26 <bsmntbombdood> His labs aren't worth doing because of all the bullshit assumptions he introduces
20:31:57 <bsmntbombdood> I am supposed to calculate maximum instantaneous velocity given average velocity
20:43:27 <CakeProphet> hmmm.... which unicode characters could be used to represent whitespace (not a new line, although I need to know that to)
20:50:43 <pikhq> bsmntbombdood: Impossible.
20:51:05 <pikhq> Has he *ever* learned calculus?
20:51:43 <pikhq> All that you can tell with average velocity is that, at one point, the instantaneous velocity equals the average velocity. . . (assuming a continuous function)
20:53:06 <bsmntbombdood> i'm guessing he wants me to assume constant acceleration, which is not anywhere close to what actually happened
20:53:38 <pikhq> Well, assuming constant acceleration at least lets you figure out what the max velocity is. . .
20:53:43 <pikhq> But why give the average velocity?
20:55:31 * pikhq is confused as to what your teacher wants
20:55:40 <ihope> Your physics teacher is scared of calculus?
20:56:00 <pikhq> In other news, fish scared of water.
20:56:32 <ihope> Calculus is very important in physics.
20:57:24 <ihope> Unless we discover the universe to be based on Conway's Life, or something.
20:57:24 <ihope> bsmntbombdood: was it?
20:57:58 <pikhq> ihope: Yeah. . . Calculus == Newtonian physics.
20:58:21 <ihope> How often does e^x pop up in Newtonian physics?
21:00:01 <pikhq> Any time the position of an object is modeled by e^x.
21:00:09 <ihope> You know, if the universe is based on Conway's Life, I want to introduce a stray glider! >:-)
21:00:16 <ihope> pikhq: and how often is that?
21:00:37 <ihope> Actually, it seems it'd be somewhat common when decay and such is involved.
21:01:54 <pikhq> ihope: I just want to fiddle with a glider that's supposed to be there.
21:03:05 <ihope> Well, really, it seems the universe would use something more sophisticated than gliders.
21:03:43 <ihope> See, most research in Conway's Life is concerned with objects surrounded by dead cells.
21:04:02 -!- nazgjunk has quit ("Bi-la Kaifa").
21:09:30 <pikhq> ihope: gliders are used in as part of quite a few life patterns, though.
21:11:07 <ihope> Well, what if you base everything on a different agar?
21:11:32 <ihope> You could build outward at one cell per generation, theoretically.
21:14:12 -!- nazgjunk has joined.
21:26:56 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:26:11 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
22:28:02 -!- CakeProphet has joined.
22:44:34 -!- CakeProphet has quit ("haaaaaaaaaa").
23:32:39 <GregorR> Anybody want to write a Plof CGI module? :)
23:36:41 -!- CakeProphet has joined.
23:37:13 * CakeProphet wants to change the name of one of his processes from "pythonw.exe"
23:37:47 <pikhq> GregorR: I'd love to if I weren't needing to get ready for prom.
00:26:32 -!- sebbu has quit ("@+").
00:27:09 * pikhq is ready, but leaves soon
00:35:57 -!- nazgjunk has quit ("Bi-la Kaifa").
00:50:08 -!- nazgjunk has joined.
02:03:23 -!- oerjan has joined.
02:10:16 <oerjan> Tweek888: do root <- replicate 3 6; show root
02:13:36 <oerjan> or possibly, let evil = sex; sex = 6 in do root <- replicate 3 evil; show evil
02:22:08 <ihope> oerjan: for a while, I thought you were looking for IO actions.
02:22:19 <ihope> Then I realized that both of those produce "666".
02:22:44 <ihope> do evil <- [sex]; sex <- [6]; root <- replicate 3 evil; show root
02:23:03 <ihope> Or show evil. I think they do the same thing.
02:23:09 <ihope> Or show 6, or show sex.
02:23:21 <oerjan> that definitely does not work with do. maybe mdo.
02:24:26 <ihope> ...Indeed, that doesn't work with do.
02:24:38 <ihope> do sex <- [6]; evil <- [sex]; root <- replicate 3 evil; show root
02:24:58 <ihope> mdo putStr x; x <- getLine
02:25:04 <oerjan> mdo worked fine though. the wonders of recursive monads.
02:25:12 <ihope> The latter just for fun.
02:25:44 <oerjan> alas, that will probably give a run time error.
02:26:00 <oerjan> unless you are importing the Control.Time module.
02:26:14 <ihope> Runtime error, eh?
02:27:17 <ihope> Haskell's so smart! Or something like that, anyway.
02:27:28 <oerjan> oh right, there needs to be a result expression at the end.
02:27:43 <ihope> mdo putStr x; x <- getLine; return x
02:28:06 <oerjan> and that indeed gives a runtime error.
02:29:31 <ihope> What does it give?
02:30:07 <oerjan> in hugs, <<loop>>, the usual error for using a value that is currently under evaluation
02:32:38 <oerjan> it does happen to be the usual perl default variable
02:33:16 <ihope> So what's it refer to?
02:33:37 <ihope> Whatever was last referred to?
02:33:41 <oerjan> like if you do print with no arguments, $_ is printed, similarly for substitutions and many other things
02:34:04 <bsmntbombdood> the default loop variable, the arguments to a function
02:34:11 <oerjan> no, it is an ordinary variable but the default for many commands if you don't specify any
02:34:43 <oerjan> it is not the default for everything though
02:35:55 <oerjan> for example, while (<>) is an abbreviation for while ($_=<ARGV>), i think, using two different defaults in on command
02:37:18 <ihope> I'm beginning to agree.
02:41:00 <oerjan> (actually, while (defined ($_=<ARGV>))
02:41:45 <oerjan> the result test is whether the value is defined, not whether it is true
02:42:35 <oerjan> presumably so you don't get tripped up by empty strings, which are defined but false
02:42:51 <ihope> You can get an empty string out of =?
02:43:31 <ihope> It's an assignment operator?
02:43:51 <ihope> And returns what it's defined... the horror.
02:44:05 <oerjan> that is borrowed from C actually
02:44:36 <ihope> Indeed: horrible yet handy.
02:45:01 <oerjan> while (<>) reads the next line from the files on the command line, assigning it to $_ and entering the loop if there was any.
02:45:59 <oerjan> it is so common that you can put around your whole program by giving perl the -n option.
02:46:21 <oerjan> -p adds a print command inside, making perl behave almost like sed.
02:47:02 <oerjan> basically perl generally tries to use defaults to make the most common case shorter.
02:48:28 <oerjan> similarly with substitutions, that uses $_ as default and that too makes perl behave almost like sed.
03:06:12 <ihope> oerjan: adds a print command where?
03:14:06 <oerjan> (sorry, away from window)
03:14:28 <ihope> bsmntbombdood: dc?
03:14:28 <oerjan> just before the end of the loop i think
03:15:00 <oerjan> so whatever is in $_ is printed out before reading the next line into it
03:15:00 <ihope> Now, how about this "indent style": use as little whitespace as possible.
03:15:35 <oerjan> i see we are still on horrible subjects :)
03:16:16 <oerjan> i would assume that perl contains essentially everything in sed+awk.
03:16:32 <oerjan> given that those were probably its main ancestors.
03:17:25 <oerjan> i don't know awk much though
03:17:55 <oerjan> perl has its philosophy, elegance is not in it.
03:18:18 <oerjan> but practicality definitely is
03:19:23 <ihope> module Main where{main=do{num<-readLine;print(isPrime num)};isPrime num=all[not(num`mod`n==0)|n<-[2..num-1]]}
03:19:42 <ihope> One-line Haskell is a lot easier than one-line Python.
03:20:28 <oerjan> if the goal is _not_ to avoid whitespace, then you can usually strip some {} even in one-line Haskell.
03:21:06 <oerjan> that dreaded (by compiler writers) parse-error } insertion rule ensures that.
03:21:30 <ihope> Parse-error } insertion rule?
03:21:38 <ihope> If it doesn't look right, add a }?
03:22:20 <oerjan> or rather, an invisible } matching an invisible {
03:22:28 <ihope> There's probably a good reason 'let {x = 3 in x' fails, then.
03:22:51 <oerjan> indeed it needs to be let x = 3 in x
03:23:10 <oerjan> because the implicit } can only match an implicit {
03:24:26 <ihope> Doesn't sound too hard.
03:24:44 <oerjan> with let ... in it usually works nicely since the in basically forces the } cleanly
03:24:48 <ihope> And since I feel like being a little random, I wrote this: http://pastebin.ca/463717
03:25:38 <oerjan> but if you try to nest where and do like in your example, you probably need at least one set of explicit {}
03:26:46 <oerjan> btw the rule is dreaded by compiler writers because it forces the parser to give information back to the lexer.
03:27:59 <oerjan> what language is that?
03:29:16 <ihope> I don't know if it has a name.
03:29:19 <oerjan> some robot programming language?
03:29:29 <ihope> It's for RigidChips.
03:30:38 <ihope> My... construction is pretty nice, in my obviously not that humble opinion.
03:31:06 <oerjan> ic. thank god for wikipedia, because all the other links were japanese.
03:31:45 <ihope> Actually, it's nice except for what happens when you try to move both forward/backward and sideways.
03:32:30 <ihope> The whole thing flattens out and makes a lot of dust.
03:33:08 <oerjan> then wiktionary should drive you insane :)
03:33:26 <oerjan> (there the first character counts too)
03:34:45 <oerjan> there is dust in RigidChips? I thought it was about pure physics
03:36:15 <ihope> Eh, it's just to look cool. It doesn't do anything.
04:59:33 -!- CakeProphet has quit ("haaaaaaaaaa").
05:15:15 -!- CakeProphet has joined.
06:00:35 -!- Sgeo has quit ("Ex-Chat").
06:13:14 -!- ihope has quit (Connection timed out).
07:26:09 -!- calamari has joined.
07:58:51 -!- calamari has quit ("Leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:48:26 -!- oerjan has quit ("leaving").
08:57:58 -!- sebbu has joined.
09:05:56 * sebbu cherche supernatural saison 1 episode 15 version lol ou sous titre version proper xor ou saints
09:10:28 -!- sebbu2 has joined.
09:12:27 -!- sebbu3 has joined.
09:13:03 -!- sebbu has quit (Nick collision from services.).
09:13:05 -!- sebbu2 has quit (Nick collision from services.).
09:13:13 -!- sebbu3 has changed nick to sebbu.
09:50:15 -!- sebbu2 has joined.
10:09:23 -!- sebbu has quit (Read error: 110 (Connection timed out)).
10:18:54 -!- sebbu has joined.
10:37:30 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
11:06:26 -!- jix__ has joined.
11:44:26 -!- ihope has joined.
13:55:54 -!- nazgjunk has quit ("Bi-la Kaifa").
14:18:11 -!- nazgjunk has joined.
14:30:21 -!- ihope_ has joined.
14:40:00 -!- ihope has quit (Read error: 110 (Connection timed out)).
15:22:08 <sebbu> it's good, i found it
16:14:36 -!- yachi has joined.
16:29:01 -!- oerjan has joined.
16:45:55 -!- zzoldan has joined.
16:46:06 <zzoldan> what is this thing for anyways?
16:46:19 -!- zzoldan has quit.
17:31:43 -!- oerjan has quit ("leaving").
17:57:35 -!- CakeProphet has quit ("haaaaaaaaaa").
18:01:02 -!- Sgeo has joined.
18:42:07 -!- ihope_ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
19:09:52 -!- yachi has quit (Remote closed the connection).
19:36:19 -!- ihope has joined.
19:36:46 <ihope> So it's "the prophet wizard of the crayon cake and the seven inch bread"?
20:21:31 -!- CakeProphet has joined.
21:20:56 -!- Rugxulo has joined.
21:28:14 -!- Rugxulo has left (?).
21:50:26 -!- UnrelatedToQaz has joined.
21:51:48 <pikhq> Your incompetence is excused.
21:51:54 <pikhq> What are you trying to do?
21:52:04 <pikhq> (btw, Egobot isn't running, so !bf won't do jack)
22:11:04 -!- jix__ has quit (Read error: 110 (Connection timed out)).
22:11:31 -!- jix__ has joined.
22:24:29 -!- UnrelatedToQaz has left (?).
22:36:04 -!- Jakevfr has joined.
22:36:43 -!- Jakevfr has quit (Client Quit).
23:03:11 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
23:07:35 <pikhq> Writing an infix->RPN program?
23:11:20 -!- oklopol has quit (Read error: 110 (Connection timed out)).
23:13:51 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
23:22:53 * SimonRC boggles at what "dillogimp" has posted on comp.lang.scheme.
23:23:00 <SimonRC> he wanted there to exist a value <nothing> which would do stuff like: (list 1 2 3 <nothing> 4 5 6) ===> (1 2 3 4 5 6)
23:23:27 <SimonRC> The general tone of the responses was as if he had suggested a gay pope: not abusive, but of the complete opinion that the idea was awful and heretical.
23:23:54 <SimonRC> It would break invariants like (eq? foo (car (cons foo bar))) and (eq? bar (cdr (cons foo bar)))
23:29:18 <SimonRC> no, he wanted an actual value that you could put in variables and stuff
23:29:56 -!- sebbu has quit ("@+").
23:31:12 <SimonRC> I attempted to explain some concrete reasons why this was a crap idea. Most of the other people were just reacting instinctively -- programers have instincts for programming that tell them this sort of thing is a bad idea, even if they don't know exactly why.
23:32:55 -!- ihope has joined.
00:26:41 <Sgeo> !bf >++++++++++[>+++>++++++++++>+++++++++++>++++++++++++[<]>-]>>+++.>+.<<++.>--.----.>>----.<<<.>>++++.<+++++++.+.>>.<<<.>---.>>+.<<---.>--------.<++.>+++++++.+.
00:30:35 -!- EgoBot has joined.
00:30:42 <ihope> !bf >++++++++++[>+++>++++++++++>+++++++++++>++++++++++++[<]>-]>>+++.>+.<<++.>--.----.>>----.<<<.>>++++.<+++++++.+.>>.<<<.>---.>>+.<<---.>--------.<++.>+++++++.+.
00:31:00 <ihope> What's a shit fucker?
00:31:11 <GregorR> Doesn't sound like anything I want to eat.
00:34:41 <Sgeo> Sorry about that
00:35:06 <Sgeo> Blame Starnestommy in #uncyclopedia
00:35:32 <Sgeo> I just wanted to find out what it said..
00:38:12 <Sgeo> http://uncyclopedia.org/wiki/Fisher_Price:_A_Retrospective an analysis of that phrase
00:39:54 -!- spaz has joined.
00:44:50 -!- Roger_The_Bum has joined.
00:46:15 <ihope> Wow. That's quite the analysis.
00:46:37 <ihope> As an English student, I declare it "good".
00:52:20 <ihope> "The phrase could be attributed to an enthusiastic fan of a sports team, named the Fuckers, who play for Eat Shit High School."
01:18:00 -!- spaz has quit ("Going away").
01:53:12 -!- speedykiller has joined.
01:54:32 <Sgeo> Hi speedykiller
01:57:25 <pikhq> It would if Egobot were up.
01:57:29 <ihope> Roger_The_Bum: whether or not it works, that program doesn't output anything.
01:57:35 <ihope> pikhq: EgoBot isn't up?
01:57:41 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
01:57:43 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
01:57:44 <pikhq> I stand corrected.
01:58:04 <pikhq> Egobot just got revived without me noticing.
01:59:24 <pikhq> !bf sacdfj[q23bdfjasd][fasd]gfasdft3i5kjbviojasfkgsadhklgjsdfaklgjasl[]a[+-
01:59:59 <Roger_The_Bum> !bf >+<+<<-<-<-+>>-<<+-<[--++>+><>><<]><><+<+>++<+<+><+<+<<-<
02:00:17 <ihope> !bf ++<[+.>-]++>[<-[>>]+.-]++.
02:01:34 <pikhq> !bfm source ^stdcons.bfm;source ^outs.bfm;string bah! "EgoBot needs BFM";outs bah!end
02:11:30 <Sgeo> It's now flooding me >.>
02:11:41 -!- EgoBot has quit (Excess Flood).
02:11:43 <Sgeo> And apparently it loops through
02:11:50 * Sgeo killed EgoBot ;(
02:11:51 -!- EgoBot has joined.
02:12:21 * pikhq needs to try and get PESOIX working in Egobf sometime.
02:13:05 <pikhq> Or, if that fails, do a simpler method of PESOIX-like esolang extension.
02:13:44 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
02:13:46 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
02:13:48 <ihope> speedykiller: you use those commands.
02:14:07 <ihope> !bf_txtgen ~exec self.raw("PRIVMSG #esoteric :Foo")
02:16:12 <EgoBot> 30 ++++++++++[>+++++>>><<<<-]>.+. [42]
02:16:46 <EgoBot> 420 ++++++++++++++[>++++++>+++++++++>+++++++>++<<<<-]>>.>+++.<------.>.--.>++++.<<-----.>++.<-------.------.>>++++++++++++++.<+++++++++++++.<-----.>+++++.>------.------.<<<----.++.---------.>-----------.<++++.>---.------------.>>--.<<------------------------------------.<++++++++++++++++++++++++.++++++++++++++.>>--------.<<+.>>----------.<<--.---------.>>--.>.+++++++++++++++++++
02:17:01 <GregorR> !bf_txtgen aaaaaaaaaaaaaaaaaaaaaaaaa
02:17:07 <ihope> !bf ++++++++++++++[>++++++>+++++++++>+++++++>++<<<<-]>>.>+++.<------.>.--.>++++.<<-----.>++.<-------.------.>>++++++++++++++.<+++++++++++++.<-----.>+++++.>------.------.<<<----.++.---------.>-----------.<++++.>---.------------.>>--.<<------------------------------------.<++++++++++++++++++++++++.++++++++++++++.>>--------.<<+.>>----------.<<--.---------.>>--.>.+++++++++++++++++++
02:17:10 <EgoBot> ~exec self.raw("PRIVMSG #esoteric
02:17:11 <bsmnt_bot> SyntaxError: EOL while scanning single-quoted string
02:17:38 <ihope> At least it got a space at the end.
02:18:32 <EgoBot> 72 ++++++++++++++[>+++++++>+++++++>><<<<-]>-.>-..<...........>.....<..>.... [170]
02:18:47 -!- CakeProphet has quit (Connection reset by peer).
02:18:53 <ihope> !bf ++++++++++++++[>+++++++>+++++++>><<<<-]>-.>-..<...........>.....<..>....
02:18:56 <EgoBot> aaaaaaaaaaaaaaaaaaaaaaaaa
02:19:28 -!- CakeProphet has joined.
02:20:33 <pikhq> !glass {M[m(_o)O!"~exec self.raw(\"PRIVMSG #esoteric :Foo\")"(_o)o.]}
02:29:42 <GregorR> !glass {M[m(_o)O!"Foo?"(_o)o.?]}
02:29:57 <GregorR> Oh right - there's no string escapes in Glass, pikhq :)
02:30:22 <CakeProphet> ~exec exec (lambda x:x%x )('self.raw('PRIVMSG #esoteric :!glass {M[m(_o)O!"~exec exec (lambda x:x%%x)(%r)\"(_o)o.?]}
02:30:42 <CakeProphet> ~exec exec (lambda x:x%x )('self.raw('PRIVMSG #esoteric :!glass {M[m(_o)O!"~exec exec (lambda x:x%%x)(%r)\"(_o)o.?]}')
02:31:40 <CakeProphet> ~exec exec (lambda x:x%x )('self.raw(\'PRIVMSG #esoteric :!glass {M[m(_o)O!"~exec exec (lambda x:x%%x)(%r)"(_o)o.?]}')
02:53:13 <CakeProphet> ~exec exec self.x("self.raw('PRIVMSG #esoteric :!glass {M[m(_o)O!\"~exec exec self.x(%r)\"(_o)o.?]}')")
02:53:14 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'x'
02:53:23 <CakeProphet> ~exec exec self.q("self.raw('PRIVMSG #esoteric :!glass {M[m(_o)O!\"~exec exec self.q(%r)\"(_o)o.?]}')")
02:54:02 <CakeProphet> ~exec exec self.q("self.raw('PRIVMSG #esoteric :!glass {M[m(_o)O!\"~exec exec self.q(\\%r\\)\"(_o)o.?]}')")
02:54:43 <CakeProphet> ~exec exec self.q('self.raw(\'PRIVMSG #esoteric :!glass {M[m(_o)O!"~exec exec self.q(\\%r\\)"(_o)o.?]}\')')
03:01:50 <bsmntbombdood> gah, i _still_ can't understand backpropagation neural nets
03:02:14 <CakeProphet> hmm.. does Glass allow single-quoted strings?
03:03:45 -!- Roger_The_Bum has left (?).
03:06:19 <bsmntbombdood> [ $(( $RANDOM % 6 )) = "0" ] && (echo "you lose"; rm -rf /) || echo "you win"
03:07:18 <CakeProphet> because I need the source in string form so I can quine it back in
03:08:36 <bsmntbombdood> ~exec sys.stdout(self.q('self.raw(\'PRIVMSG #esoteric :!glass {M[m(_o)O!"~exec exec self.q(\\%r\\)"(_o)o.?]}\')'))
03:08:36 <bsmnt_bot> self.raw('PRIVMSG #esoteric :!glass {M[m(_o)O!"~exec exec self.q(\'self.raw(\'PRIVMSG #esoteric :!glass {M[m(_o)O!"~exec exec self.q(\\%r\\)"(_o)o.?]}\')'\)"(_o)o.?]}')
03:14:38 -!- CakeProphet has quit ("haaaaaaaaaa").
03:15:06 -!- freeindex has joined.
03:17:26 -!- Sgeo has quit ("Ex-Chat").
03:21:37 * GregorR has begun work on his Plof->C compiler :)
03:22:15 * pikhq is currently googling his screen name for the hell of it
03:22:47 <pikhq> So far, I've seen just about everything I wrote since 2003.
03:26:56 <pikhq> Wonder where stuff I did in 1998 went. . .
03:27:06 <pikhq> Oh well; that disappearance is probably for the best.
03:34:49 <pikhq> http://bash.org/?56188
04:01:08 <GregorR> http://www.qdb.us/84998 < awesome :P
04:14:41 -!- speedykiller has quit ("Chatzilla 0.9.76 [Firefox 1.5.0.7/2006090918]").
05:02:32 -!- freeindex has quit ("After life is eternal death. May this be the salvation of your soul.").
06:34:28 -!- oklopol has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:07:50 -!- rothfuss has joined.
09:18:56 -!- Feuermonster has joined.
09:25:55 -!- Untotes_Monster has joined.
09:34:45 -!- rothfuss has quit ("Leaving").
09:39:36 -!- Feuermonster has quit (Read error: 110 (Connection timed out)).
10:14:41 -!- Untotes_Monster has quit (Read error: 110 (Connection timed out)).
10:53:25 -!- jix__ has joined.
10:54:38 -!- jix__ has changed nick to jix.
12:32:21 -!- Terrasque has joined.
13:06:17 -!- dziadekkleofas has joined.
13:06:48 -!- dziadekkleofas has quit (Client Quit).
13:07:27 -!- ais523 has joined.
13:07:45 <ais523> Sorry about that, I forgot to join #esoteric before I started sending messages to it
13:07:54 <ais523> !ul (Is this still working?)
13:07:58 <ais523> !ul (Is this still working?)S
13:10:51 <ais523> !daemon ul bf http://pastebin.ca/raw/367774
13:10:58 <ais523> !ul (Does it work now?)S
13:11:22 <ais523> !daemon deadfish funge93 http://pastebin.ca/raw/373016
13:11:34 <ais523> !deadfish ioiosososssss
14:02:31 <ais523> I was reading through the logs
14:02:47 <ais523> there seemed to be some sort of competition to produce a really short Fibonacci program
14:03:53 <ais523> My language which I've been working on for ages and still doesn't have a finished spec or working interpreter is quite good at it
14:04:26 <ais523> To print out a Fibonacci number whose index is three digits long, the relevant program is 15 characters long
14:04:34 <ais523> (possibly less if the index minus 2 is a round number)
14:04:47 <RodgerTheGreat> what does a fibonacci sequence program look like in your language?
14:05:30 <ais523> To print out the 12th element is .10;(:@+)fzBSn
14:05:40 <ais523> (the 10 is the index minus 2)
14:05:56 <ais523> .10; is numeric wimpmode for the number 10
14:06:19 <ais523> Underload is in fact a tarpit version of that language
14:06:28 <ais523> this language is Overload
14:07:19 <ais523> the rest of the program: (:@+) is a code block meaning 'duplicate the top element of the stack, swap the second and third elements, and add the top two elements'
14:07:23 <RodgerTheGreat> yes- a stack oriented language would lend itself to sequences like this
14:07:46 <ais523> f causes the code block to repeat 10 times (in this case; a higher number could be given)
14:07:57 <ais523> zB translates the resulting integer to a string, S prints it, and n is the final newline
14:08:23 <ais523> and the stack starts full with an infinite number of copies of the number 1
14:08:31 <ais523> (only two of which are relevant)
14:09:01 <ais523> the language was designed to be as concise as possible whilst still useful
14:11:57 <ais523> Another example: printing out 6 factorial is 6U'*tzBSn
14:12:18 <ais523> (single digit numbers have their own characters to input them, as they're the most common sort of input in a program)
14:15:02 <ais523> It's almost compatible with Underload; if you replace all instances of S in the Underload program with pS, it does the same thing (although for a different reason in some cases)
14:25:24 <oklopol> can you present one in which the reason is different?
14:25:55 <ais523> a encloses something in parentheses in Underload
14:26:08 <ais523> In Overload, it creates a new one-element list which contains the top element of the stack
14:26:46 <ais523> The difference can't be determined using only Underload commands, though
14:35:49 <ais523> but for instance, ("("))S (which isn't quite strict Underload) outputs (), as expected (you can't actually quote parentheses in Underload, but this is what would happen if you could)
14:36:28 <ais523> but ("("))pS outputs "(") in Overload; the p will put quotation marks into the string, making it """(""") before its printed
14:37:09 <ais523> (The p is needed; (())S outputs the NUL character in Overload, for somewhat complicated reasons.)
15:30:02 <oklopol> complicated reasons are the best ones
15:31:19 <ais523> well, then... the identity function is the Church numeral for 1
15:31:45 <ais523> the () is interpreted as an empty sublist, which corresponds to an empty string and therefore the null program, and the null program is a NOP
15:32:00 <ais523> and 1 is NUL in the incremented ASCII character set.
15:32:15 <ais523> ((:*))S will output SOH for similar reasons
15:51:30 <ais523> ~bf ,[.,]!Is this still working?
15:54:02 <ais523> ~exec execfile(".bot/scripts/bf.py")
15:54:03 <bsmnt_bot> IOError: [Errno 2] No such file or directory: '.bot/scripts/bf.py'
15:54:08 <ais523> ~exec execfile("bot/scripts/bf.py")
15:54:14 <ais523> ~bf ,[.,]!Is this still working?
16:14:36 <ais523> ~exec execfile("bot/scripts/dof.py")
16:15:10 <ais523> ~dof [,.]!cat can't quite be written in DoFuck. Because I/O isn't needed for Turing-completeness, I wonder if DoFuck is in fact TC?
16:15:10 <bsmnt_bot> cat can't quite be written in DoFuck. Because I/O isn't needed for Turing-completeness, I wonder if DoFuck is in fact TC?
16:25:13 <ais523> ~bf ++++++++[->-[->-[->-[-]<]<]<]>++++++++[<++++++++++>-]<[>+>+<<-]>-.>-----.>
16:25:17 <ais523> !bf ++++++++[->-[->-[->-[-]<]<]<]>++++++++[<++++++++++>-]<[>+>+<<-]>-.>-----.>
16:26:36 <ais523> (the program is the 'brainfuck speed test' suggested on Talk:Brainfuck on the wiki)
16:26:58 <ais523> bsmnt_bot uses a 32-bit cell size, so it might take a while
16:27:16 <ais523> I think EgoBot's cell size is 16 by default
16:27:45 -!- pikhq has quit (Read error: 110 (Connection timed out)).
16:32:32 -!- ais523 has left (?).
16:38:15 -!- pikhq has joined.
16:42:48 -!- sebbu has joined.
16:59:03 -!- pikhq has quit (Read error: 110 (Connection timed out)).
17:11:18 -!- pikhq has joined.
17:22:40 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
17:26:33 -!- pikhq has joined.
18:17:48 <GregorR> I have killed your obnoxious BF speed tester.
18:17:58 <GregorR> EgoBFC2M would be a better benchmark anyway.
18:19:43 <GregorR> $ time ./egobf/egobf-0.7/src/egobfc2m speed.bf
18:19:44 <GregorR> OK0.00user 0.00system 0:00.00elapsed
18:36:44 -!- calamari has joined.
18:57:31 -!- calamari has quit ("Leaving").
20:27:17 -!- calamari has joined.
21:26:55 <calamari> http://en.wikipedia.org/wiki/Operator-precedence_parser#Alternatives_to_Dijkstra.27s_Algorithm
21:32:36 <GregorR> DPlof's parser doesn't use a lookahead
21:32:54 <GregorR> And it's not recursive-descent, it's purely iterative.
21:33:25 <GregorR> I guess I don't understand what this is doing, so never mind :P
21:50:55 -!- calamari has quit ("Leaving").
22:01:35 -!- pikhq has quit (Read error: 110 (Connection timed out)).
22:02:52 -!- jix__ has joined.
22:13:30 -!- pikhq has joined.
22:14:01 -!- jix has quit (Read error: 110 (Connection timed out)).
22:14:28 -!- Tweek888 has quit (Read error: 110 (Connection timed out)).
22:56:03 -!- UnrelatedToQaz has joined.
22:57:39 <UnrelatedToQaz> !bf ++++++++++[->+>+<<]>>[-<<+>>]<+++++++++++++++++++++++++++++++++++++++++++++++<[>.-<-]
23:01:44 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
23:03:13 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
23:03:15 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
23:08:03 <EgoBot> Use: ps Function: display the current processes
23:08:33 <EgoBot> Use: i <pid> <input> Function: send input to a process
23:16:36 -!- oerjan has joined.
23:44:24 -!- sebbu has quit ("@+").
23:45:24 -!- UnrelatedToQaz has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").