00:00:00 --- log: started forth/07.11.08 00:22:29 --- join: snowrichard (n=IceChat7@65.127.79.7) joined #forth 00:22:35 hello 00:29:12 Hullo, snowrichard. Welcome to #forth on Freenode. 00:29:44 --- quit: forther (Read error: 110 (Connection timed out)) 00:45:05 ayrnieu: Don't recall reading that part. perhaps I should eh? 00:46:13 huh, for some reason it's taking my computer a while to resize this image. Perhaps because it's 150MB 00:46:44 Heh. 00:46:55 Is it a VM image, or do you mean a bitmap? 00:47:06 Because if it's the latter, hot diggity damn, that's a big file. 00:47:24 --- quit: arke (Read error: 113 (No route to host)) 00:50:09 --- join: H4ns (n=hans@p57BBB79B.dip0.t-ipconnect.de) joined #forth 01:00:52 hi again 01:02:31 Hullo, snowrichard. Welcome to #forth on Freenode. 01:03:58 --- quit: snowrichard ("Oops. My brain just hit a bad sector") 01:06:37 --- quit: H4n1 (Read error: 110 (Connection timed out)) 01:13:59 gnomon: greyscale PNG 01:14:57 * JasonWoof awards gnomon 10 points for using the phrase "hot diggity damn" 01:16:45 --- join: Bushmills (n=l@A-98-183.cust.iol.ie) joined #forth 01:21:13 --- quit: Bushmills (zelazny.freenode.net irc.freenode.net) 01:22:34 --- join: Bushmills (n=l@A-98-183.cust.iol.ie) joined #forth 01:22:39 Har! 01:22:41 ;) 01:23:10 JasonWoof, may I ask why the heck you're munging a hundred and fifty megs of greyscale bitmap? 01:23:25 (and please, please tell me that's 150 megs when uncompressed... right?) 01:24:31 compressed 01:24:39 we didn't get the settings right on the scanner at first 01:25:01 Great googly-moogly. 01:25:06 LOL 01:25:11 Are you using... um... Image Magick? 01:25:20 Or Ye Olde Gymppe? 01:25:20 to scale, yes 01:25:28 convert 01:25:32 Gotcha. 01:26:12 I imagine that it's inapplicable to your problem, but a motivated programmer once tried profiling ImageMagick and, after a few weeks of that, gave up in disgust and went on to write his own suite of tools which actually take performance into account... 01:28:00 yeah, I was rather unimpressed 01:28:06 even with the size 01:28:15 gqview didn't take all night to make a thumbnail 01:29:02 I was scaling down to a thumbnail of 120px wide 01:29:16 Apparently the results of the profiler were so stunningly bad that the coder spent almost a week looking through everything in his setup because he couldn't believe that the performance was so bad. 01:29:26 --- join: doublec (n=doublec@203-211-84-47.ue.woosh.co.nz) joined #forth 01:29:28 heh 01:30:27 Holy crap. 01:30:44 I was looking for the name of that suite of tools, and, well... I think this speaks for itself: http://www.lifetechnology.org/moneymagnetultra.htm 01:30:55 I am left without words. 01:31:08 It's like Gene Ray or something, only with less ranting about teachers. 01:31:38 GraphicsMagick! That's the name of the alternative! 01:31:40 I, err, think. 01:33:12 --- join: Bushmill1 (n=l@A-98-183.cust.iol.ie) joined #forth 01:33:33 --- quit: Bushmills (zelazny.freenode.net irc.freenode.net) 01:33:57 --- nick: Bushmill1 -> Bushmills 01:34:04 No, that's not it. Blast. 01:35:38 Nyah-HAH! 01:35:42 http://www.exactcode.de/site/open_source/exactimage/ 01:36:42 Oh, hey, the same fellow maintains minised. 01:38:55 heh, edentify 01:39:13 Nrgh! 01:39:32 The Asus Eee is back in stock at computer store right near my place, and right on the way home from work... 01:39:42 ...and I'm so very tempted. 01:40:13 But Christmas is looming close, and I feel bad about dropping a bunch of money on what is essentially a toy... 01:40:23 Oh, decisions, why must you taunt me so/ 01:40:24 ? 01:41:38 what a bizare website 01:41:51 the navbar link says "open source" and they mention that many times 01:41:53 --- join: arke (i=arke@x247.vpn.hrz.tu-darmstadt.de) joined #forth 01:41:53 --- mode: ChanServ set +o arke 01:41:55 they have a page about each program 01:42:12 but no mention of a license or (here's the really strange thing) no links 01:42:22 is it actually possible to get this software? 01:43:42 freshmeat links to the same page 01:43:49 GPL 01:43:59 freshmeat also links directly to a tarball on his site 01:44:28 ok, I gotta go to bed 01:44:35 gettin' on towards 5am 01:45:34 Heh. 01:45:36 Righto. 01:45:48 G'night, sir. Best of luck with your crazy-go-nuts image problems. 01:58:47 --- quit: Deformative (Remote closed the connection) 01:59:02 --- join: Deformative (n=joe@c-68-61-240-49.hsd1.mi.comcast.net) joined #forth 02:27:21 --- join: arcus (n=ajt@203.173.187.131) joined #forth 03:23:01 --- quit: arke (Read error: 104 (Connection reset by peer)) 03:23:07 --- join: arke_ (i=arke@x247.vpn.hrz.tu-darmstadt.de) joined #forth 03:23:11 --- nick: arke_ -> arke 03:25:53 JasonWoof - oops, wrong book. FSM-diagrams-as-Forth-code starts on page 268 (the discussion of FSMs starts earlier) of Scientific Forth. 03:26:39 Flying Spagheti Monster diagrams as Forth code? 03:26:54 no. 03:27:15 finite state machines? 03:27:17 I'll paste a small quote. 03:27:23 yes. 03:27:26 arcus, hehe, i thought the same thing :P 03:27:31 I knew it! 03:27:51 but flying spaghetti monster diagrams as forth code is funnier. 03:28:49 --- quit: arcus ("Ex-Chat") 03:37:06 --- quit: crest__ (Read error: 110 (Connection timed out)) 03:40:09 http://paste.lisp.org/display/50515 04:05:01 --- quit: doublec () 04:20:16 --- quit: ayrnieu () 04:31:53 --- join: H4n1 (n=hans@p57A0D3DB.dip.t-dialin.net) joined #forth 04:40:20 --- quit: H4ns (Read error: 110 (Connection timed out)) 05:19:20 --- join: ziggurat (n=ziggurat@pool-71-164-227-62.dllstx.fios.verizon.net) joined #forth 05:26:20 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 05:39:37 --- join: snowrichard (n=richard@65.127.79.7) joined #forth 05:39:44 hi 05:41:49 --- quit: timlarson_ (Read error: 104 (Connection reset by peer)) 05:41:57 --- join: timlarson__ (n=timlarso@65.116.199.19) joined #forth 05:43:03 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 05:44:42 --- quit: timlarson_ (Read error: 104 (Connection reset by peer)) 05:44:55 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 05:54:49 --- part: snowrichard left #forth 05:55:20 --- quit: arke (Read error: 110 (Connection timed out)) 05:57:24 --- join: madwork (n=foo@204.138.110.15) joined #forth 05:58:57 --- quit: timlarson__ (Read error: 110 (Connection timed out)) 06:13:48 --- join: arke (n=arke@p54A7E28F.dip.t-dialin.net) joined #forth 06:13:48 --- mode: ChanServ set +o arke 06:31:35 --- quit: ecraven ("bbl") 06:35:29 --- quit: Baughn_ ("Reconnecting") 06:35:39 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 06:49:03 --- join: ayrnieu (n=julian@005M17.oasis.mediatti.net) joined #forth 07:19:13 --- quit: H4n1 (Read error: 104 (Connection reset by peer)) 07:19:35 --- join: H4ns (n=hans@p57A0D3DB.dip.t-dialin.net) joined #forth 08:21:37 --- join: Al2O3 (n=Al2O3@c-75-70-5-69.hsd1.co.comcast.net) joined #forth 08:31:00 --- quit: Al2O3 ("Eggplant & SenseTalk: Driving Success Through Automation") 08:36:02 --- join: Al2O3 (n=Al2O3@164.sub-70-215-238.myvzw.com) joined #forth 09:04:18 --- join: Al2O3_ (n=Al2O3@c-75-70-5-69.hsd1.co.comcast.net) joined #forth 09:05:03 --- quit: Al2O3_ (Remote closed the connection) 09:05:17 --- join: Al2O3_ (n=Al2O3@c-75-70-5-69.hsd1.co.comcast.net) joined #forth 09:13:27 --- join: forther (n=forther@c-67-180-150-67.hsd1.ca.comcast.net) joined #forth 09:26:09 --- quit: Al2O3 (Read error: 110 (Connection timed out)) 09:33:03 --- quit: forther (Read error: 110 (Connection timed out)) 10:08:20 --- quit: Quartus__ ("used jmIrc") 10:08:28 --- quit: Al2O3_ (zelazny.freenode.net irc.freenode.net) 10:08:32 --- join: Quartus__ (n=Quartus_@209.167.5.1) joined #forth 10:14:06 --- join: Al2O3_ (n=Al2O3@c-75-70-5-69.hsd1.co.comcast.net) joined #forth 10:22:56 --- quit: nighty- (zelazny.freenode.net irc.freenode.net) 10:22:56 --- quit: timlarson (zelazny.freenode.net irc.freenode.net) 10:22:56 --- quit: Fractal (zelazny.freenode.net irc.freenode.net) 10:22:56 --- quit: gnomon (zelazny.freenode.net irc.freenode.net) 10:22:56 --- quit: kc5tja (zelazny.freenode.net irc.freenode.net) 10:23:35 --- join: nighty- (n=nighty-@66-163-28-100.ip.tor.radiant.net) joined #forth 10:24:54 --- join: kc5tja (n=kc5tja@c-24-6-87-99.hsd1.ca.comcast.net) joined #forth 10:24:54 --- join: gnomon (n=gnomon@CPE0050eb372bdb-CM000f9f776f96.cpe.net.cable.rogers.com) joined #forth 10:24:54 --- join: timlarson (n=timlarso@user-12l37rb.cable.mindspring.com) joined #forth 10:24:54 --- join: Fractal (i=frax@i.got.the.skillz.to.pay.the.billz.org) joined #forth 10:24:54 --- mode: irc.freenode.net set +o kc5tja 10:32:21 --- quit: H4ns (zelazny.freenode.net irc.freenode.net) 10:32:21 --- quit: ayrnieu (zelazny.freenode.net irc.freenode.net) 10:32:21 --- quit: Baughn (zelazny.freenode.net irc.freenode.net) 10:32:21 --- quit: arke (zelazny.freenode.net irc.freenode.net) 10:32:22 --- quit: happy_gu11 (zelazny.freenode.net irc.freenode.net) 10:32:22 --- quit: CyberSpace (zelazny.freenode.net irc.freenode.net) 10:32:22 --- quit: maht (zelazny.freenode.net irc.freenode.net) 10:32:23 --- quit: slava (zelazny.freenode.net irc.freenode.net) 10:32:23 --- quit: cmeme (zelazny.freenode.net irc.freenode.net) 10:35:34 --- join: arke (n=arke@p54A7E28F.dip.t-dialin.net) joined #forth 10:35:34 --- join: H4ns (n=hans@p57A0D3DB.dip.t-dialin.net) joined #forth 10:35:34 --- join: ayrnieu (n=julian@005M17.oasis.mediatti.net) joined #forth 10:35:34 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 10:35:34 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 10:35:34 --- join: happy_gu11 (n=gav@147.21.16.3) joined #forth 10:35:34 --- join: maht (n=maht@85-189-31-174.proweb.managedbroadband.co.uk) joined #forth 10:35:34 --- join: CyberSpace (i=HydraIRC@c-68-63-244-236.hsd1.ky.comcast.net) joined #forth 10:35:34 --- join: slava (n=slava@CPE0007e97df149-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 10:35:34 --- mode: irc.freenode.net set +oo arke slava 10:37:15 --- join: ecraven (i=nex@eutyche.swe.uni-linz.ac.at) joined #forth 10:45:12 --- quit: happy_gu11 (zelazny.freenode.net irc.freenode.net) 10:45:12 --- quit: ayrnieu (zelazny.freenode.net irc.freenode.net) 10:45:12 --- quit: CyberSpace (zelazny.freenode.net irc.freenode.net) 10:45:12 --- quit: maht (zelazny.freenode.net irc.freenode.net) 10:45:12 --- quit: slava (zelazny.freenode.net irc.freenode.net) 10:45:12 --- quit: H4ns (zelazny.freenode.net irc.freenode.net) 10:45:13 --- quit: cmeme (zelazny.freenode.net irc.freenode.net) 10:45:13 --- quit: arke (zelazny.freenode.net irc.freenode.net) 10:45:13 --- quit: Baughn (zelazny.freenode.net irc.freenode.net) 10:45:56 --- join: arke (n=arke@p54A7E28F.dip.t-dialin.net) joined #forth 10:45:56 --- mode: ChanServ set +o arke 10:46:25 --- join: H4ns (n=hans@p57A0D3DB.dip.t-dialin.net) joined #forth 10:46:25 --- join: ayrnieu (n=julian@005M17.oasis.mediatti.net) joined #forth 10:46:25 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 10:46:25 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 10:46:25 --- join: happy_gu11 (n=gav@147.21.16.3) joined #forth 10:46:25 --- join: maht (n=maht@85-189-31-174.proweb.managedbroadband.co.uk) joined #forth 10:46:25 --- join: CyberSpace (i=HydraIRC@c-68-63-244-236.hsd1.ky.comcast.net) joined #forth 10:46:25 --- join: slava (n=slava@CPE0007e97df149-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 10:46:26 --- mode: irc.freenode.net set +o slava 10:46:28 --- join: happy_guy1 (n=gav@147.21.16.3) joined #forth 10:47:48 --- join: forther (n=forther@207.47.34.100.static.nextweb.net) joined #forth 10:54:05 --- quit: happy_guy1 (zelazny.freenode.net irc.freenode.net) 10:54:05 --- quit: happy_gu11 (zelazny.freenode.net irc.freenode.net) 10:54:05 --- quit: ayrnieu (zelazny.freenode.net irc.freenode.net) 10:54:05 --- quit: CyberSpace (zelazny.freenode.net irc.freenode.net) 10:54:05 --- quit: maht (zelazny.freenode.net irc.freenode.net) 10:54:06 --- quit: slava (zelazny.freenode.net irc.freenode.net) 10:54:06 --- quit: H4ns (zelazny.freenode.net irc.freenode.net) 10:54:06 --- quit: cmeme (zelazny.freenode.net irc.freenode.net) 10:54:06 --- quit: Baughn (zelazny.freenode.net irc.freenode.net) 10:54:26 --- join: slava (n=slava@CPE0007e97df149-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 10:54:26 --- join: happy_guy1 (n=gav@147.21.16.3) joined #forth 10:54:26 --- join: H4ns (n=hans@p57A0D3DB.dip.t-dialin.net) joined #forth 10:54:26 --- join: ayrnieu (n=julian@005M17.oasis.mediatti.net) joined #forth 10:54:26 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 10:54:26 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 10:54:26 --- join: happy_gu11 (n=gav@147.21.16.3) joined #forth 10:54:26 --- join: maht (n=maht@85-189-31-174.proweb.managedbroadband.co.uk) joined #forth 10:54:26 --- join: CyberSpace (i=HydraIRC@c-68-63-244-236.hsd1.ky.comcast.net) joined #forth 10:54:26 --- mode: irc.freenode.net set +o slava 10:54:59 --- quit: cmeme (Read error: 104 (Connection reset by peer)) 11:02:42 --- quit: happy_gu11 (zelazny.freenode.net irc.freenode.net) 11:02:42 --- quit: ayrnieu (zelazny.freenode.net irc.freenode.net) 11:02:42 --- quit: happy_guy1 (zelazny.freenode.net irc.freenode.net) 11:02:42 --- quit: CyberSpace (zelazny.freenode.net irc.freenode.net) 11:02:42 --- quit: maht (zelazny.freenode.net irc.freenode.net) 11:02:43 --- quit: slava (zelazny.freenode.net irc.freenode.net) 11:02:43 --- quit: H4ns (zelazny.freenode.net irc.freenode.net) 11:02:43 --- quit: Baughn (zelazny.freenode.net irc.freenode.net) 11:05:45 --- join: slava (n=slava@CPE0007e97df149-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 11:05:45 --- join: H4ns (n=hans@p57A0D3DB.dip.t-dialin.net) joined #forth 11:05:45 --- join: ayrnieu (n=julian@005M17.oasis.mediatti.net) joined #forth 11:05:45 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 11:05:45 --- join: happy_gu11 (n=gav@147.21.16.3) joined #forth 11:05:45 --- join: maht (n=maht@85-189-31-174.proweb.managedbroadband.co.uk) joined #forth 11:05:45 --- join: CyberSpace (i=HydraIRC@c-68-63-244-236.hsd1.ky.comcast.net) joined #forth 11:05:45 --- mode: irc.freenode.net set +o slava 11:05:47 --- join: happy_guy1 (n=gav@147.21.16.3) joined #forth 11:10:02 --- join: ygrek (i=user@gateway/tor/x-9240404acde0bf37) joined #forth 11:13:58 ayrnieu: I very rarely use stuff like that in Forth. But, when I need it, I usually need it BADLY. That's why I'm still drawn to Forth after all these years of experience with other languages. 11:17:08 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-112-095.pools.arcor-ip.net) joined #forth 11:17:39 --- quit: Snoopy42 (Nick collision from services.) 11:17:47 --- nick: snoopy_1711 -> Snoopy42 11:18:57 --- join: H4n1 (n=hans@p57A0D3DB.dip.t-dialin.net) joined #forth 11:19:59 --- quit: happy_gu11 (Read error: 110 (Connection timed out)) 11:24:08 --- quit: happy_guy1 (zelazny.freenode.net irc.freenode.net) 11:24:08 --- quit: ayrnieu (zelazny.freenode.net irc.freenode.net) 11:24:08 --- quit: CyberSpace (zelazny.freenode.net irc.freenode.net) 11:24:08 --- quit: maht (zelazny.freenode.net irc.freenode.net) 11:24:09 --- quit: slava (zelazny.freenode.net irc.freenode.net) 11:24:09 --- quit: H4ns (zelazny.freenode.net irc.freenode.net) 11:24:10 --- quit: Baughn (zelazny.freenode.net irc.freenode.net) 11:24:18 --- nick: H4n1 -> H4ns 11:24:30 --- join: slava (n=slava@CPE0007e97df149-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 11:24:30 --- join: happy_guy1 (n=gav@147.21.16.3) joined #forth 11:24:30 --- join: ayrnieu (n=julian@005M17.oasis.mediatti.net) joined #forth 11:24:30 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 11:24:30 --- join: maht (n=maht@85-189-31-174.proweb.managedbroadband.co.uk) joined #forth 11:24:30 --- join: CyberSpace (i=HydraIRC@c-68-63-244-236.hsd1.ky.comcast.net) joined #forth 11:24:30 --- mode: irc.freenode.net set +o slava 11:31:52 --- quit: ayrnieu (zelazny.freenode.net irc.freenode.net) 11:31:52 --- quit: happy_guy1 (zelazny.freenode.net irc.freenode.net) 11:31:52 --- quit: CyberSpace (zelazny.freenode.net irc.freenode.net) 11:31:52 --- quit: maht (zelazny.freenode.net irc.freenode.net) 11:31:53 --- quit: slava (zelazny.freenode.net irc.freenode.net) 11:31:54 --- quit: Baughn (zelazny.freenode.net irc.freenode.net) 11:33:11 --- join: slava (n=slava@CPE0007e97df149-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 11:33:11 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 11:33:11 --- join: happy_guy1 (n=gav@147.21.16.3) joined #forth 11:33:11 --- join: ayrnieu (n=julian@005M17.oasis.mediatti.net) joined #forth 11:33:11 --- join: maht (n=maht@85-189-31-174.proweb.managedbroadband.co.uk) joined #forth 11:33:11 --- join: CyberSpace (i=HydraIRC@c-68-63-244-236.hsd1.ky.comcast.net) joined #forth 11:33:11 --- mode: irc.freenode.net set +o slava 11:34:30 --- join: brad_pitt_sideki (n=gav@147.21.16.3) joined #forth 11:35:02 --- quit: ecraven ("bbl") 11:38:00 what happened to jasonwoof? 11:41:44 still here 11:41:58 --- quit: timlarson_ (zelazny.freenode.net irc.freenode.net) 11:41:58 --- quit: ziggurat (zelazny.freenode.net irc.freenode.net) 11:41:58 --- quit: uiuiu (zelazny.freenode.net irc.freenode.net) 11:41:59 --- quit: segher_ (zelazny.freenode.net irc.freenode.net) 11:42:11 ayrnieu: thanks for the paste, but I can't say I understand it 11:42:22 brad_pitt_sideki: what's up? 11:42:32 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 11:42:32 --- join: ziggurat (n=ziggurat@pool-71-164-227-62.dllstx.fios.verizon.net) joined #forth 11:42:32 --- join: uiuiu (n=ian@HSI-KBW-085-216-030-033.hsi.kabelbw.de) joined #forth 11:42:32 --- join: segher_ (n=segher@82-217-247-28.cable.quicknet.nl) joined #forth 11:43:46 ayrnieu: I get the general concept that you can hack the forth interpreter to parse tables 11:57:02 jaonwoof tell me about gforthcgi 12:01:47 --- quit: segher_ (zelazny.freenode.net irc.freenode.net) 12:01:47 --- quit: uiuiu (zelazny.freenode.net irc.freenode.net) 12:01:47 --- quit: ziggurat (zelazny.freenode.net irc.freenode.net) 12:01:47 --- quit: timlarson_ (zelazny.freenode.net irc.freenode.net) 12:02:28 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 12:02:28 --- join: ziggurat (n=ziggurat@pool-71-164-227-62.dllstx.fios.verizon.net) joined #forth 12:02:28 --- join: uiuiu (n=ian@HSI-KBW-085-216-030-033.hsi.kabelbw.de) joined #forth 12:02:28 --- join: segher_ (n=segher@82-217-247-28.cable.quicknet.nl) joined #forth 12:03:58 --- quit: H4ns (Read error: 104 (Connection reset by peer)) 12:04:48 --- join: timlarson__ (n=timlarso@65.116.199.19) joined #forth 12:04:56 --- join: H4ns (n=hans@p57A0D3DB.dip.t-dialin.net) joined #forth 12:06:35 --- quit: timlarson_ (Read error: 104 (Connection reset by peer)) 12:12:49 --- quit: ayrnieu (zelazny.freenode.net irc.freenode.net) 12:12:49 --- quit: happy_guy1 (zelazny.freenode.net irc.freenode.net) 12:12:49 --- quit: CyberSpace (zelazny.freenode.net irc.freenode.net) 12:12:49 --- quit: maht (zelazny.freenode.net irc.freenode.net) 12:12:50 --- quit: slava (zelazny.freenode.net irc.freenode.net) 12:12:51 --- quit: Baughn (zelazny.freenode.net irc.freenode.net) 12:13:49 --- join: slava (n=slava@CPE0007e97df149-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 12:13:49 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 12:13:49 --- join: happy_guy1 (n=gav@147.21.16.3) joined #forth 12:13:49 --- join: ayrnieu (n=julian@005M17.oasis.mediatti.net) joined #forth 12:13:49 --- join: maht (n=maht@85-189-31-174.proweb.managedbroadband.co.uk) joined #forth 12:13:49 --- join: CyberSpace (i=HydraIRC@c-68-63-244-236.hsd1.ky.comcast.net) joined #forth 12:13:49 --- mode: irc.freenode.net set +o slava 12:38:56 --- quit: ayrnieu (zelazny.freenode.net irc.freenode.net) 12:38:56 --- quit: happy_guy1 (zelazny.freenode.net irc.freenode.net) 12:38:56 --- quit: CyberSpace (zelazny.freenode.net irc.freenode.net) 12:38:56 --- quit: maht (zelazny.freenode.net irc.freenode.net) 12:38:57 --- quit: slava (zelazny.freenode.net irc.freenode.net) 12:38:57 --- quit: Baughn (zelazny.freenode.net irc.freenode.net) 12:39:17 --- join: slava (n=slava@CPE0007e97df149-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 12:39:17 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 12:39:17 --- join: happy_guy1 (n=gav@147.21.16.3) joined #forth 12:39:17 --- join: ayrnieu (n=julian@005M17.oasis.mediatti.net) joined #forth 12:39:17 --- join: maht (n=maht@85-189-31-174.proweb.managedbroadband.co.uk) joined #forth 12:39:17 --- join: CyberSpace (i=HydraIRC@c-68-63-244-236.hsd1.ky.comcast.net) joined #forth 12:39:17 --- mode: irc.freenode.net set +o slava 12:39:53 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 12:39:53 --- mode: ChanServ set +o tathi 12:49:34 --- quit: ayrnieu (zelazny.freenode.net irc.freenode.net) 12:49:34 --- quit: happy_guy1 (zelazny.freenode.net irc.freenode.net) 12:49:34 --- quit: CyberSpace (zelazny.freenode.net irc.freenode.net) 12:49:34 --- quit: maht (zelazny.freenode.net irc.freenode.net) 12:49:35 --- quit: slava (zelazny.freenode.net irc.freenode.net) 12:49:36 --- quit: Baughn (zelazny.freenode.net irc.freenode.net) 12:50:20 --- join: slava (n=slava@CPE0007e97df149-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 12:50:20 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 12:50:20 --- join: happy_guy1 (n=gav@147.21.16.3) joined #forth 12:50:20 --- join: ayrnieu (n=julian@005M17.oasis.mediatti.net) joined #forth 12:50:20 --- join: maht (n=maht@85-189-31-174.proweb.managedbroadband.co.uk) joined #forth 12:50:20 --- join: CyberSpace (i=HydraIRC@c-68-63-244-236.hsd1.ky.comcast.net) joined #forth 12:50:20 --- mode: irc.freenode.net set +o slava 12:52:49 --- quit: Off_Namuh (Read error: 104 (Connection reset by peer)) 12:59:09 --- quit: Quartus__ ("used jmIrc") 13:05:53 --- quit: ygrek (Remote closed the connection) 13:09:42 --- join: doublec (n=doublec@202.180.114.137) joined #forth 13:14:45 --- join: Quartus__ (n=Quartus_@209.167.5.2) joined #forth 13:47:34 --- quit: timlarson__ ("Leaving") 14:27:18 --- quit: Bushmills (Read error: 110 (Connection timed out)) 14:36:49 --- quit: brad_pitt_sideki ("Leaving.") 15:05:23 --- quit: forther ("Leaving") 15:05:57 --- quit: segher_ (zelazny.freenode.net irc.freenode.net) 15:05:57 --- quit: uiuiu (zelazny.freenode.net irc.freenode.net) 15:05:57 --- quit: ziggurat (zelazny.freenode.net irc.freenode.net) 15:06:18 --- join: uiuiu (n=ian@HSI-KBW-085-216-030-033.hsi.kabelbw.de) joined #forth 15:07:24 --- join: iano (n=iosgood@75-164-151-190.ptld.qwest.net) joined #forth 15:07:30 --- join: ziggurat (n=ziggurat@pool-71-164-227-62.dllstx.fios.verizon.net) joined #forth 15:07:30 --- join: segher_ (n=segher@82-217-247-28.cable.quicknet.nl) joined #forth 15:11:06 --- quit: uiuiu (zelazny.freenode.net irc.freenode.net) 15:13:51 --- join: uiuiu (n=ian@HSI-KBW-085-216-030-033.hsi.kabelbw.de) joined #forth 15:17:23 --- quit: iano (Remote closed the connection) 15:23:47 --- join: arke_ (n=arke@p54A7E28F.dip.t-dialin.net) joined #forth 15:24:46 --- quit: tathi (zelazny.freenode.net irc.freenode.net) 15:24:46 --- quit: arke (zelazny.freenode.net irc.freenode.net) 15:24:46 --- quit: timlarson (zelazny.freenode.net irc.freenode.net) 15:24:46 --- quit: Fractal (zelazny.freenode.net irc.freenode.net) 15:24:46 --- quit: gnomon (zelazny.freenode.net irc.freenode.net) 15:24:46 --- quit: kc5tja (zelazny.freenode.net irc.freenode.net) 15:24:47 --- nick: arke_ -> arke 15:28:06 --- join: kc5tja (n=kc5tja@c-24-6-87-99.hsd1.ca.comcast.net) joined #forth 15:28:29 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 15:28:29 --- join: gnomon (n=gnomon@CPE0050eb372bdb-CM000f9f776f96.cpe.net.cable.rogers.com) joined #forth 15:28:29 --- join: timlarson (n=timlarso@user-12l37rb.cable.mindspring.com) joined #forth 15:28:29 --- join: Fractal (i=frax@i.got.the.skillz.to.pay.the.billz.org) joined #forth 15:28:29 --- mode: irc.freenode.net set +o tathi 15:31:47 --- join: arcus (n=Miranda@130.195.209.73) joined #forth 15:32:09 --- join: KragenSitaker (n=kragen@panacea.canonical.org) joined #forth 15:36:04 so a few days ago i was wondering how to do direct threading without doing code generation 15:36:21 today i have been reading c.h.ting's exposition of zen and eForth 15:36:53 eForth's solution was quite simple. you begin each colon definition with NOP; CALL DOLST 15:37:12 which doesn't require run-time code generation, just run-time code copying 15:38:45 and DOLST, after saving the current inner-interpreter pointer onto the return stack, takes the saved program counter off the CPU's native stack and sticks it into the inner-interpreter pointer register 15:39:12 what purpose is served by the NOP? 15:39:36 oh, the NOP is so that the code sequence is four bytes instead of three 15:39:56 so that the new inner-interpreter pointer is word-aligned 15:40:58 ok 15:41:16 on x86, they use BP for the return stack pointer and SI for the inner-interpreter pointer, so all of this is just XCHG BP, SP; PUSH SI; XCHG BP, SP; POP SI; $NEXT 15:41:22 DOLST that is 15:41:40 (both the return stack and the native x86 stack grow downwards) 15:43:07 so the CALL pushes the address of the first execution token from the colon definition onto the stack; then POP SI puts it into SI; and then $NEXT (LODSW; JMP AX) starts executing it 15:44:22 although this doesn't come up in the above code, they also happen to use the native x86 stack for the Forth operand stack 15:45:00 anyway, i'm pretty clueless about all this stuff, but Quartus__ couldn't remember how to do direct threading without run-time code generation when i asked a few days ago, so i thought i'd return with the answer 15:51:24 --- quit: ziggurat ("Leaving") 15:57:52 --- join: nighty-- (n=nighty-@66-163-28-100.ip.tor.radiant.net) joined #forth 15:58:34 --- quit: nighty- (Read error: 113 (No route to host)) 16:10:44 oh goodness, there's a colorForth channel at #c4th 16:12:45 it's quite dead 16:13:13 does rather look that way 16:13:38 i thought maybe jeff fox would occasionally come in and rant at people that they don't really understand anything, or something 16:13:53 nah 16:14:06 he used to stop in here and do that occasionally :) 16:14:10 No, but we sometimes will do the reverse in this channel. :) 16:14:10 heh 16:14:26 you rant about how jeff fox doesn't understand anything? 16:15:06 Only when he makes a public ass of himself. :) 16:18:39 --- join: edrx (i=edrx@189.25.161.168) joined #forth 16:26:47 --- mode: ChanServ set +o kc5tja 16:36:57 "only when"? 16:42:34 hi Quartus. did you see my discussion an hour ago about direct threading? 16:42:47 n0, let me roll back 16:42:49 --- quit: doublec () 16:43:50 I see. Well, you're splitting a fine hair over what 'code generation' means, but sure, that looks like it would work. Still, the question remains: why not go native-code? 16:45:49 Well, I could be wrong, but I am hypothesizing that a threaded interpreter is simpler. 16:46:10 Simpler in what regard? 16:46:44 In the regard of being able to contain less code. 16:47:13 You mean, to be implemented in fewer lines of code? 16:47:23 A (in)direct-threaded interpreter certainly makes it easier to decompile a definition later. 16:47:44 Yes. 16:48:07 I daresay there's no significant difference. 16:48:17 Well, you could be right! 16:48:34 Yeah, there's really not much difference between a threaded system and a very simple native-code system. 16:48:41 I guess what's called into question is the "significant" part. 16:48:54 On x86, all branches are PC-relative. 16:49:01 So you have to compensate for that. 16:49:08 ooh, subtraction! 16:49:10 scary 16:49:12 Yeah. 16:49:41 It's not JUST subtraction; you have to be aware of what you're being relative TO. 16:49:49 Anyway branch destination calculations are factored into one routine, so even if they involved calculating the movement of the celestial spheres, it'd be no big deal. 16:50:21 Code is code is code is code, regardless of how well factored it is. 16:50:42 If YOU have to write it, but YOU don't want to write it, then why should anyone pester him about how he writes his Forth? 16:50:45 It's childish. 16:51:02 Let KragenSitaker write his Forth the way he wants. 16:51:07 Sheesh. 16:51:17 Bad day? It's a discussion forum. I'm discussing. Back off. 16:51:35 No, not a bad day, but about to become one. 16:52:01 Your choice. 16:52:03 --- quit: happy_guy1 ("leaving") 16:52:50 In the interests of discussing, let me make the observation that anyone who considers writing a Forth, but who doesn't select subroutine-threading or native-code is immediately questioned for his decision. A discussion ensues as to why, and subsequently, the stock responses are, "Oooh, if you just factor it out, it's no big deal," thus implying that the author is still wrong in his decision. 16:53:47 I think he is wrong. It's called an opinion; in this case it's mine. I'm prepared to back it up, and certainly I find the discussion interesting. If it threatens you, or you suddenly feel that you need to rush in to protect others from my deadly opinions, let me suggest that the problem is yours and yours alone. 16:57:30 KragenSitaker, you might be interested in looking at retroforth, as an example of a small x86 native-code implementation. The complexity of such a design is about equal to a threaded design, though the complexity is shifted around differently -- there's the same amount of it. 16:57:41 The speed increase in the resulting engine is significant. 16:57:59 The potential for easy further optimization is another boon. 16:58:22 You will lose the ability to decompile a definition after it's compiled, however. 16:58:52 kc5tja: not necessarily; if you don't do any optimization, it's just about as easy to compile a subroutine-threaded definition as a threaded one. 17:00:10 Also you can tag a word with its original source, if you so wish, and thereby display the original source tokens during decompilation -- something I've considered adding. Many Forths have a word that will take you to the original position of a definition in the source code file. 17:00:42 I don't find I have much call to decompile, though, regardless of implementation. 17:00:51 ya 17:01:17 Even threaded builds like Gforth have trouble with decompilation, depending on the optimizations performed. 17:01:27 It comes in handy when double-checking the handy-work of a custom IMMEDIATE word. 17:02:22 Maybe so. I factor very small and write unit tests, so problems evince themselves that way. If you are into longer definitions, more tools would doubtless help. 17:02:57 I eat, breath, and sleep TDD. 17:03:01 assuming that some tool does not increase producivity just because you haven't felt the need for it is a fallacy, Quartus. 17:03:09 I don't even go to the bathroom without running a unit test on the toilet first. 17:03:15 slava, I didn't assert that. 17:03:24 i'm sure there are cobol programmers who feel that their technique is sufficiently refined that they would gain nothing by moving from punch cards to interactive editors. 17:03:44 Quartus: you said that 'see' is not useful if you're doing TDD. which is false. 17:03:53 : foo ['] important-word execute ; see foo annoys me. 17:03:54 Could be. There may be pink bunny rabbits who subsist entirely on a diet of duct tape and pencil shavings. I don't know. I didn't assert that either, though. 17:04:24 i use 'see' as a quick way of reviewing a definition 17:04:27 uugh, the non sequiturs kill me the most. 17:04:52 ayrnieu: Well, thankfully, that kind of code is pretty rare. 17:05:16 --- join: Quartus___ (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 17:05:18 s/execute/catch/ 17:06:19 --- join: Quartus____ (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 17:07:46 --- quit: arcus (Connection timed out) 17:09:17 slava: what I did say is that I don't use decompilation as a debugging technique. Just me. 17:10:06 ayrnieu: I have to admit, I don't use exception handling in Forth much at all. 17:10:44 ayrnieu: you're complaining about the way gforth's SEE just shows the XT as a number in the current base? 17:10:54 exception handling is not safe in forth 17:11:05 slava: No, but you can still use it fairly well. 17:11:29 its even harder to use than c++ exception handling. c++ has destructors 17:11:45 19:50 <@kc5tja> If YOU have to write it, but YOU don't want to write it, then why should anyone pester him about how he 17:11:49 writes his Forth? 17:11:51 : WITH-OPEN-FILE ( caddr u xt -- ... ) -ROT OPEN-FILE THROW DUP >R SWAP CATCH R> CLOSE-FILE THROW THROW ; 17:12:07 I was mostly coming in here hoping to benefit from other people's experience, essentially by having them pester me ;) 17:12:30 KragenSitaker, no shortage of that here. Actually the supply is lower than it used to be, so now you're more likely to be pestered on-topic :) 17:12:43 tathi - that annoys me, yes. I figured out and haave since forgotten how to get the name from an XT. 17:13:05 kc5tja: but now if you have a word 'foo' which allocates some kind of resources - memory, file handles, whatever - then any word it calls which may potentially throw has to be wrapped in a catch which cleans up those resources 17:13:08 What I don't like is how there is no standard method for deriving the name of a word given an XT. 17:13:40 slava: yes. This is called Resource Allocation Is Invokation. It's the dual to C++'s RAII, and is used regularly in Lisp. 17:13:43 ayrnieu: >name name>string 17:14:17 slava: What sucks the most about this approach, with the specific context of Forth, is the stack juggling. :/ 17:14:24 kc5tja: ok, sure, if you write a bunch of WITH-FOO type words, then you can write safe code 17:14:32 tathi - thanks. 17:14:49 kc5tja: i was pointing out that forth itself doesn't support this idiom natively. so on their own forth exceptions are tricky to get right 17:14:56 There's a reason why there's no standard way of deriving a name from an xt. 17:14:58 kc5tja: if you build your own layer on top, fine. 17:16:34 Actually there's more than one reason. 17:16:50 What are they? 17:17:01 Besides stripped headers, that is. 17:17:27 in factor i don't have an xt type. you pass the word itself to 'execute'. and you can certainly get its name if it hasn't been stripped. 17:17:28 One, that headers don't have to be located in dataspace. Two, that names do not have to be stored at all, retrievably. 17:17:59 stripped headers isn't a good reason: the >name name>string word can be in an optional wordset that deals with headers; it can return a zero-length string. 17:18:04 slava, most Forths have a mechanism for pulling up the name. Factor is single-implementation :) 17:19:18 Quartus____: It's equally not required to implement floating point numbers, the BLOCK wordset, or a variety of other goodies either. So, my disappointment is still valid, even if it is an optional wordset. 17:19:55 Such a wordset would require a specific implementation strategy, which the standard actively avoids doing. 17:20:07 No it doesn't. 17:20:30 ( xt -- caddr u -1 | 0 ) implies nothing about how this word is implemented, nor the data structures used. 17:21:04 It requires that a name be retrievable for an xt, unless you consider it useful to always return false. 17:21:26 If you were to implement this optional word, then obviously, your concern is an utter non-issue. 17:21:45 If you store word names non-retrievably, then don't offer to support the optional wordset. 17:21:55 Also, it means that the name has to live in dataspace. I suppose you could have one that copied a name into a buffer, but if it's possible for it always to return false, it wouldn't be all that outstandingly useful as a standard utility. 17:22:36 The name has to be stored somewhere in readable memory in order for you to be able to use the interpreter, so I don't see that it's that big of a concern... 17:22:50 you mean the text interpreter? 17:22:51 tathi -- could be one-way hashed. 17:22:53 --- quit: Quartus (Read error: 110 (Connection timed out)) 17:23:03 tathi: But it's also possible to just store hashes of the name too, which is what Quartus____ is getting at. 17:23:09 who does that? 17:23:16 slava: microcontrollers usually. 17:23:22 I do it, not in the main dictionary but in extension dictionaries. 17:23:25 --- quit: Quartus___ (Read error: 110 (Connection timed out)) 17:23:36 you could probably use signed perfect hashing like mg4j 17:23:38 what if two word names have the same hash? 17:23:40 Basically any memory-constrained environment would benefit from hashing. 17:23:42 for frozen vocabularies 17:23:49 o/ 17:24:04 slava, they don't. I run a faint risk that some name may be derived that matches another name, but the probability is considerably tiny. 17:24:06 Oh, one-way hashes. I didn't think of that. Thanks. 17:24:15 slava - names rarely have more bits than hashes do. 17:24:24 Quartus____: isn't that the same flaw as colorforth's huffman compression? 17:24:40 IAC, none of this disputes the utility of the standard word. 17:24:43 ayrnieu: Except mine. I'm a huge fan of long-descriptive-names. :) 17:24:44 slava, quite a few orders of magnitude removed. 17:25:03 i'm a fan of not having arbitrary limitations. 17:25:19 It's not a limitation. The primary dictionary stores names in full. 17:25:22 if i want to define 10,000 words with 60 character names that differ by a few bytes here and there, i don't expect to get collisions from the hash. 17:25:32 The symbol and OS API lookup dictionary employs a long hash. 17:25:44 slava, right, and you can do that. No problem. 17:25:53 Extension dictionaries are searched last. 17:25:57 slava - 'if you have a many really long word names, you may luck out and collide them' is up there with 'if you allocate a lot of space, you may run out of it' 17:26:20 ayrnieu: not at all, because a "long" name consumes a few bytes at most 17:27:13 One approach is to use double-hashing and a bucket system. But ... I'm not going to think about that. That makes my head hurt. 17:27:21 ie, a hashtable? 17:27:59 ? 17:28:42 Use a primary hash to determine which 'bucket' to attach the definition to, then use the secondary hash to determine where, in the bucket, the word's XT actually can be found. 17:28:49 right. 17:28:56 in the case of secondary hash = equality, that's called a 'hashtable' :) 17:29:24 I thought that we'd already claimed a critical shortcoming to a single-level hashtable. 17:29:39 that being? 17:29:41 You can't have a collision in the system I built -- with the sole exception that you might one day discover that !###@foo***`!~ actually hashes to the symbol LeftArrow, and thus compiles without error. I have yet to find an example of this, though. 17:29:48 17:22 <@slava> if i want to define 10,000 words with 60 character names that differ by a few bytes here and there, i don't expect to get collisions from the hash. 17:30:01 kc5tja: that's not how hashtables typically work. 17:30:11 eg, in java, java.util.HashMap does not conflate keys with equal hashcodes. 17:30:15 it just hashes them to the same bucket. 17:30:27 then uses linear search with key equality to find the value associated to a given key 17:30:36 Yes, you store a copy of the original key. 17:30:42 But that means making the name retrievable. 17:30:46 yes. 17:31:05 hmm ... 17:31:20 * kc5tja sighs. 17:32:16 Technically, you need only store as much of each name as enables it to be differentiated in a search from all the words that precede it in that wordlist. 17:32:45 Not that I'm recommending the three+length scheme. :) 17:32:58 3+length wouldn't work for my names anyway. :) 17:33:12 It works well provided your word names are single words, and you have a thesaurus next to your computer. 17:38:11 I think 3+length is awful. It had an excuse in the limited memory of the day. The original colorforth scheme is simply bad, without any excuse. 17:39:34 Quartus____: I agree completely 17:40:35 JasonWoof: your web page says i should bug you to implement month indexes of #c4th chat logs 17:40:40 I understand the problem has been diminished, but not eliminated; but then any change would have been a change for the better, there wasn't any slack in other direction. 17:41:35 KragenSitaker: wow :) someone actually looks at those? 17:41:45 KragenSitaker, how can you tell they're not already there? :) 17:42:11 don't think anybody's mentioned them in the last year 17:42:15 Quartus____: is that a trick question? :) 17:42:22 heh 17:42:31 JasonWoof: well, I was trying to find out if anybody had said anything this month yet 17:42:50 if you want some insight into the design, dig up tathi's analysis of it, from this channel, a few months back 17:42:56 well, that should be pretty quick, there's only been 8 days 17:43:25 how about 2+length+hashcode? :) 17:43:44 KragenSitaker: nothing in those logs since 10-29 17:44:13 KragenSitaker, go for just length, you'll be approaching the colorforth method :) 17:45:21 --- join: linxu (n=gav@147.21.16.3) joined #forth 17:45:28 wow 17:45:41 hashcodes are presumably more evenly distributed than third letters ;) 17:45:42 linxu: sorry I ducked out just before you asked about gforthcgi 17:45:48 linxu: what did you want to know about it? 17:45:51 I tried to find a better wm thatn icewm for me, and I can't 17:45:56 there are some weird ones 17:46:02 so hey yeah 17:46:06 icewm rocks 17:46:10 linxu: what do you want in a wm? 17:46:13 I've tried a few 17:46:16 were you able to do any kinda cgi with it? 17:46:24 seems liek you aren't imporving ti anymore.... 17:46:36 I tried like 14 17:46:37 no, I haven't used it in a while 17:46:47 slow down and ytep acreuflly, linxu 17:47:32 hehe 17:48:29 I want a bar at bottom, a look like windows 98, and a 'quick' button for xterm and miniize all, icewm has it all standard, amazing, its like I programmed it myself, now if only archlinux would bring back the repository with menumaker, which somehow vanished in last 6 months, I would even have menus (although a simple bash script starts my browsers and irc chats so I dont really miss them) 17:49:57 gotcha 17:50:07 so jasonWoof, what do you use for web sites now? I am from chestnut hill BTW, now in los angeles...... 17:50:31 php 17:50:41 xhtml+css 17:53:33 I'm building up a very nice library of code in php 17:54:16 I fill in this form: http://jasonwoof.com/metaform/ 17:54:40 which auto-generates the templates and basic form parsing code 17:54:42 I tried that, it was cool 17:54:44 and edit from that 17:55:25 after I upgrade my server to PHP5 I think I'll start using PHP objects, so I don't have to explicitly pass all the fields around all the time 17:55:45 I saw something about something called phpcake.. 17:56:11 I used to run a lamp cms called sugarCRM 17:56:20 for this one telcom 17:56:47 I learned to beware of register globals... 17:56:53 in php.ini 17:58:03 bugger was slow though.. 17:58:19 haha 17:58:44 previously people mentioned a FFI for forth, now could you use that to setup apache and fastcgi to be controlled by forth? 17:59:00 or is that a blunder of method? 18:00:05 Probably would be easier to just write fastcgi support for a forth. 18:01:40 or you could just write HTTP support and use reverse-proxying 18:02:11 sure. fastcgi might be easier though 18:04:32 simple HTTP support isn't all that hard. i forget how many HTTP servers I've written. more than one. 18:04:50 maybe doing it in Perl and Python is cheating though, and it might be harder in a forth 18:05:12 but i don't expect it would be that much harder 18:06:02 * KragenSitaker goes off to play Prince of Persia 18:06:17 linxu: I made a tarbal of gforthcgi so you can actually download it now 18:06:31 Is that a computer game, or does it involve dressing in silks and prancing about the house? :) 18:06:42 heh 18:06:58 computer game, probably the best game of 1990. not written in forth, i think, so off-topic ;) 18:07:41 linxu: if you've got a nice lib that would make it easy to write a fastcgi server, then go for it 18:07:44 ffi is easy 18:07:58 or you could just write a fastcgi serve 18:07:59 r 18:08:43 hmm...ok, HTTP is pretty easy, isn't it? 18:09:14 not atoll 18:09:25 I keep bouncing between forth and tcl+aolserver 18:09:40 with random bouts of clisp+emacs thrown in 18:09:55 needs a beer 18:10:26 --- quit: Quartus____ () 18:10:42 --- join: Quartus (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 18:10:42 --- mode: ChanServ set +o Quartus 18:12:14 well off to get meself a beer, have fun laddies 18:18:07 JasonWoof: Do you recommend a particular website that details how to write an FCGI server? 18:18:24 http://www.collegehumor.com/video:1788161 18:19:31 I don't care who you are, that's just funny. :) 18:20:38 kc5tja: I've never written an FCGI server... no idea 18:20:58 seems to me the ruby folks just write an http serve 18:21:00 r 18:21:16 you can use it directly for testing, or have apache defer to it with mod_proxy 18:26:31 Quartus: That wasn't just funny, that was stupid funny. I know just the people to send that to. :D 18:30:48 --- quit: tathi ("leaving") 18:32:27 kc5tja: note the domain name... 18:33:32 hehe 19:10:17 --- join: arke_ (n=arke@p54A7E0B2.dip.t-dialin.net) joined #forth 19:13:12 from xuexi.fs require: a hz 19:27:22 --- quit: arke (Read error: 110 (Connection timed out)) 19:27:22 --- nick: arke_ -> arke 19:40:08 --- quit: edrx (Remote closed the connection) 19:50:19 Yes, I noticed the domain name. 20:23:42 Oh, it looks like Bernd Paysan already wrote an HTTP server in Forth: http://www.jwdt.com/~paysan/httpd-en.html 20:23:53 In 2000, though, so it's probably not a very good web server. 20:24:15 myself and several people i know run websites using factor's http server with no issues 20:24:51 Oh actually he even says it's not a very good web server: "The web server thus won't be 100% RFC conforming (i.e. implement all features), and conforms only as far as necessary for a typical client like Netscape." 20:25:24 uh, and he wants to run it out of inetd 20:25:50 yeah that's a proble 20:25:51 m 20:26:16 still, probably only a few hours of work to fix 20:26:37 i have the impression that all of the httpd is actually inline in tha tweb page 20:28:27 i'm not sure if forth is a suitable language for web development 20:28:36 the hard part is not writing the http server itself, it's all the other frameworks you need 20:28:43 database access, templating, xml, web services, unicode, etc 20:29:38 whatever happened to Andras Zsoter? 20:30:03 heh 20:30:25 forth is a suitable language for everything! just like C, assembly, and Scheme! :) 20:30:38 if you're willing to build everything from scratch 20:30:42 even basic stuff 20:31:42 in all seriousness, i have written an awful lot of little web thingies from scratch. usually without databases, templating, or xml, and usually just doing everything as utf-8 to avoid any unicode problems. not in forth though. 20:31:52 and what do you mean by "web services"? 20:32:00 xml-rpc, soap and rest 20:32:23 "little web thingies" -- i guess the emphasis is on "little" :) 20:32:37 yes :) 20:32:51 are xml-rpc and soap really getting that much deployment in the real world? 20:33:03 yes 20:33:15 and rest isn't in the same category as the rest of those things; it's an architectural style, not something you can encapsulate in a library 20:33:26 i know, but it depends on a decent http client at least 20:33:27 KragenSitaker: Oh yes. :( 20:33:33 Mostly SOAP. 20:34:37 KragenSitaker: Regarding REST, well, that's the point. The whole basis for REST is that anything you can do with these over-hyped monstrosities, you can do (somehow, it may not necessarily be obvious) with REST *without* all that baggage. 20:34:56 xml-rpc is not a monstrosity at all 20:35:00 it is very simple 20:35:09 It's simple because it is ad-hoc. 20:35:42 There's no guarantee that one XML-RPC client can talk to another XML-RPC server and get meaningful results. 20:36:02 well, they client has to pass the right structure 20:36:13 Right. 20:36:27 With SOAP, you'll at least get a well-formed exception back. 20:36:39 ah 20:36:50 SOAP is much more rigorously defined than XML-RPC. 20:36:51 kc5tja: that's backwards from my usual experience with them, but maybe they've changed in the last couple of years 20:37:13 KragenSitaker: Too many pronouns error. Can you rephrase your sentence? :) 20:37:17 it's true that the SOAP standard is much more explicit about things, but it has so many more things to be explicit about 20:37:18 you'll find that java and c# shops (ie, the majority of all programming outfits) tend to use soap quite heavily 20:37:42 KragenSitaker: Yes. I don't see how this alters what I said though. 20:37:47 its really overkill in many situations but its now the 'standard' glue for distributed systems 20:37:51 so incompatibilities between SOAP implementations are the stuff of legend, and XML-RPC usually has relatively few problems 20:38:02 in my limited experience from a few years ago 20:38:21 I personally haven't heard of significant issues with SOAP. 20:38:52 As long as you're relying on a suitable library, of which most languages today have them, then you're almost certain that things will work. 20:39:18 But, that being said, I want to state this for the record: I *#$%(*#ing hate XML in any form and/or purpose, so I'm a fan of neither. 20:39:33 * kc5tja prefers the RESTful approach whenever possible. It Just Works. 20:40:08 they're really not in opposition to one another. 20:40:14 create hz>s 2 allot does> ( hz -- c-addr 2 ) tuck dup 1+ >r >r $100 /mod r> c! r> c! 2 ; 20:40:16 one is a protocol; the other is an architectural style 20:40:24 Actually, they are in stark opposition to each other. 20:40:35 I mean, SOAP is a protocol; REST is an architectural style. 20:40:51 The inventors of the REST concept strongly disagrees with you. :) 20:41:04 You mean Roy? 20:41:14 * kc5tja tries to find the paper... 20:41:31 I haven't heard him strongly disagree with me... but I haven't talked to him in a few years. 20:42:09 http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm 20:42:19 he doesn't mention SOAP in there at all. 20:42:22 This paper argues for the use of XML *solely* as a data representation form. 20:42:26 Not as a request/response form. 20:42:34 That is, it uses HTTP itself as the protocol. 20:42:38 Sure. 20:42:39 There is no RPC layer involved. 20:42:50 I'm not saying I think SOAP is a good idea. Just that it's an RPC protocol, the kind of thing you could build HTTP on top of. 20:42:53 If you were insane. 20:43:16 if people read forth logs with http://www.forthlog.com/2007/11/10 , there doesn't need to be an 'architecture' that corresponds to that URL. 20:43:24 Well, by that logic, (and to which I firmly agree with this), we really should abandon HTTP/SOAP in favor of IIOP. 20:43:42 To pick further nits, SOAP uses XML solely as a data representation format also. 20:44:05 It's just that the data it's representing includes request messages and response messages. 20:44:06 SOAP uses XML as a request/response container. 20:44:12 Precisely. 20:44:23 One URL serves as the ORB interface. 20:44:28 I'm not really sure what the pros and cons are between IIOP and SOAP. 20:44:37 With REST, the opposite occurs -- you have many URLs representing specific services. 20:44:52 IIOP is a binary protocol defined for use with CORBA. 20:44:58 Yes, I know what IIOP is. :) 20:45:09 Well, that alone should just scream what the benefits are. :) 20:45:14 Well, with REST as applied to HTTP, you have URLs representing specific resources, not services. 20:45:26 But REST is more general than HTTP. 20:45:30 Sure. 20:45:38 But, they're services in a very real sense. 20:46:01 Well, often something you might think of as one service consists of a whole passel of resources. 20:46:06 If I go to a sports team URL, and POST myself onto that list, it's going to perform a service of enlisting me to that sports team. 20:46:42 And sometimes one resource might provide what you might think of as more than one "service", although probably not in the SOA sense. 20:47:54 In non-HTTP contexts, you might identify your resources with something other than URLs. In Roy's dissertation, he just says, "resource identifier". 20:49:14 Yes, but that identifier has to be easily embeddable in the data you're representing, which pretty much screams for URL syntax. 20:52:03 Yeah, I think URLs are a good solution to the problem of how to identify resources in REST, but they're not a mandatory part of the abstract REST model. Gopher and finger have restricted subsets of REST too, and they have resource identifiers that aren't URIs. 20:52:16 Although of course you can map any resource identifier into a URI. 20:52:58 But we may not be using URLs forever, and if we're using some other kind of identifier in our protocols in 2027, that won't make it not REST. 20:53:09 Make them not REST. 20:54:05 We're either talking past each other or violently agreeing; in either case, I'm going to move on to a different thing. :) 20:55:55 --- quit: segher_ (Connection timed out) 20:56:03 Well, you said Roy strongly disagrees with me --- by which I think you meant my assertion that SOAP isn't really in opposition to REST. 20:56:29 At least I think that's what you said. Maybe you meant some of the other people Roy was working with. 20:58:50 He's been pretty clear that he thinks RPC is a bad idea and SOAP is a poor implementation of it. 21:00:05 A programmer who doesn't like soap? Nothing new. :) 21:02:16 --- join: segher (n=segher@82-217-247-28.cable.quicknet.nl) joined #forth 21:02:52 --- join: happy_guy (n=Administ@cpe-76-167-152-135.socal.res.rr.com) joined #forth 21:05:47 KragenSitaker: In my mind, "thinks RPC is a bad idea" in the context of REST distinctively means, "RPC is at odds with REST." 21:09:35 He doesn't think it's a bad idea in the context of REST. He just thinks it's a bad idea, period. 21:10:18 Thank you -- that just confirms my point. 21:10:26 He thinks you need more disciplined architectural styles to build internet-scale network applications. 21:10:36 Which is to say, more constraints. 21:11:38 So you can build RESTian applications on top of SOAP, just as you can build them on top of datagrams. It's just that SOAP by itself, or any RPC style, allows you to make brittle systems that break. 21:11:46 s/style,/protocol,/ 21:13:50 When I read the paper, I got the singular impression that Roy was trying to say, "Do NOT use SOAP or XML-RPC. Do NOT use CORBA. Do NOT use DCE-RPC. They're not needed; just use the doggone web server for what it was intended for." 21:14:06 So, yes, you *CAN* build RESTy apps on top of SOAP, et. al. 21:14:06 --- quit: happy_guy (Read error: 104 (Connection reset by peer)) 21:14:07 But . . . . 21:14:12 whyyyyyy? 21:14:24 That _totally_ defeats the whole purpose of REST. 21:14:35 REST is about YAGNI. 21:14:48 You Aren't Gonna Need It (in case you're not a C2 frequenter) 21:14:49 Wasn't he married to Linda Evans? 21:14:58 Heh 21:15:04 Remove the cruft you don't need. 21:15:09 Simplify your life. 21:15:11 That would be Linda Evans. 21:15:57 He doesn't mention SOAP. 21:16:15 He doesn't have to. 21:16:19 He doesn't mention XML-RPC. 21:16:22 He referenced by inclusion into the "RPC" concept. 21:16:27 He doesn't mention XML. 21:16:39 He doesn't mention YAGNI. 21:16:48 He doesn't mention my boss' name either. 21:16:53 I don't think REST is at odds with YAGNI. Or your boss. 21:16:57 Look, I'm talking about general concepts here. 21:17:20 YAGNI says monotonous, new-age music to me. 21:17:40 But I don't think it's really particularly relevant to it. Except that maybe you might have some RPC libraries around that YAGN. 21:17:57 What?!! 21:18:00 I give up. 21:18:04 I totally and utterly give up. 21:18:17 Everything I say either goes right past or right over, or the meaning is totally twisted. 21:18:28 I just can't communicate. 21:18:30 I find it entertaining that there are actually people who talk in acronymical buzzworsd. 21:18:33 You're trying to read a lot of stuff into Roy's dissertation that simply isn't there. 21:19:32 It's true that you don't need SOAP or DCE-RPC to build stuff in a REST architectural style. And it's true that Roy deplores SOAP. 21:21:01 But reading his dissertation as a diatribe against RPC is really doing it a disservice. He wrote something much more important and meaningful there than "you don't need to use RPC to build distributed applications." 21:21:32 He outlined an architecture that supports orders of magnitude better performance and scalability than you get from RPC. 21:21:39 And you don't get it just by throwing away RPC! 21:22:01 You sure as hell don't get it by using RPC!! 21:22:20 This is why I VERY CLEARLY stated, "Use the HTTP server for what it was intended for." 21:22:40 There's a reason why GET, PUT, POST, DELETE, and several other HTTP methods exist. 21:24:07 It would be more accurate to say there's a reason why several other HTTP methods don't exist :) 21:24:41 Those are the standard four, plus HEAD, although DAV has added a few more that aren't widely used. 21:25:17 OK, but I'm not talking about DAV. 21:25:29 I should point out that the dissertation doesn't restrict the method set to just four either. 21:26:37 No, certainly not. 21:27:06 It just points out that resources should have a standard, generic interface with standard semantics so proxies can grok it. 21:28:29 But anyway, my larger point is that the insights of REST are not limited in their applicability to HTTP and URLs. 21:28:45 They're also applicable to non-web systems. 21:32:26 Also, it's pretty straightforward to violate the REST constraints when you're building web apps, and Roy's thesis tells you how not to do that. But not if you reduce it to "SOAP is bad." 21:35:26 I'm sorry it seems like I'm not listening. I'm just trying to tell you there's something of much deeper and enduring value in Roy's dissertation than a commentary on the particular protocols that happen to be popular this decade. 21:38:05 Okay, enough advocacy for now. I'm going to bed. It's 2:30 AM. 21:38:20 It's only 12:38am here. 21:38:27 Clearly you're living too fast. 21:38:39 I'm in Buenos Aires. 21:38:49 Keen. 21:38:56 Perhaps living here will make my corpse better-looking? 21:38:59 Goodnight. 21:39:05 See ya! 21:39:30 --- quit: segher (Connection timed out) 21:39:30 Heya, Quartus! 21:39:39 Hey gnomon. 21:39:45 --- join: happy_guy (n=Administ@cpe-76-167-152-135.socal.res.rr.com) joined #forth 21:39:50 How goes it 'round these parts? 21:40:10 Goes and goes. How are you? 21:40:37 Energized! 21:40:42 about? 21:40:45 Bit late for it. 21:40:59 should be winding down 21:41:04 putting out the lamps 21:41:13 getting into the dr. denton's 21:41:20 I bumped into a cousin of mine down on Spadina on Saturday. Turns out he lives about three blocks away from my new digs. We got together for coffee tonight and had a fantastic multi-hour discussion about the parallels between narrative and programming languages. 21:41:33 Heh. 21:41:42 Not I, sir - I'm just settling into a long shift at the office. 21:41:45 Curse these overnight hours. 21:41:52 So this would be one of those Amsterdamish kind of coffe places? 21:42:04 gnomon: so i'll be in ottawa from 23rd nov to 29th nov 21:42:36 slava, terrific. I'll be in Ottawa from the eve of the 23rd through until two weeks past that date. 21:42:42 Highlander? 21:43:05 Quartus - a bakery, actually, but yes. 21:43:11 ah HA! 21:43:20 Wait, what? 21:43:25 Why "ah HA"? 21:43:34 gnomon: highlander sounds good 21:44:00 slava, bloody awesome. By the way, if my willpower runs short and the stock doesn't run out before I get there, I may bring along an Eee. 21:44:11 I was referring to the inhalation of illegal intoxicants that might lead to that sort of conversation 21:44:12 --- join: segher (n=segher@82-217-247-28.cable.quicknet.nl) joined #forth 21:44:39 Quartus, ah! No, nothing of the sort. 21:44:39 --- quit: happy_guy (Read error: 104 (Connection reset by peer)) 21:45:18 One of those "wow, what if the universe was really a huge blanket?" kind of things 21:45:18 Inhaling any kind of fine particulate actually squicks me right the hell out. 21:45:23 Heh. 21:45:35 --- quit: Quartus__ (Read error: 104 (Connection reset by peer)) 21:45:44 --- join: happy_guy (n=Administ@cpe-76-167-152-135.socal.res.rr.com) joined #forth 21:46:33 No, we were actually covering some serious points - the ol' Sapir-Whorf thing, and writers (Poe, Carroll, Abbott and so on) who incorporate math heavily into the structure of their narratives. 21:46:51 He's working up to teaching a class called "the science of fiction". 21:49:02 Must have been somebody nearby who was smoking it, then. :) 21:49:20 Or they snuck it in the tea. Come on, work with me here. :) 21:50:56 http://www.fefe.de/fnord/SPEED rather interesting link http://www.fefe.de/fnord/2.5.50-scalability.png 21:51:18 Quartus, heh ;) 21:52:12 I find it a long reach to call the structure of fiction mathematical, unless it is simply to note that both fiction and mathematics have structure. 21:52:45 grrr ipod touch is amazing hardware 21:52:47 happy_guy, what's with wanting a speedy webserver? Got some particular application in mind? 21:52:56 except for the "trusted computing" thing 21:53:15 yes 21:53:42 and fiction and math seem to be antipodes 21:53:51 math in fact demands proof 21:53:57 So you want to prototype, bench, and then see if you can do it with off the shelf hardware and commercially available bandwidth 21:54:05 and stock software 21:54:10 and only tweak what needs tweaking. 21:54:13 free software 21:54:20 er yes 21:54:39 Whether you pay for it or not is a matter of whether you want support or not, if it's a business venture 21:54:43 happy_guy, "fiction" doesn't necessarily imply un-truth. 21:54:55 it doesn't? 21:55:01 define fiction 21:55:08 (Im being argumentative) 21:55:18 although I will say that since space is infinite 21:55:41 * JasonWoof launches happy_guy into infinite space 21:55:42 math does lead to philosophy 21:56:12 with a robotic battle suit or in street clothes? 21:58:25 happy_guy, I would say that fiction is more strongly tied to creativity than to non-truth. 22:06:42 ah yes 22:06:44 ture 22:06:45 true 22:07:08 I mean the eye sees a tall building and the brain says wow, what if it was twice as tall? 22:07:27 That's how Hemingway started out. 22:09:19 Not how he ended up, though. 22:09:21 Heh. 22:09:51 That may well have been his last thought. 22:10:29 cool, dell's selling computers with ubuntu on them 22:10:35 We can only speculate. And our brains can say wow, what if that last thought was twice as tall? 22:10:43 or freedos 22:10:54 I prefer doridos 22:11:04 mmm 22:11:19 makes me want a snack 22:11:26 I wanted to see if the ubuntu version was cheaper 22:11:37 but the model they're selling with ubuntu isn't available without ubuntu 22:11:50 they've get a slightly worse model for slightly less 22:11:52 clever, these dellerites 22:12:05 dellirians 22:12:11 least not the laptop 22:12:25 Dellitantes. 22:12:40 Perhaps they should build DellDos. 22:13:13 What? What? 22:14:16 &*^@#$@#$ stupid interface designers 22:14:42 why do they put *(&@#$ menus above input boxes that pop over it if you mouseover them? 22:15:22 Recently I've become weary of submenus, the sort where you have to navigate the mouse through a maze, or the whole menu disappears and you have to start over 22:15:27 it's like playing Operation several times a day 22:17:02 so, windows ce just crashes if you call WriteFile() with the console handle and a buffer > 1024 bytes. 22:17:44 not surprising 22:18:07 huh, the desktop model dell sells with ubuntu is slightly more expensive than with winxp 22:18:07 it's a house of cards in there 22:18:39 --- quit: happy_guy (Read error: 104 (Connection reset by peer)) 22:20:30 Quartus: more and more i'm becoming aware of this fact 22:20:52 My recommendation: invest your energies elsewhere 22:21:46 oh oh oh, I get it. the ubuntu machine does come with a better processor 22:23:03 ok, so if you upgrade the xp variant to the equivelant cpu (dual core, and so the actually tell you how big the l2 cache is) it's $30 more instead of $30 less 22:26:02 * JasonWoof blinks 22:26:13 um... and the ubuntu one comes with a 17" flatpannel! 22:26:57 that's good! 22:28:07 slava, you know what you should try? 22:28:12 Factor on Symbian! 22:28:18 You know you want to. 22:29:09 The flat panel is packed in environment-destroying styrofoam. 22:30:06 * gnomon waits for someone to pick up the thread of that particular Simpsons reference 22:31:10 ok... so after fiddling with the options... the ubuntu machine is coming out $150 cheaper 22:31:34 it has a slightly different model number (530n vs 530) dunno if that means something 22:32:16 that's bad 22:33:26 amazing, that for $500 I can get a computer complete with 17" monitor, mouse, keyboard, ubuntu, nvidia card 22:33:28 But it comes with a carbon-offset coupon! 22:33:36 I was hoping for a free frogurt. 22:33:43 it would probably completely smoke my computer 22:34:51 iirc I paid a whopping $2600 for my box 22:35:06 dual G4 450MHz! 22:35:08 Prices are falling a lot. 22:35:32 And your brain looks at that, and says what if it was half the price? 22:35:54 * gnomon sighs a bit 22:35:55 That's how Jimmy Smits got his start in acting. 22:36:17 I've been speccing out a new system, actually, and from what I can tell the only part that isn't going to be basically instantly obsolete is the monitor. 22:36:20 what's sad is my monitory is useless without my computer 22:36:33 it's got a funky old connector (ADC connector) 22:36:40 the adapter costs $150 22:36:42 For everything else, I'm not even bothering to take performance into account anymore. I'm just caring about noise, heat, Linux compatibility and price. 22:36:58 Great googly-moogly! Why so much?! 22:37:14 no idea 22:39:51 well, that's the other wacky thing, pc geeks tell me that if I get parts and put it together myself I can usually pay about half 22:40:17 These days, probably about 75%, and it won't be quite as nice 22:40:48 ahh, didn't know that had changed 22:40:57 I figured it was more for higher-end systems 22:41:10 higher you go, the more it converges 22:41:26 converges? as in you don't save by building yourself? 22:41:41 You usually don't anymore. 22:41:47 Right. True on the low end, and on the high end; bit of slack in the middle. 22:41:56 I still build my kit from parts, but for reasons of control and warranty, not because it's a big money saver. 22:41:58 weird 22:42:02 I figured it'd be the other way around 22:42:24 yeah, I thought about building, but was more interested in building a quiet system 22:43:11 they're all quiet when they're powered down 22:43:15 heh 22:43:16 VERY. 22:43:36 I'm also interested in low power consumption 22:43:41 See above. 22:43:46 :) 22:44:15 I'll probably just not replace my desktop when it dies 22:44:47 just have a laptop, and hook it to my keyboard and monitor while home 22:44:58 Or get one with a sufficiently nice screen. 22:45:04 And keyboard. 22:45:15 maybe on the screen 22:45:19 I like my apple pro keyboard though 22:45:31 and I like having the screen a foot higher than my keyboard 22:45:36 better for my neck 22:46:13 initially (since it won't support my nice flatpannel, I probably will just stick the laptop up on this little shelf in front of me 22:46:31 As long as you've got a good screen and a good keyboard, the system that you attach to them barely matters anymore, except for a small set of computationally intensive tasks. 22:46:43 right 22:46:50 I'm doing ok with 450MHz here 22:47:00 I'm sure I'll be fine with a modern laptop 22:50:49 Eee! 23:01:14 416Mhz here, in my pretty little zaurus. 23:02:52 no heat; no noise. It doesn't have a fan. I have a external USB cd player, and didn't get the secret about NIN's Year Zero until I had my ps3 play it. 23:03:52 huh? 23:04:17 what's NIN's Year Zero? 23:05:25 an album; the label of the cd changes color under heat. 23:09:40 --- join: saon|work (i=84aaa24d@gateway/web/cgi-irc/ircatwork.com/x-f8827ef92ed2e7c2) joined #forth 23:16:47 ayrnieu: you're doing irc from your zaurus? 23:20:20 naturally. 23:21:37 although I have a clamshell model, if you're wondering how I manage with the other style's fold-out keyboard. 23:25:52 --- quit: arke (" HydraIRC -> http://www.hydrairc.com <- The professional IRC Client :D") 23:26:58 so, why does ANS Forth have GET-CURRENT and SET-CURRENT ,instead of CURRENT@ gand CURRENT! ? 23:31:00 to mirror the understandably odd GET-ORDER SET-ORDER ,I suppose. 23:37:54 my trouble is I really really like keyboards 23:38:35 maybe if I didn't do so much e-mail and irc it wouldn't matter 23:39:26 several years ago I had a palm pilot and a folding keyboard 23:39:45 that was pretty spiffy 23:40:23 I could walk around with the palm pilot in one pocket and the keyboard in the other 23:40:38 is that a keyboard in your pocket or are you just happy to see me? 23:43:00 same. My foldable keyboard died after only a few months, however. 23:46:14 --- quit: saon|work ("CGI:IRC (Ping timeout)") 23:51:58 --- join: forther (n=forther@c-67-180-150-67.hsd1.ca.comcast.net) joined #forth 23:55:14 --- join: ygrek (i=user@gateway/tor/x-0a1380fa0fa0e0d2) joined #forth 23:59:59 --- log: ended forth/07.11.08