00:00:00 --- log: started forth/06.11.02 00:27:07 --- quit: slava () 00:48:00 --- part: EdLin left #forth 01:42:07 --- log: started forth/06.11.02 01:42:07 --- join: clog (n=nef@bespin.org) joined #forth 01:42:07 --- topic: 'Welcome to #forth. We discuss the Forth programming language and a variety of technical subjects. Introduction: http://tinyurl.com/kvawv | Starting Forth: http://tinyurl.com/rm7pq | Thinking Forth: http://tinyurl.com/nsy4j | Gforth compiler: http://tinyurl.com/s8uho | ANS/ISO Forth Standard doc: http://tinyurl.com/nx7dx | http://quartus.net/search | Paste: http://forth.pastebin.ca' 01:42:07 --- topic: set by Quartus on [Tue Oct 24 17:49:49 2006] 01:42:07 --- names: list (clog warpzero @JasonWoof Teratogen I440r__ @I440r virl virsys cmeme @crc ccfg) 01:42:16 --- quit: virl ("Verlassend") 01:42:17 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #forth 01:43:01 --- join: segher (n=segher@dslb-084-056-201-031.pools.arcor-ip.net) joined #forth 01:43:17 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 02:36:11 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 02:45:34 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 02:46:09 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #forth 04:08:45 --- join: segher_ (n=segher@dslb-084-056-198-087.pools.arcor-ip.net) joined #forth 04:16:16 --- quit: segher (Read error: 110 (Connection timed out)) 04:37:18 --- join: Crest (n=crest@p548977C7.dip.t-dialin.net) joined #forth 04:59:59 --- join: zpg (n=user@user-514d7663.l2.c2.dsl.pol.co.uk) joined #forth 05:54:39 --- log: started forth/06.11.02 05:54:39 --- join: clog (n=nef@bespin.org) joined #forth 05:54:39 --- topic: 'Welcome to #forth. We discuss the Forth programming language and a variety of technical subjects. Introduction: http://tinyurl.com/kvawv | Starting Forth: http://tinyurl.com/rm7pq | Thinking Forth: http://tinyurl.com/nsy4j | Gforth compiler: http://tinyurl.com/s8uho | ANS/ISO Forth Standard doc: http://tinyurl.com/nx7dx | http://quartus.net/search | Paste: http://forth.pastebin.ca' 05:54:39 --- topic: set by Quartus on [Tue Oct 24 17:49:49 2006] 05:54:39 --- names: list (clog virl Ray_work @JasonWoof segher_ Cheery timlarson warpzero virsys ccfg @crc) 05:54:45 Good morning. 05:54:51 --- join: nighty (n=nighty@66-163-28-100.ip.tor.radiant.net) joined #forth 05:54:57 --- join: zpg (n=user@user-514d7663.l2.c2.dsl.pol.co.uk) joined #forth 05:55:02 --- join: nighty_ (n=nighty@sushi.rural-networks.com) joined #forth 05:55:10 --- join: arke (n=Chris@pD9E0724B.dip.t-dialin.net) joined #forth 05:55:12 --- join: neceve (n=claudiu@unaffiliated/neceve) joined #forth 05:55:32 --- join: I440r__ (n=mark4@65.244.197.34) joined #forth 05:55:51 --- join: larsb (i=lars@1-1-14-10a.kt.gbg.bostream.se) joined #forth 05:55:53 --- join: k4jcw (n=jcw@adsl-065-006-151-062.sip.asm.bellsouth.net) joined #forth 05:57:05 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 05:58:02 --- join: Crest (n=crest@p548977C7.dip.t-dialin.net) joined #forth 06:46:55 --- join: Snoopy42 (i=snoopy_1@dslb-084-058-119-091.pools.arcor-ip.net) joined #forth 06:51:29 --- join: ohub (n=oherrala@sikw1.oulu.fi) joined #forth 06:53:39 --- join: lukeparrish (n=docl@74-36-211-202.dr01.hmdl.id.frontiernet.net) joined #forth 07:02:23 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 07:04:43 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #forth 07:11:03 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-178-099.pools.arcor-ip.net) joined #forth 07:12:58 --- join: madwork (n=foo@204.138.110.15) joined #forth 07:16:17 --- quit: Crest ("Leaving") 07:17:49 --- quit: I440r__ (Client Quit) 07:18:33 --- join: saon (i=1000@unaffiliated/saon) joined #forth 07:19:30 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 07:19:36 --- nick: snoopy_1711 -> Snoopy42 07:51:02 --- join: I440r (n=mark4@67.135.84.40) joined #forth 09:22:05 --- part: zpg left #forth 09:22:08 --- join: zpg (n=user@user-514d7663.l2.c2.dsl.pol.co.uk) joined #forth 09:22:12 hoorah, the palm keyboard is here 09:27:23 --- join: jackokring (n=jackokri@static-195-248-105-144.adsl.hotchilli.net) joined #forth 09:29:12 zpg, mine doesn't get here till tomorrow. :( 09:29:57 I was just tracking it. Took the order fullfilment dept 3 days to get the order out. 09:30:40 Someone was talking about doing a Palm irc client. 09:30:59 I think it was erider. 09:31:00 --- part: forther left #forth 09:37:54 i wanna do an irc client for my nintendo ds :) 10:12:14 Do it. 10:13:21 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 10:13:42 hi 10:14:57 hi snowrichard 10:17:42 hey guys 10:19:59 i'm not sure i could stomach portable IRC 10:23:00 you guys doing ok? 10:27:09 i'm well thanks, yourself snowrichard? 10:28:15 my disabled veterans license plates came in and I put them on the car so its legal. I only had 4 more days before the old plates expired. 10:28:58 your day sounds infinitely more productive than mine, then. 10:32:28 hehe, 10:33:11 snowrichard: I had forgotten you are a disabled vet. What branch? 10:35:44 --- join: forther (n=forther@h-66-166-144-210.snvacaid.covad.net) joined #forth 10:38:18 I was in the Navy 10:38:28 MOS? 10:38:49 DP2, data processing tech 10:39:24 I was Navy as well. Never Again Volenteer Yourself NAVY. 10:40:53 I did several things. I was mostly a Signalman and an Underway Replenishment Specialist. 10:42:13 I watched the replenishment ops one time, pretty interesting. They pumped a lot of JP5, and the groceries. 10:42:38 I had to qualify in two deck and two fireman ratings. Boats'wain, Signal, Machinestmate, and Electrician. 10:42:40 hehe ya. 10:43:12 --- join: Quartus (n=trailer@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 10:43:12 --- mode: ChanServ set +o Quartus 10:43:27 I think it is one of the most dangerous jobs in the world. 10:45:24 I managed to get a concussion in the computer room 10:46:21 they were doing propulsion tests. a flank reverse, then hard right rudder. 10:47:10 a heads up on the 1MC would have been nice :) 10:48:05 Yikes. That's not your disability tho, right? 10:48:12 yep 10:48:21 they put me in the hospital, diagnosed me as schizophrenic 10:48:35 NOoooooo. 10:48:40 no kiddng. 10:48:43 there were no witnesses to the accident 10:48:48 hmm. 10:49:08 How long were you in? 10:49:43 Well, technically, if your schizophrenic, can't you be your own witness? 10:49:45 4 1/2 years. I was in the hospital for six months, then a year in the transient barracks while they were deciding on how to discharge me. 10:50:45 ya see, that's why i didn't get my hernia operation while in. I instead took 3days bread+water in the brig and got discharged immediately, rather then convoless like that. 10:51:00 Thats rediculous. 10:51:25 But on the other hand, they have to be absolutely sure your ok, or they won't let you out so... 10:51:31 I can see why that happens. 10:52:39 it was an administrative discharge hearing that took so long. I had told a doctor I was gay while I was in the psych ward. 10:52:54 Good for you. 10:53:10 Tell 'em, *uck 'em. 10:54:13 I don't have anything against the military, infact I loved my term and sometimes wish i was still in, but I don't like the way they treated some people, especially Queers and women in general. 10:55:29 since then I've been married and divorced twice. The second marriage lasted 13 years. 10:55:37 :) 10:55:55 kids? 10:55:59 1 boy 10:56:07 my son is raising him. 10:56:08 cool. age? 10:56:12 16 10:56:31 my brother is raising my son. He's not raising himself :) 10:56:39 got it. :) 10:56:44 cool. 10:57:11 yeah I read that after I typed it. 10:57:26 its no wonder I can' 10:57:28 t 10:57:36 get through a job interview 11:01:53 need some coffee 11:02:52 --- quit: jackokring (Read error: 113 (No route to host)) 11:04:49 why would they put you in the brig? you don't have to answer that 11:05:36 --- join: jackokring (n=jackokri@static-195-248-105-144.adsl.hotchilli.net) joined #forth 11:12:54 --- quit: snowrichard ("Leaving") 11:18:14 I'd answer that question but you disappeard. 11:18:29 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 11:18:50 wb :) 11:19:04 I'll answer that question. 11:21:44 The I refused the Navy's medical recommendation, soley on the fact that I didn't want to convoless for 6 mo's to a year for an operation that I should have been back to work after 2 week. So, in an effort to apeas me, they offered me 3days bread + water and an immediate OTH discharge if I'd sign a waver for the medical issue. I did that. 11:22:20 6 mo's later my OTH was upgraded to General. 11:23:14 what's OTH stand for? 11:23:54 Other Than Honerable. 11:24:00 Honorable even 11:24:11 well they gave the General under honorable conditions after the hearing. 11:24:24 Ya. cool. 11:25:23 lukeparrish: It's not Dishonorable, but you don't get your benefits, then after 6 months or so, if you don't get into any Federal trouble, it automatically upgrades to General. 11:25:36 ah, cool 11:25:54 so you have to just be careful to stay out of trouble 11:26:11 Ya, not a problem, I'm not a trouble maker. 11:27:55 --- quit: jackokring (Read error: 110 (Connection timed out)) 11:29:55 * Ray_work reading Quartus Forth manual. Again. 11:29:58 --- quit: Quartus (kornbluth.freenode.net irc.freenode.net) 11:29:58 --- quit: madwork (kornbluth.freenode.net irc.freenode.net) 11:32:51 --- join: Quartus (n=trailer@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 11:32:52 --- mode: ChanServ set +o Quartus 11:35:29 --- join: erider (n=erider@unaffiliated/erider) joined #forth 11:44:42 --- quit: snowrichard ("Leaving") 12:00:05 hi all 12:00:18 hi 12:16:47 hi 12:16:58 * Ray_work reading QF manual. 12:17:05 Easy reading I hope. :) 12:21:09 I rushed thru it last weekend. :) Ya, it's not bad. Only complaints I would have would be about formating and not content. 12:22:28 What would you format differently? 12:23:48 oh it's a tinsy tinsy complaint about making sure the chapter headings didn't appear on the bottom of the previous page, and that questions and answers appear on the same pages together. Nothing really to worry about. 12:24:09 I realize this is a living document. 12:24:21 Formating will be dynamic at best. 12:24:23 I was struggling along with an early Open Office at the time, working with a master document. At some point I gave up the fight. :) But I do revisit it. 12:24:32 :) 12:31:49 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 12:41:48 anybody well versed in thermo dynamics 12:42:54 ? 12:43:13 what's the question? 12:43:28 well I have a source of heat 12:43:39 and a thermal fuse 12:43:48 in a compound 12:44:11 I know the value at which the thermal fuse will blow (100 degree C) 12:44:41 and the thermal conductance of the compound ( 4.45 exp 4) 12:45:12 the unit being (cal.cm)/(sec.cm2.c) 12:45:32 I want to find the value of the source of heat that will make the fuse blow 12:46:46 compound is spread like this: 10 cm (W) x 30 cm (L) x 0.5 cm (H) 12:46:51 the fuse is blown by differential? or by absolute temperature? 12:47:00 absolute 12:47:45 I would like the formula to find this Source Temperature 12:48:31 hmm. I'm not really well-versed, but I'll see what I can find on the net. 12:49:14 ok 12:49:40 Maybe I can find some thermo dynamics or physics channel 12:49:45 and ask these guys :) 12:50:14 :) 12:51:00 do you have something physical you're working on? 12:51:28 yes 12:51:33 cool 12:51:34 I know I could measure 12:51:43 but this is not all there is about it 12:52:07 I'm sure a decent physics text would have the formula you're looking for 12:52:17 not sure what it's called or anything though 12:53:31 a calorie heats one gram of water by one degree centigrade. other materials have other thermal densities though. 12:55:56 at least, I think it's different (the ratio of calories per gram per degree) 12:56:38 the compound is acting like a heat-sink. but when it does finally heat up to 100 degrees, it will blow the fuse. 12:57:57 if it is perfectly insulated, it will only take a 100 (or maybe 101) degree heat source to eventually break the fuse. 13:10:28 yeah 13:10:35 well that does not help very much :) 13:10:37 but thanks :) 13:10:58 http://en.wikipedia.org/wiki/Thermal_resistance_in_electronics 13:11:06 http://en.wikipedia.org/wiki/Thermal_conductance 13:11:20 but that does not really help for now 13:11:40 because we are working backward 13:11:59 --- join: Quartus_ (n=Quartus_@209.167.5.2) joined #forth 13:11:59 --- mode: ChanServ set +o Quartus_ 13:15:44 hi Quartus 13:23:56 --- join: Raystm2 (n=Raystm2@199.227.227.26) joined #forth 13:24:13 I'm testing a gaim 13:25:40 hows the test going. 13:25:48 okay, I suppose. 13:26:27 well, what about everybody else here? Don't you think they would rather you did such tests outside of this formal chat. 13:26:44 Ray, you talking to yourself? 13:26:56 Oh, man, I hadn't considered that at all. 13:27:02 * Raystm2 is sorry to all. 13:27:09 Hi lukeparrish 13:27:16 hi l 13:27:24 howdy 13:27:32 ya. 13:28:07 i'm a tad schizo today. I caught it from snowrichard I think. 13:28:15 hehe 13:28:22 be nice Raymond. 13:28:35 yes sir 13:28:49 which one of you's the original? 13:29:19 I saw that Star Trek.... 13:29:43 oh yeah, that's where I saw it. now I remember :) 13:30:39 anybody know a good linux calendar program? 13:30:40 hey 13:30:42 The Undiscovered Country, I believe. 13:30:55 hmm. now that I think of it, was there any proof that the one they beamed up was the real captain kirk? 13:31:07 Ray_work: one of the movies, right? 13:31:07 I think I need to admit that my palm pilot is broken 13:31:35 hi Quartus 13:32:00 JasonWoof: :( 13:32:12 I want something that can give me today and this week very quickly, and which can execute an external command when I have things coming up 13:32:14 wa happend 13:32:30 the touch screen goes out of whack really fast 13:32:45 and you can't get into the calibrator without clicking at the top of the screen 13:32:47 shame. 13:32:50 which after about a week is impossible 13:32:59 since it thinks you're clicking about 2cm below where you really are 13:33:12 oh alignment issue? 13:33:24 well, maybe 1cm 13:33:25 isnt there an alignment dealy onboard. 13:33:44 jason, massage the screen, it's probably just poorly distributed. 13:34:09 Quartus_: I heard you need to take the back of and work on one of the connectors 13:34:11 run your thumbs over it in circles. 13:34:23 * JasonWoof tries 13:34:49 jason, never heard of that. 13:35:21 palm V 13:35:39 right. Back doesn't come off. Glue. 13:35:41 a friend of mine said it happened to a bunch of those 13:35:44 right 13:35:51 http://www.inlibertyandfreedom.com/Flash/splishsplashbaby.swf 13:35:54 need a hair drier, and you have to be careful/lucky not to fry it 13:36:09 never heard of anybody taking it apart to address alignment. 13:36:24 the other problem is I have a serial cradle, and no serial port on either computer 13:36:48 there's a serial-usb adapter. 13:36:59 and the trouble with doing calendering on the computer is that I often have the sound off 13:37:34 also you can IR-sync. 13:46:13 holy crap, I didn't think of that 13:46:19 I think my laptop has ir 13:47:05 it's got an ambiguous shiny black spot with a little symbol next to it that looks like "r" 13:57:34 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 14:01:25 I use ir sync exclusively for the non-usb gadgets. 14:04:19 --- join: madwork (n=foo@204.138.110.15) joined #forth 14:15:40 --- join: vatic (n=chatzill@pool-162-84-178-20.ny5030.east.verizon.net) joined #forth 14:22:47 --- quit: neceve (Read error: 104 (Connection reset by peer)) 14:30:36 pretty quiet today... 14:35:44 quiet can be good... 14:39:36 --- quit: Quartus_ (Read error: 104 (Connection reset by peer)) 14:42:33 yes, it was supposed to rain today but it hasn't... 14:53:30 --- join: Kbomb (n=Kbomb@nc-71-0-176-161.dyn.embarqhsd.net) joined #forth 14:56:39 --- quit: Kbomb (Remote closed the connection) 14:59:05 --- join: Kbomb (n=Kbomb@nc-71-0-176-161.dyn.embarqhsd.net) joined #forth 15:00:26 --- join: Zarutian (n=Zarutian@194-144-84-110.du.xdsl.is) joined #forth 15:02:15 --- quit: Ray_work (Read error: 104 (Connection reset by peer)) 15:02:16 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 15:07:14 Hello from forth irc client 15:07:33 hello Kbomb 15:08:07 I like your client crc it is very cool! 15:09:27 crc you don't use a lot of words well you internal word syscall most be a work house :) 15:10:53 syscall calls stuff that is written into the linux kernel itself. 15:11:35 crc I very impressed by the ability to be able to talk to the outside world. this client is look erc for emacs 15:12:09 yeah, it is pretty cool :) 15:12:17 luke crc has a syscall word in his implementation 15:12:26 --- join: Raystm2 (n=NanRay@adsl-68-95-252-208.dsl.rcsntx.swbell.net) joined #forth 15:13:03 s/is look/it looks like 15:13:21 Raystm2 15:13:29 hi Raystm2 15:13:31 hi 15:13:55 hi ;) 15:14:01 luke have you used this client 15:14:09 * lukeparrish helped write the netclient :) 15:14:27 COOL! 15:14:31 Kbomb if you were asking me a question, I didn't join till after you asked. 15:14:50 Raystm2: he was just acknowledging your existence :) 15:14:55 * Kbomb is erider 15:14:56 OH. okay. 15:15:08 Oh hey erider :) 15:15:15 ahh, changed your nick. didn't realise that :) 15:15:30 * Kbomb is using the forth irc client 15:15:53 You are? That's great. How did you do it? Which one? 15:16:07 Retroforth's? 15:16:15 I'm using crc's 15:16:31 and its neat 15:16:32 RetroIRC 15:16:36 ya lukeparrish had something to do with that one too 15:16:40 . 15:16:48 RxIRC :) 15:16:57 tm 15:17:15 cool 15:18:02 crc if the syscall for write is 4 what is the 3? 15:18:23 read? 15:18:38 no 15:18:42 okay. 15:18:51 * Raystm2 goes to the projects page... 15:18:53 he has 3 4 syscall 15:19:22 Okay write is gonna wanna know where and howmany i think. 15:19:31 syscall for write should talk three arguments 15:20:04 s/talk/take 15:20:05 ya 15:20:46 * erider is loving it 15:21:21 Raystm2: there is not a lot of code either 15:21:44 oh hey it is RetroIRC after all. 15:21:53 ya, it was cool the first time I saw it. 15:22:38 the way it works, not everything goes on the stack. because of the kernel's expectations, a bunch of stuff has to be put in structs. 15:22:55 erider: look in netclient.f and you'll see the messier parts 15:23:44 That's where I am currently. :) 15:23:48 * erider has it open in emacs and is running the code from emacs :) 15:23:55 woah, cool :) 15:24:33 it runs like erc 15:24:55 I like it a lot 15:25:13 I want to learn how the code works 15:26:01 its easier to work in emacs so I don't have to use the rlwrap thingy 15:26:30 I can just type alt-p 15:27:29 How did you guys figure this stuff out? 15:27:44 Was there a model somewhere? 15:28:05 there was some stuff we looked at, written in assembler 15:28:10 what do you mean 15:28:19 * lukeparrish tries to remember what it was 15:28:39 some kind of an echo server 15:28:45 oh okay. 15:28:49 thanks. 15:28:50 we basically ported that functionality to retro 15:28:55 ya 15:28:58 neat :) 15:29:10 then crc used that to get an irc client working 15:29:13 * Kbomb is going to learn the code 15:29:39 hey crc should I like into section rather that loc? 15:29:51 s/like/look 15:30:13 oops than mierda 15:32:10 I think you'll understand better if you start with loc: 15:33:58 I need to look a the tutorial but crc tutorial doesn't talk about loc 15:35:07 read the source code and see if it makes sense to you. 15:35:45 erider: http://retroforth.net/handbook/ 15:35:59 the handbook has a section on loc:/;loc 15:36:06 I have already asked about the vector stuff but there are some things I trying to figure out 15:37:03 cool! I hope I can understand it 15:38:10 I see the you made the ^Acrlf the ASCII forms 13 10 15:43:33 --- join: Quartus_ (n=Quartus_@209.167.5.2) joined #forth 15:43:33 --- mode: ChanServ set +o Quartus_ 15:48:38 hi 16:38:18 --- quit: forther ("Download Gaim: http://gaim.sourceforge.net/") 16:47:17 hi 16:55:02 hi 16:55:17 --- quit: Kbomb (Read error: 110 (Connection timed out)) 16:56:21 hi erider 16:56:37 hi zpg any thing new 16:59:38 not too much, nope. yourself? 17:13:47 just learning 17:14:23 forth? 17:23:42 hey 17:35:23 hi Q 17:35:38 Hey hey. What's up[? 17:37:09 not too much, i finally collected the palm keyboard today and just doing some reading this evening. 17:37:22 Filling your mind with profane ideas? 17:41:02 quite 17:43:50 damn, i keep forgetting. is there a simple way to go s" hi" -> a counted representation? 17:45:21 place 17:46:19 To create a counted representation from a c-addr u string, you have to make a new copy of it somewhere. Allocate or allot the space, and then use place to copy in the counted representation. 17:46:53 I often use a place, variant that does the allot for me. 17:47:17 cool, yeah i though PLACE might be it, but had assumed it was in ANS 17:47:25 Nope. It's a trivial definition. 17:47:41 : place over >r rot over 1+ r> move c! ; 17:48:47 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #forth 17:50:29 : place, ( addr u -- addr ) here dup >r over chars allot place r> ; 17:50:37 just defined that, seems to work nicely 17:52:44 --- join: geneven (n=geneven@70-32-206-42.ontrca.adelphia.net) joined #forth 17:53:08 --- quit: geneven (Remote closed the connection) 17:53:13 and 17:53:13 : concat ( addr1 u1 addr2 u2 ) place, dup >r append r> ; 17:53:16 erm 17:53:32 stack comment is wrong, should hacve ( a1 u1 a2 u2 -- c-addr ) 17:53:45 --- join: geneven (n=geneven@70-32-206-42.ontrca.adelphia.net) joined #forth 17:53:55 zpg, you sure about that? 17:54:12 yes, works here 17:54:28 Not just the stack diagram, but the whole word. place, returns one address. Append expects two string-pairs. 17:54:46 no, append from COMUS expects a pair and a counted. 17:54:51 Ew. 17:54:59 : append 2DUP 2>R COUNT CHARS + SWAP CHARS MOVE 2R> C+! ; 17:55:00 i know 17:55:04 hence my PLACE question 17:55:17 nice to know i'm beginning to be able to solve some of these probs though 17:55:18 'comus' notwithstanding, an append that takes a string pair and a counted string both is an abomination. 17:55:23 i agree 17:55:51 I use an append that takes two pairs. 17:56:02 sounds far cleaner. 17:56:10 i'm still a little scared of strings in forth. 17:56:35 reading a paper that deals with backslang at the moment. "latin" -> "atinlay" etc. 17:56:39 They're very, very simple. The first step is realizing that they're not a special type. 17:56:45 * zpg nods 17:56:59 Most other languages treat them as some kind of special type. 17:57:05 i think i'm used to thinking of strings as either indexable arrays or atoms. as stack pairs they scare me a tad. 17:57:24 paradigm shift. 17:57:34 Think of the cell-pair on the stack as a single unit. 17:58:06 If you have lisp experience, relate it to a cons. A cons is one thing, but it has a car and a cdr. 17:58:34 Likewise a c-addr u string is one thing, a pair of cells on the stack, but it has an address and a length. 17:59:08 --- part: geneven left #forth 17:59:15 yep 17:59:36 i think the mixing of counted and pair is a key cause of confusion 17:59:44 i know they're two possible types 17:59:48 but it doesn't help 18:00:27 A string has an address, and a length. A counted string is just a particular storage format for that information. 18:00:59 Likewise, a zero-terminated string is another (inefficient) storage format for the same thing. 18:01:12 * zpg nods 18:01:16 yeah i'm with you 18:01:49 but (and this isn't a comment on forth, it's a comment on my thinking) i think of transforming latin -> atlinay as a complex process in forth. 18:02:04 i.e., searching for a character, splitting, appending the pre-split to the end, appending 'ay' 18:02:18 a useful exercise perhaps. 18:02:19 It isn't. Work at it for awhile. 18:02:55 shall do 18:07:03 is this ok for a definition? 18:07:15 : vowel? ( char -- flag ) dup >r [char] a = r@ [char] e = r@ [char] o = r@ [char] i = r> [char] u = or or or or ; 18:07:29 seems a bit messy 18:07:40 Does. 18:08:37 what would be better? 18:09:03 gn 18:09:40 night 18:09:52 --- quit: erider ("I don't sleep because sleep is the cousin of death!") 18:12:16 Those Iglatinpay translations is rules based. 18:12:28 Those and is. dang. 18:13:19 oh of course 18:13:52 simple situation though (for testing my string tinkerings) --> find first vowel, place everything before that vowel at the end of the string, add 'ay' 18:14:00 latin -> atin+l -> atin+l+ay 18:14:13 But sure, you still have to do the parseing and letter recognition, spliting of the string and appending. I'm just thinking out loud cuz i've not done that yet, either. 18:14:15 computer -> omputer+c -> omputer+c+ay -> omputercay 18:18:25 just store it and then print from the second letter then the first letter then ay. 18:19:06 i guess i could echo back rather than printing, hmm. 18:19:13 --- join: madgarden (n=madgarde@bas2-kitchener06-1096620860.dsl.bell.ca) joined #forth 18:19:17 erm, type rather than storing the new string. 18:19:43 ya right I get it. 18:20:36 echo from word 1c+@ word c@ s" ay" 18:20:40 Copying a string is trivial. Truncating a string is trivial, on either the right or the left. Concatenating two strings is trivial. 18:22:31 To find a vowel I'd search a vowel-string. 18:25:33 not c@ vowel? 18:26:13 vowel? is a fine name for it. In that word I'd search a vowel-string, not do five conditional comparisons. 18:26:27 But perhaps what you really want is find-first-vowel. 18:26:39 After all, there may not be one. 18:27:38 or the word may start with at a vowel. 18:27:46 yes 18:28:05 so have vowel?, then use it in find-first-vowel perhaps 18:28:16 That's one possible factoring. 18:28:38 okay, this raises an intriguing point. im' thinking, have a do loop which takes the MAX as the length of the supplies string. 18:28:47 i.e. addr u 0 on the stack before we call do 18:28:56 Lost me. 18:29:09 : find-first-vowel ( addr u -- n ) 0 do ... loop ; 18:29:35 we only loop as many times as there are characters. 18:30:07 Oh. bounds ?do ... loop 18:30:09 but this creates a sticky situation when we want to leave. if i decide to place "i" on the stack when vowel? is true, that means i have to check whether eachi teration is the last. 18:30:37 so that the last iteration places nothing on the stack, if you see what i'm getting at. 18:30:44 I don't, quite. 18:30:51 okay, so imagine do ... loop 18:30:53 --- part: forther left #forth 18:30:54 and inside that 18:31:05 c@ vowel? if i leave then 18:31:25 that is, is this character a vowel? if so, then place the current iteration (i.e., character number) on the stack and leave 18:31:32 I was thinking that you would wrap a case statment with a begin while loop and move on when you had already gotten what condition you needed or a default. 18:31:42 Sure. And if it doesn't find one, there's nothing on the stack after loop, is what you're saying? 18:32:17 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #forth 18:32:21 however, if i do that, i have to make a provision for no matches, as do ... loop needs to ALWAYS place something on the stack for consistency (otherwise, i'll check for the match number, and not find it in the event of no vowel) 18:32:27 yes, exactly. 18:32:51 my approach to iteration in forth is pretty sucky still. 18:32:51 So consider default-value ... do ... c@ vowel? if drop i leave then ... loop 18:32:58 oh that's nice. 18:33:09 hadn't considered that. 18:33:13 : find-first-vowel ( c-addr1 u -- c-addr2 ) over swap bounds ?do s" aeiou" i 1 search nip nip if drop i leave then loop ; 18:33:51 :) 18:33:53 Or work with begin while while repeat then, which gives you two exit conditions. 18:35:49 neat stuff, shall look into it. 18:42:15 bounds is not defined in Quartus Forth? 18:42:44 It's in toolkit. 18:43:00 needs toolkit does the trick. 18:43:01 TY. :) 18:46:59 Is there some canonical set of rules for pig-latin? 18:48:13 I think so. Looking... 18:49:19 For words that begin with vowel sounds (including silent consonants), simply add the syllable "ay" to the end of the word. 18:49:47 There's a wikipedia article. 18:50:02 yes, all consonants move to the end if there's no leading vowel. this is a simple test for strings at this end though. useful exercise. 18:50:08 i remember doing it in C yonks ago. 18:50:24 best head to bed, but i'll forth it up tomorrow. i think i'll start by playing with place et al. 18:50:51 ignore the backslang problem until i'm happy with string concatenation. 18:50:53 Gn. 18:50:56 then it should be simple. 18:51:15 so i might well connect in here in about 9 hours time :) 18:51:17 Good thing to practice. 18:51:21 i agree 18:51:31 as i say, strings scare me. this is a good way to get a feel for them. 18:51:32 There ought to be a list... 18:51:40 Can you say why they scare you? 18:52:03 ...list of things you ought-ta know. 18:52:18 ... list of things you ought-ta practice. 18:52:32 briefly: used to thinking of them atomically, so adding lengths to addresses, using c@ instead of @ and having to duplicate and over to manipulate them 18:52:45 all this makes a simple 'string task' seem quite complicated. 18:54:03 The difference being that all the string handleing stuff has already been handed to you in other languages and in forth the way to do it is to invent string handling and know the best ways to do things in for different situations. 18:54:08 allyay isthey akesmay ayay implesay 'intstray asktay' eemsay uiteqay omplicatedcay. It's not that tough. :) I see I have to special-case 'qu'. 18:55:26 mhmm 18:55:34 allyay? 18:55:53 i would've thought allay 18:56:05 Yes, and ayay. Variant that prepends a consonant (usually y or t) when there's no leading sounded consonant on the word. 18:56:20 hmm 18:56:25 it varies i think 18:56:29 i saw ovenay earlier this even 18:56:31 evening 18:56:33 prop'ly Lloyd and other similar words would need to have a the first vowel search and get the depth to move the number of consonants. 18:56:33 not ovenyay 18:56:43 See the wikipedia article. 18:56:48 will do tomorrow 18:57:02 now: time for bed. when i'm free at lunch time i'll tinkering with strings. 18:57:09 yay way others are variations. 18:57:14 Anyway it's a very simple task. I just wrote it in a few lines. If you find it's getting lengthy, step back and reconsider the approach. 18:57:25 It's possible to assume something is hard when it isn't. That can be a stumbling block. 18:57:31 Quartus: yes, that's what i imagined. as usual, it's not forth, it's me :) 18:57:35 agreed. 18:58:08 anyway, good talking gents. time for sleep 18:58:14 I can't say I know forth until ive been exposed to these kinds of things and there ought to be a list. 18:58:14 'Lloyd' here comes out to 'oydLlay' 18:58:23 cool. 18:58:35 Likewise 'church' is 'urchchay' 18:58:37 allready factored in I see. 18:58:51 night. 18:58:54 ciao 18:58:54 --- quit: zpg ("night") 19:03:04 --- quit: forther ("ChatZilla 0.9.61 [Mozilla rv:1.7.8/20060926]") 19:11:30 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 19:11:31 --- mode: ChanServ set +o slava 19:12:40 Hey slava. 19:12:48 hey 19:12:59 so piglatin-wise, is guard ard-guay or uard-gay? 19:15:01 I'm guessing 'ard-guay'. 19:15:10 writing a pig latin translator? 19:15:23 Yes, zpg was discussing it in terms of practicing with strings. 19:15:29 wouldn't it be uard-gay? 19:15:39 how do you pronounce 'uard'? 19:15:57 Consider also 'quite' -- 'ite-quay' vs. 'uite-qay' 19:16:13 http://www.planetpals.com/piglatin.html 19:16:26 oo-ardgay 19:16:37 That's a rather simple-minded translator on that page. 19:17:29 It's ighlyhay ankedray by Google! 19:17:37 How about Turkey Talk? 19:18:00 "ob" before each pronouced vowel... 19:18:11 The u in qu is considered part of the consonant, as is the u in guard. 19:18:25 Obit Cobomes Obout Lobike Thobis... 19:18:52 I used to be really good at speaking like that. 19:19:03 Then came Zoloft. 19:19:14 Zoboloboft 19:20:12 Stobop thobat obimmobedobiobateloby. 19:20:50 I think Flexner discusses Pig Latin in the back of his Slang Dictionary, but my copy isn't handy. Next week if I remember... 19:21:11 Quartus: You doin' it! 19:21:18 It's a pronunciation modification, so I'm going with the consonant thing with guard and quite. 19:21:30 Quobartobus 19:22:16 Quartus- are you familiar with audio buffering schemes? 19:23:08 Output: e-thay ick-quay own-bray ox-fay umped-jay over-tay e-thay azy-lay og-day. 19:23:23 vatic, schemes? As in, diabolical audio buffering plots? 19:25:40 Quartus: yes. say you have a routine that generates a sine wave, either computing mathmatically or by interpolating a wave table... 19:26:47 Saying that now. 19:26:51 Quartus: you might want to listen to that sine wave for hours, and so you continuously write small blocks to teh hardware to be digitized... 19:27:17 Well, hang on. I think you mean 'to be analogized'. 19:28:14 In order to do that, you have to remember where in the process you were, in this case the phase of the sine wave, so you can return to the generation process after you're done moving a block to the digitizer... 19:28:50 Quartus: doing so requires a DIABOLICAL variable to retain state information... 19:29:12 A digitizer would take analog input and return digital output. You're talking about input that's already digital, converting it to analog. 19:29:12 Would you use a diabolical variable in Forth? 19:29:24 vatic, I fail to see why you'd need a variable for the purpose. 19:29:45 Quartus: yesy you're right D->A onversioncay... 19:30:10 Quartus: OK, go on... 19:30:36 In your example, it would be enough to generate a single cycle, or perhaps a suitably-sized group of cycles, and repeatedly feed that block to the sound hardware. 19:31:03 Is this discussion purely so you can make a case for or against using variables? As if they're some kind of total evil that will make your program tainted for all time, for even the *thought* of using one? 19:31:19 k4jcw, way to go. You've tainted us all just by saying that. 19:31:28 TAINT !!! 19:31:31 no wait! 19:31:36 I mean THINK !!! 19:31:56 UDDITES-LAY !!! OU-YAY ARE-TAY ALL-TAY OOLS-FAY !!! 19:32:59 Quartus: so you'd just finish the process, write the samples and return to another invocation of the process? 19:33:09 vatic, why are you repeatedly calculating the same sine-wave? 19:34:18 Quartus: because I'd like to hear it for a while, perhaps a minute, but I don't want to store a minute's worth of samples in memory. 19:34:34 So store one cycle in memory, feed that to the sound hardware n times. 19:34:38 Why would you buffer a minutes worth? 19:34:58 You'd either make it table driven, or if it's algorithmic, you'd buffer one quarter, half or full cycle. 19:35:55 k4jcw: OK, but you'd be storing state information in that case... 19:36:02 And? 19:36:09 Feeding a block of memory to your sound hardware is only 'feeding' in the broadest sense, as the sound hardware doesn't eat it. You can send it in again. 19:36:45 No need to store any state. 19:37:12 If it's table driven, you may need to store your table position and/or accumulator. 19:37:23 Assuming you don't just have an endless loop that's not doing anything else. 19:37:51 Although some synthesis processes assume they could be longer than the audio buffer... 19:38:29 What this is, is an example of a incompletely defined problem space. You need to define this audio device and it's requirements further. There's at least 4 ways you can do this. 19:39:14 Do you need to do other things while this is processing? Can you run an endless loop that copies a one time generated table? Are you called via a callback function, like Windows handles it? 19:39:16 You're assuming somehow that the synthesis process is independent, in some peculiar way. If you need to generate a sequence longer than an available buffer, your synthesis process should fill the buffer; when the buffer is full, send it out, empty it, refill it, repeat. 19:40:02 k4jcw: OK, I'll stop. I'm familiar with the numerous ways in which audio synthesis processes are designed. I'm interested in how it would be approached in Forth and whether it might be any different than the usual schemes... 19:41:21 vatic, it's conceptually the same process in any language. You *could* handle it in Forth via co-routines, that might be interesting. 19:42:39 Quartus: so as k4jcw pointed out, some of these processes save the state of the synthesis routine. Would you work to avoid such a thing? 19:43:11 vatic, I'd need to have a better understanding of the problem space, the constraints, the requirements. 19:43:25 Quartus: OK, that's fair... 19:43:40 Then I'd experiment to find the best approach. 19:44:22 although I suppose one concrete example would be the Palm OS5 audio routines that require a callback function... 19:44:35 Sneak up behind it and hit it with a blackjack. 19:44:44 If it's a callback you necessarily must retain the state. 19:45:13 Quartus: OK, that's an interesting point to me. 19:45:26 How else? 19:46:16 The older Linux OSS system hides all that from the programmer with a big 65k byte buffer that you have to poll... 19:46:31 Hides what? 19:47:28 Quartus: serviceing the D-to-A converter. I assume that most audio cards don't have big conversion buffers because of latency issues. 19:47:47 That, and dual port memory is expensive. 19:48:18 Quartus: that is, reflecting what's coming in the digitizer to what's going out to the analogizer... 19:50:16 vatic, the size of the buffer would only determine how often it needs to be refilled. 19:51:22 Larger buffers (typically) cause more of a delay between the process sourcing the audio and the final D->A. That's what he means by latency. 19:51:54 Sure, I just don't follow what's being hidden from the programmer. 19:53:22 Quartus: that if the programmer writes to the OSS buffer in 65k chunks, the device driver is probably parceling it out to the hardware in, say 1k or smaller blocks... 19:54:20 I think the better term is "relieves the programmer from having to deal with the hardware directly." 19:54:24 Maybe so, but you could abstract that process in any way that suited you, in your own code. Fill a 65K buffer, fill a 65M buffer, parcel it out in suitably-sized chunks. 19:55:16 oh, true to both comments. I was citing OSS as a different scheme than the Palm callback system, mostly. 19:56:38 The callback scheme seems like it would require less memory overhead. 19:58:12 A matter of implementation. It might well be making a request for you to fill a 64K buffer also, and swapping between two of them. The closer you can get to real-time, the smaller your buffers can be. 19:58:25 Quartus: it seems to be the way most modern systems configure their audio, although I know that's no guarantee of excellence... 19:58:46 The Palm environment is generally geared toward conservative use of dynamic memory heaps. 19:59:29 If you're speaking directly of the Palm, I can't comment. But as a whole, what I said applies to systems in general. 20:00:23 Quartus: it also enables the system to take advantage of whatever latency the hardware has, and of course, there are many hardware add-ons for computer bigger than the Palm. 20:00:43 ...or lack of latency... 20:01:07 Too, the sound playback in the Palm runs on one of the few background threads. 20:01:54 Do they actually run a thread, per se, or is it an interrupt service routine? I haven't gotten that far in my reading yet. 20:01:57 Quartus: good point. 20:02:27 k4jcw: is it that well documented? 20:02:48 I've just been reading the Palm Programmers Guide or whatever it's called. I think I'm up to Chapter 6. 20:02:48 k4jcw, the kernel threads aren't programmer-available, so I just rely on the ones that are there to work, however they might be implemented in a given release. 20:03:00 k 20:03:53 k4jcw: As I remember, the tell you it's configured as a callback and cite the format of the function you need to provide and leave it at that... 20:04:00 There's a thread to service the touch-screen, one for sound on devices so equipped, etc. 20:04:02 they tell you... 20:07:51 Anyway, probably seemed like an inane question, but it confirmed that there's not some other method I was unaware of to design these processes. 20:08:53 In Forth I deal pragmatically. The most appropriate solution will be tailored to the particular problem space, which includes the application and the environment. I wouldn't bother to design some kind of general-purpose one-size-fits-all approach. 20:11:50 Quartus: good point. Is there a language in which you deal un-pragmatically with solutions? 20:11:59 other than pig latin? 20:12:04 Only pig latin. 20:12:25 There should be a pig latin dialect of forth. 20:12:31 Orth-fay. 20:12:37 The general problem does not exist, I once read. 20:12:37 Lisp 20:13:34 Raystm2: I would be reading that sentence over and over and over... 20:13:38 oh no, Orht-fay. The forth that Pig-Latins your dictionary for you, so you don't have to. 20:14:22 Raystm2: I thought Forth was a do-it-yourself language... 20:15:03 so RPN ccould be reverse Pig Latin notation. 20:15:33 Reverse Pig Notation. 20:16:25 EIO: Everseray Igpay Otationnay 20:16:36 ei ei o 20:16:50 on that far. 20:16:52 m. 20:17:02 mmm... 20:17:11 B A Bay B E Be B I Bicky-by B O Boh Bicky By Boh B U Bu Bicky By Boh Bu! 20:17:59 C... 20:18:01 wow 20:18:29 Doesn't it say we have to speak English on this channel? 20:18:43 Jiberish is still English. 20:19:14 English might just be the most extensible human language. 20:19:38 Actually agglutinative languages hold that position. 20:19:41 I guess they all are, doh! but in practice. 20:19:55 Neat word! looking... 20:21:05 Some folks refer to English as a "Mega-language" 20:21:30 Lojban? 20:21:34 Some folks refer to Bok Choy as cabbage. 20:22:55 Concatinative glue language is how I'm going to remember Agglutinate. 20:23:42 'agglutinative' means 'glued together', more or less. 20:23:55 I'm gonna blast off... ciao everyone! 20:23:59 ciao! 20:24:02 --- quit: vatic ("*poof*") 20:24:19 Ya, cool. I'm going to have to use that one during a sale and also challenge the rest of the guys to do so as well. 20:28:58 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #forth 20:42:29 --- quit: virl (Remote closed the connection) 20:44:29 --- quit: segher_ (Read error: 60 (Operation timed out)) 20:46:14 --- join: segher (n=segher@dslb-084-056-169-089.pools.arcor-ip.net) joined #forth 20:57:09 --- part: forther left #forth 21:18:40 --- join: arke_ (n=Chris@pD9E056D9.dip.t-dialin.net) joined #forth 21:35:27 --- quit: arke (Read error: 110 (Connection timed out)) 22:14:54 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #forth 22:45:24 --- quit: forther ("Download Gaim: http://gaim.sourceforge.net/") 22:49:20 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #forth 23:59:59 --- log: ended forth/06.11.02