2007-04-01: 00:00:35 bsmntbombdood: See the Minsky machine article on the wiki 00:02:07 has to have two? 00:02:39 see the last point 00:02:48 or so 00:03:06 oh 00:03:19 that's neat 00:06:00 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 I think http://en.wikipedia.org/wiki/Counter_machine#Two-counter_machines_are_Turing_powerful is related. 00:13:34 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 cool 00:29:08 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 the wiki is sloooooooooooooooooooooooooooooow :< 02:00:40 must be day somewhere :\ 02:00:42 or maybe not 02:00:52 the foo 02:01:08 ~raw privmsg #esoteric :foo 02:01:08 foo 02:08:40 -!- Pikhq has joined. 02:26:48 ~raw privmsg oklopol :bar 02:27:06 not registered 02:27:24 can i even use raw? 02:27:28 ~raw privmsg #esoteric :bar 02:27:35 thought so 02:27:37 guess not 02:27:49 ~exec self.raw("PRIVMSG #esoteric :bar") 02:27:50 bar 02:27:55 right 02:27:55 ~exec self.raw'gf,kbd) 02:27:55 SyntaxError: EOL while scanning single-quoted string 02:28:21 i'm too slow... maybe it's time to sleep :) 02:28:25 ------------> 02:28:49 hmm who am i kidding, i just drank almost a liter of coffee :F 02:29:31 i'll try anyway, night --------> 02:29:45 I'm wondering about extracting caffeine from tea/coffee 02:30:09 might be cheaper than pills 02:30:15 nah 02:30:17 not likely 02:30:56 ah, coffee. _that's_ what i need. 02:31:58 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 given that those pills probably _are_ extracted from coffee.. 02:33:54 The method used there is probably not feasible on the small scale 02:40:28 w00t 02:40:31 function pointers 02:40:36 in less than 200 bytes of code 02:40:40 http://rafb.net/p/orWqgE84.html 02:41:12 heh 02:41:16 my output is smaller than my source :P 02:42:11 oh boy 02:42:36 I could have made a smaller example 02:42:45 oh boy... 02:42:47 but I like my print function 02:42:53 saves me work ;) 02:43:05 function pointers in asm are just the address where the code starts, no? 02:43:23 more or less... 02:44:00 what I did was reserve a word for the address of the function I wanted to call 02:44:18 first I set it to the address of the HELLO proc 02:44:25 (when I compiled) 02:44:39 and then later in my MAIN proc, I switch it with the address of GOODBYE 02:44:46 but since I call it the same way both times 02:44:50 ie, call [VMSG] 02:45:03 I've effectively got a function pointer 02:45:09 yeah 02:45:27 and I could replace the functionality of VMSG at any point 02:45:48 heh 02:45:53 this is why I started working on asm again 02:45:54 :) 02:46:00 so much easier to use this than C 02:46:22 not for the print stuff 02:46:25 that stuff sucks 02:46:35 but just for the function pointer stuff 02:46:38 it's so much easier 02:47:11 -!- jix has quit ("This computer has gone to sleep"). 02:47:58 it is? 02:48:04 I think so 02:49:07 -!- wooby has joined. 02:50:00 on the other hand... I do weird stuff 02:50:16 function pointers are straightforward in c 02:50:31 I should have said C++ 02:50:33 sorry 02:50:58 C++ is almost a superset of C 02:51:28 What I guess I mean is, a lot of things like changing around the interfaces of functions 02:51:55 C++ is just a mess anyway 02:52:06 a decent amount of it 02:52:20 mostly, they put too many things in the same place without thinking how all the pieces interact 02:52:27 (patching the language) 02:53:02 templates, multiple inheritance, variadic functions from C, etc 02:53:26 I mean 02:53:34 I've found some behavior that is just *weird* 02:53:47 I like C 02:53:48 because it uses so many features of the language at the same time 02:53:53 you have no idea what it is doing 02:54:26 let me see if I can find my code... 02:54:38 it had to do with operator overloading and templates, I think... 02:55:35 Figs_ you've already shown some pretty weird stuff :) 02:55:49 ew, templates 02:56:02 High level languages should be dynically typed 02:57:31 am I showing up as Figs_ again? 02:57:34 -!- Figs_ has changed nick to Figs. 02:57:41 fix it? 02:58:15 yes 02:58:37 hmm, i'll retry the sleeping thing --------> 03:01:30 -!- Pikhq has quit ("Leaving."). 03:02:16 hmm damnit 03:02:19 I can't find it 03:09:15 -!- Pikhq has joined. 03:13:54 oh well 03:26:15 -!- gg_ has joined. 03:27:21 . 03:28:22 .. 03:29:50 Oregon? 03:31:40 or New Jersey? 03:32:26 DC? 03:32:48 Virginia, but pretty close to DC, yeah 03:33:14 Oregon and NJ aren't that close though :) 03:33:20 :P 03:33:32 but, Oregon. 03:33:44 a trace route gives me eugine, and then something, and then a firewall? and then you 03:34:06 but when I looked it up, I got new jersey :P 03:35:19 Yeah, O.o 03:35:43 I get Comcast Region NJ when I use locators :P 03:35:43 wtf 03:36:53 eh 03:36:54 whatever 03:36:58 Hello. 03:36:59 :) 03:37:40 That shouldn't make any difference :) 03:37:42 Hello. 03:38:10 you would think 03:38:13 -!- Sukoshi has quit ("とても変な夢を見た、あの20分眠間に。"). 03:38:28 I'm talking about whether it's OR or NJ. 03:38:48 ??? 03:38:50 * Pikhq envies Sukoshi's Japanese IME magic 03:38:58 I think we're talking about two different things 03:38:59 nevermind 03:39:19 anyway 03:39:25 * Figs is bored 03:39:50 * gg_ is bored, but hungry too. 03:39:54 ah :\ 03:40:03 I was that way until recently 03:40:11 and then I remedied it with some yogurt 03:40:25 now I'm just bored 03:40:42 I should probably finish one of the projects I've started 03:40:44 ... hmm 03:40:48 * Figs is bad about that 03:41:12 I do get a bit distracted by tangents :P 03:41:33 * Figs wonders why he is criticising himself in public 03:41:42 tangents? as in math? 03:41:45 no. 03:41:47 :P 03:42:03 more like 03:42:49 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 I just finished that last one 03:43:40 I should probably finish the first bi 03:43:41 *bit 03:43:45 since its the easiest 03:43:51 and I've been working on it since January 03:44:27 I just really don't like programming in GM any more :P 03:44:32 it's too limiting 03:44:39 GM? 03:44:43 Game Maker 03:44:56 never heard of it. 03:45:00 Most people haven't 03:45:05 www.gamemaker.nl 03:45:20 they're going through a little insanity at the moment with version 7.0 03:45:42 I've been using it since about 3.0 03:45:49 and I'm about ready to move on 03:46:12 except that it just does so much to reduce the complexity of apps... 03:46:22 until you find something you can't do 03:46:28 then it gets to be annoying as hell 03:46:45 I mean, it has functions like, 03:47:00 draw_text("whatever string",x,y); 03:47:18 you don't have to do anything with the window handling 03:47:33 etc etc 03:47:51 has timers up to I think 10 or 12 built in for each object you define 03:47:58 if you need them 03:48:13 automatic game loop 03:48:27 although you can modify the behavior if need be 03:48:41 it was designed for teaching programming concepts in an interesting way 03:48:56 but the community is basically pushing for it to become a general purpose dev tool 03:49:13 but that's probably more than you ever cared to know :P 03:49:17 03:49:45 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 at least if it's a "real" game. 03:50:04 eh 03:50:08 hmmm... I've seen game maker. 03:50:09 I doubt I will 03:50:14 it looks kind of weird... like graphical C. 03:50:14 Oh? 03:50:22 it kind of is 03:50:36 you can do the entire thing with buttons and drag and drop 03:51:00 and then move onto a scripting language inside once you need the more powerful features 03:51:17 most of the community seems to be in the 10-20 range 03:51:37 * CakeProphet is 15 03:51:40 pre-college, and, in too many cases, pre-manners :P 03:51:54 I AM VERY POLITE. :) :) :) 03:51:57 :P 03:52:01 * Figs is 18 03:52:07 gg_? 03:52:13 22 03:52:47 I like a lot of stuff that GM does 03:52:55 (probably since I learned how to program in it) 03:52:59 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 hmmm... how did I start programming. 03:53:16 yeah, that's how I got here too :) 03:53:42 If you like language design, it's a good place to be 03:53:44 I basically just downloaded a Python interpreter... scanned through the turotial in a confused manner... and started playing around. 03:53:45 I kinda like this place, so I'll probably see you guys later. 03:53:49 kk ;) 03:54:05 ah :P 03:54:10 (@CP) 03:54:22 In GM, each object effectively has code that gets executed each step (step event) 03:54:38 there are create events, destroy events, keyboard press/release/check events 03:54:45 etc 03:54:59 you can add 'methods' by defining user events 03:55:04 but the documentation on this isn't very good 03:55:08 hmmm 03:55:10 and it's not very easy (I think) 03:55:19 though I have done it a couple times 03:55:39 it effectively has 2 types of data 03:55:43 strings and reals 03:55:48 (rationals) 03:56:07 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 how many do you know well? 03:56:34 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 ah 03:56:46 ...I only know the surface of those langs. 03:56:55 I have a friend who is writing a MUD... 03:56:58 well... except esolangs... which are easy to pick up usually. 03:57:12 :P 03:57:21 brainfuck? :P 03:57:25 -nod- 03:57:40 Befunge is grand fun. 03:57:41 I know 2.5 languages well 03:57:52 GML 03:57:55 and C++ 03:57:59 (C/C++) 03:58:15 I almost never do anything with pure C 03:58:37 but it would not be too hard for me to use it 03:58:47 I can code in Java... because I know C and C++ 03:58:51 but not well 03:58:56 because I don't know it deeply 03:59:00 Most of those languages I know quite well... I'm just completely unfamiliar with the builtin libraries and stuff. 03:59:11 eh 03:59:22 (but I do know enough to confuse my friend who is in AP Computer Science :P) 03:59:24 I read a lot of language specs... I can just never find the time to use them. 03:59:29 do-while loops, ftw 04:00:12 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 (by my standards of 'decent' ;P) 04:00:54 I started playing around with Prolog a bit a couple days to a week ago 04:00:58 and it was hard 04:01:06 because I'm so used to C-derived programming 04:02:00 Assembly is a pain in the ass though 04:02:08 because there are endless levels of it 04:02:43 I know enough that I can write interesting ways to do hello-world programs 04:03:08 but how do those characters end up in the console? 04:03:17 I sort of know 04:03:25 but not enough to figure it out from scratch 04:04:26 it gives you a bit more appreciation for what Windows actually gets right 04:06:20 I mean 04:06:24 they have an os 04:06:41 that is basically works with most hardware reasonable well 04:07:35 security flaws aside 04:07:46 it mostly does what it is supposed to 04:08:16 I talked to a friend of mine who was working on an OS 04:08:52 -nod- OS is a pretty big chunk of features. :) 04:09:05 Figs: yes, but so does every other OS 04:09:15 False. 04:09:31 DOS doesn't do what windows does 04:09:38 it's not much of an achievement to have a properly functioning multitasking OS 04:09:41 ...that's because DOS sucks. 04:10:01 when people say "windows sucks", they are not comparing it with DOS (usually) 04:10:06 lol 04:10:23 Actually, IMO, DOS *is* a better OS than Windows (from a usability standpoint). 04:10:23 windows is a multitasking operating system that sucks 04:10:31 DOS is not a multitasking operating system at all 04:10:36 so it's not very fair to compare them 04:11:20 Figs, yeah... watch out here - we're fuill of Linux patriots. 04:11:25 DOS does what you tell it to do. Windows does jack. 04:11:39 Where's your properly functioning multitasking OS rivalling windows, lament? 04:11:42 i'm not saying DOS is bad 04:11:46 Mention Windows at all with a grain of positiveness and you shall be PUMMELED. :) 04:11:55 lament3: DOS is, for a singletasking OS, nice. . . 04:12:03 Especially the more modern FreeDOS. . . 04:12:20 Figs: It's called "UNIX". 04:12:24 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 lament3: Nah, single-tasking OSes were quite common in the early days of computing. 04:13:05 Pikhq: incorrect. 04:13:07 *cough*batch computing*cough* 04:13:17 Pikhq: you mean, early days of personal computers 04:13:34 Pikhq, I meant _lament3_'s own personally written Windows rival 04:13:37 * bsmntbombdood is playing with generating audio in python 04:13:46 Figs: Ah. 04:13:52 Figs: why do you want me to write a windows rival? I don't understand your point. 04:14:18 [17:07:23] lament3: it's not much of an achievement to have a properly functioning multitasking OS 04:14:27 now now everybody... let's turn the thermostate down a touch. :/ 04:14:38 Figs: you were saying how you appreciated how windows "got things right" in terms of talking to hardware 04:14:56 Figs, writing an implementation of the UNIX kernel is considered a rite of passage for UNIX hackers. . . 04:15:09 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 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 And the UNIX kernel, by itself, does multitasking (fine, needs a process to fork();. . .) 04:15:40 Figs: i'm not saying it's easy to write an OS 04:16:02 Figs: i'm saying it makes no sense to praise windows for something it absolutely has to do as an OS 04:16:31 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 Hey 04:16:51 ...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 I didn't say it was "good" :P 04:17:10 Just that I'm impressed that it gets itself to work 04:17:27 and how much is going on and has to be dealt with 04:17:31 Pikhq: probably less than that. There're textbooks on how to do it. 04:18:01 ...this conversation reminds me of "attachment causes suffering". 04:18:13 it does? :( 04:18:16 Cake, I'm not really praising windows :P 04:18:27 lament3: That's "from scratch, with nothing more than the ability to do ASM and C". 04:18:28 ;) 04:18:29 i will stop opening attachments then 04:18:45 Pikhq: you cheat quite a bit by allowing yourself to use C :) 04:19:02 but yeah, there're textbooks on how to do that. 04:19:09 (minix) 04:19:10 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 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 it's more like the dog that can dance that's made billions and billions of dollars 04:19:57 eh 04:20:09 * CakeProphet sesnses a proprietary software conversation coming. 04:20:10 GNU/Linux is just as impressive (if not more so for working better) 04:20:11 not sure how that's relevant to the conversation 04:20:45 in a very real sense, Windows is a better OS than linux 04:21:05 it's more user-friendly :) 04:21:11 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 I disagree. 04:21:22 but Linux does some stuff much better 04:21:34 . . . this, of course, is because I'm one of the users that Windows is distrustworthy of. ;) 04:21:38 Pikhq: windows programmers don't care about programming? :) 04:21:52 lament3: They're doing it because it's a *job*. 04:22:02 correct, and? 04:22:51 * CakeProphet trashes the sidewalks and dances around in circles rubbing his bellybutton 04:22:53 CULTURE JAMMING 04:22:59 rofl 04:23:09 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 heh, I didn't mean to open this whole can of worms 04:23:29 so... 04:23:29 I was just appreciating modern OSes. Windows in particular since I'm most familiar with it. 04:23:39 I think vim... is probably the best text editor out there for developers. 04:24:01 What, no notepad? :P (jk) 04:24:14 I think that the only manly editor is a dick-controlled electromagnet to write bits on the drive. 04:24:17 and emacs... is a terrible mishmash of shortcut keys and an ancient funky AI language with too many parenthesis 04:24:25 at least appreciate something useful, like photoshop :) 04:24:27 dick-controlled O.o??? 04:24:35 photoshop is annoying 04:24:50 I mean, the back-end stuff is impressive 04:24:55 CakeProphet, Lisp is ancient simply because *it has lasting power*. 04:25:00 but I really hate their interface 04:25:08 Figs, the "dick controlled" part is just to make it truly manly. XD 04:25:12 Pikhq, :) LOL YAH RITE 04:25:16 oh, I thought that was a typo 04:25:39 Lisp is the worst thing to happen to comptuer programming since.... COBOL. 04:25:46 O.o 04:25:55 * CakeProphet snickers and hides in the bushes as chaos ensues. 04:25:57 za? 04:25:57 Which is *really* odd, since Lisp predates COBOL. 04:26:03 isn't it? 04:26:13 Lisp is what... `58? 04:26:15 Lisp hails from the 50's. 04:26:30 -snicker- you're making this too easy for me. 04:26:42 cobol, `59 04:26:45 lisp `58 04:26:54 he's trolling, Pikhq :P 04:27:02 Figs: look at how unix does hardware. The whole "everything is a file" thing. 04:27:38 yeah 04:27:38 ...but everything isn't a file. -grin- 04:27:39 Figs: I'm fond of troll-baiting. Adds activity to the room. 04:27:46 ;) 04:28:12 I've been liking Perl a lot lately... which made me realize that, for the most part, the "everything is a " languages are fairly annoying. 04:28:14 CakeProphet: Yeah. Stuff sort of evolved onto UNIX without thought towards the /dev/ stuff. . . 04:28:24 I agree with that 04:28:26 but for hardware 04:28:29 Thus why CakeProphet doesn't like Lisp. . . 04:28:32 it (usually) makes more sense 04:28:45 Pikhq, I like Lisp... it's pretty and easy to learn... 04:28:53 if I can write to the screen as if it was a file 04:29:03 if I can write to an internet connection as if it was a file 04:29:04 but... it's a tad too fanatical for my tastes. 04:29:07 it makes life a lot easier 04:29:18 Figs: I get the feeling you'd like the Hurd. . . 04:29:21 but of course, there's always going to be something that fucks it up :P 04:29:29 I don't know 04:29:38 I rather dislike the everything is ___. 04:29:47 but for hardware, it seems convenient 04:30:01 for software, it isn't right. 04:30:09 well yeah... most hardware has some sort of IO quality... that can be dubbed down to the operations of a file. 04:30:20 aye 04:30:34 -!- lament3 has changed nick to lament. 04:30:40 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 hmm 04:31:07 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 ooh 04:31:23 It's the GNU Project's take on a kernel. 04:31:39 I think I get it 04:31:45 distributed filesystem. 04:31:50 more so 04:31:59 distributed computing 04:32:04 Unfortunately, it's got some political issues preventing some coders from actually getting stuff *in CVS*. 04:32:21 ? 04:32:42 oh god 04:32:44 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 who the hell came up with recursive acronyms? :P 04:33:03 Linux could do better... I think... with high-level structures. 04:33:14 Plan9, BTW, is the successor to UNIX. ;) 04:34:07 The everything is a file thing sort of drops out any possibility for data structured files... and table-ish files. 04:34:55 I've seen 'everything is a table' languages too :P 04:34:59 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 ...and there's no versioning system... to keep track of old edits. 04:36:16 have you guys tried writing a general purpose tree? 04:36:31 (slightly different topic) 04:36:34 ...what do you mean? 04:36:57 like, a C++ style library for tree structures like vectors, lists, maps, etc 04:37:16 it's a pain in the ass! 04:37:32 well.... Lisp is pretty well-suited for trees... it uses linked lists internally. 04:37:44 in Python you'd just use nested lists... 04:38:00 or you could get all hyper-OO and make a tree object... if you're bat-fucking insane. 04:38:12 I've done it CP :P 04:38:35 (in C++) 04:38:47 using Boost::Any to defeat the type system 04:39:35 Python defeats C's type system by representing everything as pointers. 04:39:55 hmm 04:39:59 I should learn python then 04:40:12 they stole my idea! (before I had it, even) 04:40:21 it's pretty easy to learn... 04:40:26 yeah 04:40:33 I could probably learn it quickly enough 04:40:42 ..kind of bland though... but easy to write. 04:40:52 mmm 04:41:05 co curly brackets. 04:41:08 *no 04:41:17 I need to get around to learning all these scripting languages 04:41:23 Lua, Python, Perl, Tcl 04:41:51 Javascript (yes, I don't know javascript! Can you believe it?) 04:41:59 I don't know JS. 04:42:10 I recommend Tcl. :) 04:42:12 Try Self or Smalltalk while you're at it. 04:42:13 I'm just too lazy to learn it 04:42:15 or io 04:44:03 http://rafb.net/p/QXov1k68.html 04:45:17 output of the program, btw, is: 04:45:18 a(b(d(i,j,k),e),c(f,g,h)) 04:45:18 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 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 it's interpretted, right? 04:47:07 yeah 04:47:19 a little of both.... but it's considered interpreted. 04:47:23 mm 04:47:48 what C++ really needs is a type-traits system 04:48:12 typed data is not a bad thing 04:48:15 ....dynamic typing. :) 04:48:39 you can do that in some cases 04:48:43 but it isn't the answer to everything 04:48:52 What C++ really needs is one function: 04:49:05 void dwim(void); // Do what I mean 04:49:13 lol 04:50:11 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 I mean 04:50:38 I'm just not exactly sure what static typing is supposed to accomplish... other than maybe some pre-run errors... 04:50:42 take the example of those guys who were working on that probe that screwed up 04:50:50 because one part of the team was working in metric units 04:50:55 and the other in imperial units 04:51:05 dynamic typing doesn't mean "no types at all". 04:52:13 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 what I mean is... 04:52:26 pfft. 04:52:38 suppose you get a great new function to convert objects 04:52:48 and it's expect you to hand it a plate 04:52:55 and you give it a banana 04:53:07 ....then? 04:53:14 you'll get shit all over the floor 04:53:24 you either A. intended for it to do something or B. something will screw up and you'll know about it. 04:53:41 well, no 04:53:47 you don't always know about it 04:53:55 most problems in a program are my own mistakes :P 04:54:03 I'd rather find them as quick as possible, wouldn't you? 04:54:14 not really. 04:54:17 rather than testing, testing, testing to make sure data is moving around right 04:54:48 that's what I hated about whatever that program was called (second version of Klik but before Fusion or whatever) 04:54:59 GamesFactory or something 04:55:03 you'd play the game 04:55:13 see.... types don't really mean anything... 04:55:15 and when it encountered an unknown event, it'd prompt you what to do 04:55:21 not in duck typing anyways. 04:55:53 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 if you're trying to call a function to print a string 04:57:02 it's much more convenient to be able to know that it takes a _____ rather than a _____. 04:57:26 I admit, it makes less sense for some applications than others 04:57:41 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 C/C++'s got it wrong 04:57:54 no 04:58:07 you say it has the traits of a string when you interface with it by X 04:58:16 .....??? 04:58:51 that's why C++ has type conversion operators 04:59:03 this is fun 04:59:14 glad you enjoy :) 04:59:24 Figs, all of that sort of just sounds like "ways around static typing". 04:59:44 10 times, (play 2 octave harmonic scale, each note .015 seconds) 04:59:58 it is great fun 05:00:04 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 its essentially more control 05:00:59 welll... a lot of dynamically typed languages are starting to move towards optional static typing... which I think makes more sense. 05:01:09 control... when you need it. 05:01:17 which is basically what I'm saying 05:01:24 the point that C missed 05:01:30 because it's not designed for it 05:01:31 *C++ 05:01:37 is type traits 05:01:50 (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 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 you already gave the exact example 05:02:25 of why type traits are essential 05:02:36 I'd go with just pure duck typing with optional type checks/conversions on function signatures. 05:02:37 I have a function that deals with ____. 05:02:45 none of this "typed variables" mumbo jumbo. :) 05:02:46 XYZ is a lot like ____, I wish it could deal with it too 05:03:13 cake, how do you deal with objects of complex type in duck-typing systems? 05:03:19 ??? 05:03:27 complex type? 05:03:30 what I like about C is that I can do 05:03:41 struct Employee 05:03:41 { 05:03:45 int salary; 05:03:50 char* name; 05:04:01 //etc 05:04:03 }; 05:04:04 Slow typist? 05:04:17 no, I just tryed putting in //etc directly 05:04:26 Ah. 05:04:27 and had to type out the /msg #esoteric 05:04:41 forgot about that 05:04:41 I'm used to just hitting "/ /..." 05:04:42 :P 05:05:00 so... you like type declarations? 05:05:10 Yeah. 05:05:27 It's alright I guess. 05:05:48 what's the point of using OO if you can't keep related information together? 05:05:55 that's not really OO 05:06:05 the problem is 05:06:07 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 ok, now you're getting into what I'm talking about 05:06:41 I can replace stdin and stdout with my own special classes... and every read and write operation will be changed. 05:06:42 except I deal with things a bit differently 05:07:05 currently, in type systems, the way to say things are related is to inherit 05:07:12 X inherits from Y 05:07:18 and shares its interface 05:07:31 -nod- duck typing is a type system... 05:07:38 it just doesn't have typed variables. 05:07:47 only typed things... 05:07:58 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 how so? 05:08:21 well, how would your code react to it? 05:08:26 most likely throw an exception 05:08:29 you just get an AttributeError exception 05:08:30 or some equivalent 05:08:49 which means you have to keep checking for the error 05:08:52 You'd just get an error something and the program would exit. Fix it.. and move on. 05:08:58 The world doesn't end if you get a runtime error. ;) 05:09:02 that's what I object to. 05:09:15 is having to go through 05:09:19 FIND the error 05:09:26 (by accident, most likely) 05:09:34 -!- ShadowHntr has quit ("End of line."). 05:09:35 Java has static duck typing 05:09:35 you don't have to find compile errors? 05:09:42 sorta 05:10:01 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 compile errors say, "Oh, there's something wrong with this program go fix it now" 05:10:14 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 instead of waiting for me to run into it 05:10:24 assuming that I do 05:10:24 CakeProphet: yeah 05:10:38 Figs, that's not any different than a runtime error... you're just compiling instead of running. 05:10:39 (if I don't, John Doe down the road probably will after I release my project) 05:10:53 I want the error when I compile :) 05:11:03 ...why? 05:11:04 Yeah, runtime errors are annoying 05:11:12 what's the difference though 05:11:15 two reasons: 05:11:21 in python, you forget to import a module and it ends up showing up at runtim 05:11:22 the first is that I KNOW there's a problem 05:11:24 that's not cool 05:11:36 as soon as I try test 05:11:43 not 30 minutes later 05:11:47 -shrug- most errors I get in Python are obviously bad... those I KNOW there's a problem. 05:11:53 after doing X,Y,Z and a ton of other stuff 05:12:02 where the error could be _anywhere_ 05:12:10 te he he! 05:12:15 playing with sound is fun 05:12:21 for some types of problems, 05:12:28 you don't get an exception and an exit 05:12:34 because of the way the system is designed 05:12:35 for example 05:12:46 in Game Maker, variables can be either strings or reals 05:12:55 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 but they are not explicitly declared as one or the other 05:13:33 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 and it doesn't usually crash when I do that 05:13:49 I just get the mysterious message "0" 05:13:58 instead of whatever I expected it to output 05:14:00 ...then it has a bad error system? 05:14:05 no 05:14:15 that's the behavior it's supposed to do because of its weak type system 05:14:48 (the error system is a different issue) 05:14:54 actually I think I need to go for a while... 05:15:14 (shower, and my dad's probably gonna get mad at me for staying up so late... again...) 05:15:31 I'll come back if I can to chat about this more, since this is really useful for me 05:15:44 afk 05:15:48 alrighty 05:30:20 back 05:31:17 ahhh 05:31:20 Cake, 05:31:31 I was misunderstanding what you meant by duck typing 05:31:46 I was thinking of something different 05:33:39 holy crap 05:33:43 I need to learn OCaml 05:36:11 I don't know how much I like dynamic typing 05:36:19 but I like the ideas behind duck typing 05:36:40 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 like, saying a function takes as argument any object that can be used with ToString() 05:43:52 or 05:44:53 any object that can be use with ToString(), has a method foo() and a member variable bar. 05:45:05 etc 05:45:20 essentially, you specify interfaces 05:46:08 the nice thing about that is 05:46:16 if you have a library from VenderX 05:46:29 you can make it work with VenderY's library easily 05:46:38 by specifying ways to convert 05:47:53 like, 05:48:13 lets say VenderX provides a cross-platform error handling and logging library 05:49:13 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 buy* (drop the 'or sell' ... that didn't make sense :P) 05:50:16 -!- Sgeo has quit ("Leaving"). 05:50:49 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 -nod- what did you think I meant by duck typing? 05:53:01 if the language lets you specify a way to interpret ErrorTransactions as XErrorString... 05:53:13 (or whatever the other proprietary format is) 05:53:40 I was thinking of a different sort of weakly typed system, I don't remember the name (if it has one) 05:54:04 http://deadbeefbabe.org/paste/4188 <-- a very simple Tree like structure in Python 05:54:58 not sure I understand it 05:55:25 (I don't know python's syntax) 05:55:27 ...yeah... might be hard to follow 05:55:34 I use a lot of non-C-ish stuff... 05:56:01 what is 05:56:04 class Tree(list): 05:56:12 I assume you're declaring the clas Tree 05:56:16 but what is the (list)? 05:56:21 derives from list? 05:56:35 man if there's one thing I like about Python, it's the fact that indentation is enforced. 05:56:51 makes it look clean. 05:57:23 (yeah, I just jumped out of nowhere) 05:57:28 wb 05:57:34 thanks. 05:57:59 I think I'm gonna go to sleep 05:59:05 yeah 05:59:07 g'night 05:59:10 -!- Figs has left (?). 06:00:59 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 pikhq got a capital! 06:02:45 my main complaint about Python is that it doesn't give you... any options. 06:03:05 ? 06:03:05 The entire design goal is "there is one obvious way to do it"... 06:03:16 python's lack of real for really bugs me 06:03:42 heh... I haven't figured out how you would use a real for loop any different. 06:03:52 I almost always see it used just as pythons for loop. 06:04:16 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 when you want to modify the loop variable? 06:04:27 for skipping an item in the list or such 06:04:37 well... there's skip slicing. 06:05:14 loop through a list, if the current item is 0, skip the next one 06:05:19 bsmntbombdood: Inherited from gaim. 06:05:26 easy to do with a traditional for loop 06:05:40 hmmm.. 06:05:58 you have to expand the for into a while in python 06:05:59 well... yeah I guess... a weird requirement... but I suppose it would be more difficult. 06:06:05 not really. 06:06:11 yes 06:06:56 for item in (x for index,x in enumerate(SomeList) if index != 1): ...a bit long-winded, but do-able. 06:07:19 huh? 06:07:42 oh 06:07:55 you mean... if the current ITEM... not the current index. 06:08:02 yeah 06:08:11 that's what i said 06:08:20 ...you could use a variable in the loop to keep track of the condition. 06:08:34 I know it's possible, it's just ugly 06:08:37 ...but yeah... 06:09:07 (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 it can be done, it's turing complete 06:09:56 ...ideally there should be multiple forms. 06:10:14 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 ...but not having the option at all isn't good either. 06:38:26 Pikhq: Care to give me an opinion on something I'm mulling over for Plof2? 06:39:23 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 GregorR: make returns implicit 06:39:38 Anyone else can feel free to chime in too :-P 06:40:23 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 that makes whitespace significant too 06:40:43 ............... no. 06:41:07 Oh wait, you mean my object combination suggestion? 06:41:10 yeah 06:41:13 hm... what is the : operator? 06:41:44 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 Gregor: I don't really like that idea. . . ~ operator? 06:41:55 Nah. 06:42:01 Confusinger. 06:42:09 Yeah, go for a null op. 06:42:23 what about letting A : B be object combination? 06:42:24 var D = :[...] :[...]; I assume makes sense? 06:42:34 Pikhq: Of course. 06:42:48 oerjan: Confusing with ternary condition: foo ? bar : baf 06:43:03 [Yes, I buckled and added ternary conditionals :(] 06:43:14 ah, but in that case nullary will _also_ confuse it 06:43:26 ... how so? 06:43:30 GregorR: why?? 06:43:32 That syntax is meaningless at the moment. 06:43:42 if if can return a value, you don't need ternary ? 06:43:43 foo ? bar : [...] 06:43:44 I fail to see how the null op would confuse it. 06:43:47 bsmntbombdood: I'm trying to reduce the number of special compiler-provided functions. 06:44:07 oerjan: : [ is not the same as :[ 06:44:25 oerjan: In the same way that 1 - -3 is not the same as 1-- 3 06:44:47 ok 06:44:57 And anyway, like I said, I don't like that particular syntax, it will probably change ;) 06:45:08 GregorR: huh? 06:45:23 bsmntbombdood: "if if can return a value, you don't need ternary ?" < this makes no sense at all 06:45:41 if "if" can return a value, you don't need ternary "?". 06:45:47 OH 06:45:48 Hahahah 06:46:26 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 C needs ternary "?" because you can't say x = if(p){..}else{...} 06:47:43 You're dancing on the functional side of the functional-imperative gap, I'm dancing on the imperative side. 06:47:53 I, personally, don't like having a huge amount of builtins. 06:48:04 Hence why I was removing one :-P 06:48:05 I *like* being able to see the interface in stdlib.plof. 06:48:12 you could have a +: operator. 06:48:36 oerjan: For object combination? 06:48:37 GregorR: do you have operator overloading? 06:48:40 yes 06:48:45 bsmntbombdood: I intend to. 06:49:01 I would like to see the ability to overload _any_ operator 06:49:10 oerjan: How is that different from Pikhq's earlier ~ suggestion? 06:49:12 for example, the "_**fo" operator 06:49:29 The main issue with ~ is that it's used in C as a bitwise operation. . . 06:49:33 bsmntbombdood: Well, there are two operators that it makes NO sense to overload with how Plof works: assignment and object combination. 06:50:31 wtf? 06:50:37 slashdot has a digg thing 06:50:41 LOL 06:52:41 It's 20070401. What do you expect? 06:53:23 OOOOOOOOOOOH!!!!! 06:53:30 lol 06:55:32 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 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 !bf_gen Hello, world! 12:39:56 Huh? 12:40:04 :< 12:40:07 !help 12:40:09 ...asd 12:40:10 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 12:40:12 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 yay 12:40:26 !bf_txtgen Hello, world! 12:41:18 118 +++++++++++++++[>+++++>+++++++>+++>++++++++<<<<-]>---.>----.+++++++..+++.>-.------------.>-.<<.+++.------.--------.>+. [294] 12:42:24 ~bf +++++++++++++++[>+++++>+++++++>+++>++++++++<<<<-]>---.>----.+++++++..+++.>-.------------.>-.<<.+++.------.--------.>+. 12:42:25 Hello, world! 12:55:41 -!- wooby has joined. 12:59:34 okay 12:59:41 20 minutes of logs again 12:59:52 i should never leave this channel unguarded :) 13:00:57 * oklopol started his day with a bit of coding :P 13:00:59 http://www.vjn.fi/pb/p622623512.txt 13:02:32 conceptually trivial, but without any kind of syntax highlighting my feeble brain gets quite overloaded 13:03:11 I don't recognize the language 13:03:26 python, and because no one is going to read that, it's brianfuck with lambdas 13:03:35 ...why is it always brian? 13:03:37 :< 13:03:46 b****fuck 13:03:53 :P 13:04:23 that was too easy... i though i'd be busy for hours :\ 13:04:39 -!- anonfunc has left (?). 13:04:47 i'd like to know how oerjan did that with unlambda 13:05:44 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 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 hmm, i could convert that to pure lambda... 13:07:32 shouldn't be hard 13:07:56 actually, i won't, i have a better idea 13:08:51 anyone tinkered with javascript? 13:09:19 I wrote the reference Underload implementation in JavaScript 13:09:19 not me 13:10:43 it's interesting i think lol 13:10:47 funky language 13:10:54 fast and loose 13:11:10 it's good as a counterexample to all the statments Java and UML teachers make about object-oriented programming 13:11:29 the concept of a two level class/object hierarchy is outmoted 13:11:32 *outmoded 13:11:51 in JavaScript, you can come up with one-level or three-level or any-number-of-level hierarchies 13:15:29 yeah 13:15:31 i think it rules 13:16:08 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 http://pastebin.ca/419548 13:43:00 compiled into Perl, it's http://pastebin.ca/419550 13:43:50 -!- ais523 has quit ("in search of lunch"). 15:06:15 HELLO 15:06:19 FRIENDS OF THE REPUBLIC 15:07:34 ...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 I pledge, for this year, to only learn programming languages that an employer will be likely to have me use. 15:43:09 Who is with me? 15:45:57 Realise that some employers will be willing to let you code in esolangs: they don't understand jack, anyways. 16:08:12 haha, that'd be so cool :D 16:08:37 i big 3d-game programmed in bitwise cyclic tag 16:11:08 -!- ais523 has joined. 16:11:19 msg nickserv identify 523kk 16:11:38 Damn, I'll have to change my password now 16:11:52 yeah... we'd so take your auth 16:11:53 really 16:12:38 * Pikhq applauds 16:13:03 * Pikhq contemplates writing a word processor in BFM using PESOIX. :p 16:13:15 I've changed it now anyway, just in case a logreader decides to impersonate me 16:13:19 (as unlikely as that seems) 16:15:21 * ais523 was trying to release the latest version of INTERCAL 16:15:28 but failed due to the lack of anywhere to put it 16:16:16 so it's safely cooped up on my hard drive now, unable to unleash its esotericness on the world 16:16:43 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 How's about posting it in alt.lang.intercal? 16:20:26 you can't post binaries to a text newsgroup 16:20:33 and besides it's over 300KB long 16:20:52 (even when compressed) 16:22:42 Just a thought. 16:22:51 Carrier pigeon? :p 16:25:23 -!- jix has joined. 16:26:31 Pikhq: read RFC 1149 16:27:58 one of the only IP standards with an average packet return time of 5222806.6 milliseconds 16:30:07 ais523: I have. 16:30:15 Read the implementation. 16:33:20 ...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 ...what a puny netsplit 16:35:24 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 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 the original INTERCAL manual suggests that INTERCAL may be useful for maintaining job security 16:42:19 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 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 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 INTERCAL! 19:29:52 owtf 19:30:01 my mouse is broken 19:30:42 I use a mice for like, 5 activities. 19:30:44 *mouse 19:31:25 it was an april fools joke 19:31:35 stiky note stuck over the ball 19:31:49 Oh. Today is Apr. 1. 19:32:01 Maybe I can release RUT today. 19:32:13 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 wtf 22:08:04 http://religiousfreaks.com/2007/03/02/religious-freaks-distraught-over-miracle-pizza-pan/ 22:28:18 O_O 22:28:24 http://www.biggeekdaddy.com/sitebuilder/images/Virgins_in_Heaven-637x242.jpg <-- wtf? 22:30:02 hah 22:30:08 http://www.cooperativeindividualism.org/calvin-on-scientific-law.gif 22:32:06 oh god, i love that 22:40:29 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 poink 23:39:42 -!- richie12790 has joined. 23:40:08 hi all 23:40:33 -!- richie12790 has left (?). 23:41:35 ... 23:47:29 I saw brainfuck with procedures once 23:56:17 I've seen multiple implementations. 23:57:23 over achiever 2007-04-02: 00:02:44 hmmm... 00:02:56 I think I might need to do a genetic algorithm for this... 00:03:05 for what? 00:03:25 * CakeProphet is testing strings for "closeness" 00:04:18 well, you need to decide on a metric 00:04:52 (metric=distance function) 00:05:50 is this something like finding a minimal set of changes? 00:05:58 (diff-like) 00:08:42 -!- calamari has quit ("Leaving"). 00:09:45 CakeProphet: There is an algorithm for that in the python stdlib 00:11:22 lets see 00:11:30 /usr/lib/python2.5/difflib.py 00:12:11 from 2.1 it says 00:12:23 SequenceMatcher.ratio 00:13:47 get_close_matches is a cool function from that module 00:17:27 looks pretty simple 00:18:02 gives 2*/ 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 I'm going to recode it a little 00:25:36 well, I think I'm a kde convert 00:26:02 ion ftw 00:27:01 lol 00:27:26 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 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 ok, I have some code to compare two strings 01:28:23 ratio("apple", "apple") => 1.0 01:28:41 ratio("apple", "appl") => .888 01:29:15 ratio("apple", "orange") => .363 01:29:29 ratio("apple", "appel") 01:29:43 .8 01:31:26 ratio("aaa", "bbb") => 0. 01:33:51 is that like hamming distance? O.o 01:35:11 ratio("abcde", "edcba") 01:35:19 no 01:36:05 oerjan: .2 01:36:23 so, only one match 01:36:31 it's kinda broken 01:36:36 -!- Figs has left (?). 01:36:38 no consideration of swapping 01:37:51 hmm 01:37:56 not sure how to handle this 01:38:36 i don't think the python library handles swapping either, if i read the documentation correctly 01:39:31 difflib.SequenceMatcher("abcde", "edcba").ratio() => 0 01:39:47 that's strange 01:40:21 i dunno how to remove the matches from strings after they are counted 01:41:02 slicing? 01:41:12 well, yeah 01:42:02 an idea might be to sum something like squares of lengths 01:43:37 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 hmm 01:46:25 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 because after removing "cde", the strings become equal 01:47:19 ah 01:47:34 gah 01:47:42 well.. 01:47:47 I just created my own thing. 01:47:57 ...that takes into account transposition. 01:48:04 * CakeProphet didn't realize you were talking about it. 01:48:07 simply removing the matches gives ratio("abcde", "edcba") => 1.0 01:48:20 of course 01:48:32 because every piece matches somewhere 01:48:50 yeah 01:48:54 that's not acceptable 01:49:02 except this one uses a decision tree to find the shorted possible way to do it. 01:49:15 that's what my square suggestion meant to fix 01:50:45 this looks ok 01:51:00 4*/**2 01:51:26 and just removing common substrings as we find them 01:53:47 actually, the square root of that 01:54:31 ratio("abcde", "edcba") => 0.4472135955 01:55:31 ...I could actually split off the recursions into threads... if necessary 01:57:26 http://pastebin.ca/420272 <--- 01:59:02 oh man 01:59:11 sum of squares doesn't work very well 01:59:22 ratio("apple", "appel") => .44 02:00:01 -!- anonfunc has quit. 02:00:10 that's not good 02:00:51 you need to find the _longest_ match first 02:00:55 modification to hamming distance tend to work nicely. 02:01:30 you seem to be matching single characters 02:01:46 who me? 02:01:52 no, bsmntbombdood 02:02:12 hmmm 02:02:21 yeah, this finds the first one first 02:03:47 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 CakeProphet: Oh, a convience function 02:57:52 ...yes, I'm lazy 02:59:03 a function for black people with braids? 02:59:46 methinks python ints should have an __iter__ method 03:00:47 to iterate over what? 03:00:57 n.__iter__ = range(n) 03:01:17 hmmm.... don't think that would make much sense 03:01:25 for num in 6: 03:01:40 yeah 03:02:00 makes me think of "every possible floating point value of 6"... which would go on forever. 03:02:51 6.next() == 0 03:03:40 ? 03:09:19 -!- calamari has joined. 03:19:39 -!- Figs has joined. 03:19:46 hey 03:19:48 you guys seen this, right? 03:19:50 http://www.nata2.info/d/pictures/f/americans.gif 03:21:41 right. 03:23:26 http://www.glowfoto.com/viewimage.php?y=2007&m=03&img=30-224100L&t=jpg&rand=2971&srv=img4 03:41:55 I doubt highly that that's real. (The first one) 03:43:35 http://www.snopes.com/military/lighthse.htm 03:46:34 woo 03:46:38 i joined facebook!! 03:46:45 oh boy 03:46:46 * GregorR bops lament's nose. 03:46:48 BAD LAMENT 03:46:49 NO BISCUIT 03:46:50 -!- Arrogant has joined. 03:47:08 is there an esoteric programming group? 03:48:06 Psuedo Hadamard transform! 03:48:45 -!- Figs_ has joined. 03:48:52 "pseudo" 03:49:58 -!- Figs has quit (Nick collision from services.). 03:50:01 -!- Figs_ has changed nick to Figs. 03:50:14 ah 03:50:16 ther we go 03:58:10 there isn't even a brainfuck group :( 03:58:40 lame 03:58:50 you're just a lame-nt 04:02:08 -!- jix has quit ("This computer has gone to sleep"). 04:02:46 So, I'm thinking of allowing function overloading by allowing calls to arrays of functions. 04:02:49 [In Plof] 04:04:51 -!- Pikhq has joined. 04:07:45 function overloading? 04:08:21 -!- Arrogant has quit ("Leaving"). 04:14:24 ... you know, multiple functions with the same names, differentiated by their signature... 04:15:44 ...no? 04:16:00 ... what was that no to? :-P 04:16:21 I don't know 04:16:29 ... you know, multiple functions with the same names, differentiated by their signature... 04:16:43 Ah :-P 04:16:49 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 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 e.g.: var println = (x as string){...} 04:18:16 ic, so you can declare signatures. 04:18:20 Yeah. 04:19:04 if you wanted you could probably extend that to pattern matching 04:19:15 -!- Figs has left (?). 04:20:02 and guards 04:21:46 Um, would pattern matching in that scenario not be a guard by definition? 04:22:57 except a pattern could also deconstruct arguments into variables, and a guard could be a general boolean expression 04:23:27 I think that's getting a bit more complicated than is actually valuable :) 04:24:16 just guards then, perhaps. 04:26:39 say, (x as inrange(1,10)) 04:26:46 That I can see. 04:27:23 actually it would be a function to boolean 04:27:27 -!- Pikhq has quit (Read error: 110 (Connection timed out)). 04:27:30 Especially if I implement function overloading as above. 04:28:44 could even have an alternative syntax: (x where x >= 1 and x <= 10) 04:29:18 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 looks nice 06:30:46 I wonder why C++ and Java caught on 06:32:20 Apple <3 Obj-C 06:34:07 ... 06:37:12 What? I speak only truth. 06:37:24 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 ObjC is nothing to :3 about. 08:13:23 It's like someone grafted on two dissimilar things together into one weird ununiform conglomerate. 08:13:32 Of course, it's a lot better than C++, so there you go. 08:14:02 So, it's like Plof X-D 08:14:12 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 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 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 CL would probably be like that too if it had caught on. 08:21:28 afk food 08:29:52 -!- ShadowHntr has joined. 08:30:10 -!- Sukoshi has quit ("愛してた。アンタの高い姿を見たことの最初から、見とれた。アンタの真っ黒髪が風の勝手). 08:32:50 wtf? 08:33:59 excuse me? 08:33:59 :/ 08:53:18 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 what happened with that c2bf compiler? 10:34:05 nooga: asking me? 10:34:40 maybe 10:35:00 oh, then you want GregorR 10:35:20 i c 10:35:25 but i got to go ; 10:43:12 gonna go zzz, night all 10:43:51 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 hi guys 13:32:49 -!- jix has quit (Read error: 104 (Connection reset by peer)). 13:33:53 -!- jix has joined. 15:32:35 juju 15:32:45 -!- _filippo_ has joined. 15:32:47 i've got my raytracer in sadol working 15:32:49 :D 15:37:07 http://pastebin.ca/419385 :D 15:37:34 -!- dog4 has quit ("This computer has gone to sleep"). 15:39:39 make graphics output 15:40:14 -!- _filippo_ has left (?). 15:42:06 oklopol: echo "2" | BDSM2 raytracer.sad > output.ppm 15:42:24 and then open the pm file with some graphic viewer 15:42:29 ah okily 15:42:33 not now though 15:42:37 i'm gonna study! 15:42:45 i had an exam today, but i slept over it 15:42:46 good luck 15:43:01 i have one tomorrow as well, hope i have better luck with the alarm 15:43:30 :} 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 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 I see that you're all endlessly fascinated :-P 20:14:29 sure 20:14:46 i think the return thing works but STILL i don't like it 20:15:27 i find it quite unintuitive it checks whether it's used for something 20:16:46 So do I :( 20:16:48 still can't find any problem with it 20:16:50 though 20:16:56 I'm trying to find a nice middle ground, but can't *sigh* 20:16:57 :) 20:17:05 So I'm going for a good-enough middle ground ;) 20:17:28 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 since that's rarely an issue with languages :) 20:18:20 Basically, here's what it would mean: 20:18:50 var foo = :{ if(:{1 == 1}, {return(3);}, else, {return(4);}); }; // returns 3 20:19:01 var foo = :{ var a = if(:{1 == 1}, {return(3);}, else, {return(4);}); }; // sets a to 3 20:19:46 whose a? 20:20:58 var foo's level's a of foo's a? 20:21:34 will foo become something like struct{int a(==3);} 20:21:40 ? 20:23:50 the "else" thing is quite confusing imo :) 20:24:56 but so... hmm, why does the second one have :{ in the beginning? 20:26:03 ":{" means ":{expression without ; and implicit return }" and "{" means "{ expression; expression; etc.; insert return issue here; }" ? 20:26:07 * GregorR reappears. 20:26:59 :{ 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 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 ah, so foo will become nothing in the latter? 20:28:03 because you don't return anything 20:28:06 Right. 20:28:11 It's a contrived example :P 20:29:49 hmm 20:30:24 The thin/thick functions is a concept which helped make returning less ridiculous, but didn't necessarily make it less confusing >_> 20:30:27 I'm still working on it :P 20:30:44 var foo = if(:{1==1}, :{return "1 equals 1!";}, {return "the whole function failed"}); 20:30:46 hmm 20:30:55 couldn't thick/thin fix the if problem 20:31:01 like that i mean ^^^^^^^^^^^^ 20:31:15 The problem is, if is going to be calling those functions. 20:31:30 So the return value will go to 'if'. 20:31:31 -!- helios24_ has joined. 20:31:49 Not (in your example) to foo. 20:32:12 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 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 heh, "::{" 20:33:29 I hate how, no matter what concept of programming you follow, there's always a nasty corner :P 20:35:24 : == 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 hmm 20:35:51 It's totally legitimate to pass in functions that you didn't write in right there. 20:35:59 So where the bork would they return to :) 20:36:32 well, they obviously wouldn't be upperlevelized with : 20:37:01 eh 20:37:03 hmm 20:47:49 Welcome to my hell ;) 20:49:38 hmmm... you could like... use a bunch of different concepts... perhaps thwarting nasty corners where they breed. 20:50:55 The nasty corner comes from the merging of two concepts :-P 20:51:00 Namely functional and imperative. 20:51:31 Or rather, "every-block-is-a-function" and imperative programming. 21:02:10 i do quite the same thing with oklotalk actually, but i do everything functionally, just let functions modify upper level variables 21:03:06 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 oklopol: how's your learning? 21:18:37 oh the studying... i browsed through the first 50 pages or so :D 21:18:44 ;p 21:18:49 run teh raytracer 21:18:57 hmm... maybe i should 21:20:03 echo "10" | BDSM2 raytracer.sad > test.ppm 21:20:14 it will output 1200x900 image 21:20:35 eh 21:20:58 That interpreter name makes my brain bleed. 21:21:03 D: 21:21:07 it's cool 21:21:08 1. relink it, i've lost the page, 2. i assume i write that on this channel, specify where otherwise :) 21:21:31 i'm porting it to SymbianOS 9 21:21:45 oklopol: you run it in bash 21:22:31 i thought so 21:22:36 well, i don't have bash 21:25:34 pitty -.- 21:26:04 -!- jix__ has joined. 21:26:56 GregorR: i could name the interpreter "CSI - Cool Sadol Interpreter" but it wouldn't be such funny 21:27:25 nooga no windows way to do it? :P 21:27:46 hmm 21:28:02 BDSM2 ray.sad > test.ppm 21:28:16 and then input some number from 1 to 10 21:28:21 and press enter 21:28:26 and wait 21:28:27 -!- crathman has quit ("Chatzilla 0.9.77 [Firefox 2.0.0.3/2007030919]"). 21:28:42 and open test.ppm in irfanview or such thingy 21:29:36 the link? 21:29:42 you have it somewhere? 21:30:32 http://pastebin.ca/419385 21:32:33 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 GregorR: what about nested thick/thin function 21:48:58 it's not very pretty 22:18:46 but it is esoteric! 22:19:00 call them "function" and "block"? 22:28:04 dynamic and lexical scope. 22:28:41 function = lexical block = dynamical 22:33:09 hmm 22:34:30 you would use blocks as loops and conditions and all that jazz... and functions would be your... well... functions. 22:35:20 maybe you could make functions into thin sugar around blocks 22:36:11 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 in haskell, a function is just an expression with arguments, after all... 22:36:35 they could always just be... separate entities entirely... :) :) :) 22:37:42 I always find things work strangely when you attempt to de-primitify your primitives. 22:38:44 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 what do you mean 'what part'? 22:39:59 ...nothing specific. 22:40:05 i don't understand 22:40:11 integers are objects, clearly 22:40:18 ...just... a part... with all the vagueness entailed. 22:40:29 well, you have special egofield for that, .__value__= 22:40:30 i'm not sure if integers have any 'parts' to speak of 22:40:48 huh? 22:41:28 hmmm... so would the __value__ of 5 be? 5? hehe... makes sense in a strange way. 22:41:31 THE VALUE OF SAM IS SAM 22:41:40 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 INCREMENT CakeProphet_ BY CakeProphet_ GIVING TOQO 22:42:44 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 well 22:43:35 that's just a matter of representing your integers nicely. 22:43:50 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 yeah 22:44:01 the problem is that preferred representations in math care about operations more than about objects themselves 22:44:24 "Integers are a set (of featureless objects, that is) that behaves in a certain way under certain operations)" 22:44:37 however, you can define them in different ways, for example peano arithmetic 22:44:41 then it's easy 22:44:55 you have a magical singleton object zero 22:44:58 CakeProphet_ what's wrong with infinite recursions? 22:45:05 and then you have objects with field 'pred' 22:45:13 ...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 it's just a conceptual recursion and does not do any harm 22:45:18 and if your objects pred is zero, then you know the object is one 22:46:19 haha... that's pretty cool. 22:46:21 but in most cases, math treats integers as labeled "points" with no content 22:47:29 two integers are distinguishable if their labels are different 22:47:43 you can't say anything more than that unless you define operations on the integers 22:47:58 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 CakeProphet_: "needs an underlying explanation" is different from "consists of parts" 22:49:46 i think it's pretty silly for integers to have "properties", certainly 22:51:56 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? 22:52:21 electrons, however, don't consist of parts 22:52:33 we can still "explain" them by detailing their behavior 22:53:37 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 fortunately integers are not 'real' in any way :) 22:56:24 PUN NOT INTENDED AND I SHALL SMITE YOU IF YOU MAKE IT 22:58:40 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 :| 23:01:43 -!- lament has set channel mode: -o lament. 23:01:55 sorry :< 23:02:06 i couldn't resist 23:02:26 HMMM, NO 23:02:28 THAT'S A GOOD POINT 23:02:42 Hmmm... Let's turn OO on its head. 23:02:58 and now stuff is defined by what its a part of. 23:02:58 can't we do that tomorrow? :| 23:03:09 CakeProphet_: hmmm 23:03:14 CakeProphet_: that's Prolog i think 23:03:22 CakeProphet_: the "is a" relationship :) 23:03:29 oh, i guess that's different 23:03:37 well.... is a is something like... a type check 23:03:57 * CakeProphet_ is just having a little thought experiment here. 23:03:59 object a contains fields foo and bar 23:04:06 fields foo and bar are contained in object a 23:04:09 it's the same thing... 23:05:19 ah... hmmm... but what is a? 23:05:45 a is a part of the universe. 23:06:27 hmmm... same thing essentially... just... backwards. HMMMM HOW SURPISING 23:06:33 THAT SOMETHING REVERSED IS THE SAME THING REVERSED. 23:07:44 let's close the loop while we're at it. 23:07:55 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 to see the world in a grain of sand 23:17:10 and heaven in a wild flower 23:17:17 hold infinity in the palm of your hand 23:17:22 and eternity in an hour 23:17:37 i never realized that poem was about OOP. 23:19:27 i don't understand it 23:21:14 oh i do, now that i think about it 23:21:16 heh :) 23:23:13 .....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 CakeProphet_: what's incredible? 23:47:54 1 attosecond is the amount of time it takes for light to travel the length of three hydrogen atoms 23:47:58 O.o 23:50:32 theoretical physics is funny 2007-04-03: 00:05:55 -!- calamari has quit ("Leaving"). 00:11:21 an attosecond is to one second what one second is to the age of the universe. 00:11:31 ...just a sort of jaw-drop thing that wasn't expecting. 00:13:40 ---____--- 00:13:44 ^^ jaw drop 00:18:16 -!- ihope has joined. 00:18:24 Unlimited! Indefinite! Arbitrary! 00:18:37 But not infinite! 00:19:01 unbounded 00:33:13 That too. 00:33:32 Limited! Definite! Finite! Uh... inarbitrary! 00:33:40 Oh, and bounded. 00:34:05 why not infinite? 00:48:51 Because... um... 00:49:00 Because infinite is not finite! :-) 00:49:07 yes 00:50:55 mplayer * -quiet 00:51:01 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 sweet. 03:01:03 I found a joke module that fully implements goto and come from in Python 03:03:56 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 To anybody interested, #plof 06:14:48 heh 06:24:41 -!- Sgeo has quit ("Ex-Chat"). 06:27:42 -!- ShadowHntr has joined. 07:03:02 CakeProphet_: the code for that module is interesting 07:04:50 very interesting 07:11:06 http://www.python.org/doc/current/lib/module-tokenize.html 07:11:26 looks like it could implement some crude macro capabilities 07:13:06 i don't think conditional comefroms will work in that module 07:13:08 :( 07:13:31 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 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 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 GregorR: it looks like you really want lexically scoped return 11:54:58 (in plof) 11:55:42 that would at least solve the if problem 11:56:19 (hm, i guess it's still middle of the night over there) 11:58:05 so, return would go to the lexically enclosing thick function 12:05:14 -!- Sgeo has joined. 12:05:56 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 u 13:29:10 i 13:29:41 q 13:30:06 < 13:31:00 plof 13:31:27 isabelle 13:32:02 herring disco 13:33:08 your mom 13:33:30 () 13:34:10 () :: () 13:34:11 sup oerjan 13:34:16 not much 13:34:30 any new languages? 13:34:41 nah 13:34:56 hah 13:35:43 and you? 13:35:51 naah :\ 13:38:09 i wanted to make normal programming language 13:38:47 for myself 13:51:10 -!- oerjan has quit ("Later"). 14:14:34 -!- UnrelatedToQaz has joined. 14:15:38 Is this connection working? 14:16:29 why not? 14:16:56 -!- sebbu has quit ("reboot"). 14:17:05 I thought there was something wrong at my end. 14:22:27 -!- UnrelatedToQaz has left (?). 14:35:44 -!- sebbu has joined. 14:41:09 i'm thiinking about writing a photon tracer 14:41:49 a sort of raytracer but it would trace photons FROM the lights 14:42:58 -!- CakeProphet_ has quit ("haaaaaaaaaa"). 15:07:47 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 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 nooga_: Sooooooooooo ... you want to create the universe in a simulation? 18:25:06 [The reason ray-tracers go in reverse is that it's soooooooooooo much more efficient] 18:25:45 Also, a photon tracer would need arbitrary bounds, but anyway. 18:26:36 ray tracing starts with a pixel on the screen? 18:26:42 Yeah. 18:26:52 makes sense. 18:27:02 Since you may as well not emulate photons that never occur :-P 18:27:09 Erm 18:27:13 Never appear rather 18:54:57 * Sgeo wonders when we'll have real-time raytracing 18:55:02 18:55:32 it's already available, just not well-distributed 18:55:49 Sgeo: just limit the number of pixels, and it's easy. 18:55:55 for example, limit it to one. 18:56:07 or, one thing i always dreamt of doing: a Flatland FPS 18:56:08 real-time high-res raytracing then 18:56:25 oerjan, hms? 18:56:29 a regular first-person-shooting, but it's completely 2d and hte display is just a single horizontal line of pixels 18:56:40 the rest of the screen is just black 18:56:50 or has statusbars etc 18:56:51 i read about a demonstration recently, i vaguely recall "cebit" 18:58:50 google for "realtime raytracing" 19:00:57 You know, I once predicted that VRML would never have gravity.. 19:01:28 Since I didn't see a reasonable way for gravity to be defined 19:01:39 afk 19:02:34 and bye for now 19:02:46 Bye 19:07:04 -!- Sgeo has quit ("Ex-Chat"). 19:23:42 -!- oerjan has quit ("Giving up"). 20:20:12 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 " 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 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 and objects further away go black, close ones are red 20:56:49 so it actually looks quite 3d, though my crappy math made it crooked :) 20:57:00 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 *snaps* ... your mask is opensol@... :-P 21:18:45 ok. yes. 21:20:49 is your nick spanish or portuguese? 21:21:27 yes. spanish. it could be portuguese also 21:22:10 most people's nicks are monolingual though :) 21:22:42 My nick is Scottish and (transliterated) Russian :-P 21:23:39 my nick is Unga-Bungish for "happy song" 21:24:11 And English for lament? 21:24:18 no, no 21:24:24 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 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 Hi guys i'm showing my programming teacher bsmntbombdood 22:46:36 bsmnt_bot i mean 22:47:21 okay, we'll stop talking about sex and drugs then 22:47:28 so.... flowers! 22:48:07 ~exec self.register_raw("\S+ PRIVMSG #esoteric :~foo.*", lambda x,y: bot.raw("PRIVMSG #esoteric :hello, world")) 22:48:10 ~fpp 22:48:12 ~foo 22:48:13 hello, world 22:48:34 ~exec time.sleep(200) 22:48:36 ~ps 22:48:37 0: 'time.sleep(200)', 1.99 seconds 22:48:48 ~kill 0 22:48:50 ~ps 22:48:51 0: 'time.sleep(200)', 15.96 seconds, killed 22:56:31 -!- Sgeo has joined. 23:17:10 * nazgjunk waves 23:17:25 oh wait, that's half an hour old 23:17:26 >.< 23:20:59 -!- nazgjunk has quit ("sleep gah"). 23:32:00 -!- oerjan has joined. 23:33:37 yeah...it took like 3 minutes... 23:35:49 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 sure 23:55:17 comparing strings for similarity is difficult 23:55:32 for example, "aaaaaaaa" and "bbbbbbbb" are pretty similar 23:57:35 seems like a form of kolmogorov complexity again: what is the shortest program that can produce both strings 23:58:39 so compare the compressed versions of the strings 23:59:25 too bad you can't compress in the first place 2007-04-04: 00:02:44 what do you mean? 00:04:14 the kolmogorov complexity result. 00:04:23 can't find the optimal compression. 00:04:39 it doesn't need to be optimal 00:05:45 "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 but it requires human interpretation. 00:10:33 no it doesn't 00:10:51 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 compression algorithms... 00:11:40 8b1f 0008 de47 4612 0300 4c4b 0084 002e 66b6 add7 0009 0000 00:11:52 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 the first is 8 a's gziped, the second is 8 b's gziped 00:13:39 rather lousy compression :) 00:14:13 because it's so short 00:15:38 that method will not show similarity of strings, anyhow, unless you are very lucky with how the strings and gzip interact. 00:17:04 what you might do is to compare the compressed lengths of the two strings concatenated and each of them. 00:17:29 that might at least give some information 00:17:34 You could use a custom compression algorithm that is designed for this purpose 00:18:11 "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 what if one of my strings is digits of pi, and the other is digits of 4-pi? 00:19:43 however gzip doesn't help with things that have no characters in common, does it? 00:20:05 happy_song: it can't consider _all_ similarities 00:20:13 oerjan: i dunno 00:21:54 bsmntbombdood: precisely 00:23:01 the similarity of A and B could be the length of a program to convert A into B 00:23:03 a la sed 00:23:33 a la Levenstein distance 00:26:36 -!- atrapado has quit ("multiverse?"). 00:27:33 "aaaaaaaa" -> "bbbbbbbb" = s/a/b/g 00:29:11 which reduces to kolmogorov complexity in the case A="" 00:29:32 right 00:49:18 -!- wooby has joined. 01:26:31 -!- sebbu has quit ("@+"). 01:27:25 -!- oerjan has quit ("Good night"). 01:51:48 I think levenshtein distance of compressed strings is a good similarity metric 01:54:57 using gzip, 01:55:05 dist("a"*8, "a"*8) => 0 01:55:15 dist("apple", "appel") => 4 01:55:28 dist("apple", "bannana") => 10 01:55:41 dist("a"*8, "b"*8) => 4 01:56:43 dist("a"*100, "b"*100) => 6 01:58:04 dist("abcde", "edcba") => 5 02:00:12 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 Just need to figure out how to get KDE to start with some environment variables exported. 03:05:10 Sukoshi? 03:05:42 . . . Found it. 03:07:07 -!- Pikhq has left (?). 03:11:39 -!- Pikhq has joined. 03:12:02 やった! 03:12:32 ARRRRRRRRR, TEH NOT ENGLISH 03:12:39 [You don't have #plof on autojoin :( :P] 03:16:30 少しがいるか? 03:16:42 ARRRRRRRRR, TEH NOT ENGLISH 03:16:53 It's for the other Japanese speaker in here. 03:54:04 ok, maybe min(levenshtein(a, b), levenshtein(compress(a), compress(b))) 03:57:24 polyglots with C and any language with #-style comments is so easy :) 03:58:07 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 where levenshtein(...) => 1 04:08:33 ちょっとね。 04:08:51 ....I want to write an operating system as a polyglot of a bunch of languages. 04:09:03 well... I say that. 04:09:05 but... 04:09:12 I'd probably go crazy 04:09:15 before taht happend. 04:10:12 -!- ShadowHntr has joined. 04:11:49 removing headers and shit from the gzipping should help 04:12:37 -!- happy_song has changed nick to lament. 04:13:00 most polyglots play around with comments to achieve polyglotness. 04:13:47 You almost have to. 04:13:51 C works well with bash-comments... you can make macros tha won't break the languages that treat it as comments. 04:13:53 yeah. 04:14:17 The ones that don't take advantage of comments take advantage of the intersection of language syntax :-P 04:14:47 heh... like... Python floor division and...... C comments???? 04:14:53 * CakeProphet attempts to think of a use. 04:15:16 well.. 04:15:20 that's still comment-based 04:15:28 You probably aren't going to find any between C and Python ... 04:15:33 I'm talking about things like C++ and Java. 04:15:35 function calls are nice and common. 04:16:03 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 Perl and PHP are easy. 04:25:04 Perl is write-only, PHP is domain-specific (no matter what strange people want to do with it) 04:27:31 removing the checksum helped 04:27:38 python is good 04:28:43 helped A LOT 04:29:12 * CakeProphet ...likes Perl. :( 04:29:34 Bloody Perl. 04:29:38 Godawful language. 04:30:01 They miserably failed to draw "the line." 04:30:51 Pikhq: I'm here sort of. 04:31:59 * CakeProphet draws the line _________________________________________ 04:36:06 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 and here she is: http://pastebin.ca/423400 04:41:11 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 hmmmm 04:55:31 what's it intended for 05:26:04 -!- ShadowHntr has joined. 05:36:20 CakeProphet: finding how similar two strings are 05:39:25 gives a value in the range [0..] 05:39:38 0 = the same string 05:46:16 -!- Sgeo has quit (Read error: 131 (Connection reset by peer)). 05:57:53 bsmnt, no I mean... do you want to find typos... or do you want "pure" difference in characters? 05:58:07 what do you mean? 05:59:26 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 data compression is interesting 06:07:10 oooh 06:07:32 for typos... addings a transposition operation does wonders. 06:10:01 transposition in compressed data won't mean much 06:14:46 yeah 06:15:09 data compression is the art of finding similarities 06:19:40 I wonder how effective "macro-like" compression would be. 06:19:42 like... 06:20:09 say you split data up and then check each of their similarities. 06:21:04 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 that's just backreferences 06:21:37 lz77 06:21:52 hmmm? 06:21:55 like... 06:23:20 x5=Hello,\0! 06:24:18 you could compress anything that had that pattern into a macro like x(World) x(Goats) etc 06:25:11 for redundency that isn't always linear. 06:27:45 -!- ShadowHntr has quit (Read error: 145 (Connection timed out)). 06:37:28 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 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 GregorR: not universe 07:32:03 only a scene with bounds 07:32:38 Wow, that's so many conversations ago O_O 07:33:01 photons would disappear when they are absorber or they leave the boundaries or hit the virtual photographic film 07:33:08 absorbed* 07:33:32 I believe I mentioned something about an "arbitrary bounds" 07:33:56 oh 07:35:04 http://en.wikipedia.org/wiki/Photon_tracing 07:35:06 check that out 07:35:14 it was done in java 07:35:32 i would code in C with inline asm 07:37:26 http://www.cpjava.net/raytraces/DRUN.GIF 07:37:34 results r stunning 07:40:37 i think the best part of fun will be collecting computers for distributed rendering 07:48:45 g2g bye 07:49:25 i woludn't exactly call that picture stunning. 07:53:02 amusing, maybe. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:01:04 eww, java 08:05:25 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 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 # I don't feel like dancing # 12:48:41 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 I know more than a little about the story behind it 13:48:08 aaa 14:27:15 -!- helios_ has joined. 14:27:21 -!- helios_ has quit (Client Quit). 15:08:27 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 hmmm... 18:59:39 I need a server... so I can host a Subversion repository. 19:02:59 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 Howdy 20:41:41 -!- fax has joined. 20:41:53 cool 20:42:03 It does exist. 20:42:31 O_o 20:42:38 why are tunes logging this 20:43:01 ? 20:43:25 Some people wake up in the morning and read #esoteric logs instead of the newspaper. 20:43:38 haha 20:46:41 * oerjan points out that he reads #esoteric logs _and_ the newspaper. 20:47:47 although truth be told, i usually read #esoteric logs first. 21:10:33 EgoBot: !help 21:11:16 The ! must be first on line 21:13:51 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 Please say "Hello, World!" 22:25:04 -!- Ryacko has left (?). 22:29:48 dooo 22:30:07 oh hi bsmntbombdood 22:30:59 you are welcome to join #lispcafe as is everyone else here :D 22:31:23 #lispcafe? 22:32:00 bsmntbombdood: yet another lisp channel, but there is good discussion a lot of the time 22:45:16 I had an idea for an esolang recently 22:45:38 aha 22:45:40 it'd be an emo-person based programming language called "Theirspace" 22:45:56 the emo people (enodes) are arranged in a graph 22:46:35 they can exchange messages via comments, and internally store opinions of other enodes (an endex, or emo-index). 22:46:53 endices are naturally the product of what other people say about a specific person 22:47:25 so comments can include phrases with specific meanings like "you suck" or "this person sucks" that influence endices. 22:47:46 (the opposite of sucking would be being "totally HxC" 22:47:48 ) 22:48:18 * oerjan ponders the effect of the message "NN always lies about other people" 22:48:51 and enodes can also store rules imparted via comments from enodes they respect, like "don't listen to " or "tell people who write poetry to kill themselves" 22:49:20 heh, gonad 22:49:31 two data types, testicles and ovaries 22:49:33 -!- sebbu2 has changed nick to sebbu. 22:49:53 rules can also be obeyed or ignored based on the cliques enodes belong to 22:51:01 what do you guys think? Does it show promise? 22:52:18 it seems like it requires AI 22:52:24 it would be interesting if you could acutally execute myspace.com 22:53:11 oerjan: what do you mean? The enodes would just be looking for and generating sequences of canned phrases 22:53:23 it would only be designed to *resemble* online conversations. 22:53:47 ok 22:55:14 although, I guess you could use Markov chains or something to make it more spontaneous 22:55:27 then you could feed in actual emo-speak and the like. 22:55:53 computation through genetics! 22:55:53 and generate a garbled mishmash of words resembling random emo-speak 22:56:03 ooh 23:04:13 -!- wooby has quit (Read error: 104 (Connection reset by peer)). 23:04:28 -!- wooby has joined. 23:38:01 so like.. 23:38:11 is there anything better than Windows command prompt out there? 23:38:23 uh huh 23:38:26 ...and if you say bash I will FUCKING KILL YOU 23:38:27 bash 23:38:36 I meant... for Windows 23:38:59 wtf would you use windows? 23:39:23 ...because I can't get my network adapter to work for Linux. 23:39:36 ...and because I don't think Linux is too much better than Windows. 23:39:42 It's too extremes. 23:39:45 two 23:40:22 then don't use linux 23:40:25 use bsd 23:40:32 >.> 23:41:20 CakeProphet, try cygwin , a unix environment for windows 23:41:26 got it. 23:41:33 it's kind of clumsy 23:41:38 to use. 23:42:00 your mom is kinda clumsy 23:42:02 to use 23:42:11 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 how is cygwin fun? 00:03:47 it allows you to use bash on windows, for one. 00:04:12 why would you be using windows anyway? 00:15:04 -!- oerjan has quit ("Gah, I'm tired"). 00:16:43 work 00:17:10 ha ha work 00:31:21 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 Esoteric! 00:37:41 INDEED! 00:37:43 Say, that reminds me of something. 00:37:44 ciretose 00:38:02 It reminds me of the word "symbioses". 00:38:22 hmm synergy comes to mind 00:38:32 gonads come to mind 00:38:37 lol 00:38:44 I need to figure out how to model computation with genetics 00:39:04 I need to figure out J's computation model :S 00:39:07 its really hard.. 00:39:11 testicles and ovaries swapping their stuff 00:39:28 Wow. Apparently humans have thousands of species of bacteria living inside them. 00:39:44 Meaning... YOU'RE NOT REALLY HUMAN. (At least, not fully.) 00:39:57 D: 00:41:24 ah, e. coli, my close, close friend 00:41:49 Now, that's interesting. 00:41:52 It's also really gross. 00:41:55 Want me to share? 00:42:22 sure. I'm cool with biology. 00:42:57 Here we go, then: "Bacteria make up . . . 60% of the mass of feces." http://en.wikipedia.org/wiki/Gut_flora 00:43:43 wow 00:43:45 cool 00:43:51 Very cool. 00:44:02 What makes up the remaining 40%? 00:44:11 and it certainly shows that there's no such thing as "waste" 00:44:34 probably difficult to digest things like cellulose 00:44:56 Let's eat some cellulose-digesting bacteria! 00:47:24 we'd have to engineer it to survive in the very specific heat and ph conditions in the human intestinal tract 00:47:32 but then, we could eat wood. 00:47:35 it'd be awesome. 00:47:43 Yep. 00:48:22 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 well, in most cases, you have enzymes designed to lyse specific amino acid bonds 00:50:11 Only found in certain areas? 00:50:16 this happens after the proteins have been denatured by stomach acid, so they're in strands rather than complex folded shapes 00:50:37 long strands get cut into shorter, more manageable strands progressively 00:50:47 ihope: yes 00:50:51 Stomach acid denatures them... indeed, it would. Just what is denaturing? 00:51:06 it's when a change in ph alters the folding of a protien 00:51:11 heat can denature as well 00:51:48 Interesting. 00:51:58 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 that's related to why humans run fevers when we get sick 00:54:52 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 but if body temperature gets too high, it can start to damage human tissues 00:56:23 biology is something that just kinda clicks for me, so feel free to ask if you have any other questions 01:03:53 I'm good with biology too. 01:04:09 And with languages and math, for that matter. :-P 01:04:33 On the second day, did God also create bacteria? 01:05:32 I dont think god created anything.. 01:06:27 languages? 01:06:38 Both English and other. 01:06:47 spanish is my hardest class 01:06:48 Not that I'm actually fluent in any other languages. 01:07:12 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 Earth changed plenty. I don't think the other planets noticed. 01:12:54 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 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 What's nullity? 01:18:51 zero in it's purest form. Nothingness. 01:23:26 Let's put "its" in it's purest form, eh? 01:23:50 pwnt. 01:23:51 Zero has a purest form? 01:24:13 Is it the empty set, then? 01:24:22 fer cryin' out loud, I was speaking figuratively! Can I wax poetic every once in a while? 01:24:33 :-P 01:24:38 Not unless you use proper grammar. 01:24:56 Infinity: that which is greater than every integer. 01:25:42 Errr, I would say "number" there. 01:26:01 It's feasible that one could define irrational numbers greater than the greatest integer but smaller than infinity. 01:26:24 Mind you, I don't know of any :-P 01:27:10 There is no good mathematical definition of "number". 01:27:38 Sure there is ... it's the union of the sets "rational number" and "irrational number" 01:27:48 That's "real number". 01:28:09 And besides, for every real number, there's a bigger integet. 01:28:11 Err, damn, that's what I was thinking X_X 01:28:13 Stupid i 01:28:13 s/integet/integer/ 01:29:30 My head is melting over my attempts to make sensible reference semantics for Plof :( 01:30:15 Reference semantics? 01:30:45 So that I can do things like: associativeArray.element(3) = foo; 01:31:07 I wonder how common lisp does that 01:33:14 GETHASH returns a regular value, but it's somehow a valid lvalue too 01:33:59 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 I don't have pointers. 01:34:35 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 Make that statement equivalent to associativeArray.element*(3, foo);? 01:34:57 Essentially, have a "set" function. 01:36:09 make the assignment operator assign to whatever address the lhs returns 01:36:21 bsmntbombdood: that's pointers, isn't it? 01:36:29 What's wrong with pointers, now? 01:36:31 yeah, in the implementation 01:37:10 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 GregorR: so... pointers? 01:37:33 -!- Pikhq has joined. 01:37:41 Well, pointer (to me) imply pointer arithmetic. 01:37:58 * Pikhq returns. . . 01:38:04 *implies 01:38:41 How couldn't it? 01:38:53 You've lost a bit of context here X-P 01:39:00 Yeah. 01:39:15 Well then, call them references instead and don't allow pointer arithmetic. 01:39:25 ihope: That doesn't solve my original problem. 01:39:36 I'd like to be able to do: someobject.blah(3) = 4; 01:40:26 GregorR: references wouldn't allow that? 01:40:38 Not the ones you're describing, they'd need an explicit dereference. 01:41:12 You could make = always implicitly dereference. 01:41:36 Or do you want someobject.blah(3) to return an "assignable integer" or something like that? 01:41:39 Or you could make them real pointers. 01:42:11 Either you have an explicit dereference or you have an implicit dereference. Or set functions. 01:42:11 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 What's an rvalue? 01:42:56 Anything that isn't an lvalue :) 01:43:01 What's an lvalue? 01:43:10 GregorR: Return an object 01:43:10 Something which can be assigned to. 01:43:30 bsmntbombdood: I can't overload "=" because of the very nature of Plof. 01:43:32 when assigning to an object x, put the value in &x 01:43:53 That would make simple variable assignment ambiguous X_X 01:43:54 So it needs to have different semantics when it can't be assigned to and when it can? 01:44:18 My definition wasn't very accurate ... 01:44:39 Then give an accurate one? 01:44:42 s/?/./ 01:44:54 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 I'm tryin', I'm tryin' X-P 01:45:10 ihope: Join #plof 01:45:18 GregorR: Have them evaluate the same way, is what i'm saying 01:49:09 so lvalues are like... variables? 01:49:33 #plof! 02:10:09 Err, that's a valid question here :P 02:10:15 Variables are an example of lvalues. 02:10:25 Basically, if it /could/ appear on the left of a =, it's an lvalue. 02:13:56 Pff. 02:15:05 * ihope codes up the union of BF and vanilla regexes 02:16:19 Why not just the bastard child of Lisp and C? 02:17:17 That would be too complex. 02:18:41 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 Pikhq: 自分の事を頼まれたか。 04:35:55 kinky 04:37:35 わからなかった。…… 04:38:30 ぼくは日本語でとても上手じゃない、よ。 04:39:07 heh, xterm knows how to render that, but xchat doesn't 04:39:26 おもしろい。…… 04:41:56 -!- Pikhq has quit ("Leaving."). 04:42:34 さあ、上手にななってみるねぇぇ。エレガントな気持だわ。 04:43:12 -!- Pikhq has joined. 04:43:22 Guh. 04:43:23 さあ、上手にななってみるねぇぇ。エレガントな気持だわ。 04:43:50 とにかく、昨日、アンタは私を聞いたいことがあった。何か、あの質問? 04:44:41 英語で?エスペラントで? 04:45:14 Sorry, but my Japanese really *isn't* that good. 04:45:58 En esperanto: Mi estas japana lingva komencanto. 04:49:46 日_日 04:50:01 You wanted to ask me something in Japanese yesterday. 04:50:04 What was it? 04:50:42 yo hablo espannol bien! 04:50:51 I just wanted to say that I got my IME working. . . 04:50:55 And that's all I said. 04:50:57 -_-' 04:51:01 not 04:51:34 Unless, of course, you think 「やった!」is a question. . . XD 04:51:48 no entiendo tampoco 05:00:43 Oh, I could've sworn you asked me something *shrug*. 05:11:33 YOU ALL GET A ROSE - http://i83.photobucket.com/albums/j316/adamadamadamamiadam/rose.jpg 05:12:45 @>--- 05:13:57 -,-`-@ 05:14:48 oooh 05:17:43 --{--{@ 05:21:27 * lament changes the channel name to #flowers 05:23:39 mmmm.... C-like include stuff is kind of bad methinks 05:23:54 er... wrong channel... but we're all pretty much over on #plof too 05:24:49 I beg to differ. 05:24:57 i'm not. 05:25:18 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 so I was working on the operator listing for Bullet, and this is really looking out of hand: 06:09:19 http://www.nonlogic.org/dump/text/1175749566.html 06:09:31 can anyone suggest good places to trim things down? 06:09:55 (or for that matter, anything I foolishly left out) 06:13:07 it actually looks just fine 06:13:07 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 hm 06:13:42 how bout using just a bitwise not as '!' 06:14:07 that might work 06:14:28 I'll consider that 06:15:44 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 because when you really get down to it, they aren't conventional "operators" 06:16:23 that would pare it down a bit 06:16:24 yeah, though i think it still is 06:16:29 '=' should be left there 06:17:13 e.g. if((i=getidx())>=0){ printf("Name: %s\n",array[i]); } 06:17:25 trust me, i use that all the time 06:17:50 well, getting rid of =/== differences could dramatically reduce a number of types of coding errors. 06:18:37 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 hmm, i think it cuts out an instruction or two 06:19:21 doing i=getidx() on its own reloads i entirely, i think 06:19:51 I think reducing operator ambiguity is important 06:20:04 e.g. MOV [0x456789],eax | MOV ecx,[0x456789] 06:20:32 hmm, i find it still faily readable, and less cluttering 06:20:44 though i prefer if(){ oneline; } to if() oneline; 06:20:56 I always code like that 06:21:25 in fact, I'm definitely going to make block delimiters for one-liners required. 06:21:34 -!- Arrogant has joined. 06:21:49 it improves readability if tabbing gets fucked up or someone has odd whitespace conventions 06:22:52 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 doing if(cond,stuff); would make stuff execute unconditionally 06:23:25 interesting 06:23:37 i think it's the same with plof 06:24:00 here's another thing- do you think powering should be a primitive operator? 06:24:04 for some weird-ass reason, stuff from plof seems to have seeped into tomato which potato is based on 06:24:13 i think XORing should be 06:24:15 Java abstracts it, and I think C does as well 06:24:28 hm 06:24:28 in C, the ^ operator is XOR 06:24:34 I know that 06:24:39 And you'd be right. . . 06:24:45 depends on what the lang is for 06:25:04 it's almost never used (and I'd say never necessary) for logical expressions, but a bitwise version would be handy 06:25:15 if it's algebra-intensive, it should be an operator 06:25:30 would it handle x^0.5 ? 06:25:37 dunno 06:25:39 cos that's sqrt 06:25:51 meh, leave it in for now 06:25:57 there are a lot of floating point things about that op that could get complex 06:26:02 saves having to go (x+y)*(x+y) 06:26:12 just do it as a loop multiplier 06:26:37 so, a bitwise XOR should be added for sure, and we'll see about powering 06:27:37 i think XOR should be ~ 06:27:43 GreaseMonkey: no that's not 06:27:46 NOT 06:27:51 and logical XOR should be ~~ for consistency 06:27:51 bitwise NOT 06:28:19 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 bsmntbombdood: "NOT" is declared as '!' - this ain't LUA 06:28:42 I don't know what you guys are talking about 06:28:48 but "INC eax" is faster and smaller than "ADD eax,0x00000001" 06:28:56 yeah 06:28:58 I know 06:29:02 that was my point 06:29:07 LUA uses "~" as its not. but this ain't LUA. 06:30:43 should bitwise shift right and left take parameters? 06:31:20 seeing as there's SHL eax,(param) , and it shouldn't be too hard, yes 06:31:29 ok 06:34:22 my idea for assignments is to do them in blocks like "set parameter as expression" or "set [parameters] as [expression]" 06:34:44 ok 06:34:52 yeah, go with that 06:35:04 which is consistent with function call syntax of "do [parameters] to [parameters]" 06:35:16 hmm, i should make an algebraic calculator 06:35:28 I did one of those a while back- it's pretty fun 06:35:45 C is based on BASIC, right? 06:36:01 in a way, yeah, but not very strongly 06:36:09 BASIC was around earlier 06:36:19 and BASIC influenced some basic syntax ideas 06:36:31 C also took a lot from FORTRAN, if I recall 06:36:37 i just love how i can just punch in a math function into C and BASIC 06:36:55 i think you can do the same in Pascal 06:36:56 yeah, their expressions are pretty similar 06:37:14 most good programming languages use standard math 06:37:31 BASIC one-ups C with the cool feature of being an interpreted language- eval(). 06:38:07 but most BASICs are lacking in bitwise operators- vital for a language that'll be compiling to machinecode 06:38:08 But Tcl one-ups Basic with the cool feature of having functions. 06:38:16 BASIC has functions 06:38:17 depends on the BASIC dialect though 06:38:33 QBASIC has functions but no eval() 06:38:35 function name(params) return 06:38:39 I assume, of course, traditional "burnt into microcomputer's ROM" BASIC. ;) 06:38:43 with a code block before the return 06:39:11 BBC BASIC had functions ("procedures") 06:39:34 . . . Fine. Tcl's got this funny thing called "a sane syntax". 06:39:44 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 Dartmouth BASIC owned 06:40:04 as do a number of modern BASICs 06:40:16 -!- ShadowHntr has quit (Client Quit). 06:40:25 Call me up when they've got good list processing functions. 06:40:53 you have completely missed the point of BASIC. congratulations. 06:41:10 I'm being sarcastic. -_-' 06:41:27 * Pikhq started out on BASIC. . . Which is, of course, the whole point 06:42:09 hm. I'm not sure if the convenience of just "set parameter as expression" for single assignments outweighs its inconsistencey. 06:42:46 I might stick with simply "set [parameters] as [expressions]" at all times for that sake. 06:45:16 Any EE students here? 06:45:21 afk 06:45:31 * Sukoshi slaps GreaseMonkey with a trout. 06:45:56 I'm a CS, but I'm reasonably handy with electronics. Think I might be able to help? 06:46:28 When applying Kirchoff's Rules, is there one I per loop? 06:46:50 Electricity/magnetism has captured my heart. 06:47:01 Yes, I love it more than computers :P 06:47:10 :-O 06:47:15 <: O 06:47:27 what the christ? 06:47:47 He's named Jesus, not What. :p 06:47:47 Do I have to go to #esoteric-ee now ? :( 06:47:56 how can physics be more fascinating than a deterministic logic engine? 06:48:17 Sukoshi: do not feel shunned 06:48:22 I am simply puzzled 06:48:39 Because it is. 06:49:17 How can nondeterminism be more fascinating to a Vulcan mindset than determinism? 06:49:20 :p 06:50:09 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 And you can make that lock with a few calculations, and $0.05 stuff. 06:50:28 That's why :P 06:50:58 I just like fiddling with things in my junk drawer and my multitool until they work properly. 06:50:59 Yes, but *I* can devise a simulation of that door and make a virtual room with a wall of locked doors. 06:51:10 Nondeterministic is far more fascinating to me 06:51:25 I dunno, I got the engineering bug. 06:51:38 I who've been interested with such impractical things all my life. It feels weird to even me. 06:52:08 physics are just mechanical systems to me, whereas a computer is a meta-machine that translates intangible information into action 06:52:12 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 Sukoshi: No, it won't. 06:52:37 It'll make them afraid of doing so. 06:52:41 Not mine. 06:52:55 back 06:53:02 Intellectually, I pwn everyone around here. . . 06:53:04 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 It'll stop your virtual sister 06:53:25 Were I really, truly angry, I would be able to exact revenge without hurting a single physical object. 06:53:29 My parents don't need to care about that. 06:53:49 My parents are electronics-dependant. 06:53:52 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 I could, if necessary, instate a ransom on all of their data. . . And they'd either follow through or be broke. 06:54:50 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 that's a nasty little superiority complex you have stewing there. You might want to get your antisocial tendencies looked at. 06:56:01 I blame my friend when I asked him to help me with < $0.05 easy to hide antenna designs. 06:56:06 He hooked me. 06:56:26 heheh 06:56:42 I might want to wonder WTF I'm thinking. 06:56:55 I like making robotic insects out of busted toys. 06:56:56 Brain, please synchronise with reality. 06:57:39 Or at least make intellectual arrogance less blatant. 06:58:05 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 they're usually tough little critters but not so much when I install solar cells. 06:58:50 It sucks breaking those things. 07:00:31 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 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 the wiki article is a pretty good intro: http://en.wikipedia.org/wiki/BEAM_robotics 07:04:04 i might build a simulator 07:04:23 -!- CakeProphet has quit (Read error: 113 (No route to host)). 07:06:51 I'm really only a beginner with "bicore" analog neural networks, but I find them fascinating 07:11:39 good night everyone- I'm gonna turn in 07:11:54 afk food 07:18:16 -!- Arrogant has quit ("Leaving"). 07:33:24 back anyways 07:53:58 " 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 What's BEAMBotics? 08:46:16 Ah. 09:09:36 -!- sebbu has joined. 11:08:39 gonna go to sleep, oyasumi nasai 11:10:52 -!- GreaseMonkey has quit ("skoolz owt fank yu"). 11:26:18 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 and RodgerTheGreat and GreaseMonkey were having a conversation that was seriously insulting to the intelligence of compiler-writers last night 11:27:06 bah 11:34:01 * SimonRC calculates the power density of the sun 11:34:18 it is humerously low: 0.27 W/m^3 11:34:59 No wonder the people building fusion reactors are having such a hard time. 12:00:14 -!- jix__ has joined. 12:35:01 hi 12:37:50 -!- Pikhq has quit (Read error: 110 (Connection timed out)). 13:56:59 -!- fax has quit (" "). 14:50:53 Sukoshi: you think you could create a strong enough force like that? 15:02:39 My gut tells me that it takes a lot of torque to stop a doorknob from turning 15:05:49 oh 15:06:37 do you mean the wire tightens onto the doorknob? 15:07:36 might be easier to just use a lock 15:07:49 unless i somehow misunderstood the point :) 15:08:59 oklopol: welcome to #esoteric 15:10:52 we can't "just use a lock" 15:14:15 yuu 15:43:52 'morning, folks 15:44:26 can you attain noticeable forces without using a month's worth of electricity? 15:45:08 with just making coils from the wire :P 15:45:25 -!- crathman has joined. 15:51:42 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 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 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 What is this? 23:08:20 it's about weird programming languages 23:08:23 Please leave this channel, and rejoin. 23:08:29 nope 23:08:43 Please, some one write the first 16 numbers of the Fibonacci Sequence. 23:09:06 oerjan, ok, so thats a exception... 23:09:27 Segmentation fault (core dumped) 23:09:38 heh bsmntbombdood 23:10:41 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 Say hi. 23:10:58 /topic 23:11:06 oops 23:11:44 ho 23:11:58 Hmm. 23:12:11 Some code generation magic in IRP. 23:12:30 "Please show me the 'Hello World' program in C" 23:12:55 int main(){return *(int*)0;} 23:12:55 #include 23:12:57 -> int main() { printf("Hello World\n"); return 0; } 23:12:59 ^^ there it is 23:13:37 wow, parallel processing 23:13:55 just slightly buggy 23:15:14 hahahaa http://texas.clubsi.com/Aaron/ClubSi/CB.JPG 23:15:29 oerjan, meh 23:17:19 * oerjan wonders if you could make one for innumerates... 23:17:51 3.141592653589793238462643383279 and why did i do this by hand.... 23:19:17 lament: I know more than you 23:19:50 especially since no one asked... 23:20:08 bsmntbombdood: that's 30 digits i think 23:20:18 i couldn't be bothered to go to 50 23:20:22 and i do _not_ have fibonacci numbers memorized beyond 13 23:20:34 3.141592653589793238462643383279502884197169399375105 23:20:44 51 decimal places 23:21:03 I don't have pi memorized to 51 decimal places, I just calculated it on the fly 23:21:13 oh, all right then. 23:21:26 :P 23:21:27 i thought you were a snob or something ;) 23:22:09 3.1415926 i don't know more digits 23:22:14 like when does one need more? 23:23:08 when you are writing an infinite precision trigonometry library, i guess 23:23:55 for that pesky sin(10^1000) 23:24:54 that's about 0.6533597982103698569480994680397685742659165408154051592053714008289739109316094727701317615597375546 23:25:49 is that a fact? :) 23:26:10 how did you calculate it? 23:26:17 oerjan: i typed it into mathematica 23:26:42 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 http://www.faisal.com/geek/opcodes.txt 04:22:18 -!- GreaseMonkey has joined. 05:02:05 bsmnt, what's with your bot? 05:02:13 ? 05:02:22 why isn't it on? 05:02:25 hmm 05:02:31 that's odd 05:02:44 -!- ShadowHntr has joined. 05:03:03 -!- bsmnt_bot has joined. 05:03:16 CONRADULATIONS!!!1 05:11:37 i'm working on an operbot right now 05:11:53 having two bots on at once is a bit overkill 05:13:57 If you brought your bot in, that'd be three ... 05:14:02 EgoBot: Hello my friend. 05:14:09 two bots on the same pc, that is 05:14:21 two in a chan is fine 05:14:54 just as long as there are more people than bots (except #botpark ), it's fine 05:35:19 -!- Sukoshi has joined. 06:12:23 'operbot'? 06:12:41 operbot = a bot that does op stuff for your chan 06:13:04 will it ban everybody from #esoteric? 06:13:24 no it won't unless you make it do that in the source 06:13:26 So, it's ChanServ? 06:13:35 not really 06:13:52 stuff like `kick agentorange 06:14:00 and `topic Very cool channel 06:14:08 but you don't even need to be an op 06:14:08 you mean like chanserv 06:14:13 so yeah, like chanserv 06:14:28 ^^ 06:15:19 but you can kick people without the +o 06:15:27 and stuff like that 06:18:29 chanserv can op people 06:18:36 as well as set channel modes and stuff 06:18:52 GreaseMonkey: so can chanserv 06:19:09 i thought it couldn't kick ppls 06:19:20 i don't think it can 06:19:28 so? 06:19:36 it can still op you and then you kick the person yourself. 06:19:46 and kicking is practically useless anyway. 06:19:50 so what's the point? 06:20:08 O_o 06:20:13 note that `kick foo is faster than /cs op greasemonkey then /kick #chan foo 06:20:15 access of 8 for voice? O.o 06:20:27 `kb foo 06:20:28 * bsmntbombdood sharpens his finger then pokes lament 06:20:35 `kb foo barmsg 06:21:03 `silence foo 06:21:05 ;) 06:21:23 (+v all good citizens, +m channel) 06:21:35 or -q 06:21:40 -q? 06:21:59 silence 06:22:01 i still fail to see how is this useful 06:22:12 * bsmntbombdood pokes lament again 06:22:24 it's useful because you flex your coding muscles :P 06:22:25 if you want to kick people so badly 06:22:26 just get ops 06:22:42 or do you want to be an undercover op that jumps out and kicks people randomly? 06:22:44 whoo! Hydrogen. 06:22:47 on windows. 06:22:49 lament: I WANNA KICK PEOPLE! Can I have ops ZOMG 8-D 06:23:07 hehe pm kick 06:23:08 -!- ChanServ has set channel mode: +o GregorR. 06:23:15 YAYS! 06:23:17 lol 06:23:25 8-D 06:23:30 omg 06:23:32 the reign of terror!!! 06:23:39 Muahahaahahahha 06:23:47 -!- bsmnt_bot has joined. 06:23:52 O.o 06:23:55 kick evasion!!! 06:23:58 I HATE YOU!!!!!!!!! 06:24:24 -!- GregorR has set channel mode: +b %bsmnt_bot!*@*. 06:24:26 `kick bsmnt_bot 06:24:34 O_o 06:24:39 Talk to me, bsmnt_bot 8-D 06:24:40 you guys have access at 30? O.o 06:24:46 -!- GregorR has set channel mode: -b %bsmnt_bot!*@*. 06:24:49 OK, that was fun. 06:24:52 -!- GregorR has set channel mode: -o GregorR. 06:25:12 oh woww 06:25:22 taaus hasn't been here for 2 years :( 06:25:43 2y 8w 3d 14h 45m 41s 06:25:50 aardappel for a year and a half... :( 06:25:57 who are they? 06:26:06 as of 4/5/07 19:22:13 GMT-10 06:26:09 aardappel is a genius, taaus is just cool 06:26:28 to the log! 06:28:23 wot! 06:28:27 I have to log in? :( 06:28:51 and no bmn access! 06:28:53 boo. 06:36:50 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 In a non-esoteric language. 06:37:19 I'm already working on it :D 06:37:30 http://student.hpa.edu:16080/weblog/cmcfarland/ProgrammingDesign/ 06:37:38 A cross-platform PDF viewer. 06:37:46 ah... 06:37:49 I'm not working on it :P 06:37:58 Completely cross-platform. Maybe a little bit of bootstrap code per platform, but hopefully not. 06:38:15 Language of design: ObjC, OCaML, or Java -- in order of speed. 06:38:35 Wot? No C++? :( 06:38:44 :P 06:38:54 yeah, yeah, yeah... :P 06:38:59 No. I said no esoteric languages :P 06:39:04 rofl 06:39:15 you should see some of the weirder stuff I write in C++... 06:39:45 I once attempted to wrap a SWIG wrapper around C++ code that heavily used Boost and templates. 06:39:55 I suddenly found a new disrespect for the language. 06:40:00 SWIG? 06:40:15 well, templated/boost code can get very hard to read if you aren't careful 06:40:25 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 (although things like boost::any are quite clean, imo.) 06:40:35 I mean, I'm not an actual C++ coder after all. 06:40:40 Sukoshi: I want to do something in objc 06:40:51 FFI? 06:40:52 bsmntbombdood: ObjC hmmm? 06:40:58 Someone proposed OCaML earlier. 06:41:27 I'm a C++ coder... it's what I know :P 06:41:34 Ah, I see. 06:41:41 So it's the only thing your head has enough room left for :P 06:41:54 I can't stand C++ 06:42:01 are you kidding? 06:42:04 C++ is HUGE 06:42:08 C++ is terrible 06:42:18 heh 06:42:24 I wouldn't say it's _terrible_ 06:42:31 but it is rather annoying sometimes 06:43:14 That's what makes it terrible. 06:43:35 I like languages which I don't have to devote my entire life to to code in. 06:45:02 heh 06:45:13 I haven't devoted my whole life to C++ 06:45:16 I'm only 18 :P 06:45:40 although admittedly, it's taken me about 5 years to get "good" at it 06:45:58 oooh 06:46:09 ... I wish C++ had a 'finally' key word :| 06:46:16 http://www.digitalmars.com/d/ 06:46:19 it'd save so much fucking trouble 06:46:27 and http://dgcc.sourceforge.net/ 06:47:22 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 The reason I don't want to use D is that it's not well-enough-known yet. 06:47:50 I want something that compiles to a lot of platforms. 06:48:33 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 Foxit Reader? 06:49:12 But it's not open! 06:49:59 Plus it has Advanced Add-Ons you can pay for. 06:50:00 Guh. 06:50:07 Just guh. 06:50:41 :P 06:50:45 it bothers me too a bit 06:51:03 hehehe 06:51:19 you should program your pdf viewer in brainfuck :) 06:51:23 So, any takers for the project? 06:51:38 o.o 06:51:43 google code has project hosting? 06:51:46 Well, I was also seriously considering Forth, because it's stack-based just like PS/PDF so.... 06:52:13 C++ has stacks :D 06:52:25 rofl 06:53:07 C++ probably has Your Mom also. 06:53:10 The point? :P 06:53:42 . 06:53:47 C++ has rapists 06:53:49 ^^^ -- there's the point! 06:53:51 No. That's a period/full-stop. 06:53:58 :P 06:54:06 I can call it a 'point' if I really want to ... :) 06:54:11 O_o 06:54:12 A point has an infinitely small thickness, remember? 06:54:16 OMGROFL 06:54:24 "This project currently has no issues." 06:54:36 Errr? 06:54:45 .... yeah 06:54:53 *Cough* 06:54:58 Sukoshi: shouldn't be hard to make it cross platform 06:56:09 -!- Sgeo has quit ("Ex-Chat"). 06:56:29 and i hate xpdf's interface 06:56:29 I know. 06:56:36 I don't mind it. 06:56:48 Work will begin after AP tests finish. 06:56:53 My feet are hairy. 06:57:03 I just realized this. 06:57:12 ..................................... 06:57:16 Alright-o. 06:57:38 My head is hairy. 06:57:43 What about Java, bsmntbombdood? :P 06:57:53 GregorR: I'd hope so... otherwise you'd be bald. 06:57:54 nooo!! 06:58:04 It's not that bad, if you code correctly. 06:58:10 Yes. It is. 06:58:14 It is that bad. 06:58:15 No. It's not. 06:58:17 Sukoshi: That's what they say about C++ :) 06:58:19 It is not that bad. 06:58:39 The only reason Java might not fly is speed. 06:58:40 Java is mostly C++ with a few changes. 06:58:49 yeah 06:58:53 You mean, a syntax that doesen't make you barf? 06:58:53 don't write your project in Java 06:58:54 Figs: ......... no. 06:58:59 Figs: um, noo 06:59:05 It's quite different :P 06:59:10 Not really. 06:59:16 very much different 06:59:20 How so? 06:59:30 Garbage collection. Exceptions. 06:59:36 C++ has those 06:59:38 No explicit memory management. 06:59:43 C++ has garbage collection? 06:59:46 Java has eliminated everything that doesn't fit their "OO is the only way" concept. 06:59:49 God help us all. 07:00:15 there are a couple ways of doing GC either directly in C++ or on top of it 07:00:21 so yeah 07:00:23 it's there 07:00:28 There are ways of doing GC in C too. 07:00:31 ;D 07:00:43 although it isn't built in, but neither is std::vector 07:00:46 java is better than c++ 07:00:51 Yeah. 07:01:06 <-- officially no longer part of this conversation. 07:01:17 * Sukoshi officially pulls Gregor back in. 07:01:34 heh, I didn't say C++ was better than java 07:01:46 I just said it was about the same in terms of the way it's built. there's a difference ;) 07:01:56 C++ isn't in my list of languages. So there. 07:02:01 aww 07:02:10 :'( 07:02:15 Java, OCaML, ObjC and why. 07:02:15 Sukoshi: java is too slow 07:02:22 I agree. 07:02:24 bsmntbombdood: Mmmm. I beg to differ. 07:02:35 Sukoshi: have you used open-office? 07:02:36 Ever coded a significant application yourself? 07:02:44 in java, no 07:02:48 Rather than rely on cr** code other people make? 07:03:06 Yeah. I coded an NN framework and a small signal process framework in it. 07:03:26 Both fast and light, and this is an aging machine. (1.6 GHz, 256 MB RAM). 07:03:54 Even while using double-point floats almost everywhere. 07:04:13 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 Meh. 07:04:40 Anyways, I have Physics to cram for. Squabble it out for yerselves. 07:05:58 GregorR: Your god has a penis? :P 07:06:36 Figs: In a totally non-homoerotic way. 07:06:50 GregorR: my penis has a bigger god than brainfuck's 07:06:56 o.O 07:07:05 * Figs has no god. 07:07:25 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 I don't have a god, therefore the argument is 'N/A' :P 07:07:57 Figs: no 07:08:05 your god can't have a bigger penis than something that doesn't exist ;) 07:08:13 even imaginatively ;) 07:08:21 a penis is bigger than no penis 07:08:31 is it really? 07:08:56 that's like saying an apple is bigger than the number zero. 07:09:05 no it's not 07:09:18 it is. It's an illogical comparison ;) 07:09:36 anyway 07:09:39 who cares? :P 07:09:47 it's silly. 07:12:21 Vacuous truth 07:13:41 F = Figs's god's penis 07:13:44 G = GregorR's 07:13:51 lol 07:13:59 I declare this conversation over. 07:14:35 fine 07:14:51 Now, everybody go talk about how whootsy http://www.codu.org/plof/ is :) 07:14:55 (The language, not the web site ;) 07:14:57 ) 07:15:13 \forall x \in F.\forall y \in G. y > x 07:15:16 TRUTH 07:15:38 but F is the null pointer! 07:15:41 :P 07:15:45 even if F is the empty set 07:15:57 how can 07:16:00 forall x in F 07:16:02 work 07:16:06 if there is no x in F? 07:16:28 my empty set is bigger than your empty set? 07:16:31 Oh yeah? Prove it. 07:17:39 it's vacuously true 07:19:50 Vacuous: noun. (1) Emptied of or lacking content. (2) marked by lack of ideas or intelligence: stupid, inane. 07:19:53 *adjective 07:20:29 cf wikipedia 07:20:45 JFGI 07:21:33 John found good igloos? 07:21:42 just fucking google it 07:22:06 jfgi? webster. :P 07:22:41 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 To Plof! 07:23:30 Plof? 07:23:35 http://www.codu.org/plof/ 07:23:37 put lead on food? 07:24:02 ahh 07:24:05 rofl 07:24:14 I saw function thick 07:24:17 and I read "fuck" 07:24:18 and I 07:24:21 thought... 07:24:24 >_> 07:24:27 "Fuck is a keyword???" 07:24:34 ooh. 07:24:36 :P 07:24:38 var you = Figs; fuck you; 07:24:39 Painful Licking Of the French 07:24:49 eww 07:24:52 :-P 07:24:52 PLOFF! 07:25:13 pitiful licking of french fries! 07:25:46 what is the ~= operator in D? 07:25:51 -!- ShadowHntr has quit ("End of line."). 07:26:03 bsmntbombdood: ~ is concatenation. ~= is to ~ as += is to + 07:26:10 oh 07:27:26 should the function in foreach be given the current element? 07:27:41 instead of a "ref"? 07:28:02 std.plof 07:28:19 That's commented out because I don't have an implementation of it yet :P 07:28:36 That was from the leading edge of Plof1. 07:28:48 oh i didn't see the comments 07:28:56 reading code in browser == bad 07:28:59 Heh 07:30:51 ok bedtime 07:31:03 gnight 07:31:17 `night bsmntbombdood 07:33:38 -!- nazgjunk has joined. 07:33:48 bah 07:34:01 i have to get up in 5:30 hours 07:34:39 :\ 07:34:46 :( 07:34:58 that sucks. 07:35:02 go get some zzz. 07:35:10 SLEEP IS FOR THE WEAK 07:35:41 * nazgjunk tickles the zzz-machine 07:36:38 ZZZ!!!! 07:36:55 *the ZZZ-machine has explosmed.* 07:39:40 o_O 07:40:31 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 back 08:01:47 wb 08:54:42 -!- CakeProphet has joined. 09:18:53 -!- sebbu has joined. 09:23:28 -!- gg_ has left (?). 09:31:28 do you know the meaning of the word 'deasil'? 09:33:53 Who is ``you'' ? 09:36:58 anyone here who cares enough to look the word up :P 09:37:25 hint: it's the opposite of widdershins 09:37:43 I don't think there are any you's here then. 09:38:44 :( 09:39:08 so clockwise? 09:41:30 ...yeah. 09:42:29 Figs: Go and spend that time doing something useful. 09:42:33 Like making more Esolangs. 09:43:35 abscotchalater: n. one hiding from the police. 09:45:03 Overgregarious 09:45:08 Look that one up. 09:46:57 pshhh 10:05:08 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)). 10:33:30 gonna get off, gnight 10:34:34 ditto 10:34:36 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 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 Is there a formal definition of Turing-completeness? 20:46:26 ihope, yes: turing machines, lambda calculus 20:46:46 Is "Turing machines, lambda calculus" it? 20:47:04 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 ihope: yes, there is 21:17:05 ihope: look up the church-turing thesis on wikipedia... 21:21:52 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 well 21:24:42 i suppose there's a more formal statement of the thesis by the saints themselves 21:25:48 Turing-completeness, not the Church-Turing thesis... 21:26:20 -!- jix has joined. 21:26:23 ihope: it's related 21:27:00 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 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 ocaml because it pwns all the others mentioned 22:44:23 Ah-hah. 22:44:59 alternatively you could use Scala if you want JVM support. 22:45:41 The language has to be relatively common. 22:47:19 python has a nice pdf library available 22:47:22 oerjan: f00f (or so it's called) comes close. 22:47:28 Erm, wait a minute. 22:47:35 I don't want to depend on an external library. 22:47:38 That. 22:49:02 ObjC, because it's fast and looks interesting 22:49:27 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 Maybe I'll design an esolang and call it f00f, and add a CFC instruction. 22:52:38 It also damages the ozone layer! 22:52:50 ah yes! and added bonus. 22:52:53 *an 23:00:43 No-one's lobbying languages. 23:00:45 Why? 23:01:12 Pshhh. Y'all'r boring. 23:02:48 Let's write a programming language that has a market economy instead of a command economy. 23:03:29 * bsmntbombdood did 23:03:37 There are a bunch of individuals, which are issued... things which they can trade to each other. 23:03:41 bsmntbombdood: you did? 23:03:49 ObjC, because it's fast and looks interesting 23:04:38 No-one's lobbying other than bsmntbombdood :( 23:04:51 And ocaml because it pwns all the others mentioned 23:05:34 Objective-C has a market economy? 23:05:53 Maybe. 23:06:53 Maybe... 23:08:17 ...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 "If you output this character, I'll give you a dollar." 23:14:03 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 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 Stuff with utility probably won't be free, so that means that which is available costs one unit. 23:17:29 btw i suspect Scala is as portable as Java, being built on top of it. 23:17:45 Oh. 23:18:33 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 ...behold - a very convuluted cat program 23:25:26 http://deadbeefbabe.org/paste/4267 23:26:19 main = getContents >>= putStr 23:26:26 Haskell is very different indeed. 23:26:59 I very much hope you can write a better cat program than that in Python. 23:27:03 :-P 23:27:35 Or is that not only copy-input-to-output but a concatenator? 23:27:37 main = interact id 23:27:58 while True: print raw_input() 23:28:17 oerjan: that too, yes. 23:28:30 :-) 23:28:44 main = getContents >> putStr "" 23:28:48 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 A different kind of zero program. 23:29:18 that getContents seems somewhat redundant 23:31:40 main = getChar >>= putChar >> main 23:34:48 I can write a shorter one in BASH. 23:35:47 cat takes files from its argv 23:38:35 I'd say main=interact id is the winner. 23:39:02 This is not a quine: main=main 23:40:13 import System.Environment; main = getArgs >>= mapM_ (putStr . readFile) 23:40:45 eh wait 23:43:24 import System.Environment; main = getArgs >>= mapM_ ((putStr =<<) . readFile) 23:48:28 Indeed, good luck putStr'ing that. 23:49:05 what, something wrong with it? 23:49:15 import readline, sys; for i in readline.readline(): sys.stdout.write(i) 23:49:46 You corrected it for a reason, aye? 23:50:05 yep 23:59:24 main = flip mapM_ [putStr, print] $ flip ($) "main = flip mapM_ [putStr, print] $ flip ($) " 2007-04-07: 00:01:33 Oh dear. 00:02:08 main = putStr x >> print x where x = "main = putStr x >> print x where x = " 00:02:45 hah, old and boring. we should aspire to being flipping mad 00:05:01 main = flip mad (putStr x) (print x) where mad = (<<); x = "main = flip mad (putStr x) (print x) where mad = (<<); x = " 00:06:52 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 main = sequence_ $ [putStr, print] >>= return . flip ($) "main = sequence_ $ [putStr, print] >>= return . flip ($) " 00:13:19 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 So. Language lobbying. 00:51:28 -!- sebbu has quit ("@+"). 00:57:29 Let's do a BF busy beaver! 00:57:48 See how much you can output in a 10-character program. 00:58:20 My entry: .......... 00:58:31 ,[.,] 00:58:37 No input allowed. 00:58:44 and the program must halt. 00:58:45 I know; j/k. 00:58:51 Ooh, here's a better one: +++[....-] 00:59:22 +[[.+]+] 00:59:37 ! 00:59:40 Huh? 00:59:40 If one uses a wrapping implementation, it never ends. 01:00:16 Does it end in a wrapping implementation? 01:00:19 if one uses a non-wrapping implementation, it never ends either. 01:00:59 oerjan: It would crash if it doesn't wrap but only allows 8-bit cells. 01:01:05 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 Crashing doesn't count! 01:01:22 Yes, it'd work. 01:01:26 >:-| 01:01:47 It only crashes if cell size is limited but doesn't wrap. 01:01:57 Either that, or you're not allowed to decrement 0. 01:02:07 My implementation doesn't decrement at all. 01:02:22 We don't want any -[.-] here. 01:02:34 Nor +[.+], for that matter. :-) 01:02:37 why not have unbounded negative? 01:02:45 oerjan: convenience? 01:03:04 But +[.+] isn't an infinite loop, like my program. ;) 01:03:05 Then again, allowing unbounded negative is probably fine. 01:03:07 all it does is making 0 decrementing weird. 01:03:28 The tape is infinite in both directions and each cell can hold any integer. 01:03:39 (unless nonwrapping and unbounded cells) 01:03:42 Is it possible to do better than +++[....-] (12)? 01:04:20 Pikhq: what about unbounded wrapping? 01:04:33 ihope: That's an oxymoron. 01:04:43 Wrapping only has a meaning with bounded cell size. 01:05:04 ihope: Sure is. 01:05:14 +[......-] 01:05:28 huh? 01:05:32 . . . Never mind. 01:05:37 It'd only loop once. 01:06:12 0, 6, 10, 12, 10, 6, 0! 01:06:45 I vote for impossible. 01:06:56 +[.......] 01:07:07 Unless, of course, one is objected to infinite loops. 01:07:29 That doesn't output anything at all. 01:07:33 one is. a BB problem by definition looks at halting programs only. 01:07:51 If you skip infinite loops, that is. 01:07:54 Ah. 01:08:03 In that case. . . 01:08:34 ihope: I can only find alternate ways of expressing an equivalent program in 10 chars. . . 01:08:52 ++++[...-] (12) 01:08:57 Exactly. 01:09:12 . . . Unless one allows for 8-bit wrapping cells. 01:09:14 +++[-....] (12), +++[..-..] (12), etc. 01:09:27 Pikhq: cells can hold any integer. 01:09:40 And the tape is infinite in both directions. 01:09:41 In which case, the max possible is the entire ASCII table. 01:09:49 ihope: Which is why I can't make anything better. 01:10:01 So have we pretty much agreed on 12? 01:10:05 Yeah. 01:10:26 Should be impossible to do better than 9 in nine characters, then: +++[...-] (9) 01:10:40 Right. 01:10:48 Alternatively, ......... (9) 01:11:27 How about we try eleven characters, then? To start off: ++++[....-] (16) 01:12:02 Max. 01:12:21 I sense a pattern. 01:14:59 the pattern breaks once you get enough room to use two cells. 01:15:21 The sequence is uncomputable. 01:16:10 brainfuck is wordy enough that it may take a while before we reach the uncomputable stage 01:16:50 Well, let's see here: +[>+[.-]<-] (11,1) 01:17:09 I think it doesn't get any better than 16. 01:18:12 ihope: The sequence as a whole is uncomputable, but finite segments of it *are* computable. 01:18:40 Now for twelve: there's +++++[....-] (12,20) and ++[>+[.-]<-] (12,2). Thirteen: +++++[.....-] (13,25) and ++[>++[.-]<-] (13,4). 01:18:50 Pikhq: surely "a finite segment". 01:20:20 Fourteen: ++++++[.....-] (14,30) and ++[>++[..-]<-] (14,8). Fifteen: ++++++[......-] (15,36) and +++[>++[..-]<-] (15,12)... eh. 01:21:04 the two-cell version has 5 char overhead which needs to be overcome 01:21:23 (14,30), (15,36), (16,42), (17,49), (18,56), (19,64)... 01:22:36 (x/2)^2 < ((x-5)/3)^3 01:22:45 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 Indeed, doing it that way is probably much easier. 01:23:44 (By (x/2), do you mean ((x-3)/2)?) 01:24:07 i didn't include the overhead for the 1-cell version 01:24:51 also it is slightly approximate if the divisions are not exact 01:27:32 I'm seeing more like an 8-cell overhead. 01:27:48 if you add the 3 to the 5, yes 01:28:06 ((x-8)/3)^3... 01:29:24 According to mbot, the switchover ideally happens at about 20.961944507581496 characters. 01:29:36 mbot? 01:29:43 Yes, mbot. 01:31:20 -[.-] 01:31:26 (for wrapping) 01:31:27 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 i'm writing a haskell program 01:31:48 -[>-[.-]<-] 01:32:08 -[>-[>-[.-]<-]<-] 01:32:27 bsmntbombdood: now do one that uses cells that can hold any integer! 01:32:53 what is the result of decrementing 0? 01:34:04 bsmntbombdood: -1 is an integer. 01:35:48 oh 01:35:59 Actually, should the alphabet length be 2? 01:36:10 that's what it's usually defined as in the turing machine BB 01:36:53 You want @ instead? 01:37:02 idunno 01:37:19 the haskell script says two cells work from 22, giving 100 > 99 01:37:59 21 just barely misses at 81 vs. 80 01:38:20 * ihope studies the winner of S(3,2) 01:38:34 and shouldn't it be non-zeros on the tape instead of printing? 01:39:20 bsmntbombdood: the existence of a . is pretty convenient, eh? 01:39:24 er, you already had that 01:39:54 ihope: what do you mean? 01:46:25 bsmntbombdood: BF is imperative, so you can have an output command. 01:46:38 ... 01:46:50 You can add one to a Turing machine too, but it doesn't look quite as nice. 01:47:38 what about max shifts? 01:48:08 You can also do that. 01:48:25 I know you can 01:50:24 ++[>++[>-<-]<-] 01:50:28 lame 01:51:57 "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 All cells start out as zero. What happens? 01:52:46 doesn't halt? 01:53:02 Surely it halts. 01:53:27 It halts *eventually*. 01:53:45 Repeat until the cell is 1. Then, if the cell is 0, set it to 1 and move left.?? 01:54:37 bsmntbombdood: Bad description. 01:54:47 Hmm. 01:55:09 Oops. 01:55:29 "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 ...what's the UNIX command for replacing stuff in files with other stuff? 02:54:55 emacs 02:55:03 ...through the whole directory. 02:55:14 and subdirectories. 02:55:23 bash script 02:55:35 .......what command? 02:55:51 any scriptable editor 02:56:01 SPECIFIC ANSWER PLZ 02:56:14 does each stuff span more than one line? 02:56:20 Find + sed. 02:56:30 nope. 02:57:32 bash: Find: command not found 02:57:43 then find/grep + sed/perl should work. 02:58:19 >.> I really don't know enough about shell commands to take that and turn it into a command. 02:58:52 ...I guess I could I just write a program that does it. 02:58:54 -gasp- 02:59:49 bsmntbombdood: Lowercase find. 03:00:00 Pikhq: english fails 03:01:25 "find" !"Find" 03:02:06 se 03:02:11 perl -i -e 's/from/to/' `grep -l -r from .` 03:02:18 something _like_ that 03:02:23 hm... 03:02:38 add -p to the perl 03:04:17 and test carefully first. 03:04:35 recursive find + sed 03:04:51 ....yeah... I don't want to... fuck up my entire source... which I'm pretty sure won't happen... but 03:05:29 maybe the argument list generated by the grep will be too long 03:05:46 pipe it through xargs 03:06:13 eh... I'll just use Python. :) 03:07:53 chicken :) 03:08:14 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 ...anything in this that makes it look like it's going to explode? http://deadbeefbabe.org/paste/4270 03:14:36 OH WAIT 03:14:38 I SEE 03:15:30 okay... http://deadbeefbabe.org/paste/4270 ... now with pathnames properly joined. 03:16:32 um... does f.read() read the whole file? 03:17:12 yeah 03:17:48 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 but you should still test first :) 03:19:43 ....hmmm... now sure how to test... other than by simulating walk() and putting in sample strings. 03:20:25 eh... whatever... I'm feeling lucky. 03:20:33 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 YOUR HARDDRIVE IS ALL GONE!!!!!111 03:23:18 well.... I did a recursive count of all occurances of both words. 03:23:20 AND 03:23:27 MUCH TO MY SURPRISE... MUDBALL IS NOT IN ANY OF THE FILES 03:23:37 -!- ihope has quit (Connection timed out). 03:23:40 WHILE SOPHIAMU APPEARS TO OCCUR 26 TIMES. 03:24:00 ah... computer programming... making life easier for us all. 03:25:18 YOU STEENKING LIAR! 03:25:43 ...now I shall perform more sweeping changes to my MUD. 03:25:48 I've renamed everything way too much 03:26:48 okay... so this change makes all the files shorter? How do I ensure lack of junk? 03:27:23 .... I could do f.truncate(0) beforehand. :) 03:30:29 ...I apparently don't have enough permission to... truncate my own files. 03:30:55 maybe put it after seek? 03:31:34 nope... trunace() is independent of the current position. 03:31:58 what i mean is sometimes you must do seek between read and write 03:32:11 oh! I know why. 03:32:22 ....I put the mode in r 03:35:05 why did it work the first time then? 03:35:44 the first one was r+... then for the count check I set it to r... 03:35:58 oh 05:46:58 -!- bsmntbombdood has joined. 06:08:17 -!- oerjan has quit ("gaudy knight"). 07:24:12 BEAUTIFUL http://sophiamu.googlecode.com/svn/trunk/ 07:24:29 ? 07:25:49 ...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 bsmntbombdood: I've decided on ObjC. 09:26:24 Wanna help? 10:07:36 what? 10:07:39 objC? 10:09:06 http://sophiamu.googlecode.com/svn/trunk/ what's that? 10:17:49 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 nooga: Objective C. 17:34:18 You know, an esolang based on fluid dynamics would be pretty cool. 17:34:24 No it wouldn't ;-; 17:34:30 Because I'm bad at that topic. 17:34:43 An esolang based on electricity and magnetism would be pretty cool though. 17:35:30 How about an esolang based on macrophysics? 17:35:39 Hmmm... alright. 17:35:44 You know. All of macrophysics. 17:35:48 Yeah. 17:35:54 Pretty easy to implement. 17:36:21 We can take inspiration from the other project in this domain. 17:36:22 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 (Life.) 17:37:14 Let's see... you need to simulate chemical reactions, because burning is a chemical reaction, and fluid dynamics, and electric stuff... 17:43:39 Pretty easy to implement, you say? 17:45:05 Very. 17:47:02 a u 17:48:07 * nooga is learning python 17:48:34 * nooga is a rubyist 17:48:50 Yer boring. 17:50:03 Yer pickle. 17:52:54 ihope: The chemical reactions are microphysics. ;) 17:53:10 Pff. 17:53:16 * Pikhq calls it microphysics about when quantum mechanics become relevant 17:53:34 Make the light bulb explode because the filament gets too hot, then. 17:53:41 That's easy. 17:53:50 That's remarkably easy. 17:54:39 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 Only requires two laws, I think. 17:55:20 Two laws to describe how the glass fragments and how the water flows in? 17:55:29 Oh, right. 17:55:32 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 That's the hard part. 17:55:45 Plastic limit? 17:55:47 kill 17:55:56 * ihope kills nooga 17:55:57 Wait, what? 17:56:00 But it's easy to see the laws which could apply. 17:56:12 Sukoshi: I was simplifying it a bit. . . 17:56:29 So Pikhq, wanna join the PDF viewer development crew? 17:56:40 The *point*, though, is that a moderately skilled programmer/physics major could handle it. 17:57:05 Sukoshi: What's the point? xpdf/kpdf/gpdf works just as well. 17:57:12 Pikhq: Only in *nix 17:57:17 And they're all based on the same library. 17:57:22 Port it. 17:57:31 No. That's annoying. 17:57:47 The core library should run on OS X, and can be made to work on Cygwin. . . 17:57:53 Ports are flaws/limitations/differences in design ideology. 17:58:13 All one would need to do is define a new UI, which the xpdf source base is designed to handle. 17:58:42 Well, Xpdf's renderer is sometimes not very ideal. 17:59:14 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 Plus it's C++. 17:59:48 Fine. Maybe fork from the Ghostscript renderer? 18:00:08 I'll be using GS as inspiration and probably taking bits out of it, yeah. 18:00:12 But PDF is a lot simpler than PS. 18:00:33 Remember Wilson called the American people to Halt the Hun? Null the C++. 18:01:56 Yeah, but, IIRC, PDF is a subset of PS, allowing Ghostscript code to be very useful. 18:03:29 It is. 18:03:46 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 I think doing the whole PS standard would make for a more robust chunk of code than PDF first. 18:06:46 Alright. 18:06:49 Wanna join aboard? 18:07:04 I'll be only getting 2, maybe 3 hours of programming time until my AP testing finishes. 18:07:15 This is, to quote Marimite, my way of ``running away'' from exams :P 18:12:32 Likewise, I fear (except on weekends). . . 18:12:43 I've also got prom stuff to work on, so. . . 18:13:57 I skipped out on Junior Prom for Physics. 18:14:03 Yes, I love electricity more than Prom. Sue me. 18:14:53 If you're a Senior though, then it's important. 18:15:56 Junior. 18:16:05 Who's already got a date to the prom. . . 18:17:51 Fool. 18:18:34 PPDF weeps. 18:18:41 Let it weep. 18:19:03 I could probably create a PS parser in the next 5 minutes. . . 18:19:06 Yay, RPN! :p 18:19:32 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 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 *independent 18:20:21 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 Sukoshi: cool 20:22:19 bsmntbombdood: You're early. 20:22:35 Early for what? 20:24:25 Nevermind. 20:24:57 I know nothing about gui programming 20:25:18 Neither do I. 20:25:20 Welcome aboard :) 20:25:41 Much less cross platform gui programming 20:25:52 GTK. 20:26:17 I'm learning ObjC, I'm learning PS/PDF, I'm learning GTK. 20:26:21 This is a learning project. 20:26:31 I hope you aren't daunted, being a regular of #esoteric :) 20:26:50 GTK looks out of place on windows I think 20:27:30 Well, what do you want to do, write something yourself via SDL? 20:27:44 Err, no sarcasm meant there. 20:28:22 I don't know what SDL is 20:28:31 OpenGL/GLUT? 20:28:35 .... 20:28:51 Go and google SDL. It's a cross-platform graphics engine. 20:29:21 Simple Directmedia Layer? 20:29:52 Yep. 20:30:47 Hmmm. ObjC seems very unsupported... 20:30:51 I'm considering switching... 20:32:26 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09"). 20:34:17 using something low level might be easier for drawing pdfs 20:35:49 SDL then? 20:36:34 I think figure out the design first, then pick whatever fits best 20:36:51 Alright. 20:36:59 One final tally: ObjC then? 20:37:10 We might use D actually. I dunno. 20:37:15 Choose. 20:37:16 noo! 20:37:33 ObjC it is? 20:37:57 That's what I would prefer 20:39:11 http://libfoundation.opendarwin.org/ <-- We'll be using this. 20:42:26 weird license 20:43:30 There's little alternative, or else we'll have to code the base Object class ourselves. 20:45:41 probably not a good idea if we don't know objc 20:46:39 Exactly, heh. 20:49:53 -!- atrapado has joined. 20:50:19 what are you guys working on? 20:51:19 how about Cairo? 20:51:42 I was contemplating. How is it? 20:51:45 calamari: PDF Viewer? 20:51:49 haven't worked in it 20:51:53 but that may do the job. 20:51:59 in an esolang? 20:52:33 otherwise.. why? there are already so many hehe 20:53:14 http://en.wikipedia.org/wiki/Cairo_(graphics) 20:54:01 cairo doesn't have objc bindings 20:54:34 *shrug* 20:55:23 bbl 20:55:28 -!- calamari has quit ("Leaving"). 20:59:34 But it's C, no? 21:01:35 cairo is, yes 21:03:33 So we can wrap it ourselves. 21:05:18 -!- sebbu2 has joined. 21:06:20 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 Don't use the tutorials. 21:37:55 Just read the documentation. 21:41:52 -!- oerjan has joined. 21:44:28 -!- ihope has joined. 21:55:48 You know, a Thue busy beaver would be pretty cool. 21:56:48 How much can you fit in an 80-by-24 box using only printable ASCII characters and newlines? 21:58:23 Uh, presumably 80x24x(number of printable characters)? 21:59:00 Rather, how long of a string can you produce doing that? 21:59:21 I guess there are often multiple ways of running a Thue program. 22:01:26 How about a Sortle busy beaver? 22:15:22 What's a busy beaver? 22:16:39 program to generate the most ones on the tape 22:20:39 Debian's package management is begining to tire me 22:21:21 i read about a new system on Lambda the Ultimate recently. purely functional package management. 22:21:42 OCaML owns your sleep. 22:21:52 What makes it pure functional? 22:22:02 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 (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 my scheme quine 23:44:08 My quine: 23:44:30 Brilliant, no? 23:44:34 no 23:48:26 I see the early days of #esoteric were quite quiet 23:48:44 no, the early days were just fine. 23:48:57 the middle ages were quiet. 23:49:38 all secular thought was suppressed. 23:49:57 s/early days/early days of logging/ 23:50:20 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 Someone care to link to the logs? 00:10:23 Ah. In topic. 00:38:23 -!- jix__ has changed nick to jix. 00:48:40 yes! 00:48:46 maybe. 00:48:48 my FOOS interpreter works 00:52:15 http://bsmntbombdood.mooo.com/FOOS.tgz 00:52:19 run main.py for a repl 00:52:44 I dun wrote something in Smalltalk zomg 8-D 00:54:31 -!- sebbu2 has quit ("@+"). 00:58:26 -!- calamari has joined. 01:02:58 "Hello, world" print 01:03:05 the hello world 01:06:48 or 01:07:50 @'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 Pikhq: http://www.nongnu.org/sps/ 01:12:44 Pikhq: (Or better:) http://savannah.nongnu.org/projects/sps/ 01:13:43 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 The core OS would include: 01:13:55 Linux 01:13:57 Busybox 01:14:04 Package manager (in .sh) 01:14:09 Nothing else. 01:15:24 What's Busybox? 01:15:38 everything in /bin, in one executable 01:15:56 Basically, the core system is about. . . Nothing. 01:16:29 Pikhq: Seriously, click my link above ... it's a packaging system I wrote that could aid you greatly. 01:16:39 Interesting. 01:16:49 GregorR: Describe it; the page doesn't detail much. 01:17:52 Pikhq: Heh. Each package is installed to /sps//. 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 Oh, and how modular is Busybox? 01:18:43 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 ihope: It's a single package. 01:19:04 ihope: What aspect of busybox? 01:19:06 Thus, it's the core module. 01:19:32 GregorR: well, Busybox is an executable and a bunch of symbolic links, right? 01:19:38 ihope: Yes. 01:19:41 So it's a global repository of packages? 01:20:00 And the symbolic links don't carry much information, so most of BusyBox is in that one executable. 01:20:04 GregorR: I *love* that idea. 01:20:11 So how does one go about changing the functionality of that one executable? 01:20:18 ihope: Recompile. 01:20:24 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 Thus why it's the core of the system. 01:20:46 GregorR: I'm *very* interested. 01:20:46 What's it written in? 01:20:55 C 01:20:56 It sounds a *lot* like Klik. 01:20:59 Err. 01:21:01 Unfortunately, I wrote it in perl >_> ... I was unenlightened at the time <_< 01:21:03 Busybox, that is. 01:21:09 Sukoshi: And it's not even the least like Klik ... 01:21:37 Well, other than the fact that Klik keeps its stuff in a local sandwhich. 01:22:09 GregorR knows Perl? Ewww. 01:22:23 I *wish* it was written in a compilable language, making things easier to set up, though. 01:22:34 As-is, the core system would have to include 3 packages: 01:22:35 Pikhq: If I revive it, I will almost certainly rewrite it in C. 01:22:38 We can rewrite it. 01:22:41 I don't know why I wrote it in Perl :P 01:22:43 busybox 01:22:47 It was a bad, bad choice ^^ 01:22:48 linux-core 01:22:54 perl-core 01:22:55 Is there any dependancy tracking? 01:22:57 Err. 4. 01:23:03 sps 01:23:14 Sukoshi: SPS isn't that part of the packaging system. 01:23:21 Sukoshi: OH! (rewind) 01:23:22 Sukoshi: Yes. 01:23:30 Sukoshi: But not in terms of installation, SPS doesn't do installs :) 01:23:32 -!- calamari has quit ("Leaving"). 01:23:41 Sukoshi: But if you add a tool to your environment, it adds all of its dependencies as well. 01:23:50 GregorR: Ah... so similar to the Slackware package manager? 01:23:59 GregorR: Does it automagically download the dependencies as well? 01:24:19 Dependancy tracking is annoying to implement. 01:24:21 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 *different 01:24:37 A tool I never wrote ;) 01:24:44 GregorR: Try to make it easy to have SPS automagically call that tool, then. 01:24:51 In fact, I propose a small shift of SPS's focus. 01:24:56 Sukoshi: Oh? 01:25:09 Make it manage many versions of one application. 01:25:18 Like, Firefox 1 and Firefox 2 for example. 01:25:20 Sounds ideal. 01:25:22 Sukoshi: That's what it does. 01:25:34 GregorR: But I thought it was a *total* package manager... 01:25:37 It sounds *almost* like installation would be as simple as drag-drop, but dependency grabbing would require an external tool. 01:25:45 Pikhq: Egg-zactly. 01:25:54 Sukoshi: SPS packages are installed to /sps// 01:25:58 Who needs dependency tracking? 01:26:04 Dependencies are for nubs :P 01:26:04 Well, my dependency idea is simple. . . 01:26:06 Sukoshi: So you can have any number of versions of the same package installed. 01:26:17 Sukoshi: And choose which one to use by specifying it in your .spsenv file. 01:26:17 GregorR: Nifty. 01:26:39 I'll rewrite it in C this week. 01:26:47 Can't this weekend, too dern much homework >_> 01:26:51 Make each package have an on-install script, which checks for appropriate versions of dependencies, and installs them. 01:27:20 just like every other package manager... 01:27:36 bsmntbombdood: Not quite. 01:28:07 Unless your package manager involves "copy package into /sps/ to install", that is. 01:28:39 Heh 01:28:45 That bit is a very, very Hurdish idea. 01:29:01 SPS represents a part of the package manager that doesn't exist in conventional package management ... 01:29:01 (seriously, that *is* the Hurd package manager) 01:29:13 Realistically, you could set dpkg, rpm, whatever on top of it. 01:29:35 what does sps stand for? 01:29:38 Right *now*, I'm thinking of just having a *very* simple package manager. 01:29:45 lament: The Segregated Packages System 01:30:01 Because it segregates the packages :P 01:30:06 I'll probably just build a script-based package manager for now. . . 01:31:11 Let's make the package system modular. 01:31:16 * GregorR leaves to do homezvork. 01:31:21 *fwoom* 01:31:33 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 ATM, I think my package manager will consist of a installer script which calls the script to install a specific package. . . 01:32:35 Sukoshi: My *current* dependency manager consists of "each package just automagically downloads and installs what it needs". . . 01:33:21 Errr. 01:33:35 Not quite what you want, but I'm just wanting a temporary solution ATM. 01:33:40 Are we reinventing portage? 01:33:45 Um. . . 01:33:47 Actually, yeah. 01:33:54 Yeah.... 01:34:08 Binary portage. . . 01:34:30 Sorry; I'm too much of a Gentoo man for my own good. 01:34:38 You very rarely see novel ideas in package management nowadays. 01:34:56 I'd argue that's because a lot of good ones have already been made. 01:36:13 I'm not disagreeing there. 01:36:27 PPDF may switch from ObjC. 01:36:32 Seeing that libFoundation is refusing to compile :D 01:38:24 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 UnionFS? 01:39:10 It's used in LiveCDs to allow one to combine an RW and RO filesystem into one. . . 01:39:11 Sukoshi: That's because libFoundation doesn't compile 01:39:15 it's just headers 01:39:33 bsmntbombdood: No, it has makefiles. 01:39:55 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 bsmntbombdood: Friendly person at #objc tells me to use GnuStep. 01:40:39 You're implementing a LiveCD, Pikhq ? 01:40:40 sure 01:41:03 I couldn't get gnustep figured out though 01:41:04 Sukoshi: No, just something which is easy to make into a LiveCD. 01:41:14 By merit of the core system just being an initrd.img. 01:41:32 . . . Which merges itself with another filesystem. 01:42:25 I've been feeling pricked of late to try a versioning FS. 01:42:30 At least for my source directories. 01:43:04 Hmm. . . 01:43:25 that would be cool 01:44:35 I've got gnu step, but I can't find the right headers 01:45:59 I'm about to SVN it now. 01:47:48 oh darn, i'm almost out of disk space 01:48:29 I was tempted to make a bad your-mom joke. 01:48:35 But I didn't :P 01:49:47 Your MOM didn't! 01:50:46 I just lost in corniness :D 01:50:55 Wow. GNUStep is huge. 01:51:05 Anyways, bsmntbombdood. 01:51:18 We're not implementing PS unless you can give me a good argument to. 01:51:19 turns out I had the wrong gnustep package 01:51:24 Do you want to know why? 01:51:52 If you do, I suggest you grab the GS source and take a look at the amount of files in src/ . 01:51:57 :) 01:51:58 heh 01:52:25 Have you looked over the PDF Reference? 01:52:37 No 01:52:40 link? 01:52:43 (Use the reference from '01 (the second newest), the newest adds BS like animation that nobody uses.) 01:53:19 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 1.6 Reference is 8 MB. 01:53:47 1.7 Reference is 31 MB. 01:53:53 Choose wisely, my friend :) 01:54:26 O.o 01:54:52 1.7 == 6th ed., 1.6 == 5th ed. Don't ask me why. 01:54:53 only 1236 pages... 01:55:05 Yeah but it's pretty light reading actually. 01:55:13 Skim over the syntax, the objects, and such. 01:55:44 .... And SVN is still pulling stuff from GNUStep. 01:55:52 Oh. Just finished. 01:56:12 Do you know any objc? 01:56:32 I've been spending the morning reading Apple's introduction to Object Oriented Programming. 01:56:46 * bsmntbombdood knows nothing 01:56:51 I have to say, it addresses one of my biggest problems with OOP. 01:57:01 which is? 01:57:16 When to use a class over a struct and functions. 01:57:35 Same thing 01:57:37 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 ObjC is not much actually. Just a thin veneer over C and is very C-like. 01:59:11 How does objc fix that problem? 01:59:25 It doesen't as much as the document gives you a general guideline. 02:00:17 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 But you should read the ObjC concept of the dynamic runtime. A very nifty idea. 02:00:52 well, if you have a bunch of functions that all take the same struct, that's an object 02:01:12 But the syntax to use the struct and objects is not the same. 02:01:31 I'm reading apple's "the objective-c programming language" 02:01:37 The main reason I wanna use OOP for this project is that OOP gives the advantage of syntactically thorough encapsulated state. 02:01:52 We're reading the same book :) 02:02:45 I also want to seperate certain components cleanly so that replacements can be coded if needed. 02:02:49 gotta love free ebooks 02:02:54 Heh. 02:03:17 The graphics system is the main seperate component. We might also want to seperate parts of the rendering engine and such. 02:03:30 Now. Which portion do you think we should write first? 02:03:55 I don't know anything about the pdf format, but i'm going to say parser 02:06:46 That's going to be the easiest. 02:07:00 It's very similar to Forth. 02:07:19 Since it's all pseudo-RPN, there's very little to tokenize. 02:08:30 Take a look at internal page 48 in the 5th ed. PDF standard. 02:08:35 Skim from there down. 02:09:17 LZW? 02:10:16 I have to go 02:10:35 As in, PDF Viewer page. 02:10:36 Garrr. 02:10:51 bout 2hrs 02:11:06 I'll take leave myself in a bit, and won't be back on 'till 9. 02:11:14 I may be doing homework at that time too, so bleh. 02:11:18 9 being 3 hours from now. 02:11:28 you do too much homework 02:11:42 I have to cram all of electricity in a month, you know. 02:12:09 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 Now I have to finish up magnetism and start on AP practice tests. 02:13:15 ObjC is actually pretty esoteric in some ways. Probably due to SmallTalk. 02:13:24 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 I forget, do you enjoy functional programming Pikhq ? 02:24:01 Sukoshi: Meh. 02:24:11 I'm more of an imperative thinker. 02:25:29 That just means you haven't found the Right Language (TM). 02:25:49 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 I've grown fond of Plof. . . 02:28:19 I'm waiting for Plof to mature :) 02:28:33 Is Plof compiled? 02:30:02 It's interpreted ATM. 02:37:03 ...I killed my RAM with a 301327046 byte string. :) 02:39:38 Dear god why would you allocate that much? 02:39:51 >>> x = "hahaha".replace("", "hu").replace("", "hu") 02:39:53 >>> x 02:39:54 'huhhuuhuhhuhhuuhuahuhhuuhuhhuhhuuhuahuhhuuhuhhuhhuuhuahuhhuuhu' 02:39:56 >>> 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 >>> x 02:39:59 Traceback (most recent call last): 02:40:00 File "", line 1, in 02:40:02 x 02:40:03 MemoryError 02:40:05 >>> len(x) 02:40:06 301327046 02:40:08 that's why. 02:40:26 Yay weird unchecked languages. 02:40:28 ....my computer is running as if it got kicked in the balls. 02:41:24 apparently there are thousands of empty strings between the characters of a string.... HOW THOUGHT-PROVOKING 02:41:46 >>> "" in "Everything" 02:41:47 True 02:42:30 >>> "" in "" 02:42:31 True 02:42:36 THE EMPTY STRING IS INSIDE ITSELF. 02:43:21 Oh noes? 02:44:20 Isn't everything inside itself? 02:44:42 ...oh, yeah 02:44:58 a list a sublist of itself... 02:45:08 Also: x.replace("", x) 02:45:46 hehehehe... it's like a tree 02:46:00 >>> x = "Hello, World!" 02:46:02 >>> x = x.replace("", x) 02:46:03 >>> x 02:46:04 '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 Mmkay, just need to build Busybox to have my core system up. . . 02:48:29 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 What's the point of the project? 02:50:31 To create a distro that I like. 02:50:50 Really, it's basically called "I'm bored". 02:50:50 Pff, distro. Why not create a whole operating system? 02:50:51 :-P 02:51:00 ihope: Lazy. 02:51:06 Whoo. 02:51:11 I've got the core binaries. 02:51:15 Say, where are you going to host this distro? 02:51:27 I'll probably use my nonlogic account. 02:51:41 nonlogic? 02:51:46 Yeah. 02:51:49 nonlogic.org 02:51:58 Interesting. 02:52:33 Wasn't there a nonlogic IRC channel somewhere once? 02:53:10 ##nonlogic 02:53:19 On Freenode. 02:55:07 * CakeProphet has plans for an operating system. 02:55:21 ...will probably be years before I ever start though... I've got ideas brewing. 02:55:27 #awos 02:56:01 CakeProphet: you too? 02:56:21 not that it's going anywhere 02:56:22 Who owns nonlogic? 02:56:35 What's AWOS, now? 02:56:48 AW ... it's an OS. 02:56:49 Sukoshi: The *paying* members of nonlogic own it. 02:56:59 Pikhq: Who are they? 02:57:03 ihope: an os 02:57:10 Sukoshi: I can't remember the full list. . . 02:57:11 Another one? 02:57:25 ihope: its creator wants to turn it into "the universal operating system" 02:57:28 ihope, I DARE SAY WE SHOULD COMBINE OUR EFFORTS 02:57:37 bsmntbombdood, they sound crazy. 02:57:37 Quite a few people on nonlogic have paid, so are allowed to vote on all issues for the nonprofit. 02:57:38 CakeProphet: I was just about to say that. 02:57:51 (I *think* that's the general gist of the nonprofit charter) 02:57:53 what's nonlogic? 02:58:06 Free shell server/web host. 02:58:07 CakeProphet: yeah 02:58:08 ihope, ...hail Discordia much? 02:58:14 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 CakeProphet: ...wait? 02:58:21 Erm. 02:58:22 Did you pay for Nonlogic also, Pikhq ? 02:58:24 CakeProphet: ...what? 02:58:33 bsmntbombdood: universal operating system, eh? 02:58:52 Sukoshi: I've not. 02:58:59 runs windows and linux binaries natively 02:59:08 s/runs/planned to run/ 02:59:12 The payment is just to be a voting member. . . Joining costs nothing. 02:59:27 bsmntbombdood: Linux binaries, sure, but isn't Windows Wine's job? 02:59:48 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 BEAUTIFUL. 03:00:01 ihope: ask him 03:00:09 CakeProphet: can you define "discordian" and "erisean" for me? 03:00:19 bsmntbombdood: who's "him"? 03:00:28 So you're ready to stard devving bsmntbombdood? 03:00:32 ihope: AWOSDev 03:00:36 I seem to have lost over half the keys for this keyboard. 03:00:52 Where could they have gone, gah. 03:00:54 ihope, nope... but you can define it yourself if you like. But don't. 03:01:05 Why shouldn't I? 03:01:41 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 ...it PROPELS IT INTO THE AGE OF AQUARIUS... which is a no-no. 03:02:04 You're getting weird. 03:02:17 * oerjan will propel things into the age of Aquarius for food. 03:03:18 ihope, http://principiadiscordia.com/book/1.php 03:03:45 read that... or just read some of it if you're time is short. 03:03:48 ....haha, midget time. 03:04:27 I'm not time is short! 03:04:39 Oh no, I have them. 03:04:56 It turns out that some of the keys markings dissolved to the point where the masquerade other keys. 03:05:13 I still can't figure out why I have three 7's. 03:05:21 When I need only two. 03:09:54 Sukoshi: This is going to be a huge project 03:10:29 bsmntbombdood: You didn't realize that already? :P 03:11:06 Actually, I am. 03:11:12 But, uh, ah. 03:11:26 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 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 AP comp-sci is a joke at my school 03:12:24 I know it is. 03:12:36 ihope, GO ON 03:12:36 I would've taken it this year as an aside, but I already have 5 AP tests to take. 03:12:50 One of those things that shouldn't be called CS 03:13:05 Nah. I hear it's a pretty accurate reading of what Freshman CS is like in college. 03:13:14 AKA Let's sleep through Freshman year! 03:13:33 :( 03:13:37 CakeProphet: how about you find a place to host everything, then I start writing the kernel and all, or something? 03:13:40 Good thing I'm going to apply for EE, which is a lot more interestin :P 03:13:44 *interesting 03:13:50 * bsmntbombdood wants to go to MIT 03:13:58 I'm working on this operating system, though I'm doing it very slowly. 03:14:49 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 Whether or not it's possible to release stuff into the public domain is much debated. 03:15:44 I say use http://allritesreversed.com/ 03:15:45 bsmntbombdood: That's tough :P 03:15:59 I doubt I can get in to MIT just like that. 03:16:06 I do want to eventually do graduate studies there though. 03:16:33 I get bad grades and can't pay for it, so I probably won't be able to get it 03:16:50 in 03:18:59 ihope, ....I really should like... learn how to do assembly or C well... 03:19:31 I'd go with a microkernel architecture... and have most of the stuff in "user space" or whatever... 03:19:57 Wikipedia pretty much says that it's possible to release things into the public doamin. 03:20:02 Once you start C you just can't stop. 03:20:13 Everybody but GregorR says that this means an automatic disclaimer. 03:20:24 However, I haven't seen this backed up anywhere. 03:21:48 ....I find it highly unlikely that I'll ever get hooked to C. 03:21:59 C is fun 03:22:51 ...I imagine it would be kind of fun... but hard to work with. 03:23:00 What do you do everything in? 03:24:27 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 He works in Python, if I'm not mistaken. 03:24:53 HOWEVER 03:25:00 Gah, this keyboard is so .... feedback-less. 03:25:15 How people live without feedback on their keyboards I will not know. 03:25:27 Oh well, it is the future! 03:25:31 ...after a quick read over some of the standard library of C... I could probably code in it decently. 03:25:46 each page in the spec is going to take like 500 lines to implement 03:26:13 that makes... 618,000 lines 03:26:38 * Pikhq wonders how Slackware packages are made. . . 03:26:47 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 Slackware, hugs and kisses. 03:27:01 Pikhq, er... hugs and kisses 03:27:15 CakeProphet: the plan for a while has been to call it YAOS. 03:27:20 bsmntbombdood: Just 500 lines? 03:27:30 Yet another operating system whose name ends in "OS". 03:27:37 SophYAOS? 03:27:42 :) 03:27:44 CakeProphet: ouch. 03:27:49 WHAT 03:27:53 IT SOUNDS NICE 03:28:06 YAYAA 03:28:18 What about YAOSNS, the "NS" standing for "named Sophia"? 03:28:20 The parser won't be too difficult, mabe 200 lines. Some stuff wil probably be in the 700 line mark though. 03:28:29 Hey, if the libpoppler people could do it, then so can we! 03:28:57 .... Right? 03:29:06 Just to turn the file into an object that can be rendered will take a while 03:29:28 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 So, I ask once more, where shall we begin? :) 03:29:42 Yet another YAOS named sophia? 03:29:52 yep 03:29:55 That would be very redundant. 03:29:58 ...but... that sounds lame 03:30:03 s/sophia/Sophia/ 03:30:09 GOOD 03:30:13 I would name it FFTH. 03:30:17 The OS. 03:30:20 I WILL NOT TOLERATE SCRAMBLING OF TITLE CASE 03:30:34 ...why not an OS name that... doesn't end in OS? 03:30:40 Like Sophia? 03:30:46 Is "Sophia" a good name? 03:30:47 Five Factorial Times Thirty. 03:30:57 Errr... 03:31:03 Five Factorial Times Hundred. 03:31:21 I propose that we have a PDFDoc object, that is the result of parsing, decompressing, decrypting... the file 03:31:26 Sukoshi: 12000? 03:31:34 naostewos ...not another OS ending with OS.... but that name sucks 03:31:50 ihope: Yep. 03:31:52 CakeProphet: are we trying seriously to come up with a name here? 03:32:01 ...half the time. 03:32:16 bsmntbombdood: Would would it internally represent? 03:32:19 My proposals are "YAOS" and "Sophia". 03:32:28 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 If we can't agree on a name, it'll be YAOS by default. >:-) 03:33:10 ...well... if you want a "weird" name... I can do that easily. 03:33:13 Just like how Linus didn't want to call Linux "Linux". 03:33:15 abraxas is a fantastic album 03:33:24 CakeProphet: oh, I just want a name. 03:33:24 Sukoshi: what? 03:33:32 "YAOS" was somehting I came up with and thought funny. 03:33:35 -!- CakeProphet has changed nick to SevenInchBread. 03:33:41 ihope, .......... 03:33:53 So have we agreed on Sophia? 03:34:01 it's old enough to be kind of pretentious at this point. 03:34:10 eh... I think it's better than YAOS. 03:34:31 AND IT DOES HAVE A NICE RING TO IT. 03:34:52 if anything we can use it as a placeholder. 03:35:11 Abrasax is related to Sophia, and ends in X. 03:35:42 bsmntbombdood: What will it internally represent? 03:35:54 SevenInchBread: indeed we can. 03:35:59 Like, what does PDFDoc have in it? 03:36:11 And we can go with the hybrid "YAOSophia" if we get desperate. 03:36:43 oerjan, I like the sound of it. 03:37:01 Yet Another Operating Sophia? 03:37:10 Sukoshi: the result of reading a file, parsing it, turning the data structures into their unencoded and easily usable data structures 03:37:22 (http://en.wikipedia.org/wiki/Gnosticism) 03:37:40 Sukoshi: who said that "YAO" stood for "Yet Another Operating"? 03:37:48 Incidentally, it does. Therefore, :-) 03:37:57 .... :P 03:38:09 bsmntbombdood: Well, what do you suggest we code first? 03:38:14 I LIKE ABRASAX 03:38:17 Now, what's this about Abrasax? 03:38:21 In 3 minutes, I start my daily Japanese homework. 03:38:22 Is that another suggested name? 03:38:37 ...and Sophia. So we shall call it by both names... and many more that we like. 03:38:39 How about YMMV as the name? 03:38:49 BECAUSE NAMES ARE ABUNDANT... DESPITE THE POPULAR BELIEF THAT ALL THE GOOD ONES ARE TAKEN. 03:38:51 Turning a subset of pdf files into PDFDoc 03:39:00 Yet my mother's Volkswagen? 03:39:22 SevenInchBread: so "Abrasax" is another suggested name? 03:39:53 yep.. I'm using it for the sourceforge name for now. 03:41:01 bsmntbombdood: Uh... think small :P 03:41:05 You're creating a Sourceforge thingy for it? 03:41:24 Parser, stacks, internal object representation... 03:41:28 Sukoshi: the first step to that would be parsing 03:41:29 Not bad. 03:41:33 * ihope throws dextrose tablets at GregorR 03:41:34 ihope: Your Mileage May Vary. 03:42:16 Because who said OS's are equally lovable? :P 03:42:27 ...I've never liked the categorization of people into classes like "developer" and "end user". 03:42:34 converting pdf strings to strings, converting dictionaries to hash tables... 03:43:24 some kind of modular system for adding compression, encryption 03:43:35 SevenInchBread: It's OS Communism! 03:43:42 COSmunism! 03:43:52 ...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 bsmntbombdood: I say we defer compression and encryption for later. 03:44:10 s/dump/dumb 03:44:13 Sukoshi: yes 03:44:38 I'm just saying we need to allow for a way to add the "filters" cleanly later 03:44:47 Oh oh, I see. 03:45:01 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 03:45:09 Well, we can just as internal objects around to filters. 03:45:47 So, how do you suggest we tokenize this, in 2 minutes? 03:46:03 Then I leave. 03:46:25 s/as/pass/ 03:46:37 start with the cross reference table, build all the indirect objects 03:46:50 ihope, yeah... no huge monolithic kernel for this one... too messy. 03:47:11 What happened to ESOS? 03:47:12 we use indexes into an array for those when we get to them in the doc 03:47:30 bsmntbombdood: Huh? 03:47:46 bsmntbombdood: Talk here. I start Japanese now. 03:47:50 Sukoshi: find me a platform for it and we can start work building an operating system for it. 03:47:51 See you some time later :P 03:48:05 ihope: x86 ? 03:48:13 Sukoshi: x86 is not esoteric. 03:48:24 ihope: ..... :P 03:48:32 ihope: subleq OISC 03:48:38 well... I wouldn't worry about being esoteric in the hardware. 03:48:48 bsmntbombdood: what's subleq? 03:49:00 SevenInchBread: "platform" need not refer to the hardware. 03:49:00 subtract and branch if negative 03:49:10 I wrote a vm a while ago, fun to play with 03:49:23 bsmntbombdood: is that URISC? 03:49:33 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 bsmntbombdood: PM me your ideas on tokenizing, and maybe we can get a basic tokenizer written up today. 03:49:51 THE SYSTEM... THE HIVEMIND... IT IS THE CENTER OF EVERYTHING AND IT IS DISPERESED WIDELY. 03:50:10 Run away! It's COSmunism! 03:50:12 Abrasax... 03:50:19 Sukoshi: I've only read up to the objects used in the pdf file 03:50:29 Then read more :) 03:50:40 but tokenizing is pretty simple 03:50:43 Well, I certainly don't see anything called Abrasax on SourceForge right now. 03:50:56 recursive for arrays and dictionarys 03:51:04 Is it okay if I call it SourceForce every once in a while, or SourgeForce or SourgeForge? 03:51:39 Sourceforge asks a bunch of questions... all of them optional though 03:51:47 like programming languages, what we're doing etc. 03:52:30 All of them are optional? 03:52:53 Does SourceForge.net offer a fancy public domain thing? 03:53:03 ...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 yeah 03:53:43 Um, yeah. . . 03:53:49 Try the Java Virtual Machine. 03:54:11 ....I don't like the sound of it. 03:54:25 ...but that's because I have a silly bias toward Java. 03:54:33 It's just the virtual architecture which Java is usually compiled to. 03:54:49 I like Parrot... on the shallow basis that it has a cooler name. 03:54:55 Other languages *can* be compiled to it, but aren't commonly. . . 03:55:04 One could even write in JVM ASM if you wished. 03:55:30 ihope: what's URISC 03:55:41 OISC is One Instruction Set Computer 03:55:45 n/m 03:55:47 erm 03:55:56 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 n/m the n/m 03:56:20 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 and a builtin versioning system. 03:57:52 ...but that's all filesystem/process-level stuff... not the bare bones. 03:58:04 ihope: no 03:58:13 bsmntbombdood: doesn't Wikipedia have something about URISC? 03:58:23 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 yes, it redirects to OISC 03:58:39 so URISC = OISC 04:00:52 Pff. 04:01:06 Does the OISC page mention URISC? 04:01:41 SevenInchBread: a way to spit stuff out to a terminal... is this YAOS/Sophia/Abrasax we're talking about? 04:01:49 yeah. 04:02:00 like... a way to shoot stuff out... so we can test stuff. 04:02:19 a cannon! 04:02:35 Well, we'll want to plan some stuff out 04:02:46 * ihope opens Notepad 04:03:10 What's this about Multiboot and modules? 04:03:52 Multiboot is a standardised interface for a bootloader to access an OS kernel. 04:04:16 It's main user is the Hurd. . . 04:04:53 Using Multiboot for an OS project is an easy way to make the kernel bootable via GRUB. 04:05:05 The kernel, upon starting, loads all its modules as drivers. 04:05:13 (the other way being to use the Linux bootloader interface) 04:05:33 Or maybe one of its modules would act as a config file. 04:05:47 Exactly. 04:05:53 And that config file would tell what to do with the rest of the modules. 04:07:29 Suddenly, it's time for bed. Does everyone have some idea of my email address? 04:08:07 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 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 and here's the description I gave the Sourceforge people... 04:09:39 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 I thought it was "horde". 04:10:21 oh well. 04:10:24 spelling is for geeks 04:10:28 And I see you have lots of your own ideas. 04:11:12 yeah... I've been thinking about this a lot. ...any of them that sound like something you wouldn't like? 04:12:29 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 Rather, general weirdness is iffy. 04:13:22 I think they all sound great........ which is obvious - since I wrote them. What all did you have in mind? 04:14:38 Principle of least authority, Linux application compatibility... 04:14:56 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 haha, compatibility 04:15:19 Why output hash tables when you can serialize them and send them as plain old bytes? 04:15:20 ihope, sounds great to me. compatibility hasn't been much of a concern for me... but nothing that I'm against 04:15:28 Not that I actually know that "serialize" means what I think it does. 04:15:30 SevenInchBread: IPC is usually acheived by shared memory. you can put hash tables in memory 04:15:35 ihope, ...because that takes more work? 04:15:36 Versioned file system... that one's an idea. 04:15:47 SevenInchBread: very true.\ 04:15:55 but versioned file system would be cool 04:15:58 bsmntbombdood, well then fuck usually. :P 04:16:08 Let's implement EVERYTHING! 04:16:12 INDEED 04:16:25 And find a way to do all this in a microkernel. 04:16:26 I'm all for it actually... I'm only lazy when it comes to stuff I don't want to do. 04:16:43 Lemme think... kernel loads drivers according to a config file... 04:16:55 Ah yes. Processes need to be able to register services. 04:17:02 I think it would be neat to have finer-grained execute controls 04:17:10 Hard drive access might be a service, for example. 04:17:14 bsmntbombdood: to have what? 04:17:43 linux uses a single bit to control execution (executable or not executable) 04:17:47 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 Invoking certain services with certain arguments might be a privilege. 04:18:12 SevenInchBread: would handling privileges also be a separate process? 04:18:12 finer grained would be "allow this proccess to execute but don't let it write to any disk" 04:18:34 SevenInchBread, hmmm... I kind of consider priveledges a form of "authority". 04:18:37 er... ihope 04:18:41 That may well mean invoking a process everytime anything makes a system call. 04:18:42 but... yes. 04:18:57 SevenInchBread: what's this about privileges and authority? 04:19:00 ihope, nope. You just have them as processes that are always around. 04:19:02 Rather, what did I say to the contrary? 04:19:09 a bit for network access... 04:19:32 SevenInchBread: well, yes, but you'd use the process every time something makes a system call. 04:19:45 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 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 SevenInchBread: the operating system is definitely going to have privileges. 04:20:59 Oh, also, to prevent forkbombs and such, every process will pretty much be responsible for its "children". 04:21:15 If a process invokes another process, chances are they're going to share time slices. 04:21:26 makes sense 04:21:51 ...I see the shell working something like a Smalltalk-ian programming language. 04:21:58 ...kind of io-ish. 04:22:27 definetely with more features than UNIX-style pass-strings-around shell scripting. 04:23:36 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 ...but that's because no one else uses this computer... and I've never have a security breach. 04:24:48 SevenInchBread: privileges are very necessary. 04:25:02 Every process must have a set of privileges. 04:25:17 eh... probably... I've just never found use for them myself. 04:25:36 my email is adamadamadamamiadam@gmail (it's long... but probably easy to remember) 04:26:56 ihope, what kind of priveledges? I usually think of priveledge systems as ways to keep me out of messing with shit.. 04:27:12 Adam adam adam ami adam? 04:27:27 SevenInchBread: every system call is a privilege. 04:27:34 And every process has privileges. 04:27:49 That's to make it so that running malicious software doesn't end up doing anything bad. 04:27:56 And by malicious, I might mean buggy/ 04:28:30 yeah 04:29:01 eh... you could just make everything fairly unbreakable to start with... 04:29:21 as long as everything is open-ended unless explicitly blocked. 04:29:36 then I'm cool with priveledges. 04:30:15 SevenInchBread: "everything is open-ended unless explicitly blocked" meaning "if you run it, it can do anything unless you say otherwise"? 04:30:30 pretty much. 04:30:32 And how do you make something immune to formatting the hard drive, say? 04:30:50 -shrug- I don't know really. 04:31:08 I still like the principle of least authority. 04:31:22 ...what's that again? 04:31:54 By default, programs aren't allowed to do anything that's potentially harmful. 04:32:08 oh... originally I thought it meant something like "principle of no authority"./ 04:32:18 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 ...OH NOES... A SCHISM IN THE OSDEVERS PRINCIPLES. 04:32:41 Hmm? 04:33:11 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 SevenInchBread: then sudo is for you. 04:34:00 How do Windows and Linux CPU time distribution things work? 04:34:05 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 as long as something isn't completely blocked from access... then having some security features is nice. 04:34:37 SevenInchBread: it's not like you'd want to run a program and then not grant it any CPU time. 04:34:48 Nor grant it CPU time but not the ability to make any system calls at all. 04:35:10 Unless you want the program to do nothing but sit there and compute. 04:35:44 the securest computer in the world is also the most useless computer in the world. 04:36:52 I'll bet Babbages computer was more secure than any computer today!\ 04:37:20 being unbuilt _is_ pretty secure, you have to admit. 04:37:23 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 SevenInchBread: yes, well, we don't want the most secure computer in the world. 04:37:39 good. :) 04:37:50 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 Nor configured to keep you out. 04:38:08 lovely. 04:38:20 ANARCHYOS!!! 04:38:38 :-) 04:39:24 ihope, basically I like microkernals because they're not huge and messy... 04:39:36 I think we can manage a microkernel. 04:39:52 So let's see here... kernel loads processes. We need the kernel to handle processes. 04:40:00 -nod- 04:40:14 So it has to handle time slices, loading of processes, calling of processes, and system calls. 04:40:24 And handling system calls means handling privileges. 04:40:26 does it need to handle inter-process commmunication. IPC is really something I'd like to focus on. 04:40:46 IPC could be provided using a service. 04:40:54 We'll also want the kernel to handle services. 04:41:08 aren't they the same thing? 04:41:13 And I think that's just about everything our kernel needs. 04:41:16 Aren't what the same thing? 04:41:39 I've always interpreted service/daemon to mean "stuff that spends most of its time sitting around making itself available" 04:41:45 a process. 04:42:14 Service = something which a process makes available and can be invoked by other processes. 04:42:35 can't you just make all processes like that? 04:42:46 like... give the processes handy names. 04:42:47 You could invoke the processes themselves, yes. 04:43:12 But what if you want a process to provide multiple services? 04:43:36 multiple names. 04:43:37 A service is essentially some type of interface for something. 04:44:06 the syntax - to put it into shell parlance - might be something like "processname message" 04:44:19 Indeed it could be. 04:44:34 so.... if there was an "fs" process... that did the filesystem. 04:44:35 So that means services = IPC? 04:45:07 you could do "fs cd foo/bar" or "fs list (foo/bar, foo/bar2, foo/bar3)" 04:45:20 Nah, we have to give it a GUID. Call it {f4f5ff04-45eb-40d1-b206-63913b5468d6}. 04:45:32 ..... 04:45:34 :-P 04:45:40 that sounds uh... brilliant? 04:45:40 I mean, we don't want collisions, do we? 04:45:49 I guess calling it "fs" isn't a bad idea. 04:46:06 don't see why not... collisions can be handled by some sort of priveledge. 04:46:26 How would that work? 04:46:55 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 Oh, just keep process naming privileged. 04:47:22 like a "prevent name override" priv. 04:47:45 But I guess you'd have the kernel issue random, boring names to whoever needs one. 04:47:49 or it could go the other way around... other processes can have a "override names" priv 04:48:03 that way you have the option to stuff like... create a new filesystem process. 04:48:15 Well, what if someone sets up an fs privilege and someone else uses it before the real fs can kill it? 04:48:41 not sure I understand what you mean. 04:49:42 Well, we want this operating system to be airtight. 04:49:50 "secure" is pretty meaningless 04:50:38 referring to processes by number is pretty crappy of UNIX... I must say. 04:50:55 bsmntbombdood: is it? 04:51:05 if someone can set up an fs privilege then they shouldn't pass it around to someone non-trusted. 04:51:17 it has to be quantified, "secure from what?" 04:51:21 ...but UNIX doesn't focus much on processes... it puts more focus on files. 04:51:53 SevenInchBread: indeed, isn't "everything's a file" some sort of UNIX philosophy? 04:52:00 ...SOME SORT. 04:52:43 I SAY WE ADOPT A "everything reminds SevenInchBread of Smalltalk-like objects"... WHICH WE SEEM TO BE DOING QUITE WELL. 04:53:05 You know, this isn't all too different from letting processes register services that other processes can use... 04:53:11 ...actually more like IO. 04:53:28 iirc, you can access the IP stack by writing to a file in /proc 04:53:33 not too different at all... processes are pretty much services... from my experience. 04:53:48 bsmntbombdood: you can access the what? 04:53:54 ihope: the network 04:53:59 Interesting. 04:54:03 but everything as a file makes a lot of sense 04:54:13 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 SevenInchBread: how about we go with an "everything is a service" philosophy? 04:54:52 Or "everything is a file", if you want to go that route. 04:54:54 Nope 04:54:58 I shall not permit it. 04:55:02 ACTUALLY 04:55:09 everything makes sense as a file 04:55:20 we shall go with the "everything is something" phiolosophy. 04:55:20 except maybe graphics 04:55:41 Do the capital letters indicate sarcasm? 04:55:50 I'm feeling Perl-esque... and in backlash of all this "everything is " nonsense. 04:56:00 ihope, nope. 04:56:23 Ph33r the COSmunists!!!! 04:56:27 * Sukoshi goes back to Japanese studies. 04:56:39 bsmntbombdood: Don't forget to brainstorm more on ppdf.... :( 04:56:46 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 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 Sukoshi: I got nothing 04:57:19 ihope, I see system calls working as messages to services... which all have convient names attached to them. 04:57:22 bsmntbombdood: ... :( 04:57:29 kind of Smalltalk-ish... 04:57:43 ObjC! 04:57:48 :) 04:58:22 SevenInchBread: eh. 04:58:44 How about we discuss this via email? It's midnight and there seems to be school tomorrow. 04:59:02 school tommorow? 04:59:13 It's Sunday today? 04:59:15 tommorow's sunday 04:59:16 bsmntbombdood: Do you want to change the project ...? :( 04:59:36 "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 ihope, sure. 04:59:54 Rather, it's on the borderline between Sunday and Monday right now? 05:00:16 Sukoshi: That's not what I meant 05:00:21 bsmntbombdood: Oh. 05:00:35 ihope: you must live in crazy other-side-of-the-world land 05:01:07 Does crazy other-side-of-the-world land include Michigan? 05:01:18 no 05:01:31 you must be deranged, if you live in michigan 05:01:34 ...hmmm... actually fs might just receive "del" and then output something to handle like... the (one, two, buckle, my, shoe) 05:01:34 I have a feeling my clock is wrong. 05:01:46 It's midnight here... eastern time. 05:01:57 SevenInchBread: it's eastern time over there? 05:02:03 >.> Georgia? 05:02:06 Is it Sunday/Monday or Saturday/Sunday? 05:02:20 It's Saturday/Sunday 05:02:24 Sheesh. 05:02:25 ...thank god. 05:02:26 it's 0001 sunday morning in michigan 05:02:26 MENTALLY CHALLENGED PEOPLE NOT ABLE TO COMPREHEND TIMEZONE!!! 05:02:33 otherwise I'd be going back to school tomorrow. 05:03:01 i hate school SO MUCH 05:03:07 ....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 me and a freind are going to drop out and start a commune 05:03:42 ...now they just confuse the hell out of people. 05:04:13 you mean we should go back to local time? 05:04:24 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 no... just have like... one time. 05:04:39 -!- ihope has joined. 05:04:48 Stupid ChatZilla. 05:04:58 Anyway, apparently my computer thinks it's December. 05:04:59 how would that be different from the US? 05:05:03 * oerjan ducks 05:05:03 And that today 05:05:07 's Saturday. 05:05:15 Wow. 05:05:21 ihope sounds like me on summer vacation. 05:05:24 and if its daylight at 3 AM in the UK then world will not implode 05:05:30 ``Darn it, it's Tuesday? I thought it was Sunday :('' 05:05:49 Yes it will SevenInchBread. 05:05:56 * ihope adjusts his clock to April and one minute, 30 seconds forward 05:06:15 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 ...well... unless they're like... a freakish unpatriotic USA-lover person. 05:06:37 * ihope casts his vote for "US American" 05:06:54 Yeah. You can't be a patriot and like the current administration. 05:07:01 ...I like United Statesian and USAn 05:07:01 So there is in fact not any school today/tomorrow. 05:07:10 Congratulations ihope. 05:07:32 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 ihope, -nod- alrighty... HAVE A GOOD DAY. 05:08:18 Also, I think once this operating system's written, we'll look back and say "wow, that was easy". Maybe. 05:08:20 we could get a mailing list 05:08:22 to look cool 05:08:27 We could, yes. 05:08:32 I think it'll go by the way of ESOS. 05:08:33 ...or just like... a forum thing. 05:08:33 yes, i guess the bush administration may not be big on the humor part. 05:08:34 * Sukoshi ducks. 05:08:39 But mailing lists are more useful when there's more than two people. 05:08:47 Even with three we can get by easily. 05:08:58 Sukoshi, not without me pushing for it forever... this has been a serious project on my mind for some time now. 05:09:06 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 A mailing list, a forum, a chatroom, and a wiki. 05:09:24 SevenInchBread: Will this be serious? I'll join then. 05:09:26 I just thinking a mialing list would be nice so information doesn't get all fragmented. 05:09:30 and everyone knows what's going on. 05:09:33 I happen to already have #yaos registered for this. :-) 05:09:36 SevenInchBread: Only on the condition that we support some non-C language at a basic level. 05:09:46 When I see the letters ``yao'' I think ``yaoi''. 05:09:53 Sukoshi, ...probably. Since I don't know C all tha twell. 05:09:58 Should I register #aspirin and #sophia as well? 05:10:02 What's yaoi? 05:10:14 aspirin? 05:10:15 male-male hentai. 05:10:16 The genre of Boys-love in Japanese Animation. 05:10:23 Net always hentai. 05:10:24 ...or that 05:10:32 Look, don't blame the bishounen for being hawt. They just are. 05:10:36 ah. 05:10:51 oerjan: just like the Staff of Eucalyptus. 05:10:59 Eucalyptus! 05:11:02 That's a great OS name! 05:11:04 And the Eye of Tapioca. 05:11:08 with IRC... only the people around to hear you get the message. 05:11:11 Sukoshi: very. 05:11:17 with a mailing list you can be sure everyone gets the word. 05:11:25 It's something you say when you don't remember what the word actually is. 05:11:59 What do you program in SevenInchBread ? 05:12:12 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 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 ...it's an odd feeling. 05:12:44 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 ...... 05:13:20 oerjan: A spring. 05:13:41 so it'll take the sourceforge people about 1 or 2 days to reject our project. 05:13:58 Oh, you're CakeProphet. 05:14:15 googlecode doesn't require approval... but it doesn't have the public domain option. 05:14:20 Python: For Idiots and Cakeprophets. 05:14:28 Sukoshi, I'm a poly-psuedonymous being, my friend. 05:14:41 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 PSEUDO!!!! 05:14:49 Sukoshi, Yeah... despite being waaay too familiar with it... I hate it completely. 05:15:10 OERJAN, THE ENGLISH LANGUAGE IS NOT FIXED 05:15:15 THAT COULD HAVE BEEN A NEW WORD 05:15:19 ...that I made up. 05:15:27 Sukoshi: not that i can think of right now 05:15:42 bsmntbombdood: :9 05:15:42 *:( 05:16:04 Ok, does anyone here have any ideas for moderately complex practical projects? 05:16:06 only fixed in the sense "corrupt" 05:16:08 Keyword: Practical. 05:16:26 ...a MUD 05:16:31 * SevenInchBread is working on a MUD. 05:17:08 No. 05:17:17 MUDs are for NUBs. 05:17:52 ...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 ...and on a network. So basically almost nothing like an OS. 05:18:20 SevenInchBread--; 05:18:48 but there's a hierarchy of things within other things.... and some commands. so it's vaguely like a virtual filesystem. 05:19:01 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 DO NOT BELITTLE MY HOBBY 05:19:30 A MUD IS A PIECE OF ART. 05:19:35 games--; 05:19:36 .... 05:19:48 alright 05:19:51 I'll give you that 05:20:01 breakfast? i thought you were in the US... 05:20:09 but in return... you have to call befunge a board game. 05:20:45 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 Does anyone else have any practical ideas that don't involve eating the discussioners along the way? 05:29:21 ドライの手の中まで! 05:36:06 ドライ? 05:36:35 Dry. 05:36:47 So, from the middle of dry hands?!? 05:46:51 Yeahp. 05:46:58 It's a quote from a song, heh. 05:47:47 haha 05:47:57 theo de raadt is like a little kid 05:48:08 We all are when we're next to the things we love. 05:48:18 I start hopping around when I see a baloon and some magnets. 05:48:35 I like tike induce a charge in the balloon and then spin the magnets around to cause the balloon to move. 05:48:38 It's really fun. 05:49:01 *I like to 05:49:49 it's sad that licensing is such a big issue in FS 05:50:00 Oh yah, I forgot what happened about Reiser. 05:50:11 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 this book gives a very good argument for OOP 06:08:03 Yeah. It does. 06:09:49 I've see very good arguments for both OOP and no-OOP 06:10:06 OOP just shouldn't be overused 06:10:09 ...java 06:11:16 yeah... forced OOP can lead to overcomplicated designs... but used just right it can make really simple designs. 06:11:23 What about SmallTalk? 06:12:22 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 ...Python's logging module is a very good reminder of when OO can go to far. 06:14:23 it has Loggers, Handlers, LogRecords, and Formatters, 06:14:35 That's pretty much what Java is.e 06:14:37 *is. 06:14:39 ...an entire class for log format info. 06:14:49 SevenInchBread: that module's pretty bad 06:14:56 ...when it just stores a single string. 06:15:48 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 ...never forget. 06:16:47 oh wait... there's also Filters, the Manager. 06:16:52 *and 06:17:46 http://groups.google.com/group/AbraSophia/ 06:18:41 -!- calamari has joined. 06:24:12 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 necisito projectos buenos 07:37:38 'proyectos' 07:37:41 'necesito' 07:38:05 ...right 07:44:13 :) 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 Well, that's certainly one way to do it. 14:46:54 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 I was wondering if it would let me type that without distinguishing it in some way 16:57:48 but of course, it shows up styled differently anyway 16:58:08 Yeah, /me generally shows up differently. 16:59:28 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 s/$/\?/ 17:00:14 (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 ais523: well, nobody seems to have decided on an esoteric platform. 17:02:22 In the C-INTERCAL distribution there were notes about making a microprocessor that ran INTERCAL natively 17:02:29 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 ObjC looks fantastic 22:48:58 ObjC? 22:49:03 Objective C. 22:49:21 Apple's C-acting-like-smalltalk. 22:56:40 it's not apple's 22:58:40 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 23:04:29 the synchronization code is nice 23:04:48 any object can be a semaphore 23:06:45 -!- atrapado has quit ("pinj timeout"). 23:08:27 @synchronized(someobject){ code that uses someobject} 23:11:05 -!- nazgjunk has quit ("sick >.<"). 23:13:53 lament: I was under the impression that Objective C was designed by Apple ... at the very least, Apple <3 ObjC 23:14:54 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 ihope, hmmm... 23:30:32 I'm not sure I understand the difference between a service and a process. 23:32:47 in principle several processes could handle the same service, and vice versa. 23:33:27 How would that work? 23:33:48 a service is what the client sees. a process is a way of implementing various tasks, including services. 23:34:14 ah. 23:37:30 how would the service know which process to delegate the task to? 23:37:38 I've always thought of it as a one-to-one kind of mapping. 23:39:14 well in practice there may usually be a single process handling the initial connection, unless it is truly distributed. 23:39:52 -nod- that makes sense. 23:40:10 * SevenInchBread wants to do for processes what UNIX did with files. 23:41:05 everything is a ...? 23:41:28 no no... I mean... give processes a hierarchy and refer to them by name. 23:41:49 using numbers to refer to processes just doesn't sound... very useful. 23:42:08 rm -f /proc/init 23:42:11 *boom 23:42:12 named pipes exist and are slightly similar. 23:42:12 * 23:43:39 essentially processes attached to the filesystem, with reading/writing going to the process stdin/out 23:44:16 It's very secondary though. 23:45:20 In Windows parlance, a service is something like a daemon in unix. 23:48:32 it sounds like something unixes can probably already do, although they aren't optimized for it. 23:49:14 I imagine it could 23:49:33 symbolic links to /proc, maybe 23:50:12 * oerjan is not versed in the details of this. 23:50:45 it would be harder to map out processes in a directory structure based on childness. 23:52:29 for a more fundamental approach, i guess forks/execs should take a filename argument to place each process. 23:54:47 and persistence would be a natural part of this. 23:57:44 A service here is an interface provided by a process. 23:58:14 A process can register a service, then other processes can request them. 2007-04-09: 00:05:32 so it's just a name? 00:06:16 More or less. 00:07:02 !daemon omfg bf ,+++++++++++++[.,+++++++++++++] 00:07:10 omfg i 00:07:27 ....is that a service? 00:07:38 objects 00:08:30 !omfg i 00:08:38 !ps 00:08:40 5 SevenInchBread: ps 00:10:05 bf default is 16-bit, so you would be hard pressed getting either a halt or a newline out of that 00:10:35 i.e. nothing will be printed until buffer overflows, i think. 00:11:09 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 right? 00:12:49 SevenInchBread: I'm thinking letting processes offer more than one service or none at all would add a little versatility. 00:13:16 Why should every process be a service? 00:13:20 hmmm.... how would it know which service it's doing? 00:13:30 if you're just feeding it input. 00:13:33 How would it know which service it's doing? 00:13:48 A process pretty much chooses what services to provide. 00:14:01 Oh, you mean...? 00:14:22 The process is told what service has been called with what data. 00:14:24 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 Pretty simple. 00:14:37 you could have the process register streams at different addresses. 00:15:19 What's this about streams? 00:15:20 ah... that's a good idea. Except the stream part. :) I think Erlang "mailbox"-ish IO mechanisms would work nicely. 00:15:47 instead of having just stdin and stdout as interface, which i think is what is confusing here 00:16:02 aaaah... I see what you mean. 00:16:15 Why be mailboxish when you can have your processes provide procedures that can be called directly? 00:16:29 (I'm talking Pascal now for some reason, aren't I?) 00:16:46 this leads then to the conclusion that procedures should also be placed in the filesystem 00:16:48 ihope, asynchronousness. 00:16:59 but... that could be an option. 00:17:26 SevenInchBread: if you provide procedures like that, the program can handle mailboxes by itself. 00:17:31 and before long we have arbitrary objects (in a general sense) 00:17:47 oerjan: placing procedures in the filesystem? 00:17:48 I was just saying... instead of the stream of bytes... you have a queue of.... stuff. 00:18:16 the data gets partitioned... instead of jumbled alltogether in a huge chain. 00:18:39 Did I say something to the contrary? 00:18:43 given that each service should have at least one spot in the filesystem, if i understand SevenInchBread correctly 00:19:00 Services need not be invoked with plain old bits and bytes. 00:19:08 oerjan: but I haven't agreed to that. :-P 00:19:18 Putting services in the filesystem isn't a bad idea, though. 00:19:30 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 But that's a job for the filesystem handler, not for the kernel. 00:20:19 Having processes arranged in trees is... well, what's the reason behind that? 00:20:41 basically... it's an implication of giving processes names. 00:20:58 Apart from its use in rationing CPU time. 00:21:10 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 Couldn't you just put slashes in there or something? 00:22:02 slashes? 00:22:26 We can still have foo/bar/baz isn't if it's not baz inside bar inside foo. 00:22:42 well... in my examples... I just used spaces... ala-Smalltalk message-passing (which is a similar concept). 00:22:53 Your examples? 00:23:00 "fs cd" except 00:23:03 er... etc 00:24:51 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 -shrug- it could work. 00:25:22 oh 00:25:24 it is 00:25:29 What is? 00:25:38 the "cd" part is literally just a string being passed to fs 00:25:45 fs can choose to do whatever the hell it wants with it. 00:27:22 Indeed. 00:27:25 if you like your names nice and flat... making some macros wouldn't be too impossible. 00:27:39 macro set (cd, fs cd) 00:28:19 Indeed. 00:28:40 So is there really any reason to put services in a tree like that/ 00:28:41 ...or you could borrow another concept from file hierarchies and do "current processes" 00:28:58 -shrug- not really... it's not really all that necessary. 00:29:17 Indeed. 00:29:38 By the way, how's the SourceForge coming? 00:30:01 no word as of yet. 00:30:41 how about representing time? 00:30:54 it can all be done with ObjC distributed objects! 00:31:04 I notice that Google Groups does offer some storage space? 00:31:07 oh, and another benefit of microkernels is that we have no obligation to write everything in one language. 00:31:11 What about representing time? 00:31:17 Indeed, that's true. 00:31:29 the code behind fs or any other process major OS process could be any language. 00:31:59 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 ...or whatever the year is. 00:32:48 Make it 64-bit? 00:33:10 what about bignum? 00:33:14 variable length. 00:33:51 64-bit won't go bad for a while. 00:34:02 you could do like.... a base-256 numeral system... in reverse order (the smallest place values come first) 00:34:08 Though bignums aren't bad. 00:34:18 and terminate with a null. 00:34:30 so the length can be arbitarry... and you won't ever have to worry about it. 00:34:56 "(2^64) seconds = 5.84554531 * 10^11 years" 00:35:12 We won't be the ones to worry about it. 00:35:22 eh... sure 00:35:26 terminate with a null? then it would be buggy 00:35:40 not if its in reverse order. 00:35:49 sure it would 00:35:51 hmmm... well yeah 00:36:24 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 If we use 256 bits, we'll be good until all protons in the universe have decayed. 00:37:07 Time Error: Date is beyond Universe Heat Death 00:37:25 ....actually... let's go with a 230-bit integer. 00:37:34 ...just cause. 00:38:14 ... 00:38:29 how long do red dwarf stars live again, hm... 00:39:12 I sometimes wonder what the computer world would be like if we could specify the size of our bytes. 00:39:13 64 bits. 00:39:17 That'll be enough. 00:39:21 ah, 64 bit won't be enough for that then. 00:40:02 In 500,000,000,000 years, somebody'll have invented a way to translate everything up to 128 bits. 00:40:37 I doubt Abrasax/YAOS/Sophia will still be in use by then, anyway. 00:40:48 ....pretty sure the Earth or at the very least humans will be gone by that time. 00:41:08 ...good riddance, I say. 00:41:39 Pff. 00:41:55 ah, a misanthrope. or a misgean? 00:42:29 How about we stay on topic, eh? 00:42:52 We can always take this into #off-topic. 00:43:05 Now, just how will we compile our kernel? 00:44:02 ...I don't want to ride your topics. 00:44:04 oh 00:44:08 we will load it into the atmosphere of a red dwarf. 00:44:15 erm.... I don't know. I've never actually used a compiler before. 00:45:11 oerjan, kinda. I have a love-hate relationship with humanity. 00:45:28 I suggest we steal the "Multiboot example". 00:46:03 anything specific about memory management we want to do? What about paging? 00:46:14 See http://www.gnu.org/software/grub/manual/multiboot/multiboot.html#Example-OS-code 00:46:30 The kernel will probably have to handle memory management. 00:46:35 Or at least some of it. 00:46:46 It can't leave loading processes up to a process it can't load. 00:47:18 yeah yeah... one of the main jobs of the kernel is memory management. 00:47:24 no way to process-ify that. 00:48:00 I'm not that familiar with how memory works. 00:48:08 I know a little bid. 00:48:16 What do you know? 00:48:20 buddy system allocation, paging files, etc.... the usual stuff. 00:48:30 I don't know how processes work... 00:48:34 Buddy system allocation? 00:49:13 I know a little bit about processes. 00:49:29 http://en.wikipedia.org/wiki/Buddy_memory_allocation 00:49:52 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 Wouldn't that be done via system calls? 00:51:22 guess so... I've never used realloc and malloc in C. 00:51:29 but I'm assuming that's what they exist for. 00:52:39 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 We may have to find an expert. 00:53:32 paging is probably the way to go.... all the big OSes use it... so its tried and testing 00:53:34 er.. tested 00:54:33 actually... the hardware kinda handles paging for us. 00:54:46 expert? 00:54:49 who needs em 00:54:53 we just need to write the program that reacts to a page fault. 00:55:35 I think you know more than I do on the subject. 00:56:09 http://en.wikipedia.org/wiki/Paging 00:57:31 a large amount of OS performance relies on a good paging algorithm. 00:59:01 Think you can handle it? 01:00:07 .....I don't know a thing about how to do it. 01:00:13 ....I just know like... what it's supposed to do. 01:00:53 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 Indeed. 01:04:59 Think we should recruit an expert, then? 01:05:05 but... IPC doesn't mean shit if the process isn't scheduled to execute at the proper time. 01:05:11 so... scheduling will be the other thing. 01:05:22 ihope, nah.. 01:05:29 Why not? 01:05:36 to learn how to mess up. :) 01:05:36 Why do processes need to be scheduled to run at the right time? 01:06:11 Indeed, failure results in learning. 01:06:18 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 You mean multiple processes can run at the same time? 01:07:36 http://en.wikipedia.org/wiki/Process_scheduling 01:08:01 well... I mean... there's only so many processes that can be "active" at any given time. 01:08:17 Why? 01:08:25 ....forgot why. 01:08:25 Just what is being "active", now? 01:08:37 I suggest you remember, seeing as how I have doubts. 01:08:46 http://en.wikipedia.org/wiki/Process_states <--LOL MORE LINKS 01:08:59 * SevenInchBread is researching as he goes. 01:09:23 process swapping. 01:10:03 Argh, process swapping. 01:10:21 How about we leave *that* up to a process? 01:10:52 well... to a certain extent OSes do... Windows for example lets me set the process priority. 01:11:21 Indeed, failure results in learning, but aren't we aiming for success? 01:11:27 ....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 ihope, we can fail, and then correct our mistakes. 01:12:49 I'd rather succeed the first time around. :-) 01:12:59 Unless we can go faster by learning. 01:13:28 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 so... probably the best priority scheme is one based on a combination of reaction time as well as independence. 01:14:06 We could let processes switch to other processes. 01:14:16 the mouse... for example... should be highly responsive... 01:14:41 Invoke a service provided by a process, then switch to that process. 01:15:09 hmmm? 01:15:48 it's not quite that simple. 01:15:51 It's not? 01:16:04 because processes are fairly asynchronous... there is no "return value". 01:16:43 There's no return value? 01:16:49 What do you mean? 01:17:33 I mean... processes don't wait for the results of other processes... they're all running at the same time. 01:18:04 the simplest scheduling algorithm is an equal time algorithm... which ensures that each processes gets a chance to execute... 01:18:23 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 the only real reason equal-time scheduling doesn't work is because not all processes need an equal share. 01:19:38 They're not all running at the same time. 01:20:09 What's keeping us from adding a system call saying "spend the rest of this time slice on that process"? 01:20:11 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 ihope, that's just a specific situation... it doesn't solve the whole problem. 01:21:02 Couldn't the HTTP server end its time slice early? 01:22:46 nope 01:23:18 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 Blocking is something I'm going to have to understand, isn't it? 01:25:16 yeah 01:25:26 blocking is when a proccess waits for some external input 01:25:42 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 obviously, when a proccess is blocking, the scheduler shouldn't give it any proc time 01:26:00 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 then they may need different priorities. 01:26:24 SevenInchBread: so how do we know whether it's blocking or not? 01:26:39 eh... blocking is explicit. 01:26:45 only blocking system calls can block 01:27:08 Blocking can only be the result of a system call? 01:27:14 yeah 01:27:51 you could of course have a system call that did nothing but end the current time slice 01:27:54 if my program splits off a subprocess... I can explicitly say "wait for this process to return a result" 01:28:28 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 like waitpid(2)? 01:28:52 yeah 01:28:57 except.... with names. :) 01:29:02 Wait for process termination? 01:29:06 yep 01:29:09 that's a block 01:29:20 Or "wait for service to return a result"? :-) 01:29:31 SevenInchBread: names are ugly 01:29:34 either one works... 01:29:39 bsmntbombdood, ................................. 01:29:46 Where do you come up with the names? 01:29:51 SevenInchBread: single words (ints) are much nicer 01:29:54 alright then.... in Sophia the file system shall reference files by number. 01:29:59 Indeed, they're pretty convenient. 01:30:09 SevenInchBread: let's not violate WP:POINT here. 01:30:15 ... 01:30:18 YOU WIKINERD 01:30:20 Not that this would be a WP:POINT violation even if this were Wikipedia. 01:30:34 Rather, let's not use slippery slope arguments or whatever they're called. 01:31:05 ....I just can't fathom how numbers are more convient than names. 01:31:08 that's just inodes isn't it? 01:31:21 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 indeed... we have DNS because names are more convient than numbers. 01:31:37 SevenInchBread: it's easier to store a name than it is to store a number. 01:31:45 Names are for things that persist. 01:31:47 no it's not 01:31:54 Erm. 01:32:00 an int will always be one word 01:32:04 ihope, ...why is that important though? 01:32:05 s/name/number/ and vice verse. 01:32:11 s/verse/versa/ :-P 01:32:17 SevenInchBread: why is what important? 01:32:23 naturally the name would be optional, and initialized like a temporary file name if not provided 01:32:31 ints being easier to store than names. 01:32:33 (Alternatively: s/easier/harder/) 01:32:48 system calls are numbers, file descriptors are numbers, permissions are numbers... 01:32:57 Oh, names are fine. 01:33:01 pids are numbers... 01:33:02 But why have them? 01:33:05 ...in UNIX 01:33:10 yes, in unix 01:33:40 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 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 er... 01:34:14 SevenInchBread: humans are stupid 01:34:33 unfortunately. 01:34:35 It's not especially often you need to refer to a process by ID. 01:34:36 that's why we have OSes 01:34:46 to help the stupid computers work with the stupid humans. 01:35:17 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 heh... I've been referring conceptually to fs being the actual process. 01:36:15 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 If you let the processes name themselves, you end up with things like processes named "_________________________". 01:36:51 And processes named "ø". 01:37:06 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 fs is the name of the service, not the name of the process. 01:37:24 ihope, is that any more troublesome than "the process 242" 01:37:31 ihope, maybe to you. 01:37:43 SevenInchBread: well, you have to copy and paste the underscores rather than typing them by hand. 01:37:59 Can you tell how many underscores there are without doing something tedious? 01:38:13 I can copy "242" much more easily. 01:38:15 ....that's a stupid example. :P 01:38:24 My example or yours? 01:38:28 yours. 01:38:35 Why is it stupid? 01:38:49 yes indeed... someone could name their process "asfkjskdljdklgjdlkgjlkdgkldfjgkljdfg".... but then they're fucking retarded. 01:39:04 Well, there are people in the world who are fucking retarded. 01:39:05 and you probably don't want whatever that process does. 01:39:15 And that means you need to kill it. 01:39:22 pwnt. 01:39:35 ...hahahahaha 01:39:35 I'd rather type 242 than copy-and-paste that thing. 01:39:43 * SevenInchBread dies. 01:39:51 oh - that was fucking brilliant. 01:39:56 good job. 01:40:50 okay... so then you can simply have numbers AND names. like file descriptors and file names. 01:41:06 same like unix 01:41:13 a proccess's "name" is its path 01:41:17 Why have process names, again? Service names, sure, but why process names? 01:41:25 but with unix the process names aren't unique. 01:41:38 same reason we have file names. 01:41:45 the pids are, though 01:41:52 -nod- right. 01:42:06 I'm talking about a unique reference name and a unique ID number. 01:42:35 basically... a service IS a process.... a process with a name in front of it. 01:42:36 I'm thinking giving every process a name is like giving every inode or whatever you call it a name. 01:42:51 maybe not in UNIX... in UNIX the service name -creates- a new process each time it's referred to. 01:43:06 Well, yes. The services act as the names, so what reason is there to give each process another name? 01:43:10 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 Indeed. 01:44:12 not proccesses, just objects 01:44:13 hmm.... alright... 01:44:24 bsmntbombdood, NO. We are not going all fucking OO 01:44:26 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 SevenInchBread: what you describe is message passing OO 01:44:46 no matter what you try to call it 01:45:05 proccesses have private data and can be sent messages. they are objects. 01:45:11 ...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 Well, that's pretty much what a service is, really. 01:45:54 Except that you can attach multiple services to a process. 01:45:59 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 And not every process needs a service at all. 01:46:17 wtf? 01:46:21 ...I'm still not sure how that would work. 01:46:29 How what would work? 01:46:51 having multiple names for a process... each doing something different. 01:47:07 argv[0]? 01:47:16 When the service is invoked, the process is told what service it was. 01:47:21 ah. 01:48:10 Well, I should get to bed. There's school tomorrow. 01:48:17 :( 01:48:23 ...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 [And then somebody yells "Let's get going!", and "Walking On Sunshine" by Katrina and the Waves starts playing.] 01:49:57 bsmntbombdood, the weird apple-red-fruit thing was referring to the notion of identity. 01:50:07 Something is only OO if we decide to refer to it as such. 01:50:12 SevenInchBread: the process requests permission to use that service name, something grants permission, and the process registers that service name. 01:50:30 Or the process already has permission, in which case it simply registers it. 01:50:41 ihope, across multiple OS runs? 01:55:04 rebooting is for wimps 01:56:05 booting is for rewimps 02:02:34 SevenInchBread: services aren't preserved when rebooting, but permissions may be. 02:03:19 * SevenInchBread thinks they should. :( 02:03:24 See "'default' permissions". 02:03:38 SevenInchBread: well, indeed, services could be preserved when rebooting. 02:03:49 But that would mean processes being preserved when rebooting. 02:03:55 We all know that's iffy. 02:04:29 yeah that's yucky 02:07:29 "Default" permissions are stored in along with the executable, somehow, and therefore preserved when rebooting. 02:07:55 with record-based filesystems 02:07:59 that's not too hard to do 02:08:22 Record-based filesystems? 02:08:38 yeah... instead of storing files as streams you store them as hash-table-like things 02:08:53 that makes no sense 02:09:05 ...what? 02:11:06 ...I like the idea. 02:11:15 What's this about hash tables? 02:11:30 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 So the filesystem handler does all the parsing instead of the client? 02:13:01 eh... sorta kinda.... depends on how its stored on the disc 02:13:05 but, essentially, yes. 02:13:17 Depends on how it's stored on the disk? 02:13:44 yeah... instead of using bytes to delimit record entries you can use some physical property of the disk sector or something... 02:13:56 but, generally speaking, the filesystem does all the work for you. 02:14:49 We could always have a "hash table handler". 02:15:10 http://en.wikipedia.org/wiki/Record-oriented_file 02:15:48 there's also sequantial access... which works something like a linked list instead of a hash table 02:16:07 so... data that's split up into lines could give each line a record. 02:16:45 Time for me to go to bed. 02:16:51 'Night. 02:19:38 'Ook 02:36:15 -!- ihope has quit (Connection timed out). 03:03:03 Mmkay. . . 03:03:20 I friggin' hate glibc. 03:03:29 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 configure: error: cannot find install-sh or install.sh in scripts /scripts 03:11:12 that's why you don't try to compile glibc 03:16:42 I'm making a distro. What else am I supposed to do? 03:16:51 . . . Use uclibc? 03:17:16 Actually, that's a pretty decent thought. 03:20:58 Maybe make this sucker use really, *really* small packages. 03:22:29 use "make the lazy bastards code it themselves"libc 03:22:40 Hahah. 03:25:43 Screw it. 03:25:59 I'm using buildroot to create the initial root tree. . . 03:26:25 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 bsmntbombdood: Hey! 08:33:42 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 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 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 Yarr! 21:12:36 I be an IRC pirate! 21:15:44 -!- ihope_ has joined. 21:15:58 Yarr! 21:16:04 I be a disconnected IRC pirate! 21:16:53 Heh 21:21:22 Anyway, I half-officially declare the name of "the operating system project" to be Abrasax, 21:21:25 s/,/./ 21:21:45 We could have trademark issues with Sophia. 21:22:05 And the half-official IRC channel is #abrasax. 21:23:22 Whassisnow? 21:25:19 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 It's an operating system project, 21:26:35 s/,/./ 21:26:42 Esoteric? 21:26:45 Nope. 21:33:04 -!- ihope has quit (Read error: 110 (Connection timed out)). 21:51:51 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 Sukoshi: sounds fun 22:35:59 Sukoshi: I don't know much about CAs though 22:36:48 Wow. A lot happened on March 26, according to the logs. 22:37:30 I blame Pez. 22:39:30 Hmm... 22:39:35 A 16KB stack, eh? 22:40:08 I love how Google can do things like "0x4000 bytes in kilobytes" 22:41:00 me too 22:42:18 "# define EXT_C(sym) _ ## sym" 22:42:20 google will end up as a natural language interpreter 22:42:25 :-) 22:42:33 Does that _ ## mean anything special to the preprocessor? 22:42:40 yeah 22:42:55 What's it mean? 22:43:12 ## is either concatenation or turning into a string 22:43:37 What's it do in this case? 22:44:00 one sec 22:44:13 ## is concatenation 22:44:24 so EXT_C(foo) => _foo 22:45:15 * ihope_ nods 22:45:20 So what's "movl $(stack + STACK_SIZE), %esp" do? 22:47:18 I'm guessing it puts the address of the top of the stack in esp 22:47:39 but i'm just guessing 22:55:50 variadic cpp macros are fun 23:06:57 -!- nazgjunk has quit ("Bi-la Kaifa"). 23:07:39 -!- oerjan has joined. 23:19:48 Gah. I'm finding ObjC less and less attractive. 23:20:08 ah, the end of initial infatuation 23:20:29 Well, I had thought that ObjC was a simple object layer wrapped around C. 23:20:45 The dynamic runtime stuff is interesting ... but it's said to be slow. 23:21:17 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 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 Isn't GregorR our resident parser god anyways? 23:25:02 Sukoshi: I did 23:25:21 bsmntbombdood: Did what? 23:25:24 I mean, the beginnings of one 23:25:42 A generic function based OOP extension to C 23:25:51 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 C has dirty corners in its parsing. 23:26:46 Well, this would parse it into straight C. 23:26:49 And compile that. 23:27:06 not context-free. 23:27:12 Nope. 23:27:40 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 parsing :/ 23:30:41 Well, here's how I see it: 23:31:01 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 (So you have something like ``object hi { int a; char b; } '' 23:31:31 ) 23:32:59 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 *function pointer to display() 23:33:41 .... We don't need a parser for this ... do we? 23:34:06 Oh but we have to grab the method signature somehow. 23:34:07 s/object/struct 23:34:10 that's your parser! 23:34:33 Well, when you use call_generic(display), it'll have to lookup display. 23:34:45 that is practically the same algorithm as objc message passing 23:35:01 But it avoids the annoying dynamic runtime of ObjC. 23:35:18 And based on the parameters you give call_generic, it needs to be able to match the correct function. 23:35:24 I need to pull up my C reference, hold on. 23:36:16 call_generic() is the same as objc_msgSend() 23:37:17 But the difference in ObjC is the whole business with id. 23:37:46 well...dynamic typing is nice 23:37:56 But it's *slow*. 23:38:07 and running through a linked list to find a method doesn't seem very slow 23:38:19 It is, almost all the spare links on ObjC say so. 23:38:38 They all advise keeping method invocations to a minimum because it slows the program down. 23:38:58 think about it [obj message] -- obj->isa, hash table lookup, obj->isa->super, hash table lookup, obj->isa->super->super... 23:39:01 not very slow 23:39:14 That's what the weblinkse I've read say *shrug*. 23:39:18 *weblinks 23:41:52 all a method invocation needs to do is a lookup in a hash table 23:42:04 maybe a few hash tables if the inheritance is deep 23:42:42 There's more to it. 23:43:06 The ObjC runtime doesen't type check at compile time for message passing, in case you want to change stuff later. 23:43:19 Which is part of what leads to the slowdown. 23:44:59 so? 23:45:07 It's slow :( 23:45:47 looking up a method in objc is the same as looking up a variable in a interpreted language 23:46:49 Exactly. 23:47:01 I'm looking for something just a tad bit slower than C. 23:47:10 I don't think it is very slow 23:47:14 java is going to be slower 23:47:18 Google begs to differ. 23:47:24 Google says that Java is faster. 23:47:39 that's counter intuitive 23:47:47 Java is by no means slow if programmed correctly, you know. 23:47:55 And the sheer amount of work done on the runtime is incredible. 23:48:10 I think JVM, SqueakVM, and ParrotVM are the most worked on in this respect. 23:48:22 more work than the objc runtime 23:48:24 hence slower 23:48:33 Nope. 23:48:42 The Java runtime has been optimized incredibly. 23:48:48 this is stupid 23:49:13 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 objc is older than java 23:49:36 But it hasn't been continually developed is the problem. 23:49:57 Same with C++. 23:50:10 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 Any people willing to help with the parser? 00:21:36 yacc is 00:21:46 But yacc isn't a person :P 00:23:07 o speed the messaging process, the runtime system caches the selectors and addresses of methods as they are used 00:23:40 so searching through the superclasses only happens once 00:24:02 I guess we should write sample code before we judge. 00:26:45 I want to see the definition of objc_object 00:26:47 OSKit, eh? 00:27:37 -!- atrapado has quit (Read error: 110 (Connection timed out)). 00:30:40 objc_class too 00:34:49 OSKit? 00:35:36 OSKit sounds like a useful thing. 00:35:47 A very useful thing. 00:36:11 i can't find the "objc" include directory 00:41:16 http://svn.gna.org/viewcvs/gnustep/libs/libobjc/trunk/objc/ 00:42:43 looks pretty simple 00:52:39 -!- EgoBot has quit (K-lined). 00:52:40 -!- GregorR has quit (K-lined). 00:54:03 gnustep is _huge_ 00:54:15 ...Uh, did GregorR just get K-lined? 00:54:21 O.o 00:54:36 Yeah it is bsmntbombdood. 00:54:48 Hard to find what you're looking for 00:55:11 That's one of my problems. ObjC has almost no development going in it. 00:55:24 maybe it's perfect already 00:57:58 i'm looking for objc_msgSend 01:03:53 -!- calamari has quit ("Leaving"). 01:13:23 it would be nice if instance variables were dynamic like messages are 01:18:25 Huh? 01:19:24 You can't access instance variables if the object is typed id 01:19:26 http://svn.gna.org/viewcvs/gnustep/libs/libobjc/trunk/sendmsg.c?rev=22341&view=auto 01:19:36 ^^ there's the good stuff 01:20:47 Well that's because it's a class object then. 01:26:04 that's odd 01:26:25 I think the message sending function looks up the method from a linked list of methods 01:26:28 not a hash table 01:26:32 ie linear time 01:27:53 but it seems classes keep both 01:28:11 I would hope so, because you can make a tree based on parameters. 01:28:19 what? 01:29:10 Wait. Nevermind. I was thinking of the system I had in mind. 01:29:36 objc_class has both a objc_method_list*, a aaray, and a sarray*, a hash table/sparse array 01:29:39 both holding methods 01:30:29 named methods and dtable, respectively 01:30:52 So, are we using libobjc from GCC or GNUStep ? 01:31:00 Errr, I mean. 01:31:14 Are we using Foundation from GNUStep or just subclassing from libobjc? 01:31:37 you mean NSObject or Object? 01:31:47 Yeah. 01:31:53 NSObject 01:32:48 Alright. 01:32:53 Are we going to use Foundation stuff? 01:33:12 I don't see any reason not to 01:33:46 Alright. 01:33:56 Now. Cellular Automata VM? 01:34:08 Dunno how that would work 01:35:07 i assume you mean Virtual Machine rather than Virtual Memory? 01:36:02 yeah 01:40:19 Yeah. 01:40:44 We'd have to create a set of assembler commands that can define cellular automata. 01:41:08 Weirdos. 01:41:11 * oerjan ponders adding extra time dimensions to ALPACA. 01:41:31 I don't think cellular automata are imperative. 01:41:43 indeed not 01:42:15 Just build a universal constructor and have the program be instructions to it. 01:42:18 (and space dimensions too, of course) 01:43:20 * oerjan envisions an ALPACA bytecode would do. 01:43:50 ALPACA? 01:44:04 the cellular automaton description language 01:44:13 Link please. 01:44:24 http://esoteric.voxelperfect.net/wiki/ALPACA 01:44:55 Wait. Is this a practical project? :P 01:45:12 ALPACA has already been implemented. 01:45:13 Once "Game of Life" hardware becomes common, you'll really want that constructor stuff. 01:45:22 (And "once" is just my fancy way of saying "if".) 01:45:28 ;P 01:45:38 i guess it could be a practical project. 01:45:52 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 I wonder what the best way to implement a sparse array is 01:49:22 -!- calamari has joined. 01:49:26 I suppose an ordered binary tree would work 01:51:39 that's O(log n) best, O(n) worst though 01:52:39 insert "balanced" at appropriate spot. 01:52:59 then remove "O(n) worst". 01:53:06 O(n) if the objects are inserted in sorted order 01:53:55 -!- ShadowHntr has joined. 01:54:08 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 what's that? 01:55:19 Hmm, suddenly idea. 01:55:30 making the tree balanced immediately. 01:55:45 (I saw the accidental "ly" before I sent that, but I decided to leave it in.) 01:55:58 Of course, it's about Abrasax, not this, so... yah. 01:56:09 oerjan: how... 01:58:09 and O(log n) still isn't good 01:58:42 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 if you are going to worry about log n, then you need to read serious literature, not ask on IRC. :) 02:03:48 unless you find a channel with the real experts. 02:04:48 chances are at that level you need to worry about things like cache behavior. 02:05:00 -!- graue has joined. 02:05:16 Hello, graue? 02:05:19 s/?/!/ 02:05:23 Hello. 02:05:30 Did you hear about GregorR getting K-lined? 02:05:31 oh, i wondered why you were incredulous 02:05:33 no 02:05:46 What's this about incredulity? 02:06:03 ? 02:06:32 Rather: 02:06:36 graue: what's this about incredulity? 02:06:50 since you said hello with a question mark, i thought you were like "what?! GRAUE is here?! how can this be!!!" 02:07:01 Gregor got K-lined?1? 02:07:06 also, i need to learn to use my irc client, because i just answered you in a different channel 02:07:13 Ave Graue, Morituri Te Salutant! 02:07:21 or something like that 02:07:24 * EgoBot has quit (K-lined) 02:07:24 * GregorR has quit (K-lined) 02:07:40 why'd that happen? 02:07:47 Apparently it was for spamming. 02:08:10 spamming who 02:08:21 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 02:08:38 No idea. 02:08:46 i bet it was code. 02:09:05 Ah, indeed, an EgoBot bug may cause spamming. 02:09:13 damn 02:09:18 that's a lot better guess 02:09:28 Rather, may have caused. 02:10:36 hmm 02:10:56 "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 What's this, now? 02:11:49 I asked a staffer 02:12:12 Apparently you got a better answer than I did. 02:12:29 but there were no disconnections before the k-line. 02:13:16 Indeed there weren't. 02:13:32 That'd be join/part stuff, then, which EgoBot doesn't do. 02:13:46 you guys have too much free time. 02:13:58 freenode people aren't arbitrary 02:14:04 i'm sure gregor can work it out with them 02:14:18 Well, the freenode person did say "usually". 02:14:28 Would the freenode people not being arbitrary mean it wasn't bot spam that caused this? 02:14:39 no 02:15:27 actually, freenode staff are pretty arbitrary 02:16:24 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 my bot isn't in any channels that staff are in 02:16:54 ihope_: Not been reported for spamming. 02:17:03 bsmntbombdood: Nor was EgoBot. 02:17:13 hmm 02:17:21 ~exec while 1: __import__("time").sleep(2); self.raw("PRIVMSG ihope_ :Ya!") 02:17:40 ~ps 02:17:41 0: 'while 1: __import__("time").sleep(2); self.raw("PRIVMSG ihope_ :Ya!")', 18.34 seconds 02:17:45 ~kill 0 02:17:46 haha you fail 02:17:52 Tell me how to kill it, will you? 02:17:58 ~kill 0 02:18:03 Pff. 02:18:07 it was actually sending you messages? 02:18:10 Yes. 02:18:11 hmm 02:18:17 someone must have identified it 02:18:29 I have UNFILTERED set. 02:18:32 oh 02:18:48 ~raw privmsg bsmntbombdood :foo 02:19:13 ~exec while 1: __import__("time").sleep(2); self.raw("PRIVMSG ihope_ :Ya!") 02:19:27 :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 ~kill 0 02:19:46 Yeah, I'm thinking it's definitely the UNFILTERED. 02:19:51 yeah 02:25:35 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 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 (man ncurses) 03:40:19 We should design an esolang for human-human communication 03:40:27 english is so overrated 03:41:45 oh right, there's english as lisp 03:43:03 bsmntbombdood: Lojban. 03:43:03 -!- Pikhq has quit (Read error: 60 (Operation timed out)). 03:43:11 (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 I've been banned O_O 08:41:21 from wot? 08:41:53 FreeNode 08:42:21 bugger. why? 08:43:23 Idonno ... apparently spamming. I looked through all the logs for bots-gone-crazy, and there are none, so what the bork :( 08:43:36 All my logs suggest that I was not spamming. 08:43:47 Nor was a hacked version of me spamming. 08:43:59 hmm... what line did you get put onto? z-line? g-line? 08:44:45 if it was from more than a fortnight before you got the ban, someone hates you 08:44:45 K-line 08:44:50 and you should shoot them 08:44:58 K-line = how long? 08:45:05 Idonno, it doesn't say. 08:45:47 k-line==g-line 08:46:02 did you ever get z-lined before that? 08:46:28 I've never been anything-lined. 08:46:36 k 08:47:03 it'd be really funny if i got o-lined 08:49:08 actually: z-line = ip-block, g-line = ban-on-login 08:49:15 dunno about a straight k-line 08:49:29 * GregorR-Foo bashes his head into the wall. 08:49:34 Why have I been K-lined >_< 08:50:45 who k-lined you? 08:51:07 i think GregorR-Wtf would be more appropriate 08:51:46 I don't know, that's what's so confusing - none of my logs have the actual K-line. 08:51:59 Just "disconnection", then upon reconnecting it says I'm K-lined. 08:52:13 bugger 08:52:30 i would advise a raw-log for next time something stupid happens 08:52:49 And that would help ... how? 08:53:42 you can catch everything that's catchable 08:54:11 I doubt highly that the small area of messages that that would catch that I don't currently catch would help. 08:54:35 you could catch an ERROR message 08:54:51 perhaps: ERROR :You have been K-Lined by renfield 08:55:17 (i picked renfield cos he's the worst ircop on bluehell) 08:56:11 I sent an email to staff@... 08:56:26 The response will probably be: "Idonno, we don't log it. You'll be allowed to connect in seven years." 08:56:36 wtf 08:56:38 they should 08:56:52 otherwise they should jack hyperion up the ass and switch to unreal 08:56:53 I'm just being pessimistic :P 08:57:33 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 so you got it sorted? 10:41:48 -!- meatmanek has quit (Connection timed out). 11:00:00 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 GregorR: I asked a staff they said it was probably spamming/client problems 18:28:39 bsmntbombdood: I also asked a staff (shocker) 18:30:33 wow! 18:31:03 you're one smart guy 18:32:33 :P 18:34:07 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 GregorR: Ya here? 21:45:30 I am now. 21:45:36 Not for long. 21:46:03 Did you see my ideas for an OO extension to C? 21:46:34 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 Ah. 21:47:17 A usefull OO extention to C? 21:47:20 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 It adds 4 keywords to the language, ``generic'', ``specific'', ``class'', and ``continues''. 21:48:06 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 ``generic'' defines a function generic ( generic void display(a, b); ) 21:48:54 ``specific'' specialized on the generic ( specific void display (int a, char b); specific void display (int a, int b); ) 21:49:19 ``class'' declares a class in struct form ( class Player { int xpos, ypos; } ) 21:49:48 ``continues'' designates that the specialized generic function calls the next-less-specific specialized method for the generic it is assosciated too. 21:49:50 *to 21:50:08 Very simple, and not very hard to implement, if only I knew the GCC parser-foo. 21:50:53 So is there a purpose other than just trying to create it? we already have c++ :P 21:51:02 .......... 21:51:07 Do you know what you're talking about? 21:51:10 yes 21:51:27 C++ follows an incredibly different object model, is very unclean, and favors its own big/bulky style. 21:51:46 I don't find it that way, I think it's damn sexy. 21:52:25 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 And the C++ object model is message passing, so it has to have all this annoying stuff like polymorphism/operator overloading. 21:53:16 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 Sukoshi: how do you implement it? 23:05:00 -!- nazgjunk has left (?). 23:17:39 bsmntbombdood: Not all that difficult. 23:19:18 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 Oh, I think we need an ``inherits'' keyword too, to subclass. 23:20:28 Subclassing basically copies the fields of the super-class's struct directly into the derived class. 23:20:40 so with a generic call, the compiler looks up the correct method based on the objects' type? 23:20:48 Yup. 23:21:16 The runtime has to be able to keep type information. 23:21:23 it does? 23:21:29 Well, actually no it doesen't. 23:21:52 We can parse it so that arguments to generics are wrapped in structs that contain type information. 23:22:16 defining a method uses some kind of name mangling, then at compile time method(object) is replaced with _method(object) 23:23:13 not always possible to do at compile time 23:23:33 why not? 23:23:55 because the actual object might be of a subclass. 23:24:35 doesn't matter 23:25:05 if you type an object as one of its superclasses, you can only call methods defined in its superclass 23:25:38 sure, but the actual version of the method may be overridden by the subclass. 23:27:12 oh 23:28:21 ? 23:28:57 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 what's the point of inheritance then? 23:30:10 however, the specialization depends on the actual runtime class, not the compile time class. 23:31:32 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 Inheritance only pulls in fields of the parent struct. 23:35:48 Yes, that it does oerjan. 23:36:43 Well there's no point if it requires runtime support 23:38:11 Unless we restrict it away from runtime changing classes. 23:38:21 So your classes can't be dynamic. 23:38:36 What do you mean dynamic? 23:38:50 Specifying classes during runtime == dynamic. 23:39:19 I thought the point was to have classes be static 23:39:32 Then it should be fine still. 23:40:09 wait a minute. do you mean that a subclass object cannot be passed as an object of the superclass? 23:40:48 What's the point? 23:40:49 it can, but the superclass method will be called 23:40:55 Exactly. 23:41:01 Haven't you played with CLOS, oerjan ? 23:41:06 nope. 23:41:10 Aha. That's why. 23:41:24 but common lisp is dynamically typed... 23:41:28 Quick overview of a generic method system. 23:41:49 Classes only hold slots, basically struct fields. 23:42:16 Generic functions are defined that only define the number of arguments (and in this case the return type) of a function. 23:43:10 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 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 all of this makes perfect sense with dynamical typing, but not with static typing. 23:44:09 But why wouldn't it work with static typing? 23:45:10 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 Probably. 23:45:56 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 This creates that framework with a minimum of overhead and a minimum of language extension. 23:46:34 because with dynamical typing, you can pass a subclass object and treating it like an overridden superclass object. 23:47:20 so common lisp _behaves_ as if subclasses can override, although technically they don't. 23:48:12 (at least that is my guess from your description) 23:49:00 Exactly. 23:49:00 That's the beauty of the system. 23:49:11 but that wouldn't work in C 23:49:40 indeed, not without passing around some of the same information at runtime that CL needs. 23:50:14 The overlap of the generalized-method framework simulates operator overloading and polymorphism. 23:50:14 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 Which things? I'll be wrapping my head around magnetization vectors while y'all talk. 23:54:33 essentially runtime type information. since this is multiple dispatch, the class struct doesn't contain enough information. 23:55:37 *information = tag 23:55:41 *s 2007-04-11: 00:04:55 Well, we can wrap the extra info needed, no? 00:05:07 sure. 00:05:40 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 That was the plan. 00:37:47 but that's runtime 00:41:17 bsmnt^bomb 00:41:26 dood=bsmnt^bomb 00:41:28 Not neccessarily. 00:41:28 :D 00:41:34 It's parse time. 00:42:21 But they can easily be hardcoded into the source. 00:42:33 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 seems unlikely 00:43:02 not presently 00:43:25 lots of people used pascal. They're all dead now. 00:43:30 :P 00:43:38 eh, i am not dead. 00:43:40 No, I didn't understand. 00:43:45 oerjan: *bang* 00:44:04 Cap guns don't hurt, lament. 00:44:17 you think? 00:45:51 The sound-cap guns, I mean. 00:46:10 you think? 00:46:23 * lament brings in the 500W amplifier 00:46:46 How is Pascal compared to C, oerjan ? 00:47:22 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 If I understand what you mean, then no, this will not have that feature. 00:48:46 Methods can *only* be executed linearly up the specific tree. No cast-avoiding. 00:49:19 http://www.codu.org/plof/ :-P 00:49:49 [/shameless plug] 00:49:51 so in other words, in your model the class is an attribute of the variable, not of the object. 00:50:09 Correct. 00:50:18 The concept ``class'' is just a container. 00:50:32 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 GregorR: has anybody said anything about the K-line? 01:32:56 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 What was it for, exactly? 01:33:28 Did EgoBot go insane? 01:33:35 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 Do I have to change my emphasis a bit? 01:33:53 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 Read: He didn't know why I was K-lined. 01:34:08 I see. 01:34:16 The person who K-lined you, you mean? 01:34:29 I haven't talked to the person who K-lined me. 01:34:53 Do you know who that person is? 01:35:00 No. 01:40:18 i love the way you define classes in plof 01:41:05 You mean prototypes :P 01:41:18 yah 01:41:28 You mean objects. :p 01:41:44 hey, gregorr is the boss around here OK? 01:41:50 when talking about plof 01:42:29 * ihope summons CakeProphet 01:42:31 Pikhq: "Prototype" is a term which specifies a class of objects, so my terminology was perfectly accurate :P 01:42:44 ...Darn. 01:42:50 var cow = [ age = 3, speak = { print("Moo"); }, shoot = { printf("MOOOOO! *splats*"); } ]; 01:42:58 cow.speak(); cow.shoot(); 01:43:07 afk, brb 01:43:12 bbq? 01:43:25 Heh 01:44:15 GregorR: I see. 01:44:42 var Bessy = new(cow); 01:44:58 Bessy.stfu(roflcopter); 01:45:43 Bessy.age = 5;Bessy.speak = { print("Mooooo!") };Bessy.shoot = { print("I'm a milk cow");return(1); }; 01:46:21 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 Colons are nice. 01:47:07 Semicolons are also nice, as are dashes. 01:47:14 GregorR: I'm obviously used to Plof 1. ;) 01:47:19 Dashes are wonderful. Commas are annoying. 01:47:29 Plof supports a , operator :P 01:49:20 Does it form tuples? 01:49:45 I don't think a tuple is even a datatype in Plof. 01:49:55 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 back 01:50:33 The ',' operator does exactly the same thing as the ';' operator, but at a lower precedence. 01:50:58 higher, don't you mean? 01:51:42 I always forget which term is used to mean it falls lower on the tree :P 01:52:14 Interesting. 01:52:36 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 PAAAAAAAANSIEEEEEEEEEE 02:01:18 GregorR: I'm redoing the Slackware package manager. . . That enough work for you? 02:01:48 Pffffffffffff ;) 02:02:05 I'm going to see exactly how many branches UnionFS can handle. . . 02:05:06 -!- SevenInchBread has joined. 02:05:07 Because my packaging system resembles Slax, I'll try to see what use I can put some of their scripts to. . . 02:05:38 i have a seven inch bread 02:05:46 Bow chicka bow wow. 02:06:54 :) 02:07:12 . . . Fine, I must confess. . . 02:07:23 I'm just using Slax modules, except more. . . Modular. 02:07:28 21:05:21? 02:07:32 + SLS? 02:07:37 SLS? 02:07:40 And 20:42:43.. 02:07:43 Errm 02:07:51 I forgot my own package's name X-P 02:07:52 SPS 02:07:59 SLS = Softlanding Linux System X-P 02:08:06 I'll use that later on. 02:08:27 That's one hour minus 37 minutes minus 22 seconds, or 22 minutes and 34 seconds. 02:08:37 ihope, HI 02:08:38 So that was a 22-minute-and-34-second summons. 02:08:45 SevenInchBread: HELLO 02:08:53 ANYTHING FOR EXECUTABLE FORMAT YET. 02:08:56 so far the only thoughts 02:09:03 GregorR: Would SPS happen to work well with the concept of each package just getting unified with /? 02:09:04 I've gotten are "format version - machine architecture" 02:09:07 SevenInchBread: Try ELF. 02:09:12 ihope: When summoning, always remember to sacrifice the chicken. 02:09:17 a.out? :) 02:09:23 Pikhq: Not really, since the whole idea is it's different per user/environment. 02:09:30 ELF using a certain interrupt for system calls? 02:09:34 oerjan: ah, right, forgot that. 02:09:35 Pikhq: Maybe if that was done by a user-configurable FUSE FS. 02:10:00 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 GregorR: Well, I *could* use the FUSE versions of UnionFS. . . 02:10:16 SevenInchBread: Actually, I don't think ELF specifies system calls. 02:10:27 It just specifies the actual *format*. ;) 02:10:31 oh yah 02:10:39 SevenInchBread: can I call you Sev since my tab completion isn't working? 02:10:40 cool then. ELF WE SHALL USE 02:10:45 ....sure 02:10:46 ELF WE SHALL USE? 02:10:49 Sounds good. 02:10:54 And interrupts for system calls? 02:10:57 suuure 02:11:01 oh like 02:11:02 how? 02:11:04 or... 02:11:29 To do a system call, put certain stuff in certain registers, then do the instruction "int". 02:11:30 GregorR: Hmm. I need to see some details on the SPS internals. . . 02:11:34 hmmm... so... is it possible to define a bunch of "hooks" that we can use all throughout the operating system? 02:11:35 Except we need an interrupt number. 02:11:43 Sev: to do whatnow? 02:11:46 ...I know static languages are kind of weird with stuff like that... 02:11:58 SevenInchBread: That would be called 'system calls'. 02:12:05 basically a list of programs (I'm assuming executables or possibly processes...) to summon up in a certain situation. 02:12:19 ...it is? 02:12:24 Programs to summon up in a certain situation? 02:12:26 What do you mean? 02:12:41 Presumably you mean. . . functions? 02:13:36 Interactions with the kernel are pretty much done via system calls. 02:13:41 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 Sev: that would be handled by the keyboard handler process. 02:14:13 but... is there any quick way to add onto that? 02:15:03 I see that these two are busy reinventing UNIX poorly. . . 02:15:04 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 That's us. 02:15:21 The poor UNIX reinventors. 02:16:03 I'm doing this out of laziness. 02:16:17 Boredom, you mean? 02:16:21 ah... okay. 02:16:31 Maybe that too. 02:16:37 * SevenInchBread wanted nifty hooks... so he could slap random programs onto basic operations. 02:16:43 It'll make me feel proud of myself. 02:17:03 Sev: don't sacrifice simplicity for niftiness. 02:17:31 >.> it wouldn't that complicated. I've done something similar on countless other projects... and it works wonderfully. 02:17:33 SevenInchBread: I see that you want a microkernel design. 02:17:35 Try Minix. 02:18:06 ....a bit easier in something like Python though.... since it's not an... OS. 02:18:17 and that whole dynamic typing thing is nice. 02:19:09 If it's not for the kernel, use whatever you want. 02:19:28 -.- thanks.... 02:19:31 Indeed. 02:19:43 I can be SO USEFUL! 02:20:55 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 That's why we want the kernel to be small. 02:22:24 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 Step one: write the kernel. Step two: write the compiler. Step three: write the programs. 02:23:05 Well, getting the binary and it working is naturally an ideal. 02:23:21 I'm thinking it shouldn't be hard. 02:23:30 Just make sure the programs are compatible with the services. 02:23:38 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 apt-get ftw. 02:24:50 ...sounds like we're making a good UNIX clone. -.- 02:24:57 ...or just a bad one. 02:25:20 Well, if we implement Linux binary support, Linux binaries will be supported. 02:25:25 ...obviously. 02:27:20 * SevenInchBread doesn't know anything about this part. 02:27:55 Just have the kernel support Linux-style system calls as well. 02:28:15 You don't need to actually implement them. 02:29:09 * Pikhq will have cp as the package manager. . . >:D 02:29:45 Pikhq: "copy"? 02:30:23 Yeah. 02:30:48 Just copy the package into /pkgs and the filesystem takes care of the rest. 02:31:07 Interesting. 02:31:19 PLEASE JOIN OUR OS PROJECT! I mean, hi. 02:31:27 Join the Hurd. 02:31:34 nope 02:31:35 They could use some fresh blood. 02:31:42 we're too cool for that. 02:31:48 * SevenInchBread is a zen anarchist. 02:32:11 Also, 0672304759 looks really cool. 02:32:17 .......what 02:32:23 But you don't want to be part of an arcane sacrificial rite? 02:32:24 0672304759. 02:32:43 ........what? 02:32:56 FINE 02:32:57 I HATE YOU ALL 02:33:00 Google it. 02:33:04 I'M FORKING OFF AND MAKING MY OWN DAMN OS 02:33:15 * SevenInchBread slams the door on his way out. 02:33:21 I thought that was exactly what we were doing. :-P 02:34:06 even better that I'm doing it twice. 02:34:17 ....the Hurd does sound nifty though... even though I've never seen. 02:34:20 it 02:34:32 * SevenInchBread shall implement many a steganographic filesystem in it. 02:37:23 The Hurd's got a nifty design, but not much coding impetus. 02:38:18 >.> sounds like... a lot of OSes :) 02:38:50 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 ihope, we could always use somebody elses microkernel. 02:41:27 ...I know -I- don't want to write a microkernel. 02:41:27 That's very true. 02:41:49 Preferably a public domain one, since being public domain is part of Abrasax philosophy... isn't it? 02:42:43 ....yes. 02:44:12 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)). 02:44:47 Hmm, a Google search for 'public domain microkernel' turns up nothing obvious. That means we get to claim it. 02:47:27 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 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 Those seem to be the big viral clauses of the GPL. 02:48:37 so... if we like... use parts of the program we can take off the licence? 02:49:06 SevenInchBread: No, what the GPL is stating is that you specifically *can't* do that. 02:49:11 If you use part of something that's GPL'd in something else, that something else is GPL'd. 02:49:17 Must be, rather. 02:49:29 With that, I'm out for bed. Isn't the Google Groups thing wonderful? ;-) 02:49:57 well.... that sucks. 02:53:28 That's the whole *point* of the license. . . 02:54:42 to.... proliferate the licence? 02:54:44 http://www.gnu.org/philosophy/pragmatic.html For a description of the copyleft mechanism used within the GNU GPL. 02:55:16 pfft... that's not much better than a copyright. 02:55:29 Read the linked text. 02:55:44 At least realise the purposes behind the GPL before criticising it. 02:55:46 My licence of choice has always been http://allritesreserved.com/ - mainly because it's legally ambiguous 02:56:57 http://www.gnu.org/philosophy/why-copyleft.html is a shorter description. . . 02:58:43 why not public domain though? 02:59:15 there has to be a better way to make something virally free than by simply making everything virally GPL. 03:00:07 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 The GPL is the model of making something guaranteed free. . . 03:01:20 ...isn't that sort of the definition of "free" though? 03:01:43 The "freedom to enslave" is not generally regarded as a freedom. 03:02:17 (except in the southern US. :p) 03:02:45 -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 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 the only way I think a proprietary rip-off of free software could ever become popular is through sheer advertising muscle. 03:05:29 as long as everyone is aware of both alternatives... the choice would be obvious. 03:05:45 Allow me to introduce you to a couple of these rip-offs. . . 03:05:52 Microsoft Windows and Mac OS X. 03:06:20 Both have copied code from BSD (Windows has a BSD networking stack, among other things, and OS X *is* a BSD). 03:07:20 -nod- so then I'm correct. 03:08:19 -!- ihope has quit (Read error: 110 (Connection timed out)). 03:08:22 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 ...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 the mere existance of free software is devestating to "the enemy". 03:11:22 *cough* Um, yeah. . . That's exactly what Microsoft is making a rather signifigant effort to do. 03:11:42 hmmm? 03:11:53 And it's devastating for another reason than just profit. . . 03:12:05 The free software movement strives to encourage the use of free software. 03:12:23 Helping nonfree software is detrimental to this. . . 03:12:42 it also, however, no longer makes your software totally free. 03:12:52 Really? 03:12:58 Which right does it remove? 03:13:03 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 the right to have free access to the software.... 03:13:31 with a pointed lack of adjectives there. 03:13:46 not "the right to have free access to this software to do free stuff with it" 03:13:46 The freedom to run the program, for any purpose (freedom 0). 03:14:02 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 The freedom to redistribute copies so you can help your neighbor (freedom 2). 03:14:28 ....there's a list of freedoms? 03:14:31 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 yes, in the preambl 03:14:37 http://www.gnu.org/philosophy/free-sw.html 03:14:49 heh, the only enumerable quantity is rules. 03:15:07 there's "the freedom"... and then there's a list of rules. You can't list out freedoms. 03:15:07 Is there seriously a licensing battle going on in here? X_X 03:15:11 * GregorR stabs everyone. 03:15:14 GregorR: Yes. 03:15:29 EMACS IS SUPERIOR TO VIM 03:15:32 lol 03:15:44 I use OpenOffice for all my programming. 03:15:47 Actually, as an Emacsite, I must inform you that Vim usage is not a sin. 03:15:54 It is, after all, free software. 03:16:00 ...I think they both suck 03:16:00 * Bigcheesegs likes gui... 03:16:01 (it is, however, a penance) 03:16:24 Sooooo, whats everyone think about Visual Studio? 03:16:46 First, it's nonfree software. Second, it's a fuckin' horrible development environment. 03:16:56 Third, it doesn't run on my OS of choice. 03:17:00 Ignoring the non-free, why is it horible? 03:17:17 And fourth OH MY GOD ALL OF THESE TOPICS MAKE ME WANT TO KILL EVERYONE 03:17:24 *stab stab stab* 03:17:28 lol 03:17:35 What should we talk about then? 03:17:55 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 Let's talk about, ohhh, esoteric programming languages :P 03:18:27 who does that? :P 03:19:08 Ok, I find them mostly a waist of time that could be spent writing real code... 03:19:11 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 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 Keybord short cuts... 03:20:26 Um, yeah. . . 03:20:40 Never need to get your hands off of the keyboard. 03:21:05 TBH, i've never used vi/m to do real dev work 03:21:08 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 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 only IDEs 03:21:25 so I don'y realy know how well they work once you learn how to use them 03:21:29 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 SevenInchBread: Well, yeah. . . They've got a steep learning curve. 03:21:56 SevenInchBread: err, try using vi with no prior exp 03:22:10 ...should probably like... have some visual interface. 03:22:18 I almost killed my /etc/inittab with it :P 03:22:19 like... "emacs... with a GUI that doesn't blow" 03:22:43 IMO, the programs that are really quick to use usually have a steep learning curve out of necessity. 03:22:51 true 03:22:58 but - gvim is a visual interface. 03:23:03 not really... 03:23:24 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 Must ... kill ... everyone 03:24:02 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 IDEs are great for the beginner, but honestly. . . Do you *want* a beginner as your developer? 03:24:44 haha... I wouldn't mind it. 03:24:52 You have to learn somehow. 03:25:01 IDE is't only for beginners 03:25:13 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 Most of them are to placate the "OMG -Oinfinity OMGOMG!!!" audience. 03:25:55 Lol, that reminds me some one on a forum was like, omg im 1337 because I code with notepad! 03:26:07 That's a sign of n00bness. 03:26:09 Who waists time... 03:26:15 doing useless crap 03:26:19 Exactly. 03:26:33 * Bigcheesegs looks at esoteric programming 03:26:36 :P 03:26:44 * SevenInchBread codes raw assembly opcodes in notepad. 03:26:56 non of this fancy mnemonic garbage. 03:27:00 Bigcheesegs: emacs is ideal for the adept; a true magician, deep within their craft. ;) 03:27:18 The same applies to the vast majority of command-line UNIX, to be honest. . . 03:27:42 And yes, VI-users, Vi is a similar sort of thing. . . 03:27:46 -!- Sukoshi has left (?). 03:27:53 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 I'm a faster typist than mouser. 03:28:39 I like... GCLIs.... graphical command lines. 03:28:43 testing somthing --------> ???? 03:28:47 pretty pictures with full keyboard. 03:28:50 Call me up when you are able to mouse at 70wpm. 03:28:52 ...and the ocassional mouse. 03:28:57 wtf, why cant mIRC handle japanese text... 03:29:20 ぼくは知らない。 03:29:22 Pikhq: don't make mistakes, then you never need to use a mouse :P 03:29:30 see, i can see that.... 03:29:52 Bigcheesegs: Yeah, actually, I don't need a mouse. . . 03:30:07 ...Pik is just that badass. 03:30:29 ya, well I use magnets to set the bits on my harddrive to program :P 03:30:29 I don't even need a keyboard. 03:30:42 you too? 03:30:49 Pikhq: whats the hiragana for that kanji? 03:30:54 Shi. 03:31:05 し, rather. 03:31:26 web browsing... for example... is generally nicer with a GUI. 03:31:32 ....generally. 03:31:34 SevenInchBread: Check out Conkeror. 03:31:41 ya, so all i know is you said "boku wa shichinai" 03:31:43 i think 03:31:59 Pikhq, Conkeror? I think I've used it... but it kinda sucked. 03:32:04 ら != ち 03:32:16 = ? 03:32:25 ra != chi 03:32:33 ahhh 03:32:34 ok 03:32:36 SevenInchBread: It's an Emacs-style interface to Firefox. 03:32:43 ....yep 03:32:58 is Konkeror a firefox rename? 03:32:59 Firefox however... does not suck to me. and thus I think this has taught me a lesson. 03:33:02 Bigcheesegs: No. 03:33:08 * Pikhq <3 Emacs. . . 03:33:08 what is it? 03:33:23 * GregorR <3 Plof 03:33:23 Konkeror is the KDE web browser. 03:33:31 Time to write Plofmacs :P 03:33:35 Konqueror 03:33:35 Its like... KDEs file/directory/web browser. 03:33:51 私もプロフが大好きです。 03:33:56 Konqueror is to KDE what IE is to Windows 03:33:57 err, so did you say "I am strange" 03:33:57 >.> 03:34:08 Um. . . No. 03:34:13 :P 03:34:14 I don't know is what I said. 03:34:20 oh 03:34:46 isnt that "wakarimasen" 03:34:48 or somthing like that 03:34:58 From "知る", to know. . . 03:35:21 And conjugated into plain negative form. . . 03:35:26 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 Bigcheesegs: That's formal negative of "わかる", to understand. 03:35:43 SevenInchBread: why? 03:35:50 ...I think it'd be fun. 03:35:51 there are like, a bunch :P 03:35:53 ah 03:36:08 Programming for fun is the best kind there is :) 03:36:13 "there being a bunch" has never stopped me from redoing it in the past. :) 03:36:21 Pikhq: are you on *nix atm? 03:36:44 Bigcheesegs: Yeah. 03:36:52 xchat? or what irc 03:37:07 my primary project at the moment is a MUD. 03:37:08 and what IME are you using, i'm trying to find one to put on my nix box 03:37:09 ...fun fun fun 03:37:17 SevenInchBread: MUDs are cool 03:37:24 im working on a lineage II server emulator 03:37:25 I'm *currently* on gaim. . . I've not gotten ratpoison, irssi, and bitlbee set up since my reinstall. 03:37:32 And my IME is skim. 03:37:39 Lineage II = an MMO 03:37:47 ah. 03:38:08 * SevenInchBread plays roleplay-intensitive MUDs... so by default he considers MMOs a work of the devil. 03:38:16 lol 03:38:21 Lineage II = pvp 03:38:30 * SevenInchBread smiles politely. 03:38:33 no roleplay 03:38:36 unless your weird 03:38:40 then somone just kills you 03:38:42 * SevenInchBread smiles politelier 03:38:54 SOUNDS... UH.... FUN 03:38:58 YA 03:39:08 Pikhq: thanks for the info 03:39:44 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 I don't feal like spending the days to learn how to get stuff i want to work 03:40:19 ...I couldn't get my network card to work on Kubuntu 03:40:23 so... still on Windows. 03:40:37 The 2 weeks are so are worth it (that 2 weeks includes the majority of the command line learning curve) 03:40:40 I've learned how to do that, but only on a GUI with suse 03:40:44 Last time I used Windows I found it to be a huge PITA. 03:40:47 s/are\ so/or\ so/ 03:40:51 And bloated beyond belief. 03:40:52 Agreed, Gregor. . . 03:40:57 bloated... 03:41:00 true dat 03:41:02 I know a surprising number of commands... and coming from MUDs it's really not alien feeling too me. :) 03:41:20 Also, Vista is a terrible (both in quality and ethics) ripoff of OS X. 03:41:22 My current extremely fancy KDE setup isn't using much RAM in terms of Window's normal usage. 03:41:33 I have 5 pcs in my room atm, 3 running windows, 1 running openSUSE and one installing fedora 03:41:49 GregorR: ya, i refuse to get vista 03:41:52 freeking DRM :P 03:41:54 . . . I stand corrected. 03:42:11 My 40-or-so tabbed Firefox session is using most of my gig of RAM. XD 03:42:17 lol 03:42:21 Heheh 03:42:21 shiiiit... 03:42:24 Yeah, Firefox does that :P 03:42:31 most tabes i've had before i restart ff is like 10... 03:42:39 and then it's using 300mb 03:42:47 tabs* 03:42:59 Oh well; at least everything else is really rather light, allowing Firefox to take all it wants. 03:43:26 Didn't even notice until I looked at my RAM usage. 03:43:36 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 bash and ps :P 03:43:53 ps only lists the processes in your current session. 03:43:57 Try ps -ae. 03:43:58 oh 03:44:01 * Bigcheesegs tries 03:44:08 Hell. . . 03:44:13 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 ya, i got to open up that pc before i fry another pcu 03:44:57 The thing runs at, like, room temperature. 03:44:58 hint: the last one shoud be "less" 03:45:00 lol, that things running a celeron :( 03:45:17 GreaseMonkey: What? less != less? 03:45:26 less == less 03:45:58 unless less is volitile and you're doing multi threading w/o sync :P 03:46:08 :p 03:46:18 I LOVE multi threading 03:46:34 makes server sofware so much simpler, and more concurrent 03:46:45 Declare it as volatile, and I think GCC would warn you about that. . . (IIRC). 03:47:02 can gcc detect race conditions? 03:47:29 Probably not. . . But it warns about what things it can detect. 03:47:48 hmm, btw, any sugestions for a good code profiler? 03:47:48 (I don't do threads in GCC, so this is coming from the GCC docs, not from personal experience) 03:48:14 trying to find that 20% of code thats running 80% of the time :P 03:48:22 gcov and gprof? 03:48:32 * Bigcheesegs has never heard of them 03:48:36 * Bigcheesegs asks wikipedia 03:48:49 See the GCC documentation (under Gcov) for details on how to use it. . . 03:49:32 thats the only thing VS doesn't have... 03:49:49 It can do code profiling, but it wont show you the results ;/ 03:50:39 Then. . . What the hell is the *use*? 03:50:50 link time code generation 03:51:01 moves commenly called functions close to each other 03:51:09 and does more aggressive inlining where needed 03:51:40 Yeah. . . That's really a useless feature compared to "getting the coder to simplify sqrt(abs(x^2))". :p 03:53:07 It already does that :P 03:53:28 but the compiler cant tell how many times you're going to call func() and from where 03:53:50 I was just trying to find an example of something that the coder would need to do to optimize things. . . 03:54:07 oh 03:54:14 * Bigcheesegs din't look at what you wrote :P 03:54:48 sqrt(abs(x^2)) = x, now i see :P 03:54:59 Yeah. 03:55:13 YM = abs(x) 03:56:29 Well, nice chat, I'm going to sleep now, so later. 03:57:21 -!- calamari has joined. 03:59:49 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 howdy, folks 04:49:52 has anything interesting been going on recently? 04:57:01 Plof2 8-D 04:57:57 Plof2 8=D 04:58:43 ZOMG HE HAS TWO NOSERS 04:58:56 -!- bsmntbombdood has joined. 04:59:03 heh 05:05:35 using vi is not a sin, but a penence 05:06:35 don't you know what 8=D is? 05:07:32 Other than a two-noser? 05:10:19 yeah 05:20:57 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 i.e. something similar to being able to hold, say, 1e20 but not 1e20+1 ? 05:21:40 something like that 05:22:53 "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 Sgeo: Precisely like that, actually. 06:09:27 It effectively stores it in (x)e(y) format. 06:12:08 * Sgeo predicts the existence of "atmospheric shells" in SL 06:12:36 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 can't make your mind up? 09:26:36 -!- calamari has quit ("Leaving"). 10:35:46 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 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 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 Proof that I need a life: 14:16:49 http://student.hpa.edu/~cmcfarland/Classics.exe 14:16:59 -!- Bigcheesegs has joined. 14:17:07 I hard-coded Mario and Zelda themes 14:17:10 using Windows Beep() 14:17:13 ... 14:17:29 Will post source if desired 14:17:44 * Figs pokes Bigcheesegs 14:17:47 Hello :) 14:20:38 http://rafb.net/p/QQKEbi39.html 14:20:39 source 14:20:42 1191 lines! 14:21:16 -!- helios24 has quit (Remote closed the connection). 14:24:03 if anyone cares :P 14:25:09 -!- helios24 has joined. 14:27:16 hello helios24 14:27:31 -!- Sephh has quit (Read error: 113 (No route to host)). 14:27:56 :( 14:28:03 Guess no one likes mario and zelda any more :( 14:28:18 shucks. 14:40:30 lol 14:42:04 * Bigcheesegs compiles 14:42:24 * Pikhq should get started on actually making his distro. . . 14:43:33 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 Hello. 04:13:05 http://student.hpa.edu/~cmcfarland/Classics.exe 04:13:09 I've improved it! 04:13:19 Mario, Zelda, and Fur Elise 04:13:20 :D 04:13:34 source is almost 2000 lines of code 04:16:15 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 would anyone here know much about SKI combinator calculus? 06:48:08 i know bsmnt does 06:51:37 not I, :( 06:51:47 I do know, however, that I got my music program working :D 06:52:07 Zelda, Mario, and Fur Elise FTW 06:55:02 <-- does not care about your Windows-only program. 06:55:22 well if anyone knows how I can make a portable beep, I will :P 06:56:29 meh, i made one a few days ago 06:56:45 http://greasemonkey.nonlogic.org/lsq101002.tar.gz 06:56:54 ^ plays *.VGM files 06:57:17 uses the computer internal speaker? 06:57:29 no, it dumps them 06:57:33 into a file 06:57:37 I don't know what .VGM is :P 07:00:52 bummer 07:01:03 oh well, it comes with an example 07:19:08 hmm... i should make my musical brainfuck possibility of making tones... since it now only handles raw data... maybe ':' & ';' 07:19:13 schoolz ---------> 07:19:50 ;p 07:21:20 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 :P 07:22:29 there were 3 streams, square, saw and sine, which one you use depending on the value in current cell when calling ',' 07:22:46 but... school, REALLY -----> 07:26:09 bye? 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:01 OMG ROFL 08:00:01 http://www.flightpad.net/images/firefoxfoxfoxfox.jpg 08:08:58 -!- Sgeo has quit ("Ex-Chat"). 09:53:49 -!- Figs has left (?). 11:06:21 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 I'll ask again: Anyone use Pascal here? 19:46:34 I'm sorry, I think you've confused #esoteric with #1978 19:57:43 Hey, people talk about Forth here too. 19:57:54 Plus lots of Roguelikes are still written in Pascal. 19:59:37 forth is pretty esoteric. 20:03:52 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 Sukoshi: I have a pascal book, maybe it knows? :) 20:38:55 "Advanced Turbo Pascal Version 4" 20:39:42 I keep it around because it shows how to implement a recursive descent parser 20:40:31 see, it used to be that advanced actually meant advanced :) 20:43:56 -!- nazgjunk has quit ("Bi-la Kaifa"). 20:56:39 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 eh 21:19:16 forth is hella werid 21:19:26 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 Am I the only one who thinks it isn't? :P 21:31:12 If you factor correctly, it shouldn't be that bad. 21:36:38 Check out the PDF document "Programming Forth". 21:40:12 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 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 Nevermind, found it. 00:06:40 Package browser; imagine that. 00:19:51 :) 00:33:00 * Pikhq is *attempting* to get his distro up and running 00:37:34 And failing horribly. 00:48:07 -!- calamari has joined. 00:55:10 -!- calamari has quit ("Leaving"). 00:58:36 I'm writing a farming roguelike. 00:58:50 (After spending 3 hours reading about magnetism/electricity.) 01:00:36 you mean the hero is a farmer 01:00:37 ? 01:01:11 No, it's a roguelike with inspiration from Harvest Moon. 01:01:11 Concept: 01:01:11 Are you going to farm magnetic carrots? 01:03:15 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 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 that does not sound like a roguelike. 01:03:52 It does now, bub. 01:05:32 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 that sounds very much like an economic simulation and not at all like a roguelike. 01:06:16 But it's being done in curses. 01:06:20 so? 01:06:26 So. 01:06:33 that's just the interface 01:06:37 anything can be done in curses 01:06:41 Except that you actually interactively farm. 01:06:58 (Until you hire the indentured servants you need, of course.) 01:07:14 (Then you purchase another farm off struggling farmers.) 01:11:47 OH OH OH 01:11:50 I'll help. 01:12:01 ...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 We're abandoning Abrasax, aren't we? 01:14:48 Count me in! 01:15:46 ...eh, it's possible/likely. 01:22:40 -!- calamari has joined. 01:25:13 ihope, eh.. but I'll try not to be cynical. 01:25:26 Hmm? 01:26:24 I think we'll be able to do Abrasax as long as we're willing to put in some work. 01:26:50 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 Indeed we will. 01:29:06 * SevenInchBread is looking for a public domain microkernel 01:31:09 No, not MUD. 01:34:16 if we need to make our own kernel... 01:34:23 I say go with the minimalist of the minimal. 01:34:43 just a flimsy layer over the hardware... 01:35:06 -!- calamari has quit ("Leaving"). 01:36:39 And then have an "upper kernel" handle permissions and such? 01:36:59 basically just like.... talking to the MMU and dispatching interupts... and maybe some other stuff. 01:37:17 ihope, eh... not necessarily. But yeah... basically just breaking down all the functions into different parts. 01:38:12 Dividing into "lower kernel" and "upper kernel" doesn't really seem a bad idea. 01:38:54 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 I was jsut thinking like.... a really small kernel... and then.... everything else in userville 01:40:48 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 ...what? 01:43:57 yeah... the security doesn't come till later. 01:46:05 You mean the lower kernel doesn't have division of privileges at all? 01:46:48 I can eat banannas? 01:46:51 So, about Pascal. 01:48:05 no... it basically sends interupts off to other places... and manages memory. Privledges wouldn't even make sense there. 01:48:19 Sends interrupts off to other places and manages memory... 01:48:41 So it's a library containing the OS's entry point? 01:48:51 Why not make a Forth OS? 01:49:05 Non-interactive programming is for nubs. 01:50:10 What's interactive programming? 01:50:24 it's just... the kernel. It just handles the most basic hardware stuff and delegates it to other software. 01:50:30 It's one huge... callback-thingy. 01:51:42 Callback-thingy? 01:52:00 that's the most basic function of the operating system... to assign crap as callbacks. All other functionality emerges from that. 01:52:21 So it provides some "system calls"? 01:54:11 So you dismiss it to non-interactive just like that? 01:54:14 You fiends. 01:54:23 Interactive programming, like a REPL. 01:55:12 no no... not system calls... those aren't callbacks - they're simply subroutines because they're always present. 01:55:27 Uggh, are you listening to me, you stupid piece of cake? :P 01:55:45 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 Yes you can. 01:56:03 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 I'm probably thinking of the wrong side of the sex SevenInchBread. 01:59:59 SevenInchBread: subroutines? 02:00:06 So it's like a library or module? 02:00:54 Uggh, make it interactive. 02:01:15 Sukoshi: what do you mean? 02:01:21 Like, create a Forth-level interface to interrupts and just start building up the rest in Forth words. 02:01:57 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 I think we want "the rest" to be very modular and easy to do in any programming language. 02:02:24 In any non-REPL language :( 02:02:37 You can compile to Forth words, you know? 02:03:18 What's REPL? 02:03:25 Read-Eval-Print-Loop. 02:03:48 ihope, system calls are like a library... yes 02:04:36 http://www.amresearch.com/v6/ 02:04:38 <-- Read there. 02:04:48 basically I just want to kernel to do things like "oh cool... an interrupt! CONTEXT SWITCH POWERS ACTIVATE!" 02:05:08 Compilers can compile to Forth words, which are basically supported by a barebones kernel. 02:05:34 Sukoshi: you seem a little Forth-obsessed lately. 02:05:44 Does it have closures, whatever they are? 02:05:45 ihope: Well, you seem very non-interactive obsessed. 02:06:11 Sukoshi: I... still don't get what you mean by "interactive". 02:06:21 ihope: Have you never played with a Lisp or a Forth before? 02:06:35 I've played with a Lisp or two. 02:07:16 Play with gForth. It's an experience. 02:07:42 -!- calamari has joined. 02:07:45 It's just a prompt that lets you type in Forth words, which are then just looked up. 02:07:48 ...might want to check Sukoshi's fanatic-o-meter 02:08:09 Sukoshi, so it's an.... interactive interpreter? 02:08:11 It doesen't have to be *Forth*, but you seem to be gearing this for a non-interactive base. 02:08:17 SevenInchBread: Yes. Crazy isn't it? 02:08:35 A barebones microkernel drops you into that. OpenBoot does something similar. 02:08:35 * SevenInchBread thought that was a common thing..... 02:08:39 Suddenly, I want to combine Thue with something roughly Forth-like. 02:09:06 I use python's shell interpreter all the time... it's nothing amazing. 02:09:21 It's sarcasm. 02:09:33 Commands are taken from the left and executed. Any results are put back on the left. 02:09:38 Plus Python's shell interpreter doesen't execute machine code directly. 02:09:52 "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 so 05:47:43 how do you run a process in the background again? 05:47:49 & 05:47:51 like... in Linux distros 05:47:56 hmmm... that doesn't seem to be working 05:48:05 is that on all linux distros? 05:48:15 & after the statement 05:49:10 oerjan: You said you used Pascal. 05:49:13 note that it must not read/write the shell std streams 05:49:18 once upon a time yes 05:49:27 Do you think it is better than C? 05:49:32 (Sort of curious.) 05:52:25 Uggh. Why doesen't Radio Shack give the Maximum Energy Product (or Magnetic Field) of their magnets? -_-'' 05:53:59 oerjan, anyway to prevent that without... recompiling the program? 05:54:27 yes, you use > and < to redirect I/O. 05:54:35 oerjan, example? 05:54:49 SevenInchBread: ``ls > grep -i hi'' 05:54:51 Errrr 05:54:55 ls | grep -i hi 05:55:11 ....what's the | 05:55:14 ... And that's not an example of IO rediirection .... 05:55:18 -!- GreaseMonkey has joined. 05:55:23 | is the piping character. 05:55:33 It pipes stdiout of the first application to stdin of the second. 05:55:44 so... how would I tell the program to redirect output to.... hmmmmm... /dev/null... or just nowhere 05:56:16 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 For that you use > 05:56:34 so.... dev/null > SomeApp? 05:56:39 Errr... 05:56:50 SomeApp >/dev/null 05:56:50 ``cat /dev/null | app'' 05:57:04 > redirects output to an FD. 05:57:12 SevenInchBread: ignore Sukoshi :) 05:57:21 .... -_-'' 05:58:02 on a shell line, file for stdout. 05:58:26 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 ...and the ampersand isn't working 05:58:42 It has to. 05:58:50 .....well it's not 05:58:50 ``xchat &,, 05:58:58 *``xchat &'' 06:00:31 ah yes, &>file takes both stdout and stderr, at least in bash 06:00:41 Does the same in ZSH. 06:01:19 on the other hand, the redirection may not be necessary for X commands. 06:01:31 they rarely write to the terminal, I think. 06:01:58 cannot check as i am on windows these days. 06:02:04 They do sometimes. 06:02:08 oerjan: O_O 06:02:20 人殺し!!!! 06:02:20 yes, errors i guess. 06:02:45 * SevenInchBread just wants the shell window to go away without the MUD crashing 06:02:47 except for ssh'ing to my old unix account. 06:02:52 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 oh, i see. 06:04:36 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 i think something more than background might be needed for that. 06:04:47 my memory is hazy. 06:04:54 What WM does he use? 06:05:41 WM? 06:07:21 Window Manager .... 06:07:27 ...I don't know. 06:08:52 ..... 06:09:07 hm... try the daemon command. 06:09:21 .... What command is that oerjan ? 06:09:35 oh wait, it was a function 06:09:47 my eyes skipped that part 06:10:42 hmmm? 06:11:33 anyhow, have you tried "command &>/dev/null nope. 06:14:03 that's the closest i can think of, removing all connections to the terminal i hope 06:15:24 SevenInchBread: um, learn how to use a shell 06:15:25 that's not the problem though... it just needs to run without the shell being there 06:15:35 it did this normally with the & in the past 06:15:45 Your WM should have the feature in a ``run'' thing or whatever. 06:16:01 Or I'll bet you can find some small app written just for this purpose, if not write it yourself. 06:16:17 disown 06:16:28 >.> those all sound very... out of the way. 06:16:35 disown 06:16:41 Isn't there just a way to make it work with &? 06:16:45 Should I get a green fez? 06:16:50 nohup 06:17:12 ah, nohup. 06:17:32 i guess that's it. 06:18:39 yeah, disown too. 06:25:57 GregorR: maybe you could recolor your red fez picture to test... 06:26:22 What about semi-purple fez? 06:28:57 what's fez? 06:30:10 http://www.codu.org/hats/RedFez-med.jpg 06:31:48 My red fez picture is a uniquely bad picture of me XP 06:31:49 and that's GregorR unless he's fooling us. :) 06:33:21 so not only do you need to recolor it, you also need to graft it onto another picture of you :) 06:34:03 _might_ be simpler to get a physical sample, then. 06:35:09 but then, a new picture of the red one seems in order. 06:37:05 Well, I ordered it. 06:37:21 I think I'll take a picture of me in my new green fez and then recolor that X-P 06:38:01 I also ordered a tricorn. 06:38:37 ... 06:40:37 Mein Hut, es hat drei Ecken Drei Ecken hat mein Hut... 06:41:38 We have that saying, but in English. 06:41:46 Err, saying == song lyric IIRC 06:41:55 and in norwegian, but I think the German is original. 06:43:22 How is "drei" pronounced? 06:43:27 somewhat disturbing that the google hits all spell it differently... 06:43:32 lol 06:43:49 GregorR: dry 06:43:58 more or less 06:44:55 unless austrian, the y should be shifted somewhat towards a 06:49:29 basically, the rules for pronouncing ie and ei in English and German are approximately opposite of each other. 06:50:57 Noyce :-P 06:51:08 We can thank the Great Vowel Shift for that (probably) 06:51:49 i should think so. 07:00:28 we should all speak the same language 07:00:33 then build a tower to heaven 07:02:28 AND THAT LANGUAGE SHOULD BE ENGLISH 07:02:38 IF ENGLISH WAS GOOD ENOUGH FOR JESUS, IT'S GOOD ENOUGH FOR TEXAS 07:02:58 english is the language of god, because it's what the bible is written in 07:03:06 Egg-zactly. 07:03:10 X-P 07:04:53 and besides, the spelling of Hebrew seems to be even worse. 07:06:16 -!- iano has quit. 07:17:34 doubtful 07:29:24 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 the former is true; the latter isn't 07:29:53 you get used to it very quickly 07:30:29 Same with hieroglyphs :P 07:31:42 ic 07:32:42 Why can't I find a good skimmer for under $100 X_X 07:34:16 thank god for wikipedia disambiguation. 07:34:25 ? 07:35:03 allowing me to find out what "skimmer" may mean 07:35:37 Ah :P 07:36:43 although if it had been anyone but you i would _still_ not know :) 07:37:07 Well, y'know, I want a sea bird. 07:38:47 yeah yeah, and you have this nice bridge you have to sell. 07:40:14 are skimmers handmade perhaps? 07:40:23 I guess so. 07:40:43 It used to be a very popular style of hat, but I presume they're no longer made en masse. 07:41:30 lol hat 07:41:56 as i said, if it had been anyone but GregorR... :) 07:42:17 Well, I saw one at my usual online hat shop while looking for a tricorn. 07:42:23 And it cost $112 O_O 07:42:34 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 If soemone wants to buy me rare Earth magnets, they should. 08:57:04 Funny, I was JUST having the compulsion to buy rare Earth magnets for somebody I barely know online! 09:05:54 Just for these sorts of moments. 09:06:23 Look, people in hormone-filled teenage chatrooms buy clothes for people they barely know. 09:06:47 Why can your hormones cloud you to the same level of idiocy? :( 09:07:01 *can't 09:07:11 I have no hormones. I am an android. 09:12:26 hey, at least Sukoshi is not asking for fissible substances :) 09:13:22 Exactly. 09:19:38 but then, who knows what a denizen of #esoteric could do with a rare Earth magnet. 09:22:03 It was for a generator, but I could think of more sinister things 09:22:04 . 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 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 You know, if I want to write a kernel, I'm really going to have to learn more about x86. 18:25:00 Or write for a different architecture. 18:25:48 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 ihope, hmmm 18:36:12 Pikhq: linux-linux-gnu? 18:36:34 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 Still sounds like a kernel library/module. 18:37:54 I see privledges being arbitrary flags that can be set on processes. 18:38:22 they don't do anything on their own... other stuff just needs to check to see if certain flags are set. 18:40:37 ihope: Yes: GNU/Linux running on Linux. 18:40:47 (AKA Usermode Linux) 18:41:58 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 Would it also handle processes? 18:42:37 The kernel, I mean? 18:42:55 processes are basically just bits of code attached to interupts... and since the kernel will be handling interupts... probably. 18:43:00 at least at the most basically level 18:43:13 Bits of code attached to interrupts? 18:43:24 So they're subroutines run whenever you get an interrupt? 18:43:40 it won't -schedule- the processes or anything... it'll just provide the operations for moving them around in memory. 18:44:05 -nod- that's what interupts do. They're kind of like exceptions in the programming language universe. 18:44:17 So what does schedule the processes? 18:44:19 except most of them have nothing to do with errors 18:44:29 a process. :) 18:45:16 paradoxical, no? But definetely possible. 18:45:58 * ihope scribbles all over SevenInchBread 18:46:25 How about the kernel handles process scheduling, memory, and system calls, and then there aren't very many system calls? 18:46:47 And maybe interrupts too. 18:47:05 it would impossible to do the operating system if the kernel didn't handle interupts. 18:47:29 they're part of the hardware 18:47:33 (some of them) 18:48:26 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 So it handles interrupts and contains the instructions for a couple system calls? 18:49:29 And the rest is left up to the "upper kernel"? 18:49:34 well... the system calls will be in kernel land. 18:49:41 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 Try just 'userspace'. 18:50:45 That is what every other microkernel calls it. 18:50:48 So process scheduling and system calls will be handled by processes... 18:51:04 Pikhq: what every other microkernel calls what? 18:51:17 ihope: The set of processes which support the rest of the system. 18:51:24 well.... system calls are interupts... which go to the kernel... which then triggers some other process 18:51:42 SevenInchBread: hmm... 18:51:54 Could be done. 18:52:16 that's basically what makes a microkernel a microkernel.... it doesn't handle all the system calls 18:54:45 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 SevenInchBread: A microkernel is a kernel design where almost everything is handled by userspace processes. 18:55:19 * SevenInchBread nods 18:56:28 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 What would you call a kernel that handles all the system calls but whose system calls are pretty basic? 18:56:43 That would be a microkernel. 18:57:02 That would be the usual form of a microkernel, in fact. 18:57:07 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 Execute process and send message, eh? 18:57:32 How would things like hardware interaction be done? 18:57:50 interupts 18:58:07 which get put on like... a "hardware signal" queue or whatever 18:58:15 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 And how do you make sure not every process can interact with all hardware? 18:58:28 and a system call for checking out recent hardware signals 18:58:45 Pikhq: GNU Mach? 18:59:00 ihope: All the Mach variants, including GNU Mach. 18:59:01 Oh. The Mach microkernel. 18:59:15 (they all come from the same original project) 18:59:45 *GNU* Mach's hardware interface is a subset of the Linux module API. . . 19:00:46 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 it does however... need an interface to allow other crap to worry about privledges for it. 19:01:44 So under the exec and send_message thing, does the kernel handle processes? 19:02:03 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 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 *worrting 19:03:44 *worrying 19:05:02 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 Oh, and create process. 19:05:56 That and some ways of interacting with process scheduling should do it. 19:05:59 ....probably don't need all of those 19:06:23 Get process permissions, set process permissions instead of those fancy ways of doing things? 19:06:34 -!- calamari has quit ("Leaving"). 19:06:41 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 Switch-to-other-process can be done with interrupts? 19:07:17 ....that's -always- how processes are switched 19:07:48 The process invokes a certain interrupt which switches to the other process without help from the kernel? 19:08:19 no... the kernel handles the interupts. So it's like a system call in certain regards 19:08:47 the difference is kind of trivial anyways. system calls are interupts too 19:09:18 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 ...I don't know. 19:10:44 So system calls are needed? 19:11:04 ......of course they are. 19:11:13 Needed for manual process switching, I mean. 19:12:03 so.... alloc, deloc, talk, waik, and some sort of check-hardware system call(s) 19:12:09 *wait 19:12:30 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 you don't need enter supervisor mode... I don't think. 19:12:59 You don't need to let processes enter supervisor mode if you provide some other way of accessing hardware. 19:13:24 wrong... the kernel handles system calls... however it can still let another process check permissions for it 19:13:45 Is that in response to what I just said about hardware? 19:13:59 ...Well, no, obviously not. 19:14:00 no.. the permission response 19:14:13 you're right about the supervisor mode thing... 19:14:17 The kernel can indeed handle system calls, but it would need another process to do the permission thing. 19:14:36 I guess I can't argue either way about that. 19:15:00 Except that you still need some level of permissions in the kernel, even if it's just an omnipotence flag. 19:15:18 Services are for inter-process communication. How else are you going to do that? 19:15:49 Well... I guess you could share memory. 19:15:52 services are names... set to processes. Not too terribly kernel-required 19:16:23 What else is going to handle them? 19:16:32 ...guess. :) 19:16:40 How else will a process send a message to the process that handles them? 19:17:19 Will it send a message to the process telling it to send a message to itself? 19:18:28 you lost me. 19:18:34 How else will a process send a message to the process that handles them? 19:18:40 That handles messages, I mean. 19:20:00 -cough- well, if you gave processes names.... 19:20:53 And what handles those names? The kernel? 19:21:16 possibly 19:22:18 Can you think of a way it could be otherwise? 19:22:19 makes sense to me 19:22:56 either that... or you could just have a process that handles "services" 19:23:49 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 *sheer 19:26:09 How about calling them interfaces, then? 19:26:31 ....reminds me of OO. even worse than service 19:26:34 -!- nooga has quit ("Lost terminal"). 19:26:39 I like "names". 19:27:43 Hey, that's a good idea! 19:28:25 or if we want to sound more intellectual... we can go with "memes" 19:28:43 Why would we do that? 19:28:59 same reason we'd call it any other name 19:29:02 * ihope wonders... 19:29:07 How about we call them vistas? 19:29:11 Or windows? 19:29:24 :-P 19:29:28 buttons? 19:29:37 -ahem- NAMES IT IS 19:29:37 Calling them names sounds fine. 19:30:13 So have we concluded that "invoke name, register name, unregister name" are kernel-worthy? 19:30:50 not sure about invoke name... isn't that the same as switch-process? 19:31:43 OH 19:31:46 here's an idea 19:31:59 Invoke name sends stuff to a process, switch switches to that process so it can handle the stuff. 19:32:04 And what's your idea? 19:32:12 permissions.... can be a set of programs that must return a success for a certain program. 19:32:19 and "flags" can be a totally different concept. 19:32:33 so a permission becomes a more like a check. 19:33:50 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 so... invoke("canRead", 5, some/file) ...which shoots off a series of processes that either exit with success or failure 19:35:08 these processes could in turn.... do things like invoke("has flag", 5) ...and fail or succeed bassed on that 19:35:14 Why shoot off a series of processes when you can just invoke one name? 19:35:28 One name which handles everything else? 19:35:29 "canRead" is that one name. 19:35:36 one ring to rule them all? 19:36:23 yeah... canRead can be registered to one process... which handles all the other processes... or whatever 19:36:58 Yup, sounds good. 19:37:01 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 so you could expand or decrease the meaning of certain permission checks 19:37:43 Would this be part of the kernel? 19:37:49 hehe, sorry, just finding any possible way to add potential play-around-ability. 19:38:17 not really... the only part that's a system call would be the invoke-name part 19:38:26 If not, you've nicely reduced the permission system calls to "get omnipotence flag" and "set omnipotence flag". 19:38:47 >.> why do we need that again? 19:39:23 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 SevenInchBread: so that we can control the omnipotence flag? 19:39:50 can't we do that like we do the rest of the flags? 19:40:02 invoke("hasflag", 5, "omnipotence") 19:40:33 Is the kernel going to invoke a process in order to determine whether a process is omnipotent? 19:40:44 Sounds easier to just have a flag for it. 19:41:02 >.> makes sense to me. why do we need an omnipotence flag though? 19:41:42 Do you want to make all processes omnipotent? 19:41:52 ....what the hell does that even mean? 19:42:06 Do away with permissions completely and let any process do anything. 19:43:13 -shrug- sounds like we could integrate that into the rest of the permissions stuff.... 19:44:04 Well, the "big permission handler process" checks for permission and then makes the call, right? 19:44:33 not really... 19:44:34 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 Not really? 19:44:44 I was saying the permissions can be just like servies 19:44:51 How? 19:44:53 that execute a number of programs... to check for a certain condition. 19:45:01 like this 19:45:17 invoke("canread", 5, some/file) 19:46:27 You mean the process says "yes" or "no" instead of making the call itself? 19:46:36 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 or something similar. 19:46:47 yeah... it just returns a success value 19:46:56 That could work. 19:46:56 ...most likely as an exit code 19:47:16 that's all a permission is... a yes or a no 19:47:46 what the permission allows control of... is entirely dependent on when and where it is being checked 19:49:06 ...it also gives you the option to make your own permissions... and use them as you please. 19:49:07 Well, we may not want the process to have to exit every time it has to give a yes/no answer. 19:49:49 Maybe we could have an "allow/deny" system call. 19:49:56 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 so it can just send 0 or 1 back to a request message 19:50:22 as a reply 19:51:26 Actually, "allow/deny/sdeny", sdeny denying the request but not telling the process that it's been denied. 19:51:45 ... I don't see how those fit in as syscalls 19:52:11 I like just having permissions as names 19:52:13 Maybe we could have an "allow/deny" system call. 19:52:25 and use the invoke-name call to ask permissions 19:52:47 * ihope ponders 19:52:53 I mean.. I don't see how allow/deny makes any sense as syscalls 19:53:11 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 allow/deny/sdeny is how you send the reply. 19:53:38 no no... I mean... generic replies... not just allow or deny 19:54:04 Maybe plain old allow/deny, and make the BPHP tell the process the result of the system call? 19:54:26 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 it would be a IPC thing... 19:54:56 That's what I've been saying. 19:55:28 to reply to a paticular message... 19:55:44 A makes the system call, B gets it, B allows or denies it, B sends the result back to A. 19:56:05 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 ls isn't a system call though 19:56:32 Is what you said related to handling permissions, then? 19:56:48 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 it is.. in a way. 19:57:19 I mean... the reply thing will be used to answer permission requests... but that's not its specific purpose. 19:57:24 I'm starting to confuse myeslf. 19:58:06 so "calling" a process is a combination of sending a message and then immediately waiting for its reply. 19:58:28 Let's pick up on this later, shall we? 19:58:30 not sure if the kernel should be responsible for replies though.... 19:58:32 sure. 20:01:10 * SevenInchBread will get a shower and then be back 20:10:06 what's it called in math when something is part of a group or whatever they're called in math? 20:10:23 like x E R with a cool-looking e & r 20:11:49 oklopol: being an element of a set? 20:11:54 Or a member of a set. 20:13:01 The set containment symbol in Unicode is ELEMENT OF, or U+2208.\ 20:13:30 ah, set 20:14:13 does the 'set containment symbol' have a _more official sounding_ name? 20:18:39 I don't think so. 20:19:28 Just like there's no "more official-sounding" name for the Unicode character INFINITY. 20:20:50 well you can say INFZORZ 20:21:08 that's a lot more official 20:39:43 I call it a membership test 20:39:47 ....which sounds official 20:40:02 ihope, alright... back... and... NEW IDEAS 20:40:08 good 20:40:27 so... I know how we can encapsulate permissions into all the kernel functions 20:40:29 Are we still on about microkernel? 20:40:31 er... syscalls 20:40:39 LOLZBIG 20:40:44 instead of INFINITY 20:40:53 ... 20:41:23 lolzbig is much better that infzorz, i shall use that one from now on 20:41:51 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 And what would that special access consist of? 20:42:11 System calls? 20:42:13 something like a "givemagichat" syscall... that gives a process access to the basic syscalls. 20:43:05 so you have a process called "mm"... that handles memory allocation, and has the magic hat 20:43:16 so it can make the alloc and dealloc call. 20:43:30 but also do things like check permissions 20:44:39 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 As long as there aren't any interfering trademarks on "Sophia". 20:46:37 fuck intellectual property. 20:46:49 You can't trademark a fucking NAME... Jesus Christ. 20:47:28 actually, I have trademarked "Jesus Christ". 20:47:49 I've trademarked "NAME", SevenInchBread ... cease and desist. 20:48:04 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 Multiple of them are for just "Sophia",. 20:50:02 You ignore copyrights? 20:50:11 yeah 20:50:11 SevenInchBread: just like most ppl 20:50:24 VLC breaks the DMCA 20:50:28 with the dvd code 20:50:31 but noone cares 20:50:36 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 I often obey copyright law. 20:51:08 Anyyywayyyyy... 20:51:27 GNUHurd is the most compleet microkernel atm right? 20:51:39 pretty soon... if everyone stops obeying copyright laws (which is happening more often)... then copyriight won't be around anymore. 20:51:45 Bigcheese: Mmmmmmm, doubtful ... but maybe. 20:51:51 what else is there? 20:52:05 there's quite a few fully complete microkernels out there. 20:52:19 are any foss? 20:52:23 there's a big family of them called L4 20:52:25 foss? 20:52:31 free open source software 20:52:46 l4 is, thats what GNUHurd is bassed on 20:52:54 Mach is open source. 20:53:01 but none of them are public domain. 20:53:11 bsd-like 20:53:12 ? 20:53:12 Now, trademark and copyright aren't the same thing, naturally. 20:53:19 Trademark is pretty much a good thing. 20:53:28 Unless it's used for retarted things 20:53:32 ihope, I disregard intellectual property altogether. 20:53:34 same with pattents 20:54:03 Bigcheese: what do you mean, used for retarded things? 20:54:38 like a trademark on a common word 20:55:00 ...such as Sophia. 20:55:02 :) 20:55:05 Indeed, those can be annoying. 20:55:29 Same with pattents, just about every thing is pattented atm. 20:55:32 trademarks are highly annoying 20:55:35 crap like _tabs_ 20:55:35 for example 20:55:39 the company i'm working for 20:55:45 patents are retarded. They don't encourage competition at all. 20:56:07 has an online app that we wanted to call "Vista" 20:56:15 Bigcheese: tabs on computers or actual tabs? 20:56:22 and then we were threatened to be sued by... Visa 20:56:29 Tabs as in, firefox tabs 20:56:29 and had to change the name 20:56:32 in software 20:57:15 Hmm. Trademark 74423619 is on "SOPHIA" as applied to "computers and computer programs", but it's dead. 20:57:19 ihope, hmm.... with this layout... we can take names out of the kernel. Names are purely a userspace invention... 20:57:33 ihope, the "syscalls aren't usually called directly by applications" layout 20:58:11 you should make a c++ kernel :P 20:58:27 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 It's number 74148425. 20:58:41 And it's live. 20:58:45 ....fuck it. 21:00:25 we've got alloc, dealloc, magichat, demagichat, kill, hmmmm.... what else do we need... fork? 21:00:53 fork is stupid :P 21:00:57 Either we use a different name or we risk trademark infringement. 21:01:04 except I don't like the name kill... let's call it zap. It sounds more like wizardy than murder. 21:01:11 Name it 21:01:19 ohnoesitsamicrokernel 21:01:27 SevenInchBread: maybe you could create a list of system calls and exactly what they do and show it to me. 21:01:36 ihope, if we risk trademark infringement... then I'm fully liable. That sound good to you? 21:01:53 For now. 21:02:24 Serial number 73501942 is for "SOPHIA" as applied to "Computer System Analyzers and Peripherals Therefor", and it's dead. 21:04:05 ihope, the root process.... the one that first has magichat set can be called overmind... at PID 0 21:04:32 PID 1 can be Mother... serving a purpose similar to init... as the parent of all top-level processes 21:05:22 You could write a spec for this kernel. 21:13:44 ... 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 s 21:15:37 -!- jix__ has joined. 21:18:15 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 sbrk(2)? 21:19:24 alloc(pid, size, stataddress) 21:19:57 That's the Windowsesque way. 21:20:11 and mm could provide the actual interface that programs would use. 21:20:58 GregorR, Any problems with it? I mean... I don't expect actual application programs to use that... just the mm process. 21:21:16 I don't have any positive or negative opinion on it *shrugs* 21:21:21 It certainly would work fine. 21:21:32 malloc is implemented in the libc using sbrk 21:21:52 what does that do? 21:22:52 That extends the break. There is a single "line" in the memory space between "allocated" and "unallocated" memory. 21:22:59 sbrk increments that. 21:23:53 -!- jix has quit (Read error: 110 (Connection timed out)). 21:25:33 well... I'll leave it up to mm... and just have this one as the most fundamental mechanism. 21:25:42 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 ihope, hmmm.... I'm trying to organize stuff in a way that makes sense... like... 22:00:15 I've got "address spaces" and "threads"... as different concepts.... with a process being a combination of the two. 22:01:31 threads are sexy 22:01:42 what happens when a bunch of guys who know nothing about OS design try to design an OS 22:02:14 something magical? 22:02:50 something worthy of tears 22:02:59 or both? 22:07:10 -!- calamari has joined. 22:08:33 -!- Sgeo has joined. 22:38:19 ihope, hmmm... what kind of operations does Linux allow on threads? 22:38:33 right now I've just got addthread(pid, prog, pc) 22:41:00 pthreads 22:41:02 :P 22:41:20 But basicly start, stop, eatcheese 22:41:33 join 22:41:35 .....what's the last one? 22:41:39 and... the last last one 22:42:24 join gets the return value of a thread and frees it's memory 22:42:27 (stack) 22:42:44 >.> hmmm... threads have memory independent of the process? 22:42:51 I thought all threads on a process shared the same memory. 22:43:20 they do 22:43:27 they have their own stack tho 22:43:40 ah... you mean... "the memory containing information about the thread" 22:43:46 not... the threads allocated memory right? 22:43:49 and the stack 22:43:50 :P 22:43:54 ...what stack? 22:43:58 ... 22:44:01 err 22:44:12 like if you declare an int in a function 22:44:16 it's put on the stack 22:44:29 so..... the memory? 22:44:32 (well, it could be in a register, but w/e 22:44:33 ) 22:45:05 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 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 Other than alocate it 23:15:28 i don't think so 23:33:30 bsmntbombdood: so you're saying we're probably going to create a terrible operating system? 23:34:03 maybe 23:34:12 Maybe probably? :P 23:35:07 Bigcheese: do you know anything about operating system design? 23:37:21 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 I'd like to make a terrible OS... sounds like fun 00:06:34 I think we could make a good nanokernel.... they're much easier to develop. 00:08:47 Let's make a Multiboot-compliant boot loader that runs on top of GRUB! 00:10:06 hmmm.... let's see... 00:10:35 ihope__: So, multiboot compliant in both senses? :P 00:10:45 Indeed. 00:10:53 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 instead of doing stupid things like.... polling the kernel constantly for hardware signals. 00:11:22 Actually, can't GRUB run directly from GRUB? 00:11:44 SevenInchBread: poll the kernel for hardware signals. If you didn't get any, forfeit your time slice. 00:11:44 SevenInchBread: system calls 00:11:47 So GRUB is GRUB-compliant? 00:11:49 Maybe. 00:12:00 SevenInchBread: GRUB has a chainloader feature. 00:12:31 bsmntbombdood, ...did you intend for that to sound smart-ass-ish? :P 00:12:32 -!- ihope has quit (Connection timed out). 00:13:34 ihope__, in my experience... polling never works as good as interrupts and exceptions and the like 00:13:36 SevenInchBread: system calls are powered by interupts (at least on x86 linux) 00:13:56 I guess that's true. 00:14:00 bsmntbombdood, yes I know... but you can plug any number of callbacks onto them. 00:14:08 I'm thinking more along the lines of a "hook" 00:14:08 you put the system call number in one of the registers and call int 0x80 00:15:27 http://en.wikipedia.org/wiki/Hooking 00:16:04 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 I got a nice bit of code for you all today 00:45:08 http://rafb.net/p/j5n3ZG98.html 00:45:10 it's in C 00:45:21 good luck figuring out what it does (without compiling) 00:46:10 What's the _ do? 00:46:19 In main(t,_,a) 00:46:20 I have no fucking idea. 00:46:24 but it compiles 00:46:30 and it runs 00:46:32 Presumably it's argv 00:46:37 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 00:49:50 I ran it to see what it does 00:50:01 and I can't for the life of me figure out how the output came out as it did 00:50:02 :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 hi 00:57:53 got disconnected there 00:58:00 -!- Figs has changed nick to F. 00:58:04 -!- F has changed nick to Figs. 01:04:13 oohhh 01:04:15 I get it 01:04:23 the first part of it, at least 01:07:30 oh good grief 01:07:30 >.< 01:30:14 ihope, since the filesystem will be versioned... it makes it nearly impossible to lose data due to a faulty operation. 01:30:44 Are we taking a break from the kernel stuff? 01:30:57 Say, I don't suppose you have a spec for the kernel... 01:31:09 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 well... I did. 01:31:34 but... it wasn't complete... as there was a lot of unanswered things in it. 01:31:36 and I lost it. 01:31:47 which means I'll probably never summon the willpower to write another. 01:52:59 They say something about fruits of labor. I dunno what. 01:53:20 First you decide whether you want to do something, then you act on your decision. 01:59:50 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 ihope: I know nothing about OSs :P 02:32:31 Oh, how nice. 02:32:39 You, bsmntbombdood? 02:34:47 My dad wrote his own :P 02:34:55 Duno what he started with tho 02:35:17 see, the problem with operating systems, is you have to write 34930493094830984 drivers for it to be usefull 02:35:35 Actually, you only need 3. 02:35:59 Actually, like 85% of statistics, that number was pulled out of the space between my ears. 02:36:10 Your dad wrote an operating system, eh? 02:37:17 I need a funny one-liner or couplet 02:38:09 for? 02:38:31 obfuscated program I'm working on 02:38:34 (as the output) 02:39:53 bash.org 02:39:55 find one :P 03:15:35 -!- Pikhq has joined. 03:49:52 -!- GreaseMonkey has joined. 03:56:57 bah ba bah di baaa bah... Bah? 03:57:48 adena? 04:06:25 Adenosine! 04:06:30 Triphosphate! 04:06:49 Gimme an A! Gimma a T! Gimme a P! What's that spell? ATP! 04:08:08 Gimme a P! Gimme an O! Gimme an R! Gimme an N! 04:08:18 oh 04:08:23 at first I thought you were spelling PORK 04:08:28 but then I saw then N 04:08:44 ya... 04:08:46 who wants pork 04:09:01 Gimme an R! Gimme an O! Gimme an F! Gimme an L! 04:11:46 err 04:11:58 or just an s.t.f.u 04:11:59 :P 04:12:20 Gimme an S! Gimme an T! Gimme an F! Gimme an U! 04:12:45 Bigcheese, either that... or you create a wrapper that can interface with the 34930493094830984 drivers that already exist. 04:13:16 hmm 04:13:17 err 04:13:20 no 04:13:21 :P 04:13:22 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 mabey 04:13:27 i duno 04:13:39 that's what linux does... for network adapters 04:13:43 GregorR: that was almost funny 04:13:47 it might even be funny 04:13:53 Doubtful. 04:13:53 in fact, i think it is 04:13:54 :P 04:14:02 ...I smell an esolang idea. 04:14:06 lol 04:14:13 ;p 04:14:15 Gimme a branch! 04:14:20 Gimme a loop! 04:14:29 Branch 04:14:31 Loop 04:14:34 wow 04:14:36 that would be 04:14:37 random 04:15:41 ok, sense this is #esoteric 04:15:46 lets come up with the syntax 04:15:47 Gimme a Gimme an L when I have no Z in X. 04:15:57 X!=Z; 04:16:04 -->F; 04:16:15 //F==L 04:16:16 ....why not do... 04:16:21 For characters we can use their Unicode thingies. 04:16:22 GO F!!!! 04:16:59 Gimme a LATIN CAPITAL LETTER H! Gimme a LATIN SMALL LETTER E! Gimme a LATIN SMALL LETTER L! ... 04:17:21 Gimme a UNICODE CHARACTER 0133! 04:17:53 No, it has to be Gimme a LATIN SMALL LIGATURE IJ! 04:18:21 hmm 04:18:26 it would be like 04:18:46 Gimme a H and put it in var foo! 04:18:47 :P 04:19:00 ...you people are terrible. 04:19:11 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 Francais 04:19:45 ... 04:19:52 We've got , yes we do! we've got , how bout you? 04:19:56 For outputting BugSophia: Gimme a RUNIC LETTER STAN! 04:19:58 Gimme a JAPANESE KANJI ichi. 04:20:08 Bigcheese: no, Français. 04:20:09 ? 04:20:12 wow 04:20:13 anyway 04:20:15 - 04:20:23 would be one thing ichi could be 04:20:29 :P 04:20:35 * SevenInchBread ...should implement bugSophia 04:20:53 Gimme a JAPANESE KANJI KIN. 04:20:54 Figs: that's a Unicode character? 04:21:07 should be 04:21:42 Gimme a RUPTURE, SPLIT APART, COLLAPSE! 04:21:51 (U+5D29) 04:22:01 ???? 04:22:04 WOW 04:22:05 WTF 04:22:10 So what's this JAPANESE KANJI ichi look like in UTF-8? 04:22:12 Bigcheese: what? 04:23:00 ....you know... they don't have to be gimme a somethings 04:23:03 +all 04:23:08 im trying to get mIRC to send unicode 04:23:17 ?? 04:23:17 SevenInchBread: only the characters. :-) 04:23:21 mIRC can barely /receive/ Unicode :P 04:23:36 ya... 04:23:39 piss me off 04:23:49 4E00 04:23:57 Gimme a ! 04:24:17 Gimme a KOREAN man! 04:24:20 どうぞ 04:24:24 (the word) 04:24:24 bah 04:24:24 die 04:24:31 ? what... :P 04:25:48 Gimme a KOREAN HANGEUL 04:26:01 http://www.omniglot.com/images/langsamples/smp_hangeul.gif 04:26:05 Gimme a HEBREW LETTER ALEF! Gimme a LOW LINE! Gimme a DIGIT ZERO! 04:26:06 We've got , , , 04:26:29 don't 04:26:35 We've got Spirt! Yes we do! We've got Spirit, how `bout you? : 04:26:47 ....YOU PEOPLE ARE TERRIBLE 04:27:05 ...but... something like that 04:27:23 what will we call this esolang? 04:27:27 Cheers? 04:27:30 yes 04:27:31 ihope: The kanji "Ichi" looks something like this (my IME is temporarily borken): - 04:27:31 ... 04:27:36 YOU PEOPLE ARE TERRIBLE AT NAMES ALSO 04:27:37 yes, it does 04:27:42 call it pep rally 04:27:47 if you are trying to say one 04:27:55 Bigcheese: Well, yeah. 04:27:56 ????? 04:28:12 ????????? 04:28:15 ???? 04:28:23 quesion marks ftw 04:28:29 that's not question marks :P 04:28:36 to me it is :P 04:28:36 it's japanese 04:28:41 i can see other peoples jap 04:28:42 Pikhq: Unicode calls that thing a . 04:28:43 yeah you ?? 04:28:44 like Pikhq 04:29:06 whoo. Dawkins. 04:29:11 @_@ 04:29:12 two hour video 04:29:32 Figs: Your IRC client is borken: it doesn't send Unicode at all. 04:29:42 so is mine 04:29:42 could be :P 04:29:45 sadly 04:29:49 but I've talked to people in Unicode 04:29:54 so I doubt it 04:29:57 *Japanese 04:32:43 こにちわ 04:32:45 OMG 04:32:48 work? 04:32:55 no... 04:33:00 bah 04:33:02 worked on my clien 04:33:03 t 04:33:05 finaly :P 04:33:21 I get a w/ ~, box, ", a~, box, <<, a~, ... etc 04:33:25 おめでとう。 04:33:29 i see that :P 04:33:41 Figs: Do you happen to *use* Unicode at all? 04:34:02 Me personally? or the software I use? 04:34:15 I use it 04:34:17 on MSN 04:34:23 works fine 04:34:26 :P 04:34:56 こにちわ 04:34:56 -!- Figs has quit (Connection reset by peer). 04:35:05 ? 04:35:15 BTW, that's こんにちは。 04:35:39 bah 04:35:58 it's stupid 04:36:06 i have to set an unreadable font for it to work 04:36:14 -!- Figs_ has joined. 04:36:19 wtf? "There's no great leap, really. You can think of chimps as MS-DOS and humans as Windows 2000." 04:36:46 Figs_: Inapt comparison. ;) 04:36:59 Perhaps chimps == Windows, humans == anything else? :p 04:37:00 I'm quoting a dawkins video 04:37:03 Ah. 04:37:22 Windows = works 04:38:01 In other news, 1 = 2; all mathematicians resign. 04:38:16 私は学生。 04:38:21 I think thats right 04:38:25 if you can even see it ;/ 04:38:27 You forgot a verb. 04:38:34 err 04:38:35 oh 04:38:36 ta 04:38:37 ya 04:38:38 it's 04:38:48 It doesn't show up here 04:38:54 Either "です" or "だ". 04:39:05 私だ学生。 04:39:23 im reading http://www.guidetojapanese.org/ 04:39:28 which seems to be rather good 04:39:35 What you're saying is roughly equivalent to "I student." 04:39:49 No, wait. 04:39:58 You actually screwed the second one up even more. 04:40:03 wow 04:40:05 i pwn 04:40:05 :P 04:40:06 "am I student." 04:40:07 which version of Japanese are you using? 04:40:13 Figs_? 04:40:13 lol 04:40:16 -!- Figs_ has changed nick to Figs. 04:40:24 Figs_: He must be using /dev/urandom/Japanese. 04:40:32 there are multiple ways of encoding Japanese :| 04:40:34 Bigcheese: Verbs in Japanese go at the *end* of the sentence. 04:40:34 I'm using nub 04:40:50 * Bigcheese asks the japanese kid on his msn 04:40:50 Figs: He said "watasi da gakusei." 04:41:09 da? 04:41:13 not wa/ha 04:41:16 Figs: Yeah. 04:41:29 and no desu :P 04:41:39 No, it's there. 04:41:42 In the wrong place. 04:41:46 :P 04:41:49 da is state of being 04:41:50 (da is plain form desu, after all) 04:41:58 私は学生だ. 04:42:00 THERE 04:42:03 There you go. 04:42:12 That, while informal, is perfectly correct. 04:42:19 oh, I see 04:42:28 he meant "Watashi wa gakusei da." 04:42:33 japanese cast system is stupid :P 04:42:41 cast? 04:42:42 And he finally got around to saying just that. 04:42:46 yes, cast 04:42:57 never heard of a cast system 04:43:00 another term maybe 04:43:01 ? 04:43:14 http://en.wikipedia.org/wiki/Cast_system 04:43:53 oh, that kind 04:43:59 Honorifics 04:44:01 that's usually "caste" 04:44:06 bah 04:44:14 I thought you meant like 04:44:37 (cheese*)&Swiss; 04:44:40 lol 04:44:46 And so I was scratching my head there :P 04:44:48 thats what i was thinking when i wrote it 04:45:27 -!- RodgerTheGreat has joined. 04:45:35 hi everybody 04:45:38 hi 04:45:44 hello! 04:45:57 what's going on in #Esoteric this evening? 04:46:13 talking about Nihongo, Unicode, and making a cheering esolang 04:46:22 cool 04:46:30 what's nihongo? 04:46:30 (although I think they were joking about that) 04:46:36 Japanese 04:46:40 ah 04:46:49 Nihon = Japan, go = language 04:47:02 I can see how that can lead into discussions about Unicode 04:47:14 it was sort of the other way 04:47:22 Cheering -> Unicode/Japanese 04:47:24 haha 04:47:38 instead of 04:47:38 Figs: that was no joke 04:47:42 we need a syntax still 04:47:44 oh, you're gonna do it? 04:47:57 Mabey, if it's simple 04:48:18 well, we have possible branch and print... 04:48:22 what else do we need...? 04:48:24 loops 04:48:28 is the goal to make the source look like cheering? 04:48:37 yeah... 04:49:18 We need some form of function 04:49:24 "Gimme a [single letter variable names] ... What does it spell?" could be some kind of group evaluation 04:49:25 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 Flush the buffer? :P 04:49:54 Thats too 04:49:56 uselless 04:49:59 yeah 04:50:04 I want a usefull lang, that looks like that :P 04:50:37 ok, first someone list out a bunch of cheers 04:50:42 well, the What's that Spell? 04:50:45 can be the Print 04:50:48 and the Gimme a/an 04:50:54 can be a way to build strings 04:50:54 could be input! 04:51:12 I can't hear you! 04:51:16 :) 04:51:25 or a multiple parameter math operation 04:51:37 Gimme would be like dim in basic 04:51:39 for vars 04:51:39 use "I can't hear you!" for inpu 04:51:45 t 04:51:56 "I can't hear you" could be used to repeat a block of code, perhaps? 04:51:56 (telling the user to "Speak up" :P) 04:52:04 that's another possibility 04:52:35 but it'd need to take a parameter of some kind to be a useful (FOR...NEXT) style loop 04:52:53 I CAN'T HEAR YOU! AGAIN! AGAIN! AGAIN! 04:53:03 I CAN'T HEAR YOU! LOUDER! 04:53:06 we need paramiters 04:53:06 just a repeat isn't very handy unless we can self-modify 04:53:26 GO TO HELL! 04:53:27 :D 04:53:30 GO HOME 04:53:33 Gimme an INT how do you spell it? i 04:53:46 ooh 04:53:47 :D 04:53:49 nice 04:54:36 that could be useful 04:54:50 dinner 04:54:56 k 04:56:49 ok, now for branches 04:58:51 "IF YOU THINK WE'RE THE BEST, [insert enthusiastic action here]" 04:59:07 actions could include standing up, clapping, cheering, etc 04:59:26 and then you could have "EVERYBODY STANDING UP, [action]" and the like 05:00:05 hmm 05:00:08 ooh! you could also have certain actions be triggered by someone in the "game" "scoring" 05:00:11 we need a way to call a function 05:00:36 If you think i is 5, *** 05:00:45 All statments must end with ! 05:00:46 :P 05:00:49 haha 05:00:55 s /:/! 05:01:26 er 05:01:31 s /;/! 05:03:00 only thing i can think of is 05:04:36 If you think i is 5, Go and do foo! 05:04:40 but thats stupid 05:04:42 :P 05:05:39 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 that could be used for variable declaration and initialization of some kind 05:06:35 and if we provide enough control structures, function calls aren't really *necessary* 05:06:43 but they are sexy :P 05:06:47 mainly you just need looping and jumps 05:06:51 but hard too do in esoteric i guess 05:06:59 ya, drop functions 05:07:00 ok 05:07:05 to* 05:07:26 esoteric functions are only for when you want to do stuff recursively, which often serves as a replacement for iteration 05:10:11 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 all you realy need is an if and a jump 05:12:44 you can do anything with taht 05:12:45 that* 05:13:18 yep, as long as we can jump based on a conditional 05:13:58 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 that unconditional jump can just be a while(true) {} loop, even 05:14:35 ya, but i dont want this to be harder than it must be :P 05:14:39 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 gmail working for anyone else? 05:22:21 yes 05:22:57 Works for me. 05:27:22 -!- Pikhq has quit ("Leaving."). 05:28:27 thanks 05:28:52 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 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 Any there any usefull apps made with brainfuck? heh 06:49:33 usefull? 06:49:36 you must be new here 06:50:35 Define 'useful'. 06:50:54 In *theory* there could be a whole lot of useful ones. 06:51:08 Something other than hello world. 06:51:08 there are a few things that are equivalent to various commandline utilities 06:51:11 In practice, we've got the Lost Kingdom, some Brainfuck implementations, and a hell of a lot of fun. 06:51:23 how about the BF DeCSS implementation? 06:51:30 no way 06:51:33 Right. 06:51:34 that ought to count as "useful" 06:51:43 * pikhq has *written* a Brainfuck compiler in Brainfuck. 06:51:45 Aye 06:51:51 . . . Fine, I cheated, using BFM. . . 06:52:51 * pikhq goes to sleep 06:52:58 How many lines is the BF DeCSS implementation? lol 06:53:09 Quite a few. 06:53:20 It is implemented very inefficiently, though. . . 06:53:29 bf is ... 06:54:10 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 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 lol 06:57:13 I can just imagine Firefox in BF. 06:58:00 the code would be a BFM 06:58:03 it'd probably look a great deal like Lynx 06:58:05 a Bifg Fucking Mess 07:09:51 -!- Sukoshi has joined. 07:11:05 hi, Sukoshi 07:11:17 Heya RodgerTheGreat. 07:12:45 I'm going to (probably) link to a blog post where I spew a lot of kool-aid tonight. 07:12:54 About what I feel is the future of programming. 07:12:58 ok 07:13:22 sounds interesting 07:13:48 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 (Like thinking magically that Pascal will come back from the grave.) 07:14:03 heh 07:14:14 as I remember someone saying, 07:14:41 Well, that's the hopeful part of me :P 07:14:41 "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 but I could tell you what it'd be called- FORTRAN." 07:14:58 Hahaha. 07:15:31 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 My essential thrust is that it will be an interactive one (like Forth, Smalltalk, and Lisp). 07:16:20 Except I'll be developing the thesis more effectively by giving a whole bunch of modern examples. 07:16:29 hm. an interesting approach. 07:16:47 And yes, Windows is a stepping stone in it :P 07:16:51 does this imply hardware more suited to these languages? 07:16:57 Maybe. 07:17:39 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 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 Smalltalk is, from what I've read, because the language is based off a VM. 07:18:15 Lisp isn't, but the designs for the old Symbolics processors still exist so. 07:18:32 yeah, so-called "LISP machines" 07:18:51 Yup. One guy is writing simulators for it. 07:19:03 Oh, links for this sort of thing: 07:19:21 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 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 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 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 Heh. 07:23:10 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 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 Forth especially. 07:25:10 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 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 that's kinda the direction I'm working on 07:25:27 Well that's true. My paper is meant for the *desktop*. 07:26:07 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 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 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 heh 07:28:31 What can I say? I love my private property :P 07:28:54 (I'm a social capitalist. I believe that socialism is the means for a cleaner capitalism.) 07:29:05 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 Most definitely. 07:29:58 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 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 GPL is nice, but some of its advocates are a bit on the GPL-way-or-high-way bit. 07:30:45 I personally make everything I release available under the WTFPL or retain it as my own property- one or the other. 07:31:19 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 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 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 in addition, I have some serious doubts as to the reliability of the FSF. 07:37:11 y'know, this lispmachine video reminds me a little bit of Sketchpad. Are you familiar with that system? 07:38:25 Nopes. 07:38:32 http://en.wikipedia.org/wiki/Sketchpad 07:38:40 FSF was actually very very good, once upon a time. 07:39:08 there's a video of sketchpad online- rather long, but an absolutely fascinating piece of history 07:39:11 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 I'll spend the rest of this hour writing an annoying essay about poetry. 07:40:01 I just see them as untrustworthy, in light of the power they wield via the GPL and its adherents. 07:40:22 Ah. That is unmistakably true. 07:40:37 Geeks tend to be odd that way. They all seem to unanimously trust Google too. 07:40:44 Heaven forbid if Google turns on the open community. 07:41:17 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 oh, Google undoubtedly will eventually "eat its parents" in a metaphorical sense- the question is *when*. 07:42:14 Well, Geeks don't seem to learn from past failures. 07:42:17 * Sukoshi shrugs. 07:42:43 there is a difference between "obsessing over past failures" and "learning from past failures", eh? :) 07:42:52 :P 07:46:10 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 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 gtg, gnight 11:27:57 night 11:28:02 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 'morning, folks 15:31:13 -!- Sephh has joined. 15:32:47 I like exponentiation by squaring. 15:40:34 -!- Bigcheese has quit (Read error: 113 (No route to host)). 15:42:51 ihope: cool 16:14:40 It's useful when dealing in modular arithmetic. 16:15:17 ah, DIV and MOD, every coder's greatest friends 16:15:47 I remember how I first learned to use MOD- the redcode instruction set 16:16:35 I've always preferred the '88 standard to the '97 16:21:24 That stuff allows a person to calculate Graham's number. 16:21:55 It's 87, give or take some multiple of 100. 17:49:49 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 ihope: so you know its base 10 representation ends in 87 18:18:09 and its base 2 representation ends in 1! 18:18:26 and its base 5 representation ends in 2! 18:18:31 coincidence? i think not!!! 18:19:52 bsmntbombdood: yep. 18:26:46 i wonder if there's a way to efficiently calculuate a**(b**n) mod x 18:27:36 **? 18:28:16 exponentiation 18:28:36 oh 19:00:07 there is. 19:00:40 however you have to find y so a**(b**n) mod x == a**(b**n mod y) mod x 19:01:20 that is not hard thing if you know number theory 19:02:43 plus, you can replace a with (a mod x) of course 19:03:10 because (a * b)(mod x) = (a (mod x))(b (mod x)) 19:04:13 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 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 x^y mod n = (x mod n)^(y mod n') mod n where n' is the totient of n 20:07:45 are you sure of that? 20:07:52 Yes. 20:08:26 i think it is false 20:08:52 it reminds me of the last time i thought about fermat's little theorem 20:10:15 and if i could remember the counterexample... 20:10:36 y = n' + 1, for a start 20:11:43 and n = p^2, x = p. 20:12:42 because for y > 1, x^y == 0 (mod n) then 20:15:40 so that is a counterexample for any prime p. 20:17:10 i.e. p^(p*(p-1)+1) mod p^2 = 0, but p^1 mod p^2 = p 20:25:06 totient as in euler? 20:26:36 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 > 0 that is 20:29:01 oh, mind you if gcd(x,n) = 1 then it works as ihope said. 20:29:57 isn't that te definition of totient? 20:30:00 *the 20:30:12 because n' is the size of the multiplicative group of those 20:30:34 the totient is the number of x such that gcd(x,n) = 1 yes 20:31:02 and the order of a group element in a finite group always divides the group size 20:31:06 ah indeed, a bit different... i'm a bit off having learned about totient 5 minutes ago 20:32:04 Oh, right! 20:32:10 (i.e. a^|G| = 1 for a finite group G) 20:32:37 * ihope scribbles franctic(al)ly 20:33:30 Bah. 20:33:38 ((not know) i (much (function of totient))) 20:33:46 errr 20:33:55 function-of 20:34:02 (of function totient) 20:34:17 yeah 20:34:23 Mm, you're sure it doesn't work when the exponent is 1? 20:34:48 It seems to work just fine there with a modulus of 10. 20:35:03 you cannot make p^k mod p^2 = p with any k > 1. 20:35:09 x^5 = x (mod 10) 20:35:32 ah yes, because 10 is a square-free number 20:35:40 -!- sebbu2 has joined. 20:35:50 It works for all square-free numbers? 20:35:57 i think so 20:36:00 Square-free moduli, I should say. 20:36:06 now i'm lost 20:36:24 bsmntbombdood: a square-free number is one that has no square factors except 1, I think. 20:36:29 yep 20:36:32 i know 20:36:39 One that has no prime factor twice. 20:37:51 you can easily prove it by proving it for each prime factor 20:38:03 and combining with the chinese remainder theorem 20:38:41 because the totient of n has all p-1 as factors 20:39:51 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 It'd be quite nice if everything to the fourth power ended up having 1 as the last digit. 20:48:54 Naturally, this doesn't work for things not coprime to 10. 20:49:20 of course, but you can use it as a test for coprimality 20:49:44 Then again, everything does come close. 20:49:46 the iterated logarithm is an interesting function 20:50:11 Even numbers that don't end in 0 to the fourth power seem to all end in 6. 20:50:15 log*(2n) = 1+log*(n) 20:50:16 Subtract 5 and you get 1. 20:50:37 i mean log*(n**2) = 1+log*(n) 20:50:47 indeed, that follows because they must be right mod 5 20:50:48 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 it is 1 modulo each prime that isn't a factor and 0 modulo the rest. 20:53:54 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 (again, by the chinese remainder theorem) 20:54:37 Can this be turned into a factoring algorithm? 20:55:58 no idea 20:59:24 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 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 Like Linux? 21:02:17 That's one example. . . 21:02:25 like herd? 21:02:51 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 bsmntbombdood: That's the current one, and it's spelt HURD. 21:03:08 sure 21:03:31 So, that limits the kernel choices to Linux, kFreeBSD, and kNetBSD. 21:03:40 . . . And HURD. :p 21:03:58 what's wrong with hurd? 21:04:36 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 oh 21:05:25 And its politics involve less efficiency than Congress. 21:06:31 The best feature of the HURD I could probably write in FUSE in a week or less. . . 21:06:56 StowFS. Pretty much UnionFS + pkginstall on crack. 21:07:17 but then it's illegal in most places 21:07:27 Um, what? 21:07:34 . .. Oh. XD 21:08:38 The HURD has politics? 21:09:08 Yes. 21:09:34 Does it elect a president every four time slices? 21:09:56 No, they're too busy arguing. 21:09:58 a computational system based on politics! 21:10:27 The idea for my proposition is to go straight to rms, and override said politics. ;) 21:11:13 Computational systems based on capitalism are better! 21:12:05 Yeah. Let Microsoft compute it all. 21:12:53 If we have Microsoft compute at all, they're charge us lots of money. 21:13:28 But they're the only computing entity. 21:13:31 If we split it between 30 companies, chances are they'll all charge fair prices. 21:13:49 If they're the only computing entity, then theoretically, anyone who makes another will become rich. 21:14:21 But what if they're the only people who know math? 21:14:40 Then anyone who learns will become rich. 21:15:49 Should MS want to keep their monopoly, no, that person won't. 21:17:25 Why not? 21:17:31 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 "Get The Facts: The *Truth* About Mathix and Their Bad Math" 21:18:36 because after k only parts relatively prime to n will change 21:18:39 Microsoft will say that the learner does math badly? 21:19:03 And the business world listens. 21:19:30 "Get The Facts: The *Truth* About Microsoft and Their Crazy Rumors" 21:20:43 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 Come back, and discuss. 21:24:06 -!- jix has quit (Read error: 110 (Connection timed out)). 21:35:46 Interesting. 21:42:38 Please output a prime with 2096 binary digits in decimal 21:43:01 no 21:44:20 [Error: programmer doesn't want to.] 21:44:35 no, interpreter doesn't want to 21:44:39 ^^ 21:44:45 Right. 21:44:47 Thats why i first joined this chan :P 21:44:54 i saw the IRP or w/e its called 21:46:02 the story pikhq linked to is actually *about* IRP in one sense 21:46:26 somone linked? 21:47:01 yeah 21:47:29 didn't someone here have mathematica? i'm sure it must have a large prime function. 21:47:48 http://downlode.org/etext/power.html 21:47:54 I have mathematica 21:47:56 or maybe it's not the calculation that is the problem here :) 21:48:24 you could just look up primes on a prime table 21:48:29 although, I don't know how to use it to generate arbitrary primes without programming a sieve or something 21:48:29 there are sites for that. 21:49:16 RodgerTheGreat: just pick a few random numbers of the right size. 21:49:24 RodgerTheGreat: random number, set first and last bits, while not prime, add 2 21:49:28 ok, maybe a few thousand. 21:49:44 use something like miller-rabin for testing primality 21:50:05 i'm definite mathematica has an isprime function or something. 21:50:15 maybe 21:50:38 if anyone wants to write a function for mathematica based on the manuals, I'd be glad to evaluate it 21:50:45 by the prime number theorem, about ln(10^2096) numbers will be needed. 21:50:54 -!- jix has joined. 21:51:08 10? 21:51:16 someone write a prime finder in BF 21:51:18 eh, 2 21:52:51 ln(2) * 2096 21:52:56 logarithms are so neat 21:53:09 2096? 21:53:36 ? 21:58:37 < bsmntbombdood> Please output a prime with 2096 binary digits in decimal 22:06:02 Do you think it's possible to compute with prime numbers? 22:07:36 fundemental theorem of arithmatic 22:10:04 Maybe we could create a computing system out of adding them. 22:10:17 Or just incrementing them. 22:11:22 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 You only get one such register. 22:21:13 Someone print a prime of the form "n^m", where n and m are integers. 22:21:14 :p 22:21:40 ... integers greater than 2. 22:22:00 oh no! 22:30:56 * ihope ponders 22:31:15 Nah, just make it a Gaussian integer. 22:31:32 Gimme a Gaussian prime. 22:39:45 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 22:44:31 ? 22:44:36 how about 2? 22:46:38 2 is a Gaussian prime? 22:47:45 no 22:48:02 * pikhq snickers 22:51:58 (1 + i) (1 - i) = 2, maybe 22:53:18 Maybe? 22:53:27 Yes, they're equal. 22:53:37 1^2 - i^2 22:53:59 my powers of mental calculation are a bit exhausted after trying to fix a wikipedia article 22:54:43 3 may be a Gaussian prime then 22:57:31 * ihope ponders 22:57:52 2^2 - 1^2, or (2 + 1)(2 - 1), except that's really 3*1. 22:58:29 "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 is an integer a gaussian integer? 22:59:16 yes 23:01:33 a gaussian integer is m + n i where m and n are integers. 23:01:44 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 hmm, how can i dl a picture in python if i have the url? 00:05:57 urllib 00:06:47 8 is a prime in {x | x \in Z, x > 2} 00:10:46 Hmm... 00:10:49 * ihope__ scribbles 00:11:00 Actually, yes, it is. 00:13:04 -!- ihope has quit (Success). 00:17:41 -3 + 2i 00:17:42 gaussian prime i think 00:18:09 1 - 256i 00:21:58 10 + i 00:24:08 * bsmntbombdood bored 00:24:36 4 + i 00:26:38 of course if m^2 + n^2 is an ordinary prime then m + n i is a Gaussian one. 00:27:42 of course? 00:28:07 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 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 night everyone 11:23:20 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 am i here? 20:00:13 no 20:05:04 damn 20:05:09 i'll retry later 20:28:47 heh 21:22:32 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 21:33:53 -!- calamari has joined. 22:02:36 I think you can tell a loony by the length of the front page of their website. 22:02:52 e.g. the time cube guy has a long front page 22:03:05 as do many conspiracy-theorists 22:03:13 and Richard Stallmann :-P 22:04:35 -!- Bigcheese has changed nick to Bigcheesegs. 22:07:24 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 ihope: eh??? 22:38:07 Or by "loony" did you mean "crazy person"? 22:38:59 yes 22:48:52 rms is funny 23:07:39 -!- sebbu has quit ("@+"). 23:17:24 -!- SevenInchBread has joined. 23:27:21 -!- GreaseMonkey has joined. 23:29:09 http://deadbeefbabe.org/paste/4404 :) 23:29:54 hehe, i like the name of that domain :D 23:29:58 0xDEADBEEFBABE :D 23:35:06 0xDEADCAFEBABE 23:36:30 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 SevenInchBread! 00:37:23 http://bsmntbombdood.mooo.com/hyper4_imag.png 00:37:28 http://bsmntbombdood.mooo.com/hyper4_imag1_2big.png 00:37:33 http://bsmntbombdood.mooo.com/hyper4_imag0_2.png 00:37:36 super coolness 00:38:11 -!- ihope__ has changed nick to ihope. 00:39:19 -!- pikhq has joined. 00:47:09 !!!! 00:49:19 Yay, we have a kernel spec thingy! 00:51:05 ....we do? 00:51:58 Close enough, anyway. 00:52:19 What you posted on AbraSophia some while ago. 00:53:53 * SevenInchBread thought that it failed 00:55:41 yeah... basically that's the entire spec. 00:55:45 extremely basic for now. 00:55:57 if problems come up or if something was unaddressed (like hardware)... I'll just add it later. 00:57:33 hardware interupts will probably be handled by the kernel via an immediate context switch to a driver or something. 00:58:12 ...maybe not immediately... hardware is important, but you don't want to freeze up everything because of a slow hardware operation. 00:59:24 spaces handle pretty much any information about memory you could want... 01:01:29 ....but... I have no clue how to implemetn all of this into low-level registers. 01:05:39 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 ...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 bsmnt: working on a modular C bot :D 01:33:15 oh boy 01:34:06 it's currently on #botpark 01:34:23 it's called BrassMonkey but it has the UnBot nick to save reregistration 01:34:43 $reload all 01:34:43 Reloading ALL modules 01:34:43 * UnBot inserts shells and cocks 01:36:51 j00 r teh clevar! 01:37:35 ihope, swap file? or swap partition? 01:37:43 file sounds more painless to me. 01:37:51 but I might be wrong. 01:39:58 no 01:40:02 files get fragmented 01:46:52 partitions don't? 01:47:02 no... 01:47:10 partitions are continguous on the disk 01:47:55 hmmm... files aren;t though? I thought all the data in a file was right close together. 01:48:07 no 01:48:18 Although some filesystems try to avoid fragmentation. 01:50:38 but wait... isn't fragmentation only a problem when you read the data sequentially? 01:50:59 And when you try to write more to a file. . . (that's how fragmentation occurs) 01:52:09 no no, I know the -cause-... but does it really matter that much if you're not reading the data sequentially? 01:52:33 Not really. 01:52:39 yeah... will probably go with a swap partition though... simply because it avoids fragmentation altogether I guess. 01:52:51 Unfortunately, sequential data reads is rather common. 01:52:55 are, even. 01:53:05 >.> on a swap file? 01:53:11 No, in general. 01:53:35 I imagine a swap file being read at random chunks. 01:53:44 small sequential strips 01:53:48 SevenInchBread: doobey foober, dlong dop 01:53:54 :) 01:54:12 SevenInchBread: If you've got large programs, make that large sequential strips. 01:54:26 ah 01:54:58 yeah okay... I'm out of arguments... for something I don't really think would make sense. 01:55:02 I recommend that you try using a filesystem which avoids fragmentation. . . 01:55:19 In addition to a swap partition. 01:56:39 (most Unix filesystems. ;)) 02:00:17 * SevenInchBread shall make his own... just for the hell of it. 02:00:42 Why not use ext2? 02:00:57 ....because I'd like to try making my own 02:01:13 *shrug* 02:01:22 sheesh, if I wanted UNIX I'd just use it. 02:01:38 I'll port ext2 sometime later, so you can get a decent quality filesystem. 02:02:10 . . . If I( care enough to. 02:02:11 sure... if all goes right the filesystem wouldn't be hard at all to change. 02:02:39 ....still haven't written a single program for this OS though... I need to practice assembly/C 02:05:22 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 the elphant-sized files... your images, audio, video stuff. 02:06:19 will usually be close together in a directory tree.... usually. I have no empircal evidence to back that up. 02:06:28 but I assume people put there music together in one place. 02:09:53 ...you could even get fancy with it and have the OS "remember" how files tend to be accessed. 02:10:16 so you have different behaviors for different files. 02:11:34 * SevenInchBread doesn't necessarily care about simple. 02:14:55 Oh, also... 02:15:23 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 Unless you have a compelling argument against it, that's what we'll do, okay? :-) 02:18:37 ? 02:19:28 I have three hatless system calls here... 02:19:43 And two of them may be unnecessary. 02:20:58 Actually, every system call I've put down so far except one are probably unnecessary. 02:21:09 Maybe two are necessary. 02:23:15 the only needed system calls are 's', 'k', and 'i' 02:23:20 and 'i' is just for optimization. 02:23:33 :-) 02:23:41 Don't you want a ` system call as well? 02:24:01 hehe :D 02:24:15 Really, all you need is * and i... or 0 and 1. 02:24:18 though SII(SII) causes an infinite loop 02:24:24 Depends on whether you want your kernel to be Iota or Jot. 02:25:00 I prefer the system call "Lambda". 02:25:10 -!- Sgeo has joined. 02:28:50 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 SevenInchBread: what are you saying? 02:29:38 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 it serves as an abstraction barrier of sorts. 02:29:53 How will processes communicate? 02:30:04 >.> messages? 02:30:12 And sending a message isn't a system call? 02:30:38 .....got me there. 02:30:51 okay.... hatful and hatless... :) 02:30:59 * SevenInchBread didn't think about that. 02:31:45 addd that to the spec... with a brief explaination of why. 02:32:22 so far the only hatless one is the message passing... but I'm sure there are a few more. 02:33:01 what is a hat? 02:33:16 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 it's a prviledge flag on processes that determines whether or not they can use certain system calls. 02:33:54 originally it was ALL system calls... but I forgot that certain calls are pretty much necessary. 02:34:12 the full term is "magic hat"... simply because it sounds cool. 02:35:39 ihope, and I think the filesystem should recognize file types... like osx does now. 02:36:17 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 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 ...images, on the other hand... are generally read, decompressed to bitmap, edited, and then saved back all in one huge write. 02:45:23 ....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 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 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 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 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 ihope, there won't be a read permissions for files. All files are readable by anyone. 21:14:36 Why? 21:15:40 ....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 NEXT! 21:16:36 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 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 passwords? 21:18:43 anti-chinese government propaganga? 21:18:44 passwords sounds good. :) 21:18:51 *propaganda? 21:19:13 oerjan, ...that's actually a good point. I guess privacy would be nice. 21:19:45 i guess you _could_ get away from it with a good encryption system. 21:19:56 Does linux have password protection built into its filesystem? 21:20:04 which might actually be safer in case someone stole your harddisk. hm... 21:20:15 oerjan, steganograpic file system. 21:20:52 linux has ownership protection, and various ways of authorizing logins. 21:20:54 well... not a stego filesystem... but... a filesystem that lets you hide the existence of something. 21:21:00 rather than simply garbling it up. 21:21:21 I think password protection would be a good addition to the filesystem. (haha... talk about a change of heart) 21:21:31 i've never really looked into encryption filesystems other than knowing they exist. 21:21:44 steganography is really interesting. 21:21:59 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 21:22:21 actually passwords are pretty weak. i am almost thinking having _just_ encryption and no read permissions is an improvement. 21:22:50 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 yeah. 21:23:45 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 passwords -> passphrases for encryption 21:24:48 -nodnod- but they're succeptable to brute-force searches. 21:24:53 which machines can easily do. 21:25:02 they should be long passphrases. 21:25:06 it is however... pretty effective against people. 21:25:36 heh... my universal password for everything consists of five letters... 21:25:51 there... you now have pretty much have access to everything I do. 21:26:54 well mine are about 8-10, but i am somehow assuming the important ones are not available for brute-force search. 21:28:09 some global mode type things would be useful too... so you know how to optimize. 21:28:26 hm? 21:28:46 like "keep this file compressed"? 21:29:14 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 ...but it's a pain in the ass to do the check every time. 21:29:41 unless you just have to. 21:30:31 ...but, that may be too general. 21:30:43 since what "low memory" is... varies from application to application. 21:30:53 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 -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 a simple interface is important... a simple implementation not so much. 21:33:31 I'd say read permissions are essential. 21:33:58 for what? I've never seen a use for them myself. 21:34:04 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 eh... doesn't sound fun. 21:36:11 For protecting data. 21:36:19 Passwords, etc... 21:36:28 Anything that needs protection. 21:36:38 of course it goes with the Principle of Least Authority, so it's fairly heavy security 21:36:59 well... the only reason I would use a read permission is privacy... HOWEVER. 21:37:04 read permission offers no protection. 21:37:20 No protection? 21:37:23 it doesn't protect the file.... write permissions protect a file. You can't hurt a file by looking at it. 21:38:00 Privacy isn't endangered by changing a file. 21:38:17 -nod- I know. two different purposes. 21:38:38 read - privacy. write - protection. execute - non-fuck-up-your-computer-acy 21:38:42 If you want to store passwords, you need read permissions. 21:39:03 not in the typical unix sense of read permission. 21:39:08 No? 21:39:21 What do you mean? 21:39:30 it is, linguistically speaking, a permission to read. but it's not a "unix read permission". 21:40:03 passwords, methinks... are also easier to manage than read permissions for privacy. 21:40:21 encryption can do most of the read protection, but you need somewhere to store the system's initial codes... 21:40:27 now instead of having to add a new user the read permission... you can just tell her the password. 21:40:46 iniital codes? whatcha mean? 21:40:51 What if she doesn't want to remember the password? 21:40:57 .......... 21:40:58 Or type it in all the time? 21:41:03 Or something? 21:41:07 .....hahahaha 21:41:19 "AAAARGH REMEMBERING A PASSWORD - GOD DAMNIT" 21:41:26 I guess all you need is one password. 21:41:30 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 I would also say a password is more secure from people than a user permission. 21:41:51 How? 21:41:52 if you leave your computer... someone can't sneak up and look at the file. 21:42:07 That's why operating systems have a "lock" feature. 21:42:14 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 ihope, not everyone does that. 21:42:59 passwords ensure that the password is entered each time.... or (optionally) once in a certain span of time. 21:43:22 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 I guess theoretically you only need one password. 21:43:47 seriously, no one wants to enter passwords all the time. 21:43:52 people rarely make something private out of convience. 21:43:55 they'd like to keep it that way. 21:44:31 Now, if you're the only one with access to a computer, passwords aren't needed at all. 21:44:42 if you don't want to type in a password... then don't give it a password. 21:44:45 right... 21:44:48 Push the button and boom, you're logged in already. 21:44:54 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 If you don't give it a password, then other processes will be able to get at it. 21:45:21 You want to keep things safe from other processes if not other users. 21:45:44 right... so? 21:46:05 I don't know of anyone who wants to be lazy about keeping something hidden. 21:46:34 Even if being lazy has no effect on security? 21:47:00 Now, if read permissions are implemented, you could always disable them. 21:47:09 there's no way you can convince me that user-based permissions are of equal security to read-based password locks. 21:47:51 ...of course... this little squabble has a fairly simple compromise. Both are possible at the same time. :P 21:48:00 I keep forgetting why encryption is more secure than user-based stuff... 21:48:31 passwords are by no means crytographically secure. 21:48:41 I didn't say passwords. 21:48:57 -nodnod- I was just saying... not necessarily in opposition. 21:49:12 er... I mean... it wasn't a rebuttal. 21:49:37 My conclusion is that they're equal, since one can easily simulate the other. 21:50:00 As long as you don't let every process read every other process's memory. 21:50:02 they are not equal if someone can get direct read access to your disk 21:50:03 I see a huge difference.... but I also see the comparitive benefits and drawbacks of both. 21:50:06 so.... I'm all for both. 21:50:50 If there are user-based or process-based permissions, that doesn't stop you from encrypting everything. 21:51:15 And the lack thereof doesn't keep you from simulating them, as long as you can supply a password. 21:51:47 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 if you're insanely paranoid, use both. 21:52:47 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 Are you saying that everyone who uses both is insanely paranoid? 21:53:41 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 no... either paranoid... or has a huge secret. 21:54:34 So if you use both and don't have a huge secret, you're paranoid. 21:54:46 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 So we couldn't just offer read permissions and let the non-paranoids without huge secrets choose between those and encryption? 21:56:36 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 Do you disagree? 21:57:49 >.> I thought we decided to do both? but it seems like we're still debating for some reason... 21:57:54 <.< 21:57:58 Do both? 21:58:22 Offer them but don't force them, in other words? 21:58:42 If so, I'm happy. 21:58:42 of course. I never even mentioned forcing them. O.o 21:59:05 I see a huge difference.... but I also see the comparitive benefits and drawbacks of both. 21:59:06 so.... I'm all for both. 21:59:26 Indeed. We'll offer them. 22:00:07 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 the most complicated part of designing the filesystem, I think, will be version control. 22:02:32 but basically I see two operations for that... reverting a file modification... or reverting a data modification. 22:02:55 like the difference between ctime and mtime in unix... but with versioning. 22:03:41 ...and then a way to associate names/numbers to certain snapshots.... like tags in svn. 22:03:55 python.exe@2.1 22:15:56 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 fs defmacro (move, (x, y), copy (%x, %y); del (%x)) 22:20:54 ...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 http://deadbeefbabe.org/paste/4423 <--awesome 01:53:44 run that 01:56:03 not aweseome 02:11:26 .... 02:11:31 HOW CAN YOU SAY THAT 02:11:55 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 congradulations! 03:59:25 First time in months. 03:59:40 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 :-S http://heresabunnywithapancakeonitshead.com/ 11:25:08 * SimonRC cannot follow what thatpython code does 11:26:53 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 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 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 ha 03:35:27 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 Hello 08:40:44 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 I think I saw the output of a TeX pi & e generator once 08:44:58 This is actually an excellent place to ask that, but I'm afraid I don't have any :P 08:45:35 hehe 08:45:41 well me neither, and im bloody stuck 08:45:49 anyway, If I do find any.. ill link it 08:52:55 argh!!!! http://home.imf.au.dk/grove/tex.html 08:58:23 That's infuriating X-D 08:58:55 According to archive.org, it's been like that since 2001 :P 08:59:13 FUCK!!!! 08:59:15 :D 09:01:46 you said the magic word, now anything you say will be accepted for bash.org 09:04:16 aw shit 09:04:27 anyone know how to use tr to replace some char with unicode? 09:04:37 i tried like LC_CTYPE=UTF-8 ; echo hello | tr e \343\201\204 09:04:39 no luck :| 09:11:26 -!- calamari has quit ("Leaving"). 09:25:44 -!- Rodger has joined. 09:25:55 how's it going, everyone? 09:26:40 Rodger: dide 09:26:41 er 09:27:16 * fax verry annoyed at tr 09:27:47 hunh? 09:27:59 man :/ 09:28:07 I want to replace some ASCII chars with unicode characters 09:28:11 I cant get tr to do it 09:28:18 have to use fucking perl or somthing 09:28:24 but i really need to do it with tr 09:29:42 I wasn't aware that tr had unicode support 09:29:50 it doesnt afaict 09:30:02 & cant abuse it into doing what I want :| 09:31:47 man fuck this 09:31:56 I have to string together like 16 sed commands 09:32:11 lol 09:32:24 sounds oddly appropriate for this channel 09:32:29 hrm sed y/// might work 09:32:56 sed: 1: "y/x/つ/ 09:32:56 ": transform strings are not the same length 09:32:57 >_< 09:33:23 why is unix so crap?! 09:35:45 oh 09:35:49 I have a horrible hack 09:36:03 echo "xyz" | sed -e 'y/xyz/\343\201\244/' 09:36:07 produces some unicode 09:36:23 so I suppose I can replace every letter with a corresponding 3 char code 09:36:36 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 hm 09:36:51 might work 09:37:04 oh shit 09:37:14 to do that id have to string together multiple sed expressions 09:37:22 and I may as well replace w/ unicode directly 09:37:26 so actually, thats no use :| 09:38:33 ugh 09:38:41 sed -e -e -e -e -e it is 09:44:18 -!- jix__ has joined. 09:45:13 oh crap 09:45:15 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 its replacing _most_ of the characters 09:45:28 thats just awful. 09:45:32 I think I give up 09:45:47 oh wait im thick 09:45:53 has to be s///g 09:46:27 *phew* 09:46:27 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 :D 09:46:34 matrix effects: D 09:46:34 wow 09:47:09 lool 10:00:17 yeah 10:00:25 Rodger: did you run it? did it work? 10:00:37 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 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 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 something for your esoteric reading pleasure: http://www.saint-andre.com/jabber/telnet.txt 20:59:49 -!- calamari has quit ("Leaving"). 21:11:05 ewww xml 21:12:34 How Jabber users transfer images: http://www.codu.org/rxml.php 21:12:36 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 hi, guys 04:18:38 -!- calamari has joined. 04:29:33 -!- Figs has joined. 04:34:21 c++ is the most esoteric language of them all :/ 04:35:34 are you sure? :P 04:35:35 It stops being esoteric when knowledge of it is a normal requirement for a CS course. 04:35:38 C can be worse 04:35:49 (although it can still be fucking weird as hell) 04:36:11 O_o 04:36:11 http://static.flickr.com/120/304387877_3fb38f8156.jpg 04:36:24 "My God! It's full of cars!" 04:37:03 kudos if you know what webcomic that's used as side-joke in 04:37:15 and what language they were refering to. 04:37:17 ;) 04:37:19 spaghetti! :) 04:37:25 The *language* is Lisp. 04:37:26 hehe 04:37:35 pikhq gets half a kudo. 04:37:44 what's the comic? :) 04:37:47 Hmm. 04:37:53 *Could* be xkcd. . . 04:38:00 But I'm not sure 'bout that. 04:38:11 bingo 04:38:13 :) 04:38:31 http://xkcd.com/c224.html 04:38:34 http://xkcd.com/c224.html I'm right, indeed. 04:38:38 :) 04:38:50 * pikhq gets a full kudos 04:38:58 :D 04:40:16 True or False: "props" can be used as a verb. 04:40:25 True. 04:40:47 "He props up the sign" 04:40:59 What case/tense is that? 04:41:06 Good question. 04:41:11 Dunno. 04:41:24 I could tell you were it in one of my *non*native languages. :p 04:41:37 :P 04:41:54 ooh 04:42:03 Finnish apparently has ___ grammatical cases? 04:42:10 ;) 04:43:20 I think it's 15... 04:44:08 Don't speak Finnish; can't help you. 04:44:19 neither do I 04:44:23 :P 04:44:30 but some wikipedians apparently do 04:44:44 * pikhq does Japanese and Esperanto (to varying degrees of ability) 04:45:58 what is the past tense of 'eat' in esperanto? 04:48:44 La hundo vendis horlo^goj. 04:49:09 ^g --> g with ^ 04:49:48 If I ever go back to designing languages 04:50:15 I won't put those obnoxious extra characters into it :P 04:50:27 I'd either make my own alphabet 04:50:38 or use one of the already working ones :P 04:55:21 * Figs pokes pikhq 04:58:08 can anyone give me a list of 20 words in English that stay the same in the past participle? 04:58:21 *past tense 05:04:56 Figs: homework? :) 05:24:30 no 05:24:33 just bored 05:24:33 :P 05:24:44 sorry for the slow reply -- I left for dinner 05:24:50 just got back 05:24:56 any way, you can find a list here: 05:25:00 http://en.wikipedia.org/wiki/English_irregular_verbs 05:32:18 * pikhq returns for not very long. . . 05:32:32 pikhq: 05:32:35 If I could remember the infinitive of 'eat', I could tell you. 05:32:43 La hundo vendis horlogo. 05:32:48 Mi estas esperanta komencanto. . . 05:33:10 Kaj mia esperanto ne bonas. 05:34:31 * pikhq leaves 05:34:38 I barely even know any :P 05:34:51 so even if you are a newbie, it's ok :P 05:34:58 (that's the meaning, right?) 05:35:17 "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 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 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 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 Cool. 23:17:35 awt awt awt 23:18:16 that's not very dense 23:19:34 Q: what's a greek urn? 23:19:39 A: any one where the TLD is .gr ! 23:19:43 *rimshot* 23:19:45 (urn = Universal Resource Name .. a superset of URLs) 23:19:45 -!- SevenInchBread has joined. 23:19:47 (not the ususal punchline, eh?) 23:19:55 * SimonRC goes to bed 23:20:57 lessee, the sun is not optimized for producing the most possible effect. 23:21:21 rather, i assume it produces just enough to compensate for gravitation. 23:21:57 then, the fact that there exist much larger stars indicates that more effect is possible. 23:22:29 also, i think fusion only happens in the core. 23:23:39 oerjan: i suspect the larger ones have lower output per area. 23:24:34 you mean volume? 23:25:41 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 Hello 23:47:26 * fax joins random IRC channels in the hope of finding somthing exciting happning 23:47:45 i thought i saw you here before in the logs? 23:47:52 well yeah ive been here a few times 23:48:04 but Im no good with esoteric languages so I feel bad 23:48:08 in fact you had some question. hm. 23:48:25 oh regarding tr? I gave up and used the less elegant sed commands.. 23:48:42 ah that was it. 23:48:53 tr can do what you want i think 23:49:00 well I was sleep deprived and manic 23:49:10 so I end up writing a one liner matrix screensaver 23:49:20 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 & whats more thats the only line of code I wrote in a week :/ 23:49:32 if I used perl's tr, It would look stupid 23:49:39 like "Why doesnt he just do it all in perl" 23:49:51 aha... 23:49:52 I think anyway.. 23:49:59 tr "a" "b"? 23:50:14 that is one possible syntax. 23:50:19 bsmntbombdood: translate ASCII characters to unicode, it might be possible by setting local env vars or somthing.. 23:50:23 or wait... 23:50:24 I didnt bother 23:50:27 (to find ot) 23:50:41 another (ugly) solution is sed to replace each ASCII with 3 ASCII chars, then tr should work 23:50:45 but thats really.. stupid 23:50:53 a single sed expression or a sed & a tr 23:51:04 i guess tr/a/b/ is more usual. 23:52:11 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 oerjan: 'cos anyone could do it in perl :p 23:54:07 im just trying to accumulate lots of interesting "Bash one liners" 23:56:11 hm... you could use sed to build the sed command. 23:56:34 oo I like that 23:57:09 thats crafty :D 23:57:32 code generation ftw 2007-04-21: 00:02:48 rar 00:02:55 I dont know sed as well as I should :p 00:02:58 * fax looks somthing up 00:04:55 :[ 00:05:00 my sed doesnt support \| :/ 00:06:31 what would you need that for? 00:06:48 for like this\|that, to match "this" or "that" 00:06:54 I suppose ill have to use two expressions then 00:06:57 thats a shame 00:07:43 if you are matching single characters, just use [] 00:07:57 its either a single space, or 3 characters 00:08:11 -!- sebbu2 has quit ("@+"). 00:10:33 does your sed support the -r option? 00:10:43 no :/ 00:10:45 what a crap sed 00:11:02 i think ill just take out spaces 00:11:30 -!- Sgeo has quit ("Ex-Chat"). 00:14:55 grr 00:15:03 why can I have a fucntion named : but not a variable: | 00:16:02 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 a lot shorter! thanks :D 00:16:44 * fax tries to find a secretive name for the variable 00:21:04 uhh 00:21:48 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 ? 00:22:10 @@@@ 00:22:12 1!!!!! 00:22:12 WOW 00:22:17 god damn 00:22:21 bsmntbombdood: thanks a lot 00:22:26 I didnt actually know that you could do that 00:22:32 damn :D 00:25:35 -!- pikhq has joined. 00:27:14 and why the md5 in there? 00:28:25 md5 generates a fixed length string from the characters 0-9a-z 00:28:31 so just hash random data then transform it 00:28:34 makes a matrix effect lol 00:31:52 -!- Sgeo has joined. 01:07:43 -!- oerjan has quit ("leaving"). 01:08:12 so hey this is a good place to ask :D 01:08:18 I was wondering what the most simple languages are 01:08:21 I though 01:08:43 lambda calculus has 3 cases to consider, brainfuck has 7 (if you ignore inputs) and life has 8 cases 01:08:50 but am I missing anything? 01:09:00 wht about 2 4 5 and 6? 01:12:33 fax: single combinator systems 01:12:45 one combinator, one application character 01:13:12 hmm 01:13:48 that sounds very interesting 01:18:05 how can I find out more? 01:19:34 I can't remember the name, but there's a functional language with 2. 01:20:21 Although I'd argue that as far as instruction set goes, Life is the simplest. :p 01:20:36 Really? 01:20:47 Life has 2 states. 01:21:03 And instructions for transformations between these 2 states. 01:21:06 yeah, but the rules of evaluation are somewhat more complex I think 01:21:14 Not all that complex, really. 01:21:56 Really just a 2 dimensional analog of a Turing machine. 01:36:51 pikhq: iota is one that's written up, but there are better ones 01:37:46 http://ling.ucsd.edu/~barker/Iota/ 01:37:47 wow 01:41:27 cool :D 01:55:38 Insert enthusiastic shout of "SevenInchBread!" here. 01:56:35 fax: are you aware of OISC? 01:56:41 no 01:56:49 One instruction computing. 01:56:52 OISC is fun. 01:57:13 The options for that one instruction range from SBN to MOV. 02:00:25 yikes! 02:00:33 OISC is sweet 02:00:34 It's Turing complete. 02:00:38 thats weird 02:00:39 And yeah, it is sweet. 02:01:09 MOV is Turing complete by having special addresses in the CPU. . . 02:01:24 And SBN just gets one instruction that does multiple things. 02:01:29 subleq is nicer 02:01:34 It subtracts *and* conditionally branches. 02:01:36 bsmntbombdood: Yeah. 02:02:25 bloody hell! 02:02:28 thats really crazy 02:02:38 Not really. 02:02:41 I mean about MOV 02:02:48 Still not crazy. 02:02:48 I never thought of thta 02:02:52 I mean like 02:02:55 impressive 02:03:06 A MOV OISC has been implemented in Wireworld, BTW. 02:03:21 (thereby proving Wireworld's Turing completeness) 02:05:19 :O 02:05:35 thats neat 02:06:24 That kind of stuff is why we're here in #esoteric. :) 02:53:02 -!- goban has quit ("Leaving"). 03:01:43 ALRIGHT 03:01:56 so... what are all the options that a context switch system call might need? 03:02:02 so far I've just got a maximum time. 03:02:48 but you could do things like "until system call" or "until sends a messge" or something 03:04:38 Keep the system calls to a minimum? 03:04:46 erm, what precisely do you mean by a "context switch system"? 03:05:02 ...a context switch system call 03:05:30 a system call that switches the context of CPU execution to another processes state 03:05:34 ah 03:06:23 ihope, I don't care about the number of system calls -- that doesn't determine how small your kernel is. 03:06:28 just how limited the interface is ;) 03:06:57 you NEED a context switch system call if you don't want the scheduling algorithm in the kernel itself. 03:07:07 do you have interrupts? 03:07:27 not of the software sort. 03:07:46 but hardware interupts are implied... and I've got a way to handle them. 03:09:22 ok 03:09:55 do you have a method for flagging processes (or whatever) at different priority levels? 03:10:02 -!- RainbowTrout has joined. 03:10:28 RodgerTheGreat, I've got a way to set attributes... so the scheduler can set a priority attribute if it wants. 03:10:48 RainbowTrout, YOU CAN ALREADY TELL THIS CONVERSATION IS A BLAST 03:10:53 INDEED. 03:11:11 Hmmmm... 03:11:20 Hello RainbowTrout 03:11:25 ... 03:11:27 !help 03:11:37 * SevenInchBread quietly ignores that. 03:11:39 I hate your face. 03:11:46 YOUR FACE IS STUPIDER 03:11:49 But not as much as I .. 03:11:50 NO 03:11:52 IT ISNT 03:11:57 oh yeah? 03:12:03 do you enjoy having a nose? 03:12:15 ... Go on 03:12:31 ANSWER THE GOD DAMN QUESTION 03:12:38 NEVER 03:12:56 ~help 03:13:02 ... 03:13:10 -ahem- ignore. 03:13:22 * RainbowTrout swims. 03:22:09 SevenInchBread: what CPU is this for? x86? 03:24:46 probably. 03:25:36 ah, then you should have some interesting/painful hardware features to play with for this 03:29:40 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 .....why do I twitch whenever I hear the word "efficient" 03:30:22 I HATE THIS WORD, FOR NO REASON AT ALL 03:30:28 probably because it should *always* be conditionalized 03:30:38 ....what? 03:30:44 nothing is universally efficient, an oft-missed fact 03:30:46 RodgerTheGreat: that's interesting 03:30:59 I just think of annoying business people and uptight engineer nerd people and SUICIDE 03:31:13 hm 03:31:52 RodgerTheGreat: what if there's less than enough threads? 03:32:09 that's the main issue 03:32:33 and how do you put proccesses at different priorities? 03:32:50 you might be able to design your OS to prevent that from happening, or at least make use of empty threads 03:32:51 ...I don't think it's intended to be the... high-level part. 03:33:02 they don't use priorities at all 03:33:13 ...reminds me of a machine gun 03:33:35 it would be nice if they just had a array of pointers to threads 03:33:49 so you could fill that array fully with one thread to run it constantly 03:33:51 makes me think of a shotgun. "Double barreled", usw. 03:34:20 that could work pretty well 03:34:49 ....how do you use pointers in... hardware? 03:35:12 the nice thing is that a CPU like that would be shit-tons harder to deadlock 03:35:13 SevenInchBread: same way you use them in software? 03:35:20 SevenInchBread: they're called "registers" 03:35:36 RodgerTheGreat: the os breaks in every timer interupt... 03:35:42 so deadlocking should be hard 03:36:02 if the kernel wants to stop you from running, it only has to wait 1/60 second 03:36:15 you = a thread 03:38:49 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 ...IF YOU WANTED 03:40:42 SevenInchBread: meet RProgrammer. :-) 03:41:03 HI :) 03:41:13 And bd_ too, for that matter. 03:41:20 *hides* 03:41:20 Hola 03:41:24 Does anyone use J? 03:41:24 HI BD_ NICE WEATHER YEAH :) 03:41:29 J? 03:41:39 'Lo. 03:41:39 its kinda based on APL 03:41:40 Not Java, I take it 03:41:42 RProgrammer: do you know much about programming for the x86? 03:41:47 No 03:41:51 its not really esoteric.. 03:41:55 * pikhq needs a true test of geekiness. . . 03:42:00 http://www.jsoftware.com/ 03:42:01 Hmm. 03:42:04 Mainly because I'm using a PPC right now 03:42:05 I found it cool 03:42:06 Knowledge of Brainfuck? 03:42:07 bd_: do you know much about programming for the x86? 03:42:34 nope >.> 03:42:56 Hmm. 03:44:55 ....I know a smidgeon. 03:44:58 and only a smidgeon 03:45:25 * pikhq much prefers less esoteric architectures than IA32. 03:47:00 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 I wish I came up with Whitespace 03:47:20 GregorR: I'm obviously kidding. 03:47:42 What I really mean is, of course, that IA32 is a nonsensical architecture, worthy of being esoteric. 03:47:54 :P 03:48:57 Honestly. . . 03:49:22 The current IA32 system I'm using supports IA16, IA32, and AMD64. . . Somehow. 03:50:30 heh 03:50:32 NO SIR 03:50:39 MY OPINION IS SUPERIOR TO YOURS 03:54:55 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 Pff. 03:58:00 Perfection is achieved not when nothing can be added but when nothing can be removed. 03:58:13 Therefore, I must be JObject or TObject or whatever fancy thing it is. 03:59:18 If I were part of the Java API, I'd want to be java.util 03:59:41 it contains so many of my good friends, like Vector and Random. 04:00:03 Ah Random, what happy times they were... 04:01:51 I want a room-sized faraday cage 04:02:02 along with lead shielding 04:02:11 along with concrete 04:02:35 and a generator, I presume? 04:03:01 Power in can be filtered 04:03:19 But I suppose a nuclear reactor would be best for power 04:05:54 so this is becoming more of an underground complex than a room. 04:06:02 which I fully endorse. 04:06:16 underground complexes are awesome for a number of reasons. 04:06:19 Ok, a bunker 04:06:40 A bunker would be sofa king cool 04:07:31 I've always thought it'd be pretty awesome to live in a renovated nuclear bunker. 04:08:27 yep 04:15:48 * pikhq wants an underground complex for house/server warehouse 04:16:02 Can I co-op there? 04:16:30 wow, we all have the same dream 04:16:47 Sure; just pay me for the power usage. 04:16:57 And bandwidth, of course. 04:17:06 Should give you some rock-solid stability. 04:17:23 Pfft, bandwidth, just hack some guy's satellite internet 04:17:28 Survive the nuclear war, it will. 04:17:39 RProgrammer: We're talking "500 T3 lines" 04:17:43 :p 04:17:53 pikhq: but the internet and power distribution networks won't, so it doesn't matter 04:18:04 By some guy, I mean NASA 04:18:06 ;) 04:18:14 ll 04:18:15 lol 04:18:17 bsmntbombdood: Nuclear power in-bunker. . . 04:18:23 The Internet link? 04:18:32 Not so in-bunker 04:18:44 Well, if there's a nuclear war, I'm going to be more about *surviving* than about watching Homestar. 04:18:57 RProgrammer: Fine. In the same mountain. 04:19:13 . . . Hell; I'd just like to take over Cheyenne Mountain. :p 04:19:33 That's pretty sweet 04:19:37 not secure enough though 04:19:44 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 Don't have to leave town, get an underground bunker. . . 04:19:48 Worth it. 04:19:53 RProgrammer: Yeah. 04:20:07 * RProgrammer sighs 04:20:10 Obviously, the idea at that point is to live, not to be online. 04:20:28 pikhq: let's take over cheyenne mountain 04:20:48 Your server will *still* have rock-solid stability. . . Although nobody else will be able to tell, since they'll be dead. 04:20:52 We just have to lock ourselves in, and they'll never take it back from us 04:21:02 So, before it goes down, you download 73% of the internet into your 3 Petabytes of in-bunker storage 04:21:09 bsmntbombdood: Sure; only maybe an hour from here. :p 04:21:18 RProgrammer: Screw 3 petabytes. 04:21:35 I could afford at *least* 100 with all of the co-op deals I'd be getting. 04:21:36 :p 04:21:36 http://en.wikipedia.org/wiki/Image:NORADBlast-Doors.jpg 04:21:45 Don't get too big, 64-Bit won't hold it 04:21:49 that picture makes me hot 04:22:19 RProgrammer: That, um, doesn't matter anymore. . . 04:22:35 if there's a nuclear war, I'm going to want a couple good novels and an offline copy of Wikipedia 04:22:45 The addressing limit was gotten around for hard drives on 32 bit systems. . . In the late 90s. 04:22:55 You can get Wikipedia in 10 gigabytes 04:23:04 I know you can get wp db dumps 04:23:08 not sure of the size, though 04:23:13 ... 04:23:15 And there aren't exactly many OSes which mmap the *entire drive*. 04:23:31 Not memory, NFS 04:23:49 *nfs (lowercase) 04:23:54 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 RProgrammer: Who said anything about NFS? I can use a *much* better system than that. . . 04:24:39 That's why I corrected nfs (lowercase) 04:24:41 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 I despise ambiguous brand names (HD DVD, ...) 04:25:14 hm... maybe an archive of textfiles.org as well 04:25:19 some good reading there 04:25:27 what's that? 04:25:32 Hell. Just get an *orbiting* bunker. . . Large enough to contain everyone you care about. 04:25:41 Oh, nevermind 04:25:53 64-Bit limit is 16384 Petabytes 04:26:01 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 And one needn't worry about that, anyways; that only applies to addressing. 04:26:30 16 Exabytes 04:26:32 RodgerTheGreat: The moon is orbiting, isn't it? 04:26:39 I know, but still... 04:26:45 Although I may want an orbiting *Mars-sized* bunker. 04:26:58 Carry the half of the planet you care about. :p 04:27:00 that kinda ceases to be a "bunker" at that point 04:27:10 It's a very, very large one. 04:27:15 With that you wouldn't have to worry about the internet... 04:27:21 That's the idea. 04:27:32 But you would have to worry about your own nuclear wars 04:27:35 Of course, it'd defeat the purpose by that point. 04:27:38 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 yes 04:27:44 beat to the punch. 04:28:17 Unless you rule a race of genetically engineered little people whose sole religion is to pay tribute in server space... 04:28:32 And make funny YouTube videos 04:29:24 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 "first rule of DynaMars station: Do not talk about the implausibility or inefficiency of DynaMars station." 04:32:16 http://static.wikipedia.org/downloads/November_2006/en/ 04:32:31 Quite right. 04:32:35 1.4GB * 4 for all of wikipedia 04:32:53 Bit more for MySQL and MediaWiki. 04:33:04 that's html 04:33:17 Not wiki markup?! 04:33:26 wha? 04:33:35 you can get an HTML dump now, too? 04:33:39 kewl beans! 04:33:45 yep 04:33:46 see link 04:34:03 ah crap, loading the list of pages crashed firefox 04:34:06 I'd still prefer a database dump. 04:34:07 yeah, damn- that isn't half bad at all 04:34:11 Bit more flexible. 04:34:18 I prefer html 04:34:36 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 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 yep, me too 04:35:38 Gzip is a compression format which uses the DEFLATE algorithm. . . 04:35:53 If I had the hdd space, I would download that 04:36:18 pikhq: I thought it was slightly better than LZ77 04:36:52 * RodgerTheGreat is seriously considering downloading that 04:37:00 I've got a few gigs to spare... 04:37:14 I'm lucky my gigs spare me 04:37:33 * RProgrammer wonders how often they dump it.. 04:37:45 RProgrammer: read. 04:37:51 "November 2006" 04:37:53 I've found it *extremely* handy in the past having a copy of the Java API docs on my laptop 04:37:54 oh wtf 04:38:08 ? 04:38:19 just noticed you can download wikipedia 04:38:21 I wonder if the html or the db dump is bigger 04:38:22 But is that the latest one? 04:38:31 HTML is larger, has to be 04:38:35 HTML might compress better, though 04:38:51 Wiki markup uses templates, ultimate compression 04:39:03 information entropy ;( 04:39:09 think of the entropy?! 04:39:15 I prefer to think of templates as "pre-compressing" data 04:39:19 I'm having trouble finding the sizes for the db dumps 04:39:28 And the Wiki database, IIRC, has compression on the live database. 04:39:32 they do some of the same things a normal compression engine would do 04:39:48 (I could, of course, be wrong as fuck) 04:40:30 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 oh, christ 04:41:09 RProgrammer: I made the same mistake 04:41:58 Browsers should consider Content-Length, not just Content-Type when choosing to view or download 04:42:17 I would file a feature request if I wasn't lazy 04:42:52 "Did you want to save this file to disk, instead of viewing it in your browser? [view] [download]" 04:44:49 hrm 04:44:51 Yes, like they should for PDFs 04:45:01 Poorly worded. 04:45:24 oh wow 04:45:44 "This file is 2000 Petabytes. Would you like to: [view] [download] [cancel request]" 04:45:52 xml db dump is only 2.3GB 04:45:53 LoL 04:46:08 Feels like a good moment to link http://www.codu.org/rxml.php 04:46:25 Shameless whore. 04:46:30 ^^ 04:46:51 raster images in xml? 04:46:53 eeeeeewwwwwwwww 04:47:01 vector, i can understand 04:47:20 HAHAHA 04:47:25 hehe 04:47:30 snicker.. 04:47:52 looool 04:47:54 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 thats like img2 04:49:03 bsmntbombdood: I think it uses something like: 04:49:11 How much in jpeg? 04:49:21 04:49:37 :| 04:49:38 RProgrammer: That's a tarball of the JPEGs, PNGs, and SVGs. 04:49:41 why dont they just use SQL 04:49:53 fax: They also offer MySQL dumps. 04:50:05 oh god :| 04:50:16 http://meta.wikimedia.org/wiki/Data_dumps#What_happened_to_the_SQL_dumps.3F 04:50:24 . . . Apparently not. 04:50:56 Ok, my question is answered now, that site has monthly wikipedia HTML dumps. Up to April 2007 04:51:56 just imagine the analysis possibilities 04:52:09 That's part of the idea. 04:54:35 hrm 04:54:45 too bad you can't get html of just content pages 04:55:23 it's like half the size 04:56:31 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 sweet, wiktionary is only 46MB 04:56:44 * bsmntbombdood downloads 04:56:49 woah, cool 04:57:03 I use wiktionary all the time 04:57:19 hopefully the format is usable 05:02:59 fyi, wiktionary decompressed is 364M 05:08:04 Still pretty small. 05:10:16 yeah 05:10:33 I'm not sure how I can use it now though 05:11:16 Using find. 05:11:22 Or ls & grep. 05:11:31 uh, no 05:11:35 it's a single xml file 05:11:49 Grep, then. 05:11:57 won't work 05:12:08 at least, not to my knowledge 05:13:39 I guess I could write a script 05:15:24 read line by line, searching the ... lines, scan ahead to the , display until 05:16:02 -!- RProgrammer has left (?). 05:16:27 i have a HTML parser in CL if you want 05:16:37 don't need a full parser 05:16:43 well its not a full parser :P 05:18:50 And you need an XML parser, anyways. 05:19:23 (SGML != XML) 05:20:18 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 fantastic, it doesn't work 05:50:50 fucking python 05:51:25 It looks like a caching sort of bug in file._i 05:51:30 file.__iter__ 05:57:06 ok, it works 05:58:59 kinda slow, about 5 seconds for a search 05:59:28 depending on how close the word is to the top 06:04:27 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 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 ooooh http://en.wikipedia.org/wiki/Logic_File_System 23:27:27 you could mix pathnames with logic statements 23:27:46 path/name/here + other/path/here 23:28:07 basically all the set operations. 23:28:28 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 Hi 00:16:30 hi 00:17:02 are there any functional esoteric languages ? 00:17:09 Quite a few. 00:17:19 (Not shockingly) 00:17:25 Unlambda, Lazy K 00:17:43 like lambda calculus with full blown higer order functions closures first class environements ? 00:17:48 Iota and Jot 00:17:57 cool i look into those 00:18:06 actually those i mentioned are combinator calculus 00:20:04 i am pretty sure there are some more lambda like but i haven't paid much attention to them 00:20:04 well there is one called Lambda, should be a safe bet 00:20:15 i would like to implement something realy cool in like the minimum lines of codes :) 00:22:31 unlambda seems verry nice :) 00:22:37 good luck my languages end up so complex i never get them implemented :) 00:23:18 indeed it is 00:24:18 i have writen a language but it not realy a hard one 00:24:27 maybe i just change the syntax :) 00:25:50 who of you like postscript ? 00:26:15 postscript is not bad 00:26:43 the dictionary stack is something i had not seen before 00:27:10 not that it is that shocking but manipulate it is quite cool 00:27:28 What is it? 00:27:47 the dictionary stack ? 00:28:12 -!- BigBoom has joined. 00:28:15 the bindings of your variables and where to look them up 00:29:40 -!- hans has joined. 00:29:42 ah... 00:29:47 -!- hans has changed nick to bla. 00:29:53 -!- bla has changed nick to xtofss. 00:30:03 it's the kind of binding structure I would probably use. 00:30:09 sounds like it means dynamically scoped variables 00:30:16 -!- BigBoom has quit (Client Quit). 00:30:34 oerjan hmm not nessasarly 00:30:47 you can just keep your environment arround :) 00:31:13 say you want to evaluate a function in a specific environment you push it on and call the function 00:31:25 when its done you save it 00:32:16 but are environments passed by reference? otherwise you won't get proper closures for mutable variables 00:33:05 indeed 00:33:48 not that you have a chose but when you take a environment and pop it of its not a copy 00:34:15 or some kind of evaluation of it what that might mean :) 00:34:56 who has his own language here ? 00:35:26 * SevenInchBread raises hand 00:36:33 link ? 00:37:53 I have written one i can run on my mobile phone :) 00:38:46 i think someone mentioned something like that here once 00:38:58 hmmm... lemme find the source of one. 00:39:08 oddly enough, I have very few of the interpreters on disk. 00:39:55 http://esoteric.voxelperfect.net/wiki/User:CakeProphet has the full list... but not all of them are implemented. 00:40:31 and the only one I can find of Dupdog is in some illegible compiled Perl stuff. 00:42:11 well there is my incomplete Haskell one 00:42:21 * oerjan never finishes anything 00:42:59 I've got a broken one in Python. 00:43:07 the "original", if you will. 00:46:32 -!- xtofs has quit (Read error: 110 (Connection timed out)). 00:47:15 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 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 oerjan, so... how do you optimize the duplication part? 00:53:57 you can do reverse with a flag... but what about duplicate? 00:54:45 by using the FingerTree module which implements lazily concatenated sequences 00:56:39 (it is the same as Data.Sequence, but less restricted) 00:57:10 <.< how about in Python? 00:58:59 -!- xtofss has quit (Read error: 110 (Connection timed out)). 00:59:50 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 a simple class Concatenated(sub1,sub2) 01:01:41 and purely functional push and pop 01:02:23 a lot of optimization can be had by using specialized data structured instead of raw byte-moving 01:02:55 the main point is that most of the duplicated parts should be shared 01:04:29 actually you don't need push for Dupdog... 01:06:10 just reverse and pop 01:06:14 ..and duplicate 01:06:16 -!- fax has joined. 01:06:25 hello 01:06:45 'evening 01:08:46 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 and empty 01:10:00 and the Concatenated class recurses on the relevant subpart 01:14:04 oerjan, hmm... reverse lookup is hard to handle with tree concatenation 01:14:22 what reverse lookup? 01:14:44 if you use a reverse flag to signify that the source has been reversed. 01:15:21 well that is why you want both popStart and popEnd (or pop(direction)) 01:16:33 >.> but with a tree you need to recurse the entire tree to get the very last character 01:17:14 you must recurse in any case unless you use the very clever FingerTree stuff 01:17:42 i believe that works by rebalancing the tree so the ends are always shallow 01:18:13 however as i understand duplication gives a log(n) overhead anyway 01:19:01 which is the same as for lookup in a naive tree 01:20:58 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 SevenInchBread: have you found an x86 person? 01:26:46 that sounds like a painful concept 01:31:08 oerjan, I think the main rationale for using trees in memory. 01:31:11 *is 01:31:31 yep 01:32:31 ah... I know how I'll do it. 01:32:39 without using trees at all 01:32:46 ? 01:43:17 I'll show you when I finish it. 02:15:52 -!- Figs has joined. 02:16:19 oerjan, like this: http://deadbeefbabe.org/paste/4478 02:16:25 (untested dupdog interpreter) 02:19:21 ....and now with a bug fix :) 02:24:08 i don't think that works. 02:25:03 can anyone tell me a stupider title than this? 02:25:08 "Inventors turn creations into cash" 02:25:11 ... 02:25:17 NO SHIT, SHERLOCK! 02:25:24 02:25:35 i think you are popping off both ends all the time 02:25:43 me? 02:25:53 :P 02:26:14 no, SevenInchBread 02:26:17 Thutu? When did that happen? 02:26:36 And both Thubi and /// are mentioned in the first paragraph! I'm famous! 02:26:37 :-P 02:28:01 mmm 02:28:08 * oerjan has no idea which paragraph ihope is referring to 02:28:14 www.DamnInteresting.com is pretty well designed 02:28:29 oerjan: that of the wiki page on Thutu. 02:29:40 oerjan, ah... I might need to change the self.indlist.pop(0) part based on the revflag 02:30:16 i am afraid it will not work, because the popping should be at only one end too 02:31:21 essentially i think the tree will creep back in 02:31:27 ooh 02:31:31 plans for a flying saucer 02:32:44 wow 02:32:58 who the fuck sells jet engines for $35? 02:33:03 oerjan, nope... the popping needs to be reversed to. 02:33:29 scratch that 02:33:32 $20 02:34:09 oh 02:34:13 it's blue prints 02:34:14 :P 02:34:26 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 ah yeah... it would just be one end. 02:35:56 you could have pops off both ends before a duplication 02:36:31 ooh 02:36:37 found plans for DIY jet engine 02:36:45 wouldn't it be neat to build your own flying saucer? 02:36:47 :P 02:37:10 gimme a flying teapot! 02:37:15 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 equipped with blinking LEDs, and sound-track from sci-fi, of course 02:38:05 the duplication needs to save the index for both ends. 02:38:27 both? 02:38:41 the last index is always.... the last index of the source code. 02:38:58 any physics majors here? 02:39:08 ...probably not. 02:39:38 oerjan, but you do see where I'm going with this right? 02:40:08 if I built a cone like /\ 02:40:17 and blew into the /\ bottom with jets 02:40:22 would it produce lift? 02:40:40 it would be something like a hot air balloon. 02:40:40 (and lift evenly, provided it's a decently even cone?) 02:40:56 yes, you want to save indexes instead of trees. 02:40:58 you need a hole in it ? 02:41:01 / \ 02:41:03 ^ like that 02:41:08 / \ 02:41:16 I meant / \ 02:41:23 at the top? 02:41:25 nah... a hole wouldn't allow for as much force. 02:41:26 why 02:41:36 oh wait probably not actually 02:41:53 I'm pretty sure it'd do enough for at least a hover craft 02:42:00 from air cushioning 02:42:12 basically... firing a jew engine against a cone would be like.... blowing EXTREMLY HARD into a big bag. 02:42:13 but I don't know if it'd work for real flying 02:42:22 a jew engine? 02:42:32 ....hahahaha 02:42:38 best typo ever 02:43:11 hmm 02:43:16 if I spin the engines 02:43:22 like 02:43:32 -/\- 02:43:36 ring holding code 02:43:37 *cone 02:43:50 with engines sucking air from above and blowing into the cone 02:44:06 spin the ring 02:44:18 it'd make a gyroscopic sort of stability, right? 02:45:25 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 hehe 02:48:04 Ring holding code! 02:48:28 Oh, also. 02:48:31 SevenInchBread: "hatful" 02:50:32 I corrected that one :P 02:50:33 oh alright 02:50:44 :-) 02:51:32 ah hahahahaha 02:51:34 "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 yeah... we don't want people FUI (fooey!) 02:53:49 http://youtube.com/watch?v=6-3lQ4L_36c 02:56:19 -!- RainbowTrout has joined. 03:08:28 oh wow 03:08:40 did you know Irrlicht is the German word for "Will-o-the-wisp"? 03:16:12 ooh 03:16:19 D Harmonic minor 03:17:14 * oerjan somehow never considered D Harmonic minor an ooh subject 03:18:13 too bad :P 03:18:32 http://www.tonalcentre.org/Harmminchords.mid C harmonic minor! 03:19:29 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 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 what's spag? 21:21:08 i don't know. how do you use Society for the Promotion of Adventure Games on Usenet? 21:21:28 "Spelling, Punctuation and Grammar" 21:21:29 -!- pikhq has quit (Read error: 110 (Connection timed out)). 21:21:43 well no 21:22:05 if they're retarded, they don't have to be 12 years old. 21:22:37 hm, synchronicity, i just read Mark CC's review of a kook's book with really bad language 21:24:10 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 pikhq: don't you know how to disconnect one of your nicks? 22:01:28 I didn't realise that I was logged in as pikhq_ until I saw pikhq time out. 22:01:43 oh 22:04:02 -!- ShadowHntr has joined. 22:08:00 -!- atrapado has joined. 22:42:16 -!- Sgeo has joined. 22:45:13 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 which Beryl? 00:33:03 Beryl 0.2.1. . . 00:33:40 ...I like how it's a SPECIFIC Beryl. 00:33:53 * SevenInchBread wishes he knew how to make GUI stuff. 00:34:03 I'd make an AWESOME windowing system. 00:34:16 Just do some plugins to Beryl. 00:34:25 NO I SHALL HEAR NONE OF IT 00:34:33 DO NOT TELL ME ABOUT ITS EXTENSIBILITY... I SHALL MAKE MY OWN 00:34:52 IN BRAINFUCK? 00:35:05 Nope. 00:35:15 ....where would you start, if I may ask? 00:35:32 * SimonRC prefers the default KigDos window managed 00:35:42 s/d$/r/ 00:37:00 -!- ShadowHntr has quit (Connection timed out). 00:37:12 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 BrainfuckWM. 00:53:05 Obviously. 00:53:29 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 bastards 01:16:37 On IRC? 01:17:17 yes 01:26:57 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 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 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 SevenInchBread! 00:46:11 Wait, no, never mind. 00:54:21 SevenInchBread! 00:54:38 Wait, no, I just enthusiastic(al)ly yelled that a few minutes ago. 01:09:35 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 lalalalalalalalalalala 18:31:09 laloo 18:35:34 what's the best material for nylon-core bass strings for a guitar? 18:45:14 nylon 19:05:59 -!- UnrelatedToQaz has joined. 19:06:42 !help 19:06:46 Oops. 19:06:59 and not 19:07:01 i mean no 19:07:06 not nylon. 19:07:13 wrong ansewr. 19:07:16 i mean answer. 19:17:36 !help 19:17:46 Oops again. 19:17:58 !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 I don't know. 21:09:32 Nobody ever got back to me on why I was K-lined. 21:09:36 But I have to assume it was EgoBot. 21:09:42 And with no further information, there's not much I can do. 21:10:08 I suppose you could throttle it harder... 21:12:02 But if you have no record of it sending any dubious messages... 21:12:21 Not even any bad protocol commands. 21:12:51 Is there any chance the ban could have been caused by another person sharing ISPs? 21:13:06 It was on my hostname. 21:13:22 And my IP (and thereby hostname) haven't changed for months. 21:17:10 but you are here on that hostname, so i take the k-line was lifted. 21:18:36 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 SevenInchBread! 01:24:01 -!- nazgjunk has quit (Remote closed the connection). 01:40:31 -!- pikhq has joined. 01:48:45 Gah! Darn Google Groups. 01:52:04 Luckily enough, I can get this down in three sentences. 01:52:22 pikhq: Do you think I should remove the special scope-reassignment of functions with assignment in Plof? 01:52:50 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 Hmm. 01:53:05 Given that I didn't know that was *there*. . . 01:53:09 Haw 01:53:12 The idea is this: 01:53:36 var someObject = :[ /* content */ ]; someObject.newFunction = :{ /* this function will run in someObject's scope, not this one */ }; 01:54:00 Oh. 01:54:15 Um, that's actually useful. 01:54:18 Unfortunately, the side effect is that I can't do things like: 01:54:27 It might be nice to use a different syntax, though. 01:54:30 var a = (x as function):{ var x2 = x; x2(); }; 01:54:49 (As x2 would have a different scope than x was intended to be called in) 01:55:04 var someObject = someObject : :[newFunction = :{ /* Here's your function. */ }]; 01:55:16 Err. 01:55:21 Remove the var bit. 01:55:40 That would have the same effect, but would change someObject, which would be bad if you had child objects of it. 01:56:43 Hrm. 01:57:06 See the dilemma? :) 01:57:11 Yeah.\ 01:58:10 someObject.newFunction = someObject.:{};? 01:58:26 Hmmmmmmmmmmmmmmm 01:58:37 Explicitly specifying the scope of an object at definition time. 01:58:47 Yeah. It *may* work. 02:01:17 Doesn't parse very cleanly with that syntax, but that's solvable. 02:01:42 It's a matter of getting a parsable syntax for it, after all. . . 02:02:07 Just needs more colons ;) 02:02:30 someObject.newFunction = someObject:::{...}; 02:02:31 :P 02:02:38 Hahah. 02:02:42 Overkill, no? 02:15:45 GregorR, hmmm.. so what's the problem now? 02:16:04 SevenInchBread: Just syntax. 02:17:17 well... it's pretty clear what it does.. 02:17:33 assigns a function to a variable in a different scope... 02:18:11 someObject.:{}; is difficult to parse as it is, since '.' and '{' are at the same precedence. 02:18:29 Trying to figure out what to change to get syntax something like that without making parsing any more complex. 02:18:32 no I mean obj.func = :{blah} 02:18:36 OH 02:18:39 The problem there is this: 02:18:48 var a = (x as function):{ var x2 = x; x2(); }; 02:19:14 ...what's that do? 02:19:23 That's the question ;) 02:19:32 * SevenInchBread isn't familiar with the syntax. 02:19:32 Ideally, x2() would be the same as x(). 02:19:48 Well, the problem is that that would reassign the scope. 02:19:59 But in that case, you don't want to reassign the scope. 02:20:02 hmmm... well.... what kind of scoping is it? global-by-default? 02:20:15 Is ... what? 02:20:28 I mean.... in what scope is x2 02:20:45 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 ah okay... Pythonesque? 02:21:17 ....... not really :P 02:21:30 well... variables are implicitly local, or am I wrong? 02:21:46 They have the scope in which they were defined. 02:21:54 ah 02:22:07 I forget that we DECLARE our variables here. :) 02:23:57 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 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 ah.... I see.... so you need a sort of implicit way to add members/attributes/whatever to the prototype. 02:26:40 Exactly. 02:26:50 Currently, that's easy because the scope will be reassigned. 02:26:57 But it causes problems elsewhere. 02:27:53 ....could go with a good ol' self 02:28:26 self being the scope from which the function was accessed.... maybe? 02:29:09 Umm, if I call someObject.foo(), I'm calling it from a scope which would not be an appropriate 'self' ... 02:29:21 makes swapping methods between objects easier.... since self always refers to the containing scope for that function. 02:29:43 no I mean.... make self implicitly the object from which foo was accessed 02:29:50 in that case... it would be someObject. 02:30:00 .....not sure how you would program that to make sense though 02:30:30 I'm not sure if that solves the base problem :P 02:30:52 heh, NOT SURE I KNOW THE BASE PROBLEM :) 02:31:49 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 ...I don't understand the syntax... what's the colon for? 02:32:35 Don't worry about that, just know that it's a function accepting a function as an argument. 02:33:26 oh... that's what's going on? 02:33:58 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 But the alternative makes adding functions to prototypes not work well. 02:34:45 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 ............................. what? 02:36:09 >.> wait... doesn't declarations fix that? 02:37:00 -!- ihope has quit (Read error: 110 (Connection timed out)). 02:37:05 just find where the variable is declare... and that's the scope to assign it to? 02:37:07 I don't think the problem that you think is the problem is the problem X-P 02:37:21 That's what's done right now. 02:37:21 yeah.... the colon thing is probably throwing me off. 02:37:45 ............................. OK, so I'll remove the colon, it's functionally equivalent :P 02:37:54 var a = (x as function){ var x2 = x; x2(); }; 02:37:59 .....but what does it DO god damnit 02:38:05 I'm still not sure what that does. 02:38:12 It's irrelevant what it does in this case X_X 02:38:24 I don't want to add to the confusion of trying to discuss a totally unrelated problem. 02:38:41 >.> if I don't get the syntax... I can't decipher what's going on... 02:39:01 that example means nothing to me right now 02:39:11 There are no colons in that example! :P 02:39:30 Is it "the colon thing" you don't understand, or the syntax in general? 02:40:18 .......the whole thing, apparently. 02:40:27 I figured out the colon thing... thin and thick functions right? 02:40:58 ....now I just don't know what that means... you've defined an anonymous function next to a type casted function? 02:41:35 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 um, i think he is defining a function with one argument, x 02:42:13 * GregorR reappears. 02:42:20 Like oerjan said. 02:42:42 OH 02:42:44 okay. 02:42:53 the (x as function) is part of the signature. 02:42:56 Yes. 02:43:06 I thought it was... something being evaluated just before the lambda. 02:43:23 SENSE HAS BEEN MADE 02:43:27 Heh 02:43:55 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 aaah.... dynamic scoping? 02:44:41 Yeah. And it was necessary for me to do that for adding functions to objects to work properly. 02:44:41 this is bizarre. 02:44:46 But it has a nasty side-effect :( 02:45:06 is it possible to have lexical functions and dynamic functions? 02:45:15 or have lexical variables and dynamic variables perhaps? 02:45:21 a language without lexical scoping is not Properly Functional (TM) 02:45:43 well... it does... you can define var in function. 02:45:50 ah... I see the problem. 02:46:04 the variables that are undefined in the function are... basically dynamically gotten. 02:46:10 The default scope of a function is the scope in which it was defined, e.g. lexical scoping. 02:46:20 But, as a functional language, Plof is Ridiculously Impure (TM). 02:46:21 the problem is how to refer to variables of the current object. 02:46:33 Yuh 02:46:44 and something self-like might be cleaner. 02:46:53 ....haha, that's what I suggested once. 02:47:03 yeah, i was repeating 02:47:15 /Getting/ self would be nasty at best. 02:47:20 (For the interpreter) 02:47:33 I think having lexically defined or dynamically defined variables would be interesting. 02:47:43 the python solution seems to work well. 02:48:01 not sure if it would work well in plof 02:48:07 and... it has its problems. 02:48:10 It's not really comparable. 02:48:14 i don't necessarily mean all of it. 02:48:33 just the part about binding functions to methods with the x.f construction 02:48:37 like... you can't assign arbitrary functions to a Python object and expect them to work like methods. 02:49:08 which is something that is done a lot in plof 02:49:11 well, you can do it to a class 02:49:21 Plof has no classes. 02:49:48 yeah... wouldn't work out well..... hmmm... how does IO fix this dilemma? 02:49:52 i suppose the problem is you might want to access unbound methods too 02:50:50 a function that doesn't access self is effectively unbound 02:51:05 ok, simply have an assignment that tags a function as a method. 02:51:41 e.g., an assignment operator which changes scope. 02:51:52 eh.... for some reason it doesn't sound necessarily. 02:52:06 not all of the scope just the self 02:52:06 like there's a really simple way to just make it all work with one assignment operator. 02:52:40 couldn't all assignments with functions treat functions as methods? 02:53:03 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 ....that's basically what Ruby does... a function is a method that simply never refers to self. 02:54:01 hmmm... you do an explicit self. 02:54:08 *could 02:54:17 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 but... meh... 02:54:35 I suppose I may have to *sigh* 02:54:58 what's the problem with making anonymous functions bound to the scope they get assigned to? 02:55:08 hmmm... oh... well 02:55:11 yeah... that would be weird 02:55:16 that you then don't get closures. 02:55:18 var a = (x as function){ var x2 = x; x2(); }; 02:55:29 ^ That's the problem with it :) 02:56:13 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 ... x2 is called in the scope of the function assigned to a. 02:57:22 which has access to... the global scope in which a is defined, right? 02:57:36 Right. But 'x' was presumably defined in some other scope. 02:57:44 And will be expecting variables from it. 02:57:55 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 hmmmm..... if x2 is lexically scoped, what's the problem? 02:58:57 lambda is dynamically scoped, function is lexical, i think 02:59:06 (you said they were lexically scoped... anyways) 02:59:07 SevenInchBread: x2 was assigned x. 02:59:25 ...ah 02:59:26 SevenInchBread: So x2 will be called with a's scope, rather than x's scope. However, the function is still x. 03:00:00 right... the interpreter would make no distinction between literal lambda assignment and variably expanded assignment. 03:00:05 ah okay. 03:00:43 ...so, what's the difference between thin and thick functions again? 03:01:00 When you return from a function, it falls through all the thin functions and returns from the nearest thick function. 03:01:25 ......??? 03:01:40 oooh 03:01:46 There are no blocks but functions. But if you do: 03:01:54 a return in a thin function...... returns from the thin function it's defined in. 03:01:59 er... thick 03:01:59 Right 03:02:06 it's so you can do things like return in an if statement 03:02:11 Exactly. 03:02:20 Since you're really passing 'if' a function. 03:02:21 hmmm... sounds hackish to me... but eh. 03:02:34 It is hackish, but it's not as bad as what I had in Plof1 :P 03:02:44 It's the intersection between functional and imperative programming X_X 03:03:00 could you maybe do return if(whatever, {blah;blah;blah;return x}, {return whatever}); 03:03:16 have the if statement return the return value of the executed function. 03:03:29 What if you only want one side of the if to return? 03:03:47 hmmm, ah. 03:03:59 Like I said, intersection between functional and imperative :) 03:04:19 I thought thick and thin functions were something like ios blocks and methods.... 03:04:26 which largely fixes its scoping dillemma 03:04:50 They're sort of similar, but far more interchangeable. 03:05:20 what if you make it so only thick functions get reassigned scope? 03:05:49 heh... basically what if you make thin functions dynamical and thick functions lexical. :) 03:06:03 no, the other way around 03:06:14 ...er, maybe... I don't quite remember. 03:06:27 var a = (x as thick):{ var x2 = x; x2(); }; // why shouldn't this work? 03:06:59 because a thick function becomes a method... 03:07:40 hmm... typecasting thin and thick functions sounds like tricky business. 03:07:43 you could have automatic conversion between them. 03:08:29 (x as thin) would mean, don't reassign scope for x 03:08:48 Except that it would also mean that it's a thin function X_X 03:09:22 yes, but encapsulation is trivial 03:09:55 ...heh, more importantly... why would you do that? 03:10:24 that example.... or is it just as a "doesn't it just make sense that it should work this way" example. 03:10:29 if we take the smalltalk option that return can only return from methods... 03:11:05 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 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 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 whitespace overloading anyone? 03:13:51 object attribute (called series of list (items with (subcalls)) huge parsing dillemma) 03:15:03 ...then I realized how stupid that would be 03:15:11 and then stole io's syntax. 03:16:21 actually that resembles some thoughts i have been having on ALPACA's syntax 03:16:49 I suppose it's possible.... 03:16:56 if you have explicit parenthesis for function calls 03:16:59 ....but I didn't 03:17:18 it was... quite strictly... "all functions are one argumented" 03:17:27 ...well, one or zero argumented 03:18:17 you do know about combinatory logic, right? 03:18:26 yup 03:19:01 I simplified things quite muchly with good-ol comma-separate lists. 03:19:32 and Smalltalkian keyword selector stuff. 03:21:06 [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 (do stuff to things) if (x > 3) else (do (other stuff) to things) 03:22:56 ....actually I just figured out how... but it's a little unintuitive to explain the semantics. 03:23:02 the syntax looks sleek and sexy though 03:26:55 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 super-laziness.... only evaluated WHEN NECESSARY 03:27:44 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 it kind of does. 03:30:21 functions are objects that accept one message, and puts it into the source code. 03:30:39 er rather... places it iin the executioon scope. 03:30:47 now if you interpret (a b c) as \f. f a b c, then you can make lists of attributes interpolate 03:31:13 and... since lists are single messages... (you, can, pass, multiple, arguments) 03:31:41 lazily evaluated arguments... at that... 03:32:30 eh, are we talking about the same thing? 03:32:38 ...not really 03:32:40 :) 03:32:50 Everything is an object! 03:32:50 i was describing my ideas about ALPACA. 03:32:54 what are we talking about? 03:32:59 dunno 03:33:47 ALPACA conditions, suitably generalized, sort of look like a list of attributes applied iteratively. 03:34:03 but sometimes a function argument gets thrown in. 03:34:26 ...not sure I follow 03:34:58 like ^ is an attribute to find the cell above the current one 03:36:48 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 but that is what i mean by suitably generalized. 03:37:14 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 *convenient 03:38:09 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 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 so... if you did... 03:39:03 $hello = (x + 1) if (x > 3) 03:39:08 you could then do 03:39:21 hello else 3 03:39:27 or just as easily hello + 53 03:39:49 how lazy is haskell? 03:40:07 pretty lazy 03:40:48 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 oerjan, hmmm... does it preserve the evaluation... so it only evaluated once instead of everytime it's needed? 03:41:58 when is something needed? 03:41:58 in any reasonable implementation yes 03:42:23 -!- helios24 has joined. 03:42:32 although evaluating it _every_time_ happens to be equivalent except in speed, so strictly speaking that is legal too 03:42:35 depends on how you define the lanauge.... in the case of Sophia... it's whenever a message is passed to it. 03:44:30 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 if a function call f x is needed, the function f will be. x may or may not be. 03:46:41 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 ....I worded that strangely. 03:47:18 indeed, starting from the Main.main function, which is the only thing automatically needed. 03:47:44 or from whatever you give interactively if using a repl 03:49:47 or rather, main is evaluated to an IO action, which is performed, which may cause further evaluations. 03:49:58 etc. 03:51:35 there are however a couple of functions to get around lazy evaluation. 03:52:32 seq a b pretends to need a, evaluating it, then evaluates b and returns it. 03:53:04 and f $! x = seq x (f x) 03:55:19 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 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 I love it!!!! 14:17:14 thats going on my wall as soon as I fing a printer 14:19:13 erm, ok 14:19:41 They vary between the languages themselves and their stereotypical users 14:20:05 Perl and Java are based on people I know. 14:20:32 do APL and stuff 14:20:33 :D 14:21:02 * fax reads about epigram 14:21:09 I am not sure what they should look like 14:21:24 APL is an anarchist 14:22:49 wow epigram looks interesting 14:23:28 I know one of the main developers, otherwise I would not know about it. 14:24:05 I recommend learning Haskell, then learning the GADT extension to haskell before trying to tackle Epigram. 14:24:35 I wrote a LOGO interpreter in haskell 14:24:40 but its the only program I wrote 14:33:27 online anywhere? 14:33:45 the fact that you can write that as your first program shows what a poerful language Haskell it :-P 14:33:49 *is 14:34:43 oh it is 14:35:03 http://fax.twilightcoders.net/files/LOGO.zip 14:35:09 I think its awful code 14:35:33 1 sec 14:35:40 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 I got really pissed off with the state of implementations of scheme 14:40:15 & went on a rampage & wrote this 14:40:29 in scheme48 I could use glut but not networking at the same time 14:41:53 heh 14:47:07 looks great 14:47:16 thanks 14:47:26 OTOH, you got a head-start as you knew scheme and the libraries you were using 14:47:53 I don't use {;} much. maybe once every few hundred lines to fit something all on one line 14:49:08 I would have said "type M = ReaderT (Map String Float, Map String Function)" 14:49:09 I dunno I think that I wrote really bad haskell because I dont have any exp like writing things well 14:49:17 Whats that for? 14:50:00 M is what? 14:50:10 oh variables and functions 14:51:06 do you knw about monad transformers? 14:51:19 no :[ 14:51:35 I wanted to write a monad so I could make the turtle move 20 pixels per second 14:51:37 but I gave up by then 14:51:42 maybe ill do it sometime 14:54:27 M would allow you to have the current bindings available without haveing to explicitly pass them around so much 14:54:49 There's a tutorial about making a lisp interpreter that explains that sort of thing 14:55:08 oh yeah I skimmed the tutorial, I think ill read that properly then 14:55:27 its this? 14:55:27 http://halogen.note.amherst.edu/~jdtang/scheme_in_48/tutorial/overview.html 14:58:49 bbs 15:02:31 -!- jix__ has joined. 15:07:53 -!- jix__ has changed nick to jix. 15:11:38 hmm 15:12:44 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 heh 15:37:25 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 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 erm 22:14:03 no 22:14:09 he just has a bad combover 22:14:24 oh :D 22:19:14 -!- goban has quit (Connection timed out). 22:22:51 -!- nazgjunk has joined. 22:23:22 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 don't be so negative. 01:23:32 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 jeez 02:50:06 awk is practically a superset of C 03:02:25 awk has pointers? 03:03:08 .....? 03:06:08 hmph, it doesn't look more similar to C than to anything else vaguely C-like 03:08:30 on the other hand, i believe it is somewhere between C and perl, historically. 03:09:10 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 aah, lisp always wins 03:22:02 Someone asks about pronouns in if statements, and someone gives a few lines of CL macro to do exactly that 03:22:24 huh? 03:23:24 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 Quiet, isn't it? 21:09:55 It's the time difference wot does it. 21:11:58 It's noon in the US, at present. 21:12:00 I think. 21:12:05 So all are at work. 21:12:14 Good for them. 21:29:17 -!- fax has joined. 21:29:19 Hello 21:29:46 Ah, hello. 21:30:19 ⣓⣚⣝⣵⣩⣸⣾⣾⡿⡳⡩⡸⡬⡦⡽⡢⣴ <-- braillefuck program to print 99 bottles of beer on the wall song 21:41:28 someone said that common lisps format string was turing complete 21:41:32 because it has goto 21:41:46 (complete without using // or whatver to call lisp functions that is) 21:42:19 You can use goto to make quasi-functions anyway. 21:42:43 I can kind of imagine how 21:42:50 & it has a conditional operator 21:43:14 im not really sure how you might do anything with it but ill probably try at some point 21:43:37 quasi because they dont take parameters? 21:50:04 yeah, they're not much use 21:50:09 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 21:50:13 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 common lisp's string format is terrible 22:59:33 I think its impossible 22:59:34 btw 22:59:52 pjd suggested writing the output to the input, which would work really nicley 23:00:01 if you could do a function call with an infinite number of parameters :/ 23:00:13 of course with applicative order, cant happen :/ 23:00:24 applicative order evaluation*- 23:00:31 so I think ill give u p 23:00:39 it's called streams 23:00:44 and already exists. 23:01:04 lament: I mean like you can use ~? to use the next argument as a format string 23:01:21 streams wouldnt be helpful in this situation 23:01:25 (sadly) 23:01:42 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 23:01:55 hmm, alloca(3) 23:02:00 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 write format in format 23:26:18 I dont think its turing complete without ~// 23:26:22 e..g calling back into lip 23:26:24 lisp* 23:27:29 does it have sequence, conditionals, and repitition? 23:27:46 yes 23:28:20 then it's turing complete 23:28:31 dude I dunno 23:28:36 maybe but I think possibly not 23:39:55 what about unbounded storage? 23:40:11 you can make a resizeable string 23:40:20 and use it as a parameter as well as output 23:40:28 but eve with that I cant see how to do this 23:40:44 I could maybe do stuff withh it if I could funcall with infinite number of parameters 23:40:48 but thats impossible :/ 23:41:53 can someone point me to an actual description of format? 23:41:59 sure 23:42:30 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 can't you funcall with infinite number of parameters by using a cyclic list? 00:12:55 oerjan: I tried (apply #'format t "..." infinite-list) 00:12:59 which didnt work 00:13:05 but I think you are rihgt 00:13:11 I could just call it without apply 00:13:16 may work, im not sure 00:13:28 depends on the behavior of ~? 00:13:37 (which im not totally sure about) 00:13:40 * fax tests 00:13:49 might be implementation-defined 00:16:11 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 except, perhaps, if you use the extensible output string as your format string in some clever way... 00:20:45 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 j0 02:01:35 * pikhq has discovered that Gentoo provides an easy way to get GDC working. . . 02:01:47 Add "d" to USE, recompile GCC; voila. 03:42:45 -!- ihope has quit (Read error: 110 (Connection timed out)). 04:29:15 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 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 hi 16:38:50 -!- sebbu has joined. 17:18:22 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 contest: write a program to print the decimal representation of the 435 fibonacci number 19:22:00 mine is 35 characters 19:23:49 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 hm 19:28:11 hrm 19:28:11 [fbs=.2#1 19:28:18 then do [fbs=.,&fbs+/0 1{fbs 435 times 19:28:28 then take elemt 0 19:28:30 * fax tries 19:32:14 bsmntbombdood: whats the 8th fib number? 19:32:29 its 21 right? 19:33:05 yes 19:33:38 damn, i got 39 19:34:02 almost... 19:34:11 of course, you're probably using Perl :) 19:34:32 no, dc 19:34:43 oh 19:34:45 heh 19:34:55 dc might as well stand for "dense code" 19:35:21 39, hasekll: let f=0:1:zipWith(+)f(tail f)in f!!435 19:35:43 damn i I knew how to do somthing several times.. 19:35:51 0sa1sb435[ladlb+sasb1-d0 :D 19:36:09 tricky 19:36:41 whats that?! 19:40:18 fax: the program 19:40:41 what language 19:41:00 dc 19:41:44 -!- fax has changed nick to faux. 19:44:21 ugh I dont know J well enough to write this 19:45:01 oh maybe I know what to do 19:47:45 yes~ 19:47:48 i beat myself 19:48:25 33 chars 19:48:31 0sa1 435[rdla+rsar1-d0 I suck at J 19:55:01 0{((2 0{(,+/))^:(435-2))1 1 19:55:04 thats mine though 19:55:09 probably possible to make it shorter 19:55:17 the answer is 3.63194e90? 19:57:30 something like that. 20:03:01 faux, what's your language ? 20:03:18 J 20:03:35 but I dont really know J .. Its hard 20:36:39 -!- faux has changed nick to fax. 21:24:30 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 can you tell im bored? 21:39:39 Hahahah 21:54:47 Too many damned things I should work on. . . 21:55:09 I still want to try my hand at that Linux distro I've been thinking about. . . 21:58:28 pikhq: My improved Plof interpreter works now :) 21:58:44 GregorR: Speaking of which, I've now got a working D compiler. 21:58:50 Neato. 21:58:57 Yay, Gentoo! 21:58:58 Now all you need is Tango and DSSS, and you can compile it ;P 22:00:23 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 I can't really remove the dependency on Tango. 22:00:49 Well, maybe I could :P 22:02:13 So, I should work on getting myself a nice, shiny new distro instead. 22:02:38 ... or just compile with -m32? 22:02:45 . . . That'd be too easy. 22:02:50 :P 22:03:01 CC="gcc -m32". 22:03:04 Yeah; too easy. 22:05:05 Do you have 32-bit libs installed? 22:05:51 Yeah. 22:05:59 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 One step process ^^ 22:06:21 The 32-bit libc actually comes out of the box in Gentoo now. . . 22:06:29 That's either nifty or awful. 22:06:31 I don't know which. 22:06:39 It's just so that gcc -m32 works. 22:06:48 It's not *used* at all unless you install more packages. 22:06:58 Hrm. 22:07:21 (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 . . . Unless maybe busybox is linked against the 32 bit libs? 22:24:31 oh damn, i got beaten? 22:26:21 bsmntbombdood: by me? 22:26:32 "0{((2 0{(,+/))^:(435-2))1 1" ? 22:27:08 What language is that? 22:27:33 J 22:27:39 Im sure it could be done better though 22:27:43 Im not really any good at J 22:27:44 If we're allowed to use *any* language for that competition, then I can *surely* find something that'd win. 22:27:55 yeah Fibonacci++ :P 22:28:05 like HQ9 something something? 22:28:14 Turing complete, I'd assume. . . 22:28:23 BrainfuckFib. :p 22:28:47 using a builtin function is cheating 22:29:09 +++>++++>+++>+++++<< hehe 22:30:31 Now a Perl implementation would be interesting. . . 22:30:42 Probably get something like a large string of numbers. 22:30:42 wow 22:30:49 I bet you guys have seen this a million times 22:30:51 but incase you havent 22:30:57 http://montreal.pm.org/tech/neil_kandalgaonkar.shtml 22:31:05 primeality test regex 22:31:10 I thought that was great 22:31:15 Not surprised at all. 22:31:39 In such uses, Perl counts as an esolang. . . 22:31:46 Kind of like what IOCCC can be. 22:32:06 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 That's my personal example. 22:33:06 The list of defines on the command line is about as long as that code. . . 22:34:55 ah ha! 22:35:04 a one letter fib program, in C: 22:35:08 X 22:35:10 ?±! 22:35:13 what 22:35:22 X is defined as something else via -D. 22:35:29 right 22:35:33 -_- 22:35:34 -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 thats cheating 22:35:43 There; the list of defines for my line of C. 22:35:51 you can use GCC as a brainfuck compiler like that 22:35:52 heh 22:36:06 It really doesn't get any better after preprocessing. . . 22:37:47 As proof: http://pikhq.nonlogic.org/bar.c 22:37:55 My line after preprocessing and indent. 22:38:50 First person to figure out what it does and how wins a prize. 22:40:07 :S 22:40:09 I have no idea 22:43:28 It's a prime number generator. 22:43:40 see i thought it might be 22:43:41 Now how, I leave as an exercise for the reader. 22:43:47 but then I thought.. no way 22:43:49 heh 22:43:52 (just name the algorithm) 22:44:19 fax: Why'd you think 'no way'? 22:46:00 no % anywhere! 22:46:15 Bah. 22:46:31 Who needs that operation? 22:46:43 And there *is* a %. . . In the printf call. 22:50:26 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 22:53:40 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 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 basically, i think all the <= 10000 should be < 10000 23:35:29 other than that it looks like an Erasthotenes's sieve 23:35:43 *Eratosthenes 2007-04-28: 00:01:08 -!- Tweek888 has joined. 00:03:52 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 I could 00:04:11 but why? 00:04:17 texting 00:04:19 testing* 00:04:38 and for lack of creativity. 00:05:23 oerjan: It's Eratosthene's sieve, indeed. 00:05:53 And that suggestion, while not making a difference as far as the algorithm is concerned, makes the code shorter. . . 00:07:01 do I just say functions in plain english? 00:07:19 . . . Scratch that, it doesn't work with <=. 00:07:34 Wihtout, that is. 00:08:10 it should make a difference, because you are otherwise using the element a[10000] which doesn't exist 00:08:15 . . . Oh. 00:08:26 I ended up using = instead of <. 00:08:51 I think that why it works is pure chance. . . 00:09:04 There we go. 00:09:06 in principle the old version has a memory access error 00:09:10 m(){n;f(h=1;h Yeah. 00:11:15 New version up. 00:13:43 please print pi to the ten thousandths place. 00:13:44 ;/ 00:14:20 10basePi. 00:14:43 tricky. 00:16:14 please enumerate pi to the ten thousandths place and newline say :O 00:16:47 3.1415 00:17:09 :O 00:17:24 this is fun 00:17:25 :D 00:20:02 print currently playing song from media player 00:20:23 error: term 'media player' undefined 00:21:35 -!- Sgeo has joined. 00:22:21 Relient K - For The Moments I Feel Faint - The Anatomy of the Tongue in Cheek. 2001. 00:22:57 Who said anything about it being *your* media player? 00:23:44 no one 00:24:20 print what user Tweek888 is thinking 00:24:49 sex sex sex sex sex drugs sex 00:24:53 ERROR: libpsychic.so.1 cannot be found. 00:25:03 lament won 00:25:06 :/ 00:27:11 lib sexy chic? 00:27:47 must be 00:32:29 ERROR: libsexychic.so.1 can be found; psychic != sexychic. 00:36:19 but they only have a levenshtein distance of 3 00:38:05 -!- pikhq_ has joined. 00:38:31 please stop 00:38:35 please hammertime 00:43:20 -!- Tweek888 has quit (Remote closed the connection). 00:46:05 -!- Robdgreat has joined. 00:46:15 was sappening 00:46:39 psychic irp 00:46:41 crazy stuffff 00:47:09 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 YAAAAAAAAY! 00:50:03 My new DPlof interpreter can run PlofPlof properly! 00:50:08 No more deep recursion for me :P 00:51:40 * Robdgreat awards GregorR a Gregor Snax(tm) 00:51:54 PlofPlof? 00:52:15 Could you link to the D compiler again, please? 00:53:36 http://downloads.dsource.org/projects/tango/0.97/tango-0.97-forDSSS-gdc-i686-pc-linux-gnu-withDSSS-withGDC.sh 00:54:14 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 What does PlofPlof compile to now? 00:54:41 (Just interpret?) 00:55:02 compiles to plof, obviously 00:55:02 It just parses now :P 00:55:06 Ah. 00:55:11 It's not finished. 00:55:19 I had to leave it for a while because DPlof couldn't run it X-P 00:55:20 I assume you wouldn't mind my help in PlofPlof? 00:55:28 Not in the least. 00:56:12 DPlof is damn slow, but like I said, it's temporary. 00:57:42 builtins.d:31: module Stdout cannot read file 'tango/io/Stdout.d' 00:57:46 Uh. . . Help? 00:58:12 How are you building it? 00:58:37 (Hint: The correct way is `dsss build`) 00:58:47 Ah. 00:59:30 Would it kill you to use standard build tools? 01:00:02 Whatever build tool you think is standard, it isn't for D. 01:01:11 Um. . . You're not allowed to use make and autoconf? 01:01:14 WTF? 01:01:23 Make and autoconf are the way they are because of limitations in C. 01:02:06 [Oh, and, no, autoconf does not work with D] 01:02:18 Autoconf, not surprised; that is C-specific. . . 01:02:21 But make?!? 01:02:29 Make is nothing-specific, and that's what's so bad about it. 01:02:36 -_-' 01:02:38 Could I use make? Yes. But it would be a gigantic pain in the ass. 01:02:41 well make a dummy makefile then 01:02:57 Make, a pain in the ass? 01:03:06 . . . Oh. 01:03:15 Looking at dsss.conf. Jebus, that's handy. 01:03:52 D has a more pure way of listing dependencies in source files. 01:03:59 As such, listing all source files in a Makefile is redundant. 01:04:23 Now if only I could get the damned thing to build. 01:04:31 What's the issue? 01:04:42 /tmp/ccdreAhw.s:7624: Error: suffix or operands invalid for `push' 01:04:42 /tmp/ccdreAhw.s:7634: Error: suffix or operands invalid for `pop' 01:04:45 Ad infinitum. 01:04:55 ... this is building dplof? 01:04:59 Yes. 01:05:05 That's one weird error. 01:05:34 Could you try `dsss build -m32` ? 01:05:51 Same. 01:06:06 I get the feeling something weird is happening. 01:06:15 Hm. I'm thinking maybe that binary's gdc expects a 32-bit only ld. 01:06:24 I'm thinking so. 01:06:48 And I, in my stupidity, overwrote /usr/bin/gdc. 01:06:59 Heh ^^ 01:07:43 I usually install stuff to /opt/whatever :) 01:07:48 why so many layers? 01:07:53 You think I could get a binary tarball of Dplof? 01:07:57 Sure. 01:07:58 One sec. 01:08:01 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 bsmntbombdood: That's called "Self-hosting". 01:08:24 I know, and it's a waste 01:08:33 Lisp begs to differ. 01:08:58 Even Brainfuck can self-host. Why not Plof? 01:08:59 That's a waste, how? 01:09:11 of time 01:09:18 No, it's not. 01:09:30 Damned useful, actually. 01:09:31 it _can_ do it, but that doesn't mean someone should write it all 01:09:43 bsmntbombdood: Compiling to C is quite useful. 01:09:48 And I bet that Plof'd get more popularity if Dplof weren't a build requirement. 01:09:49 yes 01:09:52 Err. 01:09:53 D. 01:09:54 bsmntbombdood: The fact that that gives me Plof in C for free is just a side-effect. 01:09:58 so just write a plof->c compiler 01:10:04 He is. 01:10:10 It just happens to be in Plof. 01:10:11 without a dplof of plofplof 01:11:13 Dplof will be abandoned once Plof works. 01:11:30 pikhq_: http://www.codu.org/plof.tar.gz 01:11:36 Err 01:11:38 pikhq_: http://www.codu.org/dplof.tar.gz 01:13:09 Disclaimer: dplof may have (and probably does have) obscure bugs :) 01:13:46 Like file IO segfaulting? 01:14:10 Errr? :P 01:14:15 plof looks pretty boring 01:14:37 Oh no, I am so offended, blah blah etc? 01:14:51 yeah 01:14:59 something like that 01:15:01 :) 01:16:14 pikhq_: I'm not seeing fileio segfaulting ... 01:16:32 GregorR: It's probably an issue with multilib. 01:17:05 -!- sebbu has quit ("@+"). 01:18:07 . . . Except stdio works. 01:18:42 Heh :P 01:18:43 Moral of the story: Dplof and x86_64 don't mix. 01:18:48 Foob. 01:19:02 CPlof should be easier to get to mix, though. 01:19:51 Yuh. 01:19:55 That's part of the intention :) 01:21:43 * pikhq_ has the prom tomorrow. . . Whooo. . . 01:29:28 heh 01:29:38 I remember the prom ... I didn't go. 01:29:43 Best decision I ever made. 01:30:03 prom was last weekend at my school 01:30:52 should i put "prom" on my list of advantages to not being from the US? :) 01:31:25 Yes. 01:31:39 GregorR: what's wrong with prom? 01:31:47 What /isn't/? 01:33:25 i dunno... 01:33:53 Godawful music, annoying people, neverending social stigma, weeeeeeh. 01:34:33 -!- pikhq_ has changed nick to pikhq. 01:34:55 Prom is, I assume, much better if you've got a date. 01:35:11 Like I do. . . 01:35:15 Heh 01:35:16 probably 01:35:25 why GregorR doesn't like it 01:35:39 If I didn't have a date, I'd not show up. 01:38:53 pikhq: You did get my /msg, right? 01:40:09 Obviously. 01:41:28 Mmkay. I see that the parser works well. 01:41:43 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 Well, there'll need to be a sizeable C runtime environment. 01:42:36 Or else some really weird-ass shit happening. 01:43:00 I could probably help with the C runtime ATM. . . 01:43:06 That'll take some fumbling. 01:43:06 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 Yeah. 01:43:58 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 cPlof, even. 01:44:22 Yeah, but I don't actually have any ideas for it. 01:45:01 typing seems like it would be hard 01:46:12 please print the laplace transform of something 01:46:23 Perhaps make it a C++ interface? 01:46:39 Seems that C++ could possibly behave better with Plof. 01:46:51 Erm ... that seems unlikely :) 01:47:05 I didn't say *much* better. ;) 01:47:44 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 Probably end up having the API require that function names in the C code conform to the name-mangling scheme. 01:49:14 Tweek888: 0 -> 0 01:49:28 (always a safe bet with linear transforms) 01:50:05 pikhq: Name-mangling isn't very realistic in a language where there are no named functions :) 01:50:25 GregorR: You know what I mean, though, right? 01:50:54 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 Yeah, that's pretty much what I'm saying. 01:51:39 It's an easy solution, which allows for consistency with Plof. 01:51:54 Doesn't work well for Dplof, methinks, though. 01:52:14 It'd work fine for DPlof - unions and structs in D are exactly equivalent to their C versions. 01:52:20 Ah. 01:52:49 Still, you have to admit that my current dlopen method is much easier :) 01:52:53 please print the laplace transform of something that isn't 0 01:53:05 1 -> 0 01:53:09 Easier, but less elegant. 01:53:11 ty 01:53:39 wait... 01:53:57 scratch that one. i'll look it up. 01:54:16 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 ok, 1 -> 1/s, more or less. 02:03:52 http://en.wikipedia.org/wiki/Laplace_transform 02:05:36 shouldn't the laplace transform be (C -> C) -> (C -> C)? 02:05:59 i _said_ more or less. 02:06:43 and apparently it does not usually converge everywhere. 02:07:12 eh, no, the initial definition should be on R. 02:07:57 *function 02:08:33 so it is more like (R -> C) -> (C -> Maybe C) :) 02:08:54 oh, right, it's time 02:09:04 actually, (R+ -> C) -> (C -> Maybe C) 02:14:25 :) 02:14:35 i take it you haven't taken differential equations? 02:14:53 I don't know what's going on. . . 02:15:12 maths. 02:15:14 Differential equations, I belive, comes *after* AP calc, which is what I'm doing right now. 02:15:30 ha, classes 02:15:33 you should just skip to diff. eq. 02:15:40 AP calc is no fun. 02:15:48 I'm almost *done*. 02:15:56 all you need to make a 5 is a TI-89 Titanium. 02:15:59 Is diff. eq right after AP calc? 02:16:07 ap calc is what i'm taking next year 02:16:11 it's an elective class. 02:16:31 normally taken after calc ii or iii. 02:16:37 Ah. 02:16:40 so, it'd be after AP calc BC 02:16:48 So, I'll take it my college freshman year. 02:17:00 * pikhq is a HS junior ATM 02:17:30 yeah. but even at that, there are a few different diff. eq. courses. 02:17:41 what is it? 02:18:01 love. 02:21:00 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 howdy, everyone 03:06:53 hi 03:07:09 'Lo. 03:07:22 Hey 03:07:23 what's been going on in #Esoteric recently? 03:07:52 Plof's going to become self-hosting soon as Gregor and I bother. 03:08:45 neato 03:09:07 bootstrapping it with C or something first? 03:09:50 No, bootstrapping it with DPlof. 03:11:58 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 Dear God. 03:12:21 I think you should implement it in PESOIX. . . 03:12:26 And thereby get PESOIX working. :p 03:12:41 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 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 or worms, I guess. 03:14:08 but it'll let you write an ftp or p2p app in just a handful of characters! 03:15:04 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 Jebus. 03:15:35 Crazy. 03:15:36 :D 03:15:50 but somewhat utilitarian and functional, eh? 03:17:08 I envision it as an extremely powerful (if horrifically insecure) system. 03:17:19 aaah 03:17:33 i thought i might be able to shorten my fibonacci code by a character, but no 03:17:42 It could be horrifically secure on the Hurd. . . 03:17:46 :[ 03:17:50 Just make the script run as UID {}. 03:17:52 what language are you working in, bsmntbombdood? 03:17:58 RodgerTheGreat: dc 03:18:09 whats dc like? 03:18:17 It's a Turing complete RPN calculator. 03:18:19 fax: crazy awesome 03:18:26 * fax cant tell from looking at the examples 03:18:34 bsmntbombdood: do you have a link to some basic info? 03:18:38 man dc 03:18:51 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 wait how is that on my computer :D 03:18:58 cool 03:19:03 mine is 33 characters 03:19:04 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 bsmntbombdood: neato 03:19:31 RodgerTheGreat: So run it in a subHurd. 03:19:41 0sa1[rdla+rsar1-d0 mine was 27 chars, 0{((2 0{(,+/))^:(435-2))1 1 03:20:05 But that's not dc. 03:20:07 but I dont know the langauge well 03:20:10 doesn't have to be dc 03:20:15 Ah. 03:20:18 fax: no way that works 03:20:21 Hmm. 03:20:26 bsmntbombdood: works for me 03:20:36 what is the number? 03:20:44 fib(435); 03:20:50 pikhq: heh 03:20:51 363193867...461442690? 03:20:57 bsmntbombdood: sec 03:21:09 3.63194e90 03:21:12 hm. I can't think of a language I could beat 27 characters with for a fibo... 03:21:13 is the output 03:21:23 fax: nope, doesn't count 03:21:24 I can probably set options so it prints the whole decimal expantion 03:21:28 needs all characters 03:21:29 like preferences 03:21:58 i can beat your program, fax: [3.63194e90]p 03:22:05 lol 03:22:10 nice 03:23:14 bsmntbombdood: that doesnt calculuate it 03:23:58 doesn't need to 03:24:03 it only needs to print it 03:25:33 the number is 92 digits long, though, so the program won't win any prizes 03:27:16 well 03:27:25 if I go into options and set print precision to 20, I can get 3.6319386724082529327e90 03:27:28 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 RodgerTheGreat: same thing 03:27:40 but I dont know how to make it print the full expansion 03:28:09 shame it wont go above 20 03:28:17 (seems arbitrary) 03:28:35 kolmogorov complexity 03:28:36 there's a difference in approach between trying to calculate a number and trying to compress a string 03:29:17 print what is love 03:29:22 20 is the largest you can get with a 64 bit number 03:29:22 print bassline 03:29:29 lol 03:29:46 print baby don't hurt me 03:29:48 ur doin it worng. 03:29:55 baby don't hurt me 03:29:59 RodgerTheGreat: not in the kolmogorov complexity sense 03:30:19 ok, I will accept this 03:30:55 but I was attempting to highlight the different ways someone could look at the problem, from a conventional programming standpoint 03:31:26 ok, sure 03:32:16 The first surprising result is that there is no way to effectively compute K. 03:32:16 Theorem. K is not a computable function. 03:32:20 ^ that doesnt surprise me :/ 03:33:00 * pikhq wonders what that fibonacci number would look like if represented in binary. . . 03:33:09 the chain rule one is interesting 03:33:14 bbl guys 03:33:39 I'd bet that a binary representation, converted into ASCII, would work. XD 03:33:42 pikhq: just use the obase setting for dc 03:34:03 f(x)=f(x-1)+f(x-2) 03:34:06 Err. 03:36:51 man 03:36:57 always such interesting stuff here :D 03:37:29 That's the idea. 03:40:44 pikhq: dc -e "2o 1sb 0sa [la d lb + sa sb lap lfx]dsfx"|more 03:40:51 print all the fibonacci numbers, in binary 03:41:14 oooh, interesting 03:41:36 the last digit goes 1,1,0,1,1,0... 03:41:37 bsmntbombdood: No, I mean "raw binary". 03:41:40 * fax hooks on tr 01 ' #'| 03:41:46 oh 03:41:56 Like, "screw up your terminal if viewed raw". 03:42:14 change that "p" to a "P" 03:42:18 -!- CakeProphet has joined. 03:42:25 hm 03:42:36 how would you turn "10101010110" into raw binary? 03:42:43 I mean is there a program already 03:42:50 instead of writing some code 03:43:11 dc -e "2O 10101010110 P" 03:43:27 oh cool :D 03:43:32 er, no 03:43:41 mmmm... I need to find some kind of programming job where I can work at home. 03:43:54 dc -e "2i 10101010110 P" 03:44:19 i don't think dc goes up to base 256. 03:44:30 oerjan: doesn't need to 03:44:42 for raw binary you need base 256 03:44:50 print HEY EVERYONE HACKERS IS ON TV 03:44:51 :/ 03:44:56 That's real base 2. 03:44:58 oerjan: "P" command 03:45:06 oh 03:45:49 2o 1sb 0sa [la d lb + sa sb laP lfx]dsfx 03:45:57 all whitespace optional 03:47:02 Indeed. 03:56:42 nothing interesting in there 03:58:24 but piping it through hexdump and watching it scroll is fun 04:05:33 -!- zorkplik has joined. 04:07:49 Please say "hello world" 04:08:30 * oerjan starts to think someone's mentioned irp somewhere again 04:08:40 IRP ERROR: I don't want to. 04:08:58 oerjan: I wonder if #irp is still up, and if so, why don't we redirect all IRP traffic there? 04:09:00 I found it on http://esoteric.voxelperfect.net/wiki/IRP 04:09:20 The #irp channel has only one other person 04:09:30 Yeah, seems that it died. 04:09:32 it was empty last time i checked 04:09:46 I just joined it. 04:10:00 What was irpbot? 04:10:22 oerjan *should* have it somewhere. 04:10:34 *sigh* 04:10:56 I suppose the solution to this is to make an automated interpreter. 04:11:01 (thereby defeating the purpose) 04:11:15 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 this paper is funny: http://www.cs.utexas.edu/users/arvindn/misc/knuth_song_complexity.pdf 04:11:57 actually there are, it's just that Tweek888 has filled up my irp quota for today :) 04:12:21 irpbot *should* assign out which interpreter claims a job. . . 04:12:42 If I don't get oerjan to find it again, I'm going to have to write the thing. 04:12:48 Or just stop caring. :p 04:12:57 sheesh, i do know exactly where it is. 04:13:10 it's just i got bored of it, like everyone else 04:13:19 Figured as much. 04:13:25 well, irpbot won't help if there are no humans 04:13:39 maybe all the would-be interpreters are at Amazon's Mechanical Turk. 04:13:42 We need to DDoS that 04:13:56 Moral of the story: rm -rf IRP. 04:14:27 IRP interpreter: permission error (must be root) 04:16:35 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 Mmkay. 04:16:49 Probably won't ever get used, though. 04:19:13 My favorite esoteric programming language I've seen is Befunge. 04:19:17 How about you guys? 04:19:39 Befunge is unique, and yet still useable for efficient programming (I think), and it's code looks cool. 04:20:15 yes, befunge has random access memory 04:20:33 although not as easily random jumps 04:20:56 I'm a fan of Dimensifuck, personally. 04:22:49 Of course, it's my language, so. . . 04:23:35 Wow, it's like a combination of the ideas of befunge and brainfuck but better 04:23:49 Did you write an interpreter, or was that somebody else? 04:23:56 That was a friend of mine. 04:24:05 I've done a bit of work on the interpreter, though. 04:24:16 cool 04:25:04 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 It's a bit less efficient, but it is at least Turing complete. 04:25:57 Loops take more characters. 04:26:13 I really like how looping works in befunge 04:26:25 in dimensifuck do you move a pointer a long the dimensions? 04:26:29 I didn't quite understand it 04:26:32 you can of course assume some optimizations such as leaping over blank spaces 04:26:59 The code pointer moves in one dimension; _ = change the dimension that v and ^ will change the code pointer to. 04:27:35 Grr. I should get the Dimensifuck spec moved elsewhere; Nick's webserver is down. 04:28:54 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 i suppose efficiency is relatively unimportant in an interpreter intended only for bootstrapping 04:30:23 No, the problem is that dplof crashed when I was running PlofPlof. 04:30:24 who uses esoteric languages for bootstrapping? 04:30:33 zorkplik: Plof is not esoteric. 04:30:38 I like strapping boots. 04:30:48 oh, plof. 04:30:49 oerjan: It actually crashed because I tried to index an LLL about 3000-deep X-P 04:31:02 oerjan: Shockingly, I got a stack overflow. 04:31:13 Plof is a serious project of Gregor's. ;) 04:31:26 ok unoptimized tail recursion 04:31:31 zorkplik: BTW, I can bootstrap Brainfuck. 04:32:02 meaning you have a brainfuck interpreter in brainfuck? 04:32:10 That's sexy. 04:32:14 Actually, *I've* got a Brainfuck compiler. 04:32:28 There's a Brainfuck interpreter in Brainfuck, though (I didn't write it). 04:32:45 compiles to binaries? 04:32:46 (To be *perfectly* fair, my Brainfuck compiler is written in BFM, which merely compiles to Brainfuck) 04:32:49 To C. 04:33:07 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 Ooh, port nethack to bf! 04:35:20 First implement c2bf. 04:35:23 Fully. 04:35:27 Then port libc. 04:35:29 Heheh 04:35:31 Then port ncurses. 04:35:34 Have fun. 04:36:12 wouldn't it be easier to make a program to port assembler to bf? 04:36:18 Probably. 04:36:22 btw, I just had a great idea for an esoteric language 04:36:27 (given that it's already been done. . .) 04:36:31 crap, I forgot it! 04:36:34 it'll come back to me. 04:36:40 Right. 04:37:19 http://kidsquid.com/old/compilers/bfasm/bfasm.html 04:37:51 -!- zorkplik_ has joined. 04:38:04 aw, my internets went away. 04:38:11 and when I reconnected, it changed my nickname, because it thought I was still connected 04:41:41 if you register your nickname you can ask nickserv to kill your "ghost" 04:43:32 unless you actually have the old irc client running somewhere, in which case it might reconnect 04:47:09 fax: That lisp container choice image is waaaaaaaay too funny :P 04:47:12 fax: It haunts my dreams. 04:53:14 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 GregorR: You need a list of stacks of strings of integers. 05:13:03 Yaaaaaaaaaaaaay, I made a Range type :P 05:13:14 Fun: 05:13:15 foreach(new(Range, 0, Infinity, 2), (x){ 05:13:15 println(x); 05:13:15 }); 05:33:56 Current collections in the Plof core: AArray, Array, LazyCollection (every item is generated from a function), List, Range, Set. 05:34:12 I don't feel the need to make Queue, Stack, etc, since List can easily be used as them. 05:35:13 deQue? 05:36:17 hm... i guess it's not very different from Queue 05:37:08 or wait... 05:37:27 Honestly, I'm not sure how deque is implemented :) 05:37:35 yes it is, you need a doubly linked list 05:37:45 My List is doubly-linked. 05:37:51 oh 05:38:06 My primary purpose here is not efficiency ;) 05:38:26 what about sharing? 05:38:39 ? 05:39:06 if you do something like (cons a (tail b)) 05:39:36 then you cannot update the double link 05:40:37 Hmm, yeah, that's true. 05:43:21 purely functional queues and deques seem to require more than lists anyway. 05:43:53 Plof is anything but purely functional :) 05:44:19 i mean immutable datastructure 05:44:41 which has its use even in an otherwise impure language 05:46:07 True, true. 05:46:52 Hmmm, what to do, what to do. 05:47:21 Now that I actually have Plof at a very usable place, I don't know what to do next X-P 05:48:29 write a program in it? 05:48:49 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 well if your head is spinning then a break may be in order 05:51:14 or an exorcist 05:51:19 Heh 06:05:40 Why Gregor hates Python: Every type I type Python, I typo Pythong and have to remove the 'g'. 06:07:43 that sounds rather Freudian. 06:10:34 deques are just doubly linked lists 06:10:58 a pair (pointer to head, pointer to tail) 06:10:58 that is just one possible implementation 06:11:10 I thought they had constant-time lookup? 06:11:26 constant time push, pop 06:11:37 Oh. 06:11:49 How is that different from a list? 06:11:52 (doubly linked) 06:12:24 "deques are just doubly linked lists" 06:12:30 Heh :P 06:12:50 deques are an ast, not an implementation of it 06:13:03 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 ........... wtf. 08:04:51 I have "Washington Mutual Free Checking" 08:05:04 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 hmm... should i read 2 weeks of this channels logs or not... 10:04:14 have you ppl been interesting? 10:07:51 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 i have a lot of interests... it's just reading 2 weeks of a mostly idle channel log takes multiple hours 10:26:54 and... i don't think that's the case here 10:27:01 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 please print the enumerated root of all evil. 13:23:54 Syntax error. 13:27:48 please suck my syntax error. 13:28:00 :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 ZOMG Earthquaek! :-) http://news.bbc.co.uk/1/hi/england/6602677.stm 15:31:40 print ZOMG Earthquaek! :-) http://news.bbc.co.uk/1/hi/england/6602677.stm 15:31:56 WTF 15:32:16 no.. way 15:32:33 thats got to be a hoax. 15:32:49 from the BBC? 15:32:55 :S 15:32:56 wow 15:33:02 there was another small one a few years ago in the north of England 15:33:23 given its alleged range, my parents could have felt it 15:33:38 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 KDE4: Coming to a package manager near you. October 23, 2007. 15:56:22 -!- Sgeo has joined. 16:01:59 خخا 16:02:03 ثقة 16:02:21 damned language-switching 16:04:18 language switching is fun 16:06:21 română 16:08:46 Jes, bonas. 16:10:11 nein 16:10:42 german is an ugly language 16:10:49 or i would have taken it in high school 16:25:20 Doitugojanakaxtuta. 16:31:58 please print Doitugojanakaxtuta. 16:35:29 * pikhq writes it out on a piece of paper 16:36:38 11 characters. Happy? 16:39:00 ;/ 16:50:48 Tweek888: how is german ugly? 16:51:28 glottal stops make a language easier to parse 16:51:36 it's an ugly language 16:51:40 not the sounds 16:51:42 the structure 16:51:48 wtf? 16:52:25 the accent marks are cool, and noun capitalization creates an interesting kinda flow 16:52:44 * pikhq prefers Japanese. 16:53:08 :/ 16:53:29 too many irregularities 16:53:32 everybody and their cousin on the internet prefers Japanese 16:53:38 i hate japanese 16:53:39 * pikhq starts preparing for the next BFM release. . . 16:53:54 Three years of studying it kind of encourages you to like it. XD 16:54:05 haha 16:54:13 I find German useful, because some of the best demoscene coders in the world are from Germany. 16:54:18 heh 16:54:21 true. 16:54:21 fair enough 16:54:27 but who cares about the demo scene? :d 16:54:58 The CCC cares. 16:55:07 I think the approaches a 64kb limitation leads to are interesting and can be applied elsewhere to great effect 16:55:34 some of the work on procedural content generation is amazing 16:56:05 and if game designers want to keep making things more realistic without spending *billions* on each new game, it's necessary. 16:56:40 no movie or video game has ever cost a billion dollars. 16:57:03 i added movie for perspective. 16:57:53 I use hyperbole for effect 16:58:47 I use cocaine 17:00:36 New BFM and Basm releases up. . . 17:00:49 http://pikhq.nonlogic.org/bfm.tar.bz2 http://pikhq.nonlogic.org/basm.tar.bz2 17:01:11 cool. 17:01:36 pikhq, what are those? compilers? 17:01:52 Tweek888: BFM is a compiler for BFM. Basm is a Brainfuck to C compiler in BFM. 17:02:06 that's nice. 17:02:08 RodgerTheGreat: Internal API cleaner; partial C backend. 17:02:24 Made pretty much all of the internals cleaner, really. 17:02:31 Also includes some documentation. 17:02:47 documentation is good 17:03:02 Basm has been made smaller and more efficient. 17:03:13 I think I've done some fiddling with the optimizer, as well. 17:03:39 Ah, right. Made it work with a newer build of Tcllib. 17:04:13 And the Basm tarball now includes a C version of the basm code, allowing for easier bootstrapping. 17:11:33 Hmm. 17:11:50 * pikhq has discovered the issue with the C backend. . . 17:51:26 C backend I *believe* works now. 17:51:55 New build up again. 17:53:16 I've got a new basm build up, which has C code produced via the C backend. 17:54:32 And said C code does bootstrap it all. 17:57:36 And nobody cares. XD 18:01:55 xD 18:09:15 -!- mtve has quit ("Terminated with extreme prejudice - dircproxy 1.0.5"). 18:12:18 But then, why would anyone want something that makes Brainfuck remotely useful? 18:13:02 I know I'm in the minority here, but I enjoy esoteric languages that combine functionality with unconventionality 18:13:13 as well as tools with similar intent 18:13:16 pikhq, is brainfuck fast? 18:13:36 RodgerTheGreat: Then you should love BFM. 18:13:41 It's odd, but it's functional. 18:13:44 Tweek888: Can be. 18:14:00 I'm aware of this 18:14:11 Right. You've seen me rant about it, after all. :p 18:17:24 I've been here through its entire development process. 18:17:44 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 indent: LostKng.c:6857: Error:Unexpected end of file 18:20:23 Well, that'd explain it; seems I'm using a borken LostKng.b source. 18:24:47 that would explain it 18:25:53 German :/ 18:26:15 I wanted to learn german in highschool, but I have to take stupid spanish instead 18:27:26 dayum 18:27:29 sorry, dude 18:30:53 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 18:31:08 -!- pikhq has joined. 18:31:43 And my computer crashed trying to compile LostKng. 18:31:50 hm 19:40:59 -!- ihope has joined. 19:42:05 Realization! 19:42:23 The kernel needs to implement what's needed to let the processes do everything else. :-) 19:42:50 Obviously, processes need to be loaded somehow, so the kernel must be able to load processes. 19:43:08 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 And... what, is that it? 19:43:44 -!- fax has quit (" "). 19:55:37 Congrats on developing part of a microkernel. 19:55:50 The other part you need, of course, is a message passing interface. 20:02:43 Heh 20:11:41 pikhq: what, the processes can't do that themselves? 20:11:43 :-) 20:12:03 ihope: . . . 20:12:11 Load a process, send all the interrupts to it. 20:12:27 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 Essentially, delegate *everything* onto the process. 20:12:46 Mm, I guess the kernel does have to provide something. 20:12:55 core.com 20:13:06 There, that's the name of your system. 20:13:08 Process scheduling, message passing, magic hat... 20:13:22 Just execute core.com, it does everything. :p 20:13:43 * ihope sings a song about the magic hat 20:25:42 most kernels also handle memory paging 20:26:01 or at least allocation 20:26:15 because having processes all grab memory willy-nilly has some issues 20:29:23 sigh 20:29:30 i hate my physics teacher 20:29:43 what does your teacher do that incites hatred? 20:30:03 http://84.184.220.55:1337/random?6519&4583&10443 ::: http://84.184.220.55:1337/random?8707&88&7305 20:31:26 His labs aren't worth doing because of all the bullshit assumptions he introduces 20:31:57 I am supposed to calculate maximum instantaneous velocity given average velocity 20:43:27 hmmm.... which unicode characters could be used to represent whitespace (not a new line, although I need to know that to) 20:50:43 bsmntbombdood: Impossible. 20:50:52 pikhq: no shit 20:51:05 Has he *ever* learned calculus? 20:51:38 He is scared of calculus, and wants us to be also 20:51:43 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 i'm guessing he wants me to assume constant acceleration, which is not anywhere close to what actually happened 20:53:38 Well, assuming constant acceleration at least lets you figure out what the max velocity is. . . 20:53:43 But why give the average velocity? 20:54:02 what? 20:55:31 * pikhq is confused as to what your teacher wants 20:55:40 Your physics teacher is scared of calculus? 20:55:49 yeah 20:56:00 In other news, fish scared of water. 20:56:24 Indeed. 20:56:24 Physics is stupid without calculus 20:56:32 Calculus is very important in physics. 20:56:48 calculus was created _for_ physics 20:57:24 Unless we discover the universe to be based on Conway's Life, or something. 20:57:24 bsmntbombdood: was it? 20:57:24 Interesting. 20:57:58 ihope: Yeah. . . Calculus == Newtonian physics. 20:58:21 How often does e^x pop up in Newtonian physics? 21:00:01 Any time the position of an object is modeled by e^x. 21:00:09 You know, if the universe is based on Conway's Life, I want to introduce a stray glider! >:-) 21:00:16 pikhq: and how often is that? 21:00:37 Actually, it seems it'd be somewhat common when decay and such is involved. 21:01:46 yeah 21:01:54 ihope: I just want to fiddle with a glider that's supposed to be there. 21:03:05 Well, really, it seems the universe would use something more sophisticated than gliders. 21:03:43 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 ihope: gliders are used in as part of quite a few life patterns, though. 21:11:07 Well, what if you base everything on a different agar? 21:11:32 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 Anybody want to write a Plof CGI module? :) 23:36:41 -!- CakeProphet has joined. 23:36:57 >.> 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 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 Tweek888: do root <- replicate 3 6; show root 02:13:36 or possibly, let evil = sex; sex = 6 in do root <- replicate 3 evil; show evil 02:22:08 oerjan: for a while, I thought you were looking for IO actions. 02:22:19 Then I realized that both of those produce "666". 02:22:31 :) 02:22:44 do evil <- [sex]; sex <- [6]; root <- replicate 3 evil; show root 02:23:03 Or show evil. I think they do the same thing. 02:23:09 Or show 6, or show sex. 02:23:21 that definitely does not work with do. maybe mdo. 02:23:38 indeed 02:24:26 ...Indeed, that doesn't work with do. 02:24:38 do sex <- [6]; evil <- [sex]; root <- replicate 3 evil; show root 02:24:58 mdo putStr x; x <- getLine 02:25:04 mdo worked fine though. the wonders of recursive monads. 02:25:12 The latter just for fun. 02:25:44 alas, that will probably give a run time error. 02:26:00 unless you are importing the Control.Time module. 02:26:08 :-) 02:26:14 Runtime error, eh? 02:27:08 dc is so cool 02:27:17 Haskell's so smart! Or something like that, anyway. 02:27:28 oh right, there needs to be a result expression at the end. 02:27:43 mdo putStr x; x <- getLine; return x 02:28:06 and that indeed gives a runtime error. 02:29:31 What does it give? 02:30:07 in hugs, <>, the usual error for using a value that is currently under evaluation 02:30:28 $_ 02:31:05 is that dc or perl? 02:32:05 neither 02:32:14 it's two characters 02:32:38 it does happen to be the usual perl default variable 02:32:46 Default variable? 02:32:58 pronoun 02:33:16 So what's it refer to? 02:33:22 it 02:33:37 Whatever was last referred to? 02:33:41 like if you do print with no arguments, $_ is printed, similarly for substitutions and many other things 02:34:04 the default loop variable, the arguments to a function 02:34:11 no, it is an ordinary variable but the default for many commands if you don't specify any 02:34:43 it is not the default for everything though 02:35:55 for example, while (<>) is an abbreviation for while ($_=), i think, using two different defaults in on command 02:36:25 perl is horrid 02:37:18 I'm beginning to agree. 02:41:00 (actually, while (defined ($_=)) 02:41:12 What? 02:41:45 the result test is whether the value is defined, not whether it is true 02:42:33 The horror. 02:42:35 presumably so you don't get tripped up by empty strings, which are defined but false 02:42:51 You can get an empty string out of =? 02:43:13 = returns what it assigned (i assume_ 02:43:21 s/_/)/ 02:43:31 It's an assignment operator? 02:43:36 yes. 02:43:51 And returns what it's defined... the horror. 02:44:01 horror? 02:44:05 that is borrowed from C actually 02:44:15 yeah, and it's handy 02:44:36 Indeed: horrible yet handy. 02:44:39 a = b = c 02:45:01 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 it is so common that you can put around your whole program by giving perl the -n option. 02:46:21 -p adds a print command inside, making perl behave almost like sed. 02:47:02 basically perl generally tries to use defaults to make the most common case shorter. 02:47:35 *it 02:48:28 similarly with substitutions, that uses $_ as default and that too makes perl behave almost like sed. 02:59:34 sed+awk > perl 03:06:12 oerjan: adds a print command where? 03:08:24 har har, the RSA-in-4-lines-perl needs to call dc 03:14:06 (sorry, away from window) 03:14:28 bsmntbombdood: dc? 03:14:28 just before the end of the loop i think 03:15:00 so whatever is in $_ is printed out before reading the next line into it 03:15:00 Now, how about this "indent style": use as little whitespace as possible. 03:15:35 i see we are still on horrible subjects :) 03:15:37 ihope: turing complete rpn calculator language 03:16:16 i would assume that perl contains essentially everything in sed+awk. 03:16:32 given that those were probably its main ancestors. 03:17:21 yes, but it's massivly uglier 03:17:25 i don't know awk much though 03:17:29 if it's not broke don't fix it 03:17:55 perl has its philosophy, elegance is not in it. 03:18:18 but practicality definitely is 03:19:23 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 One-line Haskell is a lot easier than one-line Python. 03:20:28 if the goal is _not_ to avoid whitespace, then you can usually strip some {} even in one-line Haskell. 03:21:06 that dreaded (by compiler writers) parse-error } insertion rule ensures that. 03:21:30 Parse-error } insertion rule? 03:21:38 If it doesn't look right, add a }? 03:21:45 exactly :) 03:22:20 or rather, an invisible } matching an invisible { 03:22:28 There's probably a good reason 'let {x = 3 in x' fails, then. 03:22:51 indeed it needs to be let x = 3 in x 03:23:10 because the implicit } can only match an implicit { 03:24:26 Doesn't sound too hard. 03:24:44 with let ... in it usually works nicely since the in basically forces the } cleanly 03:24:48 And since I feel like being a little random, I wrote this: http://pastebin.ca/463717 03:25:38 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 btw the rule is dreaded by compiler writers because it forces the parser to give information back to the lexer. 03:27:59 what language is that? 03:29:16 I don't know if it has a name. 03:29:19 some robot programming language? 03:29:24 Sort of. 03:29:29 It's for RigidChips. 03:30:38 My... construction is pretty nice, in my obviously not that humble opinion. 03:31:06 ic. thank god for wikipedia, because all the other links were japanese. 03:31:45 Actually, it's nice except for what happens when you try to move both forward/backward and sideways. 03:32:13 wikipedia's handling of case in titles bugs me 03:32:30 The whole thing flattens out and makes a lot of dust. 03:33:08 then wiktionary should drive you insane :) 03:33:26 (there the first character counts too) 03:33:51 what, it explodes? :D 03:34:45 there is dust in RigidChips? I thought it was about pure physics 03:36:15 Eh, it's just to look cool. It doesn't do anything. 04:02:56 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 sebbu: ?? 15:22:08 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 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 no one is writing fibonacci programs 19:36:19 -!- ihope has joined. 19:36:46 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 Excuse my incompetence. 21:51:23 !bf ++++++++++[->+>+<<] 21:51:25 >>[-<<+>>] 21:51:26 <+++++++++++++++++++++++++++++++++++++++++++++++ 21:51:28 <[>.-<-] 21:51:38 Not quite. 21:51:48 Your incompetence is excused. 21:51:54 What are you trying to do? 21:52:04 (btw, Egobot isn't running, so !bf won't do jack) 21:52:12 Yes, I only just noticed that. 21:52:33 !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 ? 22:12:49 Just tired. 22:24:29 -!- UnrelatedToQaz has left (?). 22:35:17 how was prom? 22:36:04 -!- Jakevfr has joined. 22:36:43 -!- Jakevfr has quit (Client Quit). 22:42:06 $ echo "abc=2; (abc+2)*4"|./a.out | dc 22:42:08 16 22:42:11 it works! 23:03:11 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 23:07:16 Went wonderfully. 23:07:35 Writing an infix->RPN program? 23:08:59 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 he wanted there to exist a value which would do stuff like: (list 1 2 3 4 5 6) ===> (1 2 3 4 5 6) 23:23:27 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 It would break invariants like (eq? foo (car (cons foo bar))) and (eq? bar (cdr (cons foo bar))) 23:25:07 = blank 23:26:25 easy 23:29:18 no, he wanted an actual value that you could put in variables and stuff 23:29:56 -!- sebbu has quit ("@+"). 23:31:12 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 jeez 23:32:55 -!- ihope has joined. 23:33:57 i wonder what he wants it for 23:36:10 oh, haha 23:36:18 he just wants 0 2007-04-30: 00:26:41 !bf >++++++++++[>+++>++++++++++>+++++++++++>++++++++++++[<]>-]>>+++.>+.<<++.>--.----.>>----.<<<.>>++++.<+++++++.+.>>.<<<.>---.>>+.<<---.>--------.<++.>+++++++.+. 00:27:04 !help 00:29:51 FINE, I'll revive EgoBot. 00:30:35 -!- EgoBot has joined. 00:30:42 !bf >++++++++++[>+++>++++++++++>+++++++++++>++++++++++++[<]>-]>>+++.>+.<<++.>--.----.>>----.<<<.>>++++.<+++++++.+.>>.<<<.>---.>>+.<<---.>--------.<++.>+++++++.+. 00:30:46 go eat shit fuckers 00:30:54 ...............? 00:31:00 What's a shit fucker? 00:31:11 Doesn't sound like anything I want to eat. 00:34:41 Sorry about that 00:35:06 Blame Starnestommy in #uncyclopedia 00:35:32 I just wanted to find out what it said.. 00:38:12 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 RodgerTheGreat, YOU! 00:46:15 Wow. That's quite the analysis. 00:46:37 As an English student, I declare it "good". 00:49:00 analysis 00:49:07 anal = anus 00:49:20 -lys = breakdown 00:49:26 -is = process 00:50:37 lol 00:51:04 hm 00:51:14 enlightening. 00:52:20 "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 JESUS 666 01:53:22 hello my friends! 01:54:32 Hi speedykiller 01:54:55 'Lo. 01:56:52 hmm 01:57:01 I wonder if this would work 01:57:10 !bf +>>+<+<<+>+<+>+><+><><><+<+ 01:57:25 It would if Egobot were up. 01:57:29 Roger_The_Bum: whether or not it works, that program doesn't output anything. 01:57:35 pikhq: EgoBot isn't up? 01:57:37 !help 01:57:39 heh 01:57:41 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 01:57:43 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 I stand corrected. 01:57:51 You liar. 01:57:55 wtf 01:58:04 Egobot just got revived without me noticing. 01:58:21 and THAT's the beauty of brainfuck 01:58:29 you can mash keys together 01:58:40 and it actually does something 01:58:52 I beg to differ. 01:58:54 !bf [ 01:59:06 that's not that random 01:59:24 !bf sacdfj[q23bdfjasd][fasd]gfasdft3i5kjbviojasfkgsadhklgjsdfaklgjasl[]a[+- 01:59:59 !bf >+<+<<-<-<-+>>-<<+-<[--++>+><>><<]><><+<+>++<+<+><+<+<<-< 02:00:17 !bf ++<[+.>-]++>[<-[>>]+.-]++. 02:00:21 02:00:23 Bah. 02:01:03 !Bf >_> <_< >>>>>>-> +_+ 0_o -_- 02:01:07 Huh? 02:01:28 !bf >_> <_< >>>>>>-> +_+ 0_o -_- 02:01:34 !bfm source ^stdcons.bfm;source ^outs.bfm;string bah! "EgoBot needs BFM";outs bah!end 02:01:39 Huh? 02:02:00 ¡español! 02:10:20 !bf . 02:10:30 !bf[+.] 02:10:34 Huh? 02:10:40 !bf [+.] 02:10:52 !ps 02:10:55 1 pikhq: bf 02:10:57 2 Sgeo: ps 02:11:06 !bf +[+.] 02:11:09 02:11:30 It's now flooding me >.> 02:11:41 -!- EgoBot has quit (Excess Flood). 02:11:43 And apparently it loops through 02:11:45 oO 02:11:50 * Sgeo killed EgoBot ;( 02:11:51 -!- EgoBot has joined. 02:11:58 * GregorR shakes his fist. 02:12:02 Yay, EgoBot! 02:12:06 !ps 02:12:10 1 Sgeo: ps 02:12:19 !kill 1 02:12:21 * pikhq needs to try and get PESOIX working in Egobf sometime. 02:12:22 Process 1 killed. 02:12:28 !ps 02:12:33 1 Sgeo: ps 02:13:05 Or, if that fails, do a simpler method of PESOIX-like esolang extension. 02:13:21 egobot, where am i 02:13:26 how do i talk with egobot? 02:13:41 !help 02:13:44 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 02:13:46 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 speedykiller: you use those commands. 02:14:07 !bf_txtgen ~exec self.raw("PRIVMSG #esoteric :Foo") 02:14:12 nice ok 02:14:15 !glass 02:14:18 OK 02:14:20 Hmm. 02:14:28 !bf_txtgen 23 02:16:12 30 ++++++++++[>+++++>>><<<<-]>.+. [42] 02:16:46 420 ++++++++++++++[>++++++>+++++++++>+++++++>++<<<<-]>>.>+++.<------.>.--.>++++.<<-----.>++.<-------.------.>>++++++++++++++.<+++++++++++++.<-----.>+++++.>------.------.<<<----.++.---------.>-----------.<++++.>---.------------.>>--.<<------------------------------------.<++++++++++++++++++++++++.++++++++++++++.>>--------.<<+.>>----------.<<--.---------.>>--.>.+++++++++++++++++++ 02:16:49 ! 02:16:52 Huh? 02:16:56 ... 02:17:01 !bf_txtgen aaaaaaaaaaaaaaaaaaaaaaaaa 02:17:07 !bf ++++++++++++++[>++++++>+++++++++>+++++++>++<<<<-]>>.>+++.<------.>.--.>++++.<<-----.>++.<-------.------.>>++++++++++++++.<+++++++++++++.<-----.>+++++.>------.------.<<<----.++.---------.>-----------.<++++.>---.------------.>>--.<<------------------------------------.<++++++++++++++++++++++++.++++++++++++++.>>--------.<<+.>>----------.<<--.---------.>>--.>.+++++++++++++++++++ 02:17:10 ~exec self.raw("PRIVMSG #esoteric 02:17:11 SyntaxError: EOL while scanning single-quoted string 02:17:17 Wonderful! 02:17:38 At least it got a space at the end. 02:18:32 72 ++++++++++++++[>+++++++>+++++++>><<<<-]>-.>-..<...........>.....<..>.... [170] 02:18:43 * ihope laughs 02:18:47 -!- CakeProphet has quit (Connection reset by peer). 02:18:53 !bf ++++++++++++++[>+++++++>+++++++>><<<<-]>-.>-..<...........>.....<..>.... 02:18:56 aaaaaaaaaaaaaaaaaaaaaaaaa 02:19:01 * ihope laughs again 02:19:04 Good ol txtgen :P 02:19:09 Indeed. 02:19:28 -!- CakeProphet has joined. 02:20:33 !glass {M[m(_o)O!"~exec self.raw(\"PRIVMSG #esoteric :Foo\")"(_o)o.]} 02:22:03 !glass {M[m]} 02:22:09 Did Egobot choke? 02:23:07 wouldn't be hard to add BFM to egobot, would it? 02:23:31 it just calls external interpreters right? 02:24:59 Yeah. 02:29:27 !ps d 02:29:31 1 GregorR: ps 02:29:42 !glass {M[m(_o)O!"Foo?"(_o)o.?]} 02:29:47 Foo? 02:29:57 Oh right - there's no string escapes in Glass, pikhq :) 02:30:19 Ah. 02:30:22 ~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 SyntaxError: invalid syntax 02:30:42 ~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 SyntaxError: invalid syntax 02:31:40 ~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 SyntaxError: invalid syntax 02:31:43 .. 02:31:49 exec? 02:50:39 ~exec self.q = lambda x: x%x 02:50:56 ~exec sys.stdout(str(self.q)) 02:50:57 at 0xb7c5e72c> 02:53:13 ~exec exec self.x("self.raw('PRIVMSG #esoteric :!glass {M[m(_o)O!\"~exec exec self.x(%r)\"(_o)o.?]}')") 02:53:14 AttributeError: IRCbot instance has no attribute 'x' 02:53:23 ~exec exec self.q("self.raw('PRIVMSG #esoteric :!glass {M[m(_o)O!\"~exec exec self.q(%r)\"(_o)o.?]}')") 02:53:24 SyntaxError: invalid syntax 02:54:02 ~exec exec self.q("self.raw('PRIVMSG #esoteric :!glass {M[m(_o)O!\"~exec exec self.q(\\%r\\)\"(_o)o.?]}')") 02:54:02 SyntaxError: invalid token 02:54:43 ~exec exec self.q('self.raw(\'PRIVMSG #esoteric :!glass {M[m(_o)O!"~exec exec self.q(\\%r\\)"(_o)o.?]}\')') 02:54:44 SyntaxError: invalid token 03:00:09 self.q? 03:01:50 gah, i _still_ can't understand backpropagation neural nets 03:02:14 hmm.. does Glass allow single-quoted strings? 03:02:39 why are you putting in a second exec? 03:03:45 -!- Roger_The_Bum has left (?). 03:06:19 [ $(( $RANDOM % 6 )) = "0" ] && (echo "you lose"; rm -rf /) || echo "you win" 03:07:18 because I need the source in string form so I can quine it back in 03:08:36 ~exec sys.stdout(self.q('self.raw(\'PRIVMSG #esoteric :!glass {M[m(_o)O!"~exec exec self.q(\\%r\\)"(_o)o.?]}\')')) 03:08:36 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 So far, I've seen just about everything I wrote since 2003. 03:22:49 Fun, isn't it? ^^ 03:26:56 Wonder where stuff I did in 1998 went. . . 03:26:58 wtf? 03:27:04 http://qdb.longlandclan.hopto.org/index.cgi/91 03:27:06 Oh well; that disappearance is probably for the best. 03:27:43 LMAO 03:28:14 http://bleb.net/scape/ esoterica 03:28:38 http://qdb.us/71165 03:29:13 lol 03:34:49 http://bash.org/?56188 03:36:14 getpot(1)? 04:01:08 http://www.qdb.us/84998 < awesome :P 04:02:20 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 Sorry about that, I forgot to join #esoteric before I started sending messages to it 13:07:54 !ul (Is this still working?) 13:07:58 Huh? 13:07:58 !ul (Is this still working?)S 13:08:02 Huh? 13:08:06 !ps d 13:08:10 1 ais523: ps 13:10:51 !daemon ul bf http://pastebin.ca/raw/367774 13:10:58 !ul (Does it work now?)S 13:11:02 Does it work now? 13:11:22 !daemon deadfish funge93 http://pastebin.ca/raw/373016 13:11:34 !deadfish ioiosososssss 13:11:36 1 13:11:38 2 14:02:31 I was reading through the logs 14:02:47 there seemed to be some sort of competition to produce a really short Fibonacci program 14:03:51 haha 14:03:53 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 To print out a Fibonacci number whose index is three digits long, the relevant program is 15 characters long 14:04:34 (possibly less if the index minus 2 is a round number) 14:04:47 what does a fibonacci sequence program look like in your language? 14:05:30 To print out the 12th element is .10;(:@+)fzBSn 14:05:37 it had better not be "fibonacci(xxx);" :) 14:05:40 (the 10 is the index minus 2) 14:05:47 hunh 14:05:56 .10; is numeric wimpmode for the number 10 14:06:04 that's an interesting looking language 14:06:19 Underload is in fact a tarpit version of that language 14:06:28 this language is Overload 14:07:02 ah 14:07:19 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 yes- a stack oriented language would lend itself to sequences like this 14:07:46 f causes the code block to repeat 10 times (in this case; a higher number could be given) 14:07:57 zB translates the resulting integer to a string, S prints it, and n is the final newline 14:08:23 and the stack starts full with an infinite number of copies of the number 1 14:08:31 (only two of which are relevant) 14:09:01 the language was designed to be as concise as possible whilst still useful 14:11:57 Another example: printing out 6 factorial is 6U'*tzBSn 14:12:18 (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 interesting 14:15:02 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 can you present one in which the reason is different? 14:25:55 a encloses something in parentheses in Underload 14:26:08 In Overload, it creates a new one-element list which contains the top element of the stack 14:26:46 The difference can't be determined using only Underload commands, though 14:35:49 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 but ("("))pS outputs "(") in Overload; the p will put quotation marks into the string, making it """(""") before its printed 14:37:09 (The p is needed; (())S outputs the NUL character in Overload, for somewhat complicated reasons.) 15:30:02 complicated reasons are the best ones 15:31:19 well, then... the identity function is the Church numeral for 1 15:31:45 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 and 1 is NUL in the incremented ASCII character set. 15:32:15 ((:*))S will output SOH for similar reasons 15:51:30 ~bf ,[.,]!Is this still working? 15:54:02 ~exec execfile(".bot/scripts/bf.py") 15:54:03 IOError: [Errno 2] No such file or directory: '.bot/scripts/bf.py' 15:54:08 ~exec execfile("bot/scripts/bf.py") 15:54:14 ~bf ,[.,]!Is this still working? 15:54:14 Is this still working? 16:14:36 ~exec execfile("bot/scripts/dof.py") 16:15:10 ~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 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 ~bf ++++++++[->-[->-[->-[-]<]<]<]>++++++++[<++++++++++>-]<[>+>+<<-]>-.>-----.> 16:25:17 !bf ++++++++[->-[->-[->-[-]<]<]<]>++++++++[<++++++++++>-]<[>+>+<<-]>-.>-----.> 16:26:36 (the program is the 'brainfuck speed test' suggested on Talk:Brainfuck on the wiki) 16:26:58 bsmnt_bot uses a 32-bit cell size, so it might take a while 16:27:16 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 I have killed your obnoxious BF speed tester. 18:17:58 EgoBFC2M would be a better benchmark anyway. 18:19:43 $ time ./egobf/egobf-0.7/src/egobfc2m speed.bf 18:19:44 OK0.00user 0.00system 0:00.00elapsed 18:20:05 Fast :P 18:36:44 -!- calamari has joined. 18:57:31 -!- calamari has quit ("Leaving"). 20:27:17 -!- calamari has joined. 21:26:55 http://en.wikipedia.org/wiki/Operator-precedence_parser#Alternatives_to_Dijkstra.27s_Algorithm 21:32:28 Hmmmmmmmmmmmmmm ... 21:32:36 DPlof's parser doesn't use a lookahead 21:32:54 And it's not recursive-descent, it's purely iterative. 21:33:25 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 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 Hey. 22:57:30 This might work today. 22:57:35 Don't mind me. 22:57:39 hm 22:57:39 !bf ++++++++++[->+>+<<]>>[-<<+>>]<+++++++++++++++++++++++++++++++++++++++++++++++<[>.-<-] 22:57:43 9876543210 22:57:54 thank goodness 23:01:44 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 23:03:10 !help 23:03:13 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 23:03:15 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 !help ps 23:08:03 Use: ps Function: display the current processes 23:08:30 !help i 23:08:33 Use: i Function: send input to a process 23:16:36 -!- oerjan has joined. 23:20:02 haha awesome 23:22:36 what? 23:27:17 ? 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 i need PICK for dc 23:59:58 it works!