00:00:00 --- log: started forth/05.09.26 00:51:33 --- join: aum (n=aum@60-234-156-82.bitstream.orcon.net.nz) joined #forth 04:11:08 --- quit: madwork (Read error: 113 (No route to host)) 04:45:12 --- join: amca (n=plump@as-bri-2-58.ozonline.com.au) joined #forth 05:30:04 --- join: virl (n=hmpf@chello062178085149.1.12.vie.surfer.at) joined #forth 05:40:17 --- quit: Raystm2 ("User pushed the X - because it's Xtra, baby") 05:40:55 --- join: Raystm2 (n=Raystm2@ppp-70-248-35-119.dsl.rcsntx.swbell.net) joined #forth 05:42:43 --- nick: Raystm2 -> nanstm 05:44:12 --- join: PoppaVic (n=pete@0-1pool47-193.nas30.chicago4.il.us.da.qwest.net) joined #forth 05:44:36 Mornin' 05:44:57 How goes it? 05:45:23 Not too bad :) 05:45:30 Still a bit slack with the coding though 05:45:52 Well, it might get busier 05:46:26 No, Ive been slack with coding 05:46:53 --- part: aum left #forth 05:47:01 ahh.. Yeah, I end doing an awful lot of tinkering, when doing nontrivial stuff 05:47:44 I havent done any recently >.> 05:48:20 Well, sometimes a break is good. Tis why it helps to have at least 1 more hobby 05:49:00 hehe 05:49:21 I have too many - they all keep distracting me when one of them starts to get more like work 05:50:19 they should. If the hobby feels like a "chore", then it generally means yer head is not willing to play that game for the nonce. 05:51:11 fair enough 05:51:30 But I am too self indulgent and need to get more disciplined about my activities 05:52:34 Possible. A lot of folks are like that, nowadays 05:52:37 How has your coding been going? 05:53:10 Lot's of generic stuff.. Mostly headers/ideas. No real "code", as I have so damned many facets and ideas to attack. 05:54:24 * amca nods 05:54:30 Still good though 05:54:56 I like your Heisenberg bug comment :) 05:55:07 well, I hate designing too little, cranking a ton of code; then changing the API and having to rewrite huge chunks 05:55:12 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 05:55:28 amca: I suspect he's trying to observe something that DOES observe 05:55:55 I see 06:00:02 What is the link to that wiki about your project? 06:00:19 It was axed by Q 06:00:54 So, I'm back to plain old tinkering and notes 06:01:17 Why was it axed? 06:01:37 In reaction to my being such a beastly "racist" 06:01:54 * PoppaVic shrugs 06:02:05 Oh? 06:02:16 No loss. I just need to putter along 06:02:21 * amca smells interesting curiousity arousing info 06:02:37 Do you know there are free wiki providers out there? 06:02:55 Prolly. I'm not a huge fan of wiki's. 06:03:06 wikihost.org 06:03:18 They dont fit in with how your mind works? 06:03:45 well, we might use them eventually. But, I was spedning too much time trying to puzzle out the interface and play at Q&A 06:04:21 * amca nods 06:07:51 I still need to come up with essential string and i/o opcodes. 06:08:35 Would you like to email me what you have done so far? 06:08:45 and, to make it worse, I either want to immediately support wchar strings or have them modular. 06:08:48 sure. 06:09:17 send me a reminder, I'll attach the tarball 06:09:28 ok 06:10:36 I think I'm getting too many balls juggled at once, but I can't see another way to layout an essential set of concepts 06:10:46 channel, dude 06:11:06 Hmm. so you need a higherlevel design concept than you have already to tie it together? 06:11:16 I know :P 06:11:22 It's all being designed in layers/modules 06:11:40 --- join: madwork (n=foo@derby.metrics.com) joined #forth 06:12:20 I figure that folks shouldn't have to suffer an entire, interactive language if all the need is an executor of one or more modules of basics. 06:13:07 I was thinking more of a summarising object model/abstract data model or such to hide the complexity 06:13:55 you'd have to explain that a touch more: a lot of those concepts get mangled 06:15:10 Well whether it is OOP or structured in design, a dev project usually has a data model of some sort that hdes implementation details right? 06:15:29 what is a "data model"? The API? 06:16:15 the API is the interface to the datamodel 06:16:20 ahh 06:16:22 ok. 06:16:32 The data model is more of a conceptual framework 06:16:58 well, the "datamodel" seems pretty vague. Any language could play if it matches the API 06:17:03 One example is the stack: it can be implemented several different ways, but the data model is always essentially a pile of plates 06:17:11 right 06:17:14 exactly. That is the idea 06:17:33 OK, yah. I think I'm tracking, then 06:18:00 Like you may have one overarching umbrella module that is composed of submodules. 06:18:08 right 06:18:24 We're using variant terms, but talking the same mechanics 06:18:30 If you want to deal just with the more abstract module, you can, but if you wanna deal with more complicated parts you can too 06:18:42 Ah 06:18:55 Like how you have file strams and file handles in C 06:19:17 streams. Have you ever seen a file "stram" in C? :) 06:19:18 What I'm shooting for is the structures and a fist of support to run the engine/vm and core - which can be extended up and out. 06:19:38 Ah 06:19:43 stream? they consider handle or FILE* or sockets all "streams" 06:20:17 exactly. They are not so much worried about the actual implementation details 06:20:35 the only diff on those "streams" ( in C ) is that each variant has or lacks certain atomic-features. 06:20:49 but if you wanna worry about file handle details you can. Or if you wanna deal closer to the h/ware you can use ioctl etc 06:21:00 right. Precisely 06:21:04 PoppaVic: Exactly. Abtraction 06:21:10 yeppers 06:21:10 (abstraction) 06:21:27 :) 06:21:29 * amca dances 06:21:37 well, the prob with the three variant "streams" is that they are not as near-identical as they should be. 06:22:02 Well that is a problem in API design probably 06:22:03 The same issue exists with "strings" - in forth OR C 06:22:12 or just being pragmatic 06:22:22 How so? 06:22:33 I think the latter - they evolved poorly 06:22:40 Did the email arrive? 06:22:48 amca: wside-strings versus ascii 06:22:58 Ah, yes 06:23:21 yes, have the email - wait a few 06:23:40 Just checking it actually got there and didnt get lost :) 06:24:20 with strings they tend not to have identifying metadata - at least files have dot extensions 06:25:28 incoming... 06:25:33 ..splash 06:25:38 lol 06:25:42 Heads up! 06:26:16 Metabuilder? 06:26:18 yeah, and I tried to discuss strings as "objects" the other day, and we were not getting too far. 06:26:33 O_O 06:26:33 Yeah, a project that is going to rely on THIS project. 06:26:36 With who? 06:26:45 Ah, that is right, I remember now 06:26:46 the channel.. Some of the guys 06:27:00 Do Forth ppl tend to not like OOP? 06:27:06 or OOP concepts? 06:27:10 Or do you not like thewm? 06:27:15 brb 06:27:37 I believe it may be that folks think of forth as "simple-minded" and then OO as lisp or other nasty languages. 06:28:10 Personally, I feel OOP is being abused by issues that make it all more difficult. 06:30:45 Well I think that even if you do not code in an OO lang, OO design is useful for any lang. Heck, even BASIC can benifitt from an OO approach 06:31:05 yes, THAT I agree with 200% 06:31:22 "modular-design" and "functional-decomposition" 06:31:23 Well technically, you can only agree with it 100%... ;P 06:31:37 abstraction and encapsulation 06:31:44 yep 06:31:58 Ooooh! 06:32:02 do you read slashdot? 06:32:19 and, root to many issues is - "accept that you may call a few more funcs, but you can reuse those funcs in many places" 06:32:25 --- join: Ray_work (n=vircuser@adsl-65-68-201-174.dsl.rcsntx.swbell.net) joined #forth 06:32:28 no, hardly ever waste the time 06:32:43 lo, Ray_work 06:32:50 Hi PoppaVic :) 06:32:54 Hi Ray 06:33:02 amca! long time :) 06:33:12 where ya been? 06:33:58 Avoiding coding recently >.> 06:34:11 * Ray_work has finished ( for the most part ) the `basic execution env' for ChuckBot the Glyph. 06:35:13 cool :) 06:35:53 just need to add the higher level apps demos, 06:36:13 Then "Watch out! World" ! 06:36:16 PoppaVic: There was an article referenced which said about how MS has had to switch from a hacker coding approach to a more s/ware Eng appraoch because Windows Vista is too big to just hack together 06:36:40 amca: they'd have to reverse-engineer most of their crap 06:37:17 Chuckbot is now programmed for World Domination (TM)? 06:38:09 call it "Pinky", and yer in 06:38:14 hehe 06:45:42 amca: I apologize for the lack of really good docs in the tarball, but I think you prolly can overview the headers and clue-in 06:46:03 yep. Looking at them now 06:46:12 Just checking what sizes in are on my comp :) 06:46:19 sure 06:46:56 I'd love to even get past worrying about THAT, but the ABI's all over are so bad we can't just ignore it and pray it goes away 06:47:50 heh 06:51:23 You tend to code rather cryptically 06:52:01 I apologize. Feel free to write an email-query or ask. I'll try to answer as best I'm envisioning 06:52:31 I was looking at z.c 06:52:39 I was commenting more on your instincts 06:52:56 oh, shit that.. It's a throwaway I just use to doublecheck sizes 06:53:40 * amca nods 06:53:46 Eventually, it may mean something - but as of now, it's just a noise-generator to make gcc happy 06:53:50 I didnt even notcie properly what it was doing 06:54:04 "make z; ./z" 06:54:07 But as a comparison, here is how I code instainctively: 06:54:21 printf("sizeof(int) = %d\n", sizeof(int)); 06:54:23 it just reports on struct-sizes/opcodes-in-use 06:54:42 * amca nods 06:56:56 Ah, good ol 32 bit for int 06:57:27 yeah, tathi used it as a guide - no real reason not to. 06:57:48 I was just wondering if my system used short or long for int 06:57:57 it's ALWAYS a ponder 06:58:59 32-bit systems are supposed to use 32-bit as an int. 06:59:01 I suspect I'll eventually add WORD and DWORD as well as QCELL 06:59:14 -Wlong-long ? 06:59:20 just testing 06:59:31 I wanted to hear any screams of agony from gcc 06:59:41 hehe 06:59:50 What does it do? 07:00:02 Warn about what? 07:00:09 warn if 'long long' is used. 07:01:39 Ah 07:01:44 right: because (officially) It's _sometimes_ supported 07:01:50 bad long long? what? 07:01:56 on most all 32-bit systems, you have short = 16-bit, int = 32-bit, long = 32-bit, long long = 64-bit. 07:01:56 Why does Gforth lack a dodoes? :P 07:01:57 hi tathi 07:02:11 Think there are a few systems that are different, but IIRC that configuration is given in some standard somewhere. 07:02:21 amca, why do you need one? 07:02:24 amca: I believe they do some major bit-blasting 07:02:53 shit, I gotta' split for awhile in 30 07:02:54 Quartus: No, PoppaVic had in his code "Note: Gforth lacks a 'dodoes': do NOT ask me why!" 07:03:07 Oh . 07:03:25 Sometimes you have to be difficult because there is not enough entropy in the universe 07:04:03 amca: I suspect that gforth abuses gcc and their metacompiling attributes to get the speed & size it gets 07:04:56 Ah 07:07:17 terminates a packed-fetch opcode-list (legacy) ? 07:07:30 WTF does a new system have legacy code already? 07:07:42 --- join: Amanita_Virosa (n=jenni@CPE0000e812679b-CM000a7362da55.cpe.net.cable.rogers.com) joined #forth 07:07:52 yeah, herk/jas and tathi pack 6-bit opcodes 07:08:04 It's not a bad idea, but I use bytes 07:08:53 so, if you ever hit an opcode=0, they bail 07:09:08 ..has to do with the outer/stepping-loop 07:10:13 It may well disappear in my own code, but whatthehell - it doesn't cost much. 07:10:48 What is the size of the cell in this code? 07:11:10 a CELL is based on uint - or 4 bytes 07:11:47 Well given it is so big, I think it is a bit excessive to worry about 2 spare bits per opcode 07:11:55 or - go the other way and call it a void* or even a func-ptr 07:12:07 that was my feeling 07:12:24 I'd rather fetch bytes or cells, for sure 07:15:13 tathi: any new ideas on do/loop flop? I really think using the RS is a bad idea, or (more gently) it makes me a trifle ill 07:16:32 I've never had a case where it was an issue. 07:17:08 PoppaVic: Why is using the RS a bad idea? 07:17:49 hmm 07:18:04 I just hate using a return-stack for variables 07:18:28 How about the idea of a "stack frame", tathi any really neat insights? 07:18:47 as in "every call/func needs a stackframe" 07:19:56 This latter idea seems to mostly mean gobbling inputs and allowing for 'local' space - to leave 0+ "droppings" 07:20:30 A return stack would only be used temporarily to hold data. (Hopefully only within the same line/statement) I thik it would be overkill to have a 3rd stack 07:20:37 As far as I'm concerned, stack frames are an ugly hack that was invented to allow you to use one stack for both return addresses and input/outputs. 07:20:46 ahh 07:20:57 tathi: Id agree with that 07:21:08 tathi: I was thinking of startup/cleanup, but I can see what you mean 07:21:24 ok, I'm exaggerating. I just don't have a use for them. 07:21:56 I suppose storing loop index/limit on the rstack could cause problems with catch/throw (walking back up the rstack). 07:22:03 But current implementations seem to manage... 07:22:24 ok, now stretch yer mind and consider "strings" - I still hate the index/limit on the stack 07:22:26 tathi: Do you know how they do manage? 07:22:41 amca: voodoo, always voodoo 07:24:16 needing to do "unloop exit" always struck me as insane. 07:24:34 but, strings can be just as insane 07:24:48 amca: no, never thought about it much. 07:25:39 PoppaVic: well, you could always have a separate control flow stack. Or even one for forward refs and one for backward branches, like Quartus mentioned the other day. 07:25:44 I'm going to cogititate it, but it seems likely that a plain old break/continue/exit should be plenty 07:25:56 tathi: yep, been cogitating it 07:26:49 oh, I'm getting confused. control-flow stack is a compile-time concept for branch addresses. 07:26:53 but anyway. 07:26:58 right 07:27:23 hmm...if you don't want to do "unloop exit", it seems to me that exit has to know about your loops so that it can drop any loop-control data. 07:27:26 it seems like there is a real bicameral-issue with compile-time and execute-time 07:27:28 which sounds ugly to me, but... 07:28:15 hmmmm 07:28:55 maybe...I just don't use the "immediate" model much -- I think Chuck's dual dictionaries model the issues better. 07:29:06 http://online.wsj.com/article/0,,SB112743680328349448,00.html?mod=todays_us_page_one <- MS changing coding methods 07:29:21 tathi: does that change the whole paradigm? 07:29:26 tathi: With the macros? 07:30:40 I know I'm still considering the dual-dict - thinking it over, but sometimes you can overthink a problem 07:31:03 PoppaVic: not really. The main difference is that "macros" are only found at compile-time, while "immediate" words are found either way. 07:31:12 ahh 07:31:32 OK, then I guess we are still dicomboobulated. 07:31:37 dic/dis 07:31:57 There has GOT to be a clean solution. 07:32:20 amca: that article sounds overly dramatic to me... 07:32:22 I gotta' roll for an hour or so.. Damn.. Back laters. 07:32:27 --- quit: PoppaVic ("Pulls the pin...") 07:32:51 tathi: The whole article or the heading? The heading is just hype 07:33:48 I'm just sceptical as to whether Microsoft's coding practices are actually so bad that they need to start fresh. 07:35:16 tathi: From what I have heard, yes 07:35:44 They have aweful coding style. Their books on coding style are good, but they dont follow them 07:37:14 I'm not convinced that wiping out years of work and starting from a clean slate is ever anything but a suicidal move for a software company. 07:37:27 But maybe Microsoft has enough money to burn that they can pull it off. 07:38:39 No matter how bad your code is, it stil has years of bug fixes, so it includes all the little special cases that it needs to run on bazillions of different computers. 07:39:01 And a lot of those are probably non-obvious enough that you're not going to get them the first time around with a new implementation. 07:39:06 tathi - i completely disagree 07:39:09 tathi: Well they are using NT code ( I believe) as a base 07:39:10 starting from scratch with a fresh base is great 07:39:17 *especially* if you've kept your talent 07:39:23 companies with high turnover rates can't do it 07:39:27 --- join: sproingie (i=foobar@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 07:39:36 it's suicide if you haven't still got the people who built your first core 07:39:43 but you *can* learn from previous work 07:40:01 heck even microsoft proved that when they built .net, which from what i understand, while still not a system i'd use, is a lot nicer than java 07:40:07 Yes, but will your core people remember all the little quirky work-arounds that they have added over the last 20 years? 07:40:15 why should they have to? 07:40:41 Well, the alternative is to build a system that doesn't support the odd cases, and then have to find them all over again the hard way. 07:41:04 I'm not saying it's not good for the software (long term) to start over, just that it seems like an extremely expensive business proposition. 07:42:01 tathi: In the short term, more expensive, but in the long term it was gonna be more expensive/suicidal not to change 07:42:05 Amanita_Virosa, it is my experience that it's extremely valuable to have whole systems, or at least whole major subsystems, residing in one person's head in their entirety. It's possible to transfer that from one head to another, but it rarely happens. 07:42:18 head transfer 07:42:22 Quartus - i agree. 07:42:29 When you lose that person, what can happen is that subsequent changes are piecemeal and random. 07:42:30 Vulcan mind transfer? 07:42:34 Quartus - i agree to such a level that i'm building my entire system singlehandedly from the ground up 07:42:49 amca: yeah, I'm just wondering whether it wouldn't be cheaper to rework things from within. Slower, but safer? 07:43:20 tathi: Well they are starting with an NT base, so it isnt like they are starting from scratch 07:43:21 tathi - you seriously need to work on a few big software projects. heh. 07:44:11 Amanita_Virosa: true, I haven't, but it just seems like most of the companies that try to do that sort of thing wind up going under. 07:44:32 The 'starting over' thing is helpful primarily because it lets you build that 'one-head' view of the project again. 07:45:25 But it's a panicked move that happens when the previous head is lost. 07:45:29 Quartus - more or less. but it also lets you change the underlying structure without rendering the software completely unusable/untestable 07:45:37 * Amanita_Virosa nods 07:45:50 usually hear those referred to as "bus errors" 07:46:01 as in "soandso gets hit by a bus" 07:46:04 tathi - hrm. well, it's risky, but it's also a good thing. 07:46:08 microsoft did it with win32 tho 07:46:10 and it payed off 07:46:11 --- join: amca_ (n=plump@as-bri-2-40.ozonline.com.au) joined #forth 07:46:13 apple did it with osx 07:46:15 and it paid off huge 07:46:28 Amanita_Virosa, I've seen the win2k sources. They still aren't getting it right. 07:46:29 Yah, I'm sure with all the talent they've got at Microsoft they know what they're doing. :) 07:46:50 --- quit: amca (Nick collision from services.) 07:46:58 --- nick: amca_ -> amca 07:47:09 Quartus: arguably you could derive a similar argument from linux sources 07:47:23 Those are far more coherent and well-organized. 07:47:32 in places 07:48:04 They're written by different people, but the overall structure, how everything hooks together, is still in Linus' head. 07:48:20 * amca nods 07:48:35 i've heard windows source makes MFC's source look clean 07:48:36 heh 07:48:49 ya, actually, the linux sources are actually somewhat coherent. 07:48:51 It's the *system* that needs to be conceptualized by one person, not every line of code. 07:48:53 i've seen solaris source, and it's extremely clean 07:49:07 although i can't say much for some of the garbage buried in the drivers tree, lol 07:49:12 i guess everyone sees it now with opensolaris 07:49:24 i wrote an entire operating system in the code it takes linux to run a floppy driver 07:49:32 and my os had a zero-wait-state floppy driver, at that, lol. 07:49:46 how many different floppy drives did it drive? 07:49:56 Quartus: If the system concept is documented, cant the person be disposed of? 07:50:25 The map is not the territory, amca. Somebody needs to own it, and have it all upstairs. 07:50:33 Quartus: Good point 07:50:47 amca: if the system is simple enough, yes. anyone who makes their living maintaining something trivial doesn't really deserve the job 07:51:01 Got to run. Dentist. 07:51:21 documentation is soooo overrated. 07:51:34 otherwise, documentation doesn't substitute for experience. you gotta read and memorize those docs to be as productive as the original programmer, and that takes a while 07:51:46 i went through a documentation phase 07:51:49 where i wrote "good" code 07:51:59 well documented, self-describing, deep heirarchy C++ code 07:52:04 with long variable and function names 07:52:15 Amanita_Virosa: Documentation is vital IMO. Human memory is weak. Only the written word survives for generations intact. 07:52:16 hehe 07:52:31 i moved past that now. what i write now is all in plain C, totally undocumented, 1-letter variable names, and looks IOCCC worthy 07:52:31 * sproingie inherited a big pile of driver code at sun for one of those multiline scrolling LED display thingies. fantastic documentation, massively complex 07:53:00 Amanita_Virosa: Why did you move past that? 07:53:02 amca - i completely disagree with you. i have far less problem understanding the type of code i write now, which invariably fits on a single page or at most two pages, than the intricately documented bloated mass that was my "good code" 07:53:10 i blame the manufacturer for making it so complex, since the translux datawall I inherited right after that worked just like a terminal. simple 07:53:18 because it's akin to writing french poetry by writing it in english and then translating 07:53:46 Amanita_Virosa: Maybe you werent factoring/modularising enough? 07:53:59 LOL 07:54:09 i suggest you look up "deep hierarchies" sometime 07:54:14 if anything, i could have been accused of the opposite 07:54:19 Good point 07:54:21 J'ACCUSE! 07:54:26 Wait asec! 07:54:29 factoring is something of a fetish in forth-land 07:54:36 it doesn't really translate well to C 07:54:44 Also, not using C++ is something of a fetish in forth-land too :) 07:54:45 If there is good abstraction and encapsultaion, wouldnt it not matter about deep hierachies? 07:54:51 sproingie - granted, writing a FORTH-based OS was a large part of what changed my coding style... 07:55:32 amca - for a reference on the endpoint of abstraction, i refer you to abstract art. 07:55:39 that should say enough, i think, lol 07:56:02 Amanita_Virosa: I disagree - there can be a happy medium between abstraction and pragmatism 07:56:09 sure there can. 07:56:22 there's a gallery in SFMOMA that consists of the most abstract of abstract, which is entirely blank canvases 07:56:29 Besides, what is wrong with a painting of a polar bear in a blizzard? :P 07:56:52 well now, see, what i write... 07:56:53 i can appreciate minimalist abstract art and the effort something like mondrian's lines and colored rectangles actually took 07:57:07 now i write minimalist C code. it's native C code. it's not written in english and translated. 07:57:15 i'm more fluent in C than i am in english 07:57:20 i think like the computer. heh. 07:57:27 but when i saw that, i just thought that the art there was the bullshit artistry in passing this off as an artistic creation 07:57:45 Amanita_Virosa: Can other ppl understand the code you write? 07:57:59 amca - i really couldn't care less. i don't write open source. 07:58:09 i can understand it when i come back to it after forgetting how it works 07:58:13 and that's what's important. 07:58:14 Ppl who have to maintain your programs will :P 07:58:54 Would you mind if I saw an example of your C coding? 07:59:00 people who have to maintain my programs have my deepest pity. only 1 in a hundred (and that's being generous) programmers have the brains to understand my code. 07:59:32 the actual page of code? or an example of what it does? 07:59:41 Actual page of code 08:00:02 hrm. funny enough, that might be hard to find these days. i haven't released any code in years. 08:00:10 i've gone binary-only 08:00:13 You make it sound like it would be easier to reverse engineer the binary rather than read your code ;) 08:00:21 by and large, yes. 08:00:26 lol 08:00:33 i would say only 1 in a hundred have the patience 08:00:44 You only code in machine language? 08:00:53 amca: i think he's being facetious 08:00:55 amca - no, but i do code a fair bit of assembly... 08:01:00 and i'm female, thank you. 08:01:21 careful, let the rest of irc know and you hear no end of it 08:01:28 fine. i'm also lesbian. 08:01:39 LOL 08:01:39 so it doesn't do them any good. heh. 08:01:48 Amanita_Virosa: You are not making it any easier on yourself :P 08:01:48 you usually get accused unkindly of that within 5 minutes anyway 08:01:59 lol 08:02:12 anyhow... i don't really have much code online. lots of schematics... 08:02:19 EE? 08:02:23 the most recent code i released was in postscript 08:02:40 this kind of stuff: http://caladan.nanosoft.ca/c4/ccorner/6.php 08:02:52 Amanita_Virosa: You realise that that sort of outrageous claims ("Im female") would have to be proven unequivicolly in IRC. :P 08:02:56 http://caladan.nanosoft.ca/c4/bbbits.php 08:03:00 * amca looks 08:03:22 and if you really want to see my code, you can at least see it in action: http://caladan.nanosoft.ca/c4/software/bugout.php 08:03:24 postscript, thus why you hang out on #forth. spiffy, you do the schematics stuff in postscript yourself? 08:03:39 i do the schematics in xcircuit. 08:03:44 which saves in postscript :P 08:03:55 aha.. 08:04:05 comparing postscript to forth is like comparing PHP to C. 08:04:13 actually, pretty much exactly like that comparison 08:04:36 i wish i stuck with electronics, never could find much to do with it 08:05:18 got a gf now who hates clutter, so my workshop wouldn't go over here 08:06:10 ah 08:06:30 was too afraid of microcontrollers, processors, chips in general to find anything useful to do 08:06:43 stems from being poor and chips being expensive and easily fried 08:06:59 now it's different, but so's the environment. oh well. 08:08:41 xell... 08:09:02 virls daily commercial... 08:47:55 --- join: JasonWoof (n=jason@pdpc/supporter/student/Herkamire) joined #forth 08:47:55 --- mode: ChanServ set +o JasonWoof 09:12:11 --- join: PoppaVic (n=pete@0-1pool46-127.nas30.chicago4.il.us.da.qwest.net) joined #forth 09:12:54 Damn, I'm tired 09:13:21 OK.. back... Sorta' 09:13:45 Sorta? 09:14:06 catching my breath.. Another 1/4 ton of cans and frozen meats 09:14:20 O_O 09:14:22 Anywa.. I miss anything exciting? insights? 09:14:26 Well I am off to bed 09:14:32 ahh, ok 09:14:40 Cya later 09:14:45 stay well 09:14:54 --- quit: amca ("d34d") 09:18:22 --- quit: Amanita_Virosa ("Whoopsies.") 09:23:33 --- join: MjrTom (i=A2305CVS@adsl-66-136-203-123.dsl.austtx.swbell.net) joined #forth 10:14:25 --- join: Serg[GPRS] (n=Miranda@clients.sonicduo.com) joined #forth 10:31:18 --- part: Serg[GPRS] left #forth 10:45:58 --- join: neceve (n=Clau@unaffiliated/neceve) joined #forth 11:19:40 --- quit: PoppaVic ("Pulls the pin...") 12:13:30 Hey all. 12:49:02 --- part: MjrTom left #forth 12:51:37 hi Mr. Quartus :) 12:51:49 Hope this finds you well. 12:51:50 What's the news of the world, Ray_work? 12:52:47 In The World Today.... Dateline Forth Wort Texas, Escapes Hurrican, No rain for our burnt grass yards. 12:53:03 Mixed blessing? 12:53:11 Yes, si, is. 12:54:47 Big Blow In Houston, Just Full Of Hot Air, Says WindBag. 12:55:03 --- quit: neceve (Excess Flood) 12:55:11 Nothing new for Houston, I think. :) 12:55:18 True. 12:55:44 --- join: neceve (n=Clau@unaffiliated/neceve) joined #forth 12:55:46 ChuckBot the Glyph well on it's way.... Advice please 12:55:52 as a customer walks in brb 13:01:23 okay, back. 13:01:44 I defer to your greater experiance... 13:01:49 In what? 13:01:57 Forthin' 13:02:04 As regards what? 13:02:38 Now, colorforth, being a multi-tasker has a pause word that I could put in a for loop and use to pause between moves so that you could see them, 13:02:49 the Glypher environ has no such word, 13:02:53 I was wondering... 13:03:08 could I just 13:03:38 : int @ for 0 push pop drop next ; for the desired effect ? 13:04:05 or is that just idiotic? 13:04:11 I'd think a busy delay loop is a lousy way to do a timed delay, but it depends on what tools the toy Forth in question provides. :) 13:04:30 toy is the opperative word here. 13:04:52 Standard Forth provides MS, which delays in milliseconds, and hopefully doesn't run the CPU hot while it's doing it. 13:05:13 that's more like it. 13:05:21 ms is also in colorforth. 13:05:29 will have to check glypher... 13:05:42 Glypher is meant to actually run on toys, isn't it? Game machines? 13:06:03 I often wonder what Roger has in mind. 13:06:18 Well, if it's a battery operated device, there's even greater reason not to use an active loop to do a delay. 13:06:49 oh its for a pentium running windows, so far. 13:07:00 Write a MS, use that. 13:09:04 milli-secs right, so get the clock and adjust to time or some such. /me will have to research. 13:21:21 thanks for advice, sorry so busy over here... 13:24:31 No worries. 13:27:58 Ya, we got the rest of our natural lives to bore the shit out of each other 13:28:52 Are you bored? 13:29:09 "toy" forth? 13:30:27 YEs. 13:32:40 Yah, Allegro has void rest(unsigned int milliseconds); so Glypher should provide "MS". :) 13:36:15 Why is it a toy Forth? 13:37:27 Some guy wrote it for his own needs, it has a distributed base of a handful of beta testers. So definitely "toy" status. 13:38:03 I don't understand what a "toy" status is though. 13:39:04 Not intended for serious production development? 13:39:20 er... production quality 13:39:21 everything where you could do something useful is a toy 13:40:26 "Toy language" sometimes refers to a language that's for instructional purposes, but not for general-purpose use. When I say "toy" Forth here, I mean something similar -- a small, likely incomplete system thrown together by somebody to expound upon his own ideas or to meet his own needs. 13:40:45 Characterized by being incomplete, not documented, not ready for prime-time. 13:41:06 A "hobby Forth", if you like. 13:42:15 hmm could be quartus a hobby forth, hmm... 13:42:25 or retro forth? 13:42:31 hmm... 13:42:50 Quartus Forth is a commercial Forth. Its predecessory, PilotFORTH, was very much a hobby Forth. 13:42:57 -y 13:43:13 Quartus Forth is Standard-compliant, documented, and has been in prime-time for years. 13:43:28 oh, so old? wow... 13:44:58 Yup. Quartus Forth 1.0.0 came out in '98. 13:46:03 and how much expensive cars do you have? ;-) 13:46:10 virl, I don't even own a car. 13:46:56 wow, you probably own a helicopter 13:47:13 * virl is only joking 13:48:54 You have strange ideas about money, virl. :) 13:49:31 perhaps.. 13:52:09 one thing what I find a little bit frustrating is that glypher is commercial, it looks nice but I'm a little bit angry because there aren't much good forths around. the ones which are perhaps good are commercial ones, I hate that. 13:52:54 What is it you want to write? 13:54:20 yay :) let's hear it for not having a car 13:54:29 I don't have a car either. it's graet 13:54:30 great 13:54:42 One less thing to worry about. 13:54:52 so much stress and expense 13:55:04 and besides, I like biking 13:55:14 now I don't have to worry about excersize 13:56:37 There you go. Buff and ecologically sound at the same time. :) 13:59:39 I s'pose my Forth is a toy too, then. 14:01:15 Which Forth is yours? 14:01:26 everything is a toy 14:01:43 JasonWoof, I wasn't using "toy" as in "something that can be played with". 14:03:03 Because in that context, sure, everything is. 14:03:53 Quartus, "Forthy." 14:03:57 A Forth-in-C. 14:04:12 With C scripting/extension/safety in mind. 14:04:35 I don't know it. I'm not suggesting there's anything wrong with toy Forths, as such. 14:05:22 Not many know it, since it's not released yet. It is on Sourceforge, though. 14:05:45 I too use it to interface with Allegro, funnily enough. 14:09:51 Everything *should* be a toy, anyway! :D 14:10:50 Ray_work knows what I meant -- he likes to use minimalist non-standard systems with questionable documentation, for some reason or other. :) 14:12:30 standard. pah, there isn't any good feature 14:12:39 Those are the Fight The Man Forths! :) 14:12:42 ANS forth is like durt 14:12:43 heheh Yes I did understand the intended meaning. 14:12:54 eh dirt 14:13:31 * Ray_work being that I'm under-educated, has made a niche in experimental ( heavy on the mental ) "toy" systems programming. 14:14:05 Ray_work, the loss is mine -- I'd like to use your code, but I can't because it's trapped in niche-land! 14:14:27 Soon, Glypher will free my genius! 14:14:44 the colorforth even your mom can run... 14:15:01 I don't know if my mom can run fast enough, Ray. :) 14:15:12 hahahahahahahah lol 14:15:57 I wish I could understand the appeal of colorforth more 14:16:33 The magenta variable thing is neat. 14:16:37 "Got a pentium chip and 256 bytes of ram, see Ray" 14:16:56 I like the colored, pre-parsed-sortof source thing 14:17:03 It's the total package, once you get it going. 14:17:08 very refreshing. 14:17:09 except for the limit on word lenth 14:17:21 yeah, but the edutor sucks 14:17:29 afaik there's no search feature 14:18:02 very nice that it's consistent and everything 14:18:04 you just look at the red words in the blocks till you find your word.... 14:18:29 yeah... thanks, but I'd rather not waste 70% of my time or more hunting down definitions 14:18:48 in herkforth you don't even have to search for it usually 14:18:58 it's just displayed for you when you put your cursor on it 14:19:20 A Forth editor should be like a wiki. 14:19:37 Each word is a link to a definition. 14:19:58 madwork: I am hoping to intergrate the documentation within my forth system with an online wiki 14:20:06 madwork: that's how mine works 14:20:12 Yes, I noticed. ;) 14:20:18 Does it also do reverse linking? 14:20:20 my source words take up 16 bits 14:20:32 ie. click the definition name, get a list of words that reference it. 14:20:43 4 for color, 12 is an index to the dictionary, which has a reference to it's: 1) name 2) definition 3) comment, etc 14:21:07 Source tokens, cool. Been thinking about that myself. 14:21:13 no reverse, but there's a "find next" key, which pops you to the next reference to that word within the source 14:21:26 so instead of a list, you fly through the source and see them all 14:21:29 A debugger/IDE would work excellently with tokenized source. 14:21:38 Holon Forth seems to do something like this. 14:21:44 I really like it 14:21:46 Cool... 14:21:52 I'm rewriting my forth, and keeping that part 14:22:07 I'm changing how I handle colors slightly, but definitely keeping the tokenized source words thing 14:22:20 Maybe you're rewriting it... in 3D?!?! 14:22:24 ;D 14:22:27 heh 14:22:35 no, rewriting it for a virtual machine that tathi and I made up 14:22:55 so it can be effortlessly portable 14:23:22 Yea, I think colour is a good idea for state, but also for representing the flow of the data stack. 14:23:35 in addition to my system being obscure (ppc linux) it's about to get 100X more so, as abble phases out of ppc 14:23:38 Been thinking about a VM-able Forth myself. 14:23:46 Hmm. 14:23:53 flow of the stack? 14:24:04 state? 14:24:09 color makes it so you have no state at compile time 14:24:53 Yes, stack depth, etc. 14:25:00 room full of customers.... 14:25:12 how would you use color to represent stack depth etc? 14:25:16 So, you can't execute at compile-time then? 14:25:22 sure you can 14:25:25 JasonWoof, I'd use different shades od the current colour. 14:25:28 but the compiler saves no state information 14:25:31 unless you count HERE 14:25:33 OK. 14:26:00 the color bits in each word say if it's compiled, executed, defined, ignored (comment), etc 14:26:13 Is whitespace tokenized? 14:26:26 I don't do whitespace 14:26:31 it's stuck in automagically 14:26:39 I'm thinking of changing that somewhat though 14:26:42 So, you can't format the source then. 14:26:47 no 14:26:59 I'm into one line defs myself 14:27:12 Sure. 14:27:25 in my rewrite, I plan to make it so some lines can be text, or at least dividers 14:27:34 Still, if you want others to use it, you can't force them to do that (unless you're Python). 14:27:42 I'll probably do dividers first, then text lines 14:27:55 we'll see 14:28:30 some will love it, some will hate it 14:28:43 pros and cons 14:28:53 As always. 14:29:08 you'll never have word-not-found errors 14:29:21 but... you can't enter words you plan to define in a minute 14:29:29 tradeoffs 14:29:48 What do you get... a comment instead? 14:29:55 lol 14:30:02 well, actually you get a word-not-found error 14:30:06 but see! 14:30:09 you get it at edit time 14:30:22 I plan on trying different approaches to this later 14:30:24 Yea. Been thinking a lot about edit time lately. 14:30:33 How about input stream parsing? 14:30:33 I'm not sure which is best, but I could try these: 14:30:49 1) let them enter it, and highlight it in some obnocious color so they know it's not defined 14:31:10 2) let them enter it, and create a definition (blank) above the current definition for them to fill in later 14:31:29 both have issues: #1's problem is that then there are word-not-defined errors at compile time 14:31:59 I don't see that as a problem, really. 14:32:08 #2's is annoying if you just mis-typed a def, and you immediately delete it and then insert it correctly. Then you have this empty def sitting around. seems like it would be a bit tricky to clear that out 14:32:09 It's a feature. OH! Crap, I forgot to define FOO. 14:32:30 Yea, #2 is more of a problem. 14:32:35 And it's less Forthy than #1 IMO. 14:32:41 KISS, right? 14:32:57 but then again... it would be handy to have it insert definitions for you. so long as you know how to change them to different types 14:33:10 eg if you wanted a constant, not a word 14:33:30 yeah, for now, it'll just force you to define things before you use them 14:33:40 input parsing: one word at a time 14:33:48 when you hit space or return your input is parsed 14:34:20 Immediate words? 14:34:24 (or the color keys: []'&"`: 14:34:43 I'm changing the way I do immediates 14:34:56 to be more normal. I'll be saving a flag in the dictionary entries 14:35:04 Yay! 14:35:17 in my old system the editor handled it all 14:35:35 the compiler didn't know about immediates. the editor would just set the execute color bits on the immediates 14:35:50 Ahh. 14:35:56 Have you given thought to smart delimiters? 14:35:59 it was very convenient for writing definitions of compiling words 14:36:07 but some things in the editor were a real pain, like tab-completion 14:36:20 what's a smart delimiter? 14:36:33 like 'a gives you 97? 14:36:33 A delimiter that executes at compile-time. 14:36:41 what's it look like? 14:36:42 Sure. 14:36:46 Or, another example... 14:36:53 foo: 123 . cr ; 14:37:01 : is a smart delimiter. 14:37:08 It gets the token "foo" and creates a definition. 14:37:13 * virl wouldn't use it 14:37:13 Allows flexible syntax. 14:37:21 well, that's what I'd type 14:37:27 but it would be displayed without the : and with foo in red 14:37:38 in my editor when you hit : it turns stuff red 14:37:44 to define a word you type it's name then press : 14:37:48 and it inserts it in red 14:37:56 how is the vm moving JasonWoof? 14:37:57 Well, think of prefix-notation parsing as a more advanced example. 14:38:05 add(1,2) 14:38:10 also, (as with all color keys) if you press it without typing something first, it changes the color of the word under the cursor) 14:38:35 Urk... must go. BBL. 14:38:52 virl: the VM is fine. I'm fixing the bugs as I go. I've got a little interactive thing going. it does dict search, or number parsing. (currently iirc I have a bug that it can't do both) 14:39:17 madwork: not sure how stuff like that would work with tokenized source 14:39:26 and I need to implement a dictionary, hell I hate my lazyness sometimes 14:39:46 yeah, I wrote a sort of cross-compiler in herkforth for fovium 14:39:55 it spits out compiled code for the VM, and a dictionary 14:40:16 and I have it compiling code for a little interpreter that reads input and searches the dict 14:40:34 9999 14:42:00 I wrote the basic sort of: : quit bl word find if execute quit ; then >number ; 14:42:11 it works in one vm implementation, but not the other 14:42:14 not sure why yet 14:43:29 it's great having two implementations, because then I know where to look 14:43:41 (ie I know if it's in my code, or in the VM 14:44:05 well, I gotta go cook, or at least see how long it takes to cook 14:49:21 --- join: OrngeTide (i=orange@rm-f.net) joined #forth 15:09:55 ok, squash in the oven 15:10:25 * Ray_work reading up where I left off... 15:11:01 JasonWoof: you want a neat find feature in colorforth, when no one else has needed one because it's so small that you can know it all, then write it :) 15:11:35 it's young enough that such tools havn't even been considered 15:12:11 --- quit: neceve ("Leaving") 15:12:49 but why is it so young? 15:13:16 I started from scratch, having never written asm or an OS before 15:13:29 and in two years I had something much more advanced and user-friendly 15:14:51 chuck has decades of experience on me, and now there's about... what 8 serious active developers 15:15:13 probably just different interests 15:15:21 back 15:15:26 I want to build a system bigger than I can keep in my head all the time 15:15:37 JasonWoof, yea I agree about the smart delimiters & tokenized source. 15:15:55 madgarden: I just don't know how it'd work. I can certainly add to the number parser 15:16:02 eg so 'a resolves to 97 15:16:17 Hmm. 15:16:21 same way I did hex numbers: $10 is 16 15:16:46 What does the source then look like for 'a afterwords? 97? 15:16:58 source looks just as you typed it 15:17:09 but the CFA/value field in the dict contains 97 15:17:30 the name field in the dict contains 'a 15:17:38 Interesting. 15:17:47 that's how I handle numbers now 15:17:56 Well then, why wouldn't foo: work? 15:18:20 I don't get it 15:18:30 : foo bar ; 15:18:48 in herkforth it's displayed without the ":", and with "foo" in red 15:19:18 the color bits in that "foo" token tell the compiler to start a new definition (set the CFA field to HERE) and the editor to display it in red 15:19:40 I'll probably make a colorless display mode where the editor would actually display it as ": foo" but that comes later 15:20:23 : def : ; 15:20:25 def foo 15:20:27 What happens? 15:20:47 What happens where? Herkforth? 15:20:53 Yea. 15:20:58 With colour and so forth. 15:23:03 you can't insert : 15:23:15 it's an editor key that does something when you press it 15:23:42 like ^C or something 15:23:51 Hmm. 15:23:58 Gotcha. 15:23:59 Quartus: I'm describing herkforth 15:24:14 you type "def" and those letters appear in the input line 15:24:15 JasonWoof, yes. 15:24:46 then you press ":" and "def" is inserted into the source in red. since it's red it starts it's own line 15:24:49 So there's no way to use the equivalent of : inside a definition? 15:25:07 no 15:25:13 you can't make defining words 15:25:18 Yikes. 15:25:24 but you can make words which compile definitions onto words 15:25:41 so instead of: : foo create does> bar ; 15:25:46 Colour forths are all about the editor, really, aren't they? 15:25:59 you write: : foo postpone bar ; \ pseudo code 15:26:08 : baz [ foo 15:26:30 it's hard to generalize about colored forths, since there's only a few 15:26:56 but for me the tokenized source thing is there to make the compiler simple, and to make it easy to make a fully featured editor 15:27:38 I was partially guessing that it would be good, based on the principle that information is useful to the extent that it is accessible (linked from other stuff) 15:27:40 Sounds like it forces you to make compromises in the language in order to fit the editor. 15:27:44 tokenized source is all links 15:28:13 Quartus: yeah, I know it seems that way, it's a few more keystrokes, but it doesn't take up another character on the screen 15:28:26 it does force RPN order though 15:28:35 personally, I like it 15:28:59 --- join: crc (i=crc@pool-70-20-247-78.phil.east.verizon.net) joined #forth 15:29:03 when you see: : baz [ foo (which in color is qust "baz foo" with baz in red, foo in yellow) 15:29:22 you know that you're defining a word named "baz" and presume that "foo" gives it a definition 15:29:43 thus the structure of what's going on is explicit 15:30:27 in the case of defining words, I don't think herkforth is worse off 15:30:45 there are some cases where a text-parsing forth would make things easier 15:30:54 but I haven't actually run into any 15:31:26 I'm thinking of a case where you'd want to write a custom parser 15:31:43 so you could enter info in an easy format and forth could parse it 15:31:46 like ABC or something 15:32:12 JasonWoof, I use my text-parsing Forth to make client RPC calls a Forth server. 15:32:24 Forth is perfectly suited for it. 15:32:44 RPC scares me 15:32:57 It had to be done! :) 15:33:02 XML scares me more. :P 15:33:13 xml-rpc scares me most! 15:33:14 Rather, just annoys me with its over enbloatification. 15:34:04 Here's an example of a Forthy RPC call: foobar .s clear 15:34:45 Sure beats 20 lines of XML-RPC/SOAP etc. 15:35:12 Anyway, I imagine it would be a tad harder in a coloured Forth, unless you passed ANSI graphics codes along as well. ;) 15:42:56 --- nick: nanstm -> Raystm2 15:48:02 hmmm 15:50:12 thing I don't like about rpc, is that it seems like the model for how things work totally ignores security 15:50:51 generally (with the obvious exception of ssh) servers don't just execute whatever you ask for 15:52:25 but anyway, yes there's another area where there'd be extra overhead in herkforth: if you want a string of source words to be available in some form, rather than interpreted 15:52:38 although, if you just want text... herkforth supports text 15:53:07 you just have to name it 15:53:15 type mystr" 15:53:24 then enter the text: foobar .s clear 15:53:28 15:53:54 now you have a constant named "mystr" which points to the counted string "foobar .s clear" 15:54:12 and you can do: mystr rpc-call 15:54:13 or whatever 15:55:11 I do eventually plan to support data objects (similar to the way strings are handled) that can contain things like source tokens 15:55:23 eg I might set something up for branch tables and lookup tables 15:55:43 so you can actually edit it directly as a table, instead of editing forth code that compiles a table 15:55:53 just as I have done with strings 15:56:07 in herkforth you codn't parse and compile strings. You use the strings right where they are 16:03:14 You have the option of doing that in Standard Forth too -- though of course they're parsed and compiled. : mystr s" foobar s. clear" ; 16:09:38 JasonWoof, I don't have to worry about security so much as it's an internal test environment that I wrote the RPC solution for. 16:10:07 what's it mean when you declare a function "static" in c? 16:10:18 eg: static inline int foo(){...} 16:10:30 It's not visible outside of the scope of the file it's defined in. 16:10:45 ie. private 16:11:27 Quartus: yes, I know. I never liked inline strings like that in forth. they are annoying to implement, and I always wished I could just use the string where it is instead of putting effort into moving it someplace. 16:23:08 well, I'm off to potluck. bbl 17:14:37 --- join: aum (n=aum@60-234-156-82.bitstream.orcon.net.nz) joined #forth 18:09:00 In truth I found them very simple to implement. 18:11:56 --- join: rrDog (n=stevia@67-136-98-247.dsl2.kgm.az.frontiernet.net) joined #forth 18:12:11 --- part: rrDog left #forth 18:37:31 looks like palm is singing its swan song 18:37:45 Quartus: you porting quartus forth to pocketpc? 18:56:12 back 19:15:05 --- quit: tathi ("leaving") 19:17:02 --- quit: OrngeTide ("going home") 19:20:50 Hi sproingie. No immediate plans for that. 19:21:31 Palm is floating a trial balloon of one phone to Windows Mobile, sometime next year. The Palm OS is produced by a separate company. I'm not forecasting the death of anybody or anything just yet. :) 19:22:22 one phone ... the treo's a pretty big deal 19:22:54 I've never used a Windows Mobile phone; I don't know how they compare. 19:23:17 And yes, it's one phone, one carrier. 19:23:22 doesn't look like ACCESS has any plans to abandon palmos tho 19:23:34 Right. 19:23:40 --- join: amca (n=plump@as-bri-4-1-69.ozonline.com.au) joined #forth 19:24:05 i had an opportunity to help out my gf's stepfather with his dell axim running pocketpc 19:24:16 it's all the annoyances of windows on a PC, writ small 19:24:27 :) 19:24:57 I don't think much of pocketpc, having had to use it extensively for about two years. It's ugly to code for, too. 19:25:09 he needed to move some maps from the onboard ram to the flash card. i had to use "cut" and "paste" because i couldn't find an easy file manager 19:25:10 Ok, I've just added a little demo animation to the Quartus Forth page: http://quartus.net/forth 19:25:15 and it wouldn't let me move maps that were "open" 19:25:21 even though there was no map app running 19:25:43 sproingie, that just scratches the surface. Maybe if you just use it as a phone, it's ok -- I can't say, I haven't used Windows Mobile, and I don't know how they're going to tune it for the Verizon Treo 670. 19:25:54 soon as i saw that, i realized microsoft really has no idea what a mobile device is, they're just treating it like a shrunk PC 19:26:23 but i guess enough people can get desensitized to the pain that they'll tolerate it and continue to buy it 19:26:37 sproingie, the market speaks pretty loudly when something sucks. We'll have to wait and see. 19:27:54 I put up a side-by-side of the same app in Quartus Forth and C, too. 19:29:02 not entirely fair tho, you include resources on the C side that the forth version might add too 19:29:05 ahh, there's a good example of what I was talking about earlier 19:29:10 the source alone is enough 19:29:25 sproingie, the resources are automatically provided by Quartus Forth in this case. 19:29:26 I was trying to think of a good example of when it would be useful to be able to write parsing words 19:29:37 I just saw some example code that lets you type an IP address into the source 19:29:53 it's quite simple to parse and turn into a 32-bit value 19:30:44 crc's now network client code 19:31:02 you can do this: server: 23.52.234.82 6667 19:31:04 not sure how much of a parsing word that would need to be unless you're using the source code for config data 19:31:29 JasonWoof, forward-parsing is a good thing. Were you looking to explain that to somebody, or did you have a contrasting opinion? 19:31:31 he is doing just that 19:31:59 which i suppose is all right assuming users won't add data like server 1.2.3.4 bye 19:32:17 or just add a rogue space and make the stack all lopsided 19:32:40 earlier we were discussing how you can't do this, and I was saying that I had not yet run accross an example of something with much (if any) forward parsing would make easier/better than the way I do it in herkforth 19:33:09 factor uses parsing words all over the place, most of which would have use in forth as well 19:33:21 sproingie: forth generally has the attitude of "garbage in, garbage out" 19:33:26 the FFI looks like C declarations, thanks to smart parsing 19:35:15 sorry JasonWoof, I must have missed that part of the conversation. 19:35:31 >>> Download Oracle. Oracle is freeware. Enjoy! 19:35:40 damn, larry ellison has really mellowed out! 19:35:43 Heh. 19:37:44 Somehow I doubt my 8-ball app is causing any intellectual-property conflicts. :) 19:32:11 How's the animation look? 19:35:44 looks pretty cool 19:35:58 Clear enough, you think? 19:37:22 looks very clear 19:38:24 I 19:38:36 I'm glad to hear that. It was no fun to make! 19:57:36 I just cleaned it up to remove the "Simulator" and windows title bar. 19:59:06 --- join: snoopy_16 (i=snoopy_1@dsl-084-058-132-012.arcor-ip.net) joined #forth 20:02:04 Quartus: nice demo 20:02:21 Quartus: wish there was a little time to read that last line in the source 20:02:39 do you have to create a resource too? or is that really it? 20:03:11 --- join: YoyoFreeBSD_ (n=yoyofree@222.90.3.241) joined #forth 20:03:42 I'll extend that. That's really it. 20:03:55 very cool 20:04:21 Another second enough? 20:05:35 For the last line, I mean? 20:06:04 what's q4hw do? 20:06:12 It's a creator-id. Would another second be enough time? 20:06:37 yeah, should be. 20:06:52 oh! 20:07:32 like which company developed the software 20:07:51 well, creator-ids are actually unique per app. 20:08:26 oh 20:08:40 You get them from Palm on a special web page. 20:08:42 They're free. 20:08:49 yeah 20:08:52 apple did the same thing 20:09:14 I got one for my fractal generator 20:09:22 fraK (with an accent on the a) 20:09:37 Yes -- the Palm internals are modeled on the old Apple setup. 20:11:17 well, maybe the f was capitalized... 20:12:19 iirc you only needed one if you wanted to have files that opened in your app by default 20:12:36 In the Palm each app needs a unique one. You can request one, if it's not taken, or of course just use a random one. 20:12:42 A random *assigned* one. 20:13:05 yeah. no fun if two people accidently use the same one 20:14:31 Then when you delete one, they both vanish. 20:14:36 Along with all owned data. 20:14:43 Ok, I lengthened the pause for the last line. 20:15:32 Hey, Don Adams died today. Maxwell Smart. 20:15:46 --- quit: Snoopy42 (Read error: 110 (Connection timed out)) 20:16:09 --- nick: snoopy_16 -> Snoopy42 20:18:39 very nice 20:18:48 what software did you use to make the animation? 20:19:47 I captured all the screens by hand and copied them into Paint Shop Pro Animator. 20:20:00 Set the timings, created the text effects. 20:20:08 Resized. 20:20:09 Voila. 20:20:09 ok 20:20:37 It occurs to me there is probably a product out there somewhere that'll happily capture the window as I type, and create the animation, but I wasn't feeling up to the search. 20:21:05 I've been sorta interested in trying to make an animtion with the gimp or maybe mplayer 20:21:29 probably not worth your time to find it 20:21:45 --- part: amca left #forth 20:22:11 but I don't have any use for animations 20:22:20 and I've got enough for-fun projects 20:22:31 This is all about customer education. 20:22:36 I hope! :) 20:23:41 I took the border off of the table around the animation -- better or worse? 20:25:11 better, but does call less attention to itself, which might actually not be what you want 20:25:34 good point. 20:25:41 i'd put it to the left of the very first paragraph 20:25:50 I'll try it. 20:25:50 then you can leave off the border 20:26:03 First paragraph? Since 1997...? 20:26:38 yep, animation on the left, blurb and testimonial on the right. or perhaps vice versa 20:28:09 or possibly to the left of the testimonial with the paragraph spanning both. basically, move up :) 20:28:18 s/paragraph/blurb/ 20:31:54 Ok. Have a look. 20:42:42 worse 20:43:18 (re no border) 20:43:55 border's back on. 20:46:46 I appreciate the feedback, guys! 20:48:24 I like your hello, world! side by side comparison with C 20:48:41 one of my current projects is to port a palm game written in C to sdl 20:48:51 the event and callback stuff is pretty confusing 20:49:00 totally verbose and rediculous 20:50:46 JasonWoof, I sympathize. If you need anything figured out, let me know. 20:52:20 thanks 20:52:44 I haven't gotten to dealing with the palm stuff yet 20:53:01 I just sorted all his functions into two piles, palm-specific, and generic 20:53:27 The callback stuff is completely unnecessary, in fact. 20:53:34 Well, with a couple of minor exceptions. 20:53:41 and I made a file of all the common Palm types like Point and UInt8 or whatever 20:54:29 I've spent most of my time fiddling around with making widgets and stuff 20:54:32 it's been fun 20:54:54 Fun is good. 20:55:11 never done my own widgets before (or much with widgets period) so it's taking me a while to decide how it should work 20:55:48 I think I should fill the rest of the column under the Forth "Hello World" with lyrics to popular songs or something. :) 20:55:57 hehe 20:55:59 --- join: LOOP-HOG (n=chatzill@sub22-119.member.dsl-only.net) joined #forth 20:56:33 join #forthmud 20:56:43 * JasonWoof points and laughs 20:56:45 OR ELSE 20:56:47 join #forthspud 20:57:04 --- quit: sproingie ("Chatzilla 0.9.68.5 [Firefox 1.04/20050922]") 20:57:18 It's for a very low power forth processor that runs off of the electricity in a common potato, like a potato clock 20:57:53 there's no electricity in a potatoe silly 20:58:14 never heard of a potato clock? 20:58:19 yeah 20:58:31 it's not like there's electricity hanging out in the potatoe 20:58:42 Well LOOP-HOG has a french-fry wristwatch. 20:58:42 you get electricity from the metals on the things you stick into the potatoe 20:58:59 reacting with something in the potatoe 20:59:21 * JasonWoof goes off to school to learn to spell potato 21:00:26 JasonWoof, website guy, know anything about using Forth for CGI? 21:00:38 LOOP-HOG, I've done that. 21:00:54 Using a server-side exec, and Gforth. 21:00:55 How did you do that? 21:01:13 Simple cgi. The "Today is" at the bottom of http://quartus.net is a Forth cgi. 21:01:14 what is a server-side exec? 21:01:51 Apache -- looks like this, in the HTML: 21:02:00 Roman Numberals 21:02:20 Numerals. Yeah -- that's what date.cgi does. 21:02:41 I'd like to be able to write Forth CGI scripts 21:02:47 Not too hard. 21:02:52 LOOP-HOG: you can do cgi in gforth the same way you can do it with anything else (C, perl, etc) 21:03:06 That is what I would like to try next 21:03:06 you just have to activate CGI for the directory, or files with certain extentions or whatever 21:03:21 start your files with: #!/usr/bin/gforth or whatever 21:03:30 and make sure you've set them to be executable 21:03:37 chmod +x foo.f 21:04:02 #! /usr/local/bin/gforth 21:04:07 Note the space after #! 21:04:13 space 21:04:51 #! is a noop word. 21:04:56 In Gforth, that is. 21:05:28 I think it's aliased to \ . 21:05:58 comment 21:06:39 So it is. : #! POSTPONE \ ; IMMEDIATE 21:06:39 You'll probably have to grab some env variables if you want to do anything interactive 21:07:00 that's the next question 21:07:09 what 21:07:10 ? 21:07:24 getenv. 21:07:28 what I would have to do to anything interactive 21:07:36 getenv is a Forth word? 21:07:40 Gforth. 21:07:49 Gforth word 21:08:15 Yes. 21:09:00 first just make a "Hello, world!" sort of script 21:09:06 then worry about accessing and decoding input 21:09:08 Maybe what I need is a sample script in Gforth to get me started too 21:09:24 Then I will create a "Hello, world!" script like you say 21:11:13 Brace yourself: 21:11:13 #! /usr/bin/gforth 21:11:13 warnings off 21:11:13 .( Content-Type: text/html) cr cr 21:11:13 .( Hello World!) 21:11:14 flush bye 21:11:49 Actually that's not quite right, I've got the body surrounded by the head, but you should be able to untwist it. 21:12:03 are these env variables also the means to interface with modules such as Paypal and Authorize.net, and FedEX? 21:12:12 LOOP-HOG, walk before you run. 21:12:14 I want to save this session on my HardDrive 21:12:38 Crawl even 21:12:40 Wriggle 21:12:41 s" QUERY_STRING" getenv type cr pulls in the query string, for instance. 21:13:57 probably there are some meager forth docs on the words that I need to use, and then I need to find the right web pages. 21:13:59 LOOP-HOG: the env vars are part of the CGI interface between apache and gforth 21:15:06 LOOP-HOG: you get most of your info from env vars, and sometimes (eg for POSTs) some on STDIN 21:15:49 LOOP-HOG: the only word you need to learn is GETENV 21:15:51 I don't know STDIN 21:15:59 stdin isn't a word 21:16:05 it's just what input is called 21:16:14 read it with KEY 21:16:21 I see 21:16:32 or maybe you have to use READ or some such, I forget 21:16:38 I'll get the CGI spec for you, one sec 21:16:50 thanks 21:17:14 warnings off and flush bye are your friend. 21:17:51 here's the apache HOWTO for making cgi programs: http://httpd.apache.org/docs/2.0/howto/cgi.html 21:18:38 I started making a gforth cgi thing once 21:18:45 but I can't find it. probably deleted it 21:19:42 I'll put it into my links 21:20:30 add the query string thing Quartus suggested to your script after you get it running: s" QUERY_STRING" getenv type cr 21:20:54 QUERY_STRING is the bit after the ? in the url? 21:21:29 It is. 21:25:19 Maybe learn how to interface with Sendmail and do a few forms 21:25:34 How do I interface to Sendmail 21:25:59 how do I interface to Authorize.net? 21:26:08 Maybe another day? 21:26:34 How do I inteface to the alien computer aboard the spaceship that the Nostromo found? 21:34:14 anything else you can offer would be appreciated, and thanks for the info. 21:34:52 Start small and work up, LOOP-HOG. 21:35:24 I'm not George Jetson 21:37:55 No, he made more sense. What are you talking about? 21:38:41 sendmail is a program on the server that you call 21:38:50 I mean I am not so technically advanced that I can get out of my flying car, and then press a button, and then the nanobots which the flying car is constructed from collapse into the 21:39:15 And I was supposed to infer that from "I'm not George Jetson"? 21:39:16 LOOP-HOG: have you gotten the hello world thing working? 21:39:18 holes of the light composite material that they form, and into the size and shape of a breifcase 21:39:30 so that he can pick it up and walk away with it 21:39:34 that's all 21:39:48 Oooook. 21:40:15 :^) 21:46:28 --- quit: aum () 21:46:58 I think I'll go work on that a little bit 21:47:01 --- quit: LOOP-HOG ("ChatZilla 0.9.61 [Mozilla rv:1.7.1/20040707]") 21:48:09 Is the air thin in here or something? Did I miss where funny was replaced by incoherent? 22:29:44 --- quit: virl (Remote closed the connection) 22:42:18 --- quit: JasonWoof ("off to bed") 23:59:59 --- log: ended forth/05.09.26