00:00:00 --- log: started forth/04.03.09 00:20:32 --- quit: Serg () 00:34:18 --- quit: Nutssh ("Client exiting") 01:00:51 --- quit: jdrake ("Oops. This machine just fell asleep") 03:31:06 --- quit: fridge ("Client exiting") 04:42:03 --- join: KOHTPA (~asau@158.250.48.196) joined #forth 04:51:41 --- quit: ASau (Read error: 60 (Operation timed out)) 05:07:15 --- join: Serg (~z@212.34.52.142) joined #forth 05:15:20 --- quit: madgarden ("*frotz*") 05:16:24 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576712.sympatico.ca) joined #forth 05:16:46 --- join: fridge (~hovil@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 05:27:26 --- nick: KOHTPA -> ASau 05:27:32 ;) 05:27:43 http://www.google.com.ru/search?q=Gregory+Klimov 05:31:07 Hmm. What should it mean? 05:40:06 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 05:49:30 politics and genetics ;(( 05:50:17 --- join: segher (~segher@blueice1n1.de.ibm.com) joined #forth 05:51:16 someone posted that CLI article to /. 05:51:44 * Serg is leaving, bye 05:51:48 --- quit: Serg () 06:00:14 ASau, doughbridge vecher! 06:11:05 http://www.klimov.kiev.ua/Klimov-e.htm 06:11:13 english biography on him 06:11:50 though its sparse 06:21:28 The most possibly it's nonsense. 06:21:45 We've many stories of such a kind. 06:21:58 ...now. 06:22:02 Woo! I may be getting an interview for a C++/Unix position. 06:25:24 madgarden, congratulations 06:25:28 I need a new job =( 06:25:58 shift work is stuffing up my relationship and I can't do aikido 06:31:50 Thanks! Yea, it was just suddenly mentioned to me by someone who works there as lead hardware designer. So, I may be getting a call. 06:31:50 Yes, working for the man can really stress out one's life. They gotta hit their 15% growth, right? :[ 06:59:01 --- join: chris-xp (~Chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 07:12:35 tramp for emacs is groovy 08:01:14 Woo! I've an interview at 4pm. 08:05:43 --- join: Herkamire (stjohns@h000094d30ba2.ne.client2.attbi.com) joined #forth 08:29:29 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 09:41:21 --- join: madgarden_ (~madgarden@Kitchener-HSE-ppp3576712.sympatico.ca) joined #forth 09:41:59 --- part: madgarden_ left #forth 09:42:14 --- join: madgarden_ (~madgarden@Kitchener-HSE-ppp3576712.sympatico.ca) joined #forth 09:42:53 Anyone in here using a 64-character-wide IRC window? 09:43:25 mine's 127 09:43:48 --- quit: madgarden (orwell.freenode.net irc.freenode.net) 09:43:54 --- nick: madgarden_ -> madgarden 09:45:39 mines... hm 09:45:54 135 09:46:29 i can make it wider though 09:46:30 :p 09:46:48 145 now 09:46:58 and probably another 10 chars if i make the nicklist smaller 09:47:10 Fixed width? 09:50:10 ye 09:50:16 (mirc) 09:53:50 --- quit: warpzero (Read error: 110 (Connection timed out)) 09:55:22 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 10:11:26 hmm! 10:11:42 if i am online while tbw, please remind me to ask a question 10:14:12 what 10:15:05 tbw? Taco bean wedgie? 10:17:10 the blue wizard of course 10:17:21 of course! 10:17:26 Aha! 10:18:20 heh 10:18:21 hmm 10:18:59 oh right 10:30:05 --- quit: segher ("Leaving") 10:35:16 --- join: Nutssh (~Foo@gh-1081.gh.rice.edu) joined #forth 10:45:23 --- quit: tathi ("leaving") 11:26:03 --- quit: Nutssh ("Client exiting") 12:20:50 --- join: Nutssh (~Foo@dunwlessnat.rice.edu) joined #forth 12:28:41 --- quit: Nutssh ("Client exiting") 12:36:51 --- join: nodes (~cduce@csnet036.cariboo.bc.ca) joined #forth 12:36:55 --- quit: nodes (Client Quit) 12:38:42 hi 12:55:39 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 12:55:48 --- mode: ChanServ set +o kc5tja 12:59:40 --- quit: fridge ("Leaving") 13:20:21 --- join: schihei (~schihei@pD9E5CC5E.dip.t-dialin.net) joined #forth 13:21:05 --- join: theFox (poohka@user-38ldvfn.dialup.mindspring.com) joined #forth 13:22:16 Did anyone here attend the #FIGUK session last Saturday? I was unable to get onto IRCnet. 13:25:05 --- join: ribbon (~ribbon@cpc2-bolt4-5-0-cust144.mant.cable.ntl.com) joined #forth 13:27:06 re theFox 13:27:16 I never have any time to attend those meetings, unfortunately. 13:27:36 * kc5tja missed you yesterday; I didn't see you were here. 13:27:59 I wasn't there either. 13:28:45 --- join: Nutssh (~Foo@dunwlessnat.rice.edu) joined #forth 13:31:27 has somebody a small forth engine? 13:31:36 or a small implementation 13:32:55 Depends on what you're looking for precisely. 13:33:22 a little Forth system, which helps me to lear how they could be implemented, not so big like gforth, etc. 13:33:51 I'm not aware of any for Windows or for Linux. 13:34:00 For MS-DOS, there is PygmyForth, which is a cmForth-clone, more or less. 13:34:11 It is the inspiration for my own Forth experiments. 13:34:27 (including the BoxOS Forth implementation that will inevitably appear on my ForthBox computer kits) 13:34:49 ok, thanks - I will have a look in it 13:35:31 * kc5tja just realized that his Kestrel design would make an ideal high-speed TNC/NIU for amateur radio. 13:36:18 So even if ForthBox Kestrel sales are low, I can still target the device as a homebrew kit TNC for high speed amateur packet radio. >:) 13:36:58 (kc5tja) I was here for a while yesterday. But I could not make any sense out of the discussion. camelkeys? 13:37:44 theFox: The discussion was about how to name things with multiple words in the name. 13:38:03 theFox: Like, if you have a black box on the screen, do you call its variable BlackBox, black-box, black_box, etc? 13:38:13 Well, if you use BlackBox, that's called CamelCaps. :) 13:38:15 (schihei) eForth is a simple indirect/direct/subroutine threaded forth. maf, minimal ansi Forth is another simple forth. 13:38:35 theFox, thanks 13:38:49 BlackBox? I thought Forth was about avoiding black-boxes ;-) 13:39:15 --- quit: Teratogen ("SKYKING, SKYKING, DO NOT ANSWER") 13:39:18 You get the idea though. :) 13:39:27 yes 13:39:45 As you can see, I prefer CamelCaps personally (in general), because it's just plain less typing. :D 13:39:56 Hence, my computer design is called ForthBox and not forth_box or forth-box. :) 13:40:28 GotIt 13:40:38 Interestingly enough, when I program in C, I use underscores in the names instead of camel caps. It makes it easier to distinguish module name from the object name. 13:40:43 :-) 13:41:42 Windows_functions_names_are_a_good_example_too it is like reading a sentance (that makes little or no sense) 13:42:16 Except they use CamelCaps, but yeah. 13:42:39 anyway, I was just currious if anyone had tried IRCnet last Saturday or knew of a way to get in when it seems full. 13:42:40 And that infernal alpszHungarianNotation. 13:43:40 I guess you just have to log into IRCnet earlier in the day and wait, not a problem if you have DSL but with dialup it is an issue. 13:43:52 Yeah. 13:44:55 (schihei) check out http://www.eforth.com.tw/academy/ for about a hundred eForths and a few manuals. 13:45:45 (schihei) also Dr. Won Yon Ko's hForth for the PC is based on eForth but has lots of extentions. 13:47:14 The last couple of #FIGUK chat sessions that I attended only had two or three people there. I was just wondering about the one last saturday since I could not get in. 13:47:38 sounds like no one here attended, or if they did if they are actively responding at this time. 13:48:08 theFox, are you sure, that the eforth link is correct 13:48:14 I sometimes wonder if this channel isn't more active than the #FigUK channel. 13:49:58 much more active 13:50:24 the URL is correct, but isn't responding at the moment. There are also eForths at http://www.forth.org 13:50:27 Heh, at the very least, we have substantially more people idling here. That's for sure. :) 13:50:36 i'm not idling, i'm coding :) 13:50:44 slava: Shush you, go back to your idling. :D 13:50:51 j/k 13:51:05 The url to the eforth academy is on my website on the index pages so I know it is correct. Don't know why it is down. 13:51:32 * kc5tja found citeseer to be down the last couple of days; I'm not sure why either. 13:51:35 It has some chinese on some pages, but there is enough english (when it is up) to find stuff 13:51:37 Pity. I use that resource quite often. 13:52:04 citeseer? 13:52:27 It's an openly accessible repository of computer science and technical documents. 13:52:54 There is also the wayback machine internet archives... 13:53:05 Yeah, but that is god-awful slow. :( 13:53:18 I used it a couple times to review iTV's website (that's what inspired my own company's website) 13:53:23 (http://www.falvotech.com) 13:53:27 I didn't do nearly as good a job though. 13:53:28 I wonder just how big their database is. ;-) 13:54:32 I heard on a news program that Google had just added several billion new websites, and I wondered if they meant web pages... 13:54:32 However, I'm going to be moving out of the consultation business officially, and entering the electronics kit industry. 13:54:43 Yep. 13:55:07 They were up to something like three billion or so last I checked. 13:55:23 Oh, now they're up to 4,285,199,774 web pages in their database. 13:55:55 What's impressive is that their searches are still *lightning* fast. 13:57:06 Yeah, well they have some incredible number of servers and some good software for searching. 13:57:29 * kc5tja nods 13:57:30 Still, I rag on them a lot because of the way their links are scored by popularity. 13:57:56 It is like the family feud program, we surveyed 100 americans and their dumb answers were ... 13:58:47 Well, Yahoo!'s method certainly isn't any better. 13:58:48 :) 13:58:55 You know the statistics about what a majority of Americans think, say, or remember. 13:59:01 true 13:59:02 Alta Vista is the closest that can compete and it quickly died off over time in terms of its accuracy. 13:59:21 As soon as you start offering higher positions in exchange for cash, well, the accuracy of any search engine goes to hell really quick. 13:59:58 Yes, and having real humans review information and rate sites is impractical with so many billions of pages... 14:00:49 --- quit: Nutssh ("Client exiting") 14:00:50 And their relative technical inaptitude too. The "Patent" problem. 14:01:00 I still use google, but the fluff that it pulls up is sometimes anoying. 14:01:41 I suppose. 14:02:10 Well I am off to do some real work. Thanks for the info. 14:02:28 --- quit: theFox () 14:05:07 --- quit: schihei ("Client exiting") 14:07:39 --- quit: ribbon ("A life without distinction") 14:15:25 --- join: jdrake (~uniq1@CPE00045afdd0e8-CM014410113717.cpe.net.cable.rogers.com) joined #forth 14:24:26 --- join: wossname (wossname@HSE-MTL-ppp74085.qc.sympatico.ca) joined #forth 14:39:08 --- join: fridge (~fridge@dsl-203-113-228-26.NSW.netspace.net.au) joined #forth 14:49:56 * Herkamire reads some backlog 14:50:13 forth-box is less to type than ForthBox 14:54:35 forth_box and ForthBox are the same number of keystrokes. forth-box is one less. and the timing is easier (shift you must release it before you type the next char that must not be capitalized) 14:55:15 the main reason I use-this-notation is because I find it easiest to type 14:55:47 ForthBox is prettier and wiki friendly 14:56:14 you can think of using capitals as parallel execution ;) 14:56:49 in kind of inconsistent -- the factor library uses dashed names and the .factor extension, the game library uses camelCase and .lsd extension 14:57:24 there is a huge inefficiency somewhere -- several thousand conses per second are happening 14:58:54 Herkamire: Not for me it isn't. 15:03:02 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 15:20:24 --- quit: tathi (orwell.freenode.net irc.freenode.net) 15:20:24 --- quit: jdrake (orwell.freenode.net irc.freenode.net) 15:20:24 --- quit: ASau (orwell.freenode.net irc.freenode.net) 15:20:24 --- quit: slava (orwell.freenode.net irc.freenode.net) 15:20:24 --- quit: skylan (orwell.freenode.net irc.freenode.net) 15:21:06 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 15:21:06 --- join: jdrake (~uniq1@CPE00045afdd0e8-CM014410113717.cpe.net.cable.rogers.com) joined #forth 15:21:06 --- join: ASau (~asau@158.250.48.196) joined #forth 15:21:06 --- join: slava (~slava@CPE0080ad77a020-CM.cpe.net.cable.rogers.com) joined #forth 15:21:06 --- join: skylan (~sjh@nwc57-207.nwconx.net) joined #forth 15:31:16 --- join: Nutssh (~Foo@dunwlessnat.rice.edu) joined #forth 15:34:03 --- quit: tathi ("leaving") 15:49:39 --- join: blockhead (default@dialin-101-tnt.nyc.bestweb.net) joined #forth 15:51:54 check it out, i'm famous! http://www.microsoft.com/technet/security/Bulletin/MS04-010.mspx 15:52:00 (thats really me ;) 15:54:10 You're not famous. 15:54:14 You're a TRAITOR! 15:54:18 oh 15:54:23 AFTER HIM BOYS!!! >:P 15:54:25 can i be both? 15:54:31 Well, sure. :D 15:54:32 i got an xbox for this 15:54:37 WHAT?!?! 15:54:38 traitorship comes cheap i guess 15:54:41 :D 15:54:43 For reporting a bug? 15:54:46 uhu 15:54:54 Man, I'm in the wrong industry. 15:55:23 I should report bugs more often, get their stupid merchandise, then sell it on E-bay. It's like getting paid to play. :D 15:56:48 --- quit: chris-xp (Read error: 104 (Connection reset by peer)) 15:57:21 Just had a job interview. First one in over 7 years. 15:58:22 how'd it go? 16:00:24 Not bad. Hard to tell, really. Some parts were good, some parts could have been better. And sometimes I have a tendency to go off on a tangent, possibly disclosing information (either directly or indirectly) that's best left undisclosed. 16:00:50 well you dont usually get an xbox, usually some software thingies, appearantly... the xbox costs them money :) 16:01:09 but due to the severity of this whole thing... :) 16:01:51 but yea, this was a lucky break indeed 16:02:51 My C+ abilities shined through. ;) 16:03:40 so you got the job 16:03:48 I didn't realise that if you call a function like blah(Object obj), that the object basically gets memcopied onto the stack. 16:04:00 qFox, don't know yet. Notice I said C+ and not C++. ;) 16:05:20 --- part: wossname left #forth 16:06:21 Apparently they were about to hire someone, and I got squeezed in last minute since I know a guy who works there. 16:06:33 c+ 16:06:39 never heard of that tbh 16:07:15 C+ is just C++ programming with C sensibility underneath. ;) 16:07:22 hm 16:07:24 so its like 16:07:26 hey i know c++ 16:07:29 hey i know c 16:07:35 i want to use them both 16:07:36 hmmmmmmm 16:07:39 oh i know 16:07:42 lets loose a + 16:07:45 :p 16:09:02 Heh. Well that's my little joke. It actually means that I don't go all full-blown C++ most of the time, since it's not necessary. If I need an object, I create one. If I don't need some super huge end-all-be-all object hierarchy, I don't make one. If the code doesn't need to be reusable, I don't design it to be. C+. 16:09:22 oh, haha, thats what i do 16:09:27 Good. ;) 16:09:27 if it works, it works 16:09:31 But mostly, I prefer to use C. 16:09:32 it looks like c 16:09:35 it looks like c++ 16:10:33 More often than not, my C++ code has a wide, flat object hierarchy -- that is to say, the overwhelming majority of my classes are just *interfaces,* which other implementations implement directly. There is comparatively little implementation re-use in my designs. 16:10:54 That's pretty much why I use C for everything. 16:11:53 Lately I design interfaces, implement them for whatever different "object" needs the interface, and then plop a pointer to the interface into my C object struct. 16:12:09 object->i->foo() 16:12:20 dude->i->foo() 16:12:33 Yep. 16:12:43 object -> _vptr -> foo( object, ... ); 16:12:58 Works very well. 16:13:21 This is the fundamental premise behind Microsoft's COM too, which is one of the few things I'll gladly applaud Microsoft for introducing. 16:13:25 i'm not so good with object-oriented programming, i am with the other (old? ... ) type 16:13:41 what was the name of the other type? 16:13:48 Modular? 16:13:51 It's the same thing. 16:14:00 hm no, theres object oriented programming 16:14:13 and .... a type of programming where you dont... 16:14:21 Procedural, aka Modular. 16:14:44 ok 16:14:46 i'm good at that 16:14:47 :) 16:15:00 i know OO though, but i prefer modular 16:15:03 qFox: Again, it's the same thing. 16:15:24 then we're talking about something else i guess :\ 16:15:25 It really irks me when people try to push off Modular programming as somehow being different. 16:15:30 well 16:15:32 blame school 16:15:38 i knew c programming when i started it 16:15:42 It's not -- it is a refinement of the modular techniques; they're made more regular, and apply to finer granularities. 16:15:47 and they started to teach me "new" object oriented programming 16:15:51 i figured it was new 16:15:59 qFox: For the record, I do nearly *all* of my object oriented programming in plain ol' C. :D 16:16:04 although i didnt really like the way they teached it 16:16:09 well ye 16:16:12 oh i dont 16:16:15 its... something 16:16:18 its nasty 16:16:22 and i dont like it :p 16:16:22 modular programming is OO more or less. 16:16:29 object oriented programming in C looks almost like it is in ADA 16:17:00 jdrake: Not surprising; like I said, OO is just modular programming with the dials turned up slightly. :) 16:17:10 I mean actor_draw(&my_actor). That's simple OO right there. 16:17:27 what defines it as oo? 16:17:29 :\ 16:17:38 i guess it is up to you here - gotoxy(screen, 2, 4) or screen.gotoxy(2,4) <-- which one do you like better? 16:17:47 my_actor is an object. :P 16:18:01 qFox - anything with objects i guess 16:18:04 it is really a buzzword 16:18:08 um 16:18:16 isnt an object nothing else then a variable with variables and stuff? 16:18:20 A method of that object class is actor_draw(). 16:18:22 yes 16:18:32 its been a while since i coded that stuff so i forgot the actual keywords :) 16:18:37 a class, right 16:18:44 structure 16:18:45 its just that C++ hides the 'this' 16:18:46 blabla overloading 16:19:11 objective c seems to be slightly different however 16:19:13 Yep. 16:19:18 but that is just hidden away i think 16:19:34 I use 'this' in C all the time (usually call it 'me' or 'sys' or something). 16:19:35 heh well i hardly... or actually just never use classes or objects in my variables 16:19:48 blah(class, parameter) form doesn't seem too good for dynamic messaging 16:19:52 or my whatevers... 16:19:52 :) 16:19:56 qFox... pass around a pointer to a struct, and you're basically doing OO. 16:20:07 yeah ok 16:20:10 but not 16:20:11 um 16:20:14 literally? 16:20:18 Polymorphism can be done with casting. 16:20:23 Sure it's literally. 16:20:23 not the proper word, cant think of the proper word for it 16:20:31 qFox: Everytime you write a module function that reads Foo( MyBar ABC, Param1, Param2, etc... ) { ... }, that's a "method" on objects of type MyBar. 16:20:39 explicit. thats it. i dont do it explicit 16:20:39 Nothing particularly special. 16:20:58 http://www.google.com/search?q=define+object+oriented&ie=UTF-8&oe=UTF-8 <-- :-) 16:21:06 adj. Used to describe software that is highly geared towards distributor level marketing. Since all software is written for financial gain, the "Object" is sales, and the packaging is "Oriented" to achieving this. Also used to mistakenly identify early-binding programming environments that are not quite totally unlike Eiffel. 16:21:13 yes, but i'd just do it hello(var,var,var) 16:21:22 which, is the same basicly, yes. 16:21:43 qFox: How does that differ from what I wrote above? 16:21:45 Yea, but with OO you're basically passing a state around. 16:22:00 The best way to think about things is this: 16:22:01 no well.. uhm... :\ 16:22:04 The state contains variables associated with it. 16:22:24 A module is an object. There is only one. So you don't have to include a pointer to that module everytime you call its methods (exported functions). 16:22:30 Consider a serial port driver. 16:22:45 You call a function TX_SEND( void *buffer, int length ), etc. 16:22:53 aye 16:22:58 The module backing TX_SEND knows already what I/O port it's sending to, etc. 16:23:05 What if you want to send out of any number of serial ports? 16:23:06 A module is more like the methods of a class, I'd say. 16:23:21 You *encapsulte* the ports into data structures. 16:23:23 So now you have: 16:23:33 TX_SEND( TxPort p, void *buffer, int length ); 16:24:02 If you look at TxPort, 80% or more of what used to exist as global variables (private, I hope!!) in the old module exist inside of 'p' now. 16:24:22 Ideally, you want 100% of those variables to exist inside of 'p', but for performance reasons, it's not always possible. 16:24:44 The point is, TX_SEND() now takes a pointer to the state that used to be the module itself. 16:24:50 Hence, an object *is a module.* 16:24:58 And, likewise, a module is just a (singleton) object. 16:25:13 If the module contains variables, yea. 16:25:29 The two are 100% equivalent, *except* for the fact that OO programs permit multiple instances of "modules" to exist in a single running program at any given time. 16:27:30 The higher-level languages want to enforce and restrict this behaviour. 16:28:17 me hates it 16:28:28 thatsall 16:28:51 Well, for data-driven applications, you have little choice. 16:29:01 Yea, thus I like C and Forth. I can do exactly what I want with them, and with free reign for the most part. 16:29:07 well, i'll find a way around it... 16:29:12 That's what a domain language is for. 16:29:21 qFox: Guaranteed, you'll just end up re-inventing OO. 16:29:32 This is, after all, how OO came to be to begin with. 16:29:48 i guess 16:29:58 i'll just have to go with your comment that its just a buzzword 16:30:02 But that's the thing: you don't have to go full-bore OO when you have a procedural language like Forth or C. 16:30:09 So you can implement just those features that are important to you. 16:30:12 Zactly. 16:30:15 Minimalism. 16:30:21 is OO forth possible/desirable? 16:30:34 Sure. 16:30:41 possible.... i guess, you have to code it. desirable... NO :p 16:30:45 slava: What flavor of OO are you interested? Take all the Forth implementations out there, divide by two, and that's about how many different OO implementations exist for Forth. 16:30:48 Seriously. 16:31:04 * kc5tja can state unequivocally that GUI code is next to impossible without using OO. 16:31:16 :) 16:31:39 You can easily create "structs" with "pointers" to "interfaces" in Forth. 16:31:50 Also, if you find your code has HUGE amounts of nested IF statements, or CASE/SWITCH statements, that's a sign that polymorphism (an OO concept) may actually be of benefit to you. 16:31:52 Or whatever your OO wants to call it. 16:32:04 Aye. 16:32:06 Remember Chuck's dictate: eliminate conditionals whenever and whereever possible. 16:32:52 ok, i'm sorry if i'm repeating now, but OO is nothing more then specifying to what instance a variable belongs too... right? like take windows. you have window1 and window2. both have a variable width and height, and are tied to the windows 16:33:18 Correct. 16:33:22 That's all it is. 16:33:29 and "non-oo", would just be where you have a variable, and no windows, and because of that you can jsut call the variable 16:33:46 and the compiler simply adds "thiscode" as owner 16:34:10 Well, you can still have windows and all (e.g., AmigaOS certainly did, and it was far from object oriented in its GUI's implementation). 16:34:15 OO basically lets you handle multiple "sets" of variables. 16:34:20 ye 16:34:30 So, make a static array of structs, and that's basic OO. 16:34:40 its kind of the same as private and public variables then... 16:34:47 But the distinguishing factor is whether or not you need *special case* code to handle largely similar, but still different, sets of data. 16:34:49 :) 16:34:53 E.g., how does a window differ, say, from a menu? 16:35:05 Topologically speaking, they're identical -- both layer themselves on the screen, for example. 16:35:14 Both can contain gadgets, and in some GUIs, menus even have titlebars. 16:35:35 But a menu is *functionally* different enough from a window to warrent a specialization on their capabilities. 16:35:49 when i'm finally done with this whole msn-shizam, i'm going to try and code me a mirc-script interpreter in forth 16:35:54 (e.g., they are modal; while the menu is displayed, nothing else on the screen works; click anywhere outside the menu, and it goes away, etc) 16:36:13 (i never actually wrote an interpreter or compile or whatever, in or for any other language) 16:36:43 So, since the menu and the window are dissimilar in the fine details, but similar enough to be handled identically on the screen, do you need two separate rendering functions to handle them? 16:36:48 but mirc lacks this, so i wanna see if i can manage to do this 16:36:51 If you do, that is NOT object oriented programming. 16:36:56 If you don't, that IS object oriented programming. 16:37:02 Regardless of whether your language supports the concept or not. 16:37:03 no probably not, but my comment wasnt really related, sorry :) 16:37:34 the menu thing made me think about that i'd first have to build me a simple interface 16:37:40 qFox: No problem; I'm just trying to use a metaphor that most folks can agree on. 16:38:00 * qFox agrees on buzzword :p 16:38:12 lets make things more complicated where they dont have to be 16:38:14 imo 16:38:36 in fact, i'm doing it in mirc 16:38:49 the p2p protocol for mirc, holds session id's 16:38:54 OO simplifies coding, actually. Significantly. But like any tool, it must be used with skill. 16:38:59 i'm saving every session id, for every user seperatly 16:39:10 same thing basicly 16:40:25 Ack! Chatty bastards. I go to brush my teeth and look what happens... 16:41:10 Excuse me for not using Internet Relay Chat properly.... :D 16:41:17 C interfaces are the shiznit. 16:41:42 haha 16:41:57 And, is there a very simple C IRC bot out there? Something without all the fluff? 16:42:27 I want to take a simple, no-nonsense IRC bot, and put a live Forth interpreter in it. 16:43:06 It doesn't need message of the day, auto-OP, auto-kick, and all that crap. 16:43:15 * kc5tja doesn't know of any. 16:44:48 Nards. 16:45:06 It would be a cool way to showcase Forthy. ;) 16:46:07 Don't know if I can justify scratching up a C IRC bot framework just for that, though. 16:47:34 what defines a bot... 16:47:48 kc5tja, how do you normally handle structs in Forth? Make a defining word that allocates the required fields, and then have a bunch of accessor words for suchly created words? 16:47:58 give the code in c/c++, and i can probably scratch into a mirc dll and hook it up to my bot 16:48:23 madgarden: Depends entirely on the context. 16:48:32 madgarden: Most of my structures are statically allocated in the dictionary. 16:48:36 but whats the goal of the interpreter? 16:48:39 i mean 16:48:42 what should it do? 16:48:55 Those that aren't are allocated in the dictionary using ALLOT at run-time (or are built field-by-field at runtime using , and C,). 16:49:00 ." hi" . and it will say hi? 16:49:31 if you guys were to design a programming language where would your inspiration come from 16:49:33 i dont really see functionality for it, thatsall 16:49:46 kc5tja, and to access the fields? : .count 3 cells + @ ; sorta deal? 16:49:48 jdrake> the goal for the language 16:50:10 madgarden: I have structure defining words STRUCTURE, FIELD, and END-STRUCT. 16:50:17 madgarden: Used like this: 16:50:22 madgarden: STRUCTURE 16:50:41 madgarden: SIZEOF_node FIELD my_node 16:50:47 qFox, a interpretive Forth bot would let us write, execute, and show Forthish code samples while in here. 16:50:51 madgarden: 1 CELLS FIELD my_age 16:50:53 ... 16:51:00 END-STRUCT SIZEOF_employee 16:51:17 Then to access a field: 56 my_age ! 16:52:06 hm, but what would it show... i mean... um... i'm dont quite see the functional usage, other then hello world codes. unless you want it to process 16:52:07 hm 16:52:23 i guess the output could be irc, instead of the terminal 16:52:29 Yea, output would be IRC. 16:52:35 (i mean a socket...) 16:53:41 i guess its possible to do a limited version, i cant access direct memmory locations in mirc though 16:53:59 It would likely be its own little VM. 16:54:06 ye 16:54:31 and it would also be, what do you call those implementations again that are build on forth? 16:54:42 Or, with Forthy, you don't really access memory directly anyway unless you've exported primitives to do so. It's scripting oriented. 16:54:49 those that only have hardcoded the very basic words 16:55:05 madgarden: I can code up a simple VM for you in C if you want. 16:55:11 qFox, um, that's called Forth. 16:55:40 yes but i believe there's a different word for a forth that has various words done in CODE, vs a forth that doesnt 16:55:42 kc5tja, you could, but I might wanna write another littleForth. ;) Of course I won't stop you! 16:56:04 qFox, a Forth has to have *some* words done in code... they are called primitives. 16:56:10 right 16:56:26 but there are implementations that also do other words, that arent primtives, in code 16:56:44 for whatever reason... i thought they had a word for it. 16:56:54 Sure, but that's just using an ASSEMBLER wordset to compile code words. 16:57:07 yea i guess so 16:58:13 http://worldofends.com/ 16:58:23 madgarden: I wasn't going to write a Forth for it. 16:58:37 I was just going to code up the virtual CPU. (Based on my MISC idea, as documented on my Wiki) 16:58:58 nonono, you kc5tja should really finish your forthbox project first ;) 16:59:06 qFox: Yeah. 16:59:07 Ahh. Well, go ahead! If you do, I'd play with it. If not, I'll end up coding another VM myself eventually. Surely will anyway. 16:59:14 madgarden: Sorry, you had your chance. >:D 16:59:34 qFox convinced me first. Sorry. :) 16:59:40 Hehe. S'ok, I like coding stuff like that. ;) 16:59:48 Anyway, gotta go watch Smallville. bbl. 17:02:35 btw IF you ever do this bot, you have to make sure it cant get exploited... :) 17:02:36 okies 17:03:18 unless you restrict users to voiced only... but i dont see such things happenening here any time soon :p 17:08:37 If it runs in a self-contained virtual machine, it can't be exploited. 17:09:01 The most that would happen is they'd stack-overrun the virtual machine, which would probably cause it to execute an illegal instruction somewhere, and that would cause the VM to reset itself. 17:11:37 "Novell's new management [2] has recently begun a malicious campaign to slander SCO's ownership rights in UNIX and UnixWare." damn novell :p 17:11:39 --- quit: blockhead (Read error: 54 (Connection reset by peer)) 17:12:04 Poo poo on SCO. 17:13:15 SCO bought the rights to the human mind from Allah, and thus owns everything it has produced 17:15:55 this is a funny site: http://www.linuxstolescocode.com/ 17:17:13 haha 17:19:53 The claim could cause consternation amongst 3-12 year olds world wide, 17:19:55 lol.. 17:20:05 as if they could care less 17:21:18 --- join: Sonarman (~user@adsl-64-160-166-8.dsl.snfc21.pacbell.net) joined #forth 18:12:01 --- quit: Sonarman ("ERC vVersion 3.0 $Revision: 1.328 $ (IRC client for Emacs)") 18:45:40 --- quit: Nutssh ("Client exiting") 19:00:29 The other "exploit" of an IRC Forthbot would be executing an infinite loop. 19:03:23 madgarden: Well, that's why the VM would filter the socket I/O on behalf of the VM. 19:03:33 If we give it a special text command to reset, it'll "reboot" the VM. :) 19:03:54 (and, in fact, it should probably consider rebooting itself after, say, 10 minutes of inactivity anyway). 19:06:34 Yep, that's a good idea. 19:07:07 I'd probably have lots of hooks in the various primitives/opcodes anyway, for debugging and failsafe purposes. 19:07:40 Well, I figure a 16-bit environment with 64K words of address space ought to be plenty sufficient (e.g, 128KB of RAM). 19:08:13 Unless you want a byte-addressed virtual machine, in which case it is 32K words of memory. :) 19:08:19 This lets you have C@ and C! and friends. 19:09:32 Good grief, I'm listening to this music through my headphones, and it has the sounds of a thunderstorm in it. 19:09:46 And I thought it was really raining outside, especially since it smells like heavy rain is coming later tonight. :) 19:10:06 Yes, it would be byte addressed. I was also thinking of making it a 32-bit environment. 19:10:28 How big of an address space? 19:10:30 Thunderstorms are great. 19:10:36 kc5tja, it would be user definable. 19:10:48 Ahh. 19:10:51 powers of 2 19:11:03 So, ! and @ would use a mask to wrap memory accesses. 19:11:07 Damn this band is *so* good. 19:11:15 * kc5tja nods 19:11:21 What band? 19:11:30 Bela Fleck and the Flecktones. 19:11:41 * madgarden is listening to the "Drone Zone" shoutcast station. 19:27:15 I imagine making a VM forth that combines F79 and F83 would satisfy most folks in here. 19:27:50 why VM? 19:28:00 it won't satisfy me :) 19:28:11 slava: so exploits can't do any serious damage. 19:28:16 (in fact, so they can't do ANY damage0 19:29:19 I'm not running a *real* Forth IRC bot with you guys at the helm, thanks anyway. ;) 19:29:54 slava: Hey, watch me hack madgarden's PC speaker to speak verbal insults to his pet canary! 19:29:57 ;D 19:32:24 Haha. 19:32:43 did I miss something? 19:32:44 That makes me think though... I should throw a speech synth on it! Then you guys could talk to me, heh. 19:32:57 slava: Factor is written on top of a VM... 19:33:00 Haha :) 19:33:12 Herkamire, yes :) 19:33:20 Herkamire, but he said F79 or F83 on top of VM :) 19:36:24 Well, ASau uses F79, or is it FIG. And F83 seems to be the most mature pre-ANS standard. Won't touch ANS with a shitty bargepole. 19:36:37 whats wrong with ANS? 19:37:04 he's sick 19:37:21 Heh. Well, seems to be generally anti-ANS sentiment in this place. And I sort of agree. Most people here (including yourself) seem to me minimalistic Chuck-inspired Roll-Your-Own-Forthers. 19:38:05 i don't really consider myself a forther, or factor a forth; the interpreter is close to 8,000 lines of code. 19:40:16 slava, well I'd just be aiming for the lowest common denominator here.. sinc.. WHAT?!? Not a FORTHER!?!?! GET TEH EHLL OUT!!!?!/1/1?1!!?! 19:40:19 ;) 19:43:11 Wow. 19:43:14 such violence. 19:43:23 madgarden, the oppressor. ;d 19:43:25 :D even 19:43:36 Hehe. 19:43:58 Well, slava couldn't crash my VM with his weird Factor input anyway, so I'm all good now. 19:44:00 ;) 19:46:43 madgarden, i've crashed the sun java VM with it:) 19:46:51 That I do not doubt. :P 19:47:11 There'd be no CONSing up my Forthbot, though. :P 19:50:21 --- quit: qFox ("if at first you dont succeed, quit again") 19:58:49 --- join: Nutssh (~Foo@dunwlessnat.rice.edu) joined #forth 20:00:25 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 20:02:48 Hmm... for the simplest forth VM, I imagine you'd only need push, pop, fetch, and store (c@ and c!). 20:04:43 madgarden, i've thought of adding a 'limited dictionary' feature to factor 20:04:45 for bots 20:05:33 Sure. 20:05:46 But, why not give 'em the whole dictionary? 20:10:17 --- quit: tathi ("leaving") 20:14:07 well i could run the JVM in a sandbox 20:14:30 but then they could still put it in an infinite loop somehow 20:14:56 : infinite-loop begin again ; 20:14:59 End of discussion. :) 20:15:22 Or... 20:15:27 : kaboom! recurse ; 20:15:29 :D 20:15:47 Leave out the tail-call and the last one is fine. 20:15:49 the idea is to disallow the users from using control structures in code they send to the bot 20:16:25 Well, if you properly handle tail-calls, which my Forth systems do because I use it to implement control flows, then it'll be fine. 20:16:35 But F79 and F83 typically don't implement tail-call optimization. :D 20:16:54 kc5tja, a properly implemented tail-call would be an infinite loop, non? 20:17:07 madgarden: sure it will. 20:17:15 So then it's NOT fine. :P 20:17:25 : foo foo ; in FTS/Forth will generate the exact same code as : foo begin again ; in a traditional ANSI Forth. 20:17:29 Unless hanging the VM is fine. 20:17:47 It's fine in the sense that it won't cause global economic collapse due to return stack overflow. 20:18:16 Heh. Yea. Well fine in my case was using the return stack overflow to avoid infinite looping. 20:18:42 And, how do you compile a previous FOO in FTS/FORTH? 20:19:23 I think the bot should have protection against infinite loops by limiting the number of vm instructions that will execute from one users input 20:20:17 Yep, that's a reasonable fix. 20:20:32 As is a failsafe command. 20:21:03 removing control contstructs would severely impare our ability to demonstrate code 20:21:05 a two-step time limitation would work well enough, I think. 20:21:09 But now you make me think, this botForth would have to be multi-user multi-tasking. 20:21:27 madgarden: no 20:21:36 ayrnieu: a timer would be fine 20:21:47 Herkamire - if a second program did the timing, sure. 20:21:53 the bot should have a timer for flood protection anyway 20:23:55 Herkamire, what do you mean "no?" 20:24:12 One guy starts typing a line, and another guy can finish it? 20:24:12 madgarden: why would it have multitasking? 20:24:15 Communal forth? 20:24:25 yeah, 1 stack? 20:24:36 madgarden: no, the bot doesn't see your line until you finish it 20:25:03 communal is the idea 20:25:05 Well, so that the bot could execute more than one program at once. Perhaps you're running some fractal generation code, and slava wants to draw ASCII boxes. 20:25:14 if you want your own private forth, then run one on your computer 20:25:34 Herkamire, sure, but in a multi-line definition, you could write the next line before I did. 20:25:51 madgarden: factor factor factor 20:26:04 don't use multi line definitions 20:26:10 That's no solution. 20:26:15 that's a good solution 20:26:17 Herkamire, not always possible :) 20:26:19 Nah. 20:26:53 the only time where it's hard to factor, is when you have a nasty control construct. 20:26:56 Well, that's some major factoring effort for a quick demonstration. 20:27:00 and you have all the more reason to do it then 20:27:22 if you can't easily factor your code, then it's probably bad for demonstration 20:27:27 I actually kinda like the idea of sharing input lines. Would be an interesting experiment. 20:27:28 who wants to see a tangled mess 20:27:54 Anyway, the question is not whether everyone should be forced to write well-factored code./ 20:27:59 (or not) 20:28:10 That's not a "fix" for the problem. 20:28:19 (if it even is a problem) 20:28:19 what problem? 20:28:23 Exactly! 20:28:27 :P 20:28:38 The problem being multi-line words. 20:28:42 if you want to write some ugly long function, then do it. paste it in quick, or put it all on one long line 20:29:05 you're not really supposed to paste big things in irc anyway 20:29:25 Another reason why you'd need multi-line. 20:29:37 I think this all works out nicely :) 20:29:50 I think the bot should make a web-accessible log of the forth input 20:29:54 !forth : blah 1 2 3 4 20:29:54 !forth foo bar + . 20:29:54 !forth ; 20:30:02 FTS/Forth takes the same approach as Chuck Moore's ColorForth and MachineForth concepts when it comes to control flow. 20:30:25 kc5tja: me to I think 20:30:42 In other words, you had better write short definitions, or you'll quickly find yourself in a world of hurt. :) 20:30:45 if/then for/next and tail recursion optomization for ; 20:32:44 Actually, I don't even have for/next in FTS/Forth's cross compiler (yet?). :) 20:32:56 Just haven't needed it so far. 20:33:16 do you guys know of there was anything available to downsample a divx avi? 20:33:33 jdrake: Personally, no. 20:33:50 Oh, but that reminds me, I need to burn a CD-ROM of a few AVIs. 20:34:23 heh exactly what I am doing :-) 20:34:32 some anime needs to be a little smaller 20:34:42 233mb downto 175mb is what I want 20:34:48 so I can put them 4 to a disk 20:35:00 does mplayer do divx? 20:35:05 Herkamire: Yes. 20:35:06 I have to burn my son's custom music CD. Heh. Stuff like Mr. Roboto, music from Tron, the first stage music for Double Dragon on the GBA, and Disco Inferno to name a few. ;) 20:35:27 Mr. Roboto is awesome 20:35:36 STYX! 20:35:38 :) 20:35:43 Styx was pretty cool in general. 20:35:53 I've used mplayer to shring DVD video 20:36:11 Shring? 20:36:33 shrink 20:36:44 Yes, Mr. Roboto rocked my rollerskates when I was a kid. :D 20:37:09 to 320x240 or something. mplayer screws up the color pallette or something for X if I play video with too high a resolution 20:37:12 Herkamire: How did you do that? 20:37:21 Herkamire: Ahh 20:38:14 mencoder -dvd 2 -vop scale=320:-3 -o ~/tmp/dvd.avi -oac copy -ovc divx4 20:39:07 What does it mean when mkisofs says, "Warning: no Apple/Unix files will be decoded/mapped"? 20:39:19 it took several hours :) but I got a nice 300MB avi that played correctly :) 20:41:33 jdrake: do you have linux? 20:42:20 Herkamire, no 20:42:23 on osx 20:42:40 quicktime is da bomb 20:42:56 lunix could use something like it, but better quality 20:43:37 jdrake: working on it 20:43:58 xiph.org is 20:44:15 i am not talking about quicktime's encoder 20:44:16 Herkamire: All we need now is content. 20:44:32 quicktime the application along with its editing features 20:46:02 --- quit: scope (Client Quit) 20:46:11 jdrake: quicktime pro? 20:46:40 yes. 20:46:43 kc5tja: huh? content for what? 20:46:48 I've never used quicktime pro 20:46:53 xiph's video encoding. 20:46:59 you can do some pretty good stuff 20:46:59 kc5tja: :) 20:47:14 I've just been annoyed by the stupid dialog asking if I wanted to buy it all the time 20:47:20 So, theFox is Jeff Fox? 20:47:27 excuse me for watching trailers 20:48:39 madgarden: Yes. 20:48:53 OK, good to know. 20:50:27 Anyone else waiting for Dawn of the Dead on March 19th? Zombies, yay! 20:50:50 "not I" said the little red hen 20:51:26 ...I can't believe you're a frickin' HEN. Jeez! 20:54:29 Better watch your tongue, young man -- that HEN throws a mean EGG... ;D 20:55:06 What kind of mother would throw her own eggs? 8O 20:55:36 A mean-ass BIKER HEN!! :D 20:57:10 Holy crap! 21:09:00 Dobroe utro! 21:11:58 re 21:15:16 re-privyet 21:20:49 --- join: MarkT (mark@tom.nss.udel.edu) joined #forth 21:28:14 Guten Morgen, MarkT! 21:28:25 hello :) 21:29:00 hi MarkT 21:29:36 kinda quiet in here today. 21:31:11 * kc5tja is trying to figure out a legal set of RLL-3,9 codes, which can be useful for me in ham radio applications. 21:33:22 I'm buzy with calculations. 21:33:50 Atmosphere pollution. 21:34:53 hmm, c'mon over here. We've got way too much over the LA Basin.. :-/ 21:35:22 hell, we got way too much everywhere for that matter. 21:53:41 --- quit: Nutssh ("Client exiting") 21:56:47 kc5tja: hmmm. You got me thinking about theora... we do need content. A while ago I wanted to try theora, and then I realized that I have nothing to encode 21:56:58 I don't make videos 21:57:08 * kc5tja nods 21:57:30 I think I've made two video files in my life 21:57:36 Hehe ;d 21:57:38 :D even 21:57:52 Too bad mplayer can't produce a Theora video from some other video. 21:57:57 Maybe in the future. 21:58:09 I'm sure it will. it supports ogg vorbis 21:58:19 * kc5tja nods 21:58:24 I don't know if it writes ogg, but it plays it well 21:58:32 Except for my video, that's what most of my Bela Fleck songs are in. 21:58:43 And, soon, all of my Genesis and Pink Floyd songs. >:) 21:59:03 I like bela fleck 21:59:22 * kc5tja needs to buy more of their CDs. 21:59:25 They are *really* good. 21:59:33 I ripped all (but 5) of my CDs into ogg files 21:59:46 I haven't heard such unique music as that in a long, long, long time. 22:00:25 * kc5tja is attempting to burn a 756MB ISO onto a 700MB CD. I doubt it'll work, but since it's a coaster anyway, I may as well let it finish. :D 22:01:42 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 22:07:03 Dobre jitro, TreyB 22:11:13 --- join: Serg (Serg_Pengu@212.34.52.142) joined #forth 22:11:36 Dang it, it choked. 22:11:40 The CD-ROM wouldn't have any part of it. 22:12:28 Well, I'm off to get some food, and then, off to bed. 22:12:34 College in the morning. 22:13:14 Privet, Serg! 22:13:38 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 22:23:15 hi 22:25:55 Kak dela? 22:30:51 --- quit: Herkamire ("off to bed!") 22:35:25 nice ;) 22:35:40 my new old ;) camera has a hole - gotta fix 22:35:49 ruined valuable pictures ;(( 22:36:22 FED3 - soviet Leica, M39 rangefinder w/ 50/2 lens 22:54:13 --- quit: jdrake ("This space is available for $20 per month") 23:05:24 --- quit: chandler (Connection timed out) 23:12:30 --- join: chandler (~chandler@64-145-60-36.client.dsl.net) joined #forth 23:23:26 --- quit: MarkT (Read error: 104 (Connection reset by peer)) 23:25:00 --- join: MarkT (~mark@tom.nss.udel.edu) joined #forth 23:31:01 --- quit: Serg () 23:44:29 ASau: dela harasho 23:59:59 --- log: ended forth/04.03.09