2023-11-06 02:38:52 KipIngram: Search order restore 2023-11-06 02:39:37 That's it really, and hypothetical dictionaries that aren't an inline linked list as well 2023-11-06 02:41:31 Ignoring dictionaries with a structure that prevents simple FORGET working, I think the right approach for FORGET is just to remove wordlists if they're removed, and maybe do ONLY FORTH if necessary to keep search order working 2023-11-06 02:42:07 So it's possible to do FORGET nicely on new Forths, but alas it was removed from 200x and will be missing from many newer Forths 2023-11-06 02:44:01 The prerequisite of MARKER to use it *before* you need it makes it less useful to use interactively 2023-11-06 02:49:01 Since stackoverflow is such giant pain in the butt I just made my own tiny blog post and deleted my question there: http://olleharstedt.github.io/programming/forth/gforth/2023/10/19/forht-how-do-i-use-vocabulary.html 2023-11-06 02:49:16 Oh nice, spelling error 2023-11-06 02:49:19 forht 2023-11-06 02:51:56 olle: also my-voc 2023-11-06 02:52:01 Not my-vol also 2023-11-06 02:52:09 also is just 'dup' for search order 2023-11-06 02:52:19 my-voc sets top wordlist to my-voc 2023-11-06 02:52:54 That's why you're getting two my-voc's on top 2023-11-06 02:54:14 Where you define test you should define : forth forth ; immediate 2023-11-06 02:54:45 THen if you end up with my-voc at top and no forth words you can switch back to forth 2023-11-06 02:56:50 Otherwise it looks like you're using the vocabulary correctly, the main use of them is just to create 'private' words, you can also define an 'application' by adding a load of app words to a vocab (and add 'internal' ones to another private vocab) 2023-11-06 02:57:11 And then you run the application by switching to that main vocab 2023-11-06 02:57:27 e.g. editor 2023-11-06 02:57:44 Hm 2023-11-06 02:58:16 Thanks! 2023-11-06 02:59:48 And sometimes wordlists switch as part of some syntax, e.g. 'code' creates a new code definition and puts the assembler wordlist on top 2023-11-06 03:00:00 And then 'next' at end of code def puts forth back on top 2023-11-06 03:47:12 My current take on create and does>: "isn't create and does> very similar to logic happening in a class constructor, and logic happening for an invokable object (calling an object like a function)?" 2023-11-06 03:47:36 But is there a case in Forth that's not covered by this? 2023-11-06 03:50:39 Let me know and I'll add it to my blog lol 2023-11-06 04:26:33 olle: People have said create/does> are like an early object oriented programming feature, but with only one 'method' 2023-11-06 04:27:02 I think what you've said is reasonable, I'm sure there's some use of DOES> I've not thought of 2023-11-06 04:27:24 But all DOES> does is overrides some data with a different action 2023-11-06 04:39:42 olle: You should consider submitting your article here first for feedback, I'm sure someone here can give some useful input 2023-11-06 04:43:18 veltas: Yea sure. I doubt many people will reach my blog anyway. 2023-11-06 04:47:37 So it's basically a one-to-one correspondence between create/does> and oop with one method? 2023-11-06 04:58:19 I wouldn't use such formal language personally 2023-11-06 04:58:45 DOES> overrides a CREATE'd bit of data with a different action 2023-11-06 04:58:59 Default action being just pushing its address to stack 2023-11-06 04:59:10 And you can still access the data indirectly with >BODY 2023-11-06 04:59:24 These are the key functionality considerations 2023-11-06 04:59:59 So we're associating behaviour with data, a lot of situations call for this 2023-11-06 05:02:47 Will have to read about >BODY 2023-11-06 05:06:01 Yea bundling data with behaviour is oop 101, but still, would be interesting to dig deeper into the differences, especially when coming from oop to forth 2023-11-06 05:38:00 One difference is Forth allows defining syntax, so you can define CONSTANT in one simple line, nothing like that is possible in normal languages 2023-11-06 05:38:31 The syntax is probably more succinct than most languages too if you compare with e.g. C++ 2023-11-06 05:53:20 Yea implicit word execute 2023-11-06 06:07:06 That doesn't really affect your top design tho. 2023-11-06 06:23:59 DOES> is described in starting forth as creating your own defining words, essentially creating your own syntax 2023-11-06 06:24:05 The lines blur in Forth 2023-11-06 06:26:21 For example I'm designing a menu system for GUI programs in forth, the word to create a menu is MENU and you write e.g. MMENU MENU FILE-MENU &File^ FILE-MENU MENU FILEM-NEW &New...^ FILE-MENU MENU FILEM-SAVEAS Save &As...^ etc. 2023-11-06 06:26:35 You might consider that 'syntax' depending on how you look at it 2023-11-06 06:43:04 veltas: Honestly, I think it's misleading to describe it as "your own syntax". No one desribes OOP like that. 2023-11-06 06:44:14 But yea, bit blurry. :) 2023-11-06 06:44:37 The implicit stack and implicit execute of words make the line a bit blurry, I mean. 2023-11-06 07:08:17 olle: So if I define CONSTANT with CREATE/DOES> I haven't created syntax? 2023-11-06 07:09:18 No, you've created a normal word in forth :) Or? 2023-11-06 07:09:35 Maybe just semantics 2023-11-06 07:11:50 Well syntax+semantics because I've made rules for how you write certain combinations of words, and what they mean 2023-11-06 07:12:54 We consider words that interpret to modify the syntax of the program, which is fair given how basic the actual core syntax of the interpreter is 2023-11-06 07:13:18 Rather, 'we consider words that interpret to be words that modify the syntax' 2023-11-06 07:14:10 In most forths the interpreter + compiler is a few lines ... if that 2023-11-06 07:14:31 Albeit leveraging powerful interpretation words, but those words are available to you as well 2023-11-06 07:15:53 But CONSTANT can also be translated to a simple OOP class with one cell property and one method. Just add "call method automatically"? 2023-11-06 07:16:56 Can you use the constant class objects defined in C++ to conditionally include code to build? 2023-11-06 07:17:27 `10 constant foo` <==> `foo = new constant(10)` 2023-11-06 07:17:41 veltas: you mean inside [ ] in forth? 2023-11-06 07:18:14 I mean a CONSTANT I define can affect `[IF]...[THEN]` 2023-11-06 07:18:22 Can you affect `#if ... #endif` in C++? 2023-11-06 07:19:49 Good point. 2023-11-06 07:20:12 Or some equivalent, I suppose you can in limited circumstances with `if ...`, but not anything 2023-11-06 07:20:26 I wouldn't call that new syntax but rather blending compile time/run time. 2023-11-06 07:22:17 For example in sectorforth you have to define a lot of the syntax when it boots before it's 'useful' or able to print hello world 2023-11-06 07:24:17 I think forth and lisp have a right to say they let you write your own syntax, even if they 'cheat' a little by having very simplistic interpreters/compilers 2023-11-06 07:24:35 I agree, I'm just not sure create/does> is that :) 2023-11-06 07:24:43 More like parse and >in etc 2023-11-06 07:24:44 https://github.com/fuzzballcat/milliForth 2023-11-06 07:24:48 Hooking into the input stream 2023-11-06 07:24:57 "A FORTH in 422 bytes" 2023-11-06 07:25:28 Someone was factoring sectorforth in here at one point, who was that? 2023-11-06 07:27:09 i did 2023-11-06 07:27:27 Where did you get to? 2023-11-06 07:27:35 hang on i'll check 2023-11-06 07:28:45 Original brainfuck compiler is 172 bytes 2023-11-06 07:28:46 416 2023-11-06 07:29:06 i got 416 bytes 2023-11-06 07:29:11 Is it on your github? 2023-11-06 07:29:23 i dont have a github but i can send it to you 2023-11-06 07:30:11 veltas: dcc? 2023-11-06 07:30:20 That milliForth is currently on Hackernews and Lobsters 2023-11-06 07:30:30 GeDaMo: lol nice 2023-11-06 07:30:35 Front page 2023-11-06 07:30:50 Yeah I think you should post your sectorforth somewhere 2023-11-06 07:31:00 I'm not doing it for you :P 2023-11-06 07:31:52 dave0 took the thinnest rod and drilled a hole through it 2023-11-06 07:33:04 i like code golf :-) 2023-11-06 07:33:59 Today I learned that Bitcoin's script language is a RPN 2023-11-06 07:34:17 From reading the thread on this groundbreaking 422 byte forth 2023-11-06 07:36:08 i ditched "exit" from sectorforth because you can write it in sectorforth 2023-11-06 07:36:21 exit is basically >r drop 2023-11-06 07:36:29 How many chars are 422 bytes? 2023-11-06 07:36:31 422? 2023-11-06 07:36:38 yep 2023-11-06 07:36:40 kk :) 2023-11-06 07:37:17 Would a three instruction Forth be considered cheating? :P 2023-11-06 07:37:18 it's a bootblock so its always 512 bytes, but there would be 90 unused bytes which could be 0 or space or anything it doesn't matter 2023-11-06 07:39:04 There are literally forth chips so those would be shortest interpreters 2023-11-06 07:39:11 I would guess 2023-11-06 07:39:31 Yes I think that would be cheating a bit GeDaMo ;) 2023-11-06 07:45:51 In case anyone is unfamiliar https://wiki.forth-ev.de/lib/exe/fetch.php/en:projects:a-start-with-forth:3_instruction_forth.pdf 2023-11-06 07:56:45 dave0: How much of the logic is doing the terminal? 2023-11-06 07:57:10 veltas: i got a real small ACCEPT 2023-11-06 07:57:27 What I'm sort of asking is do you have to simulate a terminal yourself or does BIOS support sort of a stdin/stdout deal? 2023-11-06 07:58:00 ah yeah i used the bios to read a key and to write a character 2023-11-06 07:58:26 but i dont call the forth "emit" and "key", i just write the bios call inline 2023-11-06 07:58:30 So you can just 'output a character' and it wraps/scrolls etc? 2023-11-06 07:58:39 veltas: yes, and it handles backspace too 2023-11-06 07:58:49 veltas: i have error checking 2023-11-06 07:59:03 veltas: it prints unknown words in red 2023-11-06 07:59:03 That's interesting to know (re char output) 2023-11-06 07:59:08 Nice 2023-11-06 07:59:30 veltas: sectorc (c compiler in a bootblock) reads over the serial port 2023-11-06 07:59:32 with the bios 2023-11-06 07:59:55 Oh is this over serial? 2023-11-06 08:00:30 mine? no. milliforth? ihaven't looked at the code 2023-11-06 08:00:36 Yours 2023-11-06 08:00:42 Not interested in milliforth bloatware 2023-11-06 08:00:46 lol 2023-11-06 08:01:11 i copied sectorforth and used the keyboard and video 2023-11-06 08:01:43 Does sectorforth init registers? 2023-11-06 08:01:51 yes 2023-11-06 08:01:58 I wonder if they have a known state 2023-11-06 08:01:58 it's fairly straightforward code 2023-11-06 08:02:18 i'm not a demo coder, demo coders know what values are in registers ;-) 2023-11-06 08:02:25 on startup 2023-11-06 08:02:39 Just could be an opportunity to go smaller 2023-11-06 08:02:42 there was a 16 byte demo 2023-11-06 08:02:58 Fill screen with a pattern or something? 2023-11-06 08:03:23 veltas: i already know i can go smaller ... i use expanded LODSW ; JMP AX instead of a JMP to common code 2023-11-06 08:03:38 veltas: yeah iirc it was a scorlling checkerboard 2023-11-06 08:03:40 Might be worth checking out sectorlisp as well to see if there's any good tricks there 2023-11-06 08:05:29 veltas: https://paste.c-net.org/ViolatedCramp 2023-11-06 08:05:39 veltas: it is my sectorFORTH.zip 2023-11-06 08:05:42 you can check the code 2023-11-06 08:06:00 i ported hello.forth 2023-11-06 08:06:06 wrote a crappy readme 2023-11-06 08:06:09 Not at work I shouldn't but maybe later 2023-11-06 08:06:18 ok no worries 2023-11-06 08:06:22 I can't even resolve that domain at work 2023-11-06 08:06:33 I think they use cloudflare or something, might want to check it works with 1.1.1.1 2023-11-06 08:07:10 I know whatever we have at work is crap because it fails to load a lot of sites and IT don't want to hear about it 2023-11-06 08:07:44 nslookup paste.c-net.org 1111 works for me 2023-11-06 08:08:29 Works-Here(TM) certified 2023-11-06 08:08:37 haha 2023-11-06 08:08:41 yup :-) 2023-11-06 08:09:11 oh one thing that saved a lot of space was changing the dictionary from a linked list to a stack 2023-11-06 08:10:14 i rewrote the accept code to be less featureful but still worked (eg. backspace doesn't erase characters) 2023-11-06 08:10:35 oh and i shrunk the parser 2023-11-06 08:11:53 That's a cool optimisation (linked list -> stack) 2023-11-06 08:12:16 Do you think that would be appropriate in a normal forth? 2023-11-06 08:12:40 i think it's possible! 2023-11-06 08:12:54 colorforth uses an array rather than a linked list for the dictionary 2023-11-06 08:12:56 but i dont know how vocabularies would work 2023-11-06 08:13:25 GeDaMo: Does it use 3 significant chars + size? 2023-11-06 08:13:46 It uses some kind of hash of the name from what I can remember 2023-11-06 08:14:14 3 significant chars + size is a (bad) hash so that is a logical successor 2023-11-06 08:16:55 dd ((140o shl 7+146o)shl 7+142o)shl 11 ; dup 2023-11-06 08:17:29 I think that's the name entry for "dup" 2023-11-06 08:33:33 woah, neat, evincarofautumn is making another concatenative language 2023-11-06 08:33:45 what a time to be alive 2023-11-06 08:56:35 veltas: That's what I've typically done. I check the search list for vocabularies that would lie beyond the reduced dictionary and remove those, and check CURRENT. And as you say, make sure that Forth is back in the search list if it wasn't. 2023-11-06 08:58:40 In the new system I plan to put vocabularies in their own memory ranges, so it will be a different set of issues. Probably, though, it will mostly mean just FORGETting in the vocabularly that contains the word being forgottten, but make sure I remove child vocabularies that get dropped that way. 2023-11-06 08:58:46 deallocate them, that is. 2023-11-06 08:59:09 well, wait - no, I will have to look at other vocabularies as well, in case the call forgotten stuff. 2023-11-06 08:59:16 So MARKER may make more sense for me. 2023-11-06 08:59:40 It does just get harder when you no longer have one monolithic RAM range. 2023-11-06 09:00:50 I'll potentially need a way to trace additions chronologically and drop using that. 2023-11-06 09:06:13 hmm, it seems most forths just keep wrapping if you enter a number that's too large 2023-11-06 09:06:53 too large to fit the cell size 2023-11-06 09:06:59 That's what I do. 2023-11-06 09:07:16 it wouldn't be too hard to catch it, though. 2023-11-06 09:10:30 In some sense you still get "whatever makes sense" for what you type (I.e., in theory you might have known what you were doing). For floating point numbers, though, it leads to nothing you can even imagine being worthwhile. 2023-11-06 09:10:53 And easily can lead to NaNs. 2023-11-06 09:15:58 olle: I kind of gave up on Stack Overflow and Stack Exchange long ago - I find those communities to be particularly rude and intolerant and mostly more interesting in showing off how much they know than actually helping people. 2023-11-06 09:16:31 Put a question there and you will almost inevitably get replies of the "You're stupid to want to do that" flavor. 2023-11-06 09:17:18 Also, yes, I do think create/does> has some resemblance to bits of OO coding. 2023-11-06 09:18:35 I also avoid the OO style language, though; I regard all of what we do in Forth as just "designing an application specific lexicon." 2023-11-06 09:19:30 olle: 422 bytes might be fewer than 422 chars if you have any utf8 stuff going on. 2023-11-06 09:20:22 Breaking that one char = one byte thing adds a fair bit of complication to various things. 2023-11-06 09:21:05 My EXPECT supports utf8, and ansi sequences, and lets me not just create new strings but also edit old ones. But it swelled up to quite a bit of code. :-| 2023-11-06 09:21:43 May be partially because I didn't write it to do those things to start with but rather "modified" it later. If I clean sheet of papered it it would probably be smaller. 2023-11-06 09:25:08 olle: I just got tired of that "attitude" on SO and SE so I just stopped bothering with them. 2023-11-06 09:25:38 Just too stuck up and snotty for me. 2023-11-06 09:44:44 KipIngram: I've hade 40% positive experience at least, I think. :) But yes, the arrogance is unnerving. 2023-11-06 09:45:26 designing an application specific lexicon. // nice one, but I think some hand-holding is in order when coming from OOP, for application design. 2023-11-06 09:45:41 Like, instead of inheritance for code-reuse, what would you use? 2023-11-06 09:50:05 Does inheritance really help with code reuse? 2023-11-06 09:50:17 I'm not too experienced with OOP, so I don't even really know how to answer that question in a good OO way - to me I "re-use code' every time I factor code into a definition and use that definition in multiple places. 2023-11-06 09:50:49 I mean, I try to create words that provide function useful in more than just one place. 2023-11-06 09:51:07 I believe some game developers use https://en.wikipedia.org/wiki/Entity_component_system 2023-11-06 09:53:16 olle: Sometimes factoring is purely for the opportunity to re-use some code, but it can also be just to achieve short definitions that are made of "sensible sub functions" so the code is easy to read and understand. In those cases I usually create those sub-words as temporary and don't retain them in my dictionary. 2023-11-06 09:53:25 So it's not always about "re-use." 2023-11-06 09:53:37 Not the only reason to factor, that is. 2023-11-06 09:54:33 I somehow think you mean writing code in a way that lets me apply a particularly algorithm to more than one type of data. In the relatively pure Forths I've written to date there is no type support, so that kind of doesn't come up. 2023-11-06 09:55:26 My words do specific things to specific "bit patterns in RAM," and don't know how to work with any patterns that don't match that. 2023-11-06 10:04:21 s/particularly/particular/ 2023-11-06 10:05:44 GeDaMo: Having a base class can be useful ime 2023-11-06 10:05:47 in my experience 2023-11-06 10:07:29 It has always looked like a reasonable way to do things to me. I've just never waded into it. I imagine it's one of those things that can be nifty but that you can also get carried away with. 2023-11-06 10:08:13 As an embedded guy, the idea of regarding software entities as "objects" that I can "do things to" has always made a lot of sense. 2023-11-06 10:08:50 In some ways a software object is similar to a specific piece of hardware sitting out there - the hardware has its own data stored inside, in registers and stuff, and I can "act on it" in specific ways. 2023-11-06 10:09:30 The data is specific to that actual hardware item, but the things I can do are defined by the "design" of the hardware. 2023-11-06 10:10:03 When I poke a hardware register, that's exactly like sending the hardware a "message," and it responds in a specific way. 2023-11-06 10:15:02 Makes sense :) 2023-11-06 10:16:15 Yeah, either way it's as though there's a "thing" that I'm interacting with. 2023-11-06 10:16:48 And generally if that particular object is busy doing something, I have to wait for it to finish before doing something else to it. 2023-11-06 10:17:22 Whereas it's fine to do other things to other objects (unless it's not - I guess the two objects could have a dependence). 2023-11-06 10:18:28 What you get in OO that you don't get with hardware is the ability to just go and create new objects whenever you like. I haven't figured out yet how to spontaneously generate new hardware. :-) 2023-11-06 10:24:25 hi, I was just wondering about this whole "webassembly" thing and what to make of it. Any thoughts? 2023-11-06 10:28:22 seems awesome 2023-11-06 10:28:43 people were doing the same thing anyway with a janky javascript library. might as well support it formally 2023-11-06 10:28:58 It does seem popular, but I've always found that name to be a total oxymoron. 2023-11-06 10:29:42 To me "assembly' is something you do right down at the bare metal, and "web" just doesn't go along with that in my head. 2023-11-06 10:29:52 computer people can suck at naming things 2023-11-06 10:31:10 why not? it does actually get converted into assembly that runs natively on your machine 2023-11-06 10:31:33 bare metal as you say 2023-11-06 10:32:15 "on openbsd wasm is disabled by default in chromium due to it being an unmititgated disaster" 2023-11-06 10:32:35 Well, I mostly just don't know a lot about it. That was just my knee-jerk reaction when I first bumped into it. 2023-11-06 10:32:51 I'm open to the idea that it was an unfair reaction. 2023-11-06 10:33:42 I'd have leaned more toward "online assembler" as the descriptive term. 2023-11-06 10:34:32 "Web assembly" makes it sound like it's "different" from "normal assembly." As in a different instruction set or something. 2023-11-06 10:34:51 But if it just produces code for your system, then it's just "assembly." 2023-11-06 10:35:13 That you happen to do with a web interface (i.e., "online.") 2023-11-06 10:35:40 It's a different language 2023-11-06 10:35:49 It's not e.g. x86 assembly 2023-11-06 10:36:16 Then how does it run on your machine? MrMobius said it runs bare metal. 2023-11-06 10:36:38 If you aren't working with YOUR MACHINE'S instruction set then I don't really call it "assembly." 2023-11-06 10:36:51 It's translated to machine code by a JIT compiler 2023-11-06 10:37:06 That's not assembly to me. 2023-11-06 10:37:27 And it's not running bare metal if there's a translation layer. 2023-11-06 10:37:33 they could have called it a webvm 2023-11-06 10:37:48 they could have called it anything lol. this is the boathouse argument all over 2023-11-06 10:37:49 Yes - it just feels like an abuse of the term "assembly." 2023-11-06 10:38:03 And I don't mean to criticize it in and of itself - it may be great. 2023-11-06 10:38:09 Just quibbling over the name. 2023-11-06 10:38:39 seems like we're splitting hairs here. a C compiler or any other compiler can output "assembly" for this VM that is then turned into native machine code for whatever machine you run it on 2023-11-06 10:38:51 We are splitting hairs to some extent. Or I am, rather. 2023-11-06 10:39:03 Javascript can be translated to machine code too 2023-11-06 10:39:12 All I'm saying, though, is that I regard "assembly" something very specific. 2023-11-06 10:39:25 Where you work directly with the native instruction set of your processor. 2023-11-06 10:39:40 whether you compile a native binary for your machine or for webassembly, you get native machine code in both cases. you could consider the assembly output of the C compiler for the native binary a "translation layer" at that point 2023-11-06 10:40:10 I think that to call it assembly you need a one-to-one direct mapping between the instructions you write and the bytes of machine code that result. 2023-11-06 10:40:23 But to reiterate - I don't want to criticize the product itself. 2023-11-06 10:40:31 It could be perfectly fine functionality. 2023-11-06 10:41:17 hehe then we have to disqualify MIPS and RISC-V. you might get one machine code instruction per assembly instruction or you might get 10. depends on what it's doing :P 2023-11-06 10:46:54 Yeah, that does sound awfully complex. I've looked into it a bit. 2023-11-06 10:47:24 All part of the general "complification" that has characterized processor design for decades. 2023-11-06 10:49:14 Even x86 has multiple mappings from assembly mnemonic to machine code 2023-11-06 10:49:34 Yes, it does, but you can obfuscate that by just choosing one. 2023-11-06 10:49:53 You don't really need to be able to generate either/or. 2023-11-06 10:50:43 So your assembler can still be a one-to-one map. 2023-11-06 10:51:28 Heh - we could encode messages that way; flip back and forth between a pair of such encodings and embed message bits in a binary. 2023-11-06 10:56:39 thrig: I quite like 'webvm." That just seems more descriptive to me. 2023-11-06 10:57:54 I also object to "two week agile sprints" (nobody can sprint that long) and "continous integration" (it's not) 2023-11-06 11:05:02 I don't object to the general structure of agile - I think there's a fair bit of common sense in it. I just get amused at how "reverent" people get about the process. Sometimes I get the impression people think the process alone is enough to get a great outcome. 2023-11-06 11:05:53 And the idea that it was somehow revolutionary is silly - I did a lot of those practices back when I led product development long before agile was a thing. I just didn't have fancy terminnology for everything. It was just "basic good development practice." Or my attempt at it, anyway. 2023-11-06 11:06:40 For example, the idea that your near-term work should be planned to a more complete level of detail than your long range future work just seems patently obvious. 2023-11-06 11:07:17 And large plans are NEVER "stable" - you're continuously evolving them all the time. 2023-11-06 11:07:44 As my supervising professor once put it, "Plans are useless, but planning is essential." 2023-11-06 11:07:54 "No plan survives contact with the enemy" :P 2023-11-06 11:08:06 ^ 2023-11-06 11:08:24 maybe have a plan B or reserves or something, too 2023-11-06 11:09:36 Probably the biggest part of agile I disagree with is that you can set down a perfectly complete product specification in advance. When you're doing something new and cutting edge, you want your developers to evolve the product itself as the work unfolds. If you set up a process that denies the developers that ability - to improve the product architecture as they learn new things - you don't get the best 2023-11-06 11:09:38 product. 2023-11-06 11:10:04 Maybe it's different for some kinds of products, but in the work I did we TOLD THE CUSTOMER how the product was going to work. 2023-11-06 11:17:57 I just think the idea that you can determine in advance precisely what to build and then have a team of engineers just go off and built it, pecisely that way, is a bit of a pipe dream. Maybe in fields of endeavor where things have been very stable for a long time that could work. But if the products are innovative your engineers are probably the ones with the best grasp of precisely how all the pieces fit 2023-11-06 11:17:59 together and how they should be operated. 2023-11-06 11:29:34 I think that you can never get things everything fully worked out in advance, but back in the 70s and 80s system designs where very "well filled" with every software module having its own design documentation before being coded, and the system infrastructure and comm protocols all being well determined as part of the contract 2023-11-06 11:30:27 I'm referring to aerospace stuff, that being my area of background 2023-11-06 11:30:56 of course it was also assumed every system was going to cost millions of dollars 2023-11-06 11:31:16 which was a lot of money back then 2023-11-06 11:34:27 Well, like I said, if you already know exactly what you want, then maybe that's different. But, we weren't developing product sto fulfill a contract. We were developing products we intended to put on the market and sell. 2023-11-06 11:34:41 So there was no "customer" that was already officially involved. 2023-11-06 11:35:31 We developed the best product we could. Generally the owner would have particular architectural features he was interested in, and it was our job to "bring the rest into reality." 2023-11-06 11:36:12 I took care of a big "next layer" of architecture - as long as the boss got his pet features he was happy. My job was to keep him from having to think about all the other bits that weren't on his mind. 2023-11-06 11:36:37 And to make sure the whole thing got turned into a specific set of tasks that the guys on the team were capable of interpreting. 2023-11-06 11:36:47 And then watch it unfold and make sure the wheels didn't come off. 2023-11-06 11:37:07 I usually did some of the work myself too - I didn't just sit around and manage. 2023-11-06 11:37:19 I did have the good fortune, though, of getting to cherry pick the bits I wanted to work on. 2023-11-06 11:45:24 thrig: Two weeks too long? Or too short? 2023-11-06 11:45:31 for a sprint 2023-11-06 11:45:37 assuming it wasn't just a pun :P 2023-11-06 12:12:17 I intererpreted him as saying it was too long. 2023-11-06 12:12:27 But he may have just been joking. 2023-11-06 12:18:45 I'm basically ok with two week chunks of work; it's not unreasonable. I think three is starting to get a bit long. 2023-11-06 12:18:55 Lot can happen in three weeks. 2023-11-06 12:19:23 I think it really depends 2023-11-06 12:19:33 And one of the points is to have your structure set up to take "adjustments" in stride, so you don't have to make "events" out of them that need special handling, special meetings, etc. 2023-11-06 12:19:38 But if you're doing scrum you need to pick one 2023-11-06 12:19:42 I'm sure it would depend. 2023-11-06 12:20:24 I don't think many deadlines were failed by using two weeks vs one week or whatever 2023-11-06 12:22:00 Yeah, I'm sure there's a range of things in there that will work. 2023-11-06 12:22:42 I'm ok with daily standups only if they TRULY ARE kept to 15 minutes ish. 2023-11-06 12:22:54 It's way too easy for those things to get out of hand. 2023-11-06 12:25:08 Ugh. I ran a dozen jobs over the weekend and I've been working on getting the reports generated since the very first thing this morning. 2023-11-06 12:25:16 Working on the third to last one now. 2023-11-06 12:25:35 Definitely one of the "crank turning" parts of the job. 2023-11-06 12:26:38 The next generation of drives will have a different interface. I've just asked for three new pieces of equipment that will serve as test stands for those, since I have three now. But I'll still have the three current ones then too, so suddenly I'll be able to grind out 24 jobs in a weekend instead of 12. 2023-11-06 12:27:05 I need to look for ways to automate more of this reporting portion of the job. 2023-11-06 12:27:58 Not an unreasonable thing to do - right now I do a database query to list out jobs of a certain "pedigree," and choose three of them to submit to the report generator. I feel sure I can automate that bit. 2023-11-06 12:28:20 Then the remaining part is attaching the report folders as Trello links. 2023-11-06 12:28:37 But apparently we're sunsetting Trello in a few months; I don't know yet what's coming next. 2023-11-06 12:29:13 It feels like we just started using Trello like yesterday (exaggeration) - they seem to have trouble making up their minds about such things. 2023-11-06 12:42:24 180 bytes for a 4-element linked list isn't terribly efficient. 2023-11-06 12:50:41 How big are the data elements? 2023-11-06 12:53:12 Each node is about 6 words. 2023-11-06 12:53:26 16-bit words? 2023-11-06 12:53:29 Mhm. 2023-11-06 12:54:06 I shouldn't say "each node". I'm just comparing "raw" linked lists with my format. 2023-11-06 12:54:25 Ok. So 12 bytes for the data; that's 72 bytes total data. in my system the links would be 4 bytes each, so another 24. 96 bytes. 2023-11-06 12:54:37 So yeah, that's not terribly efficient. 2023-11-06 12:55:09 How is the RAM getting allocated for each node? Maybe it has a larger allocation size. 2023-11-06 13:07:05 Long story. Technically the linked list is "symbolic", in that it's being stored as a number of tuples in a tuple store, and that tuple store is compressed in a trie. 2023-11-06 13:07:13 And each of the trie nodes is about 6 words. 2023-11-06 13:13:39 Making the last report. Yee ha... 2023-11-06 13:51:16 Hey, someone clarify something for me please. When we were discussion Open Firmware last night, someone (thrig I think) said "Alas, Intel went went with UEFI." I'm scratching my head over that - wouldn't that be a decision made by motherboard manufacturers rather than processor manufacturers? 2023-11-06 13:51:52 Or did Intel do a UEFI implementation and it just gets used by the mobo vendors? 2023-11-06 13:52:20 I mean, if I designed a motherboard, couldn't I use either one I wanted to? 2023-11-06 13:52:31 UEFI forum, technically (Intel is a member) 2023-11-06 13:53:46 If I ever build somthing like that, I'll probably just approach it as "writing an OS"; I'll look at it all as more integrated. 2023-11-06 13:54:32 I probably won't undertake such a project though - more likely to build things that communicate with my existing computer. 2023-11-06 13:55:28 I do regard my current plans, though, as being essentially an operating system for the MAX32655 board. 2023-11-06 14:07:42 can you tell whether you're interpreting or compiling from inside a word in gforth? 2023-11-06 14:07:56 or is a word only one or the other 2023-11-06 14:09:46 is there a state global or something that gets toggled? 2023-11-06 14:10:56 ya though it's not in the word list :( 2023-11-06 14:11:22 https://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2250 2023-11-06 14:11:34 Called STATE 2023-11-06 14:12:20 thanks! 2023-11-06 14:18:52 state @ . 0 ok 2023-11-06 14:18:54 : state? state @ . ; immediate ok 2023-11-06 14:18:55 state? 0 ok 2023-11-06 14:18:57 : test state? ; -1 ok 2023-11-06 14:21:40 Nice when there are no surprises. :-) 2023-11-06 14:41:21 https://www.irccloud.com/pastebin/zrKPAV9z/ 2023-11-06 14:53:56 Nice. 2023-11-06 14:54:52 This compiles to instructions for a stack machine. 2023-11-06 15:46:01 This is fascinating: 2023-11-06 15:46:03 https://www.youtube.com/watch?v=5lDSSgHG4q0 2023-11-06 15:46:42 I'd never even have thought about starting down that road, because "there's no way it could work." But who knows - he may actually pull something off here. 2023-11-06 15:47:02 Short summary: he's trying to build an ion thruster equipped glider. 2023-11-06 15:47:40 http://tumbleforth.hardcoded.net/ so the collapseos and duskos guy made another one 2023-11-06 17:47:17 KipIngram: with the ukraine and russia both running low on stockpiles, that is western propaganda. only one side is running low (now), ukraine.. read simplicius75.substack.com in case you are interested in good analysis 2023-11-06 17:48:04 76 not 75 2023-11-06 19:31:31 woohoo, my IRC forthbot accepts numbers, dup, swap, and drop now 2023-11-06 20:49:35 It's ALIVE... 2023-11-06 20:50:07 Mr. Watson, come here 2023-11-06 23:24:06 drakonis: How is it difference than the others? 2023-11-06 23:24:09 *different. 2023-11-06 23:27:18 Judging from the main page, it looks like it's an educational process this time, not just a "Hey, here it is, you can use it if you want" finished thing. 2023-11-06 23:27:47 Looks like he intends to walk anyone who wants to follow through a bootstrapping process that ends in a working C compiler of some meaningful usability. 2023-11-06 23:27:54 Starting from bare metal. 2023-11-06 23:28:14 so that actually is different even if the Forth he begins with is highly similar to one he's offered before. 2023-11-06 23:28:48 Definitely note that is my 30-second impression from the very front page. 2023-11-06 23:38:54 Writing a multiplayer game in this would be fun. https://www.irccloud.com/pastebin/bt1UPgTN/