00:00:00 --- log: started forth/16.10.15 00:05:08 --- join: neceve (~ncv@79.114.68.86) joined #forth 00:05:08 --- quit: neceve (Changing host) 00:05:08 --- join: neceve (~ncv@unaffiliated/neceve) joined #forth 01:26:30 --- join: rprimus_ (~micro@a9.lence.net) joined #forth 01:33:51 --- quit: reepca (*.net *.split) 01:33:52 --- quit: fiddlerwoaroof (*.net *.split) 01:33:52 --- quit: Quozl` (*.net *.split) 01:33:52 --- quit: segher (*.net *.split) 01:33:53 --- quit: bluekelp (*.net *.split) 01:33:53 --- quit: backer (*.net *.split) 01:33:53 --- quit: rprimus (*.net *.split) 01:34:06 --- join: fiddlerwoaroof (~fiddlerwo@unaffiliated/fiddlerwoaroof) joined #forth 01:51:30 --- join: reepca (~user@std-001.cune.edu) joined #forth 01:51:30 --- join: Quozl` (~quozl@download.laptop.org) joined #forth 01:51:30 --- join: segher (segher@bombadil.infradead.org) joined #forth 01:51:30 --- join: bluekelp (~bluekelp@bluekelp.com) joined #forth 01:51:30 --- join: backer (~backer@cowbell.employees.org) joined #forth 02:13:07 It's just weird because I like forth and it's minimalism 02:13:14 but I am also a very high level programmer 02:13:45 and there are certain things about low level programming I choose to just throw out the window because I don't like them or use them. Like I don't like floating point and usually I just choose to try not to divide numbers at all. 02:15:41 I sort of guess I imagined that the stack would just keep adding and adding like one big linked list 02:16:13 but I suppose at some point the length of the linked list would be so long that it would be really not rational to want to get to any value near the bottom 02:16:50 I guess what I need is variables arrays and pointers 02:17:09 especially arrays 02:18:42 oh these are builtin cool 02:26:41 the more I learn forth the more I realize how minimal it is and how easy it is to learn 02:26:47 It's just ridiculous how simple it is 02:27:14 and I love how every single thing in the language is a word 02:28:37 hue hue hue constants 02:29:31 --- join: backer_ (~backer@cowbell.employees.org) joined #forth 02:30:39 --- join: Quozl`_ (~quozl@antitheft.laptop.org) joined #forth 02:30:44 --- join: reepca` (~user@std-001.cune.edu) joined #forth 02:33:51 --- join: segher_ (segher@bombadil.infradead.org) joined #forth 02:38:01 --- quit: reepca (*.net *.split) 02:38:01 --- quit: Quozl` (*.net *.split) 02:38:02 --- quit: segher (*.net *.split) 02:38:02 --- quit: bluekelp (*.net *.split) 02:38:02 --- quit: backer (*.net *.split) 02:40:29 --- join: bluekelp (~bluekelp@bluekelp.com) joined #forth 02:55:01 I am getting really confused about the cells word with arrays 03:00:27 Oh I see now 03:00:40 cells just allows you to do calculations for how much you need to add in order to move over one cell 03:01:06 so if my address is 4 and I need to move over to an address two cells over. I would type 4 2 cells + 03:04:37 it is weird to wrap my head arround but I am actually manipulating addresses to point to the locations in the array 03:06:20 It's dangerous because the array starts out with garbage values 03:07:32 --- quit: mnemnion (Remote host closed the connection) 03:10:16 oh I see 03:10:43 so when you allot cells to a variable you use the word cells to see what number alot needs in order to add that many cells 03:46:43 4557 cell array here we go 04:17:34 --- join: true-grue (~true-grue@176.14.222.10) joined #forth 06:06:11 : sleep 0 do 0 drop loop ; 06:06:26 : sleep1s 9999999 sleep 999999 sleep ; 06:11:29 --- quit: true-grue (Read error: Connection reset by peer) 06:12:10 --- quit: John[Lisbeth] (Remote host closed the connection) 06:26:19 --- quit: X-Scale (Quit: HydraIRC -> http://www.hydrairc.com <- Wibbly Wobbly IRC) 06:54:54 --- join: rgrinberg (~rgrinberg@blk-212-79-74.eastlink.ca) joined #forth 07:03:00 --- quit: rgrinberg (Remote host closed the connection) 07:05:41 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:68c5:7b0f:c83a:26ad) joined #forth 07:09:34 --- join: rgrinberg (~rgrinberg@blk-212-79-74.eastlink.ca) joined #forth 07:10:00 --- quit: mnemnion (Ping timeout: 245 seconds) 07:48:05 --- quit: rgrinberg (Remote host closed the connection) 08:23:09 --- join: rgrinberg (~rgrinberg@blk-212-79-74.eastlink.ca) joined #forth 08:27:48 --- quit: rgrinberg (Quit: Using Circe, the loveliest of all IRC clients) 08:43:23 --- join: nal (~nal@adsl-64-237-239-165.prtc.net) joined #forth 09:00:10 --- join: littlegirl (~littlegir@cpe-66-24-80-167.stny.res.rr.com) joined #forth 09:07:16 --- quit: dys (Ping timeout: 258 seconds) 09:11:09 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:d43b:25be:abc4:6e5e) joined #forth 09:15:25 --- quit: mnemnion (Ping timeout: 245 seconds) 09:26:29 --- join: dys (~dys@ip-109-44-2-157.web.vodafone.de) joined #forth 09:29:54 --- join: true-grue (~true-grue@176.14.222.10) joined #forth 09:59:34 --- quit: dys (Ping timeout: 250 seconds) 10:16:17 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:e16a:882f:dd8b:d29a) joined #forth 10:20:25 --- quit: mnemnion (Ping timeout: 245 seconds) 10:48:56 --- quit: littlegirl (Quit: *POOF*) 10:51:53 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:e16a:882f:dd8b:d29a) joined #forth 10:56:15 --- quit: mnemnion (Ping timeout: 245 seconds) 11:22:55 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:e16a:882f:dd8b:d29a) joined #forth 12:24:37 --- nick: reepca` -> reepca 12:38:21 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 13:25:23 --- join: nal1 (~nal@adsl-72-50-84-126.prtc.net) joined #forth 13:28:46 --- quit: nal (Ping timeout: 244 seconds) 14:10:47 --- join: impomatic_ (~digital_w@host81-136-85-154.range81-136.btcentralplus.com) joined #forth 16:05:44 --- join: rgrinberg (~rgrinberg@blk-212-79-74.eastlink.ca) joined #forth 16:09:00 --- quit: true-grue (Read error: Connection reset by peer) 17:51:26 --- join: dys (~dys@ip-109-44-1-137.web.vodafone.de) joined #forth 18:08:36 --- quit: Zarutian (Quit: Zarutian) 18:27:04 --- quit: neceve (Quit: Konversation terminated!) 18:43:36 --- quit: beretta (Quit: Leaving) 18:45:03 --- quit: nal1 (Quit: WeeChat 1.4) 19:07:17 --- join: John[Lisbeth] (~user@52.165.40.155) joined #forth 20:38:35 I was writing some pretty good forth programs last night. 20:39:03 First I did : star ." *" ; 20:39:11 and then : stars 0 do star loop ; 20:40:12 and I kept doing cr 10 star cr 15 star cr 20 star until I figured out how wide my terminal was 20:40:26 lets say it was 23. then I would : terminal-width 23 ; 20:41:09 So I : row-of-stars terminal-width stars ; 20:41:37 : rows-of-stars 0 do row-of-stars loop ; 20:41:53 and 10 rows-of-stars 20 rows-of-stars 30 rows-of-stars until I found out my terminal height 20:42:07 : terminal-height whatevernumberitwas ; 20:42:29 : arraysize terminal-height terminal-width * ; 20:43:16 variable pixelgrid arraysize cells allot 20:43:46 pixelgrid arraysize cells 0 fill 20:44:22 Then I looped through that array and printed a different char to the screen depending on what number was stored in the cell. For now if it's 0 it's a space and if it's a 1 it's a star 20:44:44 And then I started writing words to animate simple graphics on the screen 20:45:25 The flow of it in the repl seemed so natural and easy to work through 21:07:22 What I really need to do to continue my rendering is to either programatically discover the height and width of the terminal while the program is running or else take over the displaying of characters on the screen entirely 21:07:49 I don't think my method of continually printing out one character at a time until I get an entire screenful is the standard method of creating graphics in the terminal 21:47:21 --- quit: rgrinberg (Ping timeout: 252 seconds) 22:33:25 --- quit: groovy2shoes (Ping timeout: 258 seconds) 22:47:06 --- join: beretta (~beretta@cpe-184-58-116-76.columbus.res.rr.com) joined #forth 22:54:47 --- join: groovy2shoes (~groovy2sh@unaffiliated/groovebot) joined #forth 22:56:06 John[Lisbeth]: I think what you might want to use is https://en.wikipedia.org/wiki/ANSI_escape_code. They're used to create text-based user interfaces. It should be easy enough for you to hack together a word to emit a character at a certain (x, y) coordinate. 23:08:30 --- quit: dys (Ping timeout: 260 seconds) 23:14:01 interesting 23:14:21 so it seems you have these codes which are determined by your system 23:14:30 and you can execute these codes to get them to render the things you want 23:14:43 so I need to find out what these codes are on my system and how to execute them 23:15:01 well the codes are determined by the American National Standards Institute 23:15:15 they should be the same across all compliant systems 23:15:37 look specifically here for a brief list https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes 23:19:19 so are you saying I use emit to produce these codes? 23:19:32 yep, I believe 27 is the code for ESC 23:19:47 oic that's e z p z 23:19:53 gforth uses these actually, it prints its "redefined" messages in blue. 23:20:00 is there a way to do vector graphics? 23:20:08 nope, just character graphics 23:20:19 how did we have vector graphics in the 80's then? 23:20:54 in the 80s we had vector graphics in our displays, didn't we? We just told them to draw a line from here to here instead of giving values for every point 23:21:11 I can't do that in a terminal emmulator or ssh window? 23:21:45 Nope, it was a feature of the hardware if I understand correctly. But! If you look here... https://en.wikipedia.org/wiki/Text-based_user_interface 23:21:54 I C 23:22:07 so basically I should be looking to do this through x or a web browser 23:22:21 at least if I ever move over to vector graphics 23:22:36 if you want to do vector graphics portably, yeah. 23:22:53 This makes me pretty excited 23:23:03 if you want to do it portably and fast, you should consider opengl, or if you really want to be invested, vulkan 23:23:34 I am looking to program using old tricks and techniques to speed things up and try to keep my footprint very small 23:23:47 There is this game kind of like code golfing with video games 23:24:04 and you just want your footprint to be as small as possible for you game while having as much as possible within your game 23:24:36 I want to use really old techniques to trick the eye for example rather than render certain things 23:25:01 See I've been on this sort of 4 year long writer's block of code bcause I didn't like the languages I was using 23:25:13 and lisp sort of unblocked that a little but forth unblocks it alot 23:25:15 I feel like I should also point you to Mr. Paysan's Minos-thing... currently-in-development is minos 2, minos one is more... existent, I think, but it's a bit outdated. 23:25:43 I think for now I actually just need to sit and bash out some of my own programs 23:25:58 and try to keep it low level with few or no dependencies 23:26:26 Part of the problem is there is a huge part of history in the inner workings of computers that someone of my generation does not see 23:27:29 ¯\_(ツ)_/¯ my generation doesn't really see computers in general, they live about 23 levels of abstraction above them. 23:28:59 It took me a long time to figure out things like the shell and turing completeness and all that and to truly understand them 23:29:37 I mostly just got fed up with windows, jumped into linux, bam programming. 23:29:48 anyway I'm gonna call it a night, got church in the morning 23:30:50 l8er sk8er 23:31:01 ty for the emit help btw 23:54:40 I think it's cool how you can run x programs inside of gforth 23:54:41 John[Lisbeth]: regarding finding how wide your terminal is, you can get this info with ansi escape codes as well setting colors and cursor position etc: 23:54:47 I mean not x programs but cli 23:55:12 Yeah it is clear to me I can do this with the emit command 23:55:22 Makes me wonder what else I can do with emit 23:55:32 : c!+ over c! 1+ ; 23:55:46 : absorb; pad pad begin key dup [char] ; <> while c!+ repeat drop over - s>number drop ; 23:55:56 : absorbt pad pad begin key dup [char] t <> while c!+ repeat drop over - s>number drop ; 23:56:07 : term-dim ESC[ ." 18t" absorb; absorb; absorbt rot drop ; 23:56:56 ( In gForth. Not my best code, but it was when I was still new to forth...) 23:57:45 That should leave the terminal dimensions in characters on the stack. 23:59:16 neat. I'll keep that tucked away in a file somewhere 23:59:59 --- log: ended forth/16.10.15