00:00:00 --- log: started forth/02.11.16 00:36:23 lament: how do you get dvorak??? 00:36:57 I even e-mailed the guy who wrote the drivers for the targus folding keyboard and he said that it didn't support dvorak, and it probably never would 00:37:01 but this was probably 2 years ago 00:44:42 hmm 00:44:47 I think my keyboard is a Targus 00:45:02 all the folding ones are I think 00:45:02 So I guess they changed their mind 00:45:10 awesome 00:45:23 I just got my visor to synch with my computer so I can use it again 00:45:44 the keyboard drivers let you choose dvorak then? 00:48:30 yes. 00:49:13 Actually, for layout, you have a choice of English(US), English(US-Dvorak), German and Japanese. 00:49:41 coool 00:49:44 aha it has a button "Layout Info" 00:50:06 which says that the Dvorak layout was created by Think Outside, Inc on Jun 6, 2002 00:50:30 that's recent! 00:50:32 So I was really lucky to buy the keyboard almost immediately after that. 00:51:02 I'll have to grab the new driver :) (I don't have any driver at the moment...) 00:51:20 and now, to bed 00:51:23 goodnight all 00:52:46 --- quit: Herkamire ("zzzzzzzz") 00:59:29 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 01:00:47 hi, who's alive ? 01:20:25 Several billion people around the world. 01:24:32 Also, a very big number of people in other times. 01:24:50 Heh. Yup. 01:34:30 had u ever tryed to write a proggie in one-line words ? 01:35:44 What? 01:36:32 all functions ( or forth words ) take one line, <80 chars 01:37:14 Yes, it's generally not very effective. 01:37:43 But if you buy into all of Chuck's rethoric... 01:37:51 Rhetoric. 01:38:06 then i tryed, i xperienced great code clarity and rapid writing 01:38:25 i rewrote my old sokoban game just to test the method 01:38:27 Yes, well try it with a non-trivial program. 01:39:07 for example, old level-decode was one word , 11 lines of write-only mess 01:39:22 now - 3 short, grok-at-glance words 01:39:38 ( i have bit-packed levels ) 01:40:00 non-trivial ? so what u suggest to write ? 01:40:00 Let's see your code. OK? 01:40:24 it's at home, will bring at monday and put on web 01:40:32 I see. 01:40:54 old is at http://cryptomancer.chat.ru, if not erased for being unvisited too long 01:41:43 its still alive 01:42:36 new will be at same place, if i didn't forgot passwd 01:43:32 so what 'non-trivial' proggie u suggest to write ? 01:45:11 i now plan a game, mix of logic puzzle and RPG 01:45:19 I'm not suggesting any program in particular. I'm just saying that applying some irrational "1-line" function rule is not particularly effective in practice, even if it looks good in theory. 01:46:45 it's not irrational - human keeps 7+-2 in attention buffer, so short words are easier to grasp 01:47:35 * Serg_Penguin sometimes optimizes not for speed and size but for concept clarity 01:47:51 Well, in any case, you (hopefully) keep track of several concepts at once. 01:48:04 It's kind of like trying to read a poster with a microscope. 01:49:50 anyway, stuff found at UT makes sense 01:51:30 Yes, it's quite well written. Unfortunatley, there are almost no decent concrete code examples illustrating the concepts. 01:55:15 i wrote one :) 01:58:29 i think ColorForth is good example, but my CRT dunno hold such hirez 01:58:43 so i can't dig it in depth 02:00:32 Yes, well forth implementation's are a dime a dozen. :) 02:03:11 now i dig isForth - it became much better w/ new version i440r gave me, some nasty bugz gone 02:03:27 but it has too much fat 02:10:00 Yes, and it's x86/linux specific. 02:10:43 Morning all. 02:22:47 hey Robert 02:36:21 Hi. 02:46:44 sorry, i was trying to find an rtfm on aerodynamics 03:06:40 --- quit: Robert (Remote closed the connection) 03:06:50 --- join: Robert (~Robert@robost86.tsps1.freenet6.net) joined #forth 03:17:48 --- quit: Serg_Penguin () 04:36:17 --- quit: lament ("Client Exiting") 05:05:39 --- quit: ChanServ (ACK! SIGSEGV!) 05:25:07 --- join: Sorcer (~s0rcer@62.139.18.11) joined #forth 05:25:56 --- part: Sorcer left #forth 06:54:48 --- join: ChanServ (ChanServ@services.) joined #forth 06:54:48 --- mode: benford.freenode.net set +o ChanServ 06:54:48 --- mode: ChanServ set +l 83 07:05:52 --- join: divgrad (~wer@81.25.34.10) joined #forth 08:08:24 --- quit: divgrad () 08:18:39 --- join: XeF4 (xef4@lowfidelity.org) joined #forth 08:20:52 !seen joonas 08:22:53 --- join: Herkamire (~jason@ip68-9-59-184.ri.ri.cox.net) joined #forth 08:23:08 Herkamire: have you seen joonas? 08:23:19 XeF4: no 08:24:32 Robert: I had entirely too much fun last night with that primes thing you were talking about 08:24:54 :) 08:24:57 So did I, heh. 08:25:04 I even got a guy to implement it in SML. 08:25:13 lol 08:25:49 I did some shortcuts, and my pragram prints all of them that are less that 1 billion in 0.7 secconds 08:26:19 Whoa. 08:26:26 That's quite good. 08:26:34 What shortcuts? :) 08:27:27 after the first six, all the digits must add up to 23 08:27:44 so I just printed out the first six, and check for the digits totalling 23 08:27:54 that's it really 08:27:58 Yeah.. I do that, too. 08:28:06 heh :) 08:28:17 It returns true if the number gets 23. 08:28:22 your sqrt function is very silly and complex, and I don't even get it. 08:28:29 Hehe. 08:28:35 I know :) How did you code it? 08:29:14 Takes 30 seconds here for 100,000,000 numbers. 08:29:35 I can't get how you do ten times more in 1/50 of the time. 08:29:43 variable lsqrt : sqrt ( x -- n ) lsqrt @ dup * swap lt if lsqrt @ 1 + dup lsqrt ! exit then lsqrt @ ; 08:30:05 What's "lt"? 08:30:12 lessthat :) sorry 08:30:23 Ah, OK. 08:31:14 Well, I just use new guess = ((x/old guess) + old guess) / 2 08:31:42 However, I don't think that makes this much difference. My assembly program uses a lot more time than your Forth program. 08:31:55 The SML program does, too. 08:33:27 What is the definition of the numbers it prints? 08:33:34 --- join: tathi (~josh@ip68-9-58-207.ri.ri.cox.net) joined #forth 08:33:50 Hi tathi. 08:34:02 hey Robert 08:34:15 Robert: your sqrt function can just check if the last sqrt is too small, and if it is, then up it by one 08:34:36 in this pragram sqrt never needs to go up by more than one 08:34:45 --- join: nDuff (~cduffy@cs666889-197.austin.rr.com) joined #forth 08:35:00 Here's what I use: (a) the number should be a prime, (b) each of the decimal digits should be a prime (2,3,5 or 7), (c) the sum of its decimal digits should be a dunder prime. (unless it's below 10, then (c) shouldn't be used, since it will recurse forever). 08:35:06 I think the big speedup is that he's just generating the numbers that have digits 2,3,5,7, and only checking those 08:35:15 then checking if the digits add up to 23 08:35:20 _then_ checking if it's a prime 08:35:46 I only check them for primality. 08:35:54 (Those who contain 2,3,5,7) 08:36:36 It returns immediatley from the recursion if the number is 23... 08:36:44 But I guess I could optimize that part a bit more. 08:36:47 I'm looking for a scripting language with an interpreter tiny enough to be cache-locked (ie. fit inside just a page or two)... might any of 'yall suggest a forth interpreter that might be particularly interesting from this perspective? 08:37:04 Rpbert_ amd tje öpw bot sjpiöd be + inless it is 2 08:37:05 er 08:37:12 Rober: and the low bit should be 0 unless it is 2 08:37:28 nDuff: you could write one :) :) 08:37:33 * XeF4 will look at the monitor while typing from now on 08:37:48 * Herkamire tinks everyone should write a forth 08:38:24 Herkamire, indeed, but if one already exists I'd hate to reinvent the wheel. 08:38:32 XeF4: :) 08:38:58 s/it/the number/ 08:39:40 My Forth program sucks. 08:39:40 nDuff: pygmy will fit in a page or 2, but it's for 8086 08:39:50 I've made a better version in assembly now. 08:39:50 nDuff: 386 eforth might well do that 08:41:38 Hm. 08:41:52 How do you generate the numbers that only contain 2,3,5 and 7? 08:42:25 as decimal digits? 08:42:28 I do up to 100,000,000 now on just below 30 seconds. 08:42:29 Yes. 08:42:51 I guess the number of numbers I check is the critical point. 08:42:59 could you get away with using packed BCD for everything? 08:43:02 digit ( place n -- ) 08:43:11 place is a power of 10, n is the number you're generating 08:43:18 then it recurses 08:43:34 Hm, yes... 08:43:44 doooh 08:43:51 over / 10 mod 08:43:52 right 08:43:54 oh, my sqrt function isn't quite right when I skip all those numbers. one sec 08:44:14 heh 08:44:52 Mine checks each digit in the number, breaking when it finds a non-prime digit. 08:45:23 : digit swap 10 / swap over = if check drop ; then 08:45:27 --- join: thin (thin@h68-146-166-145.cg.shawcable.net) joined #forth 08:45:32 2dup over 2 * + digit 08:45:34 Hi thin. 08:45:51 2dup over 3 * + digit 08:45:52 etc 08:45:52 hi rob 08:45:56 hey thin 08:45:59 Hmm. 08:46:05 howdy tath 08:46:23 --- mode: ChanServ set +o thin 08:46:38 Now I see something I could do. 08:47:24 Robert: this way you're only checking 4^digits numbers, instead of 10^digits 08:47:41 but you have to call it for each length :) 08:48:37 I'll check another idea.. wait. 08:48:48 ok, fixing that added 50ms, so I'm at about 0.75 secconds for < 1,000,000,000 08:50:44 --- mode: thin set -o thin 08:54:00 Ah. 08:54:07 15 seconds now. 08:54:13 cool :) 08:54:34 Still wondering what makes your faster. 08:54:44 the Huge time savings was using correct digits and checking the sum before the prime 08:54:49 15 seconds for < 100,000,000... 08:55:08 oh, and I check that it is odd before check the sum 08:55:36 Yes... that's what I'm fixing now. 08:55:46 <1s for 1 billion is a lot faster, still. 08:57:23 --- nick: thin -> futhin 08:57:31 --- mode: ChanServ set +o futhin 08:57:45 Robert: I'm running a 450Mhz G4 which helps... 08:58:15 --- nick: futhin -> thin 08:58:28 yay 08:58:41 --- mode: thin set -o thin 08:58:44 er 08:58:51 heh 08:58:53 --- nick: thin -> bugslayer 08:58:55 --- nick: bugslayer -> thin 08:59:02 --- mode: ChanServ set +o thin 08:59:05 ewww!!!!!! 08:59:12 Herkamire: Hehe, nice. P200 here. 08:59:19 p100 here, ph33r 08:59:48 --- mode: thin set -o thin 08:59:51 --- nick: thin -> futhin 08:59:58 --- mode: ChanServ set +o futhin 09:00:01 :/ 09:00:17 --- mode: futhin set -o futhin 09:02:26 so how come nobody is using the forth webserver, ftpserver, emailserver? :P 09:02:37 the russian eserv proggie 09:02:55 because svn only works with apache2 09:03:01 didn't know about it 09:03:10 that too :) 09:04:11 lies, it's been mentioned before on this chan multiple times :P 09:04:36 * futhin has a theory that everybody stopped paying attention right about the time eserv was mentioned, and that happened multiple times! scary! 09:04:37 maybe I wasn't here :P 09:04:57 sounds vaguely familiar now that you mention it 09:05:02 http://www.eserv.ru/ 09:10:18 apache works fine for me. I don't feel like running two webservers 09:10:30 ok, scratch that, my sqrt was fine before 09:15:02 when I check up to 1 billion, it only has to check 1076 numbers to see if they are prime... seems pretty low 09:15:15 where does it say that eserv has anyhing to do with Forth? 09:18:04 humph, ok, my sqrt was not cool before :) :) 09:22:35 tathi: it doesn't say it, just like many other sites that don't say the product was coded in C :P 09:23:07 i think it used to say it but they've changed the site 09:23:51 what dialect is it coded in? 09:24:17 no idea 09:24:31 eserv seems to be a windows program 09:24:36 so i guess you guys couldn't use it heh 09:24:43 hmm, well, their website doesn't seem to work well in any of my browsers, _and_ I don't have the hardware to run it on anyway 09:25:13 I wish I remembered which company made that z80 Forth webserver I played with a couple years ago 09:25:29 eserve is for Windoze, of course we don't use it 09:26:44 totally off-topic, does anyone know how to make carob powder from carob fruits? 09:27:12 * XeF4 has a few here but isn't quite sure how one processes them into that cocoa-like stuff 09:28:26 I didn't think carob was a fruit... 09:28:54 carob is a tree 09:29:05 maybe you make it from the bark ;) 09:29:11 try chopping it up, let it dry, keep chopping it up, etc? 09:29:37 doh 09:29:41 this explains it 09:29:46 nm 09:29:59 what's carob powder good for? 09:30:05 * XeF4 just discoevered that these are baobab, not carob 09:30:45 futhin: tastes good 09:50:30 carob is used like chocholat (and tasts somewhat simular) 09:53:01 I think my primes thing is printing all the answers up to 10^31 09:53:21 unless 22222222223 is one 09:54:02 It is. 09:54:19 10^31 oe 2^31? 09:54:22 or* 09:54:37 10^31 09:55:14 there can't be any between 10^11 and 10^31 because there are too many digits to add up to 23, and not enough to add up to 223 09:55:51 how did you check that 22222222223 is one? 09:55:52 Ah, right... 09:56:01 calc :) 09:57:10 my code checks everything that fits in 32 bits 09:58:27 there's only 2 between 1G and 4G 09:58:29 How do you pick the numbers to check? 09:58:56 hey, is there a proof somewhere that that digit-checking prime tester works? 09:59:02 --- join: joonas (jpihlaja@kruuna.helsinki.fi) joined #forth 09:59:02 * XeF4 wants to see this 09:59:15 iltaa 09:59:15 Digit-checking prime tester? 09:59:17 Hi all. What's up? 09:59:19 Hi joonas. 09:59:43 Digit-checking prime tester? 09:59:51 * joonas checks the logs 10:00:14 Robert: your/Herkamire's prime lister 10:00:19 Oh. 10:00:22 that recursive thing ("digit") that tathi was trying to describe. it puts together each number (of a given number of digits) that is made up of only the digits 2,3,5,7, and calls my check function on each one 10:00:42 XeF4: I'm not into proofs sorry. 10:00:44 Well, it only returns primes whose sums of digits also are primes, whose sums of digits are primes, etc. 10:01:04 And all decimal digits should also be one-digit primes. 10:01:12 On top of that, it does a normal primality check. 10:01:21 But 17 is a prime and 1+7 = 8 10:01:36 joonas: right, so 17 isn't what we're looking for 10:01:43 Yup, that's why it doesn't print it. 10:01:59 23, 2+3 = 5. 10:02:01 these are: 2 3 5 7 23 223 2777 7727 27527 33377 10:02:03 223, 2+2+3 = 7 10:02:04 etc. 10:02:20 Oh, sorry. Thought you were looking for all primes. 10:02:48 so did I :) 10:03:41 heh :) all primes made of digits that are primes, and who's digits add up to 2,3,5,7 or 23 10:04:01 there is only one such number that does not fit in 32 bits :) 10:04:23 What a strange problem. Where does it come from? 10:04:26 Well... actually you can use the original definition. 10:04:38 Herkamire: How do you know that? 10:04:49 joonas: Actually, I was playing with my nick on another IRC server, and I told people to change nicks to this kind of primes. 10:05:13 2,3,5,7,11,13,17,19,23 10:05:29 19 adds to 10, 17 adds to 8, 1 is not prime 10:05:42 Robert: why? 10:05:52 joonas: I made a program that finds all the ones that fit in 32 bits, and once you have 12 digits, there is only one odd number where the digits are as small as 23 (22222222223) and Robert checked that it's prime with calc 10:05:52 joonas: Because I was bored :) 10:06:27 Herkamire: Ah, so you know there exists at least one such number that doesn't fit into 32 bits. ;) 10:06:48 Actually, the definition of a Dunder Prime(tm), is that it (a) should be a prime, (b) all its decimal digits should be primes, (c) the sum of its decimal digits shoud be a Dunder Prime. 10:06:55 So, the numbers could be larger. 10:07:20 --- join: ASau (~asau@158.250.48.197) joined #forth 10:07:27 Privet :) 10:07:33 yep. we've just found all the Dunder Primes that are less that 10^31 10:07:36 Good evening! 10:07:44 hi ASau 10:08:12 I've changed my soft in major part. 10:08:34 Now I avoid m$ if it is possible. 10:08:37 Robert: thanks for the definition. Makes much more sense now. 10:09:10 No problem :) 10:11:04 So how many Dunder Primes are there <10^31? Someone mentioned a number ~1000 or so. 10:13:21 joonas: there is exactly 1 number too big for 32 bits, that is prime, with prime digits, that adds up to 23, and it's 22222222223 10:14:10 yeah, it's around 1080 lemme check 10:15:53 sorry, 207 10:15:54 Herkamire: But there might be others that are larger, according to the definition Robert gave. Namely, defn doesn't say the digits have to add up to 23, just that the sum is also a Dunder Prime. 10:16:22 I believe there are 208 that are less that 10^31 10:16:43 So a prime whose digits add up to 22222222223 would qualify. 10:16:53 Yes. 10:17:02 --- join: KOHTPA (~asau@158.250.48.197) joined #forth 10:17:04 joonas: yes, and the next higher Dunder Prime is 223, and to have the digits add up to 223, you would have to have at least 32 digits 10:17:08 That would sure be a nice number. 10:17:12 Kontra? 10:17:22 ;) 10:17:29 What's that? 10:17:30 Ah, good point. 10:17:42 I'm testing my new soft... 10:17:58 An error happened... :( 10:18:09 KOHTPA: what software? 10:18:17 Hmm.. I don't see how I could code that routine to generate the "prime digit" numbers. 10:18:27 Can you give me a hint, Herkamire? 10:18:49 Herkamire: I'm testing my new IRC client. 10:19:02 KOHTPA: use irssi 10:19:09 KOHTPA: or are you writing one? 10:19:25 : appdig ( u1 digit -- u2 ) swap 10 * + ; 10:19:27 Robert: use base-4 to count, and then map base-4 digits like so: 0->2, 1->3, 2->5 3->7 10:19:27 No, I'm beta-testing 10:20:23 Ah! 10:20:24 Thanks. 10:20:54 Robert: we used recursion. we defined DIGIT ( base x -- ) which drops base by 10x and recurses 4 times (first time putting a 2 as that digit, then with a 3... 10:20:57 Now, I'm running DOS + TCP/IP + IRC client 10:21:26 Robert: when base reaches zero, it checks x to see if it's a Dunder Prime, and returns. 10:21:40 KOHTPA: Nice :) 10:21:55 Robert: I was thinking of doing a base-4 thing like joonas is talking about, but this works great, and it's gotta be faster 10:22:37 Robert: That is why I am one under two names :) 10:22:45 But it is rather strange 10:23:43 : digit ( place n -- ) swap 10 / swap over 0= if check drop exit then 10:23:43 ddup over 2 * + digit 10:23:43 ddup over 3 * + digit 10:23:43 ddup over 5 * + digit 10:23:43 over 7 * + digit ; 10:23:43 when I sat under Win95 my duplicate used to disappear by this time... 10:24:15 Herkamire: So you keep a list/hash/whatever of all previously found Dunder Primes and then check primality only if the sum of the candidate's digits is one of the earlier found ones? 10:24:29 call like so: 1000 0 digit and it will check all 3 digit numbers made from 2,3,5,7 digits 10:25:32 joonas: you could, except all but the first 6 and the last 3 that are < 10^31 add up to 23, so it's easier to just check against 23 10:26:12 Ah yes, you mentioned that. 10:26:17 Herk: voihanherrajumala why don't you just make a table of digit pairs 0..100 (or digits 0..10) and 10 /mod @ if mightbedunder else then ; 10:26:18 Way faster. 10:27:06 XeF4: I did something like that yesterday 10:27:49 was there a problem with it? 10:27:59 as tathi pointed out that way to check up to 1G I'm checking 10^9 numbers instead of 4^9 10:28:49 and actually, *nod* 10:29:59 turns out to be a few magnitudes faster. it went from a few minutes to < 40ms for up to 1 million 10:30:47 and now it checks up to 1 billion in about 720ms 10:32:24 Hm. 10:32:24 rrr... 661ms 10:32:43 320ms for 10 to 10^9. 10:32:45 :) 10:32:48 Thanks Herkamire. 10:33:27 Robert: sure :) it was tathi's idea to get the permutations recursively 10:33:42 tathi: You get a hug, too then. 10:34:12 2.53 seconds up to 4*10^9 10:34:28 Variable tmp Create primedigs 2 , 3 , 5 , 7 , : 0 dup tmp ! 262144 ?do i 0 18 ?do dup 3 and cells primedigs + @ tmp @ 10 * + tmp ! loop loop ; 10:34:31 or so 10:34:42 : gennums 0 ... even 10:37:23 Robert: that's about right :) when I went up to 4 billion, it took 1.7 secconds or something vaguely like that. the different is probably the speed of our computers now :) 10:37:49 XeF4: May I ask, what are you calculating? 10:38:21 KOHTRA: list of Dunder prime candidates 10:39:35 I.e. you're looking for big primes? 10:39:45 no 10:40:18 ignore that version, it's buggy. 10:46:17 KOHTPA: definition of a Dunder Prime: i) one of {2,3,5,7} or ii) a prime whose digits sum to a Dunder Prime and are in {2,3,5,7}. 10:49:43 Create primdigs 2 , 3 , 5 , 7 , 0 10:49:44 Create rprimdigs -1 , -1 , 0 , 1 , -1 , 2 , -1 , 3 , -1 , -1 , 10:49:44 : nextcan ( u1 -- u2 ) 10 /mod cells rprimdigs + @ 10:49:44 1+ cells primdigs + @ dup if swap 10 * + else drop 1+ 10* then ; 10:49:49 slightly opvercomplicated , but ... 10:51:43 How well does your sqrt() work with the recursive number generator? 10:52:46 variable lsqr 10:52:46 : sqrt lsqr @s begin 2dup dup * swap lt if 2 + [ swap ] 0 until then nip dup lsqr !s ; 10:52:55 joonas: You mean, number (ab..cd) is a Dunder prime, if a+b+c+d is in {2,3,5,7} 10:53:01 AIR? 10:53:28 ... a+b+...+c+d ... 10:54:03 KOHTPA: each digit has to be prime, and the sum of all digits has to be a Dunder Prime 10:54:05 KOHTPA: No, the definition is recursive, so that 223 is a Dunder Prime because 223 is a prime, and 2+2+3 = 7 is also a DP. 10:54:28 KOHTPA: Similarly, any prime whose digits are in {2,3,5,7} and sum to 223 would also be a Dunder Prime. 10:55:29 Aha! You mean (a+b+...+c+d) is DP <=> (ab..cd) is DP. 10:55:35 Now it'd be interesting to play with Dunder Primes using other bases than 10. 10:55:56 oook 10:56:01 one last time :) 10:56:24 Create primdigs 0 , 2 , 3 , 5 , 7 , 0 10:56:24 Create rprimdigs 0 , 0 , 1 , 2 , 0 , 3 , 0 , 4 , 0 , 0 , 10:56:24 : nextcan ( u1 -- u2 ) 10 /mod cells rprimdigs + @ dup 0= if exit then 10:56:24 1+ cells primdigs + @ dup if swap 10 * + else drop 1+ 10* then ; 10:56:26 Robert: pass in whatever base you want to DIGIT, and change 10 u/mod to base u/mod 10:56:35 Yes. 10:56:52 Actually, I've written a C program now ;) 10:57:27 bad Robert ;) 10:57:29 KOTHPA: yes, except the recursive defn needs to "bottom out" at single-digit primes, so it includes {2,3,5,7}. Without including those, the definition would be incomplete. 10:57:35 I've finally had enough. I stuck my prog in the examples folder for fpos, and I'm going to do someting slightly more usefull now. 10:57:38 I hope... 10:58:18 OK. I hope I've understood you right. 10:59:38 Th.1. For all D.P. a: a mod 9 ={2,3,5,7}. 10:59:53 Proof. Obvious. End. 11:00:11 : testall begin 2 while isprime? repeat ; 11:00:25 : testall begin 2 while isprime? nextcan repeat ; 11:00:59 XeF: ... 2 while ... <-- infinite loop. 11:01:24 yes it is :) 11:01:49 : testall 2 begin dup while isprime? nextcan repeat ; 11:01:57 brb, coffee 11:02:40 Th.2. Another base, p. Each D.P. a(base p) is: a mod (p-1) = {2 mod p, 3 mod p, 5 mod p, 7 mod p}. 11:02:49 Proof. 11:03:15 Using finite integer ring...obvious. 11:03:21 Proved. 11:04:45 KOHTPA: Ah, yes, right. You got it. 11:06:35 KOHTPA: Although, that proof wouldn't fly in an exam. :P 11:06:51 Now you can look (worst case) numbers that are (modulo p-1): (2 mod p),.. 11:07:14 joonas: I'm not passing exam right now! :) 11:07:28 joonas: uh oh, you're a schoolteacher? 11:07:29 I'm solving a problem! 11:07:36 KOHTPA: what's with p-1 11:07:39 XeF4: no 11:07:50 if it's base 10 you do "10 mod" 11:08:11 XeF4: just thinking what would happen if *I* put that kind of proof in an exame paper. :) 11:08:33 Hm. That square root word of yours, does it increase the square root by 2 until it squared reaches x? 11:08:58 joonas: I'm not a mathematician, I'm a chemister ;) 11:09:15 XeF4: had a little trouble with KOHTPA's theorem at first. 11:10:19 Th. #1 is a particular case of th.#2, isn't it? 11:10:27 Yes. 11:11:09 Consider finite ring with elements (modula) {0,1,2,..., p-1}. 11:11:19 Just that you saying "obvious" had me thinking for a bit. :) 11:11:40 Addition is addition modulo p. 11:11:55 Multiplications is multiplication modulo p. 11:12:15 I see it now: any number in base-p is written as \sum_i a_i*p^i, then in mod p-1 this reduces to \sum_i a_i. 11:12:28 Right. 11:12:45 \sum_i a_i must be a Dunder Prime by defn, so apply the theorem again until the base case is hit. 11:12:46 Now it's oblvious. 11:13:50 Using this feature you can optimize brute search. 11:15:41 Hmm. If one uses that (^^^high above) definition, one has to conclude, 11:16:18 that all numbers that are {2,3,5,7} mod p are D.P. 11:16:33 That is strange to me. 11:16:45 Are you sure in your definition? 11:16:49 KOHTPA: It also has to be a prime. 11:17:03 Ah! 11:17:22 Than everything is OK. 11:19:19 3-2=1; 5-3=7-5=2; 2-7=p-5 in our ring. 11:21:37 I think, the simplest solution is Eratosthene's sieve with additional condition. 11:22:34 My schoolmate told me that sieve is the fastest way to find primes. 11:23:57 KOHTPA: That depends on what you want. If you're looking for 200 bit primes, I'm sure the sieve isn't the fastest way. :-) 11:24:55 He meant primes fit in those 32 or 64 bits, of course. 11:25:25 KOHTPA: the algorithm to find the Dunder Primes is about 400x slower if you first find primes, then see if they are a Dunder 11:25:42 As I remember -- 32 bits. 11:25:43 sorry, that's about 4000x 11:26:01 Herk: does Dunder only apply to base 10? 11:26:23 Originally, yes.. But you can use other bases. 11:26:28 In case anyone's interested, a polytime primality test has been discovered recently: http://www.cse.iitk.ac.in/news/primality.pdf 11:26:36 of course, I just wasn't sure of the definition. 11:26:42 I saw that one earlier, joonas. 11:26:58 joonas: Have you seen any fast implementations I could steal? :) 11:27:00 what does polytime mean? 11:27:16 Robert: sorry, no. I'd still stick with probabilitistic implementations. :) 11:27:39 joonas: Are they much faster? 11:27:58 Herkamire: That the running time of the algorithm is polynomial in the size of the input. In this case, the number of bits. 11:29:27 joonas: polinomial... you mean linearly proportional? 11:29:30 Well, you can step by choosing {2,3,5,7} mod 9 integers, testing them for primes. 11:30:18 x^3 + 2x^2 is a polinomial 11:30:32 Test on primity is quite simple, O(sqrt(n)) for number n. 11:31:04 I.e. your alg. in this case is O(n^{3/2}). 11:31:51 Herkamire: No, polynomially proportionally. ;) For example: two nested loops like N 0 do N 0 do DOSOMETHING loop loop does n^2 iterations, so is at least proportional to N^2. 11:33:31 Well, I think everything is obvious now. 11:33:43 Coding is a homework. :) 11:34:13 x^2 is a polynomial, but so is x^192338 so saying that it's proportional to a polinomial doesn't seem like much of an advantage to me 11:35:11 True enough, but when the alternative is of the form a^x (for a constant), then it's an improvement for big x. 11:35:12 Herk: I wonder what you say if you have O(e^n) algorythm. 11:36:01 KOHTPA: what is O() ? 11:36:53 That is "number of your elementary alg. steps is bounded by function..." 11:38:14 Examples: bubble sorting of n-element array has n*(n-1)/2 comparisons and exchanges. 11:38:34 Bubble sorting is O(n^2) alg. 11:38:36 KOHTPA: so O(e^n) is the set of numbers that can result from e^n... basically any real number >0 11:39:33 No, it is not _set_. 11:40:00 sorry. I'm not speaking algebra. I just mean all numbers >0 11:40:47 It is an upper bound of your steps, you have to do till algorythm finish. 11:41:23 ok 11:41:32 Herk, of course all numbers are positive, since you cannot make negative number of steps. 11:42:25 unless you're really good at optimizing =) 11:42:49 :))) 11:42:54 ok, so your saying that with bubble sort, if you have n elements in the array, there will not bemore than n^2 compairs to get it in the right place O(n^2) 11:43:05 XeF4: heh :) 11:43:24 bubblesort is: O(n*(n-1)/2) 11:43:35 compairs/sort 11:43:57 Herk: If you consider a really big numbers, n<<<<<<< So n is not counted. 11:44:28 It is toooooooooooo little to be counted. 11:45:09 And, to be precise, a constant multiple, is not written, it is assumed. 11:45:12 n is too small or the -1? 11:45:35 ok, so this is close enough: 0(n^2/2) 11:45:40 E.g.: O(n^2/2)=O(n^2*100000)=O(n^2). 11:46:37 so O() only tells you how the difficulty changes, it doesn't tell you anything about how many operations something will take givin n 11:46:52 Yes. 11:47:06 gocha 11:47:38 so what is the O() for that primes algorythm joonas posted? 11:47:48 It is done so, because you cannot expect too large constant multiples. 11:48:04 Let me see... 11:49:04 I can't find any alg. posted by joonas. 11:49:24 http://www.cse.iitk.ac.in/news/primality.pdf 11:49:46 :) 11:49:59 I'm in single job environment. 11:50:35 Simple way to test primality: 11:50:49 I think my Dunder thing is O(4^n) 11:51:41 to test if you can divide a number on 2, and on odd numbers, that are not more than square root of tested. 11:52:29 Herk: A simple rule. 11:53:21 I check 2 mod, then all odd numbers up to the square root of the number I'm checking 11:53:47 I'm sure there is a quicker way 11:53:49 You cannot get O(e^n)<=O(4^n) if you have not searched along choices. 11:54:13 Your alg. is polinomial. 11:54:28 It is much simpler than O(4^n). 11:55:19 do you mean e as in 2.718281828...? 11:55:22 This alg. is O(sqrt(n)). 11:55:42 Yes. e=2,71828... 11:55:54 ok, good. 11:56:45 my main loop is O(4^n). my prime checker is O(sqrt(x)) 11:57:52 to find Dunders up to 1 billion I think I only check for primes about 1080 times. I could double check that 11:58:07 How many loops do you have deeped? 11:58:32 1/digit 11:58:57 A-a-a... 12:00:09 If you consider all n-digit numbers than you have 4^n (digits are: 2,3,5,7). 12:00:17 You're right. 12:01:31 that's how I figure it 12:01:50 joonas: I wonder, what weather do you have there in Helsinki? 12:02:26 Here in Moscow it is awful: wet and cold. 12:03:07 ;) That is your work: you clouds go here... :))) 12:05:29 : odd-prime>3? ( 2n+3 -- 0 | 0<>) 12:05:30 3 12:05:30 begin 2dup mod 12:05:30 while 2dup dup * > 12:05:30 while 2 + repeat then mod 12:05:30 ; 12:05:32 : odd? 1 and ; 12:05:34 : prime? ( n>0 -- 0 | 0<>) 12:05:36 case 12:05:38 1 of false endof 12:05:40 2 of true endof 12:05:42 3 of true endof 12:05:44 dup odd? if odd-prime>3? else drop false then 12:05:46 0 endcase 12:05:48 ; 12:05:50 : .primes 0 ?do i prime? if i . then loop ; 12:06:46 KOHTPA: sorry, wasn't paying attention. It's nice and chilly here. 12:07:33 joonas: That sounds good. I don't like Moscow for such a weather. 12:08:53 In my town the weather is not wet and cold. If it is cold, it's dry. 12:10:21 brb 12:11:54 Well, now you've written primes. 12:12:54 joonas: factor it even more! ;P 12:13:05 Instead of "0 ?do" you should usee variable increment of: <1, 2, 2, 5> 12:13:43 This is for base decimal. 12:14:26 Good evening, futhin! 12:14:46 hola asau 12:14:47 Is this your exercise? 12:15:01 ? 12:15:26 Your advice: "good! factor more" 12:15:59 sounds like it is you who's given this task. 12:16:01 :) 12:16:45 It seems like trainer's advice :))) 12:16:55 It was Robert's idea. 12:17:05 idea -> task 12:17:15 I've understood. 12:19:02 --- join: wossname (wossname@HSE-QuebecCity-ppp82151.qc.sympatico.ca) joined #forth 12:19:34 "it's not forth if the words are not 1 or 2-liners" -- futhin 12:19:40 :P 12:20:20 wossname: coming here to escape robert? :) 12:20:46 (even tho robert is here) 12:20:57 :) 12:21:01 hi futhin 12:21:12 Good night! 12:21:29 here is an incredible puzzler: - (a b -- b-a) or (a b -- a-b) 12:21:38 'night 12:22:27 joonas: A test for "3 of true endof" is unnecessary. 12:22:57 you seee, this problem is hurting my head. which?! 12:22:57 wossname: stack pictures are evil and anti-forth anyways 12:23:10 wossname: the seccond one 12:23:17 na herkamire 12:23:20 it's a trick 12:23:22 it's the first one! 12:23:25 :P 12:23:28 joonas: odd-prime?>3 ---> odd-prime 12:23:51 wossname: "6 -" would subtract 6 from whatevers on the top of the stack 12:24:03 ok 12:24:04 b - a 12:24:17 er 12:24:19 grr, futhin ;0 12:24:22 :PPPP 12:24:28 a is top of stack! ;PPP 12:24:33 KOHTPA: but if you look at the code, then the "2dup mod" condition of the first "while" would fall through, and say that 3 isn't a prime. 12:24:53 joonas: also for 1 12:24:54 wossname: you need a forth interpreter to learn this stuff. 12:25:16 * XeF4 scrolls back to look for futhin's example code of how it should be 12:25:17 you just type "1 2 - ." and see what comes out (-1) 12:25:24 * futhin runs across the meadow, skipping and picking up flowers 12:25:27 * XeF4 can't find it 12:25:34 xef4: look again 12:25:49 KOHTPA: That's why it's named odd-prime>3? :) (but notice that it works only for odd numbers) 12:25:50 joonas: I've mistaken. 12:25:52 i'm writing one! no time to downloadit. 12:26:04 futhin: still not there 12:26:08 Too many line to scroll. 12:26:17 xef4: i know, i made you waste your time a little more 12:26:33 wossname: have a reference system 12:27:10 : oddprime>3? 3 begin 2dup mod while 2dup dup * > while 2 + repeat then mod ; 12:27:35 wossname: if you picture the stack with the top to the right, then the math operators (+ - * / mod etc.) work as you would expect in C if you were to put that operator between the top of stack and the one under it. 12:27:45 maybe that could be a little smaller, but it could certainly be a one/twoliner 12:28:05 KOHTPA: the logs are here: http://tunes.org/~nef/logs/forth/ 12:28:05 ok, thanks 12:28:08 --- quit: futhin ("later guys") 12:28:22 wossname: ie if your stack looks like this: 2 3 (3 is on top) and you did "-" it would evaluate like C: "2 - 3" 12:30:16 I should go. 12:30:20 Bye! 12:30:24 --- part: KOHTPA left #forth 12:36:21 This has been fun, but I've got to go. bye all. 12:36:25 --- quit: joonas ("ircII2.8.2-EPIC3.004+Kasi --- Bloatware at its finest.") 12:39:16 I like RPL 12:39:24 --- quit: ASau (Operation timed out) 12:39:26 after some time to adjust =) 12:44:27 forth is coool 12:45:46 --- join: Soap` (flop@202-0-42-22.cable.paradise.net.nz) joined #forth 13:50:45 --- quit: Robert (Remote closed the connection) 13:50:52 --- join: Robert (~Robert@robost86.tsps1.freenet6.net) joined #forth 14:18:45 --- join: TheBlueWizard (TheBlueWiz@ip-216-25-205-184.vienna.va.fcc.net) joined #forth 14:18:49 hiya all 14:19:39 --- nick: wossname -> countwoss 14:21:37 TheBlueWizard: hi :) 14:22:15 --- join: RandomCodeBoost (~RandomCod@rev213-168-194-93-ncdial4.nc-ppp.net) joined #forth 14:22:19 ++countwoss; 14:22:21 --- part: RandomCodeBoost left #forth 14:23:53 hehe :) 14:24:30 ,-9 14:25:37 hiya Herkamire 14:25:43 lol 14:29:50 countwoss? 14:30:10 i'm being original by stealing from more than one source 14:30:13 woss? 14:30:40 wow, r u a user? 14:30:56 no :(( 14:30:58 imean channel member.. 14:31:15 i'm here to set up camp for a while, yes 14:36:34 Hi :) 14:36:50 hello, criminal idler 14:36:58 Sorry, dear. 14:37:56 How are things going? 14:38:44 busy...right now I'm chatting with a buddy in other channel :) 14:42:02 countwoss: Ping? 15:13:01 pong 15:13:05 gpood night :( 15:13:12 Hey 15:13:14 Eh? 15:13:16 Night? 15:13:19 gonna go out 15:13:23 :-( 15:13:25 Bye 15:13:28 byebye 15:13:35 --- quit: countwoss ("^_________------ NATTI - _$@!") 16:00:48 gotta go...bye all 16:04:08 --- part: TheBlueWizard left #forth 16:34:14 --- join: bwb (~bwb@ip68-4-124-131.oc.oc.cox.net) joined #forth 16:37:47 --- quit: Herkamire ("leaving") 17:57:54 forth NG is very good 17:58:05 --- join: joonas (jpihlaja@kruuna.helsinki.fi) joined #forth 17:58:08 high signal to noise ratio 17:58:29 fridge: comp.lang.forth? surely you jest. 17:59:14 c.l.f. is much better than most. 18:00:07 yeah, but that doens't say much 18:00:59 I've just been on a MUD for the first time ever. It was strange. Nice. 18:01:21 and c.l.f's SNR drops a lot more when Fox starts posting than when eg.. c.l.lisp's does when Naggum starts posting 18:02:07 I rather like most of the initial posts of the threads that Jeff starts. 18:03:17 I think he's got a lot to say. I just wish he said it less verbosely. Ditto for John Passaniti. 18:04:35 Anyway, I'm off to bed real soon now. 'night all. 18:04:43 --- quit: joonas ("ircII2.8.2-EPIC3.004+Kasi --- Bloatware at its finest.") 18:04:43 I think he's got a lot to say, but the way in which he says it is inexcusable 18:09:49 XeF4: I think it is very good, as newsgroups go, looking at the initial threads the majority are asking sensible questions that are on topic 18:10:08 and when those threads go off on a tangent is when I hit ignore threads button 18:11:07 where tangent means something like: "you are mentally unbalanced" "am not" "are too" "am not" "are too!" "no i aint" "yeah you are" ... ad infinitum 18:13:28 --- join: Herkamire (~jason@ip68-9-59-184.ri.ri.cox.net) joined #forth 18:37:07 --- join: snowrichard (~richard@66.190.101.66) joined #forth 18:38:58 anybody here? 18:39:18 me me me me 18:39:23 ;) 18:39:34 what's up? 18:39:52 haven't gotten much further with my vax forth, been playing with my sparcstation instead. 18:40:38 but I found out you can put code in the data space so it woin' 18:40:48 won't be as complicated as I thought. 18:41:42 cool 18:42:44 just need to write the actual outer interpreter and any supporting words for it. I have a problem with the macro part of the assembler though, its pretty braindead. (gas) 18:43:23 I'll have to tell the macro the preceding word for the link field, there are no assembler variables. 18:43:25 yeah 18:44:29 my son wants a PS/2 for christmas. I told him I might get him one if I can try netbsd on it. :) 18:44:42 :) 18:45:21 we could write a game together . 18:46:08 how old is he? 18:46:12 12 18:46:40 does he do any programming yet? 18:46:43 pretty good in math, in 6th grade reading on 9+ level. 18:47:02 good good 18:47:36 I don't know if he's done any algebra yet. a nephew his age messed with Python enough to change the error messages on his own. 18:48:09 He had a 486 debian box. 18:48:12 well, that's when I started programming 18:49:03 there were no home computers when I was that age. I started when I took a few college courses in high school. 18:49:45 on big iron. a 360 with 512K memory ran the whole campus. :) 18:50:11 cool :) 18:51:01 now I can run a 360 in linux that is faster than that one. 18:51:10 hercules emulator 18:51:37 computers have come quite a way since then 18:51:52 haven't seen that 18:52:31 the hercules? its pretty cool if you ever used an IBM mainframe. It can run the Z-series linux if you have a fast enough machine. 18:52:56 simulates the entire series from 360 to the Z-series. 18:53:01 heh, "It's the ideal toy for everyone who always dreamed about having an IBM mainframe computer at home." 18:53:17 looked at the web page? 18:53:53 I found schaefernet.de/hercules/ 18:55:07 some of the older IBM os'es are available to run , like an early version of VM/370 18:56:31 and OS/360 and OS/mvt 18:57:10 bloatware compared to a system that boots forth though. :) 18:58:12 yup 18:58:31 I'm working on that, on and off, for my computer 18:58:55 well I have three computers here. I'd have to make up my mind. sparc, vax, and AMD 19:01:08 I downloaded the sparc architecture manual, but the vax seems to be easier for programmers. Cisc vs Risc debate you know. 19:01:21 sparc is risc? 19:01:30 claims to be, 76 instructions 19:01:50 versus over 200 on vax 19:02:40 the sparc instructions are all the same length, only three addressing modes if I read right. 19:02:55 vax instructions variable length, 0 to 5 operands. 19:03:31 I see 19:04:15 the particular vax I have compared to the particular sparc I have the sparc is faster, there were faster vaxes made though. 19:05:09 sparc is still much slower than my 1.2 Ghz AMD of course. 19:05:27 is vax still around? 19:05:55 stopped selling new ones in 2000. some places still have them in use but most have migrated to Alpha 19:06:08 ok 19:06:34 write the forth for sparc then 19:07:02 so there are lots of cheap vax parts/systems on ebay and other places, same for the older sparcs. I bought this sparc IPX for $10 on ebay. 19:07:15 lol 19:07:22 its 32 bit current ones are 64 bit 19:07:49 I have vax/DEC/old computers connected in my head, so I was wondering 19:07:58 picture on webserver running on the sparc itself: http://csf.dynu.com 19:08:45 its busy compiling php now so it might take a while :) 19:09:32 picture of my vax and AMD at http://opensourceincome.com/vax 19:10:14 have to learn the sparc assembler too... 19:10:16 I don't have any graphical stuff installed on this machine...I've been putting off building X for months :) 19:10:36 I don't have a graphical monitor on the sparc or the vax. 19:10:50 shouldn't be too bad at 76 instructions 19:10:57 the sparc is using a serial port for the terminal. 19:11:54 some of the act really wierd though. like when you branch, you can schedule an instruction to be done before the branch is taken? 19:12:07 oh. hmm 19:12:25 but that can be a noop if you like. 19:12:53 haven't looked at sparc at all. I used to do x86, and now PPC 19:13:30 there is a PDF reference manual somewhere on the web, not sure if it applies to the model I have. 19:14:52 there are two program counters, so that it can do the delayed branch thing. a PC and a NextPC 19:15:37 interesting. sounds like you could write some pretty hard-to-read code with that. 19:16:15 and register windows a whole other wierd thing. when it gets full it automatically stacks some of the registers. the registers are either IN, OUT, or WORK in your code. 19:16:18 I suppose the point is to let the computation of the condition get through the pipeline before the branch executes? 19:16:54 they overlap so that one levels out is the next one's in 19:17:19 or something like that. I'll have to read that part 8 times to get it right. :) 19:17:19 err, I don't follow... 19:17:52 parameters passed in registers. classed as input, output, or work registers. 19:17:52 ah. it's just complicated :) 19:18:22 oh, ok. 19:18:40 but when the window on chip gets full, it stacks some of them. 19:19:16 and unstacks on procedure returns I guess 19:21:16 bah! I want a forth chip. 19:21:48 I started to write a simulator for one in C instead of writing this VAX c thing. 19:22:09 256 instructions ought to be more than enough for a kernel right? 19:23:15 I would hope so 19:23:59 assuming it had some kind of mass storage access instructions, stack ops, arithmetic/logic operators, and the NEXT thing. 19:24:18 and console / file i/o of some kind. 19:24:40 I just grepped the forth source I have with my colorforth, and it looks like I only have about 350 words defined total 19:25:24 so how many are CODE? 19:25:33 (which includes the forth core stuff, a partial assembler for PPC, terminal color codes and the like) 19:25:49 hmm, looks like about 82 19:27:40 I probably have a couple more in some of the other files, but that should be most of them 19:28:35 I thought of a scheme that should work ok unless you got to really big applications. Take the first bit of each execution token and use that as a flag to say if it is a primitive op, or a user defined word. Say if it was 0, it is a primitive. 0 could be Exit. 1 - 127 primitive core words. if the sign bit was 1, take the next 15 bits to look up the actual address of the code for the user defined function. That would give you up to 32767 possbile user 19:28:45 enough for any app I would want to write. 19:30:03 yeah 19:31:25 I was even thinking of doing that with an 8-bit xt and using it as a "computer" in the ships for the space game Herk and I started writing 19:31:29 (assuming we get that far) 19:34:48 or you could use a full 8 bit token for primitives, one of them a Call user defined with 16 bit function number following. 19:36:16 but that would take more space. 19:37:03 but if it's impossible to do useful programs with only 8 bits... 19:38:02 I figure I'll wait until I get to that stage, and then experiment to see what works best 19:39:19 I'm just thinking encode the words that would be CODE in the core as 8 bit opcodes. All the other words would be high level words. 19:40:19 oh. I didn't get that. very clever. 19:41:19 that way your application would have no native code in it, could be moved to the same system running on a different arch and still run. 19:42:31 and the core words have small opcodes, yet you still have plenty of space for user-defined words. 19:42:34 I like it. 19:43:05 so long as your memory addresses don't have to be alligned, sounds great 19:43:31 there wouldn't be any real addresses in the code. 19:43:55 a 15 bit user function number that would be a subscript into a table of the actual addresses. 19:44:42 the table could be aligned, but the code would be on byte boundaries. 19:44:55 I think he means that on PPC 16-bit loads have to be from a 2-byte boundary 19:45:29 but I'm assuming you'd just load a byte at a time -- if the top bit was 1 you'd shift up and OR in the second byte 19:45:29 sparc requires alignment too 19:45:51 I thought it might 19:46:44 so if the actual interpreter was written in C, you could make that portable to any *nix like system, and run your forth apps on any of those. 19:47:02 yup yup 19:47:25 or whatever I called this if I wrote it. 19:47:41 Michael is my son's name. that's what I could call it. :) 19:47:58 :) 19:48:24 snowrichard: I've done something simular in C. except all my execution tokens are the same size, and if they are low enough, then they are an index into the aray of primatives, and if they are higher, then they are a memory address to CALL 19:48:45 well I'd have three different archs here to test on. 19:49:03 herk that's probably simpler. 19:49:48 < 256 or bit set takes about the same time to test I guess. 19:52:40 I played with a Small C compiler years ago. rewrote its I/O to run on MS-DOS, the version I had found was for CP/M 19:53:42 later on I changed a version of it to generate M86K code. 19:54:18 M68K I mean 19:54:48 got intel on the brain 19:55:36 well they wouldn't hire me, neither would IBM, AMD, or Microsoft or American Airlines. 19:56:01 lol 19:56:27 kind of touch to get a job when you are schizophrenic 19:56:35 tough 19:56:36 even 19:56:45 do you tell them that? 19:56:57 or is it bad enough that thay can tell? 19:56:58 you don't really have a choice. They ask what medications you take. 19:57:05 and yes they can tell 19:57:21 that's annoying. 19:57:28 I wish you could just show people that you can do the job 19:58:34 I found it frustrating trying to get a programming job. I didn't have a resume, but I had a floppy disk with a bunch of cool programs that I wrote from scratch. 19:58:59 (well, I had a resume, but there was no "4 years programming experience" on it) 20:00:49 listening to nephew-in-law trying to get great niece to walk to him. on the phone. 20:01:00 :) 20:01:11 she'll be 1 in december 20:01:18 cute 20:02:30 well I do have some programming experience on my resume, with 1 job, database admin/design/system admin/trainer/tech writer (1 man it department basically) 20:02:54 4 years total. But not recent enough. and on VAX 20:03:29 I wasn't trying to get a high paying programming job. 20:03:47 I just wanted in so I could get some experience on my resume and get a real job, or something 20:04:32 I couldn't get a job as a coder in Dallas with a 4 year degree, the mental thing makes me not interview well. 20:05:27 and a defense contractor? forget it. they took one look at my DD-214 and said they couldn't talk to me at all. 20:06:54 so now the VA says I am "unemployable" and "totally and permanently disabled". I collect my check and stay at home. 20:07:03 :( 20:07:08 that sucks 20:07:29 I've gotten a job at every place I've interviewed at (not too many places, but it gives me some confidence) 20:07:57 the unemployable part sure does. If I earn enough money to pay taxes on I would lose about $1000 a month in benefits, possible fraud charges, its safer not to try to work at all. 20:08:38 how much money do you get for staying at home? 20:08:53 $2376 a month, with annual COLA 20:09:03 holy shit 20:09:07 increase if there is inflation 20:09:25 what are you complaining about dude? 20:09:27 took 15 years to get that though. 20:09:44 I was living on $76 a month for 8 years 20:10:51 then I moved to Houston for a Vista volunteer job that payed $440 a month and they raised it to $500 a month. 20:11:38 ouch 20:12:20 I only make about 1600/month 20:12:50 so after so many years of living in poverty I feel like I deserve to buy an old computer or two to play with if I want to. 20:13:24 do you have a family to support with some of that money? 20:13:32 do you have to live in a city to get it? 20:13:34 I have a wife and son. 20:13:51 live in the country basicallyl, small town in East Texas. 20:14:11 I can't raise my son, though, he lives with my brother. 20:15:52 son gets an allowance out of that. its not court ordered but I think its fair that I give him what I can. 20:16:51 --- join: proteusguy (~proteusgu@65.191.88.177) joined #forth 20:18:38 my coffee got cold. brb 20:19:31 + 20:22:29 so I guess they thought I was crazy to move to Houston :) 20:22:39 why? 20:22:52 they raised the disability after I went there. 20:23:21 grr...this code was supposed to work the first time I tried it :) 20:24:06 that's what all the structured programming literature I used to read said: "code that works right the first time" ... now XP says "test test test" 20:28:21 so what kind of code tathi? 20:28:59 my new colorforth encoder 20:29:16 would you believe my php apache module finally finished installing in my sparcstation? 20:29:45 I started the install hours ago, it needed perl for some reason. 20:30:07 oh. 20:30:21 I have never seen color forth is there a home page ? 20:30:39 I was just about to say that it was 20 minutes ago when you said it was building... :) 20:30:53 chuck's site is www.colorforth.com 20:31:05 it had finally finished the perl build and started on the php module. 20:31:39 I'm having issues with perl here -- the sockets stuff doesn't work 20:32:14 I finally gave up and installed a client written in C to update my dyndns account 20:33:46 cool but I 20:33:59 am colorblind. could I use like italics /bold fonts, etc.? 20:34:34 snow: not with chuck's implementation 20:34:50 but I am red/green colourblind and slightly tweaking the palette works fine for me 20:35:07 you can change the pallet? there are some colors I can see 20:35:21 mine is green/brown I think. 20:35:33 but red/green is hard too 20:36:15 blue and yellow are easy to tell apart for me. 20:36:30 but not the green/ brown/reds 20:38:21 you can, but I haven't used Moore's colorforth in ages, so I don't remember how 20:38:34 (and I only used it for one day since it doesn't work on my machine) 20:40:53 well I guess I can come back another day when I have some code that works and need some beta testers :) want to play with PHP now that it is installed. 20:42:13 have fun... 20:42:21 --- quit: snowrichard ("BitchX-1.0c19 -- just do it.") 20:47:35 --- quit: tathi ("leaving") 21:08:29 I am stumped 21:09:48 I am doing the gforth tutorial, it asks me to redefine min using a bitwise op instead of IF,THEN statement 21:11:14 2dup < 2dup and >r 0= and r> + 21:11:40 or maybe the < is a > 21:12:15 that relies on TRUE being all 1 bits (which it is supposed to be I think) 21:12:28 yeah, thats right 21:12:55 rrrr that last + should be a AND 21:13:18 or... it doesn't matter :) 21:13:19 what is >r, r> ? I haven't come across that bit of the tutorial yet =P 21:13:43 der... never mind. it should be a bitwise or, or a + 21:14:20 >r takes the top-of-stack and puts it on the return stack. r> moves it back to the stack 21:14:54 I used them to get that flag out of the way for a sec 21:15:20 how many stacks are there normally? 21:15:30 you must be very carefull to remove everything you put on the return stack before you exit 21:15:34 2 21:15:35 I have only been using the data stack up till now 21:15:45 fridge: that's normal 21:16:01 you don't need the return stack that much 21:16:06 (explicitly) 21:16:50 the return stack is used by do/loop and for/next and once for each word that is executing 21:20:20 my code doesn't work does it... 21:21:01 fridge: but you get the idea, that the key is to use a compair, and and the true/false to the operands 21:24:08 you want the working version? 21:26:36 maybe I'm on the wrong track. it works, but maybe there is a better way 21:32:14 hmmm 21:33:25 I don't think it's possible without a compair 21:35:34 possible with a subtraction if you have a twos-complement machine 21:35:48 I had previously redefined min as : min 2dup > IF swap THEN drop ; 21:36:10 but this bitwise stuff hurts my brain 21:48:15 --- join: neobrat (neobrat@0-2pool67-211.nas6.salt-lake-city1.ut.us.da.qwest.net) joined #forth 21:48:22 'lo all 21:51:56 --- quit: neobrat (Client Quit) 21:57:31 Herkamire: I give in, whats the working version? 22:10:41 --- quit: nDuff (Read error: 113 (No route to host)) 22:28:14 : min 2dup > swap over and >r 0= and r> or ; 22:29:04 XeF4: what's the algorithm? 22:30:09 you could replace ">r 0= and r>" with "rot rot 0= and" if that makes you more comfortable 22:37:12 is there a way to format output to binary? 23:01:18 2 BASE ! ...? 23:03:51 BTW when you change BASE, it effects parsing of numbers in source too 23:04:16 DECIMAL will get you back 23:04:26 ( or "1010 DASE !" 23:04:46 s/D/B/ 23:06:20 thanks 23:10:12 fridge: I don't know what the tutorial is trying to get at. your definition is best (2dup > if swap then drop) 23:11:58 oop, bedtime for me. 23:12:06 --- quit: Herkamire ("goodnight all") 23:12:09 --- quit: proteusguy ("Client Exiting") 23:20:15 --- quit: bwb ("later") 23:40:01 --- quit: OrngeTide (benford.freenode.net irc.freenode.net) 23:47:46 --- join: OrngeTide (orange@65.19.141.250) joined #forth 23:50:25 --- join: lament (~lament@h24-78-145-92.vc.shawcable.net) joined #forth 23:59:59 --- log: ended forth/02.11.16