←2007-03 2007-04 2007-05→ ↑2007 ↑all
2007-04-01
00:00:35 <oerjan> bsmntbombdood: See the Minsky machine article on the wiki
00:02:07 <bsmntbombdood> has to have two?
00:02:39 <oerjan> see the last point
00:02:48 <oerjan> or so
00:03:06 <bsmntbombdood> oh
00:03:19 <bsmntbombdood> that's neat
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:29:04 <bsmntbombdood> cool
00:29:08 <bsmntbombdood> a stack as a number
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:00:40 <oklopol> must be day somewhere :\
02:00:42 <oklopol> or maybe not
02:00:52 <bsmntbombdood> the foo
02:01:08 <bsmntbombdood> ~raw privmsg #esoteric :foo
02:01:08 <bsmnt_bot> foo
02:08:40 -!- Pikhq has joined.
02:26:48 <oklopol> ~raw privmsg oklopol :bar
02:27:06 <bsmntbombdood> not registered
02:27:24 <oklopol> can i even use raw?
02:27:28 <oklopol> ~raw privmsg #esoteric :bar
02:27:35 <oklopol> thought so
02:27:37 <bsmntbombdood> guess not
02:27:49 <oerjan> ~exec self.raw("PRIVMSG #esoteric :bar")
02:27:50 <bsmnt_bot> bar
02:27:55 <bsmntbombdood> right
02:27:55 <oklopol> ~exec self.raw'gf,kbd)
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:25 <oklopol> ------------>
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:15 <oklopol> nah
02:30:17 <oklopol> not likely
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:28 <Figs_> w00t
02:40:31 <Figs_> function pointers
02:40:36 <Figs_> in less than 200 bytes of code
02:40:40 <Figs_> http://rafb.net/p/orWqgE84.html
02:41:12 <Figs_> heh
02:41:16 <Figs_> my output is smaller than my source :P
02:42:11 <bsmntbombdood> oh boy
02:42:36 <Figs_> I could have made a smaller example
02:42:45 <bsmntbombdood> oh boy...
02:42:47 <Figs_> but I like my print function
02:42:53 <Figs_> saves me work ;)
02:43:05 <bsmntbombdood> function pointers in asm are just the address where the code starts, no?
02:43:23 <Figs_> more or less...
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:25 <Figs_> (when I compiled)
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:44:50 <Figs_> ie, call [VMSG]
02:45:03 <Figs_> I've effectively got a function pointer
02:45:09 <bsmntbombdood> yeah
02:45:27 <Figs_> and I could replace the functionality of VMSG at any point
02:45:48 <Figs_> heh
02:45:53 <Figs_> this is why I started working on asm again
02:45:54 <Figs_> :)
02:46:00 <Figs_> so much easier to use this than C
02:46:22 <Figs_> not for the print stuff
02:46:25 <Figs_> that stuff sucks
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:47:58 <bsmntbombdood> it is?
02:48:04 <Figs_> I think so
02:49:07 -!- wooby has joined.
02:50:00 <Figs_> on the other hand... I do weird stuff
02:50:16 <bsmntbombdood> function pointers are straightforward in c
02:50:31 <Figs_> I should have said C++
02:50:33 <Figs_> sorry
02:50:58 <bsmntbombdood> C++ is almost a superset of C
02:51:28 <Figs_> What I guess I mean is, a lot of things like changing around the interfaces of functions
02:51:55 <bsmntbombdood> C++ is just a mess anyway
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:26 <Figs_> I mean
02:53:34 <Figs_> I've found some behavior that is just *weird*
02:53:47 <bsmntbombdood> I like C
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:55:49 <bsmntbombdood> ew, templates
02:56:02 <bsmntbombdood> High level languages should be dynically typed
02:57:31 <Figs_> am I showing up as Figs_ again?
02:57:34 -!- Figs_ has changed nick to Figs.
02:57:41 <Figs> fix it?
02:58:15 <oklopol> yes
02:58:37 <oklopol> hmm, i'll retry the sleeping thing -------->
03:01:30 -!- Pikhq has quit ("Leaving.").
03:02:16 <Figs> hmm damnit
03:02:19 <Figs> I can't find it
03:09:15 -!- Pikhq has joined.
03:13:54 <Figs> oh well
03:26:15 -!- gg_ has joined.
03:27:21 <gg_> .
03:28:22 <CakeProphet> ..
03:29:50 <Figs> Oregon?
03:31:40 <Figs> or New Jersey?
03:32:26 <gg_> DC?
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:20 <Figs> :P
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:19 <Figs> Yeah, O.o
03:35:43 <Figs> I get Comcast Region NJ when I use locators :P
03:35:43 <Figs> wtf
03:36:53 <Figs> eh
03:36:54 <Figs> whatever
03:36:58 <Figs> Hello.
03:36:59 <Figs> :)
03:37:40 <gg_> That shouldn't make any difference :)
03:37:42 <gg_> Hello.
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:48 <Figs> ???
03:38:50 * Pikhq envies Sukoshi's Japanese IME magic
03:38:58 <Figs> I think we're talking about two different things
03:38:59 <gg_> nevermind
03:39:19 <Figs> anyway
03:39:25 * Figs is bored
03:39:50 * gg_ is bored, but hungry too.
03:39:54 <Figs> ah :\
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:44 <Figs> ... hmm
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:41:45 <Figs> no.
03:41:47 <Figs> :P
03:42:03 <Figs> more like
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:41 <Figs> *bit
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:39 <gg_> GM?
03:44:43 <Figs> Game Maker
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:33 <Figs> etc etc
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:17 <Figs> </babble>
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:04 <Figs> eh
03:50:08 <CakeProphet> hmmm... I've seen game maker.
03:50:09 <Figs> I doubt I will
03:50:14 <CakeProphet> it looks kind of weird... like graphical C.
03:50:14 <Figs> Oh?
03:50:22 <Figs> it kind of is
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:37 * CakeProphet is 15
03:51:40 <Figs> pre-college, and, in too many cases, pre-manners :P
03:51:54 <CakeProphet> I AM VERY POLITE. :) :) :)
03:51:57 <Figs> :P
03:52:01 * Figs is 18
03:52:07 <Figs> gg_?
03:52:13 <gg_> 22
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:52:59 <Figs> for instance
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:11 <CakeProphet> hmmm... how did I start programming.
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:53:49 <Figs> kk ;)
03:54:05 <Figs> ah :P
03:54:10 <Figs> (@CP)
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:45 <Figs> etc
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:08 <CakeProphet> hmmm
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:55:48 <Figs> (rationals)
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:42 <Figs> ah
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:12 <Figs> :P
03:57:21 <Figs> brainfuck? :P
03:57:25 <CakeProphet> -nod-
03:57:40 <CakeProphet> Befunge is grand fun.
03:57:41 <Figs> I know 2.5 languages well
03:57:52 <Figs> GML
03:57:55 <Figs> and C++
03:57:59 <Figs> (C/C++)
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:51 <Figs> but not well
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:11 <Figs> eh
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:20 <Figs> I mean
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:15 <Figs> False.
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:09:41 <CakeProphet> ...that's because DOS sucks.
04:10:01 <lament3> when people say "windows sucks", they are not comparing it with DOS (usually)
04:10:06 <Figs> lol
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:42 <lament3> i'm not saying DOS is bad
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:05 <lament3> Pikhq: incorrect.
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:37 * bsmntbombdood is playing with generating audio in python
04:13:46 <Pikhq> Figs: Ah.
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:48 <Figs> Hey
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:13 <lament3> it does? :(
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:28 <Pikhq> ;)
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:09 <lament3> (minix)
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:19:57 <lament3> eh
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:18 <Pikhq> I disagree.
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:02 <lament3> correct, and?
04:22:51 * CakeProphet trashes the sidewalks and dances around in circles rubbing his bellybutton
04:22:53 <CakeProphet> CULTURE JAMMING
04:22:59 <Figs> rofl
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 <CakeProphet> so...
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:12 <CakeProphet> Pikhq, :) LOL YAH RITE
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:46 <Figs> O.o
04:25:55 * CakeProphet snickers and hides in the bushes as chaos ensues.
04:25:57 <Figs> za?
04:25:57 <Pikhq> Which is *really* odd, since Lisp predates COBOL.
04:26:03 <CakeProphet> isn't it?
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:42 <Figs> cobol, `59
04:26:45 <Figs> lisp `58
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:38 <Figs> yeah
04:27:38 <CakeProphet> ...but everything isn't a file. -grin-
04:27:39 <Pikhq> Figs: I'm fond of troll-baiting. Adds activity to the room.
04:27:46 <Figs> ;)
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:29 <Figs> I don't know
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:20 <Figs> aye
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:30:57 <Figs> hmm
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 <Figs> ooh
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:45 <CakeProphet> distributed filesystem.
04:31:50 <Figs> more so
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:21 <Figs> ?
04:32:42 <Figs> oh god
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:34 <CakeProphet> ...what do you mean?
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:37:44 <CakeProphet> in Python you'd just use nested lists...
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:35 <Figs> (in C++)
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:55 <Figs> hmm
04:39:59 <Figs> I should learn python then
04:40:12 <Figs> they stole my idea! (before I had it, even)
04:40:21 <CakeProphet> it's pretty easy to learn...
04:40:26 <Figs> yeah
04:40:33 <Figs> I could probably learn it quickly enough
04:40:42 <CakeProphet> ..kind of bland though... but easy to write.
04:40:52 <Figs> mmm
04:41:05 <CakeProphet> co curly brackets.
04:41:08 <CakeProphet> *no
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:41:59 <CakeProphet> I don't know JS.
04:42:10 <Pikhq> I recommend Tcl. :)
04:42:12 <CakeProphet> Try Self or Smalltalk while you're at it.
04:42:13 <Figs> I'm just too lazy to learn it
04:42:15 <CakeProphet> or io
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:07 <CakeProphet> yeah
04:47:19 <CakeProphet> a little of both.... but it's considered interpreted.
04:47:23 <Figs> mm
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:15 <CakeProphet> ....dynamic typing. :)
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:49:13 <Figs> lol
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:21 <Figs> I mean
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:26 <CakeProphet> pfft.
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:07 <CakeProphet> ....then?
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:41 <Figs> well, no
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:14 <CakeProphet> not really.
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:21 <CakeProphet> not in duck typing anyways.
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:57:54 <Figs> no
04:58:07 <Figs> you say it has the traits of a string when you interface with it by X
04:58:16 <CakeProphet> .....???
04:58:51 <Figs> that's why C++ has type conversion operators
04:59:03 <bsmntbombdood> this is fun
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)
04:59:58 <bsmntbombdood> it is great fun
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:09 <CakeProphet> control... when you need it.
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:31 <Figs> *C++
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:19 <CakeProphet> ???
05:03:27 <CakeProphet> complex type?
05:03:30 <Figs> what I like about C is that I can do
05:03:41 <Figs> struct Employee
05:03:41 <Figs> {
05:03:45 <Figs> int salary;
05:03:50 <Figs> char* name;
05:04:01 <Figs> //etc
05:04:03 <Figs> };
05:04:04 <Pikhq> Slow typist?
05:04:17 <Figs> no, I just tryed putting in //etc directly
05:04:26 <Pikhq> Ah.
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:04:42 <Figs> :P
05:05:00 <CakeProphet> so... you like type declarations?
05:05:10 <Figs> Yeah.
05:05:27 <CakeProphet> It's alright I guess.
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:31 <CakeProphet> -nod- duck typing is a type system...
05:07:38 <CakeProphet> it just doesn't have typed variables.
05:07:47 <CakeProphet> only typed things...
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:13 <CakeProphet> how so?
05:08:21 <Figs> well, how would your code react to it?
05:08:26 <Figs> most likely throw an exception
05:08:29 <bsmntbombdood> you just get an AttributeError 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:09:35 <bsmntbombdood> Java has static duck typing
05:09:35 <CakeProphet> you don't have to find compile errors?
05:09:42 <bsmntbombdood> sorta
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:24 <bsmntbombdood> CakeProphet: yeah
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:03 <CakeProphet> ...why?
05:11:04 <bsmntbombdood> Yeah, runtime errors are annoying
05:11:12 <CakeProphet> what's the difference though
05:11:15 <Figs> two reasons:
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:24 <bsmntbombdood> that's not cool
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:10 <bsmntbombdood> te he he!
05:12:15 <bsmntbombdood> playing with sound is fun
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:35 <Figs> for example
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:00 <CakeProphet> ...then it has a bad error system?
05:14:05 <Figs> no
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:15:44 <Figs> afk
05:15:48 <CakeProphet> alrighty
05:30:20 <Figs> back
05:31:17 <Figs> ahhh
05:31:20 <Figs> Cake,
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:39 <Figs> holy crap
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:43:52 <Figs> or
05:44:53 <Figs> any object that can be use with ToString(), has a method foo() and a member variable bar.
05:45:05 <Figs> etc
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:47:53 <Figs> like,
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:55:27 <CakeProphet> ...yeah... might be hard to follow
05:55:34 <CakeProphet> I use a lot of non-C-ish stuff...
05:56:01 <Figs> what is
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:28 <Figs> wb
05:57:34 <gg_> thanks.
05:57:59 <Figs> I think I'm gonna go to sleep
05:59:05 <Figs> yeah
05:59:07 <Figs> g'night
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:01:22 * Pikhq sympathises
06:01:56 <bsmntbombdood> pikhq got a capital!
06:02:45 <CakeProphet> my main complaint about Python is that it doesn't give you... any options.
06:03:05 <bsmntbombdood> ?
06:03:05 <CakeProphet> The entire design goal is "there is one obvious way to do it"...
06:03:16 <bsmntbombdood> python's lack of real for really bugs me
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:04:17 <bsmntbombdood> when you want to modify the loop variable?
06:04:27 <bsmntbombdood> for skipping an item in the list or such
06:04:37 <CakeProphet> well... there's skip slicing.
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:26 <bsmntbombdood> easy to do with a traditional for loop
06:05:40 <CakeProphet> hmmm..
06:05:58 <bsmntbombdood> you have to expand the for into a while in python
06:05:59 <CakeProphet> well... yeah I guess... a weird requirement... but I suppose it would be more difficult.
06:06:05 <CakeProphet> not really.
06:06:11 <bsmntbombdood> yes
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:19 <bsmntbombdood> huh?
06:07:42 <CakeProphet> oh
06:07:55 <CakeProphet> you mean... if the current ITEM... not the current index.
06:08:02 <bsmntbombdood> yeah
06:08:11 <bsmntbombdood> that's what i said
06:08:20 <CakeProphet> ...you could use a variable in the loop to keep track of the condition.
06:08:34 <bsmntbombdood> I know it's possible, it's just ugly
06:08:37 <CakeProphet> ...but yeah...
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:22 <bsmntbombdood> it can be done, it's turing complete
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:35 <bsmntbombdood> GregorR: make returns implicit
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:40:35 <bsmntbombdood> that makes whitespace significant too
06:40:43 <GregorR> ............... no.
06:41:07 <GregorR> Oh wait, you mean my object combination suggestion?
06:41:10 <bsmntbombdood> yeah
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:41:55 <Pikhq> Nah.
06:42:01 <Pikhq> Confusinger.
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:34 <GregorR> Pikhq: Of course.
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:26 <GregorR> ... how so?
06:43:30 <bsmntbombdood> GregorR: why??
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:43 <oerjan> foo ? bar : [...]
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:47 <oerjan> ok
06:44:57 <GregorR> And anyway, like I said, I don't like that particular syntax, it will probably change ;)
06:45:08 <bsmntbombdood> GregorR: huh?
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:45:47 <GregorR> OH
06:45:48 <GregorR> Hahahah
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:37 <bsmntbombdood> GregorR: do you have operator overloading?
06:48:40 <oerjan> yes
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:12 <bsmntbombdood> for example, the "_**fo" operator
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:50:31 <bsmntbombdood> wtf?
06:50:37 <bsmntbombdood> slashdot has a digg thing
06:50:41 <GregorR> LOL
06:52:41 <Pikhq> It's 20070401. What do you expect?
06:53:23 <bsmntbombdood> OOOOOOOOOOOH!!!!!
06:53:30 <bsmntbombdood> lol
06:55:32 <bsmntbombdood> hahaha
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:39:52 <oklopol> !bf_gen Hello, world!
12:39:56 <EgoBot> Huh?
12:40:04 <oklopol> :<
12:40:07 <oklopol> !help
12:40:09 <oklopol> ...asd
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:40:13 <oklopol> yay
12:40:26 <oklopol> !bf_txtgen Hello, world!
12:41:18 <EgoBot> 118 +++++++++++++++[>+++++>+++++++>+++>++++++++<<<<-]>---.>----.+++++++..+++.>-.------------.>-.<<.+++.------.--------.>+. [294]
12:42:24 <ais523> ~bf +++++++++++++++[>+++++>+++++++>+++>++++++++<<<<-]>---.>----.+++++++..+++.>-.------------.>-.<<.+++.------.--------.>+.
12:42:25 <bsmnt_bot> Hello, world!
12:55:41 -!- wooby has joined.
12:59:34 <oklopol> okay
12:59:41 <oklopol> 20 minutes of logs again
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:03:37 <oklopol> :<
13:03:46 <ais523> b****fuck
13:03:53 <oklopol> :P
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:32 <oklopol> shouldn't be hard
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:09:19 <oklopol> not me
13:10:43 <wooby> it's interesting i think lol
13:10:47 <wooby> funky language
13:10:54 <wooby> fast and loose
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:32 <ais523> *outmoded
13:11:51 <ais523> in JavaScript, you can come up with one-level or three-level or any-number-of-level hierarchies
13:15:29 <wooby> yeah
13:15:31 <wooby> i think it rules
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:06:15 <CakeProphet> HELLO
15:06:19 <CakeProphet> FRIENDS OF THE REPUBLIC
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:11:53 <oklopol> really
16:12:38 * Pikhq applauds
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:42 <Pikhq> Just a thought.
16:22:51 <Pikhq> Carrier pigeon? :p
16:25:23 -!- jix has joined.
16:26:31 <ais523> Pikhq: read RFC 1149
16:27:58 <ais523> one of the only IP standards with an average packet return time of 5222806.6 milliseconds
16:30:07 <Pikhq> ais523: I have.
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:33:59 <CakeProphet> ...what a puny netsplit
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:28:59 <Sukoshi> INTERCAL!
19:29:52 <bsmntbom1dood> owtf
19:30:01 <bsmntbom1dood> my mouse is broken
19:30:42 <Sukoshi> I use a mice for like, 5 activities.
19:30:44 <Sukoshi> *mouse
19:31:25 <bsmntbom1dood> it was an april fools joke
19:31:35 <bsmntbom1dood> stiky note stuck over the ball
19:31:49 <Sukoshi> Oh. Today is Apr. 1.
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> wtf
22:08:04 <Figs> http://religiousfreaks.com/2007/03/02/religious-freaks-distraught-over-miracle-pizza-pan/
22:28:18 <Figs> O_O
22:28:24 <Figs> http://www.biggeekdaddy.com/sitebuilder/images/Virgins_in_Heaven-637x242.jpg <-- wtf?
22:30:02 <nazgjunk> hah
22:30:08 <Figs> http://www.cooperativeindividualism.org/calvin-on-scientific-law.gif
22:32:06 <nazgjunk> oh god, i love that
22:40:29 <bsmntbombdood> heh
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:28:16 <bsmntbombdood> poink
23:39:42 -!- richie12790 has joined.
23:40:08 <richie12790> hi all
23:40:33 -!- richie12790 has left (?).
23:41:35 <bsmntbombdood> ...
23:47:29 <bsmntbombdood> I saw brainfuck with procedures once
23:56:17 <Pikhq> I've seen multiple implementations.
23:57:23 <bsmntbombdood> over achiever
2007-04-02
00:02:44 <CakeProphet> hmmm...
00:02:56 <CakeProphet> I think I might need to do a genetic algorithm for this...
00:03:05 <oerjan> for what?
00:03:25 * CakeProphet is testing strings for "closeness"
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:05:58 <oerjan> (diff-like)
00:08:42 -!- calamari has quit ("Leaving").
00:09:45 <bsmntbombdood> CakeProphet: There is an algorithm for that in the python stdlib
00:11:22 <bsmntbombdood> lets see
00:11:30 <bsmntbombdood> /usr/lib/python2.5/difflib.py
00:12:11 <oerjan> from 2.1 it says
00:12:23 <bsmntbombdood> SequenceMatcher.ratio
00:13:47 <bsmntbombdood> get_close_matches is a cool function from that module
00:17:27 <bsmntbombdood> looks pretty simple
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:21:11 <bsmntbombdood> I'm going to recode it a little
00:25:36 <calamari> well, I think I'm a kde convert
00:26:02 <bsmntbombdood> ion ftw
00:27:01 <calamari> lol
00:27:26 <bsmntbombdood> ion rocks
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:43 <bsmntbombdood> it works!
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:27:31 <bsmntbombdood> ok, I have some code to compare two strings
01:28:23 <bsmntbombdood> ratio("apple", "apple") => 1.0
01:28:41 <bsmntbombdood> ratio("apple", "appl") => .888
01:29:15 <bsmntbombdood> ratio("apple", "orange") => .363
01:29:29 <GregorR> ratio("apple", "appel")
01:29:43 <bsmntbombdood> .8
01:31:26 <bsmntbombdood> ratio("aaa", "bbb") => 0.
01:33:51 <Figs> is that like hamming distance? O.o
01:35:11 <oerjan> ratio("abcde", "edcba")
01:35:19 <bsmntbombdood> no
01:36:05 <bsmntbombdood> oerjan: .2
01:36:23 <oerjan> so, only one match
01:36:31 <bsmntbombdood> it's kinda broken
01:36:36 -!- Figs has left (?).
01:36:38 <oerjan> no consideration of swapping
01:37:51 <bsmntbombdood> hmm
01:37:56 <bsmntbombdood> not sure how to handle this
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:39:47 <oerjan> that's strange
01:40:21 <bsmntbombdood> i dunno how to remove the matches from strings after they are counted
01:41:02 <oerjan> slicing?
01:41:12 <bsmntbombdood> well, yeah
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:45:30 <bsmntbombdood> hmm
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:47:19 <CakeProphet> ah
01:47:34 <bsmntbombdood> gah
01:47:42 <CakeProphet> well..
01:47:47 <CakeProphet> I just created my own thing.
01:47:57 <CakeProphet> ...that takes into account transposition.
01:48:04 * CakeProphet didn't realize you were talking about it.
01:48:07 <bsmntbombdood> simply removing the matches gives ratio("abcde", "edcba") => 1.0
01:48:20 <oerjan> of course
01:48:32 <oerjan> because every piece matches somewhere
01:48:50 <bsmntbombdood> yeah
01:48:54 <bsmntbombdood> that's not acceptable
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:50:45 <bsmntbombdood> this looks ok
01:51:00 <bsmntbombdood> 4*<sum of squares of lengths>/<length>**2
01:51:26 <bsmntbombdood> and just removing common substrings as we find them
01:53:47 <bsmntbombdood> actually, the square root of that
01:54:31 <bsmntbombdood> ratio("abcde", "edcba") => 0.4472135955
01:55:31 <CakeProphet> ...I could actually split off the recursions into threads... if necessary
01:57:26 <CakeProphet> http://pastebin.ca/420272 <---
01:59:02 <bsmntbombdood> oh man
01:59:11 <bsmntbombdood> sum of squares doesn't work very well
01:59:22 <bsmntbombdood> ratio("apple", "appel") => .44
02:00:01 -!- anonfunc has quit.
02:00:10 <bsmntbombdood> that's not good
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:01:46 <CakeProphet> who me?
02:01:52 <oerjan> no, bsmntbombdood
02:02:12 <bsmntbombdood> hmmm
02:02:21 <bsmntbombdood> yeah, this finds the first one first
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:49:35 <bsmntbombdood> CakeProphet: Oh, a convience function
02:57:52 <CakeProphet> ...yes, I'm lazy
02:59:03 <oerjan> a function for black people with braids?
02:59:46 <bsmntbombdood> methinks python ints should have an __iter__ method
03:00:47 <CakeProphet> to iterate over what?
03:00:57 <bsmntbombdood> n.__iter__ = range(n)
03:01:17 <CakeProphet> hmmm.... don't think that would make much sense
03:01:25 <CakeProphet> for num in 6:
03:01:40 <bsmntbombdood> yeah
03:02:00 <CakeProphet> makes me think of "every possible floating point value of 6"... which would go on forever.
03:02:51 <CakeProphet> 6.next() == 0
03:03:40 <bsmntbombdood> ?
03:09:19 -!- calamari has joined.
03:19:39 -!- Figs has joined.
03:19:46 <Figs> hey
03:19:48 <Figs> you guys seen this, right?
03:19:50 <Figs> http://www.nata2.info/d/pictures/f/americans.gif
03:21:41 <oerjan> right.
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:34 <lament> woo
03:46:38 <lament> i joined facebook!!
03:46:45 <bsmntbombdood> oh boy
03:46:46 * GregorR bops lament's nose.
03:46:48 <GregorR> BAD LAMENT
03:46:49 <GregorR> NO BISCUIT
03:46:50 -!- Arrogant has joined.
03:47:08 <lament> is there an esoteric programming group?
03:48:06 <bsmntbombdood> Psuedo Hadamard transform!
03:48:45 -!- Figs_ has joined.
03:48:52 <oerjan> "pseudo"
03:49:58 -!- Figs has quit (Nick collision from services.).
03:50:01 -!- Figs_ has changed nick to Figs.
03:50:14 <Figs> ah
03:50:16 <Figs> ther we go
03:58:10 <lament> there isn't even a brainfuck group :(
03:58:40 <bsmntbombdood> lame
03:58:50 <bsmntbombdood> you're just a lame-nt
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:02:49 <GregorR> [In Plof]
04:04:51 -!- Pikhq has joined.
04:07:45 <bsmntbombdood> function overloading?
04:08:21 -!- Arrogant has quit ("Leaving").
04:14:24 <GregorR> ... you know, multiple functions with the same names, differentiated by their signature...
04:15:44 <bsmntbombdood> ...no?
04:16:00 <GregorR> ... what was that no to? :-P
04:16:21 <bsmntbombdood> I don't know
04:16:29 <bsmntbombdood> <GregorR> ... you know, multiple functions with the same names, differentiated by their signature...
04:16:43 <GregorR> Ah :-P
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:18:20 <GregorR> Yeah.
04:19:04 <oerjan> if you wanted you could probably extend that to pattern matching
04:19:15 -!- Figs has left (?).
04:20:02 <oerjan> and guards
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:26:46 <GregorR> That I can see.
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:29:18 <GregorR> Yeah, I like that.
04:35:01 -!- calamari has quit ("Leaving").
04:49:23 -!- CakeProphet_ has joined.
05:04:14 -!- CakeProphet has quit (Connection timed out).
06:15:51 * bsmntbombdood is reading about objective C
06:25:06 <bsmntbombdood> looks nice
06:30:46 <bsmntbombdood> I wonder why C++ and Java caught on
06:32:20 <GregorR> Apple <3 Obj-C
06:34:07 <bsmntbombdood> ...
06:37:12 <GregorR> What? I speak only truth.
06:37:24 <bsmntbombdood> if obj-c is as fast as C, that would be fantastic
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:02 <GregorR> So, it's like Plof X-D
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:21:28 <GreaseMonkey> afk food
08:29:52 -!- ShadowHntr has joined.
08:30:10 -!- Sukoshi has quit ("愛してた。アンタの高い姿を見たことの最初から、見とれた。アンタの真っ黒髪が風の勝手).
08:32:50 <bsmntbombdood> wtf?
08:33:59 <ShadowHntr> excuse me?
08:33:59 <ShadowHntr> :/
08:53:18 <GreaseMonkey> back
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:34:05 <calamari> nooga: asking me?
10:34:40 <nooga> maybe
10:35:00 <calamari> oh, then you want GregorR
10:35:20 <nooga> i c
10:35:25 <nooga> but i got to go ;
10:43:12 <GreaseMonkey> gonna go zzz, night all
10:43:51 <oklopol> nn
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:23:00 <RodgerTheGreat> hi guys
13:32:49 -!- jix has quit (Read error: 104 (Connection reset by peer)).
13:33:53 -!- jix has joined.
15:32:35 <nooga> juju
15:32:45 -!- _filippo_ has joined.
15:32:47 <nooga> i've got my raytracer in sadol working
15:32:49 <nooga> :D
15:37:07 <nooga> http://pastebin.ca/419385 :D
15:37:34 -!- dog4 has quit ("This computer has gone to sleep").
15:39:39 <oklopol> make graphics output
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:29 <oklopol> ah okily
15:42:33 <oklopol> not now though
15:42:37 <oklopol> i'm gonna study!
15:42:45 <oklopol> i had an exam today, but i slept over it
15:42:46 <nooga> good luck
15:43:01 <oklopol> i have one tomorrow as well, hope i have better luck with the alarm
15:43:30 <nooga> :}
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:29 <oklopol> sure
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:46 <GregorR> So do I :(
20:16:48 <oklopol> still can't find any problem with it
20:16:50 <oklopol> though
20:16:56 <GregorR> I'm trying to find a nice middle ground, but can't *sigh*
20:16:57 <oklopol> :)
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:19:46 <oklopol> whose a?
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:21:40 <oklopol> ?
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:07 * GregorR reappears.
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:06 <GregorR> Right.
20:28:11 <GregorR> It's a contrived example :P
20:29:49 <oklopol> hmm
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:46 <oklopol> hmm
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:27 <oklopol> heh, "::{"
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:43 <oklopol> hmm
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:37:01 <oklopol> eh
20:37:03 <oklopol> hmm
20:47:49 <GregorR> Welcome to my hell ;)
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:18:44 <nooga> ;p
21:18:49 <nooga> run teh raytracer
21:18:57 <oklopol> hmm... maybe i should
21:20:03 <nooga> echo "10" | BDSM2 raytracer.sad > test.ppm
21:20:14 <nooga> it will output 1200x900 image
21:20:35 <oklopol> eh
21:20:58 <GregorR> That interpreter name makes my brain bleed.
21:21:03 <nooga> D:
21:21:07 <nooga> it's cool
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:22:31 <oklopol> i thought so
21:22:36 <oklopol> well, i don't have bash
21:25:34 <nooga> pitty -.-
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:27:46 <nooga> hmm
21:28:02 <nooga> BDSM2 ray.sad > test.ppm
21:28:16 <nooga> and then input some number from 1 to 10
21:28:21 <nooga> and press enter
21:28:26 <nooga> and wait
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:29:36 <oklopol> the link?
21:29:42 <oklopol> you have it somewhere?
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)).
21:48:52 <bsmntbombdood> GregorR: what about nested thick/thin function
21:48:58 <bsmntbombdood> it's not very pretty
22:18:46 <SimonRC> but it is esoteric!
22:19:00 <SimonRC> call them "function" and "block"?
22:28:04 <CakeProphet_> dynamic and lexical scope.
22:28:41 <CakeProphet_> function = lexical block = dynamical
22:33:09 <bsmntbombdood> hmm
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:39:59 <CakeProphet_> ...nothing specific.
22:40:05 <lament> i don't understand
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:40:48 <bsmntbombdood> huh?
22:41:28 <CakeProphet_> hmmm... so would the __value__ of 5 be? 5? hehe... makes sense in a strange way.
22:41:31 <CakeProphet_> THE VALUE OF SAM IS SAM
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:22 <lament> well
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:43:59 <bsmntbombdood> yeah
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:41 <lament> then it's easy
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:19 <CakeProphet_> haha... that's pretty cool.
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
22:59:04 * oklopol waits
23:01:33 -!- ChanServ has set channel mode: +o lament.
23:01:37 -!- oklopol has joined.
23:01:41 <lament> :|
23:01:43 -!- lament has set channel mode: -o lament.
23:01:55 <oklopol> sorry :<
23:02:06 <oklopol> i couldn't resist
23:02:26 <CakeProphet_> HMMM, NO
23:02:28 <CakeProphet_> THAT'S A GOOD POINT
23:02:42 <CakeProphet_> Hmmm... Let's turn OO on its head.
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:09 <lament> CakeProphet_: hmmm
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:19 <CakeProphet_> ah... hmmm... but what is a?
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:13:59 * SimonRC goes.
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:19:27 <oklopol> i don't understand it
23:21:14 <oklopol> oh i do, now that i think about it
23:21:16 <oklopol> heh :)
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
23:47:58 <bsmntbombdood> O.o
23:50:32 <bsmntbombdood> theoretical physics is funny
2007-04-03
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:13:40 <bsmntbombdood> ---____---
00:13:44 <bsmntbombdood> ^^ jaw drop
00:18:16 -!- ihope has joined.
00:18:24 <ihope> Unlimited! Indefinite! Arbitrary!
00:18:37 <ihope> But not infinite!
00:19:01 <bsmntbombdood> unbounded
00:33:13 <ihope> That too.
00:33:32 <ihope> Limited! Definite! Finite! Uh... inarbitrary!
00:33:40 <ihope> Oh, and bounded.
00:34:05 <bsmntbombdood> why not infinite?
00:48:51 <ihope> Because... um...
00:49:00 <ihope> Because infinite is not finite! :-)
00:49:07 <bsmntbombdood> yes
00:50:55 <bsmntbombdood> mplayer * -quiet
00:51:01 <bsmntbombdood> oops
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:00:36 <CakeProphet_> sweet.
03:01:03 <CakeProphet_> I found a joke module that fully implements goto and come from in Python
03:03:56 <bsmntbombdood> fun
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:14:48 <bsmntbombdood> heh
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:04:50 <bsmntbombdood> very 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:13:08 <bsmntbombdood> :(
07:13:31 <bsmntbombdood> not that that would make any sense...
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:07:38 <nooga_> yuyu
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:35:45 <GreaseMonkey> gonna zzz, gnight everyone
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:54:58 <oerjan> (in plof)
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:29:01 <nooga_> u
13:29:10 <oerjan> i
13:29:41 <nooga_> q
13:30:06 <oerjan> <
13:31:00 <nooga_> plof
13:31:27 <oerjan> isabelle
13:32:02 <nooga_> herring disco
13:33:08 <oerjan> your mom
13:33:30 <nooga_> ()
13:34:10 <oerjan> () :: ()
13:34:11 <nooga_> sup oerjan
13:34:16 <oerjan> not much
13:34:30 <nooga_> any new languages?
13:34:41 <oerjan> nah
13:34:56 <nooga_> hah
13:35:43 <oerjan> and you?
13:35:51 <nooga_> naah :\
13:38:09 <nooga_> i wanted to make normal programming language
13:38:47 <nooga_> for myself
13:51:10 -!- oerjan has quit ("Later").
14:14:34 -!- UnrelatedToQaz has joined.
14:15:38 <UnrelatedToQaz> Is this connection working?
14:16:29 <nooga_> why not?
14:16:56 -!- sebbu has quit ("reboot").
14:17:05 <UnrelatedToQaz> I thought there was something wrong at my end.
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:28:51 <RodgerTheGreat> hi everyone
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:26:42 <GregorR> Yeah.
18:26:52 <lament> makes sense.
18:27:02 <GregorR> Since you may as well not emulate photons that never occur :-P
18:27:09 <GregorR> Erm
18:27:13 <GregorR> Never appear rather
18:54:57 * Sgeo wonders when we'll have real-time raytracing
18:55:02 <Sgeo> </delayed>
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:25 <Sgeo> oerjan, hms?
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:50 <lament> or has statusbars etc
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:01:39 <Sgeo> afk
19:02:34 <Sgeo> and bye for now
19:02:46 <Sgeo> Bye
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:18:45 <atrapado> ok. yes.
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:11 <GregorR> And English for lament?
21:24:18 <lament> no, no
21:24:24 <GregorR> Heh
21:24:31 -!- lament has changed nick to happy_song.
21:24:57 -!- GregorR has changed nick to _D6Gregor1RFeZi.
21:25:17 <_D6Gregor1RFeZi> My nick is D for GregorR :-P
21:28:45 <happy_song> my nick is Unga-Bungish for "lament"
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:46:36 <bsmntbombdood> bsmnt_bot i mean
22:47:21 <happy_song> okay, we'll stop talking about sex and drugs then
22:47:28 <happy_song> so.... flowers!
22:48:07 <bsmntbombdood> ~exec self.register_raw("\S+ PRIVMSG #esoteric :~foo.*", lambda x,y: bot.raw("PRIVMSG #esoteric :hello, world"))
22:48:10 <bsmntbombdood> ~fpp
22:48:12 <bsmntbombdood> ~foo
22:48:13 <bsmnt_bot> hello, world
22:48:34 <bsmntbombdood> ~exec time.sleep(200)
22:48:36 <bsmntbombdood> ~ps
22:48:37 <bsmnt_bot> 0: 'time.sleep(200)', 1.99 seconds
22:48:48 <bsmntbombdood> ~kill 0
22:48:50 <bsmntbombdood> ~ps
22:48:51 <bsmnt_bot> 0: 'time.sleep(200)', 15.96 seconds, killed
22:56:31 -!- Sgeo has joined.
23:17:10 * nazgjunk waves
23:17:25 <nazgjunk> oh wait, that's half an hour old
23:17:26 <nazgjunk> >.<
23:20:59 -!- nazgjunk has quit ("sleep gah").
23:32:00 -!- oerjan has joined.
23:33:37 <bsmntbombdood> yeah...it took like 3 minutes...
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:36:30 <bsmntbombdood> sure
23:55:17 <bsmntbombdood> comparing strings for similarity is difficult
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:58:39 <bsmntbombdood> so compare the compressed versions of the strings
23:59:25 <happy_song> too bad you can't compress in the first place
2007-04-04
00:02:44 <bsmntbombdood> what do you mean?
00:04:14 <happy_song> the kolmogorov complexity result.
00:04:23 <happy_song> can't find the optimal compression.
00:04:39 <bsmntbombdood> it doesn't need to be optimal
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:33 <bsmntbombdood> no it doesn't
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:21 <bsmntbombdood> compression algorithms...
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:14:13 <bsmntbombdood> because it's so short
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:20:05 <bsmntbombdood> happy_song: it can't consider _all_ similarities
00:20:13 <bsmntbombdood> oerjan: i dunno
00:21:54 <happy_song> bsmntbombdood: precisely
00:23:01 <bsmntbombdood> the similarity of A and B could be the length of a program to convert A into B
00:23:03 <bsmntbombdood> a la sed
00:23:33 <bsmntbombdood> a la Levenstein distance
00:26:36 -!- atrapado has quit ("multiverse?").
00:27:33 <bsmntbombdood> "aaaaaaaa" -> "bbbbbbbb" = s/a/b/g
00:29:11 <oerjan> which reduces to kolmogorov complexity in the case A=""
00:29:32 <bsmntbombdood> right
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
01:54:57 <bsmntbombdood> using gzip,
01:55:05 <bsmntbombdood> dist("a"*8, "a"*8) => 0
01:55:15 <bsmntbombdood> dist("apple", "appel") => 4
01:55:28 <bsmntbombdood> dist("apple", "bannana") => 10
01:55:41 <bsmntbombdood> dist("a"*8, "b"*8) => 4
01:56:43 <bsmntbombdood> dist("a"*100, "b"*100) => 6
01:58:04 <bsmntbombdood> dist("abcde", "edcba") => 5
02:00:12 <bsmntbombdood> using bzip2 the results are ... different
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:05:10 <Pikhq> Sukoshi?
03:05:42 <Pikhq> . . . Found it.
03:07:07 -!- Pikhq has left (?).
03:11:39 -!- Pikhq has joined.
03:12:02 <Pikhq> やった!
03:12:32 <GregorR> ARRRRRRRRR, TEH NOT ENGLISH
03:12:39 <GregorR> [You don't have #plof on autojoin :( :P]
03:16:30 <Pikhq> 少しがいるか?
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
03:58:18 <bsmntbombdood> where levenshtein(...) => 1
04:08:33 <Sukoshi> ちょっとね。
04:08:51 <CakeProphet> ....I want to write an operating system as a polyglot of a bunch of languages.
04:09:03 <CakeProphet> well... I say that.
04:09:05 <CakeProphet> but...
04:09:12 <CakeProphet> I'd probably go crazy
04:09:15 <CakeProphet> before taht happend.
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:47 <GregorR> You almost have to.
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:13:53 <CakeProphet> yeah.
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:14:53 * CakeProphet attempts to think of a use.
04:15:16 <CakeProphet> well..
04:15:20 <CakeProphet> that's still comment-based
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:15:35 <CakeProphet> function calls are nice and common.
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:17:29 <CakeProphet> Perl and PHP are easy.
04:25:04 <GregorR> Perl is write-only, PHP is domain-specific (no matter what strange people want to do with it)
04:27:31 <bsmntbombdood> removing the checksum helped
04:27:38 <calamari> python is good
04:28:43 <bsmntbombdood> helped A LOT
04:29:12 * CakeProphet ...likes Perl. :(
04:29:34 <GregorR> Bloody Perl.
04:29:38 <GregorR> Godawful language.
04:30:01 <GregorR> They miserably failed to draw "the line."
04:30:51 <Sukoshi> Pikhq: I'm here sort of.
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:38:33 <bsmntbombdood> and here she is: http://pastebin.ca/423400
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)).
04:55:24 <CakeProphet> hmmmm
04:55:31 <CakeProphet> what's it intended for
05:26:04 -!- ShadowHntr has joined.
05:36:20 <bsmntbombdood> CakeProphet: finding how similar two strings are
05:39:25 <bsmntbombdood> gives a value in the range [0..]
05:39:38 <bsmntbombdood> 0 = the same string
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:58:07 <bsmntbombdood> what do you mean?
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:06:50 <bsmntbombdood> data compression is interesting
06:07:10 <CakeProphet> oooh
06:07:32 <CakeProphet> for typos... addings a transposition operation does wonders.
06:10:01 <bsmntbombdood> transposition in compressed data won't mean much
06:14:46 <CakeProphet> yeah
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:19:42 <CakeProphet> like...
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:21:21 <bsmntbombdood> that's just backreferences
06:21:37 <bsmntbombdood> lz77
06:21:52 <CakeProphet> hmmm?
06:21:55 <CakeProphet> like...
06:23:20 <CakeProphet> x5=Hello,\0!
06:24:18 <CakeProphet> you could compress anything that had that pattern into a macro like x(World) x(Goats) etc
06:25:11 <CakeProphet> for redundency that isn't always linear.
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:08 <nooga> absorbed*
07:33:32 <GregorR> I believe I mentioned something about an "arbitrary bounds"
07:33:56 <nooga> oh
07:35:04 <nooga> http://en.wikipedia.org/wiki/Photon_tracing
07:35:06 <nooga> check that out
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:48:45 <nooga> g2g bye
07:49:25 <happy_song> i woludn't exactly call that picture stunning.
07:53:02 <happy_song> amusing, maybe.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:04 <GreaseMonkey> eww, java
08:05:25 <GreaseMonkey> afk, food
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:35:43 <GreaseMonkey> gonna go sleep, gnight
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
13:48:08 <nooga> aaa
14:27:15 -!- helios_ has joined.
14:27:21 -!- helios_ has quit (Client Quit).
15:08:27 <nooga> a q q
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:29 <CakeProphet> hmmm...
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:14 <LookA> Howdy
20:41:41 -!- fax has joined.
20:41:53 <fax> cool
20:42:03 <LookA> It does exist.
20:42:31 <fax> O_o
20:42:38 <fax> why are tunes logging this
20:43:01 <LookA> ?
20:43:25 <GregorR> Some people wake up in the morning and read #esoteric logs instead of the newspaper.
20:43:38 <fax> haha
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:10:33 <LookA> EgoBot: !help
21:11:16 <oerjan> The ! must be first on line
21:13:51 <LookA> Oh, thanks.
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:29:48 <bsmntbombdood> dooo
22:30:07 <fax> oh hi bsmntbombdood
22:30:59 <fax> you are welcome to join #lispcafe as is everyone else here :D
22:31:23 <bsmntbombdood> #lispcafe?
22:32:00 <fax> bsmntbombdood: yet another lisp channel, but there is good discussion a lot of the time
22:45:16 <RodgerTheGreat> I had an idea for an esolang recently
22:45:38 <oerjan> aha
22:45:40 <RodgerTheGreat> it'd be an emo-person based programming language called "Theirspace"
22:45:56 <RodgerTheGreat> the emo people (enodes) are arranged in a graph
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:47:46 <RodgerTheGreat> (the opposite of sucking would be being "totally HxC"
22:47:48 <RodgerTheGreat> )
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:20 <bsmntbombdood> heh, gonad
22:49:31 <bsmntbombdood> two data types, testicles and ovaries
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:51:01 <RodgerTheGreat> what do you guys think? Does it show promise?
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:53:47 <oerjan> ok
22:55:14 <RodgerTheGreat> although, I guess you could use Markov chains or something to make it more spontaneous
22:55:27 <RodgerTheGreat> then you could feed in actual emo-speak and the like.
22:55:53 <bsmntbombdood> computation through genetics!
22:55:53 <RodgerTheGreat> and generate a garbled mishmash of words resembling random emo-speak
22:56:03 <RodgerTheGreat> ooh
23:04:13 -!- wooby has quit (Read error: 104 (Connection reset by peer)).
23:04:28 -!- wooby has joined.
23:38:01 <CakeProphet> so like..
23:38:11 <CakeProphet> is there anything better than Windows command prompt out there?
23:38:23 <bsmntbombdood> uh huh
23:38:26 <CakeProphet> ...and if you say bash I will FUCKING KILL YOU
23:38:27 <bsmntbombdood> bash
23:38:36 <CakeProphet> I meant... for Windows
23:38:59 <bsmntbombdood> wtf would you use windows?
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:39:42 <CakeProphet> It's too extremes.
23:39:45 <CakeProphet> two
23:40:22 <bsmntbombdood> then don't use linux
23:40:25 <bsmntbombdood> use bsd
23:40:32 <CakeProphet> >.>
23:41:20 <atrapado> CakeProphet, try cygwin , a unix environment for windows
23:41:26 <CakeProphet> got it.
23:41:33 <CakeProphet> it's kind of clumsy
23:41:38 <CakeProphet> to use.
23:42:00 <lament> your mom is kinda clumsy
23:42:02 <lament> to use
23:42:11 <lament> cygwin is fun!
23:55:20 -!- calamari has joined.
2007-04-05
00:01:40 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
00:02:12 <bsmntbombdood> how is cygwin fun?
00:03:47 <lament> it allows you to use bash on windows, for one.
00:04:12 <bsmntbombdood> why would you be using windows anyway?
00:15:04 -!- oerjan has quit ("Gah, I'm tired").
00:16:43 <lament> work
00:17:10 <bsmntbombdood> ha ha work
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:32 <ihope> Esoteric!
00:37:41 <RodgerTheGreat> INDEED!
00:37:43 <ihope> Say, that reminds me of something.
00:37:44 <bsmntbombdood> ciretose
00:38:02 <ihope> It reminds me of the word "symbioses".
00:38:22 <fax> hmm synergy comes to mind
00:38:32 <bsmntbombdood> gonads come to mind
00:38:37 <fax> lol
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:11 <bsmntbombdood> testicles and ovaries swapping their stuff
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:39:57 <fax> D:
00:41:24 <RodgerTheGreat> ah, e. coli, my close, close friend
00:41:49 <ihope> Now, that's interesting.
00:41:52 <ihope> It's also really gross.
00:41:55 <ihope> Want me to share?
00:42:22 <RodgerTheGreat> sure. I'm cool with biology.
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:43:43 <RodgerTheGreat> wow
00:43:45 <RodgerTheGreat> cool
00:43:51 <ihope> Very cool.
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:34 <RodgerTheGreat> probably difficult to digest things like cellulose
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:47:32 <RodgerTheGreat> but then, we could eat wood.
00:47:35 <RodgerTheGreat> it'd be awesome.
00:47:43 <ihope> Yep.
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:47 <RodgerTheGreat> ihope: yes
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:11 <RodgerTheGreat> heat can denature as well
00:51:48 <ihope> Interesting.
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:27 <bsmntbombdood> languages?
01:06:38 <ihope> Both English and other.
01:06:47 <bsmntbombdood> spanish is my hardest class
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:17:29 <ihope> What's nullity?
01:18:51 <RodgerTheGreat> zero in it's purest form. Nothingness.
01:23:26 <GregorR> Let's put "its" in it's purest form, eh?
01:23:50 <bsmntbombdood> pwnt.
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:33 <ihope> :-P
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 <GregorR> Stupid i
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:31:07 <bsmntbombdood> I wonder how common lisp does that
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:07 <GregorR> I don't have pointers.
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:36:31 <bsmntbombdood> yeah, in the implementation
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:37:58 * Pikhq returns. . .
01:38:04 <GregorR> *implies
01:38:41 <Pikhq> How couldn't it?
01:38:53 <GregorR> You've lost a bit of context here X-P
01:39:00 <Pikhq> Yeah.
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:47 <ihope> What's an rvalue?
01:42:56 <GregorR> Anything that isn't an lvalue :)
01:43:01 <ihope> What's an lvalue?
01:43:10 <bsmntbombdood> GregorR: Return an object
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:42 <ihope> s/?/./
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:10 <GregorR> ihope: Join #plof
01:45:18 <bsmntbombdood> GregorR: Have them evaluate the same way, is what i'm saying
01:49:09 <CakeProphet> so lvalues are like... variables?
01:49:33 <ihope> #plof!
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:13:56 <ihope> Pff.
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:35:22 <Sukoshi> Pikhq: 自分の事を頼まれたか。
04:35:55 <bsmntbombdood> kinky
04:37:35 <Pikhq> わからなかった。……
04:38:30 <Pikhq> ぼくは日本語でとても上手じゃない、よ。
04:39:07 <bsmntbombdood> heh, xterm knows how to render that, but xchat doesn't
04:39:26 <Pikhq> おもしろい。……
04:41:56 -!- Pikhq has quit ("Leaving.").
04:42:34 <Sukoshi> さあ、上手にななってみるねぇぇ。エレガントな気持だわ。
04:43:12 -!- Pikhq has joined.
04:43:22 <Sukoshi> Guh.
04:43:23 <Sukoshi> さあ、上手にななってみるねぇぇ。エレガントな気持だわ。
04:43:50 <Sukoshi> とにかく、昨日、アンタは私を聞いたいことがあった。何か、あの質問?
04:44:41 <Pikhq> 英語で?エスペラントで?
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:49:46 <fax> 日_日
04:50:01 <Sukoshi> You wanted to ask me something in Japanese yesterday.
04:50:04 <Sukoshi> What was it?
04:50:42 <bsmntbombdood> yo hablo espannol bien!
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:50:57 <Pikhq> -_-'
04:51:01 <bsmntbombdood> not
04:51:34 <Pikhq> Unless, of course, you think 「やった!」is a question. . . XD
04:51:48 <lament> no entiendo tampoco
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:12:45 <fax> @>---
05:13:57 <CakeProphet> -,-`-@
05:14:48 <fax> oooh
05:17:43 <lament> --{--{@
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:24:49 <Pikhq> I beg to differ.
05:24:57 <lament> i'm not.
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:09:19 <RodgerTheGreat> http://www.nonlogic.org/dump/text/1175749566.html
06:09:31 <RodgerTheGreat> can anyone suggest good places to trim things down?
06:09:55 <RodgerTheGreat> (or for that matter, anything I foolishly left out)
06:13:07 <GreaseMonkey> it actually looks just fine
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:13:13 <RodgerTheGreat> hm
06:13:42 <GreaseMonkey> how bout using just a bitwise not as '!'
06:14:07 <RodgerTheGreat> that might work
06:14:28 <RodgerTheGreat> I'll consider that
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:16:23 <RodgerTheGreat> that would pare it down a bit
06:16:24 <GreaseMonkey> yeah, though i think it still is
06:16:29 <GreaseMonkey> '=' should be left there
06:17:13 <GreaseMonkey> e.g. if((i=getidx())>=0){ printf("Name: %s\n",array[i]); }
06:17:25 <GreaseMonkey> trust me, i use that all the time
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:19:51 <RodgerTheGreat> I think reducing operator ambiguity is important
06:20:04 <GreaseMonkey> e.g. MOV [0x456789],eax | MOV ecx,[0x456789]
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:20:56 <RodgerTheGreat> I always code like that
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:23:25 <RodgerTheGreat> interesting
06:23:37 <GreaseMonkey> i think it's the same with plof
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:13 <GreaseMonkey> i think XORing should be
06:24:15 <RodgerTheGreat> Java abstracts it, and I think C does as well
06:24:28 <RodgerTheGreat> hm
06:24:28 <GreaseMonkey> in C, the ^ operator is XOR
06:24:34 <RodgerTheGreat> I know that
06:24:39 <Pikhq> And you'd be right. . .
06:24:45 <GreaseMonkey> depends on what the lang is for
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:30 <GreaseMonkey> would it handle x^0.5 ?
06:25:37 <RodgerTheGreat> dunno
06:25:39 <GreaseMonkey> cos that's sqrt
06:25:51 <GreaseMonkey> meh, leave it in for now
06:25:57 <RodgerTheGreat> there are a lot of floating point things about that op that could get complex
06:26:02 <GreaseMonkey> saves having to go (x+y)*(x+y)
06:26:12 <GreaseMonkey> just do it as a loop multiplier
06:26:37 <RodgerTheGreat> so, a bitwise XOR should be added for sure, and we'll see about powering
06:27:37 <GreaseMonkey> i think XOR should be ~
06:27:43 <bsmntbombdood> GreaseMonkey: no that's not
06:27:46 <bsmntbombdood> NOT
06:27:51 <GreaseMonkey> and logical XOR should be ~~ for consistency
06:27:51 <bsmntbombdood> bitwise NOT
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:42 <bsmntbombdood> I don't know what you guys are talking about
06:28:48 <GreaseMonkey> but "INC eax" is faster and smaller than "ADD eax,0x00000001"
06:28:56 <RodgerTheGreat> yeah
06:28:58 <RodgerTheGreat> I know
06:29:02 <RodgerTheGreat> that was my point
06:29:07 <GreaseMonkey> LUA uses "~" as its not. but this ain't LUA.
06:30:43 <RodgerTheGreat> should bitwise shift right and left take parameters?
06:31:20 <GreaseMonkey> seeing as there's SHL eax,(param) , and it shouldn't be too hard, yes
06:31:29 <RodgerTheGreat> ok
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:34:44 <GreaseMonkey> ok
06:34:52 <GreaseMonkey> yeah, go with that
06:35:04 <RodgerTheGreat> which is consistent with function call syntax of "do [parameters] to [parameters]"
06:35:16 <GreaseMonkey> hmm, i should make an algebraic calculator
06:35:28 <RodgerTheGreat> I did one of those a while back- it's pretty fun
06:35:45 <GreaseMonkey> C is based on BASIC, right?
06:36:01 <RodgerTheGreat> in a way, yeah, but not very strongly
06:36:09 <RodgerTheGreat> BASIC was around earlier
06:36:19 <RodgerTheGreat> and BASIC influenced some basic syntax ideas
06:36:31 <RodgerTheGreat> C also took a lot from FORTRAN, if I recall
06:36:37 <GreaseMonkey> i just love how i can just punch in a math function into C and BASIC
06:36:55 <GreaseMonkey> i think you can do the same in Pascal
06:36:56 <RodgerTheGreat> yeah, their expressions are pretty similar
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:16 <RodgerTheGreat> BASIC has functions
06:38:17 <GreaseMonkey> depends on the BASIC dialect though
06:38:33 <GreaseMonkey> QBASIC has functions but no eval()
06:38:35 <RodgerTheGreat> function name(params) return
06:38:39 <Pikhq> I assume, of course, traditional "burnt into microcomputer's ROM" BASIC. ;)
06:38:43 <RodgerTheGreat> with a code block before the return
06:39:11 <GreaseMonkey> BBC BASIC had functions ("procedures")
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:39:50 <RodgerTheGreat> Dartmouth BASIC owned
06:40:04 <RodgerTheGreat> as do a number of modern BASICs
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:16 <Sukoshi> Any EE students here?
06:45:21 <GreaseMonkey> afk
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:10 <Pikhq> :-O
06:47:15 <RodgerTheGreat> <: O
06:47:27 <RodgerTheGreat> what the christ?
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:48:17 <RodgerTheGreat> Sukoshi: do not feel shunned
06:48:22 <RodgerTheGreat> I am simply puzzled
06:48:39 <Sukoshi> Because it is.
06:49:17 <Pikhq> How can nondeterminism be more fascinating to a Vulcan mindset than determinism?
06:49:20 <Pikhq> :p
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:28 <Sukoshi> That's why :P
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:52:41 <Sukoshi> Not mine.
06:52:55 <GreaseMonkey> back
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:06 <Sukoshi> He hooked me.
06:56:26 <RodgerTheGreat> heheh
06:56:42 <Pikhq> I might want to wonder WTF I'm thinking.
06:56:55 <RodgerTheGreat> I like making robotic insects out of busted toys.
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.
06:58:50 <RodgerTheGreat> It sucks breaking those things.
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:04 <GreaseMonkey> i might build a simulator
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:11:39 <RodgerTheGreat> good night everyone- I'm gonna turn in
07:11:54 <GreaseMonkey> afk food
07:18:16 -!- Arrogant has quit ("Leaving").
07:33:24 <GreaseMonkey> back anyways
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.
08:46:09 <Sukoshi> What's BEAMBotics?
08:46:16 <Sukoshi> Ah.
09:09:36 -!- sebbu has joined.
11:08:39 <GreaseMonkey> gonna go to sleep, oyasumi nasai
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:27:06 <SimonRC> bah
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:35:01 <SimonRC> hi
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:05:49 <bsmntbombdood> oh
15:06:37 <bsmntbombdood> do you mean the wire tightens onto the doorknob?
15:07:36 <oklopol> might be easier to just use a lock
15:07:49 <oklopol> unless i somehow misunderstood the point :)
15:08:59 <bsmntbombdood> oklopol: welcome to #esoteric
15:10:52 <bsmntbombdood> we can't "just use a lock"
15:14:15 <nooga> yuu
15:43:52 <RodgerTheGreat> 'morning, folks
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.
15:51:42 <nooga> yuyu
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:28 <RodgerTheGreat> bbl
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:05 <kbrooks> What is this?
23:08:20 <oerjan> it's about weird programming languages
23:08:23 <kbrooks> Please leave this channel, and rejoin.
23:08:29 <oerjan> nope
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:09:27 <bsmntbombdood> Segmentation fault (core dumped)
23:09:38 <kbrooks> heh bsmntbombdood
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:10:46 <kbrooks> Say hi.
23:10:58 <bsmntbombdood> /topic
23:11:06 <bsmntbombdood> oops
23:11:44 <oerjan> ho
23:11:58 <kbrooks> Hmm.
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:55 <bsmntbombdood> int main(){return *(int*)0;}
23:12:55 <oerjan> #include <stdio.h>
23:12:57 <kbrooks> -> int main() { printf("Hello World\n"); return 0; }
23:12:59 <bsmntbombdood> ^^ there it is
23:13:37 <oerjan> wow, parallel processing
23:13:55 <oerjan> just slightly buggy
23:15:14 <bsmntbombdood> hahahaa http://texas.clubsi.com/Aaron/ClubSi/CB.JPG
23:15:29 <kbrooks> oerjan, meh
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:17 <bsmntbombdood> lament: I know more than you
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:20:44 <bsmntbombdood> 51 decimal places
23:21:03 <bsmntbombdood> I don't have pi memorized to 51 decimal places, I just calculated it on the fly
23:21:13 <oerjan> oh, all right then.
23:21:26 <bsmntbombdood> :P
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:25:49 <oerjan> is that a fact? :)
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.
2007-04-06
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:05 <GreaseMonkey> bsmnt, what's with your bot?
05:02:13 <bsmntbombdood> ?
05:02:22 <GreaseMonkey> why isn't it on?
05:02:25 <bsmntbombdood> hmm
05:02:31 <bsmntbombdood> that's odd
05:02:44 -!- ShadowHntr has joined.
05:03:03 -!- bsmnt_bot has joined.
05:03:16 <GreaseMonkey> CONRADULATIONS!!!1
05:11:37 <GreaseMonkey> i'm working on an operbot right now
05:11:53 <GreaseMonkey> having two bots on at once is a bit overkill
05:13:57 <GregorR> If you brought your bot in, that'd be three ...
05:14:02 <GregorR> EgoBot: Hello my friend.
05:14:09 <GreaseMonkey> two bots on the same pc, that is
05:14:21 <GreaseMonkey> two in a chan is fine
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:23 <lament> 'operbot'?
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:13:26 <GregorR> So, it's ChanServ?
06:13:35 <GreaseMonkey> not really
06:13:52 <GreaseMonkey> stuff like `kick agentorange
06:14:00 <GreaseMonkey> and `topic Very cool channel
06:14:08 <GreaseMonkey> but you don't even need to be an op
06:14:08 <bsmntbombdood> you mean like chanserv
06:14:13 <lament> so yeah, like chanserv
06:14:28 <GregorR> ^^
06:15:19 <GreaseMonkey> but you can kick people without the +o
06:15:27 <GreaseMonkey> and stuff like that
06:18:29 <lament> chanserv can op people
06:18:36 <lament> as well as set channel modes and stuff
06:18:52 <bsmntbombdood> GreaseMonkey: so can chanserv
06:19:09 <GreaseMonkey> i thought it couldn't kick ppls
06:19:20 <lament> i don't think it can
06:19:28 <lament> so?
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:19:50 <lament> so what's the point?
06:20:08 <Figs> O_o
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:27 <Figs> `kb foo
06:20:28 * bsmntbombdood sharpens his finger then pokes lament
06:20:35 <Figs> `kb foo barmsg
06:21:03 <Figs> `silence foo
06:21:05 <Figs> ;)
06:21:23 <Figs> (+v all good citizens, +m channel)
06:21:35 <bsmntbombdood> or -q
06:21:40 <Figs> -q?
06:21:59 <bsmntbombdood> silence
06:22:01 <lament> i still fail to see how is this useful
06:22:12 * bsmntbombdood pokes lament again
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:26 <lament> just get ops
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:47 <Figs> on windows.
06:22:49 <GregorR> lament: I WANNA KICK PEOPLE! Can I have ops ZOMG 8-D
06:23:07 <Figs> hehe pm kick
06:23:08 -!- ChanServ has set channel mode: +o GregorR.
06:23:15 <GregorR> YAYS!
06:23:17 <bsmntbombdood> lol
06:23:25 <GregorR> 8-D
06:23:30 <bsmntbombdood> omg
06:23:32 <lament> the reign of terror!!!
06:23:39 <GregorR> Muahahaahahahha
06:23:47 -!- bsmnt_bot has joined.
06:23:52 <Figs> O.o
06:23:55 <lament> kick evasion!!!
06:23:58 <bsmnt_bot> I HATE YOU!!!!!!!!!
06:24:24 -!- GregorR has set channel mode: +b %bsmnt_bot!*@*.
06:24:26 <lament> `kick bsmnt_bot
06:24:34 <Figs> O_o
06:24:39 <GregorR> Talk to me, bsmnt_bot 8-D
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:49 <GregorR> OK, that was fun.
06:24:52 -!- GregorR has set channel mode: -o GregorR.
06:25:12 <lament> oh woww
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:25:57 <bsmntbombdood> who are they?
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:26:28 <Figs> to the log!
06:28:23 <Figs> wot!
06:28:27 <Figs> I have to log in? :(
06:28:51 <Figs> and no bmn access!
06:28:53 <Figs> boo.
06:36:50 <Sukoshi> I propose a non-esoteric project.
06:36:58 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
06:37:00 * Sukoshi waits for the gasps.
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:46 <Figs> ah...
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:44 <Figs> :P
06:38:54 <Figs> yeah, yeah, yeah... :P
06:38:59 <Sukoshi> No. I said no esoteric languages :P
06:39:04 <Figs> rofl
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:00 <Figs> SWIG?
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:40 <bsmntbombdood> Sukoshi: I want to do something in objc
06:40:51 <Figs> FFI?
06:40:52 <Sukoshi> bsmntbombdood: ObjC hmmm?
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:34 <Sukoshi> Ah, I see.
06:41:41 <Sukoshi> So it's the only thing your head has enough room left for :P
06:41:54 <bsmntbombdood> I can't stand C++
06:42:01 <Figs> are you kidding?
06:42:04 <Figs> C++ is HUGE
06:42:08 <bsmntbombdood> C++ is terrible
06:42:18 <Figs> heh
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:02 <Figs> heh
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:45:58 <Figs> oooh
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:48:47 <Figs> Foxit Reader?
06:49:12 <Sukoshi> But it's not open!
06:49:59 <Sukoshi> Plus it has Advanced Add-Ons you can pay for.
06:50:00 <Sukoshi> Guh.
06:50:07 <Sukoshi> Just guh.
06:50:41 <Figs> :P
06:50:45 <Figs> it bothers me too a bit
06:51:03 <Figs> hehehe
06:51:19 <Figs> you should program your pdf viewer in brainfuck :)
06:51:23 <Sukoshi> So, any takers for the project?
06:51:38 <Figs> o.o
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:52:25 <Figs> rofl
06:53:07 <Sukoshi> C++ probably has Your Mom also.
06:53:10 <Sukoshi> The point? :P
06:53:42 <Figs> .
06:53:47 <GreaseMonkey> C++ has rapists
06:53:49 <Figs> ^^^ -- there's the point!
06:53:51 <Sukoshi> No. That's a period/full-stop.
06:53:58 <Figs> :P
06:54:06 <Figs> I can call it a 'point' if I really want to ... :)
06:54:11 <Figs> O_o
06:54:12 <Sukoshi> A point has an infinitely small thickness, remember?
06:54:16 <Figs> OMGROFL
06:54:24 <Figs> "This project currently has no issues."
06:54:36 <Sukoshi> Errr?
06:54:45 <Figs> .... yeah
06:54:53 <Sukoshi> *Cough*
06:54:58 <bsmntbombdood> Sukoshi: shouldn't be hard to make it cross platform
06:56:09 -!- Sgeo has quit ("Ex-Chat").
06:56:29 <bsmntbombdood> and i hate xpdf's interface
06:56:29 <Sukoshi> I know.
06:56:36 <Sukoshi> I don't mind it.
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:16 <Sukoshi> Alright-o.
06:57:38 <GregorR> My head is hairy.
06:57:43 <Sukoshi> What about Java, bsmntbombdood? :P
06:57:53 <Figs> GregorR: I'd hope so... otherwise you'd be bald.
06:57:54 <bsmntbombdood> nooo!!
06:58:04 <Sukoshi> It's not that bad, if you code correctly.
06:58:10 <GregorR> Yes. It is.
06:58:14 <GregorR> It is that bad.
06:58:15 <Sukoshi> No. It's not.
06:58:17 <Figs> Sukoshi: That's what they say about C++ :)
06:58:19 <Sukoshi> It is not that bad.
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:49 <Figs> yeah
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:58:54 <GregorR> Figs: ......... no.
06:58:59 <bsmntbombdood> Figs: um, noo
06:59:05 <Sukoshi> It's quite different :P
06:59:10 <Figs> Not really.
06:59:16 <bsmntbombdood> very much different
06:59:20 <Figs> How so?
06:59:30 <Sukoshi> Garbage collection. Exceptions.
06:59:36 <Figs> C++ has those
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.
06:59:49 <Sukoshi> God help us all.
07:00:15 <Figs> there are a couple ways of doing GC either directly in C++ or on top of it
07:00:21 <Figs> so yeah
07:00:23 <Figs> it's there
07:00:28 <Sukoshi> There are ways of doing GC in C too.
07:00:31 <Sukoshi> ;D
07:00:43 <Figs> although it isn't built in, but neither is std::vector
07:00:46 <bsmntbombdood> java is better than c++
07:00:51 <Sukoshi> Yeah.
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:01 <Figs> aww
07:02:10 <Figs> :'(
07:02:15 <Sukoshi> Java, OCaML, ObjC and why.
07:02:15 <bsmntbombdood> Sukoshi: java is too slow
07:02:22 <Figs> I agree.
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:44 <bsmntbombdood> in java, no
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:28 <Sukoshi> Meh.
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:06:56 <Figs> o.O
07:07:05 * Figs has no god.
07:07:25 <GregorR> Figs: Then my god does have a bigger penis than your god. Therefore I win all arguments.
07:07:29 * GregorR takes a bow.
07:07:49 <Figs> I don't have a god, therefore the argument is 'N/A' :P
07:07:57 <bsmntbombdood> Figs: no
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:21 <bsmntbombdood> a penis is bigger than no penis
07:08:31 <Figs> is it really?
07:08:56 <Figs> that's like saying an apple is bigger than the number zero.
07:09:05 <bsmntbombdood> no it's not
07:09:18 <Figs> it is. It's an illogical comparison ;)
07:09:36 <Figs> anyway
07:09:39 <Figs> who cares? :P
07:09:47 <Figs> it's silly.
07:12:21 <bsmntbombdood> Vacuous truth
07:13:41 <bsmntbombdood> F = Figs's god's penis
07:13:44 <bsmntbombdood> G = GregorR's
07:13:51 <GregorR> lol
07:13:59 <GregorR> I declare this conversation over.
07:14:35 <bsmntbombdood> fine
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:14:57 <GregorR> )
07:15:13 <bsmntbombdood> \forall x \in F.\forall y \in G. y > x
07:15:16 <bsmntbombdood> TRUTH
07:15:38 <Figs> but F is the null pointer!
07:15:41 <Figs> :P
07:15:45 <bsmntbombdood> even if F is the empty set
07:15:57 <Figs> how can
07:16:00 <Figs> forall x in F
07:16:02 <Figs> work
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:17:39 <bsmntbombdood> it's vacuously true
07:19:50 <Figs> Vacuous: noun. (1) Emptied of or lacking content. (2) marked by lack of ideas or intelligence: stupid, inane.
07:19:53 <Figs> *adjective
07:20:29 <bsmntbombdood> cf wikipedia
07:20:45 <bsmntbombdood> JFGI
07:21:33 <Figs> John found good igloos?
07:21:42 <bsmntbombdood> just fucking google it
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:15 <GregorR> To Plof!
07:23:30 <Figs> Plof?
07:23:35 <GregorR> http://www.codu.org/plof/
07:23:37 <Figs> put lead on food?
07:24:02 <Figs> ahh
07:24:05 <Figs> rofl
07:24:14 <Figs> I saw function <linebreak>thick
07:24:17 <Figs> and I read "fuck"
07:24:18 <Figs> and I
07:24:21 <Figs> thought...
07:24:24 <GregorR> >_>
07:24:27 <Figs> "Fuck is a keyword???"
07:24:34 <Figs> ooh.
07:24:36 <Figs> :P
07:24:38 <GregorR> var you = Figs; fuck you;
07:24:39 <bsmntbombdood> Painful Licking Of the French
07:24:49 <Figs> eww
07:24:52 <GregorR> :-P
07:24:52 <Figs> PLOFF!
07:25:13 <Figs> pitiful licking of french fries!
07:25:46 <bsmntbombdood> what is the ~= operator in D?
07:25:51 -!- ShadowHntr has quit ("End of line.").
07:26:03 <GregorR> bsmntbombdood: ~ is concatenation. ~= is to ~ as += is to +
07:26:10 <bsmntbombdood> oh
07:27:26 <bsmntbombdood> should the function in foreach be given the current element?
07:27:41 <bsmntbombdood> instead of a "ref"?
07:28:02 <bsmntbombdood> std.plof
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:28:48 <bsmntbombdood> oh i didn't see the comments
07:28:56 <bsmntbombdood> reading code in browser == bad
07:28:59 <GregorR> Heh
07:30:51 <bsmntbombdood> ok bedtime
07:31:03 <GreaseMonkey> gnight
07:31:17 <Figs> `night bsmntbombdood
07:33:38 -!- nazgjunk has joined.
07:33:48 <bsmntbombdood> bah
07:34:01 <bsmntbombdood> i have to get up in 5:30 hours
07:34:39 <Figs> :\
07:34:46 <bsmntbombdood> :(
07:34:58 <Figs> that sucks.
07:35:02 <Figs> go get some zzz.
07:35:10 <GregorR> SLEEP IS FOR THE WEAK
07:35:41 * nazgjunk tickles the zzz-machine
07:36:38 <Figs> ZZZ!!!! <BANG>
07:36:55 <Figs> *the ZZZ-machine has explosmed.*
07:39:40 <lament> o_O
07:40:31 <GreaseMonkey> afk food
07:59:11 -!- nazgjunk has quit ("Bi-la Kaifa").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:24 <GreaseMonkey> back
08:01:47 <Figs> wb
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:33:53 <Sukoshi> Who is ``you'' ?
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:38:44 <Figs> :(
09:39:08 <lament> so clockwise?
09:41:30 <Figs> ...yeah.
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.
09:45:03 <Sukoshi> Overgregarious
09:45:08 <Sukoshi> Look that one up.
09:46:57 <Figs> pshhh
10:05:08 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
10:33:30 <GreaseMonkey> gonna get off, gnight
10:34:34 <Figs> ditto
10:34:36 <Figs> cya
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.
11:36:17 <nooga> i like it
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:47:04 <atrapado> no
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:16:41 <lament> ihope: yes, there is
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:30 <lament> well
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:26:23 <lament> ihope: it's related
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:23 <Sukoshi> Ah-hah.
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:47:38 <ihope> That.
22:49:02 <bsmntbombdood> ObjC, because it's fast and looks interesting
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.
22:52:53 <oerjan> *an
23:00:43 <Sukoshi> No-one's lobbying languages.
23:00:45 <Sukoshi> Why?
23:01:12 <Sukoshi> Pshhh. Y'all'r boring.
23:02:48 <ihope> Let's write a programming language that has a market economy instead of a command economy.
23:03:29 * bsmntbombdood did
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:05:53 <Sukoshi> Maybe.
23:06:53 <ihope> Maybe...
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:17:45 <Sukoshi> Oh.
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:25:00 <CakeProphet> ...behold - a very convuluted cat program
23:25:26 <CakeProphet> http://deadbeefbabe.org/paste/4267
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:03 <ihope> :-P
23:27:35 <ihope> Or is that not only copy-input-to-output but a concatenator?
23:27:37 <oerjan> main = interact id
23:27:58 <CakeProphet> while True: print raw_input()
23:28:17 <ihope> oerjan: that too, yes.
23:28:30 <ihope> :-)
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:35:47 <bsmntbombdood> cat takes files from its argv
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:40:45 <oerjan> eh wait
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:50:05 <oerjan> yep
23:59:24 <oerjan> main = flip mapM_ [putStr, print] $ flip ($) "main = flip mapM_ [putStr, print] $ flip ($) "
2007-04-07
00:01:33 <ihope> Oh dear.
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:13:19 <bsmntbombdood> s='s=%r;print s%%s';print s%s
00:14:14 * oerjan points out this is _not_ a _shortest_ quine contest. We did that last time.
00:51:08 <Sukoshi> So. Language lobbying.
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:31 <Pikhq> ,[.,]
00:58:37 <ihope> No input allowed.
00:58:44 <oerjan> and the program must halt.
00:58:45 <Pikhq> I know; j/k.
00:58:51 <ihope> Ooh, here's a better one: +++[....-]
00:59:22 <Pikhq> +[[.+]+]
00:59:37 <ihope> !
00:59:40 <EgoBot> Huh?
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:22 <Pikhq> Yes, it'd work.
01:01:26 <ihope> >:-|
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:04 <Pikhq> ihope: Sure is.
01:05:14 <Pikhq> +[......-]
01:05:28 <oerjan> huh?
01:05:32 <Pikhq> . . . Never mind.
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:06:56 <Pikhq> +[.......]
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:07:54 <Pikhq> Ah.
01:08:03 <Pikhq> In that case. . .
01:08:34 <Pikhq> ihope: I can only find alternate ways of expressing an equivalent program in 10 chars. . .
01:08:52 <ihope> ++++[...-] (12)
01:08:57 <Pikhq> Exactly.
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:05 <Pikhq> Yeah.
01:10:26 <ihope> Should be impossible to do better than 9 in nine characters, then: +++[...-] (9)
01:10:40 <Pikhq> Right.
01:10:48 <ihope> Alternatively, ......... (9)
01:11:27 <ihope> How about we try eleven characters, then? To start off: ++++[....-] (16)
01:12:02 <Pikhq> Max.
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:36 <oerjan> (x/2)^2 < ((x-5)/3)^3
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:28:06 <ihope> ((x-8)/3)^3...
01:29:24 <ihope> According to mbot, the switchover ideally happens at about 20.961944507581496 characters.
01:29:36 <oerjan> mbot?
01:29:43 <ihope> Yes, mbot.
01:31:20 <bsmntbombdood> -[.-]
01:31:26 <bsmntbombdood> (for wrapping)
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:31:48 <bsmntbombdood> -[>-[.-]<-]
01:32:08 <bsmntbombdood> -[>-[>-[.-]<-]<-]
01:32:27 <ihope> bsmntbombdood: now do one that uses cells that can hold any integer!
01:32:53 <bsmntbombdood> what is the result of decrementing 0?
01:34:04 <ihope> bsmntbombdood: -1 is an integer.
01:35:48 <bsmntbombdood> oh
01:35:59 <bsmntbombdood> Actually, should the alphabet length be 2?
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:02 <bsmntbombdood> idunno
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:39:54 <bsmntbombdood> ihope: what do you mean?
01:46:25 <ihope> bsmntbombdood: BF is imperative, so you can have an output command.
01:46:38 <bsmntbombdood> ...
01:46:50 <ihope> You can add one to a Turing machine too, but it doesn't look quite as nice.
01:47:38 <bsmntbombdood> what about max shifts?
01:48:08 <ihope> You can also do that.
01:48:25 <bsmntbombdood> I know you can
01:50:24 <bsmntbombdood> ++[>++[>-<-]<-]
01:50:28 <bsmntbombdood> lame
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:52:46 <bsmntbombdood> doesn't halt?
01:53:02 <ihope> Surely it halts.
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:54:47 <ihope> Hmm.
01:55:09 <ihope> Oops.
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:54:55 <bsmntbombdood> emacs
02:55:03 <CakeProphet> ...through the whole directory.
02:55:14 <CakeProphet> and subdirectories.
02:55:23 <bsmntbombdood> bash script
02:55:35 <CakeProphet> .......what command?
02:55:51 <bsmntbombdood> any scriptable editor
02:56:01 <CakeProphet> SPECIFIC ANSWER PLZ
02:56:14 <oerjan> does each stuff span more than one line?
02:56:20 <Pikhq> Find + sed.
02:56:30 <CakeProphet> nope.
02:57:32 <bsmntbombdood> bash: Find: command not found
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:58:54 <CakeProphet> -gasp-
02:59:49 <Pikhq> bsmntbombdood: Lowercase find.
03:00:00 <bsmntbombdood> Pikhq: english fails
03:01:25 <Pikhq> "find" !"Find"
03:02:06 <bsmntbombdood> se
03:02:11 <oerjan> perl -i -e 's/from/to/' `grep -l -r from .`
03:02:18 <oerjan> something _like_ that
03:02:23 <oerjan> hm...
03:02:38 <oerjan> add -p to the perl
03:04:17 <oerjan> and test carefully first.
03:04:35 <bsmntbombdood> recursive find + sed
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:05:46 <bsmntbombdood> pipe it through xargs
03:06:13 <CakeProphet> eh... I'll just use Python. :)
03:07:53 <oerjan> chicken :)
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:14:36 <CakeProphet> OH WAIT
03:14:38 <CakeProphet> I SEE
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:12 <CakeProphet> yeah
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:25 <CakeProphet> eh... whatever... I'm feeling lucky.
03:20:33 <oerjan> you could split it into two subroutines, one to iterate and one to change a file
03:21:26 * CakeProphet checks to see if anything exploded.
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:20 <CakeProphet> AND
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:23:40 <CakeProphet> WHILE SOPHIAMU APPEARS TO OCCUR 26 TIMES.
03:24:00 <CakeProphet> ah... computer programming... making life easier for us all.
03:25:18 <oerjan> YOU STEENKING LIAR!
03:25:43 <CakeProphet> ...now I shall perform more sweeping changes to my MUD.
03:25:48 <CakeProphet> I've renamed everything way too much
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:32:11 <CakeProphet> oh! I know why.
03:32:22 <CakeProphet> ....I put the mode in r
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...
03:35:58 <oerjan> oh
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:24:29 <bsmntbombdood> ?
07:25:49 <CakeProphet> ...it's my incomplete MUD...
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.
09:26:24 <Sukoshi> Wanna help?
10:07:36 <nooga> what?
10:07:39 <nooga> 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:29:21 <Sukoshi> nooga: Objective C.
17:34:18 <ihope> You know, an esolang based on fluid dynamics would be pretty cool.
17:34:24 <Sukoshi> No it wouldn't ;-;
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:39 <Sukoshi> Hmmm... alright.
17:35:44 <ihope> You know. All of macrophysics.
17:35:48 <Sukoshi> Yeah.
17:35:54 <Sukoshi> Pretty easy to implement.
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:36:25 <Sukoshi> (Life.)
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:45:05 <Sukoshi> Very.
17:47:02 <nooga> a u
17:48:07 * nooga is learning python
17:48:34 * nooga is a rubyist
17:48:50 <Sukoshi> Yer boring.
17:50:03 <nooga> Yer pickle.
17:52:54 <Pikhq> ihope: The chemical reactions are microphysics. ;)
17:53:10 <ihope> Pff.
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:41 <Sukoshi> That's easy.
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:29 <Pikhq> Oh, right.
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:55:45 <ihope> Plastic limit?
17:55:47 <nooga> kill
17:55:56 * ihope kills nooga
17:55:57 <ihope> Wait, what?
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:12 <Sukoshi> Pikhq: Only in *nix
17:57:17 <Sukoshi> And they're all based on the same library.
17:57:22 <Pikhq> Port it.
17:57:31 <Sukoshi> No. That's annoying.
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:16 <Sukoshi> Plus it's C++.
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:29 <Sukoshi> It is.
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:06:46 <Sukoshi> Alright.
18:06:49 <Sukoshi> Wanna join aboard?
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:15:56 <Pikhq> Junior.
18:16:05 <Pikhq> Who's already got a date to the prom. . .
18:17:51 <Sukoshi> Fool.
18:18:34 <Sukoshi> PPDF weeps.
18:18:41 <Pikhq> Let it weep.
18:19:03 <Pikhq> I could probably create a PS parser in the next 5 minutes. . .
18:19:06 <Pikhq> Yay, RPN! :p
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:20 <Sukoshi> *independent
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:21:14 <bsmntbombdood> Sukoshi: cool
20:22:19 <Sukoshi> bsmntbombdood: You're early.
20:22:35 <bsmntbombdood> Early for what?
20:24:25 <Sukoshi> Nevermind.
20:24:57 <bsmntbombdood> I know nothing about gui programming
20:25:18 <Sukoshi> Neither do I.
20:25:20 <Sukoshi> Welcome aboard :)
20:25:41 <bsmntbombdood> Much less cross platform gui programming
20:25:52 <Sukoshi> GTK.
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:26:50 <bsmntbombdood> GTK looks out of place on windows I think
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:22 <bsmntbombdood> I don't know what SDL is
20:28:31 <Sukoshi> OpenGL/GLUT?
20:28:35 <Sukoshi> ....
20:28:51 <Sukoshi> Go and google SDL. It's a cross-platform graphics engine.
20:29:21 <bsmntbombdood> Simple Directmedia Layer?
20:29:52 <Sukoshi> Yep.
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:35:49 <Sukoshi> SDL then?
20:36:34 <bsmntbombdood> I think figure out the design first, then pick whatever fits best
20:36:51 <Sukoshi> Alright.
20:36:59 <Sukoshi> One final tally: ObjC then?
20:37:10 <Sukoshi> We might use D actually. I dunno.
20:37:15 <Sukoshi> Choose.
20:37:16 <bsmntbombdood> noo!
20:37:33 <Sukoshi> ObjC it is?
20:37:57 <bsmntbombdood> That's what I would prefer
20:39:11 <Sukoshi> http://libfoundation.opendarwin.org/ <-- We'll be using this.
20:42:26 <bsmntbombdood> weird license
20:43:30 <Sukoshi> There's little alternative, or else we'll have to code the base Object class ourselves.
20:45:41 <bsmntbombdood> probably not a good idea if we don't know objc
20:46:39 <Sukoshi> Exactly, heh.
20:49:53 -!- atrapado has joined.
20:50:19 <calamari> what are you guys working on?
20:51:19 <ShadowHntr> how about Cairo?
20:51:42 <Sukoshi> I was contemplating. How is it?
20:51:45 <Sukoshi> calamari: PDF Viewer?
20:51:49 <ShadowHntr> haven't worked in it
20:51:53 <ShadowHntr> but that may do the job.
20:51:59 <calamari> in an esolang?
20:52:33 <calamari> otherwise.. why? there are already so many hehe
20:53:14 <ShadowHntr> http://en.wikipedia.org/wiki/Cairo_(graphics)
20:54:01 <bsmntbombdood> cairo doesn't have objc bindings
20:54:34 <ShadowHntr> *shrug*
20:55:23 <calamari> bbl
20:55:28 -!- calamari has quit ("Leaving").
20:59:34 <Sukoshi> But it's C, no?
21:01:35 <bsmntbombdood> cairo is, yes
21:03:33 <Sukoshi> So we can wrap it ourselves.
21:05:18 -!- sebbu2 has joined.
21:06:20 <bsmntbombdood> All the SDL tutorials I can find are shit
21:24:42 -!- sebbu has quit (Success).
21:34:23 -!- atrapado has quit ("allserv quit").
21:37:52 <Sukoshi> Don't use the tutorials.
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:15:22 <Sukoshi> What's a busy beaver?
22:16:39 <bsmntbombdood> program to generate the most ones on the tape
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:21:42 <Sukoshi> OCaML owns your sleep.
22:21:52 <bsmntbombdood> What makes it pure functional?
22:22:02 <oerjan> http://lambda-the-ultimate.org/node/2176
22:56:16 * Pikhq returns. . .
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:39:56 <bsmntbombdood> my scheme quine
23:44:08 <Pikhq> My quine:
23:44:30 <Pikhq> Brilliant, no?
23:44:34 <bsmntbombdood> no
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:49:57 <bsmntbombdood> s/early days/early days of logging/
23:50:20 <oerjan> shorter: ((lambda (x) (display (list x (list (quote quote) x)))) (quote (lambda (x) (display (list x (list (quote quote) x))))))
2007-04-08
00:10:12 <Pikhq> Someone care to link to the logs?
00:10:23 <Pikhq> Ah. In topic.
00:38:23 -!- jix__ has changed nick to jix.
00:48:40 <bsmntbombdood> yes!
00:48:46 <oerjan> maybe.
00:48:48 <bsmntbombdood> my FOOS interpreter works
00:52:15 <bsmntbombdood> http://bsmntbombdood.mooo.com/FOOS.tgz
00:52:19 <bsmntbombdood> run main.py for a repl
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:02:58 <bsmntbombdood> "Hello, world" print
01:03:05 <bsmntbombdood> the hello world
01:06:48 <bsmntbombdood> or
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:13:55 <Pikhq> Linux
01:13:57 <Pikhq> Busybox
01:14:04 <Pikhq> Package manager (in .sh)
01:14:09 <Pikhq> Nothing else.
01:15:24 <ihope> What's Busybox?
01:15:38 <bsmntbombdood> everything in /bin, in one executable
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:39 <ihope> Interesting.
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:38 <GregorR> ihope: Yes.
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:18 <Pikhq> ihope: Recompile.
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:46 <Sukoshi> What's it written in?
01:20:55 <Pikhq> C
01:20:56 <Sukoshi> It sounds a *lot* like Klik.
01:20:59 <Pikhq> Err.
01:21:01 <GregorR> Unfortunately, I wrote it in perl >_> ... I was unenlightened at the time <_<
01:21:03 <Pikhq> Busybox, that is.
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:09 <Sukoshi> GregorR knows Perl? Ewww.
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:38 <Sukoshi> We can rewrite it.
01:22:41 <GregorR> I don't know why I wrote it in Perl :P
01:22:43 <Pikhq> busybox
01:22:47 <GregorR> It was a bad, bad choice ^^
01:22:48 <Pikhq> linux-core
01:22:54 <Pikhq> perl-core
01:22:55 <Sukoshi> Is there any dependancy tracking?
01:22:57 <Pikhq> Err. 4.
01:23:03 <Pikhq> sps
01:23:14 <GregorR> Sukoshi: SPS isn't that part of the packaging system.
01:23:21 <GregorR> Sukoshi: OH! (rewind)
01:23:22 <GregorR> Sukoshi: Yes.
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:25 <GregorR> *different
01:24:37 <GregorR> A tool I never wrote ;)
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:24:56 <GregorR> Sukoshi: Oh?
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:20 <Sukoshi> Sounds ideal.
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:45 <GregorR> Pikhq: Egg-zactly.
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:17 <Sukoshi> GregorR: Nifty.
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:20 <bsmntbombdood> just like every other package manager...
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:39 <GregorR> Heh
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:16 * GregorR leaves to do homezvork.
01:31:21 <GregorR> *fwoom*
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:21 <Sukoshi> Errr.
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:33:45 <Pikhq> Um. . .
01:33:47 <Pikhq> Actually, yeah.
01:33:54 <Sukoshi> Yeah....
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:38:46 <Sukoshi> UnionFS?
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:15 <bsmntbombdood> it's just headers
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:40:40 <bsmntbombdood> sure
01:41:03 <bsmntbombdood> I couldn't get gnustep figured out though
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:43:04 <Pikhq> Hmm. . .
01:43:25 <bsmntbombdood> that would be cool
01:44:35 <bsmntbombdood> I've got gnu step, but I can't find the right headers
01:45:59 <Sukoshi> I'm about to SVN it now.
01:47:48 <bsmntbombdood> oh darn, i'm almost out of disk space
01:48:29 <Sukoshi> I was tempted to make a bad your-mom joke.
01:48:35 <Sukoshi> But I didn't :P
01:49:47 <Pikhq> Your MOM didn't!
01:50:46 <Sukoshi> I just lost in corniness :D
01:50:55 <Sukoshi> Wow. GNUStep is huge.
01:51:05 <Sukoshi> Anyways, bsmntbombdood.
01:51:18 <Sukoshi> We're not implementing PS unless you can give me a good argument to.
01:51:19 <bsmntbombdood> turns out I had the wrong gnustep package
01:51:24 <Sukoshi> Do you want to know why?
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:51:57 <Sukoshi> :)
01:51:58 <bsmntbombdood> heh
01:52:25 <Sukoshi> Have you looked over the PDF Reference?
01:52:37 <bsmntbombdood> No
01:52:40 <bsmntbombdood> link?
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:37 <Sukoshi> 1.6 Reference is 8 MB.
01:53:47 <Sukoshi> 1.7 Reference is 31 MB.
01:53:53 <Sukoshi> Choose wisely, my friend :)
01:54:26 <bsmntbombdood> O.o
01:54:52 <Sukoshi> 1.7 == 6th ed., 1.6 == 5th ed. Don't ask me why.
01:54:53 <bsmntbombdood> only 1236 pages...
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:55:52 <Sukoshi> Oh. Just finished.
01:56:12 <bsmntbombdood> Do you know any objc?
01:56:32 <Sukoshi> I've been spending the morning reading Apple's introduction to Object Oriented Programming.
01:56:46 * bsmntbombdood knows nothing
01:56:51 <Sukoshi> I have to say, it addresses one of my biggest problems with OOP.
01:57:01 <bsmntbombdood> which is?
01:57:16 <Sukoshi> When to use a class over a struct and functions.
01:57:35 <bsmntbombdood> Same thing
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:11 <bsmntbombdood> How does objc fix that problem?
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:02:49 <bsmntbombdood> gotta love free ebooks
02:02:54 <Sukoshi> Heh.
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:08:35 <Sukoshi> Skim from there down.
02:09:17 <bsmntbombdood> LZW?
02:10:16 <bsmntbombdood> I have to go
02:10:35 <Sukoshi> As in, PDF Viewer page.
02:10:36 <Sukoshi> Garrr.
02:10:51 <bsmntbombdood> bout 2hrs
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:18 <Sukoshi> 9 being 3 hours from now.
02:11:28 <bsmntbombdood> you do too much homework
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:01 <Pikhq> Sukoshi: Meh.
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:28:33 <Sukoshi> Is Plof compiled?
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:53 <CakeProphet> >>> x
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:39:57 <CakeProphet> >>> x
02:39:59 <CakeProphet> Traceback (most recent call last):
02:40:00 <CakeProphet> File "<pyshell#8>", line 1, in <module>
02:40:02 <CakeProphet> x
02:40:03 <CakeProphet> MemoryError
02:40:05 <CakeProphet> >>> len(x)
02:40:06 <CakeProphet> 301327046
02:40:08 <CakeProphet> that's why.
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:41:46 <CakeProphet> >>> "" in "Everything"
02:41:47 <CakeProphet> True
02:42:30 <CakeProphet> >>> "" in ""
02:42:31 <CakeProphet> True
02:42:36 <CakeProphet> THE EMPTY STRING IS INSIDE ITSELF.
02:43:21 <Sukoshi> Oh noes?
02:44:20 <ihope> Isn't everything inside itself?
02:44:42 <CakeProphet> ...oh, yeah
02:44:58 <CakeProphet> a list a sublist of itself...
02:45:08 <ihope> Also: x.replace("", x)
02:45:46 <CakeProphet> hehehehe... it's like a tree
02:46:00 <CakeProphet> >>> x = "Hello, World!"
02:46:02 <CakeProphet> >>> x = x.replace("", x)
02:46:03 <CakeProphet> >>> 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:50:51 <ihope> :-P
02:51:00 <Pikhq> ihope: Lazy.
02:51:06 <Pikhq> Whoo.
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:51:41 <ihope> nonlogic?
02:51:46 <Pikhq> Yeah.
02:51:49 <Pikhq> nonlogic.org
02:51:58 <ihope> Interesting.
02:52:33 <ihope> Wasn't there a nonlogic IRC channel somewhere once?
02:53:10 <Pikhq> ##nonlogic
02:53:19 <Pikhq> On Freenode.
02:55:07 * CakeProphet has plans for an operating system.
02:55:21 <CakeProphet> ...will probably be years before I ever start though... I've got ideas brewing.
02:55:27 <bsmntbombdood> #awos
02:56:01 <ihope> CakeProphet: you too?
02:56:21 <bsmntbombdood> not that it's going anywhere
02:56:22 <Sukoshi> Who owns nonlogic?
02:56:35 <ihope> What's AWOS, now?
02:56:48 <Sukoshi> AW ... it's an OS.
02:56:49 <Pikhq> Sukoshi: The *paying* members of nonlogic own it.
02:56:59 <Sukoshi> Pikhq: Who are they?
02:57:03 <bsmntbombdood> ihope: an os
02:57:10 <Pikhq> Sukoshi: I can't remember the full list. . .
02:57:11 <ihope> Another one?
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 <CakeProphet> bsmntbombdood, they sound crazy.
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:57:53 <bsmntbombdood> what's nonlogic?
02:58:06 <Pikhq> Free shell server/web host.
02:58:07 <bsmntbombdood> CakeProphet: yeah
02:58:08 <CakeProphet> ihope, ...hail Discordia much?
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:21 <ihope> Erm.
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:58:59 <bsmntbombdood> runs windows and linux binaries natively
02:59:08 <bsmntbombdood> s/runs/planned to run/
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.
02:59:50 <CakeProphet> BEAUTIFUL.
03:00:01 <bsmntbombdood> ihope: ask him
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:32 <bsmntbombdood> ihope: AWOSDev
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:05 <ihope> Why shouldn't I?
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:03:48 <CakeProphet> ....haha, midget time.
03:04:27 <ihope> I'm not time is short!
03:04:39 <Sukoshi> Oh no, I have them.
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:05:21 <Sukoshi> When I need only two.
03:09:54 <bsmntbombdood> Sukoshi: This is going to be a huge project
03:10:29 <Sukoshi> bsmntbombdood: You didn't realize that already? :P
03:11:06 <ihope> Actually, I am.
03:11:12 <ihope> But, uh, ah.
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:18 <bsmntbombdood> AP comp-sci is a joke at my school
03:12:24 <Sukoshi> I know it is.
03:12:36 <CakeProphet> ihope, GO ON
03:12:36 <Sukoshi> I would've taken it this year as an aside, but I already have 5 AP tests to take.
03:12:50 <bsmntbombdood> One of those things that shouldn't be called CS
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:33 <bsmntbombdood> :(
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:44 <Sukoshi> *interesting
03:13:50 * bsmntbombdood wants to go to MIT
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:44 <CakeProphet> I say use http://allritesreversed.com/
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:16:50 <bsmntbombdood> in
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:21:59 <bsmntbombdood> C is fun
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:24:53 <CakeProphet> HOWEVER
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:13 <bsmntbombdood> that makes... 618,000 lines
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:26:53 <CakeProphet> Slackware, hugs and kisses.
03:27:01 <CakeProphet> Pikhq, er... hugs and kisses
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:37 <CakeProphet> SophYAOS?
03:27:42 <CakeProphet> :)
03:27:44 <ihope> CakeProphet: ouch.
03:27:49 <CakeProphet> WHAT
03:27:53 <CakeProphet> IT SOUNDS NICE
03:28:06 <oerjan> YAYAA
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:28:57 <Sukoshi> .... Right?
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:52 <CakeProphet> yep
03:29:55 <ihope> That would be very redundant.
03:29:58 <CakeProphet> ...but... that sounds lame
03:30:03 <ihope> s/sophia/Sophia/
03:30:09 <CakeProphet> GOOD
03:30:13 <Sukoshi> I would name it FFTH.
03:30:17 <Sukoshi> The OS.
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:40 <ihope> Like Sophia?
03:30:46 <ihope> Is "Sophia" a good name?
03:30:47 <Sukoshi> Five Factorial Times Thirty.
03:30:57 <Sukoshi> Errr...
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:26 <ihope> Sukoshi: 12000?
03:31:34 <CakeProphet> naostewos ...not another OS ending with OS.... but that name sucks
03:31:50 <Sukoshi> ihope: Yep.
03:31:52 <ihope> CakeProphet: are we trying seriously to come up with a name here?
03:32:01 <CakeProphet> ...half the time.
03:32:16 <Sukoshi> bsmntbombdood: Would would it internally represent?
03:32:19 <ihope> My proposals are "YAOS" and "Sophia".
03:32:28 <oerjan> Abrasax
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:15 <bsmntbombdood> abraxas is a fantastic album
03:33:24 <ihope> CakeProphet: oh, I just want a name.
03:33:24 <bsmntbombdood> Sukoshi: what?
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:41 <SevenInchBread> ihope, ..........
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:34:10 <SevenInchBread> eh... I think it's better than YAOS.
03:34:31 <SevenInchBread> AND IT DOES HAVE A NICE RING TO IT.
03:34:52 <SevenInchBread> if anything we can use it as a placeholder.
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:36:43 <SevenInchBread> oerjan, I like the sound of it.
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:37:57 <Sukoshi> .... :P
03:38:09 <Sukoshi> bsmntbombdood: Well, what do you suggest we code first?
03:38:14 <SevenInchBread> I LIKE ABRASAX
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:38:51 <bsmntbombdood> Turning a subset of pdf files into PDFDoc
03:39:00 <ihope> Yet my mother's Volkswagen?
03:39:22 <ihope> SevenInchBread: so "Abrasax" is another suggested name?
03:39:53 <SevenInchBread> yep.. I'm using it for the sourceforge name for now.
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:28 <bsmntbombdood> Sukoshi: the first step to that would be parsing
03:41:29 <ihope> Not bad.
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:42 <Sukoshi> COSmunism!
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:10 <SevenInchBread> s/dump/dumb
03:44:13 <bsmntbombdood> Sukoshi: yes
03:44:38 <bsmntbombdood> I'm just saying we need to allow for a way to add the "filters" cleanly later
03:44:47 <Sukoshi> Oh oh, I see.
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:03 <Sukoshi> Then I leave.
03:46:25 <Sukoshi> s/as/pass/
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:11 <Sukoshi> What happened to ESOS?
03:47:12 <bsmntbombdood> we use indexes into an array for those when we get to them in the doc
03:47:30 <Sukoshi> bsmntbombdood: Huh?
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:05 <Sukoshi> ihope: x86 ?
03:48:13 <ihope> Sukoshi: x86 is not esoteric.
03:48:24 <Sukoshi> ihope: ..... :P
03:48:32 <bsmntbombdood> ihope: subleq OISC
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:00 <bsmntbombdood> subtract and branch if negative
03:49:10 <bsmntbombdood> I wrote a vm a while ago, fun to play with
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:10 <Sukoshi> Run away! It's COSmunism!
03:50:12 <ihope> Abrasax...
03:50:19 <bsmntbombdood> Sukoshi: I've only read up to the objects used in the pdf file
03:50:29 <Sukoshi> Then read more :)
03:50:40 <bsmntbombdood> but tokenizing is pretty simple
03:50:43 <ihope> Well, I certainly don't see anything called Abrasax on SourceForge right now.
03:50:56 <bsmntbombdood> recursive for arrays and dictionarys
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:51:47 <SevenInchBread> like programming languages, what we're doing etc.
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:06 <SevenInchBread> yeah
03:53:43 <Pikhq> Um, yeah. . .
03:53:49 <Pikhq> Try the Java Virtual Machine.
03:54:11 <SevenInchBread> ....I don't like the sound of it.
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:30 <bsmntbombdood> ihope: what's URISC
03:55:41 <bsmntbombdood> OISC is One Instruction Set Computer
03:55:45 <Sgeo> n/m
03:55:47 <Sgeo> erm
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:55:56 <Sgeo> n/m the n/m
03:56:20 <ihope> bsmntbombdood: doesn't Esolang have something about URISC?
03:57:27 * SevenInchBread has become a fan of variants of record-based IPC
03:57:33 <SevenInchBread> and a builtin versioning system.
03:57:52 <SevenInchBread> ...but that's all filesystem/process-level stuff... not the bare bones.
03:58:04 <bsmntbombdood> ihope: no
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.
03:58:32 <bsmntbombdood> yes, it redirects to OISC
03:58:39 <bsmntbombdood> so URISC = OISC
04:00:52 <ihope> Pff.
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:01:49 <SevenInchBread> yeah.
04:02:00 <SevenInchBread> like... a way to shoot stuff out... so we can test stuff.
04:02:19 <oerjan> a cannon!
04:02:35 <ihope> Well, we'll want to plan some stuff out
04:02:46 * ihope opens Notepad
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:47 <Pikhq> Exactly.
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:21 <SevenInchBread> oh well.
04:10:24 <SevenInchBread> spelling is for geeks
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:14:59 <bsmntbombdood> haha, compatibility
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:35 <SevenInchBread> ihope, ...because that takes more work?
04:15:36 <ihope> Versioned file system... that one's an idea.
04:15:47 <ihope> SevenInchBread: very true.\
04:15:55 <bsmntbombdood> but versioned file system would be cool
04:15:58 <SevenInchBread> bsmntbombdood, well then fuck usually. :P
04:16:08 <ihope> Let's implement EVERYTHING!
04:16:12 <SevenInchBread> INDEED
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:37 <SevenInchBread> er... ihope
04:18:41 <ihope> That may well mean invoking a process everytime anything makes a system call.
04:18:42 <SevenInchBread> but... yes.
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:09 <bsmntbombdood> a bit for network access...
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:26 <bsmntbombdood> makes sense
04:21:51 <SevenInchBread> ...I see the shell working something like a Smalltalk-ian programming language.
04:21:58 <SevenInchBread> ...kind of io-ish.
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:28:30 <bsmntbombdood> yeah
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:29:36 <SevenInchBread> then I'm cool with priveledges.
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:30 <SevenInchBread> pretty much.
04:30:32 <ihope> And how do you make something immune to formatting the hard drive, say?
04:30:50 <SevenInchBread> -shrug- I don't know really.
04:31:08 <ihope> I still like the principle of least authority.
04:31:22 <SevenInchBread> ...what's that again?
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:32:31 <SevenInchBread> ...OH NOES... A SCHISM IN THE OSDEVERS PRINCIPLES.
04:32:41 <ihope> Hmm?
04:33:11 <SevenInchBread> how much in comparison to say... Windows or Linux?
04:33:33 * SevenInchBread likes to be able to do whatever he wants.
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:39 <SevenInchBread> good. :)
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:38:08 <SevenInchBread> lovely.
04:38:20 <SevenInchBread> ANARCHYOS!!!
04:38:38 <ihope> :-)
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:00 <SevenInchBread> -nod-
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:08 <SevenInchBread> aren't they the same thing?
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:41:45 <SevenInchBread> a process.
04:42:14 <ihope> Service = something which a process makes available and can be invoked by other processes.
04:42:35 <SevenInchBread> can't you just make all processes like that?
04:42:46 <SevenInchBread> like... give the processes handy names.
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:36 <SevenInchBread> multiple names.
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:32 <SevenInchBread> .....
04:45:34 <ihope> :-P
04:45:40 <SevenInchBread> that sounds uh... brilliant?
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:22 <SevenInchBread> like a "prevent name override" priv.
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:48:41 <SevenInchBread> not sure I understand what you mean.
04:49:42 <ihope> Well, we want this operating system to be airtight.
04:49:50 <bsmntbombdood> "secure" is pretty meaningless
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:17 <bsmntbombdood> it has to be quantified, "secure from what?"
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:00 <SevenInchBread> ...SOME SORT.
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:11 <SevenInchBread> ...actually more like IO.
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:53:54 <bsmntbombdood> ihope: the network
04:53:59 <ihope> Interesting.
04:54:03 <bsmntbombdood> but everything as a file makes a lot of sense
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:54:54 <SevenInchBread> Nope
04:54:58 <SevenInchBread> I shall not permit it.
04:55:02 <SevenInchBread> ACTUALLY
04:55:09 <bsmntbombdood> everything makes sense as a file
04:55:20 <SevenInchBread> we shall go with the "everything is something" phiolosophy.
04:55:20 <bsmntbombdood> except maybe graphics
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:00 <SevenInchBread> ihope, nope.
04:56:23 <Sukoshi> Ph33r the COSmunists!!!!
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:07 <bsmntbombdood> Sukoshi: I got nothing
04:57:19 <SevenInchBread> ihope, I see system calls working as messages to services... which all have convient names attached to them.
04:57:22 <Sukoshi> bsmntbombdood: ... :(
04:57:29 <SevenInchBread> kind of Smalltalk-ish...
04:57:43 <Sukoshi> ObjC!
04:57:48 <Sukoshi> :)
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:02 <bsmntbombdood> school tommorow?
04:59:13 <ihope> It's Sunday today?
04:59:15 <bsmntbombdood> tommorow's sunday
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:40 <SevenInchBread> ihope, sure.
04:59:54 <ihope> Rather, it's on the borderline between Sunday and Monday right now?
05:00:16 <bsmntbombdood> Sukoshi: That's not what I meant
05:00:21 <Sukoshi> bsmntbombdood: Oh.
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:18 <bsmntbombdood> no
05:01:31 <bsmntbombdood> you must be deranged, if you live in 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:46 <SevenInchBread> It's midnight here... eastern time.
05:01:57 <ihope> SevenInchBread: it's eastern time over there?
05:02:03 <SevenInchBread> >.> Georgia?
05:02:06 <ihope> Is it Sunday/Monday or Saturday/Sunday?
05:02:20 <SevenInchBread> It's Saturday/Sunday
05:02:24 <ihope> Sheesh.
05:02:25 <SevenInchBread> ...thank god.
05:02:26 <bsmntbombdood> it's 0001 sunday morning in michigan
05:02:26 <Sukoshi> MENTALLY CHALLENGED PEOPLE NOT ABLE TO COMPREHEND TIMEZONE!!!
05:02:33 <SevenInchBread> otherwise I'd be going back to school tomorrow.
05:03:01 <bsmntbombdood> i hate school SO MUCH
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:03:42 <SevenInchBread> ...now they just confuse the hell out of people.
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:36 <SevenInchBread> no... just have like... one time.
05:04:39 -!- ihope has joined.
05:04:48 <ihope> Stupid ChatZilla.
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:03 * oerjan ducks
05:05:03 <ihope> And that today
05:05:07 <ihope> 's Saturday.
05:05:15 <Sukoshi> Wow.
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 <SevenInchBread> ...I like United Statesian and USAn
05:07:01 <ihope> So there is in fact not any school today/tomorrow.
05:07:10 <Sukoshi> Congratulations ihope.
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:07:50 <SevenInchBread> ihope, -nod- alrighty... HAVE A GOOD DAY.
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:20 <SevenInchBread> we could get a mailing list
05:08:22 <SevenInchBread> to look cool
05:08:27 <ihope> We could, yes.
05:08:32 <Sukoshi> I think it'll go by the way of ESOS.
05:08:33 <SevenInchBread> ...or just like... a forum thing.
05:08:33 <oerjan> yes, i guess the bush administration may not be big on the humor part.
05:08:34 * Sukoshi ducks.
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:30 <SevenInchBread> and everyone knows what's going on.
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:02 <ihope> What's yaoi?
05:10:14 <oerjan> aspirin?
05:10:15 <SevenInchBread> male-male hentai.
05:10:16 <Sukoshi> The genre of Boys-love in Japanese Animation.
05:10:23 <Sukoshi> Net always hentai.
05:10:24 <SevenInchBread> ...or that
05:10:32 <Sukoshi> Look, don't blame the bishounen for being hawt. They just are.
05:10:36 <SevenInchBread> ah.
05:10:51 <ihope> oerjan: just like the Staff of Eucalyptus.
05:10:59 <Sukoshi> Eucalyptus!
05:11:02 <Sukoshi> That's a great OS name!
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:11 <ihope> Sukoshi: very.
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:34 <SevenInchBread> ...it's an odd feeling.
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:13 <Sukoshi> ......
05:13:20 <Sukoshi> oerjan: A spring.
05:13:41 <SevenInchBread> so it'll take the sourceforge people about 1 or 2 days to reject our project.
05:13:58 <Sukoshi> Oh, you're CakeProphet.
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:28 <SevenInchBread> Sukoshi, I'm a poly-psuedonymous being, my friend.
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:45 <oerjan> PSEUDO!!!!
05:14:49 <SevenInchBread> Sukoshi, Yeah... despite being waaay too familiar with it... I hate it completely.
05:15:10 <SevenInchBread> OERJAN, THE ENGLISH LANGUAGE IS NOT FIXED
05:15:15 <SevenInchBread> THAT COULD HAVE BEEN A NEW WORD
05:15:19 <SevenInchBread> ...that I made up.
05:15:27 <bsmntbombdood> Sukoshi: not that i can think of right now
05:15:42 <Sukoshi> bsmntbombdood: :9
05:15:42 <Sukoshi> *:(
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:16:08 <Sukoshi> Keyword: Practical.
05:16:26 <SevenInchBread> ...a MUD
05:16:31 * SevenInchBread is working on a MUD.
05:17:08 <Sukoshi> No.
05:17:17 <Sukoshi> MUDs are for NUBs.
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:20 <Sukoshi> SevenInchBread--;
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:19:04 * Sukoshi gasps audibly.
05:19:17 * SevenInchBread eats Sukoshi for BREAKFAST
05:19:24 <SevenInchBread> DO NOT BELITTLE MY HOBBY
05:19:30 <SevenInchBread> A MUD IS A PIECE OF ART.
05:19:35 <bsmntbombdood> games--;
05:19:36 <SevenInchBread> ....
05:19:48 <SevenInchBread> alright
05:19:51 <SevenInchBread> I'll give you that
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:20:55 * SevenInchBread didn't eat breakfast today...
05:21:07 -!- ihope has quit (Read error: 60 (Operation timed out)).
05:22:23 * SevenInchBread shall return briefly.
05:26:38 <Sukoshi> Does anyone else have any practical ideas that don't involve eating the discussioners along the way?
05:29:21 <Sukoshi> ドライの手の中まで!
05:36:06 <Pikhq> ドライ?
05:36:35 <Sukoshi> Dry.
05:36:47 <Pikhq> So, from the middle of dry hands?!?
05:46:51 <Sukoshi> Yeahp.
05:46:58 <Sukoshi> It's a quote from a song, heh.
05:47:47 <bsmntbombdood> haha
05:47:57 <bsmntbombdood> theo de raadt is like a little kid
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:48:38 <Sukoshi> It's really fun.
05:49:01 <Sukoshi> *I like to
05:49:49 <bsmntbombdood> it's sad that licensing is such a big issue in FS
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:00:12 * SevenInchBread sets up an Abrasax mailing list
06:07:40 <bsmntbombdood> this book gives a very good argument for OOP
06:08:03 <Sukoshi> Yeah. It does.
06:09:49 <SevenInchBread> I've see very good arguments for both OOP and no-OOP
06:10:06 <bsmntbombdood> OOP just shouldn't be overused
06:10:09 <bsmntbombdood> ...java
06:11:16 <SevenInchBread> yeah... forced OOP can lead to overcomplicated designs... but used just right it can make really simple designs.
06:11:23 <Sukoshi> What about SmallTalk?
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:23 <SevenInchBread> it has Loggers, Handlers, LogRecords, and Formatters,
06:14:35 <Sukoshi> That's pretty much what Java is.e
06:14:37 <Sukoshi> *is.
06:14:39 <SevenInchBread> ...an entire class for log format info.
06:14:49 <bsmntbombdood> SevenInchBread: that module's pretty bad
06:14:56 <SevenInchBread> ...when it just stores a single string.
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:15:55 <SevenInchBread> ...never forget.
06:16:47 <SevenInchBread> oh wait... there's also Filters, the Manager.
06:16:52 <SevenInchBread> *and
06:17:46 <SevenInchBread> http://groups.google.com/group/AbraSophia/
06:18:41 -!- calamari has joined.
06:24:12 <bsmntbombdood> nice, dynamic loading
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:36:56 <bsmntbombdood> necisito projectos buenos
07:37:38 <lament> 'proyectos'
07:37:41 <lament> 'necesito'
07:38:05 <bsmntbombdood> ...right
07:44:13 <lament> :)
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
16:59:33 <ais523> s/$/\?/
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:48:15 <bsmntbombdood> ObjC looks fantastic
22:48:58 <Sgeo> ObjC?
22:49:03 <GregorR> Objective C.
22:49:21 <GregorR> Apple's C-acting-like-smalltalk.
22:56:40 <lament> it's not apple's
22:58:40 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
23:04:29 <bsmntbombdood> the synchronization code is nice
23:04:48 <bsmntbombdood> any object can be a semaphore
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:23 <SevenInchBread> ihope, hmmm...
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:27 <SevenInchBread> How would that work?
23:33:48 <oerjan> a service is what the client sees. a process is a way of implementing various tasks, including services.
23:34:14 <SevenInchBread> ah.
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:39:52 <SevenInchBread> -nod- that makes sense.
23:40:10 * SevenInchBread wants to do for processes what UNIX did with files.
23:41:05 <oklopol> everything is a ...?
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:08 <GregorR> rm -f /proc/init
23:42:11 <GregorR> *boom
23:42:12 <oerjan> named pipes exist and are slightly similar.
23:42:12 <GregorR> *
23:43:39 <oerjan> essentially processes attached to the filesystem, with reading/writing going to the process stdin/out
23:44:16 <SevenInchBread> It's very secondary though.
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:14 <SevenInchBread> I imagine it could
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.
2007-04-09
00:05:32 <SevenInchBread> so it's just a name?
00:06:16 <ihope> More or less.
00:07:02 <SevenInchBread> !daemon omfg bf ,+++++++++++++[.,+++++++++++++]
00:07:10 <SevenInchBread> omfg i
00:07:27 <SevenInchBread> ....is that a service?
00:07:38 <bsmntbombdood> objects
00:08:30 <SevenInchBread> !omfg i
00:08:38 <SevenInchBread> !ps
00:08:40 <EgoBot> 5 SevenInchBread: ps
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:11:17 <SevenInchBread> right?
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:20 <SevenInchBread> hmmm.... how would it know which service it's doing?
00:13:30 <SevenInchBread> if you're just feeding it input.
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:01 <ihope> Oh, you mean...?
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:34 <ihope> Pretty simple.
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:02 <SevenInchBread> aaaah... I see what you mean.
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:16:48 <SevenInchBread> ihope, asynchronousness.
00:16:59 <SevenInchBread> but... that could be an option.
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:02 <SevenInchBread> slashes?
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:22:53 <ihope> Your examples?
00:23:00 <SevenInchBread> "fs cd" except
00:23:03 <SevenInchBread> er... etc
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:16 <SevenInchBread> -shrug- it could work.
00:25:22 <SevenInchBread> oh
00:25:24 <SevenInchBread> it is
00:25:29 <ihope> What is?
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:22 <ihope> Indeed.
00:27:25 <SevenInchBread> if you like your names nice and flat... making some macros wouldn't be too impossible.
00:27:39 <SevenInchBread> macro set (cd, fs cd)
00:28:19 <ihope> Indeed.
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:17 <ihope> Indeed.
00:29:38 <ihope> By the way, how's the SourceForge coming?
00:30:01 <SevenInchBread> no word as of yet.
00:30:41 <SevenInchBread> how about representing time?
00:30:54 <bsmntbombdood> it can all be done with ObjC distributed objects!
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:32:31 <SevenInchBread> ...or whatever the year is.
00:32:48 <ihope> Make it 64-bit?
00:33:10 <SevenInchBread> what about bignum?
00:33:14 <SevenInchBread> variable length.
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:18 <SevenInchBread> and terminate with a null.
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:22 <SevenInchBread> eh... sure
00:35:26 <oerjan> terminate with a null? then it would be buggy
00:35:40 <SevenInchBread> not if its in reverse order.
00:35:49 <oerjan> sure it would
00:35:51 <SevenInchBread> hmmm... well yeah
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:37:25 <SevenInchBread> ....actually... let's go with a 230-bit integer.
00:37:34 <SevenInchBread> ...just cause.
00:38:14 <ihope> ...
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:13 <ihope> 64 bits.
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:08 <SevenInchBread> ...good riddance, I say.
00:41:39 <ihope> Pff.
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:02 <SevenInchBread> ...I don't want to ride your topics.
00:44:04 <SevenInchBread> oh
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:47:24 <SevenInchBread> no way to process-ify that.
00:48:00 <ihope> I'm not that familiar with how memory works.
00:48:08 <SevenInchBread> I know a little bid.
00:48:16 <ihope> What do you know?
00:48:20 <SevenInchBread> buddy system allocation, paging files, etc.... the usual stuff.
00:48:30 <SevenInchBread> I don't know how processes work...
00:48:34 <ihope> Buddy system allocation?
00:49:13 <ihope> I know a little bit about processes.
00:49:29 <SevenInchBread> http://en.wikipedia.org/wiki/Buddy_memory_allocation
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:51:22 <SevenInchBread> guess so... I've never used realloc and malloc in C.
00:51:29 <SevenInchBread> but I'm assuming that's what they exist for.
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:53:34 <SevenInchBread> er.. tested
00:54:33 <SevenInchBread> actually... the hardware kinda handles paging for us.
00:54:46 <bsmntbombdood> expert?
00:54:49 <bsmntbombdood> who needs em
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:56:09 <SevenInchBread> http://en.wikipedia.org/wiki/Paging
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:07 <SevenInchBread> .....I don't know a thing about how to do it.
01:00:13 <SevenInchBread> ....I just know like... what it's supposed to do.
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:01:13 <ihope> Indeed.
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:11 <SevenInchBread> so... scheduling will be the other thing.
01:05:22 <SevenInchBread> ihope, nah..
01:05:29 <ihope> Why not?
01:05:36 <SevenInchBread> to learn how to mess up. :)
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:07:36 <SevenInchBread> http://en.wikipedia.org/wiki/Process_scheduling
01:08:01 <SevenInchBread> well... I mean... there's only so many processes that can be "active" at any given time.
01:08:17 <ihope> Why?
01:08:25 <SevenInchBread> ....forgot why.
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:08:59 * SevenInchBread is researching as he goes.
01:09:23 <SevenInchBread> process swapping.
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:11:43 <SevenInchBread> ihope, we can fail, and then correct our mistakes.
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:15:09 <SevenInchBread> hmmm?
01:15:48 <SevenInchBread> it's not quite that simple.
01:15:51 <ihope> It's not?
01:16:04 <SevenInchBread> because processes are fairly asynchronous... there is no "return value".
01:16:43 <ihope> There's no return value?
01:16:49 <ihope> What do you mean?
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:22:46 <bsmntbombdood> nope
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:16 <bsmntbombdood> yeah
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:26:39 <SevenInchBread> eh... blocking is explicit.
01:26:45 <bsmntbombdood> only blocking system calls can block
01:27:08 <ihope> Blocking can only be the result of a system call?
01:27:14 <SevenInchBread> yeah
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:28:33 <bsmntbombdood> like waitpid(2)?
01:28:52 <SevenInchBread> yeah
01:28:57 <SevenInchBread> except.... with names. :)
01:29:02 <ihope> Wait for process termination?
01:29:06 <SevenInchBread> yep
01:29:09 <SevenInchBread> that's a block
01:29:20 <ihope> Or "wait for service to return a result"? :-)
01:29:31 <bsmntbombdood> SevenInchBread: names are ugly
01:29:34 <SevenInchBread> either one works...
01:29:39 <SevenInchBread> bsmntbombdood, .................................
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:15 <SevenInchBread> ...
01:30:18 <SevenInchBread> YOU WIKINERD
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:31:47 <bsmntbombdood> no it's not
01:31:54 <ihope> Erm.
01:32:00 <bsmntbombdood> an int will always be one word
01:32:04 <SevenInchBread> ihope, ...why is that important though?
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:31 <SevenInchBread> ints being easier to store than names.
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:01 <bsmntbombdood> pids are numbers...
01:33:02 <ihope> But why have them?
01:33:05 <SevenInchBread> ...in UNIX
01:33:10 <bsmntbombdood> yes, in unix
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:08 <oerjan> er...
01:34:14 <bsmntbombdood> SevenInchBread: humans are stupid
01:34:33 <SevenInchBread> unfortunately.
01:34:35 <ihope> It's not especially often you need to refer to a process by ID.
01:34:36 <SevenInchBread> that's why we have OSes
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:31 <SevenInchBread> ihope, maybe to you.
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:15 <SevenInchBread> ....that's a stupid example. :P
01:38:24 <ihope> My example or yours?
01:38:28 <SevenInchBread> yours.
01:38:35 <ihope> Why is it stupid?
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:22 <bsmntbombdood> pwnt.
01:39:35 <SevenInchBread> ...hahahahaha
01:39:35 <ihope> I'd rather type 242 than copy-and-paste that thing.
01:39:43 * SevenInchBread dies.
01:39:51 <SevenInchBread> oh - that was fucking brilliant.
01:39:56 <SevenInchBread> good job.
01:40:50 <SevenInchBread> okay... so then you can simply have numbers AND names. like file descriptors and file names.
01:41:06 <bsmntbombdood> same like unix
01:41:13 <bsmntbombdood> a proccess's "name" is its path
01:41:17 <ihope> Why have process names, again? Service names, sure, but why process names?
01:41:25 <SevenInchBread> but with unix the process names aren't unique.
01:41:38 <SevenInchBread> same reason we have file names.
01:41:45 <bsmntbombdood> the pids are, though
01:41:52 <SevenInchBread> -nod- right.
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:43:20 <ihope> Indeed.
01:44:12 <bsmntbombdood> not proccesses, just objects
01:44:13 <SevenInchBread> hmm.... alright...
01:44:24 <SevenInchBread> bsmntbombdood, NO. We are not going all fucking OO
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:44:46 <bsmntbombdood> no matter what you try to call it
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:17 <bsmntbombdood> wtf?
01:46:21 <SevenInchBread> ...I'm still not sure how that would work.
01:46:29 <ihope> How what would work?
01:46:51 <SevenInchBread> having multiple names for a process... each doing something different.
01:47:07 <bsmntbombdood> argv[0]?
01:47:16 <ihope> When the service is invoked, the process is told what service it was.
01:47:21 <SevenInchBread> ah.
01:48:10 <ihope> Well, I should get to bed. There's school tomorrow.
01:48:17 <bsmntbombdood> :(
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:50:41 <SevenInchBread> ihope, across multiple OS runs?
01:55:04 <bsmntbombdood> rebooting is for wimps
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:19 * SevenInchBread thinks they should. :(
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:04:29 <bsmntbombdood> yeah that's yucky
02:07:29 <ihope> "Default" permissions are stored in along with the executable, somehow, and therefore preserved when rebooting.
02:07:55 <SevenInchBread> with record-based filesystems
02:07:59 <SevenInchBread> that's not too hard to do
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:08:53 <bsmntbombdood> that makes no sense
02:09:05 <SevenInchBread> ...what?
02:11:06 <SevenInchBread> ...I like the idea.
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:05 <SevenInchBread> but, essentially, yes.
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:10 <SevenInchBread> http://en.wikipedia.org/wiki/Record-oriented_file
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:16:51 <ihope> 'Night.
02:19:38 <oerjan> 'Ook
02:36:15 -!- ihope has quit (Connection timed out).
03:03:03 <Pikhq> Mmkay. . .
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:11:12 <bsmntbombdood> that's why you don't try to compile glibc
03:16:42 <Pikhq> I'm making a distro. What else am I supposed to do?
03:16:51 <Pikhq> . . . Use uclibc?
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:22:40 <Pikhq> Hahah.
03:25:43 <Pikhq> Screw it.
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:29 <Sukoshi> bsmntbombdood: Hey!
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.
14:28:19 <bsmntbombdood> Sukoshi: what would that be?
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:32 <ihope> Yarr!
21:12:36 <ihope> I be an IRC pirate!
21:15:44 -!- ihope_ has joined.
21:15:58 <ihope_> Yarr!
21:16:04 <ihope_> I be a disconnected IRC pirate!
21:16:53 <GregorR> Heh
21:21:22 <ihope_> Anyway, I half-officially declare the name of "the operating system project" to be Abrasax,
21:21:25 <ihope_> s/,/./
21:21:45 <ihope_> We could have trademark issues with Sophia.
21:22:05 <ihope_> And the half-official IRC channel is #abrasax.
21:23:22 <GregorR> Whassisnow?
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:26:35 <ihope_> s/,/./
21:26:42 <GregorR> Esoteric?
21:26:45 <ihope_> Nope.
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:27:23 <bsmntbombdood> Sukoshi: sounds fun
22:35:59 <bsmntbombdood> Sukoshi: I don't know much about CAs though
22:36:48 <ihope_> Wow. A lot happened on March 26, according to the logs.
22:37:30 <ihope_> I blame Pez.
22:39:30 <ihope_> Hmm...
22:39:35 <ihope_> A 16KB stack, eh?
22:40:08 <ihope_> I love how Google can do things like "0x4000 bytes in kilobytes"
22:41:00 <bsmntbombdood> me too
22:42:18 <ihope_> "# define EXT_C(sym) _ ## sym"
22:42:20 <bsmntbombdood> google will end up as a natural language interpreter
22:42:25 <ihope_> :-)
22:42:33 <ihope_> Does that _ ## mean anything special to the preprocessor?
22:42:40 <bsmntbombdood> yeah
22:42:55 <ihope_> What's it mean?
22:43:12 <bsmntbombdood> ## is either concatenation or turning into a string
22:43:37 <ihope_> What's it do in this case?
22:44:00 <bsmntbombdood> one sec
22:44:13 <bsmntbombdood> ## is concatenation
22:44:24 <bsmntbombdood> so EXT_C(foo) => _foo
22:45:15 * ihope_ nods
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
22:47:39 <bsmntbombdood> but i'm just guessing
22:55:50 <bsmntbombdood> variadic cpp macros are fun
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:02 <bsmntbombdood> Sukoshi: I did
23:25:21 <Sukoshi> bsmntbombdood: Did what?
23:25:24 <bsmntbombdood> I mean, the beginnings of one
23:25:42 <bsmntbombdood> A generic function based OOP extension to C
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:26:49 <Sukoshi> And compile that.
23:27:06 <oerjan> not context-free.
23:27:12 <Sukoshi> Nope.
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:28:47 <bsmntbombdood> parsing :/
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:31:31 <Sukoshi> )
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:07 <oklopol> s/object/struct
23:34:10 <oklopol> that's your parser!
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:36:16 <bsmntbombdood> call_generic() is the same as objc_msgSend()
23:37:17 <Sukoshi> But the difference in ObjC is the whole business with id.
23:37:46 <bsmntbombdood> well...dynamic typing is nice
23:37:56 <Sukoshi> But it's *slow*.
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:01 <bsmntbombdood> not very slow
23:39:14 <Sukoshi> That's what the weblinkse I've read say *shrug*.
23:39:18 <Sukoshi> *weblinks
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:42:42 <Sukoshi> There's more to it.
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:44:59 <bsmntbombdood> so?
23:45:07 <Sukoshi> It's slow :(
23:45:47 <bsmntbombdood> looking up a method in objc is the same as looking up a variable in a interpreted language
23:46:49 <Sukoshi> Exactly.
23:47:01 <Sukoshi> I'm looking for something just a tad bit slower than C.
23:47:10 <bsmntbombdood> I don't think it is very slow
23:47:14 <bsmntbombdood> java is going to be slower
23:47:18 <Sukoshi> Google begs to differ.
23:47:24 <Sukoshi> Google says that Java is faster.
23:47:39 <bsmntbombdood> that's counter intuitive
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:22 <bsmntbombdood> more work than the objc runtime
23:48:24 <bsmntbombdood> hence slower
23:48:33 <Sukoshi> Nope.
23:48:42 <Sukoshi> The Java runtime has been optimized incredibly.
23:48:48 <bsmntbombdood> this is stupid
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:25 <bsmntbombdood> objc is older than java
23:49:36 <Sukoshi> But it hasn't been continually developed is the problem.
23:49:57 <Sukoshi> Same with C++.
23:50:10 <Sukoshi> I don't think you see many changes to the g++ code on a daily basis.
2007-04-10
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:36 <bsmntbombdood> yacc is
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:26:45 <bsmntbombdood> I want to see the definition of objc_object
00:26:47 <ihope_> OSKit, eh?
00:27:37 -!- atrapado has quit (Read error: 110 (Connection timed out)).
00:30:40 <bsmntbombdood> objc_class too
00:34:49 <Sukoshi> OSKit?
00:35:36 <ihope_> OSKit sounds like a useful thing.
00:35:47 <ihope_> A very useful thing.
00:36:11 <bsmntbombdood> i can't find the "objc" include directory
00:41:16 <bsmntbombdood> http://svn.gna.org/viewcvs/gnustep/libs/libobjc/trunk/objc/
00:42:43 <bsmntbombdood> looks pretty simple
00:52:39 -!- EgoBot has quit (K-lined).
00:52:40 -!- GregorR has quit (K-lined).
00:54:03 <bsmntbombdood> gnustep is _huge_
00:54:15 <ihope_> ...Uh, did GregorR just get K-lined?
00:54:21 <bsmntbombdood> O.o
00:54:36 <Sukoshi> Yeah it is bsmntbombdood.
00:54:48 <bsmntbombdood> Hard to find what you're looking for
00:55:11 <Sukoshi> That's one of my problems. ObjC has almost no development going in it.
00:55:24 <bsmntbombdood> maybe it's perfect already
00:57:58 <bsmntbombdood> i'm looking for objc_msgSend
01:03:53 -!- calamari has quit ("Leaving").
01:13:23 <bsmntbombdood> it would be nice if instance variables were dynamic like messages are
01:18:25 <Sukoshi> Huh?
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:19:36 <bsmntbombdood> ^^ there's the good stuff
01:20:47 <Sukoshi> Well that's because it's a class object then.
01:26:04 <bsmntbombdood> that's odd
01:26:25 <bsmntbombdood> I think the message sending function looks up the method from a linked list of methods
01:26:28 <bsmntbombdood> not a hash table
01:26:32 <bsmntbombdood> ie linear time
01:27:53 <bsmntbombdood> but it seems classes keep both
01:28:11 <Sukoshi> I would hope so, because you can make a tree based on parameters.
01:28:19 <bsmntbombdood> what?
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:29:39 <bsmntbombdood> both holding methods
01:30:29 <bsmntbombdood> named methods and dtable, respectively
01:30:52 <Sukoshi> So, are we using libobjc from GCC or GNUStep ?
01:31:00 <Sukoshi> Errr, I mean.
01:31:14 <Sukoshi> Are we using Foundation from GNUStep or just subclassing from libobjc?
01:31:37 <bsmntbombdood> you mean NSObject or Object?
01:31:47 <Sukoshi> Yeah.
01:31:53 <bsmntbombdood> NSObject
01:32:48 <Sukoshi> Alright.
01:32:53 <Sukoshi> Are we going to use Foundation stuff?
01:33:12 <bsmntbombdood> I don't see any reason not to
01:33:46 <Sukoshi> Alright.
01:33:56 <Sukoshi> Now. Cellular Automata VM?
01:34:08 <bsmntbombdood> Dunno how that would work
01:35:07 <oerjan> i assume you mean Virtual Machine rather than Virtual Memory?
01:36:02 <bsmntbombdood> yeah
01:40:19 <Sukoshi> Yeah.
01:40:44 <Sukoshi> We'd have to create a set of assembler commands that can define cellular automata.
01:41:08 <ihope_> Weirdos.
01:41:11 * oerjan ponders adding extra time dimensions to ALPACA.
01:41:31 <ihope_> I don't think cellular automata are imperative.
01:41:43 <oerjan> indeed not
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:43:50 <Sukoshi> ALPACA?
01:44:04 <oerjan> the cellular automaton description language
01:44:13 <Sukoshi> Link please.
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:28 <Sukoshi> ;P
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:49:26 <bsmntbombdood> I suppose an ordered binary tree would work
01:51:39 <bsmntbombdood> that's O(log n) best, O(n) worst though
01:52:39 <oerjan> insert "balanced" at appropriate spot.
01:52:59 <oerjan> then remove "O(n) worst".
01:53:06 <bsmntbombdood> O(n) if the objects are inserted in sorted order
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:54:35 <bsmntbombdood> what's that?
01:55:19 <ihope_> Hmm, suddenly idea.
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:56:09 <bsmntbombdood> oerjan: how...
01:58:09 <bsmntbombdood> and O(log n) still isn't good
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:16 <ihope_> Hello, graue?
02:05:19 <ihope_> s/?/!/
02:05:23 <graue> Hello.
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:33 <graue> no
02:05:46 <ihope_> What's this about incredulity?
02:06:03 <bsmntbombdood> ?
02:06:32 <ihope_> Rather:
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:24 <bsmntbombdood> * EgoBot has quit (K-lined)
02:07:24 <bsmntbombdood> * GregorR has quit (K-lined)
02:07:40 <graue> why'd that happen?
02:07:47 <ihope_> Apparently it was for spamming.
02:08:10 <lament> spamming who
02:08:21 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
02:08:38 <ihope_> No idea.
02:08:46 <oklopol> i bet it was code.
02:09:05 <ihope_> Ah, indeed, an EgoBot bug may cause spamming.
02:09:13 <oklopol> damn
02:09:18 <oklopol> that's a lot better guess
02:09:28 <ihope_> Rather, may have caused.
02:10:36 <bsmntbombdood> hmm
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:11:28 <ihope_> What's this, now?
02:11:49 <bsmntbombdood> I asked a staffer
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:16 <ihope_> Indeed there weren't.
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:14:39 <graue> no
02:15:27 <bsmntbombdood> actually, freenode staff are pretty arbitrary
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:49 <bsmntbombdood> my bot isn't in any channels that staff are in
02:16:54 <Pikhq> ihope_: Not been reported for spamming.
02:17:03 <Pikhq> bsmntbombdood: Nor was EgoBot.
02:17:13 <bsmntbombdood> hmm
02:17:21 <ihope_> ~exec while 1: __import__("time").sleep(2); self.raw("PRIVMSG ihope_ :Ya!")
02:17:40 <ihope_> ~ps
02:17:41 <bsmnt_bot> 0: 'while 1: __import__("time").sleep(2); self.raw("PRIVMSG ihope_ :Ya!")', 18.34 seconds
02:17:45 <ihope_> ~kill 0
02:17:46 <bsmntbombdood> haha you fail
02:17:52 <ihope_> Tell me how to kill it, will you?
02:17:58 <bsmntbombdood> ~kill 0
02:18:03 <ihope_> Pff.
02:18:07 <bsmntbombdood> it was actually sending you messages?
02:18:10 <ihope_> Yes.
02:18:11 <bsmntbombdood> hmm
02:18:17 <bsmntbombdood> someone must have identified it
02:18:29 <ihope_> I have UNFILTERED set.
02:18:32 <bsmntbombdood> oh
02:18:48 <bsmntbombdood> ~raw privmsg bsmntbombdood :foo
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:44 <bsmntbombdood> ~kill 0
02:19:46 <ihope_> Yeah, I'm thinking it's definitely the UNFILTERED.
02:19:51 <bsmntbombdood> yeah
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).
02:53:47 <oerjan> (man ncurses)
03:40:19 <bsmntbombdood> We should design an esolang for human-human communication
03:40:27 <bsmntbombdood> english is so overrated
03:41:45 <bsmntbombdood> oh right, there's english as lisp
03:43:03 <Sukoshi> bsmntbombdood: Lojban.
03:43:03 -!- Pikhq has quit (Read error: 60 (Operation timed out)).
03:43:11 <bsmntbombdood> (need we (no other))
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:40:43 <GregorR-Foo> I've been banned O_O
08:41:21 <GreaseMonkey> from wot?
08:41:53 <GregorR-Foo> FreeNode
08:42:21 <GreaseMonkey> bugger. why?
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:47 <GregorR-Foo> Nor was a hacked version of me 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:44:45 <GregorR-Foo> K-line
08:44:50 <GreaseMonkey> and you should shoot them
08:44:58 <GreaseMonkey> K-line = how long?
08:45:05 <GregorR-Foo> Idonno, it doesn't say.
08:45:47 <GreaseMonkey> k-line==g-line
08:46:02 <GreaseMonkey> did you ever get z-lined before that?
08:46:28 <GregorR-Foo> I've never been anything-lined.
08:46:36 <GreaseMonkey> k
08:47:03 <GreaseMonkey> it'd be really funny if i got o-lined
08:49:08 <GreaseMonkey> actually: z-line = ip-block, g-line = ban-on-login
08:49:15 <GreaseMonkey> dunno about a straight k-line
08:49:29 * GregorR-Foo bashes his head into the wall.
08:49:34 <GregorR-Foo> Why have I been K-lined >_<
08:50:45 <GreaseMonkey> who k-lined you?
08:51:07 <GreaseMonkey> i think GregorR-Wtf would be more appropriate
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:13 <GreaseMonkey> bugger
08:52:30 <GreaseMonkey> i would advise a raw-log for next time something stupid happens
08:52:49 <GregorR-Foo> And that would help ... how?
08:53:42 <GreaseMonkey> you can catch everything that's catchable
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:35 <GreaseMonkey> you could catch an ERROR message
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:11 <GregorR-Foo> I sent an email to staff@...
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:36 <GreaseMonkey> wtf
08:56:38 <GreaseMonkey> they should
08:56:52 <GreaseMonkey> otherwise they should jack hyperion up the ass and switch to unreal
08:56:53 <GregorR-Foo> I'm just being pessimistic :P
08:57:33 <GreaseMonkey> oh ok
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:02:32 <GreaseMonkey> so you got it sorted?
10:41:48 -!- meatmanek has quit (Connection timed out).
11:00:00 <GreaseMonkey> gonna go to bed, gnight
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:30:33 <bsmntbombdood> wow!
18:31:03 <bsmntbombdood> you're one smart guy
18:32:33 <GregorR> :P
18:34:07 <bsmntbombdood> owtf my internets
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:39:51 <Sukoshi> GregorR: Ya here?
21:45:30 <GregorR> I am now.
21:45:36 <GregorR> Not for long.
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:46:44 <Sukoshi> Ah.
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:49:50 <Sukoshi> *to
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:02 <Sukoshi> ..........
21:51:07 <Sukoshi> Do you know what you're talking about?
21:51:10 <Bigcheesegs> yes
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.
22:55:39 <bsmntbombdood> Sukoshi: how do you implement it?
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:20:48 <Sukoshi> Yup.
23:21:16 <Sukoshi> The runtime has to be able to keep type information.
23:21:23 <bsmntbombdood> it does?
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:33 <bsmntbombdood> why not?
23:23:55 <oerjan> because the actual object might be of a subclass.
23:24:35 <bsmntbombdood> doesn't matter
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:27:12 <bsmntbombdood> oh
23:28:21 <Sukoshi> ?
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:29:45 <bsmntbombdood> what's the point of inheritance then?
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:35:48 <Sukoshi> Yes, that it does oerjan.
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:36 <bsmntbombdood> What do you mean dynamic?
23:38:50 <Sukoshi> Specifying classes during runtime == dynamic.
23:39:19 <bsmntbombdood> I thought the point was to have classes be static
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:40:48 <Sukoshi> What's the point?
23:40:49 <bsmntbombdood> it can, but the superclass method will be called
23:40:55 <Sukoshi> Exactly.
23:41:01 <Sukoshi> Haven't you played with CLOS, oerjan ?
23:41:06 <oerjan> nope.
23:41:10 <Sukoshi> Aha. That's why.
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:48 <Sukoshi> Probably.
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> Exactly.
23:49:00 <Sukoshi> That's the beauty of the system.
23:49:11 <bsmntbombdood> but that wouldn't work in C
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.
23:55:37 <oerjan> *information = tag
23:55:41 <oerjan> *s
2007-04-11
00:04:55 <Sukoshi> Well, we can wrap the extra info needed, no?
00:05:07 <oerjan> sure.
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:31 <Sukoshi> That was the plan.
00:37:47 <xor> but that's runtime
00:41:17 <GreaseMonkey> bsmnt^bomb
00:41:26 <GreaseMonkey> dood=bsmnt^bomb
00:41:28 <Sukoshi> Not neccessarily.
00:41:28 <GreaseMonkey> :D
00:41:34 <Sukoshi> It's parse time.
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:42:53 <lament> seems unlikely
00:43:02 <oerjan> not presently
00:43:25 <lament> lots of people used pascal. They're all dead now.
00:43:30 <Sukoshi> :P
00:43:38 <oerjan> eh, i am not dead.
00:43:40 <Sukoshi> No, I didn't understand.
00:43:45 <lament> oerjan: *bang*
00:44:04 <Sukoshi> Cap guns don't hurt, lament.
00:44:17 <lament> you think?
00:45:51 <Sukoshi> The sound-cap guns, I mean.
00:46:10 <lament> you think?
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:49 <Sukoshi> [/shameless plug]
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:09 <Sukoshi> Correct.
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:08 <ihope> I see.
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:35:00 <GregorR> No.
01:40:18 <GreaseMonkey> i love the way you define classes in plof
01:41:05 <GregorR> You mean prototypes :P
01:41:18 <GreaseMonkey> yah
01:41:28 <Pikhq> You mean objects. :p
01:41:44 <GreaseMonkey> hey, gregorr is the boss around here OK?
01:41:50 <GreaseMonkey> when talking about plof
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:44 <ihope> ...Darn.
01:42:50 <GreaseMonkey> var cow = [ age = 3, speak = { print("Moo"); }, shoot = { printf("MOOOOO! *splats*"); } ];
01:42:58 <GreaseMonkey> cow.speak(); cow.shoot();
01:43:07 <GreaseMonkey> afk, brb
01:43:12 <ihope> bbq?
01:43:25 <GregorR> Heh
01:44:15 <Pikhq> GregorR: I see.
01:44:42 <Pikhq> var Bessy = new(cow);
01:44:58 <GregorR> Bessy.stfu(roflcopter);
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:46:33 * GregorR <3 :
01:46:59 <ihope> Colons are nice.
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:08 <GreaseMonkey> back
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:14 <ihope> Interesting.
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:00:38 <GregorR> PAAAAAAAANSIEEEEEEEEEE
02:01:18 <Pikhq> GregorR: I'm redoing the Slackware package manager. . . That enough work for you?
02:01:48 <GregorR> Pffffffffffff ;)
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:05:38 <GreaseMonkey> i have a seven inch bread
02:05:46 <GregorR> Bow chicka bow wow.
02:06:54 <SevenInchBread> :)
02:07:12 <Pikhq> . . . Fine, I must confess. . .
02:07:23 <Pikhq> I'm just using Slax modules, except more. . . Modular.
02:07:28 <ihope> 21:05:21?
02:07:32 <GregorR> + SLS?
02:07:37 <Pikhq> SLS?
02:07:40 <ihope> And 20:42:43..
02:07:43 <GregorR> Errm
02:07:51 <GregorR> I forgot my own package's name X-P
02:07:52 <GregorR> SPS
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:37 <SevenInchBread> ihope, HI
02:08:38 <ihope> So that was a 22-minute-and-34-second summons.
02:08:45 <ihope> SevenInchBread: HELLO
02:08:53 <SevenInchBread> ANYTHING FOR EXECUTABLE FORMAT YET.
02:08:56 <SevenInchBread> so far the only thoughts
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:17 <SevenInchBread> a.out? :)
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:31 <SevenInchBread> oh yah
02:10:39 <ihope> SevenInchBread: can I call you Sev since my tab completion isn't working?
02:10:40 <SevenInchBread> cool then. ELF WE SHALL USE
02:10:45 <SevenInchBread> ....sure
02:10:46 <ihope> ELF WE SHALL USE?
02:10:49 <ihope> Sounds good.
02:10:54 <ihope> And interrupts for system calls?
02:10:57 <SevenInchBread> suuure
02:11:01 <SevenInchBread> oh like
02:11:02 <SevenInchBread> how?
02:11:04 <SevenInchBread> or...
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:19 <SevenInchBread> ...it is?
02:12:24 <ihope> Programs to summon up in a certain situation?
02:12:26 <ihope> What do you mean?
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:14:13 <SevenInchBread> but... is there any quick way to add onto that?
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:13 <ihope> That's us.
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:21 <SevenInchBread> ah... okay.
02:16:31 <ihope> Maybe that too.
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:17:35 <Pikhq> Try Minix.
02:18:06 <SevenInchBread> ....a bit easier in something like Python though.... since it's not an... OS.
02:18:17 <SevenInchBread> and that whole dynamic typing thing is nice.
02:19:09 <ihope> If it's not for the kernel, use whatever you want.
02:19:28 <SevenInchBread> -.- thanks....
02:19:31 <ihope> Indeed.
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:23:49 <ihope> apt-get ftw.
02:24:50 <SevenInchBread> ...sounds like we're making a good UNIX clone. -.-
02:24:57 <SevenInchBread> ...or just a bad one.
02:25:20 <ihope> Well, if we implement Linux binary support, Linux binaries will be supported.
02:25:25 <ihope> ...obviously.
02:27:20 * SevenInchBread doesn't know anything about this part.
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:29:45 <ihope> Pikhq: "copy"?
02:30:23 <Pikhq> Yeah.
02:30:48 <Pikhq> Just copy the package into /pkgs and the filesystem takes care of the rest.
02:31:07 <ihope> Interesting.
02:31:19 <ihope> PLEASE JOIN OUR OS PROJECT! I mean, hi.
02:31:27 <Pikhq> Join the Hurd.
02:31:34 <SevenInchBread> nope
02:31:35 <Pikhq> They could use some fresh blood.
02:31:42 <SevenInchBread> we're too cool for that.
02:31:48 * SevenInchBread is a zen anarchist.
02:32:11 <ihope> Also, 0672304759 looks really cool.
02:32:17 <SevenInchBread> .......what
02:32:23 <Pikhq> But you don't want to be part of an arcane sacrificial rite?
02:32:24 <ihope> 0672304759.
02:32:43 <SevenInchBread> ........what?
02:32:56 <SevenInchBread> FINE
02:32:57 <SevenInchBread> I HATE YOU ALL
02:33:00 <ihope> Google it.
02:33:04 <SevenInchBread> I'M FORKING OFF AND MAKING MY OWN DAMN OS
02:33:15 * SevenInchBread slams the door on his way out.
02:33:21 <ihope> I thought that was exactly what we were doing. :-P
02:34:06 <SevenInchBread> even better that I'm doing it twice.
02:34:17 <SevenInchBread> ....the Hurd does sound nifty though... even though I've never seen.
02:34:20 <SevenInchBread> it
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:18 <SevenInchBread> >.> sounds like... a lot of OSes :)
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:27 <SevenInchBread> ...I know -I- don't want to write a microkernel.
02:41:27 <ihope> That's very true.
02:41:49 <ihope> Preferably a public domain one, since being public domain is part of Abrasax philosophy... isn't it?
02:42:43 <SevenInchBread> ....yes.
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:17 <ihope> Must be, rather.
02:49:29 <ihope> With that, I'm out for bed. Isn't the Google Groups thing wonderful? ;-)
02:49:57 <SevenInchBread> well.... that sucks.
02:53:28 <Pikhq> That's the whole *point* of the license. . .
02:54:42 <SevenInchBread> to.... proliferate the licence?
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:16 <SevenInchBread> pfft... that's not much better than a copyright.
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:58:43 <SevenInchBread> why not public domain though?
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:07:20 <SevenInchBread> -nod- so then I'm correct.
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:42 <SevenInchBread> hmmm?
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:52 <Pikhq> Really?
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:20 <SevenInchBread> the right to have free access to the software....
03:13:31 <SevenInchBread> with a pointed lack of adjectives there.
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:28 <SevenInchBread> ....there's a list of freedoms?
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:36 <Bigcheesegs> yes, in the preambl
03:14:37 <Pikhq> http://www.gnu.org/philosophy/free-sw.html
03:14:49 <SevenInchBread> heh, the only enumerable quantity is rules.
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:11 * GregorR stabs everyone.
03:15:14 <Pikhq> GregorR: Yes.
03:15:29 <SevenInchBread> EMACS IS SUPERIOR TO VIM
03:15:32 <Bigcheesegs> lol
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:00 <SevenInchBread> ...I think they both suck
03:16:00 * Bigcheesegs likes gui...
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:00 <Bigcheesegs> Ignoring the non-free, why is it horible?
03:17:17 <GregorR> And fourth OH MY GOD ALL OF THESE TOPICS MAKE ME WANT TO KILL EVERYONE
03:17:24 <GregorR> *stab stab stab*
03:17:28 <Bigcheesegs> lol
03:17:35 <Bigcheesegs> What should we talk about then?
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:18:27 <Bigcheesegs> who does that? :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:10 <Bigcheesegs> Keybord short cuts...
03:20:26 <Pikhq> Um, yeah. . .
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:13 <Bigcheesegs> only IDEs
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:19 <SevenInchBread> like... "emacs... with a GUI that doesn't blow"
03:22:43 <Pikhq> IMO, the programs that are really quick to use usually have a steep learning curve out of necessity.
03:22:51 <Bigcheesegs> true
03:22:58 <oerjan> but - gvim is a visual interface.
03:23:03 <SevenInchBread> not really...
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:24:44 <SevenInchBread> haha... I wouldn't mind it.
03:24:52 <SevenInchBread> You have to learn somehow.
03:25:01 <Bigcheesegs> IDE is't only for beginners
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:26:09 <Bigcheesegs> Who waists time...
03:26:15 <Bigcheesegs> doing useless crap
03:26:19 <Pikhq> Exactly.
03:26:33 * Bigcheesegs looks at esoteric programming
03:26:36 <Bigcheesegs> :P
03:26:44 * SevenInchBread codes raw assembly opcodes in notepad.
03:26:56 <SevenInchBread> non of this fancy mnemonic garbage.
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:39 <SevenInchBread> I like... GCLIs.... graphical command lines.
03:28:43 <Bigcheesegs> testing somthing --------> ????
03:28:47 <SevenInchBread> pretty pictures with full keyboard.
03:28:50 <Pikhq> Call me up when you are able to mouse at 70wpm.
03:28:52 <SevenInchBread> ...and the ocassional mouse.
03:28:57 <Bigcheesegs> wtf, why cant mIRC handle japanese text...
03:29:20 <Pikhq> ぼくは知らない。
03:29:22 <Bigcheesegs> Pikhq: don't make mistakes, then you never need to use a mouse :P
03:29:30 <Bigcheesegs> see, i can see that....
03:29:52 <Pikhq> Bigcheesegs: Yeah, actually, I don't need a mouse. . .
03:30:07 <SevenInchBread> ...Pik is just that badass.
03:30:29 <Bigcheesegs> ya, well I use magnets to set the bits on my harddrive to program :P
03:30:29 <SevenInchBread> I don't even need a keyboard.
03:30:42 <SevenInchBread> you too?
03:30:49 <Bigcheesegs> Pikhq: whats the hiragana for that kanji?
03:30:54 <Pikhq> Shi.
03:31:05 <Pikhq> し, rather.
03:31:26 <SevenInchBread> web browsing... for example... is generally nicer with a GUI.
03:31:32 <SevenInchBread> ....generally.
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:43 <Bigcheesegs> i think
03:31:59 <SevenInchBread> Pikhq, Conkeror? I think I've used it... but it kinda sucked.
03:32:04 <Pikhq> ら != ち
03:32:16 <Bigcheesegs> = ?
03:32:25 <Pikhq> ra != chi
03:32:33 <Bigcheesegs> ahhh
03:32:34 <Bigcheesegs> ok
03:32:36 <Pikhq> SevenInchBread: It's an Emacs-style interface to Firefox.
03:32:43 <SevenInchBread> ....yep
03:32:58 <Bigcheesegs> is Konkeror a firefox rename?
03:32:59 <SevenInchBread> Firefox however... does not suck to me. and thus I think this has taught me a lesson.
03:33:02 <Pikhq> Bigcheesegs: No.
03:33:08 * Pikhq <3 Emacs. . .
03:33:08 <Bigcheesegs> what is it?
03:33:23 * GregorR <3 Plof
03:33:23 <Pikhq> Konkeror is the KDE web browser.
03:33:31 <GregorR> Time to write Plofmacs :P
03:33:35 <Sgeo> Konqueror
03:33:35 <SevenInchBread> Its like... KDEs file/directory/web browser.
03:33:51 <Pikhq> 私もプロフが大好きです。
03:33:56 <Sgeo> Konqueror is to KDE what IE is to Windows
03:33:57 <Bigcheesegs> err, so did you say "I am strange"
03:33:57 <Sgeo> >.>
03:34:08 <Pikhq> Um. . . No.
03:34:13 <Bigcheesegs> :P
03:34:14 <Pikhq> I don't know is what I said.
03:34:20 <Bigcheesegs> oh
03:34:46 <Bigcheesegs> isnt that "wakarimasen"
03:34:48 <Bigcheesegs> or somthing like that
03:34:58 <Pikhq> From "知る", to know. . .
03:35:21 <Pikhq> And conjugated into plain negative form. . .
03:35:26 <Bigcheesegs> ah
03:35:29 * SevenInchBread has always wanted to make his own GUI toolkit.
03:35:34 * Bigcheesegs needs to un nub his jap :P
03:35:43 <Pikhq> Bigcheesegs: That's formal negative of "わかる", to understand.
03:35:43 <Bigcheesegs> SevenInchBread: why?
03:35:50 <SevenInchBread> ...I think it'd be fun.
03:35:51 <Bigcheesegs> there are like, a bunch :P
03:35:53 <Bigcheesegs> ah
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:21 <Bigcheesegs> Pikhq: are you on *nix atm?
03:36:44 <Pikhq> Bigcheesegs: Yeah.
03:36:52 <Bigcheesegs> xchat? or what irc
03:37:07 <SevenInchBread> my primary project at the moment is a MUD.
03:37:08 <Bigcheesegs> and what IME are you using, i'm trying to find one to put on my nix box
03:37:09 <SevenInchBread> ...fun fun fun
03:37:17 <Bigcheesegs> SevenInchBread: MUDs are cool
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:37:39 <Bigcheesegs> Lineage II = an MMO
03:37:47 <SevenInchBread> ah.
03:38:08 * SevenInchBread plays roleplay-intensitive MUDs... so by default he considers MMOs a work of the devil.
03:38:16 <Bigcheesegs> lol
03:38:21 <Bigcheesegs> Lineage II = pvp
03:38:30 * SevenInchBread smiles politely.
03:38:33 <Bigcheesegs> no roleplay
03:38:36 <Bigcheesegs> unless your weird
03:38:40 <Bigcheesegs> then somone just kills you
03:38:42 * SevenInchBread smiles politelier
03:38:54 <SevenInchBread> SOUNDS... UH.... FUN
03:38:58 <Bigcheesegs> YA
03:39:08 <Bigcheesegs> Pikhq: thanks for the info
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:19 <SevenInchBread> ...I couldn't get my network card to work on Kubuntu
03:40:23 <SevenInchBread> so... still on Windows.
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:47 <Pikhq> s/are\ so/or\ so/
03:40:51 <GregorR> And bloated beyond belief.
03:40:52 <Pikhq> Agreed, Gregor. . .
03:40:57 <Bigcheesegs> bloated...
03:41:00 <Bigcheesegs> true dat
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:49 <Bigcheesegs> GregorR: ya, i refuse to get vista
03:41:52 <Bigcheesegs> freeking DRM :P
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:17 <Bigcheesegs> lol
03:42:21 <GregorR> Heheh
03:42:21 <GreaseMonkey> shiiiit...
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:39 <Bigcheesegs> and then it's using 300mb
03:42:47 <Bigcheesegs> tabs*
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:40 <Bigcheesegs> bash and ps :P
03:43:53 <Pikhq> ps only lists the processes in your current session.
03:43:57 <Pikhq> Try ps -ae.
03:43:58 <Bigcheesegs> oh
03:44:01 * Bigcheesegs tries
03:44:08 <Pikhq> Hell. . .
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:44:58 <GreaseMonkey> hint: the last one shoud be "less"
03:45:00 <Bigcheesegs> lol, that things running a celeron :(
03:45:17 <Pikhq> GreaseMonkey: What? less != less?
03:45:26 <Bigcheesegs> less == less
03:45:58 <Bigcheesegs> unless less is volitile and you're doing multi threading w/o sync :P
03:46:08 <Pikhq> :p
03:46:18 <Bigcheesegs> I LOVE multi threading
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:02 <Bigcheesegs> can gcc detect race conditions?
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:22 <Pikhq> gcov and gprof?
03:48:32 * Bigcheesegs has never heard of them
03:48:36 * Bigcheesegs asks wikipedia
03:48:49 <Pikhq> See the GCC documentation (under Gcov) for details on how to use it. . .
03:49:32 <Bigcheesegs> thats the only thing VS doesn't have...
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:50:50 <Bigcheesegs> link time code generation
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:07 <Bigcheesegs> It already does that :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:54:07 <Bigcheesegs> oh
03:54:14 * Bigcheesegs din't look at what you wrote :P
03:54:48 <Bigcheesegs> sqrt(abs(x^2)) = x, now i see :P
03:54:59 <Pikhq> Yeah.
03:55:13 <oerjan> YM = abs(x)
03:56:29 <Bigcheesegs> Well, nice chat, I'm going to sleep now, so later.
03:57:21 -!- calamari has joined.
03:59:49 <GreaseMonkey> night Bigcheesegs
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:49:37 <RodgerTheGreat> howdy, folks
04:49:52 <RodgerTheGreat> has anything interesting been going on recently?
04:57:01 <GregorR> Plof2 8-D
04:57:57 <GreaseMonkey> Plof2 8=D
04:58:43 <GregorR> ZOMG HE HAS TWO NOSERS
04:58:56 -!- bsmntbombdood has joined.
04:59:03 <RodgerTheGreat> heh
05:05:35 <bsmntbombdood> using vi is not a sin, but a penence
05:06:35 <GreaseMonkey> don't you know what 8=D is?
05:07:32 <GregorR> Other than a two-noser?
05:10:19 <GreaseMonkey> yeah
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:21:40 <GreaseMonkey> something like that
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:01:04 <GreaseMonkey> can't make your mind up?
09:26:36 -!- calamari has quit ("Leaving").
10:35:46 <GreaseMonkey> gonna go, gnight (galitteration!)
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]").
2007-04-12
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:50:25 <GreaseMonkey> gonna sleep, gnight
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:13 <Figs> ...
14:17:29 <Figs> Will post source if desired
14:17:44 * Figs pokes Bigcheesegs
14:17:47 <Figs> Hello :)
14:20:38 <Figs> http://rafb.net/p/QQKEbi39.html
14:20:39 <Figs> source
14:20:42 <Figs> 1191 lines!
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:27:56 <Figs> :(
14:28:03 <Figs> Guess no one likes mario and zelda any more :(
14:28:18 <Figs> shucks.
14:40:30 <Bigcheesegs> lol
14:42:04 * Bigcheesegs compiles
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").
2007-04-13
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:02 <Figs> Hello.
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:20 <Figs> :D
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:48:08 <GreaseMonkey> i know bsmnt does
06:51:37 <Figs> not I, :(
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:29 <GreaseMonkey> meh, i made one a few days ago
06:56:45 <GreaseMonkey> http://greasemonkey.nonlogic.org/lsq101002.tar.gz
06:56:54 <GreaseMonkey> ^ plays *.VGM files
06:57:17 <Figs> uses the computer internal speaker?
06:57:29 <GreaseMonkey> no, it dumps them
06:57:33 <GreaseMonkey> into a file
06:57:37 <Figs> I don't know what .VGM is :P
07:00:52 <GreaseMonkey> bummer
07:01:03 <GreaseMonkey> oh well, it comes with an example
07:19:08 <oklopol> hmm... i should make my musical brainfuck possibility of making tones... since it now only handles raw data... maybe ':' & ';'
07:19:13 <oklopol> schoolz --------->
07:19:50 <Figs> ;p
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:21:40 <Figs> :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:26:09 <Figs> bye?
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:01 <Figs> OMG ROFL
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:06:21 <GreaseMonkey> gonna go sleep now, gnight
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:15:27 <nooga> eh
21:19:16 <nooga> forth is hella werid
21:19:26 <nooga> bbl
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?)
2007-04-14
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:19:51 <Sukoshi> :)
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:00:37 <lament> ?
01:01:11 <Sukoshi> No, it's a roguelike with inspiration from Harvest Moon.
01:01:11 <Sukoshi> Concept:
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:03:52 <Sukoshi> It does now, bub.
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:20 <lament> so?
01:06:26 <Sukoshi> So.
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:11:47 <SevenInchBread> OH OH OH
01:11:50 <SevenInchBread> I'll help.
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:14:48 <ihope> Count me in!
01:15:46 <SevenInchBread> ...eh, it's possible/likely.
01:22:40 -!- calamari has joined.
01:25:13 <SevenInchBread> ihope, eh.. but I'll try not to be cynical.
01:25:26 <ihope> Hmm?
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:26:52 <ihope> Indeed we will.
01:29:06 * SevenInchBread is looking for a public domain microkernel
01:31:09 <Sukoshi> No, not MUD.
01:34:16 <SevenInchBread> if we need to make our own kernel...
01:34:23 <SevenInchBread> I say go with the minimalist of the minimal.
01:34:43 <SevenInchBread> just a flimsy layer over the hardware...
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:43:21 <SevenInchBread> ...what?
01:43:57 <SevenInchBread> yeah... the security doesn't come till later.
01:46:05 <ihope> You mean the lower kernel doesn't have division of privileges at all?
01:46:48 <Sukoshi> I can eat banannas?
01:46:51 <Sukoshi> So, about Pascal.
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:48:51 <Sukoshi> Why not make a Forth OS?
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:50:30 <SevenInchBread> It's one huge... callback-thingy.
01:51:42 <ihope> Callback-thingy?
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:14 <Sukoshi> You fiends.
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:55:58 <Sukoshi> Yes you can.
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:03:18 <ihope> What's REPL?
02:03:25 <Sukoshi> Read-Eval-Print-Loop.
02:03:48 <SevenInchBread> ihope, system calls are like a library... yes
02:04:36 <Sukoshi> http://www.amresearch.com/v6/
02:04:38 <Sukoshi> <-- Read there.
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:07:48 <SevenInchBread> ...might want to check Sukoshi's fanatic-o-meter
02:08:09 <SevenInchBread> Sukoshi, so it's an.... interactive interpreter?
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:35 * SevenInchBread thought that was a common thing.....
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:21 <Sukoshi> It's sarcasm.
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:47:37 <SevenInchBread> so
05:47:43 <SevenInchBread> how do you run a process in the background again?
05:47:49 <oerjan> &
05:47:51 <SevenInchBread> like... in Linux distros
05:47:56 <SevenInchBread> hmmm... that doesn't seem to be working
05:48:05 <SevenInchBread> is that on all linux distros?
05:48:15 <oerjan> & after the statement
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:18 <oerjan> once upon a time yes
05:49:27 <Sukoshi> Do you think it is better than C?
05:49:32 <Sukoshi> (Sort of curious.)
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:35 <SevenInchBread> oerjan, example?
05:54:49 <Sukoshi> SevenInchBread: ``ls > grep -i hi''
05:54:51 <Sukoshi> Errrr
05:54:55 <Sukoshi> ls | grep -i hi
05:55:11 <SevenInchBread> ....what's the |
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:56:17 <Sukoshi> For that you use >
05:56:34 <SevenInchBread> so.... dev/null > SomeApp?
05:56:39 <Sukoshi> Errr...
05:56:50 <oerjan> SomeApp >/dev/null
05:56:50 <Sukoshi> ``cat /dev/null | app''
05:57:04 <Sukoshi> > redirects output to an FD.
05:57:12 <oerjan> SevenInchBread: ignore Sukoshi :)
05:57:21 <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
05:58:31 <SevenInchBread> ...and the ampersand isn't working
05:58:42 <Sukoshi> It has to.
05:58:50 <SevenInchBread> .....well it's not
05:58:50 <Sukoshi> ``xchat &,,
05:58:58 <Sukoshi> *``xchat &''
06:00:31 <oerjan> ah yes, &>file takes both stdout and stderr, at least in bash
06:00:41 <Sukoshi> Does the same in ZSH.
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:04 <Sukoshi> They do sometimes.
06:02:08 <Sukoshi> oerjan: O_O
06:02:20 <Sukoshi> 人殺し!!!!
06:02:20 <oerjan> yes, errors i guess.
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:12 <oerjan> oh, i see.
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:04:47 <oerjan> my memory is hazy.
06:04:54 <Sukoshi> What WM does he use?
06:05:41 <SevenInchBread> WM?
06:07:21 <Sukoshi> Window Manager ....
06:07:27 <SevenInchBread> ...I don't know.
06:08:52 <Sukoshi> .....
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:10:42 <SevenInchBread> hmmm?
06:11:33 <oerjan> anyhow, have you tried "command &>/dev/null </dev/null &" ?
06:12:49 <SevenInchBread> nope.
06:14:03 <oerjan> that's the closest i can think of, removing all connections to the terminal i hope
06:15:24 <bsmntbombdood> SevenInchBread: um, learn how to use a shell
06:15:25 <SevenInchBread> that's not the problem though... it just needs to run without the shell being there
06:15:35 <SevenInchBread> it did this normally with the & in the past
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:16:17 <bsmntbombdood> disown
06:16:28 <SevenInchBread> >.> those all sound very... out of the way.
06:16:35 <bsmntbombdood> disown
06:16:41 <SevenInchBread> Isn't there just a way to make it work with &?
06:16:45 <GregorR> Should I get a green fez?
06:16:50 <bsmntbombdood> nohup
06:17:12 <oerjan> ah, nohup.
06:17:32 <oerjan> i guess that's it.
06:18:39 <oerjan> yeah, disown too.
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:28:57 <bsmntbombdood> what's 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:05 <GregorR> Well, I ordered it.
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:38:01 <GregorR> I also ordered a tricorn.
06:38:37 <bsmntbombdood> ...
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:22 <GregorR> How is "drei" pronounced?
06:43:27 <oerjan> somewhat disturbing that the google hits all spell it differently...
06:43:32 <GregorR> lol
06:43:49 <bsmntbombdood> GregorR: dry
06:43:58 <oerjan> more or less
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:50:57 <GregorR> Noyce :-P
06:51:08 <GregorR> We can thank the Great Vowel Shift for that (probably)
06:51:49 <oerjan> i should think so.
07:00:28 <bsmntbombdood> we should all speak the same language
07:00:33 <bsmntbombdood> then build a tower to heaven
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:03:06 <GregorR> Egg-zactly.
07:03:10 <GregorR> X-P
07:04:53 <oerjan> and besides, the spelling of Hebrew seems to be even worse.
07:06:16 -!- iano has quit.
07:17:34 <lament> doubtful
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:30:29 <GregorR> Same with hieroglyphs :P
07:31:42 <oerjan> ic
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:34:25 <GregorR> ?
07:35:03 <oerjan> allowing me to find out what "skimmer" may mean
07:35:37 <GregorR> Ah :P
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:23 <GregorR> I guess so.
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:30 <bsmntbombdood> lol hat
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:23 <GregorR> And it cost $112 O_O
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:01 <Sukoshi> *can't
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:13:22 <Sukoshi> Exactly.
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:04 <Sukoshi> .
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).
10:59:52 <GreaseMonkey> gnight everone
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:35:38 <SevenInchBread> ihope, hmmm
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:00 <SevenInchBread> at least at the most basically level
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:44:19 <SevenInchBread> except most of them have nothing to do with errors
18:44:29 <SevenInchBread> a process. :)
18:45:16 <SevenInchBread> paradoxical, no? But definetely possible.
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:47:29 <SevenInchBread> they're part of the hardware
18:47:33 <SevenInchBread> (some of them)
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:48:52 * ihope ponders
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:49:34 <SevenInchBread> well... the system calls will be in kernel land.
18:49:41 <SevenInchBread> so... yes
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:51:54 <ihope> Could be done.
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:55:19 * SevenInchBread nods
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:57:50 <SevenInchBread> interupts
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:58:45 <ihope> Pikhq: GNU Mach?
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:03:39 <SevenInchBread> *worrting
19:03:44 <SevenInchBread> *worrying
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:05:59 <SevenInchBread> ....probably don't need all of those
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:17 <SevenInchBread> ....that's -always- how processes are switched
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:09:44 <SevenInchBread> ...I don't know.
19:10:44 <ihope> So system calls are needed?
19:11:04 <SevenInchBread> ......of course they are.
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:09 <SevenInchBread> *wait
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:00 <SevenInchBread> no.. the permission response
19:14:13 <SevenInchBread> you're right about the supervisor mode thing...
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:32 <SevenInchBread> ...guess. :)
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:28 <SevenInchBread> you lost me.
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:00 <SevenInchBread> -cough- well, if you gave processes names....
19:20:53 <ihope> And what handles those names? The kernel?
19:21:16 <SevenInchBread> possibly
19:22:18 <ihope> Can you think of a way it could be otherwise?
19:22:19 <SevenInchBread> makes sense to me
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:25:10 <SevenInchBread> *sheer
19:26:09 <ihope> How about calling them interfaces, then?
19:26:31 <SevenInchBread> ....reminds me of OO. even worse than service
19:26:34 -!- nooga has quit ("Lost terminal").
19:26:39 <SevenInchBread> I like "names".
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:28:59 <SevenInchBread> same reason we'd call it any other name
19:29:02 * ihope wonders...
19:29:07 <ihope> How about we call them vistas?
19:29:11 <ihope> Or windows?
19:29:24 <ihope> :-P
19:29:28 <SevenInchBread> buttons?
19:29:37 <SevenInchBread> -ahem- NAMES IT IS
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:43 <SevenInchBread> OH
19:31:46 <SevenInchBread> here's an idea
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:32:19 <SevenInchBread> and "flags" can be a totally different concept.
19:32:33 <SevenInchBread> so a permission becomes a more like a check.
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:35:29 <SevenInchBread> "canRead" is that one name.
19:35:36 <SevenInchBread> one ring to rule them all?
19:36:23 <SevenInchBread> yeah... canRead can be registered to one process... which handles all the other processes... or whatever
19:36:58 <ihope> Yup, sounds good.
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:38:47 <SevenInchBread> >.> why do we need that again?
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:39:50 <SevenInchBread> can't we do that like we do the rest of the flags?
19:40:02 <SevenInchBread> invoke("hasflag", 5, "omnipotence")
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:41:52 <SevenInchBread> ....what the hell does that even mean?
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:33 <SevenInchBread> not really...
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:37 <ihope> Not really?
19:44:44 <SevenInchBread> I was saying the permissions can be just like servies
19:44:51 <ihope> How?
19:44:53 <SevenInchBread> that execute a number of programs... to check for a certain condition.
19:45:01 <SevenInchBread> like this
19:45:17 <SevenInchBread> invoke("canread", 5, some/file)
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:46:39 <SevenInchBread> or something similar.
19:46:47 <SevenInchBread> yeah... it just returns a success value
19:46:56 <ihope> That could work.
19:46:56 <SevenInchBread> ...most likely as an exit code
19:47:16 <SevenInchBread> that's all a permission is... a yes or a no
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:50:16 <SevenInchBread> so it can just send 0 or 1 back to a request message
19:50:22 <SevenInchBread> as a reply
19:51:26 <ihope> Actually, "allow/deny/sdeny", sdeny denying the request but not telling the process that it's been denied.
19:51:45 <SevenInchBread> ... I don't see how those fit in as syscalls
19:52:11 <SevenInchBread> I like just having permissions as names
19:52:13 <ihope> <ihope> Maybe we could have an "allow/deny" system call.
19:52:25 <SevenInchBread> and use the invoke-name call to ask permissions
19:52:47 * ihope ponders
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:43 <SevenInchBread> it would be a IPC thing...
19:54:56 <ihope> That's what I've been saying.
19:55:28 <SevenInchBread> to reply to a paticular message...
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:05 <SevenInchBread> ls isn't a system call though
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:56:57 <SevenInchBread> it is.. in a way.
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....
19:58:32 <SevenInchBread> sure.
20:01:10 * SevenInchBread will get a shower and then be back
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:13:30 <oklopol> ah, set
20:14:13 <oklopol> does the 'set containment symbol' have a _more official sounding_ name?
20:18:39 <ihope> I don't think so.
20:19:28 <ihope> Just like there's no "more official-sounding" name for the Unicode character INFINITY.
20:20:50 <oklopol> well you can say INFZORZ
20:21:08 <oklopol> that's a lot more official
20:39:43 <SevenInchBread> I call it a membership test
20:39:47 <SevenInchBread> ....which sounds official
20:40:02 <SevenInchBread> ihope, alright... back... and... NEW IDEAS
20:40:08 <Bigcheese> good
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:40:31 <SevenInchBread> er... syscalls
20:40:39 <lament> LOLZBIG
20:40:44 <lament> instead of INFINITY
20:40:53 <Bigcheese> ...
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:11 <ihope> System calls?
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:43:16 <SevenInchBread> so it can make the alloc and dealloc call.
20:43:30 <SevenInchBread> but also do things like check permissions
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:46:37 <SevenInchBread> fuck intellectual property.
20:46:49 <SevenInchBread> You can't trademark a fucking NAME... Jesus Christ.
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 <SevenInchBread> yeah
20:50:11 <Bigcheese> SevenInchBread: just like most ppl
20:50:24 <Bigcheese> VLC breaks the DMCA
20:50:28 <Bigcheese> with the dvd code
20:50:31 <Bigcheese> but noone cares
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:08 <Bigcheese> Anyyywayyyyy...
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:51:51 <Bigcheese> what else is there?
20:52:05 <SevenInchBread> there's quite a few fully complete microkernels out there.
20:52:19 <Bigcheese> are any foss?
20:52:23 <SevenInchBread> there's a big family of them called L4
20:52:25 <SevenInchBread> foss?
20:52:31 <Bigcheese> free open source software
20:52:46 <Bigcheese> l4 is, thats what GNUHurd is bassed on
20:52:54 <SevenInchBread> Mach is open source.
20:53:01 <SevenInchBread> but none of them are public domain.
20:53:11 <Bigcheese> bsd-like
20:53:12 <Bigcheese> ?
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:53:32 <SevenInchBread> ihope, I disregard intellectual property altogether.
20:53:34 <Bigcheese> same with pattents
20:54:03 <ihope> Bigcheese: what do you mean, used for retarded things?
20:54:38 <Bigcheese> like a trademark on a common word
20:55:00 <SevenInchBread> ...such as Sophia.
20:55:02 <SevenInchBread> :)
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:35 <Bigcheese> crap like _tabs_
20:55:35 <lament> for example
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 <Bigcheese> Tabs as in, firefox tabs
20:56:29 <lament> and had to change the name
20:56:32 <Bigcheese> in software
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:11 <Bigcheese> you should make a c++ kernel :P
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.
20:58:41 <ihope> And it's live.
20:58:45 <SevenInchBread> ....fuck it.
21:00:25 <SevenInchBread> we've got alloc, dealloc, magichat, demagichat, kill, hmmmm.... what else do we need... fork?
21:00:53 <Bigcheese> fork is stupid :P
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:11 <Bigcheese> Name it
21:01:19 <Bigcheese> ohnoesitsamicrokernel
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:01:53 <ihope> For now.
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:13:45 <SevenInchBread> s
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:18 <bsmntbombdood> sbrk(2)?
21:19:24 <SevenInchBread> alloc(pid, size, stataddress)
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:21:32 <bsmntbombdood> malloc is implemented in the libc using sbrk
21:21:52 <SevenInchBread> what does that do?
21:22:52 <GregorR> That extends the break. There is a single "line" in the memory space between "allocated" and "unallocated" memory.
21:22:59 <GregorR> sbrk increments that.
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:31 <Bigcheese> threads are sexy
22:01:42 <bsmntbombdood> what happens when a bunch of guys who know nothing about OS design try to design an OS
22:02:14 <SevenInchBread> something magical?
22:02:50 <bsmntbombdood> something worthy of tears
22:02:59 <Bigcheese> or both?
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:38:33 <SevenInchBread> right now I've just got addthread(pid, prog, pc)
22:41:00 <Bigcheese> pthreads
22:41:02 <Bigcheese> :P
22:41:20 <Bigcheese> But basicly start, stop, eatcheese
22:41:33 <Bigcheese> join
22:41:35 <SevenInchBread> .....what's the last one?
22:41:39 <SevenInchBread> and... the last last one
22:42:24 <Bigcheese> join gets the return value of a thread and frees it's memory
22:42:27 <Bigcheese> (stack)
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:20 <Bigcheese> they do
22:43:27 <Bigcheese> they have their own stack tho
22:43:40 <SevenInchBread> ah... you mean... "the memory containing information about the thread"
22:43:46 <SevenInchBread> not... the threads allocated memory right?
22:43:49 <Bigcheese> and the stack
22:43:50 <Bigcheese> :P
22:43:54 <SevenInchBread> ...what stack?
22:43:58 <Bigcheese> ...
22:44:01 <Bigcheese> err
22:44:12 <Bigcheese> like if you declare an int in a function
22:44:16 <Bigcheese> it's put on the stack
22:44:29 <SevenInchBread> so..... the memory?
22:44:32 <Bigcheese> (well, it could be in a register, but w/e
22:44:33 <Bigcheese> )
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:15:24 <Bigcheese> Other than alocate it
23:15:28 <Bigcheese> i don't think so
23:33:30 <ihope> bsmntbombdood: so you're saying we're probably going to create a terrible operating system?
23:34:03 <bsmntbombdood> maybe
23:34:12 <GregorR> Maybe probably? :P
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.
2007-04-15
00:06:09 <SevenInchBread> I'd like to make a terrible OS... sounds like fun
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:06 <SevenInchBread> hmmm.... let's see...
00:10:35 <GregorR> ihope__: So, multiboot compliant in both senses? :P
00:10:45 <ihope__> Indeed.
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:11:44 <bsmntbombdood> SevenInchBread: system calls
00:11:47 <SevenInchBread> So GRUB is GRUB-compliant?
00:11:49 <ihope__> Maybe.
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:13:56 <ihope__> I guess that's true.
00:14:00 <SevenInchBread> bsmntbombdood, yes I know... but you can plug any number of callbacks onto them.
00:14:08 <SevenInchBread> I'm thinking more along the lines of a "hook"
00:14:08 <bsmntbombdood> you put the system call number in one of the registers and call int 0x80
00:15:27 <SevenInchBread> http://en.wikipedia.org/wiki/Hooking
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:10 <Figs> it's in C
00:45:21 <Figs> good luck figuring out what it does (without compiling)
00:46:10 <ihope> What's the _ do?
00:46:19 <ihope> In main(t,_,a)
00:46:20 <Figs> I have no fucking idea.
00:46:24 <Figs> but it compiles
00:46:30 <Figs> and it runs
00:46:32 <GregorR> Presumably it's argv
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:50:02 <Figs> :P
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:50 <Figs> hi
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:13 <Figs> oohhh
01:04:15 <Figs> I get it
01:04:23 <Figs> the first part of it, at least
01:07:30 <Figs> oh good grief
01:07:30 <Figs> >.<
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:24 <SevenInchBread> well... I did.
01:31:34 <SevenInchBread> but... it wasn't complete... as there was a lot of unanswered things in it.
01:31:36 <SevenInchBread> and I lost 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:31 <ihope> Oh, how nice.
02:32:39 <ihope> You, bsmntbombdood?
02:34:47 <Bigcheese> My dad wrote his own :P
02:34:55 <Bigcheese> Duno what he started with tho
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:09 <Bigcheese> for?
02:38:31 <Figs> obfuscated program I'm working on
02:38:34 <Figs> (as the output)
02:39:53 <Bigcheese> bash.org
02:39:55 <Bigcheese> find one :P
03:15:35 -!- Pikhq has joined.
03:49:52 -!- GreaseMonkey has joined.
03:56:57 <Figs> bah ba bah di baaa bah... Bah?
03:57:48 <Bigcheese> adena?
04:06:25 <ihope> Adenosine!
04:06:30 <ihope> Triphosphate!
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:18 <Figs> oh
04:08:23 <Figs> at first I thought you were spelling PORK
04:08:28 <Figs> but then I saw then N
04:08:44 <Bigcheese> ya...
04:08:46 <Bigcheese> who wants pork
04:09:01 <Figs> Gimme an R! Gimme an O! Gimme an F! Gimme an L!
04:11:46 <Bigcheese> err
04:11:58 <Bigcheese> or just an s.t.f.u
04:11:59 <Bigcheese> :P
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:16 <Bigcheese> hmm
04:13:17 <Bigcheese> err
04:13:20 <Bigcheese> no
04:13:21 <Bigcheese> :P
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:13:26 <Bigcheese> mabey
04:13:27 <Bigcheese> i duno
04:13:39 <SevenInchBread> that's what linux does... for network adapters
04:13:43 <Bigcheese> GregorR: that was almost funny
04:13:47 <Bigcheese> it might even be funny
04:13:53 <GregorR> Doubtful.
04:13:53 <Bigcheese> in fact, i think it is
04:13:54 <Bigcheese> :P
04:14:02 <SevenInchBread> ...I smell an esolang idea.
04:14:06 <GregorR> lol
04:14:13 <Figs> ;p
04:14:15 <GregorR> Gimme a branch!
04:14:20 <GregorR> Gimme a loop!
04:14:29 <Figs> Branch
04:14:31 <Figs> Loop
04:14:34 <Bigcheese> wow
04:14:36 <Bigcheese> that would be
04:14:37 <Bigcheese> random
04:15:41 <Bigcheese> ok, sense this is #esoteric
04:15:46 <Bigcheese> lets come up with the syntax
04:15:47 <Figs> Gimme a Gimme an L when I have no Z in X.
04:15:57 <Figs> X!=Z;
04:16:04 <Figs> -->F;
04:16:15 <Figs> //F==L
04:16:16 <SevenInchBread> ....why not do...
04:16:21 <ihope> For characters we can use their Unicode thingies.
04:16:22 <Figs> GO F!!!!
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:18:21 <Bigcheese> hmm
04:18:26 <Bigcheese> it would be like
04:18:46 <Bigcheese> Gimme a H and put it in var foo!
04:18:47 <Bigcheese> :P
04:19:00 <SevenInchBread> ...you people are terrible.
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:44 <Bigcheese> Francais
04:19:45 <Bigcheese> ...
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:09 <Bigcheese> ?
04:20:12 <Bigcheese> wow
04:20:13 <Bigcheese> anyway
04:20:15 <Bigcheese> -
04:20:23 <Bigcheese> would be one thing ichi could be
04:20:29 <Bigcheese> :P
04:20:35 * SevenInchBread ...should implement bugSophia
04:20:53 <Figs> Gimme a JAPANESE KANJI KIN.
04:20:54 <ihope> Figs: that's a Unicode character?
04:21:07 <Figs> should be
04:21:42 <ihope> Gimme a RUPTURE, SPLIT APART, COLLAPSE!
04:21:51 <ihope> (U+5D29)
04:22:01 <Bigcheese> ????
04:22:04 <Bigcheese> WOW
04:22:05 <Bigcheese> WTF
04:22:10 <ihope> So what's this JAPANESE KANJI ichi look like in UTF-8?
04:22:12 <ihope> Bigcheese: what?
04:23:00 <SevenInchBread> ....you know... they don't have to be gimme a somethings
04:23:03 <SevenInchBread> +all
04:23:08 <Bigcheese> im trying to get mIRC to send unicode
04:23:17 <Bigcheese> ??
04:23:17 <ihope> SevenInchBread: only the characters. :-)
04:23:21 <GregorR> mIRC can barely /receive/ Unicode :P
04:23:36 <Bigcheese> ya...
04:23:39 <Bigcheese> piss me off
04:23:49 <Figs> 4E00
04:23:57 <ihope> Gimme a <CJK Ideograph, First>!
04:24:17 <Figs> Gimme a KOREAN man!
04:24:20 <Pikhq> どうぞ
04:24:24 <Figs> (the word)
04:24:24 <Bigcheese> bah
04:24:24 <Bigcheese> die
04:24:31 <Figs> ? what... :P
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:06 <SevenInchBread> We've got <flag>, <flag>, <flag>, <flag>
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:26:47 <SevenInchBread> ....YOU PEOPLE ARE TERRIBLE
04:27:05 <SevenInchBread> ...but... something like that
04:27:23 <Figs> what will we call this esolang?
04:27:27 <Figs> Cheers?
04:27:30 <Bigcheese> yes
04:27:31 <Pikhq> ihope: The kanji "Ichi" looks something like this (my IME is temporarily borken): -
04:27:31 <SevenInchBread> ...
04:27:36 <SevenInchBread> YOU PEOPLE ARE TERRIBLE AT NAMES ALSO
04:27:37 <Bigcheese> yes, it does
04:27:42 <SevenInchBread> call it pep rally
04:27:47 <Bigcheese> if you are trying to say one
04:27:55 <Pikhq> Bigcheese: Well, yeah.
04:27:56 <Figs> ?????
04:28:12 <Figs> ?????????
04:28:15 <Bigcheese> ????
04:28:23 <Bigcheese> quesion marks ftw
04:28:29 <Figs> that's not question marks :P
04:28:36 <Bigcheese> to me it is :P
04:28:36 <Figs> it's japanese
04:28:41 <Bigcheese> i can see other peoples jap
04:28:42 <ihope> Pikhq: Unicode calls that thing a <CJK Ideograph, First>.
04:28:43 <GreaseMonkey> yeah you ??
04:28:44 <Bigcheese> like Pikhq
04:29:06 <Figs> whoo. Dawkins.
04:29:11 <Figs> @_@
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:42 <GreaseMonkey> so is mine
04:29:42 <Figs> could be :P
04:29:45 <GreaseMonkey> sadly
04:29:49 <Figs> but I've talked to people in Unicode
04:29:54 <Figs> so I doubt it
04:29:57 <Figs> *Japanese
04:32:43 <Bigcheese> こにちわ
04:32:45 <Bigcheese> OMG
04:32:48 <Bigcheese> work?
04:32:55 <Figs> no...
04:33:00 <Bigcheese> bah
04:33:02 <Bigcheese> worked on my clien
04:33:03 <Bigcheese> t
04:33:05 <Bigcheese> finaly :P
04:33:21 <Figs> I get a w/ ~, box, ", a~, box, <<, a~, ... etc
04:33:25 <Pikhq> おめでとう。
04:33:29 <Bigcheese> i see that :P
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:15 <Bigcheese> I use it
04:34:17 <Bigcheese> on MSN
04:34:23 <Bigcheese> works fine
04:34:26 <Figs> :P
04:34:56 <Bigcheese> こにちわ
04:34:56 -!- Figs has quit (Connection reset by peer).
04:35:05 <Bigcheese> ?
04:35:15 <Pikhq> BTW, that's こんにちは。
04:35:39 <Bigcheese> bah
04:35:58 <Bigcheese> it's stupid
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:37:03 <Pikhq> Ah.
04:37:22 <Bigcheese> Windows = works
04:38:01 <Pikhq> In other news, 1 = 2; all mathematicians resign.
04:38:16 <Bigcheese> 私は学生。
04:38:21 <Bigcheese> I think thats right
04:38:25 <Bigcheese> if you can even see it ;/
04:38:27 <Pikhq> You forgot a verb.
04:38:34 <Bigcheese> err
04:38:35 <Bigcheese> oh
04:38:36 <Bigcheese> ta
04:38:37 <Bigcheese> ya
04:38:38 <Bigcheese> it's
04:38:48 <Figs_> It doesn't show up here
04:38:54 <Pikhq> Either "です" or "だ".
04:39:05 <Bigcheese> 私だ学生。
04:39:23 <Bigcheese> im reading http://www.guidetojapanese.org/
04:39:28 <Bigcheese> which seems to be rather good
04:39:35 <Pikhq> What you're saying is roughly equivalent to "I student."
04:39:49 <Pikhq> No, wait.
04:39:58 <Pikhq> You actually screwed the second one up even more.
04:40:03 <Bigcheese> wow
04:40:05 <Bigcheese> i pwn
04:40:05 <Bigcheese> :P
04:40:06 <Pikhq> "am I student."
04:40:07 <Figs_> which version of Japanese are you using?
04:40:13 <Bigcheese> Figs_?
04:40:13 <Bigcheese> lol
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:34 <Bigcheese> I'm using nub
04:40:50 * Bigcheese asks the japanese kid on his msn
04:40:50 <Pikhq> Figs: He said "watasi da gakusei."
04:41:09 <Figs> da?
04:41:13 <Figs> not wa/ha
04:41:16 <Pikhq> Figs: Yeah.
04:41:29 <Figs> and no desu :P
04:41:39 <Pikhq> No, it's there.
04:41:42 <Pikhq> In the wrong place.
04:41:46 <Figs> :P
04:41:49 <Bigcheese> da is state of being
04:41:50 <Pikhq> (da is plain form desu, after all)
04:41:58 <Bigcheese> 私は学生だ.
04:42:00 <Bigcheese> THERE
04:42:03 <Pikhq> There you go.
04:42:12 <Pikhq> That, while informal, is perfectly correct.
04:42:19 <Figs> oh, I see
04:42:28 <Figs> he meant "Watashi wa gakusei da."
04:42:33 <Bigcheese> japanese cast system is stupid :P
04:42:41 <Figs> cast?
04:42:42 <Pikhq> And he finally got around to saying just that.
04:42:46 <Bigcheese> yes, cast
04:42:57 <Figs> never heard of a cast system
04:43:00 <Figs> another term maybe
04:43:01 <Figs> ?
04:43:14 <Bigcheese> http://en.wikipedia.org/wiki/Cast_system
04:43:53 <Figs> oh, that kind
04:43:59 <Bigcheese> Honorifics
04:44:01 <Figs> that's usually "caste"
04:44:06 <Bigcheese> bah
04:44:14 <Figs> I thought you meant like
04:44:37 <Figs> (cheese*)&Swiss;
04:44:40 <Bigcheese> lol
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:45:35 <RodgerTheGreat> hi everybody
04:45:38 <Bigcheese> hi
04:45:44 <Figs> hello!
04:45:57 <RodgerTheGreat> what's going on in #Esoteric this evening?
04:46:13 <Figs> talking about Nihongo, Unicode, and making a cheering esolang
04:46:22 <RodgerTheGreat> cool
04:46:30 <RodgerTheGreat> what's nihongo?
04:46:30 <Figs> (although I think they were joking about that)
04:46:36 <Figs> Japanese
04:46:40 <RodgerTheGreat> ah
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:24 <RodgerTheGreat> haha
04:47:38 <Figs> instead of
04:47:38 <Bigcheese> Figs: that was no joke
04:47:42 <Bigcheese> we need a syntax still
04:47:44 <Figs> oh, you're gonna do it?
04:47:57 <Bigcheese> Mabey, if it's simple
04:48:18 <Figs> well, we have possible branch and print...
04:48:22 <Figs> what else do we need...?
04:48:24 <Figs> loops
04:48:28 <RodgerTheGreat> is the goal to make the source look like cheering?
04:48:37 <Figs> yeah...
04:49:18 <Bigcheese> We need some form of function
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:49:54 <Bigcheese> Thats too
04:49:56 <Bigcheese> uselless
04:49:59 <Figs> yeah
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:50:54 <RodgerTheGreat> could be input!
04:51:12 <Figs> I can't hear you!
04:51:16 <Figs> :)
04:51:25 <RodgerTheGreat> or a multiple parameter math operation
04:51:37 <Bigcheese> Gimme would be like dim in basic
04:51:39 <Bigcheese> for vars
04:51:39 <Figs> use "I can't hear you!" for inpu
04:51:45 <Figs> t
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 <Bigcheese> we need paramiters
04:53:06 <RodgerTheGreat> just a repeat isn't very handy unless we can self-modify
04:53:26 <Figs> GO TO HELL!
04:53:27 <Figs> :D
04:53:30 <Figs> GO HOME
04:53:33 <Bigcheese> Gimme an INT how do you spell it? i
04:53:46 <Figs> ooh
04:53:47 <Figs> :D
04:53:49 <Figs> nice
04:54:36 <RodgerTheGreat> that could be useful
04:54:50 <Figs> dinner
04:54:56 <Bigcheese> k
04:56:49 <Bigcheese> ok, now for branches
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:05 <Bigcheese> hmm
05:00:08 <RodgerTheGreat> ooh! you could also have certain actions be triggered by someone in the "game" "scoring"
05:00:11 <Bigcheese> we need a way to call a function
05:00:36 <Bigcheese> If you think i is 5, ***
05:00:45 <Bigcheese> All statments must end with !
05:00:46 <Bigcheese> :P
05:00:49 <RodgerTheGreat> haha
05:00:55 <RodgerTheGreat> s /:/!
05:01:26 <RodgerTheGreat> er
05:01:31 <RodgerTheGreat> s /;/!
05:03:00 <Bigcheese> only thing i can think of is
05:04:36 <Bigcheese> If you think i is 5, Go and do foo!
05:04:40 <Bigcheese> but thats stupid
05:04:42 <Bigcheese> :P
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:43 <Bigcheese> but they are sexy :P
05:06:47 <RodgerTheGreat> mainly you just need looping and jumps
05:06:51 <Bigcheese> but hard too do in esoteric i guess
05:06:59 <Bigcheese> ya, drop functions
05:07:00 <Bigcheese> ok
05:07:05 <Bigcheese> to*
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:12:44 <Bigcheese> you can do anything with taht
05:12:45 <Bigcheese> that*
05:13:18 <RodgerTheGreat> yep, as long as we can jump based on a conditional
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:14:39 <RodgerTheGreat> haha
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:22:21 <Bigcheese> yes
05:22:57 <ihope> Works for me.
05:27:22 -!- Pikhq has quit ("Leaving.").
05:28:27 <calamari> thanks
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:04:52 <Figs> hi?
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:48:45 <NefariousPrior> Any there any usefull apps made with brainfuck? heh
06:49:33 <bsmntbombdood> usefull?
06:49:36 <bsmntbombdood> you must be new here
06:50:35 <pikhq> Define 'useful'.
06:50:54 <pikhq> In *theory* there could be a whole lot of useful ones.
06:51:08 <NefariousPrior> Something other than hello world.
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:23 <RodgerTheGreat> how about the BF DeCSS implementation?
06:51:30 <NefariousPrior> no way
06:51:33 <pikhq> Right.
06:51:34 <RodgerTheGreat> that ought to count as "useful"
06:51:43 * pikhq has *written* a Brainfuck compiler in Brainfuck.
06:51:45 <NefariousPrior> Aye
06:51:51 <pikhq> . . . Fine, I cheated, using BFM. . .
06:52:51 * pikhq goes to sleep
06:52:58 <NefariousPrior> How many lines is the BF DeCSS implementation? lol
06:53:09 <pikhq> Quite a few.
06:53:20 <pikhq> It is implemented very inefficiently, though. . .
06:53:29 <Bigcheese> bf is ...
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
06:56:44 <NefariousPrior> lol
06:57:13 <NefariousPrior> I can just imagine Firefox in BF.
06:58:00 <GreaseMonkey> the code would be a BFM
06:58:03 <RodgerTheGreat> it'd probably look a great deal like Lynx
06:58:05 <GreaseMonkey> a Bifg Fucking Mess
07:09:51 -!- Sukoshi has joined.
07:11:05 <RodgerTheGreat> hi, Sukoshi
07:11:17 <Sukoshi> Heya RodgerTheGreat.
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:12:58 <RodgerTheGreat> ok
07:13:22 <RodgerTheGreat> sounds interesting
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:03 <RodgerTheGreat> heh
07:14:14 <RodgerTheGreat> as I remember someone saying,
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:14:53 <RodgerTheGreat> but I could tell you what it'd be called- FORTRAN."
07:14:58 <Sukoshi> Hahaha.
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:29 <RodgerTheGreat> hm. an interesting approach.
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:16:57 <Sukoshi> Maybe.
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:32 <RodgerTheGreat> yeah, so-called "LISP machines"
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:22:51 <Sukoshi> Heh.
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:24:43 <Sukoshi> Forth especially.
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:24 <RodgerTheGreat> that's kinda the direction I'm working on
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:07 <RodgerTheGreat> heh
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:13 <Sukoshi> Most definitely.
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:25 <Sukoshi> Nopes.
07:38:32 <RodgerTheGreat> http://en.wikipedia.org/wiki/Sketchpad
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:17 * Sukoshi shrugs.
07:42:43 <RodgerTheGreat> there is a difference between "obsessing over past failures" and "learning from past failures", eh? :)
07:42:52 <Sukoshi> :P
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:17 * RodgerTheGreat tips his hat
07:46:35 -!- RodgerTheGreat has changed nick to RodgerTheZzz.
07:49:18 <GreaseMonkey> nice nickchange :D
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:24:06 <GreaseMonkey> gtg, gnight
11:27:57 <nazgjunk> night
11:28:02 <nazgjunk> mm slow
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:17:12 <RodgerTheGreat> 'morning, folks
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)).
15:42:51 <RodgerTheGreat> ihope: cool
16:14:40 <ihope> It's useful when dealing in modular arithmetic.
16:15:17 <RodgerTheGreat> ah, DIV and MOD, every coder's greatest friends
16:15:47 <RodgerTheGreat> I remember how I first learned to use MOD- the redcode instruction set
16:16:35 <RodgerTheGreat> I've always preferred the '88 standard to the '97
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:49 <RodgerTheGreat> brb
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
18:27:36 <Bigcheesegs> **?
18:28:16 <bsmntbombdood> exponentiation
18:28:36 <Bigcheesegs> oh
19:00:07 <tokigun> there is.
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:05:39 <bsmntbombdood> tokigun: and how do you do that?
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:07:45 <oerjan> are you sure of that?
20:07:52 <ihope> Yes.
20:08:26 <oerjan> i think it is false
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:11:43 <oerjan> and n = p^2, x = p.
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:25:06 <bsmntbombdood> totient as in euler?
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:26:42 <oerjan> > 0 that is
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:00 <oklopol> *the
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:04 <ihope> Oh, right!
20:32:10 <oerjan> (i.e. a^|G| = 1 for a finite group G)
20:32:37 * ihope scribbles franctic(al)ly
20:33:30 <ihope> Bah.
20:33:38 <bsmntbombdood> ((not know) i (much (function of totient)))
20:33:46 <bsmntbombdood> errr
20:33:55 <oklopol> function-of
20:34:02 <bsmntbombdood> (of function totient)
20:34:17 <oklopol> yeah
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:09 <ihope> x^5 = x (mod 10)
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:35:57 <oerjan> i think so
20:36:00 <ihope> Square-free moduli, I should say.
20:36:06 <bsmntbombdood> now i'm lost
20:36:24 <ihope> bsmntbombdood: a square-free number is one that has no square factors except 1, I think.
20:36:29 <oerjan> yep
20:36:32 <bsmntbombdood> i know
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:49:46 <bsmntbombdood> the iterated logarithm is an interesting function
20:50:11 <ihope> Even numbers that don't end in 0 to the fourth power seem to all end in 6.
20:50:15 <bsmntbombdood> log*(2n) = 1+log*(n)
20:50:16 <ihope> Subtract 5 and you get 1.
20:50:37 <bsmntbombdood> i mean log*(n**2) = 1+log*(n)
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?
20:55:58 <oerjan> no idea
20:59:24 <SevenInchBread> hmmm... I can't think of what to word this...
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:10 <ihope> Like Linux?
21:02:17 <pikhq> That's one example. . .
21:02:25 <bsmntbombdood> like herd?
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:08 <bsmntbombdood> sure
21:03:31 <pikhq> So, that limits the kernel choices to Linux, kFreeBSD, and kNetBSD.
21:03:40 <pikhq> . . . And HURD. :p
21:03:58 <bsmntbombdood> what's wrong with hurd?
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:04:58 <bsmntbombdood> oh
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:07:17 <bsmntbombdood> but then it's illegal in most places
21:07:27 <pikhq> Um, what?
21:07:34 <pikhq> . .. Oh. XD
21:08:38 <ihope> The HURD has politics?
21:09:08 <pikhq> Yes.
21:09:34 <ihope> Does it elect a president every four time slices?
21:09:56 <pikhq> No, they're too busy arguing.
21:09:58 <bsmntbombdood> a computational system based on politics!
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:25 <ihope> Why not?
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:35:46 <ihope> Interesting.
21:42:38 <bsmntbombdood> Please output a prime with 2096 binary digits in decimal
21:43:01 <Bigcheesegs> no
21:44:20 <pikhq> [Error: programmer doesn't want to.]
21:44:35 <bsmntbombdood> no, interpreter doesn't want to
21:44:39 <Bigcheesegs> ^^
21:44:45 <pikhq> Right.
21:44:47 <Bigcheesegs> Thats why i first joined this chan :P
21:44:54 <Bigcheesegs> i saw the IRP or w/e its called
21:46:02 <RodgerTheGreat> the story pikhq linked to is actually *about* IRP in one sense
21:46:26 <Bigcheesegs> somone linked?
21:47:01 <bsmntbombdood> yeah
21:47:29 <oerjan> didn't someone here have mathematica? i'm sure it must have a large prime function.
21:47:48 <RodgerTheGreat> http://downlode.org/etext/power.html
21:47:54 <RodgerTheGreat> I have mathematica
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:48:29 <Bigcheesegs> there are sites for that.
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:15 <RodgerTheGreat> maybe
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:51:08 <bsmntbombdood> 10?
21:51:16 <Bigcheesegs> someone write a prime finder in BF
21:51:18 <oerjan> eh, 2
21:52:51 <bsmntbombdood> ln(2) * 2096
21:52:56 <bsmntbombdood> logarithms are so neat
21:53:09 <ihope> 2096?
21:53:36 <bsmntbombdood> ?
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:07:36 <bsmntbombdood> fundemental theorem of arithmatic
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:14 <pikhq> :p
22:21:40 <pikhq> ... integers greater than 2.
22:22:00 <bsmntbombdood> oh no!
22:30:56 * ihope ponders
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:44:31 <bsmntbombdood> ?
22:44:36 <bsmntbombdood> how about 2?
22:46:38 <ihope> 2 is a Gaussian prime?
22:47:45 <bsmntbombdood> no
22:48:02 * pikhq snickers
22:51:58 <oerjan> (1 + i) (1 - i) = 2, maybe
22:53:18 <ihope> Maybe?
22:53:27 <ihope> Yes, they're equal.
22:53:37 <ihope> 1^2 - i^2
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:31 * ihope ponders
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?
22:59:16 <bsmntbombdood> yes
23:01:33 <oerjan> a gaussian integer is m + n i where m and n are integers.
23:01:44 <oerjan> including n = 0.
23:10:45 -!- sebbu2 has quit ("@+").
23:48:03 -!- ShadowHntr has joined.
23:55:35 -!- ihope__ has joined.
2007-04-16
00:05:48 <oklopol> hmm, how can i dl a picture in python if i have the url?
00:05:57 <bsmntbombdood> urllib
00:06:47 <bsmntbombdood> 8 is a prime in {x | x \in Z, x > 2}
00:10:46 <ihope__> Hmm...
00:10:49 * ihope__ scribbles
00:11:00 <ihope__> Actually, yes, it is.
00:13:04 -!- ihope has quit (Success).
00:17:41 <bsmntbombdood> -3 + 2i
00:17:42 <bsmntbombdood> gaussian prime i think
00:18:09 <bsmntbombdood> 1 - 256i
00:21:58 <bsmntbombdood> 10 + i
00:24:08 * bsmntbombdood bored
00:24:36 <bsmntbombdood> 4 + i
00:26:38 <oerjan> of course if m^2 + n^2 is an ordinary prime then m + n i is a Gaussian one.
00:27:42 <bsmntbombdood> of course?
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:07 <GreaseMonkey> night everyone
11:23:20 <oerjan> why good afternoon :)
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.
19:47:24 <oklopol> am i here?
20:00:13 <bsmntbombdood> no
20:05:04 <oklopol> damn
20:05:09 <oklopol> i'll retry later
20:28:47 <SimonRC> heh
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:03:13 <SimonRC> and Richard Stallmann :-P
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:37:43 <SimonRC> ihope: eh???
22:38:07 <ihope> Or by "loony" did you mean "crazy person"?
22:38:59 <SimonRC> yes
22:48:52 <bsmntbombdood> rms is funny
23:07:39 -!- sebbu has quit ("@+").
23:17:24 -!- SevenInchBread has joined.
23:27:21 -!- GreaseMonkey has joined.
23:29:09 <SevenInchBread> http://deadbeefbabe.org/paste/4404 :)
23:29:54 <GreaseMonkey> hehe, i like the name of that domain :D
23:29:58 <GreaseMonkey> 0xDEADBEEFBABE :D
23:35:06 <SevenInchBread> 0xDEADCAFEBABE
23:36:30 <GreaseMonkey> 0xD00D5
23:56:00 -!- ihope__ has joined.
2007-04-17
00:03:37 -!- ihope has quit (Read error: 60 (Operation timed out)).
00:36:44 <ihope__> SevenInchBread!
00:37:23 <bsmntbombdood> http://bsmntbombdood.mooo.com/hyper4_imag.png
00:37:28 <bsmntbombdood> http://bsmntbombdood.mooo.com/hyper4_imag1_2big.png
00:37:33 <bsmntbombdood> http://bsmntbombdood.mooo.com/hyper4_imag0_2.png
00:37:36 <bsmntbombdood> super coolness
00:38:11 -!- ihope__ has changed nick to ihope.
00:39:19 -!- pikhq has joined.
00:47:09 <SevenInchBread> !!!!
00:49:19 <ihope> Yay, we have a kernel spec thingy!
00:51:05 <SevenInchBread> ....we do?
00:51:58 <ihope> Close enough, anyway.
00:52:19 <ihope> What you posted on AbraSophia some while ago.
00:53:53 * SevenInchBread thought that it failed
00:55:41 <SevenInchBread> yeah... basically that's the entire spec.
00:55:45 <SevenInchBread> extremely basic for now.
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:32:58 <GreaseMonkey> bsmnt: working on a modular C bot :D
01:33:15 <bsmntbombdood> oh boy
01:34:06 <GreaseMonkey> it's currently on #botpark
01:34:23 <GreaseMonkey> it's called BrassMonkey but it has the UnBot nick to save reregistration
01:34:43 <GreaseMonkey> <GreaseMonkey> $reload all
01:34:43 <GreaseMonkey> <UnBot> Reloading ALL modules
01:34:43 <GreaseMonkey> * UnBot inserts shells and cocks
01:36:51 <bsmntbombdood> j00 r teh clevar!
01:37:35 <SevenInchBread> ihope, swap file? or swap partition?
01:37:43 <SevenInchBread> file sounds more painless to me.
01:37:51 <SevenInchBread> but I might be wrong.
01:39:58 <bsmntbombdood> no
01:40:02 <bsmntbombdood> files get fragmented
01:46:52 <SevenInchBread> partitions don't?
01:47:02 <bsmntbombdood> no...
01:47:10 <bsmntbombdood> partitions are continguous on the disk
01:47:55 <SevenInchBread> hmmm... files aren;t though? I thought all the data in a file was right close together.
01:48:07 <bsmntbombdood> no
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:33 <pikhq> Not really.
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:52:55 <pikhq> are, even.
01:53:05 <SevenInchBread> >.> on a swap file?
01:53:11 <pikhq> No, in general.
01:53:35 <SevenInchBread> I imagine a swap file being read at random chunks.
01:53:44 <SevenInchBread> small sequential strips
01:53:48 <bsmntbombdood> SevenInchBread: doobey foober, dlong dop
01:53:54 <SevenInchBread> :)
01:54:12 <pikhq> SevenInchBread: If you've got large programs, make that large sequential strips.
01:54:26 <SevenInchBread> ah
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:00:17 * SevenInchBread shall make his own... just for the hell of it.
02:00:42 <pikhq> Why not use ext2?
02:00:57 <SevenInchBread> ....because I'd like to try making my own
02:01:13 <pikhq> *shrug*
02:01:22 <SevenInchBread> sheesh, if I wanted UNIX I'd just use it.
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:10:16 <SevenInchBread> so you have different behaviors for different files.
02:11:34 * SevenInchBread doesn't necessarily care about simple.
02:14:55 <ihope> Oh, also...
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:18:37 <bsmntbombdood> ?
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:33 <ihope> :-)
02:23:41 <ihope> Don't you want a ` system call as well?
02:24:01 <GreaseMonkey> hehe :D
02:24:15 <ihope> Really, all you need is * and i... or 0 and 1.
02:24:18 <GreaseMonkey> though SII(SII) causes an infinite loop
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:51 <SevenInchBread> it serves as an abstraction barrier of sorts.
02:29:53 <ihope> How will processes communicate?
02:30:04 <SevenInchBread> >.> messages?
02:30:12 <ihope> And sending a message isn't a system call?
02:30:38 <SevenInchBread> .....got me there.
02:30:51 <SevenInchBread> okay.... hatful and hatless... :)
02:30:59 * SevenInchBread didn't think about that.
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:01 <bsmntbombdood> what is a hat?
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:17:11 <GreaseMonkey> gonna sleep now, gnight
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.
14:38:50 <bsmntbombdood> ha, #esoteric trolls
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:14:36 <ihope> Why?
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:26 <oerjan> NEXT!
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:10 <oerjan> passwords?
21:18:43 <oerjan> anti-chinese government propaganga?
21:18:44 <SevenInchBread> passwords sounds good. :)
21:18:51 <oerjan> *propaganda?
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:15 <SevenInchBread> oerjan, steganograpic file system.
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:00 <SevenInchBread> rather than simply garbling it up.
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:44 <SevenInchBread> steganography is really interesting.
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:04 <SevenInchBread> yeah.
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:24:53 <SevenInchBread> which machines can easily do.
21:25:02 <oerjan> they should be long passphrases.
21:25:06 <SevenInchBread> it is however... pretty effective against people.
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:26 <oerjan> hm?
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:29:41 <SevenInchBread> unless you just have to.
21:30:31 <SevenInchBread> ...but, that may be too general.
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:33:58 <SevenInchBread> for what? I've never seen a use for them myself.
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:34:55 <SevenInchBread> eh... doesn't sound fun.
21:36:11 <ihope> For protecting data.
21:36:19 <ihope> Passwords, etc...
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:04 <SevenInchBread> read permission offers no protection.
21:37:20 <ihope> No protection?
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:17 <SevenInchBread> -nod- I know. two different purposes.
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:03 <SevenInchBread> not in the typical unix sense of read permission.
21:39:08 <ihope> No?
21:39:21 <ihope> What do you mean?
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:46 <SevenInchBread> iniital codes? whatcha mean?
21:40:51 <ihope> What if she doesn't want to remember the password?
21:40:57 <SevenInchBread> ..........
21:40:58 <ihope> Or type it in all the time?
21:41:03 <ihope> Or something?
21:41:07 <SevenInchBread> .....hahahaha
21:41:19 <SevenInchBread> "AAAARGH REMEMBERING A PASSWORD - GOD DAMNIT"
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:51 <ihope> How?
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:25 <SevenInchBread> ihope, not everyone does that.
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:43:55 <SevenInchBread> they'd like to keep it that way.
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:45 <SevenInchBread> right...
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:44:59 * SevenInchBread is on a one-man computer
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:45:44 <SevenInchBread> right... so?
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:31 <SevenInchBread> passwords are by no means crytographically secure.
21:48:41 <ihope> I didn't say passwords.
21:48:57 <SevenInchBread> -nodnod- I was just saying... not necessarily in opposition.
21:49:12 <SevenInchBread> er... I mean... it wasn't a rebuttal.
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:06 <SevenInchBread> so.... I'm all for 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:51:53 <SevenInchBread> if you're insanely paranoid, use both.
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:53:55 <SevenInchBread> no... either paranoid... or has a huge secret.
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:42 <ihope> Do you disagree?
21:57:49 <SevenInchBread> >.> I thought we decided to do both? but it seems like we're still debating for some reason...
21:57:54 <SevenInchBread> <.<
21:57:58 <ihope> Do both?
21:58:22 <ihope> Offer them but don't force them, in other words?
21:58:42 <ihope> If so, I'm happy.
21:58:42 <SevenInchBread> of course. I never even mentioned forcing them. O.o
21:59:05 <SevenInchBread> <SevenInchBread>I see a huge difference.... but I also see the comparitive benefits and drawbacks of both.
21:59:06 <SevenInchBread> so.... I'm all for 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:03:55 <SevenInchBread> python.exe@2.1
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:20:49 <SevenInchBread> fs defmacro (move, (x, y), copy (%x, %y); del (%x))
22:20:54 <SevenInchBread> ...or something.
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]").
2007-04-18
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").
01:53:38 <SevenInchBread> http://deadbeefbabe.org/paste/4423 <--awesome
01:53:44 <SevenInchBread> run that
01:56:03 <bsmntbombdood> not aweseome
02:11:26 <SevenInchBread> ....
02:11:31 <SevenInchBread> HOW CAN YOU SAY THAT
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:54:08 <GreaseMonkey> congradulations!
03:59:25 <pikhq> First time in months.
03:59:40 <bsmntbombdood> baadf00d
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:28:59 <bsmntbombdood> why python code?
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 ("@+").
23:19:17 <GreaseMonkey> you hope...
2007-04-19
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:35:21 <bsmntbombdood> ha
03:35:27 <bsmntbombdood> paul graham is one funny guy
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:07 <fax> Hello
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:35 <fax> hehe
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:23 <GregorR> That's infuriating X-D
08:58:55 <GregorR> According to archive.org, it's been like that since 2001 :P
08:59:13 <fax> FUCK!!!!
08:59:15 <fax> :D
09:01:46 <GreaseMonkey> you said the magic word, now anything you say will be accepted for bash.org
09:04:16 <fax> aw shit
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:26:41 <fax> er
09:27:16 * fax verry annoyed at tr
09:27:47 <Rodger> hunh?
09:27:59 <fax> man :/
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:11 <Rodger> lol
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:32:57 <fax> >_<
09:33:23 <fax> why is unix so crap?!
09:35:45 <fax> oh
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:36:47 <Rodger> hm
09:36:51 <Rodger> might work
09:37:04 <fax> oh shit
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:33 <fax> ugh
09:38:41 <fax> sed -e -e -e -e -e it is
09:44:18 -!- jix__ has joined.
09:45:13 <fax> oh crap
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> *phew*
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:32 <fax> :D
09:46:34 <fax> matrix effects: D
09:46:34 <Rodger> wow
09:47:09 <fax> lool
10:00:17 <fax> yeah
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").
10:59:42 <GreaseMonkey> going to sleep now, gnight
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").
14:55:24 <bsmntbombdood> fax: yes
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:11:05 <lament> ewww xml
21:12:34 <GregorR> How Jabber users transfer images: http://www.codu.org/rxml.php
21:12:36 <GregorR> X-P
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.
2007-04-20
01:01:41 -!- crathman has quit (Read error: 110 (Connection timed out)).
01:32:47 -!- GreaseMonkey has joined.
01:40:36 -!- RodgerTheGreat has joined.
01:40:51 <RodgerTheGreat> hi, guys
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> O_o
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:17 <Figs> ;)
04:37:19 <calamari> spaghetti! :)
04:37:25 <pikhq> The *language* is Lisp.
04:37:26 <calamari> hehe
04:37:35 <Figs> pikhq gets half a kudo.
04:37:44 <Figs> what's the comic? :)
04:37:47 <pikhq> Hmm.
04:37:53 <pikhq> *Could* be xkcd. . .
04:38:00 <pikhq> But I'm not sure 'bout that.
04:38:11 <Figs> bingo
04:38:13 <Figs> :)
04:38:31 <Figs> http://xkcd.com/c224.html
04:38:34 <pikhq> http://xkcd.com/c224.html I'm right, indeed.
04:38:38 <pikhq> :)
04:38:50 * pikhq gets a full kudos
04:38:58 <Figs> :D
04:40:16 <Figs> True or False: "props" can be used as a verb.
04:40:25 <pikhq> True.
04:40:47 <pikhq> "He props up the sign"
04:40:59 <Figs> What case/tense is that?
04:41:06 <pikhq> Good question.
04:41:11 <pikhq> Dunno.
04:41:24 <pikhq> I could tell you were it in one of my *non*native languages. :p
04:41:37 <Figs> :P
04:41:54 <Figs> ooh
04:42:03 <Figs> Finnish apparently has ___ grammatical cases?
04:42:10 <Figs> ;)
04:43:20 <Figs> I think it's 15...
04:44:08 <pikhq> Don't speak Finnish; can't help you.
04:44:19 <Figs> neither do I
04:44:23 <Figs> :P
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:55:21 * Figs pokes pikhq
04:58:08 <Figs> can anyone give me a list of 20 words in English that stay the same in the past participle?
04:58:21 <Figs> *past tense
05:04:56 <calamari> Figs: homework? :)
05:24:30 <Figs> no
05:24:33 <Figs> just bored
05:24:33 <Figs> :P
05:24:44 <Figs> sorry for the slow reply -- I left for dinner
05:24:50 <Figs> just got back
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:32 <Figs> pikhq:
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:31 * pikhq leaves
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:13:00 <GreaseMonkey> gonna sleep, gnight
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:28:42 <RainbowTrout> do de do de do
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:16:48 <ihope> Cool.
23:17:35 <bsmntbombdood> awt awt awt
23:18:16 <bsmntbombdood> that's not very dense
23:19:34 <SimonRC> Q: what's a greek urn?
23:19:39 <SimonRC> A: any one where the TLD is .gr !
23:19:43 <SimonRC> *rimshot*
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:19:55 * SimonRC goes to bed
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:24:34 <oerjan> you mean volume?
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:11 <fax> Hello
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:48:42 <oerjan> ah that was it.
23:48:53 <bsmntbombdood> tr can do what you want i think
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:51 <oerjan> aha...
23:49:52 <fax> I think anyway..
23:49:59 <bsmntbombdood> tr "a" "b"?
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:23 <oerjan> or wait...
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
23:57:32 <oerjan> code generation ftw
2007-04-21
00:02:48 <fax> rar
00:02:55 <fax> I dont know sed as well as I should :p
00:02:58 * fax looks somthing up
00:04:55 <fax> :[
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:43 <fax> no :/
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:14:55 <fax> grr
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:04 <bsmntbombdood> uhh
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:21:53 <bsmntbombdood> ?
00:22:10 <fax> @@@@
00:22:12 <fax> 1!!!!!
00:22:12 <fax> WOW
00:22:17 <fax> god damn
00:22:21 <fax> bsmntbombdood: thanks a lot
00:22:26 <fax> I didnt actually know that you could do that
00:22:32 <fax> damn :D
00:25:35 -!- pikhq has joined.
00:27:14 <bsmntbombdood> and why the md5 in there?
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:21 <fax> I though
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:12:33 <bsmntbombdood> fax: single combinator systems
01:12:45 <bsmntbombdood> one combinator, one application character
01:13:12 <fax> hmm
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:36 <fax> Really?
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:37:47 <fax> wow
01:41:27 <fax> cool :D
01:55:38 <ihope> Insert enthusiastic shout of "SevenInchBread!" here.
01:56:35 <lament> fax: are you aware of OISC?
01:56:41 <fax> no
01:56:49 <pikhq> One instruction computing.
01:56:52 <ihope> OISC is fun.
01:57:13 <pikhq> The options for that one instruction range from SBN to MOV.
02:00:25 <fax> yikes!
02:00:33 <bsmntbombdood> OISC is sweet
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:29 <bsmntbombdood> subleq is nicer
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:38 <pikhq> Not really.
02:02:41 <fax> I mean about MOV
02:02:48 <pikhq> Still not crazy.
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:19 <fax> :O
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:43 <SevenInchBread> ALRIGHT
03:01:56 <SevenInchBread> so... what are all the options that a context switch system call might need?
03:02:02 <SevenInchBread> so far I've just got a maximum time.
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:02 <SevenInchBread> ...a context switch system call
03:05:30 <SevenInchBread> a system call that switches the context of CPU execution to another processes state
03:05:34 <RodgerTheGreat> ah
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:28 <SevenInchBread> just how limited the interface 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:07 <RodgerTheGreat> do you have interrupts?
03:07:27 <SevenInchBread> not of the software sort.
03:07:46 <SevenInchBread> but hardware interupts are implied... and I've got a way to handle them.
03:09:22 <RodgerTheGreat> ok
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:10:53 <RainbowTrout> INDEED.
03:11:11 <RainbowTrout> Hmmmm...
03:11:20 <SevenInchBread> Hello RainbowTrout
03:11:25 <SevenInchBread> ...
03:11:27 <SevenInchBread> !help
03:11:37 * SevenInchBread quietly ignores that.
03:11:39 <RainbowTrout> I hate your face.
03:11:46 <SevenInchBread> YOUR FACE IS STUPIDER
03:11:49 <RainbowTrout> But not as much as I ..
03:11:50 <RainbowTrout> NO
03:11:52 <RainbowTrout> IT ISNT
03:11:57 <SevenInchBread> oh yeah?
03:12:03 <SevenInchBread> do you enjoy having a nose?
03:12:15 <RainbowTrout> ... Go on
03:12:31 <SevenInchBread> ANSWER THE GOD DAMN QUESTION
03:12:38 <RainbowTrout> NEVER
03:12:56 <SevenInchBread> ~help
03:13:02 <RainbowTrout> ...
03:13:10 <SevenInchBread> -ahem- ignore.
03:13:22 * RainbowTrout swims.
03:22:09 <RodgerTheGreat> SevenInchBread: what CPU is this for? x86?
03:24:46 <SevenInchBread> probably.
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:22 <SevenInchBread> I HATE THIS WORD, FOR NO REASON AT ALL
03:30:28 <RodgerTheGreat> probably because it should *always* be conditionalized
03:30:38 <SevenInchBread> ....what?
03:30:44 <RodgerTheGreat> nothing is universally efficient, an oft-missed fact
03:30:46 <bsmntbombdood> RodgerTheGreat: that's interesting
03:30:59 <SevenInchBread> I just think of annoying business people and uptight engineer nerd people and SUICIDE
03:31:13 <RodgerTheGreat> hm
03:31:52 <bsmntbombdood> RodgerTheGreat: what if there's less than enough threads?
03:32:09 <RodgerTheGreat> that's the main issue
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:02 <RodgerTheGreat> they don't use priorities at all
03:33:13 <SevenInchBread> ...reminds me of a machine gun
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:33:51 <RodgerTheGreat> makes me think of a shotgun. "Double barreled", usw.
03:34:20 <RodgerTheGreat> that could work pretty well
03:34:49 <SevenInchBread> ....how do you use pointers in... hardware?
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:20 <RodgerTheGreat> SevenInchBread: they're called "registers"
03:35:36 <bsmntbombdood> RodgerTheGreat: the os breaks in every timer interupt...
03:35:42 <bsmntbombdood> so deadlocking should be hard
03:36:02 <bsmntbombdood> if the kernel wants to stop you from running, it only has to wait 1/60 second
03:36:15 <bsmntbombdood> you = a thread
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:24 <SevenInchBread> ...IF YOU WANTED
03:40:42 <ihope> SevenInchBread: meet RProgrammer. :-)
03:41:03 <SevenInchBread> HI :)
03:41:13 <ihope> And bd_ too, for that matter.
03:41:20 <bd_> *hides*
03:41:20 <RProgrammer> Hola
03:41:24 <fax> Does anyone use J?
03:41:24 <SevenInchBread> HI BD_ NICE WEATHER YEAH :)
03:41:29 <RProgrammer> J?
03:41:39 <pikhq> 'Lo.
03:41:39 <fax> its kinda based on APL
03:41:40 <RProgrammer> Not Java, I take it
03:41:42 <ihope> RProgrammer: do you know much about programming for the x86?
03:41:47 <RProgrammer> No
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:01 <ihope> Hmm.
03:42:04 <RProgrammer> Mainly because I'm using a PPC right now
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:42:34 <bd_> nope >.>
03:42:56 <ihope> Hmm.
03:44:55 <SevenInchBread> ....I know a smidgeon.
03:44:58 <SevenInchBread> and only a smidgeon
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:00 <RProgrammer> I wish I came up with Whitespace
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:47:54 <GregorR> :P
03:48:57 <pikhq> Honestly. . .
03:49:22 <pikhq> The current IA32 system I'm using supports IA16, IA32, and AMD64. . . Somehow.
03:50:30 <bsmntbombdood> heh
03:50:32 <SevenInchBread> NO SIR
03:50:39 <SevenInchBread> MY OPINION IS SUPERIOR TO YOURS
03:54:55 <ihope> My opinion is objective and is therefore perfect.
03:55:48 * RProgrammer snickers
03:57:00 * calamari creates a subclass of ihope, adds functions, and is now more perfect than ihope
03:57:46 <ihope> Pff.
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:00:03 <RProgrammer> Ah Random, what happy times they were...
04:01:51 <bsmntbombdood> I want a room-sized faraday cage
04:02:02 <bsmntbombdood> along with lead shielding
04:02:11 <bsmntbombdood> along with concrete
04:02:35 <RodgerTheGreat> and a generator, I presume?
04:03:01 <bsmntbombdood> Power in can be filtered
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:02 <RodgerTheGreat> which I fully endorse.
04:06:16 <RodgerTheGreat> underground complexes are awesome for a number of reasons.
04:06:19 <bsmntbombdood> Ok, a bunker
04:06:40 <bsmntbombdood> A bunker would be sofa king cool
04:07:31 <RodgerTheGreat> I've always thought it'd be pretty awesome to live in a renovated nuclear bunker.
04:08:27 <bsmntbombdood> yep
04:15:48 * pikhq wants an underground complex for house/server warehouse
04:16:02 <RProgrammer> Can I co-op there?
04:16:30 <bsmntbombdood> wow, we all have the same dream
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:43 <pikhq> :p
04:17:53 <bsmntbombdood> pikhq: but the internet and power distribution networks won't, so it doesn't matter
04:18:04 <RProgrammer> By some guy, I mean NASA
04:18:06 <RProgrammer> ;)
04:18:14 <fax> ll
04:18:15 <fax> lol
04:18:17 <pikhq> bsmntbombdood: Nuclear power in-bunker. . .
04:18:23 <pikhq> The Internet link?
04:18:32 <RProgrammer> Not so in-bunker
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:33 <bsmntbombdood> That's pretty sweet
04:19:37 <bsmntbombdood> not secure enough though
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:48 <pikhq> Worth it.
04:19:53 <pikhq> RProgrammer: Yeah.
04:20:07 * RProgrammer sighs
04:20:10 <pikhq> Obviously, the idea at that point is to live, not to be online.
04:20:28 <bsmntbombdood> pikhq: let's take over cheyenne mountain
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 <pikhq> :p
04:21:36 <bsmntbombdood> http://en.wikipedia.org/wiki/Image:NORADBlast-Doors.jpg
04:21:45 <RProgrammer> Don't get too big, 64-Bit won't hold it
04:21:49 <bsmntbombdood> that picture makes me hot
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:22:55 <RProgrammer> You can get Wikipedia in 10 gigabytes
04:23:04 <bsmntbombdood> I know you can get wp db dumps
04:23:08 <bsmntbombdood> not sure of the size, though
04:23:13 <RProgrammer> ...
04:23:15 <pikhq> And there aren't exactly many OSes which mmap the *entire drive*.
04:23:31 <RProgrammer> Not memory, NFS
04:23:49 <RProgrammer> *nfs (lowercase)
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:39 <RProgrammer> That's why I corrected nfs (lowercase)
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:14 <RodgerTheGreat> hm... maybe an archive of textfiles.org as well
04:25:19 <RodgerTheGreat> some good reading there
04:25:27 <bsmntbombdood> what's that?
04:25:32 <pikhq> Hell. Just get an *orbiting* bunker. . . Large enough to contain everyone you care about.
04:25:41 <RProgrammer> Oh, nevermind
04:25:53 <RProgrammer> 64-Bit limit is 16384 Petabytes
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:30 <RProgrammer> 16 Exabytes
04:26:32 <pikhq> RodgerTheGreat: The moon is orbiting, isn't it?
04:26:39 <RProgrammer> I know, but still...
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:00 <RodgerTheGreat> that kinda ceases to be a "bunker" at that point
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:21 <pikhq> That's the idea.
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:27:39 <RodgerTheGreat> yes
04:27:44 <RodgerTheGreat> beat to the punch.
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:28:32 <RProgrammer> And make funny YouTube videos
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:31 <pikhq> Quite right.
04:32:35 <bsmntbombdood> 1.4GB * 4 for all of wikipedia
04:32:53 <pikhq> Bit more for MySQL and MediaWiki.
04:33:04 <bsmntbombdood> that's html
04:33:17 <RProgrammer> Not wiki markup?!
04:33:26 <RodgerTheGreat> wha?
04:33:35 <RodgerTheGreat> you can get an HTML dump now, too?
04:33:39 <RodgerTheGreat> kewl beans!
04:33:45 <bsmntbombdood> yep
04:33:46 <bsmntbombdood> see link
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:07 <RodgerTheGreat> yeah, damn- that isn't half bad at all
04:34:11 <pikhq> Bit more flexible.
04:34:18 <bsmntbombdood> I prefer html
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:34 <bsmntbombdood> yep, me too
04:35:38 <pikhq> Gzip is a compression format which uses the DEFLATE algorithm. . .
04:35:53 <bsmntbombdood> If I had the hdd space, I would download that
04:36:18 <RProgrammer> pikhq: I thought it was slightly better than LZ77
04:36:52 * RodgerTheGreat is seriously considering downloading that
04:37:00 <RodgerTheGreat> I've got a few gigs to spare...
04:37:14 <RProgrammer> I'm lucky my gigs spare me
04:37:33 * RProgrammer wonders how often they dump it..
04:37:45 <bsmntbombdood> RProgrammer: read.
04:37:51 <bsmntbombdood> "November 2006"
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:37:54 <fax> oh wtf
04:38:08 <RodgerTheGreat> ?
04:38:19 <fax> just noticed you can download wikipedia
04:38:21 <bsmntbombdood> I wonder if the html or the db dump is bigger
04:38:22 <RProgrammer> But is that the latest one?
04:38:31 <RProgrammer> HTML is larger, has to be
04:38:35 <RodgerTheGreat> HTML might compress better, though
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:40:51 <RodgerTheGreat> oh, christ
04:41:09 <bsmntbombdood> RProgrammer: I made the same mistake
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:44:49 <bsmntbombdood> hrm
04:44:51 <RProgrammer> Yes, like they should for PDFs
04:45:01 <GregorR> Poorly worded.
04:45:24 <bsmntbombdood> oh wow
04:45:44 <pikhq> "This file is 2000 Petabytes. Would you like to: [view] [download] [cancel request]"
04:45:52 <bsmntbombdood> xml db dump is only 2.3GB
04:45:53 <RProgrammer> LoL
04:46:08 <GregorR> Feels like a good moment to link http://www.codu.org/rxml.php
04:46:25 <pikhq> Shameless whore.
04:46:30 <GregorR> ^^
04:46:51 <bsmntbombdood> raster images in xml?
04:46:53 <bsmntbombdood> eeeeeewwwwwwwww
04:47:01 <bsmntbombdood> vector, i can understand
04:47:20 <RProgrammer> HAHAHA
04:47:25 <RProgrammer> hehe
04:47:30 <RProgrammer> snicker..
04:47:52 <fax> looool
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:11 <RProgrammer> How much in jpeg?
04:49:21 <pikhq> <image src="base64:BASE64-STUFF" />
04:49:37 <fax> :|
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:05 <fax> oh god :|
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:51:56 <bsmntbombdood> just imagine the analysis possibilities
04:52:09 <pikhq> That's part of the idea.
04:54:35 <bsmntbombdood> hrm
04:54:45 <bsmntbombdood> too bad you can't get html of just content pages
04:55:23 <bsmntbombdood> it's like half the size
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
04:56:42 <bsmntbombdood> sweet, wiktionary is only 46MB
04:56:44 * bsmntbombdood downloads
04:56:49 <RodgerTheGreat> woah, cool
04:57:03 <bsmntbombdood> I use wiktionary all the time
04:57:19 <bsmntbombdood> hopefully the format is usable
05:02:59 <bsmntbombdood> fyi, wiktionary decompressed is 364M
05:08:04 <GregorR> Still pretty small.
05:10:16 <bsmntbombdood> yeah
05:10:33 <bsmntbombdood> I'm not sure how I can use it now though
05:11:16 <pikhq> Using find.
05:11:22 <pikhq> Or ls & grep.
05:11:31 <bsmntbombdood> uh, no
05:11:35 <bsmntbombdood> it's a single xml file
05:11:49 <pikhq> Grep, then.
05:11:57 <bsmntbombdood> won't work
05:12:08 <bsmntbombdood> at least, not to my knowledge
05:13:39 <bsmntbombdood> I guess I could write a script
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:37 <bsmntbombdood> don't need a full parser
05:16:43 <fax> well its not a full parser :P
05:18:50 <pikhq> And you need an XML parser, anyways.
05:19:23 <pikhq> (SGML != XML)
05:20:18 <bsmntbombdood> don't need a parser at all
05:22:45 -!- Sgeo has quit ("Ex-Chat").
05:26:53 -!- RainbowTrout has quit ("Chatzilla 0.9.77 [Firefox 1.5.0.11/2007031202]").
05:37:39 <bsmntbombdood> fantastic, it doesn't work
05:50:50 <bsmntbombdood> fucking python
05:51:25 <bsmntbombdood> It looks like a caching sort of bug in file._i
05:51:30 <bsmntbombdood> file.__iter__
05:57:06 <bsmntbombdood> ok, it works
05:58:59 <bsmntbombdood> kinda slow, about 5 seconds for a search
05:59:28 <bsmntbombdood> depending on how close the word is to the top
06:04:27 <bsmntbombdood> not too impressive
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:50:57 <RodgerTheGreat> hm
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:26:38 <SevenInchBread> ooooh http://en.wikipedia.org/wiki/Logic_File_System
23:27:27 <SevenInchBread> you could mix pathnames with logic statements
23:27:46 <SevenInchBread> path/name/here + other/path/here
23:28:07 <SevenInchBread> basically all the set operations.
23:28:28 <SevenInchBread> and... some recursive ones... or something
23:43:48 -!- calamari has joined.
23:59:54 -!- Sgeo has quit ("Ex-Chat").
2007-04-22
00:16:10 -!- xtofs has joined.
00:16:15 <xtofs> Hi
00:16:30 <oerjan> hi
00:17:02 <xtofs> are there any functional esoteric languages ?
00:17:09 <GregorR> Quite a few.
00:17:19 <GregorR> (Not shockingly)
00:17:25 <oerjan> Unlambda, Lazy K
00:17:43 <xtofs> like lambda calculus with full blown higer order functions closures first class environements ?
00:17:48 <oerjan> Iota and Jot
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:23:18 <oerjan> indeed it is
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:15 <oerjan> postscript is not bad
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:28 <SevenInchBread> What is it?
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:42 <SevenInchBread> ah...
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:05 <xtofss> indeed
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:35:26 * SevenInchBread raises hand
00:36:33 <xtofss> link ?
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:38:58 <SevenInchBread> hmmm... lemme find the source of one.
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:42:59 <SevenInchBread> I've got a broken one in Python.
00:43:07 <SevenInchBread> the "original", if you will.
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:57:10 <SevenInchBread> <.< how about in Python?
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:10 <SevenInchBread> just reverse and pop
01:06:14 <SevenInchBread> ..and duplicate
01:06:16 -!- fax has joined.
01:06:25 <fax> hello
01:06:45 <oerjan> 'evening
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:09:09 <oerjan> and empty
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:22 <oerjan> what reverse lookup?
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:26:46 <RodgerTheGreat> that sounds like a painful concept
01:31:08 <SevenInchBread> oerjan, I think the main rationale for using trees in memory.
01:31:11 <SevenInchBread> *is
01:31:31 <oerjan> yep
01:32:31 <SevenInchBread> ah... I know how I'll do it.
01:32:39 <SevenInchBread> without using trees at all
01:32:46 <oerjan> ?
01:43:17 <SevenInchBread> I'll show you when I finish it.
02:15:52 -!- Figs has joined.
02:16:19 <SevenInchBread> oerjan, like this: http://deadbeefbabe.org/paste/4478
02:16:25 <SevenInchBread> (untested dupdog interpreter)
02:19:21 <SevenInchBread> ....and now with a bug fix :)
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:11 <Figs> ...
02:25:17 <Figs> NO SHIT, SHERLOCK!
02:25:24 <Figs> </bitterness>
02:25:35 <oerjan> i think you are popping off both ends all the time
02:25:43 <Figs> me?
02:25:53 <Figs> :P
02:26:14 <oerjan> no, SevenInchBread
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:26:37 <ihope> :-P
02:28:01 <Figs> mmm
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:27 <Figs> ooh
02:31:31 <Figs> plans for a flying saucer
02:32:44 <Figs> wow
02:32:58 <Figs> who the fuck sells jet engines for $35?
02:33:03 <SevenInchBread> oerjan, nope... the popping needs to be reversed to.
02:33:29 <Figs> scratch that
02:33:32 <Figs> $20
02:34:09 <Figs> oh
02:34:13 <Figs> it's blue prints
02:34:14 <Figs> :P
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:26 <SevenInchBread> ah yeah... it would just be one end.
02:35:56 <oerjan> you could have pops off both ends before a duplication
02:36:31 <Figs> ooh
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:36:47 <Figs> :P
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:27 <SevenInchBread> both?
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:08 <SevenInchBread> ...probably not.
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 <SevenInchBread> it would be something like a hot air balloon.
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:01 <fax> / \
02:41:03 <fax> ^ like that
02:41:08 <fax> / \
02:41:16 <fax> I meant / \
02:41:23 <Figs> at the top?
02:41:25 <SevenInchBread> nah... a hole wouldn't allow for as much force.
02:41:26 <Figs> why
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:42:22 <Figs> a jew engine?
02:42:32 <SevenInchBread> ....hahahaha
02:42:38 <SevenInchBread> best typo ever
02:43:11 <Figs> hmm
02:43:16 <Figs> if I spin the engines
02:43:22 <Figs> like
02:43:32 <Figs> -/\-
02:43:36 <Figs> ring holding code
02:43:37 <Figs> *cone
02:43:50 <Figs> with engines sucking air from above and blowing into the cone
02:44:06 <Figs> spin the ring
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:45:35 <fax> hehe
02:48:04 <ihope> Ring holding code!
02:48:28 <ihope> Oh, also.
02:48:31 <ihope> SevenInchBread: "hatful"
02:50:32 <Figs> I corrected that one :P
02:50:33 <SevenInchBread> oh alright
02:50:44 <ihope> :-)
02:51:32 <Figs> ah hahahahaha
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:28 <Figs> oh wow
03:08:40 <Figs> did you know Irrlicht is the German word for "Will-o-the-wisp"?
03:16:12 <Figs> ooh
03:16:19 <Figs> D Harmonic minor
03:17:14 * oerjan somehow never considered D Harmonic minor an ooh subject
03:18:13 <Figs> too bad :P
03:18:32 <Figs> http://www.tonalcentre.org/Harmminchords.mid C harmonic minor!
03:19:29 <ihope> Fourier series!
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:20:43 <lament> what's spag?
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:21:43 <lament> well no
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:01:43 <oerjan> oh
22:04:02 -!- ShadowHntr has joined.
22:08:00 -!- atrapado has joined.
22:42:16 -!- Sgeo has joined.
22:45:13 <SimonRC> hi
23:07:35 * pikhq <3 Beryl. . .
23:13:53 -!- atrapado has quit ("Saliendo").
23:15:37 * GregorR *stab* beryl and beryl users
23:22:46 -!- sebbu has quit ("@+").
23:29:46 * pikhq shines as he dies
23:33:28 -!- pikhq has quit ("leaving").
23:33:45 -!- pikhq has joined.
2007-04-23
00:32:41 <SimonRC> which Beryl?
00:33:03 <pikhq> Beryl 0.2.1. . .
00:33:40 <SevenInchBread> ...I like how it's a SPECIFIC Beryl.
00:33:53 * SevenInchBread wishes he knew how to make GUI stuff.
00:34:03 <SevenInchBread> I'd make an AWESOME windowing system.
00:34:16 <pikhq> Just do some plugins to Beryl.
00:34:25 <SevenInchBread> NO I SHALL HEAR NONE OF IT
00:34:33 <SevenInchBread> DO NOT TELL ME ABOUT ITS EXTENSIBILITY... I SHALL MAKE MY OWN
00:34:52 <pikhq> IN BRAINFUCK?
00:35:05 <SevenInchBread> Nope.
00:35:15 <SevenInchBread> ....where would you start, if I may ask?
00:35:32 * SimonRC prefers the default KigDos window managed
00:35:42 <SimonRC> s/d$/r/
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:01 <pikhq> BrainfuckWM.
00:53:05 <pikhq> Obviously.
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
00:58:32 <SimonRC> bastards
01:16:37 <ihope> On IRC?
01:17:17 <SimonRC> yes
01:26:57 <ihope> You can do that?
01:27:32 -!- ihope has changed nick to i.
01:27:37 -!- i has changed nick to ihope.
01:27:44 <ihope> You're sure?
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:28:54 <SimonRC> zzzz
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 ("@+").
2007-04-24
00:39:11 -!- calamari has joined.
00:46:08 <ihope> SevenInchBread!
00:46:11 <ihope> Wait, no, never mind.
00:54:21 <ihope> SevenInchBread!
00:54:38 <ihope> Wait, no, I just enthusiastic(al)ly yelled that a few minutes ago.
01:09:35 <bsmntbombdood> pleh
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:31:09 <bsmntbombdood> laloo
18:35:34 <lament> what's the best material for nylon-core bass strings for a guitar?
18:45:14 <bsmntbombdood> nylon
19:05:59 -!- UnrelatedToQaz has joined.
19:06:42 <UnrelatedToQaz> !help
19:06:46 <UnrelatedToQaz> Oops.
19:06:59 <lament> and not
19:07:01 <lament> i mean no
19:07:06 <lament> not nylon.
19:07:13 <lament> wrong ansewr.
19:07:16 <lament> i mean answer.
19:17:36 <UnrelatedToQaz> !help
19:17:46 <UnrelatedToQaz> Oops again.
19:17:58 <UnrelatedToQaz> !help EgoBot
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:23 <GregorR> I don't know.
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:06 <GregorR> It was on my hostname.
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 ("@+").
2007-04-25
00:21:58 -!- CakeProphet has changed nick to SevenInchBread.
01:19:54 <ihope> 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:52:53 <pikhq> Hmm.
01:53:05 <pikhq> Given that I didn't know that was *there*. . .
01:53:09 <GregorR> Haw
01:53:12 <GregorR> The idea is this:
01:53:36 <GregorR> var someObject = :[ /* content */ ]; someObject.newFunction = :{ /* this function will run in someObject's scope, not this one */ };
01:54:00 <pikhq> Oh.
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:16 <pikhq> Err.
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:56:43 <pikhq> Hrm.
01:57:06 <GregorR> See the dilemma? :)
01:57:11 <pikhq> Yeah.\
01:58:10 <pikhq> someObject.newFunction = someObject.:{};?
01:58:26 <GregorR> Hmmmmmmmmmmmmmmm
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:07 <GregorR> Just needs more colons ;)
02:02:30 <GregorR> someObject.newFunction = someObject:::{...};
02:02:31 <GregorR> :P
02:02:38 <pikhq> Hahah.
02:02:42 <pikhq> Overkill, no?
02:15:45 <SevenInchBread> GregorR, hmmm.. so what's the problem now?
02:16:04 <GregorR> SevenInchBread: Just syntax.
02:17:17 <SevenInchBread> well... it's pretty clear what it does..
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:32 <SevenInchBread> no I mean obj.func = :{blah}
02:18:36 <GregorR> OH
02:18:39 <GregorR> The problem there is this:
02:18:48 <GregorR> var a = (x as function):{ var x2 = x; x2(); };
02:19:14 <SevenInchBread> ...what's that do?
02:19:23 <GregorR> That's the question ;)
02:19:32 * SevenInchBread isn't familiar with the syntax.
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:15 <GregorR> Is ... what?
02:20:28 <SevenInchBread> I mean.... in what scope is x2
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:20:58 <SevenInchBread> ah okay... Pythonesque?
02:21:17 <GregorR> ....... not really :P
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:21:54 <SevenInchBread> ah
02:22:07 <SevenInchBread> I forget that we DECLARE our variables here. :)
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:24:10 * SevenInchBread might be misinterpreting the semantics... but eh.
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:40 <GregorR> Exactly.
02:26:50 <GregorR> Currently, that's easy because the scope will be reassigned.
02:26:57 <GregorR> But it causes problems elsewhere.
02:27:53 <SevenInchBread> ....could go with a good ol' self
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:29:50 <SevenInchBread> in that case... it would be someObject.
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:30:52 <SevenInchBread> heh, NOT SURE I KNOW THE BASE PROBLEM :)
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:26 <SevenInchBread> oh... that's what's going on?
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:36:09 <SevenInchBread> >.> wait... doesn't declarations fix that?
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:21 <SevenInchBread> yeah.... the colon thing is probably throwing me off.
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:37:59 <SevenInchBread> .....but what does it DO god damnit
02:38:05 <SevenInchBread> I'm still not sure what that does.
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:01 <SevenInchBread> that example means nothing to me right now
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:18 <SevenInchBread> .......the whole thing, apparently.
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:42:13 * GregorR reappears.
02:42:20 <GregorR> Like oerjan said.
02:42:42 <SevenInchBread> OH
02:42:44 <SevenInchBread> okay.
02:42:53 <SevenInchBread> the (x as function) is part of the signature.
02:42:56 <GregorR> Yes.
02:43:06 <SevenInchBread> I thought it was... something being evaluated just before the lambda.
02:43:23 <SevenInchBread> SENSE HAS BEEN MADE
02:43:27 <GregorR> Heh
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:13 <SevenInchBread> aaah.... dynamic scoping?
02:44:41 <GregorR> Yeah. And it was necessary for me to do that for adding functions to objects to work properly.
02:44:41 <oerjan> this is bizarre.
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:45:43 <SevenInchBread> well... it does... you can define var in function.
02:45:50 <SevenInchBread> ah... I see the problem.
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:33 <GregorR> Yuh
02:46:44 <oerjan> and something self-like might be cleaner.
02:46:53 <SevenInchBread> ....haha, that's what I suggested once.
02:47:03 <oerjan> yeah, i was repeating
02:47:15 <GregorR> /Getting/ self would be nasty at best.
02:47:20 <GregorR> (For the interpreter)
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:01 <SevenInchBread> not sure if it would work well in plof
02:48:07 <SevenInchBread> and... it has its problems.
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:08 <SevenInchBread> which is something that is done a lot in plof
02:49:11 <oerjan> well, you can do it to a class
02:49:21 <GregorR> Plof has no classes.
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:51:52 <SevenInchBread> eh.... for some reason it doesn't sound necessarily.
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:01 <SevenInchBread> hmmm... you do an explicit self.
02:54:08 <SevenInchBread> *could
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:19 <SevenInchBread> but... meh...
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:08 <SevenInchBread> hmmm... oh... well
02:55:11 <SevenInchBread> yeah... that would be weird
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:06 <SevenInchBread> (you said they were lexically scoped... anyways)
02:59:07 <GregorR> SevenInchBread: x2 was assigned x.
02:59:25 <SevenInchBread> ...ah
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:05 <SevenInchBread> ah okay.
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:25 <SevenInchBread> ......???
03:01:40 <SevenInchBread> oooh
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:01:59 <SevenInchBread> er... thick
03:01:59 <GregorR> Right
03:02:06 <SevenInchBread> it's so you can do things like return in an if statement
03:02:11 <GregorR> Exactly.
03:02:20 <GregorR> Since you're really passing 'if' a function.
03:02:21 <SevenInchBread> hmmm... sounds hackish to me... but eh.
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:47 <SevenInchBread> hmmm, ah.
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:26 <SevenInchBread> which largely fixes its scoping dillemma
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:14 <SevenInchBread> ...er, maybe... I don't quite remember.
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:09:55 <SevenInchBread> ...heh, more importantly... why would you do that?
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:12:08 * GregorR stabs himself to sleep.
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:15:03 <SevenInchBread> ...then I realized how stupid that would be
03:15:11 <SevenInchBread> and then stole io's syntax.
03:16:21 <oerjan> actually that resembles some thoughts i have been having on ALPACA's syntax
03:16:49 <SevenInchBread> I suppose it's possible....
03:16:56 <SevenInchBread> if you have explicit parenthesis for function calls
03:16:59 <SevenInchBread> ....but I didn't
03:17:18 <SevenInchBread> it was... quite strictly... "all functions are one argumented"
03:17:27 <SevenInchBread> ...well, one or zero argumented
03:18:17 <oerjan> you do know about combinatory logic, right?
03:18:26 <SevenInchBread> yup
03:19:01 <SevenInchBread> I simplified things quite muchly with good-ol comma-separate lists.
03:19:32 <SevenInchBread> and Smalltalkian keyword selector stuff.
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:23:02 <SevenInchBread> the syntax looks sleek and sexy though
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:08 <SevenInchBread> super-laziness.... only evaluated WHEN NECESSARY
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:28:52 <SevenInchBread> it kind of does.
03:30:21 <SevenInchBread> functions are objects that accept one message, and puts it into the source code.
03:30:39 <SevenInchBread> er rather... places it iin the executioon scope.
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:31:41 <SevenInchBread> lazily evaluated arguments... at that...
03:32:30 <oerjan> eh, are we talking about the same thing?
03:32:38 <SevenInchBread> ...not really
03:32:40 <SevenInchBread> :)
03:32:50 <bsmntbombdood> Everything is an object!
03:32:50 <oerjan> i was describing my ideas about ALPACA.
03:32:54 <bsmntbombdood> what are we talking about?
03:32:59 <SevenInchBread> dunno
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:26 <SevenInchBread> ...not sure I follow
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:37:47 <oerjan> *convenient
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:38:48 <SevenInchBread> so... if you did...
03:39:03 <SevenInchBread> $hello = (x + 1) if (x > 3)
03:39:08 <SevenInchBread> you could then do
03:39:21 <SevenInchBread> hello else 3
03:39:27 <SevenInchBread> or just as easily hello + 53
03:39:49 <bsmntbombdood> how lazy is haskell?
03:40:07 <oerjan> pretty lazy
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 <bsmntbombdood> when is something 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:46:57 <SevenInchBread> ....I worded that strangely.
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:49:58 <oerjan> etc.
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:39:59 <fax> hi
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:13 <SimonRC> erm, ok
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:20:33 <fax> :D
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:27 <SimonRC> online anywhere?
14:33:45 <SimonRC> the fact that you can write that as your first program shows what a poerful language Haskell it :-P
14:33:49 <SimonRC> *is
14:34:43 <fax> oh it is
14:35:03 <fax> http://fax.twilightcoders.net/files/LOGO.zip
14:35:09 <fax> I think its awful code
14:35:33 <fax> 1 sec
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:41:53 <SimonRC> heh
14:47:07 <SimonRC> looks great
14:47:16 <fax> thanks
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:19 <fax> no :[
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> its this?
14:55:27 <fax> http://halogen.note.amherst.edu/~jdtang/scheme_in_48/tutorial/overview.html
14:58:49 <fax> bbs
15:02:31 -!- jix__ has joined.
15:07:53 -!- jix__ has changed nick to jix.
15:11:38 <SimonRC> hmm
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:18:23 * fax back
15:20:20 -!- crathman has joined.
15:21:22 -!- ihope_ has joined.
15:21:30 -!- ihope_ has changed nick to ihope.
15:36:54 <SimonRC> heh
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:13:47 <SimonRC> erm
22:14:03 <SimonRC> no
22:14:09 <SimonRC> he just has a bad combover
22:14:24 <oerjan> oh :D
22:19:14 -!- goban has quit (Connection timed out).
22:22:51 -!- nazgjunk has joined.
22:23:22 <SimonRC> hi
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]").
2007-04-26
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:18:58 <oerjan> don't be so negative.
01:23:32 <e_tothe_[pi_i]> heh
01:27:07 -!- e_tothe_[pi_i] has changed nick to bsmntbombdood.
01:40:08 -!- fax has quit (" ").
01:56:49 -!- SevenInchBread has joined.
02:49:58 <bsmntbombdood> jeez
02:50:06 <bsmntbombdood> awk is practically a superset of C
03:02:25 <oerjan> awk has pointers?
03:03:08 <GregorR> .....?
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:10 <bsmntbombdood> no, no pointers
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:21:24 <bsmntbombdood> aah, lisp always wins
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:22:24 <oerjan> huh?
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:09:39 <UnrelatedToQaz> Quiet, isn't it?
21:09:55 <UnrelatedToQaz> It's the time difference wot does it.
21:11:58 <UnrelatedToQaz> It's noon in the US, at present.
21:12:00 <UnrelatedToQaz> I think.
21:12:05 <UnrelatedToQaz> So all are at work.
21:12:14 <UnrelatedToQaz> Good for them.
21:29:17 -!- fax has joined.
21:29:19 <fax> Hello
21:29:46 <UnrelatedToQaz> Ah, hello.
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:19 <UnrelatedToQaz> You can use goto to make quasi-functions anyway.
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:04 <UnrelatedToQaz> yeah, they're not much use
21:50:09 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:50:13 <UnrelatedToQaz> but it's the thought that counts.
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:11 <bsmntbombdood> common lisp's string format is terrible
22:59:33 <fax> I think its impossible
22:59:34 <fax> btw
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:00:39 <lament> it's called streams
23:00:44 <lament> and already exists.
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:25 <fax> (sadly)
23:01:42 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
23:01:55 <bsmntbombdood> hmm, alloca(3)
23:02:00 <bsmntbombdood> i didn't know you could do that
23:08:37 -!- crathman has quit (Read error: 148 (No route to host)).
23:17:20 -!- sebbu has quit ("@+").
23:25:54 <bsmntbombdood> write format in format
23:26:18 <fax> I dont think its turing complete without ~//
23:26:22 <fax> e..g calling back into lip
23:26:24 <fax> lisp*
23:27:29 <bsmntbombdood> does it have sequence, conditionals, and repitition?
23:27:46 <fax> yes
23:28:20 <bsmntbombdood> then it's turing complete
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:41:59 <fax> sure
23:42:30 <fax> http://www.gigamonkeys.com/book/a-few-format-recipes.html & http://www.lisp.org/HyperSpec/Body/sec_22-3.html
2007-04-27
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:40 * fax tests
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.
01:07:44 <SimonRC> j0
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:15:53 <fax> hi
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:22:00 <bsmntbombdood> mine is 35 characters
19:23:49 <bsmntbombdood> least characters wins
19:23:51 -!- helios24 has joined.
19:24:00 * fax tries
19:26:20 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
19:27:50 <lament> hm
19:28:11 <fax> hrm
19:28:11 <fax> [fbs=.2#1
19:28:18 <fax> then do [fbs=.,&fbs+/0 1{fbs 435 times
19:28:28 <fax> then take elemt 0
19:28:30 * fax tries
19:32:14 <fax> bsmntbombdood: whats the 8th fib number?
19:32:29 <fax> its 21 right?
19:33:05 <bsmntbombdood> yes
19:33:38 <lament> damn, i got 39
19:34:02 <lament> almost...
19:34:11 <lament> of course, you're probably using Perl :)
19:34:32 <bsmntbombdood> no, dc
19:34:43 <lament> oh
19:34:45 <lament> heh
19:34:55 <bsmntbombdood> dc might as well stand for "dense code"
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:35:51 <bsmntbombdood> 0sa1sb435[ladlb+sasb1-d0<f]dsfxlap
19:36:08 <bsmntbombdood> :D
19:36:09 <lament> tricky
19:36:41 <fax> whats that?!
19:40:18 <bsmntbombdood> fax: the program
19:40:41 <fax> what language
19:41:00 <bsmntbombdood> dc
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:47:45 <bsmntbombdood> yes~
19:47:48 <bsmntbombdood> i beat myself
19:48:25 <bsmntbombdood> 33 chars
19:48:31 <bsmntbombdood> 0sa1 435[rdla+rsar1-d0<f]dsfxlap
19:55:00 <faux> I suck at J
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?
19:57:30 <lament> something like that.
20:03:01 <sebbu> faux, what's your language ?
20:03:18 <faux> J
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:39:39 <GregorR> Hahahah
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:50 <GregorR> Neato.
21:58:57 <pikhq> Yay, Gentoo!
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:00:49 <GregorR> Well, maybe I could :P
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:02:50 <GregorR> :P
22:03:01 <pikhq> CC="gcc -m32".
22:03:04 <pikhq> Yeah; too easy.
22:05:05 <GregorR> Do you have 32-bit libs installed?
22:05:51 <pikhq> Yeah.
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:06 <GregorR> One step process ^^
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:31 <GregorR> I don't know which.
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:06:58 <GregorR> Hrm.
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:24:31 <bsmntbombdood> oh damn, i got beaten?
22:26:21 <fax> bsmntbombdood: by me?
22:26:32 <bsmntbombdood> "0{((2 0{(,+/))^:(435-2))1 1" ?
22:27:08 <pikhq> What language is that?
22:27:33 <fax> J
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:05 <bsmntbombdood> like HQ9 something something?
22:28:14 <pikhq> Turing complete, I'd assume. . .
22:28:23 <pikhq> BrainfuckFib. :p
22:28:47 <bsmntbombdood> using a builtin function is cheating
22:29:09 <pikhq> +++>++++>+++>+++++<<<F
22:29:24 <fax> hehe
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:42 <fax> wow
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:34:55 <bsmntbombdood> ah ha!
22:35:04 <bsmntbombdood> a one letter fib program, in C:
22:35:08 <bsmntbombdood> X
22:35:10 <fax> ?±!
22:35:13 <fax> what
22:35:22 <pikhq> X is defined as something else via -D.
22:35:29 <bsmntbombdood> right
22:35:33 <fax> -_-
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:35:52 <fax> heh
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:07 <fax> :S
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:49 <fax> heh
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:15 <pikhq> Bah.
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:40 <bsmntbombdood> i don't understand it
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
23:35:43 <oerjan> *Eratosthenes
2007-04-28
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:04:07 <fax> I could
00:04:11 <fax> but why?
00:04:17 <Tweek888> texting
00:04:19 <Tweek888> testing*
00:04:38 <Tweek888> and for lack of creativity.
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:07:34 <pikhq> Wihtout, that is.
00:08:10 <oerjan> it should make a difference, because you are otherwise using the element a[10000] which doesn't exist
00:08:15 <pikhq> . . . Oh.
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:04 <pikhq> There we go.
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:09:14 <pikhq> Yeah.
00:11:15 <pikhq> New version up.
00:13:43 <Tweek888> please print pi to the ten thousandths place.
00:13:44 <Tweek888> ;/
00:14:20 <pikhq> 10basePi.
00:14:43 <Tweek888> tricky.
00:16:14 <Tweek888> please enumerate pi to the ten thousandths place and newline say :O
00:16:47 <pikhq> 3.1415
00:17:09 <lament> :O
00:17:24 <Tweek888> this is fun
00:17:25 <Tweek888> :D
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:23:44 <Tweek888> no one
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:25:03 <Tweek888> lament won
00:25:06 <Tweek888> :/
00:27:11 <bsmntbombdood> lib sexy chic?
00:27:47 <lament> must be
00:32:29 <pikhq> ERROR: libsexychic.so.1 can be found; psychic != sexychic.
00:36:19 <bsmntbombdood> but they only have a levenshtein distance of 3
00:38:05 -!- pikhq_ has joined.
00:38:31 <Tweek888> please stop
00:38:35 <Tweek888> please hammertime
00:43:20 -!- Tweek888 has quit (Remote closed the connection).
00:46:05 -!- Robdgreat has joined.
00:46:15 <Robdgreat> was sappening
00:46:39 <oerjan> psychic irp
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:49:52 <GregorR> YAAAAAAAAY!
00:50:03 <GregorR> My new DPlof interpreter can run PlofPlof properly!
00:50:08 <GregorR> No more deep recursion for me :P
00:51:40 * Robdgreat awards GregorR a Gregor Snax(tm)
00:51:54 <pikhq_> PlofPlof?
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:54:41 <pikhq_> (Just interpret?)
00:55:02 <lament> compiles to plof, obviously
00:55:02 <GregorR> It just parses now :P
00:55:06 <pikhq_> Ah.
00:55:11 <GregorR> It's not finished.
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:55:28 <GregorR> Not in the least.
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:57:46 <pikhq_> Uh. . . Help?
00:58:12 <GregorR> How are you building it?
00:58:37 <GregorR> (Hint: The correct way is `dsss build`)
00:58:47 <pikhq_> Ah.
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:14 <pikhq_> WTF?
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:21 <pikhq_> But make?!?
01:02:29 <GregorR> Make is nothing-specific, and that's what's so bad about it.
01:02:36 <pikhq_> -_-'
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:06 <pikhq_> . . . Oh.
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:31 <GregorR> What's the issue?
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:45 <pikhq_> Ad infinitum.
01:04:55 <GregorR> ... this is building dplof?
01:04:59 <pikhq_> Yes.
01:05:05 <GregorR> That's one weird error.
01:05:34 <GregorR> Could you try `dsss build -m32` ?
01:05:51 <pikhq_> Same.
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:24 <pikhq_> I'm thinking so.
01:06:48 <pikhq_> And I, in my stupidity, overwrote /usr/bin/gdc.
01:06:59 <GregorR> Heh ^^
01:07:43 <GregorR> I usually install stuff to /opt/whatever :)
01:07:48 <bsmntbombdood> why so many layers?
01:07:53 <pikhq_> You think I could get a binary tarball of Dplof?
01:07:57 <GregorR> Sure.
01:07:58 <GregorR> One sec.
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:24 <bsmntbombdood> I know, and it's a waste
01:08:33 <pikhq_> Lisp begs to differ.
01:08:58 <pikhq_> Even Brainfuck can self-host. Why not Plof?
01:08:59 <GregorR> That's a waste, how?
01:09:11 <bsmntbombdood> of time
01:09:18 <pikhq_> No, it's not.
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:49 <bsmntbombdood> yes
01:09:52 <pikhq_> Err.
01:09:53 <pikhq_> D.
01:09:54 <GregorR> bsmntbombdood: The fact that that gives me Plof in C for free is just a side-effect.
01:09:58 <bsmntbombdood> so just write a plof->c compiler
01:10:04 <pikhq_> He is.
01:10:10 <pikhq_> It just happens to be in Plof.
01:10:11 <bsmntbombdood> without a dplof of plofplof
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:36 <GregorR> Err
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:10 <GregorR> Errr? :P
01:14:15 <lament> plof looks pretty boring
01:14:37 <GregorR> Oh no, I am so offended, blah blah etc?
01:14:51 <lament> yeah
01:14:59 <lament> something like that
01:15:01 <lament> :)
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:42 <GregorR> Heh :P
01:18:43 <pikhq_> Moral of the story: Dplof and x86_64 don't mix.
01:18:48 <GregorR> Foob.
01:19:02 <pikhq_> CPlof should be easier to get to mix, though.
01:19:51 <GregorR> Yuh.
01:19:55 <GregorR> That's part of the intention :)
01:21:43 * pikhq_ has the prom tomorrow. . . Whooo. . .
01:29:28 <bsmntbombdood> heh
01:29:38 <GregorR> I remember the prom ... I didn't go.
01:29:43 <GregorR> Best decision I ever made.
01:30:03 <bsmntbombdood> prom was last weekend at my school
01:30:52 <oerjan> should i put "prom" on my list of advantages to not being from the US? :)
01:31:25 <GregorR> Yes.
01:31:39 <bsmntbombdood> GregorR: what's wrong with prom?
01:31:47 <GregorR> What /isn't/?
01:33:25 <bsmntbombdood> i dunno...
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:11 <pikhq> Like I do. . .
01:35:15 <GregorR> Heh
01:35:16 <bsmntbombdood> probably
01:35:25 <bsmntbombdood> why GregorR doesn't like it
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:40:09 <pikhq> Obviously.
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:20 <pikhq> Yeah.
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:05 <pikhq> cPlof, even.
01:44:22 <GregorR> Yeah, but I don't actually have any ideas for it.
01:45:01 <bsmntbombdood> typing seems like it would be hard
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:14 <oerjan> Tweek888: 0 -> 0
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:20 <pikhq> Ah.
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:05 <oerjan> 1 -> 0
01:53:09 <pikhq> Easier, but less elegant.
01:53:11 <Tweek888> ty
01:53:39 <oerjan> wait...
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:07:57 <oerjan> *function
02:08:33 <oerjan> so it is more like (R -> C) -> (C -> Maybe C) :)
02:08:54 <bsmntbombdood> oh, right, it's time
02:09:04 <oerjan> actually, (R+ -> C) -> (C -> Maybe C)
02:14:25 <Tweek888> :)
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:12 <Tweek888> maths.
02:15:14 <pikhq> Differential equations, I belive, comes *after* AP calc, which is what I'm doing right now.
02:15:30 <bsmntbombdood> ha, classes
02:15:33 <Tweek888> you should just skip to diff. eq.
02:15:40 <Tweek888> AP calc is no fun.
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:07 <bsmntbombdood> ap calc is what i'm taking next year
02:16:11 <Tweek888> it's an elective class.
02:16:31 <Tweek888> normally taken after calc ii or iii.
02:16:37 <pikhq> Ah.
02:16:40 <Tweek888> so, it'd be after AP calc BC
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:17:41 <bsmntbombdood> what is it?
02:18:01 <Tweek888> love.
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:06:49 <RodgerTheGreat> howdy, everyone
03:06:53 <bsmntbombdood> hi
03:07:09 <pikhq> 'Lo.
03:07:22 <fax> Hey
03:07:23 <RodgerTheGreat> what's been going on in #Esoteric recently?
03:07:52 <pikhq> Plof's going to become self-hosting soon as Gregor and I bother.
03:08:45 <RodgerTheGreat> neato
03:09:07 <RodgerTheGreat> bootstrapping it with C or something first?
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:10 <pikhq> Dear God.
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:13:35 <RodgerTheGreat> or worms, I guess.
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:15:33 <pikhq> Jebus.
03:15:35 <pikhq> Crazy.
03:15:36 <RodgerTheGreat> :D
03:15:50 <RodgerTheGreat> but somewhat utilitarian and functional, eh?
03:17:08 <RodgerTheGreat> I envision it as an extremely powerful (if horrifically insecure) system.
03:17:19 <bsmntbombdood> aaah
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:46 <fax> :[
03:17:50 <pikhq> Just make the script run as UID {}.
03:17:52 <RodgerTheGreat> what language are you working in, bsmntbombdood?
03:17:58 <bsmntbombdood> RodgerTheGreat: dc
03:18:09 <fax> whats dc like?
03:18:17 <pikhq> It's a Turing complete RPN calculator.
03:18:19 <bsmntbombdood> fax: crazy awesome
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:38 <pikhq> man dc
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:18:58 <fax> cool
03:19:03 <bsmntbombdood> mine is 33 characters
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:17 <RodgerTheGreat> bsmntbombdood: neato
03:19:31 <pikhq> RodgerTheGreat: So run it in a subHurd.
03:19:41 <bsmntbombdood> 0sa1[rdla+rsar1-d0<f]dsf435rxlap
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:10 <bsmntbombdood> doesn't have to be dc
03:20:15 <pikhq> Ah.
03:20:18 <bsmntbombdood> fax: no way that works
03:20:21 <pikhq> Hmm.
03:20:26 <fax> bsmntbombdood: works for me
03:20:36 <bsmntbombdood> what is the number?
03:20:44 <pikhq> fib(435);
03:20:50 <fax> pikhq: heh
03:20:51 <bsmntbombdood> 363193867...461442690?
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:23 <bsmntbombdood> fax: nope, doesn't count
03:21:24 <fax> I can probably set options so it prints the whole decimal expantion
03:21:28 <bsmntbombdood> needs all characters
03:21:29 <fax> like preferences
03:21:58 <bsmntbombdood> i can beat your program, fax: [3.63194e90]p
03:22:05 <RodgerTheGreat> lol
03:22:10 <RodgerTheGreat> nice
03:23:14 <fax> bsmntbombdood: that doesnt calculuate it
03:23:58 <bsmntbombdood> doesn't need to
03:24:03 <bsmntbombdood> it only needs to print it
03:25:33 <bsmntbombdood> the number is 92 digits long, though, so the program won't win any prizes
03:27:16 <fax> well
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:39 <bsmntbombdood> RodgerTheGreat: same thing
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:35 <bsmntbombdood> kolmogorov complexity
03:28:36 <RodgerTheGreat> there's a difference in approach between trying to calculate a number and trying to compress a string
03:29:17 <Tweek888> print what is love
03:29:22 <oerjan> 20 is the largest you can get with a 64 bit number
03:29:22 <Tweek888> print bassline
03:29:29 <RodgerTheGreat> lol
03:29:46 <RodgerTheGreat> print baby don't hurt me
03:29:48 <Tweek888> ur doin it worng.
03:29:55 <Tweek888> baby don't hurt me
03:29:59 <bsmntbombdood> RodgerTheGreat: not in the kolmogorov complexity sense
03:30:19 <RodgerTheGreat> ok, I will accept this
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:31:26 <bsmntbombdood> ok, sure
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:14 <RodgerTheGreat> bbl guys
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:34:06 <pikhq> Err.
03:36:51 <fax> man
03:36:57 <fax> always such interesting stuff here :D
03:37:29 <pikhq> That's the idea.
03:40:44 <bsmntbombdood> pikhq: dc -e "2o 1sb 0sa [la d lb + sa sb lap lfx]dsfx"|more
03:40:51 <bsmntbombdood> print all the fibonacci numbers, in binary
03:41:14 <bsmntbombdood> oooh, interesting
03:41:36 <bsmntbombdood> the last digit goes 1,1,0,1,1,0...
03:41:37 <pikhq> bsmntbombdood: No, I mean "raw binary".
03:41:40 * fax hooks on tr 01 ' #'|
03:41:46 <bsmntbombdood> oh
03:41:56 <pikhq> Like, "screw up your terminal if viewed raw".
03:42:14 <bsmntbombdood> change that "p" to a "P"
03:42:18 -!- CakeProphet has joined.
03:42:25 <fax> hm
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:11 <bsmntbombdood> dc -e "2O 10101010110 P"
03:43:27 <fax> oh cool :D
03:43:32 <bsmntbombdood> er, no
03:43:41 <CakeProphet> mmmm... I need to find some kind of programming job where I can work at home.
03:43:54 <bsmntbombdood> dc -e "2i 10101010110 P"
03:44:19 <oerjan> i don't think dc goes up to base 256.
03:44:30 <bsmntbombdood> oerjan: doesn't need to
03:44:42 <oerjan> for raw binary you need base 256
03:44:50 <Tweek888> print HEY EVERYONE HACKERS IS ON TV
03:44:51 <Tweek888> :/
03:44:56 <pikhq> That's real base 2.
03:44:58 <bsmntbombdood> oerjan: "P" command
03:45:06 <oerjan> oh
03:45:49 <bsmntbombdood> 2o 1sb 0sa [la d lb + sa sb laP lfx]dsfx
03:45:57 <bsmntbombdood> all whitespace optional
03:47:02 <pikhq> Indeed.
03:56:42 <bsmntbombdood> nothing interesting in there
03:58:24 <bsmntbombdood> but piping it through hexdump and watching it scroll is fun
04:05:33 -!- zorkplik has joined.
04:07:49 <zorkplik> Please say "hello world"
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:09:46 <pikhq> I just joined it.
04:10:00 <zorkplik> What was irpbot?
04:10:22 <pikhq> oerjan *should* have it somewhere.
04:10:34 <oerjan> *sigh*
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:19 <pikhq> Figured as much.
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:42 <zorkplik> We need to DDoS that
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:41 <pikhq> Mmkay.
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:17 <zorkplik> How about you guys?
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:24:16 <zorkplik> cool
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:29 <zorkplik> I didn't quite understand it
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:38 <CakeProphet> I like strapping boots.
04:30:48 <zorkplik> oh, plof.
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:10 <GregorR> That's sexy.
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:45 <zorkplik> compiles to binaries?
04:32:46 <pikhq> (To be *perfectly* fair, my Brainfuck compiler is written in BFM, which merely compiles to Brainfuck)
04:32:49 <pikhq> To C.
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:34:49 * pikhq also loves that.
04:35:03 <zorkplik> Ooh, port nethack to bf!
04:35:20 <pikhq> First implement c2bf.
04:35:23 <pikhq> Fully.
04:35:27 <pikhq> Then port libc.
04:35:29 <GregorR> Heheh
04:35:31 <pikhq> Then port ncurses.
04:35:34 <pikhq> Have fun.
04:36:12 <zorkplik> wouldn't it be easier to make a program to port assembler to bf?
04:36:18 <pikhq> Probably.
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:36:31 <zorkplik> crap, I forgot it!
04:36:34 <zorkplik> it'll come back to me.
04:36:40 <zorkplik> Right.
04:37:19 <pikhq> http://kidsquid.com/old/compilers/bfasm/bfasm.html
04:37:51 -!- zorkplik_ has joined.
04:38:04 <zorkplik_> aw, my internets went away.
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:47:12 <GregorR> fax: It haunts my dreams.
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:14 <GregorR> Fun:
05:13:15 <GregorR> foreach(new(Range, 0, Infinity, 2), (x){
05:13:15 <GregorR> println(x);
05:13:15 <GregorR> });
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:35:13 <oerjan> deQue?
05:36:17 <oerjan> hm... i guess it's not very different from Queue
05:37:08 <oerjan> or wait...
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:37:45 <GregorR> My List is doubly-linked.
05:37:51 <oerjan> oh
05:38:06 <GregorR> My primary purpose here is not efficiency ;)
05:38:26 <oerjan> what about sharing?
05:38:39 <GregorR> ?
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:40:37 <GregorR> Hmm, yeah, that's true.
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:07 <GregorR> True, true.
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
05:51:14 <oerjan> or an exorcist
05:51:19 <GregorR> Heh
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:34 <bsmntbombdood> deques are just doubly linked lists
06:10:58 <bsmntbombdood> a pair (pointer to head, pointer to tail)
06:10:58 <oerjan> that is just one possible implementation
06:11:10 <GregorR> I thought they had constant-time lookup?
06:11:26 <bsmntbombdood> constant time push, pop
06:11:37 <GregorR> Oh.
06:11:49 <GregorR> How is that different from a list?
06:11:52 <GregorR> (doubly linked)
06:12:24 <bsmntbombdood> "deques are just doubly linked lists"
06:12:30 <GregorR> Heh :P
06:12:50 <oerjan> deques are an ast, not an implementation of it
06:13:03 <oerjan> Haskell uses finger trees.
06:14:05 * bsmntbombdood reads
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:45 <GregorR> ........... wtf.
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:23:54 <SimonRC> Syntax error.
13:27:48 <Tweek888> please suck my syntax error.
13:28:00 <Tweek888> :P
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:31:56 <fax> WTF
15:32:16 <fax> no.. way
15:32:33 <fax> thats got to be a hoax.
15:32:49 <SimonRC> from the BBC?
15:32:55 <fax> :S
15:32:56 <fax> wow
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:01:59 <SimonRC> خخا
16:02:03 <SimonRC> ثقة
16:02:21 <SimonRC> damned language-switching
16:04:18 <Tweek888> language switching is fun
16:06:21 <Tweek888> română
16:08:46 <pikhq> Jes, bonas.
16:10:11 <Tweek888> nein
16:10:42 <Tweek888> german is an ugly language
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:39:00 <Tweek888> ;/
16:50:48 <RodgerTheGreat> Tweek888: how is german ugly?
16:51:28 <RodgerTheGreat> glottal stops make a language easier to parse
16:51:36 <Tweek888> it's an ugly language
16:51:40 <Tweek888> not the sounds
16:51:42 <Tweek888> the structure
16:51:48 <RodgerTheGreat> wtf?
16:52:25 <RodgerTheGreat> the accent marks are cool, and noun capitalization creates an interesting kinda flow
16:52:44 * pikhq prefers Japanese.
16:53:08 <Tweek888> :/
16:53:29 <Tweek888> too many irregularities
16:53:32 <RodgerTheGreat> everybody and their cousin on the internet prefers Japanese
16:53:38 <Tweek888> i hate 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:05 <Tweek888> haha
16:54:13 <RodgerTheGreat> I find German useful, because some of the best demoscene coders in the world are from Germany.
16:54:18 <RodgerTheGreat> heh
16:54:21 <Tweek888> true.
16:54:21 <RodgerTheGreat> fair enough
16:54:27 <Tweek888> but who cares about the demo scene? :d
16:54:58 <pikhq> The CCC cares.
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.
16:57:53 <RodgerTheGreat> I use hyperbole for effect
16:58:47 <Tweek888> I use cocaine
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:11 <RodgerTheGreat> cool. <inline IRP "please enumerate new features" \>
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:06 <Tweek888> that's nice.
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:02:47 <RodgerTheGreat> documentation is good
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:33 <pikhq> Hmm.
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:01:55 <Tweek888> 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:13 <RodgerTheGreat> as well as tools with similar intent
18:13:16 <Tweek888> pikhq, is brainfuck fast?
18:13:36 <pikhq> RodgerTheGreat: Then you should love BFM.
18:13:41 <pikhq> It's odd, but it's functional.
18:13:44 <pikhq> Tweek888: Can be.
18:14:00 <RodgerTheGreat> I'm aware of this
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:17:44 <pikhq> Right.
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:24:47 <RodgerTheGreat> that would explain it
18:25:53 <bsmntbombdood> German :/
18:26:15 <bsmntbombdood> I wanted to learn german in highschool, but I have to take stupid spanish instead
18:27:26 <RodgerTheGreat> dayum
18:27:29 <RodgerTheGreat> sorry, dude
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.
18:31:50 <RodgerTheGreat> hm
19:40:59 -!- ihope has joined.
19:42:05 <ihope> Realization!
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:02:43 <GregorR> Heh
20:11:41 <ihope> pikhq: what, the processes can't do that themselves?
20:11:43 <ihope> :-)
20:12:03 <pikhq> ihope: . . .
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:12:55 <pikhq> core.com
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:25:42 <RodgerTheGreat> most kernels also handle memory paging
20:26:01 <RodgerTheGreat> or at least allocation
20:26:15 <RodgerTheGreat> because having processes all grab memory willy-nilly has some issues
20:29:23 <bsmntbombdood> sigh
20:29:30 <bsmntbombdood> i hate my physics teacher
20:29:43 <RodgerTheGreat> what does your teacher do that incites hatred?
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:50:52 <bsmntbombdood> pikhq: no shit
20:51:05 <pikhq> Has he *ever* learned calculus?
20:51:38 <bsmntbombdood> He is scared of calculus, and wants us to be also
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:54:02 <bsmntbombdood> what?
20:55:31 * pikhq is confused as to what your teacher wants
20:55:40 <ihope> Your physics teacher is scared of calculus?
20:55:49 <bsmntbombdood> yeah
20:56:00 <pikhq> In other news, fish scared of water.
20:56:24 <ihope> Indeed.
20:56:24 <bsmntbombdood> Physics is stupid without calculus
20:56:32 <ihope> Calculus is very important in physics.
20:56:48 <bsmntbombdood> calculus was created _for_ 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:24 <ihope> Interesting.
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:46 <bsmntbombdood> yeah
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:36:57 <CakeProphet> >.> Is there any way to rename a process?
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.
2007-04-29
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:31 <oerjan> :)
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:23:38 <oerjan> indeed
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:08 <ihope> :-)
02:26:14 <ihope> Runtime error, eh?
02:27:08 <bsmntbombdood> dc is so cool
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:30:28 <bsmntbombdood> $_
02:31:05 <oerjan> is that dc or perl?
02:32:05 <bsmntbombdood> neither
02:32:14 <bsmntbombdood> it's two characters
02:32:38 <oerjan> it does happen to be the usual perl default variable
02:32:46 <ihope> Default variable?
02:32:58 <bsmntbombdood> pronoun
02:33:16 <ihope> So what's it refer to?
02:33:22 <bsmntbombdood> it
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:36:25 <bsmntbombdood> perl is horrid
02:37:18 <ihope> I'm beginning to agree.
02:41:00 <oerjan> (actually, while (defined ($_=<ARGV>))
02:41:12 <ihope> What?
02:41:45 <oerjan> the result test is whether the value is defined, not whether it is true
02:42:33 <ihope> The horror.
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:13 <bsmntbombdood> = returns what it assigned (i assume_
02:43:21 <bsmntbombdood> s/_/)/
02:43:31 <ihope> It's an assignment operator?
02:43:36 <oerjan> yes.
02:43:51 <ihope> And returns what it's defined... the horror.
02:44:01 <bsmntbombdood> horror?
02:44:05 <oerjan> that is borrowed from C actually
02:44:15 <bsmntbombdood> yeah, and it's handy
02:44:36 <ihope> Indeed: horrible yet handy.
02:44:39 <ihope> a = b = c
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:47:35 <oerjan> *it
02:48:28 <oerjan> similarly with substitutions, that uses $_ as default and that too makes perl behave almost like sed.
02:59:34 <bsmntbombdood> sed+awk > perl
03:06:12 <ihope> oerjan: adds a print command where?
03:08:24 <bsmntbombdood> har har, the RSA-in-4-lines-perl needs to call dc
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:15:37 <bsmntbombdood> ihope: turing complete rpn calculator language
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:21 <bsmntbombdood> yes, but it's massivly uglier
03:17:25 <oerjan> i don't know awk much though
03:17:29 <bsmntbombdood> if it's not broke don't fix it
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:21:45 <oerjan> exactly :)
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:24 <ihope> Sort of.
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:13 <bsmntbombdood> wikipedia's handling of case in titles bugs me
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:33:51 <oerjan> what, it explodes? :D
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:02:56 <CakeProphet> wooo. C preprocessor hacks are oddly fun.
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:21:27 <SimonRC> sebbu: ??
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:05:44 * SimonRC goes to dinner
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:14 <bsmntbombdood> no one is writing fibonacci programs
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:14 <UnrelatedToQaz> Excuse my incompetence.
21:51:23 <UnrelatedToQaz> !bf ++++++++++[->+>+<<]
21:51:25 <UnrelatedToQaz> >>[-<<+>>]
21:51:26 <UnrelatedToQaz> <+++++++++++++++++++++++++++++++++++++++++++++++
21:51:28 <UnrelatedToQaz> <[>.-<-]
21:51:38 <UnrelatedToQaz> Not quite.
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)
21:52:12 <UnrelatedToQaz> Yes, I only just noticed that.
21:52:33 <UnrelatedToQaz> !insert rand(Expression_Of_Annoyance)
22:11:04 -!- jix__ has quit (Read error: 110 (Connection timed out)).
22:11:31 -!- jix__ has joined.
22:11:32 * pikhq sighs
22:12:18 <GregorR> ?
22:12:49 <pikhq> Just tired.
22:24:29 -!- UnrelatedToQaz has left (?).
22:35:17 <bsmntbombdood> how was prom?
22:36:04 -!- Jakevfr has joined.
22:36:43 -!- Jakevfr has quit (Client Quit).
22:42:06 <bsmntbombdood> $ echo "abc=2; (abc+2)*4"|./a.out | dc
22:42:08 <bsmntbombdood> 16
22:42:11 <bsmntbombdood> it works!
23:03:11 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
23:07:16 <pikhq> Went wonderfully.
23:07:35 <pikhq> Writing an infix->RPN program?
23:08:59 <bsmntbombdood> yeah
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:25:07 <bsmntbombdood> <nothing> = blank
23:26:25 <bsmntbombdood> easy
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:28 <bsmntbombdood> jeez
23:32:55 -!- ihope has joined.
23:33:57 <bsmntbombdood> i wonder what he wants it for
23:36:10 <bsmntbombdood> oh, haha
23:36:18 <bsmntbombdood> he just wants 0
2007-04-30
00:26:41 <Sgeo> !bf >++++++++++[>+++>++++++++++>+++++++++++>++++++++++++[<]>-]>>+++.>+.<<++.>--.----.>>----.<<<.>>++++.<+++++++.+.>>.<<<.>---.>>+.<<---.>--------.<++.>+++++++.+.
00:27:04 <Sgeo> !help
00:29:51 <GregorR> FINE, I'll revive EgoBot.
00:30:35 -!- EgoBot has joined.
00:30:42 <ihope> !bf >++++++++++[>+++>++++++++++>+++++++++++>++++++++++++[<]>-]>>+++.>+.<<++.>--.----.>>----.<<<.>>++++.<+++++++.+.>>.<<<.>---.>>+.<<---.>--------.<++.>+++++++.+.
00:30:46 <EgoBot> go eat shit fuckers
00:30:54 <GregorR> ...............?
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:44:59 <Roger_The_Bum> RodgerTheGreat, YOU!
00:46:15 <ihope> Wow. That's quite the analysis.
00:46:37 <ihope> As an English student, I declare it "good".
00:49:00 <Roger_The_Bum> analysis
00:49:07 <Roger_The_Bum> anal = anus
00:49:20 <Roger_The_Bum> -lys = breakdown
00:49:26 <Roger_The_Bum> -is = process
00:50:37 <GregorR> lol
00:51:04 <RodgerTheGreat> hm
00:51:14 <RodgerTheGreat> enlightening.
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:53:17 <speedykiller> JESUS 666
01:53:22 <speedykiller> hello my friends!
01:54:32 <Sgeo> Hi speedykiller
01:54:55 <pikhq> 'Lo.
01:56:52 <Roger_The_Bum> hmm
01:57:01 <Roger_The_Bum> I wonder if this would work
01:57:10 <Roger_The_Bum> !bf +>>+<+<<+>+<+>+><+><><><+<+
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:37 <ihope> !help
01:57:39 <Roger_The_Bum> heh
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:57:51 <ihope> You liar.
01:57:55 <Roger_The_Bum> wtf
01:58:04 <pikhq> Egobot just got revived without me noticing.
01:58:21 <Roger_The_Bum> and THAT's the beauty of brainfuck
01:58:29 <Roger_The_Bum> you can mash keys together
01:58:40 <Roger_The_Bum> and it actually does something
01:58:52 <pikhq> I beg to differ.
01:58:54 <pikhq> !bf [
01:59:06 <Roger_The_Bum> that's not that random
01:59:24 <pikhq> !bf sacdfj[q23bdfjasd][fasd]gfasdft3i5kjbviojasfkgsadhklgjsdfaklgjasl[]a[+-
01:59:59 <Roger_The_Bum> !bf >+<+<<-<-<-+>>-<<+-<[--++>+><>><<]><><+<+>++<+<+><+<+<<-<
02:00:17 <ihope> !bf ++<[+.>-]++>[<-[>>]+.-]++.
02:00:21 <EgoBot> <CTCP>
02:00:23 <ihope> Bah.
02:01:03 <Roger_The_Bum> !Bf >_> <_< >>>>>>-> +_+ 0_o -_-
02:01:07 <EgoBot> Huh?
02:01:28 <Roger_The_Bum> !bf >_> <_< >>>>>>-> +_+ 0_o -_-
02:01:34 <pikhq> !bfm source ^stdcons.bfm;source ^outs.bfm;string bah! "EgoBot needs BFM";outs bah!end
02:01:39 <EgoBot> Huh?
02:02:00 <Roger_The_Bum> ¡español!
02:10:20 <Sgeo> !bf .
02:10:30 <Sgeo> !bf[+.]
02:10:34 <EgoBot> Huh?
02:10:40 <Sgeo> !bf [+.]
02:10:52 <Sgeo> !ps
02:10:55 <EgoBot> 1 pikhq: bf
02:10:57 <EgoBot> 2 Sgeo: ps
02:11:06 <Sgeo> !bf +[+.]
02:11:09 <EgoBot>
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:45 <Sgeo> oO
02:11:50 * Sgeo killed EgoBot ;(
02:11:51 -!- EgoBot has joined.
02:11:58 * GregorR shakes his fist.
02:12:02 <ihope> Yay, EgoBot!
02:12:06 <Sgeo> !ps
02:12:10 <EgoBot> 1 Sgeo: ps
02:12:19 <Sgeo> !kill 1
02:12:21 * pikhq needs to try and get PESOIX working in Egobf sometime.
02:12:22 <EgoBot> Process 1 killed.
02:12:28 <Sgeo> !ps
02:12:33 <EgoBot> 1 Sgeo: ps
02:13:05 <pikhq> Or, if that fails, do a simpler method of PESOIX-like esolang extension.
02:13:21 <speedykiller> egobot, where am i
02:13:26 <speedykiller> how do i talk with egobot?
02:13:41 <ihope> !help
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:14:12 <speedykiller> nice ok
02:14:15 <speedykiller> !glass
02:14:18 <EgoBot> OK
02:14:20 <ihope> Hmm.
02:14:28 <Sgeo> !bf_txtgen 23
02:16:12 <EgoBot> 30 ++++++++++[>+++++>>><<<<-]>.+. [42]
02:16:46 <EgoBot> 420 ++++++++++++++[>++++++>+++++++++>+++++++>++<<<<-]>>.>+++.<------.>.--.>++++.<<-----.>++.<-------.------.>>++++++++++++++.<+++++++++++++.<-----.>+++++.>------.------.<<<----.++.---------.>-----------.<++++.>---.------------.>>--.<<------------------------------------.<++++++++++++++++++++++++.++++++++++++++.>>--------.<<+.>>----------.<<--.---------.>>--.>.+++++++++++++++++++
02:16:49 <ihope> !
02:16:52 <EgoBot> Huh?
02:16:56 <ihope> ...
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:17 <ihope> Wonderful!
02:17:38 <ihope> At least it got a space at the end.
02:18:32 <EgoBot> 72 ++++++++++++++[>+++++++>+++++++>><<<<-]>-.>-..<...........>.....<..>.... [170]
02:18:43 * ihope laughs
02:18:47 -!- CakeProphet has quit (Connection reset by peer).
02:18:53 <ihope> !bf ++++++++++++++[>+++++++>+++++++>><<<<-]>-.>-..<...........>.....<..>....
02:18:56 <EgoBot> aaaaaaaaaaaaaaaaaaaaaaaaa
02:19:01 * ihope laughs again
02:19:04 <GregorR> Good ol txtgen :P
02:19:09 <ihope> Indeed.
02:19:28 -!- CakeProphet has joined.
02:20:33 <pikhq> !glass {M[m(_o)O!"~exec self.raw(\"PRIVMSG #esoteric :Foo\")"(_o)o.]}
02:22:03 <pikhq> !glass {M[m]}
02:22:09 <pikhq> Did Egobot choke?
02:23:07 <bsmntbombdood> wouldn't be hard to add BFM to egobot, would it?
02:23:31 <bsmntbombdood> it just calls external interpreters right?
02:24:59 <pikhq> Yeah.
02:29:27 <GregorR> !ps d
02:29:31 <EgoBot> 1 GregorR: ps
02:29:42 <GregorR> !glass {M[m(_o)O!"Foo?"(_o)o.?]}
02:29:47 <EgoBot> Foo?
02:29:57 <GregorR> Oh right - there's no string escapes in Glass, pikhq :)
02:30:19 <pikhq> Ah.
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:23 <bsmnt_bot> SyntaxError: invalid syntax
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:30:42 <bsmnt_bot> SyntaxError: invalid syntax
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:31:41 <bsmnt_bot> SyntaxError: invalid syntax
02:31:43 <CakeProphet> ..
02:31:49 <bsmntbombdood> exec?
02:50:39 <CakeProphet> ~exec self.q = lambda x: x%x
02:50:56 <CakeProphet> ~exec sys.stdout(str(self.q))
02:50:57 <bsmnt_bot> <function <lambda> at 0xb7c5e72c>
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:53:24 <bsmnt_bot> SyntaxError: invalid syntax
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:02 <bsmnt_bot> SyntaxError: invalid token
02:54:43 <CakeProphet> ~exec exec self.q('self.raw(\'PRIVMSG #esoteric :!glass {M[m(_o)O!"~exec exec self.q(\\%r\\)"(_o)o.?]}\')')
02:54:44 <bsmnt_bot> SyntaxError: invalid token
03:00:09 <bsmntbombdood> self.q?
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:02:39 <bsmntbombdood> why are you putting in a second exec?
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:22:49 <GregorR> Fun, isn't it? ^^
03:26:56 <pikhq> Wonder where stuff I did in 1998 went. . .
03:26:58 <bsmntbombdood> wtf?
03:27:04 <bsmntbombdood> http://qdb.longlandclan.hopto.org/index.cgi/91
03:27:06 <pikhq> Oh well; that disappearance is probably for the best.
03:27:43 <pikhq> LMAO
03:28:14 <speedykiller> http://bleb.net/scape/ esoterica
03:28:38 <bsmntbombdood> http://qdb.us/71165
03:29:13 <speedykiller> lol
03:34:49 <pikhq> http://bash.org/?56188
03:36:14 <bsmntbombdood> getpot(1)?
04:01:08 <GregorR> http://www.qdb.us/84998 < awesome :P
04:02:20 <speedykiller> lol
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 <EgoBot> Huh?
13:07:58 <ais523> !ul (Is this still working?)S
13:08:02 <EgoBot> Huh?
13:08:06 <ais523> !ps d
13:08:10 <EgoBot> 1 ais523: ps
13:10:51 <ais523> !daemon ul bf http://pastebin.ca/raw/367774
13:10:58 <ais523> !ul (Does it work now?)S
13:11:02 <EgoBot> Does it work now?
13:11:22 <ais523> !daemon deadfish funge93 http://pastebin.ca/raw/373016
13:11:34 <ais523> !deadfish ioiosososssss
13:11:36 <EgoBot> 1
13:11:38 <EgoBot> 2
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:51 <RodgerTheGreat> haha
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:37 <RodgerTheGreat> it had better not be "fibonacci(xxx);" :)
14:05:40 <ais523> (the 10 is the index minus 2)
14:05:47 <RodgerTheGreat> hunh
14:05:56 <ais523> .10; is numeric wimpmode for the number 10
14:06:04 <RodgerTheGreat> that's an interesting looking language
14:06:19 <ais523> Underload is in fact a tarpit version of that language
14:06:28 <ais523> this language is Overload
14:07:02 <RodgerTheGreat> ah
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:12:24 <RodgerTheGreat> interesting
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?
15:54:14 <bsmnt_bot> 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:20:05 <GregorR> Fast :P
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:28 <GregorR> Hmmmmmmmmmmmmmm ...
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:33:03 <bsmntbombdood> GregorR: how does it work?
22:35:27 * bsmntbombdood doesn't understand how calamari's code works
22:56:03 -!- UnrelatedToQaz has joined.
22:56:44 <UnrelatedToQaz> Hey.
22:57:30 <UnrelatedToQaz> This might work today.
22:57:35 <UnrelatedToQaz> Don't mind me.
22:57:39 <SimonRC> hm
22:57:39 <UnrelatedToQaz> !bf ++++++++++[->+>+<<]>>[-<<+>>]<+++++++++++++++++++++++++++++++++++++++++++++++<[>.-<-]
22:57:43 <EgoBot> 9876543210
22:57:54 <UnrelatedToQaz> thank goodness
23:01:44 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
23:03:10 <UnrelatedToQaz> !help
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:07:59 <UnrelatedToQaz> !help ps
23:08:03 <EgoBot> Use: ps Function: display the current processes
23:08:30 <UnrelatedToQaz> !help i
23:08:33 <EgoBot> Use: i <pid> <input> Function: send input to a process
23:16:36 -!- oerjan has joined.
23:20:02 <bsmntbombdood> haha awesome
23:22:36 <UnrelatedToQaz> what?
23:27:17 <SimonRC> ?
23:44:24 -!- sebbu has quit ("@+").
23:45:24 -!- UnrelatedToQaz has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]").
23:47:20 <bsmntbombdood> i need PICK for dc
23:59:58 <bsmntbombdood> it works!
←2007-03 2007-04 2007-05→ ↑2007 ↑all