00:00:00 --- log: started forth/04.08.17 00:01:36 --- join: jDoctor (~reginaldf@pcp08550359pcs.manass01.va.comcast.net) joined #forth 00:32:42 Well, I think I'm going to bed. 00:32:50 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 01:21:07 * Tomasu is away: nigit 01:21:15 --- nick: Tomasu -> TomasuDlrrp 01:26:38 * TomasuDlrrp is away: now for sure 01:30:30 :D 01:34:37 aah, joy 01:34:38 :) 02:52:07 --- quit: jDoctor (Read error: 104 (Connection reset by peer)) 02:59:35 --- join: mwc (~mcox@CPE0030654f85d8-CM014400102747.cpe.net.cable.rogers.com) joined #forth 03:59:50 --- join: mur_ (~mur@kyberias.uiah.fi) joined #forth 04:01:37 --- quit: mur (Read error: 60 (Operation timed out)) 04:38:28 --- quit: mwc (Read error: 110 (Connection timed out)) 04:54:04 --- join: mwc (~mcox@CPE0030654f85d8-CM014400102747.cpe.net.cable.rogers.com) joined #forth 05:10:29 --- join: Topaz (jonny@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 05:16:53 --- join: crc (crc@0-1pool32-71.nas34.philadelphia1.pa.us.da.qwest.net) joined #forth 05:47:08 --- quit: crc ("Time for bed... Goodnight all!") 06:03:37 --- quit: I440r ("Leaving") 06:03:50 --- join: I440r (~mark4@216-110-82-204.gen.twtelecom.net) joined #forth 06:54:52 What is a "punctuated Forth?" 07:41:46 --- join: madgarden_ (~madgarden@Toronto-HSE-ppp3706683.sympatico.ca) joined #forth 07:50:19 --- quit: madgarden (Read error: 60 (Operation timed out)) 08:48:21 --- join: I4404__ (~mark4@216-110-82-206.gen.twtelecom.net) joined #forth 08:49:28 --- quit: madgarden_ (Read error: 104 (Connection reset by peer)) 08:50:29 --- join: madgarden_ (~madgarden@Toronto-HSE-ppp3706683.sympatico.ca) joined #forth 09:05:02 --- quit: I440r (Read error: 110 (Connection timed out)) 09:06:59 --- quit: I4404__ (Read error: 110 (Connection timed out)) 09:32:37 --- nick: TomasuDlrrp -> Tomasu 09:32:40 * Tomasu is back (gone 08:06:03) 09:40:02 --- join: kc5tja (~kc5tja@66-74-218-202.san.rr.com) joined #forth 09:40:13 --- mode: ChanServ set +o kc5tja 09:41:16 --- topic: set to 'FORTH programming language. Info: http://forth.bespin.org/resources/introduction ANSI: http://www.taygeta.com/forth/dpans.htm FIG83: http://forth.sourceforge.net/standard/fst83/ Links: http://members.dsl-only.net/~loophog || Note: this chan is publicly logged.' by kc5tja 09:47:53 --- join: I4404__ (~mark4@216-110-82-203.gen.twtelecom.net) joined #forth 09:50:57 * Tomasu is away: Just casue 10:05:50 kc5tja, what's "punctuated Forth?" 10:05:54 --- nick: madgarden_ -> madgarden 10:06:33 : PunctuatedForth ." This is an example of punctuated Forth. Note the : and ;." ; 10:07:07 Ahh... so just "regular" plain-text Forth/ 10:07:43 Yes 10:08:02 A Forth that relies on punctuation or otherwise explicit words to form the syntax of the language. 10:23:15 --- join: warpzero (~warpzero@mi006.dn183.umontana.edu) joined #forth 10:40:42 --- join: slava (~slava@CPE00096ba44261-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 10:40:43 howdy 10:41:20 good afternoon 10:42:04 What's the daily recommended maximum intake of these listerine breath strips? I'm eating them like candy 10:43:17 haha 10:43:22 they're addictive 10:44:55 they're nasty is what they are 11:08:26 hi 11:10:07 --- join: jDoctor (~reginaldf@pcp08550359pcs.manass01.va.comcast.net) joined #forth 11:11:32 re 11:14:55 would anybody have any idea why centericq all of a sudden says bad uname/password mismatch for yahoo, when its the right one? (just checked on webmail) 11:16:32 arke: dont use it, but if you are looking for an alternate all-n-1 messenger, Gaim wins hands down 11:16:53 They probably upgraded their protocol implementation again, which I'm told they do ALL the time to prevent 3rd party imitation chat software. 11:17:12 Gaim suffers from the same problem. I had exactly this sort of thing happen with Yahoo!. 11:17:14 jDoctor: i know about gaim. And I like centericq better (because its console) 11:17:23 yah. none of the corps like aol msn and yahoo like these 3rd parties 11:17:37 oooh. how about naim, arke ? 11:17:53 I dont know if that one does icq, actually 11:18:10 ERROR: Signal 13 11:18:10 Stacks have been reset. 11:18:14 good :) 11:18:50 jDoctor: i need aol, yahoo, msn. 11:18:57 jDoctor: naim is console? 11:19:20 yup. I used to use it when my parents locked up my lab and almost locked me from every computer 11:19:37 only supports AOL of those 3 :/ 11:19:47 except they didnt know about the 90 mhz 16mb ram laptop that was as big as a vcr 11:19:49 aah 11:19:50 :D 11:19:56 jDoctor: hehe 11:20:43 oh wel, i guess I'll just wait and code a bit more 11:20:53 what's the best way to implemetn socket timeouts I wonder... 11:20:54 i have alot of useful stuff in separate .inc files 11:21:05 arke, whacha coding? 11:21:09 slava: select() allows timeout 11:21:18 slava: F2 :) 11:21:21 * kc5tja goes to move some of his FTS/Forth words into the cross-compiler's wordset. 11:21:29 slava: messing with the bootsector a bit more 11:21:56 arke: Dude, are you aiming this to be a 32-bit, flat address space, protected mode environment? 11:22:14 slava: as in, select() will return after a certain amount of time if there wasn't any socket activity. You can use that, i think. 11:22:21 kc5tja: yes. Memory is entirely a+rwx 11:23:13 If so, you might want to consider using GRUB for the bootloader (at least on harddrive). It takes care of a lot of that detail for you, and although on the larger side of bootloaders, it gets partition tables and system RAM sizes accurately and portably. 11:23:43 hmm 11:24:12 kc5tja: that would be nice, actually. 11:24:25 All you need to do is supply a standard Multiboot header, and anyone with GRUB installed can boot into your system. 11:24:48 tempting 11:24:50 :) 11:25:03 anyone think there is an advantage in using a ramdisk, and making a program that writes to files in that ramdisk more often than using memory? 11:25:06 GRUB also supports floppy-based bootups too, but since it's so big, it will feel like you're booting an Amiga 1000. :-) 11:25:07 but, i need floppy support too. 11:25:13 maybe in a super simple filesystem? 11:25:21 You boot with the GRUB boot disk, then you insert your "root" disk, and boot off of that once GRUB is running. 11:25:23 :-) 11:25:39 kc5tja: oh.. :/ 11:26:01 jDoctor: I don't understand your question. 11:27:05 no? ok. you make a ramdisk- those mounted filesystems that are really made up of your ram. you make a program that then thinks it's writing and reading files all the time, but it is really just using memory. therefor, it could make that program normal again: shifting around memory. 11:27:28 if only the filesystem was extremely simple.. 11:27:46 gc would be done for ya! 11:27:56 You mean like caching? I did that back in the day with netscape 11:28:01 put its cache on a ram disk 11:28:05 jDoctor: I know what a RAM disk is. :) 11:28:08 sped it up two fold I tell you 11:28:21 just making sure we are on the same base here 11:28:24 jDoctor: Your concept of what a "more normal" program is, though escapes me. 11:28:52 Yeah, you're in #forth, you checked your "normal" at the door 11:29:02 haha. welll just leave that concept alone. 11:29:05 kc5tja, i think he's suggesting unifying file system and malloc() :-) 11:29:15 yes^ 11:29:25 And doing it in forth? 11:29:44 slava: Oh, so what he's proposing is Multics then. :) 11:29:53 HAHAAH 11:29:55 um. sure. Im just asking how slow it would be.. what ways would it work.. I can tell gc would be easy as hell 11:30:13 jDoctor, well it would not be easy as hell 11:30:33 rm RAM_process1 11:30:37 oh crap, there goes init 11:30:45 well, when you remove a file and start writing new files.. they just write over it etc.. 11:31:01 Right, but you have to *remove* that file 11:31:08 which is basically your free() 11:31:15 Well, I see no relationship what-so-ever with GC at all. It'll be slower than just raw memory access (unless you mmap() the file into your process space), but it'll probably be only about as fast as normal file I/O for small to medium size files. You won't see much improvement in speed until you get into BIG files (the kind that causes even Linux to thrash to disk). 11:31:15 so what's the point? 11:31:26 well, file systems do reference counting basically 11:31:46 that's not even a real GC 11:32:04 What? Aren't you talking about creating a file for every allocation? 11:32:17 Reference counting ONLY via directory entries. You'd need to create hard links to manually increase a file's reference count. 11:32:39 maybe for every 'object' or something 11:32:52 And then you have to delete those files to remove them 11:32:56 so how is that GC'd at all? 11:33:00 RAM disks would be very fast for creating and manipulating lots of very small objects. 11:33:04 jDoctor, well you can also have something like squeak or factor, where the memory heap is saved to disk 11:33:06 cause linux does the deleting 11:33:09 But then again, so is a filesystem cache. :) 11:33:28 yeah, but when does it do the deleting? 11:33:47 when it needs to :) 11:33:53 or when it flushes 11:33:54 oh. damn, you would have to look for lack of pointers 11:33:55 or both 11:33:55 riiiiiiiight 11:33:57 or whatever 11:33:58 haha 11:34:04 ok ok , so you do gc. 11:34:10 Linux never does any kind of filesystem deletions unless it's told to. 11:34:25 i don't see how a file system is like GC 11:34:29 kc5tja: it doesn't necessarily do it immediately though, right? 11:34:42 if a file system deleted files that were not open, maybe.. 11:34:47 kc5tja: as in, it does it anytime between the delete syscall and the next flush syscall 11:34:54 ok , but you can have files for pointers.. and their names tell what they do etc? and you can use ls to find them! 11:34:58 arke: Depends on the filesystem. 11:35:16 Why not just implement your own system on top of malloc? 11:35:28 you can register each allocation 11:35:42 malloc() is for wussies 11:35:43 I think it would depend on the virtual file system implementation, not the specific filesystem 11:35:47 and then just get an array of the damnt hing 11:36:00 real men use a stack allocator :-P 11:36:03 true, operator new is far superior 11:36:05 hahah 11:36:19 Take FAT on win32... Your computer stalled completely when copying files to a floppy, not so with FAT on linux 11:36:21 slava: Sorry, malloc() is for real men. Real men manage their own memory. We don't have slaves (GC) to do it for us. 11:36:23 malloc()/free() require a free list to be maintaine and searched 11:37:13 a filesystem that deletes files that arent open 11:37:17 True, but I've rarely seen that list exposed 11:37:18 that was a good ass idea 11:37:25 FAT has some hideous problems... 11:37:32 Yes, never speak of it again 11:37:52 It makes NTFS look good :P 11:38:05 jDoctor, why? 11:38:19 my webserver was linux/apache/tomcat/ftp and it had a huge 120gb hd with fat32 on it. I ended up fixing many problems by putting ext3 on that hd later 11:38:22 Er, the point is that exactly when a file is deleted from a filesystem does not depend on the particular filesystem, but rather on the OS's VFS implementation 11:38:46 why is my shit going in a tight loop with select()? Program received signal SIGQUIT, Quit. 11:38:46 0x280d3814 in select () from /usr/lib/libc.so.4 11:39:23 don't you mean libforth.so ? :P 11:39:25 * mwc ducks 11:39:34 slava: Do you have a timeout set for your select()? 11:39:47 and are all your FDs set to non-blocking? 11:39:52 You probably have a descriptor with information on it that you're not handling 11:40:00 kc5tja, does ^C have any special behavior when sent over telnet? 11:40:20 kc5tja, for some reason this happends when I sent ^C over telnet, but other control chars are read fine 11:40:29 slava: It produces a SIGTERM in the remote process, just as it would in the local process. 11:40:30 heh SIGTIGHTLOOPANDTHRASH 11:41:43 slava, if you've been treating your computer wrong, you might be getting a SIGMYDIK 11:41:56 THe worst file system semantic hideousness is Apple's HFS(+) which is case preserving but not case sensitive 11:42:07 To capture that control character, you need to issue a few ioctl()s on your console FD to turn that facility off (I believe it can be turned off; not sure immediately how to do that though) 11:42:21 mwc: Give me a break. That's one of its best features. 11:42:28 i'm not receiving any SIGTERM though 11:42:40 mwc: I think you can make case sensitive searches if you want on macosx.. 11:42:43 Ill try now 11:42:44 after ^C, select returns immediately each tiime with nfds=1 11:42:54 jDoctor, got gcc? 11:42:55 kc5tja no, it drives me nuts, it doesn't play nice with a lot of Unices 11:42:59 its broken builds too 11:43:06 slava: Well, it's receiving some kind of SIG. I could look up what specifically CTRL-C sends, but I'm being lazy at the moment. 11:43:20 mwc: That's not the fault of HFS. 11:43:24 wait 11:43:26 That's the fault of the software you're building. 11:43:26 Yeah 11:43:27 i think i know what's going on 11:43:34 slava: no. I signed up and all that bs? the disk image fails to mount 11:43:36 e.g., JAVA. 11:43:40 it is a disk image of the CD 11:43:41 But it was never designed to be the base of a system like NextSTEP 11:43:59 Who the HELL decided, in Sun, to make Java's library search code highly case sensitive? That's just plain retarded. 11:44:25 kc5tja, what are you referring to? 11:44:33 I'm referring to this: 11:44:38 import A.b.C.d; 11:44:53 HFS was fine for old Mac OS, but with OS X its showing itself a little long in the tooth 11:44:59 and if you have a directory hierarchy thusly, "A/b/C", it will not find a library "D" in the filesystem. 11:45:24 Ideally apple would let the BeFS designer they hired start from scratch 11:45:49 bbl, out with the dog 11:45:59 * kc5tja doesn't see the relavence of BeFS and HFS. 11:46:11 BeFS was ahead of its time 11:46:15 BeFS is superior 11:46:19 kc5tja, i don't see how this case sensitivity of java is a problem 11:46:25 and when be folded, apple hired its architect 11:46:33 OK, let me state this again: I don't see the relavence of BeFS and HFS in this context. :) 11:46:34 kc5tja, if they made it depend on the FS, you would have problems if you moved files between file systems 11:46:44 BeFS is hardly the ultimate in filesystem design either. 11:46:58 jc5tja: neither do I, I'm not a java programmer, but I assume like CPP that class names are case sensitive 11:46:59 no, it isn't 11:47:04 kc5tja: then what is? 11:47:05 but they hired a great file system designer 11:47:33 and they've had him hard at work implementing stuff on top of HFS (hotfile clustering, on the fly defrag, journalling) 11:47:40 when they should start from square one 11:47:51 filesystems get better at different things. if I have a power backup on a machine, I used ext2. it not, ext3... if I serve a bunch of mini html files like a wiki? reiserfs 11:48:08 yeah 11:48:14 jDoctor: BeFS is a nice filesystem from what I understand, but ultimately, a 100% database-driven system is what you're looking for. A fluid filesystem of some kind would be the ultimate. Imagine having a Google search engine for your own personal box, and it's always up to date. 11:48:16 i find freebsd ufs sufficient for all my need 11:48:44 haha google search 11:48:56 but this filename case crap drives me nuts 11:48:57 I call that updatedb and locate. it's only 2134234 times slower 11:49:19 I don't like the idea of DB file systems 11:49:34 hierarchies are where its at 11:49:45 jDoctor: "...and it's always up to date." Also, updatedb is wholesale unaware of file types and other forms of metadata, AND, locate is unable to search based on content. 11:50:22 Again, I don't see how hierarchies and DBs conflict -- they are 100% orthogonal to each other. 11:50:24 lol. I was just kiddin man. I still like BeFS cause m$ is just now getting a similar idea 11:50:38 WinFS powered by m$ SQL server engine 11:50:40 yeah 11:50:54 until you get into the whole idea of making the filesystem a DB 11:51:05 The filesystem *IS* a database *already*. 11:51:07 m4's implementation will SUCK 11:51:22 true, but not a relational one 11:51:37 umm...not all databases are relational. 11:51:46 I see it already. we have a whole new set of errors for writing files: "lost connection to the database on your OWN computer" 11:51:49 I don't think you could do what BeFS's "indexes" do with a relational DB. 11:51:50 yes 11:52:01 And the new filesystems are supposed to be relational DBS 11:52:42 how about beFS in the ramdisk... 11:52:48 * jDoctor gets hit by a book 11:53:09 title reads "101 Software Disasters" 11:53:22 If that was the title, then he didn't learn anything. 11:53:43 Everyone knows full well that in order to achieve enlightenment, as is tradition in the compsci world, you MUST be thumped over the head with a tome on Lisp. 11:53:58 * jDoctor gets up with his black eye and stares at the screen, where the book came from.. 11:54:05 oh. it's written by m$ 11:54:06 Nah, how about this "C++ In A Nutshell" book 11:54:19 that would dent your skull 11:54:24 "nutshell" my ass 11:54:28 Nope. C++ is listed as the #30 entry in the 101 Software Disasters book. 11:55:16 template metaprograms are my fav feature of all programming languages 11:55:32 C++'s template system makes up for the rest of the language 11:55:35 Yeah, whatever. 11:55:37 templates are only useful because c++ is so crippled 11:55:39 hey, what language in specific are you thinking of, mwc 11:55:50 In C++ of course 11:56:06 with a compiler that has support for templates 11:56:21 oh. I keep hearing that c++ simply is unorganize to a point that makes C better 11:56:25 I posit that C++ is crippled *by* templates, personally. 11:56:42 have you heard of spirit? 11:56:53 its basically C that generates random function calls behind your back 11:57:00 lies 11:57:07 its fully traceable with a crystal ball 11:57:12 haha. C that dances when you didnt tell it to? 11:57:19 Literally, I did all of my programming in C++ when it first came out. Then I started hearing all of this stuff about templates and how great they were. I upgraded my compiler, tried it out, and that was the last C++ program I had *ever* written. 11:57:34 This was going on 5 to 7 years ago. 11:57:44 Try it now that templates are better supported\ 11:57:53 templates bloat code 11:57:55 mwc: No they're not. 11:58:02 They are far, far, FAR worse now than they ever were. 11:58:26 if your code uses 100 different foo types with std::vector, that's 100 copies of the vector class in your binary 11:58:32 They make your source code write-once in nature, they bloat the code by a factor of 5x MINIMUM, it increases compile times by a factor of 10x, etc. 11:59:12 yeah, I'd kinda like to see templates autobox behind your back for all the generic implementations 11:59:15 the fact that c++ needs a glorified copy and paste to make it useful is a reflection of the poor design of c++ 11:59:28 I do all of my object oriented programming in plain-vanilla C now-a-days. Works for me, and my code is lean and mean. 11:59:57 I've never had problems 12:00:04 But then I only use templates for sane things 12:00:43 I have an 800MHz Athlon box, and some of the gEDA tools I use are written in C++ with extensive use of templates (mostly from the std:: namespace). It took on the order of 45 minutes to compile one of the applications. 12:00:47 That's unacceptable. 12:01:29 For Chrissakes, I've got a computer that is technically superior to a Cray X/MP in terms of raw processing power, and to a large extent, I/O bandwidth too. And here I am, waiting 45 minutes for a *schematic editor* to compile. Good grief! 12:01:55 i hate how c++ places so much emphasis on compile time too 12:02:08 your program is not dynamic 12:02:11 (OTOH, if C++ compilers were vectorized and used vectors extensively, the X/MP would kick my ass, but I digress.) 12:02:17 its a huge stone monolith 12:03:05 Static typing is a good thing 12:03:20 And there is a dynamic typing system too 12:03:23 only if your programs are static 12:03:36 as I said: there is a dynamic typing system too 12:03:39 Oberon rewrote the book on static typing. I can assure you, C++ is horrifyingly promiscuous compared to Oberon. But Oberon takes milliseconds to compile its code. :-) 12:03:41 and its a great hack i'm sure 12:03:58 No it isn't: virtual functions 12:04:08 any virtual call is going to do a dynamic lookuip 12:04:14 here is my c++ pet peeve 12:04:19 and if you need true dynamism, then RTTI will be there for you 12:04:22 if you catch(...), you have no idea what y ou just caught 12:04:24 all you can do is exit 12:04:29 yeah 12:04:29 and RTTI is not 'true dynamism' 12:04:32 mwc: Actually, the dynamic typing facilities of C++ are woefully inadequate too -- you cannot dynamically extend a C++ system in C++ itself at run-time. See Forth, Smalltalk, Python, and Lisp dialects for examples of vastly more dynamic systems. 12:04:45 can i do the equivalent of Class.forName("SomeClassName").newInstance() with RTTI? no 12:04:53 of course "SomeClassName" could be any string not just a literla 12:05:12 or can you construct a new class/function at runtime? 12:05:15 slava: catch(...) is there so that you can catch anything you don't know about 12:05:21 which you woujld have caught erlier 12:05:34 Ah, true, how often do you do that? 12:05:38 mwc, in Java or Lisp or any other sane language, I can catch(Throwable t) or whatever, and do RTTI on t 12:05:47 Which of course brings us right back to the issue of using the right language for the right job. C is a systems-level programming language (as is Oberon, btw) -- it was intended for one thing only: a portable assembly language (literally; in DMR's own words!) for porting Unix to other platforms. PERIOD. 12:05:48 I've never written self modifying code in my life 12:06:02 mwc, I didn't say self modifying 12:06:04 I think I'm about to 12:06:13 mwc, think of how many programs have macro langauges, extension langauges etc 12:06:25 This means, in no uncertain or ambiguous words, C is, and by extension C++, a low-level language that is not intended even for general purpose programming tasks. 12:06:28 mwc, in a lisp program, lisp is the implementation language, the extension language, the configuration language, etc. 12:06:48 kc5tja: how the hell did you conclude to that? 12:06:50 yeah, but how much real world software is written in Lisp? 12:07:08 Proof is in the pudding 12:07:11 mwc, how much real world osftware is written in COBOL? a lot. does it make COBOL a great language? 12:07:14 jDoctor: DMR (Dennis M. Ritchie) is co-author of both C and Unix. 12:07:23 Hahah, yeah you got me there 12:07:32 mwc, people will also agree that MacOS X is superior to Windows etc but how many people use Windows? 12:07:33 how much MODERN real world software is written in Lisp? 12:07:39 mwc: Actually, a LOT of software is written in Lisp. Lisp has an absolutely enormous foot-hold in the telephone industry. 12:07:46 Really. 12:08:00 how come I dont know about it 12:08:01 I had a stroke the first and last time I looked at lisp 12:08:10 Also, every time you log into Yahoo! Stores, you're using a system built with, and continues to run today, Lisp. 12:08:13 :) 12:08:17 (because Paul Graham wrote it.) 12:08:20 mwc, if c++'s only claim to fame is openoffice, mozilla, windows, etc. then we can conclude its only good for writing bloated, buggy programs that are impossible to use 12:08:45 wow. whata coincidence 12:08:47 or .. is it 12:08:49 And here's another goodie for you -- how many people here have heard of APL? 12:08:55 yup 12:09:03 APL rocks 12:09:11 Anything that obtuse has to rock 12:09:14 mozilla is actually kinda cool. firefox specifically 12:09:30 jDoctor, sure its usable, but why does it use 100mb of memory? 12:09:38 APL, that lovable, huggable language from the IBM System/360 era, is not only still in use, but actively supported to this day (and have sprung two successor languages -- J and K), and are used extensively (on Linux to boot!) on Wall Street. 12:09:49 slava: you might be thinking of mozilla 12:10:02 firefox is cut-down mozilla 12:10:11 its no use to me, i use mozilla mail too 12:10:18 ok, why does www browser + mail client need 100mb of memory? 12:10:22 isn't 4mb or so enough? 12:10:25 4431 kc5tja 10 0 21592 21m 13m S 0.0 3.3 0:02.36 MozillaFirebird 12:10:29 4433 kc5tja 9 0 21592 21m 13m S 0.0 3.3 0:00.01 MozillaFirebird 12:10:32 4434 kc5tja 9 0 21592 21m 13m S 0.0 3.3 0:00.00 MozillaFirebird 12:10:35 4435 kc5tja 9 0 21592 21m 13m S 0.0 3.3 0:00.00 MozillaFirebird 12:10:38 4436 kc5tja 9 0 21592 21m 13m S 0.0 3.3 0:00.07 MozillaFirebird 12:10:41 4437 kc5tja 9 0 21592 21m 13m S 0.0 3.3 0:00.00 MozillaFirebird 12:10:43 ok, kc5tja 12:10:45 why did you paste all that? 12:10:46 I have precisely *one* instance of Mozilla Firebird running (yes, 0.7 *shame*), or at least, visible on the screen. 12:10:52 There are 6 processes running. 12:10:56 well 21mb is not bad 12:10:56 Whatever in the world for?? :) 12:11:03 kc5tja, they are threads, you silly 12:11:11 21MB is pathetically fat for a browser that just rendered Google.com. :) 12:11:12 so they share an address space 12:11:21 that isnt mozilla the browser though 12:11:21 compared to mozilla, 21mb is not bad 12:11:26 that is just firbord, the email client 12:11:30 firebird* 12:11:40 firebird is a browser 12:11:42 So top shows each thread as a process? 12:11:45 kc5tja, yes 12:11:48 oh, its the OLD one 12:11:51 firefox is better 12:11:51 jDoctor, yes 12:12:15 hehe. they really made it nice and packed with firefox (firebird) 12:12:21 I wish there was a way for top to logically group them. 12:12:28 what the hell? irc in your browser? lol 12:12:51 Oh look: Netscape 7.2 released... The silence is deafening 12:12:59 i wish people wouldn't use static languages for desktop program development 12:13:04 HAHA, check this out: 12:13:04 4445 kc5tja 9 0 3728 3728 3012 S 0.0 0.6 0:00.15 dillo 12:13:05 Does *anybody* use netscape anymore? 12:13:08 4446 kc5tja 9 0 3728 3728 3012 S 0.0 0.6 0:00.00 dillo 12:13:10 the big mozilla has a built in html editor with full syntax highlighting and most of the features of frontpage by M$. what the hell 12:13:16 4MB for Dillo, rendering the same page. 12:13:20 did we forget what "browse" means? 12:13:27 Hahah 12:13:54 I use Safari most of the time just because it launches fastest 12:13:54 jDoctor, it will continue as long as students are graduating from university thinking that c++ and ms visual studio is the state of the art. 12:14:03 C++ is good 12:14:06 they're stuck in the 70's mindset. 12:14:13 the visual studio crpa should get you shot 12:14:14 hehe 12:14:25 slava: not 70's, is it? I'd say 1995 12:14:31 slava; besides, now they graduate thinking java is the bomb 12:14:35 slava: Actually, no -- they're stuck in the 80s mindset. Even C was lean and mean when it was first introduced. Remember, Unix ran on PDP-10s with only 64K of memory back then! 12:14:45 if c++ was an operating system, it would be one of those old, clunky batch processing ones. 12:14:57 we need to start using interactive languages, and doing test driven development 12:15:00 it wouldnt be far from windows 12:15:19 jDoctor: Windows NT was written in C++, and continues to be maintained in C++ to this day. 12:15:23 mwc, java is an improvement over c++ 12:15:38 Hmm, I thought Oberon looked interesting, but I see it was developed by the same twisted mind that developed pascal 12:16:12 slava: yes, having an application hang interminably during garbage collection until I kill it is really an improvement over it just crashing 12:16:14 mwc: So you're going to prejudge Oberon because you had a bad experience with pascal, is that it? 12:16:24 Hahah, yeah, I was thinking about it :P 12:16:45 I really didn't like its BEGIN and END stuff 12:16:56 Oberon doesn't ahve those things. 12:16:56 too verbose 12:16:58 IF xyz THEN 12:16:59 .. 12:17:00 ELSE 12:17:00 .. 12:17:02 mwc, i haven't seen any garbage collection pauses since 1998 or so 12:17:03 END 12:17:08 slava: welcome to my box 12:17:14 mwc, in fact if i enable gc tracing, it shows that most collections take less than a few ms 12:17:28 Oh, its fine for smallish apps 12:17:32 mwc: But if you had a slightly more open mind, you wouldn't have prejudged, and would have found out for yourself. :) 12:17:33 up to about jEdit's size 12:17:46 my point is that apps *dont have to be big* 12:17:51 but limewire is like roulette 12:17:54 you need a good runtime with small modular extensible apps 12:17:59 mwc: Even big apps don't have any GC pauses anymore. 12:18:02 not huge static monoliths 12:18:18 Generational, incremental GC completely eliminates them. 12:18:20 Totally. 12:18:33 i'm not saying that java or lisp or forth or factor is the one solution, but they're all pointing in the right direction 12:18:41 Don't let Java fool you -- Java's GC implementation is *pathetic* and *pale* imitation of state-of-the-art GCs. 12:18:50 I'll accept that 12:18:56 kc5tja, and what is better? 12:19:03 i hope by java you don't mean "kaffe" or "gcj" :) 12:19:15 slava: your file system browser in jedit flickers when I save a file. I'm just wondering- is it refreshing? 12:19:15 those are pathetic 12:19:19 jDoctor, yes 12:19:27 I've used the Boehm GC just for development, and seen if its collecting anything I should be deleting 12:19:29 slava: Commercial-grade Lisp engines and many functional programming languages like Ocaml have GCs that will make Sun's Java's implementation look like BASIC in comparison. 12:19:34 ah. on this apple, it is scarely slow to save 12:19:59 jDoctor, its invoking 'chmod' 12:20:05 jDoctor, maybe Runtime.exec() is slow on apple? 12:20:15 java version "1.4.2_05" 12:20:15 Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-141) 12:20:15 Java HotSpot(TM) Client VM (build 1.4.2-38, mixed mode) 12:20:16 yah thats what I'm thinking 12:20:26 or filesystem writing 12:20:28 that's still hanging a fair amount under heavy use 12:20:36 which may be bad design 12:20:39 of the app 12:20:42 mwc, its probably swapping due to lack of RAM (java uses a lot of RAM) 12:20:48 and yes, if the app blocks the event thread there isn't much the VM can do. 12:20:55 try java -verbosegc -jar Foo.jar 12:20:55 Yeah, I have 512 MB with unlimited SWAP 12:21:06 mwc: Well, consider this: Java's VM implements a fixed-size heap. This heap may be big enough to cause Linux (or whatever host OS it's running on) to swap to disk. 12:21:17 So when the heap gets full, and the GC starts to collect, guess what? THRASH! 12:21:56 I've had that problem happen to me on numerous occasions in the past. 12:22:09 And that's not a problem with the VM why? 12:22:37 slava: maybe you should make the filesystem browser only make sure this file appears (if you are looking at the parent folder of the current buffer). 12:22:45 then you dont have to use exec 12:22:54 jDoctor, i use exec to preserve file permissions across saves 12:23:02 jDoctor, otherwise saving a script will lose +x etc 12:23:17 mwc: That is a problem with the VM. But you were complaining about garbage collection, not the VM. 12:23:25 ah. ok 12:24:05 My point is that well-implemented GC isn't slow anymore. If it is slow in one particular language, then it is that language's fault. Period. 12:25:49 the kernel is not aware of GC 12:25:49 I've just avoided the problem by not using GC 12:25:56 if it somehow knew that certain pages are garbage, etc. 12:26:05 The nice thing about Oberon is that it is the only statically compiled language I'm aware of that has real, fully accurate garbage collection. 12:26:13 Hmm 12:26:22 i'd pick a 20% runtime performance hit over 10x debugging time due to bad use of malloc/free. 12:26:23 At zero cost? 12:26:39 i bet c++ templates cause many more performance problems than gc 12:26:46 gc doesn't duplicate everything in your heap 20 times 12:26:49 slava: I use the Boehm GC while testing 12:27:04 then if I see any thing being collected, I figure out where I should have deleted it 12:27:10 mwc: You seem to have this thing in your head that just because a language has GC, it's going to cost something significant. Again, it is an implementation-specific issue. I cannot say what it'll cost because it depends *entirely* on the specific implementation. 12:27:17 duplicate in the heap? 12:27:36 mwc, code duplication from use of templates wastes a lot of memory 12:27:36 kc5tja: yes, and if there's any cost to it, it should be in a system programming language, which you alledge Oberon is 12:27:46 true 12:27:59 but there are way that could and should be rectified 12:28:08 Yes, Oberon is intended to help write OSes and device drivers. It's actually been used to implement a complete, Smalltalk-like environment too. 12:28:09 when mozilla or openoffice start swapping, its just as bad as these alleged "gc pauses" 12:28:38 In my experience, I've never seen Oberon get boggy due to garbage collection. 12:28:58 for instance, all pointers are the same size, so if you haven't specialized for a pointer type, it should use a generic pointer template 12:29:02 However, I've also never conducted a formal profiling of it either. But I suspect that it has been optimized to hell and back by those working on it. 12:29:14 Probably 12:29:41 especially since the GC implementation is effectively running at the kernel level in the system. :) 12:29:56 but if you're writing performance critical code, you have to wonder if the GC overhead is worth it 12:30:19 (a) Performance critical code *NEVER* allocates or deallocates memory, so it's not an issue either way. 12:30:23 mwc, you're still fixated on the 'gc overhead'. in some cases gc is faster than malloc/free 12:30:32 for example malloc has to search a free list 12:30:46 a generational collector and use cheney's algorithm in the youngest generation, and allocation is just pointer increment 12:30:49 (b) GC has the unique advantage of having its expense amortized over time, unlike malloc()/free(). 12:31:31 Indeed, the key is to employ a generational GC. 12:31:39 If it's not generational, you will truely encounter some delays. 12:31:54 Meh, maybe, but I'm in trim every piece of fat I can find 12:32:05 And then, within the generational category, there are TONS of sub-classifications, each with their own specific performance attributes. 12:32:12 mwc, then why don't you code in assembly? 12:32:18 Actually, I am 12:32:32 programmers that chose optimization over stability should be shot... 12:32:34 slava: hey, you got something against assembly language? >:) 12:32:45 your code might run 2x as fast, but leak memory like a rusty bucket and segfault 5 minutes later 12:32:48 kc5tja, no 12:32:57 slava: programmers who don't get thier code to fit into the system don't get payted 12:33:11 mwc, is your system 16kb? 12:33:16 32kb 12:33:21 mwc: HAH! Microsoft proves you wrong right off the bat. :) 12:33:26 then why are you coding c++? 12:33:31 I'm not 12:33:36 I use C++ on the desktop 12:33:45 we're talking about desktops here not your apple //e 12:33:46 Windows 2000 alone requires 1GB of RAM to run comfortably, and most systems still only have 512MB or less. :) 12:33:51 and assembly on the embedded board 12:34:07 fine, for embedded, gc might not be a great idea, but i wouldn't use malloc/free there either 12:34:15 Yeah, I'm planning a 2 gb upgrade when 1GB sodimms come down from $600 12:34:15 just a simple forth with allot/forget 12:34:50 mwc: I'm pissed because those 1GB DIMMs don't even have 100% reliability either. I had to upgrade a server the other day, and those damn dimms I used, fresh out of the anti-static wrap, were BAD. >:( 12:34:54 But I digress. 12:35:40 Check out the price on PC2700 SO-DIMMS 12:35:44 higher than gold 12:36:08 slava: Actually, besides the kick-butt GCer that ML typically has (now-a-days at least), modern ML systems do allocation and free analysis at compile-time, and can actually put most of its allocation into a Forth-like "dictionary"-ish pool of memory, each representing different object types and ages. It's actually cut the already lightweight GC time by significant factors in most applications. 12:36:11 Especially if you get the manufacturer to upgrate the RAm 12:37:18 Of course, no matter how good any language is, its an uphill battle for adoption 12:37:20 kc5tja, yeah, i'm considering similar techniques to minimize the number of linked list node garbage in factor 12:37:28 Dude, I swear. With even the 640MB of RAM I have in my box, when I get my self-hosting Forth environment running under L4, I'm never going to free memory. Ever. 12:37:31 which is why I'm still using C++: I'm 10 times more productive with it than Java 12:37:36 If the heap runs out, I'll just reboot. :) 12:37:36 mwc, who cares about adoption? if you're more productive coding in language X, it doesn't matter who else uses it 12:38:50 ocaml is GC'd? 12:38:53 After all, 640MB ought to be enough for anyone, right? 12:39:10 mwc: I cannot think of a functional programming language that is not GCed. 12:40:07 its *functional* 12:40:07 like LISP? 12:40:07 or Scheme? 12:40:17 lisp and scheme are not really functional languages 12:40:31 they permit side effects, usually have OOP features, etc. 12:40:32 It's functional, like ML. :) 12:40:52 Well, ML isn't a 100% pure functional language either. So I'd have to say it's much closer to Scheme than it is to Lisp. 12:40:59 I thought all functional programming languages were based on Lambda calculus 12:41:09 But, ML makes it rather hard to write programs that have side-effects. 12:41:16 They are. 12:41:23 Joy isn't. 12:41:25 Well, not all. 12:41:31 Yeah, I was going to get to that. 12:41:36 Joy is concatenative. 12:41:39 Hmm 12:42:02 But by way of analogy, Joy:Haskell :: Forth:ML 12:42:14 kc5tja, Joy can actually be implemened without a stack -- with a rewriting system 12:42:14 So, technically, Forth is also a functional language too -- just not a pure one. 12:42:25 that's going too far 12:42:47 i don't think Forth qualifies :) 12:43:09 it can allow programming in a functional style, though. 12:43:23 It can allow? Not only does it allow, it tries very, very hard to encourage it. 12:43:30 --- join: SDO (~SDO@67-23-111-213.clspco.adelphia.net) joined #forth 12:44:22 There are real performance penalties for affecting side effects (! and @ take time, for example). Try to keep stuff on the stack if you can. :) 12:44:59 --- join: jDoctor_ (~reginaldf@pcp09413324pcs.manass01.va.comcast.net) joined #forth 12:45:01 There is absolutely no denying that Forth can be likened to Common Lisp or to Scheme though. Even a Lisper will tell you that much. 12:45:12 sure 12:45:25 Forth is not homoiconic like lisp and scheme though 12:45:54 Meaning...? 12:46:01 code is data is code 12:46:10 well it is to some extent 12:46:18 but not like lisp 12:47:02 Correct. 12:47:09 Forth is more static in that sense. 12:47:37 It goes straight from source code directly to raw, executable, binary form -- very few Forth implementations have an intermediate representation. 12:48:26 you can't do (eval (cons '+ '(2 2))) in forth 12:48:58 Not directly, but you can do string manipulation, and pass the resulting string to EVALUATE. 12:51:01 sure 12:51:04 'see' doesn't place a string on the stack, does it? 12:51:11 mwc: Nope. 12:51:20 so then code really isn't data 12:51:30 data may be code through EVALUATE 12:51:40 mwc: Wait. 12:51:41 Stop. 12:51:44 Your argument is invalid. 12:52:05 kc5tja, he means you can't use 'see' to turn a word definition into a string 12:52:37 and you're talking about using strings to manipulate code as data 12:52:38 SEE actually prints a Forth-level disassembly of a word (assuming the binary representation permits this, which, for example, indirect and direct threaded Forths do). 12:52:59 Who's to prevent someone from implementing or re-implementing SEE to produce a string in memory? 12:53:09 Just because SEE *doesn't* doesn't mean it's NOT POSSIBLE. 12:53:24 kc5tja, factor can: [ "see" see ] with-string-stream 12:53:37 What determines whether it's possible or not is NOT the semantics of SEE vs. EVALUATE -- it's the final, binary representation of the program. 12:53:37 its trivial 12:53:58 slava: Gforth 0.6.2, Copyright (C) 1995-2003 Free Software Foundation, Inc. 12:53:58 Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license' 12:53:58 Type `bye' to exit 12:53:58 see see 12:53:58 : see 12:54:01 parse-word find-name dup 0= 12:54:03 IF drop -13 throw 12:54:06 THEN 12:54:08 name-see ; ok 12:54:17 yes, name-see takes a string from ths tack 12:54:29 You're missing the point. 12:54:38 --- quit: jDoctor (Connection timed out) 12:54:41 its easy to implement, i know 12:54:48 The point is, GForth *CAN* retrieve the original source because it's binary representation in memory facilitates thsi. 12:54:53 yes 12:55:05 FTS/Forth, my Forth, does NOT, because I go from raw source to raw binary, CPU-executable code. 12:55:36 So making the claim that Code isn't data in Forth on the basis that SEE doesn't return a string on the stack is an invalid argument. 12:56:08 SEE could just have easily have been defined "...THEN name-see type ;" if they wanted to. 12:56:11 But they didn't 12:56:47 They chose a more static route, presumably for efficiency or ease of implementation reasons. 12:56:54 That was my point. 12:56:55 right, but if you can't take an arbitrary word and turn it into a form you can manipulate with language semantics and then exectute it, you're not homoiconic 12:58:02 So if I were to modify GForth to include a word, "SSEE", which is exactly like SEE except it returns a string reference on the stack, that invalidates your argument that Forth (the language as a whole) isn't homoiconic. 12:58:10 --- nick: jDoctor_ -> jDoctor 12:58:13 yes 12:58:23 which is why Forth is awesome 12:58:40 but it wouldn't be a feature of the language perse 12:58:49 forth is awesome cause it is FORTH 12:58:55 as in, whats defined in the standard 12:59:23 mwc, what standard? 12:59:23 mwc: If it weren't for ANSI Common Lisp, we wouldn't have Scheme. :) 12:59:27 ANSI 12:59:34 mwc, who cares about the 'standard'? 12:59:43 most people don't 12:59:46 slava: That's basically what I wrote above. :-) 12:59:55 mwc, if the standard defined FORTH as a glob of green cheese, it wouldn't invalidate kc5tja's SSEE argument 13:00:13 slava: I don't think that is his point. 13:00:14 but if you go extend the language you can't call it the same language 13:00:30 well, are you talking about adding a word to the implementation, or adding the word in the environment itself? 13:00:35 Anyway, I think everyone is starting to talk past each other, as the argument is slowly morphing. So I'm going to drop the conversation like the top of stack that it is. :D 13:01:01 To me, an implementation and environment are the same thing. A standard isn't either one -- it's just a prescription. 13:01:38 mwc, what's the difference between the two? 13:01:55 mwc, you only perceive a differenec because you're used to more limited languages like, eg, c++ where you can't extend the compiler from your program 13:01:55 SDO: Greetings. :) 13:03:48 Well, if its in the implementation, then I would argue that youv'e really created a new dialect of Forth 13:03:48 but if its done inside the language itself, its fine 13:04:08 there is no 'language itself'. any time you code in forth you're creating a new implementation 13:04:23 the word * is no different from the word : SQ DUP * ; i just defined 13:04:26 they're both words 13:04:34 yes 13:04:56 but I would argue the language/implementation is what exists when the forth kernel loads 13:05:04 before it processes any input 13:06:07 the input processor is just another set of words 13:06:16 anyway, i'm going for a bike ride 13:06:54 Hmm...bike ride sounds pretty good. But since I've been gaining weight like a pig of recently, I'm afraid I'll crush my bike. :) 13:07:07 * kc5tja is planning on riding to work via bike this week though. 13:07:18 I need the exercise, badly. :/ 13:07:24 I totalled my mountain bike earlier, and can't afford to replace it 13:07:33 Front tire blewout going downhill at 40 kph 13:07:44 Oops. :( 13:07:44 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 13:07:57 How did that happen? 13:08:07 yeah, it went off a 20 foot cliff onto some rocks 13:08:12 glad I was seperated 13:08:14 tire just blew out 13:08:21 lost control 13:08:37 Probably the rubber was old and cracked. Finally gave way to internal air pressure. 13:08:48 Actually, it was a brand new tire 13:08:53 I suspect a defective tube 13:08:54 Oh, yeah, I don't think you'd be here if you were attached to the bike. :) 13:08:56 2 weeks old 13:09:00 :( 13:09:15 That's the ONE thing that prevents me from spending the money on pedal clips. 13:09:22 Yeah 13:09:30 I'm mixed on them 13:09:32 If I need to get off the bike in a hurry, I want to ensure that I can just jump off the bike. 13:09:43 usually when I have a wipeout, I'm glad I don't ahve them 13:10:10 but then when I have cuts from the pedals in my chins, I wish I did 13:10:16 foot slips off, pedal flies around, bleeding results 13:10:37 It's not that I'm afraid of falling per se (as an aikido student, I can do that well enough), it's the fear of twisting my ankle and doing some rather irreparable damage. 13:11:16 i had a bike tire explode a while ago 13:11:25 was rather amusing, loudest bang i've ever heard 13:11:29 (racing tire) 13:11:37 Yeah, but were you on the bike? 13:11:40 Topaz: For motor cycle or for road bike? 13:11:41 Sorry, still bitter 13:11:43 road bike 13:11:54 Falling again is fine 13:11:56 i was going uphill at the time, so it wasn't spectacular 13:12:03 Yeah, I can imagine -- road bike tires have 65PSI to 85PSI of air in them. Insane pressures. 13:12:08 I just don't like being attached to the bike in the aftermath 13:12:18 my current bike tires are meant to be pumped to 120, heh 13:12:22 i'm not strong enough :/ 13:12:28 In that case, I managed to catch a rock with my foot and stop myself 13:12:49 Man, I'm glad I don't bike near any ravines. : 13:12:50 :) 13:13:03 Although my situation is almost as bad -- in heavy traffic. :) 13:13:32 And cars don't fucking stop to look for bikers when they drive either. That really pisses me off. >:/ 13:13:41 Yeah, I had a wipeout on a shared bike/car bridge once 13:14:02 When I came to a stop I looked up and saw bumper 13:14:05 but that's a lowspeed bridge 13:14:24 I was biking up in muskoka actually, in the Canadian shield 13:14:26 beautiful place 13:14:38 lots of granite 13:14:46 mwc: Yeah, there is one bridge to work I have to cross that doesn't have a bike lane. 13:15:08 That, more than anything else, though, gives me reason to worry about biking to work during the day. 13:15:12 Just plain NASTY. 13:15:35 Is riding on the sidewalk an option? 13:15:42 No sidewalk. 13:15:46 Around here, it is at around a walking speed 13:15:56 Ah 13:16:04 40MPH traffic typically on this bridge, so I have to *dart* fast across the bridge. 13:16:27 Fortunately, there is a light in front of the bridge, so I can often catch a window of opportunity to haul-butt up and over the bridge. :) 13:16:27 here (Ontario) cars have to give the full lane to a cyclist 13:16:38 so you can bike on those bridges without fear 13:16:42 haha where in ontario are you? 13:16:46 London 13:16:47 TECHNICALLY they do here too, since we're considered a "vehicle." 13:17:04 But nobody ever does, and CA usually has dedicated half-lane wide "bike lanes". 13:17:05 ]Right 13:17:06 mwc, in ottawa driving on the road can be a challenge 13:17:07 Which are usually OK. 13:17:11 So just ride in the middle of the lane on that bit 13:17:15 especially around downtown 13:17:28 I have mixed feelings about ottawa 13:17:39 the country side is nice enough 13:17:45 mwc: I do. :) People hate me. 13:17:49 i hate how its so spread out 13:17:56 at least now i live 15 mins from downtown 13:18:06 but too close to Quebec... And then of course its still ottawa :P 13:18:11 i used to liev in the suburbs out east, it took half an hour to drive downtown 13:18:16 that sucked bigtime 13:18:33 i hate suburbs/country/etc :) 13:18:37 * kc5tja is growing to not like big, densely packed cities. 13:18:48 The impression of Hull I got is that its the closest thing canada has to Hells Kitchen or the like 13:18:56 yeah, I grew up in prairie farm counrty 13:19:14 * kc5tja grew up in a city. 13:19:15 if I can't see horizon on 350 of 360 degrees around me, I get antsy 13:19:17 I'm a total city slicker. 13:19:23 Horses freak the shit out of me. Can't stand them. 13:19:32 But still, you guys out in the country, you have it made. 13:19:33 For real. 13:19:36 Me too 13:19:42 Much prefer dirtbikes and ATVs 13:20:07 Yeah, I want to get my MD and go set up a general practice in the middle of nowhere 13:20:21 Heheh :) 13:20:27 Potentially lots of business, then. 13:20:37 And, maybe, something that hasn't been seen in a long time -- a sense of community. 13:20:48 and then just spend my days working and doing whatever interests me: math, physics, etc. 13:20:48 Yeah 13:20:58 that's what i like most about uni, heh 13:21:13 Actually, some of the provincial governments will pay you a stipend to practice in an underserved area 13:21:15 living close to huge numbers of people that you know 13:21:17 * kc5tja wants to get out in the country some where, and set up my ham station like I've always wanted to, and get back into amateur (maybe even radio) astronomy. 13:21:47 Amateur radio astronomy... wow. :) 13:21:58 How exactly do you practice that? 13:22:03 Robert: The first radio astronomer used his ham gear to map the sky. :) 13:22:12 Hehe 13:22:18 Robert: Ham gear is actually scientific-grade in terms of RF sensitivity. 13:22:28 The only thing it lacks is cooling to reduce noise. 13:22:49 That can be easily arranged, however, using a TE-cooled GaAsFET pre-amp, say, 20dB or so. 13:23:03 Yes... But don't you want rather wide-band receivers and a good antenna? 13:23:04 Then you need the antenna arrangements to make it all happen. 13:23:08 Fun fun 13:23:08 go to the arctic 13:23:08 nice clear air 13:23:08 Yeah 13:23:12 Not the usual dipole and 2m-only RX. 13:23:12 Its hardly amateur when you have 40 large dishes in a phased array 13:23:18 How many people recognized Galium Arsenide Field Effect transistor? 13:23:41 Robert: For mapping the sky at a specific frequency, a normal ham rig will work. If you want wide-band reception, however, you can hack your radio to intercept the IF signal before it reaches the AF stages. 13:23:47 heh, they make LEDs out of GaAs too 13:23:56 interesting choice of substrate for a FET 13:23:57 yep 13:24:03 Isn't that GaAsIn or something? 13:24:21 they make LEDs with various compositions 13:24:38 i have a heap of orange GaAs here, and a InGaAs blue 13:24:38 I meant the most common one including gallium arsenide. 13:24:44 Oh, what's that link for 'Britney Spear's Guide to Semiconductor physics"? 13:24:46 Ah, OK. 13:24:47 Topaz: GaAsP is used for LEDs. GaAsIn is used for normal FETs. VERY low noise, but VERY fragile too. They are so static sensitive, that they make normal CMOS chips look solid as a rock in comparison. 13:24:53 mwc: Heh. :D 13:25:06 ah, ok 13:25:19 (by 'heap' i mean 510 perchance ;) 13:25:20 mwc: You hang with the wrong crowd. 13:25:25 GaAsFETs are also extremely FAST too. 13:25:38 Yeah, I hang out with engineers 13:26:09 Well, CMOS is pretty tough 13:26:27 mwc: Only because they're inputs are guarded by 2000V reverse-biased diodes. :) 13:26:28 tough enough is being able to handle it without special gear on basement workbench 13:26:59 really 13:27:10 Some of this stuff is 8 Mhz clocked, I wouldn't think a 2000V diode could switch that fast 13:27:19 isn't breakdown proportional to latency? 13:27:25 Under normal operation, the diodes aren't conducting. 13:27:33 ah 13:27:46 The transistor does all the work; the diodes are there only for protection purposes. 13:28:10 right 13:28:18 GaAsFETs don't (usually) have diode protection on them, because such diodes add noise, thus defeating the whole purpose of using them to begin with. :) 13:28:24 but doesn't having it there incur the usual junction latency? 13:28:56 No -- the capacitance from the gate dwarfs the capacitance from the diodes. 13:29:07 slava: the guys in #macosx dont even know: the icons for the apps in macosx- like your jedit on, is it svg? 13:29:16 I mean, it DOES slow it down . . . a little bit. :) 13:29:26 cause they scale pretty damn good 13:29:35 no 13:29:42 Tiff I think 13:29:47 but they're all 128 bit 13:29:51 er, 128x128 13:29:53 ah. 13:30:00 they shoulve went svg 13:30:05 scaling down is pretty easy 13:30:20 They would have gone PDF is they'd done anything 13:30:21 im talkin about the magnifying 13:30:30 PDF is apple's fetish format for CoreGraphics 13:30:30 pdf?! 13:30:45 svg would of been awesome 13:30:45 yeah 13:30:48 jDoctor: You know that MacOS X's display, the thing you see on the screen, is all rendered by a PDF engine, right? :) 13:31:04 are we thinking of the same thing? 13:31:11 pdf.. ghostviewer ggv, adobe.. 13:31:12 PDF is reasonably similar to post script 13:31:14 jDoctor: Do a Google search for "Display PDF". :) 13:31:28 he's talking about the dancing dock icons 13:31:31 PDF is vastly superior to Postscript for document layout purposes. 13:31:40 Yeah, I know. 13:31:54 Yeah 13:31:58 you mean, my display runs of an engine for handleing display of documents like pdf? 13:32:00 but PDF was based on Postscript 13:32:08 that is kinda an original idea! 13:32:22 jDoctor: Not really -- NeXTStep used Display Postscript. >:) 13:32:25 jDoctor: he means that the graphics system is vector based, not rastar based 13:32:38 Yeah, but Mac OS X = NeXTStep++ 13:32:42 so svg would of still been better 13:32:46 PDF is expressed as vector graphics data. SVG is actually (originally, at least) intended to compete with PDF as an open standard. 13:32:47 No 13:33:06 ah ok 13:33:07 it wouldn't 13:33:07 it would have been fatter 13:33:12 plus you have to deal with all the features of SVG 13:33:17 which is looking to become Flash 13:33:18 so you mean pdf would of been better cause it is still scalable 13:33:23 But the vector graphics trees in PDF are expressed in a reverse polish manner, inheriting a lot of logic from Postscript. 13:33:49 mwc: Now is it, yes. I'm saying, when SVG was originally conceived, it was intended to compete with PDF. 13:33:56 --- join: crc (crc@0-1pool104-214.nas52.philadelphia1.pa.us.da.qwest.net) joined #forth 13:34:08 Scaling a vector image is a matter of multiplying the coordinates 13:34:11 I have major issues iwth SVG anyway. It's utterly intractable to deal with by hand, for example. 13:34:27 it looks like xml, right? 13:34:32 PDF is drawn like: "line from (x,y) to (x', y')" 13:34:33 jDoctor: It is a dialect of XML, yes. 13:34:36 yes 13:34:48 XML isn't a panacea 13:34:51 hm. I really like svg too. 13:35:06 pdf though- I evidentally dont know enough about it 13:35:15 Repeat after me: "XML is NOT the second coming." 13:35:22 jDoctor: The results of SVG rendering on the screen are quite nice. It's just the XML files are impossible to deal with by hand, because it's (in my opinion) very poorly designed. 13:35:43 yah, Ive seen and agree with you, kc5tja 13:35:47 why use xml if you cant read it?! 13:35:50 * kc5tja is a devout fan of EA-IFF-85a files. 13:36:00 iff rocks 13:36:18 electronic arts did a damned good job on that one 13:36:27 ok this is fucked 13:36:30 Actually, has anybody implemented ALL of the SVG spec? 13:36:33 they use it in games? 13:36:35 EA? 13:36:37 fucked fucked fucked 13:36:38 They do EVERYTHING that XML does, and do it in a binary form, so they are small and so easy to parse that a 3-year old could write a program to do it. 13:36:48 fucking select() and out of band data 13:36:49 i give up 13:36:51 bbl 13:37:03 he gives up! 13:37:04 mwc: Not sure. 13:37:06 Hahahha, googling for EA-IFF-85a only returned one result: an old log of this channel 13:37:08 lol 13:37:11 everyone clap for slava 13:37:30 jDoctor: EA uses it for various things now-a-days. Usually for images (if you find a .LBM file, it's an IFF ILBM file, for example). 13:37:44 kc5tja: you were the one who mentioned there 13:37:49 you work in games, kc5tja ? 13:38:21 And... you were complaining about SVG then too 13:38:23 jDoctor: No. I used to work for Amiga, Inc. though. 13:38:25 interleaved bit map heh 13:38:32 doesnt that only have relavance for an amiga ? 13:39:02 I4404__: Technically, no. ILBM is stored in a planar form that actually doesn't match any existing hardware layout today. 13:39:09 Therefore, it's a nice, neutral representation. 13:39:12 right 13:39:14 Which was the intent. 13:39:46 However, the video modes used to describe the files were largely Amiga-inspired. However, modern (and incompatible, damn EA!) ILBM formats also cover VGA-like video modes too now. 13:40:12 mwc: Yup. :) 13:40:29 * kc5tja abhores the over-use of XML technology. 13:40:36 as I said 13:40:42 along the way, somebody confused XML with Jesus 13:40:50 HAHAH! i like that. 13:40:54 * kc5tja should put that on a T-shirt. 13:41:41 Maybe someone ought to introduce a new file format based on EA-IFF-85a, and call it something like OS-IFF-04 or something (OS = Open Specification, 04 = 2004, of course). 13:42:11 of course, PNG has a file structure that is remarkably close to IFF. 13:42:12 "God did not write the universe in XML." 13:42:53 Oh well, I mananged a full day of work with little to no actual work done. 13:42:57 Another stunning success 13:42:57 The only thing I dislike about PNG format is that they have checksums all over hell and creation, and it's not necessary. Just a waste of file space. 13:42:59 later 13:43:18 mwc: YES! I've often achieved such milestones myself. Anyway, laters. 13:43:34 Sigh, someday I'm going to have to get a job where productivity counts 13:43:40 I won't be able to cop 13:43:47 *cope 13:43:48 --- quit: mwc ("Leaving") 13:51:47 Well, I'm going to grab some food, and going to take my bike to do it. It's the least I could do to "get in shape" (*snicker*) for work this week. 13:55:20 kc5tja: why does your weblog display 'lol' as the only text? 14:00:37 crc: Probably because the site was hacked again. 14:00:38 * kc5tja checks 14:01:04 Yep, it was hacked. 14:01:28 :-( 14:01:40 That's OK -- I have full backups from the last time I updated. 14:01:52 Still, it's no fun being hacked 14:02:48 If I had anything truely important up there, I would be concerned. 14:02:57 But really, it's nothing for me to be terribly concerned with. 14:04:24 is there anything dynamic there? or is it all static html which somebody is password-cracking/backdooring? 14:05:26 There is dynamic content in the form of my blog. 14:05:40 But I am definitely looking to do away with that since that seems to be how they are getting in. 14:07:20 I'm re-uploading my site now. 14:07:28 crc: You aren't missing much. 14:07:48 ok 14:07:59 I haven't even bothered to update my site except for the blog entry saying the Kestrel project is no longer being worked on right now due to my inability to meet customer price points. 14:08:27 I am now devoting my time to my FTS/Forth environment for Linux. 14:08:40 (which will be used to bootstrap the FTS/Forth for L4 environment) 14:09:09 L4 is a microkernel that is GRUB/Multiboot compatible, so I'll have a self-hosting Forth environment with relatively little effort (still won't be completely effortless of course). 14:09:22 * crc has been playing with FTS/Forth 0.1.0 :-) 14:09:41 I have the new code gneerator for FTS/Forth in place. 14:09:44 It's much smaller. 14:09:54 Less than 10 blocks. :) 14:09:57 Cool 14:10:03 * crc waits for it to be released 14:10:14 I was going to put it online tomorrow evening. 14:10:41 Very cool 14:10:41 Is it more complete than the last one? 14:10:53 More complete as in? 14:11:37 I had some difficulty producing anything beyond a "hello world" type program with it 14:11:40 Right now, it's almost exactly where 0.1.0 was in terms of overall development. 14:11:46 Ok 14:11:55 Well, you can read data from the console and write data to the console. 14:12:04 But remember it is a cross-compiler, and NOT a fully interactive environment. 14:12:12 I know that 14:12:28 --- quit: Robert ("Thunder. The Gods are pissed. I must pay for my sins.") 14:12:52 I guess what I need help on the most right now is getting it interactive, so I can start coding it from within itself. 14:12:59 :-) 14:13:10 I, don,'t, like, constantly, typing, commas, after, every, freaking, word, especially, for, primitives,. 14:13:29 I understand that 14:17:14 What's the register use in FTS/Forth? 14:17:58 ESI is data stack pointer. ESP is return stack pointer. 14:18:02 EAX is top of stack cache register. 14:18:20 Just like RetroForth :-) 14:18:22 EDX is used as an address register. 14:19:35 As far as I'm concerned, all registers except EAX, ESI, and ESP are temporary registers that can be used freely (as long as you don't hold semi-permanent data in them). 14:19:54 Same here 14:20:42 Oh shucks, the update didn't record my last blog entry. Oh well. I'll flesh things out better the second time around. 14:21:50 How does a fresh, brand-new Linux process receive its command-line arguments? 14:22:00 * crc will return in a little while 14:22:15 Yeah, me too. I will be about two hours, since I'm going to get some food via bike. 14:22:19 --- nick: kc5tja -> kc-biking 14:25:41 --- quit: madgarden ("*frotz*") 14:29:32 kc-biking: they are C strings (zero terminated) in memory. you get a pointer to an array of pointers. a null pointer indicates the end of arguments 14:46:37 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 14:58:19 --- quit: FlamingRain ("Leaving") 15:11:49 --- join: doublec (~doublec@coretech.co.nz) joined #forth 15:24:00 hi doublec 15:24:04 i just got home 15:24:29 it runs on the xaurus? wow! 15:24:31 zaurus* 15:27:32 hi slava 15:27:40 slava, yep. Runs well too. 15:27:53 doublec, it has no fpu? 15:27:55 slava, it's pretty cool to access the web server on it from the a browser on the zaurus as well. 15:27:58 doublec, is the math real slow? 15:28:07 doublec, try the eval responder :) 15:28:14 slava, it's emulated. I haven't tested the fp stuff. It was a quick compile and run. 15:28:25 cool 15:28:30 slava, What I'll do is do a full build and release it on the zaurus forums. 15:28:44 doublec, did you have to make any changes? 15:29:05 slava, no, it built without changes. 15:29:12 doublec, i'd like to have a set of args to the Makefile, that pick from a small set of CFLAGS (pentium 4 optimization, powerpc g5, powerpc g4...) 15:29:18 doublec, or use autoconf 15:29:30 slava, oh wait. I had to change the makefile so the architecture wasn't pentium. 15:29:50 doublec, there's a problem with reading OOB data from network sockets 15:29:57 what happens? 15:30:01 telnet, eg sends an OOB when you do ^D or ^C 15:30:23 well, select() returns immediately since there is data to read, but read() never picks it up so we get a infinite loop of select() and read() 15:30:27 a nice DoS attack :) 15:30:36 ahh, ok. 15:30:56 i believe i have to use recv() to read from the socket to get OOB data 15:31:28 you can use setsockopt to ignore OOB data as an option. 15:31:45 i tried various things none worked for some reason. 15:31:58 setting some socket flag, checking if select would return the fd in except_fds (it didn't) 15:32:34 anyway, i wanted to add read# since its trivial, then get the httpd to read the user's headers. 15:32:40 Bck 15:32:43 --- nick: kc-biking -> kc5tja 15:33:10 doublec, that would be nice -- we could then do cookies, user-agent in the log, etc. 15:33:32 slava, yes that would be cool. 15:35:46 hi kc5tja 15:37:12 kc5tja, i just got back from biking too 15:37:50 Man, I'm so out of shape. :/ I just need to start biking as often as possible. 15:38:01 I also need to make the time to get back into aikido too. 15:38:04 last time i went cycling i nearly collapsed 15:38:05 * kc5tja will be going tonight. 15:38:08 i think i was dehydrated 15:38:19 (20 miles isn't a huge distance) 15:38:20 kc5tja: got a question. In your 100% USDA-approved personal opinioon, what is the best way to deal with "namespaces" in Forth? 15:38:38 Topaz: Quite likely. But that being said, you also have to keep up with it if you want to develop the endurance too. 15:39:10 the most i've ever done in a day is 54 miles 15:39:11 arke: In what context are you speaking of? 15:39:19 which did feel fairly horrendous, at the time 15:39:38 I think the most I've ever done in a day is about 20 miles total, but I've always felt I could do significantly more (well, once I was into shape that is). 15:39:51 It's like jogging too -- you have to pace yourself. 15:39:58 i felt done after 27 miles (one way), but for some crazy reason, i decided to cycle back 15:40:05 arke, there are no namespaces, its all just data structures in memory the user can control 15:40:11 arke, that is my opinion :) 15:40:45 kc5tja: lets say you have 2 incstances of "IRC", and you want to change some aspect "blah" of the second one. What would the best way be to have that look in code? 15:43:18 heh. I did 96 miles once. With full camping gear, too. :) 15:43:20 --- join: madgarden (~madgarden@Toronto-HSE-ppp3706683.sympatico.ca) joined #forth 15:45:05 hi madgarden 15:45:30 --- quit: madgarden (Read error: 104 (Connection reset by peer)) 15:46:10 doublec, ping 15:46:22 doublec, is it ok if i change the responder api so that get/set take a url and an alist of headers? 15:46:38 doublec, or should i put headers in a variable? 15:47:31 slava, changing the api is fine. It's the best option I think. 15:49:01 actually i'm thinking 15:49:06 variable might be better 15:49:15 i could have the post request text autoamtically end up in a variable too 15:49:45 --- quit: jDoctor (Read error: 110 (Connection timed out)) 15:49:47 a responder would be executed with-scope 15:52:13 * crc is back 15:52:20 hi crc 15:52:29 Hi arke\ 15:53:16 doublec, i noticed the autocompletion has a number of annoying bugs 15:53:22 hi crc 15:53:25 crc, how goes retroforth? 15:53:31 slava, like what? 15:53:56 RetroForth's documentation is now 97% complete :-) 15:54:12 doublec, however, live error highlighting is working well 15:55:10 crc, is it online? 15:56:43 --- join: madgarden (~madgarden@Toronto-HSE-ppp3706683.sympatico.ca) joined #forth 15:56:51 doublec, sidekick has a bug where sometimes hte popups will appear as you type and other times only when you invoke the action. its kind of messed up 15:56:54 wb madgarden 15:57:07 modem troubles? :) 15:57:46 ok 15:58:44 arke: I don't have an answer for you. Personally, I would find a way to launch each IRC client in its own address space, and therefore, each would have its own dictionary. That, of course, is how I'd do it using FTS/Forth under l4. 15:58:48 L4 even 15:58:59 kc5tja, that's an awesome way 15:59:01 slava: http://www.retroforth.org/dev/beta_releases/RetroBookIncomplete.nbk 15:59:16 what is nbk? 15:59:17 on its text 15:59:23 NoteBook 15:59:27 kc5tja: what if you want to change an IRC setting from a command line though? 16:00:10 http://www.wjduquette.com/notebook/ 16:00:19 arke: You know how in Plan/9 and in MGR, you have to spawn a Shell window in which to run a graphical program, since the graphical program inherits the window? Same concept in FTS/Forth for L4 -- I have to manually spawn a CLI in which to LOAD a program. 16:00:26 kc5tja: C++ (eww) would do it something like vts[2]->app->new_server("irc.freenode.net"); (lame example) 16:01:05 The file is in ASCII, but NoteBook provides html/wiki markups and hyperlinks 16:01:25 If you open it in a text editor, don't expect the sections to be in the right order 16:03:08 (I'll be releasing ASCII text, PDF, PS, and HTML versions once it's done) 16:04:56 arke: I don't understand your example. Are you intending on highlighting the -> operator? I'm confused. 16:05:04 kc5tja: yes 16:05:27 kc5tja: the IRC app provides means of remotely changing everything, calling local words, all that. 16:05:29 crc: Neat. :) I was thinking that perhaps I should start using my FTS/Forth cross-compiler to actually write some web page maintenance tools for myself now. 16:05:40 kc5tja: my problem is how to do namespace->wordname in Forth 16:06:05 * crc uses a slightly modified RetroForth to handle my wiki 16:06:23 Eventually I'll eliminate the need for a PHP wrapper... 16:06:29 arke: I guess I don't understand why you are doing this? Can you give me an example of where this would be useful? 16:06:38 crc: I'm not looking for dynamic content. 16:06:59 While I like having a weblog that people can post comments to, it's already proven itself somewhat on the "dangerous" side. 16:07:05 :-) 16:07:08 kc5tja: partially IPC. Partially, full IPC. 16:07:13 er 16:07:20 what the hell is wrong with me :) 16:07:24 ipc, configurability 16:07:47 arke: So, you want complete, 100% not-quite-complete IPC? :D 16:07:52 I also use it to generate static pages from the wiki markups :-) 16:08:23 crc: That's probably what I'm going to be using it for too, I guess. Although, I'm also looking to use it to actually write booklets too. 16:08:56 I think what I'll end up doing is writing my website contents in TexInfo, and have it emit an XML file. 16:09:14 Then I can use my own tool for recoding the XML document thus produced into a series of .html files. 16:09:38 * crc dislikes XML 16:10:03 crc: Too bad -- it's what makeinfo produces if you don't want HTML or DVI output. 16:10:30 I've never used TexInfo 16:10:42 * kc5tja likes it a lot. 16:10:52 Not quite as powerful as raw TeX, but very useful nonetheless. 16:11:21 And it really does automate making a self-consistent online book. 16:11:52 The alternative would be troff (or something like it). :-) 16:12:13 * crc will stick with his tools for now 16:13:04 kc5tja: I want appliocations to have separate dictionaries. But I want to be able to access them outside of the application scope 16:13:25 Ideally, I want my publications to look as well printed as, say, the IBM PowerPC reference manuals look. 16:13:39 IBM has a really nice typesetting layout style. 16:14:22 I don't have any recent manuals from IBM. I have an old IBM PC manual somewhere though... 16:14:29 --- quit: SDO (Read error: 60 (Operation timed out)) 16:15:03 crc: I can send you the IBM System/390 Architecture manual if you want; it follows the same typesetting method. :) 16:15:11 (It's kind of large though -- 1024 pages) 16:15:26 File size? 16:16:39 kc5tja: any idea? 16:17:46 arke: Perhaps OpenFirmware is of some help here, because they have to deal with this problem too. 16:18:02 kc5tja: how do they doit? 16:21:59 do what? 16:22:07 * tathi still isn't clear what arke's problem is... 16:23:32 tathi: namespaces in Forth. In C++, you do namespace->what-you-want. How do you best do it in Forth? 16:24:01 arke, make the namespace implicit from scope 16:24:04 instead of foo->bar 16:24:09 just have bar 16:24:44 but then how do I know which bar it is? the current dictionary, or the one from the IRC session on the other VT? 16:25:57 arke: Not sure. I think they use strings to do it. " /device/path/wordname" $find execute 16:26:14 * Tomasu is back (gone 06:35:17) 16:26:16 yah 16:26:22 well, strings suck :) 16:26:52 arke: Then have a "change vocabulary" or something command. " /device/path" $cv bar 16:27:16 kc5tja: thats exactly what i dont want to do 16:27:29 Your options are becoming incredibly limited. 16:27:34 Well, once you find a device, you can "open" it and get a handle, and then call "methods" on the device. 16:27:52 but that's how OF does it... 16:28:02 tathi: Oops -- I forgot about that. 16:28:07 That makes perfect sense too. 16:28:13 But what is the syntax for doing that? 16:28:16 arke, factor has a name stack for this purpose 16:28:43 slava: if you are thinking along the lines of "vocabularies" in traditional Forth, that isn't sufficient for what Arke is trying to achieve. 16:28:51 (which is, basically, interprocess communications) 16:30:30 a killer feature is being able to see a word definition under the cursor 16:30:50 Personally, I'm going to use message passing in my system to achieve IPC. 16:30:54 cool 16:31:07 Like I said -- very AmigaOS like. :) 16:31:18 it would be interesting to develop a system where instead of constructing programs as lots of tiny objects in one address space, you have a large number of communicating tasks 16:31:22 With heavy influences from Rob Pike. 16:31:33 all in forth? 16:31:56 Except for L4, and maybe perhaps the Sigma0 process (the root-level memory manager), that's my goal. 16:32:46 cool 16:34:11 It's not nearly as simple as RetroForth, but that's OK -- I'm looking at using my Forth as an (eventual) replacement for Linux on my PC anyway, which means I would have eventually implemented preemptive multitasking sooner or later anyway. 16:35:23 It'd be cool to see a webserver made available for it that could utterly demolish Linux or BSD in low-latency web serving. 16:35:58 factor httpd? :) 16:36:21 once its compiling code and using kqueue, it should scale to thousands of connections 16:36:35 kqueue won't exist in my system. 16:38:10 kc5tja: ooh1 16:38:12 all i/o will be blocking? 16:38:15 kc5tja: howabout 16:38:22 kc5tja: IN Namespace Word 16:39:11 kc5tja: which will execute Word in Namespace/Dictionary 16:39:24 slava: As much as I love asynchronous IPC, I will be directly exposing the L4's message sending API, which uses synchronous IPC exclusively. 16:39:56 ok 16:40:14 synchronous ipc is actually better for fine-grained ipc 16:40:22 AmigaOS's IPC mechanism works very well in a single-address-space system, but in a multi-address-space system, it starts to break down pretty badly. 16:40:42 slava: I'm not sure I'm convinced of that -- my AmigaOS experience contradicts that assertion. 16:41:04 However, your definition of "fine-grained" IPC may differ from mine. 16:41:39 kc5tja: nesting can occur like IN VTs IN IRCClient new-connection 16:41:49 But, at least L4 has enough thread addressing capacity to support 262,144 threads in the system at any given time. 16:42:10 kc5tja, i mean using processes where you would use individual objects 16:42:24 fire-n-forget objects? 16:42:26 kc5tja, a text editor could start one process for each open file 16:42:36 and more to perform searching and such 16:42:45 they would all communicate with synchronous ipc 16:42:47 slava: AmigaOS did just fine with fine-grained IPC. It was incredibly fast at message sending. 16:43:27 My issue with using Synchronous IPC is that you end up with this hhhuuugggeee proliferation of threads -- sometimes two or three all just to cover ONE object. 16:43:56 kc5tja: whats asynch IPC vs. sync IPC? 16:43:59 (Oh, and then you need a fourth thread to mediate which one of those three other threads can touch the object state.) 16:44:04 kc5tja: and what do you think of IN? :) 16:44:18 arke: In AmigaOS, the ONLY kernel function that can put the task to sleep was Wait(). 16:44:39 Wait() took a bit-map, indicating which events it was interested (tasks could wait on up to 32 events -- all the events were task local). 16:44:46 Signal() was used to wake a task. 16:45:09 Sending a message to a message port implicitly caused Signal() to be sent to a task, if configured to do so (obviously, it usually was). 16:45:48 Therefore, when you executed SendMsg(), it returned immediately (unless the task you sent the message to was a higher priority, in which case, the new task would subsume the calling task). 16:46:11 Therefore, a single task could keep running, even after sending (a bunch of) messages. 16:47:10 The disadvantage to this approach is that it is possible to flood a message port (e.g., a DoS in software, basically). 16:47:21 It also consumes some memory too. 16:47:29 Synchronous IPC works just the opposite. 16:47:42 When a task sends a message, it will wait until the message has been received. 16:47:54 aah 16:47:59 Likewise, when a recipient task calls ReadMsg(), it will wait until a message has been delivered. 16:48:27 cool 16:49:39 kc5tja: OT: how can I force 386+ to flush the cache? 16:50:33 Therefore, when a send and a receive coincide, effectively, both tasks rendezvous with each other -- as far as the kernel is concerned, both tasks are blocked, and therefore, paging, copying, or whatever other method to transfer data can be used without incurring any memory overhead. 16:50:33 The disadvantage of THIS approach is that a single thread can send at most one message at a time -- any more than that, and it'll block. 16:50:33 This helps prevent DoS attacks, completely eliminates the kernel from having to keep track of messages, and gives some unique freedoms in how messages are exchanged (for example, in L4, you can exchange contents of registers, copy strings from one address space to another, or donate entire page mappings!). 16:50:34 Synchronous IPC is technically superior to asynchronous IPC, as Slava has pointed out, on these merits alone. 16:51:00 arke: There is at least one cache flush instruction, but I don't know what it is called. 16:52:24 However, the one bad thing that may make up for synchronous IPC's benefits is the fact that you need a platoon of threads to manage what a *single* thread in an asynchronous IPC based OS can do. 16:54:23 a break in c will jump to the end of a for loop right so theres NO NEED for a "goto" ? 16:54:40 i have code here with a goto a label at the end of a for loop 16:54:44 for ( .... ) 16:54:45 { 16:54:46 I4404__, haha 16:54:54 if ( ....) goto xyzzy 16:54:55 } 16:54:58 xyzzy: 16:55:00 blah blah 16:55:11 i can just do a break there right ? 16:55:33 these guys LIKE goto :) 16:55:56 Yes, break would work for that, I believe. 16:56:04 thats whut i thunked 16:56:06 lol 16:56:44 bbl work 16:57:44 break would be good 16:57:48 if (...) break; 17:09:35 --- nick: Tomasu -> TomasuAway 17:19:06 --- join: TheBlueWizard (TheBlueWiz@207.111.96.88) joined #forth 17:19:06 --- mode: ChanServ set +o TheBlueWizard 17:22:05 --- quit: Topaz ("Leaving") 17:24:04 --- quit: crc ("Time for bed... Goodnight all!") 17:44:03 --- quit: tathi ("leaving") 18:09:31 --- join: Sonarman (~matt@adsl-64-160-167-66.dsl.snfc21.pacbell.net) joined #forth 18:09:49 hi Sonarman 18:09:49 --- quit: TheBlueWizard (Nick collision from services.) 18:09:59 hey 18:10:17 how 18:10:29 (never mind) 18:10:32 --- join: TheBlueWizard (TheBlueWiz@pc4bdn08.ppp.FCC.NET) joined #forth 18:13:55 --- quit: tgunr ("Leaving") 18:14:02 --- nick: kc5tja -> kc-aikido 18:20:38 --- quit: TheBlueWizard (Nick collision from services.) 18:20:56 --- join: TheBlueWizard (TheBlueWiz@pc31dn1d.ppp.fcc.net) joined #forth 18:20:56 --- mode: ChanServ set +o TheBlueWizard 18:22:53 gotta go...connection is rotten tonite...all bye 18:22:59 --- part: TheBlueWizard left #forth 18:36:07 --- quit: doublec ("Leaving") 18:48:52 --- join: kc-aikid1 (~kc5tja@66.74.218.202) joined #forth 19:06:27 --- quit: kc-aikido (Read error: 110 (Connection timed out)) 19:24:13 --- quit: Sonarman ("leaving") 19:44:50 --- join: asymptote (~weldon@bgp02689673bgs.flrdav01.dc.comcast.net) joined #forth 19:56:58 --- quit: asymptote ("Leaving") 20:05:50 --- quit: slava (niven.freenode.net irc.freenode.net) 20:05:50 --- quit: TomasuAway (niven.freenode.net irc.freenode.net) 20:06:10 --- join: slava (~slava@CPE00096ba44261-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 20:06:10 --- join: TomasuAway (~moose@S010600045a4c73cc.ed.shawcable.net) joined #forth 20:07:53 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 20:31:30 is there some key in vim to open the file who's name is under the cursor? 20:33:07 hi Herkamire 20:33:21 Herkamire, you need this in herkforth: http://factor.sf.net/factor-snapshot3.png 20:38:56 slava: tab completion? 20:39:28 yes 20:39:35 I plan to 20:39:44 it won't look like that... 20:39:49 but I plan to do it much like vim 20:40:06 eg tab puts in the next guess, and another key shows all possible completions 20:40:24 heh 20:40:26 also I'd like to do vim style command line history 20:40:33 vastly more useful that bash's 20:40:55 also i have a menu of commands when you click on a word 20:41:02 http://factor.sf.net/factor-snapshot4.png 20:42:07 spiffy 20:42:35 the advantage of forth-like languages is their simplicity makes features like this easy to implement. 20:42:47 yeah. 20:42:47 implementing completion or find usages for java methods, for example, is non-trivial. 20:42:58 herkforth has several things you can do with the word under the cursor 20:43:02 and there will be more 20:43:52 I always figured I'd do tab completion at some point 20:44:01 but never considered doing it soon :) 20:50:09 --- nick: kc-aikid1 -> kc5tja 20:50:14 --- mode: ChanServ set +o kc5tja 20:50:45 Back 20:51:07 wb kc5tja 20:51:22 Very good night at aikido tonight. I learned a lot. 20:51:25 * Herkamire goes off and plays rockdodger 4.2 20:51:27 cool 20:51:40 Herkamire: Oh sure, I come back, and you have to get all huffy and play games. :) 20:52:26 lol 20:52:51 some lamer keeps trying to hax0r me 20:52:58 I440r_: Question: How hard is it to use the raw sockets kernel interface? I remember you were trying to employ them at some point in the past. 20:53:09 kc5tja, bsd sockets? 20:53:10 80.117.251.140 - - [16/Aug/2004:18:41:52 +0000] "GET /cgi-bin/openwebmail/openwebmail.pl HTTP/1.0" 404 311 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" 20:53:17 easy 20:53:25 kc5tja, its pretty simple, except there's a few structs to pass around 20:53:36 tho i didnt implement UDP stuff 20:53:48 udp is no harder than tcp 20:53:48 and i need to finish my resolver too :/ 20:53:53 you use recvfrom and sendto 20:53:53 i know 20:53:56 slava: I don't think that will be too much of a problem, frankly. 20:53:57 i just didnt implement it 20:54:08 well. i didnt implement UNCONNECTED sockets 20:54:12 udp can be connected 20:54:24 UDP is always datagram service -- it's never a connected service. 20:54:56 err i seem to recall its possible to connect 20:55:00 Nope. 20:55:05 mental fart then 20:55:19 Hmm...black belt in the mental farts... :D 20:56:08 :) 20:56:08 Damn, it's so weird. Everything else in my life has been such an intense struggle for me. Aikido is the one thing that has always felt *natural* for me to do. I really can't explain it. I just wish I could go more often. 20:56:37 If only I could get paid to go to aikido. :D 20:56:44 you can call connect() on udp 20:56:45 Anyway, I digress. 20:57:03 it just makes it so you don't have to specify the address every socket, you can just use the socket id 20:57:06 something like that 20:57:31 That makes sense. 20:57:40 it's just a convienience thing 20:57:58 Well, I don't want it. Nothing in Unix should ever be as convenient as that. :) 20:58:04 see! i knew it wasnt a TOTAL mental fart lol 20:58:34 After all, getting the console into raw mode requires acupuncture and bio-augmentation to be able to get all the details right. 20:59:54 I440r_: I don't know if you're willing to put up with the bizarreness of FTS/Forth (relative to IsForth) or not, but I am *SO* going to make a VMS/AmigaOS-like operating system, written entirely in FTS/Forth (yes, this includes source in blocks). 21:00:04 If you want to port IsForth to that system, feel free. :) 21:00:27 hehe 21:00:34 Serious. 21:00:38 cool 21:00:42 To handle volumes, here's what I'm going to do. 21:00:46 when i find my "get up and go" 21:00:53 maybe 21:00:59 Like Unix, the filesystem is going to be unified. So there won't be any :'s in the filespec. 21:01:14 Unlike Unix, / is actually the system's RAM disk. 21:01:38 Underneath, each disk volume is going to be represented by a mount point. 21:02:03 /sys is going to be a link to the system's boot volume. 21:04:30 I'm planning on having /dh0, /dh1, ..., /dhN represent the harddrive partitions (regardless if it's IDE or SCSI). 21:04:47 Actual devices are, like Unix, found in /dev (e.g, /dev/ide0, /dev/ide1, etc) 21:05:27 Floppies will be /df0 and /df1. 21:06:13 Though, actually, I'm just plain considering unifying the two namespaces into just /d0, /d1, ..., /dN, because I'm thinking that ALL drives should be treated the same (harddrives are just "giant floppies" that are never removed from the system). 21:06:41 Anyway, when a disk is inserted into the drive, the volume name appears as a link to the appropriate drive. 21:06:53 So if I have a disk named Work, for example, I can access it as /Work 21:07:19 The equivalent of ASSIGN is simply to make a symbolic link in the RAM disk. 21:08:13 What do you think of this proposal? 21:10:55 what else do you plan to have at / ? 21:11:58 Nothing really; the system merely uses / as a place to put mount-points for volumes. 21:12:02 what would you do about name conflicts between the disk names and standard files/folders in the root dir? 21:12:19 oh, no problem then 21:13:06 Well, in reality, there is no explicit RAM-disk per se. 21:13:11 In reality, it's just a table of strings. 21:13:24 (Longer strings are searched first, obviously, to permit refinements.) 21:13:37 This is kind of like how QNX implements their filesystem mechanism. 21:15:04 Though, to be honest, I'm not quite sure how best to implement this. 21:16:26 I think I'll implement a flat namespace "object", which maps only one name to one object. Then, if the object happens to be another namespace, then that is treated as a subdirectory, of sorts. 21:24:59 yay, done working :) 21:25:12 I get to sleeeeep in tomorow :) 21:25:27 I haven't gotten enough sleep for a week or so 21:26:46 --- join: Sonarman (~matt@adsl-64-160-167-184.dsl.snfc21.pacbell.net) joined #forth 21:38:48 HEhehe 21:39:27 huh? 21:39:40 21:12 < Herkamire> I haven't gotten enough sleep for a week or so 21:40:06 Do you work from home? 21:40:39 yeah :) 21:40:44 Lucky you! 21:40:47 I just decided I'm done for the day 21:40:55 the reason for not getting sleep was my vacation 21:40:59 Although, I couldn't work from home. Too many distractions. 21:41:10 at camp breakfast is at 7:30am 21:41:58 I don't get a lot of work done 21:42:05 but I live so cheaply that it's enough 21:45:34 camp? 21:49:48 camp 21:50:25 beautiful place on the saco river in Maine 21:50:33 lots of families go 21:50:55 lots of old friends and lots of my family (cousins, etc) 21:51:10 cool 21:52:09 lots of swimming and cannoing and card games, volleyball etc 21:52:21 and a bit of religious teachings to sit through 21:55:08 cool religion, but it's mostly booring to listen to lectures 21:57:20 which religion? 22:05:40 Swedenborgian 22:06:09 http://swedenborg.org/ 22:07:24 the only form of christianity I'm aware of that actually makes sense 22:08:17 the name makes me think of Paganism :) 22:08:40 reading their website... looks nice 22:08:53 "We believe that people are spirits clothed with material bodies. At death our material body is put aside and we continue living in the spiritual world in our inner, spiritual body, according to the kind of life we have chosen while here on earth." -- Damn it! I'll be a LOSER in the AFTERLIFE too!!! :) 22:09:44 It actually reminds me more of new-age mysticism, including the astral and ethereal planes. 22:09:53 But integrated (somehow?) into Christianity. 22:10:39 it's about 300 years old 22:11:02 (swedenborg's theology) 22:11:27 kc5tja: you won't be a loser 22:11:46 kc5tja: you'll have plenty of time for personal groth. 22:11:51 hehe 22:12:25 It does seem interesting. 22:12:56 But, I still prefer my own, personal theology (if anyone can call it that). 22:13:13 But what's cool about it, is it seems tolerant that I have my own theology. 22:13:17 I'm a big fan of people choosing their own beliefs 22:13:24 not just buying a whole religion 22:13:27 Something that is very unique in the religions of today and yesterday, I think. 22:13:39 yep 22:14:25 the swedenborgian church actually encourages you to choose your own beliefs 22:15:39 Interesting. 22:17:21 the ministers tend to feel pretty strongly about it obviously. but there's no good in going around telling people they are wrong 22:17:22 * kc5tja is reminded of Pilz-e in one of the cartoons on Ill Will Press: "And, and, and Jesus, he was the forgiving of the stupid people! . . . (holding up a cross) . . . I forgive you STUPID PEOPLE!!! (sounds of crashing glass in the background)" 22:17:36 just present insights, and let people do what they like with them 22:17:41 * kc5tja nods 22:17:57 Swedenborg would make a good name for a punk rock band too. :) 22:18:07 (and actually pronounce it right too) 22:18:09 FOLK METAL 22:18:19 ther 22:18:20 Sonarman: Better than death-metal country rap. 22:18:24 there's Finntroll :) 22:19:11 I don't think that scaring people into doing/believing the "right thing" makes them good people 22:19:50 Yo, I was chillin' with my truck and my pony, and the spirits in torment screamed in eternal anguish 22:21:31 http://www.illwillpress.com/vault.html -- they're ALL good, but Eye Stigmata is the one I was quoting from. 22:21:51 Herkamire: Completely agreed. 22:22:57 flash. feh 22:23:09 oh well 22:23:53 Oh, but these are *great* cartoosn. 22:24:03 web cartoons is the only thing Flash is good for. 22:24:46 :) 22:24:57 ok, I'm firing up my girlfriends computer to try them 22:36:25 --- join: Robert (~snofs@c-bf5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 22:39:52 Heh. The biggest thing is to not take what he says overly seriously. 22:40:07 I think he raises a lot of good points about today's society though. 22:40:14 But, I digress. 22:40:14 :) 22:43:52 Hmm, now I need to find some application to write in FTS/Forth's cross-compiler (besides FTS/Forth itself, of course), especially as a simple demonstration of its capabilities. 22:43:55 :) 22:51:24 hi kc5tja 22:51:25 :) 22:51:27 hi all 22:51:28 :) 22:55:55 kc5tja: why? 22:56:06 kc5tja: why would you want to write anything besides FTS/Forth in it? 22:59:39 mm... a utility that converts sound files between different raw PCM formats (wordsize, signedness, endianess) 23:00:08 :) 23:01:03 arke: how's your atoi look? :) 23:01:24 i liked the ML version 23:15:10 --- quit: Sonarman ("Lost terminal") 23:49:26 --- quit: Herkamire ("bed") 23:51:27 --- join: imaginator (~George@georgeps.dsl.xmission.com) joined #forth 23:57:51 --- join: solar_angel (~jenni@MTL-ppp-157567.qc.sympatico.ca) joined #forth 23:59:06 hi 23:59:59 --- log: ended forth/04.08.17