00:00:00 --- log: started forth/06.12.30 00:20:32 hmm 00:22:42 What's this, "name that tune"? 00:24:45 --- join: skas (i=sszukals@202-90-54-135.static.linearg.net) joined #forth 00:26:22 --- quit: skas (Client Quit) 00:26:53 --- part: Quartus_ left #forth 00:28:48 --- join: Quartus_ (n=Quartus_@209.167.5.1) joined #forth 00:28:48 --- mode: ChanServ set +o Quartus_ 00:59:22 --- join: Cheery (n=Cheery@a81-197-54-146.elisa-laajakaista.fi) joined #forth 02:11:41 --- join: tgkuoFt (n=tgkuoFt@125-233-5-181.dynamic.hinet.net) joined #forth 02:34:08 --- part: tgkuoFt left #forth 02:37:43 --- quit: ASau (Read error: 104 (Connection reset by peer)) 02:52:00 --- join: ASau (n=user@home-pool-173-2.com2com.ru) joined #forth 03:56:01 --- join: frunobulax (n=anonym@f233149.upc-f.chello.nl) joined #forth 04:00:03 --- quit: frunobulax (Client Quit) 04:17:46 --- join: ayrnieu (n=julian@pdpc/supporter/sustaining/ayrnieu) joined #forth 04:18:04 --- join: earth| (n=sqrt@89.240.92.43) joined #forth 04:52:35 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 04:52:36 --- mode: ChanServ set +o tathi 05:28:28 --- join: zpg (n=user@81-179-178-139.dsl.pipex.com) joined #forth 05:28:52 hi zpg 05:31:57 hey tathi 06:11:55 --- quit: earth| ("\") 06:41:11 --- quit: ellisway (Read error: 113 (No route to host)) 06:44:59 --- join: neceve (n=claudiu@unaffiliated/neceve) joined #forth 06:53:02 --- quit: zpg ("cheers for now") 07:23:27 --- quit: Cheery (Read error: 110 (Connection timed out)) 07:23:29 --- join: Cheer1 (n=Cheery@a81-197-54-146.elisa-laajakaista.fi) joined #forth 07:32:18 --- quit: tathi ("bbl") 07:46:35 --- join: zpg (n=user@81-179-139-245.dsl.pipex.com) joined #forth 07:47:03 re 08:20:06 Hi! 08:33:40 hey 08:39:35 Any news? 08:40:19 --- join: ellisway (n=ellis@host-87-74-241-174.bulldogdsl.com) joined #forth 08:40:46 Good evening, ellisway. 08:45:38 --- nick: Cheer1 -> Cheery 09:03:52 nothing doing here ASau -- how about yourself? 09:16:28 I'm improving DragonForth for my own needs. 09:16:42 Still, you can get most of it from sf.net. 09:19:22 --- join: jackokring (n=jackokri@static-195-248-105-144.adsl.hotchilli.net) joined #forth 09:19:56 Good evening, jackokring. 09:21:38 dragonforth? isn't that the gpl'd palm forth? 09:21:48 Yes. 09:21:53 interesting. 09:22:22 I develop it. 09:22:31 ahh okay. 09:23:00 neat. 09:23:09 If you have any suggestions, you may tell me. 09:23:42 well, when on the palm i tinker in QF 09:23:49 i've not checked out your dragonforth yet. 09:24:42 actually, on the agenda is a mult-tasker in gforth. 09:25:22 Why do you need it? 09:25:34 zpg - other than the one gforth already includes? 09:25:48 There's even better multitasker in UNIX. 09:26:03 ayrnieu: i couldn't see one in gforth, only USER 09:26:23 ASau: it's for switching between loops inside a single forth process. 09:26:28 zpg - see tasker.fs in the distribution. 09:27:07 ayrnieu: neat, thanks for the info. i checked the manual but this: "In a Forth system that has a multi-tasker, each task has its own set of user variables." suggested i was out of luck. 09:27:25 i read "we don't have one at the moment" implicitly. 09:28:05 It is easy to switch user areas. 09:28:13 zpg - I've used the multitasker in TCP client applications, and some shootout Forth uses it. 09:28:15 Just define your USER. 09:30:51 thanks, that's a big help. 09:30:58 less work for me :) 09:32:01 DOES> makes it possible to multitask in bare Forth. 09:49:20 to make it multitask, ehm how? 10:21:21 0 value user-base 10:21:22 indeed, how? 10:21:51 : user create ... does> user-base + ; 10:22:14 Which allows for task-specific user variables, but it does not make multitasking possible. 10:22:15 Well 10:22:58 Switching is done with other means. 10:43:54 --- quit: jackokring (Read error: 110 (Connection timed out)) 10:46:34 --- join: tathi (n=josh@c-68-81-250-189.hsd1.pa.comcast.net) joined #forth 10:46:37 --- mode: ChanServ set +o tathi 10:47:28 hey tathi 10:47:49 hi Quartus 10:47:50 how goes it? 10:49:25 Not too bad. You? 10:50:05 Fairly well -- doing some electrical work and maybe some car repair. 10:54:36 --- join: ygrek (i=user@gateway/tor/x-f0dbd317430ecc85) joined #forth 11:02:08 ygrek: RusNet banned my ISP, sorry. 11:50:36 --- join: arke_ (n=chris@pD9E077D5.dip.t-dialin.net) joined #forth 12:03:20 --- join: frunobulax (n=mhx@f233149.upc-f.chello.nl) joined #forth 12:04:33 --- join: jackokring (n=jackokri@static-195-248-105-144.adsl.hotchilli.net) joined #forth 12:07:24 --- quit: arke (Read error: 110 (Connection timed out)) 12:07:55 --- quit: frunobulax ("a quit that really quits") 12:24:01 what is shhotout forth? 12:24:05 souutout ? 12:35:38 pardon? 12:39:39 hi zpg 12:40:19 hey Quartus_ 12:40:29 mobile? 12:41:24 I am. 12:45:02 anywhere exciting? 12:45:24 no :) 12:45:59 heh 12:48:19 ASau, what you mean? 12:48:49 I mean, I can't connect to RusNet IRC. 12:48:50 I mean - why sorry ;) 12:49:01 OK. 12:52:09 ygrek: And. 12:53:48 I've moved, I'm short of time and can't work on SPF. 12:54:21 it happens 12:54:39 Also I'm to refuse using NT. 12:55:05 I'll run SPF under WINE/NetBSD. 12:56:03 there is linux port. It will be cool if somebody will check it and report/fix problems 12:56:33 Using Linux port seems no better perspective. 12:56:52 SPF? 12:57:08 you can be a guinea-pig :) 12:57:23 If I have time, I'll port to NetBSD. 12:57:38 http://spf.sourceforge.net/ ? 12:57:42 virl: Yes, I'm speaking about SPF. 12:57:43 yep. that will eb really useful... but of course much work.. 12:57:58 tathi, yes 12:58:22 Other way: I move all my development to Gforth. 12:58:53 you decide 12:59:02 Sorry, I've to be pragmatic. 13:00:15 In lack of time I've to decide whether I continue DF 13:00:15 development using SPF/WINE, or SPF/Linux-emulated, or I move to 13:00:15 UNIX Forth. 13:01:24 if your target is DF than surely you should get the most simple way to do it 13:01:46 You understand. 13:07:55 SPF can't be ported to NetBSD with ease? 13:09:23 zpg, no 13:10:50 zpg: It is _native_ compiler, it does not use any 13:10:50 intermediate levels, neither C, nor C++, nor others. 13:12:03 hmm okay. so are there two concurrent efforts going on for Linux/x86 and Win32/x86? 13:13:52 Sorry, I don't understand. 13:13:55 on SF.net it's listed as "Operating System: All 32-bit MS Windows (95/98/NT/2000/XP), All POSIX (Linux/BSD/UNIX-like OSes), WinCE, Win2K, WinXP", incidentally. 13:14:26 ASau: well, if it's an effort to port to NetBSD/x86, I assume there are two source trees, one for linux and one for windows at the moment? 13:15:36 smth like that 13:15:52 ouch. 13:16:02 I can't tell for sure, but I think, there's Linux 13:16:02 portability layer. 13:16:17 no one was really interested in linux port so it exists as a proof of concept for now 13:17:12 It is in separate tree now, but I think it's because it was developped independently. 13:17:50 presumably if it's a native compiler, you wouldn't have to rewrite too much to assemble on NetBSD? 13:18:24 or is the main hassle building the executable? 13:18:42 i'm thinking in very simple memory image (.COM) terms here 13:19:47 the main hassle is the lack of interest I suppose 13:19:59 or time 13:20:44 I've not looked for now. 13:22:08 i can almost taste the apathy :) 13:23:39 I have only 8 full days (if I don't eat) to move all this 13:23:39 stuff to NetBSD. 13:24:09 I tried WINE and succeded, but I don't think it's good. 13:24:13 you'd better eat %) 13:24:50 why not? SPF uses not much winapi in the core.. maybe it will do 13:25:08 if all you do is TC 13:25:16 anyway 13:25:28 I gonna have a sleep :) 13:25:32 sorry 13:25:33 BYE 13:25:36 BYE 13:25:37 --- part: ygrek left #forth 13:26:16 I see the real SP-Forther: "BYE" in all caps. 13:27:49 * zpg grins 13:28:53 It seems I can't code one more hour. 13:29:29 I can't do it and watch TV simultaniously. 13:31:15 --- join: frunobulax (n=mhx@f233149.upc-f.chello.nl) joined #forth 13:34:37 so turn off the TV 13:34:44 Good evening, frunobulax. 13:34:56 tathi: No, the film is intersting. 13:35:03 ...interesting. 13:36:10 I'm employed as LISP programmer now, I don't want to be so geekish. 13:38:07 It is not my intention to be programmer at work and at home. 13:38:23 Good evening, ASau. Forgive the delay, this is an experimental IRC client written in Forth. 13:38:33 Really? 13:38:36 Do you provide code? 13:39:20 Yes, but are you expecting standard Forth? 13:39:35 Actually, it does not matter much. 13:41:16 frunobulax: which dialect? 13:42:46 iForth. 13:43:15 This should be standard. 13:43:43 frunobulax: is your code online? 13:44:10 Have to quit. The logic of IRC is too complex for this client yet ;-) 13:44:18 heh okay, good luck! 13:45:14 --- quit: frunobulax ("a quit that really quits") 14:09:06 --- quit: tathi ("leaving") 14:28:06 --- join: goathead (n=anonym@f233149.upc-f.chello.nl) joined #forth 14:28:51 --- part: goathead left #forth 14:31:51 --- join: goathead (n=anonym@f233149.upc-f.chello.nl) joined #forth 14:32:54 wb goath 14:33:52 wb? 14:33:58 Good... Night? 14:34:11 Welcome, anyway. 14:35:08 My nick is locked out. Is there a command to see who actually holds it? 14:41:10 goathead: i only know of RECOVER and RELEASE i'm afraid 14:42:22 I think it is because I closed the connection without quitting. I am not experienced with IRC... 14:47:51 it'll time out, then. 14:48:22 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 14:51:10 goathead: look at "/msg nickserv help recover" 14:54:51 --- quit: goathead ("testing it out, thanks zpg!") 15:05:25 Humans from around the world... Hello! 15:05:59 --- join: frunobulaks (n=mhx@f233149.upc-f.chello.nl) joined #forth 15:06:45 frunobulaks: no luck? 15:06:45 Hello! 15:06:47 hi Raystm2 15:09:02 :zpg: No luck yet. The nickserv database only works if you register *before* you have trouble. 15:09:14 ouch. 15:09:31 frunobulaks: yup. 15:09:40 it'll timeout eventually. 15:10:03 the basic irc protocol has no authentication 15:10:09 Which name? I mean, crc or JasonWoof or Quartus could punt it, no? 15:10:29 Raystm2: we can eject someone from this channel, but we can't make them disconnect from the server 15:10:48 Gotcha. 15:11:12 No problem. At least my IRC logic problem is solved. Need to do some multitasking to store data when I type, maybe. 15:11:29 the registering/nickserv stuff does work (after registering and seting it up right) even if you connect, and drop out before authenticating 15:11:53 frunobulaks: you writing an irc client? 15:12:27 Yes, better, I am using it right now :-) 15:13:20 * Raystm2 still watching James Burke Connections, online. 15:14:06 cool 15:14:26 I have nickserv set to boot anybody who logs in with my nick and doesn't authenticate 15:14:30 frunobulaks: what prompted this project? 15:14:37 apparently you have 60 seconds to authenticate 15:16:08 frunobulaks: you writing this client in forth by chance? 15:16:37 the auth system still has issues though 15:16:45 * zpg whispers something about frunobulaks being Marcel Hendrix 15:17:10 zpg: that name sounds farmilliar kinda 15:17:13 zpg: Idle curiosity. And the client I downloaded, DANA is 300 K. (Forth is 90 lines of ASCII). The unix sources I looked at are huge. Seem to reimplement sockets et al. So ... I'm learning something new. 15:17:16 frunobulaks: you writing this client in forth by chance? 15:17:16 the auth system still has issues though 15:17:16 * frunobulaks whispers something about frunobulaks being Marcel Hendrix 15:17:16 zpg: that name sounds farmilliar kinda 15:17:42 er... 15:18:20 bit of a feedback loop there 15:18:24 Oh, and DANA either beeps or flashes irritatingly. I wanted that turned off, but you can't. 15:18:42 * zpg nods 15:18:52 I recommend irssi. the default config is weird, but it's a great client once you get it set up right 15:19:01 frunobulaks: can you see the 'feedback' at your end? 15:21:27 zpg: Yes, odd. (Not in the Forth console, but in the browser log at bespin.) 15:21:53 quite. 15:22:15 btw -- you mention the unix sources re-implementing sockets -- i take it iForth has a sockets library that you're making use of? 15:23:57 zpg: Of course. 15:26:02 --- join: goathead (n=anonym@f233149.upc-f.chello.nl) joined #forth 15:26:41 this is getting surreal. 15:27:09 hmm, if a forth demo could win a demo contest? I mean compression algorithms which concentrate on text would decrease a source dramatically. 15:27:24 demoscene? 15:29:42 yep, demoscene, I didn't anything into that direction, but it interests me. 15:33:09 about 20k needs the source of stroq, so when we add the size of a small forth like retroforth which is about 20k, it could be possible. 15:35:59 interesting stuff, not sure. 15:36:16 best head off -- night all. 15:36:26 --- quit: zpg ("night") 15:40:44 the ICFP Programming Contest sounds pretty cool 15:41:02 as a bonus, afaik, it doesn't require any graphics or networking capability 15:41:11 so we could use just about any forth 15:44:27 Did you follow this year's contest? A slow Forth would not have done. Ian used gforth, Dth wouldn't have worked. Ian and Dennis used gforth, SwiftForth had problems (apparently). 15:45:37 --- part: goathead left #forth 15:51:15 ICFP? 15:53:58 Hey Marcel. Neal Bridges here. 15:56:37 Hi Neal. 16:00:22 frunobulaks: no, I don't even know what the challenge was this year 16:01:29 Then check here: http://icfpcontest.org/scoreboard.shtml (three Forth teams..) 16:16:53 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 16:16:53 --- mode: ChanServ set +o slava 16:22:14 looks like a pretty simple virtual machine 16:22:59 I love the way that stuff is written. made it fun to read 16:28:43 The fun thing is that the VM runs a unix, and that under that unix you can run BASIC programs to hack your fellow user accounts. 16:35:32 --- join: I440r (n=mark4@ip70-162-111-107.ph.ph.cox.net) joined #forth 16:35:47 lol the python web page lists alot of companies that use python 16:35:56 every single one of them also uses forth :) 16:36:02 except rackspace 16:36:04 I guess there's more to it once you get the VM running 16:36:27 erm - ok. astrazeneca i dont know about 16:37:52 what's the problem with implementing the VM in gforth? 16:37:55 is it slow? 16:41:03 I440r: and every single one of them probably uses java too :) 16:41:11 puhh puhh 16:41:12 lol 16:41:28 When it takes an hour or so to unpack the code it becomes a little bit difficult to debug the VM. It's worse, because you can't know how long it's gonna take (that depends on how efficient you were in writing it). 16:41:31 I440r: and every single one of them probably uses java too :) 16:41:31 puhh puhh 16:41:31 lol 16:41:57 is there an echo in here? 16:42:01 :) 16:42:05 frunobulaks: oops, you're sending feedback again 16:42:12 if it takes an hour to unpack i hope your not compiling it with gcc 16:42:13 ahh, far too slow. I see 16:42:15 it would take months 16:43:33 I440r: how's the forth coding 16:43:47 non existant at the moment 16:44:31 I'd figure on writing some test programs for it myself 16:44:49 but even so, there'd probably be at least one bug that wouldn't surface until running their code 16:44:55 and that would be a killer 16:44:55 its easy to write a c++ program that takes longer to compile than to run 16:45:05 maybe it could be avoided with tdd 16:45:11 you can have a 500 line program that takes several minutes to compile 16:45:17 telephone devices for the deaf? 16:45:18 thats difficult with isforth :) 16:45:25 almost impossible i would think :) 16:46:07 factor's compiler used to be like that, its much faster now, but still takes too long to compile some words 16:46:32 a word which pushes 1000 numbers on the stack (: foo 1 2 3 4 5 6 .... 1000 ;) takes 290 ms to compile and 0 ms to run 16:47:00 heh, that's maximum capacity just about on my stacks 16:47:02 biggest speed increase came when i implemented a source memory mapper. map the entire file then compile it. no more FILE reads 16:47:57 I440r: for me i/o is not the bottleneck 16:48:02 loading source files is pretty quick 16:48:30 i need to implement mmap at one point though 16:48:37 once i figure out how to do that on windows too 16:48:43 and figure out a cross-platform wordset 17:00:56 --- nick: arke_ -> arke 17:08:12 --- quit: jackokring (Read error: 113 (No route to host)) 17:19:06 Did I miss any exciting Forthinations? 17:25:31 Quartus: don't think so 17:25:45 ok :) 17:26:30 frunobulaks is writing an irc client, but the little discussion has been about irc not code 17:29:11 --- join: Raystm2- (n=NanRay@adsl-68-93-41-217.dsl.rcsntx.swbell.net) joined #forth 17:29:46 git is very cool http://kernel.org/pub/software/scm/git/ 17:29:53 The echo problem does not have anything to do with the difference between arithmetic and boolean operators, that's for sure ;-) 17:30:22 --- quit: frunobulaks ("a quit that really quits") 17:30:52 Oh, I don't know :) 17:31:22 I've been playing around with git for a week 17:31:30 realizing that it's useful for things svn wasn't 17:32:24 I'm experimenting with using it for my websites 17:32:24 such as? 17:32:29 --- join: I440r_ (n=mark4@ip70-162-111-107.ph.ph.cox.net) joined #forth 17:32:32 well, just that it defaults to local storage 17:32:49 I used to only stick things in svn if I wanted them in my repository 17:33:01 ie if I thought I'd continue to develop them 17:33:08 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 17:33:22 and I knew that my whole repository was browsable 17:33:42 and that when I add things, they take up space, even if I delete them later 17:34:24 git can very easily just manage a single directory, and keeps all it's crap in there 17:34:28 in one directory 17:34:35 sounds good. 17:34:42 I can use git for a while, then get tired of it, and just rm -rf .git 17:34:49 and there's no residue anywhere 17:35:06 neat. 17:35:11 git doesn't even spread little .git directories all over like svn and cvs 17:35:17 there's just one .git. subdirectories don't get them 17:35:33 you can use git in the subdirectories anyway, it must check parents 17:36:23 I'm working on a site now that has two versions, the live, and the development 17:36:52 so this situation is ripe for me goofing up and overwriting changes, or using the wrong version of something etc 17:37:27 so now I have it all set up in git 17:37:50 so now you can work drunk! :) 17:37:52 one branch for the live site, one for the development version 17:37:57 :) 17:38:17 now I have tools to see what's happened. and to put it back to any state 17:38:39 the .git folder has all the history for both branches in it 17:39:03 I can do "git-checkout master" and it'll update the files in my dir to be the live copy of the site 17:39:12 it's not entirely transparent, I take it -- you have to check files in/out? 17:39:14 and then "git-checkout test" to see the dev version 17:39:41 yeah, you have to tell it which files you want it to keep track of. 17:39:46 and you have to "commit" occationally 17:40:06 "commit" means save the changes with the given comment 17:40:06 I see. 17:40:36 so yeah, it does take a little time 17:40:52 but should pay off big time it piece of mind, and not screwing up my client's site 17:41:32 --- quit: cmeme ("Client terminated by server") 17:41:48 indeed. 17:42:10 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 17:42:15 one of the files that's different in the branches is my "upload" script that I use to sync my local files with the server 17:42:35 so when I'm working on the dev copy it rsyncs to a different place on the server 17:42:50 I like that part 17:42:51 convenient. 17:43:23 today I made a fix on the live version 17:43:38 then figured out how to tell git to apply that patch/commit to my branch 17:44:11 easy? 17:44:16 yeah, not bad 17:44:29 the commands could probably be shorter... but it was easy enough 17:44:34 --- quit: I440r_ ("Leaving") 17:44:58 one command lists the commits in the other branch, and gives one character at the begining of the line to tell you if it also exists in your branch already 17:45:14 and another to commit the one you want 17:45:45 sounds easy. 17:45:53 if you're need more details, you can run the graphical history viewer thing (gitk) 17:45:56 is INVERT the same like not? 17:46:20 --- join: Raystm2 (n=NanRay@adsl-69-149-54-145.dsl.rcsntx.swbell.net) joined #forth 17:46:29 gforth doesn't have "not" 17:46:48 invert should flip all the bits 17:47:07 for well-formed flags, invert is the same as either common definition for not 17:47:54 well, it's not a logical-not in the sense of 0= 17:48:03 it's a bitwise not 17:48:08 it is for a well-formed flag. 17:48:18 it works on -1 and 0 but nothing else 17:48:34 right. Well-formed flags. 17:48:41 right 17:48:52 I think 0= is very well named 17:49:08 yes, it's a good one. 17:49:11 --- quit: I440r (Read error: 110 (Connection timed out)) 17:49:26 gitk knocks my socks off 17:49:59 The Legend of the Sockless Dutchman 17:50:08 --- part: Sukoshi left #forth 17:50:13 --- join: Sukoshi (n=user@user-11faadf.dsl.mindspring.com) joined #forth 17:50:50 Quartus: one of my more famous former lives ;) 17:50:56 heh 17:53:35 --- quit: Raystm2- (Read error: 104 (Connection reset by peer)) 17:54:51 --- join: Raystm2- (n=NanRay@ppp-70-243-217-177.dsl.rcsntx.swbell.net) joined #forth 17:57:43 I'm assuming Woofenden is Dutch. 17:58:50 I was told German 17:58:59 hmm. 18:00:19 I'm surprised. Really sounds Dutch to me. 18:06:41 --- quit: Raystm2 (Read error: 110 (Connection timed out)) 18:09:50 --- join: zpg (n=user@85-210-170-93.dsl.pipex.com) joined #forth 18:09:53 hi 18:10:08 hey. 18:10:40 howdy Quartus_ 18:11:14 --- join: Raystm2 (n=NanRay@ppp-70-248-33-239.dsl.rcsntx.swbell.net) joined #forth 18:16:55 --- join: Raystm2_ (n=NanRay@adsl-69-149-33-64.dsl.rcsntx.swbell.net) joined #forth 18:23:38 --- quit: virl (Remote closed the connection) 18:24:59 --- quit: Raystm2- (Read error: 110 (Connection timed out)) 18:27:54 --- join: Raystm2- (n=NanRay@adsl-69-149-45-21.dsl.rcsntx.swbell.net) joined #forth 18:29:04 --- quit: Raystm2 (Read error: 110 (Connection timed out)) 18:32:55 --- quit: Raystm2_ (Read error: 60 (Operation timed out)) 18:38:25 --- nick: Raystm2- -> Raystm2 18:38:35 it was pretty neat to see Marcel's project in action, feedback aside. 18:38:53 Musta missed that. 18:39:07 Raystm2: his iForth IRC client 18:39:15 ok. 18:39:18 and hello :) 18:39:42 Hi. :) 18:39:50 * Raystm2 bored 18:40:06 plenty to do... 18:40:06 read those herb pages. 18:40:12 Quartus_: pardon? 18:40:18 Ah yes the herb pages. 18:40:21 ray. 18:40:29 seriously. 18:40:31 ah. 18:40:32 Quartus is my herb guru as well. :) 18:40:38 the second one especially. 18:40:40 i'm clearly 100% out of the herb loop. 18:41:10 It's okay. You build a tolerance and then anything you smoke after that is clearly a waste of money. 18:41:30 ... 18:41:48 Shame that. It's loads of fun till you build the tolerance. 18:42:04 this is as regards saving your teeth. 18:44:00 sorry, /me humor is only funny to me. No, not teeth, the slight connection between the word herb as another name for cannabis. 18:44:32 the second link is about a guy in similar situation to yours. 18:45:00 Broke all of his top front teeth on a really hot HotPocket? 18:45:31 I take it the links were unwelcome. 18:46:26 Still searching... No not unwelcome. I'm still not funny, am I? Oh well. that's boredom for you. I think I'm a tad depressed. 18:46:51 --- quit: virsys (Remote closed the connection) 18:46:56 I'm in the middle of Burke's first Connections. 18:47:06 perhaps some positive action will elevate your mood. 18:47:46 Aproximately $5600 falling into my lap would just about do it, too. 18:49:59 And it's comming too, I just know it. Didn't see the $20k to fix my house and there it is. Always sorta works like that. Preparation followed by opertunity and percieved, co-incidently, as luck. 18:50:52 The stress of it all comes from not knowing when, or how. 18:51:18 And trying to force it before it's ready. 18:51:35 --- join: virsys (n=virsys@or-71-53-68-17.dhcp.embarqhsd.net) joined #forth 18:53:55 Quartus_: what herbs are these you're discussing? 18:54:17 a variety, designed to recover gum health. 18:54:38 ah ok. 18:57:12 It's tough to be in the US with poor teeth. Everybody who's anybody has perfect ones. Like shoes, a fair sign of wealth or credit or personnal habits at the very least. 18:57:46 you stand a chance of significant improvement if you put in the effort. 18:57:52 hint hint 18:58:10 It shows a lack of resource or even care. 19:01:46 Any way, Neal, thanks for you valued input. I'm in a mood, and i'll be back when it's not so ... 19:02:08 ok. 19:04:15 ... i'm not so self-indulgent. That's the term I'm looking for. 19:05:13 Quartus_: still mobile I take it? 19:05:23 I am. 19:06:07 --- join: I440r (n=foo@ip70-162-111-107.ph.ph.cox.net) joined #forth 19:06:42 --- mode: ChanServ set +o I440r 19:17:59 re 19:18:05 hey 19:19:25 hi 19:20:29 * absentia is writing bad forth. 19:20:44 so slow down and do it right. 19:20:56 what're you writing? 19:21:01 not the purpose here... 19:21:17 little dragon&leprechan ascii game. 19:21:34 I've already discovered some nice ways to debug, trace... etc. 19:21:56 things are running a little slower than i had hoped... consider... but the code writing is pretty straight forward. 19:22:15 yet you recognize it as bad code. 19:22:27 q: the sole purpose is to just bang out some code, get use to forth... etc. 19:23:03 Learning how to do it wrong is not the best approach. 19:24:17 like, I discovered that if I have "x y" ( u u ) on the stack... to just do "over over" to get x y x y -- and then there's 2dup... like you said, just start coding... I also find that my routines need addr x y, but I have x y on the stack that I keep 2duping, so I addr -rot ... 19:24:40 perhaps. 19:25:21 what I want to do is get this working (with a few more features) ... and then go back and look at the code, learn.. [re]factor... etc... but since it's working code, I can enjoy it. 19:26:37 what's everyone else doing? 19:27:08 reading. 19:27:17 whatchat reading -- 19:27:30 i don't quite follow your ( addr x y ) / -rot report. 19:27:36 oh, and plus I don't really know what "right" is... so I figure I'll finish it, learn, and then you guys can rip it apart, if you're bored. 19:27:44 looking at a stephen king novel that was lying around the house. 19:28:02 stephen king is a crap writer 19:28:02 absentia: i'm pretty new to forth, and started with a similar approach to yours. 19:28:13 his "the black tower" is insulting 19:28:18 dark tower. 19:28:20 oh... well, I have x-coord and y-coord on the stack ... but I need addr x y -- so -rot ... just newbie stack manip fun. 19:28:34 where's addr coming from? 19:28:39 he's not even a writer, is he? I thought he just polishes other people's work? 19:28:39 once upon a time in a land far far away lots of kiddie talk down to you pussy fuck lots of profinity crap 19:28:40 he's at the same stage of learning you were at some weeks ago, zpg, but while you took the right road, he's going the wrong way. 19:28:59 yea the dark tower 19:29:07 absolute trash 19:29:17 I440r: well, he's slightly more eloquent than your rendition. 19:29:23 ha 19:29:28 not by much 19:29:31 by much. 19:30:03 the entire story is treating the reader like they are 3 and using some VERY nasty profinity throughout the book 19:30:06 how is that good writing 19:30:14 well that's crass generalisation. 19:30:18 no 19:30:34 try reading a REAL writers works. 19:30:37 try david eddings 19:30:37 the man's a fan of the vernacular and profane throughout his books. 19:30:42 for crying out loud. 19:30:47 or margret weis and tracy hickman 19:30:54 or jeam m auel 19:31:47 zany. 19:32:26 q: anyway, I am learning to just use forth nw... whether it's learning bad or not -- it's learning the language. I'll then review what I do and for the next game (character pacman) -- I'll then "do it right" . 19:32:29 absentia: if you come to each factor from the outset with a clearer idea of stack diagram and what the word should do, i think you'll find the design of the system cleans up significantly. not only that, but it'll be easier to think further into the design. i've found that anyway. 19:32:49 ya, I am seeing that in this code. it's a good lesson. 19:33:32 it's nice looking back at older code and going "christ, that could clearly have been done far more simply like this...." 19:33:39 yup 19:33:43 though for I440r you can edit out the blasphemy. 19:33:58 and since this is my *first* code ... they'll be plenty of that. plus, I can see lots of code that different only by a param. 19:34:14 sure. 19:35:18 again, refactor or factor? i'm beginning to find that if you adopt a coherent factoring practise, you get into those situations less, as factors are already in place when you wish to duplicate functionality. again, nice to go "i need to add feature x" only to find that you've already got 90% of the code there due to a sound-ish factoring practise. 19:35:43 for instance -- I have at least 5 distinct styles in this code... places where I'm trying different techniques, to see which I like -- which are robust, etc. 19:35:59 yup. 19:36:21 my usual practice is if I do anything more than once, I factor it. :-) 19:36:24 that sounds fair enough. could be a pain though. 19:36:36 (pain = bringing diff. styles in the same module together) 19:36:54 but it leads to a sh!tload of function calls in c/perl, etc... makes the code very difficult to follow -- since it's "deep" -- yet each routine is mind-numbingly simple. 19:37:03 fflib.fs? 19:37:04 zpg: right, since the learning. 19:38:11 which is preferred (other than flipping the return/value) -- if else BLAH then or not if BLAH then 19:39:44 what are you testing with IF? 19:40:03 play_again? if exit then 19:40:21 seems like you want to say "not_play_again?" .. but that's silly. 19:40:34 i'd opt for something like play_again? 0= if ... then 19:40:41 so play_again returns the flipped value... it's positive if you want to exit 19:40:42 :-< 19:40:56 try begin play ." again?" not until 19:41:04 is that better/preferred over not if ? 19:41:17 NOT isn't defined for me. 19:41:27 not is not a standard word. 19:41:33 dont define NOT as : not 0= " 19:41:35 oh. nevermind, then :-0 19:41:37 er ; even 19:41:43 lol 19:41:58 no. they refused to make a stand one way or the other 19:42:00 I'm use to if ( ! blah ) 19:42:00 bah 19:42:21 x 5= invert if just doesnt scan right 19:42:22 sure ==> "blah 0= if" 19:42:29 I could use 0= or 0<> 19:42:34 indeed. 19:42:41 but those are NOT definitions for not 19:42:52 they are tests for equality or inequality to zero 19:42:55 I440r: you just suggested defining NOT as 0= 19:43:00 i said dont 19:43:06 0= is fine for flipping the state of a flag. 19:43:06 ah, so you did. 19:43:32 apologies. 19:43:44 lol 19:43:57 : play_again? ( -- f ) s" Again? " type key dup emit toupper [char] Y <> ; 19:44:05 i dont like the word invert, the ans team should have decided how NOT should be defined 19:44:10 they limp wristed it tho\ 19:44:53 lets not piss off those pepole with a BROKEN definition for not and lets not piss off those people with a FIXED definition for not 19:45:11 lets simply discard NOT and invent a new limp wristed word called (camp voice) invert 19:45:12 absentia: s" Again?" type ==> ." Again?" 19:45:30 avoid s" 19:45:36 isforth doesnt even have a definition for it 19:45:45 anywhere you would use s" do 19:45:51 create string ," the string" 19:45:53 yup. I was debating putting texts as vars or something... 19:46:00 and where you would have put the s" put "string" 19:46:02 what's wrong with S" ? 19:46:03 isforth is a fringe dialect. 19:46:12 S" is ANS 19:46:13 replace the s" with again_prompt$ 19:46:27 zpg it dumps a string in the line of execution and does nothing with it 19:46:42 what? 19:46:44 compile that string somewhere OTHER than inline with the execution 19:46:56 xt xt sometextgoeshere xt xt xt 19:47:14 the string is in the line of execution and has to be branched arround 19:47:25 that's not a mandated implementation method. You really should learn this stuff. 19:47:56 how else would you define s" 19:48:02 in most places where I do this, it's called prompt_yn where the prompt ispassed in. 19:48:03 have it put strings in a special string section ? 19:48:22 There are a number of possibilities. 19:48:40 but like I said, i'm coding fast here.. to get something going... so I can enjoy it, while i look at sections to [re]factor 19:48:47 most simply inline the text 19:48:48 in a split code/data setup, strings simply go in the data section. 19:48:51 I've fot the game up -- works well (although slower than I had hoped) 19:48:54 so like i said. avoid s" 19:49:14 errant nonsense. There is nothing wrong with s". 19:49:23 i can move, detects collissions, leprechan is on, dragon is in, stairs are in, score+status.... lots of nice things. 19:49:36 neat 19:49:41 screenshot? :) 19:50:15 well, I would avoid it be doing againprompt$ prompt_yn ... instead of a routine called only "play_again" ... etc. but nevermind that. 19:50:46 i'm a little confused 19:50:55 you want a loop that only accepts Y or N, right? 19:51:14 well, you'll hate this... I spent about 4 hours last night trying to get unicode to come out... and decided that it just was not worth it. I also decided not to make the leprechan's gold droppings be gold (via vt100) ... although I do wimp out and try to go to gfx0 so the "a" chars (bushes) are the grey box.... 19:51:31 (and makes the leprechan } become a pound symbol :-) ) 19:51:37 is this a roguelike? 19:51:44 zpg: no, any char .. but compares to toupper Y 19:52:13 zpg: yes. it's a primitive thing that can be coded quickly... to learn basic things in a language ... ascii based, etc. 19:52:45 gforth? 19:53:47 the thing is, the original used a direct memory mapped screen, so it used screen poke and peek, here, I have to split things up with caput and caget ... nice names :-/ -- for char_array_put etc... board char x y etc... and then I also have to at-xy the xy and put to the screen.... so part of the refactoring is do I split out each of those "tied" 2 line routines... if I have 6 of them, they would become 14 smaler routines... or, by factoring the 19:54:02 out, will it only become 6 + 2 ... where the 2 are the reduced factors. 19:54:04 ya, gforth. 19:55:29 yup, gcc has been compiling fo 4 hours 19:56:15 absentia: slow down! 19:56:41 no chance of that, zpg. 19:57:08 heh 19:57:23 after taking weeks to start, he's now unstoppably going about it backward. 19:57:32 <-- 19:58:31 once again, my goal is not to write the ultimately small perfect packed optimized forth code as my first program -- it's to learn more about the language... idioms.. etc. the other stuff comes with experience and time. 19:58:51 my "teachers" are sokoban.fs and tt.fs ... 19:59:13 yowsers. 19:59:18 what's tt.fs? 19:59:23 tetris 20:01:06 i started out exploring data types. that's it. 20:01:21 looking at games written in forth might be a little confusing if you're aiming to understand idioms. 20:03:53 i'm sure if you paste in some options people'd comment on the factoring though. 20:04:02 yup 20:04:09 it should be a field day -- if that's what turns people on. 20:04:26 for instance, if I said my program was currently 500 lines... what would your first statement be? 20:04:44 okay. 20:04:58 "have a crumpet?" 20:05:05 (not -- WHOA SONNY -- you can have an entire OS written in forth in 500 lines!) 20:05:06 eheh 20:05:29 :) nope. 20:05:35 like i said, i can offer you baked goods. 20:05:39 but then i'd have to tell you that I'm writing me code with grouped statements vertically -- so I can quickly \ out code for testing, so it's often 1 to 3 statements per line for 10 lines, instead of 1 line. 20:05:43 not sage-like wisdom. 20:05:55 'k 20:06:34 absentia: my forth code is much narrower column-wise than other language sources. 20:06:42 all i know is that just by what I've done -- I'm now comfortable enough with forth that I could use the mindstorm forth -- whereas before, forth was a barrier. 20:06:57 good stuff. 20:06:59 well, I have words like "dragon_check_board" 20:07:29 "dragon" is...? 20:07:50 char & constant PIECE_DRAGON_CHAR 20:07:52 :-> 20:08:16 what does dragon_check_board do? 20:08:54 short of it ... char array get ... sees what's at that location. if it's you -- you're dead... if it's a wall, dragon can't move there, etc. 20:09:21 is there a check_board for other pieces? 20:09:39 the problem with the way it's implemented now is that there are side effects. so, I now also have 3 routines, player_check_board, leprechan_check_board and dragon_check_board -- can they be factored? dunno. 20:10:12 it "was" check_board -- but it was coded from the player's point of view -- and it had a side effect -- so itdidn't work. 20:10:26 the design sounds brittle. 20:10:32 * absentia nods. 20:10:59 refactoring is likely more effort than its worth. 20:11:09 ah, not true 20:11:15 the refactoring is a learning itself. 20:11:27 like switching all "over over" to 2dup 20:11:34 that's pretty minor 20:11:45 perhaps. 20:11:52 structurally, it'd probably more productive to write again from scratch. 20:12:28 look at just that one example with the prompt -- play_again? change that to playagainprompt$ prompt_get ... etc. 20:12:45 eww 20:13:13 why eww? 20:14:02 (a) 4:06am (b) your code actually gives me eyestrain in the above prompt example. 20:14:13 ah, missed that. I was probably putting the kid to bed. 20:14:28 well, I guess I won't share this current code with you. you'd probably die. 20:14:53 :) 20:15:13 don't keep it to yourself on my account 20:15:16 check out the pastebin 20:15:46 ok, dragon added. 20:16:21 the leprechan moevs like he's drunk.. the dragon makes a bee line for you... nice. 20:17:10 ok, here's a quetion... in times when i've done this before, I've used sgn (get the sign of a difference) 20:18:59 but now I've got, say, player_x dragon_x on the stack... I need 3 checks: if diff=0 do nothing, if diff< then 1+, if diff> then 1- I have < if 1+ else 1- ... but I need to skip that if 0 ... what's a way to do that in forth? 20:20:53 duplicate the flag and do a second test within one of the branches? 20:21:01 yup. and then drop. 20:21:04 that's whatI came up with. 20:21:38 neat. 20:21:41 dup =0 if drop else < if 1+ else 1- then 20:21:50 then 20:22:24 ah 20:22:54 is that bad code (also)? 20:22:58 ?dup if .... then 20:23:05 conditional duplicate 20:23:18 not sure that would work 20:23:19 if zero, no dup occurs 20:23:32 well you're dropping if zero, otherwise branching 20:23:36 because the else in the if would still get run ... 20:23:48 ?dup if 20:23:55 \ NOT ZERO IF YOU REACH HERE 20:23:57 ... then 20:23:59 dup 0= if drop else < if 1+ else 1- then then 20:24:11 yuck 20:25:04 look, you're testing whether 0 then dropping if so 20:25:08 that's useless 20:25:10 just use 20:25:13 "?dup if" 20:25:29 if you want sgn, write sgn. 20:25:49 it's in gforth 20:25:59 q: ya, I'm going to -- real soon now 20:26:00 :-> 20:26:08 info sgn didn't hit anything 20:26:16 type 1 sgn . 20:26:27 dup 0= dosn't work -- I need to do a < 20:26:28 :-< 20:26:34 That wee snippet is absolutely HORRIBLE FORTH, by the way. You are trying to write C, or something worse, using Forth. You are going about learning the language in the worst way I can actually imagine. 20:26:52 ok 20:27:31 hence the multiple-underscored naming 20:27:44 :-) 20:34:51 it's probably more important to learn to write a very simple programme that's well factored than tackling a large project that ends up ill structured. learning "2dup" = "over over" is an unimportant detail really. you need to look at the code structurally. 20:35:25 ok 20:35:33 that's my excuse anyway :( 20:35:34 erm 20:35:36 :) 20:36:09 you learn through the finger exercises, not by sitting down with an unfamiliar instrument and trying to hammer out a tune. 20:39:35 man, php is such a waste of time 20:39:46 but, I'm a good citizen, and filed a bug report 20:39:59 what did you find ? 20:40:18 that it can't tell the difference between no data to read and a closed socket, when the socket is in non blocking mode? 20:40:26 the docs for setcookie() don't say what value to pass to the "expire" parameter to get a session cookie 20:40:34 and -- at the same time, it gives a warning.. about no chars to read? 20:40:35 it says the default is a session cookie 20:41:08 ah. I coded my own sessions cookies. 20:41:12 most of the parameters to setcookie are after the 'expire' parameter 20:41:21 I'm coding my own session code 20:41:26 yup 20:41:34 but I was hoping to use the existing setcookie() function 20:41:53 at this point, I probably could have coded my own in less time than I spent researching this parameter 20:42:10 we went through that pain. 20:42:21 you lokoed at the php.net/setcookie docs? 20:42:30 I have a client named Root 20:42:37 throws me off sometimes 20:42:43 he's not the super user 20:42:47 ha 20:43:00 yeah, that's what I wrote the bug report on 20:43:04 I made an account that was "notroot" that came before 0 in the password file -- that was uid 0 ... 20:43:05 there's even a comment asking about it 20:43:39 or, rather saying he spent an hour trying to find out, and found that passing 0 worked 20:43:44 so I could get on irc servers as root -- without their little block of root users... only problem, this was solaris.. and solaris wouldn't boot properly if I had that, since the solaris boot code checked to see if you were root by comparing your user name and not the uid! 20:44:09 ##php was useless. they told me to use php's session stuff 20:44:17 yup. I got the same. 20:44:48 we don't want to write our sessions out to the filesystem or anything.. we put codes right into the session that help authenticate users and we cache that ourselves, etc. 20:44:56 but, the bottom line is -- php is a waste. 20:45:34 php is not "the superior programming tool of choice for discriminating hackers." 20:45:58 yeah 20:46:00 um 20:46:01 what is ? 20:46:05 I tried ruby, and it's a much better language 20:46:17 haven't been there yet. I went python instead. 20:46:33 oh, earlier we talked a little bit about the ICFP Functional Programming Contest 20:46:43 icfp? 20:46:51 part of first prize is that they declare your programming language "the superior programming tool of choice for discriminating hackers." 20:47:21 nice 20:47:34 you mean vandals who can't type, spell, or code? 20:48:27 Quartus: you wouldn't know discriminating if it bit you in the ass ;) 20:48:38 Clearly. 20:48:42 * zpg chuckles 20:49:02 * JasonWoof laughs at his own stupid joke, then goes downstairs for food 20:50:18 I was at the first HOPE conference. Self-proclaimed 'hackers'. The computer (and not only computer) equivalent of con men, break-and-enter, and second-story thieves. 20:50:48 Oh, and the director of the then in-production film "Hackers". A complete tool of a man. 20:51:05 not that kind of hacker 20:51:58 I looked it up. It says 1998. 20:52:27 oh, found another one, from 2000. 20:52:50 Ah here we go. 2006. Odd that it's so far down the google page. 20:53:21 http://www.dict.org/bin/Dict?Form=Dict1&Query=hacker&Strategy=%2A&Database=jargon&submit=Submit+query 20:54:09 mmmm hmmm 20:54:22 in the free software community 20:54:32 "hacker" means "good programmer" 20:54:41 That ship sailed quite a few years ago. 20:54:46 someone capable and interested 20:55:18 in the popular media it tends to mean a computer vandal 20:55:28 It means it in the computer vandal world, too. 20:55:37 much to the annoyance of the free software hackers 20:55:55 Much as 'gay' used to mean 'happy', 'hacker' has been co-opted. 20:56:04 yeah 20:56:25 some people still haven't let go though 20:56:42 Well, whatever makes them gay. :) 20:56:49 yeah, I did copy that off the 1998 contest page 20:56:57 hehe 20:57:28 ok, here's one that i'm working on... if you want to help me "get it right" the first time -- i'd appreciate the hints. 20:57:29 anyway, back to hacking my gay session handling code 20:58:14 most of the people I've met who would qualify for the co-opted term 'hacker' would be better labelled 'little criminal bastards'. 20:58:19 I want to make a flow control pass starting at 50% and go to 100% by values 1 to 10 (higher than 10 = 100%) .. 20:58:29 absentia, 'flow control pass'? 20:59:25 so, x=1 and x=1 = 50% ... so it's, say, 5-(x/2) and then random 10 > 5 is a "pass" 20:59:49 I'm afraid I'm lost. Let's call the word you want 'foo'. What inputs does foo take, and what outputs does it produce? 20:59:49 whuh? 20:59:51 er, random 10 > _the_percentage_as_expressed_as_0_to_10 21:00:48 foo takes a positive number... returns flag -- if a random number chosen "passes" .. a pass starts at 50% and goes to 100% when x >= 10 ... 21:01:11 er, always returns a flag -- but flag is "true" is there's a pass, false otherwise. 21:01:17 ok, so you're into describing 'foo' by using several clauses. I am still unclear. Where does a random number come into it? 21:01:30 What is x? 21:01:33 Is x an argument to foo? 21:01:43 x is a positive number (int) 21:02:11 so 1 foo . returns what? 21:02:22 50% of the time, t, 50% of the time f 21:02:31 2 foo . 21:02:45 60% of the time t, 40% of the time f 21:02:48 0 foo . 21:02:54 50% 21:02:58 3 foo . 21:03:01 60% 21:03:11 Are you making these up, or do they follow some kind of pattern? 21:04:04 well, it's 5 - ( x/2 ) -- then random 10 -- check to see if > than that first result. only thing is, 5-x/2 will be negative if x>10 .. but then random 10 will still be > than a negative, so it will still be 100% .. 21:04:19 You're wertying. Slow down. 21:04:25 heh 21:04:31 5-(x/2) only makes sense if you're considering the input to foo to be named 'x'. 21:04:41 But then ------- then random 10 -- makes no sense to me. 21:04:43 (where random 10 is 1 to 10, not 0... otherwise, has to be 4-) 21:04:51 That didn't help. 21:04:52 owever it's done. 21:05:04 Man. You have to be able to clearly describe what it is you want. 21:05:15 I want "u foo" to return a flag -- true of false.... based on u... where the base % for t, is 50% 21:05:34 'base %'? 21:05:37 you know, 50% -- 1/2 the time.. on average.... 21:05:41 yes 21:05:53 I'm not asking if that's what you typed, I'm asking what it means. 21:05:57 if yo don't pass anything to foo (which you can't do in forth) ... it would be a coin toss! 21:06:15 so 0 foo = coin toss 21:06:18 1 foo = coin toss 21:06:52 so are you planning to tell us what every integer passed to foo returns, or is there a pattern? 21:07:07 you mention 'flow control pass' -- is there an algorithm here? 21:08:36 HELLO? 21:08:40 hold on 21:09:24 return ( rnd(10) > 5 - ( $x/ 2 ) ) 21:09:36 What language is that? 21:09:40 pseudo 21:09:41 php? 21:11:23 can you write that in forth? 21:11:38 i don't know pseudo. 21:11:38 : foo ( u -- f ) \ 50% base when u=0, 100% when u >= 10 21:11:38 2/ 5 swap - 10 random > ; 21:11:38 can he, or can anyone? Yes, it can be written. 21:12:46 I kinda just don't like that it goes negative on the - .. but I can live with that. 21:13:03 you think somehow your php code doesn't? 21:13:21 hmm? 21:13:24 doesn't what ? 21:13:32 doesn't go negative when x > 5 ? 21:13:40 oh, it does. 21:13:45 or > 10 or whatever the crossover point is? 21:13:53 Quartus: i'm bracing myself for the software revolt of 2007 21:13:56 I was writing the pseudo (php) ... showiong the basic idea... 21:14:02 slava, slashdot? 21:14:05 or werty? 21:14:14 ah, werty 21:14:21 i'm not aware of any werty that has made its way to slashdot, but who knows... 21:14:23 No more compiling , no assembling , no more Host PC , 21:14:23 all software will be done on the target . 21:14:25 it would fit right in. 21:15:20 He is a fucking nutter. 21:15:20 absentia: what is the basic idea? scrap the code. give a numberless description of what you want to employ the word for. 21:15:58 i.e., one sentence, no detailed "if it's 60% and the moon is crescent, 0.25 is returned onto the floating stack unless it's tuesday in which case we shift 3 four times to the left".... 21:16:06 zpg, I'm predicting something like 'well, it's random -- > x with a base % of y -- depending on the input value, except on Tuesdays.' 21:16:22 Followed by 'What? Am I speaking Spanish or something?' 21:16:29 you start the game on level 0 .. .the dragon moves in 9 directions -- you can only move in 4... he moves diagonal straight at you, you take 2 moves for every one he makes -- when you are not on the same x and y ... there aren't enough blocks to slow him down.... so 21:17:07 what happened to 'no numbers'? 21:17:09 so, on levels 0 and 1, I want him to move 50% of the time (before checking for blocks, etc) .. level 2 and 3, I want him to move 60% of the time, levels 4 and 5 ... 21:17:24 absentia: this is impossible to follow for everyone but you. the level of detail is mind-boggling. 21:17:26 subject to random 10 - x - 5*x/2. 21:18:19 10 - 1.5 * x ? 21:18:37 22/7. 355/113. 21:18:45 pi? 21:18:58 3.14159265359...... 21:19:16 r = (1/r)+1 21:19:56 5*x/2 = 2.5 * x 21:20:08 -x = 1.5 * x 21:20:17 i still can't get over how m-coughlin managed to make sense of something werty wrote. 21:20:19 so 10 - 1.5 x 21:20:20 absentia: okay, so you want a percentage / probability that varies with the current level? 21:20:41 absentia: i wouldn't do that by calculating the level as an input, seems silly. 21:20:49 werty is going to write the first arm forth!!!! 21:20:52 lopl 21:20:56 lol evn 21:20:58 zpg: yes 21:21:03 he's not going to write anything 21:21:06 isn't Sergeant working on a Pygmy for ARM? 21:21:11 there's no arm forth? 21:21:14 There are. 21:21:16 corse there is 21:21:20 I thought there was... for zaurus, etc. 21:21:22 theres even a gba forth 21:21:36 there will be an arm factor in the near future 21:21:37 werty thinks there are none 21:21:37 when i get some ahrdware 21:21:42 werty thinks? 21:21:43 absentia: so, presumably you have areas of code that are called when you pass to level 3, 4 etc. 21:21:47 or does he just drool on his keyboard 21:21:54 he thinks he does :) 21:22:21 i think i think therefore i think i am. or i think i think i am! 21:22:49 absentia: setup randomisation similarly. so perhaps "move-probability" can be a word. and you set the w eighting in a clean way, independent of level # (i.e., 50 probability ! ) 21:23:23 obviously, these are 05:15am namings, but perhaps you catch my drift. 21:23:25 sure, I could do this 21:23:39 why you want to construct a formula to convert level number into probability is beyond me. 21:23:40 or 8.5 * x !!! 21:23:46 percentage pass? 21:24:17 but then I have to calculate percentage -- but that's fine. 21:24:44 well, you're not calculating anything if you're telling us that levels 0 and 1 ... etc 21:28:52 ok, so i ended up with this 21:28:54 : pass? ( u -- f ) \ u is 1 to 100 for percentage to return t vs f 21:28:54 100 swap - 100 random > ; 21:30:24 and then I call it outside of foo... (ie; pass?) with: 50 level# @ 2/ 10 * + pass? 21:30:38 brain hurt bad 21:30:44 why? 21:31:02 That's the antithesis of proper factoring. 21:31:14 do you guys ever do any monte carlo simulations? 21:31:20 yes 21:31:30 what does that mean? 21:31:43 stochastic modelling. It means throwing random numbers at a thing. 21:31:51 actually, I thought the factoring was great... ended up with a generic routine "pass?" that accepts percentage passed in, and returns t that % of the time when called... 21:31:51 ah 21:32:03 i like "pass?" 21:32:09 compared to previous versions 21:32:09 I don't. 21:32:24 it's the "50 level# @ 2/ 10 * +" bit that reads like line noise 21:32:37 couldn't think of another name... that was better "proceed?" "good_monte?" (full_monte? h0h0h0) 21:32:43 zpg: looks fine to me 21:32:54 level# @ is a bit awkward, but that's it 21:33:01 zpg:yes, me too -- *BUT* that is the forumla that I wanted... and it's outside of pass? ... so that's what you wanted. 21:33:04 you could define : level level# @ ; 21:33:16 value level :-) 21:33:19 * absentia hides. 21:33:21 The entire phrase requires factoring. 21:33:25 quite. 21:33:30 ok, teach me 21:33:54 I think next I'll do the monte hall paradox ... as a poc for ya'll 21:34:02 tht's small enough that it should be "done right" 21:34:18 There isn't a threshold of code size beyond which it becomes clever to do it 'wrong'. 21:34:47 then I have surpassed that threshold. 21:34:49 then why do most coders do it wrong? 21:34:51 lol 21:35:24 Why? Because most of them start with the incredible hubris that they are the masters of all programming, having done some Perl and C and BASIC, and thus think they can just bang away at any new language with the same results. 21:35:47 who does that? really. 21:35:57 absentia: explain "50 level# @ 2/ 10 * +" in terms of what you're giving to "pass?" 21:36:13 By the time they get entirely snarled in variables and stack operators, they've decided the language must suck, loudly proclaim so, and disappear. I think we're at about the halfway mark. 21:36:16 a number 1 to 100 (er, plus) .. as a "percentage" 21:36:48 level @ 5* 50 + 21:36:58 erm 5 * 21:37:01 i don't see why you guys are quibbling about trivial details like word names and stack manipulation. 21:37:09 werty's newforth opsys will make keyboard input itself obsolete. 21:37:12 i44; yes 21:37:16 slava: heh 21:37:23 that's better. 21:37:31 think it and computer does it ? 21:37:39 you don't even have to think, in werty's case 21:37:43 lol 21:37:46 otherwise he wouldn't be able to use the system 21:38:00 i44; but make it 1 to 10, not 1 to 5... 21:38:28 so, you could so level @ 2.5 * :-) but then you ... well.. you know. 21:38:41 forth * doesn't work with floats 21:38:43 or you could do level @ 2/ 5 * 50 + 21:39:03 i got rid of the 2/ 21:39:17 right, plus that would give percentages ending in 5... which is actually ok, ... since I didn't really specify 10% jumps. 21:39:57 yes, but yours does 50 to 100% from 1 to 5 21:39:59 specs say 1 to 10 21:40:29 50 level# @ 2/ 10 * + 21:40:55 no. mine does exactly what yours does 21:41:15 I could put that in "calculate_and_return_dragon_level_move_percentage" .. so I could call it as "calculate_dragon_level_move_percentage pass? if" 21:41:18 :-) 21:41:32 i44;does it? 21:41:33 or just dragon-move 21:41:39 mine goes 1 to 10 ... 21:41:54 need to make the 10 * be 5 * 21:42:12 slava: dragon move is the word ... that is called... all these are the innards of it 21:42:22 do the 10* before u do the 2/ 21:42:34 because half of level 1 is 0 21:42:46 0 times 10 is 0 21:42:54 50 + = 50% 21:42:55 good 21:43:00 I440r: not if you first do : 0 2 ; 21:43:06 lol 21:43:36 ' and ' or alias and alias or 21:43:45 u can totally screw up forth :) 21:45:19 dont use entire sentences for word names please lol 21:45:49 thats a c ism 21:46:11 it think it was a jokism 21:46:16 I was just playing around. was meant to be funny. 21:46:25 phew lol 21:47:14 if I called it cdmp ... no onewould know, if I called it the whole words c_d_m_p -- it's a sentence ... I thought bout level_move_percentage -- but then it could be differnt algorithm for different items, so you need to specify the item in the name. 21:47:30 the longest word name in factor is GL_NUM_COMPRESSED_TEXTURE_FORMATS 21:48:00 50 level# @ 2/ 10 * + \ 50% at level 0, 100% by level 10, +10% per each +2 levels 21:48:18 that's what I have... unless/until someone can teach me a better way 21:49:48 I could put in a stalker that watches it and gives me the actual % -- but from a quick observation -- it appears to be working,and giving the desired effect. 21:51:24 zpg: do you know the game "robots" ? 21:51:51 nope 21:54:23 there's kind of a neat effect from this... I like it. 21:54:36 gave me an idea for a slight enhancement. 21:55:17 neat 21:55:55 the effect is that when you go down a level -- you don't see the dragon... and it might nore move all the time -- especially on the first few levels, so it gives the appearance of the dragon "jumping" (out at you). 21:55:56 I likeit 22:04:08 --- join: mark4 (n=foo@ip70-162-111-107.ph.ph.cox.net) joined #forth 22:17:32 --- quit: I440r (Read error: 110 (Connection timed out)) 22:28:45 --- quit: crc (Remote closed the connection) 22:37:37 06:30 seems an appropriate time to go to bed. night all. 22:37:44 ciao 22:37:47 night 22:37:55 cheerio 22:37:56 --- quit: zpg ("ERC Version 4.0 $Revision: 1.600 $ (IRC client for Emacs)") 22:37:58 * absentia investigates square root ... 22:52:42 is it better to swap - or - abs ? 22:53:12 swap - is far clearer of the intended operation 22:53:36 ya... I started with that and switched to - abs .... :-/ 22:53:46 negate + 22:53:49 lol 22:54:02 or does that need the swap too ? 22:54:03 err 22:54:20 :-) 22:58:13 Best is to have your parameters in an order that doesn't require reordering. 22:58:23 ya :-< 23:18:25 --- quit: mark4 () 23:37:58 --- quit: absentia (Read error: 110 (Connection timed out)) 23:48:02 oh crap, this is what the cookie header looks like? 23:48:03 Set-Cookie: session_key=QgHpja05JRJqpkZJ 23:48:33 *&^@$# if I'd known that I would have abandoned php's setcookie() in a heartbeat 23:49:19 It' base64-encoded number. 23:54:49 doesn't show up that way in w3m 23:54:51 I'll try telnet 23:56:35 doesn't seem to be doing base64 23:57:28 I got the same sorta thing with setcookie('session_key', 'xxx') as with header('Set-Cookie: xxx') 23:57:48 I'll make a simpler test just to be sure 23:58:39 --- join: absentia (n=scott@ns6.lobodirect.com) joined #forth 23:59:05 re 23:59:10 --- quit: Al2O3 ("Leaving") 23:59:59 --- log: ended forth/06.12.30